Index: trunk/Mars/ceres.rc
===================================================================
--- trunk/Mars/ceres.rc	(revision 17991)
+++ trunk/Mars/ceres.rc	(revision 18009)
@@ -233,2 +233,7 @@
 # Does not trigger anyway
 ContEmpty3.Condition: MPhotonEvent.GetNumPhotons<10
+
+MFixTimeOffset.FileName: resmc/fact/pixel_delays_ALL_ZERO.csv
+# MFixTimeOffset.FileName: resmc/fact/AllPhidoFiles_delays.csv
+
+# last line comment
Index: trunk/Mars/mfileio/FileIOLinkDef.h
===================================================================
--- trunk/Mars/mfileio/FileIOLinkDef.h	(revision 17991)
+++ trunk/Mars/mfileio/FileIOLinkDef.h	(revision 18009)
@@ -19,4 +19,5 @@
 #pragma link C++ class MWriteRootFile+;
 #pragma link C++ class MWriteFitsFile+;
+#pragma link C++ class MMatrix+;
 
 #endif
Index: trunk/Mars/mfileio/MMatrix.cc
===================================================================
--- trunk/Mars/mfileio/MMatrix.cc	(revision 18009)
+++ trunk/Mars/mfileio/MMatrix.cc	(revision 18009)
@@ -0,0 +1,316 @@
+/* ======================================================================== *\
+!
+!   Author(s): Sebastian Mueller and Dominik Neise for the FACT Colaboration
+!              2014 Nov 05
+!
+!   Copyright: "THE BEER-WARE LICENSE" (Revision 42):
+!
+!   The FACT Colaboration wrote this file. As long as you retain this notice you
+!   can do whatever you want with this stuff. If we meet some day, and you think
+!   this stuff is worth it, you can buy us a beer in return.
+!
+\* ======================================================================== */
+
+//////////////////////////////////////////////////////////////////////////////
+//
+//  MMatrix
+//
+//  A generic container to store a matrix of floating point numbers.
+//  More precise it is a vector of vectors of floating numbers.
+//  The rows can have an individual number of columns.
+//  The data structure fM itself is public.
+// 
+//  A delimiter seperated value text file parser is used to obtain the data
+//  from a text file.
+//
+//////////////////////////////////////////////////////////////////////////////
+#include "MMatrix.h"
+
+ClassImp(MMatrix);
+//------------------------------------------------------------------------------
+MMatrix::MMatrix(const char *name, const char *title){
+    if( name == NULL ){
+        std::exception error;
+        *fLog << err; 
+    	*fLog << "In Source: "<< __FILE__ <<" in line: "<< __LINE__ <<" ";
+       	*fLog << "in function: "<< __func__ <<"\n";
+		*fLog << "The name string is pointing to NULL!\n";
+        throw error;	
+    }else{
+        fName  = name;          
+    }
+
+    fTitle = title ? title : 
+    "Parameter container storing a vector of vectors to hold floating numbers";
+}
+//------------------------------------------------------------------------------
+MMatrix::~MMatrix(){ clear(); }
+//------------------------------------------------------------------------------
+void MMatrix::ReadFile(const TString path_to_text_file){
+	// Here a text file is parsed into the internal data structure fM
+	// All errors which might occur during parsing result in exceptions.
+	// Right before the exception a info text is printed using the error logger.
+
+	// the delimiter symbol must not be a white space
+	if( std::isspace(fDelimiter) ){
+		std::exception error;
+		*fLog << err; 
+    	*fLog << "In Source: "<< __FILE__ <<" in line: "<< __LINE__ <<" ";
+       	*fLog << "in function: "<< __func__ <<"\n";
+		*fLog << "The delimiter symbol must not be a white space character!\n";
+        throw error;			
+	}
+
+	// the comment symbol must not be a white space
+	if( std::isspace(fComment) ){
+		std::exception error;
+		*fLog << err; 
+    	*fLog << "In Source: "<< __FILE__ <<" in line: "<< __LINE__ <<" ";
+       	*fLog << "in function: "<< __func__ <<"\n";
+		*fLog << "The comment symbol must not be a white space character!\n";
+        throw error;			
+	}
+
+	// make sure the data Matrix fM is wiped out before new data is read.
+	clear();
+
+	std::ifstream dsv_input_file( path_to_text_file, std::ifstream::in);
+
+	if( !dsv_input_file.is_open() ){
+
+		// a file which can not be opened must not pass silent!
+		*fLog << err; 
+    	*fLog << "In file: "<< __FILE__ <<" in line: "<< __LINE__ <<" ";
+       	*fLog << "in function: "<< __func__ <<"\n";
+		*fLog << "The file: "<< path_to_text_file <<" could no be opened!\n";
+		std::exception error;
+        throw error;	
+	}else{
+		// the file does exist and is now parsed
+
+		// only here the filename is set to ensure it is related to the actual 
+		// file being parsed.
+		fFileName = path_to_text_file;
+
+		// we set the line counter to 0 because we read a new file.
+		fLineNumber = 0;
+
+		//as long as there are lines in the file:
+		std::string line;
+        while ( getline(dsv_input_file, line ) ){
+
+        	fLineNumber++;
+
+        	// check if the line can be ignored
+        	if( !is_comment(line) && !is_empty_or_has_only_white_spaces(line)){
+
+	        	std::stringstream line_stream(line);
+	        	std::string token;
+				
+				// create an empty row to be filled with the data chunks of 
+				// a text file line
+				std::vector< double > row;
+
+	        	//as long as there are tokens in a line:
+				while( getline(line_stream, token, fDelimiter)){
+
+					// remove tailing and leading whitespaces
+					token = remove_leading_white_spaces(token);
+					token = remove_tailing_white_spaces(token);
+
+					// parse the text chunk to a floating number and push it
+					// back the data row
+					row.push_back(pedantic_strtod(token));
+				}
+
+				// Now that a whole text file line was parsed into a data row,
+				// the row is pushed back into the data matrix.
+				fM.push_back( row );
+		 	}
+        }
+	}
+
+	dsv_input_file.close();
+}
+//------------------------------------------------------------------------------
+double MMatrix::pedantic_strtod(std::string text)const{
+	// a pedantic string to float converter
+
+	// since std::strtod will return 0.0 in case the text string is empty we 
+	// check for this in advance.
+	if(text.empty() ){
+		std::exception error;
+		*fLog << err; 
+    	*fLog << "In Source: "<< __FILE__ <<" in line: "<< __LINE__ <<" ";
+       	*fLog << "in function: "<< __func__ <<"\n";
+		*fLog << "In file: "<< fFileName <<" in line: "<<fLineNumber<<"\n";		
+		*fLog << "The given text to be converted to a flot is empty! \n";
+		throw error;
+	}
+
+	// Ok the text string is not empty and might store a valid floating number.
+
+	// This pointer to character is used to verify if std::strtod has parsed
+	// the string to its end.
+	char * e;
+	double FloatingNumber = std::strtod(text.c_str(), &e);
+
+	// when std::strtod parsed until the last character in the input string,
+	// e is pointing to an empty string. 
+	// Otherwise e is pointing to the remaining string.
+	// Example:
+	// OK : '65.456456'          -> e = ''
+	// BAD: '65.456456   585.46' -> e = '   585.46'
+
+	if (*e != 0) {
+		std::exception error;
+		*fLog << err; 
+    	*fLog << "In Source: "<< __FILE__ <<" in line: "<< __LINE__ <<" ";
+       	*fLog << "in function: "<< __func__ <<"\n";
+		*fLog << "In file: "<< fFileName <<" in line: "<<fLineNumber<<"\n";	
+		*fLog << "The given text: '" << text <<"' can not be converted ";
+		*fLog << "to a floating point number!\n";
+		throw error;
+	}
+	return FloatingNumber;
+}
+//------------------------------------------------------------------------------
+void MMatrix::clear(){
+	// Not sure if this is neccessary but it shall enforce the correct erasing 
+	// of the data Matrix fM e.g. before a new text file is parsed in.
+	for(unsigned int row=0; row<fM.size(); row++)
+		fM[row].clear();
+
+	fM.clear();
+}
+//------------------------------------------------------------------------------
+void MMatrix::print()const{
+	// A info text is printed to std::cout showing the data, 
+	// the number of lines parsed in and the name of the text file parsed in.
+
+	std::stringstream info;
+	info << std::fixed << std::setprecision( 2 );
+	info << " ___MMatrix."<< __func__ <<"()____________________\n";
+	info << "| \n";
+	for(unsigned int row=0; row<fM.size(); row++){
+		info << "| "<< row <<" ";
+		for(unsigned int col=0; col<fM[row].size(); col++){
+			info << "[" << fM[row][col] << "] ";
+		}
+		info << "\n";
+	}
+	info << "| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n";
+	info << "| file:  " << fFileName << "\n";
+	info << "| lines: " << fLineNumber << "\n";	
+	info << "|______________________________________________________________\n";
+
+	std::cout << info.str();
+}
+//------------------------------------------------------------------------------
+bool MMatrix::is_empty_or_has_only_white_spaces(std::string line)const{
+	// Shall return TRUE when the text line is empty or only holding white 
+	// spaces and FALSE otherwise.
+
+	if(line.size() == 0){
+		return true;
+	}else{
+
+		bool there_are_only_whitespaces = true;
+
+		int i = 0;
+		while ( line[i] ){
+
+		    if( !isspace(line[i]) ){
+				there_are_only_whitespaces = false;
+		    }
+		    i++;
+		}
+
+		return there_are_only_whitespaces;
+	}
+}
+//------------------------------------------------------------------------------
+bool MMatrix::is_comment(std::string line)const{
+	// TRUE -> the whole line is a comment
+	// FALSE -> the line is data or something else
+	// a comment line is a line of arbitrary number of white spaces followed 
+	// by the fComment symbol
+
+	if( line.empty() ){
+		// an empty line is not a comment line
+		return false;
+	}else{
+		// remove leading whitespaces
+		line = remove_leading_white_spaces(line);
+		if( line.empty() ){
+			// after the white spaces have been removed the line turns out to 
+			// be empty; so it is not a comment
+			return false;
+		}else if( line[0] == fComment ){
+			// this is a comment line
+			return true;
+		}else{
+			// there is some thing not comment like in this line
+			return false;
+		}
+	}
+}
+//------------------------------------------------------------------------------
+// Both string trimmers are taken from StackOverflow
+//http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring
+std::string MMatrix::remove_leading_white_spaces(std::string &s)const{
+	// trim from start
+    s.erase(
+    	s.begin(), 
+    	std::find_if(
+    		s.begin(), 
+    		s.end(), 
+    		std::not1(std::ptr_fun<int, int>(std::isspace))
+    	)
+    );
+    return s;
+}
+//------------------------------------------------------------------------------
+std::string MMatrix::remove_tailing_white_spaces(std::string &s)const{
+	// trim from end
+    s.erase(
+    	std::find_if(
+    		s.rbegin(),
+    		s.rend(),
+    		std::not1(std::ptr_fun<int, int>(std::isspace))
+    	).base(),
+    	s.end()
+    );
+    return s;
+}
+//------------------------------------------------------------------------------
+Int_t MMatrix::ReadEnv(const TEnv &env, TString prefix, Bool_t print){
+
+    if (IsEnvDefined(env, prefix, "FileName", print))
+    {
+        TString temp_file_name = 
+        GetEnvValue(env, prefix, "FileName", fFileName);
+
+		try{// to parse the text file
+			ReadFile(temp_file_name);
+		}
+		catch(std::exception error){
+			// Oh oh. There was some trouble when parsing the file. This must 
+			// not be accepted.
+			return kERROR;
+		}
+
+		// The text file was correctly parsed
+		return kTRUE;
+    }
+
+    /*
+    *fLog << err << "In Source: "<< __FILE__ <<" in line: "<< __LINE__;
+    *fLog << " in function: "<< __func__ <<"\n";
+    *fLog << "There is no:'"<< prefix<<".FileName' in the config file. ";
+    *fLog << "The filename is crucial because there are no default values ";
+    *fLog << "to be asigned in case the input file with name filename is not ";
+    *fLog << "found." << std::endl;
+    */
+    return kFALSE;
+}
Index: trunk/Mars/mfileio/MMatrix.h
===================================================================
--- trunk/Mars/mfileio/MMatrix.h	(revision 18009)
+++ trunk/Mars/mfileio/MMatrix.h	(revision 18009)
@@ -0,0 +1,68 @@
+#ifndef MARS_MMatrix
+#define MARS_MMatrix
+
+#ifndef MARS_MParContainer
+#include "MParContainer.h"
+#endif
+
+#include <iostream>     // std::cout
+#include <sstream>
+#include <fstream>      // std::ifstream
+#include <iomanip>
+#include <algorithm> 
+#include <cctype>
+#include <locale>
+#include "MLog.h"
+#include "MLogManip.h"
+      
+class MMatrix : public MParContainer
+{
+public:
+    MMatrix(const char *name, const char *title);
+    ~MMatrix();
+
+    Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
+    void print()const;
+
+    // The floating point data stored in this object has an arbitrary number of
+    // rows and each row can have a unique number of floating numbers.
+    // M[row i][column j]
+    std::vector< std::vector< double > > fM;
+private:
+    // The deilimiter symbol which seperates the data chunks in the file to be 
+    // parsed.
+    char fDelimiter = ',';
+
+    // The data text file to be parsed may have comment lines which are 
+    // indicated with the comment character.
+    // Leading whitespaces in front of the comment symbol are fine/ are ignored. 
+    char fComment = '#';
+
+    // The fFileName can only be set using ReadFile( filename ). This is to make
+    // sure that the fFileName is always the one of the actual file parsed in.
+    TString fFileName = "";
+
+    // the line number worked on is stored here by the ReadFile( fileneam ) 
+    // function so that other functions as the pedantic_strtod() can provide
+    // an additional information in case they have to throw exceptions.
+    unsigned int fLineNumber = 0;
+
+    // a more pedantic version of std::strtod()
+    double pedantic_strtod(std::string text)const;
+
+    // deleting all information stored in the Matrix fM
+    void clear();
+
+    // the text file parser
+    void ReadFile(const TString path_to_text_file );
+
+    // text parsing helpers
+    bool is_empty_or_has_only_white_spaces(std::string line)const;
+    bool is_comment(std::string line)const;
+    std::string remove_leading_white_spaces(std::string &s)const;
+    std::string remove_tailing_white_spaces(std::string &s)const;
+
+    ClassDef(MMatrix, 1) // generic parameter container with text file parser
+};
+    
+#endif //MMatrix
Index: trunk/Mars/mfileio/Makefile
===================================================================
--- trunk/Mars/mfileio/Makefile	(revision 17991)
+++ trunk/Mars/mfileio/Makefile	(revision 18009)
@@ -33,5 +33,6 @@
            MWriteFitsFile.cc \
            MTopFitsGroup.cc \
-           MFitsArray.cc
+           MFitsArray.cc \
+           MMatrix.cc
 
 ############################################################
Index: trunk/Mars/mjobs/MJSimulation.cc
===================================================================
--- trunk/Mars/mjobs/MJSimulation.cc	(revision 17991)
+++ trunk/Mars/mjobs/MJSimulation.cc	(revision 18009)
@@ -113,4 +113,5 @@
 #include "MParSpline.h"
 #include "MGeomCam.h"
+#include "MMatrix.h"
 
 #include "MPedestalCam.h"
@@ -718,4 +719,11 @@
     trigger.SetVal(0);
     plist.AddToList(&trigger);
+    
+    // -------------------------------------------------------------------
+    // Dominik and Sebastian on: fix time offsets
+    MMatrix fix_time_offsets_between_pixels_in_ns(
+        "MFixTimeOffset","titel"
+    );
+    plist.AddToList(&fix_time_offsets_between_pixels_in_ns);
 
     // -------------------------------------------------------------------
Index: trunk/Mars/msimcamera/MSimCamera.cc
===================================================================
--- trunk/Mars/msimcamera/MSimCamera.cc	(revision 17991)
+++ trunk/Mars/msimcamera/MSimCamera.cc	(revision 18009)
@@ -122,4 +122,54 @@
         return kFALSE;
     }
+    // -------------------------------------------------------------------
+    // Dominik Neise and Sebastian Mueller on fix time offsets:
+    // We obtain the fix temporal offsets for the FACT camera pixels out of 
+    // a text file. The textfile must be mentioned in the ceres.rc file.
+    // There are no default offsets on purporse. The filename must be specified
+    // in ceres.rc and the file must be parsed without errors and it must 
+    // provide exactly 1440 floating point numbers.   
+    fFixTimeOffsetsBetweenPixelsInNs = 
+    (MMatrix*)pList->FindObject("MFixTimeOffset");
+    if (!fFixTimeOffsetsBetweenPixelsInNs)
+    {
+        // the key value pair providing the text file is not present in the
+        // environment env.
+        *fLog << err << "In Source: "<< __FILE__ <<" in line: "<< __LINE__;
+        *fLog << " in function: "<< __func__ <<"\n";
+        *fLog << "MFixTimeOffset not found... aborting." << endl;
+        return kFALSE;
+
+    }
+    else if ( fFixTimeOffsetsBetweenPixelsInNs->fM.size() != 1440 )
+    {
+        // The number of time offsets must match the number of pixels in the
+        // FACT camera.
+        *fLog << err << "In Source: "<< __FILE__ <<" in line: "<< __LINE__;
+        *fLog << " in function: "<< __func__ <<"\n";
+        *fLog << "MFixTimeOffset has the wrong dimension! ";
+        *fLog << "There should be "<< 1440 <<" time offsets ";
+        *fLog << "(one for each pixel in FACT) but there are: ";
+        *fLog << fFixTimeOffsetsBetweenPixelsInNs->fM.size() << "! ";
+        *fLog << "... aborting." << endl;
+        return kFALSE;
+    }
+    // Check all entries for inf and nan. Those are not accepted here.
+    for( std::vector< double > row : fFixTimeOffsetsBetweenPixelsInNs->fM ){
+        for( double number : row){
+
+            if( std::isnan(number) || std::isinf(number) ){
+
+                *fLog << err << "In Source: "<< __FILE__ <<" in line: ";
+                *fLog << __LINE__;
+                *fLog << " in function: "<< __func__ <<"\n";
+                *fLog << "There is a non normal number in the fix temporal ";
+                *fLog << "pixel offsets. This is at least one number is ";
+                *fLog << "NaN or Inf. This here is >"<< number;
+                *fLog << "<... aborting." << endl;               
+                return kFALSE;
+            }
+        }
+    }
+    // -------------------------------------------------------------------
 /*
     fPulsePos = (MParameterD*)pList->FindObject("IntendedPulsePos", "MParameterD");
@@ -353,4 +403,6 @@
     }
 
+    //--------------------------------------------------------------------------
+
     // Simulate pulses
     for (Int_t i=0; i<num; i++)
@@ -359,5 +411,12 @@
 
         const UInt_t   idx = ph.GetTag();
-        const Double_t t   = (ph.GetTime()-fStat->GetTimeFirst())*freq+rndm;// - fSpline->GetXmin();
+        Double_t t   = (ph.GetTime()-fStat->GetTimeFirst())*freq+rndm;// - fSpline->GetXmin();
+
+        // Sebastian Mueller and Dominik Neise on fix time offsets:
+        // We add a fix temporal offset to the relative arrival time of the 
+        // individual pixel. The offsets are stored in the
+        // fFixTimeOffsetsBetweenPixelsInNs -> fM matrix. We identify the first
+        // column to hold the offsets in ns.
+        t = t + freq*fFixTimeOffsetsBetweenPixelsInNs->fM[idx][0];
 
         // FIXME: Time jitter?
Index: trunk/Mars/msimcamera/MSimCamera.h
===================================================================
--- trunk/Mars/msimcamera/MSimCamera.h	(revision 17991)
+++ trunk/Mars/msimcamera/MSimCamera.h	(revision 18009)
@@ -7,4 +7,5 @@
 
 #include "MArrayF.h"
+#include "MMatrix.h"
 
 class MMcEvt;
@@ -35,4 +36,7 @@
 
     MParameterD       *fCrosstalkCoeffParam;
+
+    MMatrix *fFixTimeOffsetsBetweenPixelsInNs; //! Container to store the fix temporal offsets for each pixel in ns
+
     MTruePhotonsPerPixelCont    *fTruePhotons;  //! Container to store the number of photons per pixel
 
Index: trunk/Mars/resmc/fact/AllPhidoFiles_delays.csv
===================================================================
--- trunk/Mars/resmc/fact/AllPhidoFiles_delays.csv	(revision 18009)
+++ trunk/Mars/resmc/fact/AllPhidoFiles_delays.csv	(revision 18009)
@@ -0,0 +1,1445 @@
+# These delays were measured by Max Noethe and Dominik using all data, that was available on phido around Nov.2014. Using methods you can find here https://bitbucket.org/dneise/time_mismatch/
+# Since pixel 873 was never hit by a ring, its delay was estimated by the mean of pixels 874:878, since those are on the same chip.
+# The delays were calculated with respect to pixel 992. 
+# The mean of all dealys was shifted to zero.
+# The unit slices
+-0.690774
+0.594751
+-0.254749
+-0.131914
+-0.169193
+-0.676826
+0.499615
+-0.045110
+0.173720
+-0.023879
+-0.468595
+-0.685972
+0.076943
+-0.746126
+0.209488
+0.374118
+-0.287650
+-0.331726
+0.069503
+0.006177
+0.226890
+-0.310991
+-0.165482
+-0.231287
+0.272004
+-0.090579
+0.371025
+-0.061777
+-0.118755
+-0.220815
+0.328442
+0.177198
+0.358897
+0.138307
+0.134305
+-0.100768
+-0.102954
+-0.727379
+-0.558005
+-0.106035
+-0.130041
+-0.336583
+-0.512592
+-0.622099
+-0.184195
+-0.121157
+0.539584
+0.065023
+-0.150077
+-0.613966
+-0.074330
+-0.279982
+-0.907991
+0.325417
+0.189585
+-0.022929
+-0.349525
+-0.622241
+0.225978
+0.196219
+-0.098989
+0.033872
+-0.094247
+-0.030276
+-0.405620
+-0.307164
+-0.582798
+-0.008446
+0.238100
+-0.171741
+0.477917
+-0.077567
+-0.606829
+-1.116597
+-0.528520
+-1.216409
+-0.115900
+-0.855728
+-1.321320
+-1.964978
+-0.732642
+-0.474807
+-0.089542
+-0.159770
+0.035138
+-0.412538
+-0.108199
+-0.533523
+0.141545
+-0.745074
+-0.293046
+-0.425487
+-0.345823
+-0.368095
+-0.064311
+-0.096285
+-0.275166
+-0.373298
+-0.252940
+-0.793023
+-0.131334
+-0.629890
+-0.797632
+-0.117605
+-0.647579
+-0.673269
+-0.383657
+-0.187279
+0.343992
+0.149857
+0.492708
+0.068072
+0.214271
+0.319134
+0.148953
+0.382146
+0.456074
+0.211042
+0.557078
+0.521536
+0.528947
+0.477310
+0.451999
+0.456908
+0.521020
+0.240466
+-0.086755
+0.302926
+0.066941
+0.154476
+0.235597
+0.280406
+0.661045
+0.182168
+0.784997
+0.338742
+0.400068
+0.010374
+0.368030
+0.545681
+0.202974
+0.418893
+0.842358
+0.441468
+-1.269563
+0.113387
+-0.719944
+-1.593909
+-0.894110
+-0.814785
+-0.932052
+-0.848354
+-0.800204
+-1.049601
+-0.499337
+-0.501027
+0.114479
+-0.179399
+0.001395
+-0.116439
+0.004580
+-0.103247
+-0.658454
+-0.489307
+-0.553475
+-0.078225
+0.009062
+-0.546723
+-0.025727
+-0.536619
+0.011346
+-0.459344
+0.038660
+-0.250074
+-0.174307
+-0.065914
+-0.019401
+-0.274187
+-0.053576
+-0.097950
+-0.520457
+-0.568109
+-0.240748
+-0.728658
+-0.161977
+-0.943828
+-0.038415
+-0.199005
+-0.650762
+-0.205059
+0.161970
+-0.066250
+0.041215
+0.087627
+0.171209
+-0.223705
+0.000177
+-0.459397
+-0.095316
+-0.115398
+0.069453
+0.131054
+0.182607
+0.185233
+-0.005658
+0.186031
+0.322900
+0.026976
+0.314842
+-0.375834
+0.482115
+0.195913
+0.350372
+0.246756
+0.333623
+0.079731
+-0.636385
+-1.335823
+-0.862845
+-0.665567
+-1.069210
+-1.592746
+-0.873778
+-1.101510
+-0.840706
+-0.293960
+-1.164515
+-0.630160
+-0.473005
+-0.405435
+-0.365139
+-0.615385
+-0.033619
+-0.359964
+-0.872489
+-0.605913
+-0.408873
+-0.437828
+-0.493368
+-0.326194
+-0.037226
+-0.561905
+-0.442390
+-0.713599
+-0.517215
+-0.664503
+-0.460780
+-0.200713
+-0.509969
+-0.449268
+0.111110
+-0.173085
+-0.803075
+-0.605070
+-0.638646
+-0.712931
+-0.295446
+-0.732059
+-0.359667
+-0.627554
+-0.838720
+-0.622479
+-0.452949
+-0.446302
+-0.275844
+-0.070295
+-0.414390
+-0.048369
+-0.113187
+-0.582948
+-0.678390
+-0.498929
+-0.305916
+-0.497860
+0.012724
+-0.412914
+-0.166159
+-0.192334
+-0.117136
+-0.252179
+0.015627
+-0.270533
+-0.161149
+0.050061
+-0.341082
+0.027713
+0.135444
+0.018387
+0.322607
+-0.160285
+-0.526348
+-0.647057
+-0.020634
+-0.397961
+-0.137403
+-0.426942
+-0.593548
+1.221861
+0.119085
+0.009510
+-0.172275
+-0.259631
+0.076242
+0.031312
+-0.151161
+-0.188740
+-0.481535
+-0.381619
+-0.212124
+-0.618065
+-0.076592
+-0.511618
+0.045643
+-0.433253
+0.093943
+-0.193273
+0.285244
+-0.105476
+0.156032
+-0.059176
+0.073556
+-0.116178
+0.419264
+-0.141017
+-0.137115
+-0.477122
+-0.358487
+-0.265701
+-0.340581
+0.082411
+-0.109718
+0.031054
+-0.335453
+-1.561776
+-0.298806
+-2.268620
+0.234392
+-0.126106
+0.049849
+-0.229122
+0.499643
+-0.609891
+0.147095
+0.173214
+0.334136
+-0.060704
+0.434329
+-0.246667
+0.101567
+-0.097019
+-0.143815
+-0.177184
+-0.119624
+-0.179263
+0.160983
+0.279087
+0.177509
+-0.218857
+0.504694
+0.257704
+-0.149233
+-0.351928
+-0.110116
+-0.369148
+-0.071837
+-0.373541
+-0.125950
+-0.156904
+-0.182519
+0.055187
+0.465694
+0.183577
+0.372365
+-0.027833
+0.251644
+0.123174
+0.404752
+0.324762
+-0.057434
+0.115683
+0.337323
+-0.205363
+0.617544
+0.281736
+0.386140
+0.505861
+0.434269
+-0.017188
+0.282076
+0.103353
+0.289256
+0.271790
+0.266311
+0.161306
+0.502648
+0.155014
+0.078872
+0.197649
+0.049661
+0.266683
+0.613159
+0.013769
+0.633527
+0.410162
+0.129568
+0.509610
+0.740829
+0.404457
+0.686637
+0.674227
+0.603144
+0.484675
+0.785995
+0.597802
+0.698411
+0.522115
+0.498675
+0.495391
+0.753546
+0.560913
+0.822104
+0.458514
+0.652576
+0.357003
+0.872299
+0.535814
+0.626786
+0.841238
+0.705443
+0.817577
+0.910342
+0.502955
+-0.616007
+-0.647806
+0.672170
+0.089752
+-0.080392
+-0.539595
+-0.512585
+-0.225880
+-0.592624
+-0.309223
+0.097688
+0.102965
+-0.108508
+-0.021652
+-0.197398
+-0.191154
+0.303705
+0.074242
+-0.207226
+-0.601786
+0.155462
+-0.094194
+0.048107
+-0.114728
+-0.045429
+0.121612
+-0.010740
+-0.095940
+0.221938
+-0.296712
+0.128999
+-0.222569
+0.045018
+-0.055414
+-0.075781
+-0.297881
+0.559571
+0.088872
+-0.106380
+-0.354425
+0.176260
+-0.096875
+-0.277956
+-0.640394
+-0.486423
+-0.071510
+-0.311389
+-0.269049
+0.097817
+0.395020
+0.415045
+-0.242426
+-0.120951
+-0.091957
+-0.148791
+0.089690
+0.360488
+0.306755
+0.519472
+0.135308
+0.301154
+0.406012
+0.344561
+0.159016
+0.380314
+-0.196332
+0.293138
+0.336434
+0.362073
+0.360920
+0.031001
+-0.028607
+0.700806
+0.675258
+0.794397
+0.478218
+0.843925
+0.594312
+0.905318
+0.738787
+0.886689
+0.980078
+0.900436
+0.785641
+0.867146
+1.107765
+0.854236
+0.697981
+1.125410
+1.040788
+0.223812
+0.265402
+0.833510
+0.535474
+0.886498
+0.499259
+0.211316
+0.308425
+0.433790
+0.697422
+0.854861
+0.757000
+0.753564
+1.198714
+1.034980
+0.788315
+0.820539
+0.741876
+-1.120039
+-0.920404
+-0.818542
+0.143446
+-0.619037
+-0.870305
+0.003250
+-0.576816
+-0.401956
+-0.266302
+0.184441
+0.162317
+-0.093089
+-0.231539
+-0.078949
+-0.121209
+0.255067
+0.153772
+-0.323821
+-0.259611
+-0.356393
+-0.185727
+0.079696
+-0.195622
+-0.000287
+-0.045291
+0.265149
+-0.194528
+-0.125506
+-0.236549
+-0.271799
+0.166962
+-0.098747
+-0.102792
+-0.012995
+-0.081938
+-1.389462
+-0.158231
+0.216767
+-0.103138
+-1.344147
+-1.176487
+0.044736
+-0.323939
+-0.351544
+-0.422333
+-0.000378
+-0.054944
+-0.240715
+-0.184327
+-0.124070
+-0.376739
+0.140311
+-0.348993
+-0.371537
+0.056991
+0.321560
+0.107528
+0.546420
+-0.342475
+0.008090
+-0.080548
+0.003549
+-0.074113
+0.068873
+0.138901
+0.024475
+0.266526
+0.197868
+0.015138
+0.398842
+0.268507
+-0.737007
+-0.660471
+-0.194916
+-0.201868
+-1.345956
+-0.705487
+-0.265861
+0.408781
+0.199010
+0.435506
+0.632818
+0.575915
+0.048966
+-0.105941
+0.343107
+0.366854
+0.388260
+0.642304
+-1.267319
+-0.107636
+0.005356
+-0.570724
+0.548118
+-0.028482
+0.247535
+0.374329
+0.292995
+0.543706
+1.075765
+0.693968
+0.297001
+0.582287
+0.575202
+0.774494
+0.241687
+0.595304
+-0.362190
+-0.238220
+-0.034663
+-0.189424
+-0.307934
+-0.296010
+-0.156885
+-0.273286
+-0.425921
+-0.396213
+-0.043717
+-0.232248
+-0.092222
+-0.242025
+0.007782
+-0.112408
+0.008805
+-0.208382
+-0.438848
+-0.010674
+0.308857
+0.097748
+0.028718
+0.079350
+-0.008103
+-0.195611
+0.026229
+0.062483
+0.126686
+0.141574
+0.434300
+0.273999
+0.345130
+0.004367
+0.093332
+0.065062
+-1.465106
+-0.815036
+-0.574860
+-0.306439
+-0.760884
+-0.538714
+-0.677520
+-0.278605
+-0.986960
+-0.820095
+-0.227493
+-0.303578
+-0.668959
+-0.329120
+-0.130554
+-0.008689
+0.339302
+-0.325016
+-0.438580
+-0.046853
+-1.508959
+-0.174825
+0.117126
+0.160868
+-0.322187
+-0.216163
+0.118757
+-0.255213
+-0.029010
+-0.456168
+0.298982
+0.141415
+-0.294748
+-0.399703
+-0.226220
+0.154954
+-0.403874
+0.017938
+-0.236257
+-0.629585
+-0.229172
+-2.009882
+-0.312339
+-1.317706
+-1.087796
+-0.391128
+-0.675200
+-0.813056
+0.103827
+0.184543
+-0.657733
+0.363193
+-0.286866
+-1.426969
+-0.367661
+-0.339862
+-0.019065
+-0.098841
+0.088960
+-0.064988
+-0.034996
+-0.659381
+-0.545132
+-0.336118
+0.153687
+-0.232984
+-0.062786
+-0.245667
+-0.272403
+0.237961
+-0.261821
+-0.347235
+-0.289059
+0.068582
+-0.021329
+-0.376078
+0.507929
+-0.704445
+-0.152503
+-0.071630
+-0.470955
+-0.538243
+0.281077
+0.929820
+0.461235
+-0.032404
+0.556932
+0.424986
+1.161951
+0.064687
+-0.079106
+-0.013386
+0.138241
+0.021191
+-0.345059
+0.347260
+0.415249
+0.187225
+0.481775
+0.580335
+-1.507416
+-0.161333
+0.165367
+0.478580
+0.681528
+0.173134
+0.346711
+0.591642
+-0.183862
+-0.504322
+0.199480
+0.181228
+0.169936
+0.228154
+0.084894
+0.216392
+-0.065523
+-0.329665
+0.240071
+-0.232966
+0.244532
+0.244417
+-0.068460
+0.964238
+0.506250
+0.075411
+-0.365005
+-0.108160
+0.234559
+0.012565
+0.535910
+-0.175545
+0.621119
+0.573255
+0.360452
+-0.035555
+0.253327
+-0.193508
+0.183525
+0.282288
+0.473688
+0.381194
+0.294073
+0.444469
+-0.324484
+-0.390502
+-0.158466
+-0.309770
+-0.011362
+-0.298345
+-0.348853
+-0.312329
+-0.218349
+0.278267
+0.120571
+-0.020799
+0.127004
+-0.092768
+0.142978
+-0.327485
+0.234052
+-0.454807
+-0.124400
+-0.117100
+0.007707
+-0.084586
+0.247125
+0.019709
+-0.099477
+-0.111144
+-0.298511
+-0.027131
+0.503078
+-0.311766
+0.035825
+-0.010866
+-0.194044
+-0.034346
+0.376050
+0.593212
+-0.166593
+-0.265674
+0.280836
+-0.009594
+0.114320
+-0.347526
+-0.372849
+-0.351295
+-0.716181
+0.513184
+0.668496
+0.385516
+0.672461
+0.326263
+0.482767
+0.539026
+1.049390
+0.187017
+0.522857
+0.425655
+0.517839
+0.008348
+0.794456
+0.652151
+0.701525
+0.598165
+0.942298
+0.454789
+0.456846
+-0.064487
+0.508551
+0.712652
+0.586706
+0.556566
+0.511864
+0.300348
+-0.271741
+-0.221651
+0.040797
+-0.406156
+-0.090727
+0.029624
+-0.252550
+-0.060358
+0.033233
+0.060529
+0.256265
+0.154426
+0.189865
+0.452953
+0.533842
+0.332223
+0.572182
+0.461974
+0.075083
+0.041246
+0.141805
+0.076904
+0.674503
+0.265821
+0.700338
+0.339741
+0.388237
+0.780190
+-0.483515
+0.609598
+0.167009
+0.549281
+0.406357
+0.626807
+0.804457
+0.652550
+-0.507534
+-0.512549
+-0.254751
+-1.177120
+0.261477
+0.119190
+0.162863
+0.117982
+-0.029218
+0.316650
+0.288662
+0.748762
+0.360180
+-0.188218
+-0.019864
+0.018250
+0.032935
+0.298849
+-0.422246
+0.013739
+-0.163882
+-0.038961
+0.422971
+0.221210
+0.175476
+0.212957
+0.234493
+0.139045
+0.397896
+0.100197
+0.132283
+0.382785
+0.208065
+0.155362
+0.294690
+0.054967
+0.384504
+0.295032
+0.539961
+0.409026
+0.554385
+0.273723
+0.471923
+0.465780
+0.181324
+0.276810
+0.530069
+0.484406
+0.563994
+0.629148
+0.558645
+0.067108
+0.752453
+0.461104
+0.443458
+0.654412
+0.801712
+0.375317
+0.734134
+0.619885
+0.773609
+0.687911
+0.662620
+0.287786
+0.485340
+0.247044
+0.617862
+0.727803
+0.696600
+0.382143
+0.851774
+0.344656
+0.180248
+0.428448
+0.501561
+0.212897
+0.598904
+0.394375
+0.324475
+0.674352
+0.267334
+0.695871
+1.344418
+0.434317
+0.947630
+0.960706
+0.767777
+0.485300
+1.151609
+0.593611
+0.563817
+0.269620
+0.927475
+0.674109
+0.970914
+0.646874
+0.708013
+0.924207
+0.603947
+0.456870
+0.750975
+0.502861
+0.948166
+0.671731
+1.051106
+0.695253
+1.047749
+0.487293
+-0.177329
+-0.182910
+-0.930312
+-0.617541
+0.195567
+-0.279812
+0.583642
+0.404783
+0.027026
+-0.123090
+0.465527
+0.424403
+0.197124
+0.700021
+-0.302896
+-0.304299
+0.094737
+0.414451
+0.196197
+0.240418
+0.282463
+0.274163
+0.784024
+0.402764
+0.723454
+0.620624
+0.468835
+0.316248
+0.556835
+0.245698
+0.605567
+0.536251
+0.586238
+0.749684
+0.718655
+0.350124
+-0.462601
+-0.404812
+-0.184957
+-0.250817
+-0.244051
+-0.203707
+-0.219265
+-0.034665
+-0.328577
+-0.029001
+0.082198
+0.152584
+0.040530
+2.081514
+0.525047
+0.075927
+0.280873
+0.089795
+-0.191032
+0.035609
+0.156143
+-0.149208
+0.391424
+0.105342
+0.139271
+0.018105
+0.012405
+-0.059607
+0.229889
+-0.074069
+0.257884
+0.144030
+0.058407
+0.311383
+0.492395
+0.297657
+-0.176730
+-0.257314
+-0.031807
+-0.368674
+0.125849
+-0.328387
+0.060617
+-0.414025
+-0.241007
+-0.000902
+0.359162
+0.291275
+-0.117619
+-0.099701
+0.350666
+0.272742
+0.426879
+0.199435
+-0.266443
+-0.330318
+-0.244429
+-0.226824
+0.237932
+-0.005747
+-0.033843
+-0.153044
+0.068705
+-0.097605
+0.161262
+-0.155299
+-0.073012
+0.282677
+-0.171619
+-0.175641
+0.217841
+-0.153073
+-0.731292
+-0.437008
+-0.372893
+-0.939898
+-0.887671
+-0.528472
+-0.562516
+-0.681370
+-1.649608
+-0.710605
+-0.495374
+-0.752246
+-0.320316
+-0.323004
+-1.155727
+-0.928489
+-1.058556
+-0.684951
+-0.472848
+-0.392132
+-0.505283
+-0.518028
+-0.299338
+-0.367103
+-0.156336
+-0.221858
+-0.047995
+-1.073616
+-0.482814
+-0.895666
+-0.682801
+-0.193842
+-0.496325
+-0.757105
+-0.163521
+-0.438888
+0.109456
+-0.379117
+-0.035097
+-0.349210
+-0.227307
+-0.686606
+0.034118
+-0.579652
+-0.561329
+0.430227
+-0.401946
+0.271438
+0.284102
+0.187723
+0.113798
+0.401157
+0.523090
+-0.239665
+-0.257071
+0.361188
+0.373385
+0.471373
+0.558331
+0.458926
+0.500218
+0.489020
+0.324891
+0.094664
+0.182301
+0.204285
+-0.100233
+0.370641
+-0.129933
+0.018710
+0.225005
+-0.647858
+-0.736079
+-0.906626
+-0.627651
+-0.649830
+0.060007
+-0.491479
+-0.407940
+-0.341181
+-0.558064
+-0.043669
+0.108425
+-0.189960
+-0.288613
+-0.208057
+-0.155610
+-0.166683
+0.188262
+-0.118326
+-0.119927
+0.029453
+0.459051
+0.192698
+0.568807
+0.033320
+0.233264
+0.213398
+0.023677
+-0.247826
+-0.171623
+-0.197930
+0.078508
+-0.166540
+0.066968
+-0.513858
+-0.037220
+-0.598105
+-0.524350
+-0.255056
+-0.146236
+-0.441419
+0.213005
+-0.395405
+0.138636
+0.027647
+-0.047267
+-0.404192
+-0.222199
+0.048217
+0.256801
+-0.364479
+0.372489
+0.231906
+0.697979
+0.114414
+-0.250239
+-0.586774
+-0.001126
+-0.263542
+0.234729
+-0.123729
+0.088386
+0.140500
+0.747104
+-1.557899
+-0.642660
+-1.340250
+0.564836
+0.517024
+0.201648
+0.090407
+0.108813
+-0.234755
+-1.670362
+-1.290607
+-1.460317
+-1.288508
+-2.227603
+-1.423940
+-1.258476
+-1.419421
+-0.989776
+-1.281379
+-0.607243
+-0.778127
+-0.521509
+-0.620127
+-1.140824
+-0.854332
+-0.643939
+-0.828204
+-0.671793
+-0.859404
+-0.773176
+-1.159354
+-0.502735
+-0.754321
+-0.785800
+-0.600458
+-0.548241
+-0.839308
+-0.686740
+-0.876818
+-0.630459
+-0.920883
+-0.557455
+-0.814747
+-0.377041
+-0.673183
+-0.041388
+0.382724
+0.021781
+-0.269193
+0.165520
+0.117867
+-0.199619
+0.021818
+-0.130516
+0.388241
+0.520638
+0.584325
+0.487970
+0.203998
+0.676500
+0.044621
+0.677369
+0.287383
+0.577756
+0.833528
+0.566363
+0.615954
+0.371826
+0.116675
+-0.036532
+0.591807
+0.512156
+0.629891
+0.960383
+-0.074920
+0.602422
+0.709735
+0.804876
+0.399568
+0.617204
+0.475974
+-0.506116
+0.054430
+0.125146
+0.015501
+0.232717
+0.089733
+0.040106
+0.011971
+-0.187014
+0.474065
+0.622163
+0.090267
+0.837018
+0.716271
+0.815206
+0.753711
+0.839175
+0.357877
+-0.072470
+0.065005
+0.519693
+0.367631
+1.010239
+0.155766
+0.897389
+0.449475
+0.668043
+0.487980
+0.520646
+0.801535
+0.302012
+0.657339
+0.302439
+0.932136
+0.486554
+0.685893
+0.092784
+-1.601982
+-0.231441
+-3.380466
+0.127755
+-0.170251
+0.304675
+0.165385
+-0.233205
+-0.252626
+0.540031
+-0.024747
+0.139586
+0.470376
+0.396387
+0.232899
+0.592395
+0.364504
+0.557621
+-0.495365
+0.255556
+-0.081680
+0.475844
+0.723895
+0.372085
+0.404078
+0.435101
+0.220248
+0.542924
+0.322560
+1.078918
+0.673981
+0.573103
+0.641436
+-0.123962
+0.787423
Index: trunk/Mars/resmc/fact/pixel_delays_ALL_ZERO.csv
===================================================================
--- trunk/Mars/resmc/fact/pixel_delays_ALL_ZERO.csv	(revision 18009)
+++ trunk/Mars/resmc/fact/pixel_delays_ALL_ZERO.csv	(revision 18009)
@@ -0,0 +1,1450 @@
+# The FACT Colaboration November 2014
+#
+# Fix temporal offsets in between individual pixels in units of ns
+#
+# Our telescope seems to have fix temporal deleays in between the
+# individual pixels. To simulate this behaviour the telescope 
+# simulation will parse this CSV file and add the deleays listed here.
+# Only the first column is taken into account for the time offsets.
+# Each row referes to a pixel where the order of the rows adresses the
+# pixel's Continuous Hardware ID (CHID).
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
