From 652d29f2d904b7ce91b9f7a4581b17d419f07b04 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 9 Sep 2016 17:51:36 +0200 Subject: [PATCH 001/128] almost done --- slsDetectorSoftware/Makefile | 7 +- .../multiSlsDetector/multiSlsDetector.cpp | 218 ++++++++++++++++-- .../multiSlsDetector/multiSlsDetector.h | 15 +- .../slsDetector/slsDetector.cpp | 165 +++++++++---- slsDetectorSoftware/slsDetector/slsDetector.h | 9 +- .../slsDetector/slsDetectorBase.h | 9 +- .../slsDetector/slsDetectorUtils.cpp | 48 +--- .../slsDetector/slsDetectorUtils.h | 19 +- .../slsDetectorAnalysis/postProcessing.cpp | 18 +- .../slsDetectorAnalysis/postProcessing.h | 18 +- slsDetectorSoftware/threadFiles/Task.h | 44 +++- .../threadFiles/ThreadPool.cpp | 60 +++-- slsDetectorSoftware/threadFiles/ThreadPool.h | 8 +- 13 files changed, 441 insertions(+), 197 deletions(-) diff --git a/slsDetectorSoftware/Makefile b/slsDetectorSoftware/Makefile index 17422ee95..eb3708d50 100644 --- a/slsDetectorSoftware/Makefile +++ b/slsDetectorSoftware/Makefile @@ -18,6 +18,9 @@ INCLUDES?= -IcommonFiles -IslsDetector -I../slsReceiverSoftware/MySocketTCP -Ius SRC_CLNT=slsDetectorAnalysis/fileIO.cpp usersFunctions/usersFunctions.cpp slsDetector/slsDetectorUtils.cpp slsDetector/slsDetectorCommand.cpp slsDetectorAnalysis/angularConversion.cpp slsDetectorAnalysis/angularConversionStatic.cpp slsDetectorAnalysis/energyConversion.cpp slsDetector/slsDetectorActions.cpp slsDetectorAnalysis/postProcessing.cpp slsDetector/slsDetector.cpp multiSlsDetector/multiSlsDetector.cpp slsDetectorAnalysis/postProcessingFuncs.cpp slsReceiverInterface/receiverInterface.cpp slsDetector/slsDetectorUsers.cpp threadFiles/CondVar.cpp threadFiles/Mutex.cpp threadFiles/ThreadPool.cpp #../slsReceiverSoftware/MySocketTCP/MySocketTCP.cpp +LIBZMQDIR = ../slsReceiverSoftware/include +LIBZMQ = -L$(LIBZMQDIR) -Wl,-rpath=$(LIBZMQDIR) -lzmq + $(info ) $(info #######################################) $(info # Compiling slsDetectorSoftware #) @@ -66,14 +69,14 @@ gotthardVirtualServer: $(SRC_MYTHEN_SVC) %.o : %.cpp %.h Makefile - $(CXX) -o $@ -c $< $(INCLUDES) $(DFLAGS) -fPIC $(EPICSFLAGS) -lpthread #$(FLAGS) + $(CXX) -o $@ -c $< $(INCLUDES) $(DFLAGS) -fPIC $(EPICSFLAGS) -lpthread -lrt $(LIBZMQ) #$(FLAGS) package: $(OBJS) $(DESTDIR)/libSlsDetector.so $(DESTDIR)/libSlsDetector.a $(DESTDIR)/libSlsDetector.so: $(OBJS) - $(CXX) -shared -Wl,-soname,libSlsDetector.so -o libSlsDetector.so $(OBJS) -lc $(INCLUDES) $(DFLAGS) $(FLAGS) $(EPICSFLAGS) -L/usr/lib64 -lpthread + $(CXX) -shared -Wl,-soname,libSlsDetector.so -o libSlsDetector.so $(OBJS) -lc $(INCLUDES) $(DFLAGS) $(FLAGS) $(EPICSFLAGS) -L/usr/lib64 -lpthread -lrt $(LIBZMQ) $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) mv libSlsDetector.so $(DESTDIR) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index f902e24d7..36a37143f 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -267,28 +267,30 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1) getNMods(); getMaxMods(); threadpool = 0; - if(createThreadPool() == FAIL) + zmqthreadpool = 0; + if(createThreadPool(&threadpool) == FAIL) exit(-1); } multiSlsDetector::~multiSlsDetector() { //removeSlsDetector(); - destroyThreadPool(); + destroyThreadPool(&threadpool); + destroyThreadPool(&zmqthreadpool); } -int multiSlsDetector::createThreadPool(){ - if(threadpool){ - threadpool->destroy_threadpool(); - threadpool=0; +int multiSlsDetector::createThreadPool(ThreadPool** t){ + if(*t){ + (ThreadPool*)(*t)->destroy_threadpool(); + *t=0; } if(thisMultiDetector->numberOfDetectors < 1){ cout << "No detectors attached to create threadpool" << endl; return OK; } - threadpool = new ThreadPool(thisMultiDetector->numberOfDetectors); - switch(threadpool->initialize_threadpool()){ + *t = new ThreadPool(thisMultiDetector->numberOfDetectors); + switch(((ThreadPool*)(*t))->initialize_threadpool()){ case 0: cerr << "Failed to initialize thread pool!" << endl; return FAIL; @@ -299,19 +301,19 @@ int multiSlsDetector::createThreadPool(){ break; default: #ifdef VERBOSE - cout << "Initialized Threadpool" << endl; + cout << "Initialized Threadpool " << *t << endl; #endif break; } return OK; } -void multiSlsDetector::destroyThreadPool(){ - if(threadpool){ - threadpool->destroy_threadpool(); - threadpool=0; +void multiSlsDetector::destroyThreadPool(ThreadPool** t){ + if(*t){ + (ThreadPool*)(*t)->destroy_threadpool(); + *t=0; #ifdef VERBOSE - cout<<"Destroyed Threadpool"<numberOfDetectors; @@ -1196,6 +1196,7 @@ slsDetectorDefs::detectorSettings multiSlsDetector::getSettings(int pos) { threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=posmin; idetadd_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=posmin; idetadd_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=posmin; idetmasterPosition) && (detectors[idet])){ @@ -3318,6 +3321,7 @@ char* multiSlsDetector::setNetworkParameter(networkParameter p, string s){ threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -3926,6 +3930,7 @@ int multiSlsDetector::executeTrimming(trimMode mode, int par1, int par2, int imo threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -3977,6 +3982,7 @@ int multiSlsDetector::loadSettingsFile(string fname, int imod) { threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -4051,6 +4057,7 @@ int multiSlsDetector::setAllTrimbits(int val, int imod){ threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -4100,6 +4107,7 @@ int multiSlsDetector::loadCalibrationFile(string fname, int imod) { threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -4752,6 +4760,7 @@ int multiSlsDetector::startReceiver(){ threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=posmin; idetmasterPosition) && (detectors[idet])){ @@ -4813,6 +4822,7 @@ int multiSlsDetector::stopReceiver(){ threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=posmin; idetmasterPosition) && (detectors[idet])){ @@ -4948,7 +4958,173 @@ int multiSlsDetector::resetFramesCaught() { -int* multiSlsDetector::readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex, int &subFrameIndex){ +void multiSlsDetector::readFrameFromReceiver(){ + int value; + if(createThreadPool(&zmqthreadpool) == FAIL){ + cprintf(BG_RED,"Error: Could not create the zmq threads\n"); + return; + } + zmqthreadpool->setzeromqThread(); + + //determine number of half readouts and maxX and maxY + int maxX=0,maxY=0; + int numReadout = 1; + if(getDetectorsType() == EIGER){ + numReadout = 2; + maxX = thisMultiDetector->numberOfChannel[X]; + maxY = thisMultiDetector->numberOfChannel[Y]; + } + + //Note:num threads correspond to num detectors as task calls each slsdet + //(eiger udp ports/half readouts will have to do it serially) + + //start all socket tasks + volatile uint64_t runningMask = 0x0; + int slsdatabytes = 0, slsmaxchannels = 0, bytesperchannel = 0, slsmaxX = 0, slsmaxY=0; + if(!zmqthreadpool){ + cout << "Error in creating threadpool. Exiting" << endl; + return; + }else{ + for(int idet=0; idetnumberOfDetectors; idet++){ + if(detectors[idet]){ + sem_init(&sem_slswait[idet*numReadout],1,0); + sem_init(&sem_slsdone[idet*numReadout],1,0); + if(numReadout>1){ + sem_init(&sem_slswait[idet*numReadout+1],1,0); + sem_init(&sem_slsdone[idet*numReadout+1],1,0); + } + Task* task = new Task(new func00_t(&slsDetector::readFrameFromReceiver,detectors[idet])); + zmqthreadpool->add_task(task); + if(!slsdatabytes){ + slsdatabytes = detectors[idet]->getDataBytes(); + slsmaxchannels = detectors[idet]->getMaxNumberOfChannels(); + bytesperchannel = slsdatabytes/slsmaxchannels; + slsmaxX = detectors[idet]->getTotalNumberOfChannels(X); + slsmaxY = detectors[idet]->getTotalNumberOfChannels(Y); + } + //set mask + runningMask|=(1<<(idet*numReadout)); + if(numReadout>1) + runningMask|=(1<<(idet*numReadout+1)); + + } + } + } + + zmqthreadpool->startExecuting();//tell them to start + + + int nel=(thisMultiDetector->dataBytes)/sizeof(int); + + if(nel <= 0){ + cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl; + return; + } + int* multiframe=new int[nel]; + int* p = multiframe; + int idet,offsetY,offsetX; + int halfreadoutoffset = (slsmaxX/numReadout); + //after reconstruction + int framecount=0; + int nx =getTotalNumberOfChannels(slsDetectorDefs::X); + int ny =getTotalNumberOfChannels(slsDetectorDefs::Y); + + + + while(true){ + memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); + + for(int ireadout=0; ireadoutnumberOfDetectors*numReadout; ++ireadout){ + idet = ireadout/numReadout; + + if(detectors[idet]){ + if((1 << ireadout) & runningMask){ + + + sem_post(&sem_slswait[ireadout]); //sls to continue + sem_wait(&sem_slsdone[ireadout]); //wait for sls to copy + + //this socket closed + if(slsframe[ireadout] == NULL){ + runningMask^=(1<offsetY[idet] + slsmaxY)) * maxX * bytesperchannel; + if(!(ireadout%numReadout)) offsetX = thisMultiDetector->offsetX[idet]; + else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; + offsetX *= bytesperchannel; + cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", + offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); + + cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); + //itnerleaving with other detectors + for(int i=0;iwait_for_tasks_to_complete(); + destroyThreadPool(&zmqthreadpool); + delete[] multiframe; + + + + + + + + +/* int nel=(thisMultiDetector->dataBytes)/sizeof(int); if(nel <= 0){ cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl; @@ -5039,6 +5215,7 @@ int* multiSlsDetector::readFrameFromReceiver(char* fName, int &acquisitionIndex if((getDetectorsType() == EIGER) &&(complete ==FAIL)) acquisitionIndex = -1; return retval; + */ }; @@ -5468,6 +5645,7 @@ int multiSlsDetector::pulsePixel(int n,int x,int y) { threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -5504,6 +5682,7 @@ int multiSlsDetector::pulsePixelNMove(int n,int x,int y) { threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ @@ -5540,6 +5719,7 @@ int multiSlsDetector::pulseChip(int n) { threadpool->add_task(task); } } + threadpool->startExecuting(); threadpool->wait_for_tasks_to_complete(); for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 07c4fe839..2c72b848a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -245,10 +245,10 @@ class multiSlsDetector : public slsDetectorUtils { * Creates all the threads in the threadpool \returns OK or FAIL */ - int createThreadPool(); + int createThreadPool(ThreadPool** t); /** destroys all the threads in the threadpool */ - void destroyThreadPool(); + void destroyThreadPool(ThreadPool** t); /** frees the shared memory occpied by the sharedMultiSlsDetector structure */ int freeSharedMemory() ; @@ -1180,14 +1180,9 @@ class multiSlsDetector : public slsDetectorUtils { int resetFramesCaught(); /** - * Reads a frame from receiver - * @param fName file name of current frame() - * @param acquisitionIndex current acquisition index - * @param frameIndex current frame index (for each scan) - * @param subFrameIndex current sub frame index (for 32 bit mode for eiger) - /returns a frame read from recever + * Reads frames from receiver through a constant socket */ - int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex, int &subFrameIndex); + void readFrameFromReceiver(); /** Locks/Unlocks the connection to the receiver /param lock sets (1), usets (0), gets (-1) the lock @@ -1378,7 +1373,7 @@ class multiSlsDetector : public slsDetectorUtils { private: ThreadPool* threadpool; - + ThreadPool* zmqthreadpool; }; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 7565aeaf8..892c6a3a5 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -10,7 +10,7 @@ #include #include #include "gitInfoLib.h" - +#include int slsDetector::initSharedMemory(detectorType type, int id) { @@ -7145,58 +7145,125 @@ int slsDetector::resetFramesCaught(){ -int* slsDetector::readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex, int &subFrameIndex){ - int fnum=F_READ_RECEIVER_FRAME; - int nel=thisDetector->dataBytes/sizeof(int); - int* retval=new int[nel]; - int ret=FAIL; - int n; - char mess[MAX_STR_LENGTH]="Nothing"; +void slsDetector::readFrameFromReceiver(){ - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { -#ifdef VERBOSE - std::cout<< "slsDetector: Reading frame from receiver "<< thisDetector->dataBytes << " " <SendDataOnly(&fnum,sizeof(fnum)); - dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); + //determine number of half readouts + int numReadout = 1; + if(thisDetector->myDetectorType == EIGER) numReadout = 2; + int readoutId = detId*numReadout; + volatile uint64_t runningMask = 0x0; - if (ret==FAIL) { - n= dataSocket->ReceiveDataOnly(mess,sizeof(mess)); - std::cout<< "Detector returned: " << mess << " " << n << std::endl; - delete [] retval; - disconnectData(); - return NULL; - } else { - n=dataSocket->ReceiveDataOnly(fName,MAX_STR_LENGTH); - n=dataSocket->ReceiveDataOnly(&acquisitionIndex,sizeof(acquisitionIndex)); - n=dataSocket->ReceiveDataOnly(&frameIndex,sizeof(frameIndex)); - if(thisDetector->myDetectorType == EIGER) - n=dataSocket->ReceiveDataOnly(&subFrameIndex,sizeof(subFrameIndex)); - n=dataSocket->ReceiveDataOnly(retval,thisDetector->dataBytes); + //server details + char hostname[numReadout][100]; + int portno[numReadout]; + int nel=(thisDetector->dataBytes/numReadout)/sizeof(int); + for(int i=0;idataBytes) { - std::cout<dataBytes << std::endl; - ret=FAIL; - delete [] retval; - disconnectData(); - return NULL; - } - - //jungfrau masking adcval - if(thisDetector->myDetectorType == JUNGFRAU){ - for(unsigned int i=0;islsframe[readoutId+i]=new int[nel]; } - return retval; + + + //loop though the half readouts to start sockets + void *context[numReadout]; + void *zmqsocket[numReadout]; + for(int i=0;isem_slswait[readoutId+idet]);//wait for it to be copied + + + //update indices + if(!idet) framecount++; //count only once + + // receive a message, this is a blocking function + len = zmq_msg_init (&message); /* is this required? Xiaoqiang didnt have it*/ + if(len) {cprintf(RED,"Failed to initialize message %d for %d\n",len,readoutId+idet); continue; }//error + len = zmq_msg_recv(&message, zmqsocket[idet], 0); + + //int size = zmq_msg_size (&message); + if (len <= 3 ) { + if(!len) cprintf(RED,"Received no data in socket for %d\n", readoutId+idet); + cout<slsframe[readoutId+idet] = NULL; + sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready + + runningMask^=(1<dataBytes/numReadout){//hoow to solve this + memcpy((char*)(parentDet->slsframe[readoutId+idet]),(char*)zmq_msg_data(&message),thisDetector->dataBytes/numReadout); + //memcpy((char*)(parentDet->slsframe[readoutId+idet]),zmq_msg_data(&message[idet]),thisDetector->dataBytes); + //check header, if incorrect frame, copy somewhere and assign a blank subframe + //parentDet->slsframe[readoutId+idet] = (int*)zmq_msg_data(&message[idet]); + + //jungfrau masking adcval + if(thisDetector->myDetectorType == JUNGFRAU){ + for(unsigned int i=0;islsframe[readoutId+idet][i] = (parentDet->slsframe[readoutId+idet][i] & 0x3FFF3FFF); + } + } + //} + sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready + + } + }//end of for loop + + if(!runningMask){ + break; + } + + } + zmq_msg_close(&message); + + + + //close socket + for(int i=0;islsframe[readoutId+i]; + } + }; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 673729b22..54d6b27e5 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1569,14 +1569,9 @@ class slsDetector : public slsDetectorUtils, public energyConversion { int resetFramesCaught(); /** - * Reads a frame from receiver - * @param fName file name of current frame() - * @param acquisitionIndex current acquisition index - * @param frameIndex current frame index (for each scan) - * @param subFrameIndex current sub frame index (for 32 bit mode for eiger) - /returns a frame read from recever + * Reads frames from receiver through a constant socket */ - int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex, int &subFrameIndex); + void readFrameFromReceiver(); /** Locks/Unlocks the connection to the receiver /param lock sets (1), usets (0), gets (-1) the lock diff --git a/slsDetectorSoftware/slsDetector/slsDetectorBase.h b/slsDetectorSoftware/slsDetector/slsDetectorBase.h index 62eb83006..9ccf313e5 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorBase.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorBase.h @@ -507,14 +507,9 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef /** - * Reads a frame from receiver - * @param fName file name of current frame() - * @param acquisitionIndex current acquisition index - * @param frameIndex current frame index (for each scan) - * @param subFrameIndex current sub frame index (for 32 bit mode for eiger) - /returns a frame read from recever + * Reads frames from receiver through a constant socket */ - virtual int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex, int &subFrameIndex)=0; + virtual void readFrameFromReceiver()=0; /** Sets the read receiver frequency diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index d390c8398..a4e3030ff 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -72,10 +72,6 @@ int slsDetectorUtils::acquire(int delflag){ int multiframe = nc*nf; - pthread_mutex_lock(&mg); - acquiringDone = 0; - pthread_mutex_unlock(&mg); - // setTotalProgress(); //moved these 2 here for measurement change progressIndex=0; @@ -162,7 +158,6 @@ int slsDetectorUtils::acquire(int delflag){ if (*threadedProcessing) { - sem_init(&sem_queue,0,0); startThread(delflag); } #ifdef VERBOSE @@ -341,48 +336,13 @@ int slsDetectorUtils::acquire(int delflag){ //offline if(setReceiverOnline()==OFFLINE_FLAG){ - // wait until data processing thread has finished the data - pthread_mutex_lock(&mg); - acquiringDone = 1; - pthread_mutex_unlock(&mg); - if (*threadedProcessing) { - sem_wait(&sem_queue); - pthread_mutex_lock(&mg); - acquiringDone = 0; - pthread_mutex_unlock(&mg); + if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ + if((*correctionMask)&(1< #include #include - +#include using namespace std; @@ -641,14 +641,9 @@ virtual int getReceiverCurrentFrameIndex()=0; virtual int resetFramesCaught()=0; /** - * Reads a frame from receiver - * @param fName file name of current frame() - * @param acquisitionIndex current acquisition index - * @param frameIndex current frame index (for each scan) - * @param subFrameIndex current sub frame index (for 32 bit mode for eiger) - /returns a frame read from recever + * Reads frames from receiver through a constant socket */ -virtual int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex, int &subFrameIndex)=0; +virtual void readFrameFromReceiver()=0; /** @@ -850,6 +845,14 @@ virtual int setReceiverFifoDepth(int i = -1)=0; int (*progress_call)(double,void*); void *pProgressCallArg; + public: + //data call back + //individual sls and multi + sem_t sem_slsdone[MAXDET]; + sem_t sem_slswait[MAXDET]; + int* slsframe[MAXDET]; + + }; diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 9fcb6c9c0..60db31654 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -7,6 +7,7 @@ #include "usersFunctions.h" #endif + //#define VERBOSE static void* startProcessData(void *n){ @@ -461,12 +462,7 @@ void* postProcessing::processData(int delflag) { } - /** IF detector acquisition is done, let the acquire() thread know to finish up and force join thread */ - if(acquiringDone){ - sem_post(&sem_queue); - // cout << "Sem posted" << endl; - } //else - // cout << "Sem not posted" << endl; + /* IF THERE ARE NO DATA look if acquisition is finished */ if (checkJoinThread()) { if (dataQueueSize()==0) { @@ -488,6 +484,14 @@ void* postProcessing::processData(int delflag) { else{ + + readFrameFromReceiver(); + + + + + +/* int progress = 0; char currentfName[MAX_STR_LENGTH]=""; int caught = -1; @@ -663,6 +667,8 @@ void* postProcessing::processData(int delflag) { } } +*/ + } return 0; diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h index 90f00085a..546457fa1 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h @@ -17,7 +17,7 @@ #include #include #include -#include + class postProcessingFuncs; @@ -300,11 +300,7 @@ s /** data queue size */ int queuesize; - /** queue mutex */ - sem_t sem_queue; - /** set when detector finishes acquiring */ - int acquiringDone; /** @@ -333,18 +329,23 @@ s - private: double *fdata; - int (*dataReady)(detectorData*,int, int,void*); void *pCallbackArg; + detectorData *thisData; + private: + // double *fdata; + + // int (*dataReady)(detectorData*,int, int,void*); + // void *pCallbackArg; + int (*rawDataReady)(double*,int,void*); void *pRawDataArg; postProcessingFuncs *ppFun; - detectorData *thisData; + //detectorData *thisData; double *ang; @@ -374,4 +375,5 @@ s + #endif diff --git a/slsDetectorSoftware/threadFiles/Task.h b/slsDetectorSoftware/threadFiles/Task.h index e7f8f12f8..785298d46 100644 --- a/slsDetectorSoftware/threadFiles/Task.h +++ b/slsDetectorSoftware/threadFiles/Task.h @@ -16,6 +16,18 @@ using namespace std; class slsDetector; +template +class func00_t{ +public: + func00_t(_Ret (_Class::*fn)(),_Class* ptr): + m_fn(fn),m_ptr(ptr){} + ~func00_t() {} + void operator()() const {((m_ptr->*m_fn)());} +private: + _Class* m_ptr; + _Ret (_Class::*m_fn)(); +}; + template class func0_t{ public: @@ -94,27 +106,32 @@ private: class Task: public virtual slsDetectorDefs{ public: /* Return: int, Param: int */ - Task(func1_t * t): m1(t),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0){}; + Task(func1_t * t): m1(t),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: int, Param: string,int */ - Task(func2_t * t): m1(0),m2(t),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0){}; + Task(func2_t * t): m1(0),m2(t),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: string, Param: string */ - Task(func1_t * t): m1(0),m2(0),m3(t),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0){}; + Task(func1_t * t): m1(0),m2(0),m3(t),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: char*, Param: char* */ - Task(func1_t * t): m1(0),m2(0),m3(0),m4(t),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0){}; + Task(func1_t * t): m1(0),m2(0),m3(0),m4(t),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: detectorSettings, Param: int */ - Task(func1_t * t): m1(0),m2(0),m3(0),m4(0),m5(t),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0){}; + Task(func1_t * t): m1(0),m2(0),m3(0),m4(0),m5(t),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: detectorSettings, Param: detectorSettings,int */ - Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(t),m7(0),m8(0),m9(0),m10(0),m11(0){}; + Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(t),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: int, Param: int,int */ - Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(t),m8(0),m9(0),m10(0),m11(0){}; + Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(t),m8(0),m9(0),m10(0),m11(0),m12(0){}; /* Return: int, Param: int,int */ - Task(func3_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(t),m9(0),m10(0),m11(0){}; + Task(func3_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(t),m9(0),m10(0),m11(0),m12(0){}; /* Return: int, Param: trimMode,int,int,int */ - Task(func4_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(t),m10(0),m11(0){}; - /* Return: int, Param: int */ - Task(func0_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(t),m11(0){}; + Task(func4_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(t),m10(0),m11(0),m12(0){}; + /* Return: int, Param: none */ + Task(func0_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(t),m11(0),m12(0){}; /* Return: char*, Param: networkParameter,string,string */ - Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(t){}; + Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(t),m12(0){}; + /* Return: void, Param: none */ + Task(func00_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(t){}; + + + ~Task(){} void operator()(){ @@ -129,6 +146,7 @@ public: else if(m9) (*m9)(); else if(m10) (*m10)(); else if(m11) (*m11)(); + else if(m12) (*m12)(); } private: @@ -154,6 +172,8 @@ private: func0_t * m10; /* Return: char*, Param: networkParameter,string,string */ func2_t * m11; + /* Return: void, Param: none */ + func00_t * m12; }; diff --git a/slsDetectorSoftware/threadFiles/ThreadPool.cpp b/slsDetectorSoftware/threadFiles/ThreadPool.cpp index 223983a73..347a15e31 100644 --- a/slsDetectorSoftware/threadFiles/ThreadPool.cpp +++ b/slsDetectorSoftware/threadFiles/ThreadPool.cpp @@ -7,8 +7,10 @@ ThreadPool::ThreadPool(int pool_size) : m_pool_size(pool_size){ #endif m_tasks_loaded = false; thread_started = false; + zmqthreadpool = false; current_thread_number = -1; number_of_ongoing_tasks = 0; + number_of_total_tasks = 0; } ThreadPool::~ThreadPool(){ @@ -34,6 +36,7 @@ int ThreadPool::initialize_threadpool(){ m_pool_state = STARTED; int ret = -1; sem_init(&semStart,1,0); + sem_init(&semDone,1,0); for (int i = 0; i < m_pool_size; i++) { pthread_t tid; thread_started = false; @@ -68,12 +71,15 @@ int ThreadPool::destroy_threadpool(){ for (int i = 0; i < m_pool_size; i++) { void* result; sem_post(&semStart); + sem_post(&semDone); ret = pthread_join(m_threads[i], &result); /*cout << "pthread_join() returned " << ret << ": " << strerror(errno) << endl;*/ m_task_cond_var.broadcast(); // try waking up a bunch of threads that are still waiting } sem_destroy(&semStart); + sem_destroy(&semDone); number_of_ongoing_tasks = 0; + number_of_total_tasks = 0; /* cout << m_pool_size << " threads exited from the thread pool" << endl;*/ return 0; } @@ -109,25 +115,28 @@ void* ThreadPool::execute_thread(){ /*cout << "Unlocking: " << pthread_self() << endl;*/ m_task_mutex.unlock(); + //if(zmqthreadpool) cout<<"***"<run(arg); /*cout << ithread <<" Done executing thread " << pthread_self() << endl;*/ - m_all_tasks_mutex.lock(); + m_task_mutex.lock(); number_of_ongoing_tasks--; - m_all_tasks_mutex.unlock(); + m_task_mutex.unlock(); + //if(zmqthreadpool) cout< m_tasks; volatile int m_pool_state; - Mutex m_all_tasks_mutex; - CondVar m_all_tasks_cond_var; bool m_tasks_loaded; bool thread_started; int current_thread_number; //volatile uint64_t tasks_done_mask; volatile int number_of_ongoing_tasks; + volatile int number_of_total_tasks; sem_t semStart; - + sem_t semDone; + bool zmqthreadpool; }; From 557eccb74db70419f5c3df318532e7f32741841b Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 14 Sep 2016 10:42:51 +0200 Subject: [PATCH 002/128] almost there --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 36a37143f..64b65ab55 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5059,7 +5059,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //eiger, so interleaving if(maxX){ - if(ireadout == 3){ + //if(ireadout == 3){ offsetY = (maxY - (thisMultiDetector->offsetY[idet] + slsmaxY)) * maxX * bytesperchannel; if(!(ireadout%numReadout)) offsetX = thisMultiDetector->offsetX[idet]; else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; @@ -5077,7 +5077,7 @@ void multiSlsDetector::readFrameFromReceiver(){ } - }//end of ireadout + //}//end of ireadout } //no interleaving, just add to the end From 721249231f56891219d833d0d55edbd6d9aea9dc Mon Sep 17 00:00:00 2001 From: wang_x1 Date: Wed, 14 Sep 2016 12:03:39 +0200 Subject: [PATCH 003/128] add missing preprocessor macro --- slsDetectorSoftware/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/slsDetectorSoftware/CMakeLists.txt b/slsDetectorSoftware/CMakeLists.txt index 7d9fa2725..5263ea204 100644 --- a/slsDetectorSoftware/CMakeLists.txt +++ b/slsDetectorSoftware/CMakeLists.txt @@ -35,6 +35,9 @@ usersFunctions ../slsReceiverSoftware/MySocketTCP ) +add_definitions( + -DDACS_INT +) add_library(slsDetectorStatic STATIC ${SOURCES} From 0f9a841c4a4a956a43b3be9d2ce1cf9b301ed9b2 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 15 Sep 2016 10:17:16 +0200 Subject: [PATCH 004/128] almost done --- .../multiSlsDetector/multiSlsDetector.cpp | 34 +++++++++++++------ .../slsDetector/slsDetector.cpp | 10 +++--- .../slsDetector/slsDetectorUtils.cpp | 7 +++- .../slsDetectorAnalysis/postProcessing.cpp | 7 ++-- .../slsDetectorAnalysis/postProcessing.h | 4 ++- 5 files changed, 44 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 64b65ab55..f8090b989 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4969,10 +4969,13 @@ void multiSlsDetector::readFrameFromReceiver(){ //determine number of half readouts and maxX and maxY int maxX=0,maxY=0; int numReadout = 1; + bool checkbottom = false; + if(getDetectorsType() == EIGER){ numReadout = 2; maxX = thisMultiDetector->numberOfChannel[X]; maxY = thisMultiDetector->numberOfChannel[Y]; + checkbottom = true; } //Note:num threads correspond to num detectors as task calls each slsdet @@ -5031,6 +5034,7 @@ void multiSlsDetector::readFrameFromReceiver(){ + while(true){ memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); @@ -5056,7 +5060,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //assemble data - //eiger, so interleaving + //eiger, so interleaving between ports in one readout itself if(maxX){ //if(ireadout == 3){ @@ -5064,19 +5068,29 @@ void multiSlsDetector::readFrameFromReceiver(){ if(!(ireadout%numReadout)) offsetX = thisMultiDetector->offsetX[idet]; else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; offsetX *= bytesperchannel; - cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", - offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); + //cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", + // offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); - cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); + //cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); //itnerleaving with other detectors - for(int i=0;ionlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -7181,7 +7181,7 @@ void slsDetector::readFrameFromReceiver(){ runningMask|=(1<<(i)); } - + cout<slsframe[readoutId+idet] = NULL; sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready runningMask^=(1< #include #include - +#include class postProcessingFuncs; @@ -334,6 +334,8 @@ s void *pCallbackArg; detectorData *thisData; + sem_t dataThreadStartedSemaphore; + private: // double *fdata; From a821442b1a341ea899f4976b8369a206097616fd Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 15 Sep 2016 12:16:01 +0200 Subject: [PATCH 005/128] almosst --- .../multiSlsDetector/multiSlsDetector.cpp | 202 ++++-------------- .../multiSlsDetector/multiSlsDetector.h | 3 +- .../slsDetector/slsDetector.cpp | 53 ++--- slsDetectorSoftware/slsDetector/slsDetector.h | 3 +- .../slsDetector/slsDetectorBase.h | 3 +- .../slsDetector/slsDetectorUtils.cpp | 5 +- .../slsDetector/slsDetectorUtils.h | 6 +- .../slsDetectorAnalysis/postProcessing.cpp | 32 ++- 8 files changed, 98 insertions(+), 209 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index f8090b989..eb902d955 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4959,27 +4959,27 @@ int multiSlsDetector::resetFramesCaught() { void multiSlsDetector::readFrameFromReceiver(){ - int value; + //Note:num threads = (num slsDets = num tasks) + //so, half slsdet readouts read serially in each task (eiger udp ports) + + //create zmq threads if(createThreadPool(&zmqthreadpool) == FAIL){ cprintf(BG_RED,"Error: Could not create the zmq threads\n"); return; } - zmqthreadpool->setzeromqThread(); + zmqthreadpool->setzeromqThread(); //for debugging //determine number of half readouts and maxX and maxY int maxX=0,maxY=0; - int numReadout = 1; - bool checkbottom = false; - + int numReadoutPerDetector = 1; if(getDetectorsType() == EIGER){ - numReadout = 2; + numReadoutPerDetector = 2; maxX = thisMultiDetector->numberOfChannel[X]; maxY = thisMultiDetector->numberOfChannel[Y]; - checkbottom = true; } + int numReadouts = numReadoutPerDetector * thisMultiDetector->numberOfDetectors; + - //Note:num threads correspond to num detectors as task calls each slsdet - //(eiger udp ports/half readouts will have to do it serially) //start all socket tasks volatile uint64_t runningMask = 0x0; @@ -4990,11 +4990,13 @@ void multiSlsDetector::readFrameFromReceiver(){ }else{ for(int idet=0; idetnumberOfDetectors; idet++){ if(detectors[idet]){ - sem_init(&sem_slswait[idet*numReadout],1,0); - sem_init(&sem_slsdone[idet*numReadout],1,0); - if(numReadout>1){ - sem_init(&sem_slswait[idet*numReadout+1],1,0); - sem_init(&sem_slsdone[idet*numReadout+1],1,0); + sem_init(&sem_slswait[idet*numReadoutPerDetector],1,0); + sem_init(&sem_slsdone[idet*numReadoutPerDetector],1,0); + sem_init(&sem_multiwait[idet*numReadoutPerDetector],1,0); + if(numReadoutPerDetector>1){ + sem_init(&sem_slswait[idet*numReadoutPerDetector+1],1,0); + sem_init(&sem_slsdone[idet*numReadoutPerDetector+1],1,0); + sem_init(&sem_multiwait[idet*numReadoutPerDetector+1],1,0); } Task* task = new Task(new func00_t(&slsDetector::readFrameFromReceiver,detectors[idet])); zmqthreadpool->add_task(task); @@ -5006,19 +5008,21 @@ void multiSlsDetector::readFrameFromReceiver(){ slsmaxY = detectors[idet]->getTotalNumberOfChannels(Y); } //set mask - runningMask|=(1<<(idet*numReadout)); - if(numReadout>1) - runningMask|=(1<<(idet*numReadout+1)); + runningMask|=(1<<(idet*numReadoutPerDetector)); + if(numReadoutPerDetector>1) + runningMask|=(1<<(idet*numReadoutPerDetector+1)); } } } + zmqthreadpool->startExecuting(); //tell them to start + for(int i=0;istartExecuting();//tell them to start int nel=(thisMultiDetector->dataBytes)/sizeof(int); - if(nel <= 0){ cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl; return; @@ -5026,51 +5030,43 @@ void multiSlsDetector::readFrameFromReceiver(){ int* multiframe=new int[nel]; int* p = multiframe; int idet,offsetY,offsetX; - int halfreadoutoffset = (slsmaxX/numReadout); + int halfreadoutoffset = (slsmaxX/numReadoutPerDetector); //after reconstruction int framecount=0; int nx =getTotalNumberOfChannels(slsDetectorDefs::X); int ny =getTotalNumberOfChannels(slsDetectorDefs::Y); - - + //construct complete image and send to callback while(true){ - memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); - - for(int ireadout=0; ireadoutnumberOfDetectors*numReadout; ++ireadout){ - idet = ireadout/numReadout; - + memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory + for(int ireadout=0; ireadoutoffsetY[idet] + slsmaxY)) * maxX * bytesperchannel; - if(!(ireadout%numReadout)) offsetX = thisMultiDetector->offsetX[idet]; - else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; + //the left half or right half + if(!(ireadout%numReadoutPerDetector)) + offsetX = thisMultiDetector->offsetX[idet]; + else + offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; offsetX *= bytesperchannel; //cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", // offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); - //cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); //itnerleaving with other detectors @@ -5078,21 +5074,16 @@ void multiSlsDetector::readFrameFromReceiver(){ if(((idet+1)%2) == 0){ for(int i=0;iwait_for_tasks_to_complete(); + for(int i=0;idataBytes)/sizeof(int); - if(nel <= 0){ - cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl; - acquisitionIndex = -1; - return NULL; - } - int n,complete=OK; - int i,k,offsetX, offsetY, maxX, maxY; double dr; - int* retval=new int[nel]; - int *retdet = NULL, *p=retval; - string fullFName=""; - string ext=""; - int index=-1,f_index=-1,p_index=-1,det_index=-1; - double sv0=-1,sv1=-1; - - if(getDetectorsType() == EIGER){ - maxX = thisMultiDetector->numberOfChannel[X]; - maxY = thisMultiDetector->numberOfChannel[Y]; - } - - - for (int id=0; idnumberOfDetectors; id++) { - if (detectors[id]) { - n=detectors[id]->getDataBytes(); - retdet=detectors[id]->readFrameFromReceiver(fName, acquisitionIndex, frameIndex, subFrameIndex); - if(detectors[id]->getErrorMask()) - setErrorMask(getErrorMask()|(1<getDataBytes(); - if(getDetectorsType() == EIGER){ - //cout << "fname:"<getMaxNumberOfChannels()<<" n:"<getMaxNumberOfChannels(); - k=(int)(detectors[id]->getMaxNumberOfChannels(X)*dr);//bit mode - //cout << "dr:"<offsetY[id] + detectors[id]->getMaxNumberOfChannels(Y))) * maxX)*dr);//bit mode - offsetX = (int)(thisMultiDetector->offsetX[id]*dr); - //cout << "offsetY"<slsframe[readoutId+i]=new int[nel]; } @@ -7172,69 +7171,51 @@ void slsDetector::readFrameFromReceiver(){ for(int i=0;isem_multiwait[readoutId+i]); //let multi know socket created } - cout<sem_slswait[readoutId+idet]);//wait for it to be copied - - //update indices - if(!idet) framecount++; //count only once + if(!idet) framecount++; //update indices, count only once // receive a message, this is a blocking function len = zmq_msg_init (&message); /* is this required? Xiaoqiang didnt have it*/ if(len) {cprintf(RED,"Failed to initialize message %d for %d\n",len,readoutId+idet); continue; }//error len = zmq_msg_recv(&message, zmqsocket[idet], 0); - //int size = zmq_msg_size (&message); + //end of socket if (len <= 3 ) { if(!len) cprintf(RED,"Received no data in socket for %d\n", readoutId+idet); //cout<slsframe[readoutId+idet] = NULL; - sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready - + sem_post(&parentDet->sem_slsdone[readoutId+idet]); //let multi know is ready runningMask^=(1<dataBytes/numReadout){//hoow to solve this memcpy((char*)(parentDet->slsframe[readoutId+idet]),(char*)zmq_msg_data(&message),thisDetector->dataBytes/numReadout); - //memcpy((char*)(parentDet->slsframe[readoutId+idet]),zmq_msg_data(&message[idet]),thisDetector->dataBytes); - //check header, if incorrect frame, copy somewhere and assign a blank subframe - //parentDet->slsframe[readoutId+idet] = (int*)zmq_msg_data(&message[idet]); + //check header, if incorrect frame, copy somewhere and assign a blank subframe and also check size //jungfrau masking adcval if(thisDetector->myDetectorType == JUNGFRAU){ @@ -7244,29 +7225,23 @@ void slsDetector::readFrameFromReceiver(){ } //} sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready - } }//end of for loop if(!runningMask){ break; } - } zmq_msg_close(&message); - - //close socket for(int i=0;islsframe[readoutId+i]; } - -}; +} diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 54d6b27e5..7ae8579fc 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1568,8 +1568,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int resetFramesCaught(); - /** - * Reads frames from receiver through a constant socket + /** Reads frames from receiver through a constant socket */ void readFrameFromReceiver(); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorBase.h b/slsDetectorSoftware/slsDetector/slsDetectorBase.h index 9ccf313e5..8bbb145a3 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorBase.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorBase.h @@ -506,8 +506,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef virtual int lockReceiver(int lock=-1)=0; - /** - * Reads frames from receiver through a constant socket + /** Reads frames from receiver through a constant socket */ virtual void readFrameFromReceiver()=0; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 792359f86..cc10d0c12 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -157,7 +157,8 @@ int slsDetectorUtils::acquire(int delflag){ if (*threadedProcessing) { - sem_init(&dataThreadStartedSemaphore,1,0); + if(dataReady) + sem_init(&dataThreadStartedSemaphore,1,0); startThread(delflag); } #ifdef VERBOSE @@ -171,6 +172,7 @@ int slsDetectorUtils::acquire(int delflag){ if(*threadedProcessing && dataReady) sem_wait(&dataThreadStartedSemaphore); + for(int im=0;im Date: Thu, 15 Sep 2016 17:15:55 +0200 Subject: [PATCH 006/128] works, need to do json header and send dataready --- .../multiSlsDetector/multiSlsDetector.cpp | 342 ++++++++++++------ .../multiSlsDetector/multiSlsDetector.h | 27 +- .../slsDetector/slsDetector.cpp | 103 ------ slsDetectorSoftware/slsDetector/slsDetector.h | 2 +- .../slsDetector/slsDetectorUtils.cpp | 1 + .../slsDetector/slsDetectorUtils.h | 8 - .../slsDetectorAnalysis/postProcessing.cpp | 182 +--------- 7 files changed, 247 insertions(+), 418 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index eb902d955..c33b5767d 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -23,6 +23,7 @@ ID: $Id$ #include #include #include +#include using namespace std; @@ -267,30 +268,28 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1) getNMods(); getMaxMods(); threadpool = 0; - zmqthreadpool = 0; - if(createThreadPool(&threadpool) == FAIL) + if(createThreadPool() == FAIL) exit(-1); } multiSlsDetector::~multiSlsDetector() { //removeSlsDetector(); - destroyThreadPool(&threadpool); - destroyThreadPool(&zmqthreadpool); + destroyThreadPool(); } -int multiSlsDetector::createThreadPool(ThreadPool** t){ - if(*t){ - (ThreadPool*)(*t)->destroy_threadpool(); - *t=0; +int multiSlsDetector::createThreadPool(){ + if(threadpool){ + threadpool->destroy_threadpool(); + threadpool=0; } if(thisMultiDetector->numberOfDetectors < 1){ cout << "No detectors attached to create threadpool" << endl; return OK; } - *t = new ThreadPool(thisMultiDetector->numberOfDetectors); - switch(((ThreadPool*)(*t))->initialize_threadpool()){ + threadpool = new ThreadPool(thisMultiDetector->numberOfDetectors); + switch(threadpool->initialize_threadpool()){ case 0: cerr << "Failed to initialize thread pool!" << endl; return FAIL; @@ -301,19 +300,19 @@ int multiSlsDetector::createThreadPool(ThreadPool** t){ break; default: #ifdef VERBOSE - cout << "Initialized Threadpool " << *t << endl; + cout << "Initialized Threadpool " << threadpool << endl; #endif break; } return OK; } -void multiSlsDetector::destroyThreadPool(ThreadPool** t){ - if(*t){ - (ThreadPool*)(*t)->destroy_threadpool(); - *t=0; +void multiSlsDetector::destroyThreadPool(){ + if(threadpool){ + threadpool->destroy_threadpool(); + threadpool=0; #ifdef VERBOSE - cout<<"Destroyed Threadpool "<< *t << endl; + cout<<"Destroyed Threadpool "<< threadpool << endl; #endif } } @@ -394,7 +393,7 @@ int multiSlsDetector::addSlsDetector(int id, int pos) { //set offsets updateOffsets(); - if(createThreadPool(&threadpool) == FAIL) + if(createThreadPool() == FAIL) exit(-1); @@ -865,7 +864,7 @@ int multiSlsDetector::removeSlsDetector(int pos) { } updateOffsets(); - if(createThreadPool(&threadpool) == FAIL) + if(createThreadPool() == FAIL) exit(-1); return thisMultiDetector->numberOfDetectors; @@ -4957,17 +4956,113 @@ int multiSlsDetector::resetFramesCaught() { } +void* multiSlsDetector::startReceivingDataThread(void* this_pointer){ + ((multiSlsDetector*)this_pointer)->startReceivingData(); + return this_pointer; +} + + +void multiSlsDetector::startReceivingData(){ + + int ithread = currentThreadIndex; //set current thread value index + threadStarted = true; //let calling function know thread started and obtained current + + + int numReadoutPerDetector = 1; + bool jungfrau = false; + if(getDetectorsType() == EIGER){ + numReadoutPerDetector = 2; + }else if(getDetectorsType() == JUNGFRAU) + jungfrau = true; + + //server details + char hostname[100]; + int portno; + int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); + int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); + portno = DEFAULT_ZMQ_PORTNO + (ithread); + sprintf(hostname, "%s%d", "tcp://127.0.0.1:",portno); + //cout << "ZMQ Client of " << ithread << " at " << hostname << endl; + singleframe[ithread]=new int[nel]; + + + //loop though the half readouts to start sockets + void *context; + void *zmqsocket; + context = zmq_ctx_new(); + zmqsocket = zmq_socket(context, ZMQ_PULL); + //zmq_setsockopt(zmqsocket, ZMQ_SUBSCRIBE, "", 0); // an empty string implies receiving any messages + zmq_connect(zmqsocket, hostname); // connect to publisher,the publisher server does not have to be started + pthread_mutex_lock(&ms); + receivingDataThreadMask|=(1<<(ithread)); + //cout<setzeromqThread(); //for debugging //determine number of half readouts and maxX and maxY int maxX=0,maxY=0; @@ -4980,125 +5075,131 @@ void multiSlsDetector::readFrameFromReceiver(){ int numReadouts = numReadoutPerDetector * thisMultiDetector->numberOfDetectors; - - //start all socket tasks - volatile uint64_t runningMask = 0x0; - int slsdatabytes = 0, slsmaxchannels = 0, bytesperchannel = 0, slsmaxX = 0, slsmaxY=0; - if(!zmqthreadpool){ - cout << "Error in creating threadpool. Exiting" << endl; - return; - }else{ - for(int idet=0; idetnumberOfDetectors; idet++){ - if(detectors[idet]){ - sem_init(&sem_slswait[idet*numReadoutPerDetector],1,0); - sem_init(&sem_slsdone[idet*numReadoutPerDetector],1,0); - sem_init(&sem_multiwait[idet*numReadoutPerDetector],1,0); - if(numReadoutPerDetector>1){ - sem_init(&sem_slswait[idet*numReadoutPerDetector+1],1,0); - sem_init(&sem_slsdone[idet*numReadoutPerDetector+1],1,0); - sem_init(&sem_multiwait[idet*numReadoutPerDetector+1],1,0); - } - Task* task = new Task(new func00_t(&slsDetector::readFrameFromReceiver,detectors[idet])); - zmqthreadpool->add_task(task); - if(!slsdatabytes){ - slsdatabytes = detectors[idet]->getDataBytes(); - slsmaxchannels = detectors[idet]->getMaxNumberOfChannels(); - bytesperchannel = slsdatabytes/slsmaxchannels; - slsmaxX = detectors[idet]->getTotalNumberOfChannels(X); - slsmaxY = detectors[idet]->getTotalNumberOfChannels(Y); - } - //set mask - runningMask|=(1<<(idet*numReadoutPerDetector)); - if(numReadoutPerDetector>1) - runningMask|=(1<<(idet*numReadoutPerDetector+1)); - - } + //create threads + /** Data Callback Threads */ + pthread_t receivingDataThreads[numReadouts]; + volatile uint64_t expectedMask = 0x0; + receivingDataThreadMask = 0x0; + currentThreadIndex = -1; + for(int i = 0; i < numReadouts; ++i){ + threadStarted = false; + currentThreadIndex = i; + sem_init(&sem_singlewait[i],1,0); + sem_init(&sem_singledone[i],1,0); + if(pthread_create(&receivingDataThreads[i], NULL,startReceivingDataThread, (void*) this)){ + cprintf(RED, "ERROR: Could not create receiving thread with index %d\n",i); + return; } + while(!threadStarted); + //cout << "Data Thread created successfully for " << i << endl; + expectedMask|=(1<startExecuting(); //tell them to start - for(int i=0;igetDataBytes(); + slsmaxchannels = detectors[0]->getMaxNumberOfChannels(); + bytesperchannel = slsdatabytes/slsmaxchannels; + slsmaxX = detectors[0]->getTotalNumberOfChannels(X); + slsmaxY = detectors[0]->getTotalNumberOfChannels(Y); + } int nel=(thisMultiDetector->dataBytes)/sizeof(int); if(nel <= 0){ - cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl; + cprintf(RED,"Error: Multislsdetector databytes not valid : %d\n", thisMultiDetector->dataBytes); return; } int* multiframe=new int[nel]; int* p = multiframe; int idet,offsetY,offsetX; int halfreadoutoffset = (slsmaxX/numReadoutPerDetector); - //after reconstruction int framecount=0; int nx =getTotalNumberOfChannels(slsDetectorDefs::X); int ny =getTotalNumberOfChannels(slsDetectorDefs::Y); + + + sem_post(&dataThreadStartedSemaphore); //let utils:acquire continue to start measurement/acquisition + //cprintf(BLUE,"all sockets created\n"); + + //construct complete image and send to callback while(true){ memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory + + //post all of them to start + for(int ireadout=0; ireadoutoffsetY[idet] + slsmaxY)) * maxX * bytesperchannel; + //the left half or right half + if(!(ireadout%numReadoutPerDetector)) + offsetX = thisMultiDetector->offsetX[idet]; + else + offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; + offsetX *= bytesperchannel; + //cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", + // offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); + // cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadoutPerDetector)*bytesperchannel); + //itnerleaving with other detectors + + //bottom + if(((idet+1)%2) == 0){ + for(int i=0;ioffsetY[idet] + slsmaxY)) * maxX * bytesperchannel; - //the left half or right half - if(!(ireadout%numReadoutPerDetector)) - offsetX = thisMultiDetector->offsetX[idet]; - else - offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; - offsetX *= bytesperchannel; - //cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", - // offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); - //cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); - //itnerleaving with other detectors - - //bottom - if(((idet+1)%2) == 0){ - for(int i=0;iwait_for_tasks_to_complete(); - for(int i=0;i #include #include "gitInfoLib.h" -#include int slsDetector::initSharedMemory(detectorType type, int id) { @@ -7145,108 +7144,6 @@ int slsDetector::resetFramesCaught(){ -void slsDetector::readFrameFromReceiver(){ - - //determine number of half readouts - int numReadout = 1; - if(thisDetector->myDetectorType == EIGER) numReadout = 2; - int readoutId = detId*numReadout; - volatile uint64_t runningMask = 0x0; - - //server details - char hostname[numReadout][100]; - int portno[numReadout]; - int nel=(thisDetector->dataBytes/numReadout)/sizeof(int); - for(int i=0;islsframe[readoutId+i]=new int[nel]; - } - - - //loop though the half readouts to start sockets - void *context[numReadout]; - void *zmqsocket[numReadout]; - for(int i=0;isem_multiwait[readoutId+i]); //let multi know socket created - } - - //receive msgs and let multi know - zmq_msg_t message; - int len,idet = 0; - int framecount=0; - - //read frame - while(true){ - for(int idet=0; idetsem_slswait[readoutId+idet]);//wait for it to be copied - - if(!idet) framecount++; //update indices, count only once - - // receive a message, this is a blocking function - len = zmq_msg_init (&message); /* is this required? Xiaoqiang didnt have it*/ - if(len) {cprintf(RED,"Failed to initialize message %d for %d\n",len,readoutId+idet); continue; }//error - len = zmq_msg_recv(&message, zmqsocket[idet], 0); - - //end of socket - if (len <= 3 ) { - if(!len) cprintf(RED,"Received no data in socket for %d\n", readoutId+idet); - //cout<slsframe[readoutId+idet] = NULL; - sem_post(&parentDet->sem_slsdone[readoutId+idet]); //let multi know is ready - runningMask^=(1<dataBytes/numReadout){//hoow to solve this - memcpy((char*)(parentDet->slsframe[readoutId+idet]),(char*)zmq_msg_data(&message),thisDetector->dataBytes/numReadout); - //check header, if incorrect frame, copy somewhere and assign a blank subframe and also check size - - //jungfrau masking adcval - if(thisDetector->myDetectorType == JUNGFRAU){ - for(unsigned int i=0;islsframe[readoutId+idet][i] = (parentDet->slsframe[readoutId+idet][i] & 0x3FFF3FFF); - } - } - //} - sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready - } - }//end of for loop - - if(!runningMask){ - break; - } - } - zmq_msg_close(&message); - - //close socket - for(int i=0;islsframe[readoutId+i]; - } -} - - - - - int slsDetector::lockReceiver(int lock){ int fnum=F_LOCK_RECEIVER; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 7ae8579fc..58a5f7a61 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1570,7 +1570,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { /** Reads frames from receiver through a constant socket */ - void readFrameFromReceiver(); + void readFrameFromReceiver(){}; /** Locks/Unlocks the connection to the receiver /param lock sets (1), usets (0), gets (-1) the lock diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index cc10d0c12..cfae1c279 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -350,6 +350,7 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); stopReceiver(); pthread_mutex_unlock(&mg); + // cout<<"***********receiver stopped"< 0){ -#ifdef VERY_VERY_DEBUG - if(acquiringDone == 1) cout << "acquiring seems to be done" << endl; -#endif - - - //IF GUI, check for last frames (counter upto 5) - if(dataReady){ - pthread_mutex_lock(&mg); - acquiringDone++; - pthread_mutex_unlock(&mg); -#ifdef VERY_VERY_DEBUG - cout << "acquiringDone :" << acquiringDone << endl; -#endif - } - - - //post to stopReceiver in acquire(), but continue reading frames - if (!dataReady || (acquiringDone >= 5)){ - if(!dataReady || (!nthframe) ||(!newData)){ -#ifdef VERY_VERY_DEBUG - cout << "gonna post for it to end" << endl; -#endif - sem_post(&sem_queue); -#ifdef VERY_VERY_DEBUG - cout << "Sem posted" << endl; -#endif - } - } - } - //random reads and for nthframe, checks if there is no new data - else if((!nthframe) ||(!newData)){ - //cout <<"cecking now" << endl; - if (checkJoinThread()){ - break; - } - } - - - - - - //for random reads, ask only if it has new data - if(!newData){ - if(caught > progress){ - newData = true; - - // If new data and acquiringDone>0 (= det acq over), reset to get more frames - if(dataReady && (acquiringDone > 0)){ - pthread_mutex_lock(&mg); - acquiringDone = 1; -#ifdef VERY_VERY_DEBUG - cout << "Keeping acquiringDone at 1 " << endl; -#endif - pthread_mutex_unlock(&mg); - } - - } - } - - - - if(newData){ -#ifdef VERY_VERY_DEBUG - cout << "new data" << endl; -#endif - //no gui - if (!dataReady){ - progress = caught; -#ifdef VERY_VERY_DEBUG - cout << "progress:" << progress << endl; -#endif - newData = false; -#ifdef VERY_VERY_DEBUG - cout << "newData set to false" << endl; -#endif - } - //gui - else{ - if(setReceiverOnline()==ONLINE_FLAG){ - //get data - strcpy(currentfName,""); - pthread_mutex_lock(&mg); - //int* receiverData = new int [getTotalNumberOfChannels()]; - int* receiverData = readFrameFromReceiver(currentfName,currentAcquisitionIndex,currentFrameIndex,currentSubFrameIndex); - pthread_mutex_unlock(&mg); - - //if detector returned null - if(setReceiverOnline()==OFFLINE_FLAG) - receiverData = NULL; - - //no data or wrong data for print out - if(receiverData == NULL){ - currentAcquisitionIndex = -1; - cout<<"****Detector Data returned is NULL***"< progress){ -#ifdef VERY_VERY_DEBUG - cout << "GOT data" << endl; -#endif - fdata = decodeData(receiverData); - delete [] receiverData; - if ((fdata) && (dataReady)){ - // cout << "DATAREADY 3" << endl; - thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentfName,nx,ny); - dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg); - delete thisData; - fdata = NULL; - progress = caught; -#ifdef VERY_VERY_DEBUG - cout << "progress:" << progress << endl; -#endif - newData = false; -#ifdef VERY_VERY_DEBUG - cout << "newData set to false" << endl; -#endif - } - } - } - } - } - - } -*/ - } return 0; From 1263e80d21689cb24187a7aeab3a38edcc9bd160 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 16 Sep 2016 12:49:27 +0200 Subject: [PATCH 007/128] done --- slsDetectorSoftware/commonFiles/error_defs.h | 4 +- .../multiSlsDetector/multiSlsDetector.cpp | 23 ++++++++++- .../multiSlsDetector/multiSlsDetector.h | 14 +++++-- .../slsDetector/slsDetector.cpp | 40 ++++++++++++++++--- slsDetectorSoftware/slsDetector/slsDetector.h | 14 +++++-- .../slsDetector/slsDetectorBase.h | 8 ++-- .../slsDetector/slsDetectorUtils.cpp | 29 ++++++++++++-- .../slsDetector/slsDetectorUtils.h | 15 ++++--- .../slsDetectorAnalysis/postProcessing.h | 1 - .../receiverInterface.cpp | 18 +++++++++ .../slsReceiverInterface/receiverInterface.h | 10 +++++ 11 files changed, 146 insertions(+), 30 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 89798faef..889a56240 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -61,6 +61,7 @@ using namespace std; #define DETECTOR_NETWORK_PARAMETER 0x0000000000400000ULL #define RATE_CORRECTION_NOT_32BIT 0x0000000000800000ULL #define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000001000000ULL +#define DATA_STREAMING_IN_RECEIVER 0x0000000002000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -198,7 +199,8 @@ public: if(slsErrorMask&RATE_CORRECTION_NO_TAU_PROVIDED) retval.append("Rate correction Deactivated. No default tau provided in file\n"); - + if(slsErrorMask&DATA_STREAMING_IN_RECEIVER) + retval.append("Could not set/reset Data Streaming in Receiver\n"); diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index c33b5767d..21b50a023 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3352,6 +3352,7 @@ char* multiSlsDetector::setNetworkParameter(networkParameter p, string s){ } } + return getNetworkParameter(p); } @@ -5421,7 +5422,7 @@ int multiSlsDetector::calibratePedestal(int frames){ return ret; } -int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver,int i){ +int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ int ret=-100, ret1; if(!getFromReceiver) @@ -5429,7 +5430,7 @@ int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver,int i){ for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { - ret1=detectors[idet]->setReadReceiverFrequency(getFromReceiver,i); + ret1=detectors[idet]->setReadReceiverFrequency(getFromReceiver,freq); if(detectors[idet]->getErrorMask()) setErrorMask(getErrorMask()|(1<numberOfDetectors; idet++) { + if (detectors[idet]) { + ret1=detectors[idet]->setDataStreamingFromReceiver(enable); + if(detectors[idet]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors; idet++) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index c9826390d..0c811894b 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -1242,14 +1242,20 @@ class multiSlsDetector : public slsDetectorUtils { int calibratePedestal(int frames = 0); /** Sets the read receiver frequency - if Receiver read upon gui request, readRxrFrequency=0, + if data required from receiver randomly readRxrFrequency=0, else every nth frame to be sent to gui @param getFromReceiver is 1 if it should ask the receiver, - 0 if it can get it from multislsdetecter - @param i is the receiver read frequency + 0 if it can get it from multi structure + @param freq is the receiver read frequency /returns read receiver frequency */ - int setReadReceiverFrequency(int getFromReceiver, int i=-1); + int setReadReceiverFrequency(int getFromReceiver, int freq=-1); + + /** Enable or disable streaming data from receiver to client + * @param enable 0 to disable 1 to enable -1 to only get the value + * @returns data streaming + */ + int setDataStreamingFromReceiver(int enable=-1); /** updates the multidetector offsets */ void updateOffsets(); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 344d3081d..e50c85442 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -7431,18 +7431,18 @@ int64_t slsDetector::clearAllErrorMask(){ -int slsDetector::setReadReceiverFrequency(int getFromReceiver,int i){ +int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ int fnum=F_READ_RECEIVER_FREQUENCY; int ret = FAIL; int retval=-1; - int arg = i; + int arg = freq; if(!getFromReceiver) return retval; if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE - std::cout << "Sending read frequency to receiver " << arg << std::endl; + std::cout << "Sending read frequency to receiver " << arg << std::endl; #endif if (connectData() == OK) ret=thisReceiver->sendInt(fnum,retval,arg); @@ -7453,14 +7453,44 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver,int i){ updateReceiver(); } - if ((i > 0) && (retval != i)){ - cout << "could not set receiver read frequency:" << retval << endl; + if ((freq > 0) && (retval != freq)){ + cout << "could not set receiver read frequency to " << freq <<" Returned:" << retval << endl; setErrorMask((getErrorMask())|(RECEIVER_READ_FREQUENCY)); } return retval; } + +int slsDetector::setDataStreamingFromReceiver(int enable){ + int fnum=F_STREAM_DATA_FROM_RECEIVER; + int ret = FAIL; + int retval=-1; + int arg = enable; + + + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ +#ifdef VERBOSE + std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl; +#endif + if (connectData() == OK) + ret=thisReceiver->sendInt(fnum,retval,arg); + disconnectData(); + if(ret==FAIL) + retval = -1; + if(ret==FORCE_UPDATE) + updateReceiver(); + } + + if ((enable > 0) && (retval != enable)){ + cout << "could not set data streaming in receiver to " << enable <<" Returned:" << retval << endl; + setErrorMask((getErrorMask())|(RECEIVER_READ_FREQUENCY)); + } + return retval; +} + + + int slsDetector::enableReceiverCompression(int i){ int fnum=F_ENABLE_RECEIVER_COMPRESSION; int ret = FAIL; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 58a5f7a61..91f3ea91f 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1671,14 +1671,20 @@ class slsDetector : public slsDetectorUtils, public energyConversion { char* setDetectorNetworkParameter(networkParameter index, int delay); /** Sets the read receiver frequency - if Receiver read upon gui request, readRxrFrequency=0, + if data required from receiver randomly readRxrFrequency=0, else every nth frame to be sent to gui @param getFromReceiver is 1 if it should ask the receiver, - 0 if it can get it from multislsdetecter - @param i is the receiver read frequency + 0 if it can get it from multi structure + @param freq is the receiver read frequency /returns read receiver frequency */ - int setReadReceiverFrequency(int getFromReceiver, int i=-1); + int setReadReceiverFrequency(int getFromReceiver, int freq=-1); + + /** Enable or disable streaming data from receiver to client + * @param enable 0 to disable 1 to enable -1 to only get the value + * @returns data streaming + */ + int setDataStreamingFromReceiver(int enable=-1); /** enable/disable or get data compression in receiver * @param i is -1 to get, 0 to disable and 1 to enable diff --git a/slsDetectorSoftware/slsDetector/slsDetectorBase.h b/slsDetectorSoftware/slsDetector/slsDetectorBase.h index 8bbb145a3..9ebfd25c0 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorBase.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorBase.h @@ -512,14 +512,14 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef /** Sets the read receiver frequency - if Receiver read upon gui request, readRxrFrequency=0, + if data required from receiver randomly readRxrFrequency=0, else every nth frame to be sent to gui @param getFromReceiver is 1 if it should ask the receiver, - 0 if it can get it from multislsdetecter - @param i is the receiver read frequency + 0 if it can get it from multi structure + @param freq is the receiver read frequency /returns read receiver frequency */ - virtual int setReadReceiverFrequency(int getFromReceiver, int i=-1)=0; + virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0; /** Sets the receiver to start any readout remaining in the fifo and * change status to transmitting. diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index cfae1c279..5abe7d8d9 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -8,7 +8,7 @@ #include #include #include - +#include //clock() using namespace std; slsDetectorUtils::slsDetectorUtils() { @@ -42,6 +42,8 @@ slsDetectorUtils::slsDetectorUtils() { int slsDetectorUtils::acquire(int delflag){ + struct timespec begin,end; + clock_gettime(CLOCK_REALTIME, &begin); //ensure acquire isnt started multiple times by same client if(getAcquiringFlag() == false) @@ -58,11 +60,25 @@ int slsDetectorUtils::acquire(int delflag){ }else{ //put receiver read frequency to random if no gui int ret = setReadReceiverFrequency(0); - if(ret>0 && (acquisition_finished == NULL)){ - std::cout << "Error: receiver read frequency is set to " << ret << " but should be > 0 only when using gui." << std::endl; + if(ret>0 && (dataReady == NULL)){ ret = setReadReceiverFrequency(1,0); - std::cout << "Current receiver read frequency: " << ret << std::endl; + std::cout << "No Data call back and hence receiver read frequency reset to " << ret <<" (Random)" << std::endl; } + + //start data streaming threads in receiver if enabled + ret = setDataStreamingFromReceiver(-1); + if(dataReady == NULL){ + if(ret){ + cout << "Disabling Data Streaming from Receiver" << endl; + setDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream. + } + }else{ + if(*threadedProcessing && (!ret)){ + cout << "Enabling Data Streaming from Receiver" << endl; + setDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream. + } + } + } int nc=setTimer(CYCLES_NUMBER,-1); @@ -475,6 +491,7 @@ int slsDetectorUtils::acquire(int delflag){ #endif if(dataReady) sem_destroy(&dataThreadStartedSemaphore); + } @@ -502,6 +519,10 @@ int slsDetectorUtils::acquire(int delflag){ #endif setAcquiringFlag(false); + + clock_gettime(CLOCK_REALTIME, &end); + cprintf(BLUE,"Elapsed time:%f seconds\n",( end.tv_sec - begin.tv_sec ) + ( end.tv_nsec - begin.tv_nsec ) / 1000000000.0); + return OK; } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index d84503d59..929ce64ce 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -645,7 +645,6 @@ virtual int resetFramesCaught()=0; */ virtual void readFrameFromReceiver()=0; - /** Turns off the receiver server! */ @@ -688,14 +687,20 @@ virtual int setROI(int n=-1,ROI roiLimits[]=NULL)=0; virtual ROI* getROI(int &n)=0; /** Sets the read receiver frequency - if Receiver read upon gui request, readRxrFrequency=0, + if data required from receiver randomly readRxrFrequency=0, else every nth frame to be sent to gui @param getFromReceiver is 1 if it should ask the receiver, - 0 if it can get it from multislsdetecter - @param i is the receiver read frequency + 0 if it can get it from multi structure + @param freq is the receiver read frequency /returns read receiver frequency */ -virtual int setReadReceiverFrequency(int getFromReceiver, int i=-1)=0; +virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0; + +/** Enable or disable streaming of data from receiver to client + * @param enable 0 to disable 1 to enable -1 to only get the value + * @returns data streaming +*/ +virtual int setDataStreamingFromReceiver(int enable=-1)=0; /** enable/disable or get data compression in receiver diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h index ae89471a9..dff44e5f8 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h @@ -338,7 +338,6 @@ s private: // double *fdata; - // int (*dataReady)(detectorData*,int, int,void*); // void *pCallbackArg; diff --git a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp index e5a5011a0..463d51a71 100644 --- a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp +++ b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp @@ -129,6 +129,24 @@ int receiverInterface::sendIntArray(int fnum, int64_t &retval, int64_t arg[2]){ +int receiverInterface::sendIntArray(int fnum, int &retval, int arg[2]){ + int args[2]; + int ret = slsDetectorDefs::FAIL; + char mess[100] = ""; + dataSocket->SendDataOnly(&fnum,sizeof(fnum)); + dataSocket->SendDataOnly(arg,sizeof(args)); + dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==slsDetectorDefs::FAIL){ + dataSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Receiver returned error: " << mess << std::endl; + } + dataSocket->ReceiveDataOnly(&retval,sizeof(retval)); + + return ret; +} + + + int receiverInterface::getInt(int fnum, int64_t &retval){ int ret = slsDetectorDefs::FAIL; diff --git a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h index 27fbea6a1..11e433a08 100644 --- a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h +++ b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h @@ -95,6 +95,16 @@ public: */ int sendIntArray(int fnum, int64_t &retval, int64_t arg[2]); + + /** + * Send an integer to receiver + * @param fnum function enum to determine what parameter + * @param retval return value + * @param arg values to send + * \returns success of operation + */ + int sendIntArray(int fnum, int &retval, int arg[2]); + /** * Get an integer value from receiver * @param fnum function enum to determine what parameter From f517eb7a41d7f57aa594e0201365a6cf9f8e278a Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 16 Sep 2016 17:19:37 +0200 Subject: [PATCH 008/128] included json example with dummy values --- slsDetectorSoftware/CMakeLists.txt | 6 +++ .../multiSlsDetector/multiSlsDetector.cpp | 47 +++++++++++++++---- .../slsDetector/slsDetectorUtils.cpp | 2 +- .../slsDetectorClient/CMakeLists.txt | 8 ++++ 4 files changed, 53 insertions(+), 10 deletions(-) diff --git a/slsDetectorSoftware/CMakeLists.txt b/slsDetectorSoftware/CMakeLists.txt index 5263ea204..69f395cc9 100644 --- a/slsDetectorSoftware/CMakeLists.txt +++ b/slsDetectorSoftware/CMakeLists.txt @@ -39,6 +39,12 @@ add_definitions( -DDACS_INT ) +add_library(zmq STATIC IMPORTED ) + +set_target_properties(zmq PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../slsReceiverSoftware/include/libzmq.a +) + add_library(slsDetectorStatic STATIC ${SOURCES} ${HEADERS} diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 21b50a023..5d613e080 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -24,6 +24,7 @@ ID: $Id$ #include #include #include +#include //to scan json header in zmq stream using namespace std; @@ -5012,16 +5013,44 @@ void multiSlsDetector::startReceivingData(){ if(!idet) framecount++; //update indices, count only once - // receive a message, this is a blocking function - len = zmq_msg_init (&message); /* is this required? Xiaoqiang didnt have it*/ - if(len) {cprintf(RED,"Failed to initialize message %d for %d\n",len,ithread); continue; } //error + + //scan header-------------------------------------------------------- + zmq_msg_init (&message); + len = zmq_msg_recv(&message, zmqsocket, 0); + if (len == -1) { + zmq_msg_close(&message); + cprintf(RED, "%d message null\n",ithread); + continue; + } + rapidjson::Document d; + d.Parse((char*)zmq_msg_data(&message)); + // htype is an array of strings + rapidjson::Value::Array htype = d["htype"].GetArray(); + for(int i=0; i< htype.Size(); i++) + cout << ithread << "htype: " << htype[i].GetString() << endl;/*print*/ + // shape is an array of ints + rapidjson::Value::Array shape = d["shape"].GetArray(); + cout << ithread << "shape: "; /*print*/ + for(int i=0; i< shape.Size(); i++) + cout << ithread << shape[i].GetInt() << " ";/*print*/ + cout << endl; + + cout << ithread << "type: " << d["type"].GetString() << endl;/*print*/ + // close the message + zmq_msg_close(&message); + + + //scan data-------------------------------------------------------- + zmq_msg_init (&message); len = zmq_msg_recv(&message, zmqsocket, 0); - //if(len<1024*256) - //cprintf(RED,"got less than planned for socket %d\n",ithread); + //last one + if(len<1024*256){ + cprintf(RED,"got less than planned for socket %d\n",ithread); //end of socket - if (len <= 3 ) { + //if (len <= 3 ) { if(!len) cprintf(RED,"Received no data in socket for %d\n", ithread); + zmq_msg_close(&message); //cout< Date: Mon, 19 Sep 2016 12:34:31 +0200 Subject: [PATCH 009/128] bug fixed, rapidjson parse error --- .../multiSlsDetector/multiSlsDetector.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 5d613e080..b8506ac2e 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5022,20 +5022,25 @@ void multiSlsDetector::startReceivingData(){ cprintf(RED, "%d message null\n",ithread); continue; } + + rapidjson::Document d; - d.Parse((char*)zmq_msg_data(&message)); + // d.Parse((char*)zmq_msg_data(&message)); + d.Parse( (char*)zmq_msg_data(&message), zmq_msg_size(&message)); + // htype is an array of strings rapidjson::Value::Array htype = d["htype"].GetArray(); for(int i=0; i< htype.Size(); i++) - cout << ithread << "htype: " << htype[i].GetString() << endl;/*print*/ + std::cout << ithread << "htype: " << htype[i].GetString() << std::endl; // shape is an array of ints rapidjson::Value::Array shape = d["shape"].GetArray(); - cout << ithread << "shape: "; /*print*/ + cout << ithread << "shape: "; for(int i=0; i< shape.Size(); i++) - cout << ithread << shape[i].GetInt() << " ";/*print*/ + cout << ithread << shape[i].GetInt() << " "; cout << endl; - cout << ithread << "type: " << d["type"].GetString() << endl;/*print*/ + cout << ithread << "type: " << d["type"].GetString() << endl; + // close the message zmq_msg_close(&message); @@ -5046,7 +5051,7 @@ void multiSlsDetector::startReceivingData(){ //last one if(len<1024*256){ - cprintf(RED,"got less than planned for socket %d\n",ithread); + cprintf(RED,"got less than planned for socket %d, length:%d\n",ithread,len); //end of socket //if (len <= 3 ) { if(!len) cprintf(RED,"Received no data in socket for %d\n", ithread); From 904d21d0be7d172eed5a11880dcec4c17fd61e5c Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 19 Sep 2016 17:21:23 +0200 Subject: [PATCH 010/128] only missing data left to be handled in zmqthread in receiver --- .../multiSlsDetector/multiSlsDetector.cpp | 91 ++++++++----------- .../multiSlsDetector/multiSlsDetector.h | 8 ++ 2 files changed, 48 insertions(+), 51 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index b8506ac2e..faad273d3 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4989,32 +4989,24 @@ void multiSlsDetector::startReceivingData(){ //loop though the half readouts to start sockets + zmq_msg_t message; + int len,idet = 0; void *context; void *zmqsocket; context = zmq_ctx_new(); zmqsocket = zmq_socket(context, ZMQ_PULL); - //zmq_setsockopt(zmqsocket, ZMQ_SUBSCRIBE, "", 0); // an empty string implies receiving any messages - zmq_connect(zmqsocket, hostname); // connect to publisher,the publisher server does not have to be started + zmq_connect(zmqsocket, hostname); // connect to publisher,the publisher server does not have to be started pthread_mutex_lock(&ms); receivingDataThreadMask|=(1<<(ithread)); - //cout< Date: Tue, 20 Sep 2016 10:42:43 +0200 Subject: [PATCH 011/128] done with eiger --- .../multiSlsDetector/multiSlsDetector.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index faad273d3..bdb813614 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5040,10 +5040,12 @@ void multiSlsDetector::startReceivingData(){ currentFrameIndex = d["fIndex"].GetInt(); currentSubFrameIndex = d["subfnum"].GetInt(); strcpy(currentFileName ,d["fname"].GetString()); - cout << ithread << "Acquisition index: " << currentAcquisitionIndex << endl; - cout << ithread << "Frame index: " << currentFrameIndex << endl; - cout << ithread << "Subframe index: " << currentSubFrameIndex << endl; - cout << ithread << "File name: " << currentFileName << endl; +#ifdef VERYVERBOSE + cout << "Acquisition index: " << currentAcquisitionIndex << endl; + cout << "Frame index: " << currentFrameIndex << endl; + cout << "Subframe index: " << currentSubFrameIndex << endl; + cout << "File name: " << currentFileName << endl; +#endif } // close the message zmq_msg_close(&message); @@ -5056,7 +5058,9 @@ void multiSlsDetector::startReceivingData(){ //end of socket ("end") if (len < 1024*256 ) { if(!len) cprintf(RED,"Received no data in socket for %d\n", ithread); +#ifdef VERYVERBOSE cprintf(RED,"End of socket for %d\n", ithread); +#endif zmq_msg_close(&message); singleframe[ithread] = NULL; pthread_mutex_lock(&ms); @@ -5158,7 +5162,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //construct complete image and send to callback while(true){ - memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory + memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory //post all of them to start for(int ireadout=0; ireadout Date: Tue, 20 Sep 2016 15:11:39 +0200 Subject: [PATCH 012/128] done for eiger, some checks for frameindex=-1,socket closing earlier than last socket etc --- .../multiSlsDetector/multiSlsDetector.cpp | 13 ++++++++----- .../multiSlsDetector/multiSlsDetector.h | 2 +- slsDetectorSoftware/slsDetector/slsDetector.cpp | 2 +- slsDetectorSoftware/slsDetector/slsDetector.h | 2 +- .../slsDetector/slsDetectorUsers.cpp | 4 +++- slsDetectorSoftware/slsDetector/slsDetectorUsers.h | 9 +++++++++ .../slsDetector/slsDetectorUtils.cpp | 6 +++--- slsDetectorSoftware/slsDetector/slsDetectorUtils.h | 2 +- 8 files changed, 27 insertions(+), 13 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index bdb813614..57a2a31b6 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5046,7 +5046,9 @@ void multiSlsDetector::startReceivingData(){ cout << "Subframe index: " << currentSubFrameIndex << endl; cout << "File name: " << currentFileName << endl; #endif + if(currentFrameIndex ==-1) cprintf(RED,"multi frame index -1!!\n"); } + // close the message zmq_msg_close(&message); @@ -5058,9 +5060,9 @@ void multiSlsDetector::startReceivingData(){ //end of socket ("end") if (len < 1024*256 ) { if(!len) cprintf(RED,"Received no data in socket for %d\n", ithread); -#ifdef VERYVERBOSE +//#ifdef VERYVERBOSE cprintf(RED,"End of socket for %d\n", ithread); -#endif +//#endif zmq_msg_close(&message); singleframe[ithread] = NULL; pthread_mutex_lock(&ms); @@ -5173,6 +5175,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //get each frame for(int ireadout=0; ireadoutnumberOfDetectors; idet++) { if (detectors[idet]) { - ret1=detectors[idet]->setDataStreamingFromReceiver(enable); + ret1=detectors[idet]->enableDataStreamingFromReceiver(enable); if(detectors[idet]->getErrorMask()) setErrorMask(getErrorMask()|(1<setReadReceiverFrequency(1,n); } - +int slsDetectorUsers::enableDataStreamingFromReceiver(int i){ + return myDetector->enableDataStreamingFromReceiver(i); +} int64_t slsDetectorUsers::getModuleFirmwareVersion(){ diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h index 24abc2fc4..214661384 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h @@ -450,6 +450,15 @@ class slsDetectorUsers virtual void finalizeDataset(double *a, double *v, double *e, int &np); + + /** + Enable data streaming from receiver (zmq) + \param i 1 to set, 0 to reset and -1 to get + \returns data streaming enable + */ + int enableDataStreamingFromReceiver(int i=-1); + + /** get get Module Firmware Version \returns id diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 2faedf547..00579353a 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -66,16 +66,16 @@ int slsDetectorUtils::acquire(int delflag){ } //start data streaming threads in receiver if enabled - ret = setDataStreamingFromReceiver(-1); + ret = enableDataStreamingFromReceiver(-1); if(dataReady == NULL){ if(ret){ cout << "Disabling Data Streaming from Receiver" << endl; - setDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream. + enableDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream. } }else{ if(*threadedProcessing && (!ret)){ cout << "Enabling Data Streaming from Receiver" << endl; - setDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream. + enableDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream. } } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 929ce64ce..b7ae08eff 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -700,7 +700,7 @@ virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0; * @param enable 0 to disable 1 to enable -1 to only get the value * @returns data streaming */ -virtual int setDataStreamingFromReceiver(int enable=-1)=0; +virtual int enableDataStreamingFromReceiver(int enable=-1)=0; /** enable/disable or get data compression in receiver From d0501c31392df837ae681ee2bceeb66b1254c2aa Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 21 Sep 2016 16:37:29 +0200 Subject: [PATCH 013/128] creating and destroying sockets for each receiver start and stop in a single acquisition (to deal with scans etc) --- .../multiSlsDetector/multiSlsDetector.cpp | 359 +++++++++++------- .../multiSlsDetector/multiSlsDetector.h | 24 +- slsDetectorSoftware/slsDetector/slsDetector.h | 13 + .../slsDetector/slsDetectorUtils.cpp | 23 +- .../slsDetector/slsDetectorUtils.h | 12 + .../slsDetectorAnalysis/postProcessing.h | 1 - 6 files changed, 289 insertions(+), 143 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 57a2a31b6..ce4627cb0 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4958,17 +4958,111 @@ int multiSlsDetector::resetFramesCaught() { } +int multiSlsDetector::createReceivingDataThreads(bool destroy){ + + int numReadouts = thisMultiDetector->numberOfDetectors; + if(getDetectorsType() == EIGER) + numReadouts *= 2; + + //reset masks + killAllReceivingDataThreads = false; + pthread_mutex_lock(&ms); + receivingDataThreadMask = 0x0; + pthread_mutex_unlock(&(ms)); + + //destroy + if(destroy){ +#ifdef DEBUG + cout << "Destroying Receiving Data Thread(s)" << endl; +#endif + killAllReceivingDataThreads = true; + for(int i = 0; i < numReadouts; ++i){ + sem_post(&receivingDataSemaphore[i]); + pthread_join(receivingDataThreads[i],NULL); + sem_destroy(&receivingDataSemaphore[i]); + sem_destroy(&receivingDataSocketsCreatedSemaphore[i]); + sem_destroy(&sem_singlewait[i]); + sem_destroy(&sem_singledone[i]); + delete [] singleframe[i]; +#ifdef DEBUG + cout << "." << flush << endl; +#endif + } + killAllReceivingDataThreads = false; + threadStarted = false; + + cout << "Destroyed Receiving Data Thread(s)" << endl; + } + + //create + else{ +#ifdef DEBUG + cout << "Creating Receiving Data Thread(s)" << endl; +#endif + //reset current index + currentThreadIndex = -1; + + for(int i = 0; i < numReadouts; ++i){ + sem_init(&receivingDataSemaphore[i],1,0); + sem_init(&receivingDataSocketsCreatedSemaphore[i],1,0); + sem_init(&sem_singlewait[i],1,0); + sem_init(&sem_singledone[i],1,0); + threadStarted = false; + currentThreadIndex = i; + if(pthread_create(&receivingDataThreads[i], NULL,startReceivingDataThread, (void*) this)){ + cout << "Could not create receiving data thread with index " << i << endl; + return FAIL; + } + while(!threadStarted); +#ifdef DEBUG + cout << "." << flush << endl; +#endif + } + //cout << "Receiving Data Thread(s) created" << endl; + + for(int i=0;inumberOfDetectors; + if(getDetectorsType() == EIGER) + numReadouts *= 2; + + if(threadStarted){ + for(int i=0;istartReceivingData(); + ((multiSlsDetector*)this_pointer)->startReceivingDataThread(); return this_pointer; } -void multiSlsDetector::startReceivingData(){ +void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index threadStarted = true; //let calling function know thread started and obtained current - + //cout << ithread << " thread created" << endl; int numReadoutPerDetector = 1; bool jungfrau = false; @@ -4987,111 +5081,129 @@ void multiSlsDetector::startReceivingData(){ //cout << "ZMQ Client of " << ithread << " at " << hostname << endl; singleframe[ithread]=new int[nel]; - - //loop though the half readouts to start sockets - zmq_msg_t message; - int len,idet = 0; - void *context; - void *zmqsocket; - context = zmq_ctx_new(); - zmqsocket = zmq_socket(context, ZMQ_PULL); - zmq_connect(zmqsocket, hostname); // connect to publisher,the publisher server does not have to be started - pthread_mutex_lock(&ms); - receivingDataThreadMask|=(1<<(ithread)); - pthread_mutex_unlock(&ms); - - - //read frame + /* outer loop - loops once for each acquisition */ + //infinite loop, exited only at the end of acquire() while(true){ - sem_wait(&sem_singlewait[ithread]); //wait for it to be copied + zmq_msg_t message; + int len,idet = 0; + void *context; + void *zmqsocket; + context = zmq_ctx_new(); + zmqsocket = zmq_socket(context, ZMQ_PULL); + zmq_connect(zmqsocket, hostname); + //cprintf(BLUE,"%d ZMQ Client Socket at %s\n",ithread, hostname); + sem_post(&receivingDataSocketsCreatedSemaphore[ithread]); - //scan header------------------------------------------------------------------- - zmq_msg_init (&message); - len = zmq_msg_recv(&message, zmqsocket, 0); - if (len == -1) { - zmq_msg_close(&message); - cprintf(RED, "%d message null\n",ithread); - continue; - } - - // error if you print it - // cout << ithread << " header len:"<numberOfDetectors; - - //create threads - /** Data Callback Threads */ - pthread_t receivingDataThreads[numReadouts]; - volatile uint64_t expectedMask = 0x0; - receivingDataThreadMask = 0x0; - currentThreadIndex = -1; + //initializing variables strcpy(currentFileName,""); - for(int i = 0; i < numReadouts; ++i){ - threadStarted = false; - currentThreadIndex = i; - sem_init(&sem_singlewait[i],1,0); - sem_init(&sem_singledone[i],1,0); - if(pthread_create(&receivingDataThreads[i], NULL,startReceivingDataThread, (void*) this)){ - cprintf(RED, "ERROR: Could not create receiving thread with index %d\n",i); - return; - } - while(!threadStarted); - //cout << "Data Thread created successfully for " << i << endl; - expectedMask|=(1<getDataBytes(); @@ -5158,9 +5250,14 @@ void multiSlsDetector::readFrameFromReceiver(){ - sem_post(&dataThreadStartedSemaphore); //let utils:acquire continue to start measurement/acquisition + volatile uint64_t expectedMask = 0x0; + for(int i = 0; i < numReadouts; ++i) + expectedMask|=(1< Date: Thu, 22 Sep 2016 17:16:49 +0200 Subject: [PATCH 014/128] settings initially at UNINITIALIZED in eiger server --- ....5.14.3 => eigerDetectorServerv2.1.0.14.0} | Bin 277442 -> 277482 bytes .../slsDetectorFunctionList.c | 6 ++++-- .../slsDetectorServer_funcs.c | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.0.5.14.3 => eigerDetectorServerv2.1.0.14.0} (61%) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.0.5.14.3 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 similarity index 61% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.0.5.14.3 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 index 5cc214ad1b898cee7653d200dad3f7e4d80556b6..2060a26d530118f4b6ffac9926d498b52b516cda 100755 GIT binary patch delta 47620 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 SIfqwrY?vMVahHTwto(n-DzX&- delta 46930 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 b@c#aB5gO_`^vFuix;0Ti6`? diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 9533efa17..6dfd67b74 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -130,7 +130,7 @@ int initDetector(){ detectorGain[i] = default_gain_values[(int)STANDARD]; for(i=0;i Date: Thu, 22 Sep 2016 17:18:35 +0200 Subject: [PATCH 015/128] updatereveiger --- slsDetectorSoftware/eigerDetectorServer/gitInfo.txt | 10 +++++----- slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h | 8 ++++---- slsDetectorSoftware/gitInfo.txt | 10 +++++----- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index b4085a0de..699f0201f 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: e9878a26ffb7e57c6e6724215e46ae5634871e64 -Revision: 231 -Branch: developer +Repsitory UUID: 372aa91aaff8c6acd0fb70a257774ac56974a4b1 +Revision: 233 +Branch: 2.1-rc Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 336 -Last Changed Date: 2016-08-24 16:47:14 +0200 +Last Changed Rev: 22 +Last Changed Date: 2016-09-22 17:16:49 +0200 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 72d23e86b..2f61cd1dc 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "e9878a26ffb7e57c6e6724215e46ae5634871e64" -//#define SVNREV 0x336 +#define SVNREPUUID "372aa91aaff8c6acd0fb70a257774ac56974a4b1" +//#define SVNREV 0x22 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x336 -#define SVNDATE 0x20160824 +#define SVNREV 0x22 +#define SVNDATE 0x20160922 // diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index c3236dfef..6e76b64a9 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: e9878a26ffb7e57c6e6724215e46ae5634871e64 -Revision: 1149 -Branch: developer +Repsitory UUID: 372aa91aaff8c6acd0fb70a257774ac56974a4b1 +Revision: 1154 +Branch: 2.1-rc Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1149 -Last Changed Date: 2016-08-24 16:47:14 +0200 +Last Changed Rev: 1154 +Last Changed Date: 2016-09-22 17:16:49 +0200 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 35c43465a..a89498b61 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "e9878a26ffb7e57c6e6724215e46ae5634871e64" -//#define SVNREV 0x1149 +#define SVNREPUUIDLIB "372aa91aaff8c6acd0fb70a257774ac56974a4b1" +//#define SVNREV 0x1154 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1149 -#define SVNDATELIB 0x20160824 +#define SVNREVLIB 0x1154 +#define SVNDATELIB 0x20160922 // From d904f7b32ea8025d8dd1803a9f7d1e425395e9d6 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 23 Sep 2016 14:28:20 +0200 Subject: [PATCH 016/128] adding 16 bit rate correction in eiger --- slsDetectorSoftware/commonFiles/error_defs.h | 6 ++-- .../eigerDetectorServer/FebControl.c | 31 ++++++++++++++++--- .../eigerDetectorServer/FebControl.h | 2 ++ .../slsDetectorFunctionList.c | 23 ++++++++++++-- .../slsDetector/slsDetector.cpp | 20 +++++++++--- .../slsDetectorServer_funcs.c | 21 ++++++++++--- 6 files changed, 84 insertions(+), 19 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 89798faef..530c8c9c5 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -59,7 +59,7 @@ using namespace std; #define COULD_NOT_PULSE_CHIP 0x0000000000100000ULL #define COULD_NOT_SET_RATE_CORRECTION 0x0000000000200000ULL #define DETECTOR_NETWORK_PARAMETER 0x0000000000400000ULL -#define RATE_CORRECTION_NOT_32BIT 0x0000000000800000ULL +#define RATE_CORRECTION_NOT_32or16BIT 0x0000000000800000ULL #define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000001000000ULL // 0x00000000FFFFFFFFULL @@ -192,8 +192,8 @@ public: if(slsErrorMask&DETECTOR_NETWORK_PARAMETER) retval.append("Could not set/get detector network parameter\n"); - if(slsErrorMask&RATE_CORRECTION_NOT_32BIT) - retval.append("Rate correction Deactivated, must be in 32 bit mode\n"); + if(slsErrorMask&RATE_CORRECTION_NOT_32or16BIT) + retval.append("Rate correction Deactivated, must be in 32 or 16 bit mode\n"); if(slsErrorMask&RATE_CORRECTION_NO_TAU_PROVIDED) retval.append("Rate correction Deactivated. No default tau provided in file\n"); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index a07d6b2fb..fe63977af 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -51,6 +51,7 @@ double Feb_Control_exposure_period_in_sec; int64_t Feb_Control_RateTable_Tau_in_nsec = -1; int64_t Feb_Control_RateTable_Subexptime_in_nsec = -1; +int64_t Feb_Control_RateTable_Exptime_in_nsec = -1; unsigned int Feb_Control_trimbit_size; unsigned int* Feb_Control_last_downloaded_trimbits; @@ -1371,6 +1372,7 @@ int Feb_Control_SetExposureTime(double the_exposure_time_in_sec){ return 1; } double Feb_Control_GetExposureTime(){return Feb_Control_exposure_time_in_sec;} +int64_t Feb_Control_GetExposureTime_in_nsec(){return (int64_t)(Feb_Control_exposure_time_in_sec*(1E9));} int Feb_Control_SetSubFrameExposureTime(int64_t the_subframe_exposure_time_in_10nsec){ Feb_Control_subframe_exposure_time_in_10nsec = the_subframe_exposure_time_in_10nsec; @@ -1790,25 +1792,39 @@ int Feb_Control_PulseChip(int npulses){ int64_t Feb_Control_Get_RateTable_Tau_in_nsec(){ return Feb_Control_RateTable_Tau_in_nsec;} int64_t Feb_Control_Get_RateTable_Subexptime_in_nsec(){ return Feb_Control_RateTable_Subexptime_in_nsec;} +int64_t Feb_Control_Get_RateTable_Exptime_in_nsec(){ return Feb_Control_RateTable_Exptime_in_nsec;} //returns -1 if slope is too high int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ + double exptime_in_sec = Feb_Control_GetExposureTime(); double sub_expure_time_in_sec = (double)(Feb_Control_GetSubFrameExposureTime())/(double)1e9; + + + int dr = Feb_Control_GetDynamicRange(); + double period_in_sec = sub_expure_time_in_sec; + if(dr == 16) + period_in_sec = exptime_in_sec; + double tau_in_sec = (double)tau_in_Nsec/(double)1e9; unsigned int np = 16384; //max slope 16 * 1024 double b0[1024]; double m[1024]; - if(tau_in_sec<0||sub_expure_time_in_sec<0){ - printf("Error tau %f and sub_expure_time %f must be greater than 0.\n", tau_in_sec, sub_expure_time_in_sec); + + if(tau_in_sec<0||period_in_sec<0){ + if(dr == 32) + printf("Error tau %f and sub_exposure_time %f must be greater than 0.\n", tau_in_sec, sub_expure_time_in_sec); + else + printf("Error tau %f and exposure_time %f must be greater than 0.\n", tau_in_sec, exptime_in_sec); return 0; } printf("\tCalculating table for tau of %lld ns.\n", tau_in_Nsec); int i; for(i=0;imyDetectorType == EIGER) && (t>=0) && getRateCorrection(r)){ + if( (thisDetector->myDetectorType == EIGER) && + getRateCorrection(r) && + (t>=0) && + + (((index == SUBFRAME_ACQUISITION_TIME) && (thisDetector->dynamicRange == 32))|| + ((index == ACQUISITION_TIME) && (thisDetector->dynamicRange == 16))) + + && (t>=0) && getRateCorrection(r)){ setRateCorrection(r); } @@ -4515,8 +4523,12 @@ int slsDetector::setDynamicRange(int n){ if (rateret==FAIL) { controlSocket->ReceiveDataOnly(mess,sizeof(mess)); std::cout<< "Detector returned error: " << mess << std::endl; - if(strstr(mess,"Rate Correction")!=NULL) - setErrorMask((getErrorMask())|(RATE_CORRECTION_NOT_32BIT)); + if(strstr(mess,"Rate Correction")!=NULL){ + if(strstr(mess,"32")!=NULL) + setErrorMask((getErrorMask())|(RATE_CORRECTION_NOT_32or16BIT)); + else + setErrorMask((getErrorMask())|(COULD_NOT_SET_RATE_CORRECTION)); + } } } controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); @@ -5090,7 +5102,7 @@ int slsDetector::setRateCorrection(double t){ if(strstr(mess,"default tau")!=NULL) setErrorMask((getErrorMask())|(RATE_CORRECTION_NO_TAU_PROVIDED)); if(strstr(mess,"32")!=NULL) - setErrorMask((getErrorMask())|(RATE_CORRECTION_NOT_32BIT)); + setErrorMask((getErrorMask())|(RATE_CORRECTION_NOT_32or16BIT)); else setErrorMask((getErrorMask())|(COULD_NOT_SET_RATE_CORRECTION)); } diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index bbba27be6..63b95f90f 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -2788,15 +2788,26 @@ int set_dynamic_range(int file_des) { #endif } if(ret == OK){ + int old_dr = setDynamicRange(-1); retval=setDynamicRange(dr); if (dr>=0 && retval!=dr) ret=FAIL; //look at rate correction only if dr change worked - if((ret==OK) && (dr!=32) && (dr!=-1) && (getRateCorrectionEnable())){ + if((ret==OK) && (dr!=32) && (dr!=16) && (dr!=-1) && (getRateCorrectionEnable())){ setRateCorrection(0); - strcpy(mess,"Switching off Rate Correction. Must be in 32 bit mode\n"); + strcpy(mess,"Switching off Rate Correction. Must be in 32 or 16 bit mode\n"); cprintf(RED,"%s",mess); rateret = FAIL; + }else{ + //setting it if dr changed from 16 to 32 or vice versa with tau value as in rate table + if((dr!=-1) && (old_dr != dr) && getRateCorrectionEnable() && (dr == 16 || dr == 32)){ + setRateCorrection(-1); //tau_ns will not be -1 here + if(!getRateCorrectionEnable()){ + strcpy(mess,"Deactivating Rate Correction. Could not set it.\n"); + cprintf(RED,"%s",mess); + ret=FAIL; + } + } } } #endif @@ -3978,9 +3989,9 @@ int set_rate_correct(int file_des) { //set rate else{ - //not 32 bit mode - if((setDynamicRange(-1)!=32) && (tau_ns!=0)){ - strcpy(mess,"Rate correction Deactivated, must be in 32 bit mode\n"); + //not 32 or 16 bit mode + if((setDynamicRange(-1)!=32) && (setDynamicRange(-1)!=16) && (tau_ns!=0)){ + strcpy(mess,"Rate correction Deactivated, must be in 32 or 16 bit mode\n"); cprintf(RED,"%s",mess); ret=FAIL; } From 1b61e10e36bf7f2f72fe86548f6533998a353e8a Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 23 Sep 2016 14:32:21 +0200 Subject: [PATCH 017/128] forgot to add eiger binary --- ....0.14.0 => eigerDetectorServerv2.2.0.14.0} | Bin 277482 -> 281710 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.1.0.14.0 => eigerDetectorServerv2.2.0.14.0} (53%) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 similarity index 53% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 index 2060a26d530118f4b6ffac9926d498b52b516cda..5e350c410254cfe59ea59d3aa2921b3b2d4d4300 100755 GIT binary patch delta 56631 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ΞURxlfT%i1E~ zdgi|d`~Mc0A^7T*jm={EVKDH*l8sM0x093gbA{*8W5DAAahcp#56l+J?pGq4hJ-DY zjfE+r0Q4fRA3*)xWA&%{CM%<31GZnDCR43%uwY<|Oq~t^AU!)Ys&2voC$X#bxEC%h0Q6TI0>+oZ&c`M^9) zrs0L-w`eeU^_qrn*xO5h*&@@rfx&+q<0iG8oH9tqLuGp(I%u2R@P;YzsDgY9p>_ZF z#wg>o7HGs8d($v&JYxd9r($V^MS_<{?_wq1-2?$ae(aVvuL7>OE#UpJGOlX_u4as9 zxqU^b&ra;EQ{sbg(3|-F@5Qvsq#hsP3e7OtNQeTDD6wk@boOHJOYmyyG4Gb%*O9jZ z>LYkRgayz*&;s7C@HrY55ZSi;+;BYmwSr#4`+qLpYJKe}C}akFM8ZSw@mY|&3{NJc z&=Gs#$*ol8@4)Zi2a4Q(1I-Gy0=YLT<2)!Bv_LMFcJ}}nf(mR^_#F|jk5{tX$CNQ; z(O3_2ccFqeq(U$9R^SFcP~sXIk~~%z({T9`;C35N$BW1LEf~@U#<{pT?E<}w@hM6~ z0{TQG7o3G77QEQxg=6{;vAbbbh-Ri=4Q?v{BTTQQzp{h|45s4|YiK3-2N>V4j0n)J zh0F#1O&F35fb5jhTY*Q6^T!H)uY~9X13S(1=fKbqQsHgj#t{4^aMKu`fkW(Qhrie3 zs1@-i88=>g_3D`?&&e-9?uvDkJ6T_m=}1j0m}{)P@~X>M-*D~qGf$p7E8jvlUa`tT jv-EA5jwybBrsIt;e}~u6Gr`}Q@9<3ae{!0me$u}K4E&o% From 5f4a4b0d901eb50276554a4a00ce1ce2129356b4 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 23 Sep 2016 17:15:16 +0200 Subject: [PATCH 018/128] maybe fixed 16 bit rate corr eiger --- slsDetectorSoftware/commonFiles/error_defs.h | 3 + .../eigerDetectorServer/FebControl.c | 36 ++--- .../eigerDetectorServer/FebControl.h | 3 +- .../bin/eigerDetectorServerv2.2.0.14.0 | Bin 281710 -> 281582 bytes .../slsDetectorFunctionList.c | 14 +- .../multiSlsDetector/multiSlsDetector.cpp | 15 ++ .../multiSlsDetector/multiSlsDetector.h | 5 + .../slsDetector/slsDetector.cpp | 64 ++++++++ slsDetectorSoftware/slsDetector/slsDetector.h | 7 +- .../slsDetector/slsDetectorCommand.cpp | 150 ++++++++++-------- .../slsDetector/slsDetectorUtils.h | 6 + 11 files changed, 206 insertions(+), 97 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 530c8c9c5..f71349d54 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -61,6 +61,7 @@ using namespace std; #define DETECTOR_NETWORK_PARAMETER 0x0000000000400000ULL #define RATE_CORRECTION_NOT_32or16BIT 0x0000000000800000ULL #define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000001000000ULL +#define PROGRAMMING_ERROR 0x0000000002000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -198,6 +199,8 @@ public: if(slsErrorMask&RATE_CORRECTION_NO_TAU_PROVIDED) retval.append("Rate correction Deactivated. No default tau provided in file\n"); + if(slsErrorMask&PROGRAMMING_ERROR) + retval.append("Could not program FPGA\n"); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index fe63977af..e96794689 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -50,8 +50,7 @@ int64_t Feb_Control_subframe_exposure_time_in_10nsec; double Feb_Control_exposure_period_in_sec; int64_t Feb_Control_RateTable_Tau_in_nsec = -1; -int64_t Feb_Control_RateTable_Subexptime_in_nsec = -1; -int64_t Feb_Control_RateTable_Exptime_in_nsec = -1; +int64_t Feb_Control_RateTable_Period_in_nsec = -1; unsigned int Feb_Control_trimbit_size; unsigned int* Feb_Control_last_downloaded_trimbits; @@ -1791,35 +1790,33 @@ int Feb_Control_PulseChip(int npulses){ int64_t Feb_Control_Get_RateTable_Tau_in_nsec(){ return Feb_Control_RateTable_Tau_in_nsec;} -int64_t Feb_Control_Get_RateTable_Subexptime_in_nsec(){ return Feb_Control_RateTable_Subexptime_in_nsec;} -int64_t Feb_Control_Get_RateTable_Exptime_in_nsec(){ return Feb_Control_RateTable_Exptime_in_nsec;} +int64_t Feb_Control_Get_RateTable_Period_in_nsec(){ return Feb_Control_RateTable_Period_in_nsec;} //returns -1 if slope is too high int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ - double exptime_in_sec = Feb_Control_GetExposureTime(); - double sub_expure_time_in_sec = (double)(Feb_Control_GetSubFrameExposureTime())/(double)1e9; - - + //period = exptime if 16bit, period = subexptime if 32 bit int dr = Feb_Control_GetDynamicRange(); - double period_in_sec = sub_expure_time_in_sec; + double period_in_sec = (double)(Feb_Control_GetSubFrameExposureTime())/(double)1e9; if(dr == 16) - period_in_sec = exptime_in_sec; + period_in_sec = Feb_Control_GetExposureTime(); + double tau_in_sec = (double)tau_in_Nsec/(double)1e9; unsigned int np = 16384; //max slope 16 * 1024 double b0[1024]; double m[1024]; - if(tau_in_sec<0||period_in_sec<0){ if(dr == 32) - printf("Error tau %f and sub_exposure_time %f must be greater than 0.\n", tau_in_sec, sub_expure_time_in_sec); + printf("Error tau %f and sub_exposure_time %f must be greater than 0.\n", tau_in_sec, period_in_sec); else - printf("Error tau %f and exposure_time %f must be greater than 0.\n", tau_in_sec, exptime_in_sec); + printf("Error tau %f and exposure_time %f must be greater than 0.\n", tau_in_sec, period_in_sec); return 0; } + cprintf(BLUE, "Changing Rate Correction Table tau:%f sec, period:%f sec",tau_in_sec,period_in_sec); + printf("\tCalculating table for tau of %lld ns.\n", tau_in_Nsec); int i; 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

9^ea)ivFL= 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 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 new file mode 100755 index 0000000000000000000000000000000000000000..caf0f06eee7fcebcd8e0edc8c3e591e6a6a769d6 GIT binary patch literal 135700 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 filesize) //less than 2mb + unitprogramsize = filesize; +#ifdef VERY_VERBOSE + printf("unit size to receive is:%d\n",unitprogramsize); + printf("filesize:%d currentpointer:%d\n",filesize,currentPointer); +#endif + //receive + n = receiveDataOnly(file_des,fpgasrc,unitprogramsize); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + + + if(!(unitprogramsize - filesize)){ + fpgasrc[unitprogramsize]='\0'; + filesize-=unitprogramsize; + unitprogramsize++; + }else + filesize-=unitprogramsize; + + + if (ret==OK) { + if (differentClients==1 && lockStatus==1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else{ + ret = writeFPGAProgram(fpgasrc,unitprogramsize,fp); + } + } + + if(ret!=FAIL){ + if (differentClients) + ret=FORCE_UPDATE; + } + + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n += sendDataOnly(file_des,mess,sizeof(mess)); + cprintf(RED,"Failure: Breaking out of program receiving\n"); + break; + } + + //print progress + printf("Writing to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100) ); + fflush(stdout); + + } + printf("\n"); + + //closing file pointer to flash and informing FPGA + if(stopWritingFPGAprogram(fp) == FAIL){ + sprintf(mess,"Could not write to flash. Error at end.\n"); + cprintf(RED,"%s",mess); + ret=FAIL; + } + + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + + + //free resources + free(fpgasrc); + if(fp!=NULL) + fclose(fp); +#ifdef VERY_VERBOSE + printf("Done with program receiving command\n"); +#endif + /*return ok/fail*/ + return ret; +} diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h index 2d674a1d0..154022e75 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h @@ -95,4 +95,6 @@ int set_roi(int); int set_ctb_pattern(int); int write_adc_register(int);; + +int program_fpga(int); #endif diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index a89498b61..fbcb75f9e 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "372aa91aaff8c6acd0fb70a257774ac56974a4b1" -//#define SVNREV 0x1154 +#define SVNREPUUIDLIB "d0ef24c35c9b677a297a0ebf7f19a0196df424b5" +//#define SVNREV 0x1164 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1154 -#define SVNDATELIB 0x20160922 +#define SVNREVLIB 0x1164 +#define SVNDATELIB 0x20160926 // diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index ed7c4e265..f35e0e64e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -6383,8 +6383,9 @@ int slsDetector::writeSettingsFile(string fname, int imod, int* iodelay){ int slsDetector::programFPGA(string fname){ + int ret=FAIL; - if(thisDetector->myDetectorType != EIGER){/**jungfrau*/ + if(thisDetector->myDetectorType != JUNGFRAU){ std::cout << "Not implemented for this detector" << std::endl; return FAIL; } @@ -6397,12 +6398,19 @@ int slsDetector::programFPGA(string fname){ return FAIL; } - //convert it to rawbin - string destfname = fname; - destfname.replace(destfname.end()-4,destfname.end(),".rawbin"); //replace .pof with .rawbin -//#ifdef VERBOSE + //create destination file name,replaces original filename with Jungfrau.rawbin + string destfname; + size_t found = fname.find_last_of("/\\"); + if(found == string::npos) + destfname = ""; + else + destfname = fname.substr(0,found+1); + destfname.append("Jungfrau_MCB.rawbin"); + + +#ifdef VERBOSE std::cout << "Converting " << fname << " to " << destfname << std::endl; -//#endif +#endif int filepos,x,y,i; FILE* src = fopen(fname.c_str(),"rb"); FILE* dst = fopen(destfname.c_str(),"wb"); @@ -6424,25 +6432,141 @@ int slsDetector::programFPGA(string fname){ fputc(y,dst); } if (filepos < 0x1000000){ - std::cout << "ERROR: EOF before end of flash" << std::endl; + std::cout << "Could not convert programming file. EOF before end of flash" << std::endl; setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); return FAIL; } -//#ifdef VERBOSE - std::cout << "File has been converted to " << destfname << ". Sending it to /tftpboot" << std::endl; -//#endif +#ifdef VERBOSE + std::cout << "File has been converted to " << destfname << std::endl; +#endif - string copytoTftpboot = "cp " + destfname + " /tftpboot"; - system(copytoTftpboot.c_str()); -//#ifdef VERBOSE - std::cout << "File has been copied to /tftpboot" << std::endl; -//#endif + //loading file to memory + FILE* fp = fopen(destfname.c_str(),"r"); + if(fp == NULL){ + std::cout << "Could not open rawbin file" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } + if(fseek(fp,0,SEEK_END)){ + std::cout << "Seek error in rawbin file" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } + size_t filesize = ftell(fp); + if(filesize == -1){ + std::cout << "Could not get length of rawbin file" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } + rewind(fp); + char* fpgasrc = (char*)malloc(filesize+1); + if(fpgasrc == NULL){ + std::cout << "Could not allocate size of program" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } + if(fread(fpgasrc, sizeof(char), filesize, fp) != filesize){ + std::cout << "Could not read rawbin file" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } + + if(fclose(fp)){ + std::cout << "Could not close rawbin file" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } +#ifdef VERBOSE + std::cout << "Successfully loaded the rawbin file" << std::endl; +#endif + + const size_t maxprogramsize = 2 * 1024 *1024; + size_t unitprogramsize = 0; + int currentPointer = 0; + size_t totalsize = filesize; + + int fnum=F_PROGRAM_FPGA; + char mess[MAX_STR_LENGTH]=""; + int64_t retval = -1; +#ifdef VERBOSE + std::cout<< "Sending programming binary to detector " << endl; +#endif + if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (connectControl() == OK){ + controlSocket->SendDataOnly(&fnum,sizeof(fnum)); + controlSocket->SendDataOnly(&filesize,sizeof(filesize)); + + //check opening error + controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + filesize = 0; + } + + if(ret!=FAIL){ + std::cout<< "This can take awhile. Please be patient..." << endl; + printf("Erasing Flash:%d%%\r",0); + std::cout << flush; + int count = 65; + while(count>0){ + usleep(1 * 1000 * 1000); + count--; + printf("Erasing Flash:%d%%\r",(int) (((double)(65-count)/65)*100)); + std::cout << flush; + } + std::cout< 0){ + + unitprogramsize = maxprogramsize; //2mb + if(unitprogramsize > filesize) //less than 2mb + unitprogramsize = filesize; +#ifdef VERBOSE + std::cout << "unitprogramsize:" << unitprogramsize << "\t filesize:" << filesize << std::endl; +#endif + controlSocket->SendDataOnly(fpgasrc+currentPointer,unitprogramsize); + controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + break; + } + filesize-=unitprogramsize; + currentPointer+=unitprogramsize; + + //print progress + printf("Writing Program to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100)); + std::cout << flush; + + } + std::cout<ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + } + disconnectControl(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } - return OK; + //free resources + free(fpgasrc); + + return ret; } From d3c4d52118f5eb3ae7c5439f2c6420092e5f4c3e Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 29 Sep 2016 10:29:48 +0200 Subject: [PATCH 022/128] updaterev --- slsDetectorSoftware/eigerDetectorServer/gitInfo.txt | 6 +++--- slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h | 4 ++-- slsDetectorSoftware/gitInfo.txt | 10 +++++----- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index cd9d988a3..26ed16c52 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: d0ef24c35c9b677a297a0ebf7f19a0196df424b5 -Revision: 237 +Repsitory UUID: c829da8894d7532ecedd7f41099f93de60d9ab00 +Revision: 240 Branch: developer Last Changed Author: Dhanya_Maliakal Last Changed Rev: 22 -Last Changed Date: 2016-09-26 12:00:23 +0200 +Last Changed Date: 2016-09-29 10:28:37 +0200 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 530c99b36..1c72c9b8e 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "d0ef24c35c9b677a297a0ebf7f19a0196df424b5" +#define SVNREPUUID "c829da8894d7532ecedd7f41099f93de60d9ab00" //#define SVNREV 0x22 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" #define SVNREV 0x22 -#define SVNDATE 0x20160926 +#define SVNDATE 0x20160929 // diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index 6e76b64a9..e966f94db 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 372aa91aaff8c6acd0fb70a257774ac56974a4b1 -Revision: 1154 -Branch: 2.1-rc +Repsitory UUID: c829da8894d7532ecedd7f41099f93de60d9ab00 +Revision: 1167 +Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1154 -Last Changed Date: 2016-09-22 17:16:49 +0200 +Last Changed Rev: 1167 +Last Changed Date: 2016-09-29 10:28:37 +0200 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index fbcb75f9e..cfa84c3ff 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "d0ef24c35c9b677a297a0ebf7f19a0196df424b5" -//#define SVNREV 0x1164 +#define SVNREPUUIDLIB "c829da8894d7532ecedd7f41099f93de60d9ab00" +//#define SVNREV 0x1167 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1164 -#define SVNDATELIB 0x20160926 +#define SVNREVLIB 0x1167 +#define SVNDATELIB 0x20160929 // From f513fb06fba33fda764c45f32525c5faa3f05325 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 30 Sep 2016 07:56:54 +0200 Subject: [PATCH 023/128] switching the gpio definitions into function implementation --- .../jungfrauDetectorServer/firmware_funcs.c | 27 ++++++++---------- .../jungfrauDetectorServerTest | Bin 135700 -> 0 bytes .../jungfrauDetectorServerv2.2.0 | Bin 135700 -> 0 bytes .../jungfrauDetectorServerv2.2.1 | Bin 0 -> 136036 bytes .../jungfrauDetectorServer/server_funcs.c | 9 +----- .../slsDetector/slsDetector.cpp | 10 ++++--- 6 files changed, 19 insertions(+), 27 deletions(-) delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerTest delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 create mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 39f5df976..6bbab7da2 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -3408,25 +3408,17 @@ int startWritingFPGAprogram(FILE** filefp){ return FAIL; } strcat(mtdvalue,pch); - printf ("\nWriting FPGA program to flash.\nThe drive is %s\n",mtdvalue); + printf ("\nFlash drive found: %s\n",mtdvalue); + //define the gpio pins + system("echo 7 > /sys/class/gpio/export"); + system("echo 9 > /sys/class/gpio/export"); + //define their direction + system("echo in > /sys/class/gpio/gpio7/direction"); + system("echo out > /sys/class/gpio/gpio9/direction"); //tell FPGA to not touch flash system("echo 0 > /sys/class/gpio/gpio9/value"); - /* - char output2[255]; - fp = popen("echo 0 > /sys/class/gpio/gpio9/value","r"); - fgets(output2, sizeof(output2), fp); - pclose(fp); - printf("strlen output %d\n", strlen(output2)); //always 1 - printf("output got:%s\n",output2); - if(strstr (output2,"No such file or directory")!= NULL){ //doesnt notice - printf("matched!\n"); - return -1; - } - printf("not matched\n"); -*/ - //writing the program to flash *filefp = fopen(mtdvalue, "w"); @@ -3473,6 +3465,11 @@ int stopWritingFPGAprogram(FILE* filefp){ } printf("FPGA has picked up the program from flash\n\n"); + //undefine the pins + system("echo 7 > /sys/class/gpio/unexport"); + system("echo 9 > /sys/class/gpio/unexport"); + + return OK; } diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerTest b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerTest deleted file mode 100755 index cf3566f1de072ca5d45eaa9c106ff379515c2441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135700 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 JLj1To@qdx7Z?XUY diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 deleted file mode 100755 index caf0f06eee7fcebcd8e0edc8c3e591e6a6a769d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135700 zcmb@v4SZC^)jxhWA#f8GxJdvPgR()CfT&AA4T!i2AP|8p5CJXXhD3>q3iuXY-2{|? zh`WLU6?GSFOD#VC4O*Ma+IC~DQXii_3$~BcTHVXV6cuHIZwmtZ`<|Kmws}F@{`2`v z_TG6pbLPyMGiT16nY-}%X_bN?bVHaZ*j7XZ+uKtF+Xpd0kOcND+sv@ zUys^xiXdEzFdpGLgzJlKevj*tdwY2I{`R4!3Cgq;nFwEnCnyW>v|z=kCb#0U2^0=* z+Wmdj4T|`7PXxyf;b^8H*hfgyl!0&B5!{ONO#z|OHC?g4EzRnM{|$dm^cfZqgw!HA zJ4ebb&RKltmaPkB1r`d!0&;e8P&qKjK`66#ces@yC_m)Qg@WjHJYzd52$3wbOrUz` zjh^-V6jx@?VP#4c>1`@!!|y_2sxoCoHi8%s>^&WN{xW-(qtr!EW*M-oaOt@@+#D3t z-)+_F5{_;_+{v)u4M#+80wEq*?TpI}Z%GZwpy-i`r9i0?Twy~H)M+8XeuWg5MOSuB zbI>OCl-$am6#@nI&8?!hq;+MgUm?ujr1oh`z zv%OCr~nh9DPvpKO1H0h;7Xe^aHXIg4+{2fl7JTWbh?!h zD+LPbom#ySRx%z@O2d%lAh;nbeI zz;GpTX4}oBN*wjZS5ke6aG6U`@7XFjt?6GQ{cB75f~{1;z*PbT^_s054wWqYnTYzS zhl6sPET~fjzZ@+S)Rtk^9)kM+Z4nr!lpI-^()qA1 zOE@}INQTEW32H^LXwLx+KSX{6b=wxvE2zak6Yzi1DADCszD5dy`py=oB8Y-Imc5Iw}9;O`32j+)5>KAgGsZ z$p#;K@#fX=s{ww3`q$#Y2x`wQNsI^Y06`6oaw-+Vyoy2vl3VRp%-?K))JJCuQh`D(UW?87=2z*%#;MR_QrChrX>d#fPCqbI*;Dr6|-L}sH^f; zWP?_#N4mWO@cYDMx0m|xvB^Piq2d+<_0h>r?{dU6OfK@CtP<2UlcU~Tyswz-R3@PR zOO*M1wv@%UYMhpfAj{^w1h|MgReH(n~~ zfl;^wJcFQCgSW^1SwJXN?gy>zU$YE(*6jpW9Ryb$ELGMacHNrch+U4@cMjf{#z!K5|j`qM@ zOftH{6c~Jsjz*%gE_a2aHi71$TxX&k47XC#OF)pe07?zP z;&mP?C`Uax2yUerIhuP(ts?|8&fXhixHpX!Jy%U1!0F=;n=whmB>TiHG1GDdWm>M( zWacT#6O^Jnk0oYazM#y@_giA@eNk86m?dUjKji5r?KR=lIRvH7;eW-9kHL@_ z##sQJu0XQHBrgDl7kDf&qX$8@50YB*EN$IgC@8xNrPh9yxY{9tQaeOyby(u+oWQ{; zwdPynE<)TzQfq%p-29<}GJmMlI=~WlXc%PhFsXH*C9ZNfW|84i>jjp$7~*1xE3m|U zeJLdMrBdsKmbmB$L5Yr#S_fI;HeDttn=X@DotC(HmxGd*ORa^LxScM{C@!h>B1_z= zV$49rQtJ>)+*ZVGMciOZ+>lWiL!+eDi!E`ZuLMo6lv*#b#2vZ{?Y&BB9cqb7TrDVx ztEJXqmbkjHpx;=jb+{#N@i<81aZ+oMB`%7%DB>=)#5u1;e_t!LUS^3KJs!A>ms+o| z#M#~8FSpcsxg~CADQHkCwYn^EQN%?NH_{SUHwpMnl3I%`aeF31SDq}jjl2o^qli0-IKL%s_jK^-bgA`f zOWd9rz-5NiI@S``I7?6(XGyKsSmNHD4JkKUYMlro!jNHzsa5w)tw2~Dv*OtZwyBCHS~w-D67Zq}hfD@I-M zH7iipYdhM*ygCi$DO)pEHYKguXKCIgIX7I9PH(%pIau!EI9ygllFeuDBbo3MfS*|N z0pLHngVr?JXG@L%g53k1flGI2zIGAouKDlfAh0)yLndAOuIHJ|whu#GQIhm{`@=Sb zGS|(3Ie&)<^rb<&xKSM;FSU1XbnfZky?V( z5~Q9&>cu;TD?@+-Ycbw`F_dUPSeZ0<7IE!qFb^>1J^ThrbhFSv@2l?Uf1;+~jX?*} z=gcK2v*h8!DD&BNQ`?GTePOmRQ*xk;IltXHRCHl}@gy*ZiFUiA!quYj%Pb?Mx3hgO zPc+hE`b>5-hv5_iPJRncn}E}%hd%>O!R-~UD!?Y16%VC3GriaMAm^Tk4`MA7d7Svt zAMs;NHctx6am<&bg9-LLM?x;K_i>16b-as`?>>AOC7*lT?X>ppz_i}&CsFASWTM0A19o>-(KO@C^n`3;(ijHcE;PNJ>JhjXCUCAU?$>NU6B3E2Ba1 zPFDIldnlRRo9FcKo@BXtJDZ@#*ZH7T_yl$OV?;wyD`)n-$VN+)QIfajzlK;TSrQ`o z_u`O_ltgYeD?e?daZ0*0`=p)8f^Z~RP5e%L5VufrD=4|u_YPnmd#b`^(|T;pkaLZl z_n#7Bb@a(gB1`3wy+`COm2)fH%2BlNsE@B=W(g(_&pRiqCcuia9=6hAfMv!O?Ri*3 zg)KO@A5XvE_>D6tn=-diBuO8R>;m0&i5*5e!=V2!H-3z~g8JJk!QR7>?TyRzZqRE^ zl-BC7`%qeLb=PU<)pVXl{COTAx5;Hnosglt{!>AHptke87z=z|hSmE&3#ep1D=DZs zi+;Go=LLl019x4#m-DAPcVAVx(Lvv>Mz=t$${TyV3suJ+tKZv#pE(T=D*uY#oUFz@mTQS1R7 zq7asroA8{C*|nuCfu0^$6fFxzx;qcZ^tQT)&nf+(uXHTc1F_(3ln7(irstJK;YgE= zxm6_HgtQjDCk4BM%|!j!Jk?>luCq0Hf6vbbsluwvyC*~lg#ol z3slnQtST*T%3#rj@#TqI^cUo2a%-%S#^)?%QNcW)t;sF3SLUNv=GVW3UU_2=imdi@*nd*FnG z>}s;Pa$Nb~g%8)muIQpMXv@w7t^7<2>n8b>REp{n>`z*Bp3Y>3-_pAFqvKEO?{h}w z~O^JJXS@_C#hvY8*q)AgJ5cdtiafam>Wdfww}OMfn8v#63J$ z61fo6b?ZeZ!ASMdVMOJb;E^Gd!;x!ISACTz7D)uRTZ2GBy$f)mJ7jm0Jdg(2ENvjt z5Y$`N_jJybqoCuv<2;aU^RW(?4-2>P6bMK10CfYP_CR^!#&0Sh+hETu0gRG{7Q~EQ zPjtFi;w>G-S~|c%dc-{BK~RUSZ<3v8&wh8IvdxXXw0lUef$b0J25M01Ei&N)ebM((P;!J&B zAL)~fG(VHR+;+^r$I&!oVlo@CN#(@lk?< zc@|o5g7x3uW{`vt!3l06ZqT}w@~gFFg@1rQ$WiE<*5H4@3b-9%|Y59tv-m3f_<>`8{qlEvXiS8U zzMqmCXw>3phUU9AW?UHb@SoISo)OmC6k#nemrbFGc0`)QtWL87`LQ9ZCdgn@ByHdheGW;?K#eHryGq#}BOuc;-LPTWb} z0QxRjOa|@2mDW5_Esx$4(X>2y(qvckcIb1EBvzj5?jS5^9d4bE>d_LK|3tFdpmo@{ zyD)5-nRSl4`$CGM!O%tO5+*Sox^i{q0Y$Y(32Q`J)C3h&IyhPR3yX?Sbc=An_H z@~OE)BY0nz7m?&bS&9^5C6X(bR^~?Pyo2S2%Fatpj!Z_$$*g2C=vpefBBdxf5+z5X zWEo0kVn5hXy5M}@;!2I3;*|K{7);-5O{&4?8AVa zK$|iR${c)eiOlG1Xykjuq#^=G*RuM_<3YKPlU>?~91xa>?TJq@L&tv!f3 zzJs;WhaRR}35+W%Cbh^_%W@rIxl9_x_USE@0#Q8clE{qR?+zngr(hh<)_v5Tj^WCS z*lkb3hMxm0iU#>2Ik0`}aT$oa5OF?jMEcl>q<6vIPukXuJ?Kl zQ)ew~A`Sj#eSG@&QSR%0U^eodV?^#~a5`rcS1sPKZ@3Z$wk!7CT)UxpX>&)90Dp6+ zc`vYPnB$MMHAACe^CfYWDGjSC}D^HX*_0f``%5oKER$kLT9`@7W~P%w5yR2U=VbQ zbj9&&ST3DbU2*(fESE{6f1Tq^3)(-n3X8j4^E^pLVHQ>IqBR*rHQ+^rp{&Klcm}tGg!~bEJ0_qLwn$^4@@RS<^@eqa5q7Kf8`* z!TUFMT=DYN1#jP%4!*kR-JyMoL+@{B^P2B(XKfjcx<;>i19gr658C2kZE3rrV_T*H z{(GXOzh6FEL;dnUowUUV_`Y>}0e|;~bN9>O zF5A+t)3(t5SNeYUcGR_f-7eI%Y=fYlzC3|(v}YZ>D%R0{-l{d}aneSGUy?!Oi*dGOyM+NoE)kTO|hTNuq-L{Q&Z?E;(`EMLd=z>yrO*Rj-k-deOIiLwal9+v7t zDz(}QF-i3Ny???f$#(0Lk(T!ad_uEnc-rRT^!S+`;hUDXzUSl2L^IZAJzYaFb zbM@P8nz;3f?ObHw?Awoy z4_4j?KmU5Hj$FMbNcC)A+0}^iJ&pRlGQkwo_>f?v2@;CGeaGHPw6~vMOlc#vx9Usi zZMgQff~Ap!(s}YI=y!DeVbE_eYiB<#=f|vEZ)i#W$YI#k_59r$u`}2RzGdx~EEMss zG-&~?9D6{1XmSEP4fN82I%B0<8Hn~EsNzbl8Ims5+&6)|SP^#6HGYK@5n5EK)>kjE zoSYwMPbi1kGQt*)m<9}|H4;Z;K5E)ZpF+7rm+O%)A0cf}K|8&`4naM+A`IMrg3(R; z3SO@*XNnYJ{jnc8_8a}-R(yCzQ0bh}B}1Z-0};1VP`9wBYw)z>Vv4&8Pnnm{(?~q+ zXQ?Cb^aYC>il-9xG#F1a+0zAhs$@?NJl(~f^6~U2d!n8RciJ<}4091w_X9Hob@qym zb3{1uPnoRr6O`SJnFtxKL^#)#>7p|rD_59%9G~ZNTdAq#Cbd=3NBO!INc~d}`*WEW zIzG!!{iE+=^0_059y$$t5Y(P4bdJF3unjmFw&5L=9Px-bet!ojUH8^`=q<8UnIo_L z3L%c3&V!|dYSlTn{a72aA`9mk&~KN;*gDsd}+Unbst#zy<@QP{@9SpUZnf(Qu<&QpNLlnwiU$Fu9qKDi>Fbm6Yn z){W~pb*yXO0n7qv(!vY4-VMtzw=7);KG^_1*`Uj0^#Af#v1{hDFM{>lSs}TGE4xo} zyOp4}<vE#z2>38@D$I42X=fp9u5yf(e-7dOUjP`c zjgZtEO*+0`_lg{((+SLb7(N6W;X|;|TxF_tQOFp{f{TEC5?J;C2SI(PPPh7E%z+0k z2JO>%O&^O6r1WM|lIN82f~@D-WZM18&f{}E-)|H!hr<8LShsP1LgMKbO=nEyo@?~Y zTT2u%`TFQNbCvW%y-2lIp1Q!|=!k8TQ|aQ41Hv)Q{)h=7E`e!KUA9`!sx&7Mt#Pn^Ev|o<6JPK2=(u_Fy@+ zUT1a(vJ06$>sh&`bU1{z9oje;V|ihN$rY^~=H`E(M@>HBwkE5@Jq=bl<#Ea1Ljq+P^(SLEPw0;cI z`Z3-2T~NPz(Bx=Z7stVgWUZt&=ws~~w1I3i9p?|Mwy{4@3T$l%=vUBd2+M8KME7$} zRwn?nUhC^Y5}zMBr%PSETd4(I5Y+2I7g{aqeUov{l0QMoO(=<=4r3+F_I0-N7qif& z{p@?&gBM|rf!9flXk z<_i|H3VBv(d5*A{b%|iay}pdK_?uY{Ch7Kqz(1f)274=XeQTnah7$sZxaWBBUQh z45i+$r8<=wq1!79=s!{Gwv_JJ5Gwb=+`&>`U&*wo?gm-Cyd401ZDoFOoTS*b<3J)MbaOw z7zs%GQe%%q0Bs$hA*e&|r#`vNIntYuZL`NB{Tiev;EC?oe6_3lqD+^|E#X9X&&+K4 z-;nf{%o^r;#Qmr}!&T?bn$y!Y#$DF^QTx>HWfPzU1FC_3(Y^m^1?u`QOGQ2BEiAVejf9Iv0fV_gIT^9m3?* z5szd2^Y}}cxvSPt{);5)ry}&)KAaDaq)J@2;u26{3|g5BU&rxBUQ6lypC2eeoo(Ub zrU#o|X-YI@p$9#n>QxtEulgby6I2`diq!zC8irNbeL2ptM`*M(BCe6emE6}}`b9DR zFvqd84$s?T3~O^;ig>nL_oQ9led&eWy}y7z**F8G9x+n**mmNC0IkEwuXH^8d1&=T z>&lKh`vY8maJToAT=?nCg`bXdT^W3z;3pZG35i$=Kb_J@op)9z9zML} zLy?D2@*!4oA$&=eGFwryx(X$$P;wdb@Dba2_;_o`BY=DO_#*Z2@G*O>8NJs0IPD=k zy4qYVI_&4t=9e=2v;wV$TRrmvv|>1`&8(fvqq(fiUirz$Hn|5prTys7e#|>FhTcO^ zZ(e4dbz{JbV((f;a*X)thy3NDmR7ab9HuPm3C)3cx%5JknkCSwbhy?XJ8pyGJdDd%HqxT3;<6Jo5M( zp#NK|Of6yFIceFnif}hMU9@*x`Ow)r%4OEno+iIrn#I;CLJ?_xIz>#4P}Ey4>8nx9 z@T`sB=kRqxi>5n%g?D4-W9Rxiw(~UFdHV4TNQYULb{;{=M3-~ewg11gvs`QE*)H0- zm0{nRMz+3PJ0G^RlVm_|$bbcq0c43G?ciUL0Y7FWcP>4)VFaC;yN$_!28`=~4Bs9| zk9x>}ddPq$yO04vtT?$0AnT-61`OPcvw)jF01vKPN&U|`zyCS==H8X0Cu0Q+k83L@ zcHDD5mqx#8Nq5+eXd&@=F?AC(3&m|S`7ICTEx#W9>2YpkH;s6 zaabMYl2wx*1B_@5*m0+Qgwa}4uh-WG>6XGuw6$_GSu7h@n7S=rmFepuI!R_yr@ai> zc`vn`&a=V~ra#BKYunVYd(&4V?~A+*Jv&I4cUX$KX6+pRCBT2lX0ihp{hRoY)9@#I z%lSWu|DWzj$N!-&@xQYj{@k7&$0)UqhE2eK)8-SXd;fA%?%s^DUGv&2ur2=QycWGD z3*!zx<4h)|d#&(MXXUj_t(_LVNt+42?V*o4+7H%8%jZU{!GTO?>MxS*x;+*4fC_sy zlf8NpqXL&c@ApVx1@Bhg+$>N~Z@4Eam$V-LZp@M6-xcn;jP$t-q(xJO@{0#8xA=Uc<76VOgcU-NJF!-sZ5kLhY>r zZxiIJWv85r^C*WlXCPQllSS?>mFKz^-hQiV!tIk?&f86k@w>QH$He;r!08-s$-poV z80t7>8L^VWPtyG?cUOkOoMNqwWllCj9 z(=LT&0Xs`>MM8ffsI%{;{xb1yLD|mne$}Y?HO7Oye|~Ai{>p;S9)?c~@FA}F8Q!QC zw_GJJ0~S}aJ~!)J-({UE4Ct!>-KOnh-D|`y#VX>>kNN(`U`22W>b; zR0_8Xk;fp;MXey-@F5V-F0r)T^Mp0XsuR5r%!!yi!9>ZkAA=82edN3g_`X(oJ;TO;arBkZ$TfdzKpyRI@3}87D_DE zDACW*YII86YEZ(h>;z2_)Q|6U;na2lxMHvWc9(06D}kEM-j?e+5tdxt+1|SP6NjtN zg`4HvzKTRR!<*?Mi_?@_ai-%ox*_r}fQ6vSca|&7@IGpW_mQB!xy*;QPs=BJkN3VM zfcoAD5$AMFZSEL)`PdWX=;g)-I`;CDcXE#xy@!P^d-$tNy@%tdrEWRuf(JX*=)J?w zIDE99-K>BWQ^~K#{H$ELA6VWGEOF0^6s}$p`6W)-XL~b%>HpNxI>3ir6L@|2;q~Dc z)LwUP!>EKGgv@W0b9!m_Hrtzr{Lj`&-n!NVe16~)_K-hP@-sob@}aucwiJzpnB0K) zTk3qw=T3+B$sMGJ-Hp}nFr?Ph3HB;*$Y^+cjfU@+U_TFae|Qjf{)2pe=!qS|HtaiV zyk^{Xc@q0~UlqjUq8Sbsc9sufpWq9~b%_L~A~A*iq25tHdmmZm-9 z&O5pXm#lkqS~Js05+tFg!jCIgvrG8AUhFqeJ~|V;sL-uU0}ZBOmy5S-u;LR0^}hSv z%60+XD^D+B5Z+zeI3-P;_BMVdp{9So6t zibi@Bmh2)8N3<6?!g6D;Ec}=3)sE9x<2Ae`Hh?xBvDkbD|32j_bHhugL)>)tgp4`j zwqz)=DB1K8D=#%b@7BumXX1Z1?hpFlwhj_ye(!r$HUCq z@Ro0#nM#m-GpIx|6bA;+G7KCIm>)F^__I`;7nmJvc&qG*hPNg(RLsGXkM4H*xc~e8}&U<>JQlN8Drr3C~oEDSifD_cg`)qVrtkd%`s1h)PVZevici* zXi2X}D;nOa@3X$bETv<*c4Na^4fR>5b8Y4uW&d5)f6lEx0)7T=M6SkQ*oo^?1|fj$;l_ z2B&xqr6w(<)RHncEv2ePV$jL}t=vdKo6cG9l}66?^%kY2SnDlFOR2J8)Z0io zwI?@Zwjm=e{?s0SP=W;D=_&QAvwGVNYz=;){?73VYL?C|N9mp!-rwQKsXeh^6#xCf z82)=8mrm`GAepR`eG||jpKuzkeG7k+mSSz;OKBNm-kg(qc(@ z&`3G8=Rn9|aKoLJ_}pD)`~o8$Txu`S?y;X~$uZr?acWP%5?^Y>6BVj%<1mR=MyI8O zEGa{c6v8e6E!6C@0hYAfUGcQEo<PuNx@_Co;d3lVRekFq`p++u~^)7D6e=JP&+V+TpM@ zEyaq%`m_`s2a*IUjFj{-bdMz-b8Hjm`U6-W+GZu-;~Ilyfjs`ZZGlF%1$M`3(pURJ z^wPHuazp79o@_vi!ee|G&ic?9;DyU*OvPnC+M63n@72qV5|meRHOcz;Ei_WXSa-dK zT~k^|>vD(7?vCTQzcG#z`!J3}0*&2W5{=_sPW<=pa^Zh0=%MGJ5C5qL_$arI@586T z0nOlmeeJ3L*R&KX_4lWxSg9XLOR2YT&3~n(ge)ncw3HT0%2p$VMvy5F8!hpH&{=>8>V?$BMvX2-|sseyL*|^fuz<(@Th>!fd1* z2;tWvU-lbixJJl2IJ|-~&yL@T6`x&_@ zujCqO)F&D#F4Xrdt1r`;XpZlTH|ugETfp5;-~a@*yvnUa@f_V!sANdArmw%1R>dXE zw(>4g5Y(%yXkYj~tOSoB20^_XF^O;-Hx)S*n{9W+5@?Cp-cZH)fH3;ja%C0nm0tB8 zSv<6-0EhTB$|I<~8N_lxl(u4TU@P>HDm^c)wg(~>K^<$v(s?`%E0=D!s;Kw4mC?vG zdMlmAyQIpg2rkk*X>FwEge}TbuIvUbyMYUGNU(DXw4(5!B!ZfQ_IvS+puXuPO&8K$ z)9bj6r9HevxPCgesX0{FdODR1(rT+YSURU9 zR8&zqr!HihlZY%oavI)ZDfKUgKcT?R-jQC`c?rt>D?K-}3!Q}K+Zi_a-VeTwqG1j_ z@Eq+6=p(w zvm7OOsRV9pI#yuC1QV%=7cfhEXLlD+n=pRvqWkU!!LFxUL`#*%tu_SO?a1~v!0H*Q zwWhv~)YrG}L)oFgFd8YsI*M%Wu}FX171_+b59Qe*OrTrna-`+nm|QxG?0fo&*ch`w z#OR*A?4t!psURLxK=T`5owTez7}n$)YSPzSdlh->DpG233acoTZ^M0cGx4R6lsYWs zRHUKsV_pUtxpK?(_zO~Ip7XRk1C}L&CTz}21dmSP=;dt4TO+{cyo@-&*N_a>RoLc; z<<>mM&$chsdX|?ux|C>RLi^w>*?!(c4vtNw=u#eML)@!pP2A}|2ru>;YS}5LDC-U49`r`91rkPtvJ-yAJ6pKbH8JVm?Ndr-TJVf^1`FT~tT*qN!%8mX_JwZ;b);KnpS(#yV# z-Xb3SbP3U)tmN}i1A;nk0q?(3(Bv;?IFJ0_60=X=Ib-%I=SS)(qU9eaC4fsU;M6{K zGDxFu&VnSMcf-w;^aU$C!)A=0uA(o%P~7Ft=3t=`6!iB?FzXj8XKi8*PiHsE!-{>f zT7f@(5-`)bByUSHm{Q+6n`{?9EASb(#>A7xB)*V_8#u-6Y+#V>EyZ&q#y)BDdOy(F z8vRHqn+KiFJ zjvs=u~cD(&ofz{VDT|dxA+5ItONvTOH)D4l4(? zRqSe`kFq56GTQT})Aawt(?1^857qTU>0G9k;LA)YHF%n2hR=R4@N)E8O#GxQe%pq? zB?rxS$so-bbEPEYp@efle)Na`Dcw4c8;&qyYq3A%z`yi;U0@Gs!TS28?+LTGhFMu< z9Qc+2UxHojb!1;AVFuM&13Kc)r}o?+1;7b7^%n`6Iq92XoMX&A05f$~AP4xLx+^Cl z=n{nKB6LcZETOdDNV2Or=;TrPS3a>~~>)NvUi?8_ z@N7vZaL5CqBOKyoj@xg}UeHM?oR<(gs~@cuv$T>wJqubhYq6tOuwd$sYSp>mcGa%i z&tBaLhCkG<8_o{wq*T{b)mwE%TB|-X#{aqc>RheT>703%?xAVl%U!jiD_X?Q{Cll> z^Nh8x?(5L1MV;XGV_LQS%;Zi={;REe;LMOtpmg0=y}B3yGcB#$jui@h-LxakNsbI> zqj$#{Y9rl9pHjD+A>Qr=$Z>oHg<>|Ip|8Zy(<5gj=q?HDR`g~mtIs%ahX|$AouLt# ziL@9bnLZlcDu`lVItP2)KIDtze>ceq4<;A1Jo0+5#*=5$5FXF-!yk(B(@nPyYktJz zD|`+K@pcxU&ERxr`Sn|N^?630^SS;oo#_t;lTL*{sYyK_>3w?ap(M@6q~)R|<)TZE ze=TWuA|5Aw5bw&KrpLczz>AUq&p&vr{a4Qci4FzR{G zsAoN^hrWKg!l7?dU{e59W?~f(HFvUr!+NZUOIp{YhAXG>9o@mo z_d*%I!vY&cH8eG(tV)e(U5!&x^HIzEr||{Hr{Q({G|t=H6vz3%B+fb=mdjkEtqE!? z=1ttWI*-SfDt_ekKTWqNo`m$3;MJH!9r#`cV$N3U>EwI!DU;5E{dhj*nR|1ovK3{w zKCOM-mz_DB>Mc0}Y>uopY!I2iJ*6J_PVc)+VM-OPcK7QsXdl_2b^><lNt1zztg`UAvs==sRhn$HUul2zc4s%rB5FLK`%d)l^?6MyH6h*(nPVR zgZyT_+hCd6)`s4DO)Hy72udQMm(6Bn2Wn*#34HY}p_hFTWnW}vw`=%w>0*A(_s#NM&1UJh$)GTuc9W9RiH30MpiE3j=GSHmTaFz9tP#GqU4Yz1uKi+&m@0CSU#^4l<5oc zHEyL1zB{LX$^8!PH&}fWvu?nBL^BDpQ@Mj-Mo{ncE(2y2DM7uX19bm6q5q@Y3jOxU z_s#Cekp!G{t3(=xh zi)|`X01k2Ba5SZ!HR5&rI;ZvFnO0iE&ZB0Z6VEwmcvh6dzRqa9GW2>V$D3c7;jOHc zTpQdb*Z-2qTPBZ=u{RNz4%ks=EY}mHZ%=y;*pm<=i-r5Q?0$Y_Ig46yT|NBokpNv6!hDlQWv0( z$_{m`JZByI)9RRsI)2$n9i8{Xg=uwBKTJAjT~DUf_1IMSK{9$el`4Z;=X)E#A%8ss z`=iI&%S5gI=Y(FJ2L0G1L7ix6iD2b}_rJw<$9Nt#F=2N~U1y0WTMYTr*i4%?q!F{tn=xtcgo(g_z#HdcoPel2hMtRcN8c}*c z)lDcp_zb*?BU7Li3}f%-GiYwbu|q)MUnJ>W=~mo$ckfVSx;?Wyyxq8DW`@9{PvN_( zG>@duWIZq*YfuV7{bIH;>u7Ts*=4pO6+wM2Ej5j1hMx`QsNO@QY;SXrY%jZ@0Y!z7 zOqyw5DO$Bl&Y)XOr4lcX>*L_FL^RUZxg9ols(No^ zCak2=^d#n#0hqg=yGC@`@RbO7+`%FQy)aX^_(Ug=UC4*;2PMh6hg(=KluAO#3C|0g zC#8OILfb*EjKMcUFU3yQ&mo^KJtt{eEho(Plo~rhR(Ecvq18Yt(^i=b1FH)9Pri-% zTvo@OdiHP;PpZ)H8bVT6Af=A zaf204gHH<1BShsLfDjrUnhK~L?eU}1 zdh60lU)pJHR(#HHOQ%#`+j2%_@uz}2Yt9pCx%+@;CCqOsPZLu)~hjRs3WH z?BH9WXKrnADuc6VUt>Gow&M+#u5Iz4=bboZ06#K}>I(p=>%96`6{G;|i7f$?CD2`Y z$u_L2_T#J!jXU3T`sH5b7>oF3WsAHU@;{~e68!hc1nu%WK`8|FyqV=nBcL_nt|G#Z zKO3tI$Zz`g7R`0>i2TXNsXB~vS9x>m$0>UARof~>SCQ8?hhhY8bL&SKam7yRD;kw; z$fcx`S{Wr(_emmEJH57ok4(4F-1^T{BTBWh+$XTR7=*;d4fhxqbe>E-+YJ_Rjh zarnB$vHq3d^^VoaB5JGH>qLGOmK%wA`&sk#fc1gO_@>)Xihc$AclkICHz8U^YqN1^ z{kWgf>T#RLy6)2b5Oh1t>Emd1Fo_k;>J&UY!BaOdp8DXpQ<;P(If(tg<6}ekt}A?# zMb{MX5>WcTkDtWO(qxwNkH_~JsYT3Q|N3#_&8aN)wd2jZXg9iUSG26u<6!A~jwgWo zcFfT!_2;Ok0yztr1>pJPbnZN7p}D?$8tJq{xqTt%M7-d{TIo3TbtPJh zpcZ<}dASzrI4)gJVFdhiO$@UNSsHkG-*LKgoULL}_I{N8Lj|Q5fvzrBi7Pd|WY_Xt zk9zExSsDN9`P?J#!t63rkxO1E#eb~vJ--hnUp^5Yh5K!iyTVQ1G>zOFmzV6V3(-9{ zDRo*3_}0*ldIGc3{}otUIYMhQS@$o|+E)Z`ENlDD*V;ECt$j^Q>nS47Z>EiP;AUuG zpbK{DC6uEXi&m}LOp7%)(i|x@J_Fy88Dz!j?d0`0q}AV} z!sex0yiFW*n%skYoQAyI?W~*|FcH+xHS9J3yYIi?*iEuv*Y<^_U97i~)n*-}Ut8XP zD4q8mXg7p#fRGz&g2%S8*t$HK|M3OgY`zs~Tc4pjgR5qc z_O*)WjMP7;LHXYTvejXn+fr)v7xYZnEC7`fk()3xXnYmGPM+qqH7kHKXj`a{$(keB zN5Wo8*!Dh0ZW9ij+_JtMz85kdXH1u)Rr|}zy;6>lAwe$|YY3(X=gR(?Z{~O66raxN zWSeg(BaBmO_b=#;#tL=uvd*tM#(v#n9b3uL^!vb4WrNoC+%y_EVu9HDf*@&6sFkuDl4S zFS2{`UO291XJ5n}J>adN~{Ctrcg3 z?Dl4eiyifHgEv=v#Bm7vH_1u5|5wCWUC)l@))e!HqPtXSAJos{_zvGL=au8#oH%Jgq6kObpe?T*j!O%X`^Q8u0Sc^E|;BKd>rB}$dxGx$pC zGv=KK7f!>PUiX?{_mp%K(%166q2Zdi>Cfb|a0O%+um9f9jXL17iW?6#`!q?F8jPA6 zjI1%Px3OZ{CnVh>=16{b8qJIx!i>*FSYdfR^c6gPhSl#_Aj?NDfjEX_AZ81%4>y!J zmF#O>kc~my*#Cn3s*JSoV9aRTR{Q2CvTuZBthXR_5!7GYa0A97mrkkAAbCZStEWEW zG4{{Nj~tvRN{+SInK%Mk9eIY%zZ1R4dv^T|2_}!$%3Gn=B*JgVyr##lr1N*M8_c2I zJ9xG2gjd_ndihD{ly~2t0E3=_phP01e>TWlWUFP8+R-F~KXP8lXTPF|TakTu|5ZNw z6%&ki^tG`5?Fpfm2(BrChEejie&UP2(Mm*6FVlPVXoetEak}-x+R(I2;Di`T&&S$? z@AAdv>M~f3WiQw?V3_x7=jp0nh8X;pvW6>u=^vVLSyK z;3GbN&}>1scdpur`&f7K9VY6<7t0g4KTE@sNg=WXzX%Kv)Emo5|FO20pZ6lXNegx= zr-dlyk%qV24e&I@sV=v28f8!KJQXCX(gV=DQv$7aTgsf!>uA+k|7jGfjr6#OKBYNm zB6@^;bjYWOR_j4otW3{W{VDaC>1l+Spi=fitDY6Mtkm@!8J_gg6H!`+uisN(#ccGa zTt>#^2)u*#VQsGGHnHj0o&mt!NNx3m< zQ|e8rus0jOH>QHHytu(jo>VPMnU<=P2aFXF}HK z+(6&|vAn5!=jm@WB6O}`qeI7@=>_nO!?}@c`%ni?57_U->}|8}fzp(=}eMTHt%o5B)jyU;}&+R6s z1|&OqiV;_xZ>i-_!R@1*42w=sQu=$3MQ7n*c4^ zMJ=zU)uPjzuZY_7a+vY*b&QwqbNmuLu0(b-e!HRzx;oS7ngjZ!)W3hG^L-p&jWg*k zF+U^Nr#>To%LZ&3Cpu@x3P_GG{g-Qd@iRV}B$S@jNo`v{<9w`OZ=!u|WB=va?*5FA zQM#G1pp)8eVYLlF+w2``%VhMl&hs=*___E5Ta!Q^eJ_VjXW?{I95c_+Z}IIBtkoxe zM_&0PN3Mhh{Iw1DdCW_xe?#iYeDdfy`U$NqH4Qf)xspNJ7r1d|3|6b$X_TYo6Raq( zdzDfTe~U9fC`pzXH|9_TweR(Go@5^05Y%4R(|EUzXVORLi=1X1v~t23iW~K{EoslR zs%qbY^;!$mZ+Q!Xk!!RTtU(Lvj25g%3mCT0)>7)7pO`gCsEJzhrN?Z|%|>fhqBS?R zYt74(tgZR^q$p0M1U2b&1U8ooa!U5%mK(GdL4A6XTWQ2Ig6f|HJI!(W{(DNjJ>kOF z+)H+eu9MSK>Pc9*xaOZy-##vQJ>hgC zQ_}hc(!Kz8-GSW~-<+%&qs0_W_p#hZksEY$`QVY(@K#X+mGVcHU`?_F{E|*#x&?&3 zC-}15KBaHq#-JA%Z@NyW_WJ9r)P5Z+HM(1@o2wV7{cE;vo8(G|PSkD>mukfKgs!V= zJ)2s2>g_v=Mf8ml#@q6kEb6mePfv*@|)a>#6 zJ1jP=fE0`)+Hd1~>LN}#ovfxCUiL=*fIC#+(+KE$o}-o3{t3|3u`AyuPhoo_7phKn z$DVUeg89+%*nBOv-yB%SQ5HeHYXZIjUy;qc9DZ?(>cnYYq(z@QARk6+pP9fReSf14 zJ8>9R1LQzZr%j+-O_4XS6A!%!c1ymez~>9P_oXxZ4@T6;_09>(U!KcENCwA*I2|+D zX}g6J$mgyb_SQ@A?G?I_#;GjDT9I33#(Gy^)p+@_^!EPzFvoKDjR{$RH!W}PGg|Dk z2JTNDCU^%ThhYn)Z*G*QsKvyCChpvyj&?A)_g^oZe>xR(Dt8+=e8Bwcj(vWJS)%V2 z$YUh?m<9oRAv9NZEPt<2ejoFndH3^X^i`p9FDw7)=X!av$I^Z)$xvDc(_SB~F=%Ze zKtF|yu@^dqLe}7G%!req=Q}Z1-3a*c$Zp`2z>M!y=Cb#Bs3U=ILE)A_{*IkDI{ihb zPMpeY!YR@XvM(I*<4k#eVC>6zffX;)7txM92OH0G{EKLEkbDoHD#H$;eF)n{q&z<8 z$%1fLrf1QWfsuGvS@ANR=@p;Hj>+?ax(X%W|AAO(OM1$^Wj|Egf-=(4{#S{CBPGC- zo<9J7oQ-l4PJ(B_^E^t=TX2@2PJ1HGwJr^bi<^Mrho_)noW-lABnDi+@!@(0dFzwedvux@)r&a@AZ_5(Wg+HPurE;$cr=?`gjpQ`@8nxq@q`*NMc{i>W`Ry!^`H+)7uQYrP9pHU8r2NT=RCJzkK z7-G!6L)HKvv%c2LV`}R0?3gZLcM|syK93uioHZd!LvppiW1@5xW+KC1 zBWCfxFzeZf^19W}tbsf(^m@tT!py%cuIm~tn!kqCCdAu8rS(&0>7{3PTALMqSv;Lm zW8=D9qCL27*n=Abf8s)X4~Wi*_;BvD1b24P?jqf2*wayhJ#^n@_$I^W<|?7b95&K} zVvV3)A<+JLNhn%IcLbb-jV`+$o?N(*&8gH0Hc!J_^BSO8W0cH$p1j$fcX!M)uYx!w z@iBJM)E>-+%5BixM?~%blk9uPKTg0ip!3@9M{W1B+G^dh(Fz(Hz8P^yC3s4gSw;qS zHzhXiXjY+7^cj4Y8Y_I@Puhi#LsHWHmb5#t6#Tgq&%~cG)L-IFmfI@5k%e*t{NbwQ z?-x}^qV#o?IaP?usaY7QmcKIi_zhWQHf)=V^YH+8n@l@GzT5bTcxMHu2n~$->T7WI z*C`+9QuA?pUi_MIwV7k~$0TQot9Ab1Jl8(ob$}GLSU&4Mp&Z23VQ@99T?SWM{esMT z2BCa9U-I&1y~LMh{vIDg8?PY=r*n1sn9@sI$Bu@R>w>47V&P3nN#B+Mzx+7(* zZzrH{C!lXj(YK|D%c&{D{pepAJVHHLTIqy!m3ZFQkPLR-o2${Pj#RL=YVk)ut~cia z(tpyMC7sf@y_7Ng!}-yF(wnwUYqPdH@sIT0Jo=CH-fS4pdvo_0>eH`uZ{VX7gyD*i z+J+NA`!QSWf4)rdy_bPNXNJ~|=V|mj1Go2oh@MAK2aea}pK$bgjD5Fq3@OK+H%}{N zUf1!o(i7LmA;GqecLTbBfRi*qoTLdBdj)mS)Q)GEww04rfPcHKC2sEHYR?owqp>fDVu-?jUor6Ax;aUXE? z9^~C)DgW8Eyrvw~bO>n(YVcY*yY<^t$&ugcr!`pn$?}9fl>%+ z(+srRJ{&9a7|!#-TR8-8<&a6MyT>OY{OfKfWc_5<$w_FrdiGi#U#gUZ@ST&;T-UBe z)EBEJkxuh>tb)b?7J@n(n3;W|`+=PbmW1f+34QG}<9h4`<6K$}>^8M1g`n1w zoF$~xoL1Ty_vh-<_8)QJ^2 z-RQLa2JG+wTOT}`bZlsEjr&JzKZepn%l9{>!seYvTS?W4Gtz$bX@W#S(qxQ^m z@K#yraxwOEI3-MoGXasqF~HG26vvxN>Fw4_iF?y`(XT~Ix~iMEhM?$e)uBuQl&(tgmZg_! zPlF6k<2fMkmSR zo!78cr<6eC)M|qXq z*k$HxMqG2dI00pac4bfhEk`;1H}VW#kT4_+>P~4ps+_%SrcRzmV9>iEM zH?(h0ES!tgvc7)iYctXjaYq{E3)-?t76l=T5Y!W6>Asv1SnZln2uAx_Xk6qu_i1-6 zmU^;_vC<5I{uQO3T=IC){As9`IJ{)=b$glCgB%a?%E)2*I$=UE~8Cx9`6x&s&oBi#$fz8pYm`}S-ci`$eU-#M|)4FPV5w-(k^ zg)FKoS=pmVorzRWyVS+3?B9?oQQ0QoM7i)ABRqhQpK7FEoFve3^&^iTdEVRA_XV`h z`0~Jx%P9}a?#g`urNN0~U!MKK*0en9wLG2|0?5O;(JI%bV)hEd#~b+W!v3d5YajMh ziFR~v9*@l~PR}83;aU$-5G(cUIQAQ23=Y4)l=qnlM~@{q`ZMp<7)C%0Jr)R}FBzOD zgL5E+9l;Lx=&=Mxf97!bN|Aacs=*=Ob-eE~dC0^^k0m(zvz5!J|A@=t;4*!eV6-3B zHg*OUS_k^uw~PF&H~tO2lz7|9-qxnQt-_m`^MSuvN3=P5`Isd?ckP}dc&fl7A7g(z z8~gg0Hpd*D!?i-5f_ioXhusW^(zLg+X*i6++v~{rI?Fi%7@76_2N-oim$Qf5N(?o{ zSWVyI&7?%)P&p(QlU@P(^1^>mv(_I+P}31s(;KKMiMJ$si{Q;nd)26y&+z{;<Q2 zyv7@NjRsz$8D68$f!8HzcntzxCTIL7cyV4e+kfJHoLC1&Qy4~{g9G}x?^l;ivGV2Z`VYm2Ufhevp~C@hi-JJ7r!geYvpH6IPG!jZA%hoEOGDH4~|E( zuC_A_{#moG`?cF;%(^(Y|9f?jT`EhnOZi}{)HQj!*}YNhA&m)9{l!P(k-@MsCorS7 z$rLl}NC~YHyzoUo(gSx`kUcsV79Z|m$5#WSyONhI&nE!}B%tOS{p0Fg)}h`zjCyN+ zWWAm)>Ro{|^FHi)n=P(Gi$%0}1#5H7C-KO|tj&F$V?rlbt8f0K1n2mZ!3?y!@)Nz? zd7ZYqwLs5#9Uz%4$27>s7VVRhN9BC*?tJhr?##QY&}rJ*V0TZERgElPH1d70e6`6Z z7vTnl>NZ$M=q3fCHu)fO81VnQ%3RxV-#-0@D!PM<_B5`<%2RZGx~K`(BFK`Qi=-y@ z&5~ol;@AuNomJR->l4RKRk+y|zqA{Xf#37++a15O8zBse)cBRq+2g#jHY8aH6P94q*=j_sim5i=o)_U{Be0?1kVY0OHPLaW*{lb6kX-5yTD> zMF)!&t`o)n?5R7u6(is2fM#&M(~bY@Fccd-vplrx|1tM2a8Z@{|M;2vnPGrIMmgvx2fK)x%;U*gwA%oh zNCLwMh;-RQV4%5Qt!;PBtqt%-ty>UZ*Go6Bo0b_^`;BR=01d6Lwb3dUeiuzc)3XzoZV{i^m;GoUM5h zYEW%LiuhJ7;e^H>#V!t6XbG%q$Vyf%+$?uL*4b?Zd);jnqOYk9r%CiotVX z=|#@a`8EBBUpGL`q>j2JTF5MdM>3t7fl?1uhb^M4+)-I{lv^|*kkvO%YPSAcPXiF-ie3oQMF(C zdIDb?@U=ntdi0$P?C(!P`EZUuN9A}AsqnYA-Wh}1!fm}C)z+&>g}=S@PMYlUnPr!^ z)&&kxaeyhh-%9b)z;{D_#bRb7uDA3Ly=?f?I9YkFrGfg*Dwx` zAr=1iw?o_yw)GZDglVfgs;$?Cwe?a|Tdh%T?KrgZ9J+ffD*xuF{EbT8VY;~&U&CqFuX_G3v@`J1E4Uq7rL3-C3Jv-wDcaW>~rd$1qj_OFPldqz~<(}vZ3QB>U% zqUugk#v=o3sWgKIT1K8h`l!~<^h9FfyPoLL{|CN?d-8Xr!aeEjae)W9a8sWb_H*|* z@~mZ;=>O|Yk@*hxaI&oEvrmAFJfU!rt{xd>WuNQ~+1}xLUqpW9W1+~B3`DAt5=EMmYN|y6=}{S z&l{lYhcwD&<+rL)wkp3>jj}`e-5S(1`@N-ky?_j7mJKv|NpHky0lNV7o#WiNHCckbyo_6^=!YR6RkT(ZT&IAZ3T!s4&A!vk90dP*)hR!$Gh%7sxqx%__*U+`yU~hVt*f& zOnA5Jk3+K-si%<&&KjhemHLyz+zRi0j~qdIMd|^hf^>yc{ZQMDpx2|Yp!wJ_VL65z zzltioBC7NfKxZ44|EE#;OQZ4^BEK*!|JPeC~ zjFU0Q5#(~{PdrlLZ~Px4<~F`^QFRZ#9f_;2qEer|9ny_(4pCD^%lGTIVT~|azy1HO zPD#3USa*!pZ^Q4;r&E%yt?HDd--dL^bM?va?7js0WHbCA6hTM(5YC;s*mLJ(jg+a1m3;yR!Fj(D;=Ix z@@I(&a0I{;i?8fmAJ0VF|qIt%$jS zuealCSnl15R9HS$4ndayoqG@b#^G-zZ-pq}$5?{rn<=n0hODoee}nb40v1nAl=Vd| zgsrcdA=~F%>#G6ZLX_XEz!IJj|C^aY5n{~>ETNe~Erfm(HHYQ{#fDrWz@vkivcfB$ zXQsF@Q{Mc9G+)rgSF7IrYAN) zQ|uX{E7dm{qOtFnUSaBvmR_w980`2rV6YYQfX*!sjT!9_3jgLSJK$&4qknk%E|?mQ zGeI0V-s0&ioyvhDOX8i|`h&VHtqlbF20rceMZSZV9R4NvSW(XY-o%h_P)M@>goz1uU}?_bl{> zLU%)&nRfOA?-IDX_Vz|$4vYa_H)s><`ngX zo~pYog6nK5Usl%t-XvU+l#zi2`AK?L^QPLn@cLgk|Lw>hUDq8bcZX80a;UC)ysKB< zm7P;pIRE_bsq5;Yx*kSd4=Z)e_@25h9#)sS|B!UxR+Mjjl6aH-O`L9v)IKE@i&XfV zF<7^{&UF;?EZ9r%KQ(TRu=x{3$`iIeKs_HQ^?dS1G`2$cJb@f1lpG%n<=CREr-pKb z>)1b(LzU~jpe~B5q4mA}Lvob*u=|Z6$bxIfYArNwPegoE*Ll_c(YN2@n>xRK^WmmPK4mAY;js!Q!-WL>2ZbfbY1 zd2IF71HUSjsH+DVDBpva+#X-4*n|18=8aw@Libv+6<)AWumDvLD|zV;KKd{Z&-TIfmYA~>9oZAe>tr5bI2W8+mi=|C<8Q0cjbuwKs>GG zsgz9XN(oq3B05m9edQO3)I|GNJ~aq0=qqU?TW%FQy&*hFLl%?@-yLXC)eP12GNe_T zN=;V|OW!aof6=h?`~%Z5(kgFJYsf~9$n+IRtJwu@2vh!(h-H7-%MriSslLv?^4$27aR+_>Ew96mhYVfZCKZho)h-cj$c$ zP6bd`Pt{!oG1yfwSalm#PjAEODeW#$z0z6!8=lhQ>GS>xG}+%;10Tt4IImq@RXa6F zTfdkcg?_g5AZf9l+9Tq;b|Cxhjcrt!;L!JsG|_@ zP(-|{^$mxI_F9JFc_9c-4|0=VgSgWwU@>w`mh6vCmm?iHhKu$`jzR9QF~~*k&7i@} zPkn_wPF&wAw8$xUax_DBX%MT{tkAEzcZAN#kHx9I#EV`2XE@IP%rpJ?)s7n4pPGs2 zx3WnpZNL3FtsCVbegNf%X8uG_^vB5iad5`Pp!I&F`-5rSu=J_!==@)Irw-#ypCU)( z96mfO{SnfUv-F+rX5f-yvdA~s25jh`hA#88N|AfJ3F?|*ZL|-oqqRGug+?RL7wGN) zg|>n(5>Kjify;qHFBHPP#?4fqQuSMHvHA-htfDNx@U#}syWW?8q5js(BSyXb;$Fbm z3km|o2WgAWjfRClUNf{XUieq*ygyiHD{7{_BScA0q4$xvn;nIl-{5N`9bE=26aiO7 zPapQuNH0c>Dy1|il+uVbZsK%w(?OWmwSqcUqSVT#iMp=4Sf!5FPLMRY0_Q@6c->e~ z#>2?>aBw8fz77e7bZapE9nz8C|M5EM7FMj~TOU`)?kIAokwI$uFGxpzfB$uL7KQzZ zBokgkFC$BJy-tvAA6EBEuMad6C&yWU%82*+h$r<9jkqNAMDV20`x;mcKaMBu11;=( z`fKmsmDT=ep44`cI%c7|ewZh9LRSva4e_K9JPkwe{18uyh9{aQEeXP-(r8%jk~f%S zWF$7njfis(az%~|kCD=E$1L2wTj4<&Xn`n;B4x?16N;b=ouS4ZPgLSF@_pAbvQ0wT zLP*-%8k5;xS0eVfYUGm@wxU&XVG(xXudVBze1Da%%6oEQl@IAP9&q7uSn=hsc)*p5 z3VkbO>^UnMx#W7^dX!wRl)N4C1UGd1YEcsMrRX-4tV2m1_QDI5LZvOA?xq_v`&!nE zbnK7S1`;hCDXpeQ@sPEpyyIx<3sHUzzLAT;?r%3W?x9uvPFJtDbI1!%(PPnd&^>#l+ckJFZ-Qse4M`AN)-Hd-=&|+#TE-S^-cw#y+GYIo_VV#M?>YM80i9uAOLW=XSN!j$x%*_VTj& z<*q?>=7#W=(AbK;emG8r=G3Rr^{(9upW}P#nX=<9r?U|p?+5z$|LIpK=4Q-;4qs8k zxKW%)kFpjL8kI=h8(3Dx5)z5O99|BRCt;kQTecIjD{@3f&Y|k{YTY!(9T?+|?W9Mk z=L%kbK?hnQZ9FuNq>Vo{q>YEhoH+01asBX!%*GxGRf>?l5uWR`4mC;euS~Cyz(x zcXmR8KLg$CnL%JkP7UZL?$uf0Rs644szOi#T_{(=?0+aqYrn95_$+zVQ3 zz&F`9??=!Y=>bG*y+K;*P&MQs+G+qzG(^mkk!hA_%l?c8k4jq|ppVuF+8Pu`qOG=Z z4MEzv0cCG^Mx`y%jMTCHt2h#EHI55WRRgfqfEGhk)h+gd>Rxw-Xsb}6Es84&(H7ZS zwjo=qp99b9C+@cgHSKwZH1H>a{73kEw2dQo5Vozrw(18|rBQK*3gHSx_x}nySfpKa zZAbJ7Up-WZx<;x@($9G-`{+VaOFUokv(}0xgu@s zmynM9{`^pzTY-ne8#r|JP+BM z{m*FekiGex!V|+@hME-2DCh?ii_KX@oE!STspZCCEv=}lHDVT$&eM!hx#U?6kBWzQ z^gA+b8kP>cT7z1`n7Ho$2ot9!{5vr5L9mwdVZsGWxPq9t?^PFmhtqY#(yNAHqWjhV z8=Cm#zXcNuegG3i=y_2P69)7=GJWQi==8U*MAJm({}Cp>9RKg2iMNBboR20Vxl0Xt z9?5-HA|3gC#Va9>C&X&)uTKL<10JiNRsAws(2}ZA%aAD=xg4=K77?8Lb349=g$!_qe*9htuv(AD_rutjvI;<#XirS*yp(u zx*xQLet2TYd+`%!gLGQcsXp>PreT$hQm^)f?PxXju_w5)meHbG_aO}*bEU0ciSpDa z_NnIYq<6pB-vcR1qn+x%hvUuf2fZx4iUzo!Fi_bKNgayk?1!ZGDo}k4zda8iG^p9O!HD)BiUdrvI<`vRTG?G}CC+82bVGDRuWW6}}X}Nxct4(t|o48aJ28w*>m` z`jW7Jqtdg22-|~t(i>&xl2;`JJt8yRk?WIcZjGChvSx28yZJxVa|USa#ssnS@!@d$ z|JoR)92*G-&yF~1kBsC)P|=of9%leWCSg`@D)$rJ^0%1n}bm&>+Jy6Zo)L# zhRD4zP2Qp4{gE&Jx4nAt=)X>re*jJP`2LQu>c>f%1Y3v}D-Nq;Jvjo){|;I-E3@dP zqeNqqz8Gm7h!)SCJ-f%L_Hse5`q%7N|9SLAC#~c4YpvwRDtN3d4hsW<<#}{B6aqe~>Q8A_RmzEJR)HLJ^40#A?RwhPJ>Yy-0 zsqg_(90lSCtPH-pgh|*bs-NipFCEv%!9TqjC+}=l&f^LG!by@i1r&Rzt^@8u?}#Jf z9N?r}zx5*v9y$dj_)E#(kNlU4?eG?+D{ZLxdys$R`i~<&#l}Y0zwNyB_aZ+<0g*=} zWZSFfK!o9NRg$M^{)OT1be2l!yQi_e+1+~nZ?>k;w*#eh*`|G3?mql)(c%WvwfC84 z3o%k%_uzU%x6Y{TPOhu#zH<%TG;QeS^xAG)jc(sq{V0j&t-`(e>vY?CwIZKo>9%pT z*_~Dmt|8@R$`wjcorZ3${(^mDjdk6t*C$H!mG=zfnDe&v8btj*%^Ix!#X>?_~Hn}#sVir!qD6OqclRn8xmh{RQ+82+`!1>O3IH`3>;5vre zq1bG;zMv-GRHCt%9BJ;;RR)XBuCZ(%UB4iY8L_i87A5Ex-9@qhdt`aEvcBMhEK`Zr zViwZegD7FJX)PKyP{m{X*3@*CXyuDUizU^z9{reQS??IE$V5LZNs@-7Ld>vdUyxL&TzUyT% z#-ex7$!>LcS6i!fuQQiBjQm1jJk!cr^m47z%VIVIBNXmc57tcA-up$?exEuTFDHgZ z@XQ&W3CaleD80%6Wt&0Sr!azQpH3}LL!Z=gj}DddpXmfHs88=k^odHIBnnrsak7d^ zW@DD!i1B>Pr7f8x3DRHFXS3^BZNcHJ&8|Xsz4`IP@$6KUR(?EPW4SBkWL1XyPUmTq zT$p|aE%&CY^WMUtt+%gu9A_F~{!hZ}*IDP=EtXZv?AKbpbo{v4ukmo!r$_6mfsfUb zrBAcA`Sh5z68e>gnU1s3&ujyAs?>pqwr^ub&?kqKdChKlr^^P^n?lQ2vjU{PV%- z4rHB+wFJ)s^jM?BlM-Jt4fTX(Y|OA3d)tWf_#x%3WmsODGltcI;)_{>r|xY-M;Cen zeqSO;Hv(U?*%lY29&z>h-uKOB*RjpYobN}jH?nSJC9bvksggQdr=u_GEWhLQe1+5Z zM$GaB=bh!Fhsu>I<|a6BusaFe;zk;MO6*yOoUq?s;A#L@8dsw-POVDMR)Sjf3U%i@8iVtD*HF$cPZ0&QA?HXVdIOuoR=X~c8W;4X z3z8LMKzs*S0>x%y_B246ic)_1A#bebdRFFHYu0KDJr8)&*q2`Y!C2Q`V4>Em(dGhr zH}0_5>avv-vqD#h!Zntq-~@uZ%Bjw~R%gF=yZOTut=#M6xFd#{jAZ0JTuyOach2hh z*#r5cr>04I%nXC|kj+|sflT+#1~@%`kzio$xpm#beWJfMpfA){>*T=-6QlBfRLbW< zi{XE#wT`u$tb4I$@IgtUG|ykO(~KvN<(D?z~*V*(NueT8!ngOOZz(t5k`z zJ56dE_fs2nZchHI)1>6q7(aCWAxGzUDd#1}9MIY?#2Z1E^oz%>Qhe;gg3Y>C5UfjZ zqK^v@)fOS1C7XU}i@XJO-KW;@C5moYLiZgcvv`y{nq-7bJK@|`coNd0zAGWMu6zA@ zqMQv~$y|L`gSeqGtkr0H@-s{DrdH=>I9cGs93v!) zrpTNhSD8~H0)lmg#@J$kPI8_o+jyM6QOO%WL|;CfA6I#S|13Ab>~fT{i%CMuPdby) zuUNLxIat9}6K)f5!{zQ=>PcOZnybk zRijYKRye7h*PL9r%|rLy#b`Ngp)0c_x-W-v41hllxV$!^CZl`}XpH={I*w%4Kg!j5ME~zOt@&CZ)xU+an5_=Y;uHodcZvS0K)hD#&UR_E zA1)N})#l-1wZeK=JUcX>V7NdQg7`d?lVZ12y0eq>Pge1}JNLQ!jt zNw8KfWtSA425x$iZ)2}|YMEpyWu+b}U%TMdoIA%aVb6PJS=yMO{kezUZI`H4qxIty z(#My?^Q^P#q?}-0n4H2oZdvUz$+2eZ=p7zQ8| z7coJBcn2UZc2xu72Rx-L8+4=6;dUvVC^0>6fp7k3W~t@}E9vhiG43bVoAXDrPK?0Y=`;(7PK@%2bgn#w@t*r(lYCwBfa~dWb?h%o z`n7Wm+PuVWkW&@P)XN>|)axAr(eWk0Ugreqm`14-eO}-yMW6fA?`4ZvGRog;AA?>} zuS?m3=>*{n{(~`jPNJELbnF*#>aABLg~lNTT$08i;J{pSKZ71{+Ml~S-M*Y-4q$D5 ztUO9yp02lM+S}MX7Kfbs>?&@aOW7`!G6QDNPthZrCmwKJ$`-oJ+I8TKKPg$@I)E8w zk=^Nw8TE(8w{$3HDKl$VyB4~xDA8zhN?gzs@|3a9wC_MWG(tY5AJhvcpuQ0OQz=Kb zs}RT8PgN{se$2RgII3GOPfjN~O6QM{A;>~BWlJY|{5oj~bAi&H_mq0R9)e;8pjZbe zt{#G7e!4QZ`Q^e6_DXK-jE-`x`5ybAY%xEijKb5wxpF?*^MVda-7hP%l<02S5Zo#) z?M_!`_1X#ZSS>qVker`WQp<$=%{fJm6>LKOqd9K73-7^eR@awomyF;%0_O7AT0Hk3 zC<*oI$!RJUF2K0G;+Xb3o*Hi_A zwHU`tjMnApi5S6$C+z#)oJ*aY{8Q)FVw!d3(^Ok94mKd&Z6+#rXvcF|kVcl8?fGf& z-&ksEd~>W0J5k3@hrz0~nI@99u^1cJpRGD9Cz`ePsS_`OBv|Xx%Q$E6wBRwxY0|HJ zy6RCPNy1|OGT}++i{ooP$+RgzSBwV=&Pxv|8_nC-SDxT-;a-FTXJ7H+8da` z#*6E{r;{>bLK5C-M^Ylej&oj^+&qA+{=M2zO2+Nux z>dT`}4SU!(iTRz0(qicJ3VL$% z2Tl2u*M!nbzJ1^OI+Z@CzCnz0%;PBiVHRIvfG_9Q@a3F^FK66%{Xs)MZiE3{tf?_B zT#1|2{8{yH)~C7wX!~6WGg*-WGpDjau zHrV0qbDV|erg}jyaI$XUmsu;7zVV_>T7}+G&mwz#kJ97yTo&x#5qezcfq$qctJeLB z`2ojO{4WJ#F65uiCfTo_9lHt^iLnUhq3|Xl4%%27_^7^cI@<^8+c)33Y>NM^smT1B zF?HSl06#oYR|{=yevO<@6n1C22H5zig8;*Yv&;Uicei(`dk5Mf8fkam%1&2pG&}6@>ev$zr@z&sVKbeh*(Y*G z)g^3^r_Pn&-qfBE%E>z#2Hw_O9jUJPuT`K;bUI*#br9FxZDMc?b(Gug{I;~j)Yt1{!?nMNl8)#BT&EX{3mZ}yz7(y$lP zzx0|5zV#Bm=>1+ms9`U_!ukT^@u@N%xxw+!SGP_hy&w*9!U2B_$$O3V(vl+R1$Oo- zc>jw|tHMo=1pYZqhP{IG;CGX)LOe|2VBA*47MWRm=Qf*UQEZe9aOJ_`G`6*9Fna<$x-;$j8#c8RYzocLnu3ck2kpc@km@^Z0Ixi18J#32Q zWKtP>*8Jxb`Ud_!RL=`3{T1&zsUG_EHtfzm17ku^u4#%$qM0Gt;OW76p>=PYYftXx zxPD)@b%H&QO-H###~kbXEdh7s*(;nc;ai* zA?dW%DfSs?KhL4JK05wg-@nQcZE ztM7Uh-Wmhs!8*-sa6_tPcnw8ZV^Le)&~*{VNgKKz(bRWcOkN+f{HSP`a9V%i#1O2~ zwzBJ49b29Mf%{(e-)_M&kOf&(*8~eW({0pJ{nhyW8LW`;mfPGv!*7%Jcka=UCI)RB z{?}+Aw|tIaK_E9qd@73?h`?@Ham{W&oX zvz(88US}bLVQJQxm(?$f&sRBjVOeJEqa$$c{ovgD!MXR(H!GaG&|KqakS2o;NY^;m zUS6VTFM*1`6os{yGNxM1k=je3g84b_Ea^C0*nU%Me&3nLwxG?2bAIpm&TE`;Db{@c z;e7e%>A<&Mx-rC{yy2~h@XuWc|J-=^=l(iQ)kyXi{};58B5C%F%h;9BXTC_%fESwN zXPrqXNi`k8FAbxwe{+WV@i6%DT`7NqU(48mnTlyX-o!0_*E>0#W)4Z{(MZ4Peb;+) zx+=H6Q21m)O#2ih_#{2y!P@Hb81`-CjUU1yVu`DYZ*(?sz3 zzu4!oncxWnitp)}(WUS^wX!?eZ-)7v+!4N~Ns8~uZR8eT1mBY#z9+>eqIjSFoUGQ6 z$;Mi)9r8Y{9{(782(7THL*A#QLGRO_74Op&W61kd9^rkmE8Zvat#l~9iqC(f_vzsX z@6%rQXvWLGfE8~nCJ$88_jsWEK@U`I@kdb}sJ}*dpq?%m$^Z0Z(Es#TV05WN^$^tx zi{K%Ok-EzzvvvG!>}p_Hwfj~wuY2>5Wvlw1nuq*Pi@w+Ybid*kN=X{0$N(#!AJIya zowSx~l8xmOe=11vWLc7@jyxQTz@JnP#~N{Elpks{{7|<*3g%vsOeiZ`lj{368*a?j|MZ1a%kKvFysk2qA1 zfS6o^bpUQgXSv1v)6u8ovF2`Ngx?L0aJ>R`Y0w*054ctT*#n+Mu*I{3w)j%T8?}4L z8^tN!s5jt^$`GbQH+WR>Myx*`3iN@qlNu;@`Rt8fB~Ek0Kq&5aE$( z6kPB~ErLg?^*kP_eL;^@ZLvu{GR!0ONYEq2lI}dmBh{WxbfH8uIasFkA@7YL=#z4>^`MR#*8e>)WCuM` zD}*rp-D4;Edsy*E?Fi1A^Uws~|_ zPWGR!OxJ4bBd*kin_L$eS6h?V7-N?8!z3+BL*!8;Of)_QcLMvVtIjo@C6(L+YY^+Q zik-`saL0|@OpMWg0g`@St@V$>#gdbmtQXozC;qL5XBtrM)u5v^X$t76*nELK3z0fJ zXjL%p7w$%n6ZILMbwQl3E2c5oU;GMmdA}rgC(*-XM3kiZf2m*OnU7elv$fSOZFK^3GHumI z#^1RnuqIcXwR+)H9KrSVT%~am{rVEZpi^DI=l_UM}B!@^e|>gK306WiK%4%P~1(VJnfR z`WC@AA9^@+@z3fs3uBkjy5o&(BEBUSomtMu<_u|mb6Agp6~u>v226k^a^{_@35MpK zKEfjm4c=qbnPoxyrB9=6&pxm~V(NHJPPxu`G5kntg7fiOjK`}B$%CtoNT<^Fey0_3 zFfl@hxsk0aepmVCg(sQDOx0#~!$Lb097Q8+EBJFNstpuXa6pOJn3rv?B(9T_O|yIu ztHa~Lg}&Gz`fGG4`JL{Nw>ty2!sGX=YpkT-hI$pU6p5Q?5Hn)J%?L)UKOI5ThDoU@ zC7(39kDWhJ?9C6HL`m74jk%%OBnVozy~-$))ur-+PSD-GI-7^&_<^EMXDMcEJR%K| zukt5YG5y>bifNtmX>?30NrB{>Sk~!(a-gp5b=gP zA32-Uo*k&LHL0;$>bWnoHFI!FqYmGGy$vnL>#*;YNA5r4O)Jir8>kp90^c!LZcFob zaHm?bSTmQV)M`*_-H&|Rv(KPbb$$D?h8c7tpK?}_juY6bw&^)K8^%st)$&eOTD1=4 zBcXbFB&g8C1kB7#E%h~U_|Ji%`iAwXex%Y|s84DB8JfGdUAgU4OEkz_Ei~Vg6Y(@+2D6$hGAmju)a{7K&ap1uzp*I z-5R8l*v(un{+gHt|KE)Mq-|uN2S`SdR%>ptFpz1W zZ~NIA>p;aljG3xiO;uD+mj6g6)kU>v@tbNmjT&%sAl{#FQ+*tMQ~mAOvCxjYlKDzo z(|qJIF|%yN-%7NW>PHksQEfS2lD5fUHQ48}nkutgsX($KNAK9)%=JANe-DdpRc(>l zK7Xrw(CVIGs{|>vs^-Rh*JhO)?Nr8);@D1BeAP-jCQfP8k@;4^-)L@*)$FL=g4?Ve z*ZR{sjr53l{wbZYcz%KXUVA#xN@r4Ipl=jLp@3;_nMhGBja=VvtgH>^xORTmYGTEp z#!EVJMl46Q{{gLjZUA07$-@lXbQU+JvH#d+#7N!!BS*>r3Z*rs43=TFINY$dxxVF= z49tl@g;tEOG+NETCH0%|srFmtE6)Y{3?7af0tgBoW7pofkl7kx!AiMBhsH1^yoH*T;GT zqHns-<#YRF-)-;`(Rb3FBkiT1GSH zTg-c&V<@Fk-oyK;Uvia7dk#Hk>~5Av_@N#iaU7-cXM#2!yNWJsPUFKBl{KB{M=`c zRhgha64m@qVvSXYwH~t==!-*bsWRH(zf4irFlf9_8zy5u()sVH{$Fv`TWIIWhgEd` zj=7pgsjttd{Cu~lsovs~QRkjmo8#dYv>4gP=Q^cr!l|Ka^6JYgcrInf@y~v;3~kulC?R%}xzcTBNwXMK+3d<$huf<_0r%j)ji5wNRU1Qg~dSbrTTB@+*`&5nmZ!xw7cS)xk#cYh9As?o|eWAa97a}w&xEIM2K$A!sq99rT_#e)3{|Fke=Q=spe(`iy^b2>QL zOBPo_Mv1T~y=gN}QXd7_ISuYkvGQzlE1j%PX^s1XR$=3cTw#+|{Gb(M)492MbK3`P zLR)DYMhSOcmF^}iUG4Z4TQ?*@XxzbxF}lRjRhd8%BoA+5@sI>r%!RrCK~T>@$Qmk9 z30ZTn6DPVON3Q<>`0xR=BJ9pXohG)R$t=g>*J92H3Rui(MO`)GHo#M!RmS{;Vyg!F zesWrr^88#^ES~g@oO}`bdyOStHhEkHtTb)Ye;gID7mVw>%(8#M+=72DT7FFAE>d=$ zg=7cE;bfg%I9X>`m!dCnhp*u|?u3D$qc6lo)vp9A_Cxa2L*)zp2EX)O#E1GYAAKus zwBrA@<#BS7ND{%sAQ3U%+nc9t+TM1&Ev>B@vcRuka*F)m6n9P%N0eqViJjRs zGsmp-Wj4QVK^im0>g`ZTWI-feVk)X)?Z*Ovs}U)n7XwuYtQ7PZ`y#YdnZR5BnR0f) zPk5{SGL+MSry2oA9HXzr3Hu9G*{JGteP}bEo8s?1yK;BZ^^@Tdn~hvwX=)&!uQ}2l zAiG4z^WcyM+dxIev6liLr<&L*+_c0J1}kPF{a$LkQpTdyLNd?78?6|-jPwY-V`{m; zpG=y=c*GAMSYQgmqCu27)exVM!S7C(dE}))rkiS_GS4OFu_@)|%I)AHHoj#%LH2Ul z%wz2V;`euG)inJ+uJIl*1~gK}kyo)TYhbz2KE=-hFPCL8vpBDk^3`=G*SuVo%QSAR zp@|RNWIJ{?;Hoq)n|1WHz#)DhW#-Y2K&HZ@g{l2gEI7INj~8K#-wL{d&hZiaD5 zoY}qzI?8M1MsXe_+vT!Od@lPYIpc^o00}DSmgvQokA8D@tVCbISM(-v{Y?o+x&rte zuPGYM{NUi@5-1XFF8j9iCvEMJi8m(9I?@pkr73ZChrH!h;5P&9o9ujU#<4vC>#{L2 zFY;J>G|GCB%MoQ}oXgs)(xjPawbshRCZqfp%@%XUI7Y=WL|%;rjQKL|ewDSLm>XHL z#cY?iKuZM&Hv{H8ob|T4T;3w^3HCJEXf8#a7OTlV-#;5%Ybar@br`C%#bTCV zaXC=Og8AaA>O#v{j0ufj7GnGRTR+9kwwPUbSlh~N35}j+uJ6`_8f&W%rhzBK`%vy_ z$5#CRgsqVO)H~K*)HvH}L3{Jj-uzD8lAEyZep&T6aiD^FW!lGU6`D1sN$R&aQMbgs zrTy5-04GoJuMD&wyE8EBdMXuLJ%=rl*SO>0^O!16Fek{cgN=3Wj3X}xY}jcDuZ8Gd zK+ss+X>Ou+MC4?z29|a9O9~AbyFCFRXS9tgr`dNE(<*b%EX>7jOS4Qg{bW3E{VwGy zPZ~c5wc!k;T{shIS3l+)WEWQJ)VcFue2r4Wl_S)!MycUSkH}wWCyhK0vx{n884te{ zKh}Q!wyTEPHrcN_+8)SbSEXY{r=P5#SxK}_ypCe;IPMJi96V#hujPsU%^d6m!}gYe zs_kuglCvrEXD&IndUvl@&a%U#|?G$ z&Bb=|LgF?cyX9yiH*uNe?}^;u<U43(O%2;J z<=ACBpXT7rRFlbWvyKyNvB{2^vK3kmw(sy*g*PW)?GXwO=Jd=;p10Vuloq?tVqr7a zl-X($!!U47u4Nqe=5z1!Jt<>F6;89g{>X(~PNh)5NwsCRMuL&x<9YgWQN)*=R`e0~ zyqN7Z+4Ze_i;&CB=i9jQ90e03fiM&X5qL9m9L~gSMGTAE&+qH;_4=M}DR1Pe$vb_t z!iIN6pw>JoXG<3OW5r_26kXY3hUS_h+Oz!lV_RWmb ziYC-;6-}`$Aiw89&!BZ9w8+0Om2hjc*fqKNFHxHC096K2> zfXbHgU)h#Qgm@j{A8WFQ^5iay#n?6+H6vQUwT9%;9>+X?%`TksunRJf%Rx;uAPZ_xcg?PZ z*@&5tfmuf;^W^knzx6!-9mspfuGHOw%gxJ>+k6IXRidrRU4oR0FBUurv+pfiP?qU0 z+Lg0Wga6Hvt)#K6a3fztZT0)8HG@dyIcs-P^_Je&#GKl4u3Tf3+ekKOixTGxC1M*d z-_qK=r?-vrRSTxr65%?3^R5^?x3bqOul2X@;;IcZjQH!0HQU$U)Nu58U`<)Wu?sm@ zwn2Q;`_=L~aOMoaPiH*MwPi3~5|~RqRkh)!!foqs8g=AMK#Tot8eS9<_z6O+)F6Ge z+`W;gt;}*NY3%GQ#^)Jv3T@$*FPGv?ON=wnh2e4tS)w0Z_Cqdi<@kfTJZKTuOc22vds-a3%uF@ zs}1&de}&B_`dhe_u)KM>!8eypXH#J5L8m{-;WVVVzDYjfy)8PEn<-ZLT=pwp9Cp)? zMLtE<{=k1|y~zZ-o3p0lJi`OfwGVU}!8gW8#fn$y>L2N=pml{zO$IYqW^T40B4N-HB$t}lQYRyJlg7mBGF2b*6#3HjKNx#qLz`pKje$}27Qm=Lf(`kon(d81idN4tuV5{$PyzPYsimhy%zI5 z-?{GHz$<{Q%PfAuB*=A&!5mqWAF#^vf z*_~u@lAm!gH(Cl|gvzT{E7buE;i0msmA0T!&2N;aNiJv&0_?R}4zizBtJ!9aMa*}| zd#jF85?hS;_)0F-@6rex^(A~Me(8941mf)3@Jx*!BuncoEG>@P+zcChBbzU5imcP@ z7)~7=H*Qz9wIeCe_tn`%lq0(_4z^aH?;itdZ9Lv?Z-(uO+R`=|Wz~a9niJ8J4t!!J zW|9WcdudWK@}{;l6NTFoB=_dDtrK5~5ocpWGwm7h@`{kK7Dv38ww22+L{zz6Abaf? ztRiO7LnBIiNDD8D+5(Lp>1LA=l}5H;kmgbE%IqY}oGXIR8Wk(^EemIzZdW{c)~Sw9 znzuJ=`0jF+U+IDF6;PP?u)}m38=3$(5W78er z1kHn*hcypoSvN}t+t0Bklw~yt+j@0k@@CCeO5-2u>2Xs{^Rmav4Mke4>mQn3*PXdW zyDvdMabLphM2TwCKIrDPHXE0S_>QffQ4)NXs7WhowxX7KBG%=2$;Grb&DK$|mf3$x z)NIvk{TLdMY~ZB?Y2a4Aq#sa@x9#Xn;>-=B8W3B>&Bc?z$J+*rxPyXqR0E*VeOOAr z&G;?q^pL)(%O)=CT;8?3#?Nu)&7(GN>y6>eTK&O>=A9nybILhed}QC(A_J=5SC4A!QN zldl$Yus2|!f;T0y6u>k}BHhj@SSn{JFkK6n<^qyYk`XYO@N0rdP%(D~z9%8>fuK4J zs7B-Wr&SF{&je^bSSlOfYv!=hK)(X`We^e=BB{;(6pKY`(ijB~!9+1Dv?iunQC#1( z;8S5(_vt4~^ZmAc1TiORum)t?SIx&dxGgrRyfJM{;|+xyZBpY6?v0rq?4ZUhbpd+4 z0BdF02_-5Tb}>LKg8mRVetK1mD7Pt(3Y*$TLzPe=NaLBYpv*SC0}+T$DD^bE$?%1xFQ!bhzs zI*ji}j2Uc&H?670Tix2=-Hy|ZkGHmCkI(jFHtu)J3UFG)lB%uXLjwsKd8rJ4^;vZ+ zh-(G^p>BOQu$&)ig+>PPANaqvyR){oJF_mcMBi<81xx%3`Dx8Y&uJv>44ZW(yln+i z`!Ue_a&5H^kq{m^6{l&`-jXj*wa=|L4<<~5(Esv}Gq)Y%;;CXS2!=C9scu?bi>mbhD7cy8% z{yo|B23S|#X$2v_P(I+=zhM31l!va#t|>S1zc7sz?{H5BHHAukk#ug!qeW#=fJaQqF z_ljY8@A;m*F68BKV=?SGB_;y*x{r{XL;L{E`!xSt&FL0jOEV`bCG?1Q2=o=8M056O z#5<@_G!*R+f@R(?SZ0n;JMmK!X5KAAX9aJmu)#;?!~Kn2;g!XGU8Ki#bQOT&IQ-@M zeg$niln3`bcG24R&78@44d_e%rUg&GH>t55Hf4r;pvs$lpqMZ3$yNEvine$*7IYi? z1@2|GPKBK{Qd>#zRI6=0tBG!V=6TvSI+CP*uMP6ugcZ(xU)UrW(IVPvn%h}S<YE!{5goHLrx_{1-D(tbQL_aP>G8o|xWzQyo`+Uq@l0vV zVwQqAXJ#x2>Ws;0UR6vtFh9%K4L-}eN8WmgPx&@T)MI|3F+;V&$lLWJx!0LNwUtirzxe5-MjPZ|P;KRTNxVRlu_tgJ0Am5mlz9u3?w)6wPWmdhQX zwuoM+y_>N^w%Yv<1twq{kl~C{=#-&+VVF#iicWW0(+u%g741KL>MX6-QasF5@o1G5 zmVBV^^huiM@qtM!6;@$yWtwID&`3qLxWY|1_=AE2uJ6|)U?4p>m#ELLLxyvbzk(!1 zTBA^zQ&cKz&@bMU)tD-B+^EL;%;OvyCNHit+w6rqGcoE7&Gi`dMywDcCFHb%A2(T; zPPBMzO=T?6BUestqSbfL&MfTkQ#p>}^^;WXrb^CgyjZ-QB{rsbjBegC!47_FA6wa5 zkyZ3t^EiQ8TWyX%Pit0cO^iWX$t35MRz6D7DQk5)WhQ*4_!c=tMH;Hhv6`L9l5Vb?V;$90sN`A>JWguLv}%R>_NcR(RyK*(nd!bw zPy;Vl;SL3X{7CT~KC^7YuhH>6K8;+DU$*#O>|eYa9*i2yw@xqRGsYkCQZ8+Ly-X`D zXX6Gc=76RzuxpfhzKhc+wS0xYRL4K!=&qUJYyHtH{gs@$(!Wxx!t!363Q12Kov2y> zzmLC4i@F@T4D3$t$Ifwrq%%&1BP8IS15q#6xipOnB!1(JVRpvop0n`Zd+T;`04 z%W57$y2%6^BiGMCDsXQau(M(m*3;fsVvfi{H$y4#Z-{<$GTtA!Li&pF7YOFsOruYZWF1((@-es~H)3uy+3G7<> zUKz((-8OE?tu|y#_gZczT1P|bg4ZU|Z z(x{!$IGZxWdsxPihXTBHf0f-Hj}hhi_G%coPyGlbj-Ujc`atynhceajk;Vi&R}Xu; z6Z@9Az9&%H2+v2R|E=*DcYmOgH`5+T-04@S72(xZbkrAsv1-E{itD3TKg0$yCHgln zkz)S-9z09(+Qd+-A4U4Tx}e)Nmwo5!fTqXwtr)_5rvJiyE<74M9G)`<9=4wjKJWhc z$&wLkTJh5Fu=ADV`bmr+j}heGBuXMG!I`y4Ta~mypxO8eoWP{$hRAIu?o zG6oM}mauvqqR0(62eLojAU+Fh#x5h7*KR(UV!(`ymCCsvUn1B4O_~J{{1zAi^~U8e zmcs9>=!rVt;xOB0vvLl8lrw4mSGi_jU)2oPkm3`4Cp=(ZLV6?W{We}b(sIJ#@WR7CDF0Sfxhw)%7<`rJ4cp4B;2_p0eF2L2J7w0}YI^v)`t*WVkO8d5_UD75Zo_qL~q6h_}q01`n<) z=Ti723gt1t^>=2RZ3P`B&^P!wXPqQ4_${tBUhSDvNI6LB-;W&QguC6Dp8FT1wP0UJ zn_VPdu!iRaEz11`<;YuNRw8@GDDXZ9?f2F|*sl?aHJY+`_c;zvb%Z9VaNq=~&N@mc%^79KOw-u-ghrixUiSZE?_I#7 zs;PFclO!0 zwbowyw)W*j>bSxj_T8y=(l1N zv_$u~``0`n^k~|y@pf+h57%vO?v24N9>ZBwzGJxm0^i(|`TD~jI}=(KrMYx_L@alJ zct7XHq<)-tNssBlt+o>4zK;{xEg`>N+h6YbK3PwY)hoUo`SF5r7r3j&ay`F)*EqSk z)HuCy|Lx-<%@7`9w$v^Ed-!erTC+dimFfPjq)oKO+3jjyxISxLo2>Z9N13;S?dWKI z59GU&0#E$olo*l`>w)mvUnM?UwMlqQu1Rco&q!H1w??n`sk(-*Q0#BS zYGdE}k=q#HZ5jDmjLW^Sg>sAE;ExZnZ>7=LRwKK4CVH4{u}&m=KN=Y!)iqo)BHZn_ zd|lfCK4ivtcN_YpxMa6u%TWEF?C!SSj^S;GSgcLq9b8{Cc71ZJaeB#7@mHr8x2eVg zTVSSm1GCm|r*933`73-|#CCNRc)q=qNXi6iiZ1dkwmHl<(NQBjUDp+NeO!Ja%8WTTB&KmB zlYFDdRbqZlOxlxUv~zJu#C&&BxbAh$U=(-++i;Y#M?znAR~3Ff0rTZ;$LtBfD zEz2F5(3m{g6`oz~Q;&!G_ide0aAU$~Y}-j6ePBcvrMi+n{(#Z#%Uz}1q%`eOF|k|t zUB~W$&fMS=?h_r}ijLlZQAk3$*yWP=(IF!_rm9n8Ng|qi4SQ?y*ih5Pe4jSy5<4|G z?T|Ouvk2Pn`0~>9Z>NXrgNY-$yw9li%qysC*l&!(Zgf{d=Mo#c*dCs=y7);CJC4lJ z@HZvw;>eO!3E6RS>DsqE&Zw_C-kz|qIF-Al?s3_RH2oe|OK+BGaki;x2|}4r*s6$Y zG-B7q^t&#_6&`g{duMiH!y)5F=!^DKsX1RItlmxjya_S{)e;~o_wVLa!Fmo*G32SCUtSQpjS0cXTDSIyIi6_ZnLMY6nx6_Ik{gFqi#a@fi-*y6xW4-1-yG zYSdEm-PaxK+^jmI<-_%OkIkOhzEx5DW3oFdBDU5o?+57d!qKFmA0IQ4q2xS!gzxBN zPpCTs1u>)V=@us~qKls0xipcM?D`@n`>m2bMgmi+fA64{Yr5D6(gqHu6;1l+2(|q} zM|S0&*=MXGXIdS1a(!Pl_{@ifJy~U38~bZlexA&)e?v|!ox+W9GI(?9(vg$x@bLwE zCETnI-EB)G4&QU*_KvW+vaMk;hO^c!>DcTaIc+hHSc}Hb;-+ry%--I_Gand(&zvx1 zWc=8-^*T2uV^OoXV?UD1Lz*+f5@U`zt7GY=D=p@bY;_;p%%;x>>b)Fz!!!4QX5# zTjFZt_T@#<76jtSIa=+W2*PT_Ds3i#MP{j;>*{0ATl{0)>Zj1!hC5rh!*RD^Mw0w} z;-pz}e!`Yaf3oZXnvyNyeonZXVz)H>{`*!%H)8FY<}9R)JH?Jp_|q91)~lbZC=B0i z<2GQsU5LF~zVzHH!Aft#q;`+nADe6cx~uFvEKG=B~WFYJKmPDlk8qUPA|sNTSl9> z;RQn>AY5lZLFFEotCX{~4*9KRi<=6a~h3j)W-MIvEQut=(6K@$@S?kDxM|JIX2nd`^-I_thbwEXvdRS5uRJ}QG4ZJq$N4G zS6MZV2Wm%O$*rY`nEZg_)3C2tx-yAbwj3wLIH#*0xr^N1Do z7&`?SM^t|_T;V$*?A7Xq;p!j#ql)aJJM0}j-@p3IaHVrPoqc@`>B{CF@9w6z$Vgrr z8CT7X!xwUsH+|LL6*J!%&Tj16-HFk^j;-GGcgACTVieTcqN14{9!?&YR-MNkm{4GY z8lgD*u`oZy=elOrkAkLAFEYn@*8W&qXyV%(gq8i6Ldiw;bK=XBY3?13LIO?UQV2=u zpRvpS(T6hY-7o(3`6&KvN^JluGVT|ndD^Dm?aHjbm)!1sG0aRooZX@$aYggAO&`bT zv>M;)7ne?M`^dbVyKM8||BW=qgp?c`rxupD!=obL^{$Mw`OZkSZnW!f&)c(G`sv)o z?xx#L1*{aJLH@Py1eu-Otg1GRtY7ltwr8XHw^PErNr@l7YskrljF?{R6{umaK+TJ? zziJn!VL2=Fm~*Mk&Rrk8S^ND+{Gxg8WSwbOH)($q^>^0Bg=f;y#BJAQth0MFp5MLp zfpuZ-FKS=WCDyv{olC1}0~&Lm>n5keS~#aMj?=Kd<}m)LYsfJq)ROOe*WYQBr0Mnl z;EYShdzhoso5)!N-Q4X}O)BvtyVqAS8nT;j?uEX2oqprK#>^$>`>KuA9_RAG?rrPr zXeT#H%#C*q_iB0z?Cp2D=XspWZ`;yN%D6MjsCE~pMcRc1753;PjeB~NK0aXRdbLM? zTP;DT=~U>cJA-7HMcdph z^j-ytAH8d2a6^OLHG5-b+O)JRWSsT<`)gOOqtDM44ldM+U0bXM-8g6Zd99p?Gfwwv zY@|K9ZX>-vBSXGe@}zM(>ip5a)P0miI~aRUo4Ee?OX)_$b>4Vq^s(4fdJy5`&F>oe z&qZE#dzV;|hsE8i-#M4g^IXnn3~tKAp^tJUo!QTxBlhJnSI|tEv~f!cfBLSa-dw^W z-~Gmq$>#&VeBSTcBBNhyLE2n;^cCEpQ3!o@SFe$6nF{pgc+(hSL@IY|H7KByZ>rX(DG-H6gxyX6E4t0X2R zH{okHTa}T#uS%2AZa-QsDJlK&M<$nI=iy6q=)X}o}Ct@U&^;7u=`4Clq*~R zHb0y^2SE45j^XUC#9p>DnH@mfsX2eqUFr4T-#5J8Hutr3jlE+LjG`Q_sG{dj#yf7% zA&B=pxBGJKUUD|V-+rGp)jK#xk@7`C$ayaNGWKL}Cb(Mh z-Pm)9XSN!818H-DOK<3oyjx_QK64 zSy0rC(<@I{J!)Ti*@s!3yj0>?eyK#bx$B<6@G+coZeoo~WJG%{`%D~1aq%zfsz^4< zT|XA7v=A;%Zhdr83wFw7!}TvY52!hX=79cNeYHK|QvST1N9H;b8r>;5SR=ipjgXt+RnOQ$SMZo70_nmwl}q-Cqk zWUl3OZQj(Kd14g5SovVdO_OB5#&q{@Tn`_HTW9s0Hj%HMmT7A2jMys7|7cUt1 zT>m>FQzDC>F%wb$2ujfGE1=0EWv1J0p+MU#p>Qd zw-=lh3w*&RTVsmC3gj04qg%h5-dq0_^)R9!oRbTYv8-&S$*71EK}8D-hDUXd&8+W{ z90f;WE46H%Zyy-UK5+?I&9|649|_osjniMfC3er4BKKpqG+V+Oo1Lar!kO_-$5QBs zava{AjP8_kIyR>0*w(-I|5ePG*dv>{?K(EK-tpS)?4u0>BMMsZtF!Cp396uFQFlE$ z!Co|X(&|alqFrn5Za;ZgMxV4P@93_Rn|rZmNQ>*_`u2{SSTA%dySmlo0t_U37PiWwPqY3*G4j9v*EdmgLPm_ITTyAeyY3X60< zI@U>V&fTS0{?Ztq+GAxs!79IB?QOxDV8GR|U&@S=z@vL51lAmk(;w`Ya}dMX$JDeo zV8!0MU&>p4tJBmT^X8Gp4@8q4%P()08WHZiv^j;nR;_}oCVXdsb~uuDm~~c0Y(3az z(1Se!Qxj}4t>f(a$ohER#G7wqFI^n2xHlvCrSnUFv+dGp37ezZI%s*E#_9SC{g>N4 z7izg%khQVE&cl62b#tC;-GvcYkB+ZDu9~k%uZ7ktcX>9gF>n0A`s<>rhR0gY3T#_W zl7BN=oh~-_NJ#zsyV)PgX*27_qQU>B4UkdTU!MNUer#34SWkHRnQ?qoVw~#%#!aPZ z-*96_cx>%dj83r|7_ErqahTW+YBq3+u-79p&WrMj_0XQs z>(K`%t!!ZY_lSeDFR}wA;wrX~rqxd2NA_Xew>CbZe(M)oJD4lvHY8H(mNos6y1MGk zOxA5ISF?2rwVW3*PvrFcP*#>&vqN6Si?1%?l~WCS@hIxOy`v;~a8jMMI;vM>1#1d8xtc}U#_1=GKh^YlE+wll=is(qXugn{<`L12Y~4E7qwY6y_Qa^!49qFGG>vrgr<-M5uMO@#v`1^n8e5yJCuLC zJyehK4rZ+Vbw}wt9TTD$ZCB45&M13?jI!^FV3ZxnD0@;Gv6r-9bREy=`j?EZ8@rB6 zSa^nW8YR|f(}^^fV5yYxH8;ZMJ50AV-cDikASbu1@%RTFQl7)d18oVMr?+J@^Y zCY6&cLf=3A^vP_XdLAc8tXaTaa)Lx=0rx;(yCq4`=Yqa{X`8Yf6H_M0EZ}0-RM%4I zJel9g9*51j6MG-d<}c+0Z6|vy?zXru;Qk(W4DKl0jkpcm^t~|${Ud&%)o$7c8F%W} zFe}eq6&7>3BeyzuNAioaK-?brm3cx$+LEe>baseGu%9#9^$XYE^5g3ltIJPzbT#b{ zkx@j_5o;GtW3E_2BCws>8DE9#CpUj?ezAPu64`55y}NDtmo=P+*zFuOklhL`cc|)a z1Mc4zuI}H~)?U5M;kTPzX z71lmt?l#**`7I%Tw@oDq-EP{9=HJ>_eW%=|FL$rc;)@V!_pG%_C9aKTPw_nNW?!8n zH*a2&Z*lyVud+G!r^+pqZ8@3Tn$wMTvqs8nX(;!Nq`EZw*B!^X#-&Y6vmyOR)|vWn zleY@{d;gx?5cx^RKKh=5!EbaiSL6Kjh(6Y}j3 z>nkCrJHBpy{o_6J>mTjRl(8g{a!dPL9Xmw5(b4+W$m<=4*gw1W<){nSq{O^ND)5T@ z#pd8*ggbSv+(dc!PV1)0u$(sD54lA)`T^(IPx$I7b34Aq&}F`n-;(p?dVTffU0K{G zpu(fN$(`h?o4Y&pVt>Yf*f3Xe+BL3DW9+R4nYV)eTFF-?Q~ckUoSG(InQZ#Tq)-{o z{h{-A4yv|?$+yL9VKV!^uKF70v(}e1Z*(Wx-|c!0cauhY-|27OMQM*`7mnS#e^fGG zw6wR{)6o_)!5J2F8(*Ll`hTsSA1U9Ze4TqX?Xm6UHqh8`cQ<#m``P~D`eRpenD@p= zpX_9D#h`;X1tiaqCodt&xbSEKvYk+vu&_gmZS-JREPFVU*xFY_Ge z(S=-2fQ8+jJZl2?yK#G{mGf&k%KboptRh}+vQ7SNay0sOM{fDmqoYWJY@Y_J}4b1bXHq5=lna?Jr@on_L zo-Xsv=c&y?nLz{p82kl(Uk&?~7I?~i3b0-sIBr3upR@`{~203M&eW^I6_h zJ-tfhmQ)sb_2QBW-RsLO@%pS7x|IN7`d0YLD?rkcUwUpyv6lo&im#I1y@eG8zsN7C zs3`E1k@OGKZk|FvJ*%X=yl`rfPxqANSI+PiSCl8|%@PTctI8`%O3Qs^Gks;D>6VoG zigoeQEx#navUqxN$-TvTX-S!ot)ipHi}!dlYV=sb!+dBI9abc;-qRaR_@3qbF#W9* z^&778&J;>>N+n!$bXrMqMOjJFmDwRQ^R++8&>a1*d}U=NW!=dC_L36s)LB0HY5twk zNS9yNfi`er7;QO-q9}fU6|o1)o1u-l$6cFOU+EuT~$4+gbbBe+T=*BEH{;+U%!5Od~Sg+cY4LF zQlDNZBD__fYW?WN_tUbo$7WNqWhE6pGo?Oyna|@5COV?9xUjsy=auw-DxI7HlIDMp zK6>o%F=-jDoAntb-b(bxD!V5Ck(I^yd1ao;f9ao=lWIl2)2}yPUxhEXqNGeWS?TFY zfbH~V?@abgSwyFnpy+zGZ)RaRH6ke>q|9P!h^MGs8lkX#);*w$k69)v+)qPdI+)6XyiUOaW zS6Q5ER@0%9N3^=LxQzOpUtBob=ha8}J>ep^sHEJi5oQJHcZJ(evq_PJ$}20Gp_iBB zPWM$1cYI}TuFvQ7NyQ1UsTYZ_SD!jd@5%XaHNxaBS~ckwbogkBbfGf0WX23nvBWoJ zgAB~ZNv|mJ=c3X)#Wz-ve??_kF-=rR;gF{3SMICOiz{bL^_A%*dHw>IoC9f!G_Rl? zk%+$)KexbBobL;0ia(`7GApD-l5#Z_#0r~FUNbyZKayV)J-(_6Usdr3-$bi4=?SEhlAfkd$jY+f;zNGY zk%~fI>7{xH|L94j=1V`P7Z!VcRb(6;NZ-uO$~QVlufL%Pr8gi)f(E5%7F>u7p`od) zh3BT+=x6+mkjHB_LZNBpAp(uphI2BkyO7cq**j`WD@cwBuX%j zg<(4MYD>Am~@>%Z*bDe3y? zl(dY@F~jxLJICMs<5B*t^fJ>&4gc{ZLVc)Xq0S%q9ca2N7Ik6lM?zllS_(vsH0Ux3!&hjJVUtyg<5ihGx*Oh)ZV)`&vJJ+v5-XqKMmA9SJ^{`v`374-R5 zKX%2tkme&=nW6lxX`nln##b7C%gaLC*J?i@9ExI#hw|3xq6ulnr;j5Ae=Yzk?Lm3quJY#_Nr+-NZkG+gR+uBVvV5# z^^}$tF(hKJ(!X#GQwSYv9TEPHHb-=5`?Z?-kU^vaN$L2J|C zaOy0^MP^YFxT$}|K^Kxl9~>3<-=yC^UJs0x^??I)IuY_ROF&{ljP&@k$Uc-(MvtS- zuBMxkQG1d(5@vi5oL`B&=qrWiKFqbv_XQpX#o|FZ^S-=~*|V1vqpKlrg|HDNWw}1R zvXn|-&I5vtVkx6>z0@OBfbkd!DRuN#teiudKWBLN8P8Wd3O_qflfDQ07RIcWu&iz~ zIwXuW*I@KlRybpZIk*n?t`KOA&jWfPo_~SQ!`2A zC-Nz!(9L{uWN1)wuQkQ@YeJx|`ltO(Ol7FlWEIG=%mYDUDGpOV(#(FH$$eg7 zer1_Y`c3nF&nm`?MMeBe9rBOJe<36CUra4TQRtv8=212kU0CYzGL)~1Qp!t^!eVPG zP*^I;)zjNA@V`FP8s3t_3{S4dnh;ZU{V^WGfZEa zB12#3`>Q5og%K(tQs!|Mw^Fk3+ic{ddn)`wBOrfGV>r`96U-{KO=jHPBtU4h;$1Bd zsTWrJCW!~=@QDDL8g@TD5>|Q#Yji8&N0nIGSjfQ!X2EV6nWG*C-Z4vM!2ClG>}Y-c?Qd{O)ov{P4$rDA`jl}>J;9Sz zR+3M9rH{zEJ*7F#!TBYV=W=cUwrV>nW>Q#L+Rvov+IwyuFr#PrwfDGYDD(FSik8Zl zq^HudOcym}=qzec>d(m%As*3YBzOp!vyPCwl6rc3_QXimB;OyUg*mrHhiu-VJuth2 zTymx;EISG5BdtJFlP9xwA>1dnAnDtSWbRx{Us;6RDZZE4*E2V*tmx)%-^}*H^7M~@ zEJ^U*!+55YNTKg34VhW`n;0uZAE{%-q%YQtGGAV0xi3h^z0&Ae%IfpvdkTx8ZK}tc zCp1bd&s17J%QolB^Hdg9@V*dpruY{Y&-4_5Gx9KDfmB-yODcqUf+*kEtTAJA#^1^A zJvDsH*wi~mj29d|e6;BvpG}zIS=nQA(2KxW%9IW7BRMg&?26~u-PXIkV1eJS(f{ts zumN{0;aoi3uShH4|NjM?`7daj|1bRi9Ug}LL>i-h!cWpZ=a=y$eqTAP@>>GR1Fe%6 z>$Sh3`r#PNoZ%n48Q=xit^Mg5{s2ON8jmz^GR!H%))4hihgN5Ye0GS`5*E7spkvA$)D(n ztfjC-Vy>Y?fUm{;A!q7~K0A<}p)>h>2e>cuv6tV|x=Qlk2DwTR_rpQyqIjkS# zTfJ#vp1(+Z6$LJRj-FrUE7ddZGJD)PI>vpyuUGHRe|_`x0RyNX(2>Lw7;EO3l9MxhbXE@CU{aLy%eu7y5j3*~Lsy}5^j?g5 zL@`Zm|99h3e<=7X5}+&ncjGsY>Z)>$u>KPT|4-BKC*jhg|1G;os8!>C^EdkBCsH54 z!aaXUW~u4vca9!?x1K%x_RR4)!?X3VcXXqbk#fyW8EuX&LZ+E&L}8wPRaPdUAwD!r z6xN`D@ja{h^sMS7a+d$i2?KhO;x#8`tRhLBD)p5WmQd^O^-#@Si3HLK!y>9#@68v{ zy2>&`1*bra7K@wtkFe}6)&h|^gfvYwnE$&M;3GQzHMQ zKjPK z^ygJD5o@9!l8x|b&AUgydr@Fiz%nbQi5ZosB3XI-10jY6p6Sd`X87(E|8Dx-C6&50 zzYXM|n{`|o3Ded{n_`xwxwJJtD^tHKJCkD08QauaVa1&osA2pRl9}K6Fh~hQEJxvP zUjBab_z&L8vcXT@n)>6J$;vph zIsZ6V?^zh%v#^i(zf8>v^>~(Vux7FppQp$7%0`}ukl&Po|DDwnh~7y!Yj)ez zL;O3ofWTm{$ZQg=JgCj4=|D2{TMx{<&7J_$*HCFi8Po-TmRrAshIAU|V9N(7h=rEN zY89^Zv-q-VU-NdDRyf|(cfc)ld15RVI+zVhTZkDTFHf3qv*Z{X$wdDbzA}dEC_E!$ z!kX`>H@q|V2YBwCuHV>W;LxFZ_sQKMRc5#G<)wwaCU@_y|5quJuh4r8_|=Vie{2i6 z{by7V%bYuqmf43j84$$4jlWep0)~g^0P*G^D`20X9$OZV=p1%Pc*|t3gfx(5v&)>k zpoDvahw1&xXO;KQg^Tk3`K5&==0Ah`n`$L|-y5LePG<1zkRerbvlLSR`YWr%#V`|~ z#o}Eg%hCwCEFnZ+%=`xY>-<>ty(&pR^OMvQ*_dpyJxwnyH1~*9mYSPD0*squ2a^s; z?h5%?1e*zzmsE=RJ0K=M1K-QWIR3^2cY*|GrP4-PaS)@qOw8^cmViSR213JzSYeT2 zXnI!9{;$(w30vC#W(hT=gASVB|0b%=IX;jP zuGhy@omNovv)MwBzfN0m?=lyCf^p5pLgu2TdfkqJ%baip_G$%<(!mHc@BZ}Wy`t2n zE1pHTm+`FTSZPBaMO0TEB3GW zSrafB3(^_FX5d|j`h@6NQwo7_{-jI~>zyRllweah31Yp!$~$J2k7K-`e13=_Q8 zD3GqBdERDyXr8(7CM-0u(NyoRd?#WG2`O^1@+aN@fcRkCA0wXho6}!jfxY}n@%ia* zB39@!+n5kVk#|;pW*Ywiwaw!HD8)JcxrI6Qp{Rc#@t|GCYKbH~b)!PsCsT@P)|RWL zLT^6zkP%lPk6gc9?h18k>MQ((CAt!bO+ zHpU4CRiXL$LyOEVW9ef=s{fM9t5;%wdFmu)r4?)#g5vox+OHPpYGH*sb0l0@A>LQ2 zi={6iZGh+tToLvss>xNkF-<)o=~;DB(hIg6j0og+^LJK7m3LAmI+>4#&?ZSVFXR9} zd8PTxYYE7pD;O4e`tu4l2$Jpy!v3cWnKVfPKS5MrC069jj@=9| z41S+$Z&O)L>v4f2{LjITHWhHoZ+S27$dKm?-YZ*JSU7*0|1aW-zsP^_*W&--A7`%r zU;Puk3jE2sK;Z8t)mQ1tRi#`LxeDE3kH)TCP&8`V?22DbQek|q)?8k&*;Q9o9NM(t zP#a$!l2r%?ZdM ztXD*kf}~?EX=sX6Tc{RxWwY6|F#h2$u;;;CH_`*t{{Pra0-X42{+}MMb6JV}*Zlp} zU2fYp?Wg`bZ2#eZ&BMQEZ~E_b`@i>JXbOkyP56pN(gXzZe^hXN_9pIb)OYyzzqZqVbaPKSrIg z+1O%iHC{IUYP@2+YHTxJGqxLlGj{Vk0G=|e- ztyLSgyR=p9)HNzrwO1WfN99zVRA+Uqic{CAE~+c-UN_ZUU9Wnmp6Uj5ql#C(RBv^Y z>O-5@PxV(WH9#e(o7F&d3tLWqrV`a))-rEpJK|6^Ox>oEl}Algxyq}2eB3u*6{tcr zO-)xtYKAISC5n4`S^q3o6{=Fr#M)J*W~tfg9yMA0Tuo8GQ11UI{(q@C>R0MM^=nnF z=Bjz>el=hHMlDdkRSVSvYLWV#TC5&a52=UM617wIi|QryKdMe` zR$J6o^|Jb_dPTjewyD?DcJ(*4L%ptcs$FWgdPBXb-cozi+iI_RN9|Ml)dBUcI;h@L zht&J(usWiSst?pLbzGfLAF7k8UY$~>)fx4XYEU0@`1ccaPJOCAQ-4?I)j!k)^||^& zeW@<0f2yz4*Q!xnQs1a=)n)aa`d%5TusBa;jv1kfJ;iEF${5P5kH0VlRumFx0JMw#St&QShsw{KQG<(N%+{r(FxbNE@j+1Z_jyhO>D!#a|NH%^# zHjC?6W!T$bo>MC?SDgN2kDTm*5^EBU8HH?#^UB#)b`TaYWx*)Jtk}yzD>(x=E9fKk zUA9=V>cF~NS!JngN5=jtt9A_Nig?dfjQ&g<0Bgz}jLLqKLd=yUE9>}@NQ(cktGV?H zJEm+<#nL*Q^LsKTpMfRS?3q<6=6jPSOn|v%g{6=r$uewYy~$6KuUuvO0wz)44EC9^ z+QOFM%3{wB<7v5N9PjPxPob!=c={DG!3j|z($18lolU|Iq!TzC ztYj}Q#|39umTZxXY0S0?;%dH-!p@ws5=`~7j#*feTVYuZETWiXRACns(wmqFo+UD= zEoF^0xDDSQE3>G`m(K!Qxz9Hp;d{J&%}v^7I#<#nY?rIlvXbdo_eu*(ePU2%DIKi| z9(oRJQ1q6}@UZ=^DF7m7zg@uF+;QJj*j_R=i^wyx1cRLyOCx-+IbTfUew9L5BnV;+ z>OyccyJ$qn+PX>)D7{%Z&?IV3P~hf@kY%-=HDhWCyYo?A;Y@_&KbYz_d7Fn6Wrw!P zM5`(a^9tF$Q^r~1na~(8YFH-4=A4Z(cc3Pi**ER4C6eWFvtHmSlG++@A{|!uM?pr= zkWb}f3TO!`iv^^TT+U*fD=1}VvTTcDDVsE)I&FL=Yusg(xtuIzT{I}502%(=0!rws z5_<*5Zv!u+O2`~Fq;3xPhvD!oZ320Cim`P3Ach>X556ofDq)L)S<~4AVJV~42n6by zS#^a}Hd08Urj??J-W)lyLe(o3!OL`AL|}!M4S7~2EoUDb%?74u4A7DwbzaWj7GrlV zDVwgcJh{_lU$m(dm=Ne1B{!Mrl|hw1G?r;Z2FEA(_8ES9+qW;y+-pu{RoXLtev@J?&(J- z(iB{!Sdx%bFsn`HVMJRaW`948SVcU_-*rrO+L*B4^8ib3FWcRiH^5?0g#Z%UaO8qrJ z_GFm>1Di!CWn>j7PgZ$3NNx%N*`Q>BUV4mGfu)Xmx%NVZxGOpFPo+0U0D;$D`a*W9 z$~J+(c5p;b#vxh>T^dG;#Qt%!y_v z&sHqCYeV9S{4I}iPQ#QIl#p{shn6X$Dj64qM)5aonf=H5YiN35`E>o4l_eajq^mO< zG)b3Oh3r-{t@`YFljC&$S7ytqRD?_rSTyvHwIgKSAb&|Z`?AXAzi8E;<5d023l#sW zzPX(J@Q=~si|HrLQ(9&etX7J7qs%<5d#41&E$jNB?~+5_@l$ojT-KT=p5J04(|JO} ztL-+G%u~%1_$?Uv*WA_Q6Z&3^BD(*@wp}*0Z8wi#$Rqh&X*>x{!+}HGX52UYX-GQ$ zM`--X_;_CF-$bqT>q`I7{15&u)OBUd|4ZFJB9hS8Ij`AN;5qv&*R;vA$$CUTMREab z+9Ph8bA3$fpk8kHmNS>(jP_c`rN^}C@o>~S`-3eONB%D2x7vd6--OMV{6vS7d1^?p zH5KBg!uBAX?3J$#x2dTVdTMLugOQ7asZEG!qd#n4*8-c2Vx~;ph_qo3kZ^YLcRZ}E z3;%7{0vk3Og&jhvM*KIi@tt(=H{*t;XVP|zaL=@|$^D)`Nt;eMI}B~O#)ch2!a7LP z`EcaAAbn$7amE;^FFs zX`JE5LBcFH!)Szwc{qGs*l)#O=g}w+cXyj=#|wB5lrVIdGBA0MCrrilHpSO&MV8HZ z&uHRZ(#s*t`ku5C{7!EjW6?6vPZ{rYo+`q`-fP1ib#-}5m?sGH3}G66BFr|ztf)eM z&1o+P&`wlotL2EnFik~`;)FyN$jPy&GH@Qa07T`YR)J4}PlI*f%ix>fUJzA^ItiW! zztFHQvin2>+kqWGiaa_Ve( z+rb0iArO|M&w<~7-)pL6Yff~u1G|GafaKGXd|HkK$ADA7sUXKJTFwL)fQ!J@;2Llv zxCz`2?gS5kN5OO8dGLEqi-c(^27Y4TC*}sQH;CL~kXy_cFdLi-=7BT8+2A7ZA#e@2 z7Tg5B1nvai1doCz!1Lf2nraosjb4#p2e32P8|()T15?3lZ~|?TO|xb5sg>*u%{DGs z*~X=7wlPmA+n5^7c1w)1-Qv(}y=E#~ule9&a2fat_$GJ)Jf+!s4^+0^BfuPRqGr2E zSGJq_frG#ynypWwvh~5g&qQ#tX6rjg+4_=R-(}z`&DO8Cvh{O;W568E#`3St)fyxn zR}U}&OxA1z;*@PbcW@_o5IhEw|E+tJ?bf5_wVkwaO$vXu=2hk@`}&S%QXyMXXj-iLCTO}UU>ubm)r>h%rf z5=QyJZ|{*{DOg4MknT;rLGrn&l=4ZYe8zz5LHO=lP5CUQTu8s46HEuu6PKOx=m1Uz z^C*WmDTjTUErDUo&zsSi_3ql!FJ$%;5@JfTn|E@27THE@S>(7sO}LC zkl{o`A8-tq4SK->@D*@7`N4i9Z7#P-s}?$o#RKWJ6G7Tq`zUYl z9eG4Km5Pd^ZJ`ToH3vj4t&mHrGaz>hw@z28b%v(e(w4PF?(Oopfnu7bt|6UkNGEn8 zJ=J7QwMRbfkxzT%(jK{Vd|IiF8#U#muW-^=bcXKE(0wg*UklyWt^wC-stavs7urz$ zC3?Osnz|l2T#p>$$v>X_dv~CCJA=!>m0%-ySyMOD*4~^4E&*3)>K6F91%7_kU8$el zpsB=U?x{`JR1)bWkzUeX@BsWHkDPfOcAqF7Egf$%c|er|`K z+u?`yLS-D))JXJdBzkoR<#q?IlCb;n(>M^7>v=aZaV;;xyHj^t+ONcl4(_`g21S zDnCb4H^JXc@YiRUQhic2)i;_MS!)nF`$DJdFjeB1rV`M<1oZFbuaMI>$OpOo47m+n zsMO%anz|J|xfMMbb`m+9f#1&X+Xa66!Eb`5GCL@h*%`h!!S_q>{R(_<*VHKFFbX-0 zPJsVGni|tvsWJUDH6A*~L&u#t+{iEyzM;D{bhpvi7-0u9z)|2Fuo`(dkVh<-1fmBH z%F#hNwxxX9Qa)`XcX<#vW4xe4%v&$mzA+QEq5AFu{P|hPM z=P}fS#ngi(n(FaAv+giW-T0YOH(tG=5C1(W$DWj9JaUdl&OI06UW|J- z?)%V_1oVV*=|%ir#P3}|y(vO(@V^QFK6dmb2IPGo-uF2O9!7r#qCbfs^!0^4vQzyu zum~&#tHJr;3t*k5`p@U2#6sNYTR-%z|I4_y;Xa4^Jnp@?4}dYC1H1rU1iOIU(bF*W zG!pj^+>~>F%B4T$(tj=Z6#h>9<3I>;!M6*3T<|mCj8X&6qTlV%?+)m9BKkc%?u~4)6eYi288(PI0=l zfp)Ps?P5Q$2rLDmClz{9kzXqEOGOT;$RTwvcmO;Bp3+nr{G`E8S|88_&I1>KYr&_$ zm%uHWN+(=8;nE40PPp_b;8c)w(@8h|BG{;@;dV|G#LzCM(=KO#JHa=>W8g{JE%?42 zzB8Vo-KwR%%Ama(MSGP)do>ZcCL`B$P_QTnsJ&*MMt5_$Yvnf(zh9O%)>FLgZVBUKFAig~Tr;{$luC44)4c zDfM6}?@6za^rmf8YT71EO-G*7k>_;ynhsw@ORzMo(A11!+_sbo5^o0aX4HV|!JXin z8oMx+Dz=00Q4Al&gfAw1G4-mLdR2`67NfrBwVcn>rX82r}91zB){3@ z_bll>OM0`{;9d)&C$rI$|B6-WznowXFdnQ1=Y!<)U*t08>Q*mB?i!a(R^eA0_`a2e^Uakf#0s ze}90#H79YO!A&}UAe}#u&L2o;-BU`fdm8sq+$S_uQ-sB@R8vo;EA?asi2gh|351>} zp=a$1P8+Qv9&%ZST-J>Nv%&kodEg@OA@D5tnWolLzUwL9^~qp5NIL6DXZ;578BIMk zf*U9(m#1C;>%e*70ua8Rg72r`<0<&~qf4nj4g?ARM+twC_l>w?aXU4&fqJxodi3Wc zrT#ojQ%{3W3zE;%AJ+mA49^A-hBl6j}9oz{X15cv2?ahnOy?z$Ges&A^3U~p$NPVzVA7Vh_*Al-r2b>5ZpIYQohg|EB zYaM!5hu+nl1wYf&X5_OO`E1??9@Ny9X-aJ=1`mVBG_^I1@5@Dkv%&ko2JoDwUe3mn zI6+g}XR@#`8(aad($wE{rT*3fdfJ8n zKbid9ntHK=QZIG}k;99~;YGr~NcfjDrCzdw-N73)^*GA^4UZA>_L8ekl!BY z+5=sC^1x}}Z16sCCAb=V21GCSP;PrDx3}$-e+)>w@iy(o+sN;2_#eXm{q;({zd=(+tGR)4KDY#20d50#fcwCM z;Cb*1O?{v#^?_Ye$I!Q9=-V;mehj&vctWWYHJUmFJ*S}OH05==41_K|0;o=t&uQ{G zy#w40URJDdXzHUqN`15s{0zLHsRrcHfIQBke`nFZvm3x?G<9wfH(Naf!rwXg`*fjF zpDqUR{}lfV=)(o{;ld4IZ}1R!R8yZv^L@P5;6d;(2>+kM|CjLlCH#I_1FlD}DVNQZ z%jWsuLXh{H<^3{nB}lx@#M{yXJ&gw!gG<1d!ELlNyx+?Et;t}zral~^)Q8F7WY7(w z4Xgv$cwfeQ$a{7)kPzasy?BL7zi_X^=& zc>%1`)T@MlmGG~khp(cCuT=293ile^Yc;h4z1xA_z21&`(*e8>oCmH3*MP|Lb>#W_ zQSb!yrZ@GbA2C4ENICDKoOe+^yC|Ps@V5*8c9Y+3 z^4mQKOaimP3E(ntCAbmXM7>ee8x4#Db?V78)RS6pH@FAAKZf3)1mR;3e7pm`1MZ7O zpPlF>bR30_qy4}Ha0)mTgs!8|^(py&O1__#fio%pHI)Ba@D*@7eCzPt1Ef4(r#xTZ z1MY+0MED&7t_L^3mjk|H!8u?x^lQ*>2h+g}kaFBjIlj>vKH5S57U+Kky3axPdFVwy z_o1Ihhe1~=I0npyF4~(<^Pp!V^lT!3{9niabvNh*;rDg;-RXsn0uX)Ji9YNa0v*X9 z`o9bP-*p%~1|8_ZZuDR`eC&pgHw_aqqX1*)c1kZ_e2oBkHPn+tDyf0>KpMc5byId@Nt%UwS;=Lg8b)` z|3dOdZf_yCch*vVPf`ExqaBz>eJ1^Lq<`Tv;$NWuAl(C`dw_B~K)D@2pAVqV2T11t z=^P;Z0m8qFe!Po*yn7HlOn>(R{aqdSCb*Y&4n2JjJ$+9Hd(ht5Y42jdWH22>PKS`w zAc59QEehZ16th6N`MD;6N}DK9|AgN^mFmCh~G4FE3aP&gWZieU$pb1x^Ot$Ps<` z5`Fk`3OE%ybD(n~>EnM6{|g&P=NaDD@P0jb5sMAzm`_p!|+den%bxm%)E3{Eq-B zx8s!C3H(ps|7j2Sj)ycGSx8+oChudcYwP=@;yer z$92-}0pF+KyMc7WNH>yn`;l$}NV=bs?s3vNPCCaOU@YOkApBSO55qr|_tm_g4>p3A zp>q^;W`UIR3Cj5d>7O9|52I;+TZ6s9eqd*?3+=H+du#_+fU7iBAE{J*GzdSZ;OEp~ z@EH1?fqstyUjXaq-(c_~BA3&SQXX^;}vZg+%Q0kK^uoip)Yyi)}uM2($BA=7U=L~oOyr^-SK$cU$0b+^H+&n2-gmc+VP;yGnYJde8wcPR*cN${7xUD?uiYPJyz zm2Cv;Y)Q9fqS$FiT$6j`}9Ka602|N5t*zLg^ z!T9yq<2PWxT#Ws43F|3KSWj7j9m0(r!pnSiAM@FRntINm)N`?#+7!!8B~DE}?^Npf zIFNjvC!g24DD_%*5Jh=y81p~$dOLc(y$2W%J_SAv9s-XtuA{(rxWOuL4*e_o{1*EB zR(J3Q+N(0!tC_S@vW4BWR2%nAc*|-8+1vY}0DaR9( z<0;A!xkVzku8SzghbTXd^0QNZ@ZBB0uRq7S<9W)Fa_d34_1FRKraX~rPvqJYI(tIr zjVmeF)!+v38Oj$ra@$9LulE@j zMLC?J9L~7Vmw{jrSPDJ_E(4+S40Ja1Mt}N&YrwT2`8JU6#}(*N6?%g_K0zLzWP=kx z===maKRZl6bBz84J^4F&a-Q_gliojw{}19{d=tIeiyn1BkGg}%;h)IipD%!Q=v8<0 z>IU>_0{S!wd>Y({{-C#w=xyUja12PiM&d<|K#xYEA2ZR9+2{rQ_JrRX3($um^k6Z1 zu!M3xM>(ITd=n|(At3U34*6`FNcm2tJdxY;$n79lyt z5B)u%|Hhr9|0d}p*LdVw3xBon_uMGb%>q|~t4SZZZbGil=aK$2(wjnhQ?b8Bqlc{t z7e=^9)*rU8{_qOx3%DoZb|6m&^6Ze#I%)=Xd-zL+zd7Gy4-V7Rl1Y4VaEhjuLH9D~ zUbY5Yi(Z4v!CK^5i#%Vx4?EgCa67mYgwB_t^RG$FPlth}UYo}#=Pki%-^um=9i z;D083Bd2A^X?b_}z5#@e< z;P-^@LwFas1YAMCu$X>f3GEhgi$HDza1X$p{0wx|vfc&#BcT5d#k!UTU6&Q-S2eYC zDwqc%&!xz7xs&wbK;*g{xjsU?M~Jtk20Qk8?A03fYCBjAmZ2Z$6G+l9i$(a3XafJDeh9-_aWc=knerae;@S! zn)3X02axjrHRWH8T&t05^&#-6rsfiVF7f9==UnKV7pc^|X!uM={u#)v4{~#X)Q@G< zkLNn0&t32*pC#n8Y!L60z-8b{{QKdb0Fv%=r2E_ia1#0-i~c)VC%S=kqTV3sPbd8y z=V?C~Pu!%jzbXb?1TN8RLl~D0VSLehH{*>xjQ7~TJP=p`GcyAcvz5i9g{l`>&rFk6xUgwq|wG3merIs=bL#Z;zAhk#-BEztV$gqGv z>MF6uI4-i(K?hl5jA3142r>R(gixf!FvJkUI_j7Pl^9AHLJT!jsWA;P#1KM^X^b&O z4Ke%jk5Ary@4e?a&v~Bbd%owMdvKL?;i`ymsLHye%DOE*Q~PWz#A2MnXWCh>teiya znUxQ9?X4?)-Ow}@0Q#`>zF0hF)3O6$wU66RI#5vEUm4u?uhf>7yZ+<~>uM;d3jahA(lxxAHsgZj^o)&tI+9S(=Sunzp9BpljS9E7%&hC_dT5`_LNAOAVudURnpRMQuPYKFq0-TK?D zzdydTJ{8x$@b@p9!l45`cR*bSo86dOaXaqBE~80 z)l0d0saWJ(XFMiivUWw@Xg6{%O`Zoxph=_j|1SJ%7kKf{}1gfCcz@so%#dupb9-1V`~c zipQ4QL9pd6y58ctg`F05THNO??(;_DZ8YA-Htf(Z|CjOqSi5D}UR>r%im?VlfVrF@@c3c62oK1?nDZvVF4DQ z{!i%tgz=v+{uAPQq8TS}((jS{Z{>e$3@*SpOkh8Q{Y<|z?)N+6L4NSRh5xO2-Y;LeHi<&ABS)RCvgfN z;bZeUziMB{)i_#=qis8XcB1^Y$?sQbLGV=uvhx)?XT<-E_@5ESGvavW9!`XV4sq%b zr;c3A$76UB`Q5?quVaJY>p0B996X9mcn;6wQ+)1u#(pRJdtC2v-8RaPG5v4SefMbi`{quFQYi_5y!ud z`F(#p9Ml<4o$=JMw~xJj-rwi_di~bxcaL%IG0wd=+{T02m1tLnwOEJz{3}1}vf0VS zGF*>UScB@MPMy@XVF&hMKkC0u|NCO}w*VJoDyoNl>S5nz+=}|yr=NW%@idC#K5^VP zjSuk^Kj-i_0h2Hjvyq?m{H))J)hHhI;!)p^12~TNP#x8)qyL`gf2@tcL`=pU%)<)Y zh}F0oPh*>W)yvlb{06VdSH64|qWb(weYQ8tTdO>2cSgH2=kbC(8E=R2c4*(B{nvBU zLj)S<*T(tveSF}47ym}_za*cR*@>SR!z z3}sj+Wnu+x^gT1y_slrk%4=P&x5Z@1n^wN6T1kJedB_u9{?4~NpMf6{WizSHZ~ULW$hbxK;L z*L`k@b=wl_rtPgU_a2Rh|H(95o?DYPi_lLcn=k-GSPgqcZ-Y@WeX}$Ht zfpDnYb@}US>#BdBXlqYGo z*jiw~I>5T3e8Tku*JG~7U9(rtUU@WHe=N4%So|s++OshT?XkYuvkiA(CT64c%bpVF z%hmTU)b}rTVl~R+FXVC6L+AQ_#^*Te`IqDQmxo2DUHXu7l_Rd@f0_I*OT=VkXBj)o z_F_Gb;3%qt40Vtpj~ViqQHaG@g*7N|8T~kkQ_g43aXvG``s1bb$1CT~bDcZSNA~Bk zKlcD0LiICO{mkveF1(0Wa1e*ld^6X4Gj|#vqVdc%o~WoGh>FHIOu#hEz&tEKbsD8k zqx2W0zbO4h=`TurqQobv3(w&W<(IY8HI~59`*C4e%{Q- zLfnX(u^M;dAv}!D*ox=yJYK^acnfdi1DwWZ_%a;KGoE?IGcO(!F#|KP5Q}j$ZpGcW z7Z2l6Y{hmwj~DO;4&rURi_`cJU*fB9@K$sXyfq&aF&Q&48;h}2zQiw5{N6IJzGYs0 z>nJv1CwAckPNMj{B|g#WDq3CrQoCPj_scrmkN0pQ9K=KhLCicfo*3hasli$lml$#R zRca9YDjhdrB^uYSjB9>`^YT%+9J6pMZb$VnUp>5?<$QP!s=v3@-`maDiVyK;=f#tq z7f-=5Tky^91a%61;HY9xu_6}@s)GsbDS?1hxf(d{Yu=1^7p>{ z#l_f%UJwpGxEll?{1gu2#Vuak;(b2e=i}S3!+z!h`r#!}|&aY=Vzn+6PaL~E+z`6A>W@0vKpQ?RoCwAc|jycah$9eV$)L^Ol zT3U^}(YTiy_tIN<8=vE>?>X$Hv6r?3tIUtam2O<=uG3#%kKs5z#pmWj`C2Al{=O|( zW}M6TyNtgXQRcsBOu!_RmkfEy7{U?sxeTBCINkiX9L4!#asIdwk6{n?;?MZR`Sn`o z*X!^scH=d?f%3UrK0ndlC;IzDJ$#}bKB>W4=hm~GThGOA>_Poz>UYH==h)*>zbo{+ zLVc`IA1nB`f`3`^lO;b{;+`e$Sv#>Bk6j0!b)t$R=kH3o_q3d|0P(p6}O}MTBW{L4d9UT?ms#2e&6>_@yi##f}_57 zHrdb5v7eu3-wg|2b0=0~J9eV^r|@1lSUo=oRxd>DR%^GKU#t1GdKw=(m!9madk3tre%WC0K^_cmTh_YtFex z+Af%fS(t;`muO!iekI~p@*HQKe@}7#Jq?fHN$kUZe1Ox=!zVfqpNw_5AKh=IgU-J< zI{&UN%lKEuzcTj9*ekCIg7R8ar{(IjBFTCA#h8Ka>k4_Tkk^VGScR?Fj^bY-{_Est zo&2nmpLO!H&Un`u@48pc)z5Lhelez^_^cP7_3nf9?t}Gh*nyKc<=nlvY!H_XU3ktu zUzUBo9CY7pbl+_}fQLNSTt~W&9`n2!_xusR81b7w<#{q=-d}Fs&obXXGT%QokMr+6 z{>3Gjmy^u1Pt3E=%%jGeXuQb{=EEcAr6TiEiFv2cyi;sGnQuN>i1+b<`GTM6{LD}{ z8S3U^<6CZgE97Z~Jbil7eRJAqqv5jW5sm^29Yy zT>rq2Kk#F9qPj~~UzzGFTV2Jgt3-8lO(FT?8Prg~t%g#ABd%X_XoXUKD=xbu4* zzc*Bh<2HY{FdO*482uf<1zTK~T|c(X^;8@Wi{nvo+$N4Y@Eo2O&m-d5D4spy*^7fX zEUxS>WcS^h;(E*TQaobC<9%_66Ng{R$FJoh(Kr*0GkL4HZWq@CaZM7}BynAg`cKvW zQuoSv=Tq@~Zr>_w-zpOMw}pS3#B-B)ZaR%^{_Y~e-(5su zIxa{3{fGV{jU)2)IOJiaJp7@N-^b)feQZ@9U$FZHyPwPB=koaZaco9$`dpkgRk2^g z598i!+?yZZG(Xti!u}Tax3IsZ6T48nw}^N2Zh78|SFq3euGRXkUEZ7Jy%itg&(?24 z)^8*7-!A{1sE*!NM+=@?hs~-7{w?I+yX?NpZmjskiqCuE^Pc!DQa6j#&HLi`zBqp1 z^$)xrf6w}7LcMtZ*WOPMw*+zfO^NkQnfke*eg>^;TACG;>_>l^>^}`x=?*B!u@y<#U)i-mKLbDBD{c?tq<5wV?RAt{pDj1_Nv2F zb(oGFcvd}LQ;#=1r^R`>IA?D6{N1TOm#fb#6yFu%`{`bFT92b6+jma13vTlBhq)r0S)f&KWP_&Bmx z%-&jgTPtsCjc={-l~k(ZZ75$Q^7W@U^_+m4ajUwXqpl-ReUz$?3hgSiTgRVu{MlgK z8;pCyL2OWe^74hee36LB;h@U+tBk*D499Uc@c+SvgI(gkOZ<1~Z%Qltd`$u`K_+U1NQ%R*#E2YJ65vau~Pi~f%sn#|9?dJJA!DG?|;bmKXzg@9>T+T z4$re&!R|);u95a#=V2yh+t1l=Kj)xx=&t)*_l@AFbH1*xy1tr^g{Tg$s)PP?zjH44 z`{hEvUoOHtEWk}ziM3dVjd%=CW1HXOtNk9o8(n|@`nne{;t-DD1Ww`%KJq)g&yD%q zn0Snd$Jkx`34g{X_H`oc>qMb={ve)Ljv2>E{`04gKYiwvKJ!Z7ZM=(5@R@Ol>s4{R zT7$KyUazXxt3Tm==aAPshr9{va6dl6$Id0sb1pds<>9(KTt9-1D8JX`_xfXeDn2>l zlZTbK&G`j>4Dw^J0gs4Bmw24RQ5?f5oWWW9OM!hRbv~rdhmvryco@(31<20#?0o+W zU)twNu+No*S(t-mxE`yp2Kj%B|6}4lChlYIhcWlV58C~p-4DfBiraA~9>7D`jIG#- zUCx>IJ7+q86F7;}_|X1cjQzU>xENEBpLh6qM;+Wz2Y1BjjyT=n?;ZY*&+$8T1jb_` zYB#Rkcm-}mevb2V{4gHHcI-s;JFb4OT#?^CJd52}f@RKkZ+5-PhN(zpnlDAsmq>aT*k-LH!NtZ&02FLk%&ITEXtugDxe}7p-~#6ak@tnG)e3=P7&LUY&Npl$bQpB8X|3*v~AM1 zN!z9?)JOd^5E(k5uM_$@p|2DAI#CiCI@L%Gk)dX`PMxM2((aTtr?hRx=6jK$zXh(3 z`S&K;@87jlN3Z{VkdDwvYNHN1OWo8%y~M{;1H{i${5&;E{5&;I_h^D9X^Lj(5k01- z^qgk(%ZKJLMbbQqp#>C6ag;zww3t#Uot9G;gXUf z&=G2+V|0>EQyX>AS?Z=9>ZOZxh5BfKhG>LFX^h5cf+lH-X6O+;rl&L;8ERp_h5Z)x zTi9=5zlHr4Hd^%GqMsK1wCJZrKP~;FuNHl^=&Lo0awv}qs3rMcLphAh7@MnYpjsBxu`zKA*|n zJC8GG&YU@O=FFM7b8ehcE(k(5gzRlOV3TArhuRx z-l*3l99@ODlOe$y3X9%2LM*(@8I$YYlRtE+9ykvje56+>}O%l+;UQV|%A0-jg zwOYMlRx%b=_ZI*>Kz(xtDS;35N?p&N*pN&s(&M4Gur7?0)Q5m1$(Z87~#~;oQ4rf z{LH4?iWTQl8v@lA50$tCb^S)kX-&Tp=~r6P>o!siw=WeasCRATaH!;jmqpZ1JsgnR zWI>%Q_~l56pf(SWgiDnvf6YXQ$kK)g(iV&$u5v4Wz(G*I+i-F&^-h6PP(MkNoO*t# zK~V1>5e-LC=B2a{`~Bx7Avs?uN{Hg;xz>E&UgA~)fQO*Ivq4~-QgmcVLg&Mp?!wVw zLVIX*qo9@*iuO#<@cd;01vR`u^a|?Cmj(QvaE0h{D_0@~LH%NbQxQZ#9m8VXh(%D< z4Mphf>1e?e#7tQ>I(P~^e+ae4!bMI+wz;G-(L)>x{w@<;4zI6FP}8m;`2DU(O)t{Y z#VdM>{T*GUo-CAr*CVL!k!5{A@8AaF#aK8d7b|@Pn{q>mnDIuQTiJ*l2bNAnFvK*X@gsN9S~k$ zHX0?XHe6<;xmnu#NPB--G16|^;55=Ev9!}jJH2c&(xz<4G13I25f)v!f=~f(% z3l!8b8}wSU8$f-;BB+;dXvcW)4iMD96;7p0m|d2yKys`73i+E2kosuPNI^e|mXx$Y zs_BkG(bYcJtt5ova`YD2CZ#Z@S(B4lyR_Fhumeg!(vaqFkv`4|w%^ee8J+ zp4aRp%9JX8Jp1>G-pwe{J~tkAD?7o{JC}}7e2GoBjrrGyiK5mI67N-w{`kYh=p!E_ zY*z|fcg512=`DgoTrX@z01r-rv~iS)h3jr}qMTT``nH?~a7&q3DHfKF-(81+ zy3L4#i#kh<%QkVaBNbL|r?7G$#g;y9Lx{`qkj>Q#kjvKVJbJHJ%y=!Yrovm60a`5^ z<@OH1@4AU@FZJQm69e9S#VrWxiiu9|BE-~9EbyMJ5Y)#fM!ea0Up&#Nj6?qyE7wl2 zDO*Pf>W@Z=fM!FUnWLP_t&BH%qZiBYmT{d6L*L3X}Xtn3D@c0axld3J2Yoc#{w-gkfJXAUXp=Dqy-%9iMg0$ zbeStSuPHDDc|I6HGDOJgCW+oic&IZf`=CWcA!8GQn9>8N5Ty0T1N_IoV~Z8*n87x(Q{Sy0h~VmkQvjCnD#zVOU#sPjQnh= z(ackjBPazq9!t#ZTtS(g>$k+%`=YMCQA^D1e#p~L+GWD2aR^F{!~bhDMj8mMV_?)0 zafJsIDvyx zYR$FAU5K~~rPltIxZ8(;`-Vxa11xceh6~D};Zp1Qmbmf}f>J(0Y8_;Wiy|(HxI9bT zSCew7g*vVBLyWgQfeJ+iCc52pscx6YIR!TW?u$MUM98XTjI951ZAsBYQ4}B zx3o}DmKI8_LoIO|5w{U>Lo9JauMm`>S4gcFS>mp|3N*b+YQ5MJcj#)g_iCwim?bWL z4Roe!q}Jhm=9g9gP?tIHA>L0klJqbzYX6M)|YskP7&w{s$9i-}U}6_&V- zlR&FUQtOqLxTTXp)5%inRhBsSP0(&`l3K5}#1%}z7?~oquCv4)Mch%u`7Lofrh-qW zO0Cye;&x60F4LseF_yUc8G=$jLu$R&61V?mLD_$^)H)t=LX#RtyJ>RDl$Y(0f$fj) zfy9!Y*JB0sf^}ssMU!Or6+lM41sU}gB%6Yzh+0wLgr=AZ(=0K)04sziFjk)s)RSv< zsL+a^fL8p(V$}8CmQOAAP{`Rsip z6TS=ZT~E9R_^)iCHBH9Zq9cG{_dsXh(jA(wUBtR;>A_3{_9k)2q-(Exk;!cPaKsg~ zlO8_>5T`s*;<^nmeOpW@qJ0!#>QF@c2&2Sol$iZQ31*!%1cJJ8ZJtwySB=zaz$*c~ z*&2>^Bee#pHAp>$)X7^$C_{k*Ycbw`K8$EUSeZ2V3F1;|uo*BmKd~1j3M@3x`>F@} zpQtH#qtJo$IWvSZp(hTbOmDPNpZj81UzjaSmmDZ#&Tn@O6J3~JJaNonqTTK&b2V%H zGQ&ve?M&_E@kUxypUIA9GMoay$#21FKXBUr#HYY%-{vw`1z;1+3Ww30ncVBgkn`9R zZ(}X<(KE!C{;(fwve{Bdj$yte9Zaz2IO1}Vy^ljos>ANX>ehD{CHFq#c3OM){G{IP zCsFAftV?u?CHJzRZhM9xUx2w7|3E)Ujok8fgZ%K-bdw#q5pS(YD)tX=vN8HkrI~KIlli(s|pqY@&5F^+*7i zjyAZ3db$Vf6@qGa`NNlkEA%nIC5I_TdLkFC$O|v`hx07lBiQ?b&jJ=+PUV)T*HE7a zSk0LhP6Ndp4#bza^nTxYQ53m2FX;TS?V_%EVWW{2FnED<)AqShv^8SEX(?#7)Hen+ z>kFDSYy41m(Yg2`@f_*05zvcM=UKAXH=L^q?eSl#fk^|wOJiwmi2*~+Z zp$^8c1lt&7Kq1w24Y>QlDHaK1Bubr$7% zTUL=PtxoVxRQfu5D(O9%X7==+WVw1f8==QH`Ji$8V551OXeessOzsldXo)aN^49!n zsFjjML6U#lhjyeSaJ;E5!S<2S`4tv z*rGiLYp9R~=hX3}uKwB?kWHCeFOsAWg|~t3y2Os7opI3re^-Bmyn?D!2=<xaHo?b5h!G=69Yp$0>oFchAJ-=gay;hXUr zLVTIioQoD;crHHp7B*6{Lh2GywEuhk)^qg$ryu?1fnChgLMu=0sUZ@!J8RK<-M~`_ z>fcvUe^PA@{BjvjBmR8g7t*ASE`f3`>{>o{Gtxqud?fp27VMW~t6-h&;QDr15a? zqB2qJ2^}IImX=%boPpW3xg?IB9$OG8350t%56JYktborc{h_aPEY%aSf|`vIA>%ilm#6)}r^MV0W;Ys2`iB8o|@Izmt1;oHs}!WiK2IRgPV5O9ze@~RZmzm4Tp&KkNmsR)aErXvxs*QIf`#@0=yitf!J5*qlzI z-qW>v<#)gdaoN>qb7i`6!3#n??20ZLgSL!x(8|xWux^r1NhGK)!M@(2^K>RN{Fc_G zj*ib)KJ1Lhi@ajy6~xc>3mqPei+velM!KVYt|vSlQe$MDKtT6nh418lU9}aWSRfJH@hE|yt^-`?4jJ7f z52Qf`OS>Iu2x{%hUe4)q1a#a#)&tqL6zhPcuy7ks4WV!jpsoVco+wY;IKTth=5#AH zfKgM|jF>xD5}huRcuNPfmJV=`93lvcQ|z( zHb?)>Mx3e7>mz-Fk>+R8m)lOcenPrQ+|uu{I_zB5)q#%t8n|9kg6BeD(KT29PlHtg z3+gqOb1v+LaqfeDMX3>{wYa=CQFJVji}2eMvM(NXK+?s-{m=_>P%zGV;e{2Z?1=-P zc->y~&CV4B2lFhn;5h5QGt)@Ih~NabB0eb~G|RLeU9!R|QB!sM-w(FRNsN88Z}(uG zq9*lpsqix+jmt@i$pk)k#VnK?`J_!5`Q-C}HVl-b{=<4r8`Iq!r2WzAgXk#Ohe*E# zo-bXtQcQ=&MEL0YDcKG6S{%*LeAmW|3xS?|M28rh5#KYSt@x#m=x!@|VLZe`QOFR# z9F%tfqt-H?Wj4a9lU8I*Lymzbn>C&sG?-TRe05~g;&MTyc*=TG=fCboTFk29rdi+xAT}Var z0$)>0ESpfkPdH1+Bxa^HD8Y zLi3+URvWZVP(QpNWSN|uMKwl+&g}unK(n9t2qE~o-qhJ_R&5!Zsl2~p zc}Lz~db5@HsSgP!>ceVau4uFLi-Y38HJSIH9i;b{DLr)FUumRO%MZ%EE&Sh`@jtCR zgWv^{vQGeZ9BuC0a&met>ERyG(aS7soXaDiEa&p2BTX)kK;8;=;_?X70y^Vzo`*O% z1`fXW=7@!!)OvzIt>g;L!3yJGc~GPi4z?Suj#%{l0;We1mHB?L)F5GB z)3u&z=DWr`X4rbZTBiBIw2KzQYB0bUtvqMW`WSNP<5wRQw98G9)7Qtrxq|xH)geZY zZqz1VYtAm^kT~T}(t2YmsOtl*;Prx8OG?UBja=0%*BF*d@H)ZYt`yvcVP~02$7E+x z=`|?5=E=8FM;Fm2Yty(F%$EY zFWk@sPaVv(2x?26zeyjT{ymiYhVPk;eCHUEzpHaPrxjMrU$tk15(2i1_uN*ss%b$} zM~?u1Q?O|lu=?3df4Hp)8V#E-iK|R$&_g18hsXD_@n(J8h^|4 z{Lp$iY>K1tw-|9I{{bFbq2D`DbU|OhDg`~M=J<7L!$$7cX)35a{BhRX_^%3nuHln! z1noJIZfQ!pBaksio=k)7`R`AgJ4)jR@>$2;>0U%LayDz$$$aG0$B2&OdB8Ew^gd&^ z6Lr%*NLO`l2E+XJg^Lh z(BCoi9?dtV6rtTHecwTZEcCP8D9UZpG*z>>)i)TnH3fa~{NzZuS&nP_P$Vfyvy`v~ zp#CgYx-GXM9G1U?4z91^FYtxXm)5-rZl9*s5Y0$p-HFzKE3gBb+85J7k0|;g3ZG4L zXW&L7Hl)qP!qM)GMpoV!3v9+NrBI^@YO}{4((GMdVfQk*L;6FYs(|3>yhPqQP-URqAicGwzOT| zu`O!=e+{Em;rFzqzRR{O`GIZOfx31qe+6whz3M;jm)@)`|JzAhB7h%Rz6Mo#roGcuXPWJjGC^KaRpsaxGeY^lM3z3`E06fUwcPmo2 zt{{jd4B{N5bBref<61@V=@`e66G8oAnG0~Hv3wod^U*SD&kZcKmbVryDOw48*-Al; zvQ!sRskPQNzOjtjcwtf-PcGBjcpgf0Y~wGMQ5(spR&Qfq8MQGA`O_C|TaH?nucWpe zTxLqUtt(*(UU>qsA1~|3Em2y_Xi}=zc`?B1OiG>YuiILzQtC@1HfkB$oQIO7^7Tnl z`5L^H!@I8huOd87O-xfI(=%wrZnSClN?mFS>bzyeD2ElmU%BLI?60Tkv)hjTI`kP0 ze+j?j#5&<}nk@zU7|ik>)a&`H)F4(G&#*Uov8&>3ks9F5ji)JWe}!X6K90#X)&M@w zm5cn_VYA%MymbS33cy=8+qKu-6d>Qzx&7}%?S-c|2x`MpQ~J;@mtLcz zLz{YcpkntVD(WjjxbAD`D-xw?cb(; zdOKz`oPsS_P=7bFDUeWiCur@7xtq^2*r_5}=C{oIed}#X-}=>%Wv-Q`hV;{Z=UTz% ztt5Su&&;HktUPD#ZY;MSyw(%rk@uybW-XU9aye6HGyk4Gn}FA))x&x9qJ*d;8f% zlr~Cxn|m?6jnLi}vow-WI!_jWeg*Z1K?OhTx_(%IIn0k(x!%x{{Ncl}tLyp4Bma2p zaQtEkwO_JOWcd=47SPJE2jqt)C&1G{FD#oT9 z7g5~RcuK#Ro<`xRg{6+f)8{O17@msQ(-1sOXHSFhRL-6pc)FiG<>F}td!n8Rb=ouU zFDA@IP(2FF5Y)#Ocbp?a;eW|wr5~pptxrctbHzj1u5=fj0eNw;xySKYF1MAMT5h|x zD*7;2*8-`3YGHq-vGfkhPyM6sWAeEpf*u+R$|0ziFV;DtSn;f~A&|c7dCDBWzXz1A zd+XY#Xihb`O|+-35Mt=*99T-IR-JQG$J(UD-Ep1)`p%_MwoW(sv{;!BtmdyGExG$s z9cgE^#Qg}Ek|nMq=T1WkQAVGMZ)7=jeVKUo1sm? zNAq&CPcF|TUAU{Y_0Hv-I@Y!C0A_(SX%PV2z^a9qTb^AGK0&`kSLret{l928cFlbD zd5)0mER$R#lpQCz-AYi~a_F=f#oNT*#>g&KjsW73RV9EppVjYH?5p8}yjoCe7LoRO z4Nd?!wX-8TPSV+t+y>b9EN4e}?0JZ#Gb8#r6CRs`SiSUaR+>(?oxj?Ka3Vx|uY4cA zWD!bNM%k`@z4)g*?1cgg1oi70>l%_)Q>NU`v96EcO=y#Mn6qZ)NpuQuuUUCpoM0G&=?-oquz($#4Q<|?!2q6o=Q3oZioNnqIn z90c`+8r|xPF$W&F2((Y;HGM2PkkXq;NuE>639z1PlWF%WBZtrRe7{k^918y{W8KF6 z35lnhHJve$eXh~B^hu(K$=65Enfq>*o7(v@Wa)6&LAyI}whX__M^e3FUK_)Da#10VDdZnlTvB{&0g#`Byk3DAE6wU|jlR2VE zlg@pRLei%~>(ibrr`GGt?m%`S(`UVVwkaJPPump7(?c+pSJatY(b{2d{s28{@)5T+ zStagRz#02A`B=^Y937LW#Cc~9+Wr?j*J>EP)&c&j(4b8C+;^LB4r(QSDRDmSYZNk&4Yl(-h0hj5vBmo{U<{7DD@4%1b9m19CEXil5a2^ctBJ_Nt z{Dy4wU(714(cb!}b>DZK-FwXBXj&J?z=>q7q&75bZMYU~ARA4``2(wM><<(JTN?uU z74#a)a+@^K{hZt9#sO2Obaxw9jbx67)|rY=wRP8q64gQ2HqOlHiHG4SO^$ zH_jEs+$21%MBXcr_ez!*PwXxGQIr4f=tDf!S>Jh(;;@XqNqDDy<{eqqv&DZl-r_jH zY+Y~bc0p^KNTarL&INtqumX<&j)PYw05MzwUqqtP<@YNUi!$G9v zgU3pM@`90KPf1y8q%3kKL#suKF^cIX0>}@2wChsf zRi9P%(77Sf%uIQCS8rOMPSZ~T30~-PHw#UTq|cEq=Tx@hOzm$Hrc|8*ewwm|EQtSn zVubS5S)61E(rKPk0`{(e5lN@ccbwnA7>IHN?kUO3E_P$$4Vo|b6O4^Moi1`sF9;31;!yQ$K9|? zaPL(*X^(KU9|HTaRZ z=AjIICF4Ne=p(;Htw)iLpi01`37E);YeyV{+9L&%CSW4}$CyaZ;Oy8lgvomkr(*IN zYP}Na2J)hPF+&d{29>Z{VqlEhz+6`%Zm~^olBtboTA)N~n z)bUu0avj3t)%nk0{qxK#n7N;Nobq2NQ9l)+*Y@CicsNnyvK1DA3Zv1=Z1_4}f8@1< z-v7A`MX0kaRM_}vWkKu9e4HzxZZH5`sp~~;gi31R(KZtbY{U%$GN-&zEALz3{QtdEQX&> zak$1iqZ1DwUh=W(-rcLgwKkrg->xE6F2(d-(XmweavU zd#xS4*8U9bA-uB8TrE26=hEh%W%g+WS`D{)<}}cX;jA{Zb}o;Wurj;k_2Er&Pk2iE z(VzX8cc!!!oVyn1>la#QU1_b2#jaaOa*X)t`~2l1mR6-|4)YiGg62THTzmmZ%_8Vj zI$Z0H9k)Soo@r;=(^F^_<8=6a1vP)UCB1YjhPm&H+>DbRFw!FOujK2QF3Q(XWYcKJ ztV;Z1(tjx0Idtt_(Ern=rj{`KoV5JgQo`Nj^p3U+YT@_UG7c~3&ekeI0cn0ZMNExQ z)LY&`$NnypuM?Uz4e(368#5m}*Wa<7W6{pBYttYd9<{Xd2ujAgoWm;qzqIo~t(|AP zXy-=s&?06T`KdB$U^O3) z>xXk#9p#c$lOGL?XbsqLr+uW+T2rsr*9OU!!i{L_# z?2d7Vbrq9|$zCgb)LD5gU2CUBZ_;MFZ+hyZj`oA~(ejxQYj7abnfi-lyH2ITF;L;y zTC!K)%c#Jm&$~V2Si$2o+d7?f}K&0_!(nQw)<{PblFyA}}S7F4?MQp8xWhKM1LVLS|NU|GP@ zlUEMSH|rKrw_ZZ$?X%tWp64T*@7IwoWbd%2YMuvO2J3UaMx)QVpG&$`Jw`i}emTl~ z`mB0I$Mc|}bIhfW%nxB~_Hsm-ZV}8Uzf!WJ#&Fi8SqARx^k&GSL-W&{A?#%n2F)E# zZ@!CC*6}tDl&a8V!NX`1)kima)M|0}8kFj|M);AD7BX~^>h9xhbgH%n)*yda^zOi^ z6mAzHk3pP^T1>p*Lm-~5wzS>9&ZhX+Ed)RR8Foh7yc)LFy{0?qdtF(FcEb|uhwc~; z^AiL&UMkoJT6X3FfEieKAGGxsABB|zV=}r<=LPKJ-%q6p8|qhHUt2fw%eCqwh-WLJ zBi(c_ZAyO))`R0Ce~r~x1S`>qEM}%Ve0biAo~j87>OTReYrJPOyjeN1kEEbHNq+d| zyg+fb89rL8RnqBGpWG~qc=w~Ab2TxCv>Kx`Yn{0 zuTi3(q1EV=xXYk~TX`QeMNrf4cj44_9Ju1_**z}TXjdFH4Y?=Vbs{9Wda%9qp0_(( z`7Ycn=k}GwLuuZ07uk8{-vv9&-E>1_U%x;>{ouY*3R>xP|Maus0$wKRO9k{ z{fxt}^s}24uwp9u&FGg)m5so1Be29hFH&f3b@&%JWuM_q1Ey^?v<~oL*93T?T?p!^ z`!-=z!Vf~`H_AD^w0oQ3%|ZU=8p&JJ8i&she8L{{hl^eo)LS2`X>Ci;ScuAXh_9{j zF`qjfUdDZ-hdqGR?{K8n*9i6sa7Z~kzRKbICD_kH-KXDyKjAxke&~fA!Zz$XYrJOM zc6k!}cVFg3<$`Gr7tZ#=s($(%o-3!}fZXmaE*HJ^?z)+JTHTwuK7x@0PcywX@;}p_ z5nJ_6CIa@jjT|`**S=h=Jc6Ej#2>YI8~^LxB9o3A=w`oqPzynQ@7}0PXRi$Lu5G{3vv)y*Oc2`WWflKKmA6dSo793f^Y8?E`KI z>fn0?^b3fkF#b~Wg_t6Kq73aVT+ z2mLt|ZwTtHsvqHPB;F9zUsjdlZ7kjp)a_MM@ircB2#B)cUGXc&o%4f?8WO0&mrLLr@o2k+0WMydkI$SDlZy<#A2>q-Kcqhz>vY^G z-!pFb2+777o}T+e!QejZgpm)2@y@t0iW4DU5qpvd?v##u~5gO|cHN@rZ@yGx+yeUx^!DIvwJsy2qu>6gRa8 zlI_TY6dHziN@5WuiZbe842({$|$C5Uc(h`so3BgtlcpJ=gj)$4I?oHov zGnF9wrcsIZUQqdf&3Bik+dQ^_p^ zJ-O5yYwOtLxsZtL=_DpG@Cd^4F67Gw=EV@ac9W!q5s&YM367TmxKnZ>IZf zUbW5-DX*`Z%`V^Wtu~rm_s7C`?pk??axHWZYT=&+-GygFo(AXCV39y z?r}kVwUW;XcE{)-W~3QKjdUlA%@YmdPV210xlzb^^3{ij1-pB;9Fo2q-WDepbliIl zE+GF!eZ@fjYKkrgPSNm60>G-h!kQYrT0%DHRrsdK)RHc4i07Hl!uR zpW5jUNRR+LJ)wSiR&Tq3t-&wU-gUJ-0 zXh4g=V|+Ny`p_BR6$@!h#biI)n;lH<)ys?$lvi>!%KG@tH&Q}acfE&QQ(8ysa)-7RkP2hk%snq{l zQi_%OElDX>>W7n3YAsyztE7~mB_)`Y(riiDXr#~xGUZ{tB|dwb8NbwsPafZ9j{A)q zG-}NFyNvkM@jW9c#X7zx7%8WA3UU-2CCSpRQ#+lq2mf8NAOE8PH>{%`@R*nGYSMVD z3Ot6OZkt1WL-z{$ki!qFO0|{)Us+HP)CS~`g0$-wLXHSLoxvH5Pj?~*g6cyK546gT zoV*`75Y&g}V80-%pT@}tf`KGiarisE|B2r(ag2rDM!f7?KpYifBjrF4zZUt@VwB-B z$!73!*hmq;%a1I;j>n$Y@GX$+6bbcnBOmqDCDJx+1btjh91Oi5)J&C&&lqL+2+B5U z^%*G=Y8}mLUE=gwT0MQ6JE;Zpj1qp<>e0wet$w+h#*RmhVgyg$=1D3u)hI)GC0D*t zzuQQ0qW+WB)aq-|>V|FANf1UF`9?VXtiA`TX_Wey#Aw*&OUm8P$W3`A*C?Yt(MWNj zzGhZmx-;Gs+Y@Wj7h#tfssKYDtytLZB9kB@NoklF3$K$ZF>2|BKS`WTff?SVmq|*Kj zBRwZOMP%lIK19(PIk9tYdg|yf7I&Nc0g%=N>lBH*@ zd2Ftx-@xxOrC!R{^b2W|d4`Vbr(+tMf;FwD6YT+7Z8ZgoXBGtu%8F;!1Z^|p;YCMI z!&@w&9yI(31$Oq1^s>%NQ0`yqxtU$)BsAa7u)+6!HW=7I4?IWv8ua${5I9W|>L&?v zhq4-0wdxk?r|qB}g1XuZet@rf6xNXZ0?hXbdUE3Fw`dRD@>z-!yi^=FHXX~eVuFd( zJcj_xlHS?f1=J>tpZn>)yTP#Q=@!vqrDdZHfp$AGymhd8{;|rMdK#&xH|{~%n}A^? zT!3{H+1#Vy{e>S}Wwx1OsWs2>v#F(8&+=0C zg+v<@+Iwfo_S5ZI?A1PtdsgqF@sm(LK1<`A&QYJpjT>VnUEnxOhMx6%4c?IjJkEx= z-DgeQ={^WAtk6~Llv9ND25}F1BkN8HBSLu{e#NivHwE*$t|M zus<*sZ5#XSE}8NTzpGI$fVDcI4n;o+SwD7=EUB+EOKdJpEz`#+lbN^!E7M27;g7UT z55PhP$O!7$JM~x(U}kFm={%nYE38Z>NmetDZ(Ia;Ribp|v(55e$nX#DjKad2?TE-e zR(}oBYM!Ot?C711INw4T|Mlzzn41YZGqu@Bef_L8{x^5x#xy|E%f5=L)vIB5-JbN-gqi^w@?SS45 zH&fCVtndt*F?za!z5qjUmpPjP`AR_0-!I0jpRb&?iJ3f|-6#($_Q|;l{OQ{PGnq?r zHnay4>N{uKQ{rbddh@m!CwPujfR4|MkU8t}eOiGSW< zQld5v0X3R6LH_EnGGSZAt~UCpyM$gw zd;WZy{=a|vhr{~5y1p-+%hV!#nJJ+LPLs^=*&hO4j;#5_Ps*AWocV3xl7r^E_5jTo zv!r&&LkZ`AqUew4v$}O2HymNa)?GET!s2Y38P8G}F#A9jW@ z3fb4XhCE1LXUKNdxzk*dYmqlD4{$x{PIpDdF<mQJW3yNskM;xpSV;r>@eKQudt$);WRubb_K+5=uV49&FpFuJm6XSTZwc@v*mJ#( zj7ufVpjvA{N8I_8$_-KjI02{r!T~cUeN&8cjJXG3rp{={1pcS)&kPH?1Yx=eozf*s zDD5|r>}m=)dw-fuGcIvh4cb=oTq=jrcqhx`V92$Ex-5bHF3c|pwI(qNnngCS*D>L| z%dzc_JT!ZD*L0}3?8u7c?atS^P=|UKpr)30;JkguSmNy79crWgPpEI7E$Rdgc|df8 zL%hs!`|a65os`0P39+;K(OR*)R`U6?pf$4=JF)_KlYdaF&IPxtcHMLKnocnMzINSo z_WVvtbxl>hRhK8V>O*7vpR2FV)heCN>1XL4n$%wIsuf+)B6j9KYt_Cp*1meUL#yU> zg4+*i)#fu3J1P0^w(7@chIRs_>%PkBVgyXLv~n|6DD-vHjx;AZGJ=iXEoZ2WbR&I2 z-Ef9@yBi?K@D&t_S$&4S5<^cvvlu~nsMr1nDqL5_zXm~R( zf_>>s>~Z^$FNXi!BquzWT+s5!>%kgNo=rn}JkJk*D9TSa-8!uK5s$C%IV8l}S$qbA z(}U&LZ`sxL4Smk%`omPFKfK-URQQwHuID4YPmev+PV+HoxoAnL=+fg~YqvWQkCQ%# zcV$e`<6kl0g;5f|7}(nvu!Bp!u(aPr`hI8iY`4_2*-}qkQaxLYdLA|ES;^|5uU~dq z6SN=N_u@E`H6WqRZ)ayVL3gY_Tone~()JAaka#T^6t`3Ua^%N;I_7~j&yg4W>DjcV z5+qwW%~s@zOKX)jtUl?BNVJMf$0{IV?qmUnl~@rMwLYF0p`6BdbcZP42_^Ur3v3i~ zp{XHdX<~HiGMtjyidwclhc7rj2e0GjaNg$DSa^iejH?pQBq82i+aV{db5*9r#`cVun=e>EwHpg>=IBcrN9cbz8A=5M>WOr+wX*ojH8K zTXY2299d@AAku+*LOt-U-goK3qzYQ?w&*cvAK9SZ2kr>!$l27_ppckQU;CD5UaY*o z)28?a&=(#Kz<=}@aw4d+W@lp6j`P2paQ=4_*3GktSL(f0WweTnhZ~&5%5AsV5HL5* zh=QUA&>xR}8^QlofNV`=H=>LE9PgkuvrMrvbQ8|*Y&v1_$~m9aLaRX!_Ne9vhn(uvi;0t>$R(u7U z@x_|WI6pcI9!GdaP%H4P$GXdve_*7rad4`rQM|VsYJtgxF*K8iu;5ciT|n_8}W6J z(Lwqm#J4jkhA5zalZdZpobVvR_cuaKfs=v1c<;kl*{Y8wMkk*lgm8OZ6WxQQ(~tX> zc7t!J+*lK&);8gPfuklUqb0A;AP<95SWz;`l7f|mI-UFtVQ;-bP^Qko*SM9ox6_o< zzuM(*gSKb3(TzL0>%)-*2Bz?a(|3 z1-&h3XB6!`lu+HM1&5YX+E9DWTK=!p+J;%E<$tWTX!ba#a=$_AS1RV9MXeUwRJs5h zV!+{OLOpB5>-cp}>mEsX!p@^!dQLnSC*k>UDeUXh3G$NQ>%mNKZh4xwyj*gvo|%T* zj9`D;0{h#RMZrDj)pu`M91I83TwK`m@~5$xHf=~FW}7!-lHSSNy&H`nAE4DI)H~3k#~A)jrLB+O z;^$lsOk-u7dnAF%^$<3Dy=7ax6`*(V8M>!}-x@Ki)ACg)A2G_4&Q_1o11fGs=^OEA-@HPd=_OcBcP(%pIq?z`W zA{E=@G`iJPD)REUJ`O%hM8bWYn_&})Ky%~cIs$v3Tloq#f3=0IulsI3HFsBdI;^D9 z)OO4%12A{*y;gMD@RbO7+`%FQy)a$3_(aB$UC4*;2ep%R54W&fAQc6X6P_0~PeT3t zgtmiR9))j)UW%QppGiJldQQ@`nopST2{n3xtnS=SL#u&Ax~;rD1gy&FKlwK5b6E{L zCqZ92T!ekZnnoA&B+@UyNrx6;wtw~nJq^c`{{-pFO_?7)6hfC8#w=;)(Wo_y)}lw2EoG z9%n?f@+R!%kebJ))HE(eUbNtO>=!>znp7R_qLq2VZmc#v=&?!Y5rXF)=Y`FzruB=& zq9b1xe$6q9D<<=a}wb6ZeQ=J*uo#R$YvP^c&R|iO;4v-|*XfN(w zo8grmuAAKOse}i=o-55`t!EC(cdS9ezG75^nw-D1EdV|skDSrqgT_2+M=E|)T5nx) z=}S7T&5F;!wq#1>v@K#(o&+i*sL|<*f==ZwNcM!iW8Csj>+>Rf zzm~>vLj5#O|Ifs&>ug&4QXUa|thd7|eR~V}S(4W!e6n4!#?D z=I*^tWk`40*J#396W(y?+6E7L-icEN@FT;h9t22T=heTeAT`jQm>*F5&|P`SHms^z za8`!Koo_1ra<6iXMSQceS>6HppHO{q{<}U-yZl~I3PHVgda1Gl(01UiBEpY98>%S89DAmexpTO>701_8B++$qOd5UN_%lRIB3Ytq|@O6t} z{VP?n)yX_+tC)2nHv-Fz#Jv5i`Fg_oKxKSWZ74;*g8kcEoQ4}0DWSF5QnY^Q^R#*l zd#vj&-48*x!<;^jRtMU#!daGphbMUICdO0m9d{}d@FWMY|95;$5Z`r$Z?fo`IJpXtUvkF-nczNG(x^tYZVo`QC%Kod2(hERWm#fH?m|C=L(Y6&HdwTb@ zw>+PD{XZ zX-7SdS?TY2)>e+x+Dz8{i?#Mmfj5@5eFL@jjZA9a-5esjJL*MHFDTo?L zDB%Q)nyuV~#rhR#{gDPtMKg`g@%CWnc;n1cMjZF@=dgp=$4JNtURd)v`6FHCOsMKv zy6u9;wz1fnk54D)cKe|ctWjt+f?7U}*33mz4@!UVIo)i25NQWrpgV(~nnv2!Qlc|b z|1Sy3TX|%w!#KAk)VZJ2GhuTls1y(1>cnjooUa<8$4XhMjHc{gS~uvH+$Soqm+qCP{kMAT zIMaMQ95=7G<#Mjp%aRvE59jO(_*u;)31x69tW?-fg?7}0`GhoMqJ62d4^a29d+S^9 z)Pgy**=^d^__w&OyWOwl-ikb1_s(co9rm#=flqMM$xd$?cKK`N44k)CoOQC>nor=K1+qU z4SPT>1r%v<*SYDp*^M=mQ14DFPsgbuP9yx!dMA(5@ca6?*$r;YXw1Eg;c4v|y=Hj) zp!evMXZu__B?UdlXzRIoh{Jw2*Kd)Tq*pYNzXjH!GjU=`*Z;#{yYCvIOE7l7W~lyguAe;#4xO zb3rx+aAW^V@@^Svp&^*jxUKf+6=dHC%2;o0#d>Qi?*F^#CX7Wcof4ly@`@x^PkqW` z?4OYzIXF?298Y3rV(3=vaBQXX??f;1p8e%baVC$Rls7`JiHG*eyr%!Tiq7A`ZZMN} z@8H#j`pUP~%Ih)9Hr%8DgI2|@*@TR*G~P0IvMh@tdStWEeX zUrcVF7X#;UiR(kZ`80|9F(i*UhxQN>>M?j|@jj$J*7=M24X026wF*$ls$mm*No{C< zB`AWRX5K`7INhmBY|3>4>06PGpq_%2x4#WiU9G*<$OE3&zfA&9ceGl6GiM6pslfq0 z;`0a17Ib^(>*&YVxAL7T>cy7QIPTBVuw+t*EWt;B0fM@yl=L5Kd+EF4e9c2zuv0lL zL@FsZP~V$O{mbdJRG@W41h$O<7-e@P+!(b9 z_0~kln}Oe35&>9V+~6foqKc(VNz`D?LwQDh!q?#qc)sKl5wXQIdJq!og-La%3nn+v z_kS#J>fdMUZ!{uwu3)1>$DZj0@QuT{kqrAV2Tl*z@5AhEv+sn|^MQ|jY+X+>r!RDo zRId`qaKlUIPsjMkA>X6V^45UEd3hR}RDMhsV}0;68c$Cj%f!=UJgqp^9Z$F7sn&waAMf=5# z?VmZcSbWh0c_oHXmIaqTK)>c3M_+u3SmZUgRgo5%VZYoFfo9ZQY6iVC91&*()SvBW zmIv7D9WwZYb0Qxj-_P??KQn3ZS>6_-yw3B(x}Xc)XT))Z{AV6=#K{+bW;Z#tL9&yl z7;)7=OD%`;?lEf7x%r3JLZjr%PdnB^eEP3X&9)rMyTYi2z7s`#{KIRx70@DG)UrFN z7MP(_*Cg_(?|M{uT_c44m&ZN7<{ET3q z`jq%B1F&hF=$swRBRRg{->z-@r+hR?C_ST-+BSa5`B=f;L~3ng{_WZx_>_-Px|uMq zliKcJwGBYq>>X-LXY{nr^ZXn?^>v)BNuZDN(^)tj6~oMP^c(tq6MQPZC9iyvBUeEK z{>p~?JZ?>>|3K==T=M8S`Z297H4V2xaHd_bQ4M81sBaL_KcqV;>zQ}3TK`SSmp}0j~+jiB0m0AnbZ+Hs= z;cK-PY?}=qJEH|F(E^5TDPeox$7W3uYNFQUSXy(N(V8V_%`GXdIWWQ6n!ikl;8aRL zlTJrqa~YIbw9BpRL~9Y$JrmqY3!V|w-4kG^IZoeyPpJ3AUHF=N(KgX_a%w_72@4n3 z{1fV*jtgE7^bBv<;jKpSA^7ngU_o+XuF}4uv+rH{iVm$Eqz%(UnBCZ(1orZ}i5Z`R z-xKPlV+nP@H><&ir~~bo0V|3J`dthdA*lCH(6tEqGCcK5k@JtZdn>ty@`hV>lHZG1 z7h=~-BY)Ze;kcd2L_zL(*)?k;V*n!k;AO@(fH^%b;|sC#pePb^$_n^WO9XK$Dh zg4||%X&m1_=6Uh%4PWWRUi25Z8}jSXt?{pMr{mXj>lyBN{CYHQawfS7_IQ~Q@USg9SuN{#Lo>*mS=wg17^Z4+F{(23fqaH&Q?oqR)0>)FJTBWDw- z>Ddi40uz-fKkbR|Gx^6@zr{m-cs4x@uci}?bQ7Oz*MeO=UAZ0%uo}M6IZo;OVmd;5V04gkUOGE%w_+Um+;zj= zdJ(?8LO0Sll?7NUa?8vZ?_#VPFFTgp-k%-jSnj_iE(=C`U(jNkZ_#mIf0*DM2p@(m zl)kx9nxGaF51P1he>&R1WRIo&R+6E#4yL_6T4T`KLV$h>8Dr0P41=t} z*O(C}LC<$$uDS*AW8odZDUKQ6smx;Uvr$JJ--5y|f&3jiZ*=;LPMtWFn+d0IH^{zF z*pD;ixea4p&1qQtDt!@c=!>xNyvVA45hv#{O zo;TnuKb`hQ4g_^x$rxb6(|yzMykQK(s0!%_>MT~indS1~3}-U*NvM;&P##yTbzWCO zCnG}^9-;fesgId1!0r>3&=*nkQg5k>Q9KJ2{}H3E=xkzr(v8vF4xbty_Rr(;N#Z|+ z+IWXzv8q^nd&nO+1O2{B&cV9v*K)djfYbu$)N>Cr*be7Wz^3;fvv0Vew#M``P4yK^jAp*)7N#;A7U;T6uJ3 zEuI}yCG1Y(9zyWSBQL&<@1ApuAi>7Hn8i+Tx33I))$rH&2L2k~B>dE;v1D6H&Bxy` ze+@Io?_;DxlD~#-z2W{Esrg<3q-1{!$|1R$;W1G>12d7~uMxHQUzqi*MtR-pXVyR- z7ka(qabf0P7}Ir)X3by2Y7^q^pwjv&v*gk@cUqejen~8uQe$GeT%tX=ZrFnx4S(W% zd=H4uiTH5tv

0(e5JMXxPh9ggtcMTKFcz=jLjm=S()z17aog6oK~7i-M67x+CBu zY;+m5@Z`dcY)+*{uzBjMk{D+_@>1mmEb8|Vi_6O-IUn4qgjPU(WmfTsxR|_ zKWP^}21!ZxThi{p0`TVoJQIILQGb!Qz0_9j4bPG5;14%f{%+pfaD={&GP444nU!SCY%8Oqyt~PVr z{1M4n;%c2gIM1c#y8)0Q7RzVN$CQJ(Is~qUwaegYt6z{=&tQ~K=1X4Qte5!G%-{1P zXycV6;dHJ}9#eX0>liXiAN{bi+N|*3{VIi_Fs^W z7lOMT;$iF+#E~cdBI!3vZ@{T&+}22aI~{#H9nZ;q>kgN&z8#0Y9f!UxM&A}AF0--( z_oIJl@Cfx}ak&%LRpNPHU3;MO-du)Ob)f#dt`Oy_w~B`6OP`9v5)&skunmewDr?U!*1w!TIts}#vs9(u7|(D zLHHXS#7P>|=nWKl1$Eryj%S#{rDPT0-)^e{d<1pe^&-wl{Vp*JdNzkbej&Rj<5U)M ztN{jrgSZR(ApDF_PXuuYYG2?U!!v@~8_z-znlyYFMLdthGlH6i=h=8hP)|?Op%*K@ zpbbG#*Ic&;S`7luAosy2SdP5QgJyl-T*ooX1ZE+mA*egAqqAPWOB5aXoqoE5(Tglq z*hPgs75~*gk0mJyD*{R(sK1*AI@w2HB_GB4Ka4lT$5E3`+eO#M!~AP-CuIF3Soa%2 zDK!)QMPG?4R-|qC9@Dm2u5I(E@9HOz4)jl~n)+_T-P2gn-*p{U%XmhBUk7%(@Qk27 z0Ur;uZ*_mNQ-Pu&onfJ`rl#G9J!PD4%Y^->9;Fb}8nnH$yNbID@F)40cG&popE$cI zc@p*xCSkX&7}n~^WdGZni9qWe+VkMMuWnd8a26UV^?QBnc@3V|>?J#IspdaOr~T-S zmnScbeaN$KuL*_XG(QOg8pZ8LzWpp8he~l##6=O;hIOtJD|@;bYV%FlDFn6wctq*g z&>kK4vsi`Hok-ouQaL0ubum&yNDZ;n?ReVGc4pw!h36gGGta?WWu?nS*calIFd0YX`cFXK;SLK>gXIT z)H!3)Ir4C|b|Y7f<*6y5St@{>B(I z3f*tuYqWAC*@`>Z0(*9P@b1Si-KQ80WC!=`jE1tY>ekoce2quC zChl6Jd;wbq$)X5k5rTSR4Bfjk602qt3c*ONg~mmWbB}gsW3eZr5G&Ro=wDXs$tKSk z%`b;)iNV|EGk9*%x{~8T-W{1t?8x@ z!&rI=H+{T>{dZs-2=~Yz^J)W9Q`@t83~pr#f9u40IS9Bx-rCtHi=ZxHWsf3tI#N9; zsqura^W{hcmN+i)kwcMk)Y%1M;<@&ytA$EOK6?(1%oY@Q67}tmi-b+ zgA>QRdh<&glk%+8@_1fqKpxJGR=GAAvswtg;=p$s_E9xj`>;1lw4?j?cx*;tat?6= z*Pe)iSn+4Xux}A%aQHo_yw6NHdMv@wpLwrFF#@9Kv4#NplEH~EI0u5*S?qw19!qfa zXAXz2IH^}68XWS0$NM&uhfI9*Sc0QJTe*z-kGL!bF4K1#uJprdca+Z3LK{JU2VNq7 z?R)+KTPEIiv$wmF-e%*?%sKrZ))8%vUOr~YUtYT}2_7%-?8n$|Vq;$))8?2<#bGGw zX#ox`42MBUZ~c>S=!3WSk@J0)Qv^n4J^uwpozUgIL(r5^Q=HZG4&F>k>_1cr$;G5s z1AW2azo=R3k8ay>c5^%R$4^m{18)xYwh3=$n%}6G&+z{?<?kXFWp#QJK zYc?M4iIp?%KG1IYp_?IU#c$#Fz-!`XRygf(dTv8I&T8WRvhN*_W?gM(82qzlU5{wD z)R=W~ZvW5fBKuZ%&A#P>%~RLp>4x}vv8OaTNcHzV5(^K3wK|R&wN0j&?njDfmEcXN z!jYc13xn+1*{~dOPd&aGAl;R`ZF#<9s%}#v>(vjdcUp&fCm8j*e_*{M0Rxg(^X)e4 zU5vB$KJ1>GEv`X}MYMP^YqR^~Sok8==DyC+!4s_2SASfD`vBSlX=u0WW4+xuowmC* zPtTbLNG1lD2HDu6{dV%qTngS@3f{&2msjUIO`9F;_X)Djkp+!Lz7H0(Hu>Z{+{7@q z4OSMqk%6d9zKk3OzCUucxwhjzg8EHYbe9+Hja-Elsp$G-UL&kdkR_QHN{#H>C-#@I zv-Gll_mxu-`owVK6>f;dFYRii;rBfJ_P{UgY6yd4_%{@ z;74?dS(hf^WKx?P#9j*Ssm1*m!?1V4o-*v%Q^AP>#GS|DY2zXWC!JKwcFxBC-cB$6_X1`uLKJK6*MZmT+sTH| z|7u+ujxrsbYsR#P5l0>bwY!lc*|Y5=A*jE)swsFf=>LDry$O6& z)!9FOXC^aqXEI49WFR*%kQ+o9Kr)9bYQSx>AR&@uGT9(5y)nTAq%UZ-MXNOlTeMaa zQ_7;%1gnCgB-FPu4r&r0P(>SD-lDZOLxAGa8rOz({@>@`naoTGYJdO!-p`NEXUIMG zp5-~`Jo|ahIlgA^V5J5Tl1*4&@70k{7;8Fs-mg4&D$kwDbFcEeQ+e*gvpatPyKu28 zVWl%Fu0E|7=`4#tzXoR^hTdLvMh^}{Z#&Q2)wbFDd+$DPFV+$0{N91!2^H!Zsuhve zp=jkmfAYuVr4IBbomT(8c{(H|hyw-sFL{rk4^ai-B&{934DGbn_cHYKKKxJn_lE3D zctviBpcRUvzscGQth^p?L-q{zVGr4!qojk1UY&d1?=7w8FR6o9<4L;`uWOo&8dRH* zBF9xrII+1`v5P|%S|aNnvXWH`H_JVM^?GaJZg-LrCx0TJtOT+&&N;P5p+|Mkc+jdw zZ)L>QtoSRP^Q$pcfNJV2M)8sv(qLW1=0ZA*oE!7gQge%tt$eLhq@C&@=hSLpt5L zu+Yuhp|R;zU{U2E<&1_U{63Ulg(avh!onk1Ispsukx+})W@;gnhir?`2%ZZ|AHIdo z!5Kg#Ok~bzSkyV78bbM1Sk(7qZSsJn53t~FZ<+btni#6f+Dxs4@~QGRjI~7q_A&bM z#7^8o?E)ul@?8cf&ZVB^-$6Zf@DF9Vn}(=|PTcec6l|6m(- zvz1v}njnja7q(+p(Ef3CNKpiHFH*0LTaFaP-_Tyl7suhG96CGJN)$zR6Cdg}D>vk2 z`rS`y@Ov4O&~pj(xnv?%yda_BhXl`Ud}`L_K>wfLMr1xxk146%w-X?HRPC3(?#I`5 zd~H|0cDw$S$8rc6sYv;1DHl ztc<8_h4a)$mA^Zx{7;m&!foG*uVKimkqUpi@onLI+qy2Qt(>T~t{T?XrBQ9AN3}Ki zZR_{8H9D%T_^7sw!`ccQjO^DSQsI7maghJsw*H0^;rTv&FZEcQf>(OCtwM4b`U{qVH53V=|?|vSY|Bk5qKUV4v_iGWphWmUIQsHmq z2gUF0$DFA0S4Wkm`?+Tv#XM#h z>Hq7Ekx*>`RI;Ma?g1Csqi~VOdu5cBeX=)XdxuA;3Hh0ig(6grt7rVudH)RBw##={ z8|i~?oCm_^%h2_f0|L_Q7}l+?{g+;Jd1v6sbb`{S|3x>rUL|_l>W2JOq&bs3Z-TBL z(kNS%XH}zYSDsakvQv3(4{DkN-Ua!6fDC7!4K{m8Z|sED*bA)@@}Yxy+i_#38j14t zsSvkb4*uLV&W+obCFsjbxfP0j81hj?YlXpe3g}60NcoVxN4r0B!P7(fVB}f^>4VV7 zOc}^O(z-yGOV!sJ+@qkck*=0Eq%%M-MM{-ov@Q_R0ckaXbi_<|SO-woHlV#i)9ZyE zMBd`w&I@ow{Y=uqfv-nlLGy8A!g35bila); zk19O}&{>D&zalFC%&7d+kzW{=|AMIe_Ne@$kv|P^MMGqcDxr%iar!M<4JAn&9+NNM ziX5*`kqUo1@>T?GqqiU8Yj~{QLn=I0Z$+i{y%o}paGp_1M%#Dmw_%MiTEG2&SEnRh zJFGkYyE-N5x2jG_`fW&uJXfC#Q}@NtCtKkMp-4R1&u}i~V(*@-UC|YZa!FU@p(~P3 z*bcs_o~>EW_m68uitaojE%5zufqvWJkpEddO9?(9oQQW4RI9-XLKkk+WWE{L1!NN# z_OI!!Gq8&)Rv05PWv9CZZ>L~=IaY{6ocI8CQ;7HFDo7hhmAx538%P)6Ygq2h zMJg`u7*%_ z>zo5F{~_ovhn}L;)lsR-kqYNz2Z%45z?VNm{?C;B7abt{3a2MTl}JV^{LLEm&2%6% zI*>o#KFpegna;g#x}4B^;! zORq3?M@z5vh!O1k4~$?t=zz{Y56v0vGzvfS)t&IOPD20i>%U-HIL-v8o8m2g{R^gX z;K-7A*XDtsZcA$eIGgH|K40WJc*)^kf{zvDWl z>%XtlSdo;e!zk1}P48}aUF}_X{V$xq0QrMn|6pCeM!8=r=>e{8$W&Mu2w8QG6^9lxhqyzV&eDBl5n+E=fQx1?iqNF}XD*Wy6AJsmq z>s&`cXW_LCHExYY^KwPX(`XH%o9(F%>Hc{N?ln)b*X)ftZQaOU9|716OgFu1gAb%|NiBy`u7Z09@~A5 z7+)1j)YStU%J(9+x7W8o>;-+uf9z8teXkYU;RPE73sCj2l9zrzv>xzBMEzQ!7t*OU zv{vqiJ*shqBIwD(fBq75rqubr(v9BX(<9Z}&50+4%iz{5_#IWQ9g-~sStGw0Ga1>h zE&H*D1|yjJjM`5)*Q3%K_O}BMNT(&<|I=Zm??>*)+UgMl7{*z;b4T~ ziC9-6JWxmb%FnT*2JPPfEJd8CgJjFCVwX2GPSTJCrNZY%i>hX*rgM>2{UvJJH7uPm zEI%8TcI=;lnO1p=T0<&wM5dFGR<%v_d&01^aajJqzUcD*+SiE@B#CK)M%pq&NosA! z_fd~u90tQ*_YJlZ#|-peyr1^C_WD-AZ`2FF5$ui03qn{sy1bnF@ry|2UR0_y6i zx;r5jyAw{-+=kWD+pu~{yA)Kfbe8{~XSDeBd;bia9B8kDkK{I-`>w94otmt2p-^42 zuhLtOl~@_OKxNdW?qyK*HyQiHX5!okcpDVV<}8u$G!4N+x*gTwMjdX{Q3QA>vR>8t zhQmX9HpB4zJ_t`Qa+625pwSY4(@#BOYD`x z{cmWIQ||U?h3wKGR;^XRUv&=(owpx{(|?H+VH5__o7NVUiCabvp z7S4*JvtYk~UK^(TiNNU7$a^|Saewb|`K?{~77X{D1068^)V@kRy_Y zUmceI1JaRH`a+K?@mm$&UZ2yTKg1T;48^0b_$Adi?Z8RG=+n}ct7}^fL zNIa?D1uh2+og{>NjT^3jrRul(QuPTQtdcB$#uhDp?|5Ir2o1Df7BTBPFH+@Cmlqfx z#4S318WsY1&CtSl;oq(Ep#!mjHsQnBN;&xo$C!1)p(UN;t)u?zWj z1!v-ey^vr?_Xg8%BOUqu^}VE9sIfmP?sOqX?e8cuNKJc@j{M%SSEZu7A%7ytgxAo^ z$Wo8*CCIi6tGi|IU@LKQ?7iGeGv250q`sjUmxSI3o)mgt2dm+S@uVZbg(F+O^8Q^} z?T_Y39T%!|7OLy}c~Td2vTL?*e zYjX#raV;RtMQ&Jukj(h$^$N32`j!577w^`Ns(`b zjJ<0mBbQw3TZ@uwm6EqZp5Uf$Up-1fzLeaCk_{-S!=8GfTBx=b&>eSUa;{~4SSM}r z(iv)WFAI(AJ`-_Hhh3_wp{SXo%!LGRiXKN-a#*#@Gi z^4dLWnK7S2`;Z%yXpc2ttM6XNyFOo;sHU#}jBeNAPLckR39BeHY8h=^iZ8wkwi-nQ zA*KNPL8eFOXlf4fx`$TvyIg(Vt|2cxMUO?-LHG5o*s8$~bQ3(gE`O4W3j^RlWVwaf zC(F${E`&{CUw3J$74mhgJYoj?s#AB*)vZn|M1(oXEGoLaqa7>%dmE)aqfS?%mDH>X&;? zsFWKTx5Val^!5F5Dm14)iLSSDH++uoipt5k<1V8!76#u9^dEU|K*5-sK?j|_l8AYu zIFVjuEhIE6k-9fVS(!^nB>pmZImn&~kNLS}yCAzFXLRHos$Q?wO>^9bIqus^dX#!T z;q@1Eq9xMCL-R=5_|rq$cxcXv^KKY70FOux_DHBwg!GLtt&^=hN?E(1buxOdo_sj~ zd18GQ8pE?ETWPK*UO;#czvux-68yb5_;DCNY7R;4CTB~jrMUvu(uSfgsLn?IpbT887v zUER@mavRc-c(fRMq*Oeq9du*V+!3SZj=+-CQ)<99Bl@l*G`C z5k4%B!nQ8OyGh)QY`u2%q!~o309t0Mmf`&*T?PJc$TSV_5bDs2I%t!sC-uAQ?ZT;v z?q?Anf>~Y;?4tO$UaVw>_6kp)D5D-ZV#H*O$<}eL=wG~$>Hjs#{`%S5y~KT5QC6dz zd10A2(n#Jv4$`Kdn^A|dvCu;HV>I@o-FojAa3FF0U!>6&l17;dhPtq-8@BUQ9Hnz4 z2usO_>;jJUVwdyRfZ=P@LwoJi_79|~xH|Z{imU$<{HuL4jH|s-xJr>pVO;Hv!qr~i ztTv1+;ty3U9DQ8zZW>LrA0kG@UX65$%@Obze!DY$lf1g;s^;w^xJ8K{H6V(yP(Kw~dm9T}N9VygLUf5_0?w_wkTYSfmj7K9`mOQsxbdPBxI*%z6Z3T%^L6?;6`EzJCo)|#Ed3)u zLu&=9b-C>|qK$T6MbNrz0=2gy&JL0qRv~U4bD7xy*@KozLMvL##yQ}f-WjaNH9Qa5 zo7Qbw{K($?R^f?ZFGF1_C<^)k#bR?75$BKopVV?=u$Fez)gD2Gr1P|5R_1Tx@KeX( z(^sR@{ln6Kd9@C;ghyiX|I$dDn(&_(i9^9!&NmV=MnVpb#4YG~WcsFI>9S!XvH8{i z9h~^-e`F+zzh@-wz)0K?90~s`@GnH9-yfDf_)0WRjQ?L6i7&?gCvf7eU@hmviAe5p z19~3GeM*py{67Dc5XTeZw6?v|!O<{ojoVbe%to}NYSc1hibk$PEL+GgbFNI;uE>;a zD8FqR$&|atM|0OPuZ$#1Vuv6gKhkhna(Y)ZykGAM)e$L6KHe4T#YnQ`1EtJ&%aZ+Q zC(?V^iFBka*|}@DEZL46k+S3&q$6d?6GJeKBuko*J5rW3A{{A9>J*rV%aS{hD{?k} zjCAB|E*fexEK7RDk!49Ftn*OM0nFQhApK+xOV2_&GXD%fSLbWMt`k+d+`H>P$w~Sk zUHV3pE=BeqPCw_bB|TV+Nk&gThO<9pDI8iI^-f;t79y@ZP z=i&*ZBj;-UuH$dVP(0@VB(+z8>O=VLdFb)G z|4H!tNP%&75XP@7hCItX9CFy&iic}B3DWylv8;%r2fNfDTO zLKwo-V7v_C2rLY~yTr-ZDH=1;{|6oXHSkaG#K}85mGgLlPdJehr-@<@)pZ!V&^zLY zT>sn2dH#!WYRSdQNhZN3CI0~OUn1^=w=i94L(Sid{3F+Y9Qi3WHoE@J=dHgF`6&vB zJR%|6UOfk52%=_JHF=umPYQphvs6OgJ@JH2*O~G%BX2mnpIjOVjVlp zJpxC6LnSr1!>c}frBbH~S*~y{T$8M{OB=9hb$e0(m$rwmi-ya}{Us|&;yw2lbZ0m8 zm{$+Z3qh^z8M}&FwYsfn`QL@p$`OQCu14e1WNHHa*9WAg8BN`;M9*XmywP;&{BfQ; zxnnAu{iG_iSf()>?GE?p8ogO()0nr6ZY<7c2J9@2LkW7KJ57qQN0vt`YYPu$ z8OyY0li+ZlKncB7Yu2#A8Xohvs;;X{D_dm74o0eNeM;mFi5{0T%hYj6#kiW9kgIos|1zHynu>I%EcirGe|h>_5mGi6Suk?4}SO5S+4@>Z|BrFmB0KJH9I-ne0J zIcF?JU$1qqF;&_Pe7P{5X=N>XxmxLEDVvEI3iqlPYo@F3|2%7-Po0gI zlR`6i<_ymSWd?hdUS$BYO~C9^m_fBqr7(=vJe;+`Rpf3oJ()C~ovP8wPo`_k_oSYz$#CE0 zJdKj&>1WV#U%E>7W)5w=b;Xl7(+KoG8Pu<{%(t1%cPrGdHGg6MVbrhjaF%CA>uNC` zE2l`GWNr4vfNCZ5D<71OGuF>+26n30Jh#jYDqrl5GsmE%DQ@1-9HjEGN`AtL8?<)x4=bx)I&)JHs-!4t)1AYURBGE~d(sqRCt5aH=d-Pz8$36#789q{6i<|L zFrOj1)(+A2gfkANa=%-CaQ}&}{X=vO3zX9Z>3aL95LSG7`jPJ(1r;0C59R+r$v+>Q zZhzLfqn79?Mvpa0Y##9?<4{kCVq=F<>}?~`@uSLH^RT>DXDq7+#+R}tPs3aK&TjMu z{Ju<(Zp3)yu#GNC{npjzd(W4{u45Y%njb)}KW5#^%3P}p(j=8yXP_@CmEUoCzQXDI zBB;Fhyi`7VsN4dj98pAn1VtF^*E0b$p)>!+9&UFq2hU~7zm-39jMAbr0ul=F*IgaIAMIns>Yz~-=(t_!5*;{J3& zvS1E~?_iXGvDu)WCP-6JDo8)*jq_a3Dm<%AT5XZ%VUL4-;f*;E=h}@?s5fb}d4S%H zyD&DntYxLF$Q8nHjd=+;f#9xjs&v=x9Pn;2y`QR;`jJ%J_Ep6z@T{%B{ zuz=#a9a0P^LvJ}~wbWi9)BUvpE{4BQ(6gO+4L!mGqQ5>6QxsFHlTTC`8I}K&Qa%q_ z4F4;wWvtC;*^M=WLuE zokq2dhp3GPHz$AOG%C3@hWDNSovX9Il>3r>4sh*G@kZb!J@L4mijR9tuv%6Nf@LvI z^l<^A`Vz#mWYd$j#9P?Vb7~b|rs$SsbZcntvl_Hd*YNMX3x}?h^eqfdsAAo$bNKY!Vo4)kyifPX|7f@Bp!F5&HvD8^`xS=YN_2y9UnP0SOZRBzt8)|Ifm)v z!K(M1RJTq(=%l-Mbll53ruqZ07b;g*u(745sxnx%KLOZd`ejOq01QlBnOkO>d1CW) zso|~4)jKzH+!FRI=*F}nA{&kHLkZlXNut&g zn`o(C!Y(d3jj`!XxsAQ*sb`XT0bAgq^7X~9=H4}aG28B$ZSG)#_9q^Cw?(2_4VDj6 zNgrRFz_YHJlX9Y|JSCNN-m=nVl;cd6(OW&{>NE0G(|@OMm0JFAis*M?mPndtSVoz) zhSwImIPIZwy{wbX@(S5la*@pV^+Ezmt4>g$AI)~V&DD!=qmM85A)AC-T^f2mg>CnF zeP%hHR$hQnolwHZ{Y9D61g@)eQz>*bcB+cTw>AH7C9Q=*nUVqyKmCwUl2KNbJvjeV z;f6B3A|cI;Xr9LMe=wHScFeRfhQC|LW!^lEw7YVwNjJWhU4;?GIl{1YZetzpjckE? z2Xuxmw>q{P?Qw)5Mm=Ac!pjXkft5x?*S$QS2j!mxv?te&X8X&{)ejRVGg|oT1cCYT zbkg3+sir2|Sy?j8O3_zN<-Zlw5n9gHxC|H}UaPIiWkglEWt?0u-o;kPHb$dluD+OU zWQ@Nxc@akDj#O%0%P$fn<^$jOFDGHd$KdW-%N|=MTkBo`tY|RZ>JGvDwDW#e#1fI~ zwebts75IDa=(|wkg{WsD?rWXxd?Y)@@~AQz27Y|X{TL0?Od5?FN7Ib%QD(F^IHUI~ zGrEuo3dCChajB~o5I^i$z_NiiDjsf;(g_pO^NW4+M>BIZ?~FscdsDQQ%Y<3rV^4sO zC2;#NgQ-rvY?Q&LjANZ{HXFIrv0uo3>DkKWcv{l6mKUrSv$*Qp*`=8M8wARGDc>Yy zvbpGMy{Uu!9(^VK{Uql7;{l++A*8?lC(? zZGN0QN?w*8W6892uz4&VIrrGqv3Wjqi?o30K|w!4kF1^qz;y{LcbT+nz#A_wD|YP% zg_&h{`XWaCq4`}flydo(@wQV{OPC)NcOOS}$H-IC36IkG<6{W25KdXs2_L^oUd&v;wC$b+p09?WSPm%G z0E(-JpqQVo&^EtJ*vekXi<{Y5sWshaJ0Y7*k1Dh9OpsR2hkIV&!2gyk=!%*%rwF&Le=9$JXQb z(EhSeub!H&j=}|)w^uweKrbfQ6;tGlPuSp6e;A*%&+Pq^o}A047t75*k?B6~@Zy@21fku6r{vD7t9 z8NqtYVu}+3nWIIjq5JUC`vqX4uaRZS_THt1muJ znyQDp7`=Gq=#hW{QbCnAhe}BDwC0nl4VZ=9_Lvn?r+A&v5k4J9PJCt zWaGuPUh=Xmht{^hF!tb>SAn*&R|@tZ$;_mRh9e;1&cgSojpw#{2tSYN=G8O>%pte2oC#~AeF z#2hddP+lWSFaG8|Y-d2}1L_;ZILAJT((h;SWqSB>ehy#GS@?3sjgL8?FTl+*z>8IN zhVm7-q0OJw_G`zK{{$@PkG<5FgM?VQPcCQrgJ^EST!S2;4u?8NU++o(= zZdiWB61Hz}!#I2;1ZOXL zOj=O4IUgPvwWkSozqgp3sEIkC#f9V?ylV!V5jMh!8o$r#j_mX2Uk~r|<7V>YsC_mM z^;vI&x6ghSo}1d@K8(ql@-MPhD1GBat8_PdM?H(|@qJ2<*K%2~e@EzXkq7>v-mH4} zE2f9-SMfg;40(`$I;&*6J}2&OSR{rLoQJ|2g?MOV9pIxeMKjnQVBenkmZekuXN@JM zUyNz!`6u|{XASkx#^%?_1%zRDrE4%6KQeQRPE4n#3Oup&ndZMt7!BTWdSye;nL16` z>B7--T7572{+!pCNr7UF+r0dN` zC(!sEhW0SV2KmdcOKK#8>qXxi+_Turx#R6LjuwUD-=0n<0oCK%t<2%Jx;J=E*J#*_ z>0fwFh2MB-yy*RIK&WBAhlTYy=HnA(KJtR|5mVbfo%Diu$O$|AF(mIb+DpnxpcmNK ztKj`FIxPw}ITHBSbQ$&v&V%1UwhHkug@bXM6kB9g>0O(xl3B4)GQgEjlsed^k`o0J zpwYgarRt#bp+$@2CAVB)=j3_W#H|;y>$77e&N9Uo%TKnAF0U$zLGs zGEKH-Vnzn5$Oad|6)Tt>d{L*>TK<;o#1p5bdj6Va z4vrh}Wm_iL^4ScOYqrm^yf=Oh`yU_I{}um^H-l}jIVw9L<&q|nwKGl9De@)*QcjTm z?$g%V6e(BCUm?t4t$AeOO@M``%DI@@Dbl#Y&wTGxXln2zvFvd@uThl1g|SF9F~(!e@(d%5^t4DuRyR95-(L$p;l#{ zUy*rD#%9Po!MFtyhI9`zKUVl1WS+flyaF4q$h-!~yxUnv`54H$uOaKce*PZ#;Yr@@ zTWFl=;RqJBR!(*pMdK%sQhGT?KISybhkZI(UpujOz4Le$Zgr48%6hQdz^yL8>e<6- zQbk2$ce)78yr8lB330T9xDNM&-A)a*mP+vJE8cc-X6550@E;Oa(zyGxRuyoUJ=i@# z^I-Qy;M%L}sbr?R2<4v9gnW1VipWE6bPF?&XWhxZ$y&i4?0!X4UpQIPxbI|Z3RW=d z%q-T}{VKdQddPz{njCOLs%3Z$C0JuoTYj+nLXMLj?EbB$vHK$O`k>{WYt$awQ@?jPgXsQs0DG^B}M z8;}1r+Lzs#WyxmMgCuBght_zT+fkMYnUH&bg$-q$?7G6;W#nCHDBqVG zYd6US*ynW?G8mR-gK24Fc|w88xr-_?;~pP@bMFJ^-UrUTZ@x+4+(o83dy_N;ctE6%`?p@h%uBH5 z^H1l?M^6X7@zRYUdgTpoNrHcF68v-H;h+0xoT`!REBynskrF9q=B4aP=rf-uYrqSQ z@^j8)l%$%D;7P;i>))KAemn+#d{64%;MX#Af>J@|5iE>Cnk4E}+?>pX` z(^a|kxxyz4>l%7mA8wNFfdrTrlmIRp*?ZS1JiIK(!^y7FMDXyrF0aDF4T`5JEGHY> zGr+^sFv2DUYPXYQRw=v7a|zbR3S4Da8C&T(KAqm$(1*Jq%L-g$%2&Hm)72hVIGd!k z;N>J+L%dvtQBylb(d3Djr$+Gda#v${GJ6@kydC`QsN!?FTjAkkcapzJDkYByd6dE) zr_@5tOz-9un~m@ zGTB)3wL{*gmE)g)51}1ab;$d)BNa1{@DfQ(p3;LpN3HqWI zJ5?Mxrg)=z;4^r_y_0P+-Nt?a-l%%eo^UoYx8jZJ9=}lWg4{QH1=}#>Igk{O#Bc4Y zM?g%e!#V&rv#Zi<`qAi9@>o-kGQ;l#XSh*;dO^?|)d;v%|JlQyg|Nl5gSPk*#T&I_ z$Q#8e-l#vq8w6{E(EA)Uko@fFV2R zkym5*azZX3Q9V+1L66jJL621C zkVk6Cc|B5(PFHDY68u=Ndg{oRAH;cIZnpg;@Y02>J;+PDJWGN;sk)#~Y8`w|q0#v% zd{XbH6D5*QYFW@Hg|R|U>ewb{Xw-*$q;gTB-nG)D!>pLVH3Y>cRfl=J8nbnY;*)wb z=#x5s-daer8=W7(D`k+&r=P4^uFrx5J6MtdPn>BLe)Z25r1{V4$X+p<3^q=&3TWNt z+HBE3K1ORY*-4)W+-Go;O+a5_ndrYH#_BmGx8(_@ILufQQkmd#28(|j<*Li3d~;o* z{~xEc?s`{3*;md`+s&mTw;gNGhJ9jMB>E@BAePL;+jN#O)-XIeOM;EsjmO%p+Oj30 z<$pM--NCBi?fRXyiX6|t`q(U5AN!?VSsx>hSGzV1ZDnG0?2;JXa}v9=E>>#fJ!@Sd z9g28SeW^~4rKlB9!}(W4LY^s2&@<)02YJS&A=U?bJf-l7i ziw|*8YAYX^DeEaVB>~VRLXRQ*sQBf?AaITXZL?P86QXC!Kv`@vFs=rRa`hDW)w?Z%R|<^f*R8$#jhZ zxkJGuYG;evqKnbaEXuM>L7XSmNNXTZXRnE>%OIaEvgiKYDi}`;n``HG?IW-2`h8 z>#~ZS%a?J-4csiu(H{WGfUn;2C*dN=$&8jsHqwcIso|Lhn0qzw$RSMyK9!m-uw@}q zhX<|-rhUS_=y6g^hG$K1%-59Coa`%o1-g8U{IE#)Sc_Vs>-byhRR3kD>ni(1|Ldok z+^1!m2X<{kJ$z+|Qz;Xrv5b0oBl?(tsD!7`!xTi6r1^guv(Pgiv07*AYhBvfMCN4L znhy-Wa!p_@t_DkO`82~ttikf2>t@53yR>o)*2B4etA@uATY$0mu+!z)h+Ucki}tdZ ze74_H!gO)5N-sV+Wpu|OQfi}XuB)(olWT>Hh%R`!eDlfAWrh!?8UB>r7)f8Q(H;j| zi9FS}2)_By!=a0R+Mp?qTT1JWH?oQNmQ-?P86THBr1{NZy~?N{J`^}$1T>M9cdjNF zqPv&~k1#ZNk40ya1??9;jdo}D{$h!#^ED;)I_E|3BdrS35 z1#&PcLWjALttov+`R0WundVH@W_G|rI~bfr18gh!bE<0f6jiWaiP)HzZK@`&lbcOc zegdn*_3|N0Uf~XCn zQd4RHX>=btFIVi%Lr%h^Y|hHu&}-8$LR9r5SvjjBIS~CC{A*R> zy{MGdoD3>IH#)MyMYoWu@vg+ZDdttWnW?3|1`huvFjU{LJ~fV1nhW*G;h(9wck`8-PqjtE{NwY$OtBMs zZuWLjnj%Ro%c8Tz$dj>$If1h^AMus8a{gb9_arxa4t5e^3~xl9hUdK5%PYfcffxc%l&w> z-ZI*j!R9WSi|DJFMS1?5qPiM0{>NDWMak@D4tQH+WQf!*x*7d(tYg3jNJf!XYi=7xn&|nwKQ}6zp$_loa5U4 zZM%_`0vqRd!DH?Yb(b@1^Uc+`e_I#A zP2xMVJIYxD-Ubv}2gYKoW_KjALRMe>MLXio`VC5-R9xN%*^tB~n7^u;Wk~X^a9`l> z<$ivwFChA6_*_1>Pxjpgzp$CjWiPj_^l`V~Y&4w}x`$cF^fH`jp|hQ+$@Jx6KbG}T zfyVJgb;T??afkYyZvMJpa4OAR8&)gsSV$&O}gi#m4l(AdqvnGSQ-@L!~=YZx@&r}a}nk97Wfn*V29?MB*p z@_r4SzhkQ9QR=HRDnH*LYHBz7WYoDU&MLWmS(X@BGBVC)o69+t^{Pp=Z^`giR&;uq!uGU`ofPAtdBzq`M**@%%_g8S5P zXT<3rV@yvZ-~Bw+uRC1+lI~3Z4c%FOx%ORnH%=c}6Q`|R65OS_OQD5C=~G}>EaYCA|8~y3ajbM^GtZ9~CSs$X|Z{`wtoX%ow zLV95(X4_`Si?7bMBtnaDq4%#_Xg|q|uogH`SkK8D+OwH!5%7syO&)N$G0#xKS0_}j zD7mpcP^01ZCJ$y$#BMNa34%6l=>_d|mgmPkl#7ygytQb81qLQU6lzWLGtk?4nLA0i?}fN z{|wmkSvU9?zEwlkeAbN<-Mbe-#vBJ9KHhC@7Ix&LP9rOBG0AawTErQE0gE`TsH;WX z26)PI%A9|u*s6j4%TJ3^zF*uOhhO?SPQDQRy~dm%8$GTNOU30CZfA#Q<^R6OEn?aW(&tvQ)%gr3eQI2nuX%q!>=iJFhg974JwH&h{Q{bB{gj4u|VKzL<+=+ff@u>3Ne`b z60}sE$XouEdbap--eS8H<#gbw2EY-|=xb@>K41*>S=H(K(PjZR)!%n^#g63br@$kY zgIr%~>L8!5IkGcAc8QMX!6Eh5!K#d7F9kkKGqSsJ(-KQOQ8f$ccheG-GG?t7l6f}X zXvMgtq({Wqr&S94$>ceVNBr>qVq*{%4Wi7chJ?fnen;Z0BQFIq-Bc5mc|IkdO|3Ll zZvhvv@@?Y@vX?7n9orcoet(BnP1EynjrWKlppi0;yozmEgUbxIseTrCxgv|1#Cg?} zuc0TU?&XR+rg38pO?>z!>#?%|SG8&B?4z#*4)TMkvyOHKG8O*BCCoaqE09@|0a!lq z3hY$Am3`Gtn$7)**QebTzsZ*8U$EVb-vbrvjs^lnavbi+o$N2?;>6h~ITgI7oU5$N zFwO!el5#WhG7O93O}2&5QC_Pwi1Q%XE|YcQ^Vv7a8ArSUNKiqyI7WQ==+|e*O7s1$^$g8n{ zu|US%ud)^xb0bSJn{4t%XsO`fCcvDJv))!#${Phf(dLj1rUj_eY%$vA`>VSx_)V{! zD{4@OzBXGdWr=2&9d#7X7w@huGLOZa(EMc~wtt}g6WnaOT;lL!9V<2`HhWsR{#z64 zEbT%V2Yx3$fO5~+H{t)^S&R5jykl)8%{dk`+FOeDmUinF--LDdOKZo8gH_Zk;~rkC z;H<$Rso&y7-D3B~oyS%LIC-jnMPTQ#y8^SXr&4jXbJ#+8l{+3jk7@D*Q=$wz*wEn4 zIP!A9ik+75T8Qpqg2wE2xCz@4k(0d=qpY)CT%^a`?FtCFqpe&eQQuWetI(cFn2X(( zCYf;hsRZ8gZR%AX2R{e3;S8khI1_360B8=f3#)Z1?L3lDr_^xe2sNxyYPixP@{??& zk>`WDsOA+3@JsPyZRc;hW~gnW?W&_Y1NrQ#bWn8q$tt2s!fm2^ioN5wGvIUZj1j*^ zRO|*0c7lFO+hEO>j(o}4lKEqooL9S}Pb>0|Buh4N3b4UyGcR?ME@xi?O#}Dka=>Cl zu9(1imo#fd`pQ{8O?E00;}x_*ZBPr_+ol{#;*4=-c;U8m)V6PF|6Jj{Ms9ltK}30Z zX>SbKjE%UVuCcY$MqWtV24piIP2wglHUB+{JG=~9&M_O;2u*yd-_7N=o+wPL7&%XF zyS_GE+?9;@)CM65kR;Q>w0s^)pK zElX*!8!Z;KaxIzdMllQn*Wy~raj!rB9^acfR#f3M*&2^b;&Q8nLQbl$ur?En1Ru}S zmkT4laUY=*=*o1iga z&m`+})!pKD$1U9;RWvVw?zia%>pCHKAh{7d%_>b>T!DIuq}if~SnqhNCeC8dmrP5I zmRTuXKI5KQ@mkS{x-FtHjwR-sPp0N>Y^b#I-;OJijEKF#j(PA%{N%+O-5WH}ALEw3 zQ}zwKYlIm(!Cd$?R`yS6a297tXZG%rEohZ6>+xib?B3`>P08?-CBO!qi01&>KO<0& zc=YDsio|0l1A1WD68=l;5{bs$V6oV4udLk&z16Of&Q=*9cj)g=oikt!%78`Q&T)Wc zBUxKgBGZ4z_S|(E{BM%1Wz7{u>-Z9CYrsdX=|w8fS$dLdH}-Xp1&}u`G9;74H|~eM(Md@cq1O_y$ce zwpi)Gn;zN0FFpLcd1*KAO^y|Lx%JpZTn=n&*CKz-MCf#5b#Y7k+MelH)MBmHg13ix z74eXeZLSYm;I(>KZLq%ws;oZI-^Q(g<;}}YzPW4$n+i)0I{irwryYKBFU`u-JKrKamJ5k?vYnG%}^4ysh zsEvuzzvp}TW*4T1NK%kT2qE^gWgfc~fF`lNDAM^rj5A z!pH(6ON?x+AwQnwTF`sQzsAK~16dDi1U^C7H^F*7>mJEID{9u)uJN(W>G-xWS zXOnC*vdm~ysv}1Po=vhl$>JnG<05Xf6dDmKuUf5Chib7>S=CA_ZdUUfntoS zj@!@*8+;v`FRYKO(_|lx9UM3Ag=|Y_a-jdqvq>mNc4Itjtw8@j2i4kmyxr0Y+Y_}p z)*EEigG!nc;gb%0ViqV#gXlenl!ClzZLNgiwnWLj!Le!LE3sk@W;D~50WYrz32U|| zh>lHMb`he=V+69-j=?Ho<``&1jz_idqNpv^{&WH2IX84gw~)~ znQxjo%M6?1$+Jwef84sIRl|?BJK8kx{ZVh$qBm*yKK1$JO^$U_UvcFM_7w^YHs$-z z@I3+f2WuQ1akxP7HR!Z+5V>y#H`bwUovRA5Fo5js z3?9}YY#+iw;%om<#_3-0oEg}GL?f)i{1enW!D>K2xe;E*!K!$``RRv7bFA%OEC;w*-9?;x17|st{N*x}WL}!P!TKnd%~?)iHJxS)Yk=%z zjY-P$P=0f@M#|j)9ahP6awre2$53rN8wYQK30fze{A;RC0VSSDp6fq*HrroUmna$i zfwMY1A#YQLTfo;-sd=mkYp?zqV3aKp+X75dBdmM)2av)#iIUa^)7ENUN$ZgQC>gn{ z2}X5IiS|r`YcN=wR!+WJ%*Eb-!7ARE#8Ls%D2a4Cr(mw0t-y3GV44d^Mo9+1WW>`1 zk)UGk417;U+yg;%7*LJI^CvY;N6!R^9?aEE@HKN-X`rV7p7cT@LnO7ypK3O1jT(dC zA($v;h1SGWD~jvC7JMoU>z)_niFe~7~`mcjRLQBDUkLR+@fZak4pJkJ2{TYJ?& zJNdGcAWvi2$^7H+H(Y3PfV&@o&+o|g+vPvV>y{B`$vLaHaB_x`p1(fJS7(?rjMhqc zVJ)%n)8>OK1p1}3_d>#Oauc|U0sgi?|G&PlN@H47PNz^X&i^lDY0$%X%r;^{06&fC z8O*bVni41@BS#>UmYX$$I?wB5oazUsSni<4@;Q#ubuKN0(%!bUem>!cWSmNKvPir62c>=;WUlV;!I4&C{&>qdNGQ z%}Xz=U1FMKjfG8m8|I`uKXgb=`_%-v;KgS>&}!5+yi-R{9XZuM5?X(r zt%+W%UWeSnBNsw>uNap1zVFEELS7Cx7Q>!XVj^%?;0U=n#19bNJN$Dsr`vpOt(>To zh(WwVpuZ3$TC-0h-a(C`p=gH?Ec1rJGHZm|iJuxldAA5%RlK>%3Ll*h_c!hiuPh$f zO?q74?m}Q3hre9^&!BCG^5C9FXl}HYZnRtj{F?NJ8NUH74R+Q@Z6(7~t+w@?Cc5oe=V{wuPnHI}R>*fFRyg;3Zk1$2 zi)d?!wzHVZr&Yhc4r|=&quO;I0fz@1H*-gqQERYE@P9J2kfj;Zp&Gn`@ zTL@;VJJkQD^d2sgZOvl&0q~55XOWvR2JZbCP|g^3^yrE7s;U#gy+wB_Bq(|1@S+9sf{2Zsx8w^Y&kO zRNncNo;!SX4E2*%C)9lvB4n=~V_X5xD*VeBZ#8c6DShDZ2WK4;sH% zpQZI$iiepd9<8y!k`MHsK1p<*5SYx;U={XNJIv#UW-7A9;L%(Baj}X zCF=8D$Z$^bSCOP}Gz-{xyk!K$HEX7fc*T$ zwr96F5NQB!;V!LM*^=pgVAn*nm%GhnNfbEX+8C*+;%;^Ye5tT?g<9m2k!$rXx0E1` z#R*{>E8M%*?a~QL@a5(f7v{JDPeoEE`M=mQgK5O0H!X$H^_37On8W zE|scjWs`WFiSFA3Ht=!{?obfOkCf2qGs#vwjZWzGY2-#cSrhuOfAL;;FzP^WU0%v( zNI2-FT-t<2nO0iP#t&A_0Zw0F(Y*~z9?tzgPe9s|Tb^`Aj5#|$%mSr)Aw zTpV0s929Xi_PShhu#+7#*x{u{IS=tN3Ds%U7-=C~8{_LNKM|(-2hWyY&tdN} zS&ivh&axPGEq$+!=PYh3xA<0RcwMv}v>skh%C!i!xKYc}v+FD1$CW*(<+(V*5S&5% z8ASvS;)@l%cQ(_kozXa3GQ|5>#*s$@yk%dF&6a=}<@$GP7`RX42qli71fBXo^Tju(IhtdXkJ~I7pj>o+F1J%5V_DJGRzap&&uePG2{vIP%tDi%0 zeH815*g&R4|K=xA%-`RGXGvb06pHnuNWWK$dt7tbx4uqjdR+hVp^?w@=iuhVoV^Kc>nAaT4$PoK!6d>GoLP(X#Y$Q)5H-F6`KSJ+ zSye0^h2tox;2Zi*={!GsgW59VFV(1xs(f*p#Vij{f({qP3vM+_vq z{HR53i|Qi%RtJp;-X1_?e`D}TDyu@b6VGX|>8DD$z&;*7%hH=~%4}KEEU~MeJiV+4 zD*{j5l+}WJvI6mt^8zSI*vlgtDj!ijHk>^y;*Gesw1scJ3pUp^7PNvl_Pu1KQFNbH zEJbUMHJqhoEk4kHUD@B*W(<>fdswy97Z#4DapK@rjx09P-L7`$^GyW zdHyS>nDK+(0y9A8g+z{0_?-nkQRyun)Rx04Irve|IQ*}2tr&e(Hym8tI!yDN_UZX_ z+6A@I+V7YVa)$VY11Fv7asFDk#EH~E|CvvyZfna|@PVl9-`&v;2oTvbkio2q9{Z`1 zCpsEf&Fk=A56GkSm-+WH~UEh)44M-w&@Tb2cZw7Q9vtW(qp?N=od}>7U zC@~vxwA;Zuqid=kp(cT?(1YTEv#m9EcUa@~HXZ2y)p)D8b8&Pma-hF*gz}*=xt$|R zAQJAp5psh-V3q3RuiA0PptAByG_zbkL-8zTuoP(GI|CF&N%0~7YNzPFK>rt?5sj%j z^Jn@q(0xE*N(}OBHV6BOj94F8Ye_bYHs&+A6*m3Hb?}c^rG3Sv*MI43+je*x{GEB? zdUH;eML-l?hIzfANJb3cqb^vEh;vxy$~9U~Vs(tPhq$F*IX7=hdj+}KzM@xQ(NXIZ zuk#OOT?Cd7{D+Qpxw-Rfh*z}0AKGfM?JvICe6>*n{zra>v)?${GTax7yvJak27NRR z(aeZ3#9QWez=P|`y#zjqB6$qP`dbsuwt@~5=s)of&N5kG@LODMxY{$Ph;oqDzYjUa z3HQ1)Jr5N-+ORLA!zPk1Si|#z7Ulkma^x*BDUm&66nLM9_Iqm}?AHjz8ckg{HP-@c z`T56IDHjwAEfQnnSU*@bRTN|`yinupqjD2%i`&R&tFxK0!`+k1@H5 zwE-!m6ct1f(b5RMmhxIav>YxL5fM=l0TC4e35gMrQdGo%$Ufh-_e?TDv_0?td_Mp4 z`J5Bo{N~xuZLRgJ=eC~9&Wn8_DSJ(IZ}vmUZYWyG(B4lB9A(e${iKY2PGPAI8cCWh zaJ#skJd(4hM(xo9=lJHH z%-0|N+!5Exo8r{%VbRoP&T&_b<$CGBo8#o>Qloa=fjilgCm~$KY^7WN_wn2Mwemo$Gd<@AUt4bIZRxD? zgz7U_x6O=wdbD{v*sf02_dtH|6}n=dro@npSPz8P0V;ld-K|=@7U|4c&{E}y-;mD_vu~xr*ikLJc_zA; zZLv-ydp{Z&A#JX|XoTf-*!tauj_@Hf#(Ue+FU2J0L~R|Wf6MM}>um;aJ4Rz|3hn6p zjfN0$x#XoEm86HpBjvAw{C_zJ8QsEn{{{8)}$Kyrl`#} z{!Pm4Q?tNmxAmU;TJ;!}Bl^TypSYC5g!+$-+v|_8U*%&XspiR~23FbTeHhQ%uNwL4 z4|U@27|Z;K9zJH1oo9@5!K6&a=+g5UwTq68s(CjlqQ>*C?(FT9^HQp|J@I-($A5Oj z2u;;>#a$mUo5IbQbAn|L= zcL?sgolC}xwJgSS2ye18 z;qy-z-M-RI%1uhs9v&IJmEW7$J-bhqoxsc}M?P}thbH5$>YBm3Wwx8 zJ}D{7ignL@3G4S)>uIgI@uyX^@X-T4qU=$Q1SFQ+I?~KDcBwt5a6@8^gVY_H)@<;2 z$8lT3TqLbSZ|u^=DdKD8ExtDP)C#S!ON%zFdBx*xD!njj?hf+1E@oU-eBEJVj=haP zjRaf~SF-r}F8lPSEm!rvHtu+5*T}EBsmODkvg7`f^?^&i$N5*NyX1>qTD)N`^!2H!Vx}g2 z(~vsa&#YYU5Zckx;oqT|4F>lzgxpClRIPRtjLW*c{-}{qf6R!lKW^AsUmqj0X%>mPF2pLNiOsLl3FwN=w2*y(r7@G##iF1~D5PCwKCX3ED_c*?v>UT1t&!D+ZYHHpyk zF+2=(c8N=-x9#CFYTx}zi%VRW=#2mTQCg1<(L)>8yRCV>%+F;N{p!<7^7WWV+W9wZ zDyM&((Ay^G_k3Y>bNxKC4*k~H@>vZ#VC>nO>uU`2EZ%R@*dwO4mTa?wNlSV^Ws94` zey`ZHDAu~|?lIi@6U%DU67$`6oi^vN>Wr3;&|_UTdwPe~-q@#PcUD;Rh8%f6P>&Uk zCJp=isF4UIXW1isS7&?N<~k^d9CKgy7-vm~>f|KW^ixCXJ~ix#D((8{-#82MWq$oza%$xe zZiJH|TauTInrw%Uuh}b+!|Kqzws_+3JvVOe2-#e^EhN%#Y{-#xZ1&F_w#cYxi^elC zxm&uhw>Q4-6Jto-aYIJNPkmpbb7L|VHH$m;BRO59IXxsk@~ERK@&J~JkMzZa_`qSM z5=O`cM*MxD`cPWTM6{ z>WV7aqFO&3^B29EG;WCYIosxV^22Eh0`cS=t#)4+VKrivG?TzWv(!#^^RVYF_NneQ zQ)q2N9W8T0akphgl6WP4(oDt|%9cof^4K{vB}>BHPqVw7{mNYA4f%x5$ZRf1vDR)S_d_XGTXY&h|v-G`s1t$F$(y z@pg=zWcT_pdNG#X(%Qx(ZW)KoZ>T+Ii;A4IMWdBHVaVFq;(AW?*Gb*{@tHEAC@{v0 ziVLT$ldD*}ZA;i%}cxIs45$o~*Z< zW9X=7u_C;<__GcwijkJ&+(BhlM=cFE?do>Zy}!DlVE=}|*jwfm4d#q2cB!>%qbl;c zm^GxpEdTTY;cvYvTo&ECkCHSg@bo!cHl z*0*vVNQ_!umA@x5#ywLh6mAEm3 zb|K`|mO1G)g^a!mH_ath_*3i@WE@fT*$9R2gpgOO>PM)54hZ+!MR(XcdUiln-3X;~ zI-Pxe^{L91Gd`!g-ZCw5Rg0J^ZX7o50B7VpM<~0o@63sh_)T=x#(yv#+Z(B% z))pSY?C_(+aVb^#+<^%NHmDJbvz`j^Q+&ExdW{#FyqlQgthYba4x0Ej2VrGDrciR8 z{havnq?>z3!;wH!xFkYS`gL~MKl(^|P1UB~y%f&BO{ooJMW$*~1W&uvd!39k$?eHa zA!h2K>=qq`D}tw8>NrNH)%aF#S~9ua6LWXJX`2iGZ>2;{NXoWxYGH9sXm}XB-jjB! zz|lgj9^-udC3{vYKb>!~yXlUT0V{=Qkbf;aPG%>!s>+R{YBp@z!HV#PO`YTBPKy8h zeM3$*q($~-ufPuW3hdY<`>WpMG%ROjo^mX)*}3b3H><9U!Y_j7Zq}LJ>@Mw(qW;cY zx1cT+P26!q+G@Ky?WH}de!n^-=j#pIb&0k5iepI?Z9qfbi{0gPSWCxL#&H_f*KEc= zo9nX;3AOl2pPIW3Uy5GyPtLe>x{oqoVhLs^V@c`lQQniG^%onQ(D-C z1{Lz;B#nD|6Fxs^=z5h)e_H5CBR|RgQnyH2)%pS1&LMRN84;Q1UP+(UY=!i}nMT{3 z5Ixc@ar$2g^i=mQNnRrDw4P?i=3o!0xjxCcAm15&tXt(ei^5w?9xnbM?On^X?l(Za zDZ{Rvi(H%QkPNeETTV;8cVYZz?;B~{&|r7YT9=+OH6;@nXTJ2|s%5L`^RtA5a~s62 zEmni>oHPAugPe#nYI`>{&>r2ej^3Y19bnH9`|_A8 zXr@fs=12;E`Jt8GT*4yX1IACu=M%qtKJ3;qt$%c3${c$1$GJnJ2>R^K-lN(v73jn9 zriHAS?myPG9F9=@s~?|0nmisZb2W@=|xw3X_JA1paY|JtEZHxf)q zMEP|iTwjqRCrDT&F)6tPU%T0=jN*M|ii~#q({f2k=}$j7X)LG0l4VuBwoho~IyvKG zmAoUSYPHy8cCKrOEv2nsfru0Ouq!qol` zE}v`M{~@DO%MK;G2-nar+!)h2Czd_tobNVw51tKEk?Hgdw>)tqIf5RMufS#7$UklxQ0J}V;(?v3FB04H;oP-hgjtXN&FQDVz#$!Oc!H*M7J zIITEoN8e&^?f8p%)`QjL$o4UX&#rl~&tIdK_xZc*Hw^4GyaPXt(Un0DZ0-9F^h53A z(o;gXF=N$;@Ev9HOiT#e_s$vo&%x#e5X)$S7I;QoyZO#?$n&O@SfC~D-VvSvCVlc zRb%g17^A2tXSnyJ6R}Y@>2eOG#l+WA^vtA*MYO~*F^lU$X^%8+j&ZnqA*;nm&vHk( zZ!q09zuWHafIA8*!X32*O3h5M>z8~{Xlp33Tk2h$*RdBbloJY;J8WsS;ui#jkCAwI20m$2BSVY<22uwttJo(|bn#2>kH7p^X{Om?=0qcnCW zUF>9?uFxEuXK-E^U~wSfzc$+n(I&Q?)^)M|+vQyed+j^HX6+3gEnp3Q#h3FxLiL9r#bjpg|;81LSkq*Y{9UY@d z`8*-yJeU13_GEA-xJvQe*wgWK+YG&)v^l}0*Z06)FEZL@@*|_2bf_B=+18<2%gtDc zs%3b1l#TVsa%NZdqAe#_P}GguWyh@^wI99gqpVI|^hGVb=o4=4xo-%3jNqJ`SmWXu z(O%C!6Xz$m_?LB6BpaSnGZv||6fRC|dva1scFJYJ^{+S&s5yk@fc{&3wLR`)!Q9;+ z&xwj_$Vtk^8Ue)%5|>PAx5S=p4{6#j7aUH)BxOhBESVCuWFcQY!s^_(78e{YklvCh z3liHc*^y$;ZVGAHYSWo(Ih0K zTHHIajp{XjF7Jx9}g?_QSM3`md>nVTGZbTxb!^%4Uj; ziZ~JET~Ih8yi0U?P0z$|I1*c_W%GRZ;1KqSOUNp|#oXoNfUVf5z3`6MJtMt2PuWsz zac^yLm{ti#+IyW!pd&o$qb-T(P8p|TBfUqr{bRtdBQv5u-okCy(aAN=op-X2HUtbS zY{{=K&imt3VJmMBJtEHToil00Bx%vEH+Q$6_((>dv?=fD&J$aDvu8+)>FoUeu3K0y zcJ5^TdFNU}pDR#t+N6eUoAi0OI&tG`8hagR-7=v)bJS$Meegu)Q&q_}`+ME4kNYo4 zKW@Z*CPwb;^tAr_!ZG13Vj5Oevj1W2q)Xe6Z9zhgUa1#Xjc_JqUfgJ|5XA5WLh?;v z#Gz8UGy0G@cxqhrXXZ@_j5qA&ESyAi`W z;oiHRx<2mREq|m89cf>6I*{0~D#>ootZC7(QFfVFC7^0ELsjIcn2W3C&}a0H)7bM^ zmBRdynb^%(qE$$XoF~UR=*_vi6w6-<<5PRItS4CI_v?KvSrZJn>JLbnaT0h;@3_F4 zgHij*0XYXTf_+R)YXes7eFvnxSEmQ0P? z65cL~md9b#)|?x#)b2XBfx87+8w>0_+VOyV@7CnpBH=S%}06P)9-YnTW91aGv~C<(Q6p3h~;s(*bb`K zaEh?^6Ee;VcZ>DV9@qQHhbJwoXZ-g>6lYTIsAY#~jnox+do!+LO4Y+TK@ueWtH zSIBKhWJ8Xu>5pQ3aIKq}tlL-!2I;pIZ%H0v1&kmwKvGIl*tM`{Z=z+CbxJ`@ZhJ(40iL}X4E#)St z)<-z=**YRxMaDkC`W2&HO_%jso7tnt(T^4aA37@FoGNw5fZa0Wj`T5&MfrEkTYIJg^!}y#boIh4qxMkXOJy_Za_#tyCKFlLdpgr<;% zVV%)<#g49SIg=RKVu$jNw}H{~y8*X> zo4z;lkblH4wAxMkAmdK`I%efr%R?eBcj8tD_b7gG7Kqy;FPJApq%EloOJ#?682dRR zoWFFwUJzTeNL_xmQ_yY{8AT*~Z0*8n$P-IQ7`9V8+ci;6pn?)k8bl*{gO$Ij$f0(C(^nb9O{!%-In#G1PQPsPKUr zU*+zxH*)TvCCm+=t7?bcVTHAioU_9=QGQFvKkQKP;-5pC(fnH*EAE!N^yTjLnS2pK z?U}hssrXe9>?xkh-Rvu}<>t+c@-2?v@l`g*fn>RbvK=Rr+i<$kZq`VdEe+$okz}W4 z|E|+G=eU%KDK@0vf_0|8+~lo7{xP5zH$;BXDG>W)r!4LaRgot;9b>+7oIOfErc0>$ zSKk1MZ~O*GM{}{ZKpTPuYY`Ce*L4pnKG6nQf_5`r&Gu9w>nwh8hNAB zQ2UwdUkN{VT~g$0qyn$-DK-ZuBi!6Mauel8cUw12hGe&Of66Vg5x;kg{erKaGPmPv z3|;3L1+6$=uGdsuelwH%1XO5vce#^Xb+5jK5KnR^X8m*`}^Il<8IOj z_j}fty6v&-!m+y#j85c>miE?rJJ}*9I6@-t;0u&O|8LYwqvX4kZ*b41J-UP31{xj8 zm+T^P)(;TZpSzL6+_y#vz}UQP*mKV1Ow1bQY{+?alr7xB z{nj>n565-fOSC-koBSyB=v*Erz(Vd!oH>E}-MBr}%K5cymGk=nSVi32WSjWA#0d25 zuEdrTCYqs^qhBZaGG=Jb0|U});@=48iNN0a2De^>s#(}LisIhz<*L(*XK_+bbi!`~ z!PnFf>Wuk^+o5tT*dMa2ayYpPyurSg0gUbkNCE7#qgJfGWR#n7z;2-C0JQ&tX=mi*H5e8p}O z@D*Ppy$6cQ3x8SQD=#l}m6G(2({7$Ze?8MzR#uej_2{nBf{N*$;_|Wty;&lSg*7j`P!dkaE|_0p3+iZX?OC! z)8}*N&h*Gn^Y5fay8OBUw1E>tXv0AiMDbH?#=%cDoPP+SrnF!n2%g20pXvmW!axbn zxgfO|cWZDLf$iW?Jh_#`OedvL7pA*P^y!}IzS5a^sTm2nv$9vEkfHKRnjFa$Wu{W} z@84gK%`5ceO)H;S;?avlgtzOt){owNH!Uk`Y!)S3>MQq{DfQJ$JuY`+q9coni^>W; zZb|>=(#b9)Y5sTVW5$liNJ(?vs!#X1E6^XS?3(;XRTLNGm%1wcrGH9xvK9Gmzuve# z<(|B9U#V`g(#shK+o{done3Ueh)DLK=z5lCMo}3xA|W88^kQm=%Ud){R4ou0-bP3v zC!ieVQUi6jD^GMS-&N%GxcmCW(~DoGa4eS0vUgWZpFWfFC@XUncu1$%S1e%Sz(BgX zr_z&GVJ2K&=+W~liu25BI!yA2PEisc*Vo=F6MrDJSmuio86J$L*1d6JS&KimzMGovHWYT(}x(au=bRbPGB>G)1~l zndh56-Bm2{P1zs=vvJbPeg0fjimUkMa`G>)C@rRm3Mw4ZH2umv<$7_&^juG=?#uTV zxa1s2Q>1wn?TAGDt@wF`uHphuKvVoF6_HsHEs~V0sUTL^0`i*fs{D!kn&|OVmU~Kz zU0%Jcs6Zg!>naGQx6xk&P*Gfz=Q7I*ZT3L9m5!h1BC}aiS)N~26qO>_Km%9gwhFe9 zk1|iO8=?z}%E?e#T2lsN0u=O)3@6CGdSM%UjK+mm^l5J`T0(|o(5Z6pIP=bwb{Vhk9 zzhnb}gENwdP34iAl){TZ#lt1CYt$BTzz6^K6*UMnCyE!-CrE=sTKpzjg-K5!out$h zeL`lY6&D}!la5pr@@g;Dr}2-TRBFETb9zy++fzx#5rOp0+^l>f8tL^n6v6Zco+`#U8K4BlS`0LDRdYF@(!Y^>?8b zkZje#Yxt4nPx|E*7L}Nu*N7(>ntpzr4pdb-A)in8GKTP%TwYT-loysV81ga1$)`=9 z?(-Dq6{-}e@m8Z}w!~%4RN*H@t4J5#%gSAh7F>B$mojrCWa-4!ZyTjZ8|#n9IHXxL zb7T_qCMZf{9LY=c-&bMP=kaDf{x?ApC=s*mFRhRPk*mA{Nip`xPRhP}{IFimc&dt3OK|lnlkrMfS$>7rJ5$g14?0l{ zfBl52a{7F$AG_*ZQ1cO?%uxQ;G|(MO<0}one zpww4HtPDC(S4oMNArXU>0Y%eGydIeudaM?_T&4hlVW4DUjj4sQtg-3+dX-7OS=I>C zEkkMstxbc&+?kAv%%UW4Q~!#CE+m0II6UybNxy%*9vCg_g9hq!BIIS3fW(3r>G5Zh zeK4hr9>d5U_H-|QV>UejC=K_zy&(71N?~Q#6 zV^&L8R<{`u6vmosF#0Pknm*keTsQWv5NM6%C7r9s-LWz|U`8loF`3IF1PM0t>RH3j zrcokOGfCuU@+qOv&3v+DXyALmn&SI4Ay8NS)BdLMTVwg;GE{1^3S?U5fkt8}4pTo; z%zmB8eST3vMX5*nP4j)PO2&&`FaJ`9{3G&T%82}zxkV@n9kj(f%BCWUN?dM+@|EFA zxd~EKY)u7w3t-IU|a!k7gQDhQIJ5k{-F&PL< zN&|I<=}S{&=nH;-&4jElLM24XJkH`)N)~>bjhu8>xnF1mI^dS5n^aU_jP(X8N!TNbJeHx;y2rFyQYdQ(PO9;w9F_6%wl{G&T_ zhHQ33!G4S%{gY>_k81ME!`hHrDg$r&LA1yvL-niLn-W(!bQR;_|7Fc}Of8F0Ue64V zSHwnSF@{z0gZ#i^c`eDQ2VAHx+A1xJsSLbhmdb$n#~#?x`uW@6#wk_%vGhAU%QNXy z#wqm-PiCpFfc8osnR#bYbDA6HmrS0^xcS$r?WmYZVMR%QlcwwMyLI67US-$c=bWz0 z-y2XzB0ssFKaK^u&ZQj4||95y8{xfNe{uw_>`?O!illXo0u*z=< zC=0YsZmie-hU&*-Fms0gv;L;3K?ZU^nTA*we$HPk4ET$^d<=t0X#@h+>;Z1ii~%_C zQV~`M&P>3q2i`-v3jEe(c>&e;hw~f7#VXE%g~!!h!lsPRbke8F{6l_^&2^QT7I3;@ z=B9MSR+zELN#jQhGtH;wdoeeelX7bwgayk#NtXx_>48zNP;M^aSPL@JjQQJQ9ea{q zQc*6An^|8H7+B=_N|70zu+`Kve<&`XEg+~#2lFSBAV%8>QdVYH&M32NrrFk+-BvHA zQKK0zncYHPJ*}t!E0v5bNP+gyAEvKP#i!M=>KTjVVNn-d1~BFSw|%veQ|I#uE+E%H(8A8=94o$&P4A@c|(xs)O+@y9V_}5O;GclU8N?KMi zU1UcWAu~AU!ZWEvtgD%3TN-9-ImIttLNwB)kHwHZ@y=wjB=vk(o+scpUPLav1wR;i zj&ae=7JK{=$)YJ7rm~+4$Bdpf1GO-R|3VT=V^(U?nu}SdV{+lKHZs7Q z#0?}c-d|{H!#x{3;vvDPZ-25cOG#Sw_1zEVB~BIjHdOQ?yW2jpn2pNN-C zim1MUR7`(fH6~(B^ngW(ny%LM%om!EX}2@@tNuRJz41#bN1M#)(R``#6S(>r;yD2&VxZp z7-BgJck}Z1o5z3jUX~4h*5<6zi}jSoNpGfq(n~sxV@8wc|IM~y(igpA&P%zP_Fhwe zTr*f1XEx^_2kX6xVtW)=Dp-l4G z4$}*xsDD^Ty_B4CXYw}R(ibYJDch1#_8|CBV;WLxdk&}MMdtS3iwDO=fo2CQF&~H63^EP_|OkcyK6=hJ@__NIVB{ZbcI5)O@ zkb+ofd8}69YCnrFtM)Z-hiQdlo&5&hMwchXa-oCSu(XAk0rK;u2{%iQv5`#lf9WY@ zxQ@azGA69~j(Wp8bAN#Afob~9JqHaNruUfK15#yn8(UUV)O&J|9{PWjAo+5==fGdz ztPjApkT+m@IkC*S18JFkSd#%k4BYrzwIg77hzJmG4zdFF3F@(B@rcM~hlIOS_DVXXT zyGvd&jQ??N5_ZUs!a9F4q^a&w9uEX$b2pX+cJ9EfxrvLZ2~=5{C9}9ca`~%De;tXuj3D-LR6E`zgsi6!o! zg^%E{K~`qUA~-#3Stc1PZ35jFnPtPK2bE!j2?=$Ci1=z(`;G{4N7zq5Sg zT?7L-3<@Sgv@>iToN4h=T3XtlO|gVjadB~~81-ZVZ1y2dV@h+cj106)4}V!UwerZ= z-^Da-=eufuj-NFFld(oRgV+qb3sRpTJ!?uK5YC^J>0!N-#F`Rp3MWCV_t$ubMIlhv zeiWA%SHEla%A_wao;EiROLH!YYzf(v*m&8M%=?6Siy^7{oUAxSwn(PW@ zPacRH6qR9++ZyH4H8#)NtPjmI7v6-0CN`St{nhV8OhF+`}e``;kGG44+hPx{U2 zFDqv~;A-*t>2D%d=rY@wAVraPR(@t0{|#!J#s5i)v;A`?b8JUZ|48DEb|?+W{-A z?RhdUHCeT$rJ~yyUl=q7=jRVCGGqOzaW=r*&{XoDr9lrQ6eMwphKgG>G}CrVHrI-C zt-t{}`pfD^MHOJP?^R_MU_O;%OD`TvA0txzmt0=E68pPIwc=bW ztWal;^ef86`)YNu^d+bb5Pg9w!v0J(xh6NJDJv*Ft4>OKjV%Ww0{PwiomElgos@}A z=3^kVNfONqIlxbTNdfbA0y5}o42wMdc{Mf&lI}>t{&yKNX_5qfhN!?wv&fkp$7Mcx zO*u;vm`euxi~gFvVK()(W<4AE{fPfr1_s>nTi%O%6JZ0-8j07|rW`!;cuxEAV31q< z*;yz~3#ZpVF1HQaLAb#e0-J0=s#kcl6X*<-eMwLih}?xqM=? zt8T2Qv~9^@J-(!_^|6wx;aFVV0e|o6S zB`oq^^Y_|EvG1 zj5)?!;~`_7@mpiQ@jGLI@q1&T@dsm(@v!lT@u;!bSYkY8EHxfCo-mdfPa4aOr;HWG z)5bH#AB~m9pNwkbS!0#4+IY_RPvd#x&&C?#FUDHqzl;}*zZ&a|^~MI{MPsA!lJTY}b!G3o}@Rdu7?>#lmJ8&yx$OWmYy zRZ5K^eQ6W>s{zWX2C6u9s~V(kV@vHXRJb->51zN6l3asd?(RYQFlNTA+Tf7OFp}Me1Sohi$J)xGVC)ING zlv<&lR?nzEs+HJ{~OwOzfccBt3XPW8IlrQT4x)thRMdP}{n-cftiyK0|$PwiI+ z)Is&WI;1{Oht-GbBlWR5qCQba)iHHkeX35V8g)|Dsyg+Vs#l+LsQC+ZT79X`sDG%l z>YwVI`bvGRzES7Zx9WoWPBo~D>XQ0iT~Uz z4tEB8#D2{dQdU)1S1he4k?q#lmt|Fw0iBokY&99c!~w9T+>KG$Pg8`sl4NC{f+UjU zKg?@xZNrW!8*s7Mj^KQvjLD~Cku`f}mCW*lNfRc(ywai)7BeJShK;PJ`APDWsVq;x zB@`V(39+mo7ijZ~MB41v)Wi_yfVv*MqR$}60Sko*U4 z{U&eo5T@)vSLtX~c~O25yOT;eD?I}m14a$Yq}ZIZ(dG`@I5YdE{li4EJZ{wsU0$iJ z0VmR7_rhq%Xf)(g`H-U}s7w~fe0iKTH&=*C&1Bj3#ZokeGOv#<7-mgp zkB6mbrFFTS~eV7m9&g~el#1HqA@^A zg4B6AUtEmc*;hJEWxDdF$-Zw>DKIV4R7hgEQ)RatQKbAhOJNFI7J_ocSY1YeNuEh= zu)K(UeO9wIzI3`6r2MXwW+!;9DF?aBXZ1g zEUcZ!WbW!uC(;yLC0UY?R4}Vcof8s;VY4A@mSqurfxoGj^Cx86%zLK4Y4y%*R6aT- z*%T=|KHzh@h+mEXNoVzdECQhNrLH`>JYrn4;|p5CK-FY<8~KbkRaI6Cx$M9y*~W&1 zozNH~x~!r^7Kep)i!w72iO}TJeDKipzA>SE_HohiHjl+tG6cgh zp=)@`I#G$g2FRW>Ghkpd45f^$0_DjnHV5TRAs`!+EYM45SQS|6sGDm&RFJ!Z8x5%R z<_IA0+D%``PF&dr5!mjI=*gItbi6OW`~ftW5skV3Jt&O1#~o8{Vpi#=L z$j_%4Dl_}bpvH-|xXj$!PjxTx$%X(Z4e;pC0kLOaGn|OBDU4sW&13woeAJQCRX<9- ztgxco6hx!Ov7Mh*s+i#$CTIV_XE{EHY@7IzZCmD{g5a0_g8(YcM>F3jV9xVXMa}i+ zLOg;7l>xRWI*OIesaFj-*)SO7GoD7)qi4{*nF9wp7dJyS>W;rhl17F7D(pj&vz^FT z#!3@MWTa0tJ9)O6$z386SLAPblyTapq|issK^#w1yMP<|U zUsd=xHcD4#HfWMAv5MG@XIk~y(OgzSNk_nYyG;~KREyMyMkR;$Naz4{SzVyeqFxPrUH-sMVm68 zmq8xUPmx>zoA$ulX5Sdurcp1?eb1TFP)2)gVp1d9_Ixyawf*6ii(334?04Gy(BFp4 zll(-76M0UNVjC*N&xP$tI5`W@5NcDo6nb(S$HOfaHKsNpvaSB8eRWH0GK!h9Qj=TQ zum?yuJNZXFs;v(FUC4YJHX4N;f_z)DzQD$Q(!t-18=Rg=+fl-uZ*5cDTl%xK>4dYx z(7Eeu*dZir6lpphZLzwMJ~O?(ggF##Q^ze{o6BR8UrNLm8YdF=<<2&B$fPlv^kN=u zxw^%}O(`mq*DAs-prXzuPHG#w@JLD~zovgR{#tj|GOppT^KJ+Jv+=LycXFFZ@`-*l zY_;~g(D@<1#mh{ijvp~SY}kV&j7FHqM?+VK{7(FJ9*y!?gMWKozpTC_~`Q^q@;r;;#}AFyGMGV}bAyd}&t zggH-``kx82gD^)ckzaG#3j?$hRoZGfLNQ!Z;iEYLk_mD$F1!?+3(f~ox$x!S^Wa)= zGx!SlHnQxy5_m;Zt=e#6r9IdKya^(fHn`m_gc z0{eio!AHPnz-rBQOQEveG6Q@NoTu6PRw-Lw{QFje&uO-PyOgaT>GeATp3rRlOO>sE zCAbWHMzcB7l+8H-Bps(0oCPk>Yy;iOHgKwDi)*87aWP;|ko<>6E8EZ>U?0#4lJ8LX z82UK40)(HTETs;;q-?{KW*f!@#KWL(*gS9{xDPxEo&_&xw&7irZFo=c6nI{ z2jQ!%oO0SpIgwtUHk1c)>XQtP0^zsMW8h|R2jxS$x0Hh9bIWGRX94B23_JtEcfUQ9 z&mqc%^!w+4i$L_mnMrv}0iOfcQ4Z}X2M0*FIKmBeAn&eVDmWU1?xD~JrOFj$BDkbvBf&L+v1KXDDrF=rdrordpJ6vaTHWUflb^dhj%OSz28FYXi0i9|Y%u)!=g= z^l8wiodeHnDvatL76rzFeZdSc3v`2p;C65)`N4h*+FWkQRxNcFiwDtb$Af7gZLNI@ zh;WC|<_)9Gvm*~X@(6d(X2;OB(1o_14I-D;$fb21$eqb;Qk80x#y#M)W$kFo+UG0P zeyXOfBc1C=Cwd|y^~sv*fP6Y2pAN{S19IuKR;fu7{ky4}N+7)i(o5I}9)y47F${SO&!Nk6gYYpNK9bwh({|L< z$YMFU1;Wor__-5)?u4JT!`vl%L{p>Ct5N9HU6dQ`fEsg}lecFzm95lU zBmHiq-vj;Wf&Sc7iOSE`)GhFL3;gvRu2kP-P4$alM%D&|&VJD8{D>-XR8w*2UmW^( z>jmU=3HczmUm&+33zQnNNK?0?C%2;~!%rZGI{57Zzg^+CKm5jND!rpp>0RJ^BYbay z@9prtQ&Xdn!)W9%CJz1wYbv9UQW^aU=o#^p+^tek;^fDH7gM}b`c7f09q33$& zxgPiRxMN0B9+_Y%2;VW!fos4W;4aO)we$w~yCGJo8~TFqc>{djFcmCD&*8Hxe0E(3 zJ_1&Q&w+cuy_EAP$~l92u!wrFSW`W(FzXJ{)XisF|=!}K`SorTnIrgF) zW07+#a_+SN_afZ0a6gEi#GxmYOK;-$CVrnn>Wvq@!T%Qg``Xc)NRan^dEfUC_!0Uu z2>po%p|2nGk)7(VfnKl#tODnOFN2#kHDDemK^EXf-}<9(175+s1NUj%XL0YteGrTU zqrh|Ed9W+k13e8vPg~#~ikosCK)DQ{Tn4NHpU2;Ue+&pAPWX1hj}v|d)+sgc6#CsB z{qBf<$D`jvH8lu*7=%6yS_8hIslmxy^fVGT^bCTYL0!PEv=_+xHspQV0&o$y72HmE zd_?1mu%|d`3g}Xy_hONWG$5Zr?!td|6XNdvJl#O}O{s z-j90`?#19C@FUu_3AAgIK++vXy2GJoIP?rBJ^EpFM}$&$v;lj9u^@8313BMO4pxGX zfy+S3{SL}K=_IFT>uDGJ&@T1|yTm?Q4ZUVPzDwS}lgi9q{D&bP6fVm*)rjl;zd9XoKBkY_gh@@RkrCm+~ zcY|+(N5K=cTkw4+e5buYyS0J#DvkDPH0@P3?bSr&nuuIek*h+k8c6w!*+siWIvJ$H z_*pT2R%0)*Q}T+YGSP?3?I7~aM7~)Gv>(Iq*YLN~zPF%#j{qluQ$WfqoAR2Fq11#d z+CS>S-PD5#&^-aVCy@UH@}Ke?Hy5wLeFAr#rtWca!gdgN8a%71iEWr2w+AKQN0GET$fcwEiAo9K!dEa{mJO@Jmz0g02d?%6bB=mC<`Z=j57z@%aOd1SA z&m`!X1ih1>chY1q2b>BPgO%WHa6Y&Yd>mX(`pE5GBMF7e(kr z5%G(NzX(1T!RNzXr5-NfJ?RyZ-qdwUP2H%eX~=UL@|*@=)8Nay7|Y7znwmbG+oX~~ z;!P*s^lI=qa5wn2reIkW+d=p!hL2*x7ZbjidR0ulDn@^c(O=&prF@HVzm0nz?tQoq zYU)>0l=@Y!rb=((G-4mH4m_o)GUQc;yk_pgSd_;k1 z;ApTMtOTKdHuTRX{A|L{MsBl_+ppUz_3Mrxdi!hiwkk@gs%UT!7!QsFM``LI^!*|9 z{UP+^A%yl&HTWF39o(s@dGXwyJ5*EiNoPLkEa-s+=O#`4eza1*&(zeyQQQcap{YL* z?hk}p^t6`FLL}WKIw{K8_q8e+I19)D!Ue1bjZR4?L);Wqp)d)*mF@Wu&_dxhz92Pm=$W z@8{v;dHDFVQ>i}>0tx?T34fmV4Y;Fm zJ2bVX6e}0?=)V$_`mf=dS_`ffB%ih9^8#{z0lBXu+&aR&um|^E+{kAg@>#bN+zlQD zPoTH$(c6yTP%sgseypc{tSA0@;;)C__3*nMe%HhA`eon>a25DGNV%@3T-PJ#^~ibs zY49xdM5mtg1ksBP=*0%)y#aY|m$CkC=I!$dw54WO+TQ`E6G_{RxNTdZy9fE~K|Xudg6qKD;M762kZf6ffM+aR17CZbrAl)hW~Hi_Z#^A<`j4ay{25YP%c~cg8M<< zZ;|&$z~ksC@wO6gs~0Q*4}l+{w;FnD2YJ7Z_uCeLi!}A=Jf%Ke06qt<0nvv~(TAGh zO4TG2pK{zvIc_DNt>m)}xotykpFU2w<>1@kKEfma8sxtn`EN)5+X=UwaN92{_Nr>? zRl>hY_*XZB=;8KP@ZW*E9`|YL4SM$mdiTa8a0<8^d>cFo)>Chg=WgV=y9am^SPISn z9|0c&(Zk*7;qFV|73vN3`c3NfoB7~WkaB*La(ms`Q@=tDjFa2h>mfgVI4heG7w1u4%rD9_!|@aX`n zz#}dAb}=$-gIv9_&F6-hz*};Nz{i;C$$Tj=j*aw*)K)tHI~M{ooY@crcp=&z&R5$_!FzV3@$oz$z3s8>hHe=qs(r(BWS zJIL+5)3j4(X%BYO9=uJxCjHZ-|J5M)kEj12-Giiika9anxgA8G52DWpN#`Kx93=cf z!XH9E4xt~1Vn7|dtk{pOsSnzN9YOT;1N8KRLeNWlmq~k<4K4r|fyn7Faym@8AEw+t z)My9on)>KCH&36`)W_)0$LP<;=fMW}$Nvca$B@f0OJHg$^XEO510cV3%$ms}jIu5^W;I}=v27CeB1MWqB<;brRd=6ZL9MOkw(1&lH z2iHRHGtgU2`uLy5|J*s!JJ0)5ygvgUvGCCsOa;^6rziZxg4y6iummgzDgTcs{|^Tf zE&+THoC`wthtU0z9sfw&g!_e@gnFW`PsHQg8;C3+8L;#AtSqWP(S*6SU9N>l*6yN%%PlKeak~-4k34 zJ`P@{pHuW}ltVq`@R_F6XLb-h`V2j)hu?bm{bI0EUnFSi^Bko3*RIr-844JHQ6;GWyUTeTV}q!P%NR6U%Z-UoajV3L=*?$mPri@MZ7gL}dK==(hMeE~>$d`)?L(*`}Eetbi` zZ-{qZWA)q)!q0j5x$rzYI@W6HBKcn={|mctvmU2SVYQWYr?!#G);3DBb!bqw4#?+n zU!^WP!Si5)rhcG&f0&@zI2yw?0B{GmOS9Q<+i>5^`q#~@e+}%&dT1BW3C4q?z$}n; zx`B^tw!x{&HaJbQ4PqT|P5pF9H5WL@3*cHkxhZeq|fUy4<}Jl%dc*Ef@N8(==ONuCnDpXWj+y zl4f(WzUXFM)6Kf38-MpikbK;3un?R9LZ_Q`NB4a21XvGV0sg08#X8&> z*5S~L7U)H{mDuxFX{tN*raSef`)2SJ)^Vn=j+2XhpL)=fdeCblcKc1(`N5mP*ypg{ zufg7lK95+;`paV0U&!x?9PAcuO}*$)>ctpvA~;!78z(EZF-KD`;r|l;FH`Scrry1l zuheT(!MWgk=BMcOPV{=G7c2p(pgX^2KG>D{U=QYllT8KfV;uBLF7`0Ts|Y8&&a1foA!zN zSKk0$ragkL&!Ow{`QSp@A2;n!A@~Bg0YtuEAm8)wa~^)a)s*^{di$*o_5|00>%bFW z9rd;k^|rspIVh#RLk`~|zweOWcck|n={3w?m(?r~J{#b(;V5{5dY?$WPo*4>Q;sJo zN7|njv_IY8ryKlqC*SVm+k8t?_mcRA(z47d*5NIBy_0)O@&sPvWC%dTK23&Ea6_@#t@@g~Z-59kF;C~qg_ zJqXMIvncl%%3TL3ua_vVmkxr5!3*Fe%DS`{gm4Q^!fmLebB-9DTaPKl72f191bRf z=;g=g<;TeXW8`0BM{goQ=r_mqs{hWM1NA8~^_b-sg7s%ra2lK&&q@P9l6G(pn=`SMvw@H5=>F*}}w@Dv)#3GLu z;qOKGd+~8_Id~jAN&3ijBXWId9qDf*y(y%Zi@i1iJ#0g`QH0B2y<#it728>l2w^>< z1?#l?S*Jb3x@#)yu4&l$;V%*XW?#X69HObkllTJT6iq#rtkh#8!Ij`D^cq|WZa|(d zBF|T#^A+g)JNf;c{Qf>1Oa|wI^TEyFE6hX5cRTs+sKcIf3cYQC-bR3f!30gceMzae zub`*oyN`VLEd(DyPv@bh3qbVf0DAO3{Jal8@6Q4sWSo!u4Whka##ufrSLxkzLC>o z$Z2U0_`V7Bg4E-s==W0ed+8zYBlv>f9q>Dl^aqmuqtv%Ysc(;+BmQ|1{vLzBrF{wS z1gTd`AE#e{{wJV6>;mo9CF0{Ah&%BG=-9ye80n5A-MbX)U>bBG_a(@ENiLWVJ_A;h z9`$1>^<(LFa3|>!?+N0qME_Qze}B@jZ`;9QuoV56h<;24-C!Yhd-Qh^`nzBg_WrHl zNw6N=1?~aiV*z|jC!Oh}<3nCPCL}VO9MOTeA#<<8*2OVUMF~)U?q132lgixf$7&OLMY8lc{ zhPVu%Lku;jj4_Qd#u#IaF~%5!hM4{M$CIxw_dU;fex384d){+R7q?6_KAMe>A2zAG zEk4)J5&bmJ_4hn%##W!#`+PSx;UQG7Kd9HrIQ1Xzy;7?8N@+;{f6;$Y`-|2SAC*~G zti)@0GaOoAUADmb;-gsCap6#=^G=x^)_Lo#^EP59o(YHMTi?vLzA4BJLIv(Gu-+@M z-dkv0xNuoGwAH#~t94uEUhVheA#Bz@UHby}Tdx$%M(de^Z0)RX7FrK3EJW*3>B36SSUM7;*n>_p@tZ zmFpVp#{qx8;qSkMLrbhfmsl?@vHo1L2OIDpKE(;=>MES8t3>fA6^~Nu$kOwu-%{~g zx+MrLrFSWPOK*ikCC{~+qP_Lnl4RV3+pranqxIgBhuY83-sh!v(e=`0+VgK|J?_N; z9L0P1$olT6_1#H4hrP~I@^d*qE99+0-j=^Y{pL0WpQbm!=a7M zL1<%ZIJ6}%2yKy%|6FT5x*;6$-|mOLhz^Ig>2I6dJz$+DyXQRF1M`H-UxzUPlQ0+aksZHg$FDEr70&^mPxX1^kaJ?q&g&QtZy66M z>`P(aEc5iNMaa%s#^HwtJa3vjZ=yVJVw^jvbnaxWb0FGhXrEi*97Lt(!zJ$&J1>0D3Xe2?)S zZ@e!WcJ5##928*@t~S0`8{ez@aR5hf6mO$=th*Kj>u#Xyb*@|JX`!dZIBzk|8~NMF z-^MoV&@cP5*nhCyJa^pu++%+3MS2d?b0o%mGF|%t?T1mkTg1ENF+N51wz9WPeA>jP zEglmv71QYLr1y;XneIF6zQbvlfkjw?`ai7y!~8$Y|HI;XxEXKZ9q%vM-^%{hSd7C2 zOrk%V{<+>u?($x84?Ec3!v5AmpBIILkohfiG8|Ovzgqv*>ZSU&dAi>`J%IfCf`4D| z=L`OP@f=^8xA&U2_hT>i<1mik9lVE+@QHbyUA3>{%8wR)v~6O~7F0)V>gbz{AowO5 z>G_79W8!~I{Evy_F>yS06K{os4sq%br;Y+#ga`2mvb%%b-^K^Qw+Wbw`FH@E@HC#q zXE@<`M*ng8x4Yi%x^0vlWBOmC|MmD1UxkDAGeOXPPXFrom^wbzitQ*r9rDw`j}Crx zT*AxrZKH1o?!kR{0z0t_yHOmsi{oF%oCg>W2X*|Z<4+xZJL%i$^PN7g*KfUkxASv5 zKX+U(j0d$V)2y`&pFlXED~V`nj&3>sRoa?*sb(xBmZq7Q2w%f75#-;!zUK zA9dEP&bo`RgniT5H^aL5k#+MEdei95ux`F=-FyZ0e?|XSpIJ9g_@2j)Yy9Y@ubaN^ zZMcJ;5_-z`af2VfuzNkbH{vjku)CPurPk@Yt<(2nJ092HM*VGO*SI*}q>ugG?Em4Z z>*ucHT*u=mj#*!;=NAX?ARa;E>xJ?4;x67te!SoZw}Y2q=i#k4(yf!yJJ337PM>q} z7wqfov#-#9GOx*lS>yKn5G`49mkV+9(!;QFQNLHroN`# z$A`$DY5a+b3WBH@Ou!_}z-%nUBCNnl)L)eTqVyM~zbNsE5}&A(cp87iJ~VEkjGL(2 zco)@ilsbN6Y7o2;g)=b`_49^)-dKdiScz+~8n@wI+>g!Jil^}`_TdG*g4gga-pA+o zG8{znCz?OeiI|MpI2Vht6xZSg+=e@FKOVqVY{#?Mg%@xTui*{6j}P%BzVf?(7{3dc zj>(vcb1@G~ahZIHUqt-gG_SsCUVZZbHsNtRiMQ|$iqD(k6QizT)YV(sy`|k-b+`*} z;;nEH8wrBgXyi{Ue`0H}7R4o2Tz-=t1i#6|HMk!6^&5UopXz*l6y{(qZoo~b9;T~@ zw{x8*&qww5w)%U!8C&roK6bu5)%o%?EXS43lhgAKJ@4@A9e%yjj>qvnKC};#VjpBS zvSS82-aY9&|7qm!yZnv!_jrGgKY&fBPUF>Syg0;*!+R&3OYcPU*n8%&nF&EKQ(ew1 z#!`Ic9QqXJ(Z%6?ad>|{ZbbQeU;Ywe?L)_fgWuk8-u#zvkSK16;+E+CME57QVMjRl zAT9_#h{r`(jCb+AbLW-Lov+0PY{V|?w(rT_-?2COwtdgL_B|`?dsZTSzo##y#P@+R ze2y=DA7J+^cF$68v(($Hec0eUy11o^+lT7sL-q6FJ$&H%LaOfzX;_BkxC86)7T)na z;*jqV&FKC=xZm%i0>5Jm()g9eue6Q08JqABvOA64X;1K(^X|FMyXWHt9CXe-aLzr9 zb1@IKPuD*EIG)5&9CQACiu3PNQG+?^Yfd$8Lw?WU_na$u4JUBY_Z<2%=*!rQRpv*2 zW%A4S>LBy=^%#!hGn_CV%2$?rW$`nMpIPk9VsCbo`7Z{OFa_l$TVAqUXYw=goBPJrVUgPrvij$2|2hkA3slmn%QH@{=p>x#FI?1*@?E8?hJr zoqONs+U`r?9OL* zKK*{L7UZACvq*0~y$hx~4(;st9%+(<2LNXGpO!L)ZG$sULwv*DzMUdcm9>~&-x*- zehBQR1f^Z}{lsahI4v#1a;(SQ_#^f?7ay@*5RJK*kJ^`MUnYKK;#W3-lg`VhIWM1q z2k{8@Vn5!+`_9iNJ3pU_b+`+SH|w9^&yCK@tIKlsm9wv$zH<7kX9DY)V7WS7u1>9I zf{NLgjmC9_yjI9-#b&I+R%}P{uMqzg^0PvIR>;o^`B}l=75rWC$~pWg&g0L={hsH^1M_~4c|X^D|Hyp*#5~Tv_t=+^WL{1&&ptKJJ~xl@H<`bw`^<+8=A{zz zQki+D*t}C}KACPlnSr&D6XHe<1=T9n0%2QW~>MB_s^{Jx^ z>gAGpxvU=OFQflYdGcN$&)M=kSKQgXg59gui{nPWbC?YL-;I7Z&}ECO+w~LMT+hUD zzc?Nc$Bp8+8BgO`@oW&!M)5o&p6757FNrI?Gw6NyvbbLHycCak@pxYx62##H`S?IS zlKGj;&(sa#x=CD<#5F}+Q^a*P>fi5UgE_|89OEog{xan+Tis- zReU}bpZRg(8ZVAD;#iC4@Vt1=6wgEymjZG5Y==13i(?>;VR1A*ON>wZmO;r&aa4Du z>TYSLIGz#5W#U*Nj_&)D`bbf zO`dmP5B6H$wOZe`%X_oDx8g&5Z2dND{Wc>1?ec#d)zRDPC~m?!Y*Ib2ZwC9`rT1NW zV^7 zKZDja^6-0kNQtqYnXaD7)zeBG#WCxUH0zKI^)+36G3FzA{YYNZXQ;24xC{57xTK5A zoFesBf?e2ceL#N({h0;oZxNosbLuc%9cE$&o=}f{>hXf-v^eL8^W06IzgyI2j{3|+ z@tr5WpYBkn_4vwja*BGLs$Qeym%j`6ThOaM`#rbVv5*~w@y30E=M;PY$ll_oo=4Bs zZK=9lre4)=$?N)64<+iMv`O6_Li$SSTPkl$M2Ze@al#Nw^j_ zsOu@}dMc`qW$L3sy9(`AuxAB(R`GikzgO+SedSc@`rBHJrO3Xm?At1zTjjG_eyioTx*m7i|J!W;ugZI@RPV9U{9Zx) zyTt$dD8Da=LHYh(zQ5ms)hKV@%iH%i@E3Y3=&iKx8nN#hjdL;2e$IgXoMGqC_d18Z z-#K4-{z;yHa{bfmYjONZ9DjO_FTMBN<-O+~@8LIi55EZ;@gSbSPL#JHc^l&Q5Wk0R z;T`YeyS9?yKy+Dlb>% z<*IyLm9L(0e%#~-dwSW^D?YvA^V3XrCt@BJ;8ASD9_)4QSf2ajxli8u{n2!zEh@E)GJ`y_y*)ceRqvG*UJRaLminE^- zkLj3+MOcF7!(sE`a1GXq6Muf@&(HMyOwW}9@mYjbScChp0o$+x&tng={|fuZ#C=TM z$FAWG@zU<9c2}FR70+T94&o*J1#jbhd}yC8Y@aTIDL5N5FdNt4daT7dWao8uURMX# z)xmXfx-L%R>>X$CcquMJ^*OFS$F&>RZoD0jBRj|0Ier0!;U`w_VM>0Y4VnVt=Nv*|3mx!X!(kj zCvh4Sr$PM<>2FA$hU94|9Wzm$hU96e99P=EWA_VozYy;i;{9^EeY_c%fJx~7m+pVL z8LLpfUfRd2vCmag5()j!Y?4kgNe;;+`J^xsYOE!7WEa^(_K^nC7zuqDA<-n3#F2QC zK#~Z3U#1Yczohd^I=`g9=}9E?RhVe|m9}4L`<1p$&&ULsbnX94I;^k5`Z}zy!}>aW zFcSKDgbYMNf1~T`adM7m_q8@(Yuk)}izkJyM_sp(UjIH%ddTa4_mg2VMsAW@k(&d&oZ0KpM$Ga)cZu9pnV*BxlGua-Q^%elkFY$p{%GV`QA%B)7;Na*sS9 zkH{19j7*4IK*A(KqDd@?BMBslq>$Mpon(?6k{=1R(BDFT3;iwhx6t20e=8j=`ft%s zi+)=4)1sf2NuTMfRbQ?8YTZTlkbR_qG)6+Fv^}NIQ~Erm&r|w5rO#8bgiWX7NkSy_ z-FebU&X9A2uJ7pju8z?49bMlYB^~4-X(Rgi?g%+SddWDsN&3k!86{81J@SA&A|vD$ z86aci4(TD!BB8Em5>GNo3YksPNkC#r5($$Ci6aTxO_0e*=%V{Cy8oj4FKU00o{K)e zsLdd|2K6)efUs|nJwt`aj-h?TXG7W!X*ZNZa!Ed+Yp9CUk~*@B>>)Mut|yJ8htP9z mG7`GPhD+tdy_Zgq5%M4s`d5U|^{+BQ*S|W*0Aa^S0){ usleep(1 * 1000 * 1000); count--; @@ -6521,7 +6522,7 @@ int slsDetector::programFPGA(string fname){ std::cout << flush; } - + //sending program in parts of 2mb each while(filesize > 0){ unitprogramsize = maxprogramsize; //2mb @@ -6536,13 +6537,14 @@ int slsDetector::programFPGA(string fname){ controlSocket->ReceiveDataOnly(mess,sizeof(mess)); std::cout<< "Detector returned error: " << mess << std::endl; setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + //stops writing break; } filesize-=unitprogramsize; currentPointer+=unitprogramsize; //print progress - printf("Writing Program to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100)); + printf("Writing to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100)); std::cout << flush; } From 0979d0469302d9a8165471058fbc5a761ba77462 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 4 Oct 2016 07:35:52 +0200 Subject: [PATCH 024/128] works for deactivated server and receiver --- slsDetectorSoftware/commonFiles/error_defs.h | 4 +- .../commonFiles/sls_detector_funcs.h | 1 - slsDetectorSoftware/eigerDetectorServer/Beb.c | 115 ++-- slsDetectorSoftware/eigerDetectorServer/Beb.h | 1 - .../eigerDetectorServer/FebControl.c | 590 ++++-------------- .../eigerDetectorServer/FebControl.h | 3 +- ....0.14.0 => eigerDetectorServerv2.1.1.14.0} | Bin 277482 -> 273954 bytes .../slsDetectorFunctionList.c | 4 +- .../slsDetector/slsDetector.cpp | 37 +- 9 files changed, 223 insertions(+), 532 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.1.0.14.0 => eigerDetectorServerv2.1.1.14.0} (52%) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 89798faef..fbf80d73e 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -61,6 +61,7 @@ using namespace std; #define DETECTOR_NETWORK_PARAMETER 0x0000000000400000ULL #define RATE_CORRECTION_NOT_32BIT 0x0000000000800000ULL #define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000001000000ULL +#define RECEIVER_ACTIVATE 0x0000000002000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -198,7 +199,8 @@ public: if(slsErrorMask&RATE_CORRECTION_NO_TAU_PROVIDED) retval.append("Rate correction Deactivated. No default tau provided in file\n"); - + if(slsErrorMask&RECEIVER_ACTIVATE) + retval.append("Could not activate/deactivate receiver\n"); diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index 047f0c10b..c4fa4cb66 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -103,7 +103,6 @@ enum { F_SET_RATE_CORRECT, /** < set/reset rate correction tau */ F_GET_RATE_CORRECT, /** < get rate correction tau */ - F_ACTIVATE, /** < activate/deactivate readout */ F_SET_NETWORK_PARAMETER /**< set network parameters such as transmission delay, flow control */ /* Always append functions hereafter!!! */ diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index d1bbcb947..bdd47a461 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -46,6 +46,8 @@ short Beb_bit_mode; int BEB_MMAP_SIZE = 0x1000; + int Beb_activated = 1; + void BebInfo_BebInfo(struct BebInfo* bebInfo, unsigned int beb_num){ @@ -172,6 +174,10 @@ void Beb_GetModuleCopnfiguration(int* master, int* top){ /* do not work at the moment */ int Beb_SetMasterViaSoftware(){ + + if(!Beb_activated) + return 0; + //mapping new memory u_int32_t* csp0base=0; u_int32_t value = 0, ret = 1; @@ -200,6 +206,10 @@ int Beb_SetMasterViaSoftware(){ /* do not work at the moment */ int Beb_SetSlaveViaSoftware(){ + + if(!Beb_activated) + return 0; + //mapping new memory u_int32_t* csp0base=0; u_int32_t value = 0, ret = 1; @@ -268,11 +278,18 @@ int Beb_Activate(int enable){ if(fd > 0) Beb_close(fd,csp0base); + Beb_activated = ret; + return ret; } int Beb_SetNetworkParameter(enum detNetworkParameter mode, int val){ + + if(!Beb_activated) + return val; + + //mapping new memory u_int32_t* csp0base=0; u_int32_t valueread = 0; @@ -325,6 +342,10 @@ int Beb_SetNetworkParameter(enum detNetworkParameter mode, int val){ int Beb_ResetToHardwareSettings(){ + + if(!Beb_activated) + return 1; + //mapping new memory u_int32_t* csp0base=0; u_int32_t value = 0, ret = 1; @@ -396,6 +417,10 @@ u_int32_t Beb_GetFirmwareSoftwareAPIVersion(){ } void Beb_ResetFrameNumber(){ + + if(!Beb_activated) + return; + //mapping new memory to read master top module configuration u_int32_t* csp0base=0; //open file pointer @@ -446,7 +471,6 @@ int Beb_InitBebInfos(){//file name at some point bebInfoSize++; - //if(!Beb_ReadSetUpFromFile("/home/root/executables/setup_beb.txt")) return 0; /* //loop through file to fill vector. BebInfo* b = new BebInfo(26); @@ -477,52 +501,6 @@ int Beb_SetBebSrcHeaderInfos(unsigned int beb_number, int ten_gig, char* src_mac } -int Beb_ReadSetUpFromFile(char* file_name){ - char line[100]; - char str[100]; - - int i0,i1; - char mac0[50],mac1[50],ip0[50],ip1[0]; - FILE* fp = fopen(file_name, "r"); - if( fp == NULL ){ - perror("Error while opening the beb setup file.\n"); - return 0; - } - - printf("Setting up beb side of detector:\n"); - while ( fgets (line , 255 , fp) != NULL ){ - if(strlen(line)<=1) - continue; - sscanf (line, "%s", str); - if (str[0]=='#') - continue; - - if(!strcmp(str,"add_beb")){ - if( sscanf (line,"%s %d %d %s %s %s %s",str,&i0,&i1,mac0,ip0,mac1,ip1) < 7){ - printf("Error adding beb from %s.\n",file_name); - exit(0); - } - - printf ("Read: %s %d %d %s %s %s %s\n", str,i0,i1,mac0,ip0,mac1,ip1); - - if(Beb_GetBebInfoIndex(i0)){ - printf("Error adding beb from %s, beb number %d already added.\n",file_name,i0); - exit(0); - } - - struct BebInfo b0; - BebInfo_BebInfo(&b0,i0); - BebInfo_SetSerialAddress(&b0,i1); - BebInfo_SetHeaderInfo(&b0,0,mac0,ip0,42000+i0); - BebInfo_SetHeaderInfo(&b0,1,mac1,ip1,52000+i0); - beb_infos[bebInfoSize] = b0; - bebInfoSize++; - } - } - fclose(fp); - return 1; -} - int Beb_CheckSourceStuffBebInfo(){ @@ -552,6 +530,10 @@ unsigned int Beb_GetBebInfoIndex(unsigned int beb_numb){ int Beb_WriteTo(unsigned int index){ + + if(!Beb_activated) + return 1; + if(index>=bebInfoSize){ printf("WriteTo index error.\n"); return 0; @@ -575,35 +557,15 @@ void Beb_SwapDataFun(int little_endian, unsigned int n, unsigned int *d){ int Beb_SetByteOrder(){ -/* - Beb_send_data_raw[0] = 0x8fff0000; - if(Local_Write(ll_beb,4,Beb_send_data_raw)!=4) return 0; - - while((Local_Read(ll_beb,Beb_recv_buffer_size*4,Beb_recv_data_raw)/4)>0) printf("\t) Cleanning buffer ...\n"); - - if(bebInfoSize<2) return 0; - - Beb_send_ndata = 3; - Beb_send_data[0] = 0x000c0000; - Beb_send_data[1] = 0; - Beb_send_data[2] = 0; - Beb_WriteTo(0); - - //using little endian for data, big endian not fully tested, swap on 16 bit boundary. - Beb_send_ndata = 3; - Beb_send_data[0] = 0x000c0000; - Beb_send_data[1] = 1; - Beb_send_data[2] = 0; - Beb_SwapDataFun(0,2,&(Beb_send_data[1])); - Beb_WriteTo(0); - - printf("\tSetting Byte Order .............. ok\n"); -*/ return 1; } int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, char* dst_mac, char* dst_ip, unsigned int dst_port){ + + if(!Beb_activated) + return 1; + u_int32_t bram_phy_addr; u_int32_t* csp0base=0; /*u_int32_t* bram_ptr = NULL;*/ @@ -809,7 +771,9 @@ int Beb_SendMultiReadRequest(unsigned int beb_number, unsigned int left_right, i cprintf(GREEN, "Beb_send_data[1] Swapped:%X\n",Beb_send_data[1]); #endif - if(!Beb_WriteTo(i)) return 0; + if(Beb_activated){ + if(!Beb_WriteTo(i)) return 0; + } return 1; } @@ -828,6 +792,9 @@ int Beb_SetUpTransferParameters(short the_bit_mode){ int Beb_StopAcquisition() { + if(!Beb_activated) + return 1; + u_int32_t* csp0base=0; volatile u_int32_t valuel,valuer; //open file pointer @@ -854,6 +821,10 @@ int Beb_StopAcquisition() } int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_number, unsigned int nimages, int test_just_send_out_packets_no_wait){ + + if(!Beb_activated) + return 1; + if(dst_number>64) return 0; unsigned int header_size = 4; //4*64 bits diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.h b/slsDetectorSoftware/eigerDetectorServer/Beb.h index b11e11815..535b0e382 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.h +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.h @@ -41,7 +41,6 @@ struct BebInfo{ void Beb_ClearBebInfos(); int Beb_InitBebInfos(); - int Beb_ReadSetUpFromFile(char* file_name); int Beb_CheckSourceStuffBebInfo(); unsigned int Beb_GetBebInfoIndex(unsigned int beb_numb); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index a07d6b2fb..f88a2f990 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -65,6 +65,8 @@ int Feb_control_master = 0; unsigned int Feb_Control_rate_correction_table[1024]; double Feb_Control_rate_meas[16384]; +int Feb_Control_activated = 1; + void Module_Module(struct Module* mod,unsigned int number, unsigned int address_top){ unsigned int i; @@ -152,6 +154,10 @@ int Module_GetBottomDACValue(struct Module* mod,unsigned int i) +void Feb_Control_activate(int activate){ + Feb_Control_activated = activate; +} + int Feb_Control_IsBottomModule(){ if(Module_BottomAddressIsValid(&modules[Feb_Control_current_index])) return 1; @@ -186,40 +192,10 @@ int Feb_Control_Init(int master, int top, int module_num){ Feb_Control_module_number = (module_num & 0xFF); int serial = !top; - - /* - //for Gemmas modules: if master, serial 0, else 1 - int serial = 1; - if(master) - serial = 0; - switch(Feb_Control_module_number){ - case 34: serial = 0; break; //martin half - case 26: serial = 0; break; //leo - - case 31: serial = 0; break; //martin - case 32: serial = 1; break; - case 24: serial = 2; break; - case 25: serial = 3; break; - - case 15: serial = 0; break; //dhanya - case 16: serial = 1; break; - case 30: serial = 2; break; - case 38: serial = 3; break; - - case 49: serial = 0; break; // Gemma - case 48: serial = 1; break; // Gemma - }*/ printf("serial: %d\n",serial); Feb_Control_current_index = 1; - /*for(i=1;i0) - sprintf(str,"%s",str); /*sprintf(str,"mod%d::%s",module_num,str);*/ - if(!Feb_Control_SetDAC(str,f0,1)) - cprintf(RED,"Error in string: %s",str); - - } - } - fclose(fp); - printf("Done reading set up file\n"); - return 1; -} int Feb_Control_CheckSetup(int master){ @@ -675,12 +466,14 @@ int Feb_Control_SendIDelays(unsigned int dst_num, int chip_lr, unsigned int chan printf(", tracks 0x%x to: %d, %d clks and %d units.\n",channels,(((15-delay_data_valid_nclks)<<6)|ndelay_units),delay_data_valid_nclks,ndelay_units); - if(!Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG2, 1<<31 | delay_data_valid_nclks<<16 | ndelay_units,0,0) || //the 1<<31 time enables the setting of the data valid delays - !Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG3,set_left_delay_channels,0,0) || - !Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG4,set_right_delay_channels,0,0) || - !Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG_CTRL,CHIP_DATA_OUT_DELAY_SET,1,1)){ - cprintf(RED,"Warning: could not SetChipDataInputDelays(...).\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG2, 1<<31 | delay_data_valid_nclks<<16 | ndelay_units,0,0) || //the 1<<31 time enables the setting of the data valid delays + !Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG3,set_left_delay_channels,0,0) || + !Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG4,set_right_delay_channels,0,0) || + !Feb_Interface_WriteRegister(dst_num,CHIP_DATA_OUT_DELAY_REG_CTRL,CHIP_DATA_OUT_DELAY_SET,1,1)){ + cprintf(RED,"Warning: could not SetChipDataInputDelays(...).\n"); + return 0; + } } return 1; @@ -738,9 +531,11 @@ int Feb_Control_SendHighVoltage(unsigned int dst_num,float* value){ } unsigned int r = 0x20000000 | (b&0xff); - if(!Feb_Interface_WriteRegister(dst_num,0,r,0,0)){ - cprintf(RED,"Warning: trouble setting high voltage for dst_num %d.\n",dst_num); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegister(dst_num,0,r,0,0)){ + cprintf(RED,"Warning: trouble setting high voltage for dst_num %d.\n",dst_num); + return 0; + } } *value = Feb_Control_DACToVoltage(b,nsteps,vmin,vmax); @@ -752,43 +547,15 @@ int Feb_Control_SendHighVoltage(unsigned int dst_num,float* value){ int Feb_Control_DecodeDACString(char* dac_str, unsigned int* module_index, int* top, int* bottom, unsigned int* dac_ch){ char* local_s = dac_str; - //char temp[50]; *module_index = Feb_Control_current_index; - - /* - char* p1 = strstr(local_s,"mod");//size_t p1 = local_s.find("mod"); - char* p2 = strstr(local_s,"::");//size_t p2 =local_s.find("::"); - if(p1!=NULL&&p2!=NULL&&(p1+3)15){ cprintf(RED,"Warning invalid ch for SetDAC.\n"); return 0; @@ -918,9 +650,11 @@ int Feb_Control_SendDACValue(unsigned int dst_num, unsigned int ch, unsigned int unsigned int r = dac_ic<<30 | 3<<16 | dac_ch<<12 | *value; //3 write and power up - if(!Feb_Interface_WriteRegister(dst_num,0,r,1,0)){ - cprintf(RED,"Warning: trouble setting dac %d voltage.\n",ch); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegister(dst_num,0,r,1,0)){ + cprintf(RED,"Warning: trouble setting dac %d voltage.\n",ch); + return 0; + } } float voltage=Feb_Control_DACToVoltage(*value,4096,0,2048); @@ -929,14 +663,7 @@ int Feb_Control_SendDACValue(unsigned int dst_num, unsigned int ch, unsigned int return 1; } -/* -float GetDAC(string s){ - static unsigned int n; - if(!GetDACNumber(s,n)) return 0; - return dac[n]; -} - */ int Feb_Control_SetTrimbits(unsigned int module_num, unsigned int *trimbits){ printf("Setting Trimbits\n"); @@ -959,12 +686,15 @@ int Feb_Control_SetTrimbits(unsigned int module_num, unsigned int *trimbits){ for(l_r=0;l_r<2;l_r++){ // l_r loop //printf("\nl_r:%d\t\t",l_r); unsigned int disable_chip_mask = l_r ? DAQ_CS_BAR_LEFT : DAQ_CS_BAR_RIGHT; - if(!(Feb_Interface_WriteRegister(0xfff,DAQ_REG_STATIC_BITS,disable_chip_mask|DAQ_STATIC_BIT_PROGRAM|DAQ_STATIC_BIT_M8,0,0) - &&Feb_Control_SetCommandRegister(DAQ_SET_STATIC_BIT) - &&Feb_Control_StartDAQOnlyNWaitForFinish(5000))){ - printf("Could not select chips\n"); - return 0; + if(Feb_Control_activated){ + if(!(Feb_Interface_WriteRegister(0xfff,DAQ_REG_STATIC_BITS,disable_chip_mask|DAQ_STATIC_BIT_PROGRAM|DAQ_STATIC_BIT_M8,0,0) + &&Feb_Control_SetCommandRegister(DAQ_SET_STATIC_BIT) + &&Feb_Control_StartDAQOnlyNWaitForFinish(5000))){ + printf("Could not select chips\n"); + return 0; + } } + int row_set; for(row_set=0;row_set<16;row_set++){ //16 rows at a time //printf("row_set:%d\t\t",row_set); @@ -1020,22 +750,26 @@ int Feb_Control_SetTrimbits(unsigned int module_num, unsigned int *trimbits){ } //end row loop if(Module_TopAddressIsValid(&modules[1])){ - if(!Feb_Interface_WriteMemoryInLoops(Module_GetTopLeftAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_l)|| - !Feb_Interface_WriteMemoryInLoops(Module_GetTopRightAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_r)|| - //if(!Feb_Interface_WriteMemory(Module_GetTopLeftAddress(&modules[0]),0,0,1023,trimbits_to_load_r)|| - // !Feb_Interface_WriteMemory(Module_GetTopRightAddress(&modules[0]),0,0,1023,trimbits_to_load_l)|| - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - printf(" some errror!\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteMemoryInLoops(Module_GetTopLeftAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_l)|| + !Feb_Interface_WriteMemoryInLoops(Module_GetTopRightAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_r)|| + //if(!Feb_Interface_WriteMemory(Module_GetTopLeftAddress(&modules[0]),0,0,1023,trimbits_to_load_r)|| + // !Feb_Interface_WriteMemory(Module_GetTopRightAddress(&modules[0]),0,0,1023,trimbits_to_load_l)|| + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + printf(" some errror!\n"); + return 0; + } } }else{ - if(!Feb_Interface_WriteMemoryInLoops(Module_GetBottomLeftAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_l)|| - !Feb_Interface_WriteMemoryInLoops(Module_GetBottomRightAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_r)|| - //if(!Feb_Interface_WriteMemory(Module_GetTopLeftAddress(&modules[0]),0,0,1023,trimbits_to_load_r)|| - // !Feb_Interface_WriteMemory(Module_GetTopRightAddress(&modules[0]),0,0,1023,trimbits_to_load_l)|| - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - printf(" some errror!\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteMemoryInLoops(Module_GetBottomLeftAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_l)|| + !Feb_Interface_WriteMemoryInLoops(Module_GetBottomRightAddress(&modules[Feb_Control_current_index]),0,0,1024,trimbits_to_load_r)|| + //if(!Feb_Interface_WriteMemory(Module_GetTopLeftAddress(&modules[0]),0,0,1023,trimbits_to_load_r)|| + // !Feb_Interface_WriteMemory(Module_GetTopRightAddress(&modules[0]),0,0,1023,trimbits_to_load_l)|| + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + printf(" some errror!\n"); + return 0; + } } } @@ -1077,14 +811,20 @@ return Module_GetTopLeftAddress(&modules[1])|Module_GetTopRightAddress(&modules[ } int Feb_Control_SetCommandRegister(unsigned int cmd){ - return Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CHIP_CMDS,cmd,0,0); + if(Feb_Control_activated) + return Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CHIP_CMDS,cmd,0,0); + else + return 1; } int Feb_Control_GetDAQStatusRegister(unsigned int dst_address, unsigned int* ret_status){ - if(!Feb_Interface_ReadRegister(dst_address,DAQ_REG_STATUS,ret_status)){ - cprintf(RED,"Error: reading status register.\n"); - return 0; + //if deactivated, should be handled earlier and should not get into this function + if(Feb_Control_activated){ + if(!Feb_Interface_ReadRegister(dst_address,DAQ_REG_STATUS,ret_status)){ + cprintf(RED,"Error: reading status register.\n"); + return 0; + } } *ret_status = (0x02FF0000 & *ret_status) >> 16; @@ -1093,11 +833,12 @@ int Feb_Control_GetDAQStatusRegister(unsigned int dst_address, unsigned int* ret int Feb_Control_StartDAQOnlyNWaitForFinish(int sleep_time_us){ - if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,0,0,0)||!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,DAQ_CTRL_START,0,0)){ - cprintf(RED,"Warning: could not start.\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,0,0,0)||!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,DAQ_CTRL_START,0,0)){ + cprintf(RED,"Warning: could not start.\n"); + return 0; + } } - return Feb_Control_WaitForFinishedFlag(sleep_time_us); } @@ -1105,6 +846,10 @@ int Feb_Control_StartDAQOnlyNWaitForFinish(int sleep_time_us){ int Feb_Control_AcquisitionInProgress(){ unsigned int status_reg_r=0,status_reg_l=0; + //deactivated should return end of acquisition + if(!Feb_Control_activated) + return 0; + int ind = Feb_Control_current_index; if(Module_BottomAddressIsValid(&modules[ind])){ @@ -1132,6 +877,10 @@ int Feb_Control_AcquisitionInProgress(){ int Feb_Control_AcquisitionStartedBit(){ unsigned int status_reg_r=0,status_reg_l=0; + //deactivated should return acquisition started/ready + if(!Feb_Control_activated) + return 1; + int ind = Feb_Control_current_index; if(Module_BottomAddressIsValid(&modules[ind])){ @@ -1172,6 +921,11 @@ int Feb_Control_WaitForFinishedFlag(int sleep_time_us){ int Feb_Control_WaitForStartedFlag(int sleep_time_us, int prev_flag){ + + //deactivated dont wait (otherwise give a toggle value back) + if(!Feb_Control_activated) + return 1; + int value = prev_flag; while(value == prev_flag){ usleep(sleep_time_us); @@ -1186,10 +940,13 @@ int Feb_Control_WaitForStartedFlag(int sleep_time_us, int prev_flag){ } -int Feb_Control_Reset(){printf("Reset daq\n"); - if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,0,0,0) || !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,DAQ_CTRL_RESET,0,0) || !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,0,0,0)){ - cprintf(RED,"Warning: Could not reset daq, no response.\n"); - return 0; +int Feb_Control_Reset(){ + printf("Reset daq\n"); + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,0,0,0) || !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,DAQ_CTRL_RESET,0,0) || !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CTRL,0,0,0)){ + cprintf(RED,"Warning: Could not reset daq, no response.\n"); + return 0; + } } return Feb_Control_WaitForFinishedFlag(5000); @@ -1199,10 +956,12 @@ int Feb_Control_Reset(){printf("Reset daq\n"); int Feb_Control_SetStaticBits(){ - //program=1,m4=2,m8=4,test=8,rotest=16,cs_bar_left=32,cs_bar_right=64 - if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_STATIC_BITS,Feb_Control_staticBits,0,0) || !Feb_Control_SetCommandRegister(DAQ_SET_STATIC_BIT) || !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - cprintf(RED,"Warning: Could not set static bits\n"); - return 0; + if(Feb_Control_activated){ + //program=1,m4=2,m8=4,test=8,rotest=16,cs_bar_left=32,cs_bar_right=64 + if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_STATIC_BITS,Feb_Control_staticBits,0,0) || !Feb_Control_SetCommandRegister(DAQ_SET_STATIC_BIT) || !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + cprintf(RED,"Warning: Could not set static bits\n"); + return 0; + } } return 1; @@ -1447,13 +1206,7 @@ void Feb_Control_PrintAcquisitionSetup(){ } int Feb_Control_SendBitModeToBebServer(){ - /* - static int first_pass = 1; - static char buffer[1024]; - if(first_pass&&!Feb_Control_SetupSendToSocket("localhost",43212)) return 0; - else first_pass=0; - */ unsigned int just_bit_mode = (DAQ_STATIC_BIT_M4|DAQ_STATIC_BIT_M8) & Feb_Control_staticBits; unsigned int bit_mode = 16; //default if(just_bit_mode == DAQ_STATIC_BIT_M4) bit_mode = 4; @@ -1466,60 +1219,9 @@ int Feb_Control_SendBitModeToBebServer(){ return 0; } - /* - bzero(buffer,1024); - sprintf(buffer,"setbitmode %d",bit_mode); - - if(Feb_Control_WriteNRead(buffer,strlen(buffer),1024)<1||strncmp(buffer,"0",1)){ - cprintf(RED,"Error: sending bit mode ...\n"); - return 0; - } - */ return 1; } -/* -int Feb_Control_SetupSendToSocket(const char* ip_address_hostname, unsigned short int port){ - - struct hostent *server; - if((server = gethostbyname(ip_address_hostname)) == NULL){ //or look into getaddrinfo(3) - fprintf(stderr,"ERROR, no such host\n"); - return 0; - } - - //struct sockaddr_in serv_addr; - bzero((char *) &Feb_Control_serv_addr, sizeof(Feb_Control_serv_addr)); - Feb_Control_serv_addr.sin_family = AF_INET; - bcopy((char *)server->h_addr,(char *)&Feb_Control_serv_addr.sin_addr.s_addr,server->h_length); - Feb_Control_serv_addr.sin_port = htons(port); - - return 1; -} - -int Feb_Control_WriteNRead(char* message, int length, int max_length){ - - int sockfd = socket(AF_INET, SOCK_STREAM, 0); - if(sockfd <0){ - fprintf(stderr,"ERROR opening socket\n"); - return 0; - } - - if(connect(sockfd,(struct sockaddr *) &Feb_Control_serv_addr,sizeof(Feb_Control_serv_addr)) < 0){ - fprintf(stderr,"ERROR connecting\n"); - return 0; - } - - int n = write(sockfd,message,length); - if(n<0) cprintf(RED,"Error writing to socket"); - - length = read(sockfd,message,max_length); - if(length<0) cprintf(RED,"Error reading to socket"); - - close(sockfd); - - return length; -} - */ int Feb_Control_PrepareForAcquisition(){//return 1; static unsigned int reg_nums[20]; @@ -1567,30 +1269,13 @@ int Feb_Control_PrepareForAcquisition(){//return 1; reg_nums[5]=DAQ_REG_SUBFRAME_EXPOSURES; reg_vals[5]= Feb_Control_subframe_exposure_time_in_10nsec; //(1 means 10ns, 100 means 1000ns) // if(!Feb_Interface_WriteRegisters((Module_GetTopLeftAddress(&modules[1])|Module_GetTopRightAddress(&modules[1])),20,reg_nums,reg_vals,0,0)){ - if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),6,reg_nums,reg_vals,0,0)){ - printf("Trouble starting acquisition....\n");; - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),6,reg_nums,reg_vals,0,0)){ + printf("Trouble starting acquisition....\n");; + return 0; + } } - -/* - reg_nums[0]=DAQ_REG_NEXPOSURES; - reg_vals[0]=Feb_Control_nimages; - reg_nums[1]=DAQ_REG_EXPOSURE_TIMER; - reg_vals[1]=Feb_Control_ConvertTimeToRegister(Feb_Control_exposure_time_in_sec); - reg_nums[2]=DAQ_REG_EXPOSURE_REPEAT_TIMER; - reg_vals[2]=Feb_Control_ConvertTimeToRegister(Feb_Control_exposure_period_in_sec); - reg_nums[3]=DAQ_REG_CHIP_CMDS; - reg_vals[3]=(Feb_Control_acquireNReadoutMode|Feb_Control_triggerMode|Feb_Control_externalEnableMode|Feb_Control_subFrameMode); - reg_nums[4]=DAQ_REG_SUBFRAME_EXPOSURES; - reg_vals[4]= Feb_Control_subframe_exposure_time_in_10nsec; //(1 means 10ns, 100 means 1000ns) - // if(!Feb_Interface_WriteRegisters((Module_GetTopLeftAddress(&modules[1])|Module_GetTopRightAddress(&modules[1])),20,reg_nums,reg_vals,0,0)){ - if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),5,reg_nums,reg_vals,0,0)){ - printf("Trouble starting acquisition....\n");; - return 0; - } -*/ - return 1; } @@ -1611,22 +1296,13 @@ int Feb_Control_StartAcquisition(){ reg_nums[14]=DAQ_REG_CTRL; reg_vals[14]=ACQ_CTRL_START; - if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),15,reg_nums,reg_vals,0,0)){ - cprintf(RED,"Trouble starting acquisition....\n");; - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),15,reg_nums,reg_vals,0,0)){ + cprintf(RED,"Trouble starting acquisition....\n");; + return 0; + } } -/* - reg_nums[0]=DAQ_REG_CTRL; - reg_vals[0]=0; - reg_nums[1]=DAQ_REG_CTRL; - reg_vals[1]=ACQ_CTRL_START; - - if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),2,reg_nums,reg_vals,0,0)){ - printf("Trouble starting acquisition....\n");; - return 0; - } -*/ return 1; } @@ -1705,11 +1381,13 @@ int Feb_Control_PulsePixelNMove(int npulses, int inc_x_pos, int inc_y_pos){ c |= (inc_x_pos) ? DAQ_CLK_MAIN_CLK_TO_SELECT_NEXT_PIXEL : 0; c |= (inc_y_pos) ? DAQ_CLK_ROW_CLK_TO_SELECT_NEXT_ROW : 0; - if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_SEND_N_TESTPULSES,npulses,0,0) || - !Feb_Control_SetCommandRegister(c) || - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - cprintf(RED,"Warning: could not PulsePixelNMove(...).\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_SEND_N_TESTPULSES,npulses,0,0) || + !Feb_Control_SetCommandRegister(c) || + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + cprintf(RED,"Warning: could not PulsePixelNMove(...).\n"); + return 0; + } } return 1; @@ -1717,11 +1395,13 @@ int Feb_Control_PulsePixelNMove(int npulses, int inc_x_pos, int inc_y_pos){ /**new*/ int Feb_Control_Shift32InSerialIn(unsigned int value_to_shift_in){ - if(!Feb_Control_SetCommandRegister(DAQ_SERIALIN_SHIFT_IN_32) || - !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_SHIFT_IN_32,value_to_shift_in,0,0) || - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - cprintf(RED,"Warning: could not shift in 32.\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Control_SetCommandRegister(DAQ_SERIALIN_SHIFT_IN_32) || + !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_SHIFT_IN_32,value_to_shift_in,0,0) || + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + cprintf(RED,"Warning: could not shift in 32.\n"); + return 0; + } } return 1; } @@ -1741,11 +1421,13 @@ int Feb_Control_ClockRowClock(unsigned int ntimes){ ntimes=1023; } - if(!Feb_Control_SetCommandRegister(DAQ_CLK_ROW_CLK_NTIMES) || - !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CLK_ROW_CLK_NTIMES,ntimes,0,0) || - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - cprintf(RED,"Warning: could not clock row clock.\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Control_SetCommandRegister(DAQ_CLK_ROW_CLK_NTIMES) || + !Feb_Interface_WriteRegister(Feb_Control_AddressToAll(),DAQ_REG_CLK_ROW_CLK_NTIMES,ntimes,0,0) || + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + cprintf(RED,"Warning: could not clock row clock.\n"); + return 0; + } } return 1; @@ -1919,18 +1601,22 @@ int Feb_Control_SetRateCorrectionTable(unsigned int *table){ printf("daq reset completely\n"); if(Module_TopAddressIsValid(&modules[1])){ - if(!Feb_Interface_WriteMemoryInLoops(Module_GetTopLeftAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| - !Feb_Interface_WriteMemoryInLoops(Module_GetTopRightAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - cprintf(BG_RED,"Error in Top Writing to Memory ::Feb_Control_SetRateCorrectionTable\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteMemoryInLoops(Module_GetTopLeftAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| + !Feb_Interface_WriteMemoryInLoops(Module_GetTopRightAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + cprintf(BG_RED,"Error in Top Writing to Memory ::Feb_Control_SetRateCorrectionTable\n"); + return 0; + } } }else{ - if(!Feb_Interface_WriteMemoryInLoops(Module_GetBottomLeftAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| - !Feb_Interface_WriteMemoryInLoops(Module_GetBottomRightAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| - !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ - cprintf(BG_RED,"Error in Bottom Writing to Memory ::Feb_Control_SetRateCorrectionTable\n"); - return 0; + if(Feb_Control_activated){ + if(!Feb_Interface_WriteMemoryInLoops(Module_GetBottomLeftAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| + !Feb_Interface_WriteMemoryInLoops(Module_GetBottomRightAddress(&modules[Feb_Control_current_index]),1,0,1024,Feb_Control_rate_correction_table)|| + !Feb_Control_StartDAQOnlyNWaitForFinish(5000)){ + cprintf(BG_RED,"Error in Bottom Writing to Memory ::Feb_Control_SetRateCorrectionTable\n"); + return 0; + } } } return 1; diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.h b/slsDetectorSoftware/eigerDetectorServer/FebControl.h index cb87558ad..453cdce14 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.h @@ -64,6 +64,7 @@ int Module_GetBottomDACValue(struct Module* mod,unsigned int i); +void Feb_Control_activate(int activate); int Feb_Control_IsBottomModule(); int Feb_Control_GetModuleNumber(); @@ -112,8 +113,6 @@ int Feb_Control_GetModuleNumber(); void Feb_Control_FebControl(); int Feb_Control_Init(int master, int top, int module_num); - int Feb_Control_ReadSetUpFileToAddModules(char* file_name); - int Feb_Control_ReadSetUpFile(unsigned int module_num, char* file_name); int Feb_Control_CheckSetup(); unsigned int Feb_Control_GetNModules(); diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.1.14.0 similarity index 52% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.1.14.0 index 2060a26d530118f4b6ffac9926d498b52b516cda..622ab39cb3b2896557c0fde24804be886085210b 100755 GIT binary patch delta 56629 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 T`7%SVP4k`fg$~d3nTY=flH0um delta 60970 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

tZXU0GfzMsRwKw1q z$6RE2jn54U*agfPc(NGJ3C6+6(g^v}hqkYzqT&*@AoF$$@G)_ao!u z+(H*or%DbFJSQ?UgqVc&ZT{Qaf4W)xwif(;_nmqAnwh6B<~GOO*BJaC%8SRDcRO#K zcket=2EEUAo-LoyFAL)n&UYA} zy2s0tl_9!|JZZ{(y6e9fPxj9Z;j=tE*?)FO-Ty!Gq|Xnc+z0%C9RJ?yH+kyYxS`Pc z&|?#)8{eVeHYZqL){+P@2Yx3Ja*c6WThE-Bm2;fOZG^eow9iKuH$Dn{6V1j*0a*QkXRc>*p6$LSp4C>&k73`ToV&wbY2?aE z?!|t^o50Tr?g3yM9fNG|M_C2uv)|oAt#ccyTjmEbKGsTas5AWzkVuD`+WU1j1$j}JpB}k=aD?^ zLvjb(>t!xMYubkyo8Mdq`@nBVVO`@}+y`3jM3=q+-oiH=mu|NFgS^^qqYIEv+IIx= zYjgQ-J}fsE@A?p)vmSuSeA-$k+H;2C6TsB-&pxo0&YUH4!W+pizzutdRV=2R6UuiMdYtwV*(A8U>y`a=t?%b)i{P_Ly z4RdZ!zJJYmL*0sWv$a>yVZagdR$CapnT_n1a|^s(-t*fa7w3SkH8>;Brq?>nmHc-Q zydQ7P{L;JUVho-1%QfD4GHsV}y=n|vhz%LsBKfyo)8=FkoW*0b-RY^9^jrJ!9;Ck9667k<+x}lyi5czcI#nWS^%$GtMLT z9H&1SOJJO|QHAio#7qXSN-fJv42=$Nm2qUxpt zR8LursrO+SqwwJ22L+aA-WW$1US&Q>|L!MZ4}-6v@qdaPaCO18owhFKzY_P^^K5n; zmM<*)9J$KX2d+-{tnn~5!Z=Fkk6>RTe-ln=e?Xnhu^70np7G0TkMRRH;5>H<=XO?O z9e6E#+;wIRX))k;Bkt@OdQSD?`;2{tm$Nj%9=3AyznFXBS~I`9%tPP%NTXV{#M+6) zPPFSX(uJ~saZBt@J=v6iFW0qaZMs>Nol%YNS>o(iQxav@?O9uawNB=A2d2W;fp3WZ z9sgN`#niW19|L{beWLYsiA;v?%$m{$d1rhgzO&EpC+p1|^ScUh;71;|IR?&Ox8c(` z#u|fNTnt+Gv}XPt=N91#x^=zpds{Ov;(P}3)1Edd(6Kf1ACI#PzWx)WR~kBbAc1cs zL2h*UE6Y4|+^x%gA$HQ>u?e_GFGwwU!PGyM-vToCora$Q|CLt=XK>X|`v&jCw{suC zxlZ_tPV|~bymV?J{i_YF&DnSC_lxJ!`kED%X7nrT625bN_0Z+@8i$wnc<^5*xQ<+3 zYuP!;GW0pwgWFnzTep7q^ZhRE^cd{9e0`qm>YK-j zThmy$fq(3t^`WdkkpGNvUK`7?)F!Xr;Y6=)GIFZp03B1&@3(tPVRzLW^cxHF`|0pIa2D~OU(3!>?jADczTs0| ze_wu>{}BHc zY9?%DPKa_v-D9)f#V6uz|}^at;G_m0%py8CW|d5RpHXK<(e z5uXaM`iNH;A4C6EXZZ;Ggi$X$-Z9#U&NO;9r;XuvuUy%Vdq2=H1(OGJ98~C1HM?2>Yzge)`%wG(4mihd+_8We6n#BozQ9^i5E!|6eAPaG{ zKh3o7vGZ>Fi_F+uRD%0ZIfi}q%ztG581>}aUxeAFCcVkI?>D&`yZ?vZlYs5UKC21h zZyNr1nJ~?LO+NS-Lj`D`XwCd=3TXYLp#gQUC$KWqQ2zMBy1R}LhL`e+xx zTM7DfunQ$PcU0*_KkGTCn9bXcvVB`=>P%^yDC)zPmlSOu?0l5%P0SAa_}_2!@Jo-W zBX-+U$7}azn>xj?FY^5)#QubHnFkK-Kl_R_jv&Z{pRMx)|2=CPK~GDgwH&__z2YwN zfuVhFzBwNs_;Y^peG{%(gBQw?JBZWA2QJ*xh@AJsr)F^s`1ru5)>9XIQosFrw(jPf zGbPriWSneZe@}8}Jm1f;>;Aqcb|agkQ4cL4OsNAtus*1xesC|#-FgqVOFhy>9eK%~ zSGDI}vfrjs|GYBz&QbsQgtXOr6zw{--4;HbyNk9EiK9q}d2c#$vB>&mG2h=07_%8pmVy-#eo!Pm_rjfJl#KjpEP)*qzb zBQ_}qWVUz34^ZqA~yK?Z0>^DVhe#HGAe!G1CG>5;#&nCJy#IHMK z|Dd6T=zaRUY3$3zIEr{KHGS=kcV_R;y>W-VPn~q*u7(Bp{iTqzugFgdZyP>n5t@wN zPz##K-bCbHWPQU?zlc~_me?KZtOJ)^4!ziRvz}YU+ymAKCr)3a5;9+aCEqqom1Olk zV>0Sp#&Y}(Y3602Q+Mtm9Ssh~ufCy|^n$!0)@iFYeYB-94jC86-ety%v*YP1GhX?I z){VP@-|oUVAF)0PX~l060cNfq&z0d(lMkMW9B`w_0sHoHLXR^C!5nFcjM?Ot%-W`R zk7uGGfj*IMHD?|w1J4yYj!`Ns{%OrT(`o4hUm%V?3D53Zrfn)m8DVD2@Lc749u#{} zg_v!wg$4PP+mhr zg6FVXGjHDN!O7^1=mCs@zjMd6x>}<<+Rz?nWxo64px&t;iP4^`#)B8D*38kB9(b0o zo;7?`<3#5^p~n~P25iLY@1b8Nw5Urgm-s!a&!TgU{g1Ywu37VlkluN8!w>h_zD-P) zr{2Gv*MFVlyBYt>HvzJFF;#q(h2hbm^qs5@r9Sk*9q5v8q%%k3gVmb(Uvt49i#T4R zOB+$gw|8KSwp?o}M5i*Ijq5oYlQ!aun7MozZG2;J_3sa#%1@i38M(AkcM_I?dm^-H z7(Z>Ek?+D4kc(iR$LgDWGUV$1kbDy4hrexB4n7e(4w)*+m7(8x<=Xmz)Xmnfr*8Mp zyFUL>W_i6e^R)0TXi{_hy3gFsc}O?oOpQJxV$aY2ANJk{I?C$Y7vAqAzy#7`dT-hj zHR?-=nm{T;#rsV(z@(xb{%Av;oP(eCc4!h!_+Je*^t{7NBx+D>;Yho*7cdgAw6$l^ zd+1&IEw$KEN-N%ve#d(C6l;2m1u9*K_Gk+dGT-m_?7e5+naqS>d(OSzTAyoS=6(0x z&wlo^pZ)yX&)zTBNk*P=&4p7~oBddu`?xm$cpcmEJ#5+UWn{CFjXqjsE@tSNjfHb>DWm6ZdCtevly}uVb4KJQ$efJiH~(1ETiGY!f@g}+FDtKmRH)$n zgimJ9NimLz`_ipXbni}?x4^>9><6|U=i0TpD^@m+cfYtkJ;(MFOst#v74%=_EGEZ@ z_~JUqq;mX*Pk1VTzpx|XS0(D8{|y}4Aqnvl<=i8ETYLU#k6G`2+k$?dqiu_){PvB} z0rws@G)EkEfqZ8GIC=iQSf0zT|M~#@494iO$JkYhy4BFpnR!fpQ_fHc4c7kz_6_Pr z)zMcnHWT(6Varq}cfCX3xGMQ$eB&UnU=iprQYIAL=Xz_8wng07W5042YFoq&Z+g;g zBwnF-R~RrQuDt0AHx$OdRMHLWc=8ePX-F&R664!;E!6WkU-mzustjxK!+sqs;|-~< zjiw&gfzcmjqyf*in)6$kxI~1yy1@J_C(YtG!y1lXl!gshlI!O``5nvq(3kbd8v>t{ zz2|#}Z|?A3(1~a4JB*{sjC*f1F#off7lV5Zj@T;*M$xC}1Jn)So5Z&Qruc4#4pC{Z zx(?~_&3nnfSdF^i>#{YzzAVjb-LIOub4`EnH^-eqfAU>;(7-kC!3X20vk{9d9gn|| zFHXStEjWizg_w1K`~Nlhb@+aU8z7zi^=NBWx=LMvHuXJoWS;@|RRrYRKlB6gz2%;8 zZTA^lw|KpZ9Q)8;4>AVl*YGWiF~A&IHy5s<1>zQ^Tge-t_;(L4NWbE<0|Fs`-#tnB zeo{U29(X4K!v_gLqpe(M?;-*|14bU#y{IK_4x3Z@G*MO zkB=XhTs$iBX;S;=)1=}9(&Peh88c0QkD&=-`wPcL7eB9jzaMRC67!myN&iG$bMve^ zeBZNfT$;4}U&AvOfYX@il)0ORYb3+VW8)pcr}i&LqrU_XT>wsFrcsucQdi`Ds|0#s zLS)<7INtm3JfXjbyFTBi&*Z-=hBh_qqW8t-)H3bhPpr;>9vd8~2OY*`%-zhz&O01D zVf@+*ZJTXJzKKbzJu<3 z7k$9KScCh%KKY*3d(Ogxf-+G?^v=_fKelUOIy%X8?$J1F_3?MfT@u)dsli7J*NPUx= zqt}G{NXsS@5856LNw>L3T%}O%NL05O@jZi6nKLZDyKBtcg`$C`1|Oc1e}eH_A5mzn zdHBFNOCQ=|Y@^@*_#=#m`ksYvlKbexX&=h8ugk4>U>@PIp2a&e){*hHf__~V?@TPQ z9(T-q*wPPcgn1smnBrF@c4B-DYhxGl-3s=Z=Sx~YgZX?x^fv+h!N&aijNJ-a8XIv< zv$iMae8KP&Z8q8KpdZtv0_j*;FMXs!`yUsCV*$D#m-3w0$ixA7@=T7z#I!%O{&zuvyJ^Lu{^})OB?K5G{APt%x|ubJc7=~E)*VwJv+j$ z%krnQH#^n==IsT!{w{M1ofq3b%i<0GeP)z;Ym6)^&&EE^y=U9{#@w&xbC&o&@OL?% zMf(2X?+wffAIztGF!y5|$Xi%*+`zoW@W`v9z$`0(=Pf>%hVQ-@(l8t4{vYsusyNIa zJTMZ^A>kX!-t5@FC~^2`pwaGs(&s1#+zR^R%nf49pKU;E&ZG73ZT#Uc%?p6<>=`>R z{9uNq)9AeL1G|UiD`@&wKzr zC>S@xe$CIhuL~Zo0^U`cuNzL_{R@20v1mR`AGNi z&)!!Gd+dv+qJf6?d>lcC{srkji5w%{M(ThsXZQtm@m;4siOp*3Huk4{I^fG6v3!8K z&=-FapWW8Y)h&+}STA23(sLJXH*&6maUAURlo2k=pf4(l=!-(*&X4r{F`;e7&L#h7+)n$~s98_<&D7)gKem~1`1z_B{v-4q`GRY+F=0A4C%gi36_{swv;7!InGv%?e3175y;+bRL+Q`2T zppf0!0eK&`b2gT<@CHwOBQE<5qaJhCnd8S<&bbL!g@Jd#kCzW;+#jxf;451V`Co6~ z2FC!m)Yn$~6MBEP09++H7;=T*-`4&OZTWnB>*RZj_AK-HV2Ta~O!tGrY%6n>Zwwf} zxqn&R=iAG;ZXD`BCfxT-G;kf`%9JgZckP}h_B>|3>7Vmr>khnD&iJzQYw4v_uTQ?a zfFJdhlQ*9CmGfH{wRz=V@|9C=at&2n2tWDYHOIU5T6cs1u#GP?Sg*zx?OiP8o2iNXeasKstahZnor4GPi zUJd!&&_~|2d{FvWe{Yt1EWM--xnLTfi(TV-S48Vl?&t_Q@1L=ZX@bGfVwf#tHA}+<>EvdX`4s=-Nr19LT5ByfA>1t^Sdgd zD?F3G4|pATXZOkdJiolHtW>ct+mD9hA&)b34(&J}R+lV~l{tL{>Ncb9&;Fb_u=rwZ zTYUX>wc#E{Uw>WrjkV($e>60%$e7SBFtT0TdmMOj{V(+QfieAbL?3Yv`%BX~ewSsw zdC)k-J@EDPvB=ee>(Y)Fd_edd)5+{yPX9P)NgfZg@18jsyCKE8Gu(vmj@G3EDeDtN z1J}GahB+vt<5L$RkL{WXse#4Bt><&uma6b*~dTf0caMX{FnW+4XX6AX=-A1IpzZUg$>AgNYqC@npoKM8ozPCdUnhO zXnMYJ#YY)epBY!Y@VM${eSmSr$H)s=Kd(o*$a%mwe-ys?gZ(~pMh;QmP z_Rqd4zH9B58~6RsQ2fBg>!a%1nQ!@6IzRd|e)JM;dx=*i=_~Hf@DKC3ZQI8F z8?TM;`Vaqiw_1~!$^;iDacp&E1Wm= z$5xFm`P+=onU(MBq%Zj8e}%EzIEBn(D86nX-fi}+fnvU8AshlY-zofN>}-R>i2}JF z>%@1625MhHU(_$F$p;~|PI7yITL5L>#kg?p`S^+qT{AxNi7(i97?<%g*6kw=(Qd7Q zY2GJG`5rJ~-`0M13}eg67hj$~V_pXSyzK9**BGA~=bw``GRJ{hp?N0HKXCO4&Ev_) zg7m*$NxXe!!v8beMi7KmD`3wwpE0lAC6Ys^6~eH1(c0 z^@_;8tD7Kev;O}W_C^5L+GF&;Jn}N=%WotxMn)TtwmHwZ%QxmQ&)mc0d-~*jA7ov; z*LFk^U(dh`dYSJW-t_U2^PfDa=jSRr|Nal-PO2=kx7fTO{Xf5F#{{`GUSRcqPq1OoA2OX8+!BOn-to@f~_j&FlIrm1K_4o!BQvQc~Ve>o*y;F`j zbsYI*z1Ix4wAaq`9+=kM@*w^qzYa80Eer7e>e`u!yKm@jiPp{}?Lp^@_%Eh@H9Lm; z274xBohx-XG1*xec4QthWso(L#Wpv;z6Uu3DNGsEz;^3Nga`DE0xOXIMkpL#0a&l(vs z+|h6P$@j^!^Wd|+L1+0cgQWw;pwG5$)q5?Z9q3eza(j z!ihRt|MJzIa<=5=U0m^|h1;}M&h4;|G;)&(N9V3@6}s~`&x6p00iX87G@o9vjrbu3 z-E8pm$&Z0d43xT+@M4%A!_%r~j)Gq$xt{rLBrb|Jv_suO^_dTgyAsaf{)XS-_rwM1 zU%sLDD&FEb@SO2`WvUr0Ie~oB;L1HpA@Ub&BiQTCD?WK;$7W(Emz(@o)diSVpV6Km zUt0d8{aBW#vFdC&2zY@)UI&U{ujQ#2E7Sm+m=X zY0KCpZP5kkH$~qXyo^2m%j;~ttQ_n)r1|SIW2fZE!R$IckL_glm-1vZ@|hi+xj3@R z_6z*xE=d1E>{<59vE=5@+;f?)uEG1wgngIA`+kY#L<7~LrwlFad=|6$M#yjQG;H%D z<1BpOXZtL(?|gmMYg$!*n7o%>r?p7i(oEsM^g#cIrxa{{Qkv+tz*rXe%GAQ z*D^NOMgUD!3N&0~@zXT@XQ5GHnywZ(oXZPG>TG-8`1b4ZT{@${_=?fApiJf3!rCpz z8o=FUnZ0MqP_AjL6WST~zZ(r)dKu`bwUWKqwlv+o<_VIyc7-m^#<@xjjq!hAPgYV(BX__L6`r-?=!JJ=w}c1 zk*p*24{umn+Bv3d2hPylUt3e4OmGDaf0ADo4SaNkeK+Dnn#HL>*;g(JaS0*v&RQXw!o>oHMcAdRwz`NVPSqV@JkC z#Xp&m-;Zyfz~7I>jW`>bQ_(X=?6$bJqldQ|n$yQp4H1lGj!J=lduO?GPU&YC&u%aB zeN#9?&}-?Py#r(82zp1=Gh%}wUNbv(`Rb3MPqfwFz2+W;%r}o_ zJy$^n$er(U7lHbE#_T*NX}RZ z{d|0s2jA_UC?d=X<{z@4F0dbbvROH}-#jQ1kH< zS>70-ADr6UHW9fqII14c*t_}s6xr_ZUfNppQ4gA)(tY%8@Zlos0d+#CGZXT+1M+t{ z_7B^Ab!3g8P8f9>QD-&kbfHd@ua2x6)RFOI;e7ovTL)zkw4a;Vt5JP^eJktC*WUE; zL}va`7DfAo+4c{;WMPBWvM#YEf^mhU1^97h&MOi7jLADg2jCU~{&S=1i5}ZN@t<$& zPRv@+jXo?LLZ~wnbv|qBjGXHy%WN6?@5Y>Zc8usFjP~%UpU8~AKp#=mS%~>NW8sYK zWBV>!X4e~FccYybRbN?T%QEZAzvdwmC}(9YXUA^)e89FXfS1Aj@g=rS0lYqB%SPh$ z<>zeKNW8QRDK3k0(AsF}3hWT1gF}n%25^aDHa?me} z{4le6=Bpphz#JjFo!y0CW@KxgosloM&Dze>6Q_;YrGQ>Er z-UD_YtBYkb)C2XHm!LNRw)&?;C(vh?xH;{4mf=~KU!8d_XZ_R!+~ZK-9;#?y;!Wra zd+0xPENy{HHTuJzv^}3caWcmVyW*tA@qswnN&dS&clMQAY+KlSM^VSb@@)*yoEs55 zik+4G$_m0DEg5UjGEZ{i#)k$u_n$BG_0f^-qbNMVsW`kPSsyeL^ZMyWY#*S(kc?G5 zAUH(>WtV9hD6y?HP3`#9;W6MN@v2eq$;6{TLp{FH=`~|?dd1(cV*xx9)BB0onTFpu z$MAO_5Pvrs2o{Qe7K?f1#9z$5&FYv^pVVt%L@wBsb@wcZwx_Xvd zF}|U0?_#mVjSrnFLxL#$LDZu@KTo}q9WnJ7>$*L2tD_o7<(x58}{U3@=4yFTA{J= zo0^PQ%f1ZwgmWhM?!{EdyGhB5&{#H=$ z>in3}2h98J_*?0FFLy-uz|J(dyb4_Bn!1eZ`e8`i7qFM-!Kh>Xo-B;RK7J^=C*t3? zWP2?atbQDw#=iQJvozK@F*M?yA9)M;ff6^>dQkN8=>1AOHA`y?XS)y1@*?wCkVgzY zjHTG|ll}tN&_iN{g~n%OQjMREjnw<@gL?%Y)(Y05%FcCQgDKzdD=+nxGyjS0UpMp# z`pRxGWhYJ9a$ngDUG`9hr_t|WU-^ekxr~!^&z3pwnX*~~ce}6b4O7Orn5-4Rebra~ z+$b`8gbo3$((L*kct$^$nmm_*Eqpe*X$x?4M0PXY5pX1i!!oI(^~_FR{he47rM|M= z{O#*&uYS(-wa3?XPhMY_iJs2wYm=}3ro6uTP&R&syMHnMLe4+b=KJ2z)Z9IF^##PW zGd3~wMLBFaCmK+{m$vbTa3(;#z_klK!#yLhAE8fPXCEQ8zn40P{Ef4d+*9Vdv3vZM zcBlisLz%>8x25-?kBLzy{QzK)CbIwY-Dv}on@~ho6q0#zmnYy>XXz?>pvwOY+(j=V z@34Y+Hl}_CJM^liO-Wzw*H%?!XtjxTfE(zdHUhS^fj!xaHfJ~wphLN#&0f@d%CwU` zVDT56^mS+lxjw<3ttO8X$4vg1E+6-dZ>V z%b;m=RT*FeiQm63t)`qQOsl?HO{;S}r;M?D{{M%cH&xi*h~kng4Q%5(YWV{aFs$!de=N8krie%A{BZ&iEnJHsDQ zHDxo}2Q?q`ZDbp)t6gU^OW-+SJXt=HvPk-9xQ)gpQ;+a+6cYx zQYC%dZ2GtxeFB#!YE>2bDn(!We0}Zyx9dwij=mzkzV?5hzCbsODTi)PfNq?7u2=Xk z^_W}g4e)}^z1eWY@MvGuIei`Z9AyWw9u;s9`#|g6%YTw58w~G1EOnyJpU#-J8*P8! zk%jmzP{ApVroI1k6JO6s(-LVx~ zr(8jPwd<$9h+R_9rYxX;86yN=i{ACEn~eVT(de>Wc{DO|;9(;_|M+vjqCX~WsDByj zimJ=mj^nX%#kSkZxrsV|+=h0=bg6ILm%jiQRzDPre~cKn8C!+<%WqGL?bMh$0Nkp7 z=Ep5-Q#^dg;70mT7F&C(G^#G!fHopqh3_EqwJd)4UESurSL|59ljH^3O#0qmb=jGJ zgE4%l@E9Hm8+>Nvje+C-QQvfQ+x-6Hc`)IB(l@`Ud>jdLdLzPRS%EWHMLXGx51e{Z!?uZv#;zpi19(_DdVh>^*wWq3Bfi%)&)2t(*Q-ZPk-pl-`NJ8B+dKdI1-3!o$E^%Q zPT0>#>)dz0dxG_5p?{wJ45^*GXI$EF>=;i;_?sK+f}YO-H~7aJMXqZ4|9)+;_TZbRwBLG)=R?jL+swpb z{O8~dj<5?PE>Z|j;C05*gmWl3_HSe?q9n9$a_tuF2*KH=k|=HfV?{EiP6d9)-n z64o{g3%=r=taI(YjeAFdc{}T8&fz(yZYo~)cPqFCFwY^@Ie%nxaA^vDJ`Y$tdKP~kk zm)5^Lu(S9){q}pD(>Aq9ZMs}|PVT?#nL42T04?Ws8hgG}+gjCDj+R2lh+P3%^<{A% z*g4DHr|kXA77xgQXGqJ~qyA3ZKz&YUG1^V08k=Ez`m>D$7G+cWpqk{Z%EDv)^QEweJ$jDJ>UqB8(Y%yYj4=toFf0#f3QA* zw#hO!(W5i9P4v#~fJ1+z!o)O@FBAGiqAoz&l=0BTMPsebJLA|cYoq?h79ZUr=hb~r zshPO*APl}O`Yj{EBhPZ)3+Wc>K%7H5Bi~mawa&52%=fcKfpe@$)}QZt=b$zB2WzlD zSPMFRoaIIaX2(}Jw_(hD!nqY%r}qD6#3E!5J9kdy&KT(RM;9Br3bOpfQ)owDb9^YZ z{~p+3A0}?O?VN)sXS*)b4s!HFC)&|YW4kXQ-9vH$^4e*+uO8iG+PP>q1MR3+*bcb| zdcPpA9c@qc_l#**6LpTCK|9KLw)-N+*I58hV>do}$h50PyO+?8Yl!WT2UoIdWIM?_ zV1Fk~yLz&@^wVoA8mJH3Al>#5(^Wo=kTcbdCHqLBYw z(^1&L71rL4I>#jMpSS@p(Cy2#z5V5nLRTY}tsV#M%TZtW9dpchme>?C+%NOnQ2sXN zoVx1jK^wwF9enQtIiRg~bZ5RF<@{z5=?j`JH2P+4OWk;p)7ApaW>zNb>#Edh2_-t)zI&$hnYTY&mu+bv>Wi7P&IB zO}YQL*WE<-=bUod0D_lbn2_T9w=?3pp^pv`meO&X(Xu?9*(PjlzPz%#&s zHi`q@rJOc){J`#6W}lP!$DrArrXKJ3$ggK}Kv-|4smHaDUoVpy@oec!8>aNBIe-Oxx%W+eqFx4H=C9?!Of12if6dY% zyEnu3nAcL$8*}E1_5BF*Fkun>$`o*ydE08w#(!CCq^L94!*-ZQ=7HFFUNyE;#&O($ zM;XO51cx8aPR@eixDe;E9TDXYwuIi_sF8QTtfpsCz;6W+A#vSpce zFJbKPvA^sA=POgdiSw&ti@|Yz8eV{&!*{r_4~sJpn{WmK-vo^or*BCw`ix+GMY3z9 zWHtKbz9ZLEBk8N>nctxjIhiu_vt_hHWj*zm4fKkVA{wXufw=QMwAWu)PBdoCYnQRU~E%ab5`K~cVJ{d>|CNFK^d;5}>S&N*(l_Cj*Gm1awkQ7 z8}22@<>zty7P4#0!PDz<%S(Tkh3^=AOW$C9=t|P3%6_9Adp+fPZIwRfYh!RP-DTQv z{QfqTrp*JsHXKLY*v4VkUg=GR$B`+&lKrC(o->jhD*T@7O>$l{^9M{wDn*0)fGPg zV;>^#a}D7)^*4B~nY}N|bIONw?;3NLR z!riH1Wqo(8zthwSw!hV&S+G%k>sxX4t#9L=kdJabS1Z^ZD%wojhBg(B_I)5C~=qH1>-RI<9V5OEZhbg1DCq`MB z7h`!y{O73i#(SufLbF=&I_akVNn+s(IW-;SiF60fnzm}2A?o~(@AzpAzS4Wg z&i{COw0R$K?xo$aad&ph%IrT)uXD%gj<=+7D+3au}&e=!=I0l@i3!08t_r5_j$ zzi0Xw;Bf4t;F9BqdZ{Vhk7I3O4CSDG@Nvv3$3~ju(;9qHZDJ@vw%da?z**Yu8Dl#$ zH`0dRAuiTe#s<#YD`9)H=JrIL*SH^@<1^$vmtvmHxvp$H81@?D6Oil9Hwo+7eP21K zpGzdZnBD98Ipe=}-42qbh^ZnD@$)8)!=_UFel&-FM$Uaf9yRT;cl7gHa@yzmBj=Gj zn_TFkK-BrC6Xbi2UG&aYHIwjXxSQ(n*X+kW-EZ_V&q_%SQ`C9&DWea10pkIYmEdi_ z8AS&D(*q*UNk8Y++k58F7R}_j8GW}Y3V1&^uxnWdFmq&9gPZa5=)+vF&XMr~hsIR- zAm&K)o#FXnGQ8kCSXn{83^KG7c$OO<)%xY7hL+7JvpMM5oO$P;bl!$;PkB6|4$fbn zv+pUV?eEkieIGXUIO@D%-;Yw~dt<1x*;hx#<0*9-cddo(d*}_m7d%JlYo2djE{LWA zn|y@zO~0M=ff&yi*PKufzJaqGNOLdjC7%CF&&X?KuBE3omP*@m9MYTXy#TGxFb|)!!I&H^tF}7}^|Lyl>73nnNKM+k+`OYb!?>G? z4eee|nS(hM|2X%3X5Re$i#}YCKK+uh0V$`9T-1GFo`{#W8Mdou@w*=1IDgS!k9!!1 z1Nhs)McP2e85esNh_`2UtwH8`zzZ-ZX$+}^L_0cn}cxK7Jbyg zcE?$lLr>WDP218N1%7-JbnGijvSW-CwZDxF#282BEErt-46g7i4}FjG48EYBN`HcS ze>dsvml-zpZe<19C0NItTbUp+r8s!gdHGG>d!8vJzmYzB^cWA_#B%ze?6YT%$S9Y& zHMsk&H?OY5-HXVRQ)Zl%7-u={O0@N@@qxp6&-?S92laF2Ox3e|*7AMeS>nez(>TBU z6KmT@9mrSY7asA|KLS}>>MMJmzZ)|0X5e-Goat+yukF6PzCK%^uUCEbU(M_5kgx0@ z@oh})|1jd)=b$GmiqLK}yU@~Lzmc6)0$+5>z2x1`cCRtFrX^=@SLU zu;0gLb1h8l4euvENL$D#@`K5hsUE|=Fm+@Ee6ts0Ew&yC$|&|ZP0k)?V(gxejz=^e zsmt5zHs$Uoh@CcY(BhB$q$9>ImOLlKP9*jK+WGUGTt95da}pk+&wW0bl`cA07(*4t zFr1AoI}u+$uVM^UEp;42|A@RQ&|Qx~=SsbrJBB|#2RT$3bq+2eyaw0aPciViZw~j^ zzL1aQhqaG7P0B26-(EH7b4K&VN97)0si)VItP!*RUMKHiTs1y8ug?G;{`!ztjd-SP z*-O5pT#h1mS)_sInUCCqyGiU=kOz6l+Q*5yKsWHIO1LUaeghv| z6;tV9@(bR}o(9es$vg=^ZkKyS5Rctl6?J~}bHKzMDVt*>`umjWPwX(@09<>g0G0j%~?Ept{xEGrD-%UvaW9&sC!7@YFfXZ1J_S?mj9+m-3h=! z##C(F`*Hry#3SOH_xi>(=ALfU@fSwhX-W!!lF$N%A@3Tej?Rz~p|DjSJcL z&*J^hbsO!6`Pv*t8TXrj$G8{s;GIO-Hp&{zX%K&{y}^s`4x2!aPsSBk$0i^V~ETBfcp(*jE~huotJp7UF@L?({aE5i0KD;OX5nfJ zv&lx-DeSw!RrY=X&09vM;C-%LV%|gF`Rq=yFBrGyey_Fh$+tEyFUR)MbVY1n4q{k{ zF|Zxy(dtm!4!Y$q>ge5e1g8Yub;!H4<3CiVtF*`?3-s{V4e#0&AQ=~ z!kvTo*00$I18;?GJM_)<$2^#ta6FwxUF=t#dCymuW92-Oza*Z5G1z@q?Tf@8>i{m4 zD|W6|<9Qs$M4uJ$6^0C=h7TyY2^1(R4Qi;1XSwjHItLEnIoMFA9Qr{QK$E?I zeLi_wNZ)065WG@}e3q()&*9uy67j(~suFz3+{qyMGI0~`_`C}?3BD;O`-!=7t(Xko zS0E-k;ye~}`bqx}#-}BWR~Q}$Hja%~QyE^(=Ox~g34Vgymv8Q5>iOnwVO|@|W3~lavRMsW##*cl**GG|cgFCl#{p6Yp;E_G(tJdgbiBX#0{(d)& zHa5ef&+9Sbj_Eq=K`?(CaZCLU@yySu+U$9j!SRWyzOyWt=R~bJ0|S~+ZY1X68--&# zv(f?ltEeLuq)$mc3h~E!s|C*R#U9(l@~mI;+#AT{<30psSufXz(P@ZPNd9mdZK)G% z%;T`p8?0ABShgN?5Od^kMqhM>iTw`jN4-qm0{RerN!bQk$Twh2{8I^D&@15YYYfc~ z=J!Kzfrcm`-TsXeErHc!8qEpFUn!S3HHpnghffkF#|61^ zA^QU(+}Id<;A>x`#x zog86#mIwZu`2YXkTq7r~O;5k&JZt1%Uh&bwu94HA#d+4q_ckLh%Nc!*{63@qMOI+m zjV!V2>fdCIa6Ut7O9<;q&PD*o+FW0F?+a2Vz6G)Q?@cyin3?52Cqf=;REG}nJF_}h z?D%jsz7xz`G0HO70m!3~d+?2%gkKTAD9t@X`klxzQvCKCZ1$%v2$u12Ay;uu!jYUM zy|41Fj;**`YB4u6$)|SDCF<;@oj!JabNUGQ`}l%h3x)dl$ESc3?l!xK{)J*r7RESH zpKX^reKK+m_#uw0aGqdT&VZgr#ufBuXTk1ksM~2|h>oQ;xYmXpI1M~~KHb2(xz9Vx z^>b!#;S`^Zk9;a4e;|9K&OeGQ$g_`zeD#NBxc+^NouG40-$!%%+F6lpyR#yt+w*m(LkF>5r2fv10}OhCnmuC9^+*_|@jAFdWEtvfgs`1M*?Z{ubuM4?AVs5_aKp z;5#KRA@3acL1`!PGgHpFv%ad1s}1?(A->c0CdZcCj`d~Yy=Kj3{p*oAScUv1u}#P? zd3!MRf|I8GNziGmdoU++=itrj^d8JVyh(VzJ(#0D{@ZH%%8gI$tjODgIhjj?U#`)7 zJz@_=*0+%zN4akD_F#@8PT=2zISL(DtM^;};X3jmWq{BAvwqE;7SB}Kz){fs^atE; zv2qPOg4iE;jsBFt_Vb-y<9U4di?<8#^z)jwu>AyxoBuL`XLIxZ{&$WwohlM*>IVN5h&AQT31~9LSkq4W z)xwVjWOBwYw>)I)7U11IS^g53=ZQ7Ff4ku`+M|uxSku`TeD5VD2R_R2IUxIvV!qkV z#NWmgFFFpI{QvPH@Q%^*Lfcqbu+h#N=n6Y1JuH4-=FDP%zIu_EQ8AuN74Y*kPx#|M zS=&uygN?iUVn&)b{cSjhf7zIkpa1_oV@4y#Hp^vPbEm`vcyIi_d(0@w81Nrovg;3i zuw7sNJ*Z-Fi9IHM8AG1YLX*Fq$tgw5bS7e^Vcew{hwNZ1Nc10gi)WLojIJiH&BQbB z``?1Ou3&jG6=gmkzD2u$do5LXCwXEhmlz*pM=kuGdiYrUmQt1M14DKA#^K*@i5j?7 z^xN1Mp4o2|eK$Op<2mGeMm*bjH|jjiJT8-in(n}F$#sOy-CV@x9#cFQa6V|9#_9(f zr*W~4>EkY@&I3JafV24Gpe60~0-U0UH^Rdg7`ySWw?8v>lO(^s`(fWaUkJa7 z?l(TGdh991{J82(j;g^Kk}BTi;ypQ~JF4n;O<&KPJJl%PraF2S@6?JE>Um312l>0+ zBU8E)HzMZWc1QPmz*&#>>j5h~S-H2SlsoIQDaG=nZaaf*C%0iA|3+sM+mF_E%jC4+ z+1NizzNseo^{5KL*ZMcxrgVGWrNHas7vp?Zlb7W0#$EW1sre4u#~trM)MO0<2jB`E4`9q9zp&4gAY1Z1!zR8CePj!Z712WEXmNjh)%uL)2S`kJo zV5~1ftGfh7hF0Mp=F$q!!?FI<<=#H-fegRy9SfhHTnG9DolVF`K4NJV9%S79+)@LrL`{F3hElNb-~vm$L0^9c+5moTtUM%v&R z>jbbq2Y%_pymf%D54s;sJ{*d8eUo1c2T^~ks=zbt{_2FfQPu$RmxjUvniiPHgNeGu zq2vZP5_vv7sCjqjNGyKQaO|OrhLfqViY>c!cI;vNYrXi{SntKpCMGUkgxobZ(i5nh z{;=?K4S5~!x~@Z?k^2K}iJGeB#L_!-9wF`shU`eAd}CX0shZxWE^Tme=Qh^uYOQJdy8kUoqT?{pmy<^g~@1#+qrRs-@O>vFU!NEm4M;Zdv+l5`8CvD%7;ii6-W& zW_O~x0%bEA=A-?@SOy-~mxg&;cSD5t*L<}apuJyZJ8EW*D`6QGZ2x zoLbTbbnnt*SDXA}hfIAwQFlotX~e!8CPD@vm#t|>x()4y8;q*F; zH9(xvE<&0{wx4^JG{A52!C}z4k8MG>cw1{OpSeNsS*MyIdMk&|ZUmpX&7R>_KB^u z-5Jtr2zn3mwPq^m3LECw8y-h<60v8g}NW7TH3vsUhJ8^$nOT%DoY#G?=tm! zGk6Ithu$^#ZXz7itC{7Nr1iKRwWKaRM7$w021(n<_Tgu;{aD@^+9SNSBaIwoOUt2V zJs0YD{#*$CmSN4)h8QsyALBP+Pw6q8yEE2$e7I|widcRH4^_uD93NgY74JY-JeS)t z@&7XXJS22s8TcYad8BEomRlUNbUJ%V&jIc>p&Wa0=;(-kccgbpzb=f$9qGpj7reJg z({XSd4wdGXvnGk<1I&h{Ew9ppS?tfkqucHYj$xwa^Sa7JjS9iI>1hze9z z!QMMX|M8Pgs&TL@gUN$|ry;B7z}BoxU7nUZF_ZiLP#KE{*2P+p%YVO;Gi$KlOK%wD zy(ms7_Ry_!Vh^LdSIR>e5BH;_tmksXBz`olJGKix$L`u|yp5N1C&qoUGEr9Y^sT8< z7q%4Enu@j0SE-iyRpIclbPw9n_BjZ?V_9_@w(c2=Xjq1_ex=Ya%QsF>p`U(Lj^~od zi)jzPgZLdl*=mCW-=_eN@4CH>Q@UY0@jknS_=|ho0yX%{?>F>c*Qt__x6ijkxQ+IidtU`YF^$R~h*0esyTg0-Wc&U+r&?s7Oo&)^Yr3oA$#R71xO+-QIH8+pvj% z$HADYo!K(Kb|&rZ#MO(NVHbGbMAZzQx`g&A=ahWelv2!rR4vPbjl4$<^~#}VVPj&Q zq5cw_>-?mGe}%m1n0jMfhl2i@cnACN8kI^mplw{?yQ9Dr^A^MWYy5$Wc^7G@L%D(t z5EowPbIa2Aqt8p5UKoBA`gnUH8l91dl!g)!bydrJ*aOt(u!%;@?>x~d6@V)~J8%ed ze(_A&*IU|g{9HR6BXFvT#c$>JkkYY-!1uIkI`H={*gIGQ;GLaZ)A+lGbRaCq#B$mk zEp>0KBX1IKzVqI}yJdK%ZIM>oUxgx$^IpiIdq0P+XgRY9asOm8f z3N)<&eJhfEVbZq>cN{GY9YDJSGb-XgH0|Io0H$-xi#lIMU_nPAcV?LV5Lf8)#q?|V z4rhTEvJUa!-<+{-7%|o^;LfpnGFCIL1o+&Jt07{>`dhr4kFjDLsLy_hSK+au40Xcv zbqeFI0t+!7%tf!pJM-)beYU3$!k1I4SiJNch2F(Ll57x#d??9fat@taxD}K+NStc^IIreha zRt_IfrCl#;nHoFb+#D{0OijU7wXh%~VlV%8T?}?|3bK@QBeIURaS3eW0y35OVEn6z z8}(%3p;kV}8~3SX7_^CFJrGvg%h30b%hvW}pJIC!flE0`c%uLBN8UC1>G~<&!A62y z?O?nE{p?OmbzXx!#~ntYPqa)8UE4DCKfRck_K8YwAI|F>xMH~D0OZ>N_^$^_y3N=t zWBVoy#}2?Ag`eV$zgA*YkTHin#)L9s7~X32w&|x z>@4~{KeF>hdNVI8sk(abwAKq*08^1wx zYQl{+w@d;KpeNvnKhU(jWDDnmIKWR!wa2yIB`(A%A0PDB-!L`DPxHi2na5U>y(9N4aq(`##S}i1*}IHgMiJE18WM#ey(wP3He@~6#jh#{+!U{ z+#&EzX8fqfIm3E#Qrefm`r!O-4+J@{nx9~!f_I1ua0sA1{kdMhs4E_OM zNL$EfUFR8*1xo6lvi)aqJ-ad1DKdLq4Dl4k+qhO2g05I6+d$u$`1{rNWhym!p88s1 zX^e5ja@fvG6HB9V=dHI?9i|<{*!8U`oVkf7)A3f=kMTzd^56 z9rl)~nUklf?STC??g62nddSYxUR;IfXAtMag4??NGHg++mSJe~1aPQ99OhE*?#K-6 z10aWdZU}9!inT&lwnDzg5ifc~jRRaS7KB{wQ>C#Irw?-%47b95&~mjr*6Q>Dk0&V) zOdh<$xdQxV`m27qMSLhrEgoUel;xx|^V2NWs@8E1EX~5C*-~7aLz=ZRhRpN8 zpc!0xo8Zp7S^9y@9011@E^{B47X zuyjDV{Knrf_lsiBz=nWdlzcF*WbX+3NVKtI?U!`NQdg{NnQ%#W%M|>b-@dLT*uKs? zc4@cVm$3`BOK(-UWlB{z(b3FUaWCwRF3MuaqZ)7U(zS?foxE-t^23010RI9k{z9yd<92!z9d~qNPHyELN-fLA(dUww zb8OP_Ql1HjDbBfr{rr;IEx~c?8X{N+6H8_dlF7&Bs| z>__dk^o6bVJm-Y#2)ypVHjwj;LcC z6t>mi>2-khtftSZWv4{_#Ap_ie0Mw+ibOb0PCEv@qeGT}yt5>=;_e zcpAq*+(~DS2{=5j`%rtwDi<)`dheT4)`B-0$v@uU4dNr3KI0ryWP4z)*FOb3RZ``h zpsXrcZuwKM)xaj{akhI&8Ug(EU{59TZDQ`Xq%_TNUnxn7h z^*91i|2SZaZ1uiP9MnnjA^sv)4ZgI{FKA+O>C<{Go%Q&aYs=CV?K?P^unik?akuO5 zY@@8%9qA)nJ6N-3zTTI90mu5Mat;LiS)T_#Xm};$*@ z7&Y&SO-FKReDg3T|Zvw{N0< z@ILI%z6@?V(q2Apkezlej@Y@#%E2>x6H_7gb_^ZQ_IswEd*U{0QWL^#TI=mkv4uic8=9XmgUw9`h?ef%=?pS-tY}mov z1KH{AyaRLN?414pZWa_Lk%72({3N`2`sG%ao^v20QyTI z$K{9ZN$;H-x+e#RJ{0?L$?O{jv8R!O(Q*K>!DjKTH3%@$B-X+Yzkrq z*dJ*fau}maZBMDhlV`jCHeGRj^62Snyf;6Cys3{>dK=8XipWxx!uqI)JpvfJ0Am+y zf)xCs;EL9w@X;q@9TmPhcpiS1 z_}IQ#*Y*$oQDes8ZHyoCzbTghcV^R`1KzJT_N$9-0KV~E zFt)j00$SQ}*fES1|HNmJC%5s}w6*4T?Nq_0`vbLICn)a%Zrj_)0may2yGmwreC!AH z9#1|HjwGf;nqkNG;WuoCK(|*78v}bYq-pF})N7(`FGd&qXUO?m;`iI_u&r~u81^ai>==bG(W|^nL&EDXRUrS5?oQD7> z2>(?9&PI$yA$O}6`*?(-2uEdUqTg$ppv>z)@ha8dK-8Zztw5l%pT|f80lupGs-=z#YVI{1zHkzee#hw+NU?^eT3m^ z(1`Ubl8=NUjEi6osTB2(Ozs>CKqtYMRBhVUP`wRxrI&jX5%-%2n-u!dvvw(R3o~}< zt~*1qGOYOx#&2`Ynn$i=*SF|HAm1gf94n`wH&1)trd~eVAv(-eDug?06LroO$|TBy zmMiH8ynmQFa`L>h|I_V6n`a^7w`}oekcvj`=!YVE@|p=-!z}5#6@WHpwOldv>CMTl=J(87i4cWso-NvRQVX~uJ|Z+SL}l9 zF3>yI?n187h1gw3K7ifDK8xF3j~BPQN;<^uS`WL+JF4xjheolx`U}`y{o3xz+Dz$? z&mN*p=H}Q;{bDo4e069u4KYtu?40dtueNiLOG7&cHh{Ks0!M7@7JOL|N@rnc!-1DTqpe`j1G4Hk7HdNuR z*aN!}hl`6&z}4zpen;s{*!YO)#}aLE#6>Qy;C?xH>!`%jb|8lU?U_T6m?!Oz>wO4kP{)J< z3jCFV9t=mel~&RRB@bfFXJgWUmsk$lvt&_aS5RWOfPt9wJj$#M^-n_Jzey-z5D#M7uB$hU^AE1dh5Bu*V=d2#q1=al|Ec+?4As zv&Zm_#t_Grh+~`+F0LRhu?e!rzNLrz3Q=fv?F?VJzUH&=712ZXOMe!b^* z0RAUr_Y8h7f%^=TZp`j8JS1ZedM9p>eTMKc$dzN`)&XxPHt~3A3-TEf3qU*BXHbZB z!cM#z`wUp~&B2n{&Bw9Na8S!|Iltx0kqjS)+=*Y>op_|RoAd#Ht`^>4tRHqA)=6bz zIbuvDb;u)S`Ea9&HV{pmPj zu5IC9UaX%y_%`O|gz!l}`mOMOT_-$g{DsBTCmdIJ5OU0njcc#y_=50<;)wO54sc&6 zF|t9!qdU%>(tgvqzNa=y79%Rz^MI>!4C#wJ2`f7`_S zLHoqAl5Ws45bI~WA35a`lRdW>znRnEHk2XWAB3EUXgL8snFC)2`~iCryg)px?cU%b z-Y+>cr1!Z&%(L5YH)4c{xw8y>Qa<@=#QRN*ka%0YL!IL(=69Z}oF2q`=rXMTXW&yG zYHP(>m9>Lh2U$BMZCpEvKE(Q$Vcl%R`cZnHGqJ2y`&7_P-rZO`am)qx{3QQtXn$hq z4Qt5{i1qIe@8f*vF_6y05&hFXro7&ZJvy^KW5w4ed@A^>uX^!T#K4^}`A1@lu=P!! zuXDc$vHnKZL5#oL+f5l(61V(`95VQKfnMRiL7T6EeGh4eSigq7U)nL&&pj>!pZIIM zhZwVWvB#K8@2OdOa}F(?vh+S%MS9crK(5ELy01W^e;kP0R(i`gJ}qDIH{57q{aizF zi7O%2FKg+n{N?+w(mo#Oa}+*wBo}YH_Rc;lvYa{nTsI|luFh7mPx1)hIEdSY2@iY; z8I%JX``1pr@Cf8NWE=MMIDgJT&R>>CFo%VB1o;k$HpuyLix`Wp(lkCh7>gsuk2reE zM#S-35#tA6L9f<8_YSYA6}zTN;{V@9jGgBhm+AR#=`=BZ7kZ7c*o=&M|1jl~l|6v9 z#p*7tUyyU+8-I3Q-+$a&O1@F>JHaYK+}ss)6@Goj~V^CV|a_1$BkKBEDxV~hVnnlH)p8JTv-7 z=4Nz5c1&lQW1WaoY$zFy#kKDp#<+AIOzCA9v$E*w?L?TvqxYDfjTcvZ3zm z@4QDSV<7iB^f@K3!{o#u=1l)KlM}NvCnsiOtizWR(Penz}vPZ-lMg(xQkt2=rdY<<~!x)t|0G; z=TZ<0iUp73p0bh@Z4T00_T8t#&RA;bT&m~O*qhCaQ-SyUJmlr$-9*~)lRMQU*iIku zCc%zJPDTs(X>wi32EuEp)AU$W2&RUmaX?+c0Wz}~4wR=dc15|Djy1R<3(cN%dTv7} z_y>FMqzlTuSV#Lhzikrh)cG@v!Es+d_D~hjI3)Sh_#JPEJJfrn=qJ7As#5MP z@C*U_<=F|29X8}0`fQ@)i6Af2z8sKrBFm5)=xy#cZ=UC#d7>jH>DI@B-Rs{l>XC!`;o zl|Vn^@SghSqv9Yd&qhVYNc{+TOW6<+E+;3xLILkjs+r`Gg zxHl>HB5Xr^5qAwNNdNW=lAE~|=Ra_t0Phum4jz{(aJJvxgJ5B1>;GW}^x@Cgrm;08 zdu{7|XVz^y<@_=Tybk-$ht+b=6gbV4vtg65XMp|E$C^|XVt3WR*~Og!HSh`Ry}!G( z+xt3jer{U#f^!GoT>oOKbp7^}N^To$PHz3^7r=|58(v5c-7u(B?`5hq+4_s_&vJiXEW=oDXSu&^Md`=l73!K$Mc|Va__tpLlyl>fmF~(_U2f|=?Mu4a-FsKH zE^F@spIq7Iu3mLdmy5r5wc-C0@vi-zdsf}!u3G6X@4UCGeWkj$eR+FpS8bi!)w!a* z&0V#oYqGjY>U6GjZQ=FqmG`1?=KYe^*7ntCb1%9uc-*&Y&GNR-F9)t}`;xntbgl$$pI_2;7ja~(C7%cC?NG6JzH7;v zEn&x6BO-Q~7+ECF{dzZb04+TQua_O{7N*`Myn%AKq49kpBo!~7S8(YB-&Ac~hS zX_N9*tJ_z00#mSY*FCG2+ckkTV3s4+(v|meSze{C1c$eBDaZs`y6 zY>BRwh3%`v)tmur)}OF4$e|{FrhQ4<+H0=427P{N)vC77uWjdRb?F_~&Rj8Z;?xiL zUy+74&HL0%pK)&!8BiEY$vy4v-?ZOzFNDkWWo7P_ z%a^xJylvH8T?GodC*C~$zK`EF{XVy;dESUdpK1TXn$CM5nnr@9wEA;VCaq_zxVb6T zw9vijGoShNXRdc4vAe*vOWIrrOAg>(_pWnV8#g zXP4Wx%Kdyh_}Es_GQNw@GH8w3r>$kjIkrB(h@~+~*P6%8V8P36YgVjS>#k_O_ueIU zLmjAhi3^w9QNPty$uk8F1dBW7e z`e|Lh>Rysv_kT^^v(=BBR@RaU)w&pMZ(9SM+1}PpB|Nvi3px>MnA#6re15IguQxA& zIzxpUGxESlBA3Ww7FH}-$@W?g-*=B@0uah*eEq&a|86aNsv}J_%eYIHv)bBx3@q$| zFjjZ1T@BNA^g58v(obyFDgeJv3nnA7srm11@3O**Q_NSs@qWH@WyWT~;cjERSY*)_ zwJ{G%R$kqOS?F?CEP)Yok9*hhC3nL>$-cjL?aI~;Xp7D-fwdtXSFCDl2VJGzJ?&j< z?pf)!*-7B2Y#Cu@^$S|9S>8^|XS6X>f@2H<`)w<{u7V zqPi*XEqIaz?!6tt5Lk(!?khtxyWP*P>Ec4tPk!7paLFudR(7`fhp$8mz|JFgk|Jb! z+KrtnRxfW~(Y_Mq76byA4X`bFIQSg8b#lg(%E(NspgL*UA(ED$eh{<0>-d-X-nMm|FZW!@Kse;zW6?W?#*Aqg+%2~gbM_XHh*p)VvHaO zApZ=QLIiBl5Rw}b4N1&RFrc;6(w6BsGqlnUt*EI*$6BAI9XjJUyp}q)rLCQ()@iAw zmTBqx(LUQ@KF^tPeznc}e%C(xoO5pyMB7ef%7Jsv+W*$xd#$zCTKmtrY3beqF~Hc@ zz94dg7H!EvEuy2w$46=L+GM||7q|+f2QX_XLI56eUk?;IqRBvxF^zoqH-)9RU&USQ zy$SzU-PNe84tE3Y4Y=EI_u{@2_io&KaS!2s9QTvBLD$0Pa39BgYWO!rERVJpRU0`$ zzv`EO*oKw}__VBuQv%+Q?P{4vN4Qj(bd0xqdUE(T7oy&a=AR=s>yZ;7(|I zQI9973;U8=I4A3qF|-mE1qZV zdKHMjO?h4>3C>PAKR^waLz}VJBOA`e3MOXeixKoibmI z_qPnhd;5B}b;9ab#Fr#nkYyVbGPJK0TkIDjozbZ++PRQ+rOr-uz@F=F^mp_nVJ9$; zNOmXtwro!;t}Sgmxz5bdy(+Z&90kW&sV!q~`&+Qa(9#N(oPtNv(=9w*n;GkmTHk(i znv+&+En<2}gHS9)KrucX7ebZR25MBO^HBX>OsD`PSvb%)z=>8%{{ZAcziVaeP||hS zD}?&thGVY5brj?kTMX|V)|eJfn%lh{b_?wmyBu%9G{v+FrMR%7$Mo8P&GDsuEnAbY z|Ghn_0nA^RXzV*>Dmh3mF@8nG+<7&?j~Qf}h_ezbo)$GGcZB)T=0s62b$+cWNy8ux z0&f(k-%j>AXy<5kvF|2Vyerv`VIo?XxLbXHtZjRD%ht|T-_U#pn{GaS$*)yomGt);J%9weD( z#zT6_Sd5J>-Vqbf$Npb{_o*1+r+8p-Dqn#+?a2hO2I4RU`aJh4HAMJZD=Iy}J zC3F#8m&EckW-o1>DZb-XiDeiWo@|)8X{rm;9?%Y|Nz+Vw3?_;;S!O#JmjhaFh1!LF zLCE~_W67i81?W%-`yV0(^r5t;cc2SPNxhweNz5`mYKP;nq5!sU3zJ;wbh==Ekzo8) z4s?_1LYTnuk-9K~wQWszip2ZC;#{1bS;%+FKoM`@tTS+(XbuDS>5Mi3wZApIxk@~- zpdW#omTW7FZ}sfc7?wusB++;2Jw|($jX?`prNsEqWj&V=l4QI?xXj+d1ZWl3t8jqC zeN5_6Dr+ZYTm>LE%u0&E%ed}j|Lr|}x5j&0=yI5Oh0&EGQpZr2t$rIkT{*I#s54G) zgLR6LI&j=xFIOGjQ0HYZt{=bi+r*$o3Y7 z+PGA>XpH!+n8VZ7>ZLrx7i@Y#$5G%hK1NMuVtDBqaJ=dI#&|~Dh&+p~Z)&=J)rf2( z@~x_0+k|EIOmrjit!=1ZckRe*us=}Rl^s1>la+lvJ^hv1LQ#{YAc*~)Z5924+-%@p z8&|hX&*Pn7vNvbYI8xhFm91SZsZ=GzqB7avk*I8GYl9{d8(z!uo;~Pn*H$1Nzcaq2 zFWDQvv=c?*%w2n_7gfG3ereU5D=QNCS9K{eVyQM>jylWR=Kz)B9CLPJj@TF48u&PK zwr&e%K3iMhHhQbL;{SxxI#ZGyPt-yqHaD1~X8_G6htVXa*& zx8OU92N5 z0s+5&E3StQ>}uKW^-c6+lUO;k46C=9;T0t@(m;c?oY6F4vP<38ohs82se#RyDT;g!T%5GnKbCa2a!L5IHPa{EGlTdX@pEKLIk;`A3AcB++IHeB}~QM37-%Q;z%@mV%1e!(~X7k zGK^@exG_jg84Cqr-UmZTFCusyGUI<4``O8E`bO${SyS;MQCxlyWa!$b41>CiyOzttW*@u&cdC8JAa#JKlHm#$s4vqzx!0oZtK9^i+d3F z&SgFHMA433C?f76(qe?x95k0fbUK~Q@ZUT-_~oGB&=)r9;MVnca=E+-8S5t_9;!)Vco zunb`wQbW>6i%08FgVR@6G$!GP9#6u%j3pRTomz9l>eVY&FH39x`WC%2MY6Vcc6X*a zlCYuN;xO_Gy&Z0#$%J+r#3N~DsMXUagv6#!5{h>_1VF}6Apc^MIor|1))>WDE`ha= zd#%HkIEn^(FWB~Jr@us%+!nuF%$=_rp@(Fdgz6f;tRD|u$0Z$;CTbA6+)sxzU=q=X zf$NnFr3Lk3%x;0t60SLz+lJO;Jk88Ci=kt~zxmYZ;op3^Y4|q}*97;0L;#254gAov ze%sQPWHf5MNgWWB!fqB=^afEfzPY6p2Y0$<@5{%vhRzZxzf=|t8sT|jri_z1q5fv% zS&iMfv&px%rCs)PHLrsOSmV!<>8zPzRv`=9n(t$^EzPE9v&5**(xRkcu+})rb0t0~#6$q{&~c(Dcnf2PGfm+Q+$y4j0C@K}wuZ zt1Q~l($^*jF&Kx_Rg?k0TxMI~NPBK$96KETa{L(@BL26JFS8wSAk1tBqS%btZ58If z_>#4BC`Wssy{W#|W*)3DcAeqQUcIW(mg@Im#-p2(!1yq1%7bjO20PHJS5JFzN{!m+8#|}!@#IMq43Ot7|h-YS8p?DYw zTuR9%Tq!K%W#RDVp8o!xtzMM2Q90{d`gk&|77Y!Fe4Bq9g9julj0wyvqY(xpWz=G# zA2aF!?J~;J>ES3%(RIgo&{gKFfkoX$j=(Y6)=9mFsU1!z@N9s$YDXv7Gg&OBa_Zak zX_o8_%MwM}v{Y7k4CE zZ)LaF%7D~#_gUq2YIfVDsdxt`f7|rrPuz73;S7F_T8`|VIXg9z`=K1k-u9taRCqRO zIj_lM7ggfYWOe|w6r6gI7`<8{Q#w&8&}ee>kXn{Ym9poV(Fa`)4zPDDk&3DlTAs6x z5j>W|xL7mLG8C#eqx=}fIc}P{p>&zwh&PWz()a8;TikgADf10L*WgCf@53OP0Y~I-DNW=TF~0F z+tE}sQIsRv#oXQ^3tUZZ_h5RCKDJlH<4sUpa$HBwK(X}PL?XU!w7#0z5^53Rr!|_> zlYrM>cd$qPix&6-||i&|AY% zow(`>f2d^WDopZmaA`HQx<0%_ml(tra*2qfk5*4lc(Q>qpfe_%tsOEYX0PfOk5yMD zZK>M8P>;o?R1WD97zC2g6ZSCo+dx~a)2@TuK~_+&a0@Pi?4EEuglWYspO9vPt039R zg#KxwXj(C5c|DU~QvXhqb8!eYzl;!_iPg+-{W!nt=USTF+{}3Z&UrVZ-HY`h%{AUp z9wB3wx3$G~avp_Ispr9P$G|9fG}!*+p==0T7#*x3S5ljL;Hi{yLr>Zuy1CY$|6^{C zGYtMRfI*$n-VnjK8|LK-<7>)TS6G{Y*LV&IKcBf2jgOhv=+h_I$4PgDy+tAmE-l;?@mFRwYA)4c;)NdKwh-K zAx{~c0I)69i^JbIdaWg5Y&j!l@*0OLWJ7WE{ArVUj48OebTwpDvqIT|l(A*z^QLCV zZu;pAC<7d+;0730uP|}M84Vn?DDw_!s3qZ(9-bCA&e*j$VD6oWY3bKnFtWpr?W$yj zFS+u$&=raJs^vQ{8HMb_dc{k{_mkY0#bJnKjV2u*T7wURux`e=@hB+gT#jZ=Zf%_9lxZ1!D%tR)^9eiFPA6J2 z8MdhOb_N+n>3G$M<^|dPhItDWbmRQx?(Uwxt>7?@&6jhtkV`gxlO-Sc5Qj{URyKuo z8OR8;;gkvJM=t7}fq<)h-r`J(3!&YZ%#yS5G#!;*AqCf4**Oaujn*!7#Onzb-}rS$ zB^#l;Ew$^Znu3ktqMIbt!Wo8S$+>JfGyuyfrS-WsNV#r4XwQ{l=EJI=KFHOT?B0UU z-{^ell|D%B7`XKj2U(OI4HH-TD#j?=wH@k5j13N;lm*SzC~t?&2M0<8wKN5bP`#JQ z7!ti`)EX?2bovZr_Iv2%g@pPtnclB3g-ofmcAk+){+V~vrrsVbb9DA^H=ZHri`C?9 zAW3jOeyqIRFuR#~<){Y7mp-!rs;M%3fiPAjBh!EsYL^Z0+v?-=4uG^(q|0)*x6E(O z4`9O+n^4}$&5mSW57wYOjlbIen$0UiMXz0YnG;`Y1Wb0){6sE4!D}?@J*LHl2Dz<^kDn5Q@fsP;nV1T`xBkXM8=lFQBxXcZINTeVo z33@wVpFH}9@cK!5`8ZvN*M^+Vv2eHcbPa4ZU(JrhpO$Ru$c3YY20}iusAq`G=?40i z6Hm9Y-L(9kk zx;}#&PKN~QPqZW_^|0A9GuT=oO{sJ|J{y9~H`)oX!8=!>_uzz6K^A`vK8}1s15=qO z;f&lw=n1P2IG8rL3$7L^nXDP0nO`UKXbkJm;y*A<@R8T{dVaXr2~ zyU|x$%gU2d)`)egqZ3DZ(FU#x!rSe~uB{x#9o^3i##w-B^(q`AOIth$x4~2-KB%dT zr+vK&#>%@EdrVC|w^>_JA!=V<{GY(Ar*3#DRgKG z<>&;?sYrlN15&a2!8cikd?U=`;r-dh)=vCTI zxA0W&Kcx8CVhYAay2a*&x&&eMQn7c%uN`LNuoZ9gRWBi$NVXB1q|HVnHH#Ht)=^Dl zLhGQBINn@&@UD96V)J1|=7|q|5Ctv7?oUOHs6QBgy-TaLp^^QZ#VuW}16}&ljea=` z!?h!Jj)qVl7D1D}sd*qIWKqWP6O_V)kzNMpS6B)bcOY2v7&UtZ=M4UT(IOzRqU!7$ zX%e9$aF#+74libkPM5|=iJYHKHmVmX%ev&6R4ymME2QBXsW4 zoNk0GH6krI9LdyR9wLjDw1;Imi?FGHZMw3YwO#l^UZ94xi{y<}&HffZ*xg9sXCyR) ztszLCST2hw)#8uKOUc&IqU7fIithFv@H7Vtx7PDMGuk;hJjEQ3S1sFoEloAi zAuC^mUy+p0!;qIEfraGa4S9 zYa|+-*Z=q<9Z@LSSC-lm=*cR?!t-O&+HJ%#K1y|&Z41P7l-#0=mY8pjG42I3mP7od zLTL?~;n^LuBb-0L-Zo>bLSSfLJF#ttgB7x%A8)|s%4qRxcnFD-F-jRZ+r+e` zbU?fXPJOaAv5fJ;v$PN8Y2@fZj5r`H9;?x%8FC?$a-ShEFBFs!7%DPl0(u<_^63=w z+TmweB$T5jm4;+QJ6JL5_s=aLETudpDEa;0hggH{QK9e}E-Hitc8q+UQ|=#a z&|eygzXe(FevrYdO4HV_%Z!!qPgg(y&RFlLWzMQ{X}_jn_7OBlM%GP!>XKWqhNa^#2A2jvNE@{1z|<3Xdj0WFDfO zx$iBGzdo11p2=J6w z_;N5BD+gf_^Y=&A>XRWfMvz=>hdg12hLuwzFiL(>W;ro1Or_>C<(348NaR}`Q+l-Y zF!IsT!xiw{h36lExI7f(E&j*Luko5L-w%-pLB7zzATJwtM@2@#pSXM&S|7~DLSz~> z8B*$(SXiU7MU++r|UzVR^2qndiw`%A4VW;T@XU;v&+^Gqix0=bs?uMA=KL#L4nXoPtC) z-LKrm@^uo9Q?|uT;*5|z@zS@p^z!f|Pfx~Mpn+$2dHio9lJUldMe&A)_|g?iuTQBQ zzCdi*X%Z(WQNsgRIoii;z^C3_4V~S$!ov6J4|s!2q=k={(%+rD-JIMsO=SB6S3!OQ z$t1D3!W^fU@0`U=YZ?OEr&mMZjOfXQLSzkJa^YPviM^Bb5dzVCJ1`}KW)|M2krXs6th@HSz>j7RvB zuLk%2SFEYd)u7vxxGx<3H9oGx-)6_3WWXPE>2=9%c#Sq@T z!^3yngZD1<2l*|uZ`XXh(Z5~$@jfv;{DI?mqrMLUkB$ES1%4jfP7Du!9O?Gp@bF)v zUi%*WIX9*c4G%v6yf*stS4+Uo61)%MT{ArVDD=70Fg*O3GQ2kp4?k9dH|HWT+{)Uq z27e@=-kO>(b92T`8vZqYOihYxoO1v6-MA<9B8$j?K{N?TnXHu+YY?!*GH+N*{kD*bljH0&+{Hd zTfrB(fZHk>9=^K+p-no9^;xBeBk$@$ar1|V-+uz(*S$E<$Z7=dfG_(VwX7hv3Z0XR z>+|e&xzaagU4nez-JhY&S=DH3JVXzWRfxLTC+eo$<3H4N>G2_5A=`CiczACy-nivr z+>67*A7fig+y=m>ATy{hax|kpG?De)7x`q={!_2cAG}nbw?6l!ADDXWn?iwgAs98H z9(xJL4*GlmauHjBKJOu-`n=nNE|Z3K7ykVCB$Scw6Yyr-PQ>*BK7yMU ztgqv3{JskS^KxR&fg-#yr?BhrCY*))qL|7)O&ITEcxNMh1K#pYanJDZZxFu$Z}!2) z`*ciY8J`bPZ|;iOH|OKVZ?@lDgnJV1V%%}urMU5X?l;%qo{xJ8?grdVxHsb7gq!`v zm2(i}IEk(gDm8ux;n&fTVUWXUw{c1<>yB!8%dH!~Xmycg%<11{e%Xq)xp&|Z?NANoygnD%W`8^K} z@>f0lYciqLJJk%xNtqujK+MP%=Zd+WoEaI4BaSfVk}=$pmwC*ED5k3~pXO68ge9xB zZ1LjScN zFG+VDlWsxG)NVi3E1&g0mjgJi#UDg`(4U%1Pp z=e+_knV*?HxyGcAFGU*i_?O_H`VNyG4~44^zyRN(&y%z^or%^|FfCpubgSpt3h8(U4l#6 zS9_^RpZ_G1x`JfgzN?R!^aUkIJCd2c;4^;uNu(XlOkdbz(ytjp+H0BV_0O90h5OLI z6Pf8tCYkj5L8R@?OkcL&q%X=xTDblX%J@+(hvH&9iYS07==^=WiO7~QleBGWZDqTB z&C{OE=qbu|=J-%ZfNKDQzr?zXGA0 z0cpu1za{opQSKWY(lK55QlKJ!$hUQ!*qkd}-5OWd;p&#Ux}_0Ur&hVTk*;o}t6S&l z))CiKtV1Yu3qa>@oIeA24Z#D>p936>vc(T-%-!gab!4AwjRzgJWFv5kYe68@YNrFu>IN?OAmUe$urP2sYTWmLLdv zTinIlXwO=Tp#7Jwg?$(M^Y*M|%)HmN<{|hMd)9IWOI>RrGXJ?fs}Vt`&9#;zxYnMv zfx%l{YlRMOWU$Y*R_fp;2DiHwcRZ1~jlrF+)qr4`J*$Jk)2>Bpi7s>@Xg}&&P)hdK z?ODBaF5FW0P%gsvnbAS8&(&?D{|ml482%@5oxWl-2cGa{$6M-0Hd>He2YR7Qcfedgr?K^$LPZdf7YT{x-+7W z_<=D}i045LJZtKRfoEl7;Ozm1|2#kNFw)KsymM^eEswk(;(a9sl3N$~5Ww5U7=upq zjmDrm*K$vC4E~t5NDm9O5o4!Q#^6b${0bH9j&*cmNdAlo2o6o?>Ot_A5}b%U-zx;@ z4^aeyAv$&n5IG;?5VbEFIYjrMEw96+`Re&0dVYwWd$w^!codOiucgeu~ z^~izwdd%irF#99t2j=;K`QL0{j%iWPG%zuDa{IF*7JOdkM)>9KEdtx$gV$YvW3I{% zx@tV~J%D_Ju@s_*0F}q^3$+pJQ!;cpJ|Bo!4-pg0s{0Yk*+}F38X6XPxv*Oy%wS=g z5B2qGF!FLyH`8xM&XYxL%+M?#e$>`-HnGm4wgkWyAoy`nTa^!X2eI9u*g1ZN+n8aq z6uXTXG`Ja1t3+Vvo64!59;^(o|+ zu0Y!NkoK{n0cM>iQnroxFmZGSr&1cQ1R>?0Ek@L?m~C@S0`c`1Bm5YklLUs4%O&t} z01ce;mrh6MiwNx{a0I~NIDl_4^j(BrCGgL z*w7&WRZQ9n;28q=?aS={P2dCA3CJbz5dd`r?gt?4`wW0TVGKBw^98|wgu#D6@CO9` z7Z%Q=K(7?29e5xJ1RluPDJW)tnI4FX#Uuo{fXA+I*({1p46ZikecN~-dKt{o>tBvu zD|7S$n&Yj8>6J4V4Lc$N*y89_i->D40R97Ls{6dX5MVtjgyzn|H(|=IlZb2!5zO&Z zyIvwL%0YwzLnDV=yB1Mj&uPbBlC|dpT!%p(`MA9dV28?MyN_D4*oSqd>Go|1*@yD6 z$N?;B9Vj(9AL`Tu$|$j4v}Pl1wkoJ^#z?z_1;*Dmr#uiv79yAof?q@sULP}J$tSP8 zU{O$RQK($r-;7@rDwp?f2nOZy|6%+ZzZ|y4{uIHW&T*ebFsQTO?-2~j#yZEt)Lg22 zG~s7lr}?r~7PGUtv>o{z!K^14`;>qO82cE(-2DVUC9$QKYn5srMt7vad)Q4k`W z_e#v>hRAs5+z{btzc0dhr*+c{{}KIrI3&YG^FlIQv|@A_ei-ZUeGq9+rWpJNf}Tt< z_-h0`nR;BQ3vLSJ7^xS00l}c`g+&MkWiMQSU{LnL+X{SHM%fF$hG0cQ1&#P z;7QBm9F`h~_5X2qBJpY@M&CpEwb9VYb0qOjBx1kA-k=kKQWBdKHi$O)p@MDU;I|56cENJo9R*uc&@;#e#iAy^iuVYawf=<-jy~_pZ1f9SX2)Yc znVWR6?=bxUz6w+-;cbkVjR%ME;LnK$cBp|H zLK@hqlZZeAJJi4pZde05)W9!@29_Pj7SX^CHE>EaaCE;G-`Nyh_ChqUb<#+0i&9ha zjPx>aSs=ZMKm%JReGP1#M6UTUBe~W|s}TV$Ki2=THuzGDGDc#hOnb~otaUPLhgx2; zeD;Hg@=LCdd2%<~T1(l1PO=`+n&vX}=X0obj|kOHBz##XKyD=ACF&)6A0nf>LJGFpM>l*jO}OXQSSR$zxPp|{dbz>Eirq7(!D5# z4zLe|hI#Q{hIn55SitkJqXlzb{GGr^A$W07V5Asa5E!Y?B6z1i+-;^FM9?!d2u_=b zpl4_pd=G-2p+VVc|2HsFNS%IjV5AuQSYV_OjOPVL3T5LR#z;YD#eWHlG6C9c0!F>{ ze_C)Bo!EKu)LcOzEcU`M{G#Ofesr@mEGn z8F*@RF@4gvMjVMVz8%a55S)2YFdz6b=3pNRMD$7DBC%Y_)L=fq;QnAffO4~&gZThb zFPRg}2N+xv%m)y>baOBtK-tT#3(W^E{}v@g<^vbJ2vE-lif|Ugn-3K2Vyw&uCbbci z`M?D=%pmiDqE`sYe4t3C5i%dR@C5V9e4ywx7)&Z1GarDM(lwv)l!60PA5Irz7kF3Lm}X-)A#H}s1g(VEk1gDygl|t* z!cPUR)_OF|*)Un>paJANtbhUmMxLW+%b&-#Yt96&STDeoSaL?tKWQVlf-ED-s z3uO7)sPb&>_T|~yoz?5vN#DcTje_6zW!m}+>)pmvYEY^?0w%f}K*&DL0s2Z<9Vz=7 zSwHz0?i1ioZizngF&bOGNVep+`)tXDPNG4a5{ub9`!)H#bDAwb(QN559nx%hEFZhN zTy~fX8di_amd66NJce9%A*ijH#o*rrEcrbClGX*>HRcik_+0TYq&fGy)@7)35Bbvz zitZgh(ATUi@&|mY_{WJzEWuqizH5gUkEux|+C+0O#6hL!THt2o`q3EoX)ULi3fri z%7Y00qQGNS3wWd1H1!#do)e(o-7%j{s4OvvQ8X2^)u|n^Fq;yOW5NyvkbQyACRqQ( zH%DO;P7#1j1%K_cDGw`@9ACu^F}nl`wfLIfl1=uPM1gfV`qWV*TeQ*r(i2i8|~MkR8@^J?F=-I%0>IM&qez*a&`D)j=?$ftMdLqmin;TJ-3j-FPUJq z9a#F)6MRSXw6!s?^FUHf4>9kkDK*bw@Y^PM<=nvRBXiB7!0aB!T4_G6%XLz5-5#GDJXuIRvh#Ij!=_CmLu}sK%3~u4n#hV)&^F8VO(-QhlH2X z6MhOAkJ1|n+=04J!RbV72V$Y6%B3<@kI)F`)xCz|KmMn__~#$g;$H&W#P!km+H+t0 z^FQW`f5~y(t@;{}W^PFQ>xV+(U;o;u;?FIoMKON@Cc#7g1dPGOIpfU`aIyHa_`?j! z5MXdgu=vf)OMZ+Iq32@^Ui&Ttwe(8xIhK`yz_Lpd49Y-|;CKA#88a{Yj6Xe-;Q#Tb zXACZ1hq8Jgu@67)oj zxUb8VgeQ^EtV?LwR@W_&gcC>@)FqH0CAuWxH6;95VMstR2(sA8aW`?U#g<+72!reW z;4=v3AMk^}U}~!gHq2xyMyW2_@C1W@VS=mXGx&fX{2+Rh)rbMnjd*MYd!<&9=-3VR zf~zlK@I!v^ZU*o6gCAq?vwrYV1|RW*KPiySVGq^yLXIqqZ0F<5=glo~5_>a){`~U# zzf$1BWeMCz5kHQJe)FzRZ(d`Jsebbs$>yMWjr|Pz&1?J+gMRZGkEAsZyUV2iPUi8O z_ReYs{ieMW`)?yPhv;nxb92YLm8Q1UAz z%J-Qp!G9w4KIsR4R?v(!9FzF#7-daYJ;ICNEFEqHH*N4x4wn8ffB&ej6~;fJwL&#~ zQ+^IudjGkv6=JJ=tzf!!GZd!%?;)*lb4y4o+`N5MtziFqU^xC=shd9%Ovw>!UIA_G zITcub+9W~kRv_52*w+X^W3+*da+|AzNjZaD;`W>hlxzJQgW7N)*!H7fQjW~YUj~zM z1ltRONjZXBc;LXBl%s5C5rcYCj^Hi-;!nzHVPsN1?+8FWDX%`wSecYpA7!je%4_!# zlu7wKml;m*6wVcQ5|l~#6*UB9S-z&9d1X?51?T6v7>71j_+jR}iA&e_I5=`SfIq>( zrI-1{JIdXF$gd-JFfs4?7mSSDqm1*HFW2YR}1rKQZ5K z5nw&!j{xf-|LB6h82k_l-VLVfQDA)r!6z7$Q6Rx*jRk5z+RwqbyqzHR9?g6DKHn0i z?L)+w7V5uEhF$oQ&#(#EnqdpDjJ)6^mZYEkZ^f_)U(gDyi{i*0YKA>+)`I6M)mtz+ z!=4Tp_B3)`>8mV@L2j~n%=!j`2N=}MV(|YDE#%*}7>wi!F?n_n)P6i|5&yP3z_Gkj zX$$zbeFFX_G>+0EkPhs(@R{1*jWz-nv#%M#N_A;EL*MiQzM0sj z54$75u>1Y53{SkpH$w}gTbhf1Yq(es;{5CAT>RUBi+_t>x|kAhk-^%4iy&KHXTU`U zzihaOwdPcIz{UJVkoZ#p7g2qxj{Mr4#>Ldlnu|jL7mpz4ZKH6}zL8voZk!eWr@8AEBbH6@iNW zdM<3*$DOr6^?lhwEiAE0EQG#J@h9>0RChI1Gz=2Y3#UG#W#tkC&C~_EZuV*|D*__d zVJ$0Ous<6?oIGLh2BrF!>B&W@l#`>80!leq-}i$39|8N}N-)TBKWFg6COFVSSAy#M z>yWSf)5tVkiwnF^?t-U2!#(qH*+`Jh{DamUNCsLyaE#V_T+R6At{uv%kglk0C_BPP z+si3jQ}TS_DqN_AYvI0_T@OL4`pJ3Wf)3VORA&~hIa;`I7+n)j3)cc8TwhmeTgB+Y zwIC3#1?l#m614yY+rem<6b6?d_$-58GQr!c0(o1YT~|s}fXbISpt}82F*%OQ96&WV zo4x~u48lLiqZi{gAmvi1EclHOG{_SizHz;%5fKnDO5Wg+QDn*4Nm-hj@MX#Vs+Oht z!I;e-5t)0lktM{R|22+c(DMARahwCc#xe4XZ0*hC&1Z=YG?2U3F51%?Yj^x{0~3)P!>`vtsThx6&!I~ zv;p_N94x2Yff#6&?MLAEx_}SK^C|Dga)()<;L>||Y(ImSnnlg;{86x!%@EZo2OP}u*SIu`2Z1oYDjVwpqpu<(zd@7Ux# z=Xwd*_E<&P9)FP)43JomhMsxD1ELI`R$wGit|{(u86<^)s8cQYSg}HtXK^fC=#fSc zT*R*nCuzx;Jl5!$5}@ShnHnHvu=rxDs&I{ULv%yljS(DOkEkjcWYh8xhx6yvUN}ww zM``n*h9*i&W--2XYZo&rAuZqR9YiP=dzL+F^MJo3wy9=c1H^ga%R^ zP~`08oQ@(0%{zt`~-2n{U683&U`5&Cv-BjWrQsa#{GKq4Blb4dICHUxrt zq5h>W;#spZXdA7E>1BA+g+CfHK_FtIn{G3pJfj^V4vpC#hZNE4$&{inwI&)z$G7F) zAiE$CrE`p0Z%$*w-$@^2nLbY_6(e$Dn0O*s^g2VLCEooxrlsB-#l%NUmyVExiBDt{ zb|76rezA0866lY@ISPouC7m&d6v_l`g(>5Cngy0HJS_tWgMoMkGQB-rs6WiuyMQZp zSb;F>b?1;Vd~*bQL-iik=VOe-b55py$6jZ;COS`~%#~|d8ZmMd*5`jzfv= z6U5e@nGEM3HngOWYqkRO^wvXuh4MD;u&^$u!Mbr~f3IK$BzF7-)}{Fr;aEiWB1i7< zAk!>v3ag7<>sL6>XyKx$^M7Y|XMaU2LcHvMWH$S;5!otxdiyJrU2V5kZXW3DY7?*= ze^9A>+Z7d66;~Z7r`J94t@uwD-4n^|bU? z_HXU2yuGLI*78&b{)%~9<(5|D;NNO`M`~MlU)7aYR9{hD-d9zn6Po9hZ|-a9ZtbY- z>fDU1l@%3CP`~r$RQC3^Rwu3~@9OLx7?iqO`+8ETvuc`9q++mUUh}+ajiAExU89pW zS9W%{b`7*8f46NxyUts@3Hv&IlA^e;J$%7Q8 z`rF!)?G+sqzW(jK$rM0*MS(n>Jpge?z+~_6vYUA9Y}x$#CeDB4Se4}~E3a8Fea7?| zeGStR_z67;uE{ICi{^miiBRy-K=A4<;SI?L+%lWirUuHSC#GMN(W>h)%zV~jYaODgqw_>65#CzvgCT22w z;Y#P%A4zW|iEqux%#(z(MxOnb!brnVtQ;nbS(9IiG)TyYo#of41$4 zPvgi5PxXzrxtCtq+SA?MxuufMe|dW^KGke%OSRAST)xikEnP`Ccbtfb6Bli8W?7SF z%$NoTZicd5J6eI~mN*`rgu3{+O&(GFD1&?3OgwIpOm{MNM;zZayw94C=WeTCp2)`l zGp3?U{+=ZNv$Y|LFB9>*${X-3s91^T`1yQZKtvZrSL2C4oM^iaO4+W|5o1yTgT?dt zkTzry_2%fx`O!a50E$S?Z03x}Lo!8}DH@GepaDO&SY=W4Iy^6w+*62cN^}s~yR+{1D2v)JK>B<3?h zj~4`fK_h#?nkm&^z|wze-CYr#PNH8EZO5~YjbF^iGCr1*rjMcJj{CUae!{9?{Kf3c z^!ZZMald2%q2qpqX^y+sYLAxB0PyElls&l@1#LIZ&Q=ksWC!LkxPZKRTJU~Dp5L@K zu*A0|@HwHwA!+&-@wDCRS?gNjxPgy#8yHzyp=L) z&b?97*17ErqbBb(M$OI8M~&#P9i1BZP$`YBfA!q_AkVDU6%WM+wVbMyQ-n=}Km_D)_W3Rz@$e zEluO*bDzdtZ;HmTqPI@tQlXy=7F%e}$LKTaFUiXq1{DI!t++zj*Jio4LldEN@`$pz`hZhrto!eZ1Rk0mD&}f zO9DbrJM>Uzh!@sRXnVAbPkJ~oK8z9Z7p)}z#U#dE$l@g|ULqdRcJ5n8bWu+_0Af zeo4DwFL`blTq*iU#tmC4ZrE}*{yILc=cAD|d_ml>LqfE_(Qepm)_wdUlaO@oSn&?3;r3d3nB|-LQX>z~2fT4olPjC!V&u zp0&Q4?YfDNo5c-F1iqlSVV84UR;IgQ<7B{m?_AS&?VW?E_Ee`gdpWbhn|zQ)WX5!@ zwMZVB4oo1)CRfalQU^tgz1f^~gAnBV=Nv(}pOflLwVxG9ro>1R^qb;o+!hL7)`sYf ztMSg}d@ElP$K4HZJhM%q{9M3nGZ~y!u_21t;q)1Ers@~s3RtdG#-#RVR&FqaT`GkA z!8u9Tf$p;=?bJq(w6J5KMb^sbbqnd)zX^&~G5-ikR;;vbF>?4pA{x1K&PTz5Lz}Jh7Zc~fcJz2blm%` z1fGYr?tMz~Vj_&Fe~{<5t>}IPzHQCK^RIQT|Aakt++V{}gyC~&{yvO9umrp3&=!0I zCKMLISs8_Y=w^$2i{70gld7py!I$8V;<+<8FlIzo@kxDSU5Q6%-Qpsq%MiL)7CK7B z7?x^d$T~g-w?FzAGDRBj$d(c4tzOW!M-yf2+D9E}LR{vT+I(Na()U?#(H#6Pm8@EP zQhIaBdkSSv*)uC|uSAwVb*{woY1pBaQ8pBRAJTRc;#su9jymqc+IR{PJ|RT7Pl)i0 zwFjx+5X1K^A?HhCNPj5S=vNZ+pF;ATHk)*}Jnyj|0Q@s)%Fk?cnt_>8T`}jK)0p+R z^*AgRTeDgE-9}<<;p0|5Qf$^I1jT)V^nM$*jM=BlP%EKA2N_`F$cif3V3hbeey;(x z)aLxxaerz(#WIfjBW;3DN`v2Li|;UpO%YSMoLWxo{5y&8-E950L_}VYs=s5mQ#!tD zQ#u~7X{{g7-Fm<#gFbBw2R@J1Vl9kl?_%vcb!`?3+ivX!-I6beujaV#7yP>g<%dy= z?N+lNR}pHQzY>`_8(*^mkM-gJ-&hgtOBl~La&9UGtf!of>f%qp25;R9076@ZFp@;c-%DPB0E z1ra$iwr@l<*IaCN#FgG=u}scMJo4COSyRX*ig8?#8P7PqF3Pxxl$|2R&EvSZlC!m| z7_4P#4Ifvt*aF5~!=OwU7P8n%K2|eMhQKO9i&*)3LhH~ncIiS+#V%wU3;CEJ6fR~_ zSsR+cywh0DsI=_OBAa(u$5a0~j`ggDMo#>6C$x(0Cb=2c$)Zj?Bw2>IwKHN2ZL6vV6 z?DwF^_^3U1qHH#0Uyk5JvqXOofr!|SVnTI%2t>b965RLDVt5wjLT3lH;f3@JY-Sll zgCeDg1Gk)7_y+0%ag;nQ+HYs+>BW?DQ>w6rcD7Pg&1L1u*d{KWUheFuxMW88bu?)H z!Wwt#=&tEW#a{`m_u3w}WQomAcbamVYso?`(1I6XM(_=-hL6k@FI)Nz=8a zJNb;DeOg>)z161O>3`C*lYg=}JNbJ(J9(eD;U9n@-cx27r_C(mUYTWlGni#u z4eT{ypKg^|#{ZC6#(wF{r=&BVmd-pYvyA6umhl}S)Q@GB@l%;)yx%4X-Y3u9;*Zl` z#!{cmGX7PX@~_$*|5tC8Q9_x&gqcqIvkbjm-Nhl%!$*pbJ4oYC35rh((ud6~<5KYj z%jk1x=Y+1#Ro*P)f5|N41#gz|3(PVwk#XGrPtP)5kuLm+o@LasDQhSujeLktbt9{8 zrC5ANW&tlr)j!a)jF)9f@QBPZ9?{);L}nSE)w7Jhlh)pCwWIh4rKa7wK0VJ^v_ZG! zDQ}+fr&7ZnLHbeD1J92=sVB6-pJ%*_+N4?h&X&+T!x|^r;aprWY#V*SaHK;u|4Ewm z5etTs$hYY@U68(D2zgNWJLcS^QhIZ#Y;t8jkjsfy zF3na5;?yXYUTF?j26L!pbC@qj;sj!e9OlcZl!e5~g_UN*vr%Y!?yec0Ep<tcPlidKmR-QRDKs|04kG~R3>JNS}yMEC5;5hHInZAx`GtI%O@uEnM|9$^_D{F(F;-pQH`137%@XI5-9<48kFMq&( z(7NB5Q2*X{<`$?Qz5K)aywyK^`A7Km(2-?J5H~+&Tln!PwHswuJZL>&-|y^qQF^@; zKF(qz>SVcol-q-M7s@RQm0NR$a%}74`nSB*Ufou&wpD2B%Rf9`pSSAx4__X&t<@-d zDu$nd#rsfwL1Ix(y;}5uy$DTR&JOQ)?~8mg`iZQYbp1bg>HElti$5L8a?jxHraF51 z`s3Wv+|r$Fi}SZgws<5|>9>{$;Cgh%b%{gX8$vuqrWc z&Xw`f-o7M0LQJ-#l9wqzdn>*y{M~-w#t#B%>(Vt@Gewy^KAnyZOtGo&Cw?-u^z-+}_o)B_)xpVKXSBnzy#}-J0yv zv3*I@CKY$}wBD+kTk)reTYI_&wsx!L-X5Jtqtj(mKqKguu4uUS_f6Gcpr6erp>O!z zWx8_EpAbr4G(l9e2%&TkGSdkP40KZl=SU`@6luC-DZfel-S_>sJ65W@!^5M^-SAW) z5xp&KRr-YvFf>=cs`cv%U#zt6DxK7<)`AG(n^#TQYVYhycK4tZVi?8%-Q3c8>p-uT zCmF0hG8w7{qevfW-`ax@U0F_us3mDze+%~9jfl&rr%+2GQ1%Synkbe=z%isn#&1}% zLRfIaTK$If^YBR<=8|Y-TY?Yl>UGXl9i3Y`5ZYR$maI>~vup*@=B>J`_oZeFX_ zzAZ;UM(6x<@~u4sG%FMd9C73*?`&tdGu6B!+1JxN7=pJ0mP6Qlx3)GfUe)+^9PAlg zHOI!^)+gO7&B5#DW`R`myPDfE!0@bkyD8HQ`ub;^p*!T5^V__=7{2;2Z*#K--{$QN z&QgjW!*iAR9g5^&3)J=7Tc*YCcqj9EVH2BE$*rAzEw@8`_(=w)Lz-$o7doU{N>_pg z4trW+%o6gfQuw<@@<^yf9Kd+MLi*NW$=kexxW$OJjG|Afj|&?sau|X ze7?P9kgkrLYGjkq8$981q2YjG%&=VfHt&G6QKU@{K)lUcYYu5NZx#V*m1nBIv-MUu z4{bfS!*N8)IbhN}p`l6R5O3arzgO0ry0xIL7aN(M%l87_Tpc#< z?X6cl11392zB$7T>l|n`4OqC{I{Y?odHViRb8{#RMILO6yv@52G*nbNcw{9m>K8nRg0Pg^AB1s;NI6S_u))JW--!=G*bj&l;GMYl2H~`P z%T*M#6uC3`OxURd{!qFpr1U&*0bQ(}RUs?Fuk^Y5h6*&HGc`3C^%lR$@ zPfMevrCRzy7P5xJ121J4O9sKeS7L2sV58AjHrfGR2Ebqc601ASY zy-n4X45}F%L0}U`VDa2EfdBG(gqEZMUBeowKyEp(aAWHjvY~URVZDAC0j+a z^0gC8@yn=Xf`k(=jTX1%7OJL?js^49%2fNhm#o$4Jb3_+6~}@ z79$h27r;poTN4A0VP{HH3j9&eDQDol?8kGcu{2#SPaz8b$x37ZL3LJ-vXo~3BGw_z z5;R?%O5+ZKO1+|^UKK<#6is24MFFB?jc7!ZNkZ@ln3gZSGLjnVv!uq-#$~uH`vlA! zEWm7of+_YD00n^^GdM$nV;3P6LV;3vQEI$W%XO*H$c1z(>qY69bsVWh0veoQ`6SLs zl8Q5t#2Kal(XcEqOXX-9dSTFn>a!1v5KsWjWuijeW|VzI>?U5yKCYaRt)w;usQ}F-YT>Z17kve)2uAtr&}ft#ngq@f$&s~9p zGm;5_)V(pN8=$$IXOQE#E=792W=g%LOQDOVKcU{TJ+7NZdO>tlcLMw;Ek@UE(wAq1 zcr3$=V3(A#ow13KEEDsMQixoSrL&ND!?Nf?tRGRRQf92*QgR1RW?* z$lw&~P6HHv9+FrWeTV=lV)0TD40kXdFBRFTV?nFPkbtO5UopJ)YRy=OTDt-zi3VUa zumMh!fHZY(n}F_4fM_f-NUhldMzWP41_S8r%=p;r7+LzR=l{``AA>6wHm z-~^e30B8!qM{%Pm0EHH>Xz&#TPiqTJvY>&;APs~y1?UdqzEd)|JJEuj5^EZQ4F1Jh zA$4&6q}F>hh+27?jjm#iE)LKX4>^kHgHq5r)JUK^eHDO$36vtp_8-#VVSq1c@EE`o z0!ptoX|My;X$)5Tn1I5S zga$XFM<6ng`4@XrtaAE8TtV%sUrXvPfV+jJrh|}j3sM0uk6PF83bE3wJyJ}%QYs*R zYf-e7aiP!^SmQa?rdu~Vmb(uLyY0t%M3=TZ(! zq@chiT@KBlb>!F{+^1!vNT*InEF@0Zs2JnNMkafs#NwrFbd^#;Rz0p`Q5khLV_!pW zvL#lyHeZAD5sR)O1775ujA3xic|}0sTCrq+4pQzC4K4wQE~0*~KcdoKL{K*pFXf`? zz>8Pf&@TyweuH3$kl7lUkz(NWuTnsu2M6dL+=sMOKu9q(^aSTPVAMrnK_{&uWo?j` zvdSdZLTioo=mL1Bj=dA$KAm?Tz!Or3P!|#bWOf5?kQ6oB$O~DK*dc(RE@M6FGA}A7 zbrI`K!dbV;=Te(h^I2M~YMi+>I<7(*nl zfV4%ZbeO_egd1E!yl`o!26rO(jLGs00;e?^VF|3hlofGJNP!3l1#U99Hm5Iw*!1JB4X0YN@1rgFBc2{=L4 zOoNS}@Q-5`0!^k71S8-r$F{4gDJFB(Z2I|hrz|KEW_lI(>zcE#gEx~T7B6L&vW|RJ zr}W&Q5mDgq2E2gS-lMW{=t|A3;s8g8JjZy~!P5xp)*5D`n6PrwXzg)!B2{;vz6Cfa zN@PB`fH8ztx~S3JsX+)57$vbU0)#LlgQp#6GK4V=Iu^vBYGejffe}N{T=))$8lGkB zYTPvfnpEWiDwc+rC{ZjMRP+wDLuM>8bbuaxvkv2aCX@sTvW_ZekR}v>3>lIRErMzA zQ5c~od63I_E|df&IVS`=sGwX;dn17;AX2xMmL49| zAj)vSQ|jZ=4}$)cKx)3|SSd58L012$23h>1fGkeop?2SkTW7Ej13W6RP6_ZQ1kA+W z2rT^?DM2EAMHnwgK}W<2(tR3y6v4*@6r`mB`bgUV?GjU|_5mDH+SZ*0{Hk^dhNLcu zmdbRrR92?lg9K`LRzNhF?4_0VuO>i4nrY-pzh>ngoso&=Y6O6cu;t*lWCSQI+bglw zkS@av=JLuwyjg}#rlbQoX-<&j(XrCv5{b1FXfcL2G6ws{h=nb(xdo?(O*hfv4 zLkJu;0n|zc!vNr=?B}%LJ_qomqPRJeaF=-GK*K2lA!{K7t=9a|?ThTt-mTY0A(*sk zxkiFD42}<31QVCDO;_20=sg2sz~ral-buKxR0iFTT+YDNG8+B0}4wi z%S)Eaa?9h$^-4HGO5s5kbg8U_ObV^vakkqcV&z__QJFoIu2> za0J3~jY=Kld_(F$EJ&SDdxjA7Xm${wN1YP@G44ZBtj3^@9;%9ELC$dh8xf_Y%cO=x zN*sc)<8eqk4Avo~tS7Z2fj5_KwS$olIHu$ARt|!6Jp9WAlrd%*<&D`PfaqEiUZ+t( ze!5sLNA!>=-%JMsxv8lwWI!QpAkh-kF3KL!a#bU&`O7w2C-6vZ)?Ih>`Q6MB%dOq~Y3GRWXxZGgabTGV~Ghm`IGM9A{g zIo>iqqA6xmp4F!KIe=&tVx?7JCBeP8(JG=d7pXd=DS8|rdXE^fS*02z(q}YCq{jpl zq~I9x!cHrDrv}-B-5O+7Ljszb6g!3}`W{|Y0Hvy!#9HiDnFd+wVGSMucvORIz>5M( z114#Z4cMSTHsBrsGi#;zdbI+STEPs0tO}$8C`i$5f~B|<0siGWmiYH-kR9BgRu$S# zMhc}9NUc%Y7h(H$Y0jYpIgq~6Gl-^v$@GOiW)ftxjtBwqk`~exj^ReL2T1K%jD{*0H{+I|4X|ty2`X8y8qWf`>_O#h=UfGV*e1Fe2XI3wnEa|9 z(6W8)QC%o8D8vy1x`%7@vRnpA6MN3K(Cpjm2;I3h-2IyBcLD@e80)p3m9bukIAdSL z{i+6a6HFamBWQ?8Mj6hC1MR{D5Gz%k9@T(sP3b}l)EMoa{YNq+C&T{75Q*KfZDRk6 z5h%&9|JD#94@ymN@sypNR%xiuKp$KX?yv@DLUDT2SaG9>o7C{SFL@3I5ym*YJmr=M z=vHG2y;s1<5WqtM5~p0yiV7nLa*vl%8?~j}2oMs^*n_xF3uronSoBFjJh^PkWI zBY`dg0|yZ>*qbB+UTGs|A82$JWojSp13LF}0ACZ(^9PATd_jy!RKor^y*k4#fFLO| zpcT%O5K-B_IgG$@9e)bF2dR<8MgQD74T8n4Zk>xJxp(SVw8DKlR0gVnX6*=g|D{}$yXgdr0HOtW<5*yqXV!tAw zozR5hz<3!Ty&B$01S~K+~8bTz$T&AUK!EC z?PvAiX0700BVH&@P7!<#4VW*W0~R}|6|oL!e@Z|hxGu(8U5(5IX+cxwjcmZJGoV_1 zu>p;N*AC)-PCy|BsA|LwNC~1XG)e&N1nwFQZUWe$L9gA+fV?0R^NK9hY0&Ee zV^5*6pe#U+7*`{6DKq;dR^(ub27A$kodTkX`eGMG*_%LDnvk*=H_*_{I*9v49eWbs zD-vtCjl9y8-IBr3ow02Ha*1_7K+vAZ3=5FKA>+X#fOwJa5wlG}+80ZTY`oR^Dbgj~ z!pIOZ9g<9Flw3fez&9~ik@-lj)38a0+olxSL6@Qn_h}8D22;RGj2!9IF^R=8h_YUn zSeXWGkXRc%F(S4}`X~nU7@X7F%Zo$3`7QD;3h%l zq6+eo8Fbe~L7-*sYdZEdbTV7=%J`ozu|gzZK(R_7rcnMC2S~;sjW~ly#4e9YQRykv*2c$l zEPBQnGNpeBZV(T7@$wZjng$V*4Eq2=dYA#yV`Gh1+x?>m;HZeKu-eBoV>ntS;VzN< zP7Oe>(S}JtW0=IuWYR97t8)*)$8`_!Chue+!FdMoDK8!bF(WY_AeLeE4hQHva#(_+ zlu|Ftac~8*6B1BZSmz}O6PHL=MgL&ARPyv9-%cI96QH-8gtv-l!bCu2@L6&zb2R|~ zH94A5J6TE)jZZe8_g_XT3=Z?^32bx08G8IIJZW9nl;WJ78 zSHX&y#EL5zXYpVkV>wbcNk+RL;O?}2jNORY$6>GcG05S=Ds~5UP)rN-4vG^48zxB| zcqs=%Zv$RH=-^6GJf-yy%3!du{qA1epd>+L0HXv%uQ<>U>nRqoOejXf zz}P!+@6;eLM1}+eedV(DE9w@OvCD9S(qU_sjZEl6I10HG&L8ej+hvCXFzrp&b`{^D zW3bAg|34r9P#&fs>%{&qzc#UXrwldP>2H`+p+Ww?Qau?#{0 z^h>E;9eWJ1C(;{9p)697l)7Hl&x#NP3g}5e@vH`4L)Ysxhy=Mng7nTsvmek03#A|k z1qBN(Ds@0bvmf-54j}xDP9jcp0lA=&lvSNh58bP1uexK9XF|QMMN=j`h`4)n|Ly^Z z>ey>mH^kF1{#Gr5N*&RutPyewnuwehORQClU_zg$snc7p(w@3>GBp5AqmFtJ;4uxp z3h=e`jHJt3;0*h-Q}>6>#DB8RTto`4Kmi%95M)N^6M)iUh#F(fwFCgfh-5j6`$Y|& z0*KMa*zo0PDwf%po;nFpNF_6wx<`Y10PYL%bsxe{>LgZnT7x9d>ly?kR~%0qLiPFB zg)nfkJsM{k^N99Qo%$%igPJO#?vNKJb?ixir&LaFV0sV~HSGx!}IbCtHyqN{Tu(jU<|F={ z^^f@1h}Q!#pXGjwVNyrzn&LDdE=;Kg%OL}If*v>UvIR>BGW*Ggv^28_h#yJmHA1B| zW07>(^IDok_f4^aO$ghB(x7eHK)$SCbBlA$8w~74IwNQia9&H{){^I&kfeOmscZ%Z zOauW%1S|mJ@=#r50lmn8 zL1Y2F$O4MUJGF-ljAi!e91-b7Gze6*0}3`BK{RIBAPxVGE?|{Bs{}z@N^7YX2yx|O-RBSv3j+oV3+TlK4B`st z#T8J*Whg)%4mo9B25~7>aTk;TgNmF&pyD!1A!rhDFPR7}NR!u66?e``#iWP}tru6f z-a%f9gS-Noyh;%Srnr{+fKbN{9{b443aacG1yy!54uS4w(71qeWNap&XymGbK_ir^ zM&Mk)1u{|!h;q_K%gvk1%xkI6U?x5U>hU(3&fsw?JxmQ65rXR|r(Hpv%mW6Zf0@h> zsE2GaQ1rwMlhR{k0yu*PD+U#NSs+Ed9&M2sU zbJ5+p$Gy^3;W}A9?$tzl6w_j5Qlk37F!ZP{HQU&rd6sexMu`S!Q9>dORA2K7s;=aZ z=nJQjGyXCeCE?9MNt6a9Q5uvarKic)wOLRSrK+TTR=NO+!KBpd3()IJommxjK`Am9 zOkpz7yuu*%3RB{sF)0>}4QRWjou)iWRe6_Pc8}e|2Q5*fS~^g#@#>%^r~@!0bS)az z`=I9is>;Tf8N`}sSQi!5(E$Zn09^`US(Z{OWaa{(thDJN17Q?-b&aD`f{K(dKnDMo zm2Z)Z%LsUpOb*$(wW_I4Rv28I>pSlg@S{F4@9r#fM?`+|u{{hR zoTTT;huv+0GhkT<#ARF>^Gic)h3g2&c1Y*2fC*p8BC5<>iuGP#Sc9(G`0BS+KobgR zGLD-D0EceETGJvGrr9vJ8Kb$A+^fU+s3jwZMH8?E+qGnrKrOyWK?*H-)3P+lgq9+T6zk)(qu9 z4Sd#WR@J~Z?Zv|TwKxO@dc2vj={*>mCB+-NQRrY|NY%tUWnI$IgJGrSGWn{G*mMmu zwkQ~E41u?CZL!1gn(+y0f}I6iPu{4d*iw@$S<$N8j?LPqpb;~=rU6ve_SAz$=KrTX_xq0Imh0 z=~H7;UO^WUvN>Or2ORgU0GwM^QryF(E-A>gcj-O@7XVR{EEi}v)2blhU-$czYE)m< zQr*YmB_b9sn6-Y1&$`@Fs)4!F58c#B0jj24<8qgQr$7l9l-AM;5R9>e@Q@pY^oNHD zH~`LFv2rvKb!aOda^$HkfXB2{-FlOO#}VbE67X@v z#5q6UfzD-s*!Add7~n#Ye2N-co-Vp*UcxH{WrO%zzrQAN0Eh&r+o5G zq8Sg>HoZkLx!ovu>MJNIMp&5`fQ;`_*h9c!@_qx)BPk9 zRAtR*sh%)e)u97h&?;NwMj&imQc#uMXCS?ZUZ7PDJy-?Z=hWnZTcHqcF(_ay^#dWH z9HtMDsTJ@V`MSGh#4^9d(ks z^i;`11(Z?|&qZeqi`&9$xr6|4$ zb5N`-ZcxyLBrKj(zIe#Z_$_-9u6c^0Wve|62&?QoRDfXv^Pp7&MV8A7sw}aA!w3LV zG*e~HDwv*wza90MgED1DvyVJypb4O*;y4%UK?%nZ+Uq72K`AJn(vX4)cQWcF)u5iT zWpBo?Nwp{(dVsu^XeQ$F^BP1?7oAm*kmgd@fKnX-zHz5ikqn3OQyiUS%q(CJdB8v! zH?N>f1C}iz2ub@t7LHda%cV}r2Mgsb8jwq!Q;T^){P~PMhqyq%;9T@6$ALV#7%F5q zF+LSMToc;G51LMpS%YPk^K?z-Va>5B(^Rrv`Sks-VO1%jW2oi0Iw22nWr@bAPI9-F z@(?X)=`bM5Vr(Aj5cqD29uQF6SmiwJZk^$7s_gHkQl}|DBR@GJWx6%LM9FISO`lZ| zEF`V3po~r(DFY~)pj2I?O~IxfghUOLHti!D+f8_P(-}KX^AuGGMRO~;-9YRu)}k~d zZ!J|p@Bwjd5o>|HHR5-NKA^u>1djxi8Xm}^O_cXq zZ0-f*3a26?07$S-S9FAZj56<$&@x@d8xE_O*{iBvQBg=*OT-$42;tI~HS`BUVc#cD zs5%wOjQNim?ufQ$!Pj++u0j$E3n7aD50}9|2@pJ7wnhCj+YX3WL;7&pep^Pw8*oZl zQI3-@SpOJUe1sl?FVn24jf@o;Ro!}%Hfus%;^7d4lv!`QK&ZS7=;kyt0E%DjmGpN<&YShNN;`SF@=E^d!wig($07V@gT`Pn3q9C=Dr%OdK#}NI7T16JMdy z-$Dt!QR77nHK9jgvxm$LgKyK&E5^hW83v%&<`0M8PYL}}=liYKg`TPNJ=g0R`tDYN zYeg3r2aihVTI5Qf)FK`(y=1@JRIz)eB}&d)<$1tMc4qP2Q6oi7KjUWI!%Vj{uA4^L z%pe{vlW{FS!%slXYgb?{)1j3-TxMt8nXv@U97Ia&iIg{n$9d8#);v)g=8uHMdGaxv z#>W6Te9p+>6F>}|o=JiD0jwryB!pSn2uUaKA|UKH;gf(NWz6t5v%e7YSrc#CZ)0g~ z|LrVoJ=9J3ZEcF$To%Wd$#0DW3@L-`xVboUNIERPnD?f)QKkyXoK39*fC~mL0G`k| zQEMngi>|308shYjw3MC5Ddx^Bky}C#V?i^11 zb*_O}b#C}E!A{DTWx|GU>78-1ASMbz7u^7Ju6edbdB7;^1%a{ypxf1cF)$Rn0U-0u z2#8S{BtffEi`_$Q!UePsKAcjMYmt%@30w*MALwdw3f=Jp9_Ts&t|i3uW8OsWHYmHy z#9hX9BJ#K%YWF9#!UPok-KZ5AvD>bRQKd+~lai2Zl)8MOyb}OjB9GoUg<^;2xJ6Uo z8S5=E&)vAy$~M5)CUyiaLviAED#e$LKGey^Z9n;d-8S)*lZ2ID0$%myt2n&BwUT+v z3a7VIJY|(tdY&$`|%UR+pYu1BXHL z21@@I6?7rNw1~BXVcN<245U;F z!0aG-$iP{^IRyhNI^%cR+}X*zv=`hhX1-MlWfT%St3k@a3fK&IiUD#BGGv@W$V`H+Fa z^=Sjo0m3Q-%Bm44t5q#kRxcYUtfF{mmDO~H0w z6=Q+oU{3+Xo}C(FgawgHh3 z8ET`J>QHAD^j$h963{72yysfM722TyO0_3^KtOtutsS6h=!k(AHHJuOEgc7-~LcpcVK?dz(7 zzAN#N5JqUGy2RHg4GDoEg7gX4Mu{{@pEU^tyh28g;zniiJ|*Cx3a4KcszpoLAG>U?fqj5G4crM>^q+?) z0w1$tRK{C18IBigE_+5n=aUMJsw6~pkda?Nk)N}izo`i#;Wx@WI){kM0_B)eRez@i z#}>QC&va7UWsytdsTz0@4s49$gX^bNj~I9psPtHJtGf`=sr52SpGT?RLlS77Pg^==t%2%l>@p2a`YB z?Te!~0v(n@Pcm5&SFOG%^=_0KQYd@*CS}PVDGqcS5_H-}a_fjQ>Q6$UwN%-*d^}xx zz{+{L^q`gVbS=C*Z1^Py=`dlSz@t8G+pE8YUMt^-y2fn*Vwlvjfvb$tpvrG(eJOODYZ?*uNTFI;i0&XG`2n1xNHZw~Bo4d$X z+Kd~wU|>pHcBr5N*3x>Qi|SyyDMJK^L{q8b28sxs3Z{om1PFo%fGPqU3Me9+G*Co< zLrQhB_4;oPvn6v`8${$m5Fu&mBr~T3JVQRKpbF7zAVM@VjUnLSnh*Hynva1jS@}7@ zD+=o*75Si*9t2(R4UyUsnsl2qHu6waFjPwo0w19{q)&x{l z%o%tHbV0+NXhr0NK;^{T0-hohBnEki$k;$iFOjcnBv$Edh~_y&J8Y#0EFbTImWO_L zf*yjvQYu2v8^JsvvI~L8ZUeiJHUTgyo0lN2Y;?+G#1+ts3z!}@aRuCO;sUC;uqEJO z@}e#DUR+95+$AMwS^_$8fxVx^Z5jPc=6#hueq759jh9)oYhr86(C2HPO76nl9E zG^#ai?TLcw&r|lNJl$552O-cbVi5L}7rQBfP0O$?_q0JmuFzayX4g2Z~S}ICt)lyZ$B?EEMrfaqxldqu5+b?jjqP`ES z>iui*UPf2%J=EBs`4HvD8XAaW8@sBnV>%f6u++x`C9wzpN)m8Cnf?XzZVedpC7|g`=Zz}tx)Nuuo5C15C=6n+Fx&HZjZqwYT)=%~ zlqcXNRaDqq1uapdS~^zSc1au;bx;%30T>dxmg!=j)m~6lHhxxn7|H{>#JR&L2L4&% zR58a5Tn0s-lyWk0=?(*N1#u)PMMvT?fEn?iMV*Wixn(_*(zB)vz%YeGFCF9|C1BdS z?23Xok?2F3sam>h>Td!q8dwB8qXb?wp>2jBv1T_f7y+7**dPSBf{zU$08$$C1z1bN zK>~5>5?X5WM;QQdt@IxKj%+)~xYF}*kqt90Q&6Y6&GWhe z%T_8*h^`qXwM<^M((7opQ%iZcbdNSmi`s{kfQMRuW*9=OAVc7+;;9Or0X(lgsKa6+ zXoHEM4JMLOXfczyu{RgR!CVk$yU6`U!Bb3UpWxmJ%w41I^!EcV=`if!)uhsL1&g(Y zGhQ$-9uN!+jfP8OTb4K+HhhAcVVk*{l?zLM8Dz^a@54%QyUH31c;HO^a%Nwfy;oa3hMMTTJ?h+R*Id{!zN{L1iDa1 zIO*yi+nxy@+dfIGIPQ#7SK%F__<>}S;j8wKWwcQt7=QV`cWcx?u@fp#@~vKrK- z`mNU6Q`#((SFCge@KWQ)wqZ-G4WU}Q(`J1qXk+KW0pw_J4xnvjLHAj6*d!3JeAvgf zF>v~-)_4P}|Fg~3fX#Rz8pyRkA{qo^LlKNEixX~(u^ZJFObn@-cwcSwU|4F@u(2}I zjLw?74D>b@0$9SvwRO+inVMi{0cAQ5YEu^yUASI%6&Vamp>3WZ6ig-Sy$lT<)lK66+>4Wz9G4xveG z1VMI%eBHq7C@s;s#>Nd=rLnQsbJ^4j-A*fKP_!u>p+(m`WT4lVl%6AFbHI?IeMmQ_ z5t@gKI1B2X2!M;`t$ZHvl&-ZrTy#ZCQ_JY$jFyHqhzO3%E`3o6c*xC?{a8#GPIeUT zWL;&z&M|3en%YlhL;)Ewb&wBv>-U)sf*iMjAW0j@+T_?%33axEjI07ekUeG~Vxvwe zRo`1ukg(yJhYdUixTv6R09yTcEvm_Yy^EB|A3X^ z$MCMDi-60f8X!%b{ADjJn+e}7Ka8+4nK8ptL_>ptL+|;03^o1_Ei4=G|r* zXn)ChVh`a~n7QJqY+P+jsit23 z_Nl+J5CI<|^N9@n+wjxiXA(H5rXBp9HKlsvi0+eV&eh+(9CR*<>v+@!zEa0)&0?Tl zQzA`R`E{u{3Ap4kANf|31h#Wzyb1=in*jp_EgFc5*m`GX|6a%=v=p7PerTvkM!|=N z^q~XFZbt@Ou+`@jAaiSvvoFNzkeCiC9kR#3UQkpZr83AlYfDp2o&5F7we*ZNL_xy* zs)C^>N_kBrui3ME-7B(&M7`ueBNDOZ43sf&FrlZH=)AWn9crQv2{3~^`pJ3okv!l& zD-|x_Q3x)O6Fw2OX|ZzD>+HAilnHbTxvIKspfIs$;Ca9c3euaUULO6*qVh1@@c($+ zFtzX^YLG?etbu0%`GDizePY`y^qDakaYpz`{<9raB)U-z$lxp10nIec^Y@^x1yLup z7+4mIkoE)2TWveFosG3Zm9dvoJSD89KGdmC*xZsj+^^`Me#c!qdh>JeRBP8EeuJNSykc%cl70&_k zxU(3t9~fQ8_w_>BgigB2cu};0Jj`a5aZ*+EG8l+>{(q#4maTmTK{K=oDK$s=A@TzG z6nTkFaH3w|&?Y%98)cWylgs1-WQ?6@3B4MeY2_J{+v?>CiDIa8)YX!dNqZ?v(szJ& zB7ZM=kqm$MnM;iu&s=0Gzv&^KN62T$ml?BkuaK|8cOc@a_8H(gNX{oJ1Ppw%CCYn%caj+| z+C*L;pCn%(U#E}t&bm&^x=cAjdvY9B%zV9k~GVq z(m#VNZQw$`AyF@Ntz@Y~Cmei?hKHtp{vwC0;3=MJj|13xCwT!oFOrcZgZx?g&JL58 z$gAY*&Nb1d={T1Xz2sx$E2tJa|5Gw_?$aP+3^k6y1&K?c;}rd*d&t!PL&prmxN|_~ z$rt>1N9dn%wEs;!1-@LPb`iM5)HFru47r6IlhIdN^cB($fO+yE@?kRlve9-t9!mXF#%&|Flab4Hl0#|% zSX-BnTYd8)vOy*nlnqJxZ6$~HorzlMcWoU!*V0CyMe><7{SH%hh+Kt4u3j!b9C z@KH;Lf!5H-oQu#^l+cUDw0*Q)vOYq4jl)COWd}J=W{ec=Q>VzMp`{|+! z$@63x+o#kjHiF+YWx-x)`Uxr6Klp2{{3_#IqfIB7u|iUxZlkQ-*KOq4PaY)0ug>#f zo_X>(xlFEx*1(}HeWq{LHqjb{eFHTpT)pc~!OEV{;&0c|D2 zn?skbmmHFmwUc|u=vw^^zH4a*&;j!iSyxlYtCzUPd7dM$GG-@vkSsi(!9Hi1Q#8wV zkcY_o$t%n+cxZyQsYr&dc_(>^*w+HFPZ4zyW9X}wEA+o?<7ofG^nafIh3AkC8*hQ9 zG-LfkdC=Dj$jiNNEu{t+A3nuL(%s}9@&@uo@}?S@0T~`5OPnb01g4$pw?9!XbnD6V z#g%E@E{yN;dwIV6$2o!mk0B!_gfzTo|)eeI|G5cx3q2zi0LNIpppN%%wN z8tZ9^zea%sRki3@16O<)W21LdYeT38v zu#r4V-bbDz&y$al7s=Ac5;>$HfF$iI__a{!pE6E6xg$|7ebaA*tPwm!$QpH0rfD;O z@7z5#qhY%_lXB}Sdncn5fq_**T^@^=h`x>A0mI^xz9 z#&cuSBa?;Pc%HTabL&Q{rRfR-+T(+xGH9v#oU$-7IWY>L?I}bUgDbl#G|@k!rOC;{ z6jk}cu9@Ark?E1C-394S(TS3YkyE|k zQucs<3f&&E@Y)o++twpG+4Ye_5_(BLLJo9Q=&CODu4Sq4DbRfs+~`tUHaN*Qx5vjk zT`Ep(8G>%exow@4g%tYxSqh{-=zf7Q$&KM5(8=AFr~AeAE=AVmk5Ws4?pHyDE*;Cx zJVmx8L7tKV-3j18$KBF`giXmI1-gGlL7>BB7Gm&FC$s^UkQV6Lplbt{kQI{DN%}0g zi7fo}K-U8-HWojSB>f2=pCkMJKEb^j*?ga3O<~+GfC*i5oPLWB-H;o@zR*ejBH8!% z)-ZI#;5*471=+tufxz(h)-rU+6=Azt3Ut$y2+X+0kXPtZ2WnJxy?n*f(cdQ*lrHtu z&H7t~PWTi5q$}yqJ*}|)kvhp=_fIQLy+!}&UPJV+(2(@uVbIhkpWt5g546hu1Ui`` z3A(@hudFg(z6srf4Rq<-&J#)`MuZgldy0a3f9WmwLDUU@^eMgaFp&6kNP+jeC`gAw zmtJ{0yzH*wbs2?TVw|P)U!a%n6%etV(2Km%|1IQtf0_8CbKfQNAfzyEz-v!iAGER3 z*gBxNj%)E=aqZvYy5g#9i{Fat9J4sBxQ=h}Sn*~V)Z(t<>gyI?6&D$(*BC0o-0JbF zJi%pMam2d~9v9yde8}UvzG@k{5o)yuj<`%f;&6MC5wwFE9} zdM$x>)DQr0@wHk4f24*0fIqqh?_7gFwg!KE4gSO$ybHYMR~h#$i5;p-q4W4Xx=t9O z==HInZyJiezdPs~T=cyO`yb{hPA~S}hCYt*jHnlVjDRol%y_&MyVhRtK>w5AI}`XX zf=l~Qzm~sGF}~W5{)E4iaq94Op$8X#`Rp40J|CxEI3x9*zf1U^+R@|Rk~&Eyf22N< zz~82o_4+Mq@E=}-e=tt{gzzu&;@{Dm;6Z-D=fICA>VFdd>+?8cN67c7v*3fKujtp~ z^rHApz<-;1@#lbl0eoKquf;+y&sV9_|HTeI!247f%i!C+z{!gsIe`5{) z*)_P>R+DdkVGaK0Yw)XU@HP5R<0h7@zjQ19q&lO5c$R*g`4C8$FX`vk;4gt|pU@K@ z)33#D{d)ZH0F#^foc>_!ev|&91&{9yoyp{<{$QLwdH^6paA01ge(^Yt5$ zH;j+(W;Vys37HS)ef{gP`x1CltH(#<=&RSL-{J9UoLV=)cJqvlpZSqEb!RvAmp%UD z$RqQ40sfIE^NVq`D*ab|`^7jqCH-}Iyk>uJQs(na&l>u0!J86_2l5L;rno^pm~x=lRJF#nJv{XnH(-IZnMD`v(1HXV#GOVqm)zW$4``vU%w3G{yvM~}@>@8!*Yqj9{Z zTjOX?CuJM0ebZC1`yuon?A`Qy98I35e!$niO8h2;^+hL?+*I<{~Skm&_3n;qv^lJ?rY2o zw`}#zEv$D{aBuJCJLBk)tLSIHuYZ94=j;79cjBMt68Lw4uO{$~arA#fAMDq>nf3=0 z_1k0j#*Vst&8(-3W$I)6k@dBC3Vl=Wy8ZY+7Q69_(C_m&_8ddrRIA7Tc^vgDL%-AG z{|^3p!Gk<2jGyH18uk|d_WieHWB1LI%ok7J(hhw;^ydT+0m^Kq0Gd!O<3e;&KD2N*xl|6Lrta-Mq6?=8ekOP%_-U{ zw+vuU^r1NM=awI2z6+`E|CW8R!^K_ms*Qik&&JWiGJm}OZuwLk6-0h7-z{h8e!jhDClZ5$oA4DRRut#{L2aNqvcHSyxsEz}=M)b9YllEC+{ zUpo#yXa05TkH^tnRqTDu_`mh%;^=c%srU2g*8eSz{!JhH9QXB~j-#T;7wDH`_iqNN zcfKBbyh(o{KHd74arE5-;J*EBnK*iO4&3*D+e6{}K>Jpv@MCfGiAC!Bt-srzkKIp$ zM;AO!{NHj?u6I2C1JG&$C*AgjKKSGDAH_fVL3=zs`>~_KkJsOAM~Nrmzw3SdZ(;A# ziTd9G*5v#9Vw^p_gMw#Ff4BW9{jCQN{UPtUBK)@a{{CB>a>LXwnmt?7u{(u+QWveh z^*+Xv@ufZf)!G%ieDX|t$!4|RmO`3JpEUo)#UrX3jfGk@pTSDA75|(^*H*x^w;O>*?%8h z0{8a3{R?sQN$SJ;c>8~$ez0DD2kYG<9pHYx-|pH=QJudzXS{v_b9Q`@+rh2UY&Zao}`gQa% z=yB%jBYEh({C9qD9KE#>Jk$@eA3z_@uUB_g<7j$-_MN`{&rqicoOI_xoc;{-y_jo>be~0~2L!Mvur|}8s4|@Ec>R|lw z<9!ByfS=$G@e=3lW!jfL{qL@!|6-iF2YY5udj7r~N569%epfvGU*R8fv{`TXT`i66 z?|P8&68gF8NpPX}{&<(Hr(%D9KDdkZ^KZJ5-_OsxX5uKrcp)C$^%JZIdEcJ%^j*I| zf9E~k4t^wdk1W978PCtB>0fyA_P%Qw9R1bs-=+Q81b!iQf3*yr_w84S2jWjY9^CZ} z+Fz~H-+ep#t4{FKMt}DP_OI9@>=*BTHICMw0{8m4dlXm`^rX8hvHRm8*y;A|KNh>s zU&9{W-gh60qkp*(eR%)98~;B_ec=D@lX0|6eb~?4{qNXch<^NhyZcY$=to*<-){Zi zlV&|zrQY*%PiLIkJPUrv?0e7K@i*z;kADyMJMZ2He#y6gF?RRvWcXf>zZ%YavBv9r zekhKfE5g6`&wGlo`_Jer?dS77l{ork;qRbt|4-tmQ^r5#@&A+gCHnL8@1E1hdl=mN z$35J499;lUF`wGG;`>kR&(G7pm-n8p65kF`ANaq@_+nqL-?k`@J`F#?UTqJ=u5g_8 zULS45tBdQ=*8$_FZ5{p*#%KL)V?VxK=>2$Y#W=b!OnnSJl=jolIC%UrYZ@7)%sHngGMW4<2yJtO+@`nZ>P^MzB4=i|%0KSumU zzac)~%ldM378wQ2V?4c{dj*CXNkY8{uUqaWB)e} zeX7OU-}e;vt#lvyzwf)5pE934KlgFoxD$Dtj~DmJ`YHDI^Zh>J$^93JU!lK3oN5{X zU$F7-n_@r7cws+z-~Sw^HX*Mo`udO2Uq_<9PsHvt`bl~H-N*UkXGLF^J-@#bNB>^< z+2HZ>vD?}Uy|>SOUyj{ZhmgO`*ME)v&n5c*n>hMfd)>e8Z;ss`^+WIH%l++f^dHb~ zn2-0fpZMlDxL?oje`g&1+I4Wx-~HR-=;J5Bz5m@mOFUZu_xt<%=VI5lg1W?CxbL~2 z^)((5&{r6* zy%4*Ii6Sbq<^J$8>v z`+#ra{M8G-!PgJO?tK@aKkxCe*u9Sbq`dz>@Dp(~-^D)C%l`oP$wxDZ@&9$~j-Rgc z|G?+a|FEw|{||f#{BnYx`>Nh~aIcRCzDc}q0e5$$WPkqPt#K+k2agWP=o%pY}_k)|^ug&Aw@xkrDnxH2=Scs$FM_*z8`QV3G-$b8XzQ2!i zf7vRO@FOmGI8Jp85H99z{yz8#?vL;Xchb{;MrbAZ{)tcj#}fAF_4R)eNADO$zux~I z{2L{%(Lcm|{A=_Z;?F~Ov7TLp-s}6J=g`k#>RVw3{XEo9eCY@G@${h|CZ1No1N{W| zD`&y|e0m7^o*hcyKZSloKJQNt;jh2i4ZlZ>--kG_94#j5m*Z$h8GgLH5B+hR>bl7N z!v@pGLw^RXCX@dm_HXC$-{4OVeKU^A^APN}{yVtOdTSZnkKgfV9Brn*5N|r(6-WPc zBlty6|1$m{{&B#@>llK+V~O_cXIodny*@go>Hk8ap7YsO{4>P=j-QL89~FIjfA8Qt z_Q(P7Za>~tY{o|A(IwDoLJxi(xhV{c%*4KCk-rdt&$ODR4i3ALjlf7JuL1>*wQ0&f6j0JbZLb zfBzzm-rhmkqNo48IQmyY@BQWB|42Rh3HzgmzaB^L68)Ss`bS#XZ;F149)CKH{seyr z`_V_ZU;RzwjoN+v_r=kxv=8g`BR_~emY`=vmiL2?j0r3WdeS4atf%5{W#9hear8YK zz=u4}`uOML;GX|Skmq5s*MP4-hd=aydw+W5KQP{<1pd|7{Y0GL=WpZaKkldgvbBHo zZtlxkz^fjAmi^rVxVQhK>{tIS_6YiY^!wxJJ)7{S1y9d;`mI^$ef)W}#QhWcb$&iQ zdVqS-SEy&cJ$V}3^Z)2^>K79AtOxVhJH+otS^wTTNWJWbh^LRTo?k z`R`owKBANJ{EuEEeq=oT*Vs?(gg)=_YrH=Y{yjgBwQ*h$`vrV`oO(d|AGZ1Z*guM+ zFP;TIVeKDdzQ1)5+}roDJo}+M_*q}ieOuEZaL?~!ACKKXzKVU$`}&1A^`67Xx8nO} zJ#I$+Y@4tDm)zGc(>{#%@8f7M{iphUJ@cVM^y~LKk8}U>hppg)R{!|J+z*0=`SLjH z(a{Uwp5Mo}fTQ0U{=V4#?q&K9?MLG1$F9TQdfy-NeAf{48$A9?z?#5Gj~|cSXOAV? zFA*PUpBXgy9{-&{uB7u>~V1K zFHby+JY{e%-xJJ-Pt1aQ{+}4-{&)lUDc_#`{WHtpUY;k`$n(Sr>?`{5{{6(MIQrkw ze~2efu;1-pp?=u+_h+%3)LiPi$@|3r6GwwB&>yt=F4ohpc0%CC>*DhV$HZQq->#lG z`XK%q)}yY0IQpe=`t$zO#r*AQr{2e#u8+pizV+Z2egAL4@0CP<+;4qeNGJP>B-yT=n3K9_x~j8<;RA> zSB#%0-yORvBF}=y`{L+dNc~BV|1kTVd2p}4CwDXc32?8EC-(ts^5gw<9DNFVg!S*q zPZIwJAsF}laewZ6a6iF{H{1UJq+&S z-&5S*d_ws1`>fA*?)CfBQP#H$=-bDOr---DA0QrF_4I!jySBrL_Wz0abs71*e?Rq&*!@5&c(12t zzMNYR{U*bomizT3aKGL?{cs%pU1wcCPZQtXdlvb3czWXV@*!~VuTPJ2KMQ?0Pd!~m zUi26A@$^T*rQYl3>7NI$CUDM=a-ItBtDa{6ws@ZYSN(XuAG`0PKJ4$G{$u7xoM=zH zZn^?~$>_V;&-`&e?Y(^6#J@@re7~=MGIk%@0bcg_I{XcN1%K`So;dmv_6YN{dn^7t z1b)rae*k^0)W`2;e}1x!dhf5@#E-L5@BO8F9#|9YN!@%t;H_%_ULV~j;^;RzXz%UQ z{oCB%FhHH$BAdniu-8vc>-_X%%%j5ZnB>k;;{FT^$UJv|M=(ppK`)TOy@k|bUC4qB4lDYuy z_4Uk$sh>^M9|GT(z(37>gZPuT*E8(zj?N|OiT~H~;5MJ+`vB`k-RN|+Qk@wa1I*>N z48683H?Vd4P%a17*MNQhmPA#)l-pe_?HVcO^xFZsk(pV?=l#pYLbZ@z_s-{@eYcZ} z+(dpB?73&%=t!}c%jIs?&c1t)pP8K8Yh=j+&(n*q_9;s*ZQK0Hi@AUaO98I;tY2F& zj@AyEsN%~BGgA|zBUQdXksF(t8m*v#O0m+11VXmGFwM6sZdP_P>X+z1dK#Fhh*DoF z?AlVAs!o@RAXAlUpfY^MDC}bB{*meYo{{Oo*4ID= zN*G~aV(N{p@-36Gk)$DyQ_9~YQE_6|?$Ocbs2IuTD`U?C z#Mu;{nerI@=0m>*>@MVe zzxJeGtDs*4=r`ZcZ@!^l#rU>MVG5S5kLomLqK$T3D2~0|&w<>_1FyZXc_8=NOD}DI zaVR&m`GtWOWdcYw-&>g;*_)%6#)3+9WV-5deLwK(=2y0Eaiimf(KlY2n4T1MZ(%0j zSi2^Q6V<&=DRa|>(ZU3lcDoDJ@(5a+_;8`O_vL}DFKo#@N7%q%Li1)$zegi~ayA6E z$a!bVA-heE!fd%znVBx+suO%~XJRV%?E0xnK@C?U-d3m-s$0e<%EFFJ%;H`|*j+^z zj+$3W`I%yYlEU=#R4KQhG9@ec%ZYn=AT2Y2|h?nHML$A(E?t(%z z7G{umQEnS8w-t6XEvU`q%!xJ&4e{&G`vQqd+Kn4YK>YHdU>+Y8kf_Ern8O$!rz zJE)qQs+P((aB4G7sQdQP-NfiN`NokbJU5COT)9*(Ox0UGD_ZC)jE&3`tF);y0V_iz zGonq^Wd)mW86TONDimE~%k|1XUwx(YW}%^ue)~3W5uwZ)a4|NqduCdVClciV3%SwKG~QH|g3ZO^ z(DcM4aixMUPGj!UbX^OLve5gB-nEACET;MHi7HW^Z&Xzq*g#?1tBg5{Y?Wt4x`|z* zxzWl@PQP2`J%#QJ^6o(Zn%JfMl?!>g94Q7DfO4o*-Zrs&yt+A`pDyq%vYPkdzx7zH z#kJsMQwE3Rdu&M!(j8iQ6`v9fh!egxQ+=s8vKti?s{IV}da1~l>+pY@Wt1W?F5p2kVICEB{YUlRI)+YgC08YV1C-$Mi*$-|I$_TosTx}`Y5H{iAo%Ani#PK}OF zm!>8@Y^K^HZeAx(a=&@>Lo*YV30Y9KP7O|%cB?+>Iz>}k`}m6AUU36c?Q3H%k4#Ke z1`E?hb~81pmZSwFFO*msgsq`*Iv+0;^Dj;nrg!gc(4vUIlD%h&xScQLb9}kZ+(;#5 zaaC%WC#+n$j!0B9J!qV2=>EUeNks5DjCU_SO~|0xn6+{ zCVpXRWLL2;RG4~sV)qE%{9<*yFikKJDRSi!(O6AM|JA}PBg}ZdMp%})nJddw%8kJ0 z8h!V>bCt^I$kbR}ukWJDuf6%PHT+HGhe~f0@G~u6GqH3T64#d1 zp(txjy;EDVZZN+1alMxts`Gf%bm2oYs0780`ruV~g^(r_O5&^nVi)|NFx|&Ie71pS zU3Ac)n0?eo*j+IAMgtYfdNqWyN@J8EGQ2)goN0`!@a+S-vk(S5TltP^j*hlZj|zk4 z72fge z!1b%r)(WmOk#E@OY-ckfqHIHHTWsAWa=)nI%1ss~=`6{`8nL!nxZAFg1k%P{)Qq)d zr2hk3U(3yoRoJ6EZ(9bPU>exPbZE(f3r*^D;$*NChv(}h?4pm><>k3!7Z z+_xpMg!nL}TN}T?+Z32&saY!##BVmN0&M3je2u}_6x+kvI{Mn!7;%zQ)L&l7}CF67-ERpu9UfBHq?ERPK5Fe+tf+j1*pgFnwZLOC*b2m zh1oT`X*+gmxY}mx%&S``<-8T#1l1+oWTsLq6dL-FrNkClH#MP6b8r(@tp*_&z3~_p z&R{h+YCOACFpG3u+n?l^&y{MPBgagIfXnjz24P($wJ9WQ4jMKcxJJRTOJOZ#gD(3n zHklS9Dz@WEoE`LDr4~TMCF;D5g_)W36!@EF^ZdToriy!C^?SCLIM?wT6b)p_13*Jf zZSIau7aH~p;-Ku;_LQdI$d$wN^;p8keP+GCy5DOjz|1(|Oav67S2AJt@* zYQ#!1J2*WtRZZ-walV;y!Xa#ZZ8&|fW15)denPGo8r=BVce+<{Qzf}Fa+N(JW!a!G zKO_d<L_Y66?p5baL;a5YYa&psVyD;6qK3lV@`ep+MwWvba@%ojxf+cka z=iR{;uZGK#3Ov;A*c!Uj@bB*gFmjIHo#7mk6g#0_jR1u_Cwn;z6An3@Ag;g7kYaqq z?nhsg%LMI5*MHrJjF!rKeK^nINpfLW6BdVKGtFYA(@W=;SqZ<{t=?WP6*(r!wVC)K zG}o5-1~&y(b>lJE|n@XB#?ri{k)ilVkjmJzl~{O49`Lgt@e z#nk*;iiMHsn*CWgSS6E-u&_`Mnzi{Po6ynn-Xvw>VC+w{Q^D;T51l^N43)S>lIx>l z;|^YhmMg-ck%^-3sb$Ug5S;RE|;A`Y0RH3Y_nAhiPC@lorA98Nd|GG#w7u_@f!7k#^Q`0T_=VP zuXct-$s6`2V(-hw15Hci+`V)s-Dax&~ z({&?psj(q2`>JgzY6k)}uRqJ@G`iY2@@~e-*71gUaP$3wKgt#IdRb7xd-bXq^UCoh z$IT$O7|FKX2=o$^*D$#WN}=#Nn9w1xobg3=M_emYXDgU z!;NZ#B7}2)b8wZ!*+eh9k5TIm6vInZLe-snRg%$UPx<*wB zMS?_9AJTqJ^a%$;l>{SsDYs7L3%uWy;F9cMY>!;wCQBMvs_*0MDnQL9uAB?gQ<&WL z+E$gk&Pi?4wf4TvY@jC!y$|wtz@qi-ek00z$Pg@r{UlkEH|nf2lPp=awPLNTURl!_ zj7oJNTHd&oO&qA?T>wA-=C{I=tkR{?q>9)~jLsBU^(3O$WlVB-mK#4Zwhk-!ciilI za=-2e)k>(g&{qu?+`Pl9-2#Z;h1X&Xuc0By#&+56=xR`NiAlXK(v5)}<2Voc7kbHd zTVyGuF{cZg(^I2+N4dcWMxn~oTbr&Ss#JONG{#n&W5?PX;)a<~yRRc8Dj&&pD#^;t zw;w{$=xRa0#$_Ky6W6E7e({~gWvX^^Y3w_AO|mV$-t?AGJc}&zd&>+juBNK8_9a_} zL#3?F)78=&Nta5}4Nez0S{8WEkl4^B4#f?f!cN0GI&-C*S;%jE!iAr1SmiyoKh2D? z6~YI0=QIe&w)2hJ1()?x@st{O8{WG=D}rvDnPQ_YyPJxHsAtA#?ssO_}F z(uN`MB0o2hI)H!|&Dvt96wE6_u6e(px3Ymt>E!u4Ob0|TWxp^|DR_m8fq503G_bw-;U(l$Za43KWcxDlW`2S_0@K)yRM`AA zzM0_0z2P#=&s7OIa;*`D$NrqqYE!X+V~O5&xnrl?2Ay!w)2nU_T}bW#8jt4<{f$qI zRiA%u>y(l3y2U#iDu9Ou`MI@b2`)7rW~T|6>@ma2WUaT9%E`CCcAUuBJ`XL~XE7Q$ zm%x{Z*5Vb`l|LobV}n}u#y6`CH$wh3UW1@(!-HNG1ZhpudJ*)h~!VIMmiJOzomdw+qUKPMPEjQceMDJ_X==+FoQIlf1k4g4X8AO?{Qx zSNlhbV@B*(J!S+~=WM$~%XO=Y{lmgnTlH%9LEBl_l5sOEPP;Kd*zih!s#uP$BVm&l zUZ#i~i3kze%Zruzep%jVg=?qqmSXeZ*4O=y*-Gbn+(`O|F03Y?j}t7aat9~pK7XAd zudDnv$wC}$Tqgae2!=`+Ms2-0|G}9GxAn?z zWoFVbYsqu+;q(_0p#%_Z)`!{v+diIU*qOQ^2 zH~601KWOaI;UI1pR_3Rj=+JeznBc%zyT_lHvTJ-jSE-e}i`t_$Y4wPw8nG==X=Zw~ zuw6cAh>Pf31#uPG>dL(h5r4Ab4&F9T<9trzP5(I!KSSPMet+MfO*Lj>xF&Cq0q?p= z=&nxzHK$$wY@He?m3Yg}hoI^o6yu|5a#9p;N=6BBoe+|8Re4E8iLJh`jbZ-8>!HL= zVMT5V<#R+R5&DJ|*i^=q{hE_S-|p1>hjjiszDJRg literal 0 HcmV?d00001 From 6da59ca382da7327942f6f9f0d8b1a102537678d Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 5 Oct 2016 15:26:58 +0200 Subject: [PATCH 026/128] somewhere, but weird threads --- slsDetectorSoftware/commonFiles/error_defs.h | 6 +- .../multiSlsDetector/multiSlsDetector.cpp | 313 ++++++++---------- .../multiSlsDetector/multiSlsDetector.h | 10 - .../slsDetector/slsDetector.cpp | 2 +- slsDetectorSoftware/slsDetector/slsDetector.h | 5 - .../slsDetector/slsDetectorUtils.cpp | 23 +- .../slsDetector/slsDetectorUtils.h | 5 - .../slsDetectorAnalysis/postProcessing.h | 1 - 8 files changed, 145 insertions(+), 220 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 9500d3494..55c84218a 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -63,7 +63,7 @@ using namespace std; #define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000001000000ULL #define PROGRAMMING_ERROR 0x0000000002000000ULL #define RECEIVER_ACTIVATE 0x0000000004000000ULL -#define DATA_STREAMING_IN_RECEIVER 0x0000000008000000ULL +#define DATA_STREAMING 0x0000000008000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -207,8 +207,8 @@ public: if(slsErrorMask&RECEIVER_ACTIVATE) retval.append("Could not activate/deactivate receiver\n"); - if(slsErrorMask&DATA_STREAMING_IN_RECEIVER) - retval.append("Could not set/reset Data Streaming in Receiver\n"); + if(slsErrorMask&DATA_STREAMING) + retval.append("Could not set/reset Data Streaming\n"); diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index a83d91bd0..5d50eb644 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4981,9 +4981,6 @@ int multiSlsDetector::createReceivingDataThreads(bool destroy){ //reset masks killAllReceivingDataThreads = false; - pthread_mutex_lock(&ms); - receivingDataThreadMask = 0x0; - pthread_mutex_unlock(&(ms)); //destroy if(destroy){ @@ -4992,13 +4989,10 @@ int multiSlsDetector::createReceivingDataThreads(bool destroy){ #endif killAllReceivingDataThreads = true; for(int i = 0; i < numReadouts; ++i){ - sem_post(&receivingDataSemaphore[i]); + sem_post(&sem_singlewait[i]); pthread_join(receivingDataThreads[i],NULL); - sem_destroy(&receivingDataSemaphore[i]); - sem_destroy(&receivingDataSocketsCreatedSemaphore[i]); sem_destroy(&sem_singlewait[i]); sem_destroy(&sem_singledone[i]); - delete [] singleframe[i]; #ifdef DEBUG cout << "." << flush << endl; #endif @@ -5018,14 +5012,12 @@ int multiSlsDetector::createReceivingDataThreads(bool destroy){ currentThreadIndex = -1; for(int i = 0; i < numReadouts; ++i){ - sem_init(&receivingDataSemaphore[i],1,0); - sem_init(&receivingDataSocketsCreatedSemaphore[i],1,0); sem_init(&sem_singlewait[i],1,0); sem_init(&sem_singledone[i],1,0); threadStarted = false; currentThreadIndex = i; if(pthread_create(&receivingDataThreads[i], NULL,startReceivingDataThread, (void*) this)){ - cout << "Could not create receiving data thread with index " << i << endl; + cprintf(RED, "Could not create receiving data thread with index %d\n",i); return FAIL; } while(!threadStarted); @@ -5033,39 +5025,13 @@ int multiSlsDetector::createReceivingDataThreads(bool destroy){ cout << "." << flush << endl; #endif } - //cout << "Receiving Data Thread(s) created" << endl; - - for(int i=0;inumberOfDetectors; - if(getDetectorsType() == EIGER) - numReadouts *= 2; - - if(threadStarted){ - for(int i=0;istartReceivingDataThread(); @@ -5076,9 +5042,9 @@ void* multiSlsDetector::startReceivingDataThread(void* this_pointer){ void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index - threadStarted = true; //let calling function know thread started and obtained current //cout << ithread << " thread created" << endl; + //number of readouts int numReadoutPerDetector = 1; bool jungfrau = false; if(getDetectorsType() == EIGER){ @@ -5093,132 +5059,120 @@ void multiSlsDetector::startReceivingDataThread(){ int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); portno = DEFAULT_ZMQ_PORTNO + (ithread); sprintf(hostname, "%s%d", "tcp://127.0.0.1:",portno); - //cout << "ZMQ Client of " << ithread << " at " << hostname << endl; - singleframe[ithread]=new int[nel]; + cout << "ZMQ Client of " << ithread << " at " << hostname << endl; - /* outer loop - loops once for each acquisition */ - //infinite loop, exited only at the end of acquire() + + //socket details + zmq_msg_t message; + void *context; + void *zmqsocket; + context = zmq_ctx_new(); + zmqsocket = zmq_socket(context, ZMQ_PULL); + zmq_connect(zmqsocket, hostname); + threadStarted = true; //let calling function know thread started and obtained current + + //initializations + singleframe[ithread]=new int[nel]; + int len,idet = 0; + + //infinite loop, exited only (if gui restarted/ enabledatastreaming called) while(true){ - zmq_msg_t message; - int len,idet = 0; - void *context; - void *zmqsocket; - context = zmq_ctx_new(); - zmqsocket = zmq_socket(context, ZMQ_PULL); - zmq_connect(zmqsocket, hostname); - //cprintf(BLUE,"%d ZMQ Client Socket at %s\n",ithread, hostname); - sem_post(&receivingDataSocketsCreatedSemaphore[ithread]); - /* inner loop - loop for each buffer */ - //enters at receiver start and exits at receiver stop - while((1 << ithread) & receivingDataThreadMask){ - - - sem_wait(&sem_singlewait[ithread]); //wait for it to be copied - - //scan header------------------------------------------------------------------- - zmq_msg_init (&message); - len = zmq_msg_recv(&message, zmqsocket, 0); - if (len == -1) { - zmq_msg_close(&message); - cprintf(RED, "%d message null\n",ithread); - continue; - } - - // error if you print it - // cout << ithread << " header len:"<= 0){ + //destroy data threads + if(threadStarted) + createReceivingDataThreads(true); + + //create data threads if enable is 1 + if(enable == 1) + if(createReceivingDataThreads() == FAIL){ + std::cout << "Could not create data threads in client. Aborting creating data threads in receiver" << std::endl; + //only for the first det as theres no general one + setErrorMask(getErrorMask()|(1<<0)); + detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING)); + return -1; + } + } + + + int ret=-100, ret1; for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { ret1=detectors[idet]->enableDataStreamingFromReceiver(enable); @@ -5600,6 +5562,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } + return ret; } diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index e322d71b5..1bc3beeaf 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -1191,11 +1191,6 @@ class multiSlsDetector : public slsDetectorUtils { */ int createReceivingDataThreads(bool destroy = false); - /** - * Start Receiving Data Threads - * @return OK or FAIL - */ - int startReceivingData(); /** Reads frames from receiver through a constant socket @@ -1401,15 +1396,10 @@ private: char currentFileName[MAX_STR_LENGTH]; pthread_t receivingDataThreads[MAXDET]; - sem_t receivingDataSemaphore[MAXDET]; /** Ensures if threads created successfully */ bool threadStarted; /** Current Thread Index*/ int currentThreadIndex; - /** Mask with each bit indicating status of each receiving data thread */ - volatile uint64_t receivingDataThreadMask; - /** Semaphore indicating socket created for each receiving data thread */ - sem_t receivingDataSocketsCreatedSemaphore[MAXDET]; /** Set to self-terminate data receiving threads waiting for semaphores */ bool killAllReceivingDataThreads; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 404f007e5..6c3901d6c 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -7720,7 +7720,7 @@ int slsDetector::enableDataStreamingFromReceiver(int enable){ if ((enable > 0) && (retval != enable)){ cout << "could not set data streaming in receiver to " << enable <<" Returned:" << retval << endl; - setErrorMask((getErrorMask())|(RECEIVER_READ_FREQUENCY)); + setErrorMask((getErrorMask())|(DATA_STREAMING)); } return retval; } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 016361f8c..1f0cb7dfb 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1580,11 +1580,6 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int createReceivingDataThreads(bool destroy = false){}; - /** - * Start Receiving Data Threads - * @return OK or FAIL - */ - int startReceivingData(){}; /** Reads frames from receiver through a constant socket */ diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 9731a3548..7faa528f9 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -172,22 +172,18 @@ int slsDetectorUtils::acquire(int delflag){ } - if (*threadedProcessing) { - sem_init(&dataThreadStartedSemaphore,1,0); + if (*threadedProcessing) startThread(delflag); - - if(dataReady) - createReceivingDataThreads(); - } #ifdef VERBOSE cout << " starting thread " << endl; #endif //resets frames caught in receiver if(receiver){ - resetFramesCaught(); + resetFramesCaught(); } + for(int im=0;im Date: Thu, 6 Oct 2016 08:44:00 +0200 Subject: [PATCH 027/128] somewhere --- .../multiSlsDetector/multiSlsDetector.cpp | 14 ++++++++++---- .../slsDetectorAnalysis/postProcessing.cpp | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 5d50eb644..6a88bbb51 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4974,11 +4974,15 @@ int multiSlsDetector::resetFramesCaught() { int multiSlsDetector::createReceivingDataThreads(bool destroy){ + if(!destroy) cprintf(MAGENTA,"Going to create data threads\n"); + else cprintf(MAGENTA,"Going to destroy data threads\n"); + int numReadouts = thisMultiDetector->numberOfDetectors; if(getDetectorsType() == EIGER) numReadouts *= 2; + //reset masks killAllReceivingDataThreads = false; @@ -5010,8 +5014,8 @@ int multiSlsDetector::createReceivingDataThreads(bool destroy){ #endif //reset current index currentThreadIndex = -1; - - for(int i = 0; i < numReadouts; ++i){ +cout<<"numreadouts:"<startReceivingDataThread(); + //((multiSlsDetector*)this_pointer)->startReceivingDataThread(); + while(true); + return this_pointer; } @@ -5042,7 +5048,7 @@ void* multiSlsDetector::startReceivingDataThread(void* this_pointer){ void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index - //cout << ithread << " thread created" << endl; + cprintf(BLUE,"thread created %d\n",ithread); //number of readouts int numReadoutPerDetector = 1; diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 40f8029c1..5229ce89f 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -481,7 +481,7 @@ void* postProcessing::processData(int delflag) { } } //receiver - else{ + else{cprintf(RED,"In post processing threads\n"); if(dataReady){ @@ -517,7 +517,7 @@ void* postProcessing::processData(int delflag) { //cout<<"exiting from proccessing thread"< Date: Thu, 6 Oct 2016 08:50:08 +0200 Subject: [PATCH 028/128] fixed bug in gui that overwrites the individual sls file path values with the multi value --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index f902e24d7..d33ba18a5 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4674,7 +4674,8 @@ string multiSlsDetector::checkReceiverOnline() { string multiSlsDetector::setFilePath(string s) { string ret="errorerror", ret1; - if(!s.empty()){ + //if the sls file paths are different, it should be realized by always using setfilepath even if string empty + //if(!s.empty()){ for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { @@ -4688,7 +4689,7 @@ string multiSlsDetector::setFilePath(string s) { } } fileIO::setFilePath(ret); - } + //} return fileIO::getFilePath(); } From c5e7d44b1595a3678a183ec7416dfce994d2bc99 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 6 Oct 2016 13:49:40 +0200 Subject: [PATCH 029/128] looks done --- .../multiSlsDetector/multiSlsDetector.cpp | 69 +++++++++---------- .../multiSlsDetector/multiSlsDetector.h | 2 +- 2 files changed, 34 insertions(+), 37 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 6a88bbb51..e868c0bed 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5014,13 +5014,12 @@ int multiSlsDetector::createReceivingDataThreads(bool destroy){ #endif //reset current index currentThreadIndex = -1; -cout<<"numreadouts:"<startReceivingDataThread(); - while(true); +void* multiSlsDetector::staticstartReceivingDataThread(void* this_pointer){ + ((multiSlsDetector*)this_pointer)->startReceivingDataThread(); + //while(true); return this_pointer; } @@ -5048,25 +5047,11 @@ void* multiSlsDetector::startReceivingDataThread(void* this_pointer){ void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index - cprintf(BLUE,"thread created %d\n",ithread); - - //number of readouts - int numReadoutPerDetector = 1; - bool jungfrau = false; - if(getDetectorsType() == EIGER){ - numReadoutPerDetector = 2; - }else if(getDetectorsType() == JUNGFRAU) - jungfrau = true; //server details - char hostname[100]; - int portno; - int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); - int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); - portno = DEFAULT_ZMQ_PORTNO + (ithread); - sprintf(hostname, "%s%d", "tcp://127.0.0.1:",portno); - cout << "ZMQ Client of " << ithread << " at " << hostname << endl; - + char hostname[100] = "tcp://127.0.0.1:"; + int portno = DEFAULT_ZMQ_PORTNO + ithread; + sprintf(hostname,"%s%d",hostname,portno); //socket details zmq_msg_t message; @@ -5075,12 +5060,24 @@ void multiSlsDetector::startReceivingDataThread(){ context = zmq_ctx_new(); zmqsocket = zmq_socket(context, ZMQ_PULL); zmq_connect(zmqsocket, hostname); - threadStarted = true; //let calling function know thread started and obtained current + cout << "ZMQ Client of " << ithread << " at " << hostname << endl; + cprintf(BLUE,"%d Created socket\n",ithread); //initializations + int numReadoutPerDetector = 1; + bool jungfrau = false; + if(getDetectorsType() == EIGER){ + numReadoutPerDetector = 2; + }else if(getDetectorsType() == JUNGFRAU) + jungfrau = true; + int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); + int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); singleframe[ithread]=new int[nel]; int len,idet = 0; + threadStarted = true; //let calling function know thread started and obtained current + + //infinite loop, exited only (if gui restarted/ enabledatastreaming called) while(true){ @@ -5151,33 +5148,33 @@ void multiSlsDetector::startReceivingDataThread(){ //#endif zmq_msg_close(&message); singleframe[ithread] = NULL; - sem_post(&sem_singledone[ithread]); //let multi know is ready - break; + //break; } - //actual data - //cout << ithread << "data " << endl; - memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); + if(singleframe[ithread]!= NULL){ + //actual data + //cout << ithread << "data " << endl; + memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); - //jungfrau masking adcval - if(jungfrau){ - for(unsigned int i=0;i Date: Thu, 6 Oct 2016 15:50:02 +0200 Subject: [PATCH 030/128] thread starting if rxr closed and others --- .../multiSlsDetector/multiSlsDetector.cpp | 38 ++++++++++--------- .../slsDetector/slsDetector.cpp | 3 ++ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index e868c0bed..7f1a1af00 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5536,12 +5536,13 @@ int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ if(enable >= 0){ + //destroy data threads if(threadStarted) createReceivingDataThreads(true); - //create data threads if enable is 1 - if(enable == 1) + //create data threads + if(enable > 0){ if(createReceivingDataThreads() == FAIL){ std::cout << "Could not create data threads in client. Aborting creating data threads in receiver" << std::endl; //only for the first det as theres no general one @@ -5549,24 +5550,25 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING)); return -1; } - } - - - int ret=-100, ret1; - for (int idet=0; idetnumberOfDetectors; idet++) { - if (detectors[idet]) { - ret1=detectors[idet]->enableDataStreamingFromReceiver(enable); - if(detectors[idet]->getErrorMask()) - setErrorMask(getErrorMask()|(1<numberOfDetectors; idet++) { + if (detectors[idet]) { + ret1=detectors[idet]->enableDataStreamingFromReceiver(enable); + if(detectors[idet]->getErrorMask()) + setErrorMask(getErrorMask()|(1<timerValue[FRAME_NUMBER] << endl; std::cout << "dynamic range:" << thisDetector->dynamicRange << endl << endl; std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl; + std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl; /** enable compresison, */ #endif if(setDetectorType()!= GENERIC){ @@ -5579,6 +5580,8 @@ char* slsDetector::setReceiver(string receiverIP){ setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); setDynamicRange(thisDetector->dynamicRange); activate(-1); + std::cout << "***********************************dataStreaming:" << parentDet->enableDataStreamingFromReceiver(-1) << endl << endl; + parentDet->enableDataStreamingFromReceiver(parentDet->enableDataStreamingFromReceiver(-1)); //set scan tag setUDPConnection(); if(thisDetector->myDetectorType == EIGER) From cce93ebbcfb1ad833a33e4b5878fc9dbb57ba9c5 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 07:54:26 +0200 Subject: [PATCH 031/128] removing the check for receiver to update data threads upon configuration --- slsDetectorSoftware/slsDetector/slsDetector.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index d2e6189d9..0928984ab 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -5555,7 +5555,7 @@ char* slsDetector::setReceiver(string receiverIP){ std::cout << "frame number:" << thisDetector->timerValue[FRAME_NUMBER] << endl; std::cout << "dynamic range:" << thisDetector->dynamicRange << endl << endl; std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl; - std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl; + //std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl; /** enable compresison, */ #endif if(setDetectorType()!= GENERIC){ @@ -5580,8 +5580,8 @@ char* slsDetector::setReceiver(string receiverIP){ setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); setDynamicRange(thisDetector->dynamicRange); activate(-1); - std::cout << "***********************************dataStreaming:" << parentDet->enableDataStreamingFromReceiver(-1) << endl << endl; - parentDet->enableDataStreamingFromReceiver(parentDet->enableDataStreamingFromReceiver(-1)); + //std::cout << "***********************************dataStreaming:" << parentDet->enableDataStreamingFromReceiver(-1) << endl << endl; + //parentDet->enableDataStreamingFromReceiver(parentDet->enableDataStreamingFromReceiver(-1)); //set scan tag setUDPConnection(); if(thisDetector->myDetectorType == EIGER) From b1dde586e114fe7203e0b408dfd9e6a8ef9f465c Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 10:15:12 +0200 Subject: [PATCH 032/128] back to subscriber publisher --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 7f1a1af00..95b7f903b 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5058,7 +5058,7 @@ void multiSlsDetector::startReceivingDataThread(){ void *context; void *zmqsocket; context = zmq_ctx_new(); - zmqsocket = zmq_socket(context, ZMQ_PULL); + zmqsocket = zmq_socket(context, ZMQ_SUB); zmq_connect(zmqsocket, hostname); cout << "ZMQ Client of " << ithread << " at " << hostname << endl; cprintf(BLUE,"%d Created socket\n",ithread); From dc16d52d49af5b0960e9545d329e856f61c23c0e Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 10:21:22 +0200 Subject: [PATCH 033/128] switching off gui, and acqire should work --- .../multiSlsDetector/multiSlsDetector.cpp | 9 +++++---- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 95b7f903b..3ec9a77f5 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5552,7 +5552,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } - + } int ret=-100, ret1; for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { @@ -5566,9 +5566,10 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } - } - cprintf(BLUE,"threadStarted:%d\n",threadStarted); - return threadStarted; + if (ret < 0) + return -1; + else + return (ret & threadStarted); } int multiSlsDetector::enableReceiverCompression(int i){ diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 7faa528f9..5dc4a835b 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -73,7 +73,7 @@ int slsDetectorUtils::acquire(int delflag){ enableDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream. } }else{ - if(*threadedProcessing && (!ret)){ + if(*threadedProcessing && (!ret || ret == -1)){ cout << "Enabling Data Streaming from Receiver" << endl; enableDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream. } From 1545d37f36c0e9c56c05dee1ec1cf959b296c8d7 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 11:40:51 +0200 Subject: [PATCH 034/128] some changes for quitting gui and continuing with acquire from command line --- .../multiSlsDetector/multiSlsDetector.cpp | 54 ++++++++++--------- .../slsDetector/slsDetectorUtils.cpp | 14 +++-- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 3ec9a77f5..55440fb7a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5058,7 +5058,7 @@ void multiSlsDetector::startReceivingDataThread(){ void *context; void *zmqsocket; context = zmq_ctx_new(); - zmqsocket = zmq_socket(context, ZMQ_SUB); + zmqsocket = zmq_socket(context, ZMQ_PULL); zmq_connect(zmqsocket, hostname); cout << "ZMQ Client of " << ithread << " at " << hostname << endl; cprintf(BLUE,"%d Created socket\n",ithread); @@ -5537,39 +5537,41 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ if(enable >= 0){ - //destroy data threads - if(threadStarted) - createReceivingDataThreads(true); + if(threadStarted != enable){ + //destroy data threads + if(threadStarted) + createReceivingDataThreads(true); - //create data threads - if(enable > 0){ - if(createReceivingDataThreads() == FAIL){ - std::cout << "Could not create data threads in client. Aborting creating data threads in receiver" << std::endl; - //only for the first det as theres no general one - setErrorMask(getErrorMask()|(1<<0)); - detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING)); - return -1; + //create data threads + if(enable > 0){ + if(createReceivingDataThreads() == FAIL){ + std::cout << "Could not create data threads in client. Aborting creating data threads in receiver" << std::endl; + //only for the first det as theres no general one + setErrorMask(getErrorMask()|(1<<0)); + detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING)); + return -1; + } } } } - int ret=-100, ret1; - for (int idet=0; idetnumberOfDetectors; idet++) { - if (detectors[idet]) { - ret1=detectors[idet]->enableDataStreamingFromReceiver(enable); - if(detectors[idet]->getErrorMask()) - setErrorMask(getErrorMask()|(1<numberOfDetectors; idet++) { + if (detectors[idet]) { + ret1=detectors[idet]->enableDataStreamingFromReceiver(enable); + if(detectors[idet]->getErrorMask()) + setErrorMask(getErrorMask()|(1< Date: Fri, 7 Oct 2016 11:56:04 +0200 Subject: [PATCH 035/128] locking improved --- .../slsDetector/slsDetectorUtils.cpp | 27 ++++--------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 5913dc7a9..f9a16fb38 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -69,24 +69,6 @@ int slsDetectorUtils::acquire(int delflag){ ret = enableDataStreamingFromReceiver(-1); cout<<"getting datastream:"< Date: Fri, 7 Oct 2016 12:45:34 +0200 Subject: [PATCH 036/128] increased delay to get framescaught from receiver for acquire form command line --- slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp | 3 ++- slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 276207b15..41d36c186 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -4485,7 +4485,8 @@ string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action) { if(!strcasecmp(args[1],"start")) myDet->startReceiver(); else if(!strcasecmp(args[1],"stop")){ - myDet->startReceiverReadout(); + //myDet->stopReceiver(); + // myDet->startReceiverReadout(); /*runStatus s = myDet->getReceiverStatus(); while(s != RUN_FINISHED){ usleep(50000); diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 5229ce89f..946a9e07e 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -494,7 +494,7 @@ void* postProcessing::processData(int delflag) { while(true){ cout.flush(); cout< Date: Fri, 7 Oct 2016 13:12:57 +0200 Subject: [PATCH 037/128] changed back the delay between framescaught --- slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 946a9e07e..5229ce89f 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -494,7 +494,7 @@ void* postProcessing::processData(int delflag) { while(true){ cout.flush(); cout< Date: Fri, 7 Oct 2016 13:16:12 +0200 Subject: [PATCH 038/128] ask only 1 for frames caught for 9m --- .../multiSlsDetector/multiSlsDetector.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 55440fb7a..cccb146dc 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4922,6 +4922,15 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; + + if (detectors[0]){ + ret =detectors[0]->getFramesCaughtByReceiver(); + if(detectors[0]->getErrorMask()) + setErrorMask(getErrorMask()|(1<<0)); + } + + return ret; + for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ ret1+=detectors[i]->getFramesCaughtByReceiver(); From 4d1c6a19403b5e35c5a9b3b517fda828d43985c1 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 13:48:19 +0200 Subject: [PATCH 039/128] ask only 1 for frames caught for 9m --- .../multiSlsDetector/multiSlsDetector.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index cccb146dc..813d2ab05 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4923,13 +4923,15 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; - if (detectors[0]){ - ret =detectors[0]->getFramesCaughtByReceiver(); - if(detectors[0]->getErrorMask()) - setErrorMask(getErrorMask()|(1<<0)); + if(thisMultiDetector->numberOfDetectors>10) { + if (detectors[0]){ + ret =detectors[0]->getFramesCaughtByReceiver(); + if(detectors[0]->getErrorMask()) + setErrorMask(getErrorMask()|(1<<0)); + } + return ret; } - return ret; for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ From dce9911164c74fd958df80392b998e7d77493e16 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 13:48:45 +0200 Subject: [PATCH 040/128] ask only 1 for frames caught for 9m --- .../multiSlsDetector/multiSlsDetector.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index d33ba18a5..5d6ef18f4 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4932,6 +4932,16 @@ int multiSlsDetector::getReceiverCurrentFrameIndex() { int multiSlsDetector::resetFramesCaught() { int ret=-100, ret1; + + if(thisMultiDetector->numberOfDetectors>10) { + if (detectors[0]){ + ret =detectors[0]->getFramesCaughtByReceiver(); + if(detectors[0]->getErrorMask()) + setErrorMask(getErrorMask()|(1<<0)); + } + return ret; + } + for (int i=0; inumberOfDetectors; i++){ if (detectors[i]){ ret1=detectors[i]->resetFramesCaught(); From 6751132466cecd5146b6dbbff2511016352b9d2f Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 7 Oct 2016 14:26:41 +0200 Subject: [PATCH 041/128] works --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index f9a16fb38..66b421b2a 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -65,10 +65,10 @@ int slsDetectorUtils::acquire(int delflag){ std::cout << "No Data call back and hence receiver read frequency reset to " << ret <<" (Random)" << std::endl; } - //start data streaming threads in receiver if enabled + //start/stop data streaming threads if threads in client enabled/disabled ret = enableDataStreamingFromReceiver(-1); - cout<<"getting datastream:"< Date: Fri, 7 Oct 2016 15:13:20 +0200 Subject: [PATCH 042/128] fixed bug that it does not display image 2 --- .../multiSlsDetector/multiSlsDetector.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 813d2ab05..9b6dd92ea 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5083,9 +5083,9 @@ void multiSlsDetector::startReceivingDataThread(){ jungfrau = true; int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); - singleframe[ithread]=new int[nel]; + int* image = new int[nel]; int len,idet = 0; - + singleframe[ithread]=NULL; threadStarted = true; //let calling function know thread started and obtained current @@ -5111,7 +5111,7 @@ void multiSlsDetector::startReceivingDataThread(){ // error if you print it // cout << ithread << " header len:"< Date: Fri, 7 Oct 2016 15:44:13 +0200 Subject: [PATCH 043/128] included a febl and febr temp read --- .../commonFiles/sls_detector_defs.h | 2 ++ .../eigerDetectorServer/FebControl.c | 19 ++++++++++++++++++ .../eigerDetectorServer/FebControl.h | 3 +++ .../eigerDetectorServer/FebRegisterDefs.h | 4 ++++ ....0.14.0 => eigerDetectorServerv2.1.0.14.1} | Bin 277482 -> 277899 bytes .../slsDetectorFunctionList.c | 6 ++++++ .../slsDetectorServer_defs.h | 2 +- .../slsDetector/slsDetectorCommand.cpp | 17 ++++++++++++++++ .../slsDetectorServer_funcs.c | 12 ++++++++--- 9 files changed, 61 insertions(+), 4 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.1.0.14.0 => eigerDetectorServerv2.1.0.14.1} (56%) diff --git a/slsDetectorSoftware/commonFiles/sls_detector_defs.h b/slsDetectorSoftware/commonFiles/sls_detector_defs.h index d4fce83e8..ddc7d62c6 100755 --- a/slsDetectorSoftware/commonFiles/sls_detector_defs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_defs.h @@ -362,6 +362,8 @@ enum dacIndex { TEMPERATURE_DCDC, /**< temperature sensor (close to DCDC) */ TEMPERATURE_SODL, /**< temperature sensor (close to SODL) */ TEMPERATURE_SODR, /**< temperature sensor (close to SODR) */ + TEMPERATURE_FPGA2, /**< temperature sensor (fpga2 (eiger:febl) */ + TEMPERATURE_FPGA3, /**< temperature sensor (fpga3 (eiger:febr) */ V_POWER_A = 100, /**new chiptest board */ V_POWER_B = 101, /**new chiptest board */ V_POWER_C = 102, /**new chiptest board */ diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index a07d6b2fb..dea2e4c1e 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -1968,3 +1968,22 @@ int Feb_Control_PrintCorrectedValues(){ return 1; } + +int Feb_Control_GetLeftFPGATemp(){ + int temperature=0; + Feb_Interface_ReadRegister(Module_GetTopLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); + temperature >> 16; + //division done in client to send int over network + return temperature; +} + +int Feb_Control_GetRightFPGATemp(){ + int temperature=0; + Feb_Interface_ReadRegister(Module_GetTopRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); + temperature >> 16; + //division done in client to send int over network + return temperature; +} + + + diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.h b/slsDetectorSoftware/eigerDetectorServer/FebControl.h index cb87558ad..153dc31bf 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.h @@ -192,4 +192,7 @@ int Feb_Control_GetModuleNumber(); void Feb_Control_SetRateCorrectionVariable(int activate_rate_correction); int Feb_Control_PrintCorrectedValues(); + int Feb_Control_GetLeftFPGATemp(); + int Feb_Control_GetRightFPGATemp(); + #endif diff --git a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h index 1dbd97b59..69a988df0 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h @@ -94,6 +94,7 @@ //status flags #define DAQ_STATUS_DAQ_RUNNING 0x01 #define DAQ_DATA_COLLISION_ERROR 0x02 +#define FEB_REG_STATUS 10 #define DAQ_STATUS_CURRENT_M4 0x04 #define DAQ_STATUS_CURRENT_M8 0x08 @@ -149,3 +150,6 @@ #define FRAME_NUM_RESET_OFFSET 0xA0 +//temp so far +#define FEB_REG_STATUS 0xa + diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.1 similarity index 56% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.0 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.1.0.14.1 index 2060a26d530118f4b6ffac9926d498b52b516cda..d47195664a47ddabe3c64ad870730aa79f6bd512 100755 GIT binary patch delta 52574 zcmc${4O~@K)<1ss0TphDS3^WZydokX>c!B&K+({SiiV1&=F8Qv@EuJJ3%i%n!a_wi zy0OqOFNI}AWurElR62t*HsPd=&ESNMKBE&APBx=6>ivKBKKtA^uxEbH|M~oWem>W; zU)ElG?X}lhd+oLNIsEOP<`@5ME{jpWY1tY(fB2pPMa551+9?G8EBGIIbAbL+6tzZC zldhq>gRECkUx|A0+j@McY1c)ws{h^(B+CL+?F?NNI8m)JzkfV%VxWERAw>xe zHD*PLzFSXMA3$GSW%>v@GSbHtCBR6ZQj|a=eFiid=|)9qZ=^4RHY44vC_zRVLm?NT(~x-9|b~ zQNoOLHu~>sWO5ZH+(^$-lx{{kPf;R_^b$phG}5aSrH7F&Qj{noy1CwL z6~$ttD;1?TPus!v*PMzHV^r){ls-oKfTF}2=_88L*GL~%lzv9~l%m8N=`)IwV5A!r zCDBM-?@jPy11KfuV`RFr`-{d%CH3^LLoiefd=VTzJ$q@xsNu#t{clzWVH zlA@#-=@dm7Vx-d*WvED(_ja`u1*xx<5haZF`B(|k0xAaB>($pB(XQ)*9Evh>H!pi> zlBSS$nwq|e*4{NZT04%S>1f-;+tOmiJi=iP1diB}sG6{CA<=Pr3h(>#o}v*==0N-T zmYm`dH4*kdhZo%UXP3*qu_ZIJQc1ecRTDw8LK4-QFj^2YvHc!L>LYs`^mxdV>fSRn zvtzWnvp2PM3~#TU(*kyGqD39!5_c|5h49z*QX*1qih|+=MYbM=WxbTBs$NQbt`a!B zC?KE^Ls&;ob&QOxIL)j1D9~Y4x?)zXHi0d8TWEMuLg9%bX%#rGj zg*4tAJK;Si5;`cAk~guidhay@4z-T z40Xkt5>V-`t5kBdfbD&0r8zQjY&??fIDd+Q!INO16O7&7otN1^{jsnpkfYyznl_mS zs&AB0bLVmVF{|@X{wVJpXD>gBu0w!6M4tgt!N+z_-PlYmfL>{ho8I!pUH*ZDpAPuL z0$$7y^u*nN`Bv2J^2TLVTsQkWlm#PcT9=OYaq&gLY8ao6;{J-l@mUpF798-}L`R@S zl-b6XY60cj!T%ty~A@(Yl!mH9g4ry^e^^YzG&)?m>1%t7qN zHlSb#030%Z4*9;w7sz}Q@?DX)$$T^N?U2ur`Rf?yPsnHL`Ed&Jmyoy0Jd~84McyLw zX5>$pQDBw@5h(b8=H49>{RWp0)NdQhC#OgmSWu*p@(jpN+CqqS`Q3x1ghx7~ibp6R zc8A6lC}^EUm$I^8XB5l%3kg@9Q8X-UPWZOjKorypk&p#5tqYqRzV+zOLD;&+bm7Y6 za)DN%g;1Ud+7Q;`{dcfQ#L+hef$!bw`vW7@Pg6i#*O!hJ2e zIKFV0Be2@`HHoKVUyBy-VqY#ETm)gtgodU;Yovz8f|l{Uo0yuUfh z5!8M>rndMe8rFBFTD+DP^nFHktYc+?YCLP{O`_gUje9Ae{rHPoz`A65E@5c<>_9D` z2;hlGLWznF(;S}EkX%Pg6X&Z>-JmUr&!|t{qO1DPQJ?Bc&-6#GJDr}iNPV&|J)ZQ8 zx;BAo1176$C(z0P&!~lysAb?7^@*#TA?(}z#6tHD>=l!p50*x7&DY2N#Ch080$Uh_ z@u{5DhU`%LX8Vp2~uDxq+(Xc^r6SK=v6tV7+hYQ!mqIEm2$ZOs;xRj}L2{M~q zp#?m#hhqhou1l=P{d!HHC4&a5&LnzdP~^aD@ZpI8sfx>m7VBYMe&Vfw=^Dzpbfm~(F0^1wS&3fO+(cE;Ey`qG{*avFLfg#98ARmQ%2ju%A zZ$Um*v{WX9=%ZYHUgnR}Mr)k9`YjrmJTPWrp{!l4*G@bx^9xdKAU9z3d77J?7&Gy* zEKcwP>n_2z(yHXdxCdu(uvCWv%h^k!(vv_5{A|4f-P(ndN#`ME0X1k-ltJM zyh@fI@GZ}5l;wwf%SRT-@*_Uw_JpxkSyAUxkubJQmY?!1AAd%cH~5xMH1KfA_8P#0 z2B9Io<&)z%9{bk*!uEMJm~vBgAXMJNiH9t*Ji-^zj9IdrFXUc$9zly|G$=7xy2`h~iv~f3zU7;Y zsVVX;-(r>oIeg2@F3a-ucHfF^M#m+-+hlo}UwN%8FZV5fNjiN>g)FyU z&#;&=;>rrypwhQN)p1!~TSzhBk4go8dw(_4w?UmEJ8twX|0GkEH~E$yFO%gLeanAc zBFm+*6ov~OpFAhauW@+0R2x*Bij@`DeG&bxT$bPTEpIrbmlMUe{7i!^5A-enQceL0 z@+xnKj?XpH{b^%NIq`ZqY<|JS6lxt7XL{4DuQN;F;17#YQL}#7qR5;~y>v16W3Yzj z=HR zGnSf14py~g;4$WPcay?<61yMwBnXzs`L%4D9X>y& zq-{DMxq(5gg3Ay!$PwTgxl2g_-I$t5OL$p^4GdWPrrF~PJ_7$mF=+wwcY5`%Cfg>h zr)BqttB(ZJn)~7L#nQ(6V+K#ExC0X5KcN#*Z^#Ic7E^0h_~1#kZ8w{LLDDAby_%)b zs=3j0N0#92fvi!HhTr)4cYGF#u}vw`H{nUtJbFH7_NvkS$Wdw@6HPxH-IEj})riU0dnYxI{e@|gNBkSc zuJM|9nlo-?xO;|kITB-rY4iHH#5+y#tOQJP1X!vow{mtWjUPW#Se5b5nI=iQ3aM;* zFrDUPPyS!%a>i%AU4GFUT@I(8Ob|2FG~qeZWNAIoZNbDjUG|>C-oz}1go$#PAV5tM zpW!s-J-E^|S#nI!xH)`sdWMB7rml02V|=?h?I>NJGceq3nY`H(OY3u@Bk#nXX(P8y z>eh24w+EoXqA4e~7cJ}|RGF*q)_#zMlu1IS^Ct3HM_)y;4BnyK#sU1z9Hjrz+qqH0S;pJ}hrD+-;+r?=Z+c^)n z9*R^S>`I$PgIf>za_fziG;Vsz#3>3WHG5O4??NYXp$f7o2$NtRD+ijwVa1}QoOnyJ zIgC>!8N%hL8$C8%u-P(WrD;m4pqX#68n%z1f12UT;+fA5m{9aWpF%DITSqA7t#dgK z72XI|aY{D2i}F~W@mFcxOzgz;UR*OpFSduDF-^&L_foKCDm}a~ls-7Cm-l4)D6_x0 zzN4^?>rAb)Bg3bh6Ok)SRB=Beay8`~wap&p+r?w_t~s4dQ`Tn~vg%kA8Ljbf?R4K+ z^#$poVUZ>ljMbvE_Jz~5WX^wr`vGoitddy=I06r|9vDE^&lL(3WP8#y<(ivArM5+0 zWN(}IwofkKt|=cbXVU^?F44-oC%K44EQnEa^Jw~lNOj~4I(@;T!g4Hl z(lpfuT6D{i_2?Wg=232dx;Jn+C0XX- zk^-X{f=MqoW(4UHq*Ym7gmi#NBi>nnOrWgDL%N+zb7^cZ)7eOOkm*dxFCJdPF-vD-i*67(!F?W1^?-m#9Ku{xJUGd>%cAyd-J|!;d6ePr`~s-RxXO+ zb6K}2CT1Gfj|gu&=WCJE`%+6)wEFf3GZhD#) z&r#pH2d1*39V?_-QzM{-%f0y?Pi=dliIX=KN;E@ryP7 zoetUPGdS*|_gWDFe=l`Kbj%x9umeJ5PDz63XaYa>RUSd8nI}m2>w-aipgkir<&6_^ z`Qer#HdiqZ6SgxTk4#HX$U!xnEGDOfLj#R*eoR#;H3AA)&Khn3A z7`}FcHmwX-@0mxNR)JMIw|iot+BenkV?cz(L&QC+>8!{5^*#(DJm)=?N)dX*vgWl@ zY=cjO(^~Oq`KkyqiI%MDWf8-YY|>X&A2wCfuUB?clh=aIiKd5g1Rwd*+p=Zc@Yk<$ zT0Jx-XGq#%PF}y^SJzwCnMJraAh|QGTOIl6>jQkjtd}Gh=HoRnA0G79ld>)f=*3Bu zSDoQH!2Nq&bmdjIm1eGqGd<+JqCaVRXuW$Z1#9L~m)+bo4{RvV8TwF_ySBWj(#*AY^*t)d&eoK@3uIbD+89m_(idpK+HS#X zb&=hBiI%PH(RV9y@u(9l;lqI-m%xUaxiukl6e?I0WCu;*>B5 z5Go+jcpWWTW})#OW{;<7JB2XW8>`d_6rPeyxI zMBU%fJ$=4Cz2kzI)RTrh6&=}s0>~@#vfRRP)s!b^)2yfNCs%06Q!(n=c69$!y%sDK z-P(A!iTgOe_=$qS=yeGy_YOIUIqUl4d;@h*$|=6*9f=%A8^cIk!KYYL3b9Wu>V=g# zr)c0{|FI?p8(OX@8!pHR6RKhC(P7_)sg>W+=AwQBgpd}GP{dIr7>F4YCZ|MD?4wJS zFof&E6B7ug3I0v|4LmJ)Ud0oEg7_>cHBt=lNSH!W7 zSKU{#4qneI?ReU&&JaTwncchm>h{QX(7N4zN*x`)K~_TTcKc~{{6d=lw4Z9trT=^y z+TyETPuWrAty56I|Cv6S;$A*134#*6yiumJkWQBAOr#IfisD|qH$eD>H5Z$Ww#+4W zuv)t;m)HFEq04K7(!}8#lqpbGH`Y$#6RR$EZh4UERLquu8}E8~7wUsF<)yXs z<}*ElKjzRPXL+{AJYI*K5DvFydDf#H>p1lgq*(5=L6BmB7p_puB|PEh#GJ=w`kq-kv{GlJqwQ|j7B`yjqHQ-w4ChnA8*}ri^*7;^nCQN+(6!Y zYg^ar1TPnByRurWKj606d;D@|-%Z`ty%hypuL=roKHrU;@N$*&2aQzmCdH@|XbV1DlyI_fzO6T_Wn8B2J) zGd;I)@XQ%}YbdtC+$ZOq=@Szrj!%;3&3m(nn`+9xe z%)d#`2A*PRoW<&$Y?;X=FwCdb!ni za-P@qvgzXv^s!%dQlCEoIy5?Kn`x#y;#$FJk~W?P$N0WUEK_L~_mvSVV4#V2VoMlT z5aWu2mDX*G9QfQV2zG=Ru8&|pcgd?eD@K8Zx1ci(q7&^--iv{SpWYb9F8w(j-~+}mh_>cTf!@AD%R+~O1 zuG^Zj;wyIm7VUA{C*Hda_c9&y#I~;X4O6}QkbJP*fi51H%JIencz)`YjxtnKR^zUutIE^z9JrJ<|t8{(7#n(Q5R0j*-4;nr8D zwPP`8;k<6q0y>H{E7|feUuE0C)sbIc^I6;Zd;w=jD&1HbN*C{pNZ|Vx? zzhD>gR>RrnL&I>aZ4c+Jb$+aoHtJy<L7(WeEc3oM zsXSbiAtlLctCixr)#~sQEqy0~R_^YEz{~#K4<(45xSZ=**z7B~N2O>=Zg9f^UE&R@3{(NR9mp3p@ceodQ$Jq(IN>g8*JNjd}Qo@jmz!ju&Rw*C0w?C$D+XEN0 z&Aou5)cR&O`s1r3)LDmU%HFt{0U17WZku(vcmzB;uDY2Byf4BLaUO0A_Qj4Gf}{lm z>}ngc`jcDM4VT>rDz5&CHooc0!quPAvhmUUl3wljI6B#xZJHhH;h(rHVWBsj-QaBb zsc_D?d|FvOg3P0h)&0p38uVI!!~|3D|9NVAZCKpw^o-V`8Sf*Ss_QVVdoA4C3N*bI zImWe4AKC0YZUqE2e9=-}8^8@?Q}{di`6<7tnl_a7St_2yXG^hTcnMx+DVeB%IUHs8Osw(aV_Z$P|8 z4V!(Y7^)%VC@KRSOU;KIWlbquw*ayf2U+5~1@+&X?kF=$Z*iF!=pC3{dX{sQx4`B) zitDV5Xa(w<@TDI>nEDwpQ@VVAr|>ypn)g&b8X9!(0Xz><0ZnVS-Y*>$<3ACx#`_jO7aD)0BO?oGK)Vu`A z#B6n<(`7twdt%-)$hK0|$?l+PUP5s9enpulG zTAM&Tmfzw zuY#=Cl*wE9QUXbD2T4L)DrYCv-XEvV?n=ww9~?PX#CUlCKvVyI0>rpwk2bwOh@7P6 z1O516$^qZAn+2k$#jFjnq4Ck<}|}4Nn6$oS*jK{emp+iy6@uzG-V~eeD<_ z5Q_!&@-3QE7Nah=TWfHUH)#YC| ziY{l4ZPn$>-iS**NWVVWS*!%fmboqNj`>ZWyt?~Z$06I8no9_E8DiXvzB#&+I(-^*iGL>5EeKoB9X?4J7w4r`DH^AnT1J$V) zXy!>@XKdS6au2WIlQrt(j;)zyCqH?3Hi&y+ek{vb0hYz7IdI@kt})r_+!)QjnL@tuXBf7f zF-jqa@$wx1j~4MiU7*@;dy#jkxgk+MGJItE>!IZpW|q*9JS`1zCz?)E=YRnMHH4W}cA%}atBL=?}} z-{RsMuytdmz-d0S{r`_3ojFT$f8P%~ilW~S;`{R7_ei)ReE}YW$@J{YEj$JXb3QM} zJ+_wLM}~i~6ujaFf>+hJt1MqcMt+f@7yE75)h|ZV+%IBG^P1eyjxQpI{r-I0(7(Ur zwM^Iy9`HCL-#}ozp_g|HS87^D;Qm@;uXdgJ_-WP20rW;=Z~G%vntJjydN$`O z*1;l%sh-@!)!MirQG^qyt?|wj9mX4aqY5>hYjF8C3m`N5oS0}sDasKoQ|pQfmRLe|kag8Y1>L4q4NG|zx> zE?(%&q?vz?9^OV(f-_5JkjIz51Bz5y`DfgAX$yNgZTK_Z{YarLf5t_?6dLxmc%2>$LWc$@`5asRL7iFP(8NUkCw=43h9}Gbmf}4qa9SKasd*M=Sr>6r}Q~D>P zUP06t8;1e!$~17B#-`fT7xZXy=)%;y0i-GSo%H~i&r;hrk>MGly{2rtqA3f~_(<=m zd*nJT`zA8()9>_b9zw_MItxY_9~)3VJq=7IP5m^PHheQ~Tv&#tOqjtbp#HoUd=2uSrLoRt(x2vB{QJOD?+PW0 z4k)}2(+9xmn)2B^zp|_}a5&AO#L$9EF=}uOEx+{Wqj?R21V`R=O+EH5%u^7e8Dc5H z#JIQ>L^;3MglF9igk}WE$(FpEfD7@Bava;kaV1+8C|uOsM~rG6V*md&dCsw=X%-NW zsVG}V5ZvP@k{b*3ry${@3w(`7L`U4`kR%`)bu0lS;8~X-$W<1kri~!tCW?3!Og)C^ z#$O}Dk9}ZNb19Nl*arMHGG;+Ku$p}d{%9@04W1X$qQ5?E|ERB2AMS->>KEuwLEOF^U|uv{4c_yw1!VaS^T@6Dn=k)^m=;v%Yr`+!qRoFB zs4h4_qrQz(e>s(A;qht_UGi;o+%MZfdeSAX%b3Sh4+$S$ML9$rptawIs~?`E_1{KE zF6Z&DFc2GLKyve-DJ$n~YmQS_rqTFjVPCc8Ws#2tatfdzkfy_DIX140P>}Vsp*cL# znS;(#1arvXwL*LWj?mfYZQn(PI(4T=Z;(S~gAM;)~B zyD{pcPcy87|da?D*dRZn<&@^SRn64-# z;Ig!?RhshNLQbX3mmz=HEANnmS-_kUgE@|4c2c6L2j_unC7c@qNXXX*=cWFMa*zJ~ zqOUG52m4~4OE`Sn`u72U9|s3(;(HGH9PXZ~M|1f=qp(i`5oY^IHOz4rlv4--nLLD6 z-ilV!K4YhL5bWuH(V1qp%nW_ZYnDFPM{8P!hB|YB&X}xR=IBq7XvEdT7$;^&e^ry~ zHuu+XJAe<#fGuQAi6rU$va9XY$j73@?8Bzu=23{l1qU3Gqp9!hp|wB8nI6j*RH^T+ zpiMs}s*lyskZY0ZdkHlD+6(I5Cf2f;^k(aNlMb};+M_6-SwGG1@>qi-+UqqCwRR^x z^wT)isnLdi^q{@|(Jl0`Yl0layowj0*!<6!@OQA1$V(|oz8I{gzH^qg{Hq(K|F}QFuV6juVtu$f>Dbl1z zc`*l0$3G{lE$83Qy8a}I&R?Y?+%KEUu%j;TCA9IzBK7;PsP-=`*cv<1o#4#mU%~Xi zzu>QAi~Repe{~@6a%4}j-o4YPo0GfbS7_=RL%ax>P8~NVhUOm-^YRK-4RzmY+ITZk zU6@C&-yEtgET`666FD~>w<6W7U0hrulZF`YV=c{aDC_1-DTH`V*GSd^RQDpcbYUVx zCQ{$e#-B>;EE7Da9t4#GE(kxVngqBe{PFt+*W* znt#R^4tzX~p1KXAl1-a$k5XSpNWt}->YPpw;c@xG_DnKRT^O>xfJ{`Yw{EW^(V@|! z-NuBBI=Q`>^dMJQQ!eS=jaV{TcbU1Jr4kY|@UJI|M~DDJh$(F^ELas%u?%eM=PS#^$P|SK>marj&@wyY7!9 zse6xV$}{>(Vq4g#sZLnr+D-VfNLO}LC25HZu~P4S3s;%FFYe^=Imga90-a*jS_G}y zyOCJ}$l#bosk&Ib`V*H*>9D|FE^^57^DO5*(uaNCgP7R5C~_B~J(CW@s7lDMH#_4RvmMedD($nR}gcRx-Ny-uZ5oA^5M ztFf#+kR+O%MHv>jj|+jTK9EF@aux{&N?g3IIAL$|I@|a!*YzL!<+=oUc}O=otzgp< zfG55kdBL=(MN_M;V(jf`?bTFvtsRM+x#+r1f0b}2t;*t9nNJXX>MAFAir|V^S*^Ck z8t}{;@4EFFmnHC<2LyQB8@yU9Rri%EEWbU8Zoe3cR@IZ0wkIoxEml_C~^m$w(!Lhxdl^}k5>yVc#dct#M0!8-2Rdzs~RAaQYfFY+=kyUX9~ z;+{V?RU*^_uOCdP?LdYP+uJPK3nKJ(`rdjkZjO*I-4liSt%-YEy!yJx;)5W~i_bvE zEs%EHc)mShhlxb1z1LFnweZkgAA8jV>or5zksvZOJaK6&)lzOQWkJDcy||gp3MP^2 zt@65-Mk{OTDpqvLhzW(aU$>DBnw2d7a>B&|PF$7s*9%%wf{G$eORhu3TmX zcaiYWB{^K8z_18Sed#DGzl-b$T~gy!)}5t>5WJJv_M|m*C04#$k0??)qzKtmj;xk) z=l(Jl1|dHH`FXORgc^8+AES_oaPU3aWMnqdXPm{KY_{ zJX2FEuA-bTeUR&=HV?%W#kyxfR>`_Duet@Sxg)`Qw>B0QN(S4P?gyUP5tl5{ zolADHDq!fcY?h{O=NClb-Y+W~?>f7bHK5$S9R}mdLih}jfPFRumQ6q2uoI$S21U2GCr8Q`>M!Z?@Y#-%6Exoj^+DVb{Fz; z@C|pir3-n@68;*>#eH^t z54UZhUS6P}e7zU^Bv2m%%FU@PIE-|SD-fQou6Emuty~b?Os*Wl6)PU^EM!4lNlf&f z?OqCXio2r%2K+A$2F&^}a_@xmULb{>2CJjH&R`D@2I05jkQ{D2dcz3^bMqAzX zfwfBN%2h@0VRT2Y9`x13R*-}q+HqpiEN-XT+fG1hg^$04!w8cEdoe8LXAHYoCHJUDyvvcnBE*26&K2#%Svn05k z?1u=FPHr4TdR)8E6&5+&*wQ`!8CxGs5<{JWFsYtP*pXAyO=qK z{4sRzb@yvl>a$x}NIX19pRxrkHJ+?g_g-iFo8BZ(+$H!tt@&PaI+!}@B zQrjq8lSu5r&*R7-UldQTYmMURN&YAff(kWIb(XWJ0pul4)}aApGk6wky;xek+UC{-kiUWITO4*KNGA_m`_6uIc z4IIpC2`OhwlCe?1h%1vxWa0|3>4xRN)xlN55~Hp0;Yra}%JUi4l#EryS(d990r^$) zSo~lTqk@asgCU1_t{+T>^XKuw=mXDdvOMV?y?n_%WawaLnZOCThh@(kx$8C$426IO zyjpO457O{eRw7Eu!w-1rUJw1=4V4;sV?22NLF;3`e%q(r!Pq>D?B7Ezba9S zb;OsX{9{NthrA%d#sh^IrH4 z-U6|_FUz}E7l@L3b%Ch6S4{klR9zmdsd{mKsxA*TJnt-HO{oN7%mw<~FXf!X+%Lg) z@6!RyoJK~qUkUea=_EEi4c^7dGaj3|ga?1P%V@lx6(zW*tTbi@_Ib%Z!04`+@_3+E z+pYRcJs!o|ds_vub-~Pycl|J%58d!CfNQp6@tuK<`QW~4sze_9Gsp$J7johc%WT8o zW<4%WaJ&g*Wy46MX>qmAsKxDAlZAijwv3$`hRrw>&w3w0IH-&j-A7*F`Ji-&AD-#y zSP<|ml==PXWE9W0$b4*uUT@3L;mb4h2|AU5d3{`CEg2+yU_SpQuehMc{Z2W~B1~Sy zcvrLEc|?9smNFcx#pAWCYB*?oZ0Es4!-+q_`$uAJUA2Ur8VS+QoBcC*gtH<~Yg^;dMsYkf zEPoX6Jo53K@bu})wbO`~wMKJs6q#sWby14#WlepgGnmwjHrT0n8^ZZlcpQ~W5G(== zMgU)KxY4W7)cO3r0SsY46O4>-7EvZnPw=@FlDR8jJz}gO96s4145RODPrEwryOLf? zL9Wt%IFR=lxjSGM5EXEuL?;ezG3Q@3%mnIj?%-X|t=at3UiDGDKEq;GQx~ol->fqT z(ur5{(&kEnY^x)fHH$>X&6_IQ6IfuW=c|Purm6F;=q79aJXVl}P|fNr-G!c?%*sYX zY*y#8T8_ge&K1#zH;!3+9Kf+q$1(2$YXPij^?Du0ybmM}K}V0iGuj}dTt{L1PNG=A zmW<{ojz|<~-Y6o+%{4r1Z!%6v9CAUh@ecftcC!T6g54~;rsK68^}#!8u3>?^ z@U9UiPgCdqq|;_w>V@|LOk=GVs|A~SB)4ll#5GAed2@G4G@XIwoG4TNaD$y1LlV2J z(Kv~owR!GX7W4o~jG42`nEA}zH#1=xnSEJOHW?iH zgjdvK#wE5SnOuus7Ln>{zUnHncqK&^yt_i(MM?N^hpMn zA|~pXGAHVoswV1~&P?>hl=L7;O!RjkU59Y$AmcNIVIK6;PBX`Y`cNw$)bSsGP{$ve zqvM~RqvHo*R=G<%ZX)G^7^v`b-?r`z0he4=(d15WRX zBZFC=$z=Jo!pj^$Q>T0YNf1};Ahyzo72fnTo`Sfu_}GK7zDmbsZG;!h3O?D%mbEGD z@?;P(C4+@c!E=8x%bWs1-anh=iDw!s!83Y)SC9G`eXh;Z>6yHdMLkaXvv=+z5$vv9 zV!=rUlqP~@<&wL}C06wk>A@aHdggKQk%}Umw)2%vi9s z-1YSP8?nZD==-I+U(k=s8z0a?k>UJ+p%1gIC3qqI42zn^k2A`dV;Z*fYrUrR!JX{T zG~EcDn}$Oc$aVZfx+u(gs7{XEA45)@pl@@!PbZV2 zHz%QS0RLKOapGpHk#?9ir*LD7U$tDH{4!=DTR_9)#6LDYoHnDV#pM09z=3f458 z42*eAFhQ=Xa_9174hPjmeL`<$ok7AQWuG{DD2|tXiere)Dabr%ab>GnP>SJw~HNkSU1e)9u`WtV-|Mn=)ZP0iDWBh5sS?9VDHQ#-MGoAp9Mt# z#I;$v)<(_tYO#5?y9GX^S;j8TMmPn)rE~N~hvoqI*ayr!mrNVyZC;HH-&2`#Bv`=4 z$dTx8VZAM-AYu)**mP?2jRi%d^B zc%7z>-pJ~0WOK}JamemFZBOl&?O~gAL?cE1D12swiLP-(t@Biz3j(j#P;si;N=8FhgbJVIhT`40|O zK0<~Q_5I9)jd|qvfk?30g)qH-QJHfKN&mhdbDfq8d_GhlkgEf}$?6-xiC=`dt60Hu z7vU(Q=qCRBPl7ICgzvx%zuLD=)gqw3(F(mDgZ2e&;po{u7PXkfwdd&X16vl8QHjnf z&fek?mUJ)DM9{`JrZ8+BJFu9quT?z8G}yilLH1$AqK)2PnVe$&ZZKSQMGVzydp~o$ z>!a>oG;)i8FBFLKWPUK|m7m1n>~&oE<;%eW?&xS=xT6b-*q$Y14*3}Izj4uJ0}S*C zxy!X^opke3ai+JF*vVJy@=}r*y;X#uB&7zZa1=B(74~Bp!Dmex;I)Yjh>x*zF4Hyf z)G{2)t}D_d@m!s3Sdo2$sU!Ol8cuzuH%OFNHSVlMa^VtD3txxpRQh`g-F&AcA; zm1}pmch==99a817{~zECHLfOIhUX$^_A zw}~Ur3$E_xa2Ub_VKzhVvyFDRV4=6eKyciA0B7xP3t|LpMc~pN>}*9CkUIFx1F7YI zgcLaQf-Q8vx`rViCvsExxoSa)lp$rL1Ybc ztR>;ooHcpDKF1d|l179D1||d70m&Q{%;D~gftR-n^2UdBfYs)R)zkquSZyJRoG);P zv;l)PYrx0Aoh5Pev2lh4SQUp5cepp;!+_B`&SDGFTP453yvp#Gl9rNGW}Ze&Vt{Ic zcV}XNc0oj@cezARps7jxV*(XFGeAol?e?P`uDpmprRB{Gn>Va`VE4L5R&4AQFtVh+ zIuXxgA-%$PWTI>~Yj}#JGxGo(`IbJ({oCWL@<|doOdMB$&(AnCwf`lMvEPe)9?=WT zu$YZwiQ}@DM!;fgi91^pjrPw*pllP`=khjb7WcW`aX0CDKpu1QtneH3Iq6SyoX;LW zdj#a4B8lUi$Mb>%y%j+AyBpId`f$8&>8iOB0_$AE>0nfMhS_2d}msk~s~ zjqjA`Q&}&Ut;CM3;3*Qmh{LI^;cV+y0T-9uY_EP#q2J$l^{eBwt%viI$Z53jIxjvL z^_cF2OG3_Y_7{{5E#Q#g%KCb4cy+EM43Tpv>`w6r{a_GUc8T*6t)ik?OgYJ(-i!sDOFS3M1zA3q6(0se0-vuq=AY#An$ zLsv-XbO~LdL-*UMLszior^%zL^N<9~lVFE9ST}eS0_P!tlZN)Vi~VFLJ=IV5urLRS z8Mg1R;e5I`cWU3!t;&?+6ZqOC{0KWgsr+;_D{#PnsKps3--*8OAa_S@aPS?drhIa# zXm_8&qIEs^juam5C)i0k5HIgLiSz58x()TR9540ZwoTsz7GF#fr+qTdzu)w#%vgMu z0e(hJv45SW#&&E~rhF>4)E+uNfiO8pIQyuWgsAV#;KW9RWbStH58z`Mm1kK?F?l9t z!(~3(sr*lJseMlSYV33I=&CC#cvioa)|u5mLk7k@Crm$}CrRi6J~pfJoY*Y@lZv__ zEb3VfTd6PNF}EZvUlllPlk62XBL*({vt*P#<}-xqr1R8UM2>ZyJC^M7pYwz9KQDAlQ!Tfc zZ6h|Q_6?-}@aJ1la6@O5T8X|4)54cR;icmAC)f*FgrLV(0+VO?m|fn0bHb8Tq;XB) zIXGcXGmC$Y478Wzp=^SVm$Y!a_!ArHX%^#DRa}PSWu+*SCe~fX;R19|%d?!qF*zsk z=zq0H-V~5{Pm3EuBOs!>V$k-71V`nBr$_)gxFZ?YMMQruW3X6 zN>1r|8FiHtuvv9FS<6Q99)CJt;5OCFEGmg3PWD3-?#p)S5ziifk@QhZ5Tbn%2d9yU z2)sy!#%;9fcp{C>6Tjca=@-lqzG*NV_t;Wy-Rs!&Qt}KNSVn@>?n@6|EG3Bq2ja}U z8SehZ8XZ%&TYB`*zL{v`2CLsp;!GPGW!(%;Z8}TYLI#>%2+|9~5&YdkCWpR|!t?sF z6~2L;+JYVK^202s3CZ;HM|hHfKf)fvPy zbJSIRnPVFygiT^q+r*V>J=>KvZo_1~GDMG`#!?uCR|wCNlrahc2_)PLY5p>_IN^7cknOG)^|w^#TtOTeEA{8^f^ zqt%jS^o>s{w_5%*wexo@YA1;m_95B!K|RYXC(BekYs<;R@Y2>Tl>LWU*mfLjmiG0h zLR0pyV>#QQq-dYN9h=R{Vpg}Ee8cn39azlYT*^b9k&&;CG}>+*p-kU8SK+HAE}g!a zwu1reP!0sscO|!b_VU$mllf3;8gHA9Uny= z&H2`YTxAVAG2LamSTmk%*-p|MH{O6IM&0?A4l+Z6wBsOi$xr&&@?L`C?AX8u_wTMJ z4BFg2lJZ(lR{Js;9=@T~WNS+GNzUf5Krvxal~8&xIHwYfhur2@f`bs*vP!--DQv%Z z2C@1|@@RCaRa1jki*r2u@poMW)oh_aO6d}oy^Bm%gAl3Mg%eXFmKU^1ha=L}F0Ink zpwnF0cua~l0oFf?7qlCZj1RDn&D*-;6@FKw!6(o&-CaGBtw%bsRP0_gwZksGE9H#P z<+j3dXNIkd?E6wdob;R=h><~Ft80Oj$5pOq+Kr&v@0Rp+Hva!@6H4-El7X;_2EtYjfMNz zpg_`IhkX9@9UupA$XHgp2cz4J5X>IP0G=VQlE~=IsT&h?zhh^A1TBExswlfbSwLC> zV6t8%-;x>3x)*vjl4*NMVx-!YL*bqT57~!#Oe(o`uyilkOky^R3pl#XRTK|^!Y@z2 zCU4GW1z&RCLRB(kiA{DKQ2hK zA+@q{w^!v`vQlhVCE_z)^_%bqjgy%5HQWiT4g@SVcY)IBaW?b3Ty~qmMdH4)M_l6G z5U&$3x{TcPg1-rV3VgiJt^KQo+@)CzkFZ*}WuCsOgVG;%cUH}(%&W88!sqbo?6Oy9 zmwh{PHleP4vgL#>w94jYw*Mm%Iq`OeriAqNT5CgKBH$R@J^^^F(VNd9%_At{eHyM1 zoT1R^a~z*lIdRRSc(;nhouou(qhJu=^viy(I^Z;EUaA)afs`zuye z3oHK1{p2q8=Y3?AX-loF8Nz10LFNZ<(Y-SAFZN0;iP8bTe}fd7wp`Z%|J9onyop1= zvM`<(z7Dx@h1I+X3tE=0!`xU4Hb|GGOpe3X ziS6G{w&0{J{Vm+ID!a)t-zG!YzPCt%x;2bvX0m~A!~58ZNZ#AHN3}IuK+p;Ac4ODy z#ueSId9s%hjr?ONi+u;t=B<@Fb^l0aws**w@U8sXPlO@Wa0S4?pU$!)?~qqbTjgkf zN?`f5@btFD>TR!G~`nxy|+Eyg%!JT)>bEa)|dj7|)JKp2f*JO4! zua0CB-y?Y@D!KJ{^of_Q$U@fi9*i=zY2@!$cD#=(XwF8K^*)(nayDjI%PF!RA z-^Xrl50?^MEuD>!Vq)ZBo*P;7`($7^E#y7w?7XU9;UQNqFzW$a-lqqEE+7@J?6UO- zNMam4C-cqxn~vjM-zNxs`U>Oe`pf}zz1HXoj%4eu!#=<#Cvv?2~w@sT< zk4d?%D=%Wle?dkhpO==Qy}SS$U{%Vch^v^%@0SXPf_yJ*v9+qamZcoTGWR_MM%|$w{t@qV6EGZTMdWdlA%1`ue|Iq?i6k}4td=6j2$^ldUQVQKcnpO zVH~$W0K-1S_6_KYJ|r<+wr3lH2n~zS$loro+7Gc&09?a|B)t9hLX_R2W{Ta#FG-(K z{-#md2ix{iz=_K~uo>3{2XOHD>~Ea>c-%*_*s5RhcP=j)FgP5&$(+9=11CFgW?1SJ z{jZJc(FI+Js|^yG;rt4`$ULUAI8Q!Hj$zAt;&&_pucSt9ua`Ume=beHbVY&o_EyJ< zZ&;3~zbNaYP~R2x7Fqu{R>JFdD6$?3agqNmkyu#|A5PRq$@*B-SED{&*8dl~F6xCP zf~Ll!ektm?PsjUjX4a2Mbj*%fvV9Wjhlo1c3HXiypNX`B;TC+1@l`9V{A1XwYQuw4 zcLb_o%=`&?)c%*wTv2&g0d1fpJBrdqczx4={DuE9BmQn(1^S02{zkZQ5Ml8e7jKhn z+2Me~dbY3Rn-jY7<1Y}PjfANJjPFMe$c675Y~gXzJ9I}8*G6#zfqe58i~W==?k%ES zUUWHq>H4NOtNj#H`4&6%DS2>$um&(C0rG+dr>e%6stZO?(wnN|t*L5S%kqyyQg=8# zL|sTbSaFHi7{YR*!dg;8ir#lbNO+LhLlsIGd%MByYFh(Tp@BEEgr%DUYpCs--5%jf%G9*qfXoze)hD=!!&0Yv!2BuzQB&OfeZ{~HznLgj)Piy z#QpGBoC7Z{2UG=igb@gIK#gz+P2y+0wU)loX*e#I3b5SlDsT(0J~ULriZ#b0f0gN`V#`O6ah0%vjm>L`4s z13QE3WGegYYitv$@%rD_5S(h=cIq9cu-GO9BT<*z1Q(?`iDmwaL=TlPVo9$~;=UO4 zD3JSN<6Zwa3@HfH$nmkfvos6tZtC2}i@z60c(hMjeR&@2!t!ir#yrNvC({298 zOsvdNLITqv+8j$D{{)vKs5;f-QGYtsi;YWoPsz5O*#Z_^C{C;nW3#@2AA@JnH&Dax zSk7M%T&+&UZ1F9tGP2UOUNp1poaNPp)zif%``YNDz^jW`*+s10#YoXbWVO}53#)A> z?AIp?xmg?@UM>D2w*14&2LEE&nZJ-x({^IB_c3=#0+N-T$3<7-JI%7q1JdOa#t3Do zD}Gd#iSJ8R$BMEz-!iu3B3`fhxShbK!=+*l@qUPS-^37nKCis&ob3OafS249X1>Co6`X!P$tga&jh?@sY z>q~mQPDrXiF5CNVe2#rJ-gR>ltu0ICe^|+0EyjpFO^#@y>xLL3%7knJb-qytiP2F@ zI6u^*xhUXW4YPp9*r2d(vK*#rs}E0jJzMu*q<5E>Y7F7W-T?~m5%v!MMZ)bbozlp$ zp0E}$%kB$2962oiOHhzw;*~Mfjgr^^V952VC{4*UN5p}RwMw?93 zy{p%?`$*vHzAS%u z8cZ|eJ1gld|8L}Jwc5=&pVD$--X|OjqFaWtU_=jgfBEuINv{*LTW`!*J`VT z-~DcP)^Lry9bU=rXQl9g@+gfSe0b*;v;IVevEThf!rBJd$*%uIR@$ql%au?Fwny-) zbGRUR<;A+Z#dTyqzb97+s$G}(Tt8pL=GVDc0KFo{y2;Yp z=KFQFsSST4OLV5gXL`|0LrURcA|+6Cvt!J1#;X8hL94FN5qF4o?oB zbC1LG*2y*q$i`F}r|~*5y8YzeB@+(MGjY|q|AEQLWtXpW8O~)9H#~lkZjN$U)(wP5 zIG#4cBYA>RKH(7`)1=q83Xh<#<2T5YYITKTfW$ID{5o96}9PB)TUcen{GvI2Vq4SAq&_=Roxs{t$~-fA>^@Q zH&|(0@2fQ8U5H2Rxxp#|RQNHzo#{r>CXJ+x!AOohxH?chd6#OAIGAZxL))o$g&fT3 zs{ZM2l5#L9L0uk9>JL^9RzJC0{bLZbjZw#_pB`m3W7Ox=J*$}Y0d;=Nr)ds?pm0#Y zYpJ~z^F)VYF$eZ(Fe?KcX7vI5w3LGf9#E$dd%eST>!ii^SD&Nj>oZ-q>RV*Gz!#=f zn=-)G;#c+aaDMIVtvdGu_}{Hp{E4&s6`1|HNBkas%^)-8Fkn48n8Q1NOH}xk^|6lusxgNM33b_wW!Y>uS zEc|ltn}uIKeyi|v;8%)Y1%4nrv=+Z3_|>~^cM8K31b2dY&s86{n_aiNr2N18jrl+6 zyff(T+=O2CAbwH!#UCt~s!ncaA64hNJ*vd-=U?WZ|L@@a>+hWJpm$z(Ph( z?Ox(ZdzTyOT|ozJi`5ZUdyUJr`iRT52CL2LeEs=Eh$qkM_>Y%~`U=z;zZ{qADTmAT z6j_b%jy${O`R!~b_8tNE!LvDpU%2bm(k46`T&{&B zcwTh5mYzfW3k@H~>Pjpa`2jp zF7>{I9Auk$IsTdP1L^-?Th{|tRh8|}-sf^fKwbR*cZJIz6_D(zWNKEZlr-@bmNiyP zQrToLGBRwOc^J&ZBr{r3gKb}tpb->R47`_PJybFrqrk&*kE zGu*Zu^&{|Ez?43suTm{0_=ujiGzI)sqf)wlWMo@4aQB$D=8=)@tfgyATN~Qo8SBKD zwyu$p9c{+f3Wv4~l72WBpOyFo$=+7YAG54gPt~PCQ`@TN=$%!jqgDUvoa;(RUssAx z89wFsEW>9xK9%^a!lxP^%-QQOXRm9(XA?fn_-w(aB~-IbdzIeSVrsYRyLCjbiQb_z zw0E7E&gD4ET*+4&BWN&O6 z>g{-us{=W4aAq7Pu09K@yz3SIdMjSJS*f$ENlYLe?=d5L^abAdPSpF&MbGO6-UOr@ zvZU#G-7WRd<=vQmQHjXOB+Q|>Gx1VJpKD%zL9h3^jiC!(WR9dNLPA+q{DbT!pQ+rh zH=F5ub+k7Lxs6m?uvdSPlY|bES}{w%5IK7LDDI^&A>}~aa1b0%=BAU;uUUW#@~1L?+D%s1q4qIrBP^Nn2%3>(M@MD&}o!t+}{I zKjh8y!=!pM+@tq}>o2^j@APJ3?q`;pAHAl}^k&u*Pq7WJF^^kczE7{t@msOzuo}*3 zp0sw&3QOVpeO8%e%{UMTVJrrjE#~Mxz0~XPCZ3zc`w=CndtcW#=&T}h%j-Jb>qqGQ z{if-4y)-HdDOym9uWFxjDl9qXj=$@1CU8*KnkNq+KrT;c&jFpRuFNfo3wtYPKdP>` za)R9Icq=cLtB$vFh#4GjWjAuw@m4l#aPxS|3FdXYmECMk@6}I76~GfS>n+QF>Ax{( zgSViJ$)P_V)alAwfUGNM4!!$^u2Hpc8&;vbH}yfOheqDiXRD}L zE%*yDo!H;r;5>aXc4D%d5>uF;Nukt!eV&S%jZ~Z0U|Ca_{2ME3O~Ko6%WSxAUPI`t zx7n20CrKB@n2NvY=e=`a$(%Nmbx2RDKjHTt7K}xCFsRwo4d_GR`Ze$CSG|jnRam71f9H0$9(PzD^)6mUylSgK z_*d%vgZgMx2@zItZ2Gl4uBZh9Jz$G8YmVtz-qIo#2|a#HXZW!}hF+U!_iF4Wp_W+tHO-sGssyJ}6)H-$uTWUK zL-(fGMYfKuG&lO~xuNgV?PnC0)zH(E?Q0b;gQ(08U7TsBD4kRt0#m!fLKaHTw$HY) z@Pw|MV#g|;?px>E$)Sd+_9BIe9qO58FIJeKp$YkRyeF!l%+66)+rRKPn(EW+46|Ui zeM#uS)9kI96McTbu2IO%Q2R`KCGxUMn1c>;2+T7yXJOSD_GAx|DztGPce64V_$q zZR{qUd} z0?oU%)zVvAO~N4RIACcUh88&Wb*Qg1E1h~h>h)%mQ*S`M!E`wF7SvnJA+B$)vGn#D z}7w3=?8&_#^CoXGkM6K$zS{^AF>aq zSv$HxwV(~&wX-pbYR0(WC42V2;PZi7O!+Z8Qw^EwV|K2HzxRTFRnJOroMU%8vA^2KQf|3KD1I?Mp{)(v*Tb-X2m&r<{^oREGH zbk9Ok|IK3%?|5)tj1hbtsZUmczFcq(_RucuEV6 zWX}T>uRdk3)rf*NQhRz$(`U$z+x_qsA2HalkIA|%fR|SAM}ryo%sxG<8&r{sSVn4N zEwmK6+z~iYV*3va!)<()2oF1=iPYWwz#ie-P3mgonhMK3PuAfe^t228EwXy|qxUfX zN2L5crga!r)Z;}JytkH9sLW;eUWC+REbQK^N#%2j1cbhpoO?=LEVz+WLFE|wc2Y-} ze@N(m#1vZqEK&EqL25-SaFfuF!g~{{5I%9g_ZzZ?T1@rlFf0Rts=;L(mx}b@#YGg2 z^8@4jaSBfdE*^vDk~(k_^5Wld3qi-GeTx55vTo`|zcP?)MV9_5L zLDosgM+kpp3Nj)TgAPx+3L-%)?XkTgm!eDdbaxUQ6mW zzZv+#&dl12`4p7qJxGXk5DVMUL)Pc3jQ>kJBik-Sdynv)Bx`>z)K$B9JpQ-Y<;zXw zm-dY8;HuGX$6pIGd48~&n1AD|Nv*9n?O&qXm1vgXjsG*Lo9lrk5yrm@u_iOj-7acI zd$&8?qKMSJ%qMY-%EKs2OyD^3BRGV1@kZ2Yv}3fV@ZDI;e8BZ?Jfj{WMO|?33D^86 z%+iBwk0ff;)1+Pi)T@NP7v2h@VNfvU(R1ie^MZ}p9Q83>r`Gp@q0nuJ_K=#v@fHQq zX`}+1fTe@znV4CukQKy0$C;#@nNce87m#%?!l(KL|Cm%+8D9I^r_XGHRJfZ~_=(lX zxTF7w33wbhAYyNV?lVpQurn6D)Pwc{cl^;`qn*tYxfq!H<{@+!>B`06<}{)g^fuS; zF{xyAk{O1c?A~g$9~Zt0N!85-miZcU3t6{xn7~(d=0ap|*vyzGNZkQw)r;6Gq%_=b zN%q9N$;%tMm(@Jx9kM<;WSYLRGiL38S&o^=o(W#E)}~-nXm#~Wh~<|{ku1jn{!x1;s6AzMlm2rbGd`jxH3gAi?PqNYBa$p(Nq$KQ^-RMwKa#9|tudCpN za^YW$QSS!7jC#@vWcq&KFntZ#>gT)7zzOVa&zyjwUU#IEc9Gg!4@EN9C$(eg;BZJ( zC*iH&Tb1CKa7}s#hJpW-VegZTUo4h?gWMlGK#C_7^ng#M7UjdE{!uw9{O2v6iYNlV z4rqs-OJXY#iMg($2vgEi1N&r((@Ii(0qB|Q4xHAIy0#umUZ>#SlJzYdsh0_ECN&9v zdh}a6L+`+^55C3H$S5sp0* zerN}lqf_j1QYW{-PD%6F+eq2GM#yB0#l3qeGRBd|xia>5kS{d!9j~dC(w>6$J!r2T zgI@y99fPqZe$fQH(zQ4CL$V(S3{RifvE3NbcG&bZ&8kMc2nJWT2(9&3fjKSj#78(5Mt?ln?( z4nsag=tJ1Hc}$XH@#FF6knirXbU5eCcw~FuDpP*ao>AxCY+wX9_r;fxnz;^!4Y-Qp zFC*(HoMrn3SCDE&FvA;M{I5u5b^}Xt#3LDY@LC~;#y<(?!mw}<Z1S9?x zy43m<*<@Eq2M0)H^@2e>6OSeI=rUmOT>QtRp5b{f*_5Eky8a~OOI`VdC{pjYn)2^4 zTi#(kN2L7%c$D=>wk2Fo>No5V=_lcrnBHtyiSXZpZ0s}b(36cnDmW_lEU7EezY=>A zu*_T)FvH-hTg-f2u7eXjWVLL8m@FrWN$zv2$e_?OvBL$xFA++_$?kvipjT#9;(4TY z`GCdoiI>80o#2<*ka#<(jvCMhU3(KZ&|-D0ax}#fAH;LVdN34Ahr1}^*&g0u++``T zhg5Yt=tH95V>oEJ>HPsmX#5$YA26PsV`fECfK)PYM5N1}be8*gKBCoCpM=EO*#P?_ z4oR1h^CZox68Z|*4|~J@Px={Idz+94Cq!Q(S@$Ck!Uv0_hp?RXwVI|8Y;K2OW`gkj zh1C66UBYoo8iv{M+bO-@lKP?%`5-eRIf|@46RktSe;KK``-{*ZiIV)ESPp1&u_t5EYP6~j;loMn6^uW8l1lDCd`iI}@lSpk zCpQA-{KH8+xgT~{Zf^BtX7xj=%+-=I5m`4VTv!8BkR??sHxGC+;yy%@t5#uK4rf*y ztlODtiwP)C#w<@@4EY(dnvMY12>T19rbVKcX2IBTg7}wG$}=M_*e$)K;1vVGrb5%r zY6E6~i^d1E=k$d^oD92N+0;LwYmSr5qtpXr?XCpeB=q+%0{GjZV+5(6gTKU7Yfnb@ z_H}5tVl^)`X&L-N2$$qXS^=qUJY@i1+zyV9>;h?*LB7fipncIBEoiTF`$_vX=Bp1_ z;+*yf?#pX|SwFjYH$Q5}blK$QU)r<$2+|bW(Eoe*BAg#-pOKo^Y^rTfX5Dc}FLTwW zPr*9Z0~eME#%=!&h*>ev4fE5n4h9ba%k)jZmDF1txG?{E+y^ZKmhh*;+(6|RybZ%z z2`p|*N62Qi?S)+}(qR`EfKM^>k*XXRjdA*?c*2gKB6~a;b#Jdid!H-kizW3l_FseG z)1U{j4eRmECiNqphmvtVoP4+M2bO&IT_vyb8ePBnRzd#c82Mk2ib1Z02kyIzF13T) zAS3bJL+X+W7<60=!13qT?76UkuOe`qAhLk^-Xir|KlsH{KD^%9+-?F99{g}K(v(Md zCdX^b2Z0(_;pD4G{R!C{;lb8bg?7n^$=DNX%Ymii$p_(5?s!<_-orVCJz6CALsH-6 zqT{gM??H1e&~arC>1~_PPwX@+=nU5P_ePI-PT> zN-(yVfdOEdN*Q;P`U{6HMd({_@7V@CD7ZsHhc$cTa~RYOS?2;BSH>H4q>?&Ns}_L| zNSzCX;Uv!Zj;s%cfn@}l7?F=%FR{-oKnD%L61vQpzzfFUbIH1E-KasC%SgS)0~&Js z%dD%y?QR|#mP^A%Y}Sk=mYENbwTE3MF3t>+TGEGws8#r}nCv(r9b&P_L~hJrgJlwA z{vGszF?2j#n3@1A1E}+RVKI#|_%q15+m8+<=6*cW41(a6s^rq`qkbf30BbK6iA2UhiQ1Iu;L}9)-(PmoR*W=XdM@$qE0zBvsZV z%!WhofEbuH6NgP06h3TbEx-e_vQY!FaOf@AI|k!99=|z7(&HRghljX#U_axSwYvsn zZNZ3(fF-6`cp}gTms|UV{vxRe7!Wov>wm~?b-1(pNIjM0z?E48q z$NpLwkpAlM$RHcHA@!wDARB-78Avi7k?fb*7m@0(1ul0LWM4z-!Y#luOS0Et(_w{T zaP|gZz*BfLS+6uge^`DesmA><&=+Ub@iU8TjHsXq0!7lnyDZHYFs|%jvR*76Rgi-R z{Nt*izuX;R&UlJAu#!35X_n(W%`s$W0O}XDvd~11uxV!3wz(3c^X2^C+o%I3z)le+f?~PXfz;a{gsNImb!0oqz!; zb*?}zk#zyPuu?Gg)}(5T_@q0++-aniZ-PLr&=+HKY8&k!_hPu5Js<|=t|GOj1z7fw z+(uFlgC4#Y&&6Yq>B~T`lZ7SsdE9>RygVcw@MACJ#3_ZJ;E6*JSaKxy8&bI(Q}NIg zEKFI=pf7Ocr{MX=PS2?P6g*+**p1C`rO@Yqh70~j1Fk7c@HBusln$m~kGS_Zuw?y| zwbH|!_mMT+1KcVKTS)z3Ij|(<6rA$k;1GoQpNBz_z~Z4PeW*MAhYi4H@`N8Q zCQA6GPd1r;C`1r729wTI*gDJPrZVy2ho9U68a6KPIQ5PNbp^x{s9lD zZo&7GdMy&;R{?3*fk#Gcu^dpQhG20Kuvk3xRkGH1;st?E`1?R-kA&%mAJJkkreJW!g;R z`*sL~pOsEK28EntGU7Z1ylxDR1?CZl=>f9ZF=AU>o_7wZ-2v#A5awM-b=Enput+S< z`!QU)YK#KhqIu^654t1Ft0(ntClrMFF|B@q4#O`4@^+AQYd3JU@Z%-OU*Vx}Qs?2J z=;1ujB}ejJ!Tz6(5vmg+z)wlJ!|(_WlX@-^^h%+RAgke_@b;M>g}QTrjw>J2F35C| z&!2&JKA1%+*Okv-NLB_&me96B_0U!+(&r{SY9*8~NJ^pr3FTqWu3N`}ZfH zU+zKk9|6s|#DJ&Bx+nm7@j(6yI4c%|A#A|g`~@6fS=j3GkB~LFWORi2*sXkxqXGrv zQFku4gMxJ2PqBvzT>}d+4KHg0ZWoL%bzR(wkTwdwmaH^{EPSFWxCN)*O7s`w(Ce%M zgy39E8(S8Rf(NkMaZFo8!FC8c7cj1ZXZa@p=)e;CbEJ;KU~IR}UQ)1+tZ2}kg$>~; zIEauO0+f&x;NjrTQz0$|1D^C~KN!Si1t%cTJ1Q_e4wzRfQ82v_xPJ`Bed+N4Jg delta 52966 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 Date: Tue, 18 Oct 2016 08:43:16 +0200 Subject: [PATCH 044/128] almost there --- .../multiSlsDetector/multiSlsDetector.cpp | 157 +++++++++++------- .../slsDetector/slsDetectorUtils.cpp | 17 +- .../slsDetector/slsDetectorUtils.h | 1 + 3 files changed, 110 insertions(+), 65 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 9b6dd92ea..b69d2103e 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5070,10 +5070,14 @@ void multiSlsDetector::startReceivingDataThread(){ void *zmqsocket; context = zmq_ctx_new(); zmqsocket = zmq_socket(context, ZMQ_PULL); + //int hwmval = 10; + //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower) zmq_connect(zmqsocket, hostname); cout << "ZMQ Client of " << ithread << " at " << hostname << endl; cprintf(BLUE,"%d Created socket\n",ithread); - + /* + zmq_pollitem_t pollitem = {zmqsocket, 0 , ZMQ_POLLIN , 0}; +*/ //initializations int numReadoutPerDetector = 1; bool jungfrau = false; @@ -5086,6 +5090,7 @@ void multiSlsDetector::startReceivingDataThread(){ int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; + int datavalue = 2; threadStarted = true; //let calling function know thread started and obtained current @@ -5102,82 +5107,112 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); - len = zmq_msg_recv(&message, zmqsocket, 0); - if (len == -1) { - zmq_msg_close(&message); - cprintf(RED, "%d message null\n",ithread); - continue; + while(1){ + + len = zmq_msg_recv(&message, zmqsocket, ZMQ_DONTWAIT); + if(len>0) + break;//also comment out the next recv +/* + zmq_poll(&pollitem, 1, 0); + //received something, get out + if(pollitem.revents & ZMQ_POLLIN){ + pollitem.revents = 0; + break; + } +*/ + //received nothing + else if (receiverStoppedFlag){ + //one more chance if receiver stopped + datavalue--; + + if(!datavalue){ + //#ifdef VERYVERBOSE + cprintf(RED,"End of socket for %d\n", ithread); + //#endif + singleframe[ithread] = NULL; + break; + } + + //wait to check again only if receiver stopped + //usleep(4000); + } + usleep(4000); } - // error if you print it - // cout << ithread << " header len:"<0 && (dataReady == NULL)){ @@ -148,17 +149,21 @@ int slsDetectorUtils::acquire(int delflag){ if(receiver){ if(getReceiverStatus()!=IDLE) stopReceiver(); - if(setReceiverOnline()==OFFLINE_FLAG) + if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - + receiverStoppedFlag = 1; + } //multi detectors shouldnt have different receiver read frequencies enabled/disabled if(setReadReceiverFrequency(0) < 0){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; - *stoppedFlag=1; + *stoppedFlag=1; + receiverStoppedFlag = 1; } - if(setReceiverOnline()==OFFLINE_FLAG) + if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; + receiverStoppedFlag = 1; + } } @@ -291,6 +296,7 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ stopReceiver(); *stoppedFlag=1; + receiverStoppedFlag = 1; pthread_mutex_unlock(&mg); break; } @@ -298,6 +304,7 @@ int slsDetectorUtils::acquire(int delflag){ if(startReceiver() == FAIL) { stopReceiver(); *stoppedFlag=1; + receiverStoppedFlag = 1; pthread_mutex_unlock(&mg); break; } @@ -344,6 +351,7 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline if(setReceiverOnline()==OFFLINE_FLAG){ + receiverStoppedFlag = 1; if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1< Date: Tue, 18 Oct 2016 11:10:42 +0200 Subject: [PATCH 045/128] done --- .../multiSlsDetector/multiSlsDetector.cpp | 11 ++++------- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 4 ++-- .../slsDetectorAnalysis/postProcessing.cpp | 5 +++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index b69d2103e..80a8bacc2 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5126,9 +5126,9 @@ void multiSlsDetector::startReceivingDataThread(){ datavalue--; if(!datavalue){ - //#ifdef VERYVERBOSE +#ifdef VERYVERBOSE cprintf(RED,"End of socket for %d\n", ithread); - //#endif +#endif singleframe[ithread] = NULL; break; } @@ -5602,7 +5602,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } - } + }else enable = threadStarted; int ret=-100, ret1; for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { @@ -5616,10 +5616,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } - if(enable == -1) - return threadStarted; - else - return (threadStarted & ret); + return (threadStarted & ret); } int multiSlsDetector::enableReceiverCompression(int i){ diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 0c93b917b..cdb726107 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -68,8 +68,8 @@ int slsDetectorUtils::acquire(int delflag){ //start/stop data streaming threads if threads in client enabled/disabled ret = enableDataStreamingFromReceiver(-1); - //cout<<"getting datastream:"< Date: Tue, 18 Oct 2016 12:08:11 +0200 Subject: [PATCH 046/128] trying --- .../multiSlsDetector/multiSlsDetector.cpp | 50 ++++++++++++++----- .../slsDetector/slsDetectorUtils.cpp | 16 +++--- .../slsDetector/slsDetectorUtils.h | 2 +- 3 files changed, 47 insertions(+), 21 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 80a8bacc2..f17d733b4 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5090,7 +5090,7 @@ void multiSlsDetector::startReceivingDataThread(){ int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; - int datavalue = 2; +/* int datavalue = 2;*/ threadStarted = true; //let calling function know thread started and obtained current @@ -5107,19 +5107,30 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); + + //---- with end + len = zmq_msg_recv(&message, zmqsocket, 0); + if (len == -1) { + zmq_msg_close(&message); + cprintf(RED, "%d message null\n",ithread); + continue; + } + //---- + +/* while(1){ len = zmq_msg_recv(&message, zmqsocket, ZMQ_DONTWAIT); if(len>0) break;//also comment out the next recv -/* - zmq_poll(&pollitem, 1, 0); + + //zmq_poll(&pollitem, 1, 0); //received something, get out - if(pollitem.revents & ZMQ_POLLIN){ - pollitem.revents = 0; - break; - } -*/ + //if(pollitem.revents & ZMQ_POLLIN){ + // pollitem.revents = 0; + // break; + //}uncomment next recv + //received nothing else if (receiverStoppedFlag){ //one more chance if receiver stopped @@ -5139,14 +5150,16 @@ void multiSlsDetector::startReceivingDataThread(){ usleep(4000); } - if(datavalue){ + */ + + /*if(datavalue){ //len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { zmq_msg_close(&message); cprintf(RED, "%d message null\n",ithread); continue; } - +*/ // error if you print it // cout << ithread << " header len:"<0 && (dataReady == NULL)){ @@ -151,18 +151,18 @@ int slsDetectorUtils::acquire(int delflag){ stopReceiver(); if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ } //multi detectors shouldnt have different receiver read frequencies enabled/disabled if(setReadReceiverFrequency(0) < 0){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ } if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ } } @@ -296,7 +296,7 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ stopReceiver(); *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ pthread_mutex_unlock(&mg); break; } @@ -304,7 +304,7 @@ int slsDetectorUtils::acquire(int delflag){ if(startReceiver() == FAIL) { stopReceiver(); *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ pthread_mutex_unlock(&mg); break; } @@ -351,7 +351,7 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline if(setReceiverOnline()==OFFLINE_FLAG){ - receiverStoppedFlag = 1; + /* receiverStoppedFlag = 1;*/ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1< Date: Tue, 18 Oct 2016 12:12:08 +0200 Subject: [PATCH 047/128] trying --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index f17d733b4..68a251b2a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5628,7 +5628,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } - }else enable = threadStarted; + }/*else enable = threadStarted;*/ int ret=-100, ret1; for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { @@ -5641,7 +5641,10 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ ret=-1; } } - + ///* + if(enable == -1) + return threadStarted; + // */ return (threadStarted & ret); } From de5037ae2ba858b0dcc9d20afec8f5cdc3d9f14e Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 18 Oct 2016 12:19:20 +0200 Subject: [PATCH 048/128] switched --- .../multiSlsDetector/multiSlsDetector.cpp | 29 +++++++++++------ .../slsDetector/slsDetectorUtils.cpp | 32 ++++++++++++++----- .../slsDetector/slsDetectorUtils.h | 4 ++- 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 68a251b2a..1478ffbaf 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5090,7 +5090,9 @@ void multiSlsDetector::startReceivingDataThread(){ int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; -/* int datavalue = 2;*/ +///* + int datavalue = 2; + // */ threadStarted = true; //let calling function know thread started and obtained current @@ -5108,6 +5110,7 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); + /* //---- with end len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { @@ -5116,8 +5119,10 @@ void multiSlsDetector::startReceivingDataThread(){ continue; } //---- + */ + + -/* while(1){ len = zmq_msg_recv(&message, zmqsocket, ZMQ_DONTWAIT); @@ -5150,16 +5155,16 @@ void multiSlsDetector::startReceivingDataThread(){ usleep(4000); } - */ - /*if(datavalue){ + + if(datavalue){ //len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { zmq_msg_close(&message); cprintf(RED, "%d message null\n",ithread); continue; } -*/ + // error if you print it // cout << ithread << " header len:"<0 && (dataReady == NULL)){ @@ -151,18 +153,24 @@ int slsDetectorUtils::acquire(int delflag){ stopReceiver(); if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - /*receiverStoppedFlag = 1;*/ + ///* + receiverStoppedFlag = 0; + //*/ } //multi detectors shouldnt have different receiver read frequencies enabled/disabled if(setReadReceiverFrequency(0) < 0){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; *stoppedFlag=1; - /*receiverStoppedFlag = 1;*/ + ///* + receiverStoppedFlag = 0; + //*/ } if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - /*receiverStoppedFlag = 1;*/ + ///* + receiverStoppedFlag = 0; + //*/ } } @@ -296,7 +304,9 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ stopReceiver(); *stoppedFlag=1; - /*receiverStoppedFlag = 1;*/ + ///* + receiverStoppedFlag = 0; + //*/ pthread_mutex_unlock(&mg); break; } @@ -304,7 +314,9 @@ int slsDetectorUtils::acquire(int delflag){ if(startReceiver() == FAIL) { stopReceiver(); *stoppedFlag=1; - /*receiverStoppedFlag = 1;*/ + ///* + receiverStoppedFlag = 0; + //*/ pthread_mutex_unlock(&mg); break; } @@ -351,7 +363,9 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline if(setReceiverOnline()==OFFLINE_FLAG){ - /* receiverStoppedFlag = 1;*/ + ///* + receiverStoppedFlag = 0; + //*/ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1< Date: Tue, 18 Oct 2016 12:33:47 +0200 Subject: [PATCH 049/128] switched --- .../multiSlsDetector/multiSlsDetector.cpp | 1 - .../slsDetector/slsDetectorUtils.cpp | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 1478ffbaf..c3a94f77c 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5212,7 +5212,6 @@ void multiSlsDetector::startReceivingDataThread(){ //end of socket ("end") if (len < 1024*256 ) { /* - } if(!len) cprintf(RED,"Received no data in socket for %d\n", ithread); //#ifdef VERYVERBOSE cprintf(RED,"End of socket for %d\n", ithread); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index e475351dc..9011c300a 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -154,7 +154,7 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; ///* - receiverStoppedFlag = 0; + receiverStoppedFlag = 1; //*/ } //multi detectors shouldnt have different receiver read frequencies enabled/disabled @@ -162,14 +162,14 @@ int slsDetectorUtils::acquire(int delflag){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; *stoppedFlag=1; ///* - receiverStoppedFlag = 0; + receiverStoppedFlag = 1; //*/ } if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; ///* - receiverStoppedFlag = 0; + receiverStoppedFlag = 1; //*/ } } @@ -305,7 +305,7 @@ int slsDetectorUtils::acquire(int delflag){ stopReceiver(); *stoppedFlag=1; ///* - receiverStoppedFlag = 0; + receiverStoppedFlag = 1; //*/ pthread_mutex_unlock(&mg); break; @@ -315,7 +315,7 @@ int slsDetectorUtils::acquire(int delflag){ stopReceiver(); *stoppedFlag=1; ///* - receiverStoppedFlag = 0; + receiverStoppedFlag = 1; //*/ pthread_mutex_unlock(&mg); break; @@ -364,7 +364,7 @@ int slsDetectorUtils::acquire(int delflag){ //offline if(setReceiverOnline()==OFFLINE_FLAG){ ///* - receiverStoppedFlag = 0; + receiverStoppedFlag = 1; //*/ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1< Date: Tue, 18 Oct 2016 14:05:05 +0200 Subject: [PATCH 050/128] back --- .../multiSlsDetector/multiSlsDetector.cpp | 185 ++++++------------ .../slsDetector/slsDetectorUtils.cpp | 30 +-- .../slsDetector/slsDetectorUtils.h | 4 - 3 files changed, 63 insertions(+), 156 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index c3a94f77c..5023cb175 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5071,13 +5071,12 @@ void multiSlsDetector::startReceivingDataThread(){ context = zmq_ctx_new(); zmqsocket = zmq_socket(context, ZMQ_PULL); //int hwmval = 10; - //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower) + //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower//should not drop last packets) zmq_connect(zmqsocket, hostname); cout << "ZMQ Client of " << ithread << " at " << hostname << endl; cprintf(BLUE,"%d Created socket\n",ithread); - /* - zmq_pollitem_t pollitem = {zmqsocket, 0 , ZMQ_POLLIN , 0}; -*/ + + //initializations int numReadoutPerDetector = 1; bool jungfrau = false; @@ -5090,9 +5089,6 @@ void multiSlsDetector::startReceivingDataThread(){ int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; -///* - int datavalue = 2; - // */ threadStarted = true; //let calling function know thread started and obtained current @@ -5109,146 +5105,87 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); - - /* - //---- with end len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { + cprintf(BG_RED,"Could not read header for socket %d\n",ithread); zmq_msg_close(&message); cprintf(RED, "%d message null\n",ithread); continue; } - //---- - */ - - while(1){ - - len = zmq_msg_recv(&message, zmqsocket, ZMQ_DONTWAIT); - if(len>0) - break;//also comment out the next recv - - //zmq_poll(&pollitem, 1, 0); - //received something, get out - //if(pollitem.revents & ZMQ_POLLIN){ - // pollitem.revents = 0; - // break; - //}uncomment next recv - - //received nothing - else if (receiverStoppedFlag){ - //one more chance if receiver stopped - datavalue--; - - if(!datavalue){ + // error if you print it + // cout << ithread << " header len:"<numberOfDetectors; idet++) { if (detectors[idet]) { @@ -5651,10 +5588,10 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ ret=-1; } } - ///* + /* if(enable == -1) return threadStarted; - // */ + */ return (threadStarted & ret); } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 9011c300a..8bb16fe0e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -58,9 +58,6 @@ int slsDetectorUtils::acquire(int delflag){ if(!receiver){ setDetectorIndex(-1); }else{ - ///* - receiverStoppedFlag = 0; - //*/ //put receiver read frequency to random if no gui int ret = setReadReceiverFrequency(0); if(ret>0 && (dataReady == NULL)){ @@ -151,27 +148,16 @@ int slsDetectorUtils::acquire(int delflag){ if(receiver){ if(getReceiverStatus()!=IDLE) stopReceiver(); - if(setReceiverOnline()==OFFLINE_FLAG){ + if(setReceiverOnline()==OFFLINE_FLAG) *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ - } //multi detectors shouldnt have different receiver read frequencies enabled/disabled if(setReadReceiverFrequency(0) < 0){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ } - if(setReceiverOnline()==OFFLINE_FLAG){ + if(setReceiverOnline()==OFFLINE_FLAG) *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ - } } @@ -304,9 +290,6 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ stopReceiver(); *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ pthread_mutex_unlock(&mg); break; } @@ -314,9 +297,6 @@ int slsDetectorUtils::acquire(int delflag){ if(startReceiver() == FAIL) { stopReceiver(); *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ pthread_mutex_unlock(&mg); break; } @@ -363,9 +343,6 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline if(setReceiverOnline()==OFFLINE_FLAG){ - ///* - receiverStoppedFlag = 1; - //*/ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1< Date: Tue, 18 Oct 2016 14:36:04 +0200 Subject: [PATCH 051/128] giving --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 5023cb175..0b67c8d70 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -514,6 +514,8 @@ string multiSlsDetector::setHostname(const char* name, int pos){ cout << "-----------------------------set online!" << endl; #endif setOnline(ONLINE_FLAG); + if(detectors[pos]->getErrorMask()) + setErrorMask(getErrorMask()|(1< Date: Tue, 18 Oct 2016 14:44:13 +0200 Subject: [PATCH 052/128] bugfix:seg fault for giving an error in gui if cannot connect to hostname --- .../multiSlsDetector/multiSlsDetector.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 0b67c8d70..b27d36aeb 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -514,8 +514,17 @@ string multiSlsDetector::setHostname(const char* name, int pos){ cout << "-----------------------------set online!" << endl; #endif setOnline(ONLINE_FLAG); - if(detectors[pos]->getErrorMask()) + if(pos>=0){ + if(detectors[pos]->getErrorMask()) setErrorMask(getErrorMask()|(1<numberOfDetectors; ip++) { + if (detectors[ip]) { + if(detectors[ip]->getErrorMask()) + setErrorMask(getErrorMask()|(1< Date: Tue, 18 Oct 2016 14:47:52 +0200 Subject: [PATCH 053/128] check for giving an error in gui if cannot connect to hostname --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index b27d36aeb..4c08eaac9 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -518,10 +518,12 @@ string multiSlsDetector::setHostname(const char* name, int pos){ if(detectors[pos]->getErrorMask()) setErrorMask(getErrorMask()|(1<numberOfDetectors); for (int ip=0; ipnumberOfDetectors; ip++) { if (detectors[ip]) { if(detectors[ip]->getErrorMask()) setErrorMask(getErrorMask()|(1< Date: Tue, 18 Oct 2016 14:50:25 +0200 Subject: [PATCH 054/128] check for giving an error in gui if cannot connect to hostname --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 4c08eaac9..1ecd04930 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -521,9 +521,10 @@ string multiSlsDetector::setHostname(const char* name, int pos){ cprintf(BLUE,"Checking all the detectors %d\n",thisMultiDetector->numberOfDetectors); for (int ip=0; ipnumberOfDetectors; ip++) { if (detectors[ip]) { - if(detectors[ip]->getErrorMask()) + if(detectors[ip]->getErrorMask()){ setErrorMask(getErrorMask()|(1< Date: Tue, 18 Oct 2016 15:03:44 +0200 Subject: [PATCH 055/128] check for giving an error in gui if cannot connect to hostname --- .../multiSlsDetector/multiSlsDetector.cpp | 14 -------------- slsDetectorSoftware/slsDetector/slsDetector.cpp | 2 ++ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 1ecd04930..5023cb175 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -514,20 +514,6 @@ string multiSlsDetector::setHostname(const char* name, int pos){ cout << "-----------------------------set online!" << endl; #endif setOnline(ONLINE_FLAG); - if(pos>=0){ - if(detectors[pos]->getErrorMask()) - setErrorMask(getErrorMask()|(1<numberOfDetectors); - for (int ip=0; ipnumberOfDetectors; ip++) { - if (detectors[ip]) { - if(detectors[ip]->getErrorMask()){ - setErrorMask(getErrorMask()|(1<hostname); + thisDetector->onlineFlag=OFFLINE_FLAG; #ifdef VERBOSE std::cout<< "offline!" << std::endl; #endif @@ -1253,6 +1254,7 @@ string slsDetector::checkOnline() { thisDetector->onlineFlag=ONLINE_FLAG; controlSocket->SetTimeOut(100); disconnectControl(); + thisDetector->onlineFlag=ONLINE_FLAG; #ifdef VERBOSE std::cout<< "online!" << std::endl; #endif From 028ba5787617385de792fcefab0fc5e6640d5c7f Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 18 Oct 2016 15:06:01 +0200 Subject: [PATCH 056/128] check for giving an error in gui if cannot connect to hostname --- .../multiSlsDetector/multiSlsDetector.cpp | 4 +++- slsDetectorSoftware/slsDetector/slsDetector.cpp | 10 ++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 5023cb175..bd9a7d4b2 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1037,8 +1037,10 @@ int multiSlsDetector::setOnline(int off) { for (int i=0; inumberOfDetectors; i++) { if (detectors[i]){ detectors[i]->setOnline(off); - if(detectors[i]->getErrorMask()) + if(detectors[i]->getErrorMask()){ setErrorMask(getErrorMask()|(1<hostname); - thisDetector->onlineFlag=OFFLINE_FLAG; -#ifdef VERBOSE +//#ifdef VERBOSE std::cout<< "offline!" << std::endl; -#endif +//#endif } else { thisDetector->onlineFlag=ONLINE_FLAG; controlSocket->SetTimeOut(100); disconnectControl(); - thisDetector->onlineFlag=ONLINE_FLAG; -#ifdef VERBOSE +//#ifdef VERBOSE std::cout<< "online!" << std::endl; -#endif +//#endif } } return retval; From f535e11bba16d6b31aea0a8f36f6c3a0dc0191b0 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 18 Oct 2016 15:31:48 +0200 Subject: [PATCH 057/128] check not done --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 +--- slsDetectorSoftware/slsDetector/slsDetector.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index bd9a7d4b2..5023cb175 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1037,10 +1037,8 @@ int multiSlsDetector::setOnline(int off) { for (int i=0; inumberOfDetectors; i++) { if (detectors[i]){ detectors[i]->setOnline(off); - if(detectors[i]->getErrorMask()){ + if(detectors[i]->getErrorMask()) setErrorMask(getErrorMask()|(1<hostname); -//#ifdef VERBOSE +#ifdef VERBOSE std::cout<< "offline!" << std::endl; -//#endif +#endif } else { thisDetector->onlineFlag=ONLINE_FLAG; controlSocket->SetTimeOut(100); disconnectControl(); -//#ifdef VERBOSE +#ifdef VERBOSE std::cout<< "online!" << std::endl; -//#endif +#endif } } return retval; From e49f97a03c8680312056cd1a72d1f6d7191daed6 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 19 Oct 2016 08:10:42 +0200 Subject: [PATCH 058/128] done showing error when detectors not added in sharedmemory due to connect failure --- slsDetectorSoftware/commonFiles/error_defs.h | 30 +++++++++++++++++-- .../multiSlsDetector/multiSlsDetector.cpp | 13 ++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 55c84218a..1db390581 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -14,12 +14,17 @@ using namespace std; #include "sls_detector_defs.h" - +#include +#include /** Error flags */ +/*Assumption: Only upto 63 detectors */ #define CRITICAL_ERROR_MASK 0xFFFFFFFF +#define MULTI_DETECTORS_NOT_ADDED 0x8000000000000000ULL + + #define CANNOT_CONNECT_TO_DETECTOR 0x8000000000000000ULL #define CANNOT_CONNECT_TO_RECEIVER 0x4000000000000000ULL #define COULDNOT_SET_CONTROL_PORT 0x2000000000000000ULL @@ -73,7 +78,9 @@ class errorDefs { public: /** Constructor */ - errorDefs():errorMask(0){}; + errorDefs():errorMask(0){ + strcpy(notAddedList,""); + }; /** Gets the error message * param errorMask error mask @@ -234,12 +241,31 @@ public: */ int64_t clearErrorMask(){errorMask=0;return errorMask;}; + /** Gets the not added detector list + /returns list + */ + char* getNotAddedList(){return notAddedList;}; + + /** Append the detector to not added detector list + * @param name append to the list + /returns list + */ + void appendNotAddedList(const char* name){strcat(notAddedList,name);strcat(notAddedList,"+");}; + + /** Clears not added detector list + /returns error mask + */ + void clearNotAddedList(){strcpy(notAddedList,"");}; + protected: /** Error Mask */ int64_t errorMask; + /** Detectors Not added List */ + char notAddedList[MAX_STR_LENGTH]; + }; #endif /* ERROR_DEFS_H_ */ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 5023cb175..17a09f232 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -655,7 +655,6 @@ int multiSlsDetector::setDetectorId(int ival, int pos){ int multiSlsDetector::addSlsDetector(const char *name, int pos) { - detectorType t=getDetectorType(string(name)); int online=0; slsDetector *s=NULL; @@ -695,6 +694,8 @@ int multiSlsDetector::addSlsDetector(const char *name, int pos) { t=slsDetector::getDetectorType(name, DEFAULT_PORTNO); if (t==GENERIC) { cout << "Detector " << name << "does not exist in shared memory and could not connect to it to determine the type (which is not specified)!" << endl; + setErrorMask(getErrorMask()|MULTI_DETECTORS_NOT_ADDED); + appendNotAddedList(name); return -1; } #ifdef VERBOSE @@ -4367,8 +4368,12 @@ int multiSlsDetector::readConfigurationFile(string const fname){ setNumberOfModules(-1); getMaxNumberOfModules(); - if (getErrorMask()) + if (getErrorMask()){ + int c; + cprintf(RED,"\n----------------\n Error Messages\n----------------\n%s\n", + getErrorMessage(c).c_str()); return FAIL; + } return OK; @@ -5472,6 +5477,9 @@ string multiSlsDetector::getErrorMessage(int &critical){ multiMask = getErrorMask(); if(multiMask){ + if(multiMask & MULTI_DETECTORS_NOT_ADDED) + retval.append("Detectors not added:\n"+string(getNotAddedList())+string("\n")); + for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { //if the detector has error @@ -5502,6 +5510,7 @@ string multiSlsDetector::getErrorMessage(int &critical){ int64_t multiSlsDetector::clearAllErrorMask(){ clearErrorMask(); + clearNotAddedList(); for (int idet=0; idetnumberOfDetectors; idet++) if (detectors[idet]) detectors[idet]->clearErrorMask(); From 749c64204ea3dea332d1a08164350d7ce5a373ac Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 19 Oct 2016 08:15:52 +0200 Subject: [PATCH 059/128] done showing error when detectors not added in sharedmemory due to connect failure --- slsDetectorSoftware/commonFiles/error_defs.h | 26 ++++++++++++++++++- .../multiSlsDetector/multiSlsDetector.cpp | 12 ++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index fbf80d73e..f1f6b58e0 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -10,6 +10,7 @@ #include +#include using namespace std; @@ -18,8 +19,12 @@ using namespace std; /** Error flags */ +/*Assumption: Only upto 63 detectors */ #define CRITICAL_ERROR_MASK 0xFFFFFFFF +#define MULTI_DETECTORS_NOT_ADDED 0x8000000000000000ULL + + #define CANNOT_CONNECT_TO_DETECTOR 0x8000000000000000ULL #define CANNOT_CONNECT_TO_RECEIVER 0x4000000000000000ULL #define COULDNOT_SET_CONTROL_PORT 0x2000000000000000ULL @@ -71,7 +76,9 @@ class errorDefs { public: /** Constructor */ - errorDefs():errorMask(0){}; + errorDefs():errorMask(0){ + strcpy(notAddedList,""); + }; /** Gets the error message * param errorMask error mask @@ -226,12 +233,29 @@ public: */ int64_t clearErrorMask(){errorMask=0;return errorMask;}; + /** Gets the not added detector list + /returns list + */ + char* getNotAddedList(){return notAddedList;}; + + /** Append the detector to not added detector list + * @param name append to the list + /returns list + */ + void appendNotAddedList(const char* name){strcat(notAddedList,name);strcat(notAddedList,"+");}; + + /** Clears not added detector list + /returns error mask + */ + void clearNotAddedList(){strcpy(notAddedList,"");}; protected: /** Error Mask */ int64_t errorMask; + /** Detectors Not added List */ + char notAddedList[MAX_STR_LENGTH]; }; #endif /* ERROR_DEFS_H_ */ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 5d6ef18f4..feee6e144 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -694,6 +694,8 @@ int multiSlsDetector::addSlsDetector(const char *name, int pos) { t=slsDetector::getDetectorType(name, DEFAULT_PORTNO); if (t==GENERIC) { cout << "Detector " << name << "does not exist in shared memory and could not connect to it to determine the type (which is not specified)!" << endl; + setErrorMask(getErrorMask()|MULTI_DETECTORS_NOT_ADDED); + appendNotAddedList(name); return -1; } #ifdef VERBOSE @@ -4343,8 +4345,12 @@ int multiSlsDetector::readConfigurationFile(string const fname){ setNumberOfModules(-1); getMaxNumberOfModules(); - if (getErrorMask()) + if (getErrorMask()){ + int c; + cprintf(RED,"\n----------------\n Error Messages\n----------------\n%s\n", + getErrorMessage(c).c_str()); return FAIL; + } return OK; @@ -5192,6 +5198,9 @@ string multiSlsDetector::getErrorMessage(int &critical){ multiMask = getErrorMask(); if(multiMask){ + if(multiMask & MULTI_DETECTORS_NOT_ADDED) + retval.append("Detectors not added:\n"+string(getNotAddedList())+string("\n")); + for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { //if the detector has error @@ -5222,6 +5231,7 @@ string multiSlsDetector::getErrorMessage(int &critical){ int64_t multiSlsDetector::clearAllErrorMask(){ clearErrorMask(); + clearNotAddedList(); for (int idet=0; idetnumberOfDetectors; idet++) if (detectors[idet]) detectors[idet]->clearErrorMask(); From 673e7c8f20badd495b71bae701c076286585bbfd Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 19 Oct 2016 10:22:35 +0200 Subject: [PATCH 060/128] removed asking only 1 for framescaugh --- .../multiSlsDetector/multiSlsDetector.cpp | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index feee6e144..05c56fcbc 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4902,19 +4902,30 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { - int ret=0,ret1=0; - for (int i=0; inumberOfDetectors; i++) - if (detectors[i]){ - ret1+=detectors[i]->getFramesCaughtByReceiver(); - if(detectors[i]->getErrorMask()) - setErrorMask(getErrorMask()|(1<numberOfDetectors) - return ret; - ret=(int)(ret1/thisMultiDetector->numberOfDetectors); + int ret=0,ret1=0; - return ret; + /* + if(thisMultiDetector->numberOfDetectors>10) { + if (detectors[0]){ + ret =detectors[0]->getFramesCaughtByReceiver(); + if(detectors[0]->getErrorMask()) + setErrorMask(getErrorMask()|(1<<0)); + } + return ret; + } +*/ + for (int i=0; inumberOfDetectors; i++) + if (detectors[i]){ + ret1+=detectors[i]->getFramesCaughtByReceiver(); + if(detectors[i]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors) + return ret; + ret=(int)(ret1/thisMultiDetector->numberOfDetectors); + + return ret; } @@ -4939,15 +4950,6 @@ int multiSlsDetector::getReceiverCurrentFrameIndex() { int multiSlsDetector::resetFramesCaught() { int ret=-100, ret1; - if(thisMultiDetector->numberOfDetectors>10) { - if (detectors[0]){ - ret =detectors[0]->getFramesCaughtByReceiver(); - if(detectors[0]->getErrorMask()) - setErrorMask(getErrorMask()|(1<<0)); - } - return ret; - } - for (int i=0; inumberOfDetectors; i++){ if (detectors[i]){ ret1=detectors[i]->resetFramesCaught(); From 121e9faf564a962db1af19d878fe4f9dffcb4eab Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 19 Oct 2016 10:32:11 +0200 Subject: [PATCH 061/128] trying with the actual 1 getframescaught --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 05c56fcbc..112ccf030 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4904,7 +4904,7 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; - /* + if(thisMultiDetector->numberOfDetectors>10) { if (detectors[0]){ ret =detectors[0]->getFramesCaughtByReceiver(); @@ -4913,7 +4913,7 @@ int multiSlsDetector::getFramesCaughtByReceiver() { } return ret; } -*/ + for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ ret1+=detectors[i]->getFramesCaughtByReceiver(); From 44a69e2aee45348aeebd7ab3440ce9abc370312d Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 19 Oct 2016 10:46:03 +0200 Subject: [PATCH 062/128] improved locking a bit --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 5 +++-- .../slsDetectorAnalysis/postProcessing.cpp | 12 +++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index d390c8398..495eaf210 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -171,7 +171,9 @@ int slsDetectorUtils::acquire(int delflag){ //resets frames caught in receiver if(receiver){ + pthread_mutex_lock(&mg); resetFramesCaught(); + pthread_mutex_unlock(&mg); } for(int im=0;im Date: Thu, 20 Oct 2016 07:38:08 +0200 Subject: [PATCH 063/128] merge with 2.1.1-rc to be latest --- .../bin/eigerDetectorServer | Bin 277434 -> 277523 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer index c4221b0085a6e7f1bc9e33ba41a0851d0a303f61..038ac981dc7902aa57045b263e73705b9bd70795 100755 GIT binary patch delta 31293 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 ZTeu)^@xq*$AW5D5R0~B@Kc~-~{|}u%2s{7) delta 31007 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 z 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 Date: Thu, 20 Oct 2016 09:17:32 +0200 Subject: [PATCH 064/128] merge fixed --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 3003c8102..8bb16fe0e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -342,7 +342,6 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline - pthread_mutex_lock(&mg); if(setReceiverOnline()==OFFLINE_FLAG){ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1< Date: Mon, 24 Oct 2016 13:57:39 +0200 Subject: [PATCH 065/128] moenchserver should not be in jungfrau folder --- .../moenchDetectorServer | Bin 133156 -> 0 bytes .../jungfrauDetectorServer/moenchVirtualServer | Bin 107120 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/moenchDetectorServer delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/moenchVirtualServer diff --git a/slsDetectorSoftware/jungfrauDetectorServer/moenchDetectorServer b/slsDetectorSoftware/jungfrauDetectorServer/moenchDetectorServer deleted file mode 100755 index c7f094baa3f8e633086573d92b8c3bda57c0ac9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133156 zcmd443w#tswm;qz9_a}a=p=vx;W0tffUhB<4v5PnxPmBV#EAGF1O=6K6IUgmz$Ac1 zq|!WQ(oPyT7Xf9G$Pwaid1Se~k)I3E`d^b-WfY0@Q1`gaZlukzjR1cVy*9Od42X>K9@HvTy^ zWI{*~GK*z=sZ;{(l+T9W8-aLh#B z1o9%NZ)~#rry%ba-D*xDX9^IdsQHYXn$yUQp#Dm$`90*$t$EZvHf7X3g8J=Kf}_7A zpoN26UgflV1PbayTD`BZoXMCXw}uPkhc+=9AkljJg|e~I)jP3dblQR$=Z6)30+Ht}*O z=l^UIQFmBAA`9w8LQsxZ3F<*tJT_a|u)6>uE=$dEq&-na+~ie!C<8&wGF`oWP#-Bv#1hE!tq^6u15S*}Wr`;wiibSx<#`Il6eDUb;2po#QsL+rqb^YJ98wG$g(53H&8 z+iE1oc=VURMoSY)Kv17~7G$*XMLBOp{N+gI8U?m+DOPk=Y~ zf;ab8Dy@iZT{#i4Zy@%xw=gE&s#M~Ljjyag?C+nLtvtK806_p{P^%`Ngai5LGm;k7 z?#SZS@HoJ}cw#b^l!e0nlIV}e#=8=70Maf2p2!HIy}#3iU*ecbW$SJmf>dpTY?&Ks z4c{oFFakt}DD4CP?g4cWR9kaOj>qD%QKwCy(Ocw7<&*&_Vuuv5OUNNEqOy3Mhe~Io zo&p4~GQL1SkUCF;Y}MoH5m#Rzq4)Ke#2}P2C>S+j7CF$%j)W<5**zp^im8`Smy|HY>@EUKk+jn&r(>v~bPNr?XvEYHN3P)sQ_R{E&~qn9 zrWj!)W`&VHQ_QqdL77%6brzf28XPSs!O>FZFjHK7EJnjvsncnSs~v^0H%jU(F~xl_ zMo>N&BXtfp#T_aWltX1w=Ll2W))T>NCrX{8OmWWfg5n%6b&fX0Z9?28#Fd)jT2BI1 zPm(&vnBvx+jJBREb&fT~`A&gkIz{Sqnc_y3L*kW7on@xD@B~2#PmnrKG{rei7Zk_o zQs;P6+<3%|N8C75+)Idi32`Tx;siIS?3OxDHpOk8Bq*CFNu8&d;`UU4dn=^Q38uL8 zS(v5Hk~$}v;(}+RKhBmq%S~||i0eSysiwFK&JmOg&XGD#H^t3AS5W4kD|Mb}igQna z?lMK{Ji`3K-?r#ob!D2(fLwmg(+_Pj|64=kEG7COmV^KzKpE1ERAz6^3^59G`qNGHfpLA|2Ph1p3f^?+Wck>kf@ zUZwvkfr9#4P%pJo8M?}bumW{?9?vcFR7;shZLQFvJe~IA0(2;nRTCBIyT`6>4bOIS z9LmZ_It3g`me&)7*ae zDJFLv6A)LPCcVLn61}Uc+*hN_zil>35gn6Ire2EZn3&CR336PrstR*L9s-qmeX!J} zm$wM1i%?z_%KOb`j-w-+x)iBPk$M!Vzt}uc84ny-i}C)1i)cVt88iqXE|&%yP{xK; zuOi2NTKPl+y{`tM|B0G{KM^zN_AK%|yJ|o3EJYia-dlhmg_6)|j28BjoXBI$QJ1?! zH|7Xm3iFWYa5$^o?Ha#am`xe%%I#%OHZ7sgMh6NQPGR5_G~pBnPVrTr0H<-AtKADw zHqq>47tMRtUQYrtx#}J0PrrPa_%av^LI<2LMdc*sycEr(j$&s@_Be((MN1vRYMUag z-jAFc9`?G-y*tX%yTc^PT?{=&*8!}(47xo`C6B>;DyXB*41;pDy9yABLMhoM_Gh&h zLSqhEXgUxy4aWMpC~vj9Orzg(V-sirr)i}Yw{@)O2AzG0Sa+H}luZj}X(}?Bn)~=P zwDq*r1q%dq#bed(2CdvxV>t&6?r{{|^q7b~kIT_m6f_**i~_5HPSGW(;WLsk5qKwK z1K3}JGjq#8DS;fhJTnEg<#NlJz&^$JsC&!GvT0dv!P-ve7o#_PXq#_!9@^$W+jL%$ zKu6-0p4;}#qol`EkA#8glq|PUPY=Y}NKlWK2V-Y~EA%nIB?s5xNOI%@idF$Gz?GV~ zM{o=UpM_1loXag&JVbp?s|e`WCQbvzoKD17yY+q#k4XTE^Fo={XOE8Qofn$2Y2hp{ zkbaq7m_S?OCY)+Pv)a{DL9;s^HOB7UWBTHU>p(NoBL$5@YI%ZjFUbX+qh_LnxQ1~= z!}xq))mtB*nN2hF)7k;T0lVO7Ax%CJQyAtXwTvF$4D2_rUJr>-0_+zo_C&_v`Gh{P zKmG_|AC<$gh&;kk=nTtceo-8QUkU4QLEUyL)pahod%$U;yK4@;C1eGwcj2LdC_Qzm z*kyXIuH46Tj%1~FnGHgKWynKHbgB$E>fiAvd zHCFbk1@*lDAS`H2Lir5t64_{pGfMK-Y#VK+q$fi1Z}aHxlms-JmDgv}I3?YhEyTfO zK{S?LNc>KGkTg+p4=A~3^&2Sr_D8DSHm%3*7~R*{xeAnw#sYF}tWKUZ__U%rxu_be zV!cAVX{N;p(~K=Tim?ugnsCk?PcLlv$`zIkncF0iq>sk7 zf$qA*?m#;`K>x=!d<0lQy=Fc}u+#2O$_-x7YhE1lgt#b4V^aOkt9nm+`Rbn2h(Aw2 z$w%ZWrCxw#W{aS{e0|Tb7z=!DUTyY`%T>~j2WM0~Z&n2T;7)fXRJ0ej59({KA89N`M0 z-?qYHu(h479{E!!9&@-F(0gf&8U!``AoVBJ=EN_T@igKk;1|`TjV^%(j_O@Lrc3p- zs3srlA!`bSG_<0yiNibro8k%3s8E|}RHT{q@%K{F4||(Y{tO#S7^5PN+1olBIxXB> z1a3ChmCMZ+K1dS3!Woz6SCcfJ;9p)XiUXlTT;#t6Pj<|$?NurC^MtZ^RX8@#wNIwE zJIeTsLfT4ho_xd!>Nl=PXxg3h4tT-#HW_^K0L!kNF%%Aa*$!`4ln~~k=p|7mAXVc95 zIYi@6>l~N_MUnwpO@%fZJo*S~?43vN-Du`ftk`bm{kEddTnkt(LH+pz8a+09KgPkN zTlJR$N+y$_8Q&dRyddV68~kFy$8Bw5mUbM!TYNxh2(yRA0kJq_&0zGaL3Gz|_g&TxVf_XDu|(erzn#2r2>=H1^gu zU>(`;n*0~bm~%eRo$t8b$oq5ci0*);1oMrqnpoDBOOVC_3w84}SAO58?&l8sY^< zBkWF%#0!r#8NA?Vv>}#wVSAI#3j-nXs23MpNc|={?C7QO$UPppsXv!BnI&GX-reCe z(+{H)?fa{5@NCwJ}SMhYFpKvL{BGSH& zX9|=9KYi@#PtY5cjH6x{LFt~3^b-NB+BtN8@Rc4bIEFFa`t8a0!#2U=&0IvBrpFsC z62XyX8%YVMLM0mGFqfN@`yAN2NJW$2rZA)#jnHprdpf(GFiNFWHDO9SicVG@Z&4C0 zN|Ut@y*(N+x1=0aZsIA#FG=vr{@G^T8Eb0r7UvhjOV?(f z240w58NVouUpyzod*GJ`hwJ zQoNDYgu%8ncDt6isW$WlaB-m)qi<_54r?1pBfc862)1E_019%#0<{598yM6~1_e$6 zR9N;}ptb{Qd*eGOYchkPanc{7#b<%q4XE7=s*FKFA83OdY$Lu;;7NczbVr7Bf}pa3IQ7Yo4Y!M2uGuad+(fS}&BE=oC=4ijb2Q@%%b2HOmZ zqfdRtyr-1fwqZCEAU#;cJ-16TI*VElZCB2lX{whl|if~_KUUMDKsP4U5D-RC4-!Zv2p&V{CT)jTFfvM~{4JRxEQ#<`_m2;2c~$pn)u<=Y_1dFn6xwe*+4As4~M z5rljusFW;OpbQQh?jzS%}s9rV48x_oX@ghup0HFoMgp zHOlXXMo}vEP4bxiynTyd4z=+S`=6xix zFZWjWY?QbFCDJ^7X`gkUZL0g!9_lXZvF<^PPiami3X|+E9om@o-1Nb3^FS}U*qX^quf!xY|U8MEEM#G59`BrIi=b61I!~P8j~P-sP`%r7kb0B zX21LeWzfMa$aePLzM=8j|U=AMCz1 z;hG|J8>F98LJ|bBtXumgpe3BwxK7A@xw^L{h`NGnUPW0$|Bbe6WNo>thqi1-`P&(- zI(k^&o7<8o?yW7a75}id>_%O?*N|P~*X#fFemRY`Wnm9(`4HuQxMnBHU-dn0xwY4} zT-Re;XkWp)kN73(`f|-S)HQ28^n?j1$R=^EfI#~sziT)m2NWS-tKptePNX?X(ZpEMc#C!fa(TVm31?uJ(kqu}(c7c|BQcsX&<=vM4lLsmFe4{jOs8FbV2O zMYQs&DihSavUqG?Y@gf!eL4Z@e4+%2yU_gNUL{9{F6CE7cHz_18(o^6SrtU8n9G{oWR(61vJ3w8XLS!4~Ev5X3MOm9!S(Bhc znEUR2VAC^ISM-n~g={_@-YA!2#p^I)sh4;gq)>zShf+a3%ax2BVe9Zg(h+$IdIvkA z3q|w}R(#!hXH+k}^XJt@?<`$?()aexNK^0BtTwox_B?bdIlFP&w?lGy`tu<=w7K7I zLy4Ty)Nk1tmH8Btzi&pp5FRDpVb@0YsUZIs0}IjduZ_WrS6ln>nQr)Q$>KXVbQHVq z&{(_m&V4w^K>4)Auzed{5a@44Tw*{mMIHN&2F$Zx)%v|!RR z`0mG&KB21_bP&=pAJUO)PlCF86~(Lq=jpo(BDln?b&ZnZu+#Ztb+HBDp#HFWlBWgL ztd~*=e;Tt-4cfix3YQ``Kwozco*^|bTl13p1!c+ox~-YY6x4lV!m$?27yRv0_U6&v zZW~K!leD)t*xN+yZ903S`9jwM)1Y7azWt!z|J+Bo4bvcpx~P=FwAzgAH|;hKy&rbq z`vuj{+AoR~RfAJ({o%+;E`5bqhZGT-Bw3BB0C@|8 zG}eT~O9hOVqNd(hi?*%3pLpqt`wU*X3VBn#uCKhHS`;4PUS%`dg`mE&GKyBsgQN&! zKYo_qRxm?~u$~l};2+qe_oP>8MGge@dU&!P9ZmDWc`mG-$I#O`czT09O~TWuV=3-5 zJk_$eQ}9&cqPTH*^0Cy>c)Eo>Iq|fVJ(b|;e)dE?8SSwr?_v0oFY_MYgP;yy*?oqO z#{MqzzDeHSPf1$(qzf1_)&D^u85N8Q5ucrnsP_ur}qvZ4pnEL zl3=!@!Yn6ODi;8&3z}$EFn!%9Q2EnSxDCt<;|GktsSWe)>Fc^v)NBhIf!2^M%;03` zE6o1xKnl@I*RJ|ANKHaRc0bPi3FGjAfb9!wX4>(z?rCfW7Mq*efaxb|js4|M9kkNv z&1&%eTB1x85^FrHSFUQw4eLyozQRu+uOd^tO*BS#r4mI=(WWZ2_hptJIs-T!K|OpA zl@|wJNG6FXz+MgSiU;6b@c`t{Jx;(FtG|a)OV2cEM9N?`xMG#I}&&@ut;{Ew0-_L1mmc5xK`7WDKjEHgCXRs^H~p!17|g@G5TWFAYI1jqvftaxoZgP2w#eF zmOenfVT(|Xj>(ciyv!THOE==VLBsIUZsq@YkeRo*&nc~%BU+9bXj2NkIF1-&}+~ zPnu+BE85%ofbO#^sOwf3{780rNH^1d7avXU7VwpScUkm0QVO7zKf4!RwR<`AE(UFk zFWo;gy)Xs3=#+e=fJ>X6>GD(~Bn9Y#pnkBNR<1_hZ0R#+19E{5^ zM4Mb`|IP9fv1g6_$9|$6M=ne{k83^bU0C;bF86^$&c*sV0s9z1c-F%|9Vx$E9%bjH zE+5GIzYrExv!@JBr9mG`#7;&3Bx2^WFG1OtpoG@tmmB=|m7RF1r+MT6Qkv}qPFjq3tl}UYD@Fuk5u}s>?wm$EhE>HJN`kgE5BpYC1%JSg!00uz<= zam?=#I)!jlz?lHCFa6*T0perIb0y9aY(hDk)=yNvL;LVT_^hdg6%>mto#?OvU_n`B?I*#~HY>WP7KvWKe7`TC#Wj^O!#_ z2oU@jXIS~Nc2DF_oX$x zyqfsKuzk&jFI9n(I#<^q|Fh5BkFwlx+0*&$Tb_<@-=bNOezB8*^&!rFf+`4V-m+Is zQo0s+Qf$dGs+)S}Op~tp&&~#^yCtlI4ZLY*YdrG!CEHrFBiT7HwVo;H&5p0eu24VDZ3EW*dOL&KEZehnXW9QsJ5zV@c7AeV&+YW~+Rn3b+Igy_odenUGV5r&(8gU4 z{uO;W($vN=eYSA`+DLc_IMHS9(SL5wYt>x^=*x-9vA4+Ygg89^Br275bd6HG&-1Si z;2L5HpmgiDUJBm>ZW+)!mp_wD%W4LYJGw4y$l4D;mk%D?54t=A`-0y08&NlD*gg0C z@|8MW#{V01`TS1a_sQ{`#@$D`S?f7Zqek~#zcaeGG`oLkU88@Awto2_SreQq4LyL% zEMxsxY?_I3wb#veQp@Sg5^O)k9Pi%O+9%!V1hg?0|GPi$(Lq^Dnl6*}vJ^wV*Y!Xv z{?Z1UB5fcWP3yh?8vY&)e>#)y_+I?~@G~p^%X`ItX%7A*XUI-M=Y|YkI}P}sw&8Qs zJ^x-~j=L6ld*`(o_x^A2+OD4sz&wLJxF5u81GILU=6P-INcYo69PO>?qvdcm);!h* z3!ay!{2b>Yu`{)F7j{a-{!(;dZS0ruUbg%5K!qDtbH4)-9Ov60P*4Z`>@jc`Y>x6w zcVKY}zE|!Ro7?U$2KK)VvKY;|AfYh&7362FAvtjHHh1u@g38;J8TR5fuRtmFU5;t;?_RenvpuHlHaNSM4H+VAifbZpLtUHx8A3qgJ9js$#uYxNz?12*to zYnXf~$m6%4i^fk%Plfy|(&oQ_-;Z?}!KD}aVvBL!cn8)2J8%yJZ`n8{AmAL=JzizA zASi)HYeAa;W_6A;_P227N)_PqD4#zSC67Gnrvf+i>%uy!m8=F{WdkrpP{-a;QAS)o z9J=p|b##+U89cy;Km*>v-f*YLy>uf*81M+{%sWN`UMM_a1g$Iz%82rnsLh68rn{}C zz-{xw_EzJaAvnHp>OIsQlJ`)2Mq`a$j?qW7N=wLBx?hD~Ve3lj?||cRV0yiV+l36b zR^W!9cGU^$Wk{iYuLR-{)Xxw%lR=9(`CSRm*)ruOK`i)*RLQLJ;r~Fp{==}!_s2Ve z+FW-d`qPOw1a(8*HF$I34MAO3SA#b<-VoGPb#w6M!5f0QtnNa*dGUsz*49nO+bp~x zsJGO4@aDrCf_h`!B)rYX8-jXG-9)@C!W)8GQ%AcrwRl5N=hThDTRq+o)C=p#V?2O2 z1a*2Hc{4WQ4MFwP5f=vWhM-QWOD}AVp6#0Hb}bg&W#EiW;EYXs1KJ8V?>BQJbXohS#Yy-;`b_-J?-&A~JIM-h&re&!J&j*E ztdC#L9efNJ++oa1*77d@7t14R>0@3Br59(Pn|V#Nrp64|($z9`XKN%8YmLB)5+V5% zk4a^oZBf|FMMt?aDmN7lz+cI+(3ydJZ+u;B1Z{j`h4GA$_DG=03)_0PxH;Y#dGo}_ z(vj5Sbc@3BOO23sT7LdaBh_0?BU8v=Un$d2L*RPe150V)RwOB)Ci4&;ex@>WZ&tE zn$xWFg`Rh6q$^B$n*pWnCmUIq%1IDG&q}bbVpId zXhWVQ{^*WiSb`+r=^6El<9ge(*n(f^>>$5`?dXm~I3A;13H&6Z7z>Kutaru9|#vCwr)=ZDIxg0l;xT`= za30?$WBoEWgt%o7^mXahm>$mWZ?2B z#!FHTqP;~CYj0kV%|Wn|yG7Q=`-)mi#3}^j@aT!Uqfr{G%8kgH7 z{0(k%fue3aCBi;>4+rp<=*&m1dCU$#9d6Lr-HpcS@60J?8XvTzm}&esOG<-@H}+Xl zBBqqxmXvl=$}8Cv8Xtxv`;{ra2zLnTWBF-Q{AH&2W>b8~6n}p`$^O zM|Y%J6W|s>mUe==vJZbqr;XR9ow@h0!GK1u)!zW?n14XZSz|2 z-jsz4vRcn``B_`1Eu*pGlM@(|mu>S|@~p__Ay~;>l&$qA*%S%223f6BQEO;ht)+yk zvT$xW**3uyWOe2(bD_=vlLMh`0ZR^VHV45S)OZaUqvz7O7*VlV*NzIpG&7wVrE`wgM54+P-aE2j)l|J2- zS&mW>)QPv+{Vlj1!>e3?7zDNKRy}7?Xl@uQQ^X^nem#CzXkJ)*X$HG%JJoqKD!znU^gi%q`j%AtR!qanTG2Qn9&0foulAFXsrCASRjdoNM z^EN1SJD1=_Ry*eZrVKsV@U#Ydr93~a3}_WF0+v2r*IgNUqPl9cP~3-`=g@ESB+st~ z@#9jxB-k`H9X}tVu@x;rP@i7{O!m+o*oVOPLuO?h=nN?9_DJB@{`3}*-22mZJTPRLNbrI`e*(tCjKo*?=8hL)IVDN>(pk76f(wU8t$OBR>@l1rIx z!#PG}2yP;y8)!4?SI6U3BJ7ARWjNxJSbqnwf~WOd6g71oC;z^EczW$Pz5fmGI6sP- zlR>(LpvI_~oyF*ahK{=p>XyUWIu>@?O|Ttrg6+6c`7(&T3rGO61vg@+?q@$WrV%p72#D;?|t?ce--{ZoJ2NsB8fwbI@yI*m?ZIf5uwN5aLQbI<( z_5-D8e=Dt0iPnp8gJK+X*LoVfM!tS#deM10)KF-Ljfwn=`Himwq4u7wS; z-?>^Lf5I`3zqUFaBc6=L0>Chcdq27syA+|yHZK7^k0^BpC`C0-#4mB~$;T;IM)e*i z?+PsE)s|(j3Wi`64ADOR&c#8wcD9~-h?aYhmOEd|U54DS5F*zsmg_OpN@YE`EQ`Zj z1BXM$I1UH!OE`2K<2W2YMx`u5DT`PscWR|9Sr!8K2|lBQH?J>dB?M4H zfR%8$R>I6>UeJTr`hu3{ms+0JSf0(uvzg_YvY7Ut9=#j)S0gUU;?7*GkNJm=>0|zZ zV`R04#>Gb|`VM|$=m*#uK+!1c2Rg$|bQP+SkWxhV+mFSu1CUW~#V@t}=3|^vU*Am} zyz&@Hv8owfWjE^H9io$rM{Y)bub%%>E&psS|Akuq|6=*C%jQoaf0E_jNBQUK`Onbu zPt@|CtmXd=%YS}0|98m$9n0TB`F(o+!CL+TE&o6*|D!Db=xl!HMrZ*W3IEW|N!dF? zmt{Hp%{bo7@45|i5cr+*`anqze}J>`88z`8|NZ1UgXZ5?-oKm9ZCD=kYexO`cPVCz z`YCX87A}=Ae=2+1;Z4)d_Y81PdUHBV(&b7i4V$6_&%Vi^!{m*+Wq!7@2l8$YWUmu` z!^Ru!Rt%K56>O$3&4nB1!Gl%8xv)6tIpAT_OO7*y6SW)@gfXTZ63(piGDi!=8iZ3Q z1jKG&v72T9^}~_@E)FwDNW)8Zk3cf=V%>^&V5mTAd9QLO+HvQ`>WZ@4?XgtbjZ5tE zksi*@x55I1+aMUVPWTQxlsIQB*++vK0mn!u)qP@$(w$VizX}MfnmTO_e%l$?F{>_ zwj{9cYE^o{KB-~f`YmCW)G({6Ndn(0;7esM^gHdRV=mQO13EfJ11BptNFi{7Smca_ z4aj25HJoD%`@fMoH&g)pkKR@g6LhJ<<}LDzC+jEeHIjcxYuGjTlOlL0G7kF?ZTqkr zhoL8!9x@j80?3sN_PU((RG*oIS*Qru>zHuf<=74Y3`wN{8DIsiC?z`!lcg`=L?P!w zz0?~}YHoff{Cm5{5@!$YRvYy{Y&gd~J(NSY)O0V0c$wq&%JI=XqyN{Xs>Sx_rwYUe|en_h}ADh`j&VRO5cO4twLn*!YRbek9 z;4)JyHk{p@HM(^XtsEzsTx%n9Jc7K$d#I0;Jp4K0u8-VF)-7yJTGtOFL z%|q`ik2!JjkDls}(TLR`h`7Ir!Rz-o>3V@a?+h?YZI~^(d2BpA$c0#V1|ZgLzl6uWtd;XN^1$~3d-(!(Y{~D1cD6|0>R!HV zDt~jf{Gg@$$F=g;Y2`o7$`}2ct9z{h+79h&5ng=Nx-QMul<=KR%KmIU*QQ0R9%1v> zYN$yk&~rZpEbiNbv`;a;>f;3pX~mMQhU7GPxX~JyR*`h4HLWZ9F<%$xnc6z?et~YA zT9uioe24F@j8nc9s&Hejpx%5dG%%#xo0-zN5+1ukvw%>kxSMSVg1Y3!WQ=<|@0Y9G zq?HM3bP0M_?OMR&E0xKBo!m^fu6%Y|3ioUv9(CZpRm6mE)zith<|CvNzMqv4%#~MH zDjwwZG*9GTgJHhc)k{1bz@}rRZi&ERqKR?Ep>MR-fR_D)SxnQ|Z;G>Ht?UK<21C5Qcd5`diNQWY))l2=ZV9d@1iy%Po>g?RyH+%Zt}e8&uU3wRqMm5 zw$hi9vA)LImY04NEB(%I^qW8>=ZiA6U^mLyZ7C<|Cv36OA0i;=`KPe_HCnre46z|i z6bCuqK|A|zf`7;+THn2@!?pLH@A$%Ssk0O3YD%OT< zjOh1|(RZo%4e^EzhSm|?Vi^yDiyi?NJpx_&hFMs9mqC9z^=o<}P3q*Yv#T36_Q{sk z8umb5rt!A~S|c>h2(1hke4P#pb7*HOjoYo`xDBU1LMz29zV<|xM+`lf?%y7S`?r_3 zcp@2f(bq}9WmNyyG^&VODKEbj8?9pZVZR!CH&&%AeIyUzo=6fLn8KZJ#AUTDEx0Lm zN`!8|`Rxr9L!(Q-o0_kETuPmQyKbYcVeIkyS705qRUegF`EjS(r7>4&S46j8Q zAM{y99m+W0REBO3btx;eG&$n#_J_8sZy-M#v z%3mNjk^drp9rAY_qumn0-?gx-nogv>Cch`|mrH6smuqSy_xgEx_|jRGa?|cSML6f% zg>)};7`GyjrbgD;`F+-Wy9qm8N1At4oh>=kb5IAN9D~F-8Q#W4ev2nIOv3>Zo!DpAUj9EaUx_I#f$baka2*7 zr-99vQJcTec2!}8?+WX=*j-_;${LWQQQYu_@t#rd{(?LvxZOc?yHK{RCLIM<)%2JA z^mGoZA3$6|Uu9U1UAFobw>E5MN(Gn@g84H6U&Mz{QWARyz?i&c^L@12Vos61XnZ}r zMo)te2E57Q^5ZBcMiy~~W%6_Ah3aQl(&)vWVgE2@ojgCE3wF$b9(twT=E*^QuBNlP zT~W~=fJWU4nzTSCzFn}1=Q_0~J3e8CQ{g8$qp+P{Er=pLc^nrxr{l{HF6B|cp2}eH zWX}hz3ttGZiKConvh|*JA*wc7Wj%z1;7l3r`6XA0XJrhr3TrND7<7otL%f`%( zr=hqjI~kjWry(vMp627J0Q~kW_zgjAzvjro_Sl73xp-jV<5uEpK2IpXq=OrU(teI3c$99*_-S$8TFLUMR#CfWsN6N zIgj3L=)H_O3bFK+LegqH@Sjs;PlVPZWV<>IBZ|KBlMcJ8J>YEEnE;Lbo{X(#CM)Bk zBNTh|i0e|l6v{CerKH0)+!2bC(!dx&J^30cu^-k+B!38B#t}@%B1(#qzPCg>a^$(k zcbdqLFQfkUbLdr{oA=O8fNix2`$0{+T*|lsBpB|qL0&5sv-6ZXgOH&si24+JnDL}Rsm%H1ILF8Y$o;h5(c zx-ZC&aTD-n)S@E;;pc#7A)^jD;zvK7e1vxE?B|zbetPs)1KK+aeVF3VUNNJ7nIh;R zfHq(Rz#PzE1ijl5E~$iYsVz+>{5pXwG_dcuQr?|nxj)A3u? z&<~!lGZ|#QKq&z&rIDrF&r$}ml(?4iDognzOBo=fBUDR&p>12tQtu!wMz1&6iL>9V z<`vt1pHnlu8d=Re#auJw6H?;$@f35-LxlQmRP$hA3$5eD;LBU&(8nbLjUM;xAihk< z-vbM6HKM!RZ=1*CaL+0G;vwfiDFllAW{V7ojlZFfhY4vd|1jhaKEGtnlIkE*TuQAF z#Fq%S$W6#U62BN1ucU!N0zLsKV<(_Lwh0%`*dqHL|1tgsKh75}V7~(e?+memVg?8^ zSWJJ!%v8!B%}3~pOx^Z%^z4>9TUvhmMT>i9J~a2ot|I6`thC_A1p+V6u9YWd%NwGV zH<*=o3Cg?V(dFCPx|R1+R$i%4IRk5Sj1C0#Cd9oH@hbIruYa^_o1k8cnBr|XM}U~7 zM@f&k{HicUV^9uYG#0wZo1(oc%KS-FvV^#VoLWrsLoEEfBmrxc#J^2zg3HH!3X~@> z#|AG{`V}1CltktD4Eh2^Tn6P{q4T_(Q73{r5;(Y&b&3!DSN{xX$@+@R66z}-zD!B9 z_jL{xo~M4tcR8O&{=Iu4&-ePG&&%`uLHzY9C!QcE!l(qE1Ip|-r51wzaDWfL-~jfP z%1_`o;Foq%TDqSPzfpe>f4%+$`zyUj&p!OcO;-3D^e6BaJ&&&uZjsXqgD)B*(z_(1 zj{Qs&e&V#Iw#qNkyUA~c z@^Y<#RfB^pp&>uk^IX|N=`OH}R&sL(?>x$y$ zL$WB0cCi&Y^wNxa)u;Lzz2;Mn$L~Jnc+gp&Ldm5xmB8ODi+QOxeQNhV!0y^)mQc21!|~jo#d9f2UHTZ|x%Wyl zo|_Plpf*_WoMyrE#Vd31)cdSlqg5)#F>$ecdr>BW`q-63+XsOAbBA>*M-FE#Ay^KP zPM=9PW-`mr{l2bcKYjKb2ZA+)BX!-m<Sj8F&5Ra1!4X z%cwEj8aPbiaWTXx@RXx<#2FIZigpOCLQqdbza(N;xj5V}07vu$D(V+rx)my;{^xNI zBsKX{Y(7kPT?(5qhBwolZ-YU55&e_YZc%-`G|QPiShk9>Gkg9OIE4z{W%qa%7C}GZ zoNTs#(fyD*f15G=%RGGq%nkk3q92hziPs-yx-zW1tjS!Rrnrn?abh$WgPdr;$$WEF@r2#{x}04q9S)5c3SyZq;nRuGT|$R zb~%jo3BL4%IFdAc-AHG+n#6ZX-|4j$x?3u@7O7gVhh|)BJ*cg)w_2V?Es0pMsYJ12 zU$$Ms49t}p&IW!7;CG<3k>xz!lvAo8?UYs&r?FTOC!}mXe&#`^l7YEcVLVF}C80J@ zO94gpc;RS(-*zw7h(eP$ucjYP1aTVSZ{fS8oQB`m&+T4l()N~;GZ>!cp3!UOzD{&P zlRV4lOqS8szIlk3{g;xUF5xl4Y0t;7Ym!8m4Zb4Y!kh+ump|+JE??so3i|qsEG&Uo zh-sj1*jmX-@r?WuX17#y9HcQ{H&#q1>qrEn*nzQ#pk8#v#o$AcNsnI~q}>6s({4M+ zV|E=RKWg-XC^^@_+CF|WzFNEa4#bdm*dUDL30I`pNM0jvf^MIRzAE#Yy1aC53^sy! zxDyWZKn?1v+1wy+gybD^1&z)@IL8)?+2BjlC^yUC@I|^0Dz&3U25kynEMdQ*i2D`; zc>h%i`xW`jXsmnrewk26CzQC9&`&7wH^x^c--&!k+b*p1*TY`SpNhUBX@q?viRLMq z)#!<=F?L@c@STzV5{>&+ zfYI;KB|Fqh3nZLh)?(22dK%s5Y`huLj&2Oo%EkDJ$L6v9n?;~Gf_i0*(F)PwMQ^M{ z3W8dYO(6qBI0my`1hV*7Nm@9Xrda!M}Mq`41ZFYqI2dl>d_odwri;Fp$h~UFlO`;S zH3m!tVDP=?g?7K$+Xm9KM)qS@X>L?@x-a$)g7v1dMu*7r8TpG@{%4S1uY=WKg0L}& zjSIP~NyssH$-Gi(z#BLbCaV@&+qC~5=K0&8skQ$FRq*R+y#M&@$GBa$w_D+c`YhX0Y#O@!`_^U?hw;NQH*Oe5{in%)!zP=xd&z z#u{l6Q+vsODr(w|ns&F(4Q;{tLj)IxWP9NNDTr}qcb2+BauF;cLD`9~SP&Le+w8+b z@H7QaKR#T5r;G69JxpH&yb4d}nQ-|->4jNb=$`B!ip%q`;}R|rhD%t(1vk3_m#_tw z{tOp8>dhP?Tt?vO=pn*|p1wL{(B%)MI#uXS<`&Srz!?S2uZPvl<_NRV{tRZ66fCMe zQ@hGUEz(x-O;P7Qh9TBupw^if+eN@S0Srew%faXEu@xu_Hi^SipnuSP1o2p%%ZB*d zS^R**7iHsbV(~Y!_^v~+qG|9~vG{qwjNfig+8OopuR&YF*4qoV^lfpyZ$E(qrSBdo z3|o?>1D#_qyNoC-m4?777>}LI>iz8@@?tImeq&gD++SnoA*U9LJ8l6hF^me4L&xR! zCfdGXksJAp$H{_Zcbw^rW0oHvwS(SvXB?J&$uZyAj_>F;Ic4w($M%Qve7>n~50*Zj z&9C$PDZS8zzN5)U2P8f7)*?<$9;Ex!^?1oaUQ5JP?;SK+`9bN;*;;gN{^7OID0!iW zT8K|0mRior)5ETCPHAD|)Hrc1tZfy}9O{%ga&5%hMSz|IGPI^tck+&iL)j zUg+ww(6s>c%czeW)cHOcd%!|pJ4;`8koe7xvT2;?+>|J#`K9ikuI>7Rd^C}jdu|W4 zU3!r7v4VYt+}fu8)3u#)kdINi9f!W$ZSW3n+X<|;5onvETW$RqJ)ylpm!v&k+Na8A z`&6*W(C!{acwaWpWGth;{0-J}&Ww6)8sGI|lI2`j%)hh=>Ui+Lb4cwf!8{zsbEjDo zlH9G>#~0Mc=O^I1Q*;T3xw{i*b+8`=9{nbx-jCd5J4j>3M^Im@Chb6aT%e%tswOGG zwFBc^j2-xsCSd3)v_8Ohb*|&5Tz`1WW@#;Z;~Un}g z%zukfC+^OiO)DCr{Xx*((|Pc#DIEvDYQT6Rt&g57eNzzY!IO867iU{-?s&C0mrkYC zVg>B!`~+#A0MCKI^OLW-7ERG&%IEkP^Z`JlKixj~V>P~B-blIpxECkA*o(fj_Oyf( zg$aDmeWje6GBk8WnDBl1BAxEhi_CPdo6g_p#!ErH6>p;Z$8KxsMEBfssYZPB=A!z} z7?RJW%uLx2zSdrmVH=9`r(uFGx+0t-a>nT?wxh8qz`rvL%pdvb)XOJ zJ(CRs99B)`F8}y=#)Tapo3Fj9O1@n7ql`)Ll%d^s`kqxr9oSJR&t>sE7B=0ESF4r- zAD%By9O2A`5IazsB5cV+m?2-Om8ySD`d4$TqougitGKoZ2$Mj?t#gQ$L$b6iu+Z|& zAMtxtP6IrGx^526aN-$3ojxbodZaa@{_(IN7h!(8?NdV%Oq#>(hRpbF&&8MKny_|bfoVs-iXu#NIk&d$;y2d zVh$nZP__ggVp51nA%Vz)Jv}73a?-41vrsc11)-aS#U z81^t5_AZKE>?_^(VyKVwU<-6|SO*n31zX{%(4a4PuK-~dq&;S_Ed>bl?VeePo%NnI z?n|8K{SxPS&2VYNrE}uE$m`9?I}LHu5QlZ#H=JXkfj|!-{{)=A54G)(nsGWj+_uAq z_aJ`h?uJCTDAKkg5iP4PJ7??VzeNr+b^a)=F@OS+$e?0 z$gPEVwb<3B-49XevsdVMMO6BVa6gi6BcxiOGuaQ8(D~4Wraf^#Bij2XO?m1IxK9bY z!DPCpXVld^^#vdNUi3I$7_Ey=ePJJd6B@>QfiZ$w4UEIFvC zlpEo#9r}czAgGgAY7(iJA=Q_YI*z68L#jl1TYwWm;Wt5e0G}Y$NWT#S*C1emfO&V@ z&}Y!Pte45M=>&tk+lrn+Zt&sM7cPHhlLh7`4aWCO2r$Hpqyda3{I+4;Tg_?9zD@~R z(MIr_7itEj(-tCHXcW6bXB zRjx(Ez2b_tMrawrm!nP&%e=5HuBpRzJYeYYvLYOoc8dr#5vv{CU=awjvQm<<3zt+*PYtQ zJfkko?f+_B{O&Zmi-Vnhx{3Tw8(()}&oF>n7}8PtZqhWD><_d12jKhbEpWqc4t}Qz ztjtb;2GIoSH*KAQ^8)oBncwR0#w9SN-TKjR7w#1X>{bSQBT|jGYw#9DT9l>Le1tXc zB9iYi`2E$=)^HrUxu!qkT)+Nj`LI`$Vz9r!n~@g&8=vLrreUHp;V{CI`(aD&CQI&yZ0^}O zkNt7BZMDpA_(WzQJK9oR(Qx~eHo-r&RcfBnTDJ86;@O3rSuggue6iF*KSC`+Fg8(% z;@jI3QTIgDJppx3_&<1dDVGZIHu!QPBoR^wLd@rvP=65hk3^j#QU3_kKjQ!3+2!}O zec<=E)i0=Ri~0lj4Yt8L$j-z!-Y$g_ILX7`T%ZTpsH6~`?$P6dT3jk7M`+KE_F|7< z#qB>6clktYJ|9-EzDj=fAv0Z2&M%-7HP6)MDFuJwd(`%G1@#YJ+BG;DsfT~uMFQCy z1@-JcbGKCbuG;EA^=W!a-#AQIBH8<0FaNjHuL}~_+h2{Hc}nL zcYO5cXsn%`@TYd@D`2`^;P0?NCSvrRT7A{L&t!KfuE<@-luQu{i$SZNp=otPwbB=Q z`P!J)cEbR#ze$CIA$RpRZtuDg9C{hql`#?n)`)=?e>5KT&(fTCi|h zuqf(=1$@}GQE*w9a`V+&P>z7dHlsc_C`Iczcx@u)VZ@w*6OVK{2KUT#3Tj-l=<)RT z&*P)zVK4g3YpesWnnLkmSkyLZ-W^NN7S!_TNj8(x7j#qLqa!j&vr1nQb_UT&Z(B3; zX0!Kq7A$$AjqaPGm6^e5^&*bv;1pT-A-k!thOpHwe!5fy3yXu0Xm#+ z3(f77WXxNp^B-~W<0fu2+swN2?#t&|xyA~u^X`cjt{HCOnjw8)o{#+~W8CQ&TJ3n< zIr+9eand>Yb_-4;EI1W+!zq`OtFxF9U(-#;I*kMPc98KV6@GtNMk}c-BQI{qx0Lk5 zDJA$@J9m&Cjj_c?n{p1F?zj78#J7How2R4a_B`lbt({Q~l8>^zS;#0Lk;WiTmPoFr z&(9rcPn@fb$+&e){^~4>k7G>k)W+m2*v79vpH6|K!*q6OKgM}R{pdSx|1(A%c?Y(Q zgoegu8rm1s@2x%>Ze=sYUpjPMkJc=7Mwiak?)Zk^YMoJM9HsX^e?xyGhILOc<|~@5 zhJdza-8EmDg4qf7jgOPDacpiPnL#lVKBk$8cCE&Ltj|kDJ4(*O zN4I)!$=18*2iEKBrQQ`d`Pb8Y%;#&!TIAE`<0%oEku&OFQ9DtD=HvIW_4hU(>yW>< zU_gCGYc6;qGA}znWTF2_I<mfRv=CfgbV4PI05KRos|jxBlQHltdg$wvK5T{jP^$l9$&Yt7!na*c4zTV27lX&*cp;Kl7c#6=u z_NK1~U|qKyPZy`@lqHY7|C<5m6^boLFOO`KUzGnSlP_ixduS=`R69T0e^h`qgZY$7 zA?z=G62SU1qh9wl|2^Rw-6BIPNAS#F2zzRke!h^_er>Q=Ct_`|-6!!^3XyK6?HOTa zyT&x?X@0+4O5m0gA7XpfzVG~cZU)Kn`&8`q7%jU3UJxrjqI*JZ_G;Wzz`q5ow@MD1b-#UK z$SM0YQ>(1$=2lr#_Jyfc$IC@GP72yfO|8P0Gs4|l1t_gmMIqub`Vx)x&M!%m;aSVW zHdr3Eaoa%8c4XZOL>}L(quX+AxZg{U$2VsHDcb4e zp>D~d{c9?NZtxnMEkT0UfB{20_PR~fT0iBDW38NsosPWRc4V!cW}K`wwUBDo-+0Y& z)SO^7>+xir(Vw|)%B?fjnhQ{K5|H{W7%BJ==+v}gK;F4V2|B!uQGv(P+CpUIQ7?(` z&v3U9wJg`Tj0 zX$P|8e=!Z|*lnqqpk-nb*;slk+$;v za=$lb_j~0AFGh8ZFXq!MRtC&%mi&t>`LAPj8FgQQR0H!%@n)pWe4qSq`mXD2OI>GJ z>N+K-uCbQ7oR+$Z-j}|&uFQMpK1k!uX!DWxh=vC4|3IqIuKjp3(*EZ?@q6p~lcla# zEp^3m>Uz;q*A7cvKYvg7-nyDCb#1WJwJxWwm6p2hw$%00_h1pq;k%nG@Yh@5uViH# zG^|Fd!Q->=W~5cV=lb4uoN38lZpmMk(~c2HHTtI*Z$|$NdaqS$hf%-HQufhz&A5H> zuC?zEBGo9n18+vz|LiCeHNG%=<{Dp=J#&pO&Yq*1CYX}v&q)F^oCp6rB$Hl8>%9cDI?Mzu zZaLaQUx6dvrorFo(z+J%xxLgUFOVyssa`MCGyRQxFK8`i)!H;aAZTq>n78z`8m$kf zLZ<7Qjn(3?FHG9jM8Nah#i1k6wsakY{5le-g|r0nc+oX7D#P%=F|@HfA2dklV6QDgQ&T;n@ge#F~7 zc+*A(-tJ`O(@uiMABejZ5ZVa9+d{k#>z%49B#~2fWO$1`vObu^MRd| z1AmqU{xl2xNq~3ez?WL!hg#qZ0gn@jb}L4CmK@*iGq>lNHp?f3h1O^5G<^{tO`9nGqh{r^cHtoXO|L23zhFQE^T zR;=rZ-E~1@yq*kQFbrF9T#m+uA&)*5*%wW;^#EynA~ZhI?4po<{N}s{@gJpOywO=E z(&auX&8TnU9Fe|u<$GX~wg-lI>>ak_i+JwXB%Gia>U85w$N*^)PM{2O4tKfPiB|_= zu@8sa^a|kY9)T><>1yCqYQZQ*LS+vCp6*(tv!SIoO-9+jPr;Pa;4 zV(TN_&E7}fg`4G+*o*RR`5oL4 zwLg19l!^aQ)2)dt|Kn{T-i(>_+JuS!ky?XPW44@wHv@wUv)C0ucishG2qVpt(EHu< z16F6fjfPsRCj$TS>ZleR7_h94YAvgyKz40n9f!0!3L;Hk?Sy0h{%8mSm#}3tP!0OX zAnw(9o~-F7J7FimXsDI_meFt-{B`x2sTI5BVk2flj0Ua?EWnD1MuQKd!H4e%g|*Re z!G1m(v|Tvuo~t2zmbg5`z`gq&~HCPigCSy`fUWH z7@ZwAbPekc8ou!W?{8X{({~FS*mp?c*rC;B75~OA*{5+|8EA^2M$V~^;I5ts?SNh5 zib8{lJV7@_Y9pTf>}eaGYT47PcnYwm{dfw-X1cvM(=D3LuXLJIKa6xH za93uDsUO<2JDGXDYIo%#oc+WpTk?l&hql)s9)$Ky<&6KzvrX#_>{OF}$?btgADj1G zk7P@&@{vXMN}Q3Udxz=7HMi!Ip342VxNIcb?(=Wa+(D9lJNkJ0Qxq3|D+O$5MzKnI zO4|r{9VcGaF67(A@~zF5l|WpA#jWU8mI1%CkFu`Mmeql>I#^jXeUx=!PFdWZPP%3q z`O{1uOnwU|^Pk4a{HIBpoQ^jm?PRTN?muOCtRO|GoH3!Z_Fifa# zcAL_8-|+TP+HdIV)~ugr0e;rg6t^R%R-GP{_EaBb1+!&ci?Xg|W!;x8i?`8SR=ue# zxW0%yn)7#Gj(P2w#cn}m~4 zbn9X}tY|iNUWMS z>ax5jM3#5bFw8g(+zYQZP^0!~j`Q(1t?ysI8AYFxmPoQTn3MbOfHs%*(VN*`2LI8w zC|pWr2#rYI_p}F6ggp@IQ%<>wpTHv-^{)lT;Y`$IqR(xvc6PT6?Uhz!R~;O`U!z8@ zY4P{x@XpsE{Qaq%_eXQ!AIf>Z?@jtPH4&>0-i$I1S_^wh0``-!UUH}_%l8|FTkozn+v z0i6U7CZGOXCN6vfUX%R(`!MDqn?Di@GydiKU39l}A#M?+S<0(CF9^!>&!_Mtgarh; zvHAH5&fB{V(7whT>}MlCqYrWPIB@iMz>a6$v$)3qwR`aH(caI`c|RNPX86r%?F1@!J&{};L!2#_0e06FTa3Gd0N92{0X-l)Kn?{a2~?D@+*K%Mb9yDp;(aw zj!AG3I9}r|y2mz*8X!$j!)W+b{BvdgZ4xgtijwIBC~?wrXuX+stNvuB%_^jt`RJ#h z!dB2~Yk0p*J^eCD zL!2=ZoY4We4y`9Vs4e~f@%ANPOOmc*l0owl;uPN)K@F2moV@RoAAEapNUf??GIl^_fkGK&uz7Vb@Xo>^eDEz(( z`uUIJMwUjc-_rP%_e1cJ-loCaC~BIDt#DcYo*R)a8m1WHMqzkr`{DU_+-NX7gSk-~ zR(2EhsFVck$NY9kA6|EGa33$m_edPfKZxrUeNH`1n#DA5+;q%}#h zE(MP`IhA-p#V+3-aJAe4$)WhJRjKhB`sKAoipcq6nhO7;$JO7*d(_`sPYvz~=|I@0 zrH<^$c#h;u;|>rHCdm-_HUX)=MqOVkQUBOqc1SMc0bW+i+j~-_Yh_(LIKz9RRXFUx zVq}T`>cpAeZ;FWN#9Zzb!NA9FVlTWLbnSe!B)2&4j2skex_vN6DlKtDNrdA#E5qig{u*@E7>`rD5JZ zSjwxhZ*kCF$rh^uMK@p^xUeR_7knHuOSn!o5bpk-N>mvPjC&az9KWYtQh%3s!TW-_ zAnL(h_@3aO$CId(Fal5TzGHu#RiIQ_Z!-x`>aJpHk2fAue;*4`#BWZXY*0!9G&Dvo z{f71om>#10KOVQ)7Na}Ec<=0Uqn~JwTkWSX-gh2biT9*OaxpK2 zXrUkk*@)wVOFQ;#FmT5kDou=^h5c;aP%IGa;z46_(VL{fuJo+{ZOZ69T!FWz^6=AE zgI*f&P4-o9&)kwEF zUwIww4F4+7$|~S+C8&j>p}H_{rp}pR--xL)^3$B4+8VbAclAy?b>o4v#n z8jwrFhz6dXI?zvBM>m14GGJ%4FIwA+daAu&G*Q|Ir_vWXSIMPl3mKR*4BNyi zz0CwCB#I+XrwjDbg;R4JJ2bdXHKaEZZBsd`r>b<<^P);`dqTgdFAvaN*C4v1_?7{> zquu8Q=&s8*qY?dw*fW*xN&@O{c?jD-?F;j3%yJIl*YAHem=cccSM#0?45nHCSL*vO z0)x{Z*pEE`cVG{|9VgMQ5mSSKC9kV=#9fXxX|F4s7IZ|q$Hi}SD|A#IK}Ua^!h`y6 z0UgyUbd>P}bVT|t(NTAZj@nh-vY&2hf%n=Uq?>DjiEDugqMLS5KvM+WG));yH*KS9 zLv-^nay`65r5n;ER2*)ZGC((tqr(*Q7W(2X)DWhabyK=QQT7>Ox^XLXLza_DH)M+l z{kBLiN9Pj}mx_8AXBRz88fw`Twda3*bg=$z-cMuFg1%IJUaAxb?h8Xjy78CLTq5m; z-hG3ycVb_-40X0eE#v+EGH4wYl@ZB#UQ+U02K^B_hBAIty*JXrX+u4c7SYpqj{N@k zKGJ(5A=`lzky`wHc#iyD-wzW-36Rzs=|fnH)R8`fTk#zE{g(>N4%8Xhl4VGBS%hDp z1kaJ*7xmY<4gElCt5YWvK{zR*So3xcR9+5e7<$HqUb#YOhm zw+fFN@Cvvt!nlE?z5p?1oJF+%ccqL8mC}T=$O7YH9sw?7P^P&zxw~E{jUF&_Kz91 z{TtB!4PpFuV9jmB^WTR&KiM$^{~iBF_@DH@g8xt{gYh59HD;l`kzC~xJV$;{?Fe&d zdyLlh_Eh*I&|CLEtokElVnrsVly8S!V-6DcFM<2h1BY-=AXBkGVM zQbyc~=SUe*-4D}nGU8^Wj+7D0@f;~5mMAa}l@Y~A6^YF}JV#=4ZhxHvGNMZyUPeU1 zdJ)R$2Hv_uqvnDk&!h1inLZxSRrzYLN@uTMarD#K? zghvh0-NTR@kuBW*&%xN;hUdud_x@Am8&!x@xefLoj};VyaZ!yNmqp0)Tksr-tDF8A zrh9u#8fs^cV1?l$>bPs3sE#|cyaeNpgGDni?zsNgLFl^3gDbFgBKavYk+K_+lC=6a z82I@S@|{e=Oc6b?Bj1mXgO;vX(CLk;1s&GQF-n_zmAF6EixPK&^yTs|x*#bD-zomv zIo|YIzrTX|uao+qjAp^Z5q`A7w*^{CudfyU6CRf4-JcUgwC1iGvHdEPNk>%pxqYyJj$q?H>}1Bfn7T1HBj11&Clvzfb?)SN?zcMT5)*PG9l`Y{Ot+ ztMc^qC2IWxYyDFcPv(=O=Q8;Q?BVw%wIEl4c@B1&g`fF*Yd*p-A}-I(OO!_A=A=xV zx=yP%X~!qRz#|{1HQo5Ze~*dz9}cvyb=V$%eAu@x&{rjB1y>;JLRfp?;R2>~BWdZE z_>L>^3w-az*;rVE1e`tnuSlB8`XG{~3?ES6Ueo*Ex951ze@;_RgQmKC9l!|IEDfTi zuisaDxb^-2mX=J4M`T+Mwd?cG2l|?5>HE~ZH{{3YeOI-K{`{W$+tN#PcHm;nS}VT9 zGUfT77k7Ep=jHFKv~{kR+K{ibVebDIZT%+H^2>i@%Te#Jqi9S|xXm=C|1oTqA`A+gK&ujWs10<^D4-YH*3zgRfZ1T(Qkp<-?gib$20h z<}UBJ%DeD1u5#Od^^S6e+n}Dxa&R=}JP=hyk&le_EJG}cMInCLOAYIX^yEFGuPL;j zSOcZdxXDvR>v=?fPy?T}n`S$+!Q*==DjWU-ig=|cs|^@6xB^?oQwhB|M)6>)^n#IR%UswSZDzQ$( zj|;({-w=N5hDSOf^tP`5Ep~n5!)-m>{}wyNVPA&UC#arqo#fL-KZM>A{g1?4PYYUy zD==w%mB9o0ridbvhCf^u{2}N= zT!Hl$gv(v7l-pN=^JW0ee^)Niw8t%H-CPmX$3UPZhqaXQ0q(%O5&P$C*~!ubbe^Q|#K3oF)u;Gb&94 zBn|Llsh+)B#k1E}D%3Y%3{y1daObU5wRE@|uv(!fzOR&PMe0_P0%9vxCulS>Yt3k7 zExk>y7U(Q3)|PSDadkXmKYM*Qi`eh_g_SK$IHQuN$|N)?{zO5kwHABgG@;feM9Ro5 z)%@onS+nIcRmS}CZBf}D`;SsEF!Onw7y3MBIUBFOy9@8Ge4!otT?7MrUx0rbbxebl zp&bgtePpe}J^`+9i|Fj3c4#eweVWQVm$@BKw4bN#$YXjlJ`&Csp%rq04^w-Qi`Jwx z0rrif34(DcMPDF}?s#fWlI6zK*S0Utg)tX%J zMA4hU-^I}P8lDM}-@*R_zZs+MnbXzcZ^8PWSb{1tO8Pj8C`E!-bV zE$BikyD%s8!#z|N-vxbigdP6_GY8dtI*w{~h=W_i1tyN6_suO0EeBDvIEL!NTs=6+ zu}7LwN@EKA)U8;v7>FA~J2Y_cAb;7S?l<(eQITyMo5%(3aMZTew$RQ#wJng@I4yUS zJ+ek?U3dk5Ek$-W^A8UH%*w z=fCi$v?tO8QS1NJ3>C%+vCNm@BWS+T@TLK{V(g;-Us{5K0Scx-aghQ=6Z$wj7T!y$ z1$2L#D&YU_sUrSAHPzj}w+nZ|9-3?GMxV(jM}CxM1B@t#X4UdK)c6NFIgY4rfWtIF zO7u0fLw2Zjf%ZII_#UQ4;xJ)u^Zm2BzMIm3`ff#iw?0a;JI2*dKEmwWRKEWDB&?%rErpPFLk(Na1s~hqG(L2?H20NEt3WHjXFxLbyzcE z7VVL#+|d7qrs4B6<`}yh;|II(MwCdAU*Q=00Z0aLr9feNGQJAET?PMj6QT_tra6?r z)+uhhqZvwCUA$m4wP}S|g%&>lI_(*8&l}{Wx<+}^fqNM<(DZe|n*;R>Zn2f^?dPP{ zx|P_QE7LuEA4G@xAVdu%LOn$#N4Cpa7ir;EMOfi^-7?^oBPd6PR`gfQ^#lVaUtfuD zEBk4cpxD4agl_|_zlUZX14)D=S>%cc($58%#Z1bmj;(ad-@JQ5*L!yYMp9Xe;K{1u^IT+q0Dxyuxv!% z=pb#oFk{z+_Z#qipak{oGxf}MI`0=6V)IG#kg6LxVZY$4t0a+4LR%?Ui{d?@ewvp= zd$09@E6+`e+>?zL)F*XE`^PNU11hl_V@j2feT~)p8<3iW6*{?-?53IAtPh_HUdb9D zD|`EOpz}rPT+#DF@QPzE1Wy&y9mVR*?0G(ze(d?+47^Rp{S3VCE1iKi83i-&yh@&l zFXxNhxuWMql=q@i-ix8~4xzk5DDOp-hhLH-v93KU%-C|*WMFC%{!pulfWmjcDh3KTCZP$1=bB9gA?c?IRYqLlYa zsJz1{?=Z@H1?AxvDX3M4mGTZNk1UFhoE>3 zCB26HuLBDF_Pnk@@tOj~YYG%ddEQpNiSpi5%6l_Z-Ww?I4V3pL%ENEZn@V|aDCNDO zl!uh(Y1LcE`&NIe-a;vF1rPs-R=oo#-cg`%^^4>*x@1nf-P#%7J-c!nZS1IpZr97lOPpjTX-uL@k^*%~@Kj?4e z!P|+~yF)P&BoCWHcF1MVfUDqHP_zWn0>Uep+My*7?`XpKrMMJC5_-TJN`e8;0ac=& zct!pF*Q@I9o)6XEZLg}5wslG{An%9XzJEZ{HsM|6v#O*$@vNvw++)u&XqcR@PBeP2 z==mThc?TpAH%R8vX`walnLS5>11Sb%A;~8#a2S@?17B!PSB({=6*R+r4{L@(E3Mr5 zp%hqgS)S0Ee(Xq4(-H^EL0cXrEqsiF0~R=+26NEW{LdlZ{djw?zSie&=~C9l zr?mR}<6(Kb9~@iVtBSRn;BgB-@zTi^GmuhjkpTHG&$yw5l??BIJf}YV0epn0oYv|{7=hrv>Tkbr3tT6GmE5Ij6fB7K9?NyFF18>uNz_0P1 zB=h?Uw|`&Z_DDGlx9^6&aRl7{NI$nf0&aigM@Z&`)`XT*#R;vXKWSUZSHrbhVPk1p zG72=UtK_(r^GU0pw*C}3f2!mh*DAJ5YY|(gA!iD5rXZ(;oWsRByINf>s#fG`&1gA{ z{wMo1h*;wR$urbGO>a~*b;TBL580<-$wb;{BySJ%YoU(32#-y0_hVLo#s5QT>n6yM zY@Ba4Y(2qu3I2;dC-}c=<5}xS`Uu_(_dpFDE)iB=Z)-2Ox=Mwsx z{XO=w%6p?GVQpu7FtE0LfcKtqVjW(QmhGZKc%_ zs$Rg`5BE#S25{nmC$bhBk+QaBJK%VyZzcGi@EFd8cCJTAVl?nJ1wx z^1HPz)9-pri|ebFDp<_ZnrW|{@QS(J36W_@DkO>FntI;+UQN(GBWuE*K#&o&zHaZS z62WA%_my-b>UZU18eHSN@zBB4DCKa3@^2I1gJ|uBgt7@gl&(C1Y+y=D8r8u3As6AJ zIQ!;sV|(PVW1AZ^w!ckk09R=6k^DM%feZhiy`WZ+VvUH9uI8hX+<51^K*s-;3%XnO zK%%`fAkq5wCuM@@w@$>YUeq}M-*xbPj>0;3%&PU_9I^g8c%#%AzpFuUp|5om>%avT zBKni-+1D~3^>HOb>`tY}d3v05B`?cI%_;1$MboQ;g%QV{_ zE!A|MT(9rc8MK{=H8q{Ltkqf^g1(cB(sl|}y8TH}IGv2Q*ze4}L$|$KEApAab|AZ6hyJs_+w)sqfTAU9dmNP}8|)eY`|pc~4)qY5w+Zy%@D$vsP=wZW-<7PCG}x z;hY*Xr>)Lfqm)^$acMF%!N9JdR6DJ9ugmJ0sG&*D0Q480JGFZ^>$@jK19u+RV2YLC`pad0ITb}hS= z37$GvmTR+XlPkJ-B6?z7wNv^iGf|3C&VM`>pU%{~y7;RZq#e$MT%T8!Yb?^3jSi># zOu62yvuVsbM{Za!A16q1fftZNy;~K(0Fr@6E$j2%$}|>f%_h6keG)nJg4V2IedRp* zXl+$Tkyf4{nxX2iM>}Sk*E>#@W}qErr5$!-qS6j6TR5a08joGdvi#Au-E@zAHq)Co zI&`3A9d_*^eD8oyNpCUONW0(yQoNH<>6e>JL#4<3n_kj*oYEZ2Teim+oXD(sY2BUe zK8}m7uqbU@gf^;ohIpPirFQ5AgZt&|3bkL7(JyMsEBf<%8n@T`@A_p9tIF#rTEMoZ ziRcNfIYZ`T>WL1SE8&f+mA883E#X;x`(PUMaX5@A?Z8_uEgHS@E1cU<<3e6f49jrk z7fq5DuuZO-m!b|GN4tm;>ReZX4x)>G&TeD9zID05%zyY|l-3@NOUId%gxh=Kn$c1b z9>6dSm>q>o02OG>dQgGRai&~wZ&;wF?(EO^3ngF8OWgjiyd0-egT`!d+{V(~r^=1y zwT=x7h!Qf3k9xZ@Kgt9Z-cysC!jjoO*J0Ow*VTyET3emr-mte-j5bF(uoDmL{+iC} zYOVVYQ;EaC7u&}$t*k{W*D0+mWYdA6fmU^4Mc%qQKhHeiQ?aoMu&H+w;&^6PFxaKE zDjk$<0%e~D2Gus5Ug1QW)YRAZ=QG81pf9LRuST?qa-JdzS9;@AIpxg4D7y~$e8{CO znkd<&4^n5dYgl#O(abHbeD?;^j`%U`bh%dEk*YD@ntZA}-F-{i8RRTZJ&T&VQ`K>A z=1|v5m+rthZy5g*G5U3uc{a0owKDp(<}VySZuDzBoaM2Rx(f8inn}{fncIC)z-+IT zMlIbvVBHStRH=Dxkr|_WnLEZDg_1qr5v}lrK2%D1Ws-UzL)N zMnoWDL>L^`FgwPC&ip4w)FDkSjTRc~+MU9|D z=FlkLr;PG7?&`b~nHl+;O$!|f{BP}>J=cje((Mv)w4r0Y$)|E`!mNs?YQU)8r3!@C zCZ%PoK&?>}+jLgTx#KV_nlvKc9d!|1g*n|F=t0;z66Ak{8efCJ(?=p|5W7Di7k zq^T(7rXKdjc&=fKJ?l(bZNBFokCT1jjXD(L+J|1KHfgjufZpx0vTZJ*sF3Bm!W6DC zF9#>EyUWwmao3dA>)mO3J6S7tr*RyeVXfm@cTe^Qp-YskTg;LQPnV{%EPpKe*7WmJ4l0;v=!#(($6!5^c4VEoV~-&Xn^pU5PibJ)UYNnHRE!9?D<6U{CffW0tX} zJTuMB%&z@~hu-a!s8oaHy<|m?h~-&F`6=0IDo#vh?KiA(8RZz0W#lf8x$LYw+4Q$W zu0+cpO%(kuPVmqu(6IC(Z8@)9;NrAz73*c4Y?fEa#)1oF#&5RAvXrt|1^SU}pW9rv z6mwR-?7M9e&ONT_`~-U6=hYd-xLb1pdUb38AM>uAS{KW86mBboY+hA1P?a zvll5(RW+TD-fb^PFDlLIn|C^IOOaj~*=9y32vc9afxawrK!zKm_|^7o=FQPa`%02b zx-k{(a`dnXvYI#E#G2h(*+Tbj@VXAS+P7OBF=dob&*vrba!qG&jS;g3t@HSzn$A;z z_SE{3>|n9E>>lC^Mhkzn-OhYDI_cSx$);M{IaxBzNYs~1=D&q^j(TV%yTfHb5Aj-U zIZm_C=DV_sIJsK9g{_ipjC#pjHid0vjK48qDSGCY$yB?RUuu__Z{CQq|4Ac?_y|;~ zwd}WLu=VbRpo$vPjqWhakEY$p@|hK>{yAnLyA;2-jl2aVPCz;1{2V_s?cS^?%Y903 z82B-XccM2;)2TPE8%Y@5uVAz*gwZ<{j4on!1>#+RxX@Jri0|<%WLcmal@51GsYHpX z^B4H$jb!FBJ}n0IKAWhuTw=$ZWa&dWguw&AU~-yXHp&+QmZUT{n~79v-!Edn_v~VG zJoTws%ag(s7E^XJyBOHN)=p_J=4l-!<5t=?rPI-U}0b#{o3 z2}=vn<^`^WXmfAsooo?HME*N%qtHrf^+I-UDnU4%e{0nIG@_Z(ROo$aQI^XS!gxq_ zsCWoEFxK3EMhiIYFWen&Uv`fJy*4jKj+0lUMp-g!&Fm^R0_E?wseSWA@=j?X(_;kv z3@s8ov4HC*tk`AJ-r>?{e_FJ_br2)WEW1;eGHMUucVU0Zh0LT~<0^JtTBOlt7rDUU z<}0|*uA?bAi&H@+|ax)epr=Kye44nAH!(yi{du^DFGT*fTjX)7wk5rrT{NWwYr% z1q+Xb#>)9<&kH(O=x$X;Dbd~3ez;Xy+MTM7>UCqUV%6+KUSe)`Q8lyYZpkiitYl+z zAIx^!TzC&&vt~olPRRhyW5-xds>XHq!J=@h9+|54!Ue$FGoHzyb;8{Bo(_*MJJa!$ z$HiuvS1O#e!?RPGso?4NQ;83Z;Qy2`&^y&w;rvc2jX}cI>Z#OMpCv3}6@cy`_Z;_q z{UcU|zc$Uv{*gxb2K=tAY?*?`Lf1t~4^{(@8Nk*hsqw(z{bTq4V9Mobocy!2ZG|-I zN~Wqh>PuPLCmJea0o_xmO?e_Fh>RJz=3n>}gd<@|(1 z?hx1hFtoEXE2c_Ku*~LS3|v`FT5DBqyYI@pZ+%y@=Q0obI=pj$iGt`iy$8tBI@ked z=*`yXMw~-hoy!*)&1MI*u8;+43|XL2hm5(DmhgCS^y}VdDfgl9o7K@fko)aSzDN%n z^tZ4<&%p*AJtpdqKKD!HBJI>ryz1Dwpg(iN^BYp!fV3vJ=B2gOOK`VwubKPp@sEQW z_O20cJN{{K>*m~K4`7Inbr9Znc5u5{6Fkbhc2Dngz}pf7!>K1D%C9b zEt|#b6Fa=5@pPNJePrVioLy)!y&E4rAC{xq(pZPzy8zzjs6$%L4@k6TgUtvH_GG!= zC%7Zq>@yE-GZ#%3sM=<8f1C9-cqts`U~yI~fG0HXj^ZyeS1E17JfXB2t)rGjw)l3X z#p}6D=r4Kb;`iu9+RP+P+FQ6kr7bZ?unqHr5P2 z8kIkd?FaSkpJ%C@>_2BLF#T>+P3OPB4?nG`hBh{@O3oz;yCqeF-smuMOHWRvyEfdh z)amAT$BqQ=IJ2gv^K6x-=uFj_BCz zom;4mxVY3T_AIDwi^<}!^Jc7^xD;B~(X?}=%hEVYd9o)p**w#h%$Fp5;jJ@W?CABr zmewb0O>^y}(Ro5r>N2+8Wn_%>BgU0$w6k6QVy&X_s(nlvuNQ5vanE3_*<&2kj}~Rb zzcQ89b5-Npjm+s5+*>?n$~Eli)GxfIyl=eJU-W(-Ak?tGrjce`)A_N2kDL%bqAHrE zlAIU;IpKgEN%CH!{Yg;)^a2~(1K$61nnmFz$AaHYrFb%qo4K2872;tE2jjLWw#baa zTd=>XS+P;l!Ie)II@z{@leuG|(Y}(Y>Y($WMT_L!vs~cd}PbDm7e=)tQc%H%E`^))ja&PIYX;co~y#$-=ziVT9 ze;Y@kjSi)a$)Pr;^tbV1M}}prgW&5cB^apQk5q4X1WeSnKt$X8Xj?qmb}XW8YA*y5 zo>f}+y3)EhrDU~r(fkVuqfE~wsD1ft!e!VOxXsiXpJC}hDet450X<{(ko?vZkmNQ& zg2NKWUd}ZynW|6i=D1#8mSwDMKAQ$O>l|||uaB9--tch&KmV#Xojp~4Tuy^Dj~_=? z-9?g4k*n#D=62~rpSHrLNb?2!rS>_jA%`s4v9M%Sc^*|UNgAE^sqfXr+KRr?D-?-t zghY?6I;To>?B5kzoeGJrwM@26NB#31QI-eCyy|;i@pCl*g69<&j>-w9_Y)^TvafaN z6$n}&*^@;TYE`!T71>^Etb=T~8+SsIl8$BOlk5*ewmYiED6sL0Y_EZAznL``kAh4; z2AO{Bv0LFMCAofJk#V|*BUsc@IoW9xjUPiA>*Xl9C(SG$_331N#kh*iX(uw{Bu@Gu zbK_nEw=Nem2=}B&ix+R$n<~Nr$=$H`A#tRH_*D1Cy=fY387aZ zSK|(3uFd5x*|>MCX5-!qA)VG$Q_c)`KJq=L3Hw$Kb!}P#{DaHNA4;nOwVK+_U;ik?$tx?-JzKcu1}>5EujEDaJA-*dna(5v~lkPnhkp| zOsVNykD4D8ZBmBYnm;ZKtF(RbHLQlM$$iUxCwswdH}_>i=GN516OiFHXsP@P+ivI9fAKEZL2$@D8a0Hh3(p#p&j4kb{1v8Hp{8LDz5{Q|Y%E_Qi42VDaeb&aWVLvd`bDxvZhXT&@>jD$J>33UJx z>cBjcBBAn4RgPL|66k<*s_**+mML0Vu=M?c0WEDYQ@sO`T3WD_`8n2es=VLMeV z`SrBsFUumt!&ji2m#!1~?z4C^)#M^o75Gh#3*zJ}NMys0F zfx^E->nf0DPrsO52EFa`1Pyq;QT|I>0&-GG$8e`%^z}$uxE=RH?%bMuB(3HpLpw$) zhIzD+Tl%VZQYwuc(nNH4e%|}4cS))$pFdaRL0(l&XTv?U(yfqmSA`^<%SLwX)rzbt z3dt(6A2kuOYOc$x$SOm@1+qOtAEi#4tj zQ|YY@ZMX$8JJ&U;c%3UbRc-O&v|4FBWESZVVVR}EsHvEwSS%#7k|ShRv1>zd0&9iL zY65>duK3ngE3%60Yx1i}h2;4m&)I-yEjdp!-Mf9&b|d^~lcl#oRVC}lo3^`92ih_z zat`x`@T-mG1NKbDT`fq3{GSyM+c@z0_ib0P8Q=+hijVEjBNxKI*2HdMzZ>FXb4U2t zCMrI*Sq5$?R+U(6@UbbrAH~b|ZlYR321_zu+3#grGv*=qN}Aw32z%LDqc3b zA?#%G;q#^m)K0uEycc`AQYWpI1!lI?l63Jv4a}%3|URLefRm|(&(r>}5 zezt~wKii@o^t0Wq_`i}9Mk_MF!skZRQg0*e?21G~iNv1{Q9N1DXPQD^_KJ|t?S_!gZCRR1BRz`OtrNbHhuke}o9QO@JMc!;Q}|HY z2If}0ZhOZpQoL@rk6gvJ^m|Ao#q;ujL-l-!iB+s6hnwC}VmAG3p^0THel*dMulN`_ctRg?6UJK5m%kh0dn;3XZ{a-qY-*mzlb1`26pu|ozb|Vz z-`kuB-&Z4!Llk-j%E zRrM_$A4QOby;S;;@6E;5gF32M?+?I`74p2Tv=7kV?KYyn`xVdIuF$ACAN_ej2a%q) z@%>P%BfBY89Vu(ZW&;w{^Hvq|yxkP?yk+!z-j<)&^LF1d)5w7=1nS)zYTl-6W&kUkN--QXs>gT6##wc}5s z1kY)?F~@GAsNZ-zWq`{WEdJ4ysw#`p&2@?X&rWOI)vnm0uhPPG*A)(5ceEo5c9?0Y z=pP$}cp4LL(^*C#W;k4{&Jt^*dPiVxO|97yQS)bMs#P?!UVmDJBFEDiXPIF~oXzj` zma43D19^lV)TW@W3=fscdro0jxhYDCyl1^DtV0nmsxH*Y(G*qigEK#251c0Cfpek< zbm(=xd^9Z?bA;3v8u#2GCBK$NvB)}(;7b%>*&=R5_4vJ0ppmU?`~2;B+d^|pkL7JE zXf0BsT29VWBAEl1eXk9%p*AEyPf}Y^Q$VfgKr3E}fFyxs4*9+>P1aNFKrEoKLXRQ( zSp55OA?i4pJJMvrtOZ)cMksA03-qcitCZruJSxUC%He^W7d!&2Laf?cV9}i{J(+iU zKI!aR7wlOOnTyuhOHqwEdQ*ym(-Y|Zc+(XMsGgl}i!Mq#JwMYj3DJ~PBF*(Y znsvvZvJCRMe2WgT0r}(nFP`4y?vs;1+rc%0M^~Q4{^-hZt+71dN-5s#nqXLCNnoQ4 znU=Q`w9JXfkVu#aKYF*7{mfP4n#K}}u7@@F&ybzV7tuPn8Nkus0ZFf~+VZmfLMe?I zE#qyZ6W^lYnFf?Q3v}d^CWD>|O&8cQ5lO*=R_&$(_S?|n_^5Qx9icwIqmXcNpzs;! z@=@|VBGF?JN*P?nk>tt#OHkJ3j&c6yPuIH7$Tkn`+L~(k1QAD2BuYt)T6rDX7>ils zN6^AV%=oAHe;u{RGY_#e=c+4Q+6pU6W7_g}41aKqW%aHaOGWWTh6`DZWut3};mbCy ztgg&E$MNW53n=zhcBVKBu_be0(OwcYpB?lRFkMWv(u$8y8{IL8WZCMP>&h$M=2|5q z;s)M4-#qf?nc-`ygWqT$deWC|bi}|`B9HtHcHcbc;n2lDsnHb2RMPzFb!;5I#TT4i z!N+9xYkqTBm(nYUkpm4F0Zrt{`@SX^9(Pd@o^NRI9*fQ-+qGZ#G}@M|g9{|4;%id! z)oB;PU$!$~P}O=7cj`8I1tr#oa%s&87{T9?nHY}f`#8h{ zo&Fh`2Jjy29MNk;yb;!{YXqq!3%h~WtC2Fq^HhGxDh8+glKXy2j+?ESgPl2a`1afF zfHGEx6Fzv9`!3!zA^y3qbfj3*xg+|r?M{C?ce*i?HE>R)e!Wuv0i@fRbr$uj^Z6Io zPOqi-OBDt?TirY@TPJ`%#np|kWI8K!$R7#+W5Yp(-mqeXW@xEjf=AyC_Ln!LO&f;G z-QOmsf4b(j?U!vo-8dNLpPvV2iWSjwGoKQrNs`1eEjnA2JW(Xdx78i<6*h4GD>C(F zyCcItIt#7!ulaxre0O0w+nhTQvD}ewKfO@&n=WU02VA!;5d9}~&$`OlH@^MldYNE4 zy?r+L-l!oxF>Xj(C@v!0ZgEJvEkn|(Yj%j*u$Sk4?9#QLdTt=U)9)EXH^IOs!S7Rp ziZiFba7fzMhe`X5-U&bENN$eBDr|yRgp5 z{%51%I%=o{A)1!wWFZgtpZZSLD zuo~f);nRWBV5wG&Ei+h5wz+_h$}q`P$`Z_hQSDDC{Z3|6o_7jwRexe%oFXuAI6| z;LqK_c!Q00qgyUn#X^bW3hU+|dN3Gx{T%TEgUE3eNb^;Kvred2`%dofyE!;ZWDa|( zfeW09Hn88Iw-;M`%8k&2C}uv#T4m8;ZpI`A15cu~6dCpKUnHw@4utPB`bnTCI`1>Z z{~NAiD@BpNT~7Pdn<{wZs#jnT>UZOugRMRpWxAsU$?eOuL_s5$eLKauti7BI>=QW4 z1HxACe0IBYsI`oKz(VBm_gIp|q4uEIJadT#mS z?uKAs`q`hOPfsSSeggB&%`X4!whaHgwoJdf?aMX}PZ~UF@x%o_ixCme!3AEAT_Md` zF%S5h!%VUTzhxYiAA8mqbD@0^c1pVzUkKKFnwERRtw>-wZA1eq<|D_&BCK0d;UY}u z*HfuwoJpir6V*5^3Hv`pYb%zAc9U#V#=@tH{*CpzXGLkg|2>TD_u5i7aq_?n@==5n=8O)#_#%{-5B3W%~=0ynEK=#%SQ>}atiCrz>#wk%Z_r; zthpJ3n^Jt6K%RHvosQep;B4H0RRMa(q-IK4FHj0+N;8>RNmV}4I*VLxvcLP>s@)0KOoEj^8>xw}ELO=k z%9_qMj})X=7gOpd66dqYC8n~S$2FY5?-)Z6v@V{}(-NdHezR76ru!a^_n0B5kY0zI}bphdW9G2%?PQ`s=O7_67+WO~FX!$G9DDrFfya?3<>aHn)Hi z-e8@1tUV}7lSkMb^44V~Jf99Ij5ank&bO7syGV4R9T^$tG{DM#(yx36Rgn85wIzm`~_`OD=he*EoxAPzGAjm$gJiJ$8{`mL7up}A|E<(7-M2tZ_~$K z?32W>PZDFztF~L~JPll66=X=Wo$$X?ybC%0;@F1&JB57yWA9j7LEUVN#m1F@Beb=k zr>@6*;l-%)+O}ko)&+Zm#{ImOXmg`pQ{t4op)`W1Epcyc=~)%zyPCwQf6tJ2HmY3*Wa5Xc#oo>6-a{S1-8ql!L zHYHyV9JU4R*&_w6ghtxsOskADlYK5$^O$5B2~WiGmT!|U_c-}EC@IT-*)AQfuQ0x# zS4Qzn9WUErtCSKh8>WPfN(q;FM1H)DG_m;@S5$IUEbMAN3H@=tx>xkqZM0o}yd^lF z%}SjlU7C9OMnqeIqfvC!S@1Gg^u&`9wYUY+$Pu-(v9Ek*^L#0-KI7*uIj3TGH&%Jw zn;_Z5NuUG4X0CLT>~<`NWZ?o&a*+FoEHIG-tka70m9u=3kfun5XF_#Q4No;r>WSx! z*u#mFcQ#iv?QHs7;jc#Ssb+$Q((=-?Q6xh)G;)>=4TU!Hp5U}^oB4P=H?GqBVLW$q z1*BS!joSdtYqH+G2 z;WXJc92?JNW3Nk2s$MMA5sU;M&(oI)5nr;K&_?WsYO+;jZD`^f?K#{$zL_h@R(gV@ z3{asLA!kgmHyeCSn0t5okL~I5b^9J`EU81JT7^zNUMk>S0Vs67l)W{dMyY+7WEKtV z1g!>;mq{^|4=omY&IUEI8B*a~tj2`3IIP=Mb%Wa-Q@KT2T(^8{lC*K znjl@YY%$8omu8A0VsS?Zniz{?zGSL2T4p46_>B8!jL?cklx-1>G0ZyOd@4D6D~*Y7 zN9RjM#0=#4cY;Ual9z3DZ^163wwTISi@t$ZfG9&}H|Kqg8OhU{NjPh=J!@aVPSi@2 z^z z>^`}|REgB4v#9HrsOy)z?C=PzMZUGjcjw{-i!=OXyRtWF@ZTf}MRkkwH}M5j7f!Xu zf4xZgIZJ0k#n$eo`0VNuu0&&yn@K8Y3*zV5i^OJLzM-k1t-G1hRoIO&MfR)xO}nCT z-N>FTyV8Gf7gwR5ZoscQ#$;Q6eeLlR!L^HPd&YCFEWP-=_sbPEkd*0wpZ5Em3%!?@ z?93&fF5h^4{`U3P#~nKx)bbPT8eX(p`LXsGsaE=Og?kfG+hX(SgrwP-jGu479xnM? zzgUsI3Ea`X2=5bTXN2Bgl?A_tDasZtZM^>8-F)TIC(M<5d2d3r$jc2q7jm;`8p@)_Zd#krp@QMCLZWSyoTK7Dc zO=FXpt2`KJIYqnF&-G385zoC`YjiWk3Y*J*;~Rn14rGDNv?>}N_|I|uWJR}gViz;j z8lCwgbvr%Q)D)tI+JCFXkq?6B&OS+XjFbK|oA;YGs)w|+-XE-oG`DYt*w>6zY)90M zV^ZUZ#%hy6uu8wl8ntcmGt%kUMRe1ueW3rwjt&E|i7(%6FqLksS zZn6QtR_qMgA#I$bL9~WbN`%}1^fY*xv=#kpjI=oedg(jKkTefsH(eVL!c-oFxU{CqI#}&ADmvGp=mAW0eAf zP5J&2zQ-bcU%9h6M$BXXgbpwV5vgWS@hxWJbgQz$6il*>=3oF5V`$q+^wKv?29^Mg zoNSSFzOR(#W5RU!nbJ?UfkvhwvVH*OKs09=DH9Buo~rH2+x z6!?p1dh7ZoT4}94$GJHeIR35b>r;J~s{i9^4JRc^anj5YcDrVJN6}Y#oNlCWc=pK^ zqvdS{agyeKtnU_d2RXauUd{cQdowLtB)#wp`2I4Xw{Gv&iHTb@+vpj8D5uL!C0&)3 zB-a*bF^_Y2c1>r-TJ3&o)VTfD+3^yUroGqAYXyOe$9Pn-nX9wli-%{G*Bm57-W zUUD(5pxG7|W1f8^Ub9WJ?L9~iSaO<5@CbijzntrrFJ9GZmPw1Wa=QNt|Q=Oh(*|6$vWl zPRI8I%ySV`M*-DH+<#nNd;DyW#)G-67Cspc9yz)T;!bb3GDOaq{K;ms)~GSqJp>cY zQIhXd)jqiZAM(wqu-e&YdeMI?czzs4%uJ>;#|!iQ$9Bcwie~UrS(Fv?Mo4-~#nzJv z=o?r$31U-eZxi`l;=zNW*{S&_U?sh3c1juk*Wi-AMOR zkS|L&ryGS5W-wZ!9pqU|!26ZwZp$ADJ*pNX+W>z+Fp%+$AdRY5xebk?{ZW&odHzrL zP|tFb2Hu-b_f+sP4sNR;mDD-6)?J&wNs#KUb#Kb>XyB0ot)Z8r?9fIlKUHRHHEb=k zy;b_TesRAM7fHETb}x1pyB(HwKlV_5roUjn78kwaj=D!u-{i3r$S)q)#@rv?Q=gs% zo-N!YsTlrsO~FxoKW0d0E4|M8DsM$ot#@ZrgZD&J3u4!I_6Xb`D)X>~u;YbLH0`a{`Koq#?!Tnn`r^L_YV-PuuH-I-C7Q54l_a)omI2kFVT8O3QN z?R3F11D=Rtsio&kP*b6kkFGGv9ytZ8TdQx#m8Y4lHeqX*OXEiT1;?8&5`_D7h*vgM zPN-OB8ZSgcm%j;mWU`<`3?SYiGSys}aGy>F+!(>{CoGDwI`R;2K$=D{P<@t%RvZiz ze=SI&zl5Wi5Ur?kNRn0R{u18Zr*;dLjnMX7e>39}Hm&OUHaM59EZ4}Z<#JHTnzMRY zUr|;*Qu02T;r}FG<4<1qD`ve$+{y*sPO?bO+^VJ3B_ql{T5Jbb;CXSY!&m-5N%q`)`Jn5-g7r(2@4F(as>I0u%9ten(me^39M1Wd zVRAM`w=Q<}Invh3QVeA%8$Wg8e@wti{aeY4$G$tm4b5>qxN#(G~&<^9RU z(&80=UQ8b7D70_K*%>={tPR0F;$I0;w;V0@ZMWe4y0hf9ZNWRW_tc&vt1>*N;q=cO zGSAS6)WgqZIsKOoN&EXBNb5pcjt$H*VIRF=Qq$ZQjVGsnuI5amud#s>m3gfw%xmGy z669#eI)iyFb=H(-wZiiwR}Fz>&M>7DKQ&_H-C*x1<;|r6yc#~2zu}ny4}8NjOE6n= z|1)`@IGm^T4E7w?q+>s9H4TSf^3-Ei!g2-Zt8Bj+SFbmrt_8Yyy1TF3n{}{|FX_rr zdD_b6Se693P5hE!#^WNKJ26~c3Gm{nb^S#%xb7L}soUU4kb1oWxZ^9RHt3P~p8zeSQbYT!sBIGJ?0KfTYEz6Y z3^SD-ZvP{C50}Am9zVFCysQLs^krq3mvd}rsBOZG>EqcAc(S{j46rNjM}OV_4DI0) zy2Gwcv9|fBB?i~zx=d!yi$&e3npkOhUH-MpVE?HQ#Mf=jI$eH|`(R;o*~Y>&^9V

f|Xwt?tdvTp|=4U7q}fdWjGzB3DZ`TJeO^ileiKJsFwY-y{Q|2*r%1HP`@yT$A zg3(u$VAdyt$z?|H#%0n~fd6DdrkG)I*>8}Su{YhOx)B~d;`!5UId1Zo&ap7epCLUz z#rEgNotTk>m!(ZBmegms?`j)|`m!H)S*&&rv^GkrUA&rI3Ln%Qq^dwF8L8H_xusY! z2|IRdUF>e#)TXm9$CoAbE@%`rxXYKU^@6y){LTCXX-U}}OI&@vl4=F|abkUjMQgvS zO&!&L0e*g&xnWtVt ztqRLZs|rb_74b$*dGMC{%e5%$j5ZysE_<;el4`mx1j(WhB!yOW?<~?Jsf|X(BBfch zOn=)Rnlq~k&6~FEQSDls>W25>dDFH%Wa%yhH(t2kLs)VcG4rh2w3MD^lb3K@;4D&2 zPc!4nv}hePx6B1ThhnbA+7(MqcB*+AJ6dU!b1;VxTb5FWp0-=1lWDPKHJu4n8o<6U zo|Ezm71~w- z9gOg2kT;6lvZ?THbFyjKU%L%L6y^{9ycjyo3QoQV?|XfIU-C7x*`26$JpAmxuut~) zoh!bE!4-o^!1>VsZVdqA{-tH*ZAos(_ZLq{3V&lazz`H+K#+ztOOt-f>Un{~JsOYGF zMUPeJ=TKA!#dIJBgkjc=3z$YxY{!S8y`8k9!Z95b(XnSir)w_z*4GYAj|;5q@A(Wr zhg1AGoMprPlf!jZ&%^f9!B^NDJ4rHN4j@+g16DebTt5X2Rse$)3MCPh%$53caE4^o$*-6$`qMsA!33ezhl`3=m zucexC!O~V%wyAYdS)||Upb>%c0nxSl`*u)X6}lGOr@*G4EM z-oA{N)T%_BFFz0 z-n_MktRGmd^;)qIwN>n2wS#&`sJ|LL8I6m2mU{JSL=Eb(FH>)f8-dX_o0V`lcmAx?zlUo;@2lh5 z$wnad(;yARIGs$!IpY5!y;i9I3cdHh(eR}<1Ou}^t+Mo$-i}H4iY8;ZDq-5&Fou+P zC9S``jbfF^b4oD|0}`gajrf3luNfC+voIPc`oq{C{o&k{;>S)n1(Xe~T&P^*3!LSpx|Mb-DY;dh=jT9+z{#qTV)e)+dAf;N>)R3!Ym0PN@94qzH6fbHz zqm#ZK6)3Wb;sm~HQX_umC|pam4?fkOg`Nj)qQuqBWOEQJZ?vS^*IN<{BaQQ!40!*5 z-qK@s_rQX}YrafteEjI+@a^V^o6WN`Ep|lKq?y>aykXofrz{#RP5hZs++i_Hl?Z!km!pLPQxR zV3w~0Q+vu&lptd7_D_ihvn)dWs}B37itH{&7NpQ0P9B0cxeordOvL3bfnSj?t2Nf* z8P)=Lo*`#MS(e3$8G08N3~(oD&&8(^vCWD0&78cYDGT!$!NBkSwT@OH${TVF1$|ctVFXw%-u&K)O#OS*bUx59`WxcKbX`uDp$cZwy_wj5CbUzb8uhF>QYO-%ynPcCq72j$C zuWsAYu%-E}W_$C(W^nB`p>E-B>ZMtZ->^ISDV?YmcmTZ-<*AWNMCtSKCI%OW`=#6f zmF`63(@u;D%29?ff%qR>OEDJISRdGlyXPx3xuD)8$KY-$X8?UJ<+P%%LY=iH&6Pv! zAkEXjvWI`%xhXsQDjVX~Eb#X?SZoIu%reh1Y9Qaqhj;ha&c<~26p{BB%ooAlia}H+ zd^UK?+|FhvXzVAzL%uu;<9Zyt>rH3_ihGhFP9D`ILgJ+OOc(A8o(Q zo#DBAfwK{D?#(ul<7no9w`-B_2=b99(gZ$1H4%+I0qgFjb1J=(&oCTkG};5XSSX5w0zP$PwxY#ator3N zs~Z!MR=5w*B$!oC#Ml$+Jx#n)hn2p7*225dk}jg>F5BUhXue}DMwk*Kefz^%T6466 zldvp*KBunPvBJJE~1Ea@)pBfAt`c{NMn^|oH@CXD@b zD^d}~Kie`MdnuCNO7l@VVkqeD$rGaV3w91OC-n5qi7&i&vrBZPubgPe?qsHbe^*- zDoUL90dMFZ)kj8cPUF&_TD6}p8InJ*c2)eWM5Dc90-BB)``9B+>t0ikXhVmE$s3HEOy6dF_y*!x`hx8Z6z8+B1YQM52Z{;lgC)??b26xxN49>~Gzu*t z&q$*HSR5`{XuVwgrb&x=GkW_cyd7nOS5-HPeFy(}V_q=O^e%l51{_DKFw;<>lz1V$ zGpBF#_2C9{f>(^pfSm%_hxR@b1M0Y_!ShkoRXCLvV&64W!+mi`o1lH!*+ z4wSl*qn-L;#kIDebv)*Xg%+_)XwC2!_=FY>{%5!+`!@uwt;N?wkIRvXuCRtd%Bq-& z^JFf?c`|gqOoo4RMjvdtwQtfXGhc+-6%6e8pvpqu?RoG6K$ETT@wn!*4U65dMgJdr z?;amjb^U*@Ne;;*1_&5oz!VP@F%uz>Je zoU@wbyzTQ$>gAmOQn{5gb~~SO1`=lL9@iJYt0TU!;p!_m zzl}|#R-x7lP^+FiLH_<)#Xg1|NaP~;r{WYX=Z~n;Z}L81Uz{K8NZ>m@ck|_&)^=sF zIdV$pE01}nBkf-q>C-9Gck+(95X!x5^xlSJIuv~B%W(Cy$CI~}r?ppo6X^=M@k zPW4-yA8)Iy&{>X;PMens0P&mD2YIm1af{kbpPn`}?``{(T9w%w-s zP4%WVEF!9w-<$C+=*$~fg564nw<4oGFn+33cD!KXPapCnMpSmHFOElYZ)R1_XH{-% z#HWnAf+q)>PW~+Cd|LkLS63!~GdWnli#$q}_xq}xvpt*nM$;(lqYuP&F1Fy`_SCo) zMK9vtW$yZ}7USiSrB2_JN6M93|LnAdUG6v}ZeCF`?*wSwYTYWd_4(JQ_Q>oeBCavC8{ri}DcX)A?Q=Ypi4u9C% zA@<`1-Rf#YeSIggHgTCc!Qjv`bu+#eMb z$-U~9`fk!4wY;uot8iu4mei`)RlWztTkyn7LimHMuEDwWAxHjJ>j*dVEw;RrZ@}W{Cg&PvM8^{Q`YoeTRn zl3DNLdGnwltVXM3N5QD6QKNpnoi$v&K7&b#&_ro&@SumuP$&>)CPr?VaP2S#`T{_V?fg zEiQ3=qCNiaPceJk5;f>YdZDOqibpV`zh@Cgzc@v28^@D;^K$cbs z1yY`-$2cw4%v)M}W0ouLtyWPr4i(>Dk5MfechBFC`Vyh!OZtv1FdSv2AFXN>j>9r4)ZdvD9A znOVn?Sl3t7_gt)rl5uO)qxOP)Wk-6Pnr^bG)~J@;wI#WF=mab6xY$u~MNU3wQD21F zf)B|zwxG?WTZ1Bewi<^j$6`HgvqVHjnKYh{&fU`4{>^anOJm1;Y6toBH+6a?K3;93 z%+}$rWOq{L6fBWPZB-E;V}U!YFCxWXY-TB~NIB0JKR#F=#EiMjf%g>Nj7ji2+}av@ zYspsp^ctB z6G_Qd=^i3o@2J`{&tGrty#uT6B%AUs?i4jV?&VV!th5hF7zaGf>$C(5k0X(gIN{!9$K4YXP3TSzeabe7LN++(a*sI~^>G z@MTS`t6_Go*}7;$Jt2w@4(Kma6#{$y%kpTB6R6tVVeM zs``TcH31!5?Jw$$-FVCr(>tju;^ydel)%%~Q7^w5_ToIety7E*>bg0l-zJ`0Y#AT<~{Lo(92^>1g$uXL(gVyLQ&t zU`Jb?s0-%Yen{QEh|sz}@4K6)*n?iX$^LO-Sw=@h6G^R@;CB1*js{BhAX4dW7`o!yD z{M%Sse@-6vZ4KvYm-?VRv+g9do!lB^lpc&X=}tw(hrzFVl^AV?Z zCwEHa#-VlBw(fW>oPRsT%^ny3_fLH4$%l-Hp7`TL@SIS@Hf1+?|GLt9doH(CTdcgp zfSA?ShjK5R>weBt-|wpCA7T7XTR-nqDw4S4CmCz3u8i0BtbTG$kmF*_c3tIKbKO>5 z#h$f3Z$npQaS63eLXXopWynGQ*?cC)r&2At-mC6@UvY|F_fMX4={TOfI;)9#NeAtDLqacR6;fu_B#3DL*U5p61f@P|lU^ zcg%L$*ypxmo>Y2gmaocDloDc9G)U01<22s0n(+4nK3%VJ>d&eAGN@10e)YBpX4NyX zId=6m(eP~JIY`Q9u3n+m;4EKTN01)jQhEAa53E!VRwq}hd0Nk~VtcR#)!mw8pOrD#pG}>_GTQ%Q>W_0}t)EhkP(y7q7`4pUCH*Il*>ODR2r$6y!@Z`DGK7D;= z%A}Mmc%1e6r>mb?!+cUg8kNinqS~?d+cUAV;Fs0fB}(zbY~9=6+Nx(e z`Tm9ViougeeV9FgZ>qM-?pl|~UO_W>($=9$c=_9#^yVB^{QcPXef;^{&!10k3(e>k zvioTS00~A7^)!uVxJGKJ7T-o+ zRtPP!+ltoSf5loN(xQjfbwXl0ZM)y;uaxz=1T(6$~F?-$?UA0EpW_GS`hfSrmK5czg#s}-Q=$=a^ z;VGfM>csOU)|e&J*P9ZcTK(Cz5JUR^a_vHcpOex~l~3+XoNor~*UG9FI3aCm)l(Kd zW!Y0Uy9WDpL^`uoz^*K<@8$Uyvn=d;{*%^q+iqm<8&%!PGq=uOl^b`9&iHxSp3@e~ zt$KzbLg(B&>JCncVmDf`J8JmWv!DO6ZCn!1mY8R;Vm!C0&SF*Vf)yLPHfKr!y41J9 zTY4g^8BTc#pX3}MV0Ba{#P?f6Y~9g<(s;8`kghq>;6W>{TjCzIKha?CR8~%9yHw}F z%Fd~tO;k@NDz3Pias-RMvSTU>rn0ZQNRoHZ&whyyC+qBHE=$3pExpjR?#12-6i`Q=^pYlL%!+yYbvdCYWmDqJy z7P&Jl=GlM;wvs2)zNx&g*P&tn)Y#-DM1mTHua6F;AJ;4&P6ygltieEl#*6)?A_GcYJ4Xj{^H;MXC=*Z5C{IO zo$Xm!O5^L|n4S`*Un#J};SH*0XnVH)O+heq_J{6E9fR>o#}2zY5zk59JvnFo1F3b_ zXQtIzX1$ZD;d9#xd5pA&d0#&s6WK#o&pm~VeJ4fFN*Y_p${roP=v1(AzL9LVxo(G7 zi{PF*??|>sx_)AWE&j08bqnE0s0g#2ED)KNV%4t}M>6{blR8xIY`+;F=3t(P5#!|9 z^nWgCHG*f^se|)%HK&E^YV=qfc08N#kHm@)Zx3Si;2AJDSWY`i_SUp01Fz029nGhCG#k&)*e}PLEl}ydF`hRc3KiY(nCZm*UUlWZPsequs}k!X zrRAsKjgv_)&Nv%$swA8?G%PIAf*(gYyLD^fmg8+CLie2v`J1Vs^+juY3a^eU#gR*{6sy)e zF#ayuk!IIj%8nb)4(V3>^Rf;S;$Jy=E1V5;)QyBIp{f~>A6z}G2TKx;2Kh_3UsVHi@Ct zvyHv%m5yVvJ6KtHIYY1ods^u?dDQ7pYp-V4hpCzFX1k5m#IrnyXZV6`H{07#f@is@ z4_-ne3AWvj|H%FJh>@+mRgTbIdWL4dP;j#o*Y~Ih`<3D9txI2R?H-4Rg1vD0UG^vP zD^u=s*uo>Cdk)P=`6;$e8!Pw_Z0&m8%f5F;O-p&vni*+)Zz{O8w*y|vUvK%kCdYWM zlAPR#met8#nPPEd8E|A6u$onCu|9nTD-1ohPBS>qI@CdCr8Cp*@DXTzJL)T}Rle`(c!%4hn* zR^8u!5#EgIJzJg2JH;(Cda&N;!El?0e$;FhN8Q#?-Re2ZnU2Nt#nuRKkVn0h|H#&F zC->5S#W-x`2}T&C6`_mSiVdb)AeAKZ7I>I6kZ%IUU$_h0-!h3Y_WdG*A-uT(*tm68%S4e%KK;pD<^;8#~d$rkHJx7`}|dsTj1+IRyac6NMDf6_BNEF`*qbtQgduZ+98{jXc#knQ%= zE34D&Nm*Am8fQ+?d`XRZQ_x@~r7PO3vgxG8tvYR-W~0Aa4XX~jX8aniq7#NYtlkWs zVt9bLUa!lsm`{t=^R(#LtT69=%WsYQV9WFLp)KR9jvpu1uTHXBv+6?XH!ANuvj^~# z3YLhW(N|W_V$J9or{ODJm4ZEjo&6o0Y)DXu$hw)EA)0%@X)Es=Pa^ox!ZKAFE(7JiV%rjz?5AqB` zGj_G&R~5gicD1XX6t^X;9Vc7CHs8s#FJqTjofm5A^X#0t20XSCKi3VriTSP#o4vA? z#n2#D6-?g{*+%I!aYEFjzdOlyG7Rc(>@PokLrmRYrMV~2#m~Q+y3x01{dfFk zj@&Rkr#E=cw6lL*b9K0!EHb=2)cF2yV?7PUbI$ahxvN1BRemJj|DGPSxIet|hmWzH z4n})@<<(JqrDBx*N%XFgl&g3}1V{DSaJ$}IOZo(K^G)HC0$>uhk7~bB(9)sy)j8b>`}rxVo(u zw{|c*lSaXj8i(@H8mh|;y@brS#i(6C%l8qPT5^b?C4c@`b<){}Cw`Q^`40QH4A$mb zY-ULL8f+xon&-`Ve+K%od48`>@74QEc#l96>JuB@z+-9;O??PxZAMgNectQ{Wyy~W zRbELC9lPQK`Sc~#F1Nm+$Wo_7zViNO-0{33o$ zNzMHt+Us^sYt$~JH~hWSv2p*QcrUck)H+N({yi-cZzLtl7i+Rs^{k$>igOW}h0deS zwi;71id&STKde}Q&hf7__Id8c?juGrL8ZE$lDmUE?_^XAopNF!|O>q%%IYBy!- z^PhK2Vwa(GEXBFzw1qdJElrn*WS$^Y^!>|EpW01S&F0BHa~JV|dU8+gBE~~s`$Y-R zXNSK1DI2pQ$0m(YyNFA-CEKf^^LRlgYcyvdo$$jtTTsmt-<_;cgxe9mK=?Z02*P26 z>k0b^vvx-u^zRrHtyaTcjozx?jFl*RSy05aj=X=wHI!dGgUMSOFB?z1skx-GRVq*B zw8D=*-2Slr-GZ391#<1hj!nD(l@>DpGt;ZGK2KTZT4BrQd*j1{_2XN(DuKgd|5iF1GXlJe35ox=%|6{wWM$Ot0Ibzn1ps~S5 zNTmwvukkj)Zu=r;52!YE+NvE^o0-;{K5K_%top4|{(6VRE4m%b8O^`lvEqL9&U*EZ z^J#o}LH0~rEfT*voM$;^^A7YCIlOT%^oshn#}j=Tp5aCVk+ha=wl$!$0DZp?7k zN9LD&tuc5_SzR9wOH5HU?dxcX7-I{HxYyPRUmjJ@>qFnA*7st0dr{Oa>TQ%!!F(|; z-0@nh3jOXjYMA|}p^9=v_Xn}Tj{3ay{M(Z>&&Q6;+lt-of@5snErahTVuS3#jz?lM>n?2%;|j+v{+_1xz0-4Cw`h zQ{6@V^t8&t^1`A5j-lmtmq=c5h1aDQ6_@KScV4l}ZRXI;0!Y)h++9`|K0 z<;5js?$W95(x&AWm$-{`bxSwzCFm7JlZ%QUDbh=dOBLCCIeWCaJ=(|`K9ck_zG)Vn zrl`dF?XGar-(JQK;vxkG_6O4x z!*zG1JFh|w2ioJ-^DBz-4AH(vu^?RTFDhkB6ciOscf0g-|4j(V^A?vGQe+5KzZT&@ z*`;o$OQp&$EuNy673WQMmy>sNMP8oU?Q$z&3p7FZs=F>dcba~C8S&}PLa$2D*!R%k zX80OZ<`qww;w)16%{DwzY7A)A8D=e#;w-wOTrYK(SCketbc$X+t;9{4#=SCkxn5K; zC71p!&i8k*syR^R4QPiY>b{vj&*LmAaQia`N-CtXLPoLbGg1fYDxj_@&dNZl7WFmK z-5OtH6|(bjK_5hAX_%>-2n<$dn5_vzoCD~{`DT=Dikal8se59G^FpB#)izF7CNKD*&Ane!kP zWkK~uxu+CGqZsu;$-@+5t&tQpGnkX3(Me@Lu6tCu%vojSPF7-P9>c24&@vRcGP-4K z0~ZZ?jC`!|&9WJ*ev_CcS(??Q#z}F7IquDR{4q^3&?APtl~yQa!&zPdr_d{Ml5*}J zeb4Roc(pk7{m*}C+1Vqr|8p{xqVje-h5m@N*=b3s`tYQbjLZ>fdh-3FAN>A2KZ?fG zq?{x@bA+CrnLhG|iuy6MWu^{G`~EVT-l3112EXTbU@9`ZKv#_ao|G-3l@PUvx>4|f zq|BVm5kqctt3}+8D=+*05hH$dd1}=A8)nY>v~K`1aHDu7a7D$;1LaN~O+Yv0vbdzg z&HSgP=Taw%kM4Enn{wTB7?dgfqpU2y!t0%;=NA?gmU-0jCaN$r24j%>$D$hItmoz$ z)grFRkPjClm49^zEVXK~FeV9Af`2T*wj0eo*-68V;%@h-AljVxO#<-^WnFkeh@M#W< z)(Wn*TVPMt-@b6*;FA=INzMWm2MO@TFO7lewl*=WCen1N>1c zYV&MmZZ8_Y(SMEk;Cig$O=)oajlFej(VL=6I74yCke|sf+RIitRRhi~p#R={=TYYtBxxW&%Vl^F$ z#uhrTe{8ytDq0&WoZ`$g^WCTpW9ISiTpHFKu0^GH8+%sfC9m2$6fuve;UCk}nCH-gE6Th2Wt2e~xXFs36gyLPiFY#p zmyoGxylHhIi?XlyQ}j{&UPSq7H&^P;uP9>-`{{T@86`{xx}62i!XjwPb-MBujVhNj z7YTM7`$c!Yv%-rd#$AXBMBOh`n+0%6KAT(+Q8KZ(Ts58~;vShbVr0(f`|+fav=Jkd z?@u4CaCq8qBRo2rG-+AcBXdTI1lAjaH^gUWh#YHi#rVUW!8iQBQ(L5Ina9EX8C*sG zAzjOS|8ItO{s-Fj|A+fOhSvE%P{y(!xTne<=)eCG*mC*t?{LZjBgTcr%RhL&yH*)H zmmj=uY@y2N|L-kB?V5h*zS=o)-@-NASyH0r&w#Zp*5#fWOMqJvZcf5zPA)wVuZ(qp z-?}nMBKrPxexseT+Nqtev#Uy*GCIqSNkr*u>i5W8XPH|quf_(Sv8v*dlSZfAW0;PV zo@*=_#-wfPi0t0|8xJ)vgl7iUV@0)L@-+>(YPL0ptfY9|PQ&!6G<))}fz_4G4E`5T zasRvghO^Y9QGuwR1#D?L20gu`qMQjvH^x~4tA1W_DZFMuah5ZkGAFr<3d%hysUk_3 zb zpI=yM=!T{c6;JNk)!5jnrnIhG*p@VDbr5W$C8Dx52E{kh&6CWwoS} z)nKSpLiuC!270ks0hrN$Y<_BMlGR>mPdESjpU}{<41W=JJ^V-62U=`g|0hA@$=^`D zKZlF_u{}_nPQ8El@CS8l?U|!<(z5lD_jP4f3-l|Sm4q;5hs!H2DWqrf3-i%-jS0-0 zPF0``i@JYeN>}%l<<-!FnrtkXDCx|B17dEk>~ni%PnAvmkD6=9MghvkBZlp;P?-Tu z1EPPf3)my4n)b-=*ccHSql^gjlJ;E5T%G;c&5ynO80W_X5Sx!_31Zb!1*C9DqNFNQ zDU_-SjFP~diQ4Tk4CVAc5J2kPc&{ZuIy439Y0fLZY3n=j%H;Qhwl>c2^pu9pP?mo)L^%z5n?Zm& zr~7}?OW{hjDB-Y<#Y}!hhG=fZ!e6wy|9n*zuF!Z>M@vxIsV}|FdzLOzh}=d zF}o6F&FtA08N$W1FR9$B9}N}B%|4f!a;FiSuR2i86~zW`OG-K8EJl1-RLx^`ZbPiO zcB^$=t>M?zp+A2k8cysQv}b0Yvf>J5c7Y_rOkav!UhOGwm{!dig+<1mm~xwzXU=5* zxh!=oOr^~VYAi=7+3NOxDkqSxSuxVT#UCWLjKi|lBF?U~jFxeBBhFm4_}9OFsdOsN z2sV#1L(StFva26vUVnn7>HNQ&)xlAh@z*q+iU`E>vw@cH#`XVhItpr$t~smB@|wl@ z>u4UwJH7loFzCGzeJ$fu!X|Mlzbtq%@q>N*oq95H#d7|-KAD)kxy$4K7bGIXNH9+g$EXuVbDlL$4UO%RvXTzL zBoW)NRJKuB^E1tiYA!#`;u_d%#2R`1_XA}#k27u>@*U1%Qi#hAR{V0) zO=Frl?ECdI z8tVN{d6d&wg~7+bx@$No(R%-3gz{6N$HHZ_@_r&dA>g1uH!2f?n$mMQS0-qx_R4zQ zxHnM81PytcWM$fRnJX-cPxHFfj@UFsH&jkT40>D8Z1iQzxTcKax8i|GyOPN!6#Piy z8}c^E+KhP0Z%%(%IcCD|w7{glkyu5SNq_S=vp%DY{{^*ywwg4U@~b%AoZ=k6j%6Hn z(beDKc!L4L^b%6(4b8z!o1m)$X^z($JH5FMrgZ5*9fnasnUjs`uwR?FT0!7ZOX~_NViFY z9w?}ZjHqld-lU;9`whBpl;=i?1AO%N)pxoo(9Aw9`Yh1+RCL+QqLGX##nu1V${P=2 ze}C!}W|q|`SpoKZAMH2FbECA1I;9!YKy|yNxCkvE{s)G{4JkK{7tMKF4Kx3wY>Yi6 zdPbZ%6E=@C6RJ4Hf1S#QLsVm{n|Ek{_WY6pr@>*gwT86t&XDpZ6SFEeowWbk1{pM| z0)Bv~!0CwMDIQs6xG=JUp$7YX_L|;TeW>m};w)9>%mj6UWa{KtqMYhr$54NN)(;ic z>o&THgHX-|iVMpOJCqCSg!w-TbJ+>Yln(oC;s!ci=kC?@1jkvcHpg)quPGR}L5mtKTYKh37W8 zO8G68prBy>H2+_#7JniC;V<<6<{!`Y{eSwW##P`?>Fj~O-qKfeu~&+HEUzk$w1#8D z^mvC&nqK~kaT3I5I1N*_#VWU9-EJGo!w-BJNLjoi31jJQ2wOtiMz(8za}=>fC6!}~ zD-fr2cUr*^XHv>&;}}Qu-uAvfy(1Ibcq>X!wa641Ezc(^JP)^`s0#UvgxJpkm&g2ZvFfDO1 zZgj+r?m`Nua;3#3rG+dddSP*1xv3qSM6tkDqVFrx8yjKthw_g!s4a2QcgpcfxgYs+ zWqQ5t0*rKJZuexE?{xJoE;5|2D5oVYs@Y|dTv|Mt9cD>k38nI2L@CbB-iC)H3>{e6 zV2Y^%gfNPTSNA`;p!lIJE)&^M!xV^VD z&r51R=#4u_Qu(w-mU^)#dQD5vv?;m8UfiF|mMJFro$~!=B*Q^ldDuuMQdM4 z%5x4=p)sJm`&U5*jLK!UY?!J;k29)o^!Ff>dE-vphrMdF27++MT`t35aD#EIX>nQj zSQqE19J!qyDAWAR)&=#Y#+s?lO+o$ZRMw< zZmBIaQ-vxlcal00CX4Dne83E5D=%)p2RD2rS&|DZFXYVIoVG@nPEngFe<-DycfUC$ zQ@iri$0+UZBQxW0q`lCiJb#&%5kSh$P9Lq8mALZ|qr4`wV&FLt(_+*xWDV8b<>ri- z`Ptx;A&4W?pioWYDFZr9H9pXAW8P})LN%S>_+p+-FxFJ712dwbuM|KN)2S&x0{>L6{OhQ;+3jimsnt8JLHJmd)WN^L0C_@w? zU+Tmmv6LJ)T=<%p(GWFt!UTUt`-M+Ucm6)h2@s6eQE8csW>UgC3)c$&daQb+xTvq+ zTPoGqkC|Gme>p+|%||m(jEzTt8Yj61Au=uas>cmE@E6u_+Zaa;!@OB^Sw)HRLb;#+-wY1y<=1<^Wb>)Wu_R(j;8L(@qR}LjwpzyI2eHQc=ef0aq|sZ_cEni}TCb zh0*Iy!#Au+8pHn!lSM-&BZoo18{uH4%dN=IXOb;5*2^Z76H|Mc;U>v&FDb@nOi>ze z+Vs}|+jDN1PO-8vjbF5lM|_<5h$9<>@04EVsVFxX(I9cSx-m-?p}t{S@jvWP!U6_w z8{4D2gbmAa(@4LQoMaR;%{MTZXMGr=#zQ|IZZuIU1I?oA=vKC`=z2}1<`Fe?8}4ub zhrTd^`OQ#3SX^AFYK$HKilinL&XN3XKJZxSN@LSTWRBI)_+k^j0-wToiU-Qa@BT_qi4fLZ;`Ls zx7fGDx77Ev?-}2-zGc4Uz7@Xbd@Fs=`(E(cKY7+ z?ee|n+wFVbx5xJ<-(KIJefxYL_&)S~|eE;yB_x-o;OW!|z7kpp&F8aRqUGn|Q zciH!EU%l^&@2c+`-!WhvCb{=UAk*w2`(v7vE0W%gquc zw@3%+C^qRNo#j@EmY+x$xec2_SLr4{mF{x8^pHCwMtVvw=`DS*H}vD75xex4IJr{> z$j@Y;{9NMYE_~ANmO*ll43>K(QJj)1c^tdDC0`1}BZV?aCW}|5NRbo^@9xKstxU?L zLZ-?iQYq79x{Q|z@{mlFhsE)~%KuB5A-|HD@~BkFESW8j$sBoH=E@T?Po9+d@@rWj zzmbLVlq`~JSu9IrsXQ&u$g{FcmdgrxPFBkE@`C)AtdbXHwXBh~@>_XHekbeXWqCz@ zFR#iUWWBs5HL^iA%Iorm{82W^o3dH9NUdy@ZSt0E=YwlI^5@5(NDPj<`uvPb?T zd*#ovPd<xWJS_DGx&EA zvbWT4v%(F`{F9iXLT^vXhitsqIfUiO{8p+F9L)N|tyJ68UxJPgWSROeTw;0LBeu*V z{4ag;c-M=+oR}i^fvQ0NpYr*@Zl&G}!NX7@fv^g8!z9**>*zL%M89Q`30#5S3Y-2l z4>jIt8m}f{-5;Uv}k=R0!_VYDNPI-{QoT@&(~ z##(uFR%^5;g69T3&Ml*i9sJ1osfD#grO`+e@l^1dpeNLQo$EM1j&r{~2!8^-2OS2V zj6T#DgqONogs;YuCc1gsGaB2j%CnQ^+9MX$Eu*{}@;iq#ODk!2^Ey3&I?0L!-*6)z ztVyd&%(C^Ggml0&s596L><1146TuN+Hs}CdATH=3Q^7glJP=YsR)FikSHW6vJGc+r z4;}+gfEU0^nuJ1KXb3nMOa`eplzKyX3@LOBNd2MIADRzN0;hvB!G+*ra5eZ6xCyKU z_ktgS)DucQp%=l+984e`d_zI3oxv_3OP4hcOa{}zG2l3G5?BPz1ZRVb!Dqmiz*j)p zW2HUT55WWA3GfVf8N8}VSU67$v;n(--M~0-Aeasg1;>FC!6L8}oDI$ep8;2Z@GT6! zg>3_OFdtYn%kVeEGJLaU8CD~fVQ*-bp%G#k8mU?C94eMOM`)Jb9#|r9 zG|iGgeF^Qs3E(7<{0ZbwI0JqOUK7jRL7FACn^;nNfaxG~r7i>)gFC^!nk6knENS6j zGRXb(HeyNd08R&If~&z-!1Le*%`$|~`wX#Zmdwp!$=nSd29Ii%kq5*wl6H(d3sQd; zbZ1d-RszU};jjj zm=8jK!V2&lcv-XD4IOv)gI_z~*M}haGOxq0L+}g!WzkPrv@2^2I1yY1z69T^Z@hke71!Th0qG%cnB;oMj3+5B30ify!5F0G-B|v@j+ur6B1nj1dcCBnTUQ zP$l8@gg1iw!Gqv=@B;TExgP~mUJ&I4QBDx$1kD2%fXo>|%o#z<6+z4uLFd3P`Jye= za;z-DsbB`k(igl;lbbG!+;o-jPQtr2A&F>KkYz>F!CqiLa40we^nhNFr9_(nQlCbB ztvWEbb_V-^c1;Fu=PACOgp&!UgFC=ojQvxLecr7Y&YT<0oEx46=72Te8=AC+p4QOQ z=730>Lz+Z}h(v~iyTCn~v~RC2kY zmo=kbH<5llG_fbrg{hkKKZNJ-5l!x-{yV9EfKIn|2ST1L4Qd z;m6$rMea_}8E>X_r0_`aTD4`ttLqy^3>4*O;QtBxd+o< zLG)J$H~@@?U!CDs7fsq`aPU10zAS?;E8z=#je@VYR!w?Pehi zJEzmmnY1sP_Kg8cz;f^na5H!oJg-T_43UT`@FnmSkbaDyA6xH(AFRb~)*(Ny!WY`z zmUc%%UnKOk8z#~&3p@p$gh8kD~te{RqbqzDoEy@)U_YMS%;zMIh-rkiMf0 z`HBW#09V7`x$t*BxDs5YNvAlGP6I*up%eYk2|4J59N3T_8}iec{GG|)c`^752)&)5 zxAT7RApJ!9Z>9awiM&EzH|WzTU#I+TIfTa&9!q!vVffb#{^>Ib&nCQz z@LIz3pHBb%v<5kU1NrWQeB0^w!Ss7FNV{&QT|J2JL41#8;7YI_yoMaOkOL363*4je z1zoiA0bnYa0Zs&SLF6I^xrm`(V(6Ec9pEnT0C)(z1lA)@A;?oW7!B$m?deH-dXc^t z>HAP#AIj_XCE<&N7Z6^gNpIx7cRbVt`p-`P^(VeR@%;yZiNsGOemY_D^(S9kGV-1d z=7WCt23grDM1b+&AaE(T3|t4k%6!#_`N|G%2X}&$ za}VVVrr!qBZ}*b!UeYDf{zTfJw3hj69ekkPWa>@Hf)6>2^GL>dlqSPy_b}R>M!9K} zn?`@7(O>BU@g7V7$AJ?y8A5*!p+AQV0OP^^;6d;dcvh1PxGjx&(sjN{-b zFanI!WYkXHd%Rl{wIj(10lR}SAob@^e~t(AYI4`BB6rnjGR7e?#szx85^yd!A6y2~ zk7JPgG06P`!kf-C&;~|>L%|Us=^h~6FW(UP zq?~at@OHA*nvAEM@su-u7?=f40*f@6K>i8jM_-f)$lHX&;89H;>MZh57ZCY*C>w-- z55d2Oj)5mMnb<{SVmELimxNPqH1W+{9FtOu`YGHH;= zq(rb1oB_g*N$_LRHgE?>`bngp94|6?5I7%PsEOB()nEWf*h}~qSt7s4(WDHyF59I^ zIrWxPZ`pM)h%oe*Lx05)-Xw8Mlgin=>1{5Ed{iPImC#cOJ=19KG}=22`lmtvG}3EBb3@l*mjQVcPdA+BXaO zXF>n0d~g!D3S6tnW2AeGbdU7|kU6^I-@h8#Wye;K79!sZk?)1m!I>cPybyVQYNyCkyU90! zd=79PxB%P?ZUc9LduR{xI1_oS8X!^?4=w_iYI2%(pI)XJ7L_v^2!GDNpEK74d$A^e z9|un4^|@V8wUNVfLA*&R1f;xkl=lz#{15p25BU2J_goX`Tnu7&n9!R=Nq`O4AOQgF*x=W<{7wP^*y80U4-uMQ1 z6g;lUmG&Z6I)EdiZ{fv8K{Hxy&9)ut8?FxLm;sQP3Rq#4|=l~x&gLZHL zm<8s5$lcYc@Fy4k-#1GZ#gkxva^vIU>)F1&@HoG+CC+SFF-OFIWPe0ncf& zoOH`cxBN@+q9!XQ@RlwII2W7`UKe>TNR#I#fkogU@Q5ZWcVIQ!rO6)>ME)=s91BhW z4}(WFS)a{YzQ$Mzsd;vOW$6K^x`yA?@NBQt~3H)8U6U*Cf zkbYcBKQ28Eo&w?5)9~vV`11_>dDadc^xHEZ5J^QXYGn!FGq@?N|XAD9jf1;>FC!KvVM5dLq3|F5?ZdA&UdU9Use>yyADa2vP-JPaPyIJv{JtAX^x z8}!2;kBa>9xF(yJcQ!HaY@$Cl(I1-_7n>Ltn-+qL!B@cbAoOj5zD>}#3HmmD30_2= z;n$n+>rEZ(4h{kn!5Lr`2;bj??{B^YzM{z%_^<^&)OJALJADLLXO1Sj7!SJ`54+;QL7)fpf|cM55Pt81-@A~HUC76K*Mt*E zO?Gz%yJ)f}m4mPhP5w+hf2N*&v}+&j+II{*0bT;@HTfV)pUjcW6 zdo}rt{``#o{0u&S2A_|ViyWy0Denm79fhw);p@>vFco=x0eM`FJX(>*2(UXC1H#Yc z@N+qQSPmbSuLEC2UL%p$D3JUs$iIU46)JugxCefmf*)r!`I9E{Co7l$4%TGvJdwQ% zC}#oXEFwMite~D1o4{J~T_RsS>52an@q0a__cE>rFs|dlWH23cfG)5IECuQBmGt-X zD;ck=z|G(`_yb)Bq3a;wgDSiS+{bGLaWog7Ec4_`2q* z$eQcm0q~F}FNg3gzi@CUI0A&65J=hEE z2aW)bJHIR0^PCH)T3w{Va)W3=PH?0I$f#lyr{!Q1QPoNWe-&FL@ z2NyywSPSmTfRDq#vET&eo1-G{9S6^Y7oZ<{4noi2O^o+i+A)WA%ws&mkE8J8jVR`0 z8}l*k`6KPwa+Ue))>M=st)F5b-n$AT`< z!~A)K`SX}2?}v-L-v%5ECWG|L`}E5vZJ@I~$T;|faqtOz_~bZvjrI%l$3g!sX#YE#SueJMXTkHdPosTSZ~z!jy1k_Pko)bq-vJy0jssVMt3cAdL%MgM>mBIY zX(L}W{OAEcdVvGM1o(0ezI+MNZ@cNYJ>1{J{ZGzA=LOmmNxPzG$CtF{BKck--z&%m z<-JFF@2vx0C4VpS_XE9P3AhYg3GM;+QQj+*w;qJn)7y9->-=C{kN9Q1~3CQbUkobMXe*nKffZrd|pC8emADkonCE;w=(J`!_ zi-=#!x_Ov&^Qb2Kk-PoK-Tq-<7B~}}4ekQ>kZvvM)@gEJ1aHXC2IqkDz#8xkupYdo z$zPC@zYGAUg3~qQO}d8&A0m8+@Tc7Wl<=p7KP7ya@L|G-2_Gi>7uxw3+WD7FU@f>C z+)IAq4-tQe_(Q}WBK{EZpA!Em@t+d^De<2Y|0(f@Pf^}k_}?A=#~=qsk%QwPa&ZK? z_>Zm;}BG)-WGTK+YZDB5MC;e zHS~QAeV07!)4ZBoMs6-6H z=csKRnx&&%EFIymZxk z&5}g^B=SFyFO~;5zZ^G~<2>3i?jU$rvy6`x%Xl3mJf844@{c3`1GS{z4qgK5HH#xh zERM07#mTv|bE;;^4G~LjILJ9;F6WH7*&z3GJs|bumV=cb=aaefLC!~WId9Fq0CGN> zM|<*UPhKyupJs8tDi(JQNd0c=cOM0hYnI}RVky3=SxOSbQZiVx^tvXN-lAE0Q-5#j z?@d4SPT;(@ALq63FB86HjvyRI7`|tw6V4_)kTCs|Ig~K`zOw`8_R-*Ma1r+05bU|( z*l`)Z>5SjjgE*f_ zOvO$!9fZDm=&Roe?xz2^e;4;>PN%&#r2Jn|{;#+{llzZq zB9B@@`1~k*ew6-rl>V4ad9x{RHuK$V=DXRz=``dk!SNg81nxM5ez0ZUi?GpH2K2kn$@iAGS&*a#`UZ>;e~ni?H|7 zKhx-+@yXcP(?RZ!=l*Ntdu=x3Y#8G#2Rr~C)+`B(*Mv6+M-q-=zGK|SGVWuUhhm8z z&3rMM`JfnjPKEm@6n9U(Tv{$=7oX* zAn^sndzeQ(j9(9Qc(TZsO+L!W!apOc7s&X|N(PsLD?#YX+Dv&?%Ig5?AoEoIG5jXZ zgO|bUl+XNFaE)?F=b;_hr^J$dkudX@hxyC12i(W}af12d41P4sH>vU9N^mVmJ*l)e ztuy{K%%f@3!I|J3a2^Q1(hh@H@uy+lN?!;r1z8VL@*c32UmkHfs6||h94Dc;V|a#VYFvh8|YzO z8a@G}{NXNeJ_udI7lY4`FN1u;K*pz(f=9p;j9128FUDQ3cyJI%eZ8o!_Z-IUJa99( z4LkrI0?&fyIX7qAMKSK8O2Mg|8@f0*^so*ve$p5}=~mW(2rvq?fy@u-%nw7m@HX3S zAmO2EzKEtiopFAO@qU(Z8_u|G1KPl75I)R?50B}LVhlos_>DJO~~JkAd)I_IdCE^)db* z8w1k5$7tVUMIiipY(BV9lR2cHL;5+SpF{dNSHbJl6GJ_HXcy)Git>MT5xh*j@MR`^ znSGh^uTsuZ%2}q#eaIGem7ep+pIq&Ptd0!VW z3(NtT_a0>4dvFt23sUcc)cfEO@EGL}r2GVMDmYz}xs*GXa_24pnZKTZPfx(7dC)Tt zdgi?fGM~+(J@aVKlkG*G>;O7I=Cvm)LDrWiY4?+~dwzt-{77&dI1!u<&II>>`#{Q{ zPx+2PoD(KO2km*B_RQ@={dVv}@BnnofQ~Ba?M1!F$Gk~k5x5^bNPV>9N!sz`3h)Ka zA8GHywD;j%;2w~A9;Tj$FN0U9uQT;^;XD#~%0-@X>Azh1FE5p^1Y~I9;=YUft_$EL z^35gRe9kfH4=4TMgda}$;ba^*83(z^5BlQ3bZ{u>0lgsd;zC|r(CLCs z*LrXx2tQo#!>x(9tsvvf%{X%p29v=Ya4ZOanU};p2b>4OS2uihZv;1iN5SLt*HHRv z1UMgDNPl&pzdD1^I~RJN$fw^X(NB~=kMie1*F5N&cM3d9f06%5@;`Y9Jc2x=A`clL z^~|RpZ6N+-35;j>H4c7NaKD24)$~s_{ZmbO)s$Dg4ty0n03HIb2~WOgvN#SL2#x@= zLE5#Lb}gnq7t^1M*MjT79pEmI{#i`_ETO(7)c4{E^vN?Ia`Pf`v${J|ZVZS#u0|eL zzXGn;WG&^arJS|Uy%xIHQqEe+`7QnOTl(d< z;b(Ob_e(+gp_+a;;b0kZfyAF6{=`A>F#BG{$4SP=$trLT=YE?w_p1fT_bvIpCEd5A zyWWAfpLPayuscZmucKe|L4WA87(~zL!~U*styubQM-Qn&51B(e`^Y{U3A5h!iv-t# zq|3@c?-_<(gFaIb0j>gB&pn;dV_2uN&?~Zb65oON&LH|y!3x%K*55?d-$e9*#F^*~ zXV4qYu|}g83_GM*h8BrsXer?fgwZpGA7foUp;=PNmr6eTVl4Q@SkhRp)6ieipf3&j z(!K;Ql8<_ZEd$Y?h7I_?D!TuWs_#9H<6qlJ&&;feYi3^Onsa6+b6)41G(DNOn_(d$ zCJ`edLL$N>BqG8au^VH#urjlV5K{?@h-fm+>kWyB2nmS@31<=#5)l#+UAYhcc=7Zc zzn{IcoopK%x3FQ3>iKPLLTo`h+b;d#2%^Ryb}d9^(2*A7;@|3s4XXD!p$ zHKMQUKF;79&voN-jL%WGIqEj28f&o&dr>{*sHfFo^CVyn=3*4fu?1VveqXH^BW2dv zh==e9-ok!V4-xecnMC_HqAnxqa?K|FVwI?l)~KU3t=MM14)eLct+o$V+Xt)di->&@ zVMl}=3p@3%+P4c|;wwG={D|d8>`Kf+^%Yx${EFpQY#r{vy|^EbU^B8mmi@7pu?uhF zZ4{?iaf*F{&u|)N@B_~2^|xM}_2R4-XT7*WEXK`fpT@~koIJ%fViU?&oP5RcD~?}r z*YPIa#d~O-IP1i{Li;d|zhVA{lW-YkVGb5!32wz|+=Y9v2@m71*n*d^6ZsS7Pxu}_ zz-RazU*lW-zYFyL#^N$e#T?AV5-h`Nti?UJ7Z2l6Y{6C(w@=0GQ+fVWo);#{N0Qg$ zUQgg#e5ao{UO#an%6Ghc$BR$A_{8^OUnp4A7X*uL-~>*Ef`oGYqnq#`9zy;k@F(FZ zjytyym&M|;xE(K|d@Yu*#r#^#uf)b6NNhs(C9*H^0X_-^OQJ!rq#V`v67{`g44>kh ze$)l}QfqNLwqhF&;;{Zy^L%EW&-nEjzmj5|m&9W=*5WBVgX~CRN3u91i$gMhllhzM z{p9)g-{L!cz-jt`Gf*5p7l&nGeXI#sgLQZuPvCXD84AAG9Ry$0V;gqhFpl6m{16IK z&ICb9JMt%mKg;EDxjZhn{&MRtXZLb;r!LjcnvCiwRUM`BE0td>*t3E?D>ma+R3|Ic zN!nKZuGM%1o3R_OhJwHC4}!ln>RZm%w;aKncpL5Obo=^C`TA16Oc`W^kv$pg$*95_ zY{J9(otNo%PQ@E|OMh&Z{@5I>#42pWCY0xu^1M?1SIYm_;__ zIu>IIy3TVqSnIy9)_q}ZJ{F>Utd$RczZ0xIi0Wpox>+mkYsEb;QD1Hn7U4Q%?|1C| zZV&FoF6_le_*kE=>+@ZoZ{2+B=GzDP_Cfwdyo^>#8+Le|O#Aw_-Kkz+3uu#i2kP z3O3?q6!!vgFL;e__3xJG-z`Jye{cQo)yenjb}jN z#r#=P<$he_KFXgY{v=yJ+4`Te^K*8lOu4^JyFa~he|qhHQ{;ZL&iz9^zLJk`671il z_9y?d_@DIzpV^0<_F=buCcmqu)cR6njOa9!agbZMS<6q&!s{6FsSd21(%%a7tx+~v<2d*vrpe$wTE-=+MHdL8vTsvg!a5Wi*Omx}UK z_DH;b6|WX?IVLW@gn}*n-@^Y*9~=eEd0p=HCh_wALhr|`k9hU5C`sIwc^QCMZ}FXYsiUYmT0bjp@5M_#%H(6i&*HU9ympG$Zs%3$ z&Z}19V|)?{Dx&^(`EnGm3h}CNUB&!$eSUufCvYkh{Ifa;{#lDhuo*k>k~s5gA-@W{ z*?pCr#uXd4MV)R@r_S#J=Xb$BdYzy3;WK=W{Qn34H;UIr@v4xY3i+v!j|%yyFn@*l z{e59jF^J+&Ar70v&esy;)jaX$S(G8Knew_oUSo02zF1&?)Z%uZWAc2CDUfITbBX=A zq#pPAT(aBel6rY>koSY~o-OYYc`uRoGJK71eO~bX7v4`{X9_!)U-r46%jW=bNfnnB zf2xZi&-nz;`K6xo1)lRo>co2K)=S@k>i$dXeQCW6erNFet3B#xujg-;=WmWWdZLb= zsUz2a16hrPswC;NAu78QI)M>stEyO;& zf#xYQ&j#ynu>OXtcwPOfzjF0gehE9(6+5=DV+*^tu)Fr2zc+Y*kMW7WBS`Rf1WVC+ z+pM=u9c)tv+xBB4vS%B6>SBYSE*`tE7oX!~C}@!H2KjD^1VK|CR$`U!S)#sYDfc}~ zs_$9S&2!v5C!EK=bsqc9dF(Rhv8m2QA37Hubq-VG9Hvg6raC#NPTI}WZk~3p+vi`i zyPe(V#o>IR{#@%`ue-FF=V7KiO^oKA7 z(=ZEjumsC+Gj7!fG@}pbjdPPk=O#($x&hY>6krjubAX)#>SaK^oEGoX;@zeW+SEat z{GOBFbLKr~-g7_WE*!!8IEB;vtL5Kzl&5xiY9GZhgVDEd?cQk;+c)* zxJmpriC-l)ViW#~E!c_OID~i6`0K|1AwPe}&mUv>R6NC}UwrzH;V;;Mm+&UuM&tU8 z>wkjJ#Qmkl_s-Fhouj2- zI<7>1+~LQaowyqh;Sn_N9rNC~h?jkT>-r(r59MGkZp6)4g*A8>k76sf;Z?kj>>gtG zkh&aFmw#FBFY8T4oNMJ_36`PvC+FXCZOI>#D#(HFD7dx*kaLyTvOEDS6>xy_?X~Pce!d{f$EAo3~5?|sQoW(g`XDtW? z-Tdh0N4NdiZGX=HPoUk_z1pCE^C0r$>bxIOew3?saXl}t9qOS&J#;+AC-@vE)wA&z zjK8*3-Bx2GHsP<>g7SM!ey`oaeiYwp;`_gs&J$lD`~JtiIq{kkuemC$L3J{xPUhP2 zA{sx}ABx%Md%k_W;h5$$%AicjrU>OxK{)1L<1|52G)*(~hGywK_0u2?(+J(ChcrrK z^fVmv?|Rxt4RnwW(GhA6$D9Z#L}5yxrIbu5#GVsuJCPBNIcbfPx56>MN6;E4FVi%! z<>X8_rUidD{`Uf}hrRxd`uyBQy)^&x4Px&}cAk7lqclcrJULDiG)1%Yo<5o*pb)XI zC4rVwGO@3PZ7ms;N!b*kJYqvj5v`*rmD47wq$;YRI@&=yX*bo=K5C$Ybcl{nGaaWB zbc)VUJ6)v9)J45?gKkkj4bm`;(0zJHqclcOX`Ci#il%9XX6ZeB6vKc*6sDz=OevH` z8I(!cloyU^EuwW4rE=Ot{A_KY0;-}Ks-qpWlXg=*@wauHCTNPLi7jUz(kMM8zdP&w zvv24S3OrW8u^zIA&8TI%Qdwb;-bq69y)tA`Ck))_L#kk>==udO*`%^_#9 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/moenchVirtualServer b/slsDetectorSoftware/jungfrauDetectorServer/moenchVirtualServer deleted file mode 100755 index 969435789699d62340951de416284240dccda8cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107120 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 Nk5l4rl$-I|{{$6L%BKJT From 31d48411dbb0e45b381a2a4a5ef708eeebe684bc Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 08:18:02 +0200 Subject: [PATCH 066/128] somewhere --- .../jungfrauDetectorServer/firmware_funcs.c | 61 +++- .../jungfrauDetectorServer/firmware_funcs.h | 2 + .../jungfrauDetectorServer/registers_m.h | 30 +- .../jungfrauDetectorServer/server_funcs.c | 304 ++++++++++-------- 4 files changed, 241 insertions(+), 156 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 6bbab7da2..575649478 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -103,6 +103,7 @@ u_int32_t clkDivider[2]={32,16}; #else u_int32_t clkDivider[2]={40,20}; #endif +static const int JUNGFRAU_CLOCK = 1; int32_t clkPhase[2]={0,0}; u_int32_t adcDisableMask=0; @@ -288,7 +289,7 @@ int cleanFifo(){ int setDAQRegister() { /* u_int32_t addr, reg, val; */ -/* addr=DAQ_REG; */ +/* addr=CONFGAIN_REG; */ /* //depended on adcval */ /* int packetlength=0x7f; */ @@ -450,8 +451,10 @@ void configurePll(int i) { if (i<2) { - - tot= PLL_VCO_FREQ_MHZ/clkDivider[i]; + if(myDetectorType == JUNGFRAU) + tot= PLL_VCO_FREQ_MHZ/clkDivider[JUNGFRAU_CLOCK]; + else + tot= PLL_VCO_FREQ_MHZ/clkDivider[i]; l=tot/2; h=l; if (tot>2*l) { @@ -553,6 +556,41 @@ void configurePll(int i) { u_int32_t setClockDivider(int d, int ic) { + if(myDetectorType == JUNGFRAU){ + + enum clkspeed{FULL,HALF,QUARTER}; + switch((clkspeed)d){ + + //stop state machine if running + if(runBusy()) + stopStateMachine(); + + case FULL: + printf("Setting Half Speed (40 MHz)\n"); + /**to be done*/ + break; + case HALF: + printf("Setting Half Speed (20 MHz)\n"); + + sls_detector_put reg 0x59 0x7f7c + sls_detector_put reg 0x42 0x20 + sls_detector_put status stop + sls_detector_put reg 0x5d 0x00000f00 + sls_detector_put adcphase 65 + sls_detector_put status start + break; + case QUARTER: + printf("Setting Half Speed (10 MHz)\n"); + + sls_detector_put reg 0x59 0x8981 + sls_detector_put reg 0x42 0x10 + sls_detector_put reg 0x5d 0xf0000f00 + sls_detector_put adcphase 25 + sls_detector_put status start + break; + } + + } //u_int32_t l=0x0c; //u_int32_t h=0x0d; @@ -560,7 +598,10 @@ u_int32_t setClockDivider(int d, int ic) { u_int32_t tot= PLL_VCO_FREQ_MHZ/d; // int ic=0 is run clk; ic=1 is adc clk - printf("set clk divider %d to %d\n", ic, d); + if(myDetectorType == JUNGFRAU) + printf("set clk divider to %d\n", ic, d); + else{ + printf("set clk divider %d to %d\n", ic, d); if (ic>1) return -1; @@ -575,7 +616,7 @@ u_int32_t setClockDivider(int d, int ic) { if (tot<1) return -1; - + } clkDivider[ic]=d; @@ -586,6 +627,10 @@ u_int32_t setClockDivider(int d, int ic) { return clkDivider[ic]; } +int adcPhase(int st){ + return phaseStep(st); //name is wrong, but it resets pll and set the phase as st +} + int phaseStep(int st){ @@ -663,6 +708,12 @@ u_int32_t adcPipeline(int d) { } +u_int32_t dbitPipeline(int d){ + if (d>=0) + bus_w(DAQ_REG, d); + return bus_r(DAQ_REG)&0xff; +} + u_int32_t setSetLength(int d) { return 0; } diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h index a7945678e..307e5c185 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h @@ -30,6 +30,7 @@ u_int32_t bus_r(u_int32_t offset); int setPhaseShiftOnce(); int phaseStep(int st); +int adcPhase(int st); int getPhase(); int cleanFifo(); int setDAQRegister(); @@ -53,6 +54,7 @@ u_int32_t setTotDutyCycle(int d); u_int32_t getTotDutyCycle(); u_int32_t setOversampling(int d); u_int32_t adcPipeline(int d); +u_int32_t dbitPipeline(int d); u_int32_t setExtSignal(int d, enum externalSignalFlag mode); int getExtSignal(int d); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h index 9b06739c0..1f2f4d709 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h @@ -21,23 +21,23 @@ //#ifdef JUNGFRAU_DHANYA #define POWER_ON_REG 0x5e<<11 -#define ADCREG1 8 //same as PLL_BANDWIDTH_REG -#define ADCREG2 20 //0x14 -#define ADCREG3 4 //same as PLL_M_COUNTER_REG -#define ADCREG4 5 //same as PLL_C_COUNTER_REG -#define ADCREG_VREFS 24 //0x18 -#define DBIT_PIPELINE_REG 89<<11 //0x59 same PATTERN_N_LOOP2_REG -#define MEM_MACHINE_FIFOS_REG 79<<11 //0x4f same as CONTROL_REG -#define CONFGAIN_REG 93<<11 //0x5d same as DAQ_REG -#define ADC_PIPELINE_REG 66<<11 //0x42 same as ADC_OFFSET_REG +#define ADCREG1 0x8 //same as PLL_BANDWIDTH_REG +#define ADCREG2 0x14 +#define ADCREG3 0x4 //same as PLL_M_COUNTER_REG +#define ADCREG4 0x5 //same as PLL_C_COUNTER_REG +#define ADCREG_VREFS 0x18 +#define DBIT_PIPELINE_REG 0x59<<11 //same PATTERN_N_LOOP2_REG +#define MEM_MACHINE_FIFOS_REG 0x4f<<11 //same as CONTROL_REG +#define CONFGAIN_REG 0x5d<<11 //same as DAQ_REG +#define ADC_PIPELINE_REG 0x42<<11 //same as ADC_OFFSET_REG //#endif -#define ADC_OFFSET_REG 66<<11 //same as ADC_PIPELINE_REG -#define ADC_INVERSION_REG 67<<11 +//#define ADC_OFFSET_REG 66<<11 //same as CONFGAIN_REG +#define ADC_INVERSION_REG 0x43<<11 -#define DAC_REG 64<<11//0x17<<11// control the dacs +#define DAC_REG 64<<11//0x17<<11// control the dacs //ADC -#define ADC_WRITE_REG 65<<11//0x18<<11 +#define ADC_WRITE_REG 65<<11//0x18<<11 //#define ADC_SYNC_REG 66<<11//0x19<<11 //#define HV_REG 67<<11//0x20<<11 @@ -55,7 +55,7 @@ //HV -#define DUMMY_REG 68<<11//0x21<<11 +#define DUMMY_REG 0x44<<11 #define FPGA_VERSION_REG 0<<11 //0x22<<11 #define PCB_REV_REG 0<<11 #define FIX_PATT_REG 1<<11 //0x23<<11 @@ -182,7 +182,7 @@ -#define DAQ_REG 93<<11 +//#define DAQ_REG 0x5d<<11 //same as CONFGAIN_REG #define ADC_LATCH_DISABLE_REG 94<<11 #define HV_REG 95<<11 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index ca5e84042..44da893b7 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -144,39 +144,33 @@ int init_detector(int b, int checkType) { initDac(0); initDac(8); //initializes the two dacs if(myDetectorType==JUNGFRAU){ - /** for jungfrau reinitializing macro */ + //reinitialize macro N_CHAN=JUNGFRAU_NCHAN; N_CHIP=JUNGFRAU_NCHIP; N_DAC=JUNGFRAU_NDAC; N_ADC=JUNGFRAU_NADC; N_CHANS=JUNGFRAU_NCHANS; - //set dacs + enum dacNames{VB_COMP,VDD_PROT,VIN_COM,VREF_PRECH,VB_PIXBUF,VB_DS,VREF_DS,VREF_COMP}; int retval = -1; int dacvalues[14][2]={ - {0, 1250}, //vout_cm - {10, 1053}, //vin_com - {1, 600}, //vb_sda - {11, 1000}, //vb_colbuf - {2, 3000}, //vb_test_cur - {3, 830}, //vcascp_pixbuf - {4, 1630}, //vcascn_pixbuf - {12, 750}, //vb_pixbuf - {6, 480}, //vref_ds - {5, 1000}, //vb_ds - {7, 400}, //vref_comp - {13, 1220}, //vb_comp - {8, 1500}, //vref_prech - {9, 3000}, //vdd_prot + {VB_DS, 1000}, + {VB_COMP, 1220}, + {VB_PIXBUF, 750}, + {VREF_DS, 480}, + {VREF_COMP, 400}, + {VREF_PRECH,1550}, + {VIN_COM, 1053}, + {VDD_PROT, 3000}, }; - for(i=0;i<14;++i){ + for(i=0;i<8;++i){ retval=setDac(dacvalues[i][0], dacvalues[i][1]); if(retval!=dacvalues[i][1]) printf("Error: Setting dac %d failed, wrote %d, read %d\n",dacvalues[i][0],dacvalues[i][1],retval); } - //power on the chips + //power of the chips bus_w(POWER_ON_REG,0x1); //reset adc @@ -187,7 +181,6 @@ int init_detector(int b, int checkType) { //vrefs - configurable? writeADC(ADCREG_VREFS,0x2); - //set ADCINVERSionreg (by trial and error) bus_w(ADC_INVERSION_REG,0x453b2a9c); @@ -195,8 +188,11 @@ int init_detector(int b, int checkType) { bus_w(ADC_PIPELINE_REG,0x20); //same as ADC_OFFSET_REG //set dbit_pipeline - bus_w(DBIT_PIPELINE_REG,0x100e); - usleep(1000000);//1s + bus_w(DBIT_PIPELINE_REG,0x7f7c); + + + //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) + adcPhase(65); //reset mem machine fifos fifos bus_w(MEM_MACHINE_FIFOS_REG,0x4000); @@ -208,16 +204,17 @@ int init_detector(int b, int checkType) { //set default setting setSettings(DYNAMICGAIN,-1); + /*setting the 4bits to 0x0 (MSB)*/ } //Initialization of acquistion parameters - setFrames(-1); + setFrames(1*1000*1000); setTrains(-1); - setExposureTime(-1); - setPeriod(-1); - setDelay(-1); - setGates(-1); + setExposureTime(10*1000); + setPeriod(2*1000*1000); + setDelay(0); + setGates(0); setTiming(GET_EXTERNAL_COMMUNICATION_MODE); setMaster(GET_MASTER); @@ -1957,8 +1954,10 @@ int get_run_status(int file_des) { printf("\n\nSTATUS=%08x\n",retval); if(myDetectorType == JUNGFRAU){ if(!(retval&RUN_BUSY_BIT)){ - - if((retval&READMACHINE_BUSY_BIT) ){ + if((retval&STOPPED_BIT) ){ // + printf("-----------------------------------STOPPED--------------------------\n"); + s=STOPPED; + } else if((retval&READMACHINE_BUSY_BIT) ){ printf("-----------------------------------READ MACHINE BUSY--------------------------\n"); s=TRANSMITTING; } @@ -2494,125 +2493,158 @@ int get_roi(int file_des) { int set_speed(int file_des) { - enum speedVariable arg; - int val,n; - int ret=OK; - int retval; - - n=receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - n=receiveDataOnly(file_des,&val,sizeof(val)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - - - - if (ret==OK) { + enum speedVariable arg; + int val,n; + int ret=OK; + int retval=-1; - if (arg==PHASE_SHIFT || arg==ADC_PHASE) { - - - retval=phaseStep(val); - - } else { - - - if (val!=-1) { - - - if (differentClients==1 && lockStatus==1 && val>=0) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { - switch (arg) { - case CLOCK_DIVIDER: - retval=setClockDivider(val,0); - break; - -/* case PHASE_SHIFT: */ -/* retval=phaseStep(val,0); */ -/* break; */ - - case OVERSAMPLING: - retval=setOversampling(val); - break; - - case ADC_CLOCK: - retval=setClockDivider(val,1); - break; - -/* case ADC_PHASE: */ -/* retval=phaseStep(val,1); */ -/* break; */ - - - case ADC_PIPELINE: - retval=adcPipeline(val); - break; - - - - default: - ret=FAIL; - sprintf(mess,"Unknown speed parameter %d",arg); + n=receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; } - } - } + n=receiveDataOnly(file_des,&val,sizeof(val)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + + if (ret==OK) { - } + if (val!=-1) { + if (differentClients==1 && lockStatus==1 && val>=0) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + switch (arg) { + case CLOCK_DIVIDER: + if(myDetectorType == JUNGFRAU){ + switch(val){ + case 0: + ret=FAIL; + sprintf(mess,"Full speed not implemented yet. Available options: 1 for half speed and 2 for quarter speed"); + break; + case 1: + case 2: + break; + default: + ret=FAIL; + sprintf(mess,"Unknown clock options %d. Available options: 1 for half speed and 2 for quarter speed",arg); + break; + } + } + setClockDivider(val,0); + break; + + case PHASE_SHIFT: + if(myDetectorType == JUNGFRAU){ + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d for this detector",arg); + break; + } + phaseStep(val); + break; + + case OVERSAMPLING: + setOversampling(val); + break; + + case ADC_CLOCK: + if(myDetectorType == JUNGFRAU){ + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d for this detector",arg); + break; + } + setClockDivider(val,1); + break; + + case ADC_PHASE: + if(myDetectorType == JUNGFRAU){ + adcPhase(val); + break; + } + phaseStep(val); + break; + + case ADC_PIPELINE: + if(myDetectorType == JUNGFRAU){ + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d for this detector",arg); + break; + } + adcPipeline(val); + break; - switch (arg) { - case CLOCK_DIVIDER: - retval=getClockDivider(0); - break; - - case PHASE_SHIFT: - retval=getPhase(); - // retval=phaseStep(-1); - //ret=FAIL; - //sprintf(mess,"Cannot read phase",arg); - break; - - case OVERSAMPLING: - retval=setOversampling(-1); - break; - - case ADC_CLOCK: - retval=getClockDivider(1); - break; - - case ADC_PHASE: - retval=getPhase(); - break; + default: + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d",arg); + } + } + } + } - case ADC_PIPELINE: - retval=adcPipeline(-1); - break; - - default: - ret=FAIL; - sprintf(mess,"Unknown speed parameter %d",arg); - } - } + if (ret==OK) { + switch (arg) { + case CLOCK_DIVIDER: + retval=getClockDivider(0); + break; - + case PHASE_SHIFT: + if(myDetectorType == JUNGFRAU){ + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d for this detector",arg); + break; + } + retval=getPhase(); + break; - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n = sendDataOnly(file_des,mess,sizeof(mess)); - } else { - n = sendDataOnly(file_des,&retval,sizeof(retval)); - } - return ret; + case OVERSAMPLING: + retval=setOversampling(-1); + break; + + case ADC_CLOCK: + if(myDetectorType == JUNGFRAU){ + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d for this detector",arg); + break; + } + retval=getClockDivider(1); + break; + + case ADC_PHASE: + retval=getPhase(); + break; + + + case ADC_PIPELINE: + if(myDetectorType == JUNGFRAU){ + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d for this detector",arg); + break; + } + retval=adcPipeline(-1); + break; + + + default: + ret=FAIL; + sprintf(mess,"Unknown speed parameter %d",arg); + } + } + + + + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n = sendDataOnly(file_des,mess,sizeof(mess)); + } else { + n = sendDataOnly(file_des,&retval,sizeof(retval)); + } + return ret; } From 7eda5f9de5939d013b7718c8951610a24cc6fab9 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 09:21:08 +0200 Subject: [PATCH 067/128] just finished the clock --- .../jungfrauDetectorServer/firmware_funcs.c | 129 ++++++++++++------ .../jungfrauDetectorServer/firmware_funcs.h | 1 + .../jungfrauDetectorServer/registers_m.h | 5 + .../jungfrauDetectorServer/server_funcs.c | 42 ++---- 4 files changed, 108 insertions(+), 69 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 575649478..bfcb0c995 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -553,55 +553,57 @@ void configurePll(int i) { - +//ic plays no role in jungfrau u_int32_t setClockDivider(int d, int ic) { if(myDetectorType == JUNGFRAU){ enum clkspeed{FULL,HALF,QUARTER}; - switch((clkspeed)d){ - //stop state machine if running - if(runBusy()) - stopStateMachine(); + if(d!=-1){ + switch((clkspeed)d){ + //stop state machine if running + if(runBusy()) + stopStateMachine(); - case FULL: - printf("Setting Half Speed (40 MHz)\n"); - /**to be done*/ - break; - case HALF: - printf("Setting Half Speed (20 MHz)\n"); + case FULL: + printf("Setting Half Speed (40 MHz)\n"); + /**to be done*/ + dbitPipeline(JUNGFRAU_HALFSPEED_DBIT_PIPELINE); + adcPipeline(JUNGFRAU_HALFSPEED_ADC_PIPELINE); + initSpeedConfGain(JUNGFRAU_HALFSPEED_CONF); + adcPhase(JUNGFRAU_HALFSPEED_ADC_PHASE); + break; + case HALF: + printf("Setting Half Speed (20 MHz)\n"); + dbitPipeline(JUNGFRAU_HALFSPEED_DBIT_PIPELINE); + adcPipeline(JUNGFRAU_HALFSPEED_ADC_PIPELINE); + initSpeedConfGain(JUNGFRAU_HALFSPEED_CONF); + adcPhase(JUNGFRAU_HALFSPEED_ADC_PHASE); + break; + case QUARTER: + printf("Setting Half Speed (10 MHz)\n"); + dbitPipeline(JUNGFRAU_QUARTERSPEED_DBIT_PIPELINE); + adcPipeline(JUNGFRAU_QUARTERSPEED_ADC_PIPELINE); + initSpeedConfGain(JUNGFRAU_QUARTERSPEED_CONF); + adcPhase(JUNGFRAU_QUARTERSPEED_ADC_PHASE); + break; - sls_detector_put reg 0x59 0x7f7c - sls_detector_put reg 0x42 0x20 - sls_detector_put status stop - sls_detector_put reg 0x5d 0x00000f00 - sls_detector_put adcphase 65 - sls_detector_put status start - break; - case QUARTER: - printf("Setting Half Speed (10 MHz)\n"); - - sls_detector_put reg 0x59 0x8981 - sls_detector_put reg 0x42 0x10 - sls_detector_put reg 0x5d 0xf0000f00 - sls_detector_put adcphase 25 - sls_detector_put status start - break; + } } + getClockDivider(ic); } + + //u_int32_t l=0x0c; //u_int32_t h=0x0d; u_int32_t tot= PLL_VCO_FREQ_MHZ/d; // int ic=0 is run clk; ic=1 is adc clk - if(myDetectorType == JUNGFRAU) - printf("set clk divider to %d\n", ic, d); - else{ - printf("set clk divider %d to %d\n", ic, d); + printf("set clk divider %d to %d\n", ic, d); if (ic>1) return -1; @@ -616,7 +618,7 @@ u_int32_t setClockDivider(int d, int ic) { if (tot<1) return -1; - } + clkDivider[ic]=d; @@ -665,6 +667,23 @@ int getPhase() { u_int32_t getClockDivider(int ic) { + if(myDetectorType == JUNGFRAU){ + enum clkspeed{FULL,HALF,QUARTER}; + + switch(initSpeedConfGain(-1)){ + //case JUNGFRAU_FULLSPEED_CONF: + //return FULL; + case JUNGFRAU_HALFSPEED_CONF: + return HALF; + case JUNGFRAU_QUARTERSPEED_CONF: + return QUARTER; + default: + return -1; + } + } + + + if (ic>1) return -1; return clkDivider[ic]; @@ -702,6 +721,11 @@ u_int32_t getClockDivider(int ic) { u_int32_t adcPipeline(int d) { + if(myDetectorType == JUNGFRAU){ + if (d>=0) + bus_w(ADC_PIPELINE_REG, d); + return bus_r(ADC_PIPELINE_REG); + } if (d>=0) bus_w(DAQ_REG, d); return bus_r(DAQ_REG)&0xff; @@ -709,9 +733,11 @@ u_int32_t adcPipeline(int d) { u_int32_t dbitPipeline(int d){ + if(myDetectorType != JUNGFRAU) + return 0; if (d>=0) - bus_w(DAQ_REG, d); - return bus_r(DAQ_REG)&0xff; + bus_w(DBIT_PIPELINE_REG, d); + return bus_r(DBIT_PIPELINE_REG); } u_int32_t setSetLength(int d) { @@ -1669,24 +1695,43 @@ int initHighVoltage(int val, int imod){ +/*used only by jungfrau */ int initConfGain(int isettings,int val,int imod){ int retval; u_int32_t addr=CONFGAIN_REG; - if(isettings!=-1){ -#ifdef VERBOSE - printf("Setting Gain of module:%d with val:%d\n",imod,val); -#endif - bus_w(addr,val); +//#ifdef VERBOSE + printf("Setting Gain with val:%d\n",val); +//#endif + bus_w(addr,(val|(bus_r(addr)&~JUNGFRAU_GAIN_MASK))); } - retval=(bus_r(addr)); -#ifdef VERBOSE + retval=(bus_r(addr)&JUNGFRAU_GAIN_MASK); +//#ifdef VERBOSE printf("Value read from Gain reg is %d\n",retval); -#endif + printf("Gain Reg Value is %d\n",bus_r(addr)); +//#endif return retval; } +/*used only by jungfrau */ +int initSpeedConfGain(int val){ + int retval; + u_int32_t addr=CONFGAIN_REG; + if(val!=-1){ + //#ifdef VERBOSE + printf("Setting Speed of Gain reg with val:%d\n",val); + //#endif + bus_w(addr,((val<>JUNGFRAU_SPEED_GAIN_OFFSET); + //#ifdef VERBOSE + printf("Value read from Speed of Gain reg is %d\n",retval); + printf("Gain Reg Value is %d\n",bus_r(addr)); + //#endif + return retval; +} + int setADC(int adc){ int reg,nchips,mask,nchans; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h index 307e5c185..62b0c56c7 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h @@ -77,6 +77,7 @@ int getDacRegister(int dacnum); int getTemperature(int tempSensor,int imod); int initHighVoltage(int val,int imod); int initConfGain(int isettings,int val,int imod); +int initSpeedConfGain(int val); int setADC(int adc); //int configureMAC(int ipad, long long int macad, long long int detectormacadd, int detipad, int ival, int udpport); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h index 1f2f4d709..5dabd0864 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h @@ -414,6 +414,11 @@ #define SETTINGS_MASK 0x000000f0 #define SETTINGS_OFFSET 4 +#define JUNGFRAU_GAIN_MASK 0x0000ffff +#define JUNGFRAU_SPEED_GAIN_MASK 0xf0000000 +#define JUNGFRAU_SPEED_GAIN_OFFSET 28 + + /* CHIP_OF_INTRST_REG */ #define CHANNEL_MASK 0xffff0000 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 44da893b7..8950e7a1e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -14,21 +14,7 @@ int (*flist[256])(int); -//defined in the detector specific file -/* #ifdef MYTHEND */ -/* const enum detectorType myDetectorType=MYTHEN; */ -/* #elif GOTTHARDD */ -/* const enum detectorType myDetectorType=GOTTHARD; */ -/* #elif EIGERD */ -/* const enum detectorType myDetectorType=EIGER; */ -/* #elif PICASSOD */ -/* const enum detectorType myDetectorType=PICASSO; */ -/* #elif MOENCHD */ -/* const enum detectorType myDetectorType=MOENCH; */ -/* #else */ enum detectorType myDetectorType=GENERIC; -/* #endif */ - extern int nModX; extern int nModY; @@ -55,13 +41,23 @@ extern int withGotthard; int adcvpp=0x4; -/** for jungfrau reinitializing macro later */ +// for jungfrau reinitializing macro later int N_CHAN=NCHAN; int N_CHIP=NCHIP; int N_DAC=NDAC; int N_ADC=NADC; int N_CHANS=NCHANS; +//jungfrau specific +const static int JUNGFRAU_HALFSPEED_DBIT_PIPELINE = 0x7f7c; +const static int JUNGFRAU_QUARTERSPEED_DBIT_PIPELINE = 0x8981; +const static int JUNGFRAU_HALFSPEED_ADC_PIPELINE = 0x20; +const static int JUNGFRAU_QUARTERSPEED_ADC_PIPELINE = 0x10; +const static int JUNGFRAU_HALFSPEED_CONF = 0x0; +const static int JUNGFRAU_QUARTERSPEED_CONF = 0xf; +const static int JUNGFRAU_HALFSPEED_ADC_PHASE = 65; +const static int JUNGFRAU_QUARTERSPEED_ADC_PHASE = 25; + int init_detector(int b, int checkType) { @@ -180,31 +176,23 @@ int init_detector(int b, int checkType) { writeADC(ADCREG4,0x3f); //vrefs - configurable? writeADC(ADCREG_VREFS,0x2); - //set ADCINVERSionreg (by trial and error) bus_w(ADC_INVERSION_REG,0x453b2a9c); - //set adc_pipeline - bus_w(ADC_PIPELINE_REG,0x20); //same as ADC_OFFSET_REG - - //set dbit_pipeline - bus_w(DBIT_PIPELINE_REG,0x7f7c); - - - //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) - adcPhase(65); + adcPipeline(JUNGFRAU_HALFSPEED_ADC_PIPELINE); + dbitPipeline(JUNGFRAU_HALFSPEED_DBIT_PIPELINE); + adcPhase(JUNGFRAU_HALFSPEED_ADC_PHASE); //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) //reset mem machine fifos fifos bus_w(MEM_MACHINE_FIFOS_REG,0x4000); bus_w(MEM_MACHINE_FIFOS_REG,0x0); - //reset run control bus_w(MEM_MACHINE_FIFOS_REG,0x0400); bus_w(MEM_MACHINE_FIFOS_REG,0x0); //set default setting + initSpeedConfGain(JUNGFRAU_HALFSPEED_CONF); setSettings(DYNAMICGAIN,-1); - /*setting the 4bits to 0x0 (MSB)*/ } From 18c6e8208afb2f015c4160f809e894fbfcdc4a4b Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 12:01:31 +0200 Subject: [PATCH 068/128] removed bug, setting dr24 sets dr 32 also for eiger, also added server executable --- ...rServer => eigerDetectorServerv2.2.0.14.0} | Bin 277523 -> 277523 bytes .../slsDetectorServer_defs.h | 2 +- .../slsDetector/slsDetector.cpp | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServer => eigerDetectorServerv2.2.0.14.0} (99%) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 similarity index 99% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 index 038ac981dc7902aa57045b263e73705b9bd70795..6a1c6c66bedce52ec1275fed8985efff1449b57b 100755 GIT binary patch delta 64 zcmbRILtyd`ferlzi~^G<7)%C|Du&*o{El-O3~U$#m<$-aRce@-D=Zoq1e#k6+gl77 QftU%1nYXtXvh;HS0EiP3y#N3J delta 64 zcmbRILtyd`ferlzjC_+P7)%C|Du&*oypD4j3~U$#m<$-aRce@-D=Zoq_?lY`+gl77 QftU%1nYXtXvh;HS0EWjBwEzGB diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h index 5e821bd73..296e51728 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h @@ -16,7 +16,7 @@ #define FEB_PORT 43210 #define BEB_PORT 43212 -#define REQUIRED_FIRMWARE_VERSION 14 +#define REQUIRED_FIRMWARE_VERSION 16 #define FIRMWAREREV 0xcaba //temporary should be in firmware diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 0928984ab..b21cc5e5f 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1739,7 +1739,7 @@ int slsDetector::setNumberOfModules(int n, dimension d){ int dr=thisDetector->dynamicRange; - if (dr==24) + if ((thisDetector->myDetectorType==MYTHEN) && (dr==24)) dr=32; thisDetector->dataBytes=thisDetector->nMod[X]*thisDetector->nMod[Y]*thisDetector->nChips*thisDetector->nChans*dr/8; @@ -4539,7 +4539,7 @@ int slsDetector::setDynamicRange(int n){ #ifdef VERBOSE std::cout<< "Setting dynamic range to "<< n << std::endl; #endif - if (n==24) + if ((thisDetector->myDetectorType == MYTHEN) &&(n==24)) n=32; From e312098e56b9d187fb1bfdde43ad779d7294400f Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 14:52:25 +0200 Subject: [PATCH 069/128] check for why gui doesnt show all data --- .../eigerDetectorServer/FebControl.c | 10 ++++++++-- .../bin/eigerDetectorServerv2.2.0.14.0 | Bin 277523 -> 277523 bytes .../multiSlsDetector/multiSlsDetector.cpp | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index cabbb5296..a5dd9ae83 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -1679,7 +1679,10 @@ int Feb_Control_PrintCorrectedValues(){ int Feb_Control_GetLeftFPGATemp(){ unsigned int temperature=0; - Feb_Interface_ReadRegister(Module_GetTopLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); + if(Module_TopAddressIsValid(&modules[1])) + Feb_Interface_ReadRegister(Module_GetTopLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); + else + Feb_Interface_ReadRegister(Module_GetBottomLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); temperature = temperature >> 16; //division done in client to send int over network return (int)temperature; @@ -1687,7 +1690,10 @@ int Feb_Control_GetLeftFPGATemp(){ int Feb_Control_GetRightFPGATemp(){ unsigned int temperature=0; - Feb_Interface_ReadRegister(Module_GetTopRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); + if(Module_TopAddressIsValid(&modules[1])) + Feb_Interface_ReadRegister(Module_GetTopRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); + else + Feb_Interface_ReadRegister(Module_GetBottomRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); temperature = temperature >> 16; //division done in client to send int over network return (int)temperature; diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 index 6a1c6c66bedce52ec1275fed8985efff1449b57b..75724eb5ec55469ca8e777cd42de7773e5e33bda 100755 GIT binary patch delta 15962 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 J$@Eyy{{rer^;`e| diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 76cf9850d..d8e5ce663 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5178,7 +5178,7 @@ void multiSlsDetector::startReceivingDataThread(){ } else{ //actual data - //cprintf(BLUE,"%d actual dataaa\n",ithread); + cprintf(BLUE,"%d actual dataaa\n",ithread); memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); From 994ccac75b95179db2bc84f4686990b8208d96e5 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 15:03:13 +0200 Subject: [PATCH 070/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index d8e5ce663..f97c707c3 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5167,7 +5167,7 @@ void multiSlsDetector::startReceivingDataThread(){ //end of socket ("end") if (len < 1024*256 ) { if(len == 3){ - //cprintf(RED,"Received end of acquisition for socket %d\n", ithread); + cprintf(RED,"%d Received end of acquisition\n", ithread); singleframe[ithread] = NULL; //break; }else{ @@ -5252,7 +5252,7 @@ void multiSlsDetector::readFrameFromReceiver(){ for(int i = 0; i < numReadouts; ++i) dataThreadMask|=(1< Date: Tue, 25 Oct 2016 15:13:38 +0200 Subject: [PATCH 071/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index f97c707c3..fda6a1824 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5249,6 +5249,7 @@ void multiSlsDetector::readFrameFromReceiver(){ volatile uint64_t dataThreadMask = 0x0; + cout<<"numreadouts:"< Date: Tue, 25 Oct 2016 15:35:00 +0200 Subject: [PATCH 072/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index fda6a1824..57f675ec3 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5167,7 +5167,7 @@ void multiSlsDetector::startReceivingDataThread(){ //end of socket ("end") if (len < 1024*256 ) { if(len == 3){ - cprintf(RED,"%d Received end of acquisition\n", ithread); + //cprintf(RED,"%d Received end of acquisition\n", ithread); singleframe[ithread] = NULL; //break; }else{ @@ -5249,11 +5249,9 @@ void multiSlsDetector::readFrameFromReceiver(){ volatile uint64_t dataThreadMask = 0x0; - cout<<"numreadouts:"< Date: Tue, 25 Oct 2016 15:38:32 +0200 Subject: [PATCH 073/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 57f675ec3..60f4c1c7a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5178,7 +5178,7 @@ void multiSlsDetector::startReceivingDataThread(){ } else{ //actual data - cprintf(BLUE,"%d actual dataaa\n",ithread); + //cprintf(BLUE,"%d actual dataaa\n",ithread); memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); From ac4c7586369c6f4d74b9b4fac884e7a6ee636578 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 15:44:31 +0200 Subject: [PATCH 074/128] check for why gui doesnt show all data --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 8bb16fe0e..092bced32 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -448,7 +448,7 @@ int slsDetectorUtils::acquire(int delflag){ setFileIndex(fileIO::getFileIndex()); pthread_mutex_unlock(&mg); - + usleep(1*1000*1000); if (measurement_finished){ pthread_mutex_lock(&mg); measurement_finished(im,*fileIndex,measFinished_p); From 51c0ca8c6e35adcd131cdbee9859eb4858ab9dcb Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 15:50:35 +0200 Subject: [PATCH 075/128] check for why gui doesnt show all data --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 092bced32..41bfbe7b2 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -448,7 +448,7 @@ int slsDetectorUtils::acquire(int delflag){ setFileIndex(fileIO::getFileIndex()); pthread_mutex_unlock(&mg); - usleep(1*1000*1000); + usleep(5*1000*1000); if (measurement_finished){ pthread_mutex_lock(&mg); measurement_finished(im,*fileIndex,measFinished_p); From 64965e2a1a1b75cc2e1272557300cd8ee63f7d87 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 15:53:04 +0200 Subject: [PATCH 076/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 60f4c1c7a..17c30f35b 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5255,7 +5255,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //construct complete image and send to callback while(true){ - memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory + //memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory //post all of them to start for(int ireadout=0; ireadout Date: Tue, 25 Oct 2016 16:05:39 +0200 Subject: [PATCH 077/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 17c30f35b..60f4c1c7a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5255,7 +5255,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //construct complete image and send to callback while(true){ - //memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory + memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory //post all of them to start for(int ireadout=0; ireadout Date: Tue, 25 Oct 2016 16:08:36 +0200 Subject: [PATCH 078/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 60f4c1c7a..17c30f35b 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5255,7 +5255,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //construct complete image and send to callback while(true){ - memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory + //memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory //post all of them to start for(int ireadout=0; ireadout Date: Tue, 25 Oct 2016 16:22:03 +0200 Subject: [PATCH 079/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 17c30f35b..e7df47431 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4928,7 +4928,7 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; - +/* if(thisMultiDetector->numberOfDetectors>10) { if (detectors[0]){ ret =detectors[0]->getFramesCaughtByReceiver(); @@ -4937,7 +4937,7 @@ int multiSlsDetector::getFramesCaughtByReceiver() { } return ret; } - +*/ for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ ret1+=detectors[i]->getFramesCaughtByReceiver(); From 64094be4e3fc8d9c0526c72ba7c027edf271d2c8 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 25 Oct 2016 16:45:52 +0200 Subject: [PATCH 080/128] check for why gui doesnt show all data --- slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 7e158371f..6dc34821a 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -495,8 +495,11 @@ void* postProcessing::processData(int delflag) { while(true){ cout.flush(); cout< Date: Tue, 25 Oct 2016 16:48:04 +0200 Subject: [PATCH 081/128] check for why gui doesnt show all data --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 ++-- slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index e7df47431..17c30f35b 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4928,7 +4928,7 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; -/* + if(thisMultiDetector->numberOfDetectors>10) { if (detectors[0]){ ret =detectors[0]->getFramesCaughtByReceiver(); @@ -4937,7 +4937,7 @@ int multiSlsDetector::getFramesCaughtByReceiver() { } return ret; } -*/ + for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ ret1+=detectors[i]->getFramesCaughtByReceiver(); diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 6dc34821a..cf3bbe0a2 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -495,7 +495,7 @@ void* postProcessing::processData(int delflag) { while(true){ cout.flush(); cout< Date: Tue, 25 Oct 2016 17:03:56 +0200 Subject: [PATCH 082/128] added 9m binary --- .../bin/eigerDetectorServerv2.2.0.16.0 | Bin 0 -> 277523 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 new file mode 100755 index 0000000000000000000000000000000000000000..f6dd95b75eb914a76ad28f7f966ede41ee940963 GIT binary patch literal 277523 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ɡ<8Z9A7(tdDG7`Z!=^mQ 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%0DfFZl4-w7cN_$ zs>HF?URq%B53jO?LSn3K!^66VA@CwUH_|$QfVa@vqJJWoSB6~m@6 z)k;c-Z#@Lq+c>dWvKFWmY3EFHMCX&~!+Dqvh+xWoez02d3Ks+Oo;qz{do9Ep%JIS; zUJS|JX7r8XC>sc-u^X(iGi-cq!F7DYO`D&q5_06uBMguIIld)Rv4LZW-gfh2N8kpX za0=9Wa132aZx0&J?hXBoj1JeHeP-LZk?=0YI~yv1hX(n%(q?_0XgujoGUwQUhGolI zZ<(m1Uk%$?qhOmrv}7ODXy9A|Un*LQS6Em62vv^_YT4^wyEa@G`FDH`g02n^dXEsK zHI4g)E8R>_T(U`Hk5}XV10#h{E^j^S$H38Xxt-BiT(F0EkVul+9;lvDBFO8_f?oAG zxrZ&M-HX}veK(j}Si)Z4KJlhL8?=e>WZ#pl|Max&ReNpg7fT+ThU+)2cEhFn3}sQL zQ~J#+$A?uPAMicxD6;`dU;29`z{9E~C9PL#U)efX9yVgXA~IXJb7#LMly!@XZ-hlL zSrL6jW8u05D1?3ATHRXS(h!LU0FZ(&4^RP+e#<&8{zqb;w(!hKbEy|KA( z+iU(;a;0-Ur=(@nMb`xMF@yzIF7M>P=Pg!2yqqJ2FryHtHD^q<-KjJ zM)-io8~y_xeulii^8TJan`*2^;eNeA2E6MAVZA;D)SPy2v~9e1VuIK6e0r+>2{S&^ zCPz&1rgQ`m*9qaOP?NV?l-SDr>M-U{y;n+IF;?Y@Q9gi#5}|KcolRxj^{+aTG`=TC zoNyj$5R)PMC&I^H@UR Date: Thu, 27 Oct 2016 07:26:47 +0200 Subject: [PATCH 083/128] untangled moench from jungfrau, quite a few changes --- .../commonFiles/communication_funcs.c | 2 +- .../jungfrauDetectorServer/.gitignore | 1 + .../jungfrauDetectorServer/Makefile | 12 +- .../jungfrauDetectorServer/firmware_funcs.c | 3569 ++++++--------- .../jungfrauDetectorServer/firmware_funcs.h | 10 +- .../{gitInfoMoench.h => gitInfoJungfrau.h} | 0 ...itInfoMoenchTmp.h => gitInfoJungfrauTmp.h} | 0 .../jungfrauDetectorServerv2.2.1 | Bin 136036 -> 125624 bytes .../jungfrauDetectorServer/mcb_funcs.c | 921 +--- .../jungfrauDetectorServer/registers_m.h | 19 +- .../jungfrauDetectorServer/server.c | 22 +- .../jungfrauDetectorServer/server_defs.h | 26 +- .../jungfrauDetectorServer/server_funcs.c | 3870 ++++++++--------- .../jungfrauDetectorServer/server_funcs.h | 2 +- .../jungfrauDetectorServer/sharedmemory.c | 39 - .../jungfrauDetectorServer/sharedmemory.h | 48 - 16 files changed, 3222 insertions(+), 5319 deletions(-) create mode 100644 slsDetectorSoftware/jungfrauDetectorServer/.gitignore rename slsDetectorSoftware/jungfrauDetectorServer/{gitInfoMoench.h => gitInfoJungfrau.h} (100%) rename slsDetectorSoftware/jungfrauDetectorServer/{gitInfoMoenchTmp.h => gitInfoJungfrauTmp.h} (100%) delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.c delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.h diff --git a/slsDetectorSoftware/commonFiles/communication_funcs.c b/slsDetectorSoftware/commonFiles/communication_funcs.c index a42371570..54ee6bb14 100755 --- a/slsDetectorSoftware/commonFiles/communication_funcs.c +++ b/slsDetectorSoftware/commonFiles/communication_funcs.c @@ -137,7 +137,7 @@ int acceptConnection(int socketDescriptor) { //socklen_t address_length; - size_t address_length=sizeof(struct sockaddr_in); + socklen_t address_length=sizeof(struct sockaddr_in); if (socketDescriptor<0) return -1; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/.gitignore b/slsDetectorSoftware/jungfrauDetectorServer/.gitignore new file mode 100644 index 000000000..0173208ed --- /dev/null +++ b/slsDetectorSoftware/jungfrauDetectorServer/.gitignore @@ -0,0 +1 @@ +*.gdb diff --git a/slsDetectorSoftware/jungfrauDetectorServer/Makefile b/slsDetectorSoftware/jungfrauDetectorServer/Makefile index 6b3fc4bd4..7e7dd500a 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/Makefile +++ b/slsDetectorSoftware/jungfrauDetectorServer/Makefile @@ -6,17 +6,17 @@ CROSS = bfin-uclinux- CC = $(CROSS)gcc -CFLAGS += -Wall -DMOENCHD -DMCB_FUNCS -DDACS_INT -DDEBUG -DV1 #-DVERBOSE #-DVERYVERBOSE #-DVIRTUAL #-DDACS_INT_CSERVER +CFLAGS += -Wall -DJUNGFRAUD -DMCB_FUNCS -DDACS_INT -DDEBUG -DV1 #-DVERBOSE #-DVERYVERBOSE #-DVIRTUAL -PROGS= jungfrauDetectorServerTest +PROGS= jungfrauDetectorServer INSTDIR= /tftpboot INSTMODE= 0777 BINS = testlib_sharedlibc -SRCS = server.c server_funcs.c communication_funcs.c firmware_funcs.c mcb_funcs.c sharedmemory.c +SRCS = server.c server_funcs.c communication_funcs.c firmware_funcs.c mcb_funcs.c OBJS = $(SRCS:%.c=%.o) @@ -27,15 +27,11 @@ test: clean jungfrauADCTEst boot: $(OBJS) -jungfrauDetectorServerTest: $(OBJS) - echo $(OBJS) - $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS_$@) $(LDFLAGS_$@) - - jungfrauDetectorServer: $(OBJS) echo $(OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS_$@) $(LDFLAGS_$@) + jungfrauADCTEst: $(OBJS) echo $(OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS_$@) $(LDFLAGS_$@) -DTESTADC diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index bfcb0c995..83b7e212e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -47,63 +47,57 @@ #include #include + +extern enum detectorType myDetectorType; + typedef struct ip_header_struct { - u_int16_t ip_len; - u_int8_t ip_tos; - u_int8_t ip_ihl:4 ,ip_ver:4; - u_int16_t ip_offset:13,ip_flag:3; - u_int16_t ip_ident; - u_int16_t ip_chksum; - u_int8_t ip_protocol; - u_int8_t ip_ttl; - u_int32_t ip_sourceip; - u_int32_t ip_destip; + u_int16_t ip_len; + u_int8_t ip_tos; + u_int8_t ip_ihl:4 ,ip_ver:4; + u_int16_t ip_offset:13,ip_flag:3; + u_int16_t ip_ident; + u_int16_t ip_chksum; + u_int8_t ip_protocol; + u_int8_t ip_ttl; + u_int32_t ip_sourceip; + u_int32_t ip_destip; } ip_header; struct timeval tss,tse,tsss; //for timing -//for memory mapping + u_int32_t CSP0BASE; - - FILE *debugfp, *datafp; - int fr; int wait_time; int *fifocntrl; - -//int *statusreg; commented out by dhanya const int nModY=1; int nModBoard; int nModX=NMAXMOD; -int dynamicRange=16;//32; +int dynamicRange=16; int nSamples=1; - -int dataBytes=NMAXMOD*NCHIP*NCHAN*2; - +size_t dataBytes=NMAXMOD*NCHIP*NCHAN*2; int storeInRAM=0; int ROI_flag=0; int adcConfigured=-1; -u_int16_t *ram_values=NULL; -char volatile *now_ptr=NULL; -u_int32_t volatile *values; int ram_size=0; int64_t totalTime=1; u_int32_t progressMask=0; - int phase_shift=0;//DEFAULT_PHASE_SHIFT; int ipPacketSize=DEFAULT_IP_PACKETSIZE; int udpPacketSize=DEFAULT_UDP_PACKETSIZE; - +int clockdivider; +/* #ifndef NEW_PLL_RECONFIG u_int32_t clkDivider[2]={32,16}; #else u_int32_t clkDivider[2]={40,20}; #endif -static const int JUNGFRAU_CLOCK = 1; + */ + int32_t clkPhase[2]={0,0}; u_int32_t adcDisableMask=0; @@ -114,106 +108,89 @@ int masterMode=NO_MASTER, syncMode=NO_SYNCHRONIZATION, timingMode=AUTO_TIMING; enum externalSignalFlag signals[4]={EXT_SIG_OFF, EXT_SIG_OFF, EXT_SIG_OFF, EXT_SIG_OFF}; -int withGotthard = 0; char mtdvalue[10]; -/**is not const because this value will change after initDetector, is removed from mcb_funcs.c cuz its not used anywhere - * why is this used anywhere instead of macro*/ -int nChans=NCHAN; -int nChips=NCHIP; -int nDacs=NDAC; -int nAdcs=NADC; -extern enum detectorType myDetectorType; -/** for jungfrau reinitializing macro later in server_funcs.c in initDetector*/ -extern int N_CHAN; -extern int N_CHIP; -extern int N_DAC; -extern int N_ADC; -extern int N_CHANS; + int mapCSP0(void) { - printf("Mapping memory\n"); + //printf("Mapping memory\n"); #ifndef VIRTUAL - int fd; - fd = open("/dev/mem", O_RDWR | O_SYNC, 0); - if (fd == -1) { - printf("\nCan't find /dev/mem!\n"); - return FAIL; - } - printf("/dev/mem opened\n"); + int fd; + fd = open("/dev/mem", O_RDWR | O_SYNC, 0); + if (fd == -1) { + printf("\nCan't find /dev/mem!\n"); + return FAIL; + } + //printf("/dev/mem opened\n"); - CSP0BASE = (u_int32_t)mmap(0, MEM_SIZE, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, CSP0); - if (CSP0BASE == (u_int32_t)MAP_FAILED) { - printf("\nCan't map memmory area!!\n"); - return FAIL; - } - printf("CSP0 mapped\n"); + CSP0BASE = (u_int32_t)mmap(0, MEM_SIZE, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, CSP0); + if (CSP0BASE == (u_int32_t)MAP_FAILED) { + printf("\nCan't map memmory area!!\n"); + return FAIL; + } + //printf("CSP0 mapped\n"); #endif #ifdef VIRTUAL - CSP0BASE = malloc(MEM_SIZE); - printf("memory allocated\n"); + CSP0BASE = malloc(MEM_SIZE); + printf("memory allocated\n"); #endif #ifdef SHAREDMEMORY - if ( (res=inism(SMSV))<0) { - printf("error attaching shared memory! %i",res); - return FAIL; - } + if ( (res=inism(SMSV))<0) { + printf("error attaching shared memory! %i",res); + return FAIL; + } #endif - printf("CSPObase is 0x%08x \n",CSP0BASE); - printf("CSPOBASE=from %08x to %08x\n",CSP0BASE,CSP0BASE+MEM_SIZE); + //printf("CSPObase is 0x%08x \n",CSP0BASE); + printf("CSPOBASE mapped from %08x to %08x\n",CSP0BASE,CSP0BASE+MEM_SIZE); - u_int32_t address; - address = FIFO_DATA_REG;//_OFF; - values=(u_int32_t*)(CSP0BASE+address*2); - printf("statusreg=%08x\n",bus_r(STATUS_REG)); - printf("\n\n"); - return OK; + printf("statusreg=%08x\n",bus_r(STATUS_REG)); + return OK; } u_int16_t bus_r16(u_int32_t offset){ - volatile u_int16_t *ptr1; - ptr1=(u_int16_t*)(CSP0BASE+offset*2); - return *ptr1; + volatile u_int16_t *ptr1; + ptr1=(u_int16_t*)(CSP0BASE+offset*2); + return *ptr1; } u_int16_t bus_w16(u_int32_t offset, u_int16_t data) { - volatile u_int16_t *ptr1; - ptr1=(u_int16_t*)(CSP0BASE+offset*2); - *ptr1=data; - return OK; + volatile u_int16_t *ptr1; + ptr1=(u_int16_t*)(CSP0BASE+offset*2); + *ptr1=data; + return OK; } /** ramType is DARK_IMAGE_REG or GAIN_IMAGE_REG */ u_int16_t ram_w16(u_int32_t ramType, int adc, int adcCh, int Ch, u_int16_t data) { - unsigned int adr = (ramType | adc << 8 | adcCh << 5 | Ch ); - // printf("Writing to addr:%x\n",adr); - return bus_w16(adr,data); + unsigned int adr = (ramType | adc << 8 | adcCh << 5 | Ch ); + // printf("Writing to addr:%x\n",adr); + return bus_w16(adr,data); } /** ramType is DARK_IMAGE_REG or GAIN_IMAGE_REG */ u_int16_t ram_r16(u_int32_t ramType, int adc, int adcCh, int Ch){ - unsigned int adr = (ramType | adc << 8 | adcCh << 5 | Ch ); - // printf("Reading from addr:%x\n",adr); - return bus_r16(adr); + unsigned int adr = (ramType | adc << 8 | adcCh << 5 | Ch ); + // printf("Reading from addr:%x\n",adr); + return bus_r16(adr); } u_int32_t bus_w(u_int32_t offset, u_int32_t data) { - volatile u_int32_t *ptr1; + volatile u_int32_t *ptr1; - ptr1=(u_int32_t*)(CSP0BASE+offset*2); - *ptr1=data; + ptr1=(u_int32_t*)(CSP0BASE+offset*2); + *ptr1=data; - return OK; + return OK; } u_int32_t bus_r(u_int32_t offset) { - volatile u_int32_t *ptr1; - ptr1=(u_int32_t*)(CSP0BASE+offset*2); - return *ptr1; + volatile u_int32_t *ptr1; + ptr1=(u_int32_t*)(CSP0BASE+offset*2); + return *ptr1; } @@ -240,102 +217,41 @@ int setPhaseShiftOnce(){ printf("Multipupose reg now:%x\n",bus_r(addr)); #endif } - return OK; } int cleanFifo(){ -/* u_int32_t addr, reg, val, adc_sync; */ -/* printf("Cleaning FIFO\n"); */ -/* addr=ADC_SYNC_REG; */ - -/* if(withGotthard) */ -/* adc_sync = GOTTHARD_ADCSYNC_VAL; */ -/* else */ -/* adc_sync = ADCSYNC_VAL; */ - - -/* reg = bus_r(addr) & CLEAN_FIFO_MASK; */ - -/* //only for start up */ -/* if(!reg) reg = adc_sync; */ - -/* // 88 3 02111 */ -/* if (ROI_flag==0) { */ -/* val=reg | ADCSYNC_CLEAN_FIFO_BITS | TOKEN_RESTART_DELAY; */ -/* bus_w(addr,val); */ -/* // 88 0 02111 */ -/* val=reg | TOKEN_RESTART_DELAY; */ -/* bus_w(addr,val); */ -/* } */ -/* else { */ -/* //1b332214 */ -/* val=reg | ADCSYNC_CLEAN_FIFO_BITS | TOKEN_RESTART_DELAY_ROI; */ -/* bus_w(addr,val); */ -/* //1b032214 */ -/* val=reg | TOKEN_RESTART_DELAY_ROI; */ -/* bus_w(addr,val); */ - -/* } */ -/* reg=bus_r(addr); */ -/* //#ifdef DDEBUG */ -/* printf("ADC SYNC reg 0x19:%x\n",reg); */ -/* //#endif */ return OK; } -int setDAQRegister() -{ -/* u_int32_t addr, reg, val; */ -/* addr=CONFGAIN_REG; */ - -/* //depended on adcval */ -/* int packetlength=0x7f; */ -/* if(!ROI_flag) packetlength=0x13f; */ - -/* //depended on pcb rev */ -/* int tokenTiming = TOKEN_TIMING_REV2; */ -/* if((bus_r(PCB_REV_REG)&BOARD_REVISION_MASK)==1) */ -/* tokenTiming= TOKEN_TIMING_REV1; */ - - -/* val = (packetlength<<16) + tokenTiming; */ -/* //val=34+(42<<8)+(packetlength<<16); */ - -/* reg=bus_r(addr); */ -/* bus_w(addr,val); */ -/* reg=bus_r(addr); */ -/* //#ifdef VERBOSE */ -/* printf("DAQ reg 0x15:%x\n",reg); */ -/* //#endif */ - +int setDAQRegister(){ return OK; } // direct pattern output u_int32_t putout(char *s, int modnum) { - int i; - u_int32_t pat; - int addr; + int i; + u_int32_t pat; + int addr; - if (strlen(s)<16) { - fprintf(stdout," *** putout error: incorrect pattern length ***\n"); - fprintf(stdout," %s \n",s); - return FAIL; - } + if (strlen(s)<16) { + fprintf(stdout," *** putout error: incorrect pattern length ***\n"); + fprintf(stdout," %s \n",s); + return FAIL; + } - pat=0; - for (i=0;i<16;i++) { - if (s[i]=='1') pat=pat+(1<<(15-i)); - } - //addr=DAC_REG+(modnum<<4); - addr=DAC_REG;//+(modnum<2*l) { - h=l+1; - odd=1; - } - printf("Counter %d: Low is %d, High is %d\n",i, l,h); - - - val= (i<<18)| (odd<<17) | l | (h<<8); - - printf("Counter %d, val: %08x\n", i, val); - setPllReconfigReg(PLL_C_COUNTER_REG, val,0); - // usleep(20); - //change sync at the same time as - if (i>0) { - val= (2<<18)| (odd<<17) | l | (h<<8); - - printf("Counter %d, val: %08x\n", i, val); - setPllReconfigReg(PLL_C_COUNTER_REG, val,0); - - } - - } else { - // if (mode==1) { - // } else { - printf("phase in %d\n",clkPhase[1]); - - if (clkPhase[1]>0) { - inv=0; - phase=clkPhase[1]; - } else { - inv=1; - phase=-1*clkPhase[1]; - } - - printf("phase out %d %08x\n",phase,phase); - if (inv) { - val=phase | (1<<16);// | (inv<<21); - printf("**************** phase word %08x\n",val); - - // printf("Phase, val: %08x\n", val); - setPllReconfigReg(PLL_PHASE_SHIFT_REG,val,0); //shifts counter 0 - } else { - - - val=phase ;// | (inv<<21); - printf("**************** phase word %08x\n",val); - - // printf("Phase, val: %08x\n", val); - setPllReconfigReg(PLL_PHASE_SHIFT_REG,val,0); //shifts counter 0 -#ifndef NEW_PLL_RECONFIG - printf("Start reconfig\n"); setPllReconfigReg(PLL_START_REG, 1,0); - - // bus_w(PLL_CNTRL_REG, 0); - printf("Status register\n"); getPllReconfigReg(PLL_STATUS_REG,0); - // sleep(1); - - printf("PLL mode\n"); setPllReconfigReg(PLL_MODE_REG,1,0); - // usleep(10000); - -#endif - printf("**************** phase word %08x\n",val); - - val=phase | (2<<16);// | (inv<<21); - // printf("Phase, val: %08x\n", val); - setPllReconfigReg(PLL_PHASE_SHIFT_REG,val,0); //shifts counter 0 - } - - - } - -#ifndef NEW_PLL_RECONFIG - printf("Start reconfig\n"); setPllReconfigReg(PLL_START_REG, 1,0); - - // bus_w(PLL_CNTRL_REG, 0); - printf("Status register\n"); getPllReconfigReg(PLL_STATUS_REG,0); - // sleep(1); -#endif - // printf("PLL mode\n"); setPllReconfigReg(PLL_MODE_REG,0,0); - usleep(10000); - if (i<2) { - printf("reset pll\n"); - bus_w(PLL_CNTRL_REG,((1<2*l) { + h=l+1; + odd=1; + } + printf("Counter %d: Low is %d, High is %d\n",i, l,h); + val= (i<<18)| (odd<<17) | l | (h<<8); + printf("Counter %d, val: %08x\n", i, val); + setPllReconfigReg(PLL_C_COUNTER_REG, val,0); + // usleep(20); + //change sync at the same time as + if (i>0) { + val= (2<<18)| (odd<<17) | l | (h<<8); + printf("Counter %d, val: %08x\n", i, val); + setPllReconfigReg(PLL_C_COUNTER_REG, val,0); } - getClockDivider(ic); + } else { + // if (mode==1) { + // } else { + printf("phase in %d\n",clkPhase[1]); + + if (clkPhase[1]>0) { + inv=0; + phase=clkPhase[1]; + } else { + inv=1; + phase=-1*clkPhase[1]; + } + + printf("phase out %d %08x\n",phase,phase); + if (inv) { + val=phase | (1<<16);// | (inv<<21); + printf("**************** phase word %08x\n",val); + + // printf("Phase, val: %08x\n", val); + setPllReconfigReg(PLL_PHASE_SHIFT_REG,val,0); //shifts counter 0 + } else { + + + val=phase ;// | (inv<<21); + printf("**************** phase word %08x\n",val); + + // printf("Phase, val: %08x\n", val); + setPllReconfigReg(PLL_PHASE_SHIFT_REG,val,0); //shifts counter 0 +#ifndef NEW_PLL_RECONFIG + printf("Start reconfig\n"); setPllReconfigReg(PLL_START_REG, 1,0); + + // bus_w(PLL_CNTRL_REG, 0); + printf("Status register\n"); getPllReconfigReg(PLL_STATUS_REG,0); + // sleep(1); + + printf("PLL mode\n"); setPllReconfigReg(PLL_MODE_REG,1,0); + // usleep(10000); + +#endif + printf("**************** phase word %08x\n",val); + + val=phase | (2<<16);// | (inv<<21); + // printf("Phase, val: %08x\n", val); + setPllReconfigReg(PLL_PHASE_SHIFT_REG,val,0); //shifts counter 0 + } } +#ifndef NEW_PLL_RECONFIG + printf("Start reconfig\n"); setPllReconfigReg(PLL_START_REG, 1,0); - - - //u_int32_t l=0x0c; - //u_int32_t h=0x0d; - - u_int32_t tot= PLL_VCO_FREQ_MHZ/d; - - // int ic=0 is run clk; ic=1 is adc clk - printf("set clk divider %d to %d\n", ic, d); - if (ic>1) - return -1; - - if (ic==1 && d>40) - return -1; - - if (d>160) - return -1; - - if (tot>510) - return -1; - - if (tot<1) - return -1; - - - - clkDivider[ic]=d; - configurePll(ic); - - - - return clkDivider[ic]; + // bus_w(PLL_CNTRL_REG, 0); + printf("Status register\n"); getPllReconfigReg(PLL_STATUS_REG,0); + // sleep(1); +#endif + // printf("PLL mode\n"); setPllReconfigReg(PLL_MODE_REG,0,0); + usleep(10000); + if (i<2) { + printf("reset pll\n"); + bus_w(PLL_CNTRL_REG,((1<65535 || st<-65535) - return clkPhase[0]; + printf("\nSetting ADC Phase to %d\n",st); + if (st>65535 || st<-65535) + return clkPhase[0]; #ifdef NEW_PLL_RECONFIG - printf("reset pll\n"); - bus_w(PLL_CNTRL_REG,((1<1) - return -1; - return clkDivider[ic]; - - -/* int ic=0; */ -/* u_int32_t val; */ -/* u_int32_t l,h; */ - -/* printf("get clk divider\n"); */ - - -/* setPllReconfigReg(PLL_MODE_REG,1,0); */ -/* getPllReconfigReg(PLL_MODE_REG,0); */ - -/* u_int32_t addr=0xa; //c0 */ -/* if (ic>0) */ -/* addr=0xb; //c1 */ - -/* val=getPllReconfigReg(PLL_N_COUNTER_REG,0); */ -/* printf("Getting N counter %08x\n",val); */ - -/* l=val&0xff; */ -/* h=(val>>8)&0xff; */ - -/* //getPllReconfigReg(PLL_STATUS_REG,0); */ -/* val=getPllReconfigReg(addr,0); */ -/* printf("Getting C counter %08x\n",val); */ - - - -/* return 800/(l+h); */ - } u_int32_t adcPipeline(int d) { - if(myDetectorType == JUNGFRAU){ - if (d>=0) - bus_w(ADC_PIPELINE_REG, d); - return bus_r(ADC_PIPELINE_REG); - } - if (d>=0) - bus_w(DAQ_REG, d); - return bus_r(DAQ_REG)&0xff; + if (d>=0){ + printf("Setting ADC Pipeline to 0x%x\n",d); + bus_w(ADC_PIPELINE_REG, d); + clockdivider = d; + } + return bus_r(ADC_PIPELINE_REG); + } u_int32_t dbitPipeline(int d){ - if(myDetectorType != JUNGFRAU) - return 0; - if (d>=0) - bus_w(DBIT_PIPELINE_REG, d); - return bus_r(DBIT_PIPELINE_REG); + if (d>=0){ + printf("Setting DBIT Pipeline to 0x%x\n",d); + bus_w(DBIT_PIPELINE_REG, d); + } + return bus_r(DBIT_PIPELINE_REG); } u_int32_t setSetLength(int d) { - return 0; + return 0; } u_int32_t getSetLength() { - return 0; + return 0; } u_int32_t setOversampling(int d) { - if (d>=0 && d<=255) - bus_w(OVERSAMPLING_REG, d); + if (d>=0 && d<=255) + bus_w(OVERSAMPLING_REG, d); - return bus_r(OVERSAMPLING_REG); + return bus_r(OVERSAMPLING_REG); } u_int32_t setWaitStates(int d1) { - return 0; + return 0; } u_int32_t getWaitStates() { - return 0; + return 0; } u_int32_t setTotClockDivider(int d) { - return 0; + return 0; } u_int32_t getTotClockDivider() { - return 0; + return 0; } u_int32_t setTotDutyCycle(int d) { - return 0; + return 0; } u_int32_t getTotDutyCycle() { - return 0; + return 0; } u_int32_t setExtSignal(int d, enum externalSignalFlag mode) { - //int modes[]={EXT_SIG_OFF, EXT_GATE_IN_ACTIVEHIGH, EXT_GATE_IN_ACTIVELOW,EXT_TRIG_IN_RISING,EXT_TRIG_IN_FALLING,EXT_RO_TRIG_IN_RISING, EXT_RO_TRIG_IN_FALLING,EXT_GATE_OUT_ACTIVEHIGH, EXT_GATE_OUT_ACTIVELOW, EXT_TRIG_OUT_RISING, EXT_TRIG_OUT_FALLING, EXT_RO_TRIG_OUT_RISING, EXT_RO_TRIG_OUT_FALLING}; - // int off=d*SIGNAL_OFFSET; - u_int32_t c; c=bus_r(EXT_SIGNAL_REG); @@ -833,12 +604,7 @@ u_int32_t setExtSignal(int d, enum externalSignalFlag mode) { setTiming(GET_EXTERNAL_COMMUNICATION_MODE); } - -// if (mode<=RO_TRIGGER_OUT_FALLING_EDGE && mode>=0) -// bus_w(EXT_SIGNAL_REG,((modes[mode])<=0) { + if (mode<=RO_TRIGGER_OUT_FALLING_EDGE && mode>=0) { #ifdef VERBOSE - printf("writing signal register number %d mode %04x\n",d, modes[mode]); + printf("writing signal register number %d mode %04x\n",d, modes[mode]); #endif - bus_w(EXT_SIGNAL_REG,((modes[mode])<>off); - - if (mode=0 && d<4) { #ifdef VERBOSE printf("gettings signal variable number %d value %04x\n", d, signals[d]); @@ -883,27 +639,25 @@ int getExtSignal(int d) { return signals[d]; } else return -1; - - } int getFPGASignal(int d) { - int modes[]={SIGNAL_OFF, GATE_IN_ACTIVE_HIGH, GATE_IN_ACTIVE_LOW,TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE,RO_TRIGGER_IN_RISING_EDGE, RO_TRIGGER_IN_FALLING_EDGE, GATE_OUT_ACTIVE_HIGH, GATE_OUT_ACTIVE_LOW, TRIGGER_OUT_RISING_EDGE, TRIGGER_OUT_FALLING_EDGE, RO_TRIGGER_OUT_RISING_EDGE,RO_TRIGGER_OUT_FALLING_EDGE}; + int modes[]={SIGNAL_OFF, GATE_IN_ACTIVE_HIGH, GATE_IN_ACTIVE_LOW,TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE,RO_TRIGGER_IN_RISING_EDGE, RO_TRIGGER_IN_FALLING_EDGE, GATE_OUT_ACTIVE_HIGH, GATE_OUT_ACTIVE_LOW, TRIGGER_OUT_RISING_EDGE, TRIGGER_OUT_FALLING_EDGE, RO_TRIGGER_OUT_RISING_EDGE,RO_TRIGGER_OUT_FALLING_EDGE}; - int off=d*SIGNAL_OFFSET; - int mode=((bus_r(EXT_SIGNAL_REG)&(SIGNAL_MASK<>off); + int off=d*SIGNAL_OFFSET; + int mode=((bus_r(EXT_SIGNAL_REG)&(SIGNAL_MASK<>off); - if (mode<=RO_TRIGGER_OUT_FALLING_EDGE) { - if (modes[mode]!=SIGNAL_OFF && signals[d]!=MASTER_SLAVE_SYNCHRONIZATION) - signals[d]=modes[mode]; + if (mode<=RO_TRIGGER_OUT_FALLING_EDGE) { + if (modes[mode]!=SIGNAL_OFF && signals[d]!=MASTER_SLAVE_SYNCHRONIZATION) + signals[d]=modes[mode]; #ifdef VERYVERBOSE - printf("gettings signal register number %d value %04x\n", d, modes[mode]); + printf("gettings signal register number %d value %04x\n", d, modes[mode]); #endif - return modes[mode]; - } else - return -1; + return modes[mode]; + } else + return -1; } @@ -924,118 +678,122 @@ enum externalCommunicationMode{ GATE_WITH_START_TRIGGER, GATE_COINCIDENCE_WITH_INTERNAL_ENABLE }; -*/ + */ int setTiming(int ti) { + int ret=GET_EXTERNAL_COMMUNICATION_MODE; - int ret=GET_EXTERNAL_COMMUNICATION_MODE; + int g=-1, t=-1, rot=-1; - int g=-1, t=-1, rot=-1; + int i; - int i; + switch (ti) { + case AUTO_TIMING: + printf("\nSetting timing to auto\n"); + timingMode=ti; + // disable all gates/triggers in except if used for master/slave synchronization + for (i=0; i<4; i++) { + if (getFPGASignal(i)>0 && getFPGASignal(i)0 && getFPGASignal(i)=0 && t>=0 && rot<0) { - ret=GATE_WITH_START_TRIGGER; - } else if (g<0 && t>=0 && rot<0) { - ret=TRIGGER_EXPOSURE; - } else if (g>=0 && t<0 && rot<0) { - ret=GATE_FIX_NUMBER; - } else if (g<0 && t<0 && rot>0) { - ret=TRIGGER_READOUT; - } else if (g<0 && t<0 && rot<0) { - ret=AUTO_TIMING; - } + if (g>=0 && t>=0 && rot<0) { + ret=GATE_WITH_START_TRIGGER; + } else if (g<0 && t>=0 && rot<0) { + ret=TRIGGER_EXPOSURE; + } else if (g>=0 && t<0 && rot<0) { + ret=GATE_FIX_NUMBER; + } else if (g<0 && t<0 && rot>0) { + ret=TRIGGER_READOUT; + } else if (g<0 && t<0 && rot<0) { + ret=AUTO_TIMING; + } - // timingMode=ret; + // timingMode=ret; - return ret; + return ret; } @@ -1043,94 +801,68 @@ int setTiming(int ti) { int setConfigurationRegister(int d) { #ifdef VERBOSE - printf("Setting configuration register to %x",d); + printf("Setting configuration register to %x",d); #endif - if (d>=0) { - bus_w(CONFIG_REG,d); - } + if (d>=0) { + bus_w(CONFIG_REG,d); + } #ifdef VERBOSE - printf("configuration register is %x", bus_r(CONFIG_REG)); + printf("configuration register is %x", bus_r(CONFIG_REG)); #endif - return bus_r(CONFIG_REG); + return bus_r(CONFIG_REG); } int setToT(int d) { - //int ret=0; - int reg; + //int ret=0; + int reg; #ifdef VERBOSE - printf("Setting ToT to %d\n",d); + printf("Setting ToT to %d\n",d); #endif - reg=bus_r(CONFIG_REG); + reg=bus_r(CONFIG_REG); #ifdef VERBOSE - printf("Before: ToT is %x\n", reg); + printf("Before: ToT is %x\n", reg); #endif - if (d>0) { - bus_w(CONFIG_REG,reg|TOT_ENABLE_BIT); - } else if (d==0) { - bus_w(CONFIG_REG,reg&(~TOT_ENABLE_BIT)); - } - reg=bus_r(CONFIG_REG); + if (d>0) { + bus_w(CONFIG_REG,reg|TOT_ENABLE_BIT); + } else if (d==0) { + bus_w(CONFIG_REG,reg&(~TOT_ENABLE_BIT)); + } + reg=bus_r(CONFIG_REG); #ifdef VERBOSE - printf("ToT is %x\n", reg); + printf("ToT is %x\n", reg); #endif - if (reg&TOT_ENABLE_BIT) - return 1; - else - return 0; + if (reg&TOT_ENABLE_BIT) + return 1; + else + return 0; } int setContinousReadOut(int d) { - //int ret=0; - int reg; + //int ret=0; + int reg; #ifdef VERBOSE - printf("Setting Continous readout to %d\n",d); + printf("Setting Continous readout to %d\n",d); #endif - reg=bus_r(CONFIG_REG); + reg=bus_r(CONFIG_REG); #ifdef VERBOSE - printf("Before: Continous readout is %x\n", reg); + printf("Before: Continous readout is %x\n", reg); #endif - if (d>0) { - bus_w(CONFIG_REG,reg|CONT_RO_ENABLE_BIT); - } else if (d==0) { - bus_w(CONFIG_REG,reg&(~CONT_RO_ENABLE_BIT)); - } - reg=bus_r(CONFIG_REG); + if (d>0) { + bus_w(CONFIG_REG,reg|CONT_RO_ENABLE_BIT); + } else if (d==0) { + bus_w(CONFIG_REG,reg&(~CONT_RO_ENABLE_BIT)); + } + reg=bus_r(CONFIG_REG); #ifdef VERBOSE - printf("Continous readout is %x\n", reg); + printf("Continous readout is %x\n", reg); #endif - if (reg&CONT_RO_ENABLE_BIT) - return 1; - else - return 0; + if (reg&CONT_RO_ENABLE_BIT) + return 1; + else + return 0; } -int startReceiver(int start) { - u_int32_t addr=CONFIG_REG; -#ifdef VERBOSE - if(start) - printf("Setting up detector to send to Receiver\n"); - else - printf("Setting up detector to send to CPU\n"); -#endif - int reg=bus_r(addr); - //for start recever, write 0 and for stop, write 1 - if (!start) - bus_w(CONFIG_REG,reg&(~GB10_NOT_CPU_BIT)); - else - bus_w(CONFIG_REG,reg|GB10_NOT_CPU_BIT); - - reg=bus_r(addr); -//#ifdef VERBOSE - printf("Config Reg %x\n", reg); -//#endif - int d =reg&GB10_NOT_CPU_BIT; - if(d!=0) d=1; - if(d!=start) - return OK; - else - return FAIL; -} u_int64_t getDetectorNumber() { @@ -1151,245 +883,205 @@ u_int64_t getDetectorNumber() { } u_int32_t getFirmwareVersion() { - return bus_r(FPGA_VERSION_REG); + return bus_r(FPGA_VERSION_REG); } u_int32_t getFirmwareSVNVersion(){ - return bus_r(FPGA_SVN_REG); + return bus_r(FPGA_SVN_REG); } // for fpga test u_int32_t testFpga(void) { - printf("Testing FPGA:\n"); - volatile u_int32_t val,addr,val2; - int result=OK,i; - //fixed pattern - val=bus_r(FIX_PATT_REG); - if (val==FIXED_PATT_VAL) { - printf("fixed pattern ok!! %08x\n",val); - } else { - printf("fixed pattern wrong!! %08x\n",val); - result=FAIL; - } + printf("Testing FPGA:\n"); + volatile u_int32_t val,addr,val2; + int result=OK,i; + //fixed pattern + val=bus_r(FIX_PATT_REG); + if (val==FIXED_PATT_VAL) { + printf("fixed pattern ok!! %08x\n",val); + } else { + printf("fixed pattern wrong!! %08x\n",val); + result=FAIL; + } - //dummy register - addr = DUMMY_REG; - for(i=0;i<1000000;i++) - { - val=0x5A5A5A5A-i; - bus_w(addr, val); - val=bus_r(addr); - if (val!=0x5A5A5A5A-i) { - printf("ATTEMPT:%d:\tFPGA dummy register wrong!! %x instead of %x \n",i,val,0x5A5A5A5A-i); - result=FAIL; - } - val=(i+(i<<10)+(i<<20)); - bus_w(addr, val); - val2=bus_r(addr); - if (val2!=val) { - printf("ATTEMPT:%d:\tFPGA dummy register wrong!! read %x instead of %x.\n",i,val2,val); - result=FAIL; - } - val=0x0F0F0F0F; - bus_w(addr, val); - val=bus_r(addr); - if (val!=0x0F0F0F0F) { - printf("ATTEMPT:%d:\tFPGA dummy register wrong!! %x instead of 0x0F0F0F0F \n",i,val); - result=FAIL; - } - val=0xF0F0F0F0; - bus_w(addr, val); - val=bus_r(addr); - if (val!=0xF0F0F0F0) { - printf("ATTEMPT:%d:\tFPGA dummy register wrong!! %x instead of 0xF0F0F0F0 \n\n",i,val); - result=FAIL; - } - } - if(result==OK) - { - printf("----------------------------------------------------------------------------------------------"); - printf("\nATTEMPT 1000000: FPGA DUMMY REGISTER OK!!!\n"); - printf("----------------------------------------------------------------------------------------------"); - } - printf("\n"); - return result; + //dummy register + addr = DUMMY_REG; + for(i=0;i<1000000;i++) + { + val=0x5A5A5A5A-i; + bus_w(addr, val); + val=bus_r(addr); + if (val!=0x5A5A5A5A-i) { + printf("ATTEMPT:%d:\tFPGA dummy register wrong!! %x instead of %x \n",i,val,0x5A5A5A5A-i); + result=FAIL; + } + val=(i+(i<<10)+(i<<20)); + bus_w(addr, val); + val2=bus_r(addr); + if (val2!=val) { + printf("ATTEMPT:%d:\tFPGA dummy register wrong!! read %x instead of %x.\n",i,val2,val); + result=FAIL; + } + val=0x0F0F0F0F; + bus_w(addr, val); + val=bus_r(addr); + if (val!=0x0F0F0F0F) { + printf("ATTEMPT:%d:\tFPGA dummy register wrong!! %x instead of 0x0F0F0F0F \n",i,val); + result=FAIL; + } + val=0xF0F0F0F0; + bus_w(addr, val); + val=bus_r(addr); + if (val!=0xF0F0F0F0) { + printf("ATTEMPT:%d:\tFPGA dummy register wrong!! %x instead of 0xF0F0F0F0 \n\n",i,val); + result=FAIL; + } + } + if(result==OK) + { + printf("----------------------------------------------------------------------------------------------"); + printf("\nATTEMPT 1000000: FPGA DUMMY REGISTER OK!!!\n"); + printf("----------------------------------------------------------------------------------------------"); + } + printf("\n"); + return result; } -// for fpga test u_int32_t testRAM(void) { - int result=OK; - - printf("TestRAM not implemented\n"); - -/* int i=0; - allocateRAM(); - // while(i<100000) { - memcpy(ram_values, values, dataBytes); - printf ("Testing RAM:\t%d: copied fifo %x to memory %x size %d\n",i++, (unsigned int)(values), (unsigned int)(ram_values), dataBytes); - // } - * -*/ - return result; + int result=OK; + printf("TestRAM not implemented\n"); + return result; } int getNModBoard() { -if(myDetectorType == JUNGFRAU) return 1; -else - return 32;//nModX; } int setNMod(int n) { - -/* printf("Writin ADC disable register %08x\n",n); */ -/* bus_w(ADC_LATCH_DISABLE_REG,n); */ - return getNMod(); + return 1; } int getNMod() { -/* u_int32_t reg; */ -/* int i; */ -/* reg=bus_r(ADC_LATCH_DISABLE_REG); */ - -/* printf("Read ADC disable register %08x\n",reg); */ -/* nModX=32; */ -/* for (i=0; i<32; i++) { */ -/* if (reg & (1<> 32; - vMSB=v64&(0xffffffff); - bus_w(aMSB,vMSB); - } - return get64BitReg(aLSB, aMSB); + int64_t v64; + u_int32_t vLSB,vMSB; + if (value!=-1) { + vLSB=value&(0xffffffff); + bus_w(aLSB,vLSB); + v64=value>> 32; + vMSB=v64&(0xffffffff); + bus_w(aMSB,vMSB); + } + return get64BitReg(aLSB, aMSB); } int64_t get64BitReg(int aLSB, int aMSB){ - int64_t v64; - u_int32_t vLSB,vMSB; - vLSB=bus_r(aLSB); - vMSB=bus_r(aMSB); - v64=vMSB; - v64=(v64<<32) | vLSB; + int64_t v64; + u_int32_t vLSB,vMSB; + vLSB=bus_r(aLSB); + vMSB=bus_r(aMSB); + v64=vMSB; + v64=(v64<<32) | vLSB; - printf("reg64(%x,%x) %x %x %llx\n", aLSB, aMSB, vLSB, vMSB, v64); + printf("reg64(%x,%x) %x %x %llx\n", aLSB, aMSB, vLSB, vMSB, v64); - return v64; + return v64; } int64_t setFrames(int64_t value){ - return set64BitReg(value, SET_FRAMES_LSB_REG, SET_FRAMES_MSB_REG); + if(value!=-1) + printf("\nSetting number of frames to %lld\n",(long long int)value); + return set64BitReg(value, SET_FRAMES_LSB_REG, SET_FRAMES_MSB_REG); } int64_t getFrames(){ - /*printf("gf");*/ - return get64BitReg(GET_FRAMES_LSB_REG, GET_FRAMES_MSB_REG); + return get64BitReg(GET_FRAMES_LSB_REG, GET_FRAMES_MSB_REG); } int64_t setExposureTime(int64_t value){ - /* time is in ns */ - if (value!=-1) - value*=(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); - return set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); + if (value!=-1){ + printf("\nSetting exptime to %lld\n",(long long int)value); + value*=(1E-3*clockdivider); + } + return set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } int64_t getExposureTime(){ - return get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); + return get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } int64_t setGates(int64_t value){ - return set64BitReg(value, SET_GATES_LSB_REG, SET_GATES_MSB_REG); + if(value!=-1) + printf("\nSetting number of gates to %lld\n",(long long int)value); + return set64BitReg(value, SET_GATES_LSB_REG, SET_GATES_MSB_REG); } int64_t getGates(){ - return get64BitReg(GET_GATES_LSB_REG, GET_GATES_MSB_REG); + return get64BitReg(GET_GATES_LSB_REG, GET_GATES_MSB_REG); } int64_t setPeriod(int64_t value){ - /* time is in ns */ - if (value!=-1) { - // value*=(1E-9*CLK_FREQ); - value*=(1E-3*clkDivider[1]); - } - if (value%2==0) { - - printf("Adding one to period: was %08llx ", value); - value+=1; - printf("now is %08llx\n ", value); - - - } else - printf("Period already even is %08llx\n ", value); - - - return set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); + if (value!=-1){ + printf("\nSetting period to %lld\n",(long long int)value); + value*=(1E-3*clockdivider); + } + return set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } int64_t getPeriod(){ - return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); + return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } int64_t setDelay(int64_t value){ - /* time is in ns */ - if (value!=-1) { - value*=(1E-3*clkDivider[1]);//(1E-9*CLK_FREQ); - } - return set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); + if (value!=-1){ + printf("\nSetting delay to %lld\n",(long long int)value); + value*=(1E-3*clockdivider); + } + return set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } int64_t getDelay(){ - return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ); + return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } int64_t setTrains(int64_t value){ - return set64BitReg(value, SET_CYCLES_LSB_REG, SET_CYCLES_MSB_REG); + if(value!=-1) + printf("\nSetting number of cycles to %lld\n",(long long int)value); + return set64BitReg(value, SET_CYCLES_LSB_REG, SET_CYCLES_MSB_REG); } int64_t getTrains(){ - return get64BitReg(GET_CYCLES_LSB_REG, GET_CYCLES_MSB_REG); + return get64BitReg(GET_CYCLES_LSB_REG, GET_CYCLES_MSB_REG); } int64_t setProbes(int64_t value){ - return 0; + return 0; } int64_t setProgress() { - - //????? eventually call after setting the registers - -return 0; + return 0; } @@ -1397,337 +1089,235 @@ return 0; int64_t getProgress() { - //should be done in firmware!!!! + //should be done in firmware!!!! return 0; } int64_t getActualTime(){ - return get64BitReg(GET_ACTUAL_TIME_LSB_REG, GET_ACTUAL_TIME_MSB_REG)/(1E-9*CLK_FREQ); + return get64BitReg(GET_ACTUAL_TIME_LSB_REG, GET_ACTUAL_TIME_MSB_REG)/(1E-9*CLK_FREQ); } int64_t getMeasurementTime(){ - int64_t v=get64BitReg(GET_MEASUREMENT_TIME_LSB_REG, GET_MEASUREMENT_TIME_MSB_REG); - // int64_t mask=0x8000000000000000; - // if (v & mask ) { - //#ifdef VERBOSE - // printf("no measurement time left\n"); - //#endif - // return -1E+9; - // } else - return v/(1E-9*CLK_FREQ); + int64_t v=get64BitReg(GET_MEASUREMENT_TIME_LSB_REG, GET_MEASUREMENT_TIME_MSB_REG); + return v/(1E-9*CLK_FREQ); } int64_t getFramesFromStart(){ - int64_t v=get64BitReg(FRAMES_FROM_START_LSB_REG, FRAMES_FROM_START_MSB_REG); - int64_t v1=get64BitReg(FRAMES_FROM_START_PG_LSB_REG, FRAMES_FROM_START_PG_MSB_REG); + int64_t v=get64BitReg(FRAMES_FROM_START_LSB_REG, FRAMES_FROM_START_MSB_REG); + int64_t v1=get64BitReg(FRAMES_FROM_START_PG_LSB_REG, FRAMES_FROM_START_PG_MSB_REG); - printf("Frames from start data streaming %lld\n",v); - printf("Frames from start run control %lld\n",v1); + printf("Frames from start data streaming %lld\n",v); + printf("Frames from start run control %lld\n",v1); - // int64_t mask=0x8000000000000000; - // if (v & mask ) { - //#ifdef VERBOSE - // printf("no measurement time left\n"); - //#endif - // return -1E+9; - // } else - return v; + return v; } ROI *setROI(int nroi,ROI* arg,int *retvalsize, int *ret) { - - if(myDetectorType == JUNGFRAU) - cprintf(RED,"ROI Not implemented for Jungfrau yet\n"); - return NULL; - - - ROI retval[MAX_ROIS]; - int i, ich; - adcDisableMask=0xfffffffff; /*warning: integer constant is too large for ‘long’ type,warning: large integer implicitly truncated to unsigned type*/ - - printf("Setting ROI\n"); - if (nroi>=0) { - if (nroi==0) { - adcDisableMask=0; - } else { - for (i=0; i=0 && ichMAX_ROIS) { - *retvalsize-=1; - break; - } - retval[*retvalsize-1].xmin=ich; - retval[*retvalsize-1].xmax=ich; - } else { - if ((adcDisableMask)&(1<<(ich-1))) { - *retvalsize+=1; - if (*retvalsize>MAX_ROIS) { - *retvalsize-=1; - break; - } - retval[*retvalsize-1].xmin=ich; - } - retval[*retvalsize-1].xmax=ich; - } - } - } - getDynamicRange(); - return retval;/*warning: function returns address of local variable*/ - + cprintf(RED,"ROI Not implemented yet\n"); + return NULL; } int loadImage(int index, short int ImageVals[]){ - printf("loadImage Not implemented yet\n"); - - /* - u_int32_t address; - switch (index) { - case DARK_IMAGE : - address = DARK_IMAGE_REG; - break; - case GAIN_IMAGE : - address = GAIN_IMAGE_REG; - break; - } - volatile u_int16_t *ptr; - ptr=(u_int16_t*)(CSP0BASE+address*2); -#ifdef VERBOSE - int i; - for(i=0;i<6;i++) - printf("%d:%d\t",i,ImageVals[i]); -#endif - memcpy(ptr,ImageVals ,dataBytes); -#ifdef VERBOSE - printf("\nLoaded x%08x address with image of index %d\n",(unsigned int)(ptr),index); -#endif - */ - return OK; } int64_t getProbes(){ - return 0; + return 0; } int setDACRegister(int idac, int val, int imod) { - u_int32_t addr, reg, mask; - int off; + u_int32_t addr, reg, mask; + int off; #ifdef VERBOSE - if(val==-1) - printf("Getting dac register%d module %d\n",idac,imod); - else - printf("Setting dac register %d module %d to %d\n",idac,imod,val); + if(val==-1) + printf("Getting dac register%d module %d\n",idac,imod); + else + printf("Setting dac register %d module %d to %d\n",idac,imod,val); #endif - switch(idac){ - case 0: - case 1: - case 2: - addr=MOD_DACS1_REG; - break; - case 3: - case 4: - case 5: - addr=MOD_DACS2_REG; - break; - case 6: - case 7: - addr=MOD_DACS3_REG; - break; - default: - printf("weird idac value %d\n",idac); - return -1; - break; - } - //saving only the msb - val=val>>2; + switch(idac){ + case 0: + case 1: + case 2: + addr=MOD_DACS1_REG; + break; + case 3: + case 4: + case 5: + addr=MOD_DACS2_REG; + break; + case 6: + case 7: + addr=MOD_DACS3_REG; + break; + default: + printf("weird idac value %d\n",idac); + return -1; + break; + } + //saving only the msb + val=val>>2; - off=(idac%3)*10; - mask=~((0x3ff)<=0 && val>off)&0x3ff; - //since we saved only the msb - val=val<<2; + if (val>=0 && val>off)&0x3ff; + //since we saved only the msb + val=val<<2; - //val=(bus_r(addr)>>off)&0x3ff; + //val=(bus_r(addr)>>off)&0x3ff; #ifdef VERBOSE - printf("Dac %d module %d register is %d\n\n",idac,imod,val); + printf("Dac %d module %d register is %d\n\n",idac,imod,val); #endif - return val; + return val; } int getTemperature(int tempSensor, int imod){ - int val; - imod=0;//ignoring more than 1 mod for now - int i,j,repeats=6; - u_int32_t tempVal=0; + int val; + imod=0;//ignoring more than 1 mod for now + int i,j,repeats=6; + u_int32_t tempVal=0; #ifdef VERBOSE - char cTempSensor[2][100]={"ADCs/ASICs","VRs/FPGAs"}; - printf("Getting Temperature of module:%d for the %s for tempsensor:%d\n",imod,cTempSensor[tempSensor],tempSensor); + char cTempSensor[2][100]={"ADCs/ASICs","VRs/FPGAs"}; + printf("Getting Temperature of module:%d for the %s for tempsensor:%d\n",imod,cTempSensor[tempSensor],tempSensor); #endif - bus_w(TEMP_IN_REG,(T1_CLK_BIT)|(T1_CS_BIT)|(T2_CLK_BIT)|(T2_CS_BIT));//standby - bus_w(TEMP_IN_REG,((T1_CLK_BIT)&~(T1_CS_BIT))|(T2_CLK_BIT));//high clk low cs + bus_w(TEMP_IN_REG,(T1_CLK_BIT)|(T1_CS_BIT)|(T2_CLK_BIT)|(T2_CS_BIT));//standby + bus_w(TEMP_IN_REG,((T1_CLK_BIT)&~(T1_CS_BIT))|(T2_CLK_BIT));//high clk low cs - for(i=0;i<20;i++) { - //repeats is number of register writes for delay - for(j=0;j>1);//fpga - } - } + if(i<=10){//only the first time + if(!tempSensor) + tempVal= (tempVal<<1) + (bus_r(TEMP_OUT_REG) & (1));//adc + else + tempVal= (tempVal<<1) + ((bus_r(TEMP_OUT_REG) & (2))>>1);//fpga + } + } - bus_w(TEMP_IN_REG,(T1_CLK_BIT)|(T1_CS_BIT)|(T2_CLK_BIT)|(T2_CS_BIT));//standby - val=((int)tempVal)/4.0; + bus_w(TEMP_IN_REG,(T1_CLK_BIT)|(T1_CS_BIT)|(T2_CLK_BIT)|(T2_CS_BIT));//standby + val=((int)tempVal)/4.0; #ifdef VERBOSE - printf("Temperature of module:%d for the %s is %.2fC\n",imod,cTempSensor[tempSensor],val); + printf("Temperature of module:%d for the %s is %.2fC\n",imod,cTempSensor[tempSensor],val); #endif - return val; + return val; } int initHighVoltage(int val, int imod){ - - u_int32_t offw,codata; - u_int16_t valw, dacvalue; - int iru,i,ddx,csdx,cdx; - float alpha=0.55, fval=val; - if (val>=0) { - - if (val<60) { - dacvalue=0; - val=60; - } else if (val>=200) { - dacvalue=0x1; - val=200; - } else { - dacvalue=1.+(200.-val)/alpha; - val=200.-(dacvalue-1)*alpha; - } - printf ("****************************** setting val %d, dacval %d\n",val, dacvalue); - offw=DAC_REG; - - ddx=8; csdx=10; cdx=9; - codata=((dacvalue)&0xff); - + u_int32_t offw,codata; + u_int16_t valw, dacvalue; + int i,ddx,csdx,cdx; + float alpha=0.55; - - - valw=0xffff; bus_w(offw,(valw)); // start point - valw=((valw&(~(0x1<>(7-i))&0x1)<=0) { + if (val<60) { + dacvalue=0; + val=60; + } else if (val>=200) { + dacvalue=0x1; + val=200; + } else { + dacvalue=1.+(200.-val)/alpha; + val=200.-(dacvalue-1)*alpha; + } + printf ("****************************** setting val %d, dacval %d\n",val, dacvalue); + offw=DAC_REG; - - valw=0xffff; bus_w(offw,(valw)); // stop point =start point of course */ - - - printf("Writing %d in HVDAC \n",dacvalue); - - bus_w(HV_REG,val); - } + ddx=8; csdx=10; cdx=9; + codata=((dacvalue)&0xff); - return bus_r(HV_REG); + + valw=0xffff; bus_w(offw,(valw)); // start point + valw=((valw&(~(0x1<>(7-i))&0x1)<>JUNGFRAU_SPEED_GAIN_OFFSET); + retval=((bus_r(addr)&SPEED_GAIN_MASK)>>SPEED_GAIN_OFFSET); //#ifdef VERBOSE - printf("Value read from Speed of Gain reg is %d\n",retval); - printf("Gain Reg Value is %d\n",bus_r(addr)); + printf("Value read from Speed of Gain reg is 0x%x\n",retval); + printf("Gain Reg Value is 0x%x\n",bus_r(addr)); //#endif return retval; } @@ -1742,36 +1332,14 @@ int setADC(int adc){ // setDAQRegister();//token timing cleanFifo();//adc sync - //with gotthard module - if(withGotthard){ - //set packet size - ipPacketSize= DEFAULT_IP_PACKETSIZE; - udpPacketSize=DEFAULT_UDP_PACKETSIZE; - //set channel mask - nchips = GOTTHARDNCHIP; - nchans = GOTTHARDNCHAN; - mask = ACTIVE_ADC_MASK; - } - //with moench module all adc - else{/* if(adc==-1){*/ - //set packet size - ipPacketSize= DEFAULT_IP_PACKETSIZE; - udpPacketSize=DEFAULT_UDP_PACKETSIZE; - //set channel mask - nchips = N_CHIP; - nchans = N_CHANS; - mask = ACTIVE_ADC_MASK; - }/* - //with moench module 1 adc -- NOT IMPLEMENTED - else{ - ipPacketSize= ADC1_IP_PACKETSIZE; - udpPacketSize=ADC1_UDP_PACKETSIZE; - //set channel mask - nchips = NCHIPS_PER_ADC; - nchans = GOTTHARDNCHAN; - mask = 1< 1 ) { - sum += *addr++; - count -= 2; - } - if( count > 0 ) sum += *addr; // Add left-over byte, if any - while (sum>>16) sum = (sum & 0xffff) + (sum >> 16);// Fold 32-bit sum to 16 bits - checksum = (~sum)&0xffff; + count=sizeof(ip); + addr=&(ip); /* warning: assignment from incompatible pointer type */ + while( count > 1 ) { + sum += *addr++; + count -= 2; + } + if( count > 0 ) sum += *addr; // Add left-over byte, if any + while (sum>>16) sum = (sum & 0xffff) + (sum >> 16);// Fold 32-bit sum to 16 bits + checksum = (~sum)&0xffff; - printf("IP checksum is 0x%lx\n",checksum); + printf("IP checksum is 0x%lx\n",checksum); - return checksum; + return checksum; } #ifdef NEW_GBE_INTERFACE int writeGbeReg(int ivar, uint32_t val, int addr, int interface) { -/* #define GBE_CTRL_WSTROBE 0 */ -/* #define GBE_CTRL_VAR_OFFSET 16 */ -/* #define GBE_CTRL_VAR_MASK 0XF */ -/* #define GBE_CTRL_RAMADDR_OFFSET 24 */ -/* #define GBE_CTRL_RAMADDR_MASK 0X3F */ -/* #define GBE_CTRL_INTERFACE 23 */ - uint32_t ctrl=((ivar&GBE_CTRL_VAR_MASK)<>32)&0xFFFFFFFF; - vals[IPCHECKSUM_ADDR]=checksum; - vals[GBE_DELAY_ADDR]=0; - vals[GBE_RESERVED1_ADDR]=sourceport; - vals[GBE_RESERVED2_ADDR]=interface; - vals[DETECTOR_MAC_L_ADDR]=(sourcemac)&0xFFFFFFFF; - vals[DETECTOR_MAC_H_ADDR]=(sourcemac>>32)&0xFFFFFFFF; - vals[DETECTOR_IP_ADDR]=sourceip; + printf("Configure interface %d\n",interface); + const int nvar=12; + uint32_t vals[nvar]; + int ivar; + int addr=0; + vals[RX_UDP_IP_ADDR]=destip; + vals[RX_UDP_PORTS_ADDR]=destport; + vals[RX_UDP_MAC_L_ADDR]=(destmac)&0xFFFFFFFF; + vals[RX_UDP_MAC_H_ADDR]=(destmac>>32)&0xFFFFFFFF; + vals[IPCHECKSUM_ADDR]=checksum; + vals[GBE_DELAY_ADDR]=0; + vals[GBE_RESERVED1_ADDR]=sourceport; + vals[GBE_RESERVED2_ADDR]=interface; + vals[DETECTOR_MAC_L_ADDR]=(sourcemac)&0xFFFFFFFF; + vals[DETECTOR_MAC_H_ADDR]=(sourcemac>>32)&0xFFFFFFFF; + vals[DETECTOR_IP_ADDR]=sourceip; + + for (ivar=0; ivar>32)&0xFFFFFFFF);//rx_udpmacH_AReg_c - bus_w(RX_UDPMACL_AREG,(destmac)&0xFFFFFFFF);//rx_udpmacL_AReg_c - bus_w(DETECTORMACH_AREG,(sourcemac>>32)&0xFFFFFFFF);//detectormacH_AReg_c - bus_w(DETECTORMACL_AREG,(sourcemac)&0xFFFFFFFF);//detectormacL_AReg_c - bus_w(UDPPORTS_AREG,((sourceport&0xFFFF)<<16)+(destport&0xFFFF));//udpports_AReg_c - bus_w(IPCHKSUM_AREG,(checksum&0xFFFF));//ipchksum_AReg_c + bus_w(RX_UDPMACH_AREG,(destmac>>32)&0xFFFFFFFF);//rx_udpmacH_AReg_c + bus_w(RX_UDPMACL_AREG,(destmac)&0xFFFFFFFF);//rx_udpmacL_AReg_c + bus_w(DETECTORMACH_AREG,(sourcemac>>32)&0xFFFFFFFF);//detectormacH_AReg_c + bus_w(DETECTORMACL_AREG,(sourcemac)&0xFFFFFFFF);//detectormacL_AReg_c + bus_w(UDPPORTS_AREG,((sourceport&0xFFFF)<<16)+(destport&0xFFFF));//udpports_AReg_c + bus_w(IPCHKSUM_AREG,(checksum&0xFFFF));//ipchksum_AReg_c #endif - bus_w(CONTROL_REG,GB10_RESET_BIT); - sleep(1); - bus_w(CONTROL_REG,0); - usleep(10000); - bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); - printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); + bus_w(CONTROL_REG,GB10_RESET_BIT); + sleep(1); + bus_w(CONTROL_REG,0); + usleep(10000); + bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); + printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); -return 0; //any value doesnt matter - dhanya + return 0; //any value doesnt matter - dhanya } @@ -1915,35 +1483,30 @@ return 0; //any value doesnt matter - dhanya int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int sourceip,int ival,uint32_t destport) { -//int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ - - uint32_t sourceport = 0x7e9a; // 0xE185; - int interface=0; - int ngb; -volatile u_int32_t conf= bus_r(CONFIG_REG); - - - + //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ + uint32_t sourceport = 0x7e9a; // 0xE185; + int interface=0; + int ngb; + volatile u_int32_t conf= bus_r(CONFIG_REG); #ifdef NEW_GBE_INTERFACE - ngb=2; - printf("--------- New XGB interface\n"); + ngb=2; + printf("--------- New XGB interface\n"); #else - ngb=1; - printf("********* Old XGB interface\n"); + ngb=1; + printf("********* Old XGB interface\n"); #endif - for (interface=0; interface >((i)*2))==3) { *\/ */ -/* /\* i++; *\/ */ -/* /\* if (i>15) *\/ */ -/* /\* break; *\/ */ -/* /\* } *\/ */ -/* /\* if (i<16) { *\/ */ -/* bus_w16(DUMMY_REG,i); */ -/* } */ -/* val=*values; */ - - - // bus_w16(DUMMY_REG,0); // - for (i=0; i<16; i++) { - - - // bus_w16(DUMMY_REG,i); - // bus_r16(DUMMY_REG); -/* dum=(((u_int16_t*)(now_ptr))+i); */ -/* *dum=bus_r16(FIFO_DATA_REG); */ -/* a=bus_r16(FIFO_DATA_REG); */ - //dum=(((u_int32_t*)(now_ptr))+i); - - // a=*values;//bus_r(FIFO_DATA_REG); - // if ((adcDisableMask&(3<<(i*2)))==0) { - *((u_int32_t*)now_ptr)=*values;//bus_r(FIFO_DATA_REG); - - - if (i!=0 || ns!=0) { - a=0; - while (*((u_int32_t*)now_ptr)==*((u_int32_t*)(now_ptr)-1) && a++<10) { - - // printf("******************** %d: fifo %d: new %08x old %08x\n ",ns, i, *((u_int32_t*)now_ptr),*((u_int32_t*)(now_ptr)-1)); - *((u_int32_t*)now_ptr)=*values; - // printf("%d-",i); - - } - } - now_ptr+=4; - // } -/* while (((adcDisableMask&(3<<((i+1)*2)))>>((i+1)*2))==3) { */ -/* i++; */ -/* } */ - - // if (((adcDisableMask&(3<<((i+1)*2)))>>((i+1)*2))!=3) { - - bus_w16(DUMMY_REG,i+1); - // } - // *(((u_int16_t*)(now_ptr))+i)=bus_r16(FIFO_DATA_REG); - } - // bus_w16(DUMMY_REG,0); // -/* #ifdef TIMEDBG */ - -/* gettimeofday(&tss,NULL); */ -/* printf("read data loop = %ld usec\n",(tss.tv_usec) - (tse.tv_usec)); */ - -/* #endif */ -#ifdef VERBOSE - printf("*"); -#endif - return ram_values; } -u_int16_t* fifo_read_frame() -{ -#ifdef TIMEDBG - gettimeofday(&tsss,NULL); -#endif - - // u_int16_t *dum; - int ns=0; - now_ptr=(char*)ram_values; - while(ns>(ipos))&0x1; - ichan++; - } - } - break; - case 4: - for (ibyte=0; ibyte>(ipos*4))&0xf; - ichan++; - } - } - break; - case 8: - for (ichan=0; ichan>(ipos))&0x1; + ichan++; + } + } + break; + case 4: + for (ibyte=0; ibyte>(ipos*4))&0xf; + ichan++; + } + } + break; + case 8: + for (ichan=0; ichan0) { - dynamicRange=16; - nSamples=dr/16; - bus_w(NSAMPLES_REG,nSamples); - } - getDynamicRange(); - allocateRAM(); - printf("Setting dataBytes to %d: dr %d; samples %d\n",dataBytes, dynamicRange, nSamples); - return getDynamicRange(); + return dynamicRange; } - - - - int getDynamicRange() { - if(myDetectorType == JUNGFRAU){ - dynamicRange=16; - return dynamicRange; - } - - nSamples=bus_r(NSAMPLES_REG); - getChannels(); - dataBytes=nModX*N_CHIP*getChannels()*2; - return dynamicRange*bus_r(NSAMPLES_REG);//nSamples; + return dynamicRange; } int testBus() { - u_int32_t j; - u_int64_t i, n, nt; - // char cmd[100]; - u_int32_t val=0x0; - int ifail=OK; - // printf("%s\n",cmd); - // system(cmd); - i=0; + u_int32_t j; + u_int64_t i, n, nt; + // char cmd[100]; + u_int32_t val=0x0; + int ifail=OK; + // printf("%s\n",cmd); + // system(cmd); + i=0; - n=1000000; - nt=n/100; - printf("testing bus %d times\n",(int)n); - while (i0) - storeInRAM=1; - else - storeInRAM=0; - return allocateRAM(); + if (b>0) + storeInRAM=1; + else + storeInRAM=0; + return OK; } int getChannels() { - int nch=32; - int i; - for (i=0; i1) { - - clearRAM(); - ram_values=malloc(size); - // ram_values=realloc(ram_values,size)+2; - // if (ram_values) - // break; - // nSamples--; - //} - - if (ram_values) { - now_ptr=(char*)ram_values; - - //#ifdef VERBOSE - printf("ram allocated 0x%x of size %d to %x\n",(int)now_ptr,(unsigned int) size,(unsigned int)(now_ptr+size)); - //#endif - ram_size=size; - return OK; - } - - - printf("Fatal error: there must be a memory leak somewhere! You can't allocate even one frame!\n"); - return FAIL; - - - - + return OK; } int writeADC(int addr, int val) { - u_int32_t valw,codata,csmask; - int i,cdx,ddx; - cdx=0; ddx=1; - csmask=0xfc; // 1111100 - - codata=val + (addr<< 8); - printf("***** ADC SPI WRITE TO REGISTER %04X value %04X\n",addr,val); + u_int32_t valw,codata,csmask; + int i,cdx,ddx; + cdx=0; ddx=1; + csmask=0xfc; // 1111100 + + codata=val + (addr<< 8); + printf("***** ADC SPI WRITE TO REGISTER %04X value %04X\n",addr,val); // start point - valw=0xff; - bus_w16(ADC_WRITE_REG,(valw)); - - //chip sel bar down - valw=((0xffffffff&(~csmask))); - bus_w16(ADC_WRITE_REG,valw); + valw=0xff; + bus_w16(ADC_WRITE_REG,(valw)); - for (i=0;i<24;i++) { - //cldwn - valw=valw&(~(0x1<>(23-i))&0x1)<>(23-i))&0x1)<> 8); - // printf("%i: %i %i\n",a, frame[a],v); - avg[a] += ((double)frame[a])/(double)frames; - //if(frame[a] == 8191) - // printf("ch %i: %u\n",a,frame[a]); - } - // printf("********\n"); - numberFrames++; - } - - //no more data or no data - else { - if(getFrames()>-2) { - dataret=FAIL; - printf("no data and run stopped: %d frames left\n",(int)(getFrames()+2)); - - } else { - dataret=FINISHED; - printf("acquisition successfully finished\n"); - - } - printf("dataret %d\n",dataret); - } - } - - - - //double nf = (double)numberFrames; - for(i =0; i < 1280; i++){ - adc = i / 256; - adcCh = (i - adc * 256) / 32; - Ch = i - adc * 256 - adcCh * 32; - adc--; - double v2 = avg[i]; - avg[i] = avg[i]/ ((double)numberFrames/(double)frames); - unsigned short v = (unsigned short)avg[i]; - printf("setting avg for channel %i(%i,%i,%i): %i (double= %f (%f))\t", i,adc,adcCh,Ch, v,avg[i],v2); - v=i*100; - ram_w16(DARK_IMAGE_REG,adc,adcCh,Ch,v-4096); - if(ram_r16(DARK_IMAGE_REG,adc,adcCh,Ch) != v-4096){ - printf("value is wrong (%i,%i,%i): %i \n",adc,adcCh,Ch, ram_r16(DARK_IMAGE_REG,adc,adcCh,Ch)); - } - } - - /*for(adc = 1; adc < 5; adc++){ - for(adcCh = 0; adcCh < 8; adcCh++){ - for(Ch=0 ; Ch < 32; Ch++){ - int channel = (adc+1) * 32 * 8 + adcCh * 32 + Ch; - double v2 = avg[channel]; - avg[channel] = avg[channel]/ ((double)numberFrames/(double)frames); - unsigned short v = (unsigned short)avg[channel]; - printf("setting avg for channel %i: %i (double= %f (%f))\t", channel, v,avg[channel],v2); - ram_w16(DARK_IMAGE_REG,adc,adcCh,Ch,v-4096); - if(ram_r16(DARK_IMAGE_REG,adc,adcCh,Ch) != v-4096){ - printf("value is wrong (%i,%i,%i): %i \n",adc,adcCh,Ch, ram_r16(DARK_IMAGE_REG,adc,adcCh,Ch)); + avg[i] = 0.0; + } + + startStateMachine(); + + while(dataret==OK){ + //got data + waitForAcquisitionEnd(); + if (getFrames()>-2) { + dataret=FAIL; + printf("no data and run stopped: %d frames left\n",(int)(getFrames()+2)); + } else { + dataret=FINISHED; + printf("acquisition successfully finished\n"); + } } - } - } - }*/ - printf("frames: %i\n",numberFrames); - printf("corrected avg by: %f\n",(double)numberFrames/(double)frames); - - printf("restoring previous condition\n"); - setFrames(framesBefore); - setPeriod(periodBefore); - - printf("---------------------------\n"); - return 0; + //double nf = (double)numberFrames; + for(i =0; i < 1280; i++){ + adc = i / 256; + adcCh = (i - adc * 256) / 32; + Ch = i - adc * 256 - adcCh * 32; + adc--; + double v2 = avg[i]; + avg[i] = avg[i]/ ((double)numberFrames/(double)frames); + unsigned short v = (unsigned short)avg[i]; + printf("setting avg for channel %i(%i,%i,%i): %i (double= %f (%f))\t", i,adc,adcCh,Ch, v,avg[i],v2); + v=i*100; + ram_w16(DARK_IMAGE_REG,adc,adcCh,Ch,v-4096); + if(ram_r16(DARK_IMAGE_REG,adc,adcCh,Ch) != v-4096){ + printf("value is wrong (%i,%i,%i): %i \n",adc,adcCh,Ch, ram_r16(DARK_IMAGE_REG,adc,adcCh,Ch)); + } + } + + + + printf("frames: %i\n",numberFrames); + printf("corrected avg by: %f\n",(double)numberFrames/(double)frames); + + printf("restoring previous condition\n"); + setFrames(framesBefore); + setPeriod(periodBefore); + + printf("---------------------------\n"); + return 0; } -uint64_t readPatternWord(int addr) { - uint64_t word=0; - int cntrl=0; - if (addr>=MAX_PATTERN_LENGTH) - return -1; - - - printf("read %x\n",addr); - cntrl= (addr&APATTERN_MASK) << PATTERN_CTRL_ADDR_OFFSET; - bus_w(PATTERN_CNTRL_REG, cntrl); - usleep(1000); - bus_w(PATTERN_CNTRL_REG, cntrl | (1<< PATTERN_CTRL_READ_BIT) ); - usleep(1000); - printf("reading\n"); - word=get64BitReg(PATTERN_OUT_LSB_REG,PATTERN_OUT_MSB_REG); - printf("read %llx\n", word); - usleep(1000); - bus_w(PATTERN_CNTRL_REG, cntrl); - printf("done\n"); - - return word; + + + +uint64_t readPatternWord(int addr) { + uint64_t word=0; + int cntrl=0; + + if (addr>=MAX_PATTERN_LENGTH) + return -1; + + + printf("read %x\n",addr); + cntrl= (addr&APATTERN_MASK) << PATTERN_CTRL_ADDR_OFFSET; + bus_w(PATTERN_CNTRL_REG, cntrl); + usleep(1000); + bus_w(PATTERN_CNTRL_REG, cntrl | (1<< PATTERN_CTRL_READ_BIT) ); + usleep(1000); + printf("reading\n"); + word=get64BitReg(PATTERN_OUT_LSB_REG,PATTERN_OUT_MSB_REG); + printf("read %llx\n", word); + usleep(1000); + bus_w(PATTERN_CNTRL_REG, cntrl); + printf("done\n"); + + return word; } uint64_t writePatternWord(int addr, uint64_t word) { - - int cntrl=0; - if (addr>=MAX_PATTERN_LENGTH) - return -1; - printf("write %x %llx\n",addr, word); - if (word!=-1){ - - set64BitReg(word,PATTERN_IN_REG_LSB,PATTERN_IN_REG_MSB); + int cntrl=0; + if (addr>=MAX_PATTERN_LENGTH) + return -1; - - cntrl= (addr&APATTERN_MASK) << PATTERN_CTRL_ADDR_OFFSET; - bus_w(PATTERN_CNTRL_REG, cntrl); - usleep(1000); - bus_w(PATTERN_CNTRL_REG, cntrl | (1<< PATTERN_CTRL_WRITE_BIT) ); - usleep(1000); - bus_w(PATTERN_CNTRL_REG, cntrl); - return word; - } else - return readPatternWord(addr); + printf("write %x %llx\n",addr, word); + if (word!=-1){ + + set64BitReg(word,PATTERN_IN_REG_LSB,PATTERN_IN_REG_MSB); + + + cntrl= (addr&APATTERN_MASK) << PATTERN_CTRL_ADDR_OFFSET; + bus_w(PATTERN_CNTRL_REG, cntrl); + usleep(1000); + bus_w(PATTERN_CNTRL_REG, cntrl | (1<< PATTERN_CTRL_WRITE_BIT) ); + usleep(1000); + bus_w(PATTERN_CNTRL_REG, cntrl); + return word; + } else + return readPatternWord(addr); } + uint64_t writePatternIOControl(uint64_t word) { - if (word!=0xffffffffffffffff) { /*warning: integer constant is too large for ‘long’ type*/ - // printf("%llx %llx %lld",get64BitReg(PATTERN_IOCTRL_REG_LSB,PATTERN_IOCTRL_REG_MSB),word); - set64BitReg(word,PATTERN_IOCTRL_REG_LSB,PATTERN_IOCTRL_REG_MSB); - // printf("************ write IOCTRL (%x)\n",PATTERN_IOCTRL_REG_MSB); - } - return get64BitReg(PATTERN_IOCTRL_REG_LSB,PATTERN_IOCTRL_REG_MSB); - + return FAIL; } + uint64_t writePatternClkControl(uint64_t word) { - if (word!=0xffffffffffffffff) set64BitReg(word,PATTERN_IOCLKCTRL_REG_LSB,PATTERN_IOCLKCTRL_REG_MSB);/*warning: integer constant is too large for ‘long’ type*/ - return get64BitReg(PATTERN_IOCLKCTRL_REG_LSB,PATTERN_IOCLKCTRL_REG_MSB); - + return FAIL; } int setPatternLoop(int level, int *start, int *stop, int *n) { - int ret=OK; - int lval=0; + int ret=OK; + int lval=0; - int nreg; - int areg; + int nreg; + int areg; - switch (level ) { - case 0: - nreg=PATTERN_N_LOOP0_REG; - areg=PATTERN_LOOP0_AREG; - break; - case 1: - nreg=PATTERN_N_LOOP1_REG; - areg=PATTERN_LOOP1_AREG; - break; - case 2: - nreg=PATTERN_N_LOOP2_REG; - areg=PATTERN_LOOP2_AREG; - break; - case -1: - nreg=-1; - areg=PATTERN_LIMITS_AREG; - break; - default: - return FAIL; - } + switch (level ) { + case 0: + nreg=PATTERN_N_LOOP0_REG; + areg=PATTERN_LOOP0_AREG; + break; + case 1: + nreg=PATTERN_N_LOOP1_REG; + areg=PATTERN_LOOP1_AREG; + break; + case 2: + nreg=PATTERN_N_LOOP2_REG; + areg=PATTERN_LOOP2_AREG; + break; + case -1: + nreg=-1; + areg=PATTERN_LIMITS_AREG; + break; + default: + return FAIL; + } - printf("level %d start %x stop %x nl %d\n",level, *start, *stop, *n); - if (nreg>=0) { - if ((*n)>=0) bus_w(nreg, *n); - printf ("n %d\n",*n); - *n=bus_r(nreg); - printf ("n %d\n",*n); + printf("level %d start %x stop %x nl %d\n",level, *start, *stop, *n); + if (nreg>=0) { + if ((*n)>=0) bus_w(nreg, *n); + printf ("n %d\n",*n); + *n=bus_r(nreg); + printf ("n %d\n",*n); - } + } - printf("level %d start %x stop %x nl %d\n",level, *start, *stop, *n); - lval=bus_r(areg); -/* printf("l=%x\n",bus_r16(areg)); */ -/* printf("m=%x\n",bus_r16_m(areg)); */ - + printf("level %d start %x stop %x nl %d\n",level, *start, *stop, *n); + lval=bus_r(areg); + /* printf("l=%x\n",bus_r16(areg)); */ + /* printf("m=%x\n",bus_r16_m(areg)); */ - printf("lval %x\n",lval); - if (*start==-1) *start=(lval>> ASTART_OFFSET) & APATTERN_MASK; - printf("start %x\n",*start); - - if (*stop==-1) *stop=(lval>> ASTOP_OFFSET) & APATTERN_MASK; - printf("stop %x\n",*stop); - - lval= ((*start & APATTERN_MASK) << ASTART_OFFSET) | ((*stop & APATTERN_MASK) << ASTOP_OFFSET); - printf("lval %x\n",lval); - - bus_w(areg,lval); - printf("lval %x\n",lval); + printf("lval %x\n",lval); + if (*start==-1) *start=(lval>> ASTART_OFFSET) & APATTERN_MASK; + printf("start %x\n",*start); - return ret; + if (*stop==-1) *stop=(lval>> ASTOP_OFFSET) & APATTERN_MASK; + printf("stop %x\n",*stop); + + lval= ((*start & APATTERN_MASK) << ASTART_OFFSET) | ((*stop & APATTERN_MASK) << ASTOP_OFFSET); + printf("lval %x\n",lval); + + bus_w(areg,lval); + printf("lval %x\n",lval); + + + return ret; } -int setPatternWaitAddress(int level, int addr) { - int reg; +int setPatternWaitAddress(int level, int addr) { + int reg; - switch (level) { - case 0: - reg=PATTERN_WAIT0_AREG; - break; - case 1: - reg=PATTERN_WAIT1_AREG; - break; - case 2: - reg=PATTERN_WAIT2_AREG; - break; - default: - return -1; - }; - // printf("BEFORE *********PATTERN IOCTRL IS %llx (%x)\n",writePatternIOControl(-1), PATTERN_IOCTRL_REG_MSB); + switch (level) { + case 0: + reg=PATTERN_WAIT0_AREG; + break; + case 1: + reg=PATTERN_WAIT1_AREG; + break; + case 2: + reg=PATTERN_WAIT2_AREG; + break; + default: + return -1; + }; + // printf("BEFORE *********PATTERN IOCTRL IS %llx (%x)\n",writePatternIOControl(-1), PATTERN_IOCTRL_REG_MSB); - // printf ("%d addr %x (%x)\n",level,addr,reg); - if (addr>=0) bus_w(reg, addr); - // printf ("%d addr %x %x (%x) \n",level,addr, bus_r(reg), reg); + // printf ("%d addr %x (%x)\n",level,addr,reg); + if (addr>=0) bus_w(reg, addr); + // printf ("%d addr %x %x (%x) \n",level,addr, bus_r(reg), reg); - // printf("AFTER *********PATTERN IOCTRL IS %llx (%x)\n",writePatternIOControl(-1), PATTERN_IOCTRL_REG_MSB); + // printf("AFTER *********PATTERN IOCTRL IS %llx (%x)\n",writePatternIOControl(-1), PATTERN_IOCTRL_REG_MSB); - return bus_r(reg); + return bus_r(reg); } -uint64_t setPatternWaitTime(int level, uint64_t t) { - int reglsb; - int regmsb; +uint64_t setPatternWaitTime(int level, uint64_t t) { + int reglsb; + int regmsb; - switch (level) { - case 0: - reglsb=PATTERN_WAIT0_TIME_REG_LSB; - regmsb=PATTERN_WAIT0_TIME_REG_MSB; - break; - case 1: - reglsb=PATTERN_WAIT1_TIME_REG_LSB; - regmsb=PATTERN_WAIT1_TIME_REG_MSB; - break; - case 2: - reglsb=PATTERN_WAIT2_TIME_REG_LSB; - regmsb=PATTERN_WAIT2_TIME_REG_MSB; - break; - default: - return -1; - } + switch (level) { + case 0: + reglsb=PATTERN_WAIT0_TIME_REG_LSB; + regmsb=PATTERN_WAIT0_TIME_REG_MSB; + break; + case 1: + reglsb=PATTERN_WAIT1_TIME_REG_LSB; + regmsb=PATTERN_WAIT1_TIME_REG_MSB; + break; + case 2: + reglsb=PATTERN_WAIT2_TIME_REG_LSB; + regmsb=PATTERN_WAIT2_TIME_REG_MSB; + break; + default: + return -1; + } - if (t>=0) set64BitReg(t,reglsb,regmsb); - return get64BitReg(reglsb,regmsb); + if (t>=0) set64BitReg(t,reglsb,regmsb); + return get64BitReg(reglsb,regmsb); } void initDac(int dacnum) { + printf("\nInitializing dac for %d\n",dacnum); + + u_int32_t offw,codata; + u_int16_t valw; + int i,ddx,csdx,cdx; - u_int32_t offw,codata; - u_int16_t valw; - int i,ddx,csdx,cdx; - - - //setting int reference - offw=DAC_REG; - - - ddx=0; cdx=1; - csdx=dacnum/8+2; + //setting int reference + offw=DAC_REG; - printf("data bit=%d, clkbit=%d, csbit=%d",ddx,cdx,csdx); - codata=((((0x6)<<4)+((0xf))<<16)+((0x0<<4)&0xfff0)); /*warning: suggest parentheses around + or - inside shift*/ - - valw=0xffff; bus_w(offw,(valw)); // start point - valw=((valw&(~(0x1<>(24-i))&0x1)<>(24-i))&0x1)); - - valw=((valw&(~(0x1<>(24-i))&0x1)<>(24-i))&0x1)); + + + valw=((valw&(~(0x1<>16)&0xffff; + else + return retval&0xffff; - retval=bus_r((DAC_REG_OFF+dacnum/2)<<11); - printf("Dac register %x read %08x\n",(DAC_REG_OFF+dacnum/2)<<11,retval); - if (dacnum%2) - return (retval>>16)&0xffff; - else - return retval&0xffff; - } -int setDac(int dacnum,int dacvalue){ +int setDac(int dacnum,int dacvalue){ + printf("\nSetting of DAC %d with value %d\n",dacnum,dacvalue); - u_int32_t offw,codata; - u_int16_t valw; - int i,ddx,csdx,cdx; + u_int32_t offw,codata; + u_int16_t valw; + int i,ddx,csdx,cdx; - int dacch=0; + int dacch=0; - if (dacvalue>=0) { - - //setting int reference - offw=DAC_REG; - - - ddx=0; cdx=1; - csdx=dacnum/8+2; + if (dacvalue>=0) { - dacch=dacnum%8; - - printf("data bit=%d, clkbit=%d, csbit=%d",ddx,cdx,csdx); - - //modified to power down single channels - - // codata=((((0x2)<<4)+((dacch)&0xf))<<16)+((dacvalue<<4)&0xfff0); - codata=((((0x3)<<4)+((dacch)&0xf))<<16)+((dacvalue<<4)&0xfff0); - valw=0xffff; bus_w(offw,(valw)); // start point - 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%0A-MS9Evm`KddQl5E)A_HY~ipva7!H< z6|X!-qaw|;kE<^t{V?e2d`5W|me(*wMI5uYeKvI4xVZq_Y=xE0%|BjC5`VlqF3qhZ zX*@Epx{~L6LWdX%%gW7ob_xk;S6K=@earB8Svb~1+$Yi74~MIB$^hsq9ZU5@EbI~} z5yh-c&o2&-#+oI}tvu-_q_voHotw=>{nX(Yt6Gcu!G*jByC7I0iKTyITuwXfhwU`0K8fU%7maLL$gOo8dL9|v*bmrq#rh? zV!$n4^tSW?I3Xo@njM}zPharDu=}xA8ck!+;mifCLQG@tCIsb7hG227XDvDpdcih2 zNY;let;-%AeeSwr$2bVDn~@ZQ4^)G**aOA4jb{QJ%Q* zp>oJJ(I;<49h(>JLQHTC(dk=)+R}?yO9#10kJybo2+Hy`&60@r?DY+mU+`glSWS8j ztd>YeQ0A}cA(F0>%YH-P+X6tNk^J$Z9E5kIKiNj`^feuMI0UX3s*PZ2a1wpTy9QvT zr;qCY9juRPbM*hjh%@G3E{>(L*rwo24&-CjUj zOgY)Y#$FGDLMHW)!sKMSNT;?cCj}-G)VV8Zq1;?xI(P98K&@**IqE;iOKnVdbCdQ* zs}G_h=PDB31fKsl>M=eS8WZ6|dkpGxNNT`{)!(9^pgM-5tmLTkjA1KA*<<+9)x9tR zQqcsYMo5ZC+kwM(%Y&Br2kT5)gE5^r2`=2FapAp1w4PVz7KavB3%aDTR**W!-DadE zO^$<3EOeM#YC*MHMzvo&3=Y2oc6d;52H>T-obg|Lm}UYGq^J*4)DL?@6gc;0^8<0I z(~Z4{QPgXYgrK~-j&`wh;>e!hOGa;SpqiG?(&9+t-H<#g{f*Q@VY(*{ZKwqD!pd1a zurgO^Wu0}B7o>m>_7TW7gZ6OB9Y;ZHJME5oloDIj#kKDW%A@C z_S$IAgU3!LY3dZ$hPY4BH>HfjJ{fH0Bx$FY5}Jq(<~yqev!$NSqgL~c*3}m>o@^NT z7)Gd>LiwybsB&s{4wEW8>akjM2I9>M(;V5^-1+zW1nkzNqDgRP7!s4leA{(u=|gBU z;cMzif(1v_o@l~x+uD{U+a-9aANs}2BQ)_Yy$-5f&*d`7o2*Z5RseEO{m;+^nmz0vBpMRzY|I#Ce&wzR`p z_Xw>eu`mCKy3QrZp2pta9pj=5>u!Vr>Na~nh;biWOzYq64d8CHh;z|=A=q-ggj_GN zT>ryzaRCu}E~v(}3_sFNQY#EJlt6Qe)K7UKb_uVUs*N>~NeH@rY zf!Ug!w=90VWkri)JonP}WR94-mvi&aaxd}EhFT&m+ksU@Whi#M1v5086SAc;;X`)4 zAb3lcz(03~(JI|a1ujL)BW~V<+07re^rX(e8;rC##+K_5o#vd<1AE;>fBY)kBPsTb zU**)gpiO>X!1z0)_4+;QsMpONN3Ey>zqUR!d-|6_(lH^45W4C|(-u zR}h+32v7%LRD@z-XPmB7uS+m0;8(eIok`Ujv5!pD!LL%ePSwLy ze=FJ>ARWLQ8y|z~KVD2W!r?*F^8fZgRg$3@(jdk5foV5!d5#;z3R zW3pFw1-tbjb-lj;Enjy|*!z%Ehh5zX?3+4;-HY)O&74DlcNw6}8h9?N$B!RUSCpg= zlO)&Y0^UWt2D*Ki#~2T>T?2KssN12k$LA}nE`kk2MsJLs8jtOgQrdn2NdVFc1n6qi zqop#p1eUrb2c^$3H|cAw+Er2Xrqzb5+7YdKz<~h?rU vistX19VGCFW7u^`^j!2 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 - (detectorModules+imod)->adcs=detectorAdcs+imod*N_ADC; - if(myDetectorType != JUNGFRAU){ - (detectorModules+imod)->chipregs=detectorChips+imod*N_CHIP; - (detectorModules+imod)->chanregs=detectorChans+imod*N_CHIP*N_CHAN; - } - (detectorModules+imod)->ndac=N_DAC; - (detectorModules+imod)->nadc=N_ADC; - (detectorModules+imod)->nchip=N_CHIP; - (detectorModules+imod)->nchan=N_CHIP*N_CHAN; + (detectorModules+imod)->dacs=detectorDacs+imod*NDAC; + (detectorModules+imod)->adcs=detectorAdcs+imod*NADC; + (detectorModules+imod)->ndac=NDAC; + (detectorModules+imod)->nadc=NADC; + (detectorModules+imod)->nchip=NCHIP; + (detectorModules+imod)->nchan=NCHIP*NCHAN; (detectorModules+imod)->module=imod; (detectorModules+imod)->gain=0; (detectorModules+imod)->offset=0; (detectorModules+imod)->reg=0; - /* initialize registers, dacs, retrieve sn, adc values etc */ } thisSettings=UNINITIALIZED; sChan=noneSelected; @@ -122,24 +75,6 @@ int initDetector() { sMod=noneSelected; sDac=noneSelected; sAdc=noneSelected; - - /* - setCSregister(ALLMOD); //commented out by dhanya - setSSregister(ALLMOD); - counterClear(ALLMOD); - clearSSregister(ALLMOD); - putout("0000000000000000",ALLMOD); - */ - - /* initialize dynamic range etc. */ - /* dynamicRange=getDynamicRange(); //always 16 not required commented out - nModX=setNMod(-1);*/ - - // dynamicRange=32; - // initChip(0, 0,ALLMOD); - //nModX=n; - // - allocateRAM(); return OK; } @@ -178,7 +113,7 @@ int copyChip(sls_detector_chip *destChip, sls_detector_chip *srcChip) { int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { - int ichip, idac, ichan, iadc; + int idac, iadc; int ret=OK; @@ -240,17 +175,7 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { destMod->offset=srcMod->offset; // printf("copying gain and offset %f %f to %f %f\n",srcMod->gain,srcMod->offset,destMod->gain,destMod->offset); - - if(myDetectorType != JUNGFRAU){ - for (ichip=0; ichip<(srcMod->nchip); ichip++) { - if (*((srcMod->chipregs)+ichip)>=0) - *((destMod->chipregs)+ichip)=*((srcMod->chipregs)+ichip); - } - for (ichan=0; ichan<(srcMod->nchan); ichan++) { - if (*((srcMod->chanregs)+ichan)>=0) - *((destMod->chanregs)+ichan)=*((srcMod->chanregs)+ichan); - } - } + for (idac=0; idac<(srcMod->ndac); idac++) { if (*((srcMod->dacs)+idac)>=0) @@ -267,52 +192,6 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { -/* Register commands */ - - -/* int clearDACSregister(int imod) { */ - -/* putout("1111111111111111",imod);//reset */ -/* putout("1111111111111110",imod);//cs down */ - -/* /\* commented out by dhanya */ -/* putout("0000000001000000",imod); */ -/* putout("0000000101000000",imod); */ -/* putout("0000000101000000",imod); */ -/* putout("0000000001000000",imod); */ -/* *\/ */ -/* #ifdef DEBUG */ -/* fprintf(stdout, "Clearing DAC shiftregister\n"); */ -/* #endif */ -/* // sDac=0; */ -/* sMod=imod; */ -/* if (imod==ALLMOD) */ -/* sMod=allSelected; */ -/* return OK; */ -/* } */ - -/* int nextDAC(int imod) { */ - -/* putout("1111111111111011",imod);//cs up */ -/* putout("1111111111111001",imod);//clk down */ -/* putout("1111111111111111",imod);//reset */ - -/* /\*commented out by dhanya */ -/* putout("0000000001000000",imod); */ -/* putout("0000000001001000",imod); */ -/* putout("0000000001000000",imod); */ -/* *\/ */ -/* #ifdef DEBUG */ -/* fprintf(stdout, "Next DAC\n"); */ -/* #endif */ -/* // sDac++; */ -/* sMod=imod; */ -/* if (imod==ALLMOD) */ -/* sMod=allSelected; */ -/* return OK; */ -/* } */ - - int clearCSregister(int imod) { putout("0000000001000000",imod); @@ -461,322 +340,6 @@ int selChip(const int chip,int imod) { return 0; } -/* DACs routines */ - -/* int program_one_dac(int addr, int value, int imod) { */ - -/* #ifdef VERBOSE */ -/* printf("programming dac %d value %d module %d\n",addr, value,imod); */ -/* #endif */ - - -/* int i,im,idac,bit, control; */ -/* int v=value; */ - -/* // codata=((((0x2)<<4)+((addr)&0xf))<<16)+((value<<4)&0xfff0); */ -/* control=32+addr; */ -/* value=(value<<4) | (control<< 16); */ - -/* #ifdef DEBUGOUT */ -/* fprintf(stdout,"value=%d\n",value); */ -/* #endif */ - -/* for (i=0;i<24;i++) { */ -/* bit=value & (1<<(23-i)); */ -/* if (bit) { */ -/* putout("1111111111111100",imod);//clk down */ -/* putout("1111111111111100",imod);//write data */ -/* putout("1111111111111110",imod);//clk up */ -/* #ifdef DEBUGOUT */ -/* fprintf(stdout,"1"); */ -/* #endif */ -/* } */ -/* else */ -/* { */ -/* putout("1111111111111000",imod);//clk down */ -/* putout("1111111111111000",imod);//write data */ -/* putout("1111111111111010",imod);//clk up */ -/* #ifdef DEBUGOUT */ -/* fprintf(stdout,"0"); */ -/* #endif */ -/* } */ -/* } */ - -/* #ifdef DEBUGOUT */ -/* fprintf(stdout,"\n"); */ -/* #endif */ - -/* idac=addr;//sDac*2+addr; */ - - -/* if (detectorDacs) { */ -/* sMod=imod; */ -/* if (imod==ALLMOD) */ -/* sMod=allSelected; */ - -/* if (imod>=0 && imod=0) */ -/* initDAC(ind,val, imod); */ - -/* if (imod>=0 && imodgain,(detectorModules+imod)->offset); */ -/* #endif */ -/* if ((detectorModules+imod)->gain>0) */ -/* myg=(detectorModules+imod)->gain; */ -/* else { */ -/* if (thisSettings>=0 && thisSettings<3) */ -/* myg=g[thisSettings]; */ -/* // else */ -/* //myg=-1; */ -/* } */ - -/* if ((detectorModules+imod)->offset>0) */ -/* myo=(detectorModules+imod)->offset; */ -/* else { */ -/* if (thisSettings>=0 && thisSettings<3) */ -/* myo=o[thisSettings]; */ -/* // else */ -/* //myo=-1; */ -/* } */ - -/* if (myg>0 && myo>0) { */ -/* //ethr=(myo-detectorDacs[VTHRESH+imod*N_DAC])*1000/myg; */ - -/* ethr=(myo-setDACRegister(VDAC0,-1,imod))*1000/myg;//edited by dhanya */ -/* // else */ -/* // ethr=-1; */ - -/* } */ -/* #ifdef VERBOSE */ -/* //printf("module=%d gain=%f, offset=%f, dacu=%f\n",imod, myg, myo, detectorDacs[VTHRESH+imod*N_DAC]); */ -/* printf("module=%d gain=%f, offset=%f, dacu=%d\n",imod, myg, myo,(int)(setDACRegister(VDAC0,-1,imod)));//edited by dhanya */ -/* printf("Threshold energy of module %d is %d eV\n", imod, ethr); */ -/* #endif */ - -/* if (imod==0) */ -/* ret=ethr; */ -/* else { */ -/* if (ethr>(ret+100) || ethr<(ret-100)) */ -/* return FAIL; */ -/* } */ -/* } */ -/* } */ -/* return ret; */ -/* } */ - -/* int setThresholdEnergy(int ethr) { */ -/* double g[3]=DEFAULTGAIN; */ -/* double o[3]=DEFAULTOFFSET; */ -/* double myg=-1, myo=-1; */ -/* int dacu; */ -/* int imod; */ -/* int ret=ethr; */ - -/* setSettings(GET_SETTINGS,-1);//-1 added by dhanya */ -/* if (thisSettings>=0 || thisSettings<3){ */ -/* myg=g[thisSettings]; */ -/* myo=o[thisSettings]; */ -/* } */ -/* for (imod=0; imodgain>0) */ -/* myg=(detectorModules+imod)->gain; */ -/* else */ -/* if (thisSettings>=0 && thisSettings<3) */ -/* myg=g[thisSettings]; */ -/* else */ -/* myg=-1; */ -/* if ((detectorModules+imod)->offset>0) */ -/* myo=(detectorModules+imod)->offset; */ -/* else */ -/* if (thisSettings>=0 && thisSettings<3) */ -/* myo=o[thisSettings]; */ -/* else */ -/* myo=-1; */ -/* } else { */ -/* if (thisSettings>=0 && thisSettings<3) */ -/* myo=o[thisSettings]; */ -/* else */ -/* myo=-1; */ -/* if (thisSettings>=0 && thisSettings<3) */ -/* myg=g[thisSettings]; */ -/* else */ -/* myg=-1; */ -/* } */ -/* if (myg>0 && myo>0) { */ -/* dacu=myo-myg*((double)ethr)/1000.; */ -/* #ifdef VERBOSE */ -/* printf("module %d (%x): gain %f, off %f, energy %d eV, dac %d\n",imod,(unsigned int)((detectorModules+imod)),(detectorModules+imod)->gain,(detectorModules+imod)->offset, ethr,dacu); */ -/* #endif */ -/* } else { */ -/* dacu=ethr; */ -/* #ifdef VERBOSE */ -/* printf("could not set threshold energy for module %d, settings %d (offset is %f; gain is %f)\n",imod,thisSettings,myo,myg); */ -/* #endif */ -/* } */ -/* initDACbyIndexDACU(VDAC0, dacu, imod); ///needs to be fixed dhanya */ -/* } */ -/* return ret; */ -/* } */ - - - -/* int getDACbyIndexDACU(int ind, int imod) { */ -/* /\* */ -/* if (detectorDacs) { */ -/* if (imodndac) */ -/* return (detectorDacs[ind+imod*N_DAC]); */ -/* } */ -/* return FAIL; */ -/* *\/ */ -/* return setDACRegister(ind, -1, imod); */ -/* } */ - - -/* int initDAC(int dac_addr, int value, int imod) { */ -/* // int i; */ -/* #ifdef VERBOSE */ -/* printf("Programming dac %d with value %d\n", dac_addr, value); */ -/* #endif */ -/* clearDACSregister(imod); */ -/* program_one_dac(dac_addr,value,imod); */ -/* nextDAC(imod); */ -/* clearDACSregister(imod); */ - -/* return 0; */ -/* } */ int getTemperatureByModule(int tempSensor, int imod) { @@ -846,42 +409,12 @@ void showbits(int h) } -/* int initDACs(int* v,int imod) */ -/* { */ -/* #ifdef VERBOSE */ -/* printf("\n..inside initdacs\n"); */ -/* #endif */ -/* int iaddr; */ -/* // sDac=0; */ - -/* for (iaddr=0; iaddr<8; iaddr++) { */ -/* clearDACSregister(imod); */ -/* if (v[iaddr]>=0) { */ -/* #ifdef VERBOSE */ -/* fprintf(stdout, "voltage %d\n", *(v+iaddr)); */ -/* #endif */ -/* program_one_dac(iaddr, *(v+iaddr),imod); */ -/* } */ -/* nextDAC(imod); */ -/* } */ - - -/* clearDACSregister(imod); */ - -/* return 0; */ - -/* } */ - - - int setSettings(int i, int imod) { -#ifdef VERBOSE - if(i==-1) - printf("\nReading settings of detector...\n"); - else - printf("\ninside set settings wit settings=%d...\n",i); -#endif +//#ifdef VERBOSE + if(i!=-1) + printf("\nSetting settings wit value %d\n",i); +//#endif int isett=-1,val=-1,retval=-1; enum conf_gain { dynamic = 0x0f00, //dynamic @@ -978,7 +511,7 @@ int getChannelbyNumber(sls_detector_channel* myChan) { if (detectorChans) { if (imod=0) { if (ichip<(detectorModules+imod)->nchip && ichan<(detectorModules+imod)->nchan/(detectorModules+imod)->nchip) - myChan->reg=detectorChans[imod*N_CHAN*N_CHIP+ichip*N_CHAN+ichan]; + myChan->reg=detectorChans[imod*NCHAN*NCHIP+ichip*NCHAN+ichan]; return OK; } } @@ -990,7 +523,7 @@ int getTrimbit(int imod, int ichip, int ichan) { if (detectorChans) { if (imod=0) if (ichip<(detectorModules+imod)->nchip && ichan<(detectorModules+imod)->nchan/(detectorModules+imod)->nchip) - return (detectorChans[imod*N_CHAN*N_CHIP+ichip*N_CHAN+ichan] & TRIM_DR); + return (detectorChans[imod*NCHAN*NCHIP+ichip*NCHAN+ichan] & TRIM_DR); } return -1; @@ -1014,8 +547,8 @@ int initChannel(int ft,int cae, int ae, int coe, int ocoe, int counts, int imod) if (sChan==allSelected) { // printf("initializing all channels ft=%d coe=%d\n",ft,coe); chanmi=0; - chanma=N_CHAN; - } else if (sChan==noneSelected || sChan>N_CHAN || sChan<0) { + chanma=NCHAN; + } else if (sChan==noneSelected || sChan>NCHAN || sChan<0) { // printf("initializing no channels ft=%d coe=%d\n",ft,coe); chanmi=0; chanma=-1; @@ -1028,8 +561,8 @@ int initChannel(int ft,int cae, int ae, int coe, int ocoe, int counts, int imod) if (sChip==allSelected) { // printf("initializing all chips\n"); chipmi=0; - chipma=N_CHIP; - } else if (sChip==noneSelected || sChip>N_CHIP || sChip<0) { + chipma=NCHIP; + } else if (sChip==noneSelected || sChip>NCHIP || sChip<0) { // printf("initializing no chips\n"); chipmi=0; chipma=-1; @@ -1057,12 +590,12 @@ int initChannel(int ft,int cae, int ae, int coe, int ocoe, int counts, int imod) for (ichip=chipmi; ichipnchip) { - myChip->reg=detectorChips[ichip+imod*N_CHIP]; - myChip->nchan=N_CHAN; - myChip->chanregs=detectorChans+imod*N_CHAN*N_CHIP+ichip*N_CHIP; + myChip->reg=detectorChips[ichip+imod*NCHIP]; + myChip->nchan=NCHAN; + myChip->chanregs=detectorChans+imod*NCHAN*NCHIP+ichip*NCHIP; return OK; } } @@ -1278,28 +811,7 @@ int initChip(int obe, int ow,int imod){ int i; int im, ichip; int chipmi, chipma, modmi, modma; - /* switch (ow) { - case 0:; - case 1: - setDynamicRange(32); - break; - case 2: - setDynamicRange(16); - break; - case 3: - setDynamicRange(8); - break; - case 4: - setDynamicRange(4); - break; - case 5: - setDynamicRange(1); - break; - default: - setDynamicRange(32); - break; - } - */ + #ifdef DEBUGOUT printf("Initializing chip\n"); @@ -1370,8 +882,8 @@ int initChip(int obe, int ow,int imod){ if (sChip==allSelected) { chipmi=0; - chipma=N_CHIP; - } else if (sChip==noneSelected || sChip>N_CHIP || sChip<0) { + chipma=NCHIP; + } else if (sChip==noneSelected || sChip>NCHIP || sChip<0) { chipmi=0; chipma=-1; } else { @@ -1395,9 +907,9 @@ int initChip(int obe, int ow,int imod){ for (im=modmi; imN_CHIP || sChip<0) { + chipma=NCHIP; + } else if (sChip==noneSelected || sChip>NCHIP || sChip<0) { chipmi=0; chipma=-1; } else { @@ -1495,9 +1007,9 @@ int initChipWithProbes(int obe, int ow,int nprobes, int imod){ for (im=modmi; im0 && i%2==0) { printf("Shift stsel: module %d chip %i bit %d read %d instead of %d \n",k,j,i,val & 1<< j, i%2); result++; @@ -1978,7 +1457,7 @@ int testShiftStSel(int imod) { int testDataInOut(int num, int imod) { - int val[N_CHIP*nModX], result=OK; + int val[NCHIP*nModX], result=OK; int ich, ichip; setCSregister(ALLMOD); printf("Testing data in out for module %d pattern 0x%x\n", imod, num); @@ -1988,14 +1467,14 @@ int testDataInOut(int num, int imod) { setCSregister(ALLMOD); initChip(0, 0,ALLMOD); clearSSregister(ALLMOD); - for (ich=0; ich=0){ */ - -/* //clear rois */ -/* for(i=0;i=0) && (adc<=4)); */ -/* else { */ -/* printf("warning:adc value greater than 5. deleting roi\n"); */ -/* adc=-1; */ -/* } */ -/* } */ -/* } */ - - -/* //set rois for just 1 adc - take only 1st roi */ -/* if(adc!=-1){ */ -/* rois[0].xmin=adc*(GOTTHARDNCHAN*NCHIPS_PER_ADC); */ -/* rois[0].xmax=(adc+1)*(GOTTHARDNCHAN*NCHIPS_PER_ADC)-1; */ -/* rois[0].ymin=-1; */ -/* rois[0].ymax=-1; */ -/* nROI = 1; */ -/* }else */ -/* nROI = 0; */ - -/* if((arg[0].xmin!=rois[0].xmin)||(arg[0].xmax!=rois[0].xmax)||(arg[0].ymin!=rois[0].ymin)||(arg[0].ymax!=rois[0].ymax)) */ -/* *ret=FAIL; */ -/* if(n!=nROI) */ -/* *ret=FAIL; */ - -/* //set adc of interest */ -/* setADC(adc); */ -/* } */ - -/* //#ifdef VERBOSE */ -/* printf("Rois:\n"); */ -/* for( i=0;i>DETECTOR_TYPE_OFFSET) != JUNGFRAU_MODULE_ID){ + cprintf(BG_RED,"This is not a Jungfrau Server (enum:%d)\n",myDetectorType); + exit(-1); + } + cprintf(BLUE,"\n\n********************************************************\n" + "*********************Jungfrau Server********************\n" + "********************************************************\n"); + + //print version + cprintf(BLUE,"\n" + "Firmware Version:\t 0x%x\n" + "Software Version:\t %llx\n" + //"F/w-S/w API Version:\t\t %lld\n" + //"Required Firmware Version:\t %d\n" + "Fixed Pattern:\t\t 0x%x\n" + "Board Revision:\t\t 0x%x\n" + "\n********************************************************\n", + bus_r(FPGA_VERSION_REG),(long long unsigned int)(((int64_t)SVNREV <<32) | (int64_t)SVNDATE) + //,sw_fw_apiversion, REQUIRED_FIRMWARE_VERSION + ,bus_r(FIX_PATT_REG),(bus_r(PCB_REV_REG)&BOARD_REVISION_MASK) + ); -int init_detector(int b, int checkType) { - - int i; - if (mapCSP0()==FAIL) { printf("Could not map memory\n"); - exit(1); - } - - //print version - printf("v: 0x%x\n",bus_r(FPGA_VERSION_REG)); - printf("fp: 0x%x\n",bus_r(FIX_PATT_REG)); - - //checktype - if (checkType) { - printf("Bus test... (checktype is %d; b is %d)",checkType,b ); - for (i=0; i<1000000; i++) { - bus_w(SET_DELAY_LSB_REG, i*100); - bus_r(FPGA_VERSION_REG); - if (i*100!=bus_r(SET_DELAY_LSB_REG)) - printf("ERROR: wrote 0x%x, read 0x%x\n",i*100,bus_r(SET_DELAY_LSB_REG)); - } - printf("Finished\n"); - }else - printf("(checktype is %d; b is %d)",checkType,b ); - - - //confirm the detector type - switch ((bus_r(PCB_REV_REG) & DETECTOR_TYPE_MASK)>>DETECTOR_TYPE_OFFSET) { - case MOENCH03_MODULE_ID: - myDetectorType=MOENCH; - printf("This is a MOENCH03 module %d\n",MOENCH); - break; - - case JUNGFRAU_MODULE_ID: - myDetectorType=JUNGFRAU; - printf("This is a Jungfrau module %d\n", JUNGFRAU); - break; - - case JUNGFRAU_CTB_ID: - myDetectorType=JUNGFRAUCTB; - printf("This is a Jungfrau CTB %d\n", JUNGFRAUCTB); - break; - - default: - myDetectorType=GENERIC; - printf("Unknown detector type %02x\n",(bus_r(PCB_REV_REG) & DETECTOR_TYPE_MASK)>>DETECTOR_TYPE_OFFSET); - break; - - } - printf("Detector type is %d\n", myDetectorType); - - - //control server only-- - if (b) { - resetPLL(); - bus_w16(CONTROL_REG, SYNC_RESET); - bus_w16(CONTROL_REG, 0); - bus_w16(CONTROL_REG, GB10_RESET_BIT); - bus_w16(CONTROL_REG, 0); + printf("Resetting PLL\n"); + resetPLL(); + bus_w16(CONTROL_REG, SYNC_RESET); + bus_w16(CONTROL_REG, 0); + bus_w16(CONTROL_REG, GB10_RESET_BIT); + bus_w16(CONTROL_REG, 0); #ifdef MCB_FUNCS - printf("\nBoard Revision:0x%x\n",(bus_r(PCB_REV_REG)&BOARD_REVISION_MASK)); - if(myDetectorType == JUNGFRAU) - initDetector(); /*allocating detectorModules, detectorsDacs etc for "settings", also does allocate RAM*/ - dataBytes=NMAXMOD*N_CHIP*N_CHAN*2; /**Nchip and Nchan real values get assigned in initDetector()*/ - printf("Initializing Detector\n"); - //bus_w16(CONTROL_REG, SYNC_RESET); // reset registers + initDetector(); #endif + printf("Initializing Detector\n"); + /*some registers set, which is in common with jungfrau, please check */ + prepareADC(); + /*some registers set, which is in common with jungfrau, please check */ + initDac(0); initDac(8); //initializes the two dacs - // testFpga(); - // testRAM(); - // printf("ADC_SYNC_REG:%x\n",bus_r(ADC_SYNC_REG)); - //moench specific - // setPhaseShiftOnce(); - /*some registers set, which is in common with jungfrau, please check */ - prepareADC(); - //setADC(-1); //already does setdaqreg and clean fifo - // setSettings(GET_SETTINGS,-1); - /*some registers set, which is in common with jungfrau, please check */ - initDac(0); initDac(8); //initializes the two dacs - if(myDetectorType==JUNGFRAU){ - //reinitialize macro - N_CHAN=JUNGFRAU_NCHAN; - N_CHIP=JUNGFRAU_NCHIP; - N_DAC=JUNGFRAU_NDAC; - N_ADC=JUNGFRAU_NADC; - N_CHANS=JUNGFRAU_NCHANS; - - //set dacs - enum dacNames{VB_COMP,VDD_PROT,VIN_COM,VREF_PRECH,VB_PIXBUF,VB_DS,VREF_DS,VREF_COMP}; - int retval = -1; - int dacvalues[14][2]={ + //set dacs + printf("Setting Default Dac values\n"); + enum dacNames{VB_COMP,VDD_PROT,VIN_COM,VREF_PRECH,VB_PIXBUF,VB_DS,VREF_DS,VREF_COMP}; + int retval = -1; + int dacvalues[14][2]={ {VB_DS, 1000}, - {VB_COMP, 1220}, + {VB_COMP, 1220}, {VB_PIXBUF, 750}, {VREF_DS, 480}, {VREF_COMP, 400}, {VREF_PRECH,1550}, {VIN_COM, 1053}, {VDD_PROT, 3000}, - }; - for(i=0;i<8;++i){ - retval=setDac(dacvalues[i][0], dacvalues[i][1]); - if(retval!=dacvalues[i][1]) - printf("Error: Setting dac %d failed, wrote %d, read %d\n",dacvalues[i][0],dacvalues[i][1],retval); - } + }; + for(i=0;i<8;++i){ + retval=setDac(dacvalues[i][0], dacvalues[i][1]); + if(retval!=dacvalues[i][1]) + printf("Error: Setting dac %d failed, wrote %d, read %d\n",dacvalues[i][0],dacvalues[i][1],retval); + } - //power of the chips - bus_w(POWER_ON_REG,0x1); + printf("\nPowering on the chip\n"); + bus_w(POWER_ON_REG,0x1); + printf("\nResetting ADC\n"); + writeADC(ADCREG1,0x3); writeADC(ADCREG1,0x0); + writeADC(ADCREG2,0x40); + writeADC(ADCREG3,0xf); + writeADC(ADCREG4,0x3f); + printf("\nConfiguring Vrefs\n"); + writeADC(ADCREG_VREFS,0x2); + printf("\nSetting ADC Inversion\n");// (by trial and error) + bus_w(ADC_INVERSION_REG,0x453b2a9c); - //reset adc - writeADC(ADCREG1,0x3); writeADC(ADCREG1,0x0); - writeADC(ADCREG2,0x40); - writeADC(ADCREG3,0xf); - writeADC(ADCREG4,0x3f); - //vrefs - configurable? - writeADC(ADCREG_VREFS,0x2); - //set ADCINVERSionreg (by trial and error) - bus_w(ADC_INVERSION_REG,0x453b2a9c); + adcPipeline(HALFSPEED_ADC_PIPELINE); + dbitPipeline(HALFSPEED_DBIT_PIPELINE); + adcPhase(HALFSPEED_ADC_PHASE); //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) - adcPipeline(JUNGFRAU_HALFSPEED_ADC_PIPELINE); - dbitPipeline(JUNGFRAU_HALFSPEED_DBIT_PIPELINE); - adcPhase(JUNGFRAU_HALFSPEED_ADC_PHASE); //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) - - //reset mem machine fifos fifos - bus_w(MEM_MACHINE_FIFOS_REG,0x4000); - bus_w(MEM_MACHINE_FIFOS_REG,0x0); - //reset run control - bus_w(MEM_MACHINE_FIFOS_REG,0x0400); - bus_w(MEM_MACHINE_FIFOS_REG,0x0); - - //set default setting - initSpeedConfGain(JUNGFRAU_HALFSPEED_CONF); - setSettings(DYNAMICGAIN,-1); - } + printf("\nReset mem machine fifos\n"); + bus_w(MEM_MACHINE_FIFOS_REG,0x4000); + bus_w(MEM_MACHINE_FIFOS_REG,0x0); + printf("\nReset run control\n"); + bus_w(MEM_MACHINE_FIFOS_REG,0x0400); + bus_w(MEM_MACHINE_FIFOS_REG,0x0); + initSpeedConfGain(HALFSPEED_CONF); + setSettings(DYNAMICGAIN,-1); - //Initialization of acquistion parameters - setFrames(1*1000*1000); - setTrains(-1); - setExposureTime(10*1000); - setPeriod(2*1000*1000); - setDelay(0); - setGates(0); - setTiming(GET_EXTERNAL_COMMUNICATION_MODE); - setMaster(GET_MASTER); - setSynchronization(GET_SYNCHRONIZATION_MODE); - startReceiver(0); //firmware - }//end of control server only-- - else printf("\n\n"); + //Initialization of acquistion parameters + setFrames(1*1000*1000); + setTrains(-1); + setExposureTime(10*1000); + setPeriod(2*1000*1000); + setDelay(0); + setGates(0); + + setTiming(GET_EXTERNAL_COMMUNICATION_MODE); + setMaster(GET_MASTER); + setSynchronization(GET_SYNCHRONIZATION_MODE); + } + //------ end of control server ------ - //common for both control and stop server - strcpy(mess,"dummy message"); - strcpy(lastClientIP,"none"); - strcpy(thisClientIP,"none1"); - lockStatus=0; - // getDynamicRange(); + //common for both control and stop server + strcpy(mess,"dummy message"); + strcpy(lastClientIP,"none"); + strcpy(thisClientIP,"none1"); + lockStatus=0; - /* both these functions setROI and allocateRAM should go into the control server part. */ - if(myDetectorType!=JUNGFRAU){ - int retvalsize,ret; - setROI(-1,NULL,&retvalsize,&ret); - allocateRAM(); - } - return OK; + + return OK; } int decode_function(int file_des) { - int fnum,n; - int retval=FAIL; + int fnum,n; + int retval=FAIL; #ifdef VERBOSE - printf( "receive data\n"); + printf( "receive data\n"); #endif - n = receiveDataOnly(file_des,&fnum,sizeof(fnum)); - if (n <= 0) { + n = receiveDataOnly(file_des,&fnum,sizeof(fnum)); + if (n <= 0) { #ifdef VERBOSE - printf("ERROR reading from socket %d, %d %d\n", n, fnum, file_des); + printf("ERROR reading from socket %d, %d %d\n", n, fnum, file_des); #endif - return FAIL; - } + return FAIL; + } #ifdef VERBOSE - else - printf("size of data received %d\n",n); + else + printf("size of data received %d\n",n); #endif #ifdef VERBOSE - printf( "calling function fnum = %d %x %x %x\n",fnum,(unsigned int)(flist[fnum]), (unsigned int)(flist[F_READ_REGISTER]),(unsigned int)(&read_register)); + printf( "calling function fnum = %d %x %x %x\n",fnum,(unsigned int)(flist[fnum]), (unsigned int)(flist[F_READ_REGISTER]),(unsigned int)(&read_register)); #endif - if (fnum<0 || fnum>255) - fnum=255; - retval=(*flist[fnum])(file_des); - if (retval==FAIL) - printf( "Error executing the function = %d \n",fnum); - return retval; + if (fnum<0 || fnum>255) + fnum=255; + retval=(*flist[fnum])(file_des); + if (retval==FAIL) + printf( "Error executing the function = %d \n",fnum); + return retval; } int function_table() { - int i; - for (i=0;i<256;i++){ - flist[i]=&M_nofunc; - } - flist[F_EXIT_SERVER]=&exit_server; - flist[F_EXEC_COMMAND]=&exec_command; - flist[F_GET_DETECTOR_TYPE]=&get_detector_type; - flist[F_SET_NUMBER_OF_MODULES]=&set_number_of_modules; - flist[F_GET_MAX_NUMBER_OF_MODULES]=&get_max_number_of_modules; - flist[F_SET_EXTERNAL_SIGNAL_FLAG]=&set_external_signal_flag; - flist[F_SET_EXTERNAL_COMMUNICATION_MODE]=&set_external_communication_mode; - flist[F_GET_ID]=&get_id; - flist[F_DIGITAL_TEST]=&digital_test; - flist[F_WRITE_REGISTER]=&write_register; - flist[F_READ_REGISTER]=&read_register; - flist[F_SET_DAC]=&set_dac; - flist[F_GET_ADC]=&get_adc; - flist[F_SET_CHANNEL]=&set_channel; - flist[F_SET_CHIP]=&set_chip; - flist[F_SET_MODULE]=&set_module; - flist[F_GET_CHANNEL]=&get_channel; - flist[F_GET_CHIP]=&get_chip; - flist[F_GET_MODULE]=&get_module; - flist[F_GET_THRESHOLD_ENERGY]=&get_threshold_energy; - flist[F_SET_THRESHOLD_ENERGY]=&set_threshold_energy; - flist[F_SET_SETTINGS]=&set_settings; - flist[F_START_ACQUISITION]=&start_acquisition; - flist[F_STOP_ACQUISITION]=&stop_acquisition; - flist[F_START_READOUT]=&start_readout; - flist[F_GET_RUN_STATUS]=&get_run_status; - flist[F_READ_FRAME]=&read_frame; - flist[F_READ_ALL]=&read_all; - flist[F_START_AND_READ_ALL]=&start_and_read_all; - flist[F_SET_TIMER]=&set_timer; - flist[F_GET_TIME_LEFT]=&get_time_left; - flist[F_SET_DYNAMIC_RANGE]=&set_dynamic_range; - flist[F_SET_ROI]=&set_roi; - flist[F_SET_SPEED]=&set_speed; - flist[F_SET_READOUT_FLAGS]=&set_readout_flags; - flist[F_EXECUTE_TRIMMING]=&execute_trimming; - flist[F_LOCK_SERVER]=&lock_server; - flist[F_SET_PORT]=&set_port; - flist[F_GET_LAST_CLIENT_IP]=&get_last_client_ip; - flist[F_UPDATE_CLIENT]=&update_client; - flist[F_CONFIGURE_MAC]=&configure_mac; - flist[F_LOAD_IMAGE]=&load_image; - flist[F_SET_MASTER]=&set_master; - flist[F_SET_SYNCHRONIZATION_MODE]=&set_synchronization; - flist[F_READ_COUNTER_BLOCK]=&read_counter_block; - flist[F_RESET_COUNTER_BLOCK]=&reset_counter_block; - flist[F_START_RECEIVER]=&start_receiver; - flist[F_STOP_RECEIVER]=&stop_receiver; - flist[F_CALIBRATE_PEDESTAL]=&calibrate_pedestal; - flist[F_SET_CTB_PATTERN]=&set_ctb_pattern; - flist[F_WRITE_ADC_REG]=&write_adc_register; - flist[F_PROGRAM_FPGA]=&program_fpga; - return OK; + int i; + for (i=0;i<256;i++){ + flist[i]=&M_nofunc; + } + flist[F_EXIT_SERVER]=&exit_server; + flist[F_EXEC_COMMAND]=&exec_command; + flist[F_GET_DETECTOR_TYPE]=&get_detector_type; + flist[F_SET_NUMBER_OF_MODULES]=&set_number_of_modules; + flist[F_GET_MAX_NUMBER_OF_MODULES]=&get_max_number_of_modules; + flist[F_SET_EXTERNAL_SIGNAL_FLAG]=&set_external_signal_flag; + flist[F_SET_EXTERNAL_COMMUNICATION_MODE]=&set_external_communication_mode; + flist[F_GET_ID]=&get_id; + flist[F_DIGITAL_TEST]=&digital_test; + flist[F_WRITE_REGISTER]=&write_register; + flist[F_READ_REGISTER]=&read_register; + flist[F_SET_DAC]=&set_dac; + flist[F_GET_ADC]=&get_adc; + flist[F_SET_CHANNEL]=&set_channel; + flist[F_SET_CHIP]=&set_chip; + flist[F_SET_MODULE]=&set_module; + flist[F_GET_CHANNEL]=&get_channel; + flist[F_GET_CHIP]=&get_chip; + flist[F_GET_MODULE]=&get_module; + flist[F_GET_THRESHOLD_ENERGY]=&get_threshold_energy; + flist[F_SET_THRESHOLD_ENERGY]=&set_threshold_energy; + flist[F_SET_SETTINGS]=&set_settings; + flist[F_START_ACQUISITION]=&start_acquisition; + flist[F_STOP_ACQUISITION]=&stop_acquisition; + flist[F_START_READOUT]=&start_readout; + flist[F_GET_RUN_STATUS]=&get_run_status; + flist[F_READ_FRAME]=&read_frame; + flist[F_READ_ALL]=&read_all; + flist[F_START_AND_READ_ALL]=&start_and_read_all; + flist[F_SET_TIMER]=&set_timer; + flist[F_GET_TIME_LEFT]=&get_time_left; + flist[F_SET_DYNAMIC_RANGE]=&set_dynamic_range; + flist[F_SET_ROI]=&set_roi; + flist[F_SET_SPEED]=&set_speed; + flist[F_SET_READOUT_FLAGS]=&set_readout_flags; + flist[F_EXECUTE_TRIMMING]=&execute_trimming; + flist[F_LOCK_SERVER]=&lock_server; + flist[F_SET_PORT]=&set_port; + flist[F_GET_LAST_CLIENT_IP]=&get_last_client_ip; + flist[F_UPDATE_CLIENT]=&update_client; + flist[F_CONFIGURE_MAC]=&configure_mac; + flist[F_LOAD_IMAGE]=&load_image; + flist[F_SET_MASTER]=&set_master; + flist[F_SET_SYNCHRONIZATION_MODE]=&set_synchronization; + flist[F_READ_COUNTER_BLOCK]=&read_counter_block; + flist[F_RESET_COUNTER_BLOCK]=&reset_counter_block; + flist[F_START_RECEIVER]=&start_receiver; + flist[F_STOP_RECEIVER]=&stop_receiver; + flist[F_CALIBRATE_PEDESTAL]=&calibrate_pedestal; + flist[F_SET_CTB_PATTERN]=&set_ctb_pattern; + flist[F_WRITE_ADC_REG]=&write_adc_register; + flist[F_PROGRAM_FPGA]=&program_fpga; + return OK; } int M_nofunc(int file_des){ - - int ret=FAIL; - sprintf(mess,"Unrecognized Function\n"); - printf(mess); - sendDataOnly(file_des,&ret,sizeof(ret)); - sendDataOnly(file_des,mess,sizeof(mess)); - return GOODBYE; + int ret=FAIL; + sprintf(mess,"Unrecognized Function\n"); + printf(mess); + + sendDataOnly(file_des,&ret,sizeof(ret)); + sendDataOnly(file_des,mess,sizeof(mess)); + return GOODBYE; } int exit_server(int file_des) { - int retval=FAIL; - sendDataOnly(file_des,&retval,sizeof(retval)); - printf("closing server."); - sprintf(mess,"closing server"); - sendDataOnly(file_des,mess,sizeof(mess)); - return GOODBYE; + int retval=FAIL; + sendDataOnly(file_des,&retval,sizeof(retval)); + printf("closing server."); + sprintf(mess,"closing server"); + sendDataOnly(file_des,mess,sizeof(mess)); + return GOODBYE; } int exec_command(int file_des) { - char cmd[MAX_STR_LENGTH]; - char answer[MAX_STR_LENGTH]; - int retval=OK; - int sysret=0; - int n=0; + char cmd[MAX_STR_LENGTH]; + char answer[MAX_STR_LENGTH]; + int retval=OK; + int sysret=0; + int n=0; - /* receive arguments */ - n = receiveDataOnly(file_des,cmd,MAX_STR_LENGTH); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - retval=FAIL; - } + /* receive arguments */ + n = receiveDataOnly(file_des,cmd,MAX_STR_LENGTH); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + retval=FAIL; + } - /* execute action if the arguments correctly arrived*/ - if (retval==OK) { + /* execute action if the arguments correctly arrived*/ + if (retval==OK) { #ifdef VERBOSE - printf("executing command %s\n", cmd); + printf("executing command %s\n", cmd); #endif - if (lockStatus==0 || differentClients==0) - sysret=system(cmd); + if (lockStatus==0 || differentClients==0) + sysret=system(cmd); - //should be replaced by popen - if (sysret==0) { - sprintf(answer,"Succeeded\n"); - if (lockStatus==1 && differentClients==1) - sprintf(answer,"Detector locked by %s\n", lastClientIP); - } else { - sprintf(answer,"Failed\n"); - retval=FAIL; - } - } else { - sprintf(answer,"Could not receive the command\n"); - } - - /* send answer */ - n = sendDataOnly(file_des,&retval,sizeof(retval)); - n = sendDataOnly(file_des,answer,MAX_STR_LENGTH); - if (n < 0) { - sprintf(mess,"Error writing to socket"); - retval=FAIL; - } + //should be replaced by popen + if (sysret==0) { + sprintf(answer,"Succeeded\n"); + if (lockStatus==1 && differentClients==1) + sprintf(answer,"Detector locked by %s\n", lastClientIP); + } else { + sprintf(answer,"Failed\n"); + retval=FAIL; + } + } else { + sprintf(answer,"Could not receive the command\n"); + } + + /* send answer */ + n = sendDataOnly(file_des,&retval,sizeof(retval)); + n = sendDataOnly(file_des,answer,MAX_STR_LENGTH); + if (n < 0) { + sprintf(mess,"Error writing to socket"); + retval=FAIL; + } - /*return ok/fail*/ - return retval; - + /*return ok/fail*/ + return retval; + } int get_detector_type(int file_des) { - int n=0; - enum detectorType ret; - int retval=OK; - - sprintf(mess,"Can't return detector type\n"); + int n=0; + enum detectorType ret; + int retval=OK; + + sprintf(mess,"Can't return detector type\n"); - /* receive arguments */ - /* execute action */ - ret=myDetectorType; + /* receive arguments */ + /* execute action */ + ret=myDetectorType; #ifdef VERBOSE - printf("Returning detector type %d\n",ret); + printf("Returning detector type %d\n",ret); #endif - /* send answer */ - /* send OK/failed */ - if (differentClients==1) - retval=FORCE_UPDATE; + /* send answer */ + /* send OK/failed */ + if (differentClients==1) + retval=FORCE_UPDATE; + + n += sendDataOnly(file_des,&retval,sizeof(retval)); + if (retval!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&ret,sizeof(ret)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } + /*return ok/fail*/ + return retval; - n += sendDataOnly(file_des,&retval,sizeof(retval)); - if (retval!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&ret,sizeof(ret)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } - /*return ok/fail*/ - return retval; - } int set_number_of_modules(int file_des) { - int n; - int arg[2], ret=0; - int retval=OK; - int dim, nm; - - sprintf(mess,"Can't set number of modules\n"); + int n; + int arg[2], ret=0; + int retval=OK; + int dim, nm; - /* receive arguments */ - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket %d", n); - retval=GOODBYE; - } - if (retval==OK) { - dim=arg[0]; - nm=arg[1]; + sprintf(mess,"Can't set number of modules\n"); - /* execute action */ -#ifdef VERBOSE - printf("Setting the number of modules in dimension %d to %d\n",dim,nm ); -#endif - - //if (nm!=GET_FLAG) { - if (dim!=X && nm!=GET_FLAG) { - retval=FAIL; - sprintf(mess,"Can't change module number in dimension %d\n",dim); - } else { - if (lockStatus==1 && differentClients==1 && nm!=GET_FLAG) { - sprintf(mess,"Detector locked by %s\n", lastClientIP); - retval=FAIL; - } else { - ret=setNMod(nm); - if (nModX==nm || nm==GET_FLAG) { - retval=OK; - if (differentClients==1) - retval=FORCE_UPDATE; - } else - retval=FAIL; + /* receive arguments */ + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket %d", n); + retval=GOODBYE; } - } - } - /*} else { - if (dim==Y) { - ret=nModY; - } else if (dim==X) { - ret=setNMod(-1); - } - } - */ - - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&retval,sizeof(retval)); - if (retval!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&ret,sizeof(ret)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } - /*return ok/fail*/ - return retval; - + if (retval==OK) { + dim=arg[0]; + nm=arg[1]; + + /* execute action */ +#ifdef VERBOSE + printf("Setting the number of modules in dimension %d to %d\n",dim,nm ); +#endif + + //if (nm!=GET_FLAG) { + if (dim!=X && nm!=GET_FLAG) { + retval=FAIL; + sprintf(mess,"Can't change module number in dimension %d\n",dim); + } else { + if (lockStatus==1 && differentClients==1 && nm!=GET_FLAG) { + sprintf(mess,"Detector locked by %s\n", lastClientIP); + retval=FAIL; + } else { + ret=setNMod(nm); + if (nModX==nm || nm==GET_FLAG) { + retval=OK; + if (differentClients==1) + retval=FORCE_UPDATE; + } else + retval=FAIL; + } + } + } + + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&retval,sizeof(retval)); + if (retval!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&ret,sizeof(ret)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } + /*return ok/fail*/ + return retval; + } int get_max_number_of_modules(int file_des) { - int n; - int ret; - int retval=OK; - enum dimension arg; - - sprintf(mess,"Can't get max number of modules\n"); - /* receive arguments */ - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - retval=FAIL; - } - /* execute action */ + int n; + int ret; + int retval=OK; + enum dimension arg; + + sprintf(mess,"Can't get max number of modules\n"); + /* receive arguments */ + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + retval=FAIL; + } + /* execute action */ #ifdef VERBOSE - printf("Getting the max number of modules in dimension %d \n",arg); + printf("Getting the max number of modules in dimension %d \n",arg); #endif - switch (arg) { - case X: - ret=getNModBoard(); - break; - case Y: - ret=NMAXMODY; - break; - default: - ret=FAIL; - retval=FAIL; - break; - } + switch (arg) { + case X: + ret=getNModBoard(); + break; + case Y: + ret=NMAXMODY; + break; + default: + ret=FAIL; + retval=FAIL; + break; + } #ifdef VERBOSE - printf("Max number of module in dimension %d is %d\n",arg,ret ); -#endif + printf("Max number of module in dimension %d is %d\n",arg,ret ); +#endif - if (differentClients==1 && retval==OK) { - retval=FORCE_UPDATE; - } + if (differentClients==1 && retval==OK) { + retval=FORCE_UPDATE; + } - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&retval,sizeof(retval)); - if (retval!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&ret,sizeof(ret)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&retval,sizeof(retval)); + if (retval!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&ret,sizeof(ret)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } - /*return ok/fail*/ - return retval; + /*return ok/fail*/ + return retval; } @@ -591,17 +541,14 @@ int set_external_signal_flag(int file_des) { sprintf(mess,"Detector locked by %s\n", lastClientIP); } } - } - #ifdef VERBOSE printf("Setting external signal %d to flag %d\n",signalindex,flag ); printf("Set to flag %d\n",retval); #endif - - } else { + } else ret=FAIL; - } + if (ret==OK && differentClients!=0) ret=FORCE_UPDATE; @@ -631,7 +578,6 @@ int set_external_communication_mode(int file_des) { sprintf(mess,"Can't set external communication mode\n"); - /* receive arguments */ n = receiveDataOnly(file_des,&arg,sizeof(arg)); if (n < 0) { @@ -654,16 +600,7 @@ int set_external_communication_mode(int file_des) { */ if (retval==OK) { /* execute action */ - ret=setTiming(arg); - - /* switch(arg) { */ - /* default: */ - /* sprintf(mess,"The meaning of single signals should be set\n"); */ - /* retval=FAIL; */ - /* } */ - - #ifdef VERBOSE printf("Setting external communication mode to %d\n", arg); #endif @@ -687,336 +624,333 @@ int set_external_communication_mode(int file_des) { int get_id(int file_des) { - // sends back 64 bits! - int64_t retval=-1; - int ret=OK; - int n=0; - enum idMode arg; - - sprintf(mess,"Can't return id\n"); + // sends back 64 bits! + int64_t retval=-1; + int ret=OK; + int n=0; + enum idMode arg; - /* receive arguments */ - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } + sprintf(mess,"Can't return id\n"); + + /* receive arguments */ + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } #ifdef VERBOSE - printf("Getting id %d\n", arg); + printf("Getting id %d\n", arg); #endif - switch (arg) { - case DETECTOR_SERIAL_NUMBER: - retval=getDetectorNumber(); - break; - case DETECTOR_FIRMWARE_VERSION: - retval=getFirmwareSVNVersion(); - retval=(retval <<32) | getFirmwareVersion(); - break; - case DETECTOR_SOFTWARE_VERSION: - retval= SVNREV; - retval= (retval <<32) | SVNDATE; - break; -/* case DETECTOR_FIRMWARE_SVN_VERSION: - retval=getFirmwareSVNVersion(); - break;*/ - default: - printf("Required unknown id %d \n", arg); - ret=FAIL; - retval=FAIL; - break; - } - + switch (arg) { + case DETECTOR_SERIAL_NUMBER: + retval=getDetectorNumber(); + break; + case DETECTOR_FIRMWARE_VERSION: + retval=getFirmwareSVNVersion(); + retval=(retval <<32) | getFirmwareVersion(); + break; + case DETECTOR_SOFTWARE_VERSION: + retval= SVNREV; + retval= (retval <<32) | SVNDATE; + break; + default: + printf("Required unknown id %d \n", arg); + ret=FAIL; + retval=FAIL; + break; + } + #ifdef VERBOSE - printf("Id is %llx\n", retval); + printf("Id is %llx\n", retval); #endif - - if (differentClients==1) - ret=FORCE_UPDATE; - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&retval,sizeof(retval)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } + if (differentClients==1) + ret=FORCE_UPDATE; - /*return ok/fail*/ - return ret; + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&retval,sizeof(retval)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } + + /*return ok/fail*/ + return ret; } int digital_test(int file_des) { - int retval; - int ret=OK; - int imod=-1; - int n=0; - int ibit=0; - int ow; - int ival; - enum digitalTestMode arg; - - sprintf(mess,"Can't send digital test\n"); + int retval; + int ret=OK; + int imod=-1; + int n=0; + int ibit=0; + int ow; + int ival; + enum digitalTestMode arg; - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } + sprintf(mess,"Can't send digital test\n"); + + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } #ifdef VERBOSE - printf("Digital test mode %d\n",arg ); + printf("Digital test mode %d\n",arg ); #endif - switch (arg) { - case CHIP_TEST: - n = receiveDataOnly(file_des,&imod,sizeof(imod)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - retval=FAIL; - } + switch (arg) { + case CHIP_TEST: + n = receiveDataOnly(file_des,&imod,sizeof(imod)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + retval=FAIL; + } #ifdef VERBOSE - printf("of module %d\n", imod); + printf("of module %d\n", imod); #endif - retval=0; + retval=0; #ifdef MCB_FUNCS - if (differentClients==1 && lockStatus==1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - break; - } - if (imod >= nModX) { - ret=FAIL; - sprintf(mess,"Module %d disabled\n",imod); - break; - } - if (testShiftIn(imod)) retval|=(1<<(ibit)); - ibit++; - if (testShiftOut(imod)) retval|=(1<<(ibit)); - ibit++; - if (testShiftStSel(imod)) retval|=(1<<(ibit)); - ibit++; - //if ( testDataInOut(0x123456, imod)) retval|=(1<<(ibit++)); - //if ( testExtPulse(imod)) retval|=(1<<(ibit++)); - // for (ow=0; ow<6; ow++) - // ow=1; - //#ifndef PICASSOD - for (ow=0; ow<5; ow++) { - //#endif - if (testDataInOutMux(imod, ow, 0x789abc)) retval|=(1<= nModX) { + ret=FAIL; + sprintf(mess,"Module %d disabled\n",imod); + break; + } + if (testShiftIn(imod)) retval|=(1<<(ibit)); + ibit++; + if (testShiftOut(imod)) retval|=(1<<(ibit)); + ibit++; + if (testShiftStSel(imod)) retval|=(1<<(ibit)); + ibit++; + //if ( testDataInOut(0x123456, imod)) retval|=(1<<(ibit++)); + //if ( testExtPulse(imod)) retval|=(1<<(ibit++)); + // for (ow=0; ow<6; ow++) + // ow=1; + //#ifndef PICASSOD + for (ow=0; ow<5; ow++) { + //#endif + if (testDataInOutMux(imod, ow, 0x789abc)) retval|=(1<2500) - val=-1; - printf("%d mV is ",val); - if (val>0) - val=4095*val/2500; - printf("%d DACu\n", val); - } else if (val>4095) - val=-1; - - - retval=setDac(ind,val); - /* if(idac==HIGH_VOLTAGE) */ - /* retval=initHighVoltageByModule(val,imod); */ - /* else */ - /* retval=initDACbyIndexDACU(idac,val,imod); */ - } - else if (ind==ADC_VPP) { - printf("Setting ADC VPP to %d\n",val); - if (val>4 || val<0) - printf("Cannot set ADC VPP to %d\n",val); - else { - writeADC(0x18,val); - adcvpp=val; - } - retval=adcvpp;; + if (mV) { + if (val>2500) + val=-1; + printf("%d mV is ",val); + if (val>0) + val=4095*val/2500; + printf("%d DACu\n", val); + } else if (val>4095) + val=-1; - } else if (ind==HV_NEW ) - retval=initHighVoltageByModule(val,imod); - else - printf("**********No dac with index %d\n",ind); + + retval=setDac(ind,val); + /* if(idac==HIGH_VOLTAGE) */ + /* retval=initHighVoltageByModule(val,imod); */ + /* else */ + /* retval=initDACbyIndexDACU(idac,val,imod); */ + } + else if (ind==ADC_VPP) { + printf("Setting ADC VPP to %d\n",val); + if (val>4 || val<0) + printf("Cannot set ADC VPP to %d\n",val); + else { + writeADC(0x18,val); + adcvpp=val; + } + retval=adcvpp;; + + } else if (ind==HV_NEW ) + retval=initHighVoltageByModule(val,imod); + else + printf("**********No dac with index %d\n",ind); } } if(ret==OK){ - if (ind<16) { - if (mV) { - - printf("%d DACu is ",retval); - retval1=2500*retval/16535; - printf("%d mV \n",retval1); - } else - retval1=retval; - } else - retval1=retval; + if (ind<16) { + if (mV) { + + printf("%d DACu is ",retval); + retval1=2500*retval/16535; + printf("%d mV \n",retval1); + } else + retval1=retval; + } else + retval1=retval; } #endif @@ -1185,7 +1119,7 @@ int get_adc(int file_des) { printf("Unknown DAC index %d\n",ind); sprintf(mess,"Unknown DAC index %d\n",ind); ret=FAIL; - break; + break; } if (ret==OK) @@ -1218,70 +1152,70 @@ int get_adc(int file_des) { } int set_channel(int file_des) { - int ret=OK; - sls_detector_channel myChan; - int retval; - int n; - + int ret=OK; + sls_detector_channel myChan; + int retval; + int n; - sprintf(mess,"Can't set channel\n"); + + sprintf(mess,"Can't set channel\n"); #ifdef VERBOSE - printf("Setting channel\n"); + printf("Setting channel\n"); #endif - ret=receiveChannel(file_des, &myChan); - if (ret>=0) - ret=OK; - else - ret=FAIL; + ret=receiveChannel(file_des, &myChan); + if (ret>=0) + ret=OK; + else + ret=FAIL; #ifdef VERBOSE - printf("channel number is %d, chip number is %d, module number is %d, register is %lld\n", myChan.chan,myChan.chip, myChan.module, myChan.reg); + printf("channel number is %d, chip number is %d, module number is %d, register is %lld\n", myChan.chan,myChan.chip, myChan.module, myChan.reg); #endif - if (ret==OK) { - if (myChan.module>=getNModBoard()) - ret=FAIL; - if (myChan.chip>=N_CHIP) - ret=FAIL; - if (myChan.chan>=N_CHAN) - ret=FAIL; - if (myChan.module<0) - myChan.module=ALLMOD; - } + if (ret==OK) { + if (myChan.module>=getNModBoard()) + ret=FAIL; + if (myChan.chip>=NCHIP) + ret=FAIL; + if (myChan.chan>=NCHAN) + ret=FAIL; + if (myChan.module<0) + myChan.module=ALLMOD; + } - - if (ret==OK) { - if (differentClients==1 && lockStatus==1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { + + if (ret==OK) { + if (differentClients==1 && lockStatus==1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { #ifdef MCB_FUNCS - retval=initChannelbyNumber(myChan); + retval=initChannelbyNumber(myChan); #endif - } - } - /* Maybe this is done inside the initialization funcs */ - //copyChannel(detectorChans[myChan.module][myChan.chip]+(myChan.chan), &myChan); - + } + } + /* Maybe this is done inside the initialization funcs */ + //copyChannel(detectorChans[myChan.module][myChan.chip]+(myChan.chan), &myChan); - if (differentClients==1 && ret==OK) - ret=FORCE_UPDATE; - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&retval,sizeof(retval)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } + if (differentClients==1 && ret==OK) + ret=FORCE_UPDATE; + + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&retval,sizeof(retval)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } - /*return ok/fail*/ - return ret; - + /*return ok/fail*/ + return ret; + } @@ -1289,72 +1223,72 @@ int set_channel(int file_des) { int get_channel(int file_des) { - int ret=OK; - sls_detector_channel retval; + int ret=OK; + sls_detector_channel retval; - int arg[3]; - int ichan, ichip, imod; - int n; - - sprintf(mess,"Can't get channel\n"); + int arg[3]; + int ichan, ichip, imod; + int n; + + sprintf(mess,"Can't get channel\n"); - n = receiveDataOnly(file_des,arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - ichan=arg[0]; - ichip=arg[1]; - imod=arg[2]; - - if (ret==OK) { - ret=FAIL; - if (imod>=0 && imod=0 && ichip=0 && ichan=0 && imod=0 && ichip=0 && ichan=0) - ret=OK; - else - ret=FAIL; + if (ret>=0) + ret=OK; + else + ret=FAIL; #ifdef VERBOSE - printf("chip number is %d, module number is %d, register is %d, nchan %d\n",myChip.chip, myChip.module, myChip.reg, myChip.nchan); + printf("chip number is %d, module number is %d, register is %d, nchan %d\n",myChip.chip, myChip.module, myChip.reg, myChip.nchan); #endif - - if (ret==OK) { - if (myChip.module>=getNModBoard()) - ret=FAIL; - if (myChip.module<0) - myChip.module=ALLMOD; - if (myChip.chip>=N_CHIP) - ret=FAIL; - } - if (differentClients==1 && lockStatus==1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { + + if (ret==OK) { + if (myChip.module>=getNModBoard()) + ret=FAIL; + if (myChip.module<0) + myChip.module=ALLMOD; + if (myChip.chip>=NCHIP) + ret=FAIL; + } + if (differentClients==1 && lockStatus==1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { #ifdef MCB_FUNCS - retval=initChipbyNumber(myChip); + retval=initChipbyNumber(myChip); #endif - } - /* Maybe this is done inside the initialization funcs */ - //copyChip(detectorChips[myChip.module]+(myChip.chip), &myChip); + } + /* Maybe this is done inside the initialization funcs */ + //copyChip(detectorChips[myChip.module]+(myChip.chip), &myChip); - if (differentClients && ret==OK) - ret=FORCE_UPDATE; - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&retval,sizeof(retval)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } + if (differentClients && ret==OK) + ret=FORCE_UPDATE; + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&retval,sizeof(retval)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } - - return ret; + return ret; } + int get_chip(int file_des) { - - int ret=OK; - sls_detector_chip retval; - int arg[2]; - int ichip, imod; - int n; - + + int ret=OK; + sls_detector_chip retval; + int arg[2]; + int ichip, imod; + int n; - n = receiveDataOnly(file_des,arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - ichip=arg[0]; - imod=arg[1]; - if (ret==OK) { - ret=FAIL; - if (imod>=0 && imod=0 && ichip=0 && imod=0 && ichip=0) - ret=OK; - else - ret=FAIL; + if (ret>=0) + ret=OK; + else + ret=FAIL; #ifdef VERBOSE - printf("module number is %d,register is %d, nchan %d, nchip %d, ndac %d, nadc %d, gain %f, offset %f\n",myModule.module, myModule.reg, myModule.nchan, myModule.nchip, myModule.ndac, myModule.nadc, myModule.gain,myModule.offset); + printf("module number is %d,register is %d, nchan %d, nchip %d, ndac %d, nadc %d, gain %f, offset %f\n",myModule.module, myModule.reg, myModule.nchan, myModule.nchip, myModule.ndac, myModule.nadc, myModule.gain,myModule.offset); #endif - - if (ret==OK) { - if (myModule.module>=getNModBoard()) { - ret=FAIL; - printf("Module number is too large %d\n",myModule.module); - } - if (myModule.module<0) - myModule.module=ALLMOD; - } - - if (ret==OK) { - if (differentClients==1 && lockStatus==1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { + + if (ret==OK) { + if (myModule.module>=getNModBoard()) { + ret=FAIL; + printf("Module number is too large %d\n",myModule.module); + } + if (myModule.module<0) + myModule.module=ALLMOD; + } + + if (ret==OK) { + if (differentClients==1 && lockStatus==1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { #ifdef MCB_FUNCS - retval=initModulebyNumber(myModule); - if(retval != myModule.reg) - ret = FAIL; + retval=initModulebyNumber(myModule); + if(retval != myModule.reg) + ret = FAIL; #endif - } - } + } + } - if (differentClients==1 && ret==OK) - ret=FORCE_UPDATE; + if (differentClients==1 && ret==OK) + ret=FORCE_UPDATE; - /* Maybe this is done inside the initialization funcs */ - //copyChip(detectorChips[myChip.module]+(myChip.chip), &myChip); + /* Maybe this is done inside the initialization funcs */ + //copyChip(detectorChips[myChip.module]+(myChip.chip), &myChip); - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&retval,sizeof(retval)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&retval,sizeof(retval)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } - free(myDac); - if(myAdc != NULL) free(myAdc); - if(myChip != NULL) free(myChip); - if(myChan != NULL) free(myChan); + free(myDac); + if(myAdc != NULL) free(myAdc); + if(myChip != NULL) free(myChip); + if(myChan != NULL) free(myChan); - //setDynamicRange(dr); always 16 commented out + //setDynamicRange(dr); always 16 commented out - return ret; + return ret; } @@ -1616,278 +1517,245 @@ int set_module(int file_des) { int get_module(int file_des) { - int ret=OK; - int arg; - int imod; - int n; - sls_detector_module myModule; - int *myDac=malloc(N_DAC*sizeof(int)); - int *myChip=NULL; - int *myChan=NULL; - int *myAdc=NULL; - - /*not required for jungfrau. so save memory*/ - if(myDetectorType != JUNGFRAU){ - myChip=malloc(N_CHIP*sizeof(int)); - myChan=malloc(N_CHIP*N_CHAN*sizeof(int)); - myAdc=malloc(N_ADC*sizeof(int)); - } + int ret=OK; + int arg; + int imod; + int n; + sls_detector_module myModule; + int *myDac=malloc(NDAC*sizeof(int)); + int *myChip=NULL; + int *myChan=NULL; + int *myAdc=NULL; + //not allocating mychip,mychan for jungfrau to sace memory + + if (myDac) + myModule.dacs=myDac; + else { + sprintf(mess,"could not allocate dacs\n"); + ret=FAIL; + } - if (myDac) - myModule.dacs=myDac; - else { - sprintf(mess,"could not allocate dacs\n"); - ret=FAIL; - } + myModule.adcs=NULL; + myModule.chipregs=NULL; + myModule.chanregs=NULL; + myModule.ndac=NDAC; + myModule.nchip=NCHIP; + myModule.nchan=NCHAN*NCHIP; + myModule.nadc=NADC; - myModule.adcs=NULL; - myModule.chipregs=NULL; - myModule.chanregs=NULL; - /*not required for jungfrau. so save memory*/ - if(myDetectorType != JUNGFRAU){ - if (myAdc) - myModule.adcs=myAdc; - else { - sprintf(mess,"could not allocate adcs\n"); - ret=FAIL; - } - if (myChip) - myModule.chipregs=myChip; - else { - sprintf(mess,"could not allocate chips\n"); - ret=FAIL; - } - if (myChan) - myModule.chanregs=myChan; - else { - sprintf(mess,"could not allocate chans\n"); - ret=FAIL; - } - } - myModule.ndac=N_DAC; - myModule.nchip=N_CHIP; - myModule.nchan=N_CHAN*N_CHIP; - myModule.nadc=N_ADC; - + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + imod=arg; - - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - imod=arg; - - if (ret==OK) { - ret=FAIL; - if (imod>=0 && imod=0 && imod-2) { + dataret=FAIL; + sprintf(mess,"no data and run stopped: %d frames left\n",(int)(getFrames()+2)); + } else { + dataret=FINISHED; + sprintf(mess,"acquisition successfully finished\n"); + if (differentClients) + dataret=FORCE_UPDATE; + } #endif sendDataOnly(file_des,&dataret,sizeof(dataret)); -#ifdef VERYVERBOSE - printf("sending pointer %x of size %d\n",(unsigned int)(dataretval),dataBytes*nSamples); -#endif - sendDataOnly(file_des,dataretval,dataBytes*nSamples); - } else { - if (getFrames()>-1) { - dataret=FAIL; - sprintf(mess,"no data and run stopped: %d frames left\n",(int)(getFrames()+2)); - printf("%s\n",mess); - } else { - dataret=FINISHED; - sprintf(mess,"acquisition successfully finished\n"); - printf("%s\n",mess); - if (differentClients) - dataret=FORCE_UPDATE; - } -#ifdef VERBOSE - printf("Frames left %d\n",(int)(getFrames())); -#endif - sendDataOnly(file_des,&dataret,sizeof(dataret)); - sendDataOnly(file_des,mess,sizeof(mess)); - } - - - - - return dataret; - + sendDataOnly(file_des,mess,sizeof(mess)); + if(dataret == FAIL) + cprintf(RED,"%s\n",mess); + else + printf("%s",mess); + return dataret; } - - - - int read_all(int file_des) { - -while(read_frame(file_des)==OK) { - + while(read_frame(file_des)==OK) { #ifdef VERBOSE - printf("frame read\n"); + printf("frame read\n"); #endif - ; - } + ; + } #ifdef VERBOSE - printf("Frames finished\n"); + printf("Frames finished\n"); #endif - return OK; - - + return OK; } + + int start_and_read_all(int file_des) { - //int dataret=OK; #ifdef VERBOSE - printf("Starting and reading all frames\n"); + printf("Starting and reading all frames\n"); #endif + if (differentClients==1 && lockStatus==1) { + dataret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + sendDataOnly(file_des,&dataret,sizeof(dataret)); + sendDataOnly(file_des,mess,sizeof(mess)); + return dataret; - if (differentClients==1 && lockStatus==1) { - dataret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - sendDataOnly(file_des,&dataret,sizeof(dataret)); - sendDataOnly(file_des,mess,sizeof(mess)); - return dataret; - - } - - startStateMachine(); - - /* ret=startStateMachine(); - if (ret!=OK) { - sprintf(mess,"could not start state machine\n"); - sendDataOnly(file_des,&ret,sizeof(ret)); - sendDataOnly(file_des,mess,sizeof(mess)); - - #ifdef VERBOSE - printf("could not start state machine\n"); -#endif -} else {*/ - read_all(file_des); + } + startStateMachine(); + read_all(file_des); #ifdef VERBOSE - printf("Frames finished\n"); + printf("Frames finished\n"); #endif - //} - - - return OK; - - + return OK; } int set_timer(int file_des) { - enum timerIndex ind; - int64_t tns; - int n; - int64_t retval; - int ret=OK; - + enum timerIndex ind; + int64_t tns; + int n; + int64_t retval; + int ret=OK; - sprintf(mess,"can't set timer\n"); - - n = receiveDataOnly(file_des,&ind,sizeof(ind)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - - n = receiveDataOnly(file_des,&tns,sizeof(tns)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - - if (ret!=OK) { - printf(mess); - } + + sprintf(mess,"can't set timer\n"); + + n = receiveDataOnly(file_des,&ind,sizeof(ind)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + + n = receiveDataOnly(file_des,&tns,sizeof(tns)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + + if (ret!=OK) { + printf(mess); + } #ifdef VERBOSE - printf("setting timer %d to %lld ns\n",ind,tns); + printf("setting timer %d to %lld ns\n",ind,tns); #endif - if (ret==OK) { + if (ret==OK) { - if (differentClients==1 && lockStatus==1 && tns!=-1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { - switch(ind) { - case FRAME_NUMBER: - retval=setFrames(tns); - break; - case ACQUISITION_TIME: - retval=setExposureTime(tns); - break; - case FRAME_PERIOD: - retval=setPeriod(tns); - break; - case DELAY_AFTER_TRIGGER: - retval=setDelay(tns); - break; - case GATES_NUMBER: - retval=setGates(tns); - break; - case PROBES_NUMBER: - sprintf(mess,"can't set timer for moench\n"); - ret=FAIL; - break; - case CYCLES_NUMBER: - retval=setTrains(tns); - break; - default: - ret=FAIL; - sprintf(mess,"timer index unknown %d\n",ind); - break; - } - } - } - if (ret!=OK) { - printf(mess); - if (differentClients) - ret=FORCE_UPDATE; - } + if (differentClients==1 && lockStatus==1 && tns!=-1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + switch(ind) { + case FRAME_NUMBER: + retval=setFrames(tns); + break; + case ACQUISITION_TIME: + retval=setExposureTime(tns); + break; + case FRAME_PERIOD: + retval=setPeriod(tns); + break; + case DELAY_AFTER_TRIGGER: + retval=setDelay(tns); + break; + case GATES_NUMBER: + retval=setGates(tns); + break; + case PROBES_NUMBER: + sprintf(mess,"can't set timer for this detector\n"); + ret=FAIL; + break; + case CYCLES_NUMBER: + retval=setTrains(tns); + break; + default: + ret=FAIL; + sprintf(mess,"timer index unknown %d\n",ind); + break; + } + } + } + if (ret!=OK) { + printf(mess); + if (differentClients) + ret=FORCE_UPDATE; + } - if (ret!=OK) { - printf(mess); - printf("set timer failed\n"); - } else if (ind==FRAME_NUMBER) { - // ret=allocateRAM(); - // if (ret!=OK) - // sprintf(mess, "could not allocate RAM for %lld frames\n", tns); - } + if (ret!=OK) { + printf(mess); + printf("set timer failed\n"); + } - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n = sendDataOnly(file_des,mess,sizeof(mess)); - } else { + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n = sendDataOnly(file_des,mess,sizeof(mess)); + } else { #ifdef VERBOSE - printf("returning ok %d\n",(int)(sizeof(retval))); + printf("returning ok %d\n",(int)(sizeof(retval))); #endif - n = sendDataOnly(file_des,&retval,sizeof(retval)); - } + n = sendDataOnly(file_des,&retval,sizeof(retval)); + } - return ret; + return ret; } @@ -2264,91 +2033,91 @@ int set_timer(int file_des) { int get_time_left(int file_des) { - enum timerIndex ind; - int n; - int64_t retval; - int ret=OK; - - sprintf(mess,"can't get timer\n"); - n = receiveDataOnly(file_des,&ind,sizeof(ind)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - + enum timerIndex ind; + int n; + int64_t retval; + int ret=OK; - //#ifdef VERBOSE - - printf("getting time left on timer %d \n",ind); - //#endif - - if (ret==OK) { - switch(ind) { - case FRAME_NUMBER: - printf("getting frames \n"); - retval=getFrames(); - break; - case ACQUISITION_TIME: - retval=getExposureTime(); - break; - case FRAME_PERIOD: - retval=getPeriod(); - break; - case DELAY_AFTER_TRIGGER: - retval=getDelay(); - break; - case GATES_NUMBER: - retval=getGates(); - break; - case PROBES_NUMBER: - retval=getProbes(); - break; - case CYCLES_NUMBER: - retval=getTrains(); - break; - case PROGRESS: - retval=getProgress(); - break; - case ACTUAL_TIME: - retval=getActualTime(); - break; - case MEASUREMENT_TIME: - retval=getMeasurementTime(); - break; - case FRAMES_FROM_START: - case FRAMES_FROM_START_PG: - retval=getFramesFromStart(); - break; - default: - ret=FAIL; - sprintf(mess,"timer index unknown %d\n",ind); - break; - } - } + sprintf(mess,"can't get timer\n"); + n = receiveDataOnly(file_des,&ind,sizeof(ind)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } - if (ret!=OK) { - printf("get time left failed\n"); - } else if (differentClients) - ret=FORCE_UPDATE; + //#ifdef VERBOSE - //#ifdef VERBOSE + printf("getting time left on timer %d \n",ind); + //#endif - printf("time left on timer %d is %lld\n",ind, retval); - //#endif + if (ret==OK) { + switch(ind) { + case FRAME_NUMBER: + printf("getting frames \n"); + retval=getFrames(); + break; + case ACQUISITION_TIME: + retval=getExposureTime(); + break; + case FRAME_PERIOD: + retval=getPeriod(); + break; + case DELAY_AFTER_TRIGGER: + retval=getDelay(); + break; + case GATES_NUMBER: + retval=getGates(); + break; + case PROBES_NUMBER: + retval=getProbes(); + break; + case CYCLES_NUMBER: + retval=getTrains(); + break; + case PROGRESS: + retval=getProgress(); + break; + case ACTUAL_TIME: + retval=getActualTime(); + break; + case MEASUREMENT_TIME: + retval=getMeasurementTime(); + break; + case FRAMES_FROM_START: + case FRAMES_FROM_START_PG: + retval=getFramesFromStart(); + break; + default: + ret=FAIL; + sprintf(mess,"timer index unknown %d\n",ind); + break; + } + } - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } else - n = sendDataOnly(file_des,&retval,sizeof(retval)); + + if (ret!=OK) { + printf("get time left failed\n"); + } else if (differentClients) + ret=FORCE_UPDATE; + + //#ifdef VERBOSE + + printf("time left on timer %d is %lld\n",ind, retval); + //#endif + + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } else + n = sendDataOnly(file_des,&retval,sizeof(retval)); #ifdef VERBOSE - printf("data sent\n"); + printf("data sent\n"); #endif - return ret; + return ret; } @@ -2356,62 +2125,53 @@ int get_time_left(int file_des) { int set_dynamic_range(int file_des) { - - int dr; - int n; - int retval; - int ret=OK; - - printf("Set dynamic range?\n"); - sprintf(mess,"can't set dynamic range\n"); - - n = receiveDataOnly(file_des,&dr,sizeof(dr)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - - - if (differentClients==1 && lockStatus==1 && dr>=0) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { - retval=setDynamicRange(dr); - } + int dr; + int n; + int retval; + int ret=OK; - //if (dr>=0 && retval!=dr) ret=FAIL; - if (ret!=OK) { - sprintf(mess,"set dynamic range failed\n"); - } else { - /* ret=allocateRAM(); */ -/* if (ret!=OK) */ -/* sprintf(mess,"Could not allocate RAM for the dynamic range selected\n"); */ -// else - if (differentClients) - ret=FORCE_UPDATE; - } + printf("Set dynamic range?\n"); + sprintf(mess,"can't set dynamic range\n"); - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n = sendDataOnly(file_des,mess,sizeof(mess)); - } else { - n = sendDataOnly(file_des,&retval,sizeof(retval)); - } - return ret; + + n = receiveDataOnly(file_des,&dr,sizeof(dr)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + + + if (differentClients==1 && lockStatus==1 && dr>=0) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + retval=setDynamicRange(dr); + } + + //if (dr>=0 && retval!=dr) ret=FAIL; + if (ret!=OK) { + sprintf(mess,"set dynamic range failed\n"); + } else { + if (differentClients) + ret=FORCE_UPDATE; + } + + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n = sendDataOnly(file_des,mess,sizeof(mess)); + } else { + n = sendDataOnly(file_des,&retval,sizeof(retval)); + } + return ret; } int set_roi(int file_des) { - int i; int ret=OK; int nroi=-1; int n=0; - int retvalsize=0; - ROI arg[MAX_ROIS]; - ROI* retval=0; strcpy(mess,"Could not set/get roi\n"); - // u_int32_t disable_reg=0; n = receiveDataOnly(file_des,&nroi,sizeof(nroi)); if (n < 0) { @@ -2419,41 +2179,9 @@ int set_roi(int file_des) { ret=FAIL; } - if(myDetectorType == JUNGFRAU){ - ret = FAIL; - strcpy(mess,"Not applicable/implemented for this detector\n"); - printf("Error:Set ROI-%s",mess); - } - - else{ - - if(nroi>=0){ - n = receiveDataOnly(file_des,arg,nroi*sizeof(ROI)); - if (n != (nroi*sizeof(ROI))) { - sprintf(mess,"Received wrong number of bytes for ROI\n"); - ret=FAIL; - } - - printf("Setting ROI to:"); - for( i=0;i=0) { - if (lockStatus==0 || strcmp(lastClientIP,thisClientIP)==0 || strcmp(lastClientIP,"none")==0) - lockStatus=lock; - else { - ret=FAIL; - sprintf(mess,"Server already locked by %s\n", lastClientIP); - } - } - if (differentClients && ret==OK) - ret=FORCE_UPDATE; - - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n = sendDataOnly(file_des,mess,sizeof(mess)); - } else - n = sendDataOnly(file_des,&lockStatus,sizeof(lockStatus)); - - return ret; + int n; + int ret=OK; + + int lock; + n = receiveDataOnly(file_des,&lock,sizeof(lock)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + printf("Error reading from socket (lock)\n"); + ret=FAIL; + } + if (lock>=0) { + if (lockStatus==0 || strcmp(lastClientIP,thisClientIP)==0 || strcmp(lastClientIP,"none")==0) + lockStatus=lock; + else { + ret=FAIL; + sprintf(mess,"Server already locked by %s\n", lastClientIP); + } + } + if (differentClients && ret==OK) + ret=FORCE_UPDATE; + + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n = sendDataOnly(file_des,mess,sizeof(mess)); + } else + n = sendDataOnly(file_des,&lockStatus,sizeof(lockStatus)); + + return ret; } @@ -2776,65 +2425,65 @@ int set_port(int file_des) { } int get_last_client_ip(int file_des) { - int ret=OK; - int n; - if (differentClients ) - ret=FORCE_UPDATE; - n = sendDataOnly(file_des,&ret,sizeof(ret)); - n = sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP)); - - return ret; + int ret=OK; + int n; + if (differentClients ) + ret=FORCE_UPDATE; + n = sendDataOnly(file_des,&ret,sizeof(ret)); + n = sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP)); + + return ret; } int send_update(int file_des) { - int ret=OK; - enum detectorSettings t; - int n;//int thr, n; - //int it; - int64_t retval, tns=-1; - n = sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP)); - n = sendDataOnly(file_des,&nModX,sizeof(nModX)); - n = sendDataOnly(file_des,&nModY,sizeof(nModY)); - n = sendDataOnly(file_des,&dynamicRange,sizeof(dynamicRange)); - n = sendDataOnly(file_des,&dataBytes,sizeof(dataBytes)); - t=setSettings(GET_SETTINGS,-1); - n = sendDataOnly(file_des,&t,sizeof(t)); -/* thr=getThresholdEnergy(); + int ret=OK; + enum detectorSettings t; + int n;//int thr, n; + //int it; + int64_t retval, tns=-1; + n = sendDataOnly(file_des,lastClientIP,sizeof(lastClientIP)); + n = sendDataOnly(file_des,&nModX,sizeof(nModX)); + n = sendDataOnly(file_des,&nModY,sizeof(nModY)); + n = sendDataOnly(file_des,&dynamicRange,sizeof(dynamicRange)); + n = sendDataOnly(file_des,&dataBytes,sizeof(dataBytes)); + t=setSettings(GET_SETTINGS,-1); + n = sendDataOnly(file_des,&t,sizeof(t)); + /* thr=getThresholdEnergy(); n = sendDataOnly(file_des,&thr,sizeof(thr));*/ - retval=setFrames(tns); - n = sendDataOnly(file_des,&retval,sizeof(int64_t)); - retval=setExposureTime(tns); - n = sendDataOnly(file_des,&retval,sizeof(int64_t)); - retval=setPeriod(tns); - n = sendDataOnly(file_des,&retval,sizeof(int64_t)); - retval=setDelay(tns); - n = sendDataOnly(file_des,&retval,sizeof(int64_t)); - retval=setGates(tns); - n = sendDataOnly(file_des,&retval,sizeof(int64_t)); -/* retval=setProbes(tns); + retval=setFrames(tns); + n = sendDataOnly(file_des,&retval,sizeof(int64_t)); + retval=setExposureTime(tns); + n = sendDataOnly(file_des,&retval,sizeof(int64_t)); + retval=setPeriod(tns); + n = sendDataOnly(file_des,&retval,sizeof(int64_t)); + retval=setDelay(tns); + n = sendDataOnly(file_des,&retval,sizeof(int64_t)); + retval=setGates(tns); + n = sendDataOnly(file_des,&retval,sizeof(int64_t)); + /* retval=setProbes(tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t));*/ - retval=setTrains(tns); - n = sendDataOnly(file_des,&retval,sizeof(int64_t)); + retval=setTrains(tns); + n = sendDataOnly(file_des,&retval,sizeof(int64_t)); - if (lockStatus==0) { - strcpy(lastClientIP,thisClientIP); - } + if (lockStatus==0) { + strcpy(lastClientIP,thisClientIP); + } + + return ret; - return ret; - } int update_client(int file_des) { - int ret=OK; + int ret=OK; + + sendDataOnly(file_des,&ret,sizeof(ret)); + return send_update(file_des); + - sendDataOnly(file_des,&ret,sizeof(ret)); - return send_update(file_des); - - } @@ -2934,7 +2583,7 @@ int load_image(int file_des) { int ret=OK; int n; enum imageType index; - short int ImageVals[N_CHAN*N_CHIP]; + short int ImageVals[NCHAN*NCHIP]; sprintf(mess,"Loading image failed\n"); @@ -2965,7 +2614,7 @@ int load_image(int file_des) { printf("Unknown index %d\n",index); sprintf(mess,"Unknown index %d\n",index); ret=FAIL; - break; + break; } if (ret==OK) { @@ -3002,44 +2651,44 @@ int load_image(int file_des) { int set_master(int file_des) { - enum masterFlags retval=GET_MASTER; - enum masterFlags arg; - int n; - int ret=OK; - // int regret=OK; + enum masterFlags retval=GET_MASTER; + enum masterFlags arg; + int n; + int ret=OK; + // int regret=OK; - sprintf(mess,"can't set master flags\n"); + sprintf(mess,"can't set master flags\n"); - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } #ifdef VERBOSE - printf("setting master flags to %d\n",arg); + printf("setting master flags to %d\n",arg); #endif - if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { - retval=setMaster(arg); + if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + retval=setMaster(arg); - } - if (retval==GET_MASTER) { - ret=FAIL; - } - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n = sendDataOnly(file_des,mess,sizeof(mess)); - } else { - n = sendDataOnly(file_des,&retval,sizeof(retval)); - } - return ret; + } + if (retval==GET_MASTER) { + ret=FAIL; + } + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n = sendDataOnly(file_des,mess,sizeof(mess)); + } else { + n = sendDataOnly(file_des,&retval,sizeof(retval)); + } + return ret; } @@ -3049,43 +2698,43 @@ int set_master(int file_des) { int set_synchronization(int file_des) { - enum synchronizationMode retval=GET_MASTER; - enum synchronizationMode arg; - int n; - int ret=OK; - //int regret=OK; + enum synchronizationMode retval=GET_MASTER; + enum synchronizationMode arg; + int n; + int ret=OK; + //int regret=OK; - sprintf(mess,"can't set synchronization mode\n"); + sprintf(mess,"can't set synchronization mode\n"); - n = receiveDataOnly(file_des,&arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } #ifdef VERBOSE - printf("setting master flags to %d\n",arg); + printf("setting master flags to %d\n",arg); #endif - if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { - //ret=setStoreInRAM(0); - // initChipWithProbes(0,0,0, ALLMOD); - retval=setSynchronization(arg); - } - if (retval==GET_SYNCHRONIZATION_MODE) { - ret=FAIL; - } - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n = sendDataOnly(file_des,mess,sizeof(mess)); - } else { - n = sendDataOnly(file_des,&retval,sizeof(retval)); - } - return ret; + if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + //ret=setStoreInRAM(0); + // initChipWithProbes(0,0,0, ALLMOD); + retval=setSynchronization(arg); + } + if (retval==GET_SYNCHRONIZATION_MODE) { + ret=FAIL; + } + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n = sendDataOnly(file_des,mess,sizeof(mess)); + } else { + n = sendDataOnly(file_des,&retval,sizeof(retval)); + } + return ret; } @@ -3099,7 +2748,7 @@ int read_counter_block(int file_des) { int n; int startACQ; //char *retval=NULL; - short int CounterVals[N_CHAN*N_CHIP]; + short int CounterVals[NCHAN*NCHIP]; sprintf(mess,"Read counter block failed\n"); @@ -3189,31 +2838,13 @@ int reset_counter_block(int file_des) { int start_receiver(int file_des) { - int ret=OK; - int n=0; - strcpy(mess,"Could not start receiver\n"); - - /* execute action if the arguments correctly arrived*/ -#ifdef MCB_FUNCS - if (lockStatus==1 && differentClients==1){//necessary??? - sprintf(mess,"Detector locked by %s\n", lastClientIP); - ret=FAIL; - } - else - ret = startReceiver(1); - -#endif - - - if(ret==OK && differentClients){ - printf("Force update\n"); - ret=FORCE_UPDATE; - } + int ret=FAIL; + int n; + strcpy(mess,"Not implemented for this detector\n"); /* send answer */ n = sendDataOnly(file_des,&ret,sizeof(ret)); - if(ret==FAIL) - n = sendDataOnly(file_des,mess,sizeof(mess)); + n = sendDataOnly(file_des,mess,sizeof(mess)); /*return ok/fail*/ return ret; } @@ -3224,32 +2855,13 @@ int start_receiver(int file_des) { int stop_receiver(int file_des) { - int ret=OK; - int n=0; - - strcpy(mess,"Could not stop receiver\n"); - - /* execute action if the arguments correctly arrived*/ -#ifdef MCB_FUNCS - if (lockStatus==1 && differentClients==1){//necessary??? - sprintf(mess,"Detector locked by %s\n", lastClientIP); - ret=FAIL; - } - else - ret=startReceiver(0); - -#endif - - - if(ret==OK && differentClients){ - printf("Force update\n"); - ret=FORCE_UPDATE; - } + int ret = FAIL; + int n; + strcpy(mess,"Not implemented for this detector\n"); /* send answer */ n = sendDataOnly(file_des,&ret,sizeof(ret)); - if(ret==FAIL) - n = sendDataOnly(file_des,mess,sizeof(mess)); + n = sendDataOnly(file_des,mess,sizeof(mess)); /*return ok/fail*/ return ret; } @@ -3301,7 +2913,7 @@ int calibrate_pedestal(int file_des){ int set_ctb_pattern(int file_des){ - int ret=OK;//FAIL; + int ret=OK;//FAIL; int retval=-1; int n; int mode; @@ -3312,146 +2924,146 @@ int set_ctb_pattern(int file_des){ sprintf(mess,"Could not set pattern\n"); - n = receiveDataOnly(file_des,&mode,sizeof(mode)); + n = receiveDataOnly(file_des,&mode,sizeof(mode)); printf("pattern mode is %d\n",mode); switch (mode) { case 0: //sets word - n = receiveDataOnly(file_des,&addr,sizeof(addr)); - n = receiveDataOnly(file_des,&word,sizeof(word)); - ret=OK; + n = receiveDataOnly(file_des,&addr,sizeof(addr)); + n = receiveDataOnly(file_des,&word,sizeof(word)); + ret=OK; - switch (addr) { - case -1: - retval64=writePatternIOControl(word); - break; - case -2: - retval64=writePatternClkControl(word); - break; - default: - retval64=writePatternWord(addr,word); - }; + switch (addr) { + case -1: + retval64=writePatternIOControl(word); + break; + case -2: + retval64=writePatternClkControl(word); + break; + default: + retval64=writePatternWord(addr,word); + }; - //write word; - //@param addr address of the word, -1 is I/O control register, -2 is clk control register - //@param word 64bit word to be written, -1 gets - - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) - n += sendDataOnly(file_des,mess,sizeof(mess)); - else - n += sendDataOnly(file_des,&retval64,sizeof(retval64)); - break; + //write word; + //@param addr address of the word, -1 is I/O control register, -2 is clk control register + //@param word 64bit word to be written, -1 gets - case 1: //pattern loop - n = receiveDataOnly(file_des,&level,sizeof(level)); - n = receiveDataOnly(file_des,&start,sizeof(start)); - n = receiveDataOnly(file_des,&stop,sizeof(stop)); - n = receiveDataOnly(file_des,&nl,sizeof(nl)); - + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + else + n += sendDataOnly(file_des,&retval64,sizeof(retval64)); + break; + + case 1: //pattern loop + n = receiveDataOnly(file_des,&level,sizeof(level)); + n = receiveDataOnly(file_des,&start,sizeof(start)); + n = receiveDataOnly(file_des,&stop,sizeof(stop)); + n = receiveDataOnly(file_des,&nl,sizeof(nl)); - printf("level %d start %x stop %x nl %d\n",level, start, stop, nl); - /** Sets the pattern or loop limits in the CTB + + printf("level %d start %x stop %x nl %d\n",level, start, stop, nl); + /** Sets the pattern or loop limits in the CTB @param level -1 complete pattern, 0,1,2, loop level @param start start address if >=0 @param stop stop address if >=0 @param n number of loops (if level >=0) @returns OK/FAIL - */ - ret=setPatternLoop(level, &start, &stop, &nl); - - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) - n += sendDataOnly(file_des,mess,sizeof(mess)); - else { - n += sendDataOnly(file_des,&start,sizeof(start)); - n += sendDataOnly(file_des,&stop,sizeof(stop)); - n += sendDataOnly(file_des,&nl,sizeof(nl)); - } - break; + */ + ret=setPatternLoop(level, &start, &stop, &nl); + + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + else { + n += sendDataOnly(file_des,&start,sizeof(start)); + n += sendDataOnly(file_des,&stop,sizeof(stop)); + n += sendDataOnly(file_des,&nl,sizeof(nl)); + } + break; - case 2: //wait address - n = receiveDataOnly(file_des,&level,sizeof(level)); - n = receiveDataOnly(file_des,&addr,sizeof(addr)); + case 2: //wait address + n = receiveDataOnly(file_des,&level,sizeof(level)); + n = receiveDataOnly(file_des,&addr,sizeof(addr)); - - /** Sets the wait address in the CTB + + /** Sets the wait address in the CTB @param level 0,1,2, wait level @param addr wait address, -1 gets @returns actual value - */ - printf("wait addr %d %x\n",level, addr); - retval=setPatternWaitAddress(level,addr); - printf("ret: wait addr %d %x\n",level, retval); - ret=OK; - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) - n += sendDataOnly(file_des,mess,sizeof(mess)); - else { - n += sendDataOnly(file_des,&retval,sizeof(retval)); + */ + printf("wait addr %d %x\n",level, addr); + retval=setPatternWaitAddress(level,addr); + printf("ret: wait addr %d %x\n",level, retval); + ret=OK; + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + else { + n += sendDataOnly(file_des,&retval,sizeof(retval)); - } - - - break; + } - case 3: //wait time - n = receiveDataOnly(file_des,&level,sizeof(level)); - n = receiveDataOnly(file_des,&t,sizeof(t)); + break; - /** Sets the wait time in the CTB + case 3: //wait time + n = receiveDataOnly(file_des,&level,sizeof(level)); + n = receiveDataOnly(file_des,&t,sizeof(t)); + + + /** Sets the wait time in the CTB @param level 0,1,2, wait level @param t wait time, -1 gets @returns actual value - */ + */ - ret=OK; + ret=OK; - retval64=setPatternWaitTime(level,t); + retval64=setPatternWaitTime(level,t); - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) - n += sendDataOnly(file_des,mess,sizeof(mess)); - else - n += sendDataOnly(file_des,&retval64,sizeof(retval64)); + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + else + n += sendDataOnly(file_des,&retval64,sizeof(retval64)); - break; + break; - case 4: - n = receiveDataOnly(file_des,pat,sizeof(pat)); - for (addr=0; addr<1024; addr++) - writePatternWord(addr,word); - ret=OK; - retval=0; - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) - n += sendDataOnly(file_des,mess,sizeof(mess)); - else - n += sendDataOnly(file_des,&retval64,sizeof(retval64)); + case 4: + n = receiveDataOnly(file_des,pat,sizeof(pat)); + for (addr=0; addr<1024; addr++) + writePatternWord(addr,word); + ret=OK; + retval=0; + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + else + n += sendDataOnly(file_des,&retval64,sizeof(retval64)); - break; - - + break; - default: - ret=FAIL; - printf(mess); - sprintf(mess,"%s - wrong mode %d\n",mess, mode); - n = sendDataOnly(file_des,&ret,sizeof(ret)); - n += sendDataOnly(file_des,mess,sizeof(mess)); - - + + + default: + ret=FAIL; + printf(mess); + sprintf(mess,"%s - wrong mode %d\n",mess, mode); + n = sendDataOnly(file_des,&ret,sizeof(ret)); + n += sendDataOnly(file_des,mess,sizeof(mess)); + + } @@ -3463,63 +3075,63 @@ int set_ctb_pattern(int file_des){ int write_adc_register(int file_des) { - int retval; - int ret=OK; - int arg[2]; - int addr, val; - int n; + int retval; + int ret=OK; + int arg[2]; + int addr, val; + int n; - sprintf(mess,"Can't write to register\n"); + sprintf(mess,"Can't write to register\n"); - n = receiveDataOnly(file_des,arg,sizeof(arg)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } - addr=arg[0]; - val=arg[1]; + n = receiveDataOnly(file_des,arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + addr=arg[0]; + val=arg[1]; #ifdef VERBOSE - printf("writing to register 0x%x data 0x%x\n", addr, val); + printf("writing to register 0x%x data 0x%x\n", addr, val); #endif - if (differentClients==1 && lockStatus==1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } + if (differentClients==1 && lockStatus==1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } - if(ret!=FAIL){ - ret=writeADC(addr,val); - if (ret==OK) - retval=val; - } - + if(ret!=FAIL){ + ret=writeADC(addr,val); + if (ret==OK) + retval=val; + } + #ifdef VERBOSE - printf("Data set to 0x%x\n", retval); + printf("Data set to 0x%x\n", retval); #endif - if (retval==val) { - ret=OK; - if (differentClients) - ret=FORCE_UPDATE; - } else { - ret=FAIL; - sprintf(mess,"Writing to register 0x%x failed: wrote 0x%x but read 0x%x\n", addr, val, retval); - } + if (retval==val) { + ret=OK; + if (differentClients) + ret=FORCE_UPDATE; + } else { + ret=FAIL; + sprintf(mess,"Writing to register 0x%x failed: wrote 0x%x but read 0x%x\n", addr, val, retval); + } - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret!=FAIL) { - /* send return argument */ - n += sendDataOnly(file_des,&retval,sizeof(retval)); - } else { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret!=FAIL) { + /* send return argument */ + n += sendDataOnly(file_des,&retval,sizeof(retval)); + } else { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } - /*return ok/fail*/ - return ret; + /*return ok/fail*/ + return ret; } @@ -3532,8 +3144,6 @@ int program_fpga(int file_des) { int n; const size_t maxprogramsize = 2 * 1024 *1024; size_t unitprogramsize = 0; - int currentPointer = 0; - char* fpgasrc = (char*)malloc(maxprogramsize); size_t filesize = 0; size_t totalsize = 0; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h index 154022e75..395f6f02c 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h @@ -23,7 +23,7 @@ int sockfd; int function_table(); int decode_function(int); -int init_detector(int,int); +int init_detector(int); int M_nofunc(int); int exit_server(int); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.c b/slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.c deleted file mode 100755 index 4504cfe05..000000000 --- a/slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "sharedmemory.h" - -struct statusdata *stdata; - -int inism(int clsv) { - -static int scansmid; - - if (clsv==SMSV) { - if ( (scansmid=shmget(SMKEY,1024,IPC_CREAT | 0666 ))==-1 ) { - return -1; - } - if ( (stdata=shmat(scansmid,NULL,0))==(void*)-1) { - return -2; - } - } - - if (clsv==SMCL) { - if ( (scansmid=shmget(SMKEY,0,0) )==-1 ) { - return -3; - } - if ( (stdata=shmat(scansmid,NULL,0))==(void*)-1) { - return -4; - } - } - return 1; -} - -void write_status_sm(char *status) { - strcpy(stdata->status,status); -} - -void write_stop_sm(int v) { - stdata->stop=v; -} - -void write_runnumber_sm(int v) { - stdata->runnumber=v; -} diff --git a/slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.h b/slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.h deleted file mode 100755 index bdbddf719..000000000 --- a/slsDetectorSoftware/jungfrauDetectorServer/sharedmemory.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef SM -#define SM - -#include "sls_detector_defs.h" - -#include -#include -#include -#include -#include -#include -#include -//#include -#include -#include -#include -#include -#include -#include - - -#include - -#include -#include - -/* key for shared memory */ -#define SMKEY 10001 - -#define SMSV 1 -#define SMCL 2 - - -struct statusdata { - int runnumber; - int stop; - char status[20]; -} ; - - -/* for shared memory */ - -int inism(int clsv); -void write_status_sm(char *status); -void write_stop_sm(int v); -void write_runnumber_sm(int v); - -#endif From 7541c2bcf0035e6bf0c59ed78843b552f7b4c2c1 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 27 Oct 2016 08:28:30 +0200 Subject: [PATCH 084/128] some more change --- .../jungfrauDetectorServerv2.2.1 | Bin 125624 -> 125620 bytes .../jungfrauDetectorServer/server_funcs.c | 10 +++++----- .../slsDetector/slsDetector.cpp | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index d1dbf973cbc65fb8faaa3cf59569fe5b19a8ebda..b4131635f260fa42dc4320300d8d99ffb0ebbee3 100755 GIT binary patch delta 25980 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 delta 25960 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

29pHs|8o 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[FRAME_PERIOD]); setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); setDynamicRange(thisDetector->dynamicRange); - activate(-1); + if(thisDetector->myDetectorType == EIGER) + activate(-1); //std::cout << "***********************************dataStreaming:" << parentDet->enableDataStreamingFromReceiver(-1) << endl << endl; //parentDet->enableDataStreamingFromReceiver(parentDet->enableDataStreamingFromReceiver(-1)); //set scan tag From 391ad67e8ccc0f70cbe4e25f853212faae79e2aa Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 27 Oct 2016 09:20:21 +0200 Subject: [PATCH 085/128] changing the mess return from acq finished eiger server:trial for 9m lag bug --- .../bin/eigerDetectorServerv2.2.0.16.1 | Bin 0 -> 277496 bytes .../slsDetectorFunctionList.c | 31 ++++++++---------- .../slsDetectorFunctionList.h | 2 +- .../slsDetectorServer_funcs.c | 31 +++++++++--------- 4 files changed, 31 insertions(+), 33 deletions(-) create mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 new file mode 100755 index 0000000000000000000000000000000000000000..4519f8f12511a35faaa1dfd6aa3b28783576f780 GIT binary patch literal 277496 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 Date: Thu, 27 Oct 2016 10:26:13 +0200 Subject: [PATCH 086/128] added single module binary --- .../bin/eigerDetectorServerv2.2.0.14.1 | Bin 0 -> 277496 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 new file mode 100755 index 0000000000000000000000000000000000000000..0be5f404a1c9c2ecc7d1f2831ce7373106bbf7d8 GIT binary patch literal 277496 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 TB%y!pqutibZ?z$XzQ8J literal 0 HcmV?d00001 From f5f9e535deec908d86e7bd55e54220c368669f69 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 28 Oct 2016 07:58:39 +0200 Subject: [PATCH 087/128] acquiring flag cleared at configuration file load --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 17c30f35b..c91fdbff0 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4279,7 +4279,7 @@ int multiSlsDetector::readConfigurationFile(string const fname){ multiSlsDetectorClient *cmd; // char ext[100]; - + setAcquiringFlag(false); string ans; string str; From 4c6c0784424fbe8ad18dec2c2ca86637b16d3aa7 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 28 Oct 2016 08:12:55 +0200 Subject: [PATCH 088/128] settimer returning -1 now instead of 1 for different values --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index c91fdbff0..81a5ac601 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1759,7 +1759,7 @@ int64_t multiSlsDetector::setTimer(timerIndex index, int64_t t){ if (ret1==-100) ret1=ret; else if (ret!=ret1) - ret1=FAIL; + ret1=-1; } } From 58228ed00fc86839f59737cbea83d673637ba993 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 31 Oct 2016 16:43:45 +0100 Subject: [PATCH 089/128] trying --- .../jungfrauDetectorServerv2.2.1 | Bin 125620 -> 125620 bytes .../slsDetector/slsDetector.cpp | 123 +++++++++--------- 2 files changed, 65 insertions(+), 58 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index b4131635f260fa42dc4320300d8d99ffb0ebbee3..4ef501c945778c9a2f1fd4d63c5609d4fb5fed49 100755 GIT binary patch delta 23 fcmdmTm3_-q_6eFy;@Z;_CoxJkx@>h}EO-R~Zg~jX delta 24 gcmdmTm3_-q_6eHIg7ZqJCr)CNXmr`?!dUPM0Dgc8y#N3J diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 2fe9e5ba3..62b680d9e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3978,7 +3978,6 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ int fnum=F_SET_TIMER,fnum2=F_SET_RECEIVER_TIMER; int64_t retval = -1; - int64_t ut = -2; char mess[MAX_STR_LENGTH]=""; int ret=OK; int n=0; @@ -4015,91 +4014,99 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } else { //std::cout<< "offline " << std::endl; if (t>=0) - thisDetector->timerValue[index]=t; + thisDetector->timerValue[index]=t; if((thisDetector->myDetectorType==GOTTHARD)|| - (thisDetector->myDetectorType==PROPIX)|| - (thisDetector->myDetectorType==JUNGFRAU)|| - (thisDetector->myDetectorType==MOENCH)) - thisDetector->timerValue[PROBES_NUMBER]=0; + (thisDetector->myDetectorType==PROPIX)|| + (thisDetector->myDetectorType==JUNGFRAU)|| + (thisDetector->myDetectorType==MOENCH)) + thisDetector->timerValue[PROBES_NUMBER]=0; } } else { - if (t>=0) - thisDetector->timerValue[index]=t; + if (t>=0) + thisDetector->timerValue[index]=t; } #ifdef VERBOSE std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl; #endif if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { - setDynamicRange(); - //cout << "Changing probes: data size = " << thisDetector->dataBytes <timerValue[FRAME_NUMBER]*thisDetector->timerValue[CYCLES_NUMBER]); - if(args[1] != -1) args[1]=retval; - }else{ -#ifdef VERBOSE - std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; -#endif - args[0] = FRAME_PERIOD; - //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period - if(!retval) args[1] = timerValue[ACQUISITION_TIME]; - } - + if(ret != FAIL){ + int64_t args[2]; + retval = -1; + args[0] = index; + args[1] = thisDetector->timerValue[index]; - if (connectData() == OK) - ret=thisReceiver->sendIntArray(fnum2,ut,args); - disconnectData(); - if((ut != retval)|| (ret==FAIL)){ - ret = FAIL; - if(index==FRAME_PERIOD){ - //exptime sent if acq period = 0 - if(retval){ - cout << "ERROR:Acquisition Period in receiver set incorrectly to " << ut << " instead of " << thisDetector->timerValue[index] << endl; - setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); - } - }else{ - cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << ut << " instead of " << thisDetector->timerValue[index] << endl; - setErrorMask((getErrorMask())|(RECEIVER_FRAME_NUM_NOT_SET)); + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + + //set #frames, #cycles + if((index==FRAME_NUMBER)||(index==CYCLES_NUMBER)){ +#ifdef VERBOSE + std::cout << "Setting/Getting number of frames " << index <<" to/from receiver " << args[1] << std::endl; +#endif + if(thisDetector->timerValue[CYCLES_NUMBER]==0) + args[1] = thisDetector->timerValue[FRAME_NUMBER]; + else + args[1] = thisDetector->timerValue[FRAME_NUMBER]*thisDetector->timerValue[CYCLES_NUMBER]; + } + //set period + else{ +#ifdef VERBOSE + std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; +#endif + //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period + if(!args[1]) + args[1] = timerValue[ACQUISITION_TIME]; + } + + + if (connectData() == OK) + ret=thisReceiver->sendIntArray(fnum2,retval,args); + disconnectData(); + if((args[1] != retval)|| (ret==FAIL)){ + ret = FAIL; + if(index==FRAME_PERIOD){ + //exptime sent if acq period = 0 + if(retval){ + cout << "ERROR:Acquisition Period in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; + setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); + } + }else{ + cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; + setErrorMask((getErrorMask())|(RECEIVER_FRAME_NUM_NOT_SET)); + } + } + + if(ret==FORCE_UPDATE) + updateReceiver(); + } } - } - - if(ret==FORCE_UPDATE) - updateReceiver(); - } - } } return thisDetector->timerValue[index]; }; From 1c073b70bd654db479362a56466435f6ae84ea04 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 31 Oct 2016 17:04:49 +0100 Subject: [PATCH 090/128] changed --- .../jungfrauDetectorServerv2.2.1 | Bin 125620 -> 125652 bytes .../jungfrauDetectorServer/server_funcs.c | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index 4ef501c945778c9a2f1fd4d63c5609d4fb5fed49..4f8fd0febff458c3e1476e623cc9aaf5874885e3 100755 GIT binary patch delta 44303 zcmc${dt6mj{{O!=o`VNMJ&Fhj$^lgHe#9H*?SQC=H#90MOH{n3hL=jsJY-(btiY{7 zjWyU{nxlnRK&-ILtjx&NsH|aojI56})HpNLSpJ@CpDTEona}t0c>MlYyw>Ht-s}B- zulKs{y$=V@Ha&B;X}4)3#$*T~41^S+WD23|$`MLwi4bOIT$n>BQznHzIJjWyCM7IC zC1&i#DNVGEQ~p*mOnZsgOH+F9wP{vG$Z(r$(&i}S&=;R$qTIwzmI}~u57^US-3D9!Y?#ck= z0dS?YkH(3L+%8C@zZDyNxd5Vz1F>{?MGqHBXwXZFdXRSJJ zUR7UYN;fB%^OLloOofoFt=Q#95RU9;MNk*&nlptAj?{GlnFFX>N!^Aut<jc1!9eE5EC4W)|$|wnYz76$EK%y2;$$UpELP1{Kh!7*X2tn)$-tJR_jlW=V5k!Y1U`8`b5`sp_9nou&5 zv`qUnMa!Jle{c5QqD+jhwYKNtu=fIj^pt08zu!QO|$Vg_COkzqLAPyTT?&1uA+;U zd#&K!7%f{QTP5>rYG>nw$kK<Zm5{}2!08=}o zPOEk`#o8w`s3-5SX_-NSV6N>Z(nve=4v=>s$gFyEf|@hfo9C5ybBf3*YF_1&bESpQ zuCy@k_0m+C=@WChPmX9MG|?(=Z<^iP7+D8eRrwONhN!i9pO=v(RA`pay#3ysvM^jE ztjZ_nM7YpSgqwYGiXss)GTkTVd^@3?Z)dJ;CG1{SeJn!jV=>o;_*me441_V}+AyEI z)=>pxi-?BXUFu#WEPXz&Yek~ zB@RvF%(W3dc`5ODN4&YVy-%LGGpkQ$b8VDQ-g)xQlV|bC+u4OFtBbid+9$7dH=)^E zcQe<<`eg3x4q1VF(>XVm4UJiNPeeyQ< zXCCTruI=fQH*bK@<_$2{_VDD{ZQ9k_1;Jcv^<-lHfiyDET-(bhuX+e;9wk~SNTv$K{{)9>lVHJ??#3+icK(?QNsIYBMV-dankwKVGsYMtIFH)H|7 zCteKrT?D0@U9;XnHWfi8R_PUo0ttG`+(k2AEx1?iU`jXX+l`>kV$_;)fJTcHLfHCb;{C0!lZJlgK=rF!z~ zvo4U|4^5o=6mxzJ8#J#PP0V4LRTbl{+g$xt8f&t$7NplzRIwrig^jl!b(QS$lr*u*1NtBfc%f`3{h_YTa z6()qNsW9q)O)z%#w7STl*KPd^qTSn&)$1Ut9E+mB0P zoc(xXxsIy$w8R^`M0KkDj~FQRYNDRCQ2nUxilh~|%iY#F;%={_U}o4Z^8tnO_U+-@6k+^iE+ zRcqDV(+QW6 zYn(vEGyZTHtUet)aJrbu+B#D>o?j`YH?cpJbY9b%g5-ozsq5fu-JjMgU6$R3L~?jv zwOp?e)cP{;quRA~chBICoT+G$Ge4kCA{r?!%bv5`%B^D8%VTFwd3MFZ@?OomwOm-< za=cB;M)K^L&Moakp?AIB^CdUpWoKq|t{cDQN<{_1SIKan^}`g@$}Ai74${Vcc-zXq zTZ+oPvq`S01)f_{@iMz`}f@|EAFF9kM}64xEuUAv9jV0@N4qN zTf9@%>8M+oGfKC>|3Z7azTOE(&&R_pd8nVYE07=$0j^knWkrzX35+m?z9Be%Um?vR z4ITzMrxEGFOAxTc!U z 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ħ)# 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 delta 44069 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 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index ae3e5a1d9..8c6a7925d 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -1876,9 +1876,9 @@ int read_frame(int file_des) { #ifdef MCB_FUNCS waitForAcquisitionEnd(); - if (getFrames()>-2) { + if (getFrames()+1>0) { dataret=FAIL; - sprintf(mess,"no data and run stopped: %d frames left\n",(int)(getFrames()+2)); + sprintf(mess,"no data and run stopped: %d frames left\n",(int)(getFrames()+1)); } else { dataret=FINISHED; sprintf(mess,"acquisition successfully finished\n"); From a7288dc0de92175b24bfc4038469d762e9b17a96 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 08:03:43 +0100 Subject: [PATCH 091/128] some changes --- .../jungfrauDetectorServer/firmware_funcs.c | 26 ++++++++++++++++++ .../jungfrauDetectorServer/firmware_funcs.h | 1 + .../jungfrauDetectorServerv2.2.1 | Bin 125652 -> 125796 bytes .../jungfrauDetectorServer/server_funcs.c | 3 ++ .../slsDetector/slsDetector.cpp | 8 +++--- 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 83b7e212e..0b186fd3e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -150,6 +150,19 @@ int mapCSP0(void) { return OK; } + + +void defineGPIOpins(){ + //define the gpio pins + system("echo 7 > /sys/class/gpio/export"); + system("echo 9 > /sys/class/gpio/export"); + //define their direction + system("echo in > /sys/class/gpio/gpio7/direction"); + system("echo out > /sys/class/gpio/gpio9/direction"); +} + + + u_int16_t bus_r16(u_int32_t offset){ volatile u_int16_t *ptr1; ptr1=(u_int16_t*)(CSP0BASE+offset*2); @@ -1421,6 +1434,14 @@ int writeGbeReg(int ivar, uint32_t val, int addr, int interface) { int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int sourceip,int ival,uint32_t destport, uint32_t sourceport, int interface) { //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ + + //tell FPGA to not touch flash + system("echo 0 > /sys/class/gpio/gpio9/value"); + //tell FPGA to touch flash to program itself + system("echo 1 > /sys/class/gpio/gpio9/value"); + + + volatile u_int32_t conf= bus_r(CONFIG_REG); long int checksum=calcChecksum(sourceip, destip); #ifdef NEW_GBE_INTERFACE @@ -1485,6 +1506,11 @@ int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int sourceip,int ival,uint32_t destport) { //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ + + + + + uint32_t sourceport = 0x7e9a; // 0xE185; int interface=0; int ngb; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h index 5755fec52..5f027579e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h @@ -22,6 +22,7 @@ int mapCSP0(void); +void defineGPIOpins(); u_int16_t bus_r16(u_int32_t offset); u_int16_t bus_w16(u_int32_t offset, u_int16_t data);//aldos function diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index 4f8fd0febff458c3e1476e623cc9aaf5874885e3..e816e6459e81fd8b0bd926a636d8294865d35eda 100755 GIT binary patch delta 52013 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 aF2!Sqf|jDOb!e5w)}eN7SmQ`b%Krh=40#0r diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 8c6a7925d..51d0fd097 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -97,6 +97,9 @@ int init_detector(int b) { ); + defineGPIOpins(); + + printf("Resetting PLL\n"); resetPLL(); bus_w16(CONTROL_REG, SYNC_RESET); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 62b680d9e..5632295d5 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -4025,9 +4025,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (t>=0) thisDetector->timerValue[index]=t; } -#ifdef VERBOSE +//#ifdef VERBOSE std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl; -#endif +//#endif if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { setDynamicRange(); @@ -4077,9 +4077,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } //set period else{ -#ifdef VERBOSE +//#ifdef VERBOSE std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; -#endif +//#endif //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period if(!args[1]) args[1] = timerValue[ACQUISITION_TIME]; From d6d6a050bdabe298e59ff5af35cd22bea3b3d3bc Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 08:06:21 +0100 Subject: [PATCH 092/128] some changes --- slsDetectorSoftware/slsDetector/slsDetector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 5632295d5..0f67d4ebf 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3985,9 +3985,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (index!=MEASUREMENTS_NUMBER) { -#ifdef VERBOSE +//#ifdef VERBOSE std::cout<< "Setting timer "<< index << " to " << t << "ns/value" << std::endl; -#endif +//#endif if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); From 5b4528925d2d6fe27d2871330f017fa0580e5029 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 08:10:52 +0100 Subject: [PATCH 093/128] some changes --- slsDetectorSoftware/slsDetector/slsDetector.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 0f67d4ebf..096506bde 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3560,6 +3560,7 @@ int slsDetector::updateDetectorNoWait() { //retval=setPeriod(tns); n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t)); thisDetector->timerValue[FRAME_PERIOD]=retval; + cprintf(RED,"updated frame period to %lld\n", (long long int)thisDetector->timerValue[FRAME_PERIOD]); //retval=setDelay(tns); n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t)); thisDetector->timerValue[DELAY_AFTER_TRIGGER]=retval; @@ -5546,7 +5547,7 @@ char* slsDetector::setReceiver(string receiverIP){ strcpy(thisDetector->receiver_hostname,receiverIP.c_str()); if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ -#ifdef VERBOSE +//#ifdef VERBOSE std::cout << "Setting up receiver with" << endl; std::cout << "detector type:" << slsDetectorBase::getDetectorType(thisDetector->myDetectorType) << endl; std::cout << "detector hostname:" << thisDetector->hostname << endl; @@ -5564,7 +5565,7 @@ char* slsDetector::setReceiver(string receiverIP){ std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl; //std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl; /** enable compresison, */ -#endif +//#endif if(setDetectorType()!= GENERIC){ setDetectorHostname(); setFilePath(fileIO::getFilePath()); From 2a7a11b80f75b8a39522f6eaa8b5af6a081341b5 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 09:12:58 +0100 Subject: [PATCH 094/128] changes --- .../bin/eigerDetectorServerv2.2.0.16.1 | Bin 277496 -> 277496 bytes .../jungfrauDetectorServer/firmware_funcs.c | 10 ++++++++-- .../jungfrauDetectorServerv2.2.1 | Bin 125796 -> 125836 bytes .../jungfrauDetectorServer/server_funcs.c | 5 ++--- .../slsDetector/slsDetector.cpp | 17 ++++++++--------- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 index 4519f8f12511a35faaa1dfd6aa3b28783576f780..5f58c87f95fef4f45686210864992a22cd059126 100755 GIT binary patch delta 39 scmezIUEs%efej&o9G3PBA{O!tI?XYH?J|W~02Mb2>i_@% delta 39 scmezIUEs%efej&o92W8nI+pefBF!;^?J|W~02LDp>i_@% diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 0b186fd3e..9407c4cff 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -65,6 +65,7 @@ typedef struct ip_header_struct { struct timeval tss,tse,tsss; //for timing +int gpiopinsdefined = 0; @@ -1058,6 +1059,7 @@ int64_t setPeriod(int64_t value){ printf("\nSetting period to %lld\n",(long long int)value); value*=(1E-3*clockdivider); } + return set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); } @@ -1434,12 +1436,16 @@ int writeGbeReg(int ivar, uint32_t val, int addr, int interface) { int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int sourceip,int ival,uint32_t destport, uint32_t sourceport, int interface) { //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ - +/* + if(!gpiopinsdefined){ + defineGPIOpins(); + gpiopinsdefined = 1; + } //tell FPGA to not touch flash system("echo 0 > /sys/class/gpio/gpio9/value"); //tell FPGA to touch flash to program itself system("echo 1 > /sys/class/gpio/gpio9/value"); - +*/ volatile u_int32_t conf= bus_r(CONFIG_REG); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index e816e6459e81fd8b0bd926a636d8294865d35eda..7f14fd57da6a60871318c75cded0c2da0a28ada4 100755 GIT binary patch delta 52487 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 NYfjL{YZPg&`TwReceiveDataOnly( &retval,sizeof(int64_t)); thisDetector->timerValue[FRAME_PERIOD]=retval; - cprintf(RED,"updated frame period to %lld\n", (long long int)thisDetector->timerValue[FRAME_PERIOD]); //retval=setDelay(tns); n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t)); thisDetector->timerValue[DELAY_AFTER_TRIGGER]=retval; @@ -3986,9 +3985,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (index!=MEASUREMENTS_NUMBER) { -//#ifdef VERBOSE +#ifdef VERBOSE std::cout<< "Setting timer "<< index << " to " << t << "ns/value" << std::endl; -//#endif +#endif if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -4026,9 +4025,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if (t>=0) thisDetector->timerValue[index]=t; } -//#ifdef VERBOSE +#ifdef VERBOSE std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl; -//#endif +#endif if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { setDynamicRange(); @@ -4078,9 +4077,9 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } //set period else{ -//#ifdef VERBOSE +#ifdef VERBOSE std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; -//#endif +#endif //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period if(!args[1]) args[1] = timerValue[ACQUISITION_TIME]; @@ -5547,7 +5546,7 @@ char* slsDetector::setReceiver(string receiverIP){ strcpy(thisDetector->receiver_hostname,receiverIP.c_str()); if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ -//#ifdef VERBOSE +#ifdef VERBOSE std::cout << "Setting up receiver with" << endl; std::cout << "detector type:" << slsDetectorBase::getDetectorType(thisDetector->myDetectorType) << endl; std::cout << "detector hostname:" << thisDetector->hostname << endl; @@ -5565,7 +5564,7 @@ char* slsDetector::setReceiver(string receiverIP){ std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl; //std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl; /** enable compresison, */ -//#endif +#endif if(setDetectorType()!= GENERIC){ setDetectorHostname(); setFilePath(fileIO::getFilePath()); From 2edeb742139d3202668f36ce528eb110cfa8f141 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 09:21:26 +0100 Subject: [PATCH 095/128] got rid of check if online --- slsDetectorSoftware/slsDetector/slsDetector.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index b21cc5e5f..b4b17a74a 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -7180,7 +7180,8 @@ int slsDetector::startReceiver(){ int ret = FAIL; char mess[MAX_STR_LENGTH] = ""; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { + //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver " << std::endl; #endif @@ -7216,7 +7217,8 @@ int slsDetector::stopReceiver(){ if(thisDetector->myDetectorType != EIGER && thisDetector->myDetectorType != JUNGFRAU) detectorSendToReceiver(false); - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { + //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Stopping Receiver " << std::endl; #endif @@ -7322,7 +7324,8 @@ int slsDetector::getFramesCaughtByReceiver(){ int ret = FAIL; int retval=-1; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { + //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Frames Caught by Receiver " << std::endl; #endif @@ -7365,7 +7368,8 @@ int slsDetector::resetFramesCaught(){ int ret = FAIL; char mess[MAX_STR_LENGTH] = ""; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { + //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Reset Frames Caught by Receiver" << std::endl; #endif From cf8bbad93743a72b300199155cc0c0f81d168a75 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 09:46:29 +0100 Subject: [PATCH 096/128] got rid of check if online --- .../slsDetector/slsDetector.cpp | 54 +++++++++---------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index b4b17a74a..061654100 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1311,7 +1311,7 @@ int slsDetector::activate(int const enable){ #endif if(ret!=FAIL){ - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Activating/Deactivating Receiver: " << retval << std::endl; #endif @@ -1624,7 +1624,7 @@ int slsDetector::setDetectorType(detectorType const type){ //receiver if((retType != GENERIC) && (setReceiverOnline()==ONLINE_FLAG)) { retval = FAIL; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending detector type to Receiver " << (int)thisDetector->myDetectorType << std::endl; #endif @@ -1995,7 +1995,7 @@ int64_t slsDetector::getId( idMode mode, int imod){ retval=SVNREVLIB; retval=(retval<<32) | SVNDATELIB; } else if (mode==RECEIVER_VERSION) { - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { if (connectData() == OK) ret=thisReceiver->getInt(fnum2,retval); disconnectData(); @@ -4057,7 +4057,7 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if((index==FRAME_NUMBER)||(index==FRAME_PERIOD)||(index==CYCLES_NUMBER)){ if(ret != FAIL){ retval = thisDetector->timerValue[index]; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ int64_t args[2]; args[1] = retval; if((t == -1) && (ret!= FORCE_UPDATE)) args[1] = -1; @@ -4614,7 +4614,7 @@ int slsDetector::setDynamicRange(int n){ if(ret != FAIL){ retval = thisDetector->dynamicRange; if((n==-1) && (ret!= FORCE_UPDATE)) n =-1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending/Getting dynamic range to/from receiver " << n << std::endl; #endif @@ -5538,7 +5538,7 @@ char* slsDetector::setReceiver(string receiverIP){ strcpy(thisDetector->receiver_hostname,receiverIP.c_str()); - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Setting up receiver with" << endl; std::cout << "detector type:" << slsDetectorBase::getDetectorType(thisDetector->myDetectorType) << endl; @@ -5746,7 +5746,7 @@ int slsDetector::setUDPConnection(){ #endif //set up receiver for UDP Connection and get receivermac address - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Setting up UDP Connection for Receiver " << args[0] << "\t" << args[1] << std::endl; #endif @@ -5911,7 +5911,7 @@ int slsDetector::configureMAC(){ pthread_mutex_unlock(&ms); //connect to receiver if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending adc val to receiver " << retval << std::endl; #endif @@ -7068,7 +7068,7 @@ string slsDetector::setFilePath(string s) { } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(setReceiverOnline()==ONLINE_FLAG){ strcpy(arg,s.c_str()); #ifdef VERBOSE std::cout << "Sending file path to receiver " << arg << std::endl; @@ -7109,7 +7109,7 @@ string slsDetector::setFileName(string s) { } if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ strcpy(arg,s.c_str()); #ifdef VERBOSE std::cout << "Sending file name to receiver " << arg << std::endl; @@ -7153,7 +7153,7 @@ int slsDetector::setFileIndex(int i) { } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending file index to receiver " << arg << std::endl; #endif @@ -7181,7 +7181,6 @@ int slsDetector::startReceiver(){ char mess[MAX_STR_LENGTH] = ""; if (setReceiverOnline()==ONLINE_FLAG) { - //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver " << std::endl; #endif @@ -7218,7 +7217,6 @@ int slsDetector::stopReceiver(){ detectorSendToReceiver(false); if (setReceiverOnline()==ONLINE_FLAG) { - //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Stopping Receiver " << std::endl; #endif @@ -7243,7 +7241,7 @@ slsDetectorDefs::runStatus slsDetector::startReceiverReadout(){ int retval=-1; runStatus s=ERROR; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver Readout" << std::endl; #endif @@ -7300,7 +7298,7 @@ slsDetectorDefs::runStatus slsDetector::getReceiverStatus(){ int retval=-1; runStatus s=ERROR; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Receiver Status" << std::endl; #endif @@ -7325,7 +7323,6 @@ int slsDetector::getFramesCaughtByReceiver(){ int retval=-1; if (setReceiverOnline()==ONLINE_FLAG) { - //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Frames Caught by Receiver " << std::endl; #endif @@ -7346,7 +7343,7 @@ int slsDetector::getReceiverCurrentFrameIndex(){ int ret = FAIL; int retval=-1; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Current Frame Index of Receiver " << std::endl; #endif @@ -7369,7 +7366,6 @@ int slsDetector::resetFramesCaught(){ char mess[MAX_STR_LENGTH] = ""; if (setReceiverOnline()==ONLINE_FLAG) { - //if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Reset Frames Caught by Receiver" << std::endl; #endif @@ -7395,7 +7391,7 @@ int slsDetector::lockReceiver(int lock){ int arg=lock; - if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ + if(setReceiverOnline()!=ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Locking or Unlocking Receiver " << std::endl; #endif @@ -7419,7 +7415,7 @@ string slsDetector::getReceiverLastClientIP(){ int ret = FAIL; char retval[INET_ADDRSTRLEN]=""; - if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ + if(setReceiverOnline()!=ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Geting Last Client IP connected to Receiver " << std::endl; #endif @@ -7470,7 +7466,7 @@ int slsDetector::updateReceiver() { int ret=OK; char mess[MAX_STR_LENGTH]=""; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { if (connectData() == OK){ dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); @@ -7497,7 +7493,7 @@ int slsDetector::exitReceiver(){ int retval; int fnum=F_EXIT_RECEIVER; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (setReceiverOnline()==ONLINE_FLAG) { if (dataSocket) { dataSocket->Connect(); dataSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -7533,7 +7529,7 @@ int slsDetector::enableWriteToFile(int enable){ } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif @@ -7574,7 +7570,7 @@ int slsDetector::overwriteFile(int enable){ } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif @@ -7610,7 +7606,7 @@ int slsDetector::setFrameIndex(int index){ fileIO::setFrameIndex(index); } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending frame index to receiver " << arg << std::endl; #endif @@ -7683,7 +7679,7 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ if(!getFromReceiver) return retval; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending read frequency to receiver " << arg << std::endl; #endif @@ -7712,7 +7708,7 @@ int slsDetector::enableDataStreamingFromReceiver(int enable){ int arg = enable; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl; #endif @@ -7740,7 +7736,7 @@ int slsDetector::enableReceiverCompression(int i){ int retval=-1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Getting/Enabling/Disabling Receiver Compression with argument " << i << std::endl; #endif @@ -7761,7 +7757,7 @@ void slsDetector::setDetectorHostname(){ char retval[MAX_STR_LENGTH]=""; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(setReceiverOnline()==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl; #endif From 59b5844de6170aaf5c75978d58d4a1d9326672bc Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 09:55:38 +0100 Subject: [PATCH 097/128] got rid of check if online --- slsDetectorSoftware/slsDetector/slsDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 061654100..00fe75adc 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -5538,7 +5538,7 @@ char* slsDetector::setReceiver(string receiverIP){ strcpy(thisDetector->receiver_hostname,receiverIP.c_str()); - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Setting up receiver with" << endl; std::cout << "detector type:" << slsDetectorBase::getDetectorType(thisDetector->myDetectorType) << endl; From 7374a3711589801ebb916a3fcb15353e946f9b59 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 10:03:38 +0100 Subject: [PATCH 098/128] back with checking online, got rid of getframescaught altogether --- .../slsDetector/slsDetector.cpp | 56 +++++++++---------- .../slsDetectorAnalysis/postProcessing.cpp | 5 ++ 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 00fe75adc..b21cc5e5f 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1311,7 +1311,7 @@ int slsDetector::activate(int const enable){ #endif if(ret!=FAIL){ - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Activating/Deactivating Receiver: " << retval << std::endl; #endif @@ -1624,7 +1624,7 @@ int slsDetector::setDetectorType(detectorType const type){ //receiver if((retType != GENERIC) && (setReceiverOnline()==ONLINE_FLAG)) { retval = FAIL; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending detector type to Receiver " << (int)thisDetector->myDetectorType << std::endl; #endif @@ -1995,7 +1995,7 @@ int64_t slsDetector::getId( idMode mode, int imod){ retval=SVNREVLIB; retval=(retval<<32) | SVNDATELIB; } else if (mode==RECEIVER_VERSION) { - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { if (connectData() == OK) ret=thisReceiver->getInt(fnum2,retval); disconnectData(); @@ -4057,7 +4057,7 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ if((index==FRAME_NUMBER)||(index==FRAME_PERIOD)||(index==CYCLES_NUMBER)){ if(ret != FAIL){ retval = thisDetector->timerValue[index]; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ int64_t args[2]; args[1] = retval; if((t == -1) && (ret!= FORCE_UPDATE)) args[1] = -1; @@ -4614,7 +4614,7 @@ int slsDetector::setDynamicRange(int n){ if(ret != FAIL){ retval = thisDetector->dynamicRange; if((n==-1) && (ret!= FORCE_UPDATE)) n =-1; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending/Getting dynamic range to/from receiver " << n << std::endl; #endif @@ -5746,7 +5746,7 @@ int slsDetector::setUDPConnection(){ #endif //set up receiver for UDP Connection and get receivermac address - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Setting up UDP Connection for Receiver " << args[0] << "\t" << args[1] << std::endl; #endif @@ -5911,7 +5911,7 @@ int slsDetector::configureMAC(){ pthread_mutex_unlock(&ms); //connect to receiver if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending adc val to receiver " << retval << std::endl; #endif @@ -7068,7 +7068,7 @@ string slsDetector::setFilePath(string s) { } } - else if(setReceiverOnline()==ONLINE_FLAG){ + else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ strcpy(arg,s.c_str()); #ifdef VERBOSE std::cout << "Sending file path to receiver " << arg << std::endl; @@ -7109,7 +7109,7 @@ string slsDetector::setFileName(string s) { } if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ strcpy(arg,s.c_str()); #ifdef VERBOSE std::cout << "Sending file name to receiver " << arg << std::endl; @@ -7153,7 +7153,7 @@ int slsDetector::setFileIndex(int i) { } } - else if(setReceiverOnline()==ONLINE_FLAG){ + else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending file index to receiver " << arg << std::endl; #endif @@ -7180,7 +7180,7 @@ int slsDetector::startReceiver(){ int ret = FAIL; char mess[MAX_STR_LENGTH] = ""; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver " << std::endl; #endif @@ -7216,7 +7216,7 @@ int slsDetector::stopReceiver(){ if(thisDetector->myDetectorType != EIGER && thisDetector->myDetectorType != JUNGFRAU) detectorSendToReceiver(false); - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Stopping Receiver " << std::endl; #endif @@ -7241,7 +7241,7 @@ slsDetectorDefs::runStatus slsDetector::startReceiverReadout(){ int retval=-1; runStatus s=ERROR; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver Readout" << std::endl; #endif @@ -7298,7 +7298,7 @@ slsDetectorDefs::runStatus slsDetector::getReceiverStatus(){ int retval=-1; runStatus s=ERROR; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Receiver Status" << std::endl; #endif @@ -7322,7 +7322,7 @@ int slsDetector::getFramesCaughtByReceiver(){ int ret = FAIL; int retval=-1; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Frames Caught by Receiver " << std::endl; #endif @@ -7343,7 +7343,7 @@ int slsDetector::getReceiverCurrentFrameIndex(){ int ret = FAIL; int retval=-1; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Current Frame Index of Receiver " << std::endl; #endif @@ -7365,7 +7365,7 @@ int slsDetector::resetFramesCaught(){ int ret = FAIL; char mess[MAX_STR_LENGTH] = ""; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Reset Frames Caught by Receiver" << std::endl; #endif @@ -7391,7 +7391,7 @@ int slsDetector::lockReceiver(int lock){ int arg=lock; - if(setReceiverOnline()!=ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Locking or Unlocking Receiver " << std::endl; #endif @@ -7415,7 +7415,7 @@ string slsDetector::getReceiverLastClientIP(){ int ret = FAIL; char retval[INET_ADDRSTRLEN]=""; - if(setReceiverOnline()!=ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Geting Last Client IP connected to Receiver " << std::endl; #endif @@ -7466,7 +7466,7 @@ int slsDetector::updateReceiver() { int ret=OK; char mess[MAX_STR_LENGTH]=""; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { if (connectData() == OK){ dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); @@ -7493,7 +7493,7 @@ int slsDetector::exitReceiver(){ int retval; int fnum=F_EXIT_RECEIVER; - if (setReceiverOnline()==ONLINE_FLAG) { + if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { if (dataSocket) { dataSocket->Connect(); dataSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -7529,7 +7529,7 @@ int slsDetector::enableWriteToFile(int enable){ } } - else if(setReceiverOnline()==ONLINE_FLAG){ + else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif @@ -7570,7 +7570,7 @@ int slsDetector::overwriteFile(int enable){ } } - else if(setReceiverOnline()==ONLINE_FLAG){ + else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif @@ -7606,7 +7606,7 @@ int slsDetector::setFrameIndex(int index){ fileIO::setFrameIndex(index); } - else if(setReceiverOnline()==ONLINE_FLAG){ + else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending frame index to receiver " << arg << std::endl; #endif @@ -7679,7 +7679,7 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ if(!getFromReceiver) return retval; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending read frequency to receiver " << arg << std::endl; #endif @@ -7708,7 +7708,7 @@ int slsDetector::enableDataStreamingFromReceiver(int enable){ int arg = enable; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl; #endif @@ -7736,7 +7736,7 @@ int slsDetector::enableReceiverCompression(int i){ int retval=-1; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Getting/Enabling/Disabling Receiver Compression with argument " << i << std::endl; #endif @@ -7757,7 +7757,7 @@ void slsDetector::setDetectorHostname(){ char retval[MAX_STR_LENGTH]=""; - if(setReceiverOnline()==ONLINE_FLAG){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl; #endif diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index cf3bbe0a2..82162c750 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -500,6 +500,8 @@ void* postProcessing::processData(int delflag) { if (checkJoinThread()){ break; } + + /* //get progress if(setReceiverOnline() == ONLINE_FLAG){ pthread_mutex_lock(&mg); @@ -516,6 +518,9 @@ void* postProcessing::processData(int delflag) { if (checkJoinThread()){ break; } + */ + + } } From 92305a9f7a8a82d79b5b7d6ba887f57d49507f5d Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 11:27:17 +0100 Subject: [PATCH 099/128] something --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 81a5ac601..a71dd90f3 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5086,10 +5086,13 @@ void multiSlsDetector::startReceivingDataThread(){ //initializations int numReadoutPerDetector = 1; bool jungfrau = false; + int expectedsize = 1024*256;/**shouldnt work for other bit modes or anythign*/ if(getDetectorsType() == EIGER){ numReadoutPerDetector = 2; - }else if(getDetectorsType() == JUNGFRAU) + }else if(getDetectorsType() == JUNGFRAU){ jungfrau = true; + expectedsize = 8192*128; + } int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); int* image = new int[nel]; @@ -5165,7 +5168,7 @@ void multiSlsDetector::startReceivingDataThread(){ //cprintf(BLUE,"%d data %d\n",ithread,len); //end of socket ("end") - if (len < 1024*256 ) { + if (len < expectedsize ) { if(len == 3){ //cprintf(RED,"%d Received end of acquisition\n", ithread); singleframe[ithread] = NULL; From 7fc82723b52a7006c4dc3427bf4b912d33fec96b Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 1 Nov 2016 14:04:31 +0100 Subject: [PATCH 100/128] some changes --- .../slsDetector/slsDetector.cpp | 74 +++++++++++++------ .../slsDetector/slsDetectorUtils.cpp | 5 +- .../slsDetectorAnalysis/postProcessing.cpp | 9 ++- 3 files changed, 58 insertions(+), 30 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index b21cc5e5f..27220c553 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -4030,27 +4030,29 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl; #endif - if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { - setDynamicRange(); - //cout << "Changing probes: data size = " << thisDetector->dataBytes <myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) { + setDynamicRange(); + //cout << "Changing probes: data size = " << thisDetector->dataBytes <myDetectorType == EIGER) && - getRateCorrection(r) && - (t>=0) && + //if eiger, rate corr on, a put statement, dr=32 &setting subexp or dr =16 & setting exptime, set ratecorr to update table + double r; + if( (thisDetector->myDetectorType == EIGER) && + getRateCorrection(r) && + (t>=0) && - (((index == SUBFRAME_ACQUISITION_TIME) && (thisDetector->dynamicRange == 32))|| - ((index == ACQUISITION_TIME) && (thisDetector->dynamicRange == 16))) + (((index == SUBFRAME_ACQUISITION_TIME) && (thisDetector->dynamicRange == 32))|| + ((index == ACQUISITION_TIME) && (thisDetector->dynamicRange == 16))) - && (t>=0) && getRateCorrection(r)){ - setRateCorrection(r); + && (t>=0) && getRateCorrection(r)){ + setRateCorrection(r); + } } //send acquisiton period/frame number to receiver @@ -7063,8 +7065,11 @@ string slsDetector::setFilePath(string s) { if(stat(s.c_str(),&st)){ std::cout << "path does not exist" << endl; setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST)); - }else + }else{ + pthread_mutex_lock(&ms); fileIO::setFilePath(s); + pthread_mutex_unlock(&ms); + } } } @@ -7076,8 +7081,11 @@ string slsDetector::setFilePath(string s) { if (connectData() == OK) ret=thisReceiver->sendString(fnum,retval,arg); disconnectData(); - if(ret!=FAIL) + if(ret!=FAIL){ + pthread_mutex_lock(&ms); fileIO::setFilePath(string(retval)); + pthread_mutex_unlock(&ms); + } else if(!s.empty()){ std::cout << "path does not exist" << endl; setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST)); @@ -7086,7 +7094,11 @@ string slsDetector::setFilePath(string s) { updateReceiver(); } - return fileIO::getFilePath(); + pthread_mutex_lock(&ms); + s = fileIO::getFilePath(); + pthread_mutex_unlock(&ms); + + return s; } @@ -7443,16 +7455,22 @@ int slsDetector::updateReceiverNoWait() { #ifdef VERBOSE cout << "Updating receiver last modified by " << lastClientIP << std::endl; #endif + n = dataSocket->ReceiveDataOnly(&ind,sizeof(ind)); pthread_mutex_lock(&ms); fileIO::setFileIndex(ind); pthread_mutex_unlock(&ms); + n = dataSocket->ReceiveDataOnly(path,MAX_STR_LENGTH); + pthread_mutex_lock(&ms); fileIO::setFilePath(path); + pthread_mutex_unlock(&ms); + n = dataSocket->ReceiveDataOnly(path,MAX_STR_LENGTH); pthread_mutex_lock(&ms); fileIO::setFileName(path); pthread_mutex_unlock(&ms); + return OK; } @@ -7603,7 +7621,9 @@ int slsDetector::setFrameIndex(int index){ int arg = index; if(thisDetector->receiverOnlineFlag==OFFLINE_FLAG){ - fileIO::setFrameIndex(index); + pthread_mutex_lock(&ms); + fileIO::setFrameIndex(index); + pthread_mutex_unlock(&ms); } else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ @@ -7612,14 +7632,20 @@ int slsDetector::setFrameIndex(int index){ #endif if (connectData() == OK) ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); - if(ret!=FAIL) + disconnectData(); + if(ret!=FAIL){ + pthread_mutex_lock(&ms); fileIO::setFrameIndex(retval); + pthread_mutex_unlock(&ms); + } if(ret==FORCE_UPDATE) updateReceiver(); } + pthread_mutex_lock(&ms); + retval = fileIO::getFrameIndex(); + pthread_mutex_unlock(&ms); - return fileIO::getFrameIndex(); + return retval; } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 4d0d6b8b5..7c3b13a6d 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -146,18 +146,17 @@ int slsDetectorUtils::acquire(int delflag){ } if(receiver){ + pthread_mutex_lock(&mg); if(getReceiverStatus()!=IDLE) stopReceiver(); - if(setReceiverOnline()==OFFLINE_FLAG) - *stoppedFlag=1; //multi detectors shouldnt have different receiver read frequencies enabled/disabled if(setReadReceiverFrequency(0) < 0){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; *stoppedFlag=1; } - if(setReceiverOnline()==OFFLINE_FLAG) *stoppedFlag=1; + pthread_mutex_unlock(&mg); } diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 82162c750..7912a4bf3 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -395,7 +395,9 @@ int postProcessing::fillBadChannelMask() { void* postProcessing::processData(int delflag) { + pthread_mutex_lock(&mg); if(setReceiverOnline()==OFFLINE_FLAG){ + pthread_mutex_unlock(&mg); #ifdef VERBOSE std::cout<< " ??????????????????????????????????????????? processing data - threaded mode " << *threadedProcessing << endl; @@ -482,6 +484,7 @@ void* postProcessing::processData(int delflag) { } //receiver else{ + pthread_mutex_unlock(&mg); //cprintf(RED,"In post processing threads\n"); @@ -493,9 +496,9 @@ void* postProcessing::processData(int delflag) { else{ int caught = -1; while(true){ - cout.flush(); - cout< Date: Tue, 1 Nov 2016 15:02:14 +0100 Subject: [PATCH 101/128] make t crash --- .../multiSlsDetector/multiSlsDetector.cpp | 3 ++- slsDetectorSoftware/slsDetector/slsDetector.cpp | 6 +++++- .../slsDetectorAnalysis/postProcessing.cpp | 15 +++++++++------ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 81a5ac601..27444ca07 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4928,7 +4928,7 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; - +/* if(thisMultiDetector->numberOfDetectors>10) { if (detectors[0]){ ret =detectors[0]->getFramesCaughtByReceiver(); @@ -4937,6 +4937,7 @@ int multiSlsDetector::getFramesCaughtByReceiver() { } return ret; } + */ for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 27220c553..6953819a2 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -7143,7 +7143,11 @@ string slsDetector::setFileName(string s) { } } - return fileIO::getFileName(); + pthread_mutex_lock(&ms); + s = fileIO::getFileName(); + pthread_mutex_unlock(&ms); + + return s; } diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 7912a4bf3..f35b66690 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -496,21 +496,24 @@ void* postProcessing::processData(int delflag) { else{ int caught = -1; while(true){ - //cout.flush(); - //cout< Date: Tue, 1 Nov 2016 15:59:43 +0100 Subject: [PATCH 102/128] back to not asking getframescaught --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 ++-- .../slsDetectorAnalysis/postProcessing.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 27444ca07..e29b39151 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4928,7 +4928,7 @@ slsDetectorDefs::runStatus multiSlsDetector::getReceiverStatus(){ int multiSlsDetector::getFramesCaughtByReceiver() { int ret=0,ret1=0; -/* + if(thisMultiDetector->numberOfDetectors>10) { if (detectors[0]){ ret =detectors[0]->getFramesCaughtByReceiver(); @@ -4937,7 +4937,7 @@ int multiSlsDetector::getFramesCaughtByReceiver() { } return ret; } - */ + for (int i=0; inumberOfDetectors; i++) if (detectors[i]){ diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index f35b66690..b28e3b3c0 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -497,15 +497,15 @@ void* postProcessing::processData(int delflag) { int caught = -1; while(true){ - cout.flush(); - cout< Date: Tue, 1 Nov 2016 16:36:19 +0100 Subject: [PATCH 103/128] threadstarted not initialized --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index e29b39151..543c043c8 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -268,6 +268,7 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1) getNMods(); getMaxMods(); + threadStarted = false; threadpool = 0; if(createThreadPool() == FAIL) exit(-1); From 4035f9263ad2c9ccf5defbee86f29357e6924ef1 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 2 Nov 2016 07:28:29 +0100 Subject: [PATCH 104/128] got rid completely of threaded proccessing --- .../eigerDetectorServer/slsDetectorFunctionList.c | 5 +++++ slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 104007fb7..40caa1ec9 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -871,6 +871,11 @@ void readFrame(int *ret, char *mess){ return; } } + + //wait for detector to send + + + printf("*****Done Waiting...\n"); *ret = (int)FINISHED; strcpy(mess,"acquisition successfully finished\n"); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 7c3b13a6d..bdc02f9cc 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -160,12 +160,12 @@ int slsDetectorUtils::acquire(int delflag){ } - if (*threadedProcessing) + /*if (*threadedProcessing) startThread(delflag); #ifdef VERBOSE cout << " starting thread " << endl; #endif - +*/ //resets frames caught in receiver if(receiver){ pthread_mutex_lock(&mg); @@ -326,7 +326,7 @@ int slsDetectorUtils::acquire(int delflag){ cout << "done! " << endl; #endif - +/* if (*threadedProcessing==0){ #ifdef VERBOSE cout << "start unthreaded process data " << endl; @@ -334,7 +334,7 @@ int slsDetectorUtils::acquire(int delflag){ processData(delflag); } - +*/ } else break; @@ -461,7 +461,7 @@ int slsDetectorUtils::acquire(int delflag){ // loop measurements } - +/* // waiting for the data processing thread to finish! if (*threadedProcessing) { #ifdef VERBOSE @@ -473,7 +473,7 @@ int slsDetectorUtils::acquire(int delflag){ cout << "data processing thread joined" << endl; #endif } - +*/ if(progress_call) progress_call(getCurrentProgress(),pProgressCallArg); From 50596d87d1e575bebdf38accec286aa4f42d3869 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 2 Nov 2016 10:56:13 +0100 Subject: [PATCH 105/128] included the delay and frame counters --- slsDetectorSoftware/eigerDetectorServer/Beb.c | 106 ++++++++++++++++++ slsDetectorSoftware/eigerDetectorServer/Beb.h | 2 + .../eigerDetectorServer/FebRegisterDefs.h | 43 +++++++ .../slsDetectorFunctionList.c | 2 +- .../slsDetectorServer_defs.h | 1 + .../eigerDetectorServer/xparameters.h | 6 + 6 files changed, 159 insertions(+), 1 deletion(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index bdd47a461..a3025fea9 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -24,6 +24,7 @@ #include "Beb.h" +#define MAX(x, y) (((x) > (y)) ? (x) : (y)) struct BebInfo beb_infos[10]; @@ -172,6 +173,111 @@ void Beb_GetModuleCopnfiguration(int* master, int* top){ } } + + +void Beb_EndofDataSend(int tengiga){ + //mapping new memory + u_int32_t* csp0base=0; + int l_framepktcounter2, l_txndelaycounter, l_framedelaycounter, r_framepktcounter2, r_txndelaycounter, r_framedelaycounter; + int l_framepktcounter2_new, l_txndelaycounter_new, l_framedelaycounter_new, r_framepktcounter2_new, r_txndelaycounter_new, r_framedelaycounter_new; + int addr_l_framepktcounter2, addr_l_txndelaycounter, addr_l_framedelaycounter, addr_r_framepktcounter2, addr_r_txndelaycounter, addr_r_framedelaycounter; + + switch(tengiga){ + case 0: + addr_l_framepktcounter2 = ONE_GIGA_LEFT_PKT_SEND_COUNTER; + addr_l_txndelaycounter = ONE_GIGA_LEFT_TXN_DELAY_COUNTER; + addr_l_framedelaycounter = ONE_GIGA_LEFT_FRAME_DELAY_COUNTER; + addr_r_framepktcounter2 = ONE_GIGA_RIGHT_PKT_SEND_COUNTER; + addr_r_txndelaycounter = ONE_GIGA_RIGHT_TXN_DELAY_COUNTER; + addr_r_framedelaycounter = ONE_GIGA_RIGHT_FRAME_DELAY_COUNTER; + break; + case 1: + addr_l_framepktcounter2 = TEN_GIGA_LEFT_PKT_SEND_COUNTER; + addr_l_txndelaycounter = TEN_GIGA_LEFT_TXN_DELAY_COUNTER; + addr_l_framedelaycounter = TEN_GIGA_LEFT_FRAME_DELAY_COUNTER; + addr_r_framepktcounter2 = TEN_GIGA_RIGHT_PKT_SEND_COUNTER; + addr_r_txndelaycounter = TEN_GIGA_RIGHT_TXN_DELAY_COUNTER; + addr_r_framedelaycounter = TEN_GIGA_RIGHT_FRAME_DELAY_COUNTER; + break; + } + + + //open file pointer + int fd = Beb_open(&csp0base,XPAR_COUNTER_BASEADDR); + if(fd < 0){ + cprintf(BG_RED,"Delay read counter fail\n"); + return; + }else{ + //read data first time + l_framepktcounter2 = Beb_Read32(csp0base, addr_l_framepktcounter2); + l_txndelaycounter = Beb_Read32(csp0base, addr_l_txndelaycounter); + l_framedelaycounter = Beb_Read32(csp0base, addr_l_framedelaycounter); + r_framepktcounter2 = Beb_Read32(csp0base, addr_r_framepktcounter2); + r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter); + r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter); +//#ifdef VERBOSE + printf("\nLeft\n" + "Framepacketcounter: %d\n" + "Txndelaycounter:%d\n" + "Framedelaycounter:%d\n" + "\nRight\n" + "Framepacketcounter: %d\n" + "Txndelaycounter:%d\n" + "Framedelaycounter:%d\n\n", + l_framepktcounter2,l_txndelaycounter,l_framedelaycounter, + r_framepktcounter2,r_txndelaycounter,r_framedelaycounter); +//#endif + + //keep comparing with previous values + int maxtimer; + while(1){ + maxtimer = MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter)); + maxtimer /= 100; + printf("Will wait for %d us\n",maxtimer); + usleep(maxtimer); + + //read new values + l_framepktcounter2_new = Beb_Read32(csp0base, addr_l_framepktcounter2); + l_txndelaycounter_new = Beb_Read32(csp0base, addr_l_txndelaycounter); + l_framedelaycounter_new = Beb_Read32(csp0base, addr_l_framedelaycounter); + r_framepktcounter2_new = Beb_Read32(csp0base, addr_r_framepktcounter2); + r_txndelaycounter_new = Beb_Read32(csp0base, addr_r_txndelaycounter); + r_framedelaycounter_new = Beb_Read32(csp0base, addr_r_framedelaycounter); +//#ifdef VERBOSE + printf("\nLeft\n" + "Framepacketcounter: %d\n" + "Txndelaycounter:%d\n" + "Framedelaycounter:%d\n" + "\nRight\n" + "Framepacketcounter: %d\n" + "Txndelaycounter:%d\n" + "Framedelaycounter:%d\n\n", + l_framepktcounter2_new,l_txndelaycounter_new,l_framedelaycounter_new, + r_framepktcounter2_new,r_txndelaycounter_new,r_framedelaycounter_new); +//#endif + + if ((l_framepktcounter2 == l_framepktcounter2_new) && (r_framepktcounter2 == r_framepktcounter2_new)) + break; + + //update old values + l_framepktcounter2 = l_framepktcounter2_new; + l_txndelaycounter = l_txndelaycounter_new; + l_framedelaycounter = l_framedelaycounter_new; + r_framepktcounter2 = r_framepktcounter2_new; + r_txndelaycounter = r_txndelaycounter_new; + r_framedelaycounter = r_framedelaycounter_new; + + } + + printf("Detector has send all data\n"); + //close file pointer + Beb_close(fd,csp0base); + } +} + + + + /* do not work at the moment */ int Beb_SetMasterViaSoftware(){ diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.h b/slsDetectorSoftware/eigerDetectorServer/Beb.h index 535b0e382..9431701ea 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.h +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.h @@ -46,6 +46,8 @@ struct BebInfo{ void Beb_GetModuleCopnfiguration(int* master, int* top); + void Beb_EndofDataSend(int tengiga); + int Beb_SetMasterViaSoftware(); int Beb_SetSlaveViaSoftware(); int Beb_Activate(int enable); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h index 93f8ea404..b4b728a3d 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h @@ -153,3 +153,46 @@ //temp so far #define FEB_REG_STATUS 0xa +//1g counters +#define ONE_GIGA_LEFT_FRAME_SEND_COUNTER 0x04 +#define ONE_GIGA_LEFT_PKT_SEND_COUNTER 0x24 + +#define ONE_GIGA_LEFT_TXN_DELAY_COUNTER 0x104 +#define ONE_GIGA_LEFT_FRAME_DELAY_COUNTER 0x124 + +#define ONE_GIGA_RIGHT_FRAME_SEND_COUNTER 0x44 +#define ONE_GIGA_RIGHT_PKT_SEND_COUNTER 0x64 + +#define ONE_GIGA_RIGHT_TXN_DELAY_COUNTER 0x144 +#define ONE_GIGA_RIGHT_FRAME_DELAY_COUNTER 0x164 + +//10g counters +#define TEN_GIGA_LEFT_FRAME_SEND_COUNTER 0x84 +#define TEN_GIGA_LEFT_PKT_SEND_COUNTER 0xa4 + +#define TEN_GIGA_LEFT_TXN_DELAY_COUNTER 0x184 +#define TEN_GIGA_LEFT_FRAME_DELAY_COUNTER 0x1a4 + +#define TEN_GIGA_RIGHT_FRAME_SEND_COUNTER 0xc4 +#define TEN_GIGA_RIGHT_PKT_SEND_COUNTER 0xe4 + +#define TEN_GIGA_RIGHT_TXN_DELAY_COUNTER 0x1c4 +#define TEN_GIGA_RIGHT_FRAME_DELAY_COUNTER 0x1e4 + + + + + + + + + + + + + + + + + + diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 40caa1ec9..3d904043c 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -873,7 +873,7 @@ void readFrame(int *ret, char *mess){ } //wait for detector to send - + Beb_EndofDataSend(send_to_ten_gig); printf("*****Done Waiting...\n"); diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h index 296e51728..f4dfdc073 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h @@ -45,4 +45,5 @@ enum detAdcIndex{TEMP_FPGAEXT, TEMP_10GE, TEMP_DCDC, TEMP_SODL, TEMP_SODR, TEMP_ enum detNetworkParameter{TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G}; + #endif /* SLSDETECTORSERVER_DEFS_H_ */ diff --git a/slsDetectorSoftware/eigerDetectorServer/xparameters.h b/slsDetectorSoftware/eigerDetectorServer/xparameters.h index 424ff8d15..446c89859 100644 --- a/slsDetectorSoftware/eigerDetectorServer/xparameters.h +++ b/slsDetectorSoftware/eigerDetectorServer/xparameters.h @@ -61,6 +61,12 @@ XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR #define XPAR_PLB_GPIO_TEST_HIGHADDR 0xD101FFFF + +/* Definitions for packet, frame and delay down counters */ +#define XPAR_COUNTER_BASEADDR 0xD1020000 +#define XPAR_COUNTER_HIGHADDR 0xD102FFFF + + /* Definitions for peripheral PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT */ #define XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR 0xC4100000 #define XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_HIGHADDR 0xC410FFFF From 5783e3f9d28a2807f66c958fbf53cbf71d1326dd Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 2 Nov 2016 11:00:51 +0100 Subject: [PATCH 106/128] counters frame delay --- .../bin/eigerDetectorServerv2.2.0.16.2 | Bin 0 -> 277530 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.2 diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.2 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.2 new file mode 100755 index 0000000000000000000000000000000000000000..df490126795a06f8b109a0c7ef82ffbbc6abaf4b GIT binary patch literal 277530 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 PAnmqhe!HIYpZED+w3kE@ literal 0 HcmV?d00001 From fa0580ccac26a10f0044411173f7089248ce9377 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 2 Nov 2016 11:01:59 +0100 Subject: [PATCH 107/128] to see the frames --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index bdc02f9cc..7c3b13a6d 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -160,12 +160,12 @@ int slsDetectorUtils::acquire(int delflag){ } - /*if (*threadedProcessing) + if (*threadedProcessing) startThread(delflag); #ifdef VERBOSE cout << " starting thread " << endl; #endif -*/ + //resets frames caught in receiver if(receiver){ pthread_mutex_lock(&mg); @@ -326,7 +326,7 @@ int slsDetectorUtils::acquire(int delflag){ cout << "done! " << endl; #endif -/* + if (*threadedProcessing==0){ #ifdef VERBOSE cout << "start unthreaded process data " << endl; @@ -334,7 +334,7 @@ int slsDetectorUtils::acquire(int delflag){ processData(delflag); } -*/ + } else break; @@ -461,7 +461,7 @@ int slsDetectorUtils::acquire(int delflag){ // loop measurements } -/* + // waiting for the data processing thread to finish! if (*threadedProcessing) { #ifdef VERBOSE @@ -473,7 +473,7 @@ int slsDetectorUtils::acquire(int delflag){ cout << "data processing thread joined" << endl; #endif } -*/ + if(progress_call) progress_call(getCurrentProgress(),pProgressCallArg); From 941b3dbb027c8a8bbecb6af65609a69ad7341e94 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 2 Nov 2016 16:09:22 +0100 Subject: [PATCH 108/128] progress uncommented --- .../jungfrauDetectorServer/firmware_funcs.c | 57 +++++++++--------- .../jungfrauDetectorServer/firmware_funcs.h | 2 + .../jungfrauDetectorServerv2.2.1 | Bin 125836 -> 125844 bytes .../jungfrauDetectorServer/server_funcs.c | 8 +++ .../slsDetectorAnalysis/postProcessing.cpp | 4 +- 5 files changed, 42 insertions(+), 29 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 9407c4cff..8907cc20f 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -65,7 +65,7 @@ typedef struct ip_header_struct { struct timeval tss,tse,tsss; //for timing -int gpiopinsdefined = 0; + @@ -162,6 +162,32 @@ void defineGPIOpins(){ system("echo out > /sys/class/gpio/gpio9/direction"); } +void resetFPGA(){ + FPGAdontTouchFlash(); + FPGATouchFlash(); +} + +void FPGAdontTouchFlash(){ + //tell FPGA to not touch flash + system("echo 0 > /sys/class/gpio/gpio9/value"); +} + +void FPGATouchFlash(){ + //tell FPGA to touch flash to program itself + system("echo 1 > /sys/class/gpio/gpio9/value"); +} + +void powerChip (int on){ + if(on){ + printf("\nPowering on the chip\n"); + bus_w(POWER_ON_REG,0x1); + } + else{ + printf("\nPowering off the chip\n"); + bus_w(POWER_ON_REG,0x0); + } +} + u_int16_t bus_r16(u_int32_t offset){ @@ -1436,17 +1462,6 @@ int writeGbeReg(int ivar, uint32_t val, int addr, int interface) { int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int sourceip,int ival,uint32_t destport, uint32_t sourceport, int interface) { //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ -/* - if(!gpiopinsdefined){ - defineGPIOpins(); - gpiopinsdefined = 1; - } - //tell FPGA to not touch flash - system("echo 0 > /sys/class/gpio/gpio9/value"); - //tell FPGA to touch flash to program itself - system("echo 1 > /sys/class/gpio/gpio9/value"); -*/ - volatile u_int32_t conf= bus_r(CONFIG_REG); long int checksum=calcChecksum(sourceip, destip); @@ -2722,14 +2737,7 @@ int startWritingFPGAprogram(FILE** filefp){ printf ("\nFlash drive found: %s\n",mtdvalue); - //define the gpio pins - system("echo 7 > /sys/class/gpio/export"); - system("echo 9 > /sys/class/gpio/export"); - //define their direction - system("echo in > /sys/class/gpio/gpio7/direction"); - system("echo out > /sys/class/gpio/gpio9/direction"); - //tell FPGA to not touch flash - system("echo 0 > /sys/class/gpio/gpio9/value"); + FPGAdontTouchFlash(); //writing the program to flash *filefp = fopen(mtdvalue, "w"); @@ -2753,9 +2761,8 @@ int stopWritingFPGAprogram(FILE* filefp){ wait = 1; } - - //tell FPGA to touch flash to program itself - system("echo 1 > /sys/class/gpio/gpio9/value"); + //touch and program + FPGATouchFlash(); if(wait){ #ifdef VERY_VERBOSE @@ -2776,10 +2783,6 @@ int stopWritingFPGAprogram(FILE* filefp){ } printf("FPGA has picked up the program from flash\n\n"); - //undefine the pins - system("echo 7 > /sys/class/gpio/unexport"); - system("echo 9 > /sys/class/gpio/unexport"); - return OK; } diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h index 5f027579e..c1c7a362f 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h @@ -23,6 +23,8 @@ int mapCSP0(void); void defineGPIOpins(); +void resetFPGA(); +void powerChip (int on); u_int16_t bus_r16(u_int32_t offset); u_int16_t bus_w16(u_int32_t offset, u_int16_t data);//aldos function diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index 7f14fd57da6a60871318c75cded0c2da0a28ada4..27d1137457dcc2bc81d2b1d7f6675319e497fc41 100755 GIT binary patch delta 51120 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 delta 51250 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 Date: Wed, 2 Nov 2016 16:24:23 +0100 Subject: [PATCH 109/128] progress uncommented --- .../slsDetectorAnalysis/postProcessing.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 53cf7ae66..7d98171ff 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -495,17 +495,25 @@ void* postProcessing::processData(int delflag) { //only update progress else{ int caught = -1; + char c; while(true){ - //cout.flush(); - //cout< Date: Wed, 2 Nov 2016 16:37:37 +0100 Subject: [PATCH 110/128] q for quit --- .../slsDetectorAnalysis/postProcessing.cpp | 28 +++++++++++++++---- .../slsDetectorAnalysis/postProcessing.h | 2 ++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 7d98171ff..6ab1b07c3 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -6,6 +6,7 @@ #elif EXTPP #include "usersFunctions.h" #endif +#include //#define VERBOSE @@ -25,6 +26,17 @@ static void* startProcessDataNoDelete(void *n){ }; +int postProcessing::kbhit(){ + struct timeval tv; + fd_set fds; + tv.tv_sec = 0; + tv.tv_usec = 0; + FD_ZERO(&fds); + FD_SET(STDIN_FILENO, &fds); //STDIN_FILENO is 0 + select(STDIN_FILENO+1, &fds, NULL, NULL, &tv); + return FD_ISSET(STDIN_FILENO, &fds); +} + postProcessing::postProcessing(): expTime(NULL), ang(NULL), val(NULL), err(NULL), numberOfChannels(0), badChannelMask(NULL){ pthread_mutex_t mp1 = PTHREAD_MUTEX_INITIALIZER; @@ -496,10 +508,11 @@ void* postProcessing::processData(int delflag) { else{ int caught = -1; char c; + int ifp; while(true){ - cout.flush(); - cout< Date: Thu, 3 Nov 2016 09:16:01 +0100 Subject: [PATCH 111/128] changed dac values, fixed settings bug of not looking at nchan,nchips, , fixed clock divider, changed usleep in configuremac --- .../jungfrauDetectorServer/firmware_funcs.c | 11 ++++---- .../jungfrauDetectorServerv2.2.1 | Bin 125844 -> 125516 bytes .../jungfrauDetectorServer/mcb_funcs.c | 17 ++++++++---- .../jungfrauDetectorServer/server_funcs.c | 26 ++++++++++-------- 4 files changed, 31 insertions(+), 23 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 8907cc20f..3b2394e7f 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -90,7 +90,7 @@ u_int32_t progressMask=0; int phase_shift=0;//DEFAULT_PHASE_SHIFT; int ipPacketSize=DEFAULT_IP_PACKETSIZE; int udpPacketSize=DEFAULT_UDP_PACKETSIZE; -int clockdivider; +int clockdivider = 20; /* #ifndef NEW_PLL_RECONFIG u_int32_t clkDivider[2]={32,16}; @@ -539,7 +539,6 @@ u_int32_t adcPipeline(int d) { if (d>=0){ printf("Setting ADC Pipeline to 0x%x\n",d); bus_w(ADC_PIPELINE_REG, d); - clockdivider = d; } return bus_r(ADC_PIPELINE_REG); @@ -1504,12 +1503,12 @@ int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int #endif bus_w(CONTROL_REG,GB10_RESET_BIT); - sleep(1); + usleep(500 * 1000); bus_w(CONTROL_REG,0); - usleep(10000); + usleep(10* 1000); bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); - + usleep(500 * 1000); return 0; //any value doesnt matter - dhanya } @@ -1550,7 +1549,7 @@ int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int source bus_w(CONTROL_REG,GB10_RESET_BIT); bus_w(CONTROL_REG,0); - usleep(10000); + usleep(10 * 1000); bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); return OK; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index 27d1137457dcc2bc81d2b1d7f6675319e497fc41..b79b7afa751da82e04a5d93d7c9d87bdc964ff92 100755 GIT binary patch delta 57661 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Ξ**0=4LUS!b^Kdur#hW1v4{;dI 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 Z>&8Yf`f_e|GpJ@dYtF^Y7>+cL{9nr!WpV%j diff --git a/slsDetectorSoftware/jungfrauDetectorServer/mcb_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/mcb_funcs.c index 84d84c653..2c22e1143 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/mcb_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/mcb_funcs.c @@ -133,6 +133,8 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { /* #endif */ destMod->serialnumber=srcMod->serialnumber; } + + /* if ((srcMod->nchip)>(destMod->nchip)) { printf("Number of chip of source is larger than number of chips of destination\n"); return FAIL; @@ -141,6 +143,8 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { printf("Number of channels of source is larger than number of channels of destination\n"); return FAIL; } + */ + if ((srcMod->ndac)>(destMod->ndac)) { printf("Number of dacs of source is larger than number of dacs of destination\n"); return FAIL; @@ -153,8 +157,8 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { #ifdef VERBOSE printf("DACs: src %d, dest %d\n",srcMod->ndac,destMod->ndac); printf("ADCs: src %d, dest %d\n",srcMod->nadc,destMod->nadc); - printf("Chips: src %d, dest %d\n",srcMod->nchip,destMod->nchip); - printf("Chans: src %d, dest %d\n",srcMod->nchan,destMod->nchan); + //printf("Chips: src %d, dest %d\n",srcMod->nchip,destMod->nchip); + //printf("Chans: src %d, dest %d\n",srcMod->nchan,destMod->nchan); #endif @@ -162,8 +166,8 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) { destMod->ndac=srcMod->ndac; destMod->nadc=srcMod->nadc; - destMod->nchip=srcMod->nchip; - destMod->nchan=srcMod->nchan; + // destMod->nchip=srcMod->nchip; + //destMod->nchan=srcMod->nchan; if (srcMod->reg>=0) destMod->reg=srcMod->reg; #ifdef VERBOSE @@ -1081,7 +1085,7 @@ int initMCBregisters(int cm, int imod){ } int initModulebyNumber(sls_detector_module myMod) { - + printf("\nInitializing Module\n"); int nchip,nchan;//int ichip, nchip, ichan, nchan; int im, modmi,modma; // int ft, cae, ae, coe, ocoe, counts, chanreg; @@ -1110,6 +1114,7 @@ int initModulebyNumber(sls_detector_module myMod) { } //printf("ndac:%d\n",NDAC); + for (idac=0; idac=getNModBoard()) { @@ -2467,7 +2470,6 @@ int send_update(int file_des) { retval=setExposureTime(tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t)); retval=setPeriod(tns); - cprintf(RED,"updated frame period from %lld tns:%d\n", (long long int)retval, tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t)); retval=setDelay(tns); n = sendDataOnly(file_des,&retval,sizeof(int64_t)); From 4b99ff7fbecd2a675e68049cf731d6f25705ede5 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 3 Nov 2016 12:31:34 +0100 Subject: [PATCH 112/128] reset fpga implemented, changed receiver configuration warning prints, powerchip implemented --- slsDetectorSoftware/commonFiles/error_defs.h | 7 +- .../commonFiles/sls_detector_defs.h | 3 + .../commonFiles/sls_detector_funcs.h | 6 +- .../jungfrauDetectorServer/firmware_funcs.c | 145 ++++++++- .../jungfrauDetectorServer/firmware_funcs.h | 5 +- .../jungfrauDetectorServerv2.2.1 | Bin 125516 -> 126332 bytes .../jungfrauDetectorServer/server_funcs.c | 287 ++++++++---------- .../jungfrauDetectorServer/server_funcs.h | 2 + .../multiSlsDetector/multiSlsDetector.cpp | 35 ++- .../multiSlsDetector/multiSlsDetector.h | 11 + .../slsDetector/slsDetector.cpp | 143 ++++++--- slsDetectorSoftware/slsDetector/slsDetector.h | 12 + .../slsDetector/slsDetectorCommand.cpp | 62 +++- .../slsDetector/slsDetectorUtils.h | 9 + 14 files changed, 501 insertions(+), 226 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 2cae81994..c010f26ba 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -70,7 +70,8 @@ using namespace std; #define PROGRAMMING_ERROR 0x0000000002000000ULL #define RECEIVER_ACTIVATE 0x0000000004000000ULL #define DATA_STREAMING 0x0000000008000000ULL - +#define RESET_ERROR 0x0000000010000000ULL +#define POWER_CHIP 0x0000000020000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ class errorDefs { @@ -218,7 +219,11 @@ public: if(slsErrorMask&DATA_STREAMING) retval.append("Could not set/reset Data Streaming\n"); + if(slsErrorMask&RESET_ERROR) + retval.append("Could not reset the FPGA\n"); + if(slsErrorMask&POWER_CHIP) + retval.append("Could not power on/off/get the chip\n"); //------------------------------------------------------ length of message diff --git a/slsDetectorSoftware/commonFiles/sls_detector_defs.h b/slsDetectorSoftware/commonFiles/sls_detector_defs.h index ddc7d62c6..8e3a82689 100755 --- a/slsDetectorSoftware/commonFiles/sls_detector_defs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_defs.h @@ -25,6 +25,9 @@ /** maximum rois */ #define MAX_ROIS 100 +/** maximum unit size of program sent to detector */ +#define MAX_FPGAPROGRAMSIZE (2 * 1024 *1024) + typedef char mystring[MAX_STR_LENGTH]; typedef double mysteps[MAX_SCAN_STEPS]; diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index 74405a0a4..d76bbd840 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -106,9 +106,9 @@ enum { F_SET_NETWORK_PARAMETER, /**< set network parameters such as transmission delay, flow control */ - F_PROGRAM_FPGA /**< program FPGA */ - - + F_PROGRAM_FPGA, /**< program FPGA */ + F_RESET_FPGA, /**< reset FPGA */ + F_POWER_CHIP /**< power chip */ /* Always append functions hereafter!!! */ }; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 3b2394e7f..238af0281 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -7,6 +7,7 @@ #include "firmware_funcs.h" #include "mcb_funcs.h" #include "registers_m.h" +#include "gitInfoJungfrau.h" //#define VERBOSE //#define VERYVERBOSE @@ -116,7 +117,7 @@ char mtdvalue[10]; int mapCSP0(void) { - //printf("Mapping memory\n"); + printf("Mapping memory\n"); #ifndef VIRTUAL int fd; fd = open("/dev/mem", O_RDWR | O_SYNC, 0); @@ -163,6 +164,7 @@ void defineGPIOpins(){ } void resetFPGA(){ + cprintf(BLUE,"\n*** Reseting FPGA ***\n"); FPGAdontTouchFlash(); FPGATouchFlash(); } @@ -177,18 +179,143 @@ void FPGATouchFlash(){ system("echo 1 > /sys/class/gpio/gpio9/value"); } -void powerChip (int on){ - if(on){ - printf("\nPowering on the chip\n"); - bus_w(POWER_ON_REG,0x1); - } - else{ - printf("\nPowering off the chip\n"); - bus_w(POWER_ON_REG,0x0); +int powerChip (int on){ + if(on != -1){ + if(on){ + printf("\nPowering on the chip\n"); + bus_w(POWER_ON_REG,0x1); + } + else{ + printf("\nPowering off the chip\n"); + bus_w(POWER_ON_REG,0x0); + } } + + return bus_r(POWER_ON_REG); } +void initializeDetector(){ + printf("Initializing Detector\n"); + + int i; + //printf("Bus test... "); + for (i=0; i<1000000; i++) { + bus_w(SET_DELAY_LSB_REG, i*100); + bus_r(FPGA_VERSION_REG); + if (i*100!=bus_r(SET_DELAY_LSB_REG)) + cprintf(RED,"Bus Test ERROR: wrote 0x%x, read 0x%x\n",i*100,bus_r(SET_DELAY_LSB_REG)); + } + //printf("Finished\n"); + + //confirm the detector type + if (((bus_r(PCB_REV_REG) & DETECTOR_TYPE_MASK)>>DETECTOR_TYPE_OFFSET) != JUNGFRAU_MODULE_ID){ + cprintf(BG_RED,"This is not a Jungfrau Server (enum:%d)\n",myDetectorType); + exit(-1); + } + cprintf(BLUE,"\n\n********************************************************\n" + "*********************Jungfrau Server********************\n" + "********************************************************\n"); + + //print version + cprintf(BLUE,"\n" + "Firmware Version:\t 0x%x\n" + "Software Version:\t %llx\n" + //"F/w-S/w API Version:\t\t %lld\n" + //"Required Firmware Version:\t %d\n" + "Fixed Pattern:\t\t 0x%x\n" + "Board Revision:\t\t 0x%x\n" + "\n********************************************************\n", + bus_r(FPGA_VERSION_REG),(long long unsigned int)(((int64_t)SVNREV <<32) | (int64_t)SVNDATE) + //,sw_fw_apiversion, REQUIRED_FIRMWARE_VERSION + ,bus_r(FIX_PATT_REG),(bus_r(PCB_REV_REG)&BOARD_REVISION_MASK) + ); + + + printf("Resetting PLL\n"); + resetPLL(); + bus_w16(CONTROL_REG, SYNC_RESET); + bus_w16(CONTROL_REG, 0); + bus_w16(CONTROL_REG, GB10_RESET_BIT); + bus_w16(CONTROL_REG, 0); + +#ifdef MCB_FUNCS + initDetector(); +#endif + /*some registers set, which is in common with jungfrau, please check */ + prepareADC(); + /*some registers set, which is in common with jungfrau, please check */ + initDac(0); initDac(8); //initializes the two dacs + + + //set dacs + printf("Setting Default Dac values\n"); + enum dacNames{VB_COMP,VDD_PROT,VIN_COM,VREF_PRECH,VB_PIXBUF,VB_DS,VREF_DS,VREF_COMP}; + int retval = -1; + int dacvalues[8][2]={ + {VB_COMP, 1220}, + {VDD_PROT, 3000}, + {VIN_COM, 1053}, + {VREF_PRECH,1450}, + {VB_PIXBUF, 750}, + {VB_DS, 1000}, + {VREF_DS, 480}, + {VREF_COMP, 420}, + }; + for(i=0;i<8;++i){ + retval=setDac(dacvalues[i][0], dacvalues[i][1]); + if(retval!=dacvalues[i][1]) + printf("Error: Setting dac %d failed, wrote %d, read %d\n",dacvalues[i][0],dacvalues[i][1],retval); + } + + + //done from config file + //printf("\nPowering on the chip\n"); + //bus_w(POWER_ON_REG,0x1); + + /* Only once */ + bus_w(CONFGAIN_REG,0x0); + + printf("Resetting ADC\n"); + writeADC(ADCREG1,0x3); writeADC(ADCREG1,0x0); + writeADC(ADCREG2,0x40); + writeADC(ADCREG3,0xf); + writeADC(ADCREG4,0x3f); + printf("Configuring Vrefs\n"); + writeADC(ADCREG_VREFS,0x2); + printf("Setting ADC Inversion\n");// (by trial and error) + bus_w(ADC_INVERSION_REG,0x453b2a9c); + + adcPipeline(HALFSPEED_ADC_PIPELINE); + dbitPipeline(HALFSPEED_DBIT_PIPELINE); + adcPhase(HALFSPEED_ADC_PHASE); //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) + + printf("Reset mem machine fifos\n"); + bus_w(MEM_MACHINE_FIFOS_REG,0x4000); + bus_w(MEM_MACHINE_FIFOS_REG,0x0); + printf("Reset run control\n"); + bus_w(MEM_MACHINE_FIFOS_REG,0x0400); + bus_w(MEM_MACHINE_FIFOS_REG,0x0); + initSpeedConfGain(HALFSPEED_CONF); + setSettings(DYNAMICGAIN,-1); + + + + //Initialization of acquistion parameters + setFrames(1*1000*1000); + setTrains(-1); + setExposureTime(10*1000); + setPeriod(2*1000*1000); + setDelay(0); + setGates(0); + + + setTiming(GET_EXTERNAL_COMMUNICATION_MODE); + setMaster(GET_MASTER); + setSynchronization(GET_SYNCHRONIZATION_MODE); + +} + u_int16_t bus_r16(u_int32_t offset){ volatile u_int16_t *ptr1; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h index c1c7a362f..2dc493559 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h @@ -24,7 +24,10 @@ int mapCSP0(void); void defineGPIOpins(); void resetFPGA(); -void powerChip (int on); +void FPGAdontTouchFlash(); +void FPGATouchFlash(); +int powerChip (int on); +void initializeDetector(); u_int16_t bus_r16(u_int32_t offset); u_int16_t bus_w16(u_int32_t offset, u_int16_t data);//aldos function diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index b79b7afa751da82e04a5d93d7c9d87bdc964ff92..975475feb1ffbbde80e27ae712f54198bac313a3 100755 GIT binary patch delta 53308 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 delta 52741 zcmb?^4_p+-+5hZ$oChAbAi{}=2O<(Acp@Siq6ZQ~hzc5Gh%tI1Dk>@xW6&7yB>o}B z7;ue8Qs3k>#Hyk8{1XL_rX;0_HP)gr#-=u9T}o|g(u=hzu||I1*}c8pL$rDO{`@%i z%%5kTdFGjCo_S_=cDeOM?=u&ACl^hcJcAITMaUt{oHoK7xJsB4EFt($S4!*os6+2CvIxRoL+pzoPW3`@>>zxI%m{j3vXr!4Oc#T~^7{|;K`_2fuJ$6t zkjzfzoAwzHEPV4mf-u88g|9!rP7lU!&9M|+3vyfb)m%+6w(QH|T?c520W2bq@T=wo zB5)~8hNgN8SHcXp&0+ZFIYcn+B!&^Jr%`VXEN*Zz`aZ0MKQo8WAk=QrTQfS=b$w|< zd2!`OY-OiYU%;laHCg;M)W0?-n{Pj$K_J53SBW7Bbv>wyAgtXIXdR2X&8X{Nlby@( z>|7HO1dbR&yESc`OLzp~sV!WpW|$4AnMnNtmy6qK7x?sZNAJztS%(f2_!~bsW@YhpXsK>4ZNcNp zHWOjt7Fx&FfJz9$#4QpcExNB(50b7%BIFWhV{x`(J z-Vg*SO|}vmgxbw|{En)nHGVOGSliqgCccp|v-$c0I%u5LYKR*@f&gjS2z3FpAV0%w zwAw*9X9Tz18XY!z1Z%eN#h_el?F%veWHZ-fHO?}PXr8J!^fl)3dTS6uXpM#62_yu; z4w(?)4-N}|3ONYEbLbQibR*1W6HoL+U`Aw^Y0eKRdUNM|3*SYU8Ckr29)rN8%!{zi z+-%|FiwF$@yBSqcF`pFX$MTqt!t>}oO)((xtT&Dl5MHh-DS@08=3DqQ&_NKcZ9@4( z+U$@=E%-G(3W=c%LHKf0=X{Ub!W+P_!J5RKnD>}=>|~Fd^URCj;)~3-k|KsLDe^RW zT#UI7#L&E{4ReQ%?^vro@c2LrzZ;|wgl9HY%(LbPqJbnZ^R$=E_!J9&3>XMP(I$&^ z0LrIlTdcGTQ?s4cSl&X2@JP1Fx&}E9WhYv{pGSnOYzyClS}itIdw5f`H57$oka-E2 z2*QJ#O#DPNk;Omo5X0|IB7*0Bf{Oowyw=%>5IoYvXMylajG+g05QHJ97CbWg4yD1M%WxR29wQVA#iW&Zl|D#+rC`8138J zV`yoHSh_fai2V&1E5XqjR8N+t(%-kU>2FvL`s+e}U0HnedV4o=BFZ;e>IOkb1VpfSXmAYVGfxCV6dYoj^^3C3S&|cWfeT?L@XCU6r>x2Mp%09j~hL zt|IR$@~Xu=TaY+k(;k9YA7VSks1P$I5k6xQ+c8d+7oJD>@I1ET0aae%qfo*}*^Y^@ z7hdaeRqM4pigB~TURmd#gbgZxMb5>-Ik+<4%zKT~m3SB$7YvOH#)^lpDEvO2OAm}m z|4qDwuYjFG5T2@(YiIFQpjkD4Eof%G(!J`>Sat!w&FR_z4UB^K2 z*!*nsEYQ5NO`)Q<8AgJrOh%7sBv)xhmFD@`u<#lLO7^=A15I-2C6rzQ!E6vbxlLly z;45uIX&Xv!qV(NuNqjt*XmIA4sf8bm4og&MPJ$%I{yj*66f-<2{t#8RZsRTonQZbh zWJH0n_zDWj&=twqVQbpp7%Khf#Tu=xs&(b_A$l`bg94AcwNY;{81u~^cn9^guO!6O zeTg$6z5OLVcVkOSma(CWTZ zMq$3PYI$wGs>kdikiWvR6P64_y)KI47U_(z%UDbzyO><<9)SUswNaX?k_SYmYHzl!@mmblt>M+~fvSNghH#_a>QqUs z`#^tfqod_?JJH`Dm6D+MMkDg`%^0zC(UFP=r%vxM#(Je4h3?;N7!BO-LSlWo*^b_~ z7mq{lS8r9O%FWn&jn=%adMkC%2o$Rg-TP&7tEgOb8p`AS2`Dssx!U99>VsI{p!B&H!UDMg7E2j+8;gqV~VH@r(RUGX0caN`w4!%%Gg6q zLA25IKvVo?bJZh{_=9LTgX7Y_QSNA~OcWn%x9J-N^x}#YS%kV`+oReD1E9 z53T>F$=RqFo+^D`=(5Yb7khizY!#xTg%IqB^?w2`wlLp6$yJ9%aBP@XGvz5?^s(7u zG&d}qd5Rku7Rjv&i(r9*{B3=s%vK6N^yPv|)T1L3sPXLyWZFWBf zScv?5lVaSi55AXFpRA&S_%DQD6W2&0EPi2tsTxu^b07$T?j*dinr64bv;ndx#SkF~ z881-j(B_PQl7XSByb}z%yc0y8G+PJXecG-Q%eWi;qI~*P4>8w^`t+AARG&JJ!)vJzK8xIDc|NpPFI%{f(>9PYpt$26r(~A#^_|e7TMqoit-J*VTVOR3I$#2ibI4 zYKw2qcDi+@bB#0=JCr*c9%p+GnJyT0nl*T+%YC>J%dDQRRCEnf%%@Q_Zv92mcepVd z3Z+4q$e&u!3*lqb^0-DG*5DK%5^l=IbyV{^Ma@4Q)8?~+^SpV@F?usj3JTi#t5!3h zi&OJR47ahrX@;z_+Jy|SU3d@!6Af8rdFQ4RRPQd!-jJmWt+ryiL@y)==g>cP9oN}E zAvFeFZuWM$D!y49>ptGOl?LQA5&5sr2l>_yt{@_OWENWNt`=kDeyF-3`=$4BuSE>? zX~YclV#Y%1hSqF`HDB22EJD2hJ$tbZ2UgW?D>R}EJ*jT=KuPzYCRNhTLHFwaT(M?B zW7c547!4OM{IKy;43MYMe3&r@nfqagik>Gz-2Gf(q-mTy%6h|{2B-QS1}Fb{?nq>u zZ6{=gAPjoGppgUz8K>b)&6=;D9?Q1`5}~fBz&#DK&Iv38A?SI%seqma^wkIUGIq`{ zz+yBFgOiu#azAKlZrm_WuTNxYje68T5WZatd>kif*#bw$C8bw8myg zWXG5SO#66vUGa5v+DkF6%ouJvnu~dEvhZ!F)wb{hwAQ?~8jIvmwz+YQRUb4M?j11< zFdjy$WD%i3`1#tyjVAQqlqHsTScovT$SIzz8c>cPytP(may2@!ywcxl%(zhSN2f;k zA`QZ?8b6n(#8PoiY+0))6m>zUyC6Az(un>kx=kb#0moRLC!a-o=Ltq$o=>0n@)QS3 zo;tsX=9UkLn<`J8+(itZyQmVvN!TPUYuSh&L_>Fss>r7rF7#ahm^0 z;)QFj;O0Pek*QKsOidr4_kC8r-8qZxM}mpC}B;Oj@#eg`~g zW3zWOB|o!4)XyUWB=4Duju%DuXjF3#qI+`yS3fvzk!ut6>aZo;)C$;!;Bj~2gyLGN zOLWtIS<(%i8&_uIiH%djiH>9;u!d54(Co zh58+45MkG9EVKi!w#7G&ZW(WuzXFG$hE89*7|VE=IN63G7fjuCfi|-i(VH`f|S9U$%xC zkZQC`chS6=Ks88f*+)FxrWMy12gZ&W(`EY9ua4zJkA zjUN)>^Gi0CF#N_6y35S5D~|w9MN0F=(BqlF2w;BTwaxDUv-^?FPr#H1OnD$uXzSK{HvX+mX?#%+jXxd9rNk%Lo`}5HF5`WhsLv zrSTsycCy>GZIuf{p*}c}_Oj{?$d!mz(LDEMyG!=72zeXQ2Ro__-Z41s%XRsVe*#E@ z4d*{zaf{M!2RrR0)Uu@8)LM6^)2FW0y|cNiv?d}1rcfV3k0UKbEMzeb3m2aUeVvWE zIy%WTaIM+l(d7}+A{cTT7w)!TG4kk*ibmRSufo%+u zO?Vd7RDW*=XEA!vg#I)wmFF++RFr3-9+vic$*8{_E|(!KZhPMdm#I&$`NC~C5#cw< z@G;|Ab5OCN*A=&h`}DpcHl=+ctcuqc(`yLwh@XPAPC>F!<%1zA36u46#clxO#?mNQ z`%CMTj^a2JPL_mk1in9~6V#kOEV7#JW0jgrx=0vHag(J~?h^EAWgiT6B61T|xkpyY z&2UXg$tqtw%}>zx|42D=EB!hByr0Z~EYq|7MZ^31 z>`rni9-x_T4Mj`h2j|2S|RUC|{woQ<0Qb5Croh+PeR@9lezKn4rJD{0nx zbXoDFhWNz6MI|c_UAmj%+hvdA0?P(?80L_P>;~!l5hAZHmCqlW#hsXOh|_)8Jpua{ zx-WZBOl5dens{0^(wq8;m`d`dPKlU9Y%1^60x?-isRC6$Pdne=i#m8HB@=?4|@G>Vv#7gB*MLqVhy%c4uQn%9HHdU523Jx@ozQ}pxSMLmz?*$wmc zMtLY0hTgl}JbKy;fg=cm%D6A@H`)@HLFJdp^2d<_iV=jC6+|eFYj&S=TcCx!7<&M* z{X=M8I${%X6mfD;LOGyd zASSw#l&!9z#Rd6^M&d^3juGLuzlKr-D*p_6-Nbw0gsvYJel}!dYJ9M!aB~%yXC2DpkhpS#bld~T*_b)pM znjfuEkn--?)x&G33+;2GA&e}(8FZSLm19os#nFrhLiH?@4Iy@(%h4wTtJs&(7~((- zzjit9iYzC>?Bzy~RAhaN_1xjnUuQY($TZuZQFQlVm<-Zbr9yP$_4l`j-33zwp^UD+u-3U?itRsC; zLUm-G*Ny4L@u`DtjLNNUN8|0wXJL3tE0j^X(pMg0d9C|>-!|Ei!7P(@TWWP@SKub< z3aTc#pd+_;rmr+$MN|zD-$40@MB>OD4IJpp?HUzh`)OZE3Bpx8Duywn!opit;DQkB z-Q`lMsC4MYU~uJK6+LLh;jZ`M+Kl&bF8&_nNizL%zI34tmo|{Ehl2R(59dNLl5MJa zT#SwtuaIv^;DEAJURk&~X;CA_fM2>*xpRIdp(F^$Z)c7%2FI~ejEy?jDL9{Qbq|NITit5nogm%`66R8RT#lHS3NH0D9-gn)ZqL1YwZ^>a_$>tbuC2vWcuVlbr z{}P9<#L}(KR$s|mVx0oXjmm~RUOQ^8zn zMxt*~OT>sLmeH;82hZXb`EBVCGLFAVa3LGbQESli^Unj%QUguvJb~L%7SOSjCGj3m z$TCld+wn@dL@(Q1y&#LvL3s|!uc92KHetQD*u)o;JTp_EkhmJ zY#+v{ZZs}=F&-_4yu>HV^lJBHC^Uj#UBZrSZ|cIMWn>@-g-f`SvGGY2Wq9kM>|2-l zaQR{CJ4K)y4=fqmezI#^yBp|Epd$z)mvG0&P99&6WPOYNO zD#uyxK(2XQOlC9+qF2&0EXQKHC{JK<1A7R8(}a@}_@mP5r8rNyEAeP)|++J8o z4^;m0jIt^(?Q<`8=KM3%^5tQQ2O+REtT~VWJ05U&=)t-(51o4Sp7oDBqvu}99BsRX zP9X^UNicg3$p2B&u+=Tkr zQQC9SrE3pe@*$e{u@;D?m_8Nq<{b-?k8+iVjldS|^S&T%_k)T%OUiNlSNJ$ zbf3PooTRb&V_q+S~D|HR;>9_~u#)G~jK=j?phjQi#5hHTYX3yT%7?e)djul3n5BYI*i*Fd*-mn%In-LofK{{Qr3=OU>mWeKz=w${MA_2gG5QTN0x zV#-%*ySg6X|Iro5w|8xSiW+RSyOe?6Wt4w`aT==X-2v41bhpjQ{UjFMqmB)I?MXdc zK9|L(rs}4;dn|(%^}#qvYI+0Hh^pz9VbUROkjnp;bhFLPeUTj$HW{2z|E)g|q`Amh zE#ZU42HssWhjTTS!M@>~fez0ozk&|$TB!_YR8JlD-N)LnQtog3f7{*d-2KkhQlK)w}Nkw(GewS;ihJ-oo*T zT(P`|iY0o^m>umC+D^2%v-~=Qb^#SPc+Ei}D&C?lAiETQNm%zev{yo)*(|R3x6B0~M<1O2?2dTG}PO zWnEt$t6V3W>&u;w+znpNibT%l(Uc9WJtZ;fEu0~yV!f#;NKI@U(`af8#kG~Tat(s| z7T3qcS&dJaix$o`Ph9x0*|bo3idCK{oft@r4+Nc_7$1Pg3_c#iz@x|&n8GGEr=RV6 zo!l#Uq+XW(?#ufJ%=89t?sXlN_8xEQZ%Ab|PRHnJF**oBX|YATLv%e6-aJmNa2|~k z1YvG59T!E$zeHUxt2SPGk3bgk5nt2C(exhgp#0RA`>u+igCav8fFU~kZzCnz*v5H{ z#!!#%nW8gWJ<-fncMnji*xyU~TiY|6q1cie9L9JSQ*VmQPx z&#NCR(J9&u1Zo8r ztfaR_su8G?*;PF+dt(b|+9YWyn1_P*6h_q;+_o2*GF5bajGR=%C! zgout~EAdX!QP}oYcTFQa&7fXJI^O3oP!)TK@COjOJLB0R<6=F1UzSIGYL)Re<44v{F4@YzQ?7p_A=8AV%kh17-s9u7QPj<5QLBC<=OZ`>{SY}SHbhx#ntHj zWvkYss9$G2V7Qnof$B7f-$yZDZ`T=gH;&iSqGW$-fZ zLuvU6VweX7XvL1b^#I*TMxvQwyd7Ko9#=Uf*;b6x$Kv;-S60Jn&NX&gvu5b6RhG(` zS;(hll^^x9Q$-8Ir8Jq0zStM1xp=L%^%#8m!DSaKh+?+#sfx?K5+tE0JK;IVs8YT3or51SzLKi*;Ac)v{yc3vZ zb6ao%x`60|ma$pl1JIIZ!TGbY#|94%6%mBD=N92PW*brn!tS|GA$1ig1mU&0Gmz>; z3PIRDcM4JjbP$9sb0;CCM+!l(&z*o2ixh&eX09y*Nh6X7Liya0NSTmA5SGqOLMj<4 z1fh5?y)Ti06oT;d+-RgMNFfL_=k`Y`7bygc3%w3lfD{781$x34B84Di&F!4u;2Ld$ zH?~M`jxEl%@l6>1rek&tKTE|`+J+G_nq?J|2ZsMosx2yUXiZyV?-o7rsTc<<4U_6i ziz)|e8~9CFTVnzIU2gI;V@BlD4bGk#ZFI`>Nz#VyGm2I&`1|btt}+#bJmJ`y&P8(k zsCN1r8jW=}=bRBA6TT{l4__5pld-3F3u9?>V}?6(3$8TMW8_~w#a)?^V3FUIZ-OE> z9fNX}+<6B2a*6c*nDm66UjFFqyNhx(_wjOV5P1&T@*K`kW^pY~rfSL-bDd9SYg!f` z&75_GnHrB$1Yz5gH|wjN^o1e2xMFQ+EQ32juLI-&13`Em80;Q;)7%A&X1tC83o2ri z00Ti-@+4O}+Za@ZB!ckdlic>%X_}xCu4Q(%W=;vGf7-11-6C$>)7hFKCEWU_$7x<& z#GOP+Sj63aI!W`yA}(o8w&vYM-10fb_C|v<9n5{)Peze+{_To}=H2 zm{w@w@f{E0PlOsAwgOYCf(VlesV5CDP5j6Q{TK{pR0Tc(fFB`#F(wTV5ri1Tt%xHC zM#Q%vjv$0B_EyD1uwDdbLkM9+ooC@2fQum9D)G;6Lq3Aw@yl;;H8>|rPp9;2U^`N}%#1eWff7u6cf(P7)D!b$*o`U0ob6 zN1erqY&#aM_5;-RWq^9d8tzhYf=K;88~YbDn67w6{rJb^5} z8l}~1j#ezlWOTKlRJ(>dxv*4MfHkH7dD%9BAXwP%GEf4aBwRqEFE!{cqK=Wp?`QP1+f&YkN zRq2bq(&pQ8K37qapfiJjc`a90QlQI3G;=L?vm{_GR^0Nink@8{_Lu8eHaV_f9oD{ea@X*f1e6ejg6T5T+>GV% za$D<{C)gT*fglX_VNmJQEz?|j8_`Q#5+)Tc-{0;MetkQm2Rd}u zC*nV-8Y?^~z&&mZHk9Gu?Lj?M!y_HNngPzbBEfbUJwOl+O_Te0uO4(KA@^+LJ^Jw2 z?J+$to$DsgLs12^EiF{ zLv#;hy7eG_Wy1J)^Z-FPQ_x-9i+Ui?UEEyN%4oj{N{=bLy3kD(?#AiNAL4sx$e&Yr zRHviP0raB{njD_ND0U5jY#I{Mv+&!6(RS$rF! z6W{;(wvpys#zR)AobInaMmhX^!{7T+9QpuuH|p+Q$F;7Sq^kqvx^-Oiv+)tf5JeC| z^MmjnDR!Sox31%6K08x)4Hd4fdWu1@D#ui;(m zx%1CibZ3xzW<6)Dm>K6m)U$rgo|8C5sF+f*rx9@SBXmEVhc!-I=c+3TcrG=G?H=m3wIH{}&YiDJ z&|OCKvYoqKX^z%!fSa^|;tmjT_p5R9UW`t?gvI010s1K_>PSl|>Q;9NpLp{4Tnt%m zor#YNpeyKPq$byKwJ+wzq=7Di@WI1*d?vCp>!d|iigUMLY||A0rCm(%Z?3NVW4dmX~z-g+!h?c$p!q)81$Kn5D^azh`rOaU5T*q}*ZPs}o zXKj4RDo4M1DNT;XZ>`cv6u2W>v*qZ`tufIO1-3?UUMc%tx@j-x>cT7W1)fT-@@2Cw zxe`}fD!GQ2({!_uJG+v*{&I2n1<3!x0eK@MrMM;Al5`#vcn)xHY@4Mk1$t>EcXQh< zofA=KC3owUH=}L<;f6SJbaf3^*)Zz8^~4~$f(}Y0|Ncxj+cXu>V-0~={1>AQm*usv~C^T zUz3n470VqQc9#y)BWsC4x-!s3ZYbb}!=*J7T=V)Ke9XmKr}&Ha)hk=0!4k0j81?Gcdx3j)&>0_{JV zz)RPj6baCquk`aT-Z7cJGf&=u?cJF!PsA^GCWX5&0}zC-$J67OQ%Iev)=oPZ&YAY9KhH)dflD*j%8$5vfJsYh;|GrgXvBOBr3ZRCnx zPuCd`HEiVGd_6)Jj%fHs?&RyyIuoL%jojteExN>wz4*k9N8{eGFuIJ5xLvT3EBQ&f zZ8k6vgewoUf&R+&wLfFIwLha9TDj!22X5B)s~PvRuo{$M4(j{8!KxzS0#Qqb}M zRhY-xThZlW&@0|Z591qAkHz5wRlVkH#JQXGlx`U?5QGB{jQbh;s29OL6$x&f*zh_a zAPBFE1U|?{NsT?9ndwh{D;hnAW;N|{qi>h&W^`4kT(yx~{y!)zQ2?dkL>tO-#brYKlVWe-IsL$+7j7_-4uqm6@AJ-s=F5H+Tp5Phqlxvx#Pn|ht z;Ge*~AxS)Eh(}QdiZV9KJ?6&0lMqw58PCTyKVjaxNEFt1YNq}$5ZVXS*_*k_cg#Um zh$0A=(z$}E5w-x*C2YIu!6Gd!ydE6te~YhKnD8|V7K?c9LwP)VFbIKu*V2rf3CM{? zPBe0;A3X+X6VfK6^Z0PY!Vl85B#$>DZuG__3~7zQ=MG?iM5_4*!)oYvXQk#U3xZN* z;`CtFj1Oy`IxI7AC#JXA8vPL&hjZ?Wuu1&-qle+S8T~Y7&t(=X{j_G!WqNCEKK&GD z&!uhRLlD0*ZuC$4>7*QP>QAHO=<=V&FVDqsV(xJh{~JQ()3iAVfvthVhy2OnF{6@~ zfxL`vd6~$|?3R~mzIm9|k`@ z0>Fnd`u`U`=tffA-%EdhT?PZDDol}l;T)0*6Q}>+o6e#t{BIlPrXGsmI)4_QDpmCE z_QZMLiAmIXk4c28<5DHn`(IT%c_>=mYh6AxUXGf6o+3wQ{M?sY`*Uotu$@b;>4jet6gvwk(*J)9RWf+qU}{&hija!5YfUaF5&Qw^qq+AtfFh^ z1vB=+=xFY7>B+Jbr%ui(;2;RU@?mh_9FEo*UV;+5#IZ+q>AX9^`Xff2q>0?=Bj#dh z0iw(76FBab*bc2}ZLHGg!;P{VCL>oi-RD%RP+00YC!WUyj=gI+=ag%5bB@O8q=vZ7 zM<-d8Hm4c8gsr^Zj05PvM~w|myCGLauhFTjdbGVxU}fC3T-9FkF<*N#j%C`UX_c{; z#{Y0)(!dkKs_wDSFdd~ zc5L=2k+FvAvYNBX08XC|P|NP)_ zLaEJ&>vT%*6I-G8)|bZa?GnO1xA3cwS|z6XeBKvEThf18+6$#sD6JApZ(XE+1t1bj zy@GN5q8j6G7cJvdh3yw3Ku&4wGLV(VK0`_=J9{ya;~OF$S8|&Cu;25;J|t3B*w}|s zh0(W=Qp##C8Y$(e3gyjylx=>LE4ooG^P{}jN10pR5Thbl;79TiKa$zqNRIO(IZ7e< zMMI3L|51J<`}vVHbR((tBl*K;>i&QC8KM2RDgAFpxiSuaL`o^U_!%8DMS5pZsz~-@ zKg!LY;R;$eg*fhq|8oU@IP_`1NL*>miDHG3*O8LSxR8@EDt_&LXls0ER7K0X@w)`2 z3cvG_Qu;Fcvj#7}3JcTyXg{jZru^n~BcAC;e6)`^ck!f2r3?f8Xof2^K{B`-$pAl+ zw=c;2ayjm}D1~+5098-} zy+m_UluknA+M0Z8fc_V0Hg7|Fx`fV8=}krIyGad=Mcy}`R^vpg+Fji!yKV}8+ov!p z!Mk7-yfOv;#ZP_1iq!9rQp!$=^am(928{P@K=BS5k|&T-8gTg;{2G`Cd^~Fk^k-?NUyXdf8o8h1 z!Lm4Od{VIqf`BT-DL}{WQ@mN3NQGTg@pUP`S#vUy1d+xTp!v~<- zNol?FU*Z0*%j=I?U2VR#&A;(Gm)F$)?eglkx>9DO)s-&w@@m@VHY*8fX;r3EBEEj+ zbjOMpC?ZkGJAW27x2G$!^V@U8YEe%bO!U8;vtZI#aM#X%(s1?<(p0vs>6~xiQRzLT zyaSKap>wK%M|vMh72Ea}QVI*TzUD&b=>wavy;91yo|F6M_3~`@*hb%74RC~tyVU=k zmqjIC2EWEGI$1W^vns>D%W-|N{T^yijWXG5a=QPIYVa_)sRlRnb9l07*c#e|tP}cT zCsJxPsK(vBSW{V}6(4JoOSp<(6?r%K-(xR*pcM}lVV+$t(bQhQ)K8F-w)?bfXDhV< z^otTLz;6-px3<#JR??MzHJ(RGDO;tK(GC8xR+;nvw8Nv*TyaAcH~zn$X@x-;7d%%J z-D+8Ul1tyyRFj*RomgpUq6^mm%(PZ_7=-IxuFSvAv|WOD5CnHZ=lnKz#U8sGRt#Ic zO(E5Iuf5ebV$z0BZvJj|PBL?M>%U8-V$G6@Jt=ORsZsh7p8OrA#sw8?_ERz1gw#Bj z^HG}4gWh>w;?{p;)ake4$agEZ`y*47B9bVh3&y9PB9eOJ-;MZHq7UW1R89eH*!@6a8zfS>QJ;JgR19X?_^L2Rc;tg0tspv8?p6%)4~X#2O) z$yIU|2V6)siK%%=NoCynQ)#+Z6tr&T8cs#)+7WHv%6);TH}}@5c&}_I9i56j=>$hY zqjKo{ZFf0HZP2o>Q06`ULJOTD>uta7E>i{nyqXsG)^7r$l(H5dEyK$=t9Y4v|2Gjj zZ+E`aAK4(0=yI6Mm=;_3Ju>VpKoeEvTsNdqi2?R_pOX=a=(nEgh!eT|gWbSF) zpns`b?Qmer4Sh1smIgv;FMp4HW$$>p_g-rHpb>v=V1{KPF{Jt&L8+n3XXFJq@UK36jCDbE>P6zw~>}sNvZrN-O^k){Fl3>Up&(cSv2Eq z=s>KboNpzSsI58^Li>Eo#{@U$%tGCamo@y1m$}ntw#w02zfDO{b8+qyf3ALmw8S-c z=(olQbq9{1s2Vb^ewn-c+f1DcQ5XKA$k_zj1w=1+hwvF-T}Aq;H@&o5dOp%>{HH#N z1Eh?be^hOF~$0osErfq}O*7`2U>7HzT&;QqVR|*J{?4AzHSL%WTCr)Dhje zO&XSkz}k=Wes6jX((3Y=r|FhMI%Jh;1}mi>LRww^;OSOyMPIa`<@&%6!Iv8U z{=TQ_-IO{XS?*fvLR}Mj+q8`rAg;uD-&J`!q#9ja>ezU03i5KB4&vcjMFDwv9m8_{vz^*(w=Kzb)J)g#XQd zw6af8kBeTkmaMVV%Q2_Q(5o_h9G`ln*Sk&h#8a|TO4ueJ4QVqd<@P^SM&BBvMDnbx zNJOo^I&eOpegj5j{^SKez#tIOLzro*LHzCQp%Q5sv9@F_CX z2%mf`_l#;09WBX`mUwOgw%YC-Lt0&4|1p&oeZfTCl|8^xPvX~+7R#9}T*$@LggT5u z-78WH&!SA7Ugk@43ojPw8eY-x4X<#mpNDf-E+(s!iJu!2Zh+7YFQI>aga^8+^w+*L zxA5~~rKUxRhI2`mj0yVfcqF}D;${^psneytG*@y-MI@Z-xa7x8^6!la(I6D$fAgieCBOG0boKXsgi^jRCa7guj*4noEda`vyq(+n#kiyyh|btf zb$e>G{}?C#+Fz%+Z@w_*sg)qiM^q9+kgtMTfxB8{Rq@wfuHX+bem3^Y7JoIph_qTw z&$e_|(_aHaQPVEr7f7oae9zZ(Pg=UK#WKZDP2WUywVLi~=}Apr29{d1FCy&~?YPUS z>FW09qG%Q5yUIJfPjpM?BQ4=`doLI3seT(WWMR@mKyGKZ~@w z{G(slVKeOb?xr#Lg@K+%{S=Q|=29A~_fSLKi=QE_R-ku&C6Aghcm$?*O91-OvYpd> znWDRj=+*69`j?enD|+<(FAJH;vPtE%H+P2Cj`g+@XIl7u}m!sAzQ96m%QTr7=qr3cS5P$hqZoBZI9G%%- z=#3sd)_z_iXK(vUwH%GRS}bF1yPDEV7yW7=AN}gl=D+O^(#=ME_Nzyif7hYY?M8g} zt4C-3a5B`3e5OF7g`s_@fL!;qp;p!KAgqhc>6n7Z}a13e6ROyA{2^m6TOG4s$U1tcYElcZKZGe zK3# zS6Js*+mG3oMg<#xkaoiFe*viR5Y!KJc$q3NQ|Axi(u9>w%v8L&f3G5 z4jT^_9uDGn;{c)Xi1D?O-0{)RnKv(@^r>1>4s>EWRH3M%6^m*)1?9mAR4o?}o4L2Q zMk)GH3I(Q|QOwdhg0KK%SpwB5K`X{1Q$VG6p!qQ_&>D=Wqrk`{=$v)IytB@+&d7|L zdAXY5FIRskngViV0^WtY7C=d5A(y@$CzVpd_@1Ah&JwW%&|4x5)yoY|1|yHx81U;b z3}8$#m#dc_q3lumM9}K*KlG5{uaPpgBX0mx{GVp+nE^~PR76(B6PhTdp3#w-AfD8m zI5v)H$3(nDB8u%yZQ=FCseJ z*vn!v%mIdw@P}b<6e&Bt8N!&y|EKx^_{_lLpwR#tIzwQ08nfe>#99A|#y^`Vl^LL7 z)bvC}Ha>MQKL7NyYmP7D8M9Y==mfAYiu77?WhOe3hcaEZ0nc}5WT8C*FddIwUd^wcK1Y1P3X@OR1 z)pBs}Ph224rHRf(EayKkMWT^E2KI%3MCgt* ?@T(2|6^MrZGur*v`(pn$Fa0Vds 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 kapKP>HP<$b(sH!IxL8Uia!0RR91 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 2abaac10e..c09605f00 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -55,147 +55,25 @@ int adcvpp=0x4; int init_detector(int b) { - if(b){ defineGPIOpins(); resetFPGA(); usleep(250*1000); } - int i; if (mapCSP0()==FAIL) { printf("Could not map memory\n"); exit(1); } - //------control server ------- - if (b) { - //printf("Bus test... "); - for (i=0; i<1000000; i++) { - bus_w(SET_DELAY_LSB_REG, i*100); - bus_r(FPGA_VERSION_REG); - if (i*100!=bus_r(SET_DELAY_LSB_REG)) - cprintf(RED,"Bus Test ERROR: wrote 0x%x, read 0x%x\n",i*100,bus_r(SET_DELAY_LSB_REG)); - } - //printf("Finished\n"); - - //confirm the detector type - if (((bus_r(PCB_REV_REG) & DETECTOR_TYPE_MASK)>>DETECTOR_TYPE_OFFSET) != JUNGFRAU_MODULE_ID){ - cprintf(BG_RED,"This is not a Jungfrau Server (enum:%d)\n",myDetectorType); - exit(-1); - } - cprintf(BLUE,"\n\n********************************************************\n" - "*********************Jungfrau Server********************\n" - "********************************************************\n"); - - //print version - cprintf(BLUE,"\n" - "Firmware Version:\t 0x%x\n" - "Software Version:\t %llx\n" - //"F/w-S/w API Version:\t\t %lld\n" - //"Required Firmware Version:\t %d\n" - "Fixed Pattern:\t\t 0x%x\n" - "Board Revision:\t\t 0x%x\n" - "\n********************************************************\n", - bus_r(FPGA_VERSION_REG),(long long unsigned int)(((int64_t)SVNREV <<32) | (int64_t)SVNDATE) - //,sw_fw_apiversion, REQUIRED_FIRMWARE_VERSION - ,bus_r(FIX_PATT_REG),(bus_r(PCB_REV_REG)&BOARD_REVISION_MASK) - ); - - - printf("Resetting PLL\n"); - resetPLL(); - bus_w16(CONTROL_REG, SYNC_RESET); - bus_w16(CONTROL_REG, 0); - bus_w16(CONTROL_REG, GB10_RESET_BIT); - bus_w16(CONTROL_REG, 0); - -#ifdef MCB_FUNCS - initDetector(); -#endif - printf("Initializing Detector\n"); - /*some registers set, which is in common with jungfrau, please check */ - prepareADC(); - /*some registers set, which is in common with jungfrau, please check */ - initDac(0); initDac(8); //initializes the two dacs - - - //set dacs - printf("Setting Default Dac values\n"); - enum dacNames{VB_COMP,VDD_PROT,VIN_COM,VREF_PRECH,VB_PIXBUF,VB_DS,VREF_DS,VREF_COMP}; - int retval = -1; - int dacvalues[8][2]={ - {VB_COMP, 1220}, - {VDD_PROT, 3000}, - {VIN_COM, 1053}, - {VREF_PRECH,1450}, - {VB_PIXBUF, 750}, - {VB_DS, 1000}, - {VREF_DS, 480}, - {VREF_COMP, 420}, - }; - for(i=0;i<8;++i){ - retval=setDac(dacvalues[i][0], dacvalues[i][1]); - if(retval!=dacvalues[i][1]) - printf("Error: Setting dac %d failed, wrote %d, read %d\n",dacvalues[i][0],dacvalues[i][1],retval); - } - - - printf("\nPowering on the chip\n"); - bus_w(POWER_ON_REG,0x1); - - /* Only once */ - bus_w(CONFGAIN_REG,0x0); - - printf("Resetting ADC\n"); - writeADC(ADCREG1,0x3); writeADC(ADCREG1,0x0); - writeADC(ADCREG2,0x40); - writeADC(ADCREG3,0xf); - writeADC(ADCREG4,0x3f); - printf("Configuring Vrefs\n"); - writeADC(ADCREG_VREFS,0x2); - printf("Setting ADC Inversion\n");// (by trial and error) - bus_w(ADC_INVERSION_REG,0x453b2a9c); - - adcPipeline(HALFSPEED_ADC_PIPELINE); - dbitPipeline(HALFSPEED_DBIT_PIPELINE); - adcPhase(HALFSPEED_ADC_PHASE); //set adc_clock_phase in unit of 1/(52) clock period (by trial and error) - - printf("Reset mem machine fifos\n"); - bus_w(MEM_MACHINE_FIFOS_REG,0x4000); - bus_w(MEM_MACHINE_FIFOS_REG,0x0); - printf("Reset run control\n"); - bus_w(MEM_MACHINE_FIFOS_REG,0x0400); - bus_w(MEM_MACHINE_FIFOS_REG,0x0); - initSpeedConfGain(HALFSPEED_CONF); - setSettings(DYNAMICGAIN,-1); - - - - //Initialization of acquistion parameters - setFrames(1*1000*1000); - setTrains(-1); - setExposureTime(10*1000); - setPeriod(2*1000*1000); - setDelay(0); - setGates(0); - - - setTiming(GET_EXTERNAL_COMMUNICATION_MODE); - setMaster(GET_MASTER); - setSynchronization(GET_SYNCHRONIZATION_MODE); - } - //------ end of control server ------ - + if (b) + initializeDetector(); //common for both control and stop server strcpy(mess,"dummy message"); strcpy(lastClientIP,"none"); strcpy(thisClientIP,"none1"); lockStatus=0; - - - return OK; } @@ -287,6 +165,9 @@ int function_table() { flist[F_SET_CTB_PATTERN]=&set_ctb_pattern; flist[F_WRITE_ADC_REG]=&write_adc_register; flist[F_PROGRAM_FPGA]=&program_fpga; + flist[F_RESET_FPGA]=&reset_fpga; + flist[F_POWER_CHIP]=&power_chip; + return OK; } @@ -3154,15 +3035,13 @@ int write_adc_register(int file_des) { int program_fpga(int file_des) { int ret=OK; int n; - const size_t maxprogramsize = 2 * 1024 *1024; - size_t unitprogramsize = 0; - char* fpgasrc = (char*)malloc(maxprogramsize); + sprintf(mess,"Program FPGA unsuccessful\n"); + char* fpgasrc = NULL; + FILE* fp = NULL; size_t filesize = 0; + size_t unitprogramsize = 0; size_t totalsize = 0; - FILE* fp = NULL; - - sprintf(mess,"Program FPGA\n"); //filesize n = receiveDataOnly(file_des,&filesize,sizeof(filesize)); @@ -3175,33 +3054,48 @@ int program_fpga(int file_des) { printf("\n\n Total size is:%d\n",totalsize); #endif + //lock + if (ret==OK && differentClients==1 && lockStatus==1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + filesize = 0; + } + //opening file pointer to flash and telling FPGA to not touch flash - if(startWritingFPGAprogram(&fp) != OK){ + if(ret == OK && startWritingFPGAprogram(&fp) != OK){ sprintf(mess,"Could not write to flash. Error at startup.\n"); cprintf(RED,"%s",mess); ret=FAIL; filesize = 0; } + + //---------------- first ret ---------------- n = sendDataOnly(file_des,&ret,sizeof(ret)); if (ret==FAIL) n += sendDataOnly(file_des,mess,sizeof(mess)); + //---------------- first ret ---------------- //erasing flash - if(ret != FAIL) + if(ret != FAIL){ eraseFlash(); + fpgasrc = (char*)malloc(MAX_FPGAPROGRAMSIZE); + } + //writing to flash part by part - while(filesize){ + while(ret != FAIL && filesize){ - unitprogramsize = maxprogramsize; //2mb + unitprogramsize = MAX_FPGAPROGRAMSIZE; //2mb if(unitprogramsize > filesize) //less than 2mb unitprogramsize = filesize; #ifdef VERY_VERBOSE printf("unit size to receive is:%d\n",unitprogramsize); printf("filesize:%d currentpointer:%d\n",filesize,currentPointer); #endif + + //receive n = receiveDataOnly(file_des,fpgasrc,unitprogramsize); if (n < 0) { @@ -3210,42 +3104,37 @@ int program_fpga(int file_des) { } - if(!(unitprogramsize - filesize)){ - fpgasrc[unitprogramsize]='\0'; - filesize-=unitprogramsize; - unitprogramsize++; - }else - filesize-=unitprogramsize; - - if (ret==OK) { - if (differentClients==1 && lockStatus==1) { - ret=FAIL; - sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else{ - ret = writeFPGAProgram(fpgasrc,unitprogramsize,fp); - } + if(!(unitprogramsize - filesize)){ + fpgasrc[unitprogramsize]='\0'; + filesize-=unitprogramsize; + unitprogramsize++; + }else + filesize-=unitprogramsize; + + ret = writeFPGAProgram(fpgasrc,unitprogramsize,fp); } - if(ret!=FAIL){ - if (differentClients) - ret=FORCE_UPDATE; - } - /* send answer */ - /* send OK/failed */ + //---------------- middle rets ---------------- n = sendDataOnly(file_des,&ret,sizeof(ret)); if (ret==FAIL) { n += sendDataOnly(file_des,mess,sizeof(mess)); cprintf(RED,"Failure: Breaking out of program receiving\n"); - break; + } + //---------------- middle rets ---------------- + + + if(ret != FAIL){ + //print progress + printf("Writing to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100) ); + fflush(stdout); } - //print progress - printf("Writing to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100) ); - fflush(stdout); - } + + + printf("\n"); //closing file pointer to flash and informing FPGA @@ -3255,13 +3144,21 @@ int program_fpga(int file_des) { ret=FAIL; } + if(ret!=FAIL){ + ret=FORCE_UPDATE; + } + + + //---------------- last ret ---------------- n = sendDataOnly(file_des,&ret,sizeof(ret)); if (ret==FAIL) n += sendDataOnly(file_des,mess,sizeof(mess)); + //---------------- last ret ---------------- //free resources - free(fpgasrc); + if(fpgasrc != NULL) + free(fpgasrc); if(fp!=NULL) fclose(fp); #ifdef VERY_VERBOSE @@ -3270,3 +3167,73 @@ int program_fpga(int file_des) { /*return ok/fail*/ return ret; } + + + +int reset_fpga(int file_des) { + int ret=OK; + int n; + sprintf(mess,"Reset FPGA unsuccessful\n"); + + resetFPGA(); + usleep(250*1000); + initializeDetector(); + + ret = FORCE_UPDATE; + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + + /*return ok/fail*/ + return ret; +} + + + +int power_chip(int file_des) { + + int retval=-1; + int ret=OK; + int arg=-1; + int n; + + n = receiveDataOnly(file_des,&arg,sizeof(arg)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + + +#ifdef VERBOSE + printf("Power chip to %d\n", arg); +#endif + + if (differentClients==1 && lockStatus==1 && arg!=-1) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + retval=powerChip(arg); +#ifdef VERBOSE + printf("Chip powered: %d\n",retval); +#endif + + if (retval==arg || arg<0) { + ret=OK; + } else { + ret=FAIL; + printf("Powering chip failed, wrote %d but read %d\n", arg, retval); + } + + } + if (ret==OK && differentClients==1) + ret=FORCE_UPDATE; + + /* send answer */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) { + n += sendDataOnly(file_des,mess,sizeof(mess)); + } else + n += sendDataOnly(file_des,&retval,sizeof(retval)); + + return ret; +} diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h index 395f6f02c..0cbdd052b 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.h @@ -97,4 +97,6 @@ int set_ctb_pattern(int); int write_adc_register(int);; int program_fpga(int); +int reset_fpga(int); +int power_chip(int); #endif diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index dcade6b10..89fbf951a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3965,7 +3965,7 @@ int multiSlsDetector::programFPGA(string fname){ ret=detectors[i]->programFPGA(fname); if(detectors[i]->getErrorMask()) setErrorMask(getErrorMask()|(1<numberOfDetectors; i++) { + if (detectors[i]) { + ret=detectors[i]->resetFPGA(); + if(detectors[i]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors; i++) { + if (detectors[i]) { + ret=detectors[i]->powerChip(ival); + if(detectors[i]->getErrorMask()) + setErrorMask(getErrorMask()|(1<detectorMAC,detectorMAC.c_str()); if(!strcmp(thisDetector->receiver_hostname,"none")) - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; else if(setUDPConnection()==FAIL) std::cout<< "Warning: UDP connection set up failed" << std::endl; }else{ @@ -5526,7 +5526,7 @@ char* slsDetector::setDetectorIP(string detectorIP){ if(result!=0){ strcpy(thisDetector->detectorIP,detectorIP.c_str()); if(!strcmp(thisDetector->receiver_hostname,"none")) - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; else if(setUDPConnection()==FAIL) std::cout<< "Warning: UDP connection set up failed" << std::endl; }else{ @@ -5618,7 +5618,7 @@ char* slsDetector::setReceiverUDPIP(string udpip){ }else{ strcpy(thisDetector->receiverUDPIP,udpip.c_str()); if(!strcmp(thisDetector->receiver_hostname,"none")) - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; else if(setUDPConnection()==FAIL){ std::cout<< "Warning: UDP connection set up failed" << std::endl; } @@ -5641,7 +5641,7 @@ char* slsDetector::setReceiverUDPMAC(string udpmac){ (udpmac[11]==':')&&(udpmac[14]==':')){ strcpy(thisDetector->receiverUDPMAC,udpmac.c_str()); if(!strcmp(thisDetector->receiver_hostname,"none")) - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; else if(setUDPConnection()==FAIL){ std::cout<< "Warning: UDP connection set up failed" << std::endl; } @@ -5660,7 +5660,7 @@ char* slsDetector::setReceiverUDPMAC(string udpmac){ int slsDetector::setReceiverUDPPort(int udpport){ thisDetector->receiverUDPPort = udpport; if(!strcmp(thisDetector->receiver_hostname,"none")) - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; else if(setUDPConnection()==FAIL){ std::cout<< "Warning: UDP connection set up failed" << std::endl; } @@ -5670,7 +5670,7 @@ int slsDetector::setReceiverUDPPort(int udpport){ int slsDetector::setReceiverUDPPort2(int udpport){ thisDetector->receiverUDPPort2 = udpport; if(!strcmp(thisDetector->receiver_hostname,"none")) - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; else if(setUDPConnection()==FAIL){ std::cout<< "Warning: UDP connection set up failed" << std::endl; } @@ -5724,7 +5724,7 @@ int slsDetector::setUDPConnection(){ //called before set up if(!strcmp(thisDetector->receiver_hostname,"none")){ - std::cout << "Warning: UDP Set up failed. Receiver hostname not set." << endl; + std::cout << "Warning: Receiver hostname not set yet." << endl; return FAIL; } @@ -6430,12 +6430,18 @@ int slsDetector::writeSettingsFile(string fname, int imod, int* iodelay){ int slsDetector::programFPGA(string fname){ int ret=FAIL; + int fnum=F_PROGRAM_FPGA; + char mess[MAX_STR_LENGTH]=""; + int64_t retval = -1; + size_t filesize=0; + char* fpgasrc = NULL; if(thisDetector->myDetectorType != JUNGFRAU){ std::cout << "Not implemented for this detector" << std::endl; return FAIL; } + //check if it exists struct stat st; if(stat(fname.c_str(),&st)){ @@ -6443,7 +6449,6 @@ int slsDetector::programFPGA(string fname){ setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); return FAIL; } - //create destination file name,replaces original filename with Jungfrau.rawbin string destfname; size_t found = fname.find_last_of("/\\"); @@ -6452,8 +6457,6 @@ int slsDetector::programFPGA(string fname){ else destfname = fname.substr(0,found+1); destfname.append("Jungfrau_MCB.rawbin"); - - #ifdef VERBOSE std::cout << "Converting " << fname << " to " << destfname << std::endl; #endif @@ -6470,11 +6473,9 @@ int slsDetector::programFPGA(string fname){ for (filepos=0x80; filepos < 0x1000000; filepos++) { x = fgetc(src); if (x < 0) break; - y=0; for (i=0; i < 8; i++) y=y| ( (( x & (1<> i) << (7-i) ); // This swaps the bits - fputc(y,dst); } if (filepos < 0x1000000){ @@ -6485,7 +6486,6 @@ int slsDetector::programFPGA(string fname){ #ifdef VERBOSE std::cout << "File has been converted to " << destfname << std::endl; #endif - //loading file to memory FILE* fp = fopen(destfname.c_str(),"r"); if(fp == NULL){ @@ -6498,14 +6498,14 @@ int slsDetector::programFPGA(string fname){ setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); return FAIL; } - size_t filesize = ftell(fp); - if(filesize == -1){ + filesize = ftell(fp); + if(filesize <= 0){ std::cout << "Could not get length of rawbin file" << std::endl; setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); return FAIL; } rewind(fp); - char* fpgasrc = (char*)malloc(filesize+1); + fpgasrc = (char*)malloc(filesize+1); if(fpgasrc == NULL){ std::cout << "Could not allocate size of program" << std::endl; setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); @@ -6526,14 +6526,8 @@ int slsDetector::programFPGA(string fname){ std::cout << "Successfully loaded the rawbin file to program memory" << std::endl; #endif - const size_t maxprogramsize = 2 * 1024 *1024; - size_t unitprogramsize = 0; - int currentPointer = 0; - size_t totalsize = filesize; - int fnum=F_PROGRAM_FPGA; - char mess[MAX_STR_LENGTH]=""; - int64_t retval = -1; + #ifdef VERBOSE std::cout<< "Sending programming binary to detector " << endl; #endif @@ -6541,7 +6535,6 @@ int slsDetector::programFPGA(string fname){ if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); controlSocket->SendDataOnly(&filesize,sizeof(filesize)); - //check opening error controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); if (ret==FAIL) { @@ -6551,6 +6544,8 @@ int slsDetector::programFPGA(string fname){ filesize = 0; } + + //erasing flash if(ret!=FAIL){ std::cout<< "This can take awhile. Please be patient..." << endl; printf("Erasing Flash:%d%%\r",0); @@ -6568,10 +6563,14 @@ int slsDetector::programFPGA(string fname){ std::cout << flush; } - //sending program in parts of 2mb each - while(filesize > 0){ - unitprogramsize = maxprogramsize; //2mb + //sending program in parts of 2mb each + size_t unitprogramsize = 0; + int currentPointer = 0; + size_t totalsize= filesize; + while(ret != FAIL && (filesize > 0)){ + + unitprogramsize = MAX_FPGAPROGRAMSIZE; //2mb if(unitprogramsize > filesize) //less than 2mb unitprogramsize = filesize; #ifdef VERBOSE @@ -6579,20 +6578,18 @@ int slsDetector::programFPGA(string fname){ #endif controlSocket->SendDataOnly(fpgasrc+currentPointer,unitprogramsize); controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); - if (ret==FAIL) { + if (ret!=FAIL) { + filesize-=unitprogramsize; + currentPointer+=unitprogramsize; + + //print progress + printf("Writing to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100)); + std::cout << flush; + }else{ controlSocket->ReceiveDataOnly(mess,sizeof(mess)); std::cout<< "Detector returned error: " << mess << std::endl; setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); - //stops writing - break; } - filesize-=unitprogramsize; - currentPointer+=unitprogramsize; - - //print progress - printf("Writing to Flash:%d%%\r",(int) (((double)(totalsize-filesize)/totalsize)*100)); - std::cout << flush; - } std::cout<myDetectorType != JUNGFRAU){ + std::cout << "Not implemented for this detector" << std::endl; + return FAIL; + } +#ifdef VERBOSE + std::cout<< "Sending reset to FPGA " << endl; +#endif + if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (connectControl() == OK){ + controlSocket->SendDataOnly(&fnum,sizeof(fnum)); + + //check opening error + controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(RESET_ERROR)); + } + + disconnectControl(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + return ret; + +} + + + +int slsDetector::powerChip(int ival){ + int ret=FAIL; + int fnum=F_POWER_CHIP; + char mess[MAX_STR_LENGTH]=""; + int retval=-1; + + if(thisDetector->myDetectorType != JUNGFRAU){ + std::cout << "Not implemented for this detector" << std::endl; + return FAIL; + } +#ifdef VERBOSE + std::cout<< "Sending power on/off/get to the chip " << endl; +#endif + if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (connectControl() == OK){ + controlSocket->SendDataOnly(&fnum,sizeof(fnum)); + controlSocket->SendDataOnly(&ival,sizeof(ival)); + //check opening error + controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(POWER_CHIP)); + }else + controlSocket->ReceiveDataOnly(&retval,sizeof(retval)); + disconnectControl(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + return retval; + +} int slsDetector::loadSettingsFile(string fname, int imod) { sls_detector_module *myMod=NULL; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 1f0cb7dfb..a3c6ff126 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -528,6 +528,18 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int programFPGA(string fname); + /** resets FPGA + \returns OK or FAIL + */ + int resetFPGA(); + + /** power on/off the chip + \param ival on is 1, off is 0, -1 to get + \returns OK or FAIL + */ + int powerChip(int ival= -1); + + /** loads the modules settings/trimbits reading from a file \param fname file name . If not specified, extension is automatically generated! \param imod module number, -1 means all modules diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 0accc5b6d..ddfd8fa43 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -441,10 +441,23 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; i++; + + /* fpga */ + descrToFuncMap[i].m_pFuncName="programfpga"; descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; i++; + descrToFuncMap[i].m_pFuncName="resetfpga"; + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; + i++; + + + /* chip */ + descrToFuncMap[i].m_pFuncName="powerchip"; + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; + i++; + /* versions/ serial numbers getId */ descrToFuncMap[i].m_pFuncName="moduleversion"; // @@ -4352,25 +4365,52 @@ string slsDetectorCommand::cmdAdvanced(int narg, char *args[], int action) { return myDet->externalSignalType(myDet->setExternalSignalFlags(flag,is)); - } else if (cmd=="programfpga") { + } + + + else if (cmd=="programfpga") { if (action==GET_ACTION) return string("cannot get"); - - if (narg<2) - return string("wrong usage: should specify programming file"); if(strstr(args[1],".pof")==NULL) - return string("wrong usage: should specify programming file with .pof extension"); - + return string("wrong usage: programming file should have .pof extension"); string sval=string(args[1]); #ifdef VERBOSE std::cout<< " programming file " << sval << std::endl; #endif + myDet->setOnline(ONLINE_FLAG); if(myDet->programFPGA(sval) == OK) - return string("programming successful"); - return string("programming unsuccessful"); + return string("successful"); + return string("unsuccessful"); + } + + + else if (cmd=="resetfpga") { + if (action==GET_ACTION) + return string("cannot get"); +#ifdef VERBOSE + std::cout<< " resetting fpga " << sval << std::endl; +#endif + myDet->setOnline(ONLINE_FLAG); + if(myDet->resetFPGA() == OK) + return string("successful"); + return string("unsuccessful"); + } + + + else if (cmd=="powerchip") { + char ans[100]; + myDet->setOnline(ONLINE_FLAG); + if (action==PUT_ACTION){ + int ival = -1; + if (!sscanf(args[1],"%d",&ival)) + return string("could not scan powerchip parameter " + string(args[1])); + myDet->powerChip(ival); + } + sprintf(ans,"%d",myDet->powerChip()); + return string(ans); } else - return string("could not decode flag ")+cmd; + return string("unknown command ")+cmd; } @@ -4382,8 +4422,8 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) { os << "extsig:i mode \t sets the mode of the external signal i. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl; os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, safe, unknown" << std::endl; - os << "programfpga f \t programs the fpga with file f with .pof" << std::endl; - + os << "programfpga f \t programs the fpga with file f (with .pof extension)." << std::endl; + os << "resetfpga f \t resets fpga, f can be any value" << std::endl; } if (action==GET_ACTION || action==HELP_ACTION) { diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 3e248bdc0..053a91c01 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -497,7 +497,16 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { */ virtual int programFPGA(string fname)=0; + /** resets FPGA + \returns OK or FAIL + */ + virtual int resetFPGA()=0; + /** power on/off the chip + \param ival on is 1, off is 0, -1 to get + \returns OK or FAIL + */ + virtual int powerChip(int ival= -1)=0; /** saves the modules settings/trimbits writing to a file \param fname file name . Axtension is automatically generated! From df3e0f3f9372b3070b857ab68e969a82588dc093 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 3 Nov 2016 12:32:59 +0100 Subject: [PATCH 113/128] updaterev --- slsDetectorSoftware/eigerDetectorServer/gitInfo.txt | 8 ++++---- slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h | 8 ++++---- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index 26ed16c52..d4905e059 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: c829da8894d7532ecedd7f41099f93de60d9ab00 -Revision: 240 +Repsitory UUID: 279965f286cc6364dec8bf7e2a837214d11bb296 +Revision: 258 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 22 -Last Changed Date: 2016-09-29 10:28:37 +0200 +Last Changed Rev: 358 +Last Changed Date: 2016-11-03 12:31:34 +0100 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 1c72c9b8e..476f77780 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "c829da8894d7532ecedd7f41099f93de60d9ab00" -//#define SVNREV 0x22 +#define SVNREPUUID "279965f286cc6364dec8bf7e2a837214d11bb296" +//#define SVNREV 0x358 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x22 -#define SVNDATE 0x20160929 +#define SVNREV 0x358 +#define SVNDATE 0x20161103 // diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index e966f94db..efb1fbcc5 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: c829da8894d7532ecedd7f41099f93de60d9ab00 -Revision: 1167 +Repsitory UUID: 279965f286cc6364dec8bf7e2a837214d11bb296 +Revision: 1282 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1167 -Last Changed Date: 2016-09-29 10:28:37 +0200 +Last Changed Rev: 1282 +Last Changed Date: 2016-11-03 12:31:34 +0100 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index cfa84c3ff..07fab34af 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "c829da8894d7532ecedd7f41099f93de60d9ab00" -//#define SVNREV 0x1167 +#define SVNREPUUIDLIB "279965f286cc6364dec8bf7e2a837214d11bb296" +//#define SVNREV 0x1282 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1167 -#define SVNDATELIB 0x20160929 +#define SVNREVLIB 0x1282 +#define SVNDATELIB 0x20161103 // From 20918f2d52f7502ae49f011e5500bacc5220a823 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 3 Nov 2016 13:22:19 +0100 Subject: [PATCH 114/128] versioning done --- .../jungfrauDetectorServer/gitInfo.txt | 18 +++++++++--------- .../jungfrauDetectorServer/gitInfoJungfrau.h | 12 ++++++------ .../jungfrauDetectorServerv2.2.1 | Bin 126332 -> 126244 bytes 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index 921890a70..ddbf36f53 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ -Path: slsDetectorsPackage/slsDetectorSoftware/moenchDetectorServer -URL: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/moenchDetectorServer -Repository Root: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repsitory UUID: 046a469b1e6582c4c55bd6eaeb4818b618d0a9a9 -Revision: 55 -Branch: separate_receiver -Last Changed Author: Maliakal_Dhanya -Last Changed Rev: 14 -Last Changed Date: 2014-06-03 12:26:45 +0200 +Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer +URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer +Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git +Repsitory UUID: 1f1b31ddf2516a8b2fe51c02dc3602b5fe24faa4 +Revision: 43 +Branch: developer +Last Changed Author: Dhanya_Maliakal +Last Changed Rev: 1283 +Last Changed Date: 2016-11-03 12:32:59 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index 270653967..55a837b29 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,11 +1,11 @@ //#define SVNPATH "" -#define SVNURL "git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/moenchDetectorServer" +#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "046a469b1e6582c4c55bd6eaeb4818b618d0a9a9" -//#define SVNREV 0x14 +#define SVNREPUUID "1f1b31ddf2516a8b2fe51c02dc3602b5fe24faa4" +//#define SVNREV 0x1283 //#define SVNKIND "" //#define SVNSCHED "" -#define SVNAUTH "Maliakal_Dhanya" -#define SVNREV 0x14 -#define SVNDATE 0x20140603 +#define SVNAUTH "Dhanya_Maliakal" +#define SVNREV 0x1283 +#define SVNDATE 0x20161103 // diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index 975475feb1ffbbde80e27ae712f54198bac313a3..e4a818066079ff5d5b51c9a48b748e4431a5fce0 100755 GIT binary patch delta 46097 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 From 6f60f011d19aeae43a7db87e98f6a3cf5f2ba0f4 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 3 Nov 2016 16:26:11 +0100 Subject: [PATCH 115/128] something --- .../jungfrauDetectorServer/firmware_funcs.c | 2 +- .../jungfrauDetectorServerv2.2.1 | Bin 126244 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 238af0281..2578b5cb0 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -1676,7 +1676,7 @@ int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int source bus_w(CONTROL_REG,GB10_RESET_BIT); bus_w(CONTROL_REG,0); - usleep(10 * 1000); + usleep(500 * 1000); bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); return OK; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 deleted file mode 100755 index e4a818066079ff5d5b51c9a48b748e4431a5fce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126244 zcmd44eS8$v^*=tF1egsQnDFFcP$viy@o7Pn4I*w5)EI#*7!i@$%>xetVt7ykqHdy< zsAxAr75lND?xMBSQo8|_3`^}|Ev2oti=t9L*zPbPri!}3rv-uizR#VVr%i&k{{Hyo z^}3sx`*hAd_uO;OJ@?!@HP=k5;y5k`VJc_yMLFA6H)oT494Bz>nG>!+nr%+O1?~9X z<6pl;lVy&(5@8C$RS4INw*|be^X};9+xEM=Tg&8mzHEfg!)5X^JT3EG+Uk*AHjcuf zw*UF2&-HTh*ZmQkPjj8w9Ot-Dm?k@Z#UXd0kfN@Q*;m9yc04R@V9$7e_2TR2C5r=eBTL zkW-qPHCS9{GvbbgIbSrw`w|hKn2?(G2u;Z#?-j-iEhTc$XG7qWK|kRfmk0@ociHRO zf;PUt;E}ibI10)m&AiXuu{QNjl;-QK<=;U0H+-e?gsoW!oU$>%ImV)F3}q3NrOkF< zG0H}}K~A7#0y*B<$T{*eASY28L7AS09Ac0YkuIq%*vS8HL0eGB8}Cd8h4H0JsTCut zZ3vw5Thw))Aj+YB!3d>}WT`5SH@Qj|a>`WTM{O&r<|rs5()iVjoG%;+NglZhDF{ks z^GH#YgQ)5F)}Uix8894KbuWF`D|=Bfo(f5S0DvlC?zZB9T+Jae}Dj7g{)F z{pffkjxtNRDEoinyr@(tyHh;>$zXFn=NONC5cMG_Ti0={@7(QcQ)#Zy_yoMiDeqpy zDMv37W&4$4C8va*=9GmO@s3A6E<)@4X=LS zRpQc0S7>2da3peGR>WGImm~1t;89{s@?(_6(CQS&+jE>E{>LIQ2{3;Pn7oc&cx2AbAqX88VoYmsRfwyy3mc4>t+}WtHxM>rJpDP@(?4d4+34WpjSivJ$Wx!k z$@O_&Q%rCGCkF=vOfgjh0c&8)6cZGXM-a9d^+X4Aa&&NDyAd;IC@0Su8Z*T#8pg?s zh6$z^&v0Nk+-r(idnPBZJyYlyWNPdF5uCh#gwQe66u0&q`aGK&?D&XXo3WScq zrnrq~qs3xa*IJtR@&{1fL`=W@GzbFzq&Nam~k43(* zLdPgmTo7?V#Emq?xh}x`bAiw?+7#!x2vojE=s3?5*M2c4w_hxDj4{QXxCGj%m1`M~*G0qg%b_FN5T_JRgH^nWzl9QKSDRf+FimRFe z9-bm}OfbbwzKWA4UnO*0W{RuxaB`hT=(yYzH?0Ktl?WX_HpOj1+$O{YOmXdqYe(Ef zQ(R{$CwG<#9g|FPuV2H-uU{i{Tw#ji%fWx;LPwb??nDLpqeAGIYKmKQJ;u=WLdVsR zCz?FVNy{@sUY0`!me=frWOD?xSWY?fN0lx)E%9C)4LP(OvTQpfpbSy1{9?2S8J}6F zQQ{|~J+cq-4MF+xL9NyjxgN0UYt{hPyFbpX^Bzl`$8BxU5ZoR1Q=BgzA$d4f7EU}h zw=G!VQgK*5nk1m#F%a{DCj0%U-(T}S>VN*nq#xK%x!X~L!z*ag9dnk0hyF65Ef;~k z32MzWKR)^sCfgn7Bd#b(bL%sx@tK-Z*Id-O_Qysoyki{d)N0|OUuY$^pv0D%Qp`G8 z2vlp}!2(fBjUqLQ`btq>RT@W!p1K#Qdy#q^saOAatUL-huomO}<55Hd!pfk5jJQl1 zbfS*Vn%7Wbl!*pfU-d=*6E!(sEMm}&tA&fl>dEzYCaotHm6*3SrC+4`+P1!eoI2K z@i`27oxFhHCF3{NyKlQYLPE(%I z)ZE9-XlrwAF0>~n=-HUA_iyK_95kTEQI!2Sk3Nq|OlO3y9|l%^oxI2?Z%l|sc;Fq6 z^kKi0&)TvWsGi9)4+B~zx7-ix6O50#w`{qdrgIC{EgHWVy|EQ-+gh82w!QF}!7Dz{ zk$9!&w*BNW-ly_h5SSM0+(JFwS0J6X{*plC5^#k!22{zRYKbH{`XN^r@;!NRAW~rB z9?mfYd=@nEawfN|Yob06MhJ4QiPK1%bt1mfrS*GaWDL1fUeNfXV`T5Va6nHB>byWY zY_c|n@f9`U^ag15M(rffOaRSxr}<&e$kXw|H|t5~jRI?xLN{L$W86z}LF1^WP(w70 zaVTBuW5BAnKE7X1Gj!nkK3u1rbGIgIj{$F)VNO!Z=5Kq9oRryh5QM&fzl zX|aEXVIP))SW^vm?!SFR0l8O4`yr_FCcT#?IG|(mK*F)kl^~;|5%qzg)_%^vDfpUqhX` z+L^@}Jp9aQ>)MC9qO6C_lo)QBv3bWJthK@>oHNJMzx-c{LCKK0%{)o^aAY&6uIUCI zw9^CX|Jna99pa zB^q&vjp)59@Dzgb*8S9<1kH*6s*I-*?*o3}w6xJA&}^}H`B<)}h12q}0kS5KOF}CO znmBADxMd?76^)P3s7NyHW1>jQ zrl~b@OqB6j|Fkq3f!ao}+8($s*P!&Sw z4EE1J#0%ThG{BuU|264ta6&?Iwc1>{uEF4i6Zdk;u1jbP+U(h&Re)(>If7qKr3e=1 zc*3OfpcgEogJgZc)Vj>k@$Y+Aicx8`kI%i7_}Ou;(~EKOx}CRYJCn8E$V^C$wdffH zWyif?jnzC~ zBv8E@Q364E6!k)Pu;&O~NCP`d+ln*<<=%Vyi!-Gt=y>5IFJ#*)tOHg(PqHoj)Dn&i zLah&@)_y2Y+&KMu$TramqXo64=dhLzcaj#-i986(b@#SPBHFXp zQz$>>;gq-QNU!n8UmzVpDZaO_NV-lo`wf8G^8t-U@`?Fana=-%^qyq|7v9^QhXde> z!t@CK^;vQB9q$;1m7X@LLuYAxYK;D;^f-gBwUPd?o)%!zmyPtaenPrQ!qo4s1vc5W zpb2!0u2c1rQas-UEP5a7zlL4dkieX>`eKy}b1=^R(5@&o%Cr`j&&Ko4<&qo!`$6_4 zB2GxUL}Vy>!LtB1um#i$Ppvg%j|cd87QBYoEo-SB%(Kvf6RiKnRgi??!3iFD4oc5K zXXynV`;HaTDd%0@Jk%ehO-x z3(8UdamwG)V>-u4+8?bxh>o12K-d914_~y7&xXcC_!NV$)#rfJh!Ly3g+W1e42N0C zvEMR=%@}2l;eKoTV+16^F-VPo6q2?9hYPOvo8}*^GieRRG~zh8aCe#u7mc9xygIko z(s8$fE{Tj4q{eYxJuPl<9CTu#+uRZW)dGxa%@2XY7rLB4-S9AfV^n<)Gb5>s`!KKx*})^PyWw^>o7u%6v}7jL6uW8a~M?NQIFZ8a|YhbFpZI&$(?O$1nlZ0 z!f|kC5E7Hd{3|om((Pz7;cMtgf(b{}o@l^vTH2N*+a-9aFZ#vEBed`itq!VP%k}x0 zTCW(AK;!DedYZW&vhiuU(*VZbw3ZB^=Sgz@@_-+aZtVpZ`DxlwZz5y zFEF?`3K_~dh>N3aW;b)OnnrvY2cNE+VO||TUV^7pK2=w_;6Pw@A25qzOcS5Vj8D%f zi1xszi}hAV)4ID4d|Je{wQ@dxM3g-or&Ki4S`s$6W_6uQl08|=DGyy1W?1JC2B_QU z{pT?5pIbod-}MiIyU`-fLGy)R$rVMeD9g2)<>GuI;J6}wUu>tx7v0JGHdTgqLbmS2 zJ||`X1jW62to$5$v@KNO%0m5LjPPT104WMd;Ab+}A9=bh*|wu?Pun|f?QI@t9W~NQ z=nO{|zP$C$)|Xlnt>d<>*tUIJsp~qI7y8w-)qdbORCub5Q}_$k@wt%P{zyxk zN1nEjqo7=|I?$#`>%dORebu)}Yrkp!$Q%!@)uK3KeD%_YcaD|AXwRCRa~D0_w!FxhMCUR-#)Sku!4#VIiYkHJQ_-u1HCrrkOySOLzzEI%xJ~9wR)! zb{#0ULDS69S$+38u%XD{@b|BdMs`by^nL@4f6^)h=z7$nCGtk}#>Rz*q|Y(8X=}Cf z?hb=*%r_u7+sY&b2axz0X}MrPi41K7N= zkmPQx(M*Hxt3h+A%+?>eD@Wv%XI-St@{T+cM|Gn9&V_HG{$OMGm5r)Xs-tAe8LCb> zpj-RKp(QG>L4!;CO7+y1oJH_CS@arUE&d*DS~Wt zI_$f(#SK{QMPy^i`5tW<#@aHjhqic8zjx6#)W6?<`hHo_Yg^{`*cRI7uZ9VcJC^y~df{rs4 zwlce~rBX}Xk5mMu{7w<6mmw9NRM2h6KF9GqPo7GnZiAo4ZJcuXogDI<3w>i1VpiQo zaF^amniK7qoq@6?KD}P#*pD(J?j$R%9c4x>MlFjuW$>Lvh>2mO4gq$n5W8wI)pYHh zhFn;`*e0)Ed=#;B?(9z27-@p(@wsPc9Ch*7L(Lq|(ok*nX&%on>aj6x6m*iTH;>vW z7RfacZw`1QIetr8yMbfo=*m(ztJbEuVqRZpW+-R3iR2rlYBl5EMZx;^wmY* zv9B)5=$B`QXn1P<^3x#(UdLh2;*|F;Y73^6mr|sKV_s4vD6H)?P6MVnZO9UvJY>lu z7^i=^&zSxFLr%A1dHFull+;;==G@y(oBMxR?f`nfA4ZV6C&VegTuCwafda-He6EE$ zBVd8sC;1}FBh^wd_@_QSBb%|$38A<5*qb~3_RM*dHZJ{k8SMJ4k+JEw8kR;fMcdmd0{x1X5I>G(?HroUDY0?` zpaBFThhQ7j@=rtlX-hbzjJ01dQRM8E1}&gZ!j2tadTE|1k7K1ru0wkelszkqy`rBE zPB3lL(M_&Ah7=weLP=Ub`Vq^i@&nl#a+zH_Y~qNGz;Gkuh~4)RM=2Y4E5hjCTQKU$HtO@)a?6Df>knZm#?(@+KVW%92?XWV6}edHUS+8l;_1yXlsX1aB6}K%r(*VW7M>=vCnuh6U{8bb zw2VDb&xCvInY$R~Jg9yEm?0?nE4oYdaO6XYERAJyVo5eamMam?cV)W0H?x>G}_uK`8P%o!67j(}V zM$RyDK3-3)6VsB2a0)V<`a10* zlc4fL4aUS1cy3H%cwe{r@5HQY)US;(gPT^OO~iXcOt>4qpIg@8EX6XMrC5gjqC2Ry z#4!`WQ`*{^!_KcqKO6Ae4p;zp5Uw1&f{b|e%m92<5zm7!_3|6?!4YxOSf92G^XW3p z=M(!zcNqLjD}y-to@_Jbk(iA((3-Wo%=v0yB9aTw$q~S7#13dzpw|(^WzwA1I?37u z`ck9hhXZLH+#6j+fG$fx7X;;_Wwib<`sOdEEty*Fkpn1+puEXS8tv<8|2Af#O{T=Q z-*GN>B(d9?&D-;ZZ6>YcB~bAtKu9k0qQ#HhO&IRR-Vjcr05*d1_hn&rYGqx2wg2;A z7c+ZWaE^iKnUuTZ<&>eb2zS_I;SRE>+|q!vSf|t-fsyiY4r@;}+BGglK$5=Um8cJNVpyQ3XQ?0Mm6_{TlUx@Szk=}`PN_D1F zMY)cvaM`>@4F}UX`sq2IOy|(*h^KRWwMvB`%6l{FIFQb97^_j$Yb(FSBTu-4qo5pL zTHL-1G^oNmf^u}J8}HE>ZWsOcPrs&&{(GjEsQ=3*;jK*e-I0yZ6?V0*XeBLn7+UcT zYTB8a)E+@?&8Q7Q`Rh{ZlZ(W0zJz4EVG`1>KsucxbUr@O)pudG%jFTqH|^=4ZKvO+ zq|ZI;eAkaW4>_`24W2%;`@4!grF|cAT-Ud>3|<|mb>kfl!20=8So@e~-uc)C-&auF zz5`IVA{{{q0FyRgA|Y-U;t-UFGB9ZaCenY6$$r$jpJ6h$8z!#+Y7*%P%JoZ0LY`QK z{U7Ejr25%Jne12h=;M(|4ELORcs$jUb$HxT(m<{fIHeQk`vzfmVG>p{s@7}ps;eGe z7xgb-=I(PhOsTyau6jh6L@ThHPSF3FUBQH(##acoy; zp(DnyHd(LIdqQ&^nl(BPCo1-XKWXQUX3yz*iaNH{J)l(TI{EXIT|St4{FY41;V#f& zS3OxN8}Bma*NKkP>AXwtqFJW`5;7M-Xc1f$@@Lp5PtYD> zYA4%i)}JA-&VmkOykm#Jxf`?DeoziU@ho}GG@I^63n+Hx62c1lDbCUwbp20f?TeQP zuqhbrq1H?lN!xHkv(X@!_Yu^2i*$@oTF-j~vo@PGO=m^?{k8R{vCEA)h^4 z*{S-n$02E>CLN;_ZSAao4ZZckod!H#T1)6zw*G`!Va*ijzRsXCAJ&yYrZ%&AaUZ7p zJJ_jEl@@7kWqO+c9C}_^W+R34^xbLde3MH#H9fuOc5=&cPG@-*M(5?Gb{;{=M6Yv5 z;r}P?yg1#?-1Ch-H@EW{hJ8;O(T|a0Zs$5nJGC*`o*sj7Q?H6>t+@Ps^y=?d8NGVv zXm3;P&t1pS0t){^(Ve+rPl*C2lVqOZDO$vT1GFT{m+AJIXZ_xiaMd)uhUS zKDoVf{nvIaP1oq47iw!DLsCx$btW%A1nRg<)akIFju#4a>WumpSzzvmOr9^gP38HI z7%y0N54%(3$H0gv(tUTWse4QH^{LU$IcVpcH~QUpOx>_2XFFfADHG$&Hl%0+(tV-nxuYNk2QFZ?6kx9B(&j7Dm()!JhPlET_3~d zNH#>8b3=ehv(rnQunFVJIa5!;x?@?wT%b^2|LigWr+WN(G(x8ZmzlO{@{ zln)==z00!@%pUaB3rnP%Tr~@R=qg)qtxH^B?9n?eP*;B{-XHeM>`M*r_xovmIS3eP zIQ?CZ1vS&S{LvJr;TO^4J_jc>rgOduXhxsxz*~tl3%z;-y^5gpT}WO_;KK`INO=n> z9QqSMIktfM%b@q8z2beJ4*3ao8z;d2+mXE(4b1&`fV+we~LEKB}i3jerz`w^H2V+tU3EOxQHn zXU;KS%@1SF=*2~*BdXqmsy#G7W@dkDD>b zq;2_pf={)G@YD3bU+~V0ILDc=d}_Na^MLcb6^k+FX4QA!p?A!u`l$}0po;r5eWHwl z#w?F`CQX0bhj&2(_NwU{uJ%(jz89@kZlOcqjkhB7h(4xfjaU2Lzk=Am4F0#=!f~PqhZ0-7i(Wm zS#qP(Rp=7sn?3%@L^#Wr?IJ5fYz}-+ZslDb`E}HXpw!k?$Xl>#+=5jjbcv-@dk$#9 zIhGHmm43h5gQy#Hb2tT~mky$r4z8#`FI{p+_g*TlQ|SYLE;cTVzS@)1TVF{zT3^Kg zo4jDLW?c!`cqR-|H7dVP2(Xi-CVQoU6~EFZ^DAjDupKtk0lC^eKEJyY{tUTR8+c<* zZ@S?sU;^5DDZTreh%Arh)yERl)4NOxcC%P#uJoXpu$5lyG!p4IwZoal^`!pW z6QGXMxO5CByFM?7Nkuc9t`g+Np1=+@*PxbtQqosa#rv8)O|!MMragoGH0B4vD_?`g zV?3pwDHiuSi92Gjv}>`0TCVs-iM$k?x^!jCZ@4>c8OfgKkRL%AU2`V#b9rYBCqB+CB+8cn8cu~<=x(dZ zb=f@RFXt)a9G^ors6Es@r`ki&vZgAn9;1(Fwu?c}eGUHcS@pD{_B);irh9#aDfYM- zZo7aRg7O|@TLdX&S>BI01m#V{wX)niZm21N?pG+!=lI;)g%al3@!Tr3Yn8U1z^Qw@ zBPh$OYtWw~@P?o)uD%6tqwt2H)K*vFZ35m9lzG+D@irN62+EDs*Whg`-Vl@-)mPzd z8r~3;YpdOOtHK+C;;9~ow|RI&P>QR^;%yP$5R~!N%m)x}tMGO~^$4V`#T$Y$s+vxn zJ%~31^ckH_SdTXZ^civCM!X>?1FMs@ZQ;vAtPd9Qu0n8z1DxU5;Rk03;D^Yvc#q>o z{}mW; zL2dl1+@X#EgFAYw?|1)YeMBv7%nL2ah5GXb6%y^;z)H}1taZ}1wook67Q${_h~!f= zl2_>7O!@`yC~}6S=Da@m6&$tB6PN{>_V7)hjh7#9JcECK;xF}73ea}6^mN>GPg&M% z{;6aru`t>CPgY)Ng1k$YSD%UhJ(V;vxfE7Vsm3a*$CNgm(o&ETDb7}f`ZgHpDjr7O zrak@#jZ~`HKZ8mnLvdj6Glqe)DWPMaK0}7K+z@QqQ~KkkJ!MUmv+?978^4B;?MCgX z^hT=PTIvsvH|=??u^&qP0oyOdI<5~@X;}ZMYRK##0E_FwMrjpuYfVjn{{VyEL z9;$5G(>QQlrBO=5^npj3_B1v20n7)oUn~7<>9E;9{0{Zg9UX+Bxjvy~W>9bqcQx(F z_S<}PzXzRcCtQ=EC}>6!KG_<@c)-4Dh|4=Vh&V{yM3?oL!yy#_@sJQ<|5>`xI_J3w|U~2!;`^s z?;+eo$tf*AQ0D}Pvp57uv)rw8H-OC>i@1UJp~28e^5}L)cs#H>5FL>84tPJbF7Cb; zdh=rS&KuPihkSYa0lNA|b9M}?F=#@nrx3H<(Y>CD$gv=1Ma+*QeJN#mO4DO-!zW~x zky2+#DKVwoWJ#&66IgAfsI5Xz(W%%A+{^TwnQ)6NDQ36@mXvA}Mg#Pe<6HAXMjNs$ z@yE9Yf&wIfnx0ZVKc%%@#}>MQ$}iO4xjyW(Y21PvZ?ygn<9^RrFpA$mFos_*c6gY7yEq8qDOjC~OdXD2;TTJmKdOT5~dcImG@yY~CO30Kl zMo%H^63{}8J{xXI%ikQgr1jU+2+MPHETfiO$&*^Y5T?*OO|^fdr-i>|+$hLN5<1bX zci*+7l$fagXG=8nH7p);z z5&uIyK68A}vZR>D_tkpJ@vWQ`14jvxuLWumz!^jcEJv!hF#;4CA2ZG{84llII?wtHO zav&&UZi#}Eho(7sUnppi6^Fjj`k(my0_SAtZN$q5ZX=Egvyrkdg#RY_vR5yo$|Rf4 z%Mm?=1212=7`sqAUlB1HG9=V5^?cM*7YLivBj{(h5eGx>2Q@S0;$wOlbp++>Q2ly} z0H|HJ5!8D`pQ+U|H+w8CSg4l>uvQl%H?{f)x6#<~N->P!nVY?qGSl@klvi*S>hL{! ziU|0v4E_~pb<5^@OAQz5`NoO?25nSe4Tg~8Q zi;1@Q&Ul-qC-Iy|?gR%QDCfm-Y;= zhP_6;X-AZ8wk?(Q&1J7IWjG)Bvd;re~%KM8A{WcqP$Z0?e8{m6;Gklpi-1)9)LrhPCA1~4olvgv# zc@dAGY_r6ZO~wuF0eUd=pO=OQ__%v^K+y^;ogtBs)r;w2`$;$jVH2r_-~u`tie@ zy`_F(qZ4S{Y7T)c$8&GS`Ve;OIQD!7ayI#@Qr`ZD0)p@_TXY8Oh43#>?`b95hzsQq zl&fw|!XNXepm!Z&5R}V-HO|M|T(ClOJf}o$ZWqPuvhl8DEv?LKu+ofJ15e{M6I<(B z={`f;A}X}U7*oo5HrP2v!VWTwpnrIl2fyuS;ZA2_DE|P|A$oic{t@rtC@ACR zcznYVS2)yzn;&8485;Bz%5-OibExQBjhG=ri+smm-4cePM^Oqv88#>C%ST#Y#7#vU zg5sDX%4L91B42SecHYNw%I`T2<@RKY^4j}3IM9OLzIOv)G{1YLaLjk zy8GiCBI5R^|L6244!yDu{jL~Fzw$5|aoT=@YF8!ui6)z1&xQ_sToQhw$xq5-bG5w; z-{&6kwf#zX$~gN-J|MJ)ZVNSZoJb{uWMOFwmdtjCiYiNHH-v1n6Oq;JC*ZM}QugaU zy&O9;N#%MjLAigeS;~29##^{bWduIVsDrrWPL67UP zBVn>QFs#XQQ()N~Yj8AIQby!=ynyxQ*ks4=1+)Jkn z-02LL4?DJt*zR*QLL5figWkxSi@ptF?rpF$@^zIuBfQP#hgX;k z|2O0`%?{(Z^TBCbkP|^Ul+O7o%Nb%h_os7?;D#XQ>&S_qyjkU!8z07=BIoyEEzULI z_xFyy_$B>qkx73eJaN_r<>G6p*ArFvQVzS(%r3MA?YGIQxlqUst3r_E>5E?^rF}IbigWwjV<0$@qJ*19dM^ z;EpOO$V1OeDIF)&|H%{G%M3u7B9tj&Wo|?ncn~nz_16>H(?L@?I&{Ed@`M$lk5E9b~Jz z-%E36GDx$}O+pf~RcOL!1zpPT)pqwP+|csiBm#73?af@`V(#2@iSxO$O(g`}vZU5|7B?uJ!^!0#M>()4r(JGk&7eM_ znx{WUe6yFMIrMsMRCEqOUme4!Xhu7l@2wnPxXd0&?5tU2m%4h;a>1*ZyHsi^-@xxO zSmP7yXMq}i`0FHts-8P?8GU6S-__*FatW^0zJxT~^?)ba6)j_TwpEqRR%_V$4dG(g zn^j!|-%?=ocXXpajgD-Q^m3iEJBP9{y$jgyV%Q(s83*>q+T>oa$BK#d^@HCKX7My; zrB!j@TMB%s?pmMIevtq<#ahiQ1JoUG#B2YF~-K6MH>LOV-H&b)ZR8}JF> z0TDqtryGPH0zzh8PONRa#}Wq*=mwcMBc=TDl)Hy|$ltAdJ;dcIo-dp_tA|oJ8O8Sm zA1&wmq)R?#YGJV87PRm}v=Bjgab_kBdurk7VD#3;8%|B^0o!kDqx;l|9!m92VXcKD zEG_&9GnN-EL{P5$-YwMV|Ix{-dcdu>7WGD#Kb`#VTKMae2A2j4R-=Wh&_V>|4R2;2 zF6;r%)Aga&!qq3Q?V;p<+QQi`q!YK$P|D3GY1HB*IQ(S| zYVRqC!Yd{h9yWACY#hHif(Tzn7xYf@xiZI-kKZUYUd;~=S;|kIuugM+#B+H$P66=_ z7H?f?z%`nCutwknf9?hsXhHHY1WUl*e8-SpOfZ|wp8%2IH~38lMWH_ zIQfTomwlQRU#Hi1CrZK>48BDiJV?k&na$RWhMkf0Fs2OLI z9J;HsS4hyF)>s!tISm#>z>YJ3J(nx=7Q4t?VYyUHNmR8ebxJB5&t?bbsS}w@h0_zkq$<@D*Q2@%tmxY))mja`Qu- zZv&c9rbM26Kh8AWf7IlW_wEdWLaReB{8dW42`Py0DQdNsvD#;Ut$oEnaBi2V1r4aD z!BWpQR*y#>IFLio%Ad>1U!HFFz=1ZT@qB+LonvT2JKOH>Lho%%mrW#~2PCwzeOOs% zx@;nWFNY?yvL{gX1S@-28h>@ZH*C3!3&^fB7;80;AGeMBIi-3AG!Hx@C9IUM_QleppO$+f4+g-2ujWjP+VQFFx}sLcT2`yF5S|}2H%c)5R~}zw2crPG~+AH zLYPv@ztUG1?EEFOr(yjGpGN!+hNcEBFGTj4d%j8rx#_f9oSaT{N<w%#A#_gUTQ4ncqVDvo^Mm9L27Roevl=Fm5H&}!z5^IGKXNU6*(CmrodV^NWDzTbiY3w3)?x2JJ+XeV0R zFufrp;s3Pj$lFM>vCt~v+;Z{@ht6;nCr_^-dwbVgxRd`^s(*O2#Oy;ZmEbH@IYAQT z+Zd))>tf#uU|O7l9l2ZWUtD{-+FLBOpE(6~*m9zn=F_dU4egGh-3L<2SU~xxJhKhE zPYdN%3zQG9#NLD%O4`0^?U#9=-Mn-)-Q43*O^k@*W)$Z zyZ4J9b^Fu(vUQr;FaB7QC?WeF`)UEcS)7Jh+ zOYJj2vFEStrC*|G_uiCpE1;a+4a%3-oUZquus|sQl$9nZz0>a*(C?Wv{Tylf#jnle zi5;hfU1fni9rU{_O}}cLerNic(9>_8#9nQ;+M7>X`)Et;FHVNcG_{ONpU=sm@f-mC zHo;~JDED=Pa^q>C9KFiS1NQ*R+t-+SsYkwk3AB4D&DYDW7v)-=uODIDGTUU^V|)!O z8Mh^+EHlNE94Fs8n_=r_vfL7bQEa@^X(ZNKKWb}EDc7R4{TK&|a@W9s={$-Pt*B48 zLg1)eUv87nSNXKB8hvrWNxDNuz0u`EMw`s?$t$on*2{C4Bbrfqc=gRF?Kp`O29a`T z3Fou-99A3lgF%x6jp|o2+ABOV*Tf;n(oxK}2P-rw&P;=8f4NDm@YhBz1m&+4`i#V6 zv}#i+M=FA{){<(b3F$tR7yCg$_kdA?-PaZ*yUAu~Kv6CvkybcFh*ocwvhdVjaQoD_ zflhUnh(?Bpn_$m~LUR*k8ud|}{D7A?ATMen3*UVe$7{DmW{R*~O;2J@p&h@u<9U~j z?HTj1=0GpZ)~q$rGP3FT@eP|KS>|vf(%FJLM0?6ncx+<-=V;n{q$&o#EUgr~}<2|Lkag?m^s*Qy-@l>|0Dj5b=mGnz~&BV1t-v)MWjlQ4JXP?W1*)k+R@u)1D-5NmtXNfEI;r@igj*6lhpZ zISO4_xqGU5-pZB}H1YSANw7VaX>FbmP|rN7vM!I!;U3w6nfT2&NMG?gh7NBC{iB+< z(|2JSI=)E7s~cJ?L^==lCr+^QSf5ZV-H6lBItB5#Z-1&P6*%nZ-sWk9H^2-J$wtCy z{xxQaQ8P)!FqLh_@Z{yV!>NpFZD{`@mBfj>rprn5oPHU;1Dh^y)Gb1CHkUQDu0dW{ z%E5d7Cep4v*U?^CeZ+%a@}d{Y(UVl4r_2vKS3}3q)av%5se16rFT3p6bu+Al4Tq1W zY*pqQPj=CYa5`+AKznKWd!X(Q;*Z&2VZ^ zzB>c~`-+;a(3-!ZD~$f9zAQ%nw-!)4GV!C*TI;N(FX$1P8J{z|tdttmwVF|R7pRP& zJYK#!B+5U;$WJLbUE0&oF7q6q?K!J{0JJ7nza6_Db?k3C1}U+moL2wG6aMM`%45Ou z+4S~7f_@W;XlWd}eFAwCkcT*b!t%B!$O~u40~`hA`f`0Wz`g<02WNLRXh}dj1DfcC z$a~=f1Z_fjG8nIPgBw#y6!kE_kAb$TYZ=@SgZokantjnJhBh%y*z`rXYe)vZyxX| zt;gZz3U2Mf>TNI1O49fy+C;H4N+(7z=J9>T-O?7!D_D;t)c%1BA;zG#c;m1j(=i= zj~5#{KE)fIe3K5#sbsp0oN73nNG+PasFF^}iL!@l>-aF$j8Yve_fhO>1|iwQks!t* zo!N>-^2GPy!?3#)`>L=L#3TVHYp_CENNwfwjt-8(J|i%XVspNJVjN%ki-Q_Al%oHf z`r8Qs>tq(pxvZCZ#^D5BbLDdHH`e$f$Fo{*xy(xH+gNLtYJiPfcQN9{a zQZS`F^Vy^jzF_LN`FK~kuO5`%@Y%7TC|}ERKK9v8J+(-+>3>FJ;X0Oj-)C)`Y4^Kf zbF{R?>tyMxK1%@iO_=+k%K%Q=XNXTJ3-M;ZvIuf=+ZP>+jx=y%M~?8)wRr``Hrw!mi-`eJJ^xqv1<& zzg2Q`xb;hXmnAOMZ)*tAJy$8^niTMc&z3ADFcZF8U~ciJpBnA##51*X!W{IxshtNA zPwo8lQ*%3S1db$Kir9BcXpb_3v!Ugo9J~bHLOGfxX%(HG-Jv@n%?bO@r`mi^TA`YM z=clHeOpk(H2$VsU-hr|K ze6aq05bN&;(a&iZ`M#7g3}x#$+~1V;K%#vTN4mZRmipeb)TgzjN^iT0!!%ZADj*>! z+tZL9My>KEDx^D2kly>mgd?!zuy<$Bi*#?(`?sa5GzT4W2`5E$+t#YyC+68y;T}bBXG!ulhEq-xwEK=rsMCHw3`#b&5z%ww~H(Dl<{et z>4ql*zs`bXtmKuZlI$h{?DWMW7qVFLg0Xqk(;XU>%y5inVf^5houHNsitP0?dFcOc z5A<-Z*^^b3jZ@dr3&Dn3hw+D?d|rlSuSB-ulych<#`hSBbw|{gyN-~bJt)fy&Ie$!A9u`%!jxX z9T@cII5`rbxwA>yAc1S~g@}Gx{avfQ)Q(mObjjU5nEmH@+zs!?`>zMH|GX+iwebQ=mi+E~3+$R3pTz+XV!g@{YZg=FJa zZN!btL#7jB$dDRr4VzxCX=_;O6Y}5^Ka-nIDrwQI_I1T2JcYzMO9y}hDp#5D| zMqEedR(6+?=MQPFKm0ff4Z<3CE52NKQhz3ALf_@D1e~c zRcg>_El2u56zikm;JzQEJm6;R!KK1JJO1C8QvGpLiZ`{0rA$jTK#!q313y-^>lQrQ z)6XTuR|qME1Lb<_E0Wvralt+0cE=beP7&a4^G4i1z7;z2RB*vmrZdyn8iF-%=1xED zHEKJ~%BLEKIP*R(SPv~*El)g1|p|7NTS6p5I zUl1-KhD$Jw3%kE$6i)O+(7F7$Mh1s9Dfvs!jyblb6u8V1d8b+&@$ zL4kVzSxD3bEHph+yVOK2`nC$bJ@4GdFpMz_FToyIKCq4f!?T=47%jUaYfu;L7oTE9 ziXC9`cwH{q5WkGYFZ}d6J$^omuVL}Ge0sAUe>01p4b12(>_$Jo2-*_19>n#;8{c8>pUA$cX(cbFc4m9(a3oW?m3_0ZW$pT_?^w*sk_xfK6R#J@pTI1 z6&OZ&CR~1BV9@q2nC}gar*q0}L7M&Tj!T?T%*}m--JrMK8O2Vs;F#mwEe&@xJ0o_r`Z-Lm+DaHOF`7f-yO=$sO{j9?rk9`u_Fe>4xq=hk>3+9 zhZ!$l#dvw8^H=C`IkJWE+a-`$wTU~!L+;o z&ksqXAs~}JN|N=(T*y;9ov&B<*|%*JZx!4)08MY)q`oNbQpGkg4`r_3@$`F z5tJ2E;5&+E1ZC-zlrp5t6)6GDXCL)Os&S(O?>aUe_V$FP*`}2Lg9Wr6`hq{=gx|aq zYcKMtA!@1eF{+;zdgDDhdjuT-BY9>R@{if4Vb9Ou?Vl8+l&a(k=*TFUv|~$Xncx`6ceh{IU@|M4A#kmw1a2i`z24^h{^pKXFAX`B`)p z20ib^t(-{v4EXc~KA(Mgtgbj6Q#3so!Pin;oyd*TQP96^vzqo4HBqTBbcy7`0C-0` zH>J{nZqkTFMRxn&Ycn8);iIL-E=kAkfPc$8ltoZ}F`2$8ZfCoLUw%q3v2H|K-9!6un;Q1m zC#yC6Y(|%))>3}hBiADbg7VO0%GDZq4LbtpH+_v{+?~=B{%=K;$Teb_-0)B~LNZt! zQt6oOqP9FUnQZ7e*rRgeOaxCuHvZ^54wKa~`7PObC%A^?ji6kJ$^k)t_ zSP-X(3!P)cAoRjK=+pvqSrJnCMzkd!*@D%00<)SZ-^AYMpx+Xa!FZ>$2Jy%oSb!7Q z-6RibQNDrNAIX7K!nnuz>A@|Nelw_L&2I#FU^hR6uYx>u6klzyfqvwN^UW2oR69m7 zYc}QaLl@+@LlQmnt}Kk01?_8oLuc8xq8|~ILns0NX~YT}tSRqY@omsvzk>9P8`@*w zoR?7FOW+)=|4~lB3FtoXbBvbac>~U^17Z|85R_kCF$vhH>HZmb-Y|(_^aj!ql&4ww z-KCVvk26fx+8+T-+I7upH^aRDiYQJ7g-v})_jc1cIyURE`%DG&MGU<(Kv={mo(GEG z!l=uOZLCjn7|k8nL-sq!XZ#rWlf4V#fpq%aY1qeWzo{iDM7EoJk+@Wm63hal%DC)L$Oj;$ocjso zFzwK@eHGZ$LAL`;7Mz$w`;Y<14(*JYAC^e+N^O*i>*%|P&glZ|gC+78;G8cWdJA79 zR&6~53H$$(L^->ms1iFU*tPr$yOv+20)RYCv04Kf4u8dVEsY#kD75;bT}#dWpzc~` z<{N{Wtow$PLvZcJUS`RxpvjJ5-bXax^h0^go?}3ueMb#0?K>LzKRcvJ_1)=ROS4r& zZAa#wr%^g~s3&OV`hS1ON~s-(R34#weRHrkSPVbALVTBo)~9~hm)y9kigpS-xXG`- z(~W%{|Ksr4!@l$7T))|D)Cc)G+$+k_o{l>dEv0j^$6#Z!H{#YZ+(ahI4V(>U;OD@! z>0F2TW*vEMq>8)enNvwzv+NK&1C@Rp;ic}stKT}3y46YcsoM`Fuv^tLvZ1hnnZU*%W-FBRu2ZdIFBH?vMkDMa?B_RE`k7WozNT$K zy62I&bvd|oIi87IW5CDlOIFybe32Td3BDn<(l-lhBhlJwoN}y2Ty9-Wq*nS|=jzua zMIu|J_NDFR#a(oAtja&1XqpU)m7uCOzNNl<`HF-zO_ea=K810#N$SZt7V)>K##6kcPzLQytUg+=dM!9x>FxQa-Iurck+i| z6JC!z>(|k|9(Lo5V8qM%b|(6ECZ4T*>xq=IzAZ!FmZ5J;(6=Rs%dIQL-R+<2JVHHL zf|H3JHU@g{&ClcC)|-do->oCGvCY@YTL`rShD%ECl91KT%Di=jY3@Q;eQRP*zPe zbgOG13q0~(r0iX1c<$fg?(Vt&;Z?AqDMu#4C!!5L5p6i{42UPzjrYONsI+xP8*Wsy-+2JeXMR;D6epYj+w#s-U2>Xv(>!22B>uG3B-rVt8 z-E@B{?!@r!ZS6g08fpu_t>-+0#`}FjFXac}UUP4+X&zrJ+*_UGVH4;zHO_8E?x}4A z5$nKh`P+M|nbN)6TTYW6XpLiD(7YmUg-vo3?kU>TCdz;2i29C)a}k6V_yr;U8Fqh> z5!Z~k=8U-Yh+Cf#w-Iq0GvWe>3n0$Sd+OSXRt7Y#aGz9g=Tet~zJPn9C|}TKCq5M(<|rsrFQa<}F2t(HsDlfT< zpvQTGXk8dRou-#olhSyw%{%$a%{LW*#^AS>uakv<8V!$EBa2R8G6D>Fl$6GscwzHgrfRO>`dtlT9UD^-g zJ~Kc{GDsib&7j1)2Vw11$8!ta(EdFjr~AY42rOfdP=9OzBoS{Sdkf*sNc*V{mt;Bo zr^hPz-u1E>&(;O<*?w@2Y4Br@qO@8dDUqDf&YVk0*vYzM*Hw) zr2XapblK1N;`_j*emVvZ_mnaQw>{CFNYqdLup+=c7b&%Wx+IJ^{%g!cDx|c(DC3GG z#$yuaFH%@5f7^I8V0E2j^`A0etxBH{H(;sU{@=l(bv*g_(mI~*YtS?wx&gYG?yspy4{a-ra@wtL@|Rq-K16dQp$kNetZt>w{h5ZR4N#C(A`j-1!}(IA8Ko7TBUzC zxbwQfy+MaN<2%BgggVqUyA|#loUij^XUV{}0WIdy;x(+z75|P$Mzb~#5sO1dS*tz& zcH=x?GMI&SPx`mk?m<1ayQ4tMIT|$?7+~6AV~cju$g}7{@a}`)U3`~%T%l;#CQ`~L zDY8P4Wq?M$AC`eG>DWTt22sLo%TYzDQ~v*nb*l=)&rG6y`+@jiMP)ni-V2 z82#zYJPC@A~(`R;;igUvkeCTG{swCOit6^r&`Q1@;^U#&ItNZivKxvhHT# z{~7q-7yrq+%bgR)H`4I`syLHhTL5zlgDC=LG*S(pf#Yl?Jq4b^T~Y`(W!z1PbFpJ! zLuOBQ2W-oQfW%{OgPv@78tOb3mS)7B!}CrS%U#9e#zTth%TCn}7U|pEXNu5Nfl)br zhlq4eAzz$>-vOczzx{#PUM?1av;9g7ODF$E+5! zZvye}05)#cU@veUaw8~9U2UObA=(E^R@>m+6u@q5ESoGzw5QdyXD@q(euU>JdycW^ zHufCHvv)dfWdUFI5$N3NgcE&4I^T-DaL55I_R^DmAayAAm6NMOo2Bj2pCqyeVU5t5 zNS|6&_k50WhTmOE8Fz#%bnr7eq5l8F32o*esgzPK{Rd%B9HiONXs?5`(pY3C^w~Im zg%(;JscRWpIo@O%KQWB%|w8jk``3zHQ$luP{gnD5EB@3z6 zn*0{xDO$B!@6Azdkkkfsj(2YsHn=yRZl2L*r+lo8v^g2~3&V$r?qBm)h9j3?MXJtV zltC5V%TW|*GH3%(1aEz9R?0A}fW`$2>qwt`M zMJ`5JbxyNFCt0m&c_q+;2)6dF!j8h`N#os!kLu9C4Y0LpRI1oAb2yigsH7{u!!$pm!Jt>~mNBzY6T#?_8)XE4g1Vzh7(%Z~=rB3+#N3IZ~l0PyI z5-$MH9W8xOOFiRqKe(ItBA|0Q-CyNyQg5F0u$w2#@!J;i;x`$BkN9k1LjW@cNu@A+ zsNXB_eaj*r_RCm0_bbp%-HZKZa#RF?4j3ROs%RK z3A;PyPmdgi^b0>)yg8)|dJng`;q7(y*8jbM&|+2Hlv1;idH|^hSn7#)-8iX7=ZTCQ zN8dH)_!w_STKl`hP@4hkAW{uj@8Hcy``f!kK2OB%^GJ;zjN>XV?6E2=BhM~N`Ijx_ zUu3Wh*v})?!2IWUGtxG_>-<(&4_RQ{Z-Ld20ju5u>oyClns~mur7R;|5jLMT3`*fz;a~3%CW#Y`Hq=}U%kV9E39^uF#7ugycvD@?mNUAMxXo* zsYZYO$pS0-PD3}od&QFfx0d`{SltG!AW{uHp2nMz_QX5lx3b{uuhg(!fP%_l>2r95Z8)AW$mjSJh z1=^|o=9YZD-vb%s!S}W#NcBAh?#*( zByDAEQ0TA7?~1szU2W*y>K%D>_pS??uP3rPM7o(5XLI@KKImQbz=5B8#nP-CfG)0ScR}{7YIkAwtZH{r_8d-YeFXO3ncu;r8g%g^*u7`x)T|izotSOrkk0q&7_-=W_2F&tEK7AYxP@9nhrv?%@{O7(h|t(t7%|y z$qyec(!7c)v%Js}VdIQ3eao;i(z+*?t)c0>eY%&R!zSOR?|qWJBi*Zr`}A#f#tLNi zD$?R_W8TSo(wKJ;_wL*Jn8e%P@s=JFc-zbBA8yD8#J!3f>2Za(9e6YF3G1+1z>SBo zdgb$m8M74f|J+h~lcjVEuoE)!ue0R$Tk@|)erHDhJ1qGZS@KsSe-QqS8{L z{B7*XuzA*?$rR*B%P_QOBHoNN*V`spiqs-Y-G!FA&$PS^ep}ORa9_X%cj)vwsG;E* zI_Uqubinc7O9!O3#G#MUodX(OdeZ-lky-@(FBmC={ujn7))<9BHVVTQjgN=MN19z2 z(oemkicZG`@kZYbAzkhR_=iqCtl47x%iV%I*>1WeKZaUbr}=7;Vw{vRxVshD5wf$stQ zEpXTOG29R(N486^X^-sFdj7kt%6c0Sn3XW|{P(M(dT^oNvMQ>_xjBgPur#wJB^_TV@6y;TaL=(`H2EOe#84MvJ4PxE!)T z_drr;D+?4Ix2?w;>HPGukhEUf&q*3&M%+J9;oa zbP^45EV@Mi_>a=pv~v|mUvLAb`1J)YB~LRvx6sxoZh2*FGc>uLAsW*BcoBN~ZV9C2 z`X<&oqiBB5{{qc-g68Rj&d4|kE!08;M!uTj{s+*`om&RNnx%HO?yDzy1JUo`L&llr zI0+88@UHn(jbZ-jr3q2x5)d<6z6Nn0Yd#wm_o!St06dcy`A+B#hsQ=nghpwM*a@kV z5H(7hhdg$AUjfUgrn5sLl4TFZ=_6?96ruXJFAxI-Sn%un07x>mPml5Z|;`a{yP)ee|yP<&oojKL3AzM_v1e>be1S-JsUBYp5=* zj}hEbJKLk`qJ0Z{0Ey-|UpS!sednC^_bgWDIs!Q&q8#v(V=oBHrm_|1H@Pyd@`N5Lc88Hu07 zDFAyg8pKVfWAqM=)%a{gmdCe{ul`RMqiBeK@G@3Xftw}wX+5}XMEataJ5eWTo5Zc} z8ByAa+|jk!qwq)P!ArqV9C09xLTUXZ9_uGGz8V&v`vmJ)Xnh5!5AnPg6RvKN_Tv6C zEt*&!viLOU-aQ=A*tGQPNNYBYmOeZpy?;dh-6PUZAErCDH6EkY@CW3GPCtUQrUh!> zH;qWQj>!M(5$WZJBV%HPrr0_(L$um{c9?qn^avOh9>xhvSUtqvyTi0ctS7JnUYQ>F zHDM1Fa}HVDgPo>yf6El%{QG+BnAKJewTR;wL>!;2xeY6aw_)XwB9AqnZ)Wh(`}Fwr zb^k;4Kh(qja2w7%)mD#YUZl;mNL@;xvbzDRkP3EZDX2?}PgYPD`CmB4H0*`$>DF#? z9}Z9R5Im%dQ5`tus4G1+m9BtbEDfKlXMELSe{=WqqAlmINgqTtT*^L z#|0mMd;m|}{m>WhpN?Hs?Fpdhi;?%@`!x#qDOyiQIz61e zWkk9P>FE6PUP>LobNt8=J%e*cq%)C@o})8fY6mW9Z%;RHxdYgkgZAfy+rR83g1UZ0 z8`6k6#Fx@H(`exArI$#P=?s*ELOVgB;BBDLi^cQ3#_bEBQtewqiS~s3=f#;p<$gVW zuXR5I3=MStFp3KG6M6w-FDM8Uui}nwt+Fc6=)K@3XkncApVs+is#a$wYNohyqNJ_p zeKhX2zZi|1U*T&s9sTY_Z}36j>cRVubkj&bg&H+VX;vwv1#7uPDRf%!d0y8E>ez!) zd+sOdT9>L(N5;oAudl+M=?JeI1Ijpxd`H70u>h?NB0U&R--LAZ_tFiVC#(O&4l5sD%17=fpG z2%i6m8x4nNI5+xp7#@w1dQ~|~+$b80_x^P_mgnMo^e8O*D`wnU%(%5XRerMub$&a) zAv#J>V-E5I*Rg0T1zy@!3E2InQ%+S0#mkh!V(g_|*?3^m{WXD_?o(wo0i;*>!DlOB zPh(dy@!jIWz)}S}PKqyFa&=%eO0HH*-VTX@dujs>CcwOqND-4S;cCxTF9px zRz_!E$9l2O*xXHT1nkpl>E5f#ERD`z{s`DXZr*6H)F>MPRyp* zqc0B(Pk%fjee6IzN}tET)c;Qycz)df1_s*0wT#3-IWSNj#=y_e5W9_rh=*@ce(mz+Tt?1`RwEu4N<*M01bZ z(c@_DvIyzu?>D~?;b@{m@BI4|oY4$?)i-N8=&fjhv1bK;ry-awBrCQeceJc{2vJ zCzOaDt0$0-9;@F!AE8;%;X&)p7Oe5KX!CBzm~WqV=VMMlu_%LIU)vbcNw0=iwijN1 z?d$`~ak95Af~S!7w7>Yi7E#d?_70|RChuT;OGHn`4B0WD#)#x+e6wY;p{N=yLw<~ZG+Yrn)v6Sp$r5%;hEr}Z7=(bpqQgVc3Bv*UGHl! z)xSTWdL3a?shaXg*swc5)!|3N)~Ujl@`c7jH9P4wz=FF2kJ112{q+BrU$iUOmw6d^ zva!ylre3{FYdH%LX#FBxf&3J+n6e<$cg2?k`z#gOYb1)m(V~DU79|25qBnfJeEu6J zXX5_$n{g8)?TI5?=Z5*I@A&mC z$9K>w#)r=TdHmC8n)$dtnr1pxJl^v8e?~dM4B(4wQ1!~Y z)b#erJ>6P*T)##;Nna3NuUDbZ_`jx|%ftQs43zv`{Y6_BoEsB9i1d_Z=(883mZxAt zMpOUHDC(Jpz15mkc&NNF%d%h3-HZQidfaNU@?LAU7$Y|xIJw$%z+l!NNN#LAaOVoW z-6fa~a7O(Bq2926jB%9A^LFu`{8ff6y?Tkyv>gz*hOE7I9m2tRg>pqwRHx~H-gwde zG3Let%U37J^p*Dy=2-K#^qM5&e%%Va1?%v8YzIV+{zgjbY@EI!Yq?ryjn1pf&|zIY zBsWiO-sg??Pt=i3+XtJL=T7aM%w{|y$*D|lpYL?o?sL(onrympr>Zh>;#i`sUfHV% zmUuJbzbz)_^TO{Cy!-(he)m=gZ4G|C-R|Nl?d%5jOD6bRyjkA$-gVxXvWdXN$_BUm zL1waSWO<0a|5;)>)1FcjuV*+xnPs!p1@-xsQk~7>a{JEIm}~~8&eoCGRFuceC@~Ku zv?o5Xi0wn9$qgv+W~QZ7Z?lSS-$|4(33{834c73$(Te)LrF!KO$!1Fx$R9Anw%T>F zDg*tnsr?Ww$!b6Jtb9a2bbe9Jvj4`p#ky9^W+vMjmjUy`fQUdE?ML8KG}+Bgcnd-6 z`0qYHx1`Cc8Ya8=ZSqgjJ`>J=p z_j<_E6%84_rhU7l7@N^Wk(G^j*U+H%t+H0S%zT+Rj_DOWdbv{VWeJ;x5jx+i9(d?h z-t$T3!GJaz{LpCpDS>CAI)XiFuhK!;R#5h7jG)%1(~I5clUD9TLS*FI67~WY)Th^? z`a~s95rwPRI8{R>voOnU#CSgJ)t63`Mftt7Y&MTI6dcLi;4SnuSszIl$4=Mil}FNa zwqK^4s!8|V={bXvWoc*8a&MY8?`<5~dgZD|upb-qe-)`q zou9KmmT0I2K9*0CKg`?`Fk;r$qhEQL>0IBGge{;>jhbhb+Azx(`W!YRTAJkJ%`M?s zUaRJ(`JSle*XB6ozt^=KW3*Nvo@B5!hoMRsHrou};7QtS+vt46YIMR$k`ar$h_7M&FeQtxtYfO7JTpi)4UE2&1-1+oFP1~&yI?W?&G5#_)aWn z)NpJl{{w3NIpB1MGQWwncz+Rkteq!Ee91D@6PmFxBWCPv7o5kN)VH<~c?C}lYXHTU zux5YbE2cgB&>QgkQc=DU_{wH&UP}GW+Z*_MAe&v!HmGxc0J;8}c?&D`uFOxBwb^<% z`l3BuK5CB2>3gGQdC|Ad@~WY7f?AGdL|@d5FuUe45p%*|`>o4(SeH+;h32}xbZ_R{ znUh$3{__04d-r+Y@~+vpoXf?mUWu7*3(xZB)mgsW*HCagGox_5wcM4&|3X~vzfq!@ zF3QBwM$YxlfX1F?HB{%JHQesHVd<-8PZge^V44KcKGM93ja#0USH^6>vywHyN!n( z-sgdZ2CGh=3+R2`c(&0il$NkUZ-l~iwng9sqOZoI&AU#|KzE1rtrWe|>*2Vgrs<4i z<#VzI^C|wvEgLa2O!ij=d+kL^tVFWI$X_CwSXVCe{(GfhL&#WYtTiYn zt1OJl|4l8Qn*~keKD~X6(_()fe%Cik6Xe;!x)v*bc`U!YzSNqTr)vycStvaF6oKK3EsTp zK~b=;6h-?&?2h&VqK0Cuo@CLJzPP)f@xbX7e5tCvl|G7@lg#2!?pTr;GVO$COW`R< zi>7_?sf`C#uO`Y_voD!z+Se?t*|&kH43zY0;fx_#3PQ51uIE8htkJ61>3i}sO7W(_ z;A7Ya_EwG=l0{c+&5y0lDU|@hszS4)M5I&0CMW`rJ&o18`7QM2tvRvP7X{C8s- zIlGi3wDNmTGWz9U>pUl`xLU$(JZ^^AnM*xsEY@OyHa!3UAh|^t!84 zgZGAXMKmf`c(l6i_B6g?*@N@0!217zT&u&mjEDJblAxU8@o@I1QffSn2d36H9_U(G z&gOe?l9m5W+%sYp%h?hSweuGbS1I`Ew6GXGr!Vwoln(F9t2rjX9}8Sw7gdv4`4MQ0 zd|?KTXPo_dk*LFLug^+1Pq$bA`F%oa@FA|jF9m8;m^slhhRX0^L?^HUh8+>5*U zLUDS%FUzabzlD2V+Bm__IrQRcZybAd4#9AdB8Kt#YEFvNR_)75&OcSdJ0^#zU~jRW zjb<5H8clQ;7>fN_rwSsJK-kCZQwk=?adJ9)t9Wd|@q9z6ei|pI6wK!z6QB0$ z9jT(({)RIhcVm3!I#r{$Kb$z1ZDUJVz<-B-j7`Ld?Db#HX0SlctZ^E|%S+7mOPz$_ zcjLJE7fX73OuW5%5xczj3~ebt-@s&BIV<;5`G%tBa_$_rkUiy}VcWq({ZIY$ zu0y6;&GvUwNIpLk$FsdPr<8bWS#k>7vtYT`qByMf#BF|C^;u=I^-sxMrJg^MECsz7 zC6XpOmR_o_;q^scPXA_^NiirkWvOB*zEolSdNGcrR>!H(C$i^#w(9vfOE{2ozf;EP zy^RMxg8lSKLq-{%mR|&{jxXjN@2F!M$L%fISOOi5ovtGMw&(q;xV=CuRa2nht@n$? z>7`X!gL6(7Y$!FU64J(K&J!-*04}Rt7-@@{GZoyjat~oqr{wY9vYIPzzRA#GQOPtJN z=dTw<7RWWoFH}ypHapKLvUPg0sd6&^m8fB830vhg14F!CUz5XVR^^m(N`rJKTdFu2 zVaZl~IcsB#za?otF!Qq%YF*FI7iAUz-}s4#DB=TfcfEbTGlQ-6m4hl8t+)6hFmLtT z!wOkEa{XmoIlBsf?@GKAHC}>xCg9GZ8J-8SjP^|`Hq89EY(>omf~jfpg(`_&Qc z36JPK>WI!|q6+agKwRRj1;lIpJS$Xkv+52W40=CWjz zzsETmy`)~3vj@@$!fE`Qqw_pOGgWDvB6y7UYmy@4kOD4A;}CLTuK6BE4>6uT{Sayz$D? zBJUy0Fq`5_o6o2}G`{6SIm?+CY>pWexhy^j@?&hd&qcSOt=qQapKAIql(3Fry^!RzwLgodfJ>@U=e?A1o z56ScR7hVw!2Jry|ItUyD{(d(CRAZ~Ar0c!{7Ca32tO zcfhMuDjO_qW=@eTZp&enAII?5h>ro5@yo}PB(6WC!t=aOr)0CnZlSz6kj1c{1={L% zXsg>>NK^H5m!lWY9y=N`Ln>&}=FMV~JneZTaem2&djC}%s+tvytAC^*y;v;0B`kN$ zVYx$A+Lc4FA?n7GZaL_&DrStr^Z0vPz^Is%i)!!mP&>w2YUw4<@1Pq#ob%gp4%U|Y z?6Ka^G&W9J-A!JWCD7W|2QGo`dVDPJ*qJQYpByXN_0CZfG@fTHrg|QS?syJ*eH>?k zo)k;fA4;QN*|8ASrGFGO23uKmzvBXj0A0TbaZ+vA%!_9bFv(Lu;;@F3wrhUt$yN;a*t=YE{C04rrTkY{`E)(|e1$tcQhkvLiv%&YQ zb*<|f{=YX)#Zd&$Cut*^Z4T z{2hVzFxmGf-v50F49R<){s*PS&gR z)J~2Y2xQsEJM-97lxuO#wEunFO!h_qcko(Y>rQ7+)f`hika7tV$lAF~HmLF@9a2t| z-w)_(ovM^8;;#~Cvi4lE@W#W!)8w47c9J}{;6&iH3VrQh)sIw3XMv=Pt3RhnI>d{{ zHKak(>Ftx9)6jmN%V>XS+-rdsRX-{R2wqfSIHDw3|CxLVB;E?INrj*b5-&y4pw?tw zP?dSjmKMl7(b544L%N5JA0s{rndhn>r^3doGOrOb?{>DMY&2xu3COw=Ex&{xp5)!Z zxt3{uj$qMhmONla8(S2+7d34ySAj7Y(dfTOGl@Aree@I+O=j+Q{ko<^A7f9=2Et1-?O@gf{C)ucL!UQzmy5n zGFj8U=isd|K_0BqWrG`1EhB3v#u|&(@|t~@aGbnm-|uuy`z|G~4_bama>_Vqv~WTM zR(VUsJl4pT=fCN@hrQ$zZG)MRMUAbnkTZN{J=I@}=Z|28jI-V5yA{tC{e8YfNE4Gj z7XRz?yL=g?NjA-cBl<kFPQCGSdO*}}gl9tD(<)lB5GK zv?zb@B%vhLbQDiIMqmHsiS*+^@Z(>m{0n|9^B&ApO!HeT-2B(NC#BKMAqicD^o!lE zb>Ez($*oURK3P!Tc%Xf4v;0d)fZ1UQ;B}I{cfHEPOT#>z>?&Op51-}jR(ZHt^)#KA zla0Qq;NhvjuvLZH=OLL@!tV6{0PAD<-cqcLE%zRuLT{bu!<~?2`QFiGE4?XcT8}F{ z&GKsSa+0kPUarBYtDU53^2EziqIh|kx2Y_N?E)|F1b?Huu?*ZYm4}nvN&Y6eggheT zQ9AE&N-5Ay>)x_-iv|9r$?{vEs>+q*W!hO{0Bu=S{*QHO_?yP_eIm~NzFv?^_{UYx z(**GOe>!Kg>EH>2s_*IX#B%tZI@z7TAie|{3zL6Df6ep6i=2VdFsf+F&F$v^Kh(?mJahnZGazY0iPn;W+9uL?O$qn> z!sGRRS`&OXz3P#g3vWRTJW^LBb+R1Qza+T|Ro@#258=Z; z8nG_m@>e5#Qq`(YDpKZor&eZr$|8BL>d7b`^6^~ACp9z5Csi<%bM7#oR0ez*xhe&C zosphId{T4S#eh3GtrO(LO0DP4l@N8%>Z!yf>z>Ps+cc*% zb?`Ywu=8K=NxhXuGm(5!i^D!C;0isdXB#~ctdI0a<)B1^ce&SqQL%z+h^kMj9^-f| zM(YQvPij-xC-v=lYaz{U^t=tPlvyd8a;j>HDH9Ux)#7w`;;bw1Yj`|AHF(ZI_KMAF zc5Em6!D^l5`z*$Q7hlMA`B62VH!xrT)=kP053O|(E_A+GBWix#L;K(i z9Kn|?z~Vz(l;#P0yI7~hvn_dB3O0tj`1%IGLYlwZfZ^9^nQ^!Zull zv$Nvm)ZjHnhjp~e4>>RR1z3f+f1}85I9YYF;B+48>}^HQ6-AeVM>HrKH|LtHsp^;> z2lf-JKT;ugtCU3TbolHBqkdXprhO731F1$@1KFCjYFJ%nJ3ZzbuO8<9uRFwyv!eDUnZ-bU|K zmQ;EZtU;{Hs&+14%Hej4=@_Fw1CoJ2gZ*#frLu=v>=!#pCw@!EGaV@RTF{YOo(y^_ zv0miNM5GQ6S{1Da#kgA2-V;rIqevcj|BcdcV_+Q4k{yB)%I@eI^ z)z`)|57XDYZNAStp0#=#?X_i>nJ;CH_BGy{&7bYoE80z>H|cnw*ba*QB|B4=h1jK; zuxNj1%wvcA#mwM{QG4;>X^YQ+NU1jOEN?;CM(S*2ZMm7Q85{l0*<{ddhn%_*;qhbXyn4kd*poyM& z-_!&n^UfIM5rziuw;QaAsQ)ye(|2VZDw3HtUXxO;_go4;(u(kWybj~>Tp4+AwGr8? zwtdiJha60Z(qV37t4dx|zjectOk<{LGdp3Sy&4`xGi)pPbE;}h6jg9Yjo6r-WvwQz zlaocW{3KR~$AJrdvPKHl8&dN3`Xb)$bl3`y+^?;%l71WMRm4&xZlXiXhy~}^nz8;%H1-yKN7StVr=M4iw|#0vye&zuF>Kl97Hgas zkC?O#))-Ml^s46L5;#GXYKY7Y{}t3&G%BUHC4mEdGjg-SOZOFNvAD$RC>~em7dTZG zq7+5$Mj~E64D)bS+YZht;r3e#qVaH-EGNiaS)nSSRf{9j&LPj%&BP5g27LR)7PK5^ zz`jNvx!=K?PMnxBSd}P&7Gkd6;tuZNPH)a+?VMY!)uh&X5cxW?&Z1Ur?fr`8X>{|7 zx-Z|riEP=9sW}D#bR{j@{NI`GS_8^QL-p8&ph6Gh!8J1U)Ys6FcS1w;jp$R;g-Uag zKDmR_ba!pJddum}!(qPlTVSTR4ih)yDM_9r%PiAwa2l0~*rOW9Ia`hfO4_;Lk1|a* z(UlP#n}yy6m%qpL{rJ*!wmyHNuNOB6o_||>sdgjvLGN8fbi?cm-Wv90V1JECA(&2Y z$p$YTJpvOGM)ZYZ7$W_aM)cc0B5&kOd5*(LpHJfa)+Y&bRQ`m?4IgL>ck33DJ<*xY zX3d|42(IiabA!cK*4NnZzYeJ+b~BfYzZPc0|2LzYdmY2LLApw`;Ri2j zuT9e@wF=3S9HXnFo$Grd?rt``Rjoy8``cUn z4O;z8xK)CbTGetRe$}dRwCyUcDHiTj)n}c01!v^yGz@;J;xCb#X}7v++i(k;>$;$K ztC@aMUNCd31HU_1ZgBfn8-7VGp}uQFf?U9K3noxx40f6P%FcEGQ(M34w6GFTP4-r< zubiXW|AbaQHqklY|0lwIh8)0c!~_M8vFq4c#)Oueaf_(U5TPOB4>NX@u|~WN zsdEyP1zgS85zh)(L-nVfh+XS5t9{aF_8{a-0vBidylT2RA+XeUQLu;mMSpKd3QP@n z1HOO~xDCE#8=J*;ZC)PW7U0}-g8==-CT4UqoWy2uo~+3TF+X{Z zp%m~5%KO=N>X%YOm6<+#QO;4{cQWq-0a|*?NPdPja^its3r>A>7Tx-ujvBDNy5rSTp-M3-$TV_1DlX z*LnXcH=~jtvaM||08C?T!A7cabI}+VtM9b;tDf|xB}I`>5Rp3 zsW`WrMtmmCo-5aOF6xf-B8lbhCK}L2o<=>w!RB^H;G&T(Y^7SOIjf|g&Yz$4;dH}Q z4t?#S@Gjon>RgDIKLUltKt81gZ|8h%W8|}2cz&EX0V5^wM(3rFNJ&y^u#&@#yp%Eu z7_sZl64hkch1SXL8#?K9PD<;1Z+437mgI`-_0pT2xxo`#H?(iq@#YS3 zNBIsLQbJ4lPQuc)uAj42LlT6>9h?~BM;u*~2_!-C@Wz23Ns#&6dG5a()UzA1hDuaJ z*6iNO;Wr;LrVD(y3$2Jd^H8US6}4Iw2cG70W>COM3clVP29v zH@Zlc+c=J+9A70xpnt(gI)Z`Q*6!Zigk4@H*Q6bk^EH8TxHoTW=lv^<0@ffXpM{&m zCWNKbf2L3HPO3ELp`(m`zA@KIEQ_dA#$=jV*pqv3b z)eJad8GUUN4i;*%QPaKp&}Ke2IoNw{>CU8ili*d$My}6v^^ng$I@%Q?+s452;E*O^ zuqwU(nb5nb7Pbs$>;FtRSv4K$*Hh!vGB&*)l6eN+=p{!T=@CZPWtAd-DrqL;5rcfF z$P$J{he&m*p-4#Qcg9aY`b;RpM>SEICzA8n@T5L`N5Rw$M%FWRQ|-pO+UIjlu?`xSU$x4)2H(U_IW31HZKeFQtyo2=*$iJ zT5b5WC-W}xI`@R~BNvNGK=9h^wcNzY9;FO0Q1=R!yMOQl(w z4axRH#UMSAb(4~Qv^xX|DjF6VrCrCqI5$S7uiz_2i?sTt_@nzmc#hK*C$bTpO zW}C&n?7VVE7i8jQVaCxtAxWMb>vSn?w*bHCXy4-GbJP2GhwOEu6<*@8erZ;W5|<+> z%sh*A)wt#9Xtlx4BbtozUy?25jCPHRWr*Gy0~qra+`FadK`}S7WSiBgv_VS+2e$&| zJZ7z4Ua7Q+e7w`Gn62fg(`L6g=LBy67rSBWl-gO64t1Dnv!oIhZ}YlPN6{Q#!Vc|_!yT77#tTb3fy|V1*^(xJp-Lm#ARx&K~wRQC`4ROlk;L=c6 z|DB;3^Qe@gb|#yvtnkIcZ*rM3-WspKUNtxR(vR*63D~U(&xhnIB4}(rw~weDQ9W79 zfn|g9@5W8 zcxv;c{shkAu)&kpv7@%Lqw^D$_gc88b`V6AmzQ5Kl6Rm9cak)%3EYvz&~o~nToW|$$w42N(|)obzT(1paym`5Y0|cvnzv*qjyj%qyLc68&~mT^h{sC4H6H7iPr&sg5&6%mTxDPEBwsWl+ofhdl3|ynFcN$`PhT#H`jXR$KH_d9tFu0VFl_blxIj1;>BYHox|?RldW|Y`}E|!0n7gBv3kjZy6uw1!Q%65r&4m- z8Y>0!{UtO z$*pr>Y@3f+;W6{BAbGUgH9NSW)rucvAeV!hra=~LK;0W!zeHQVY!zi_>nOJdle|wdSnT;eV?vl(tk9uH%cT zE!>cR|4kB==j;cPYTJ4{6LK0Vxk{Z`*+H^FUz{*UER}Zf%7V`J-Mu>~U#)0yl#15} zyIN!LyM?__eO<7pm8&&PGvlw%VRf#)srlIP(29!Y{);(pmPvZC`?JN3;LPcOpH2^$ zC8RT67MWK$U9;w|00FR$)7xG$uQf@p)#P zEK=C^>EfJq0^ZNX`{eA5@cY?W@ZnjF&KP;kO%Lqk>yA8OtJ}wSC&fs-(%ye5mkrz6 zJ3m-60Xp3ngQKo@^J6>aw+hvI@b>e(ig-xGHaCSW@LChBHrU?-RYE`tZswN4^5$_5 z%q%vQO@^h1vo20?IJIV0U}AuH?`DI=$5g9)7W;W17CUmtBL9h|{el0`nw151H)l`7 zxpH05wY#>O!8b{Q@^d^q<3^2=16f4HSyUy}qc4SCq2t=*Ben8UR! zLM<2e{*W)?3-mpPi+EFB-%3_keb}2a(h4IBj4Uy-v4;G3_Uka;BmOnc@gvB3vePrk zz6sZ}d+UYlv%(fr?W!QFzgbR{piQk~#c{B-iBH?5nUI_lTlJD>Cl5Q(2>!wKb(-Sj z49HKdFP!SDuquRu-)!gL)q;NyH;hK$8mx)Jr{8UJSc+ zCL$^Hl2Mrn9GLJ+l<#J%hwM|bO3Bu=z)wn68`)-LnGsg1qcH-{CfS{2agv{LK9?v* zFhb=utCi}|ELJM3S*%4ZT7I)KMfO5#5Mi&)aFPA2SR4wMJX47$$dCWT=K7$$qg}_3bGbL`;QOQA ztVVBA@qO|WNgLhkCO_-V5nW4F7@X?&pW}NR@(H!28pkItm5e|@SLgG#Y7m^V15Sm zju*@bO1HqvI9L@6I2%5**kYVtdrhzliKET3(%b*~EJp3EnCpgz#`J}@R->&aX@1@7 zb)1|mkCJD^ilT1X-qOztI76cFYWB&+W0j4?qh#HKIFm*&9O6XX1G)!w4`kXm$R^>Z zSi8xzo5U@>1}S-iZX>1f5B2o;sHWLjW0dA%Jz@i1&2Bu9u|mH;-Z)`@e0G9Nwdo)5 z@p?hv5)dP@(LYLt&k{B1CEZ5UGF!sh9xr>DUeIkE<*;S{D?ztWxA9$QK#GZ%Qipi<^aCJRc{VEanc2_EF7%#_(1-JzMcC8H|v=sdW?T_AcJH zxIV~n)(xXJZ0U{Rta{_&`0K1t-o1t%e}+LXjM{Jy_LRi?C6$gypB5N)C~>|Goc(Ol zXN#?}tuAMSu!+m!?5D9JPosskI(DkYD(CtszpYv)=WKuutL8a1l!sy_s5YLBg*U+p zt&?v4uvRByCZ0^16+Cw?D_CD2FI$44a|S#iZ*#g&#Mjd)xvUxMx4{}vlrtV%3#@Vz ztb6zekit5Nn%0NYLN%|Z4M@M2gxu8xqqg=#`>w$?7_3c!Q?8YAu)koiink=N6u>k} zCf&{>+Nx)$FkJ_jW&x5>vKcU0@HAc`sF*Ju-;)qKK~Nn5REc>0u%`Lg*$~YKTXi#h z%^X%5=qZFJlNiqsjcpC4*lc=>&Mf)~CW?EZwJXhv;`*)wpE?ige&Zy0PLSJ15OcB) zYe3w#THfK}+61|>#og9&L*Y6>Zn?p?F2j#q*qEhWKyMUbt<;@RBWrYQ1+0Okrdh!a zPg?LJz7xkDsO0+Mqgz7#nZd(P>hYu2xg&E%iR@#O6#OODFGgXu&R_;xf{+(HywQPQ z41@3AuAVStfwpX~Z9ADnJkJd8TW8fkC;74yAWvi1sl4OxH!S4c;O_6j=l5>w?aH5( zb&H9!WS=wHIVIgf&tIJ5tJ7`i7NHVeSbGfow0YnPp+5QCU4@CTMVi4?%<#A2EalGx zd33AB>C_nv_zGAm^e`Tyjd&8kPdGh`akg`lUeU3SuE$Mc*)_2!-Hg|X6 zl-c8*UDzko(JyfK)fM2xiG?*A!H2Gn*C~sXP~Vty+E@_R3jagh#sk1|exwx|8N`s_ z|Aqs58yXH|G-i|<4_Lk768}MdTC*{7I$1wWuuq4#tw8ST2fZ)W*BTH_;a5^|B1gl5 zd}XRF-pRN1cy&I+0&u+TGJ)S@fREW$cS-Fc>%~G0Y|`6c52XkOc*OAzyB(}`ahnVZ z;KmI8XHtbD-c^7YHqw~EH_!60?%?bHRFEZj>}e%iFKHZ-bRY8V@m%-LQ#%Fw8fY;m zV11lu71k~7|0*<#EveBd%aj_7)bg_?#Z+5elPGsTnGyV`P!~*Dc?XN1C$({Xl}UEl zonJq{p)$7mg9;H`f#;<*mop=H_^>Yc@?oyemz2&@^6$=~H^933?z$u~zfd{kJy^7Q ze#)jFWz|<&_&Y3Pq@VdFftn&Ee{g}4lcGv`HpNy?^SR}TZP9g$Nrj4-Pj#CaU%h(1 zXH&K>UUtj3RXVE2IpQ}t>K;rflPeZKUO_8sM)dEIv(q2pu@5iQcVs}2dzBbzaEl%9 zSDvNSs5kLW!=8pY%|D{Wh`EC^bkS@1p}xJyJu<=|lJ}|+dH?VodA-QX;dVRNb875D zsP8uy$jxD$pXR+gI7@eCb6|5jC#fZjh)W3d{Q@Q0v(6wcL5swpsDubCvq!)({{poW zKeb@yEfDus@wO@fKDvN6`1E7vR~DasjP$t9#|l7k@Y_9xJ*&{RBY8OFwL#;%nX}k` z1p0dSNgI9x-AOH7uqo4hgEie*hf4U$o?MNuEZGsq#(-|8e}X&w?3cmLx=>q5@KkGU z{XsXp?djjrw%L`06B-4`cMDcH2R;#G1yLRPTAJILOykp6*)Yhe~3q*OYi{u`Z7vt8BIuU%G|he#%d9J5W~8O|vDqrm0^oL!%PpkQW;l48%Sq=Y@e%#DmYvWzN@@u^F_a^ShR&{-xRws^uRt%s%9W>fdUj;m? z@Gk@3TI}WTO`#)ipL5HYT~*Vo8%oL*vrSPFfm>!dwm8l9L!1pfa;#^vTHn7_n1F3S z#`WC|oidW|JWLiyMUT(jI!)@YF=N(lJxA-c6t{Ajbgae>OFq%J^R%I6d+B#OG)|Ol2 zzNIxgwI;=&tz?q(YAbIi8Pv5pgE|vFQhkdYA}dX`l~~QrU`n+Gym6sC8}Oe@%9Jwf zUU7l4kp07FZHe`putzN2nd>9(|4chWTmbU(mpdQd?na~myoI~@i>x#9=r6AYJ-99-^8iP~D+A4gz*X=fli}2;zEh4@yD8UKjwXdxT0V0OR?P%WU*y!O z^?c~iskQXuFV%6xL3cNdTEC5exG2C9(5`DbnI{+ z!0vN`jSKaG-$YSl5`8jGu8-AH~y$f6%TwysBb1iuJ}hF-K$}Qadv#o{VD55R=BRQp)vBN}yP?_rvEaPDqHvm{Ek;b43Td zv)EUGJ;@${bqWym z0-|0OGt}$c;8CQHs%eu*)b%X*x%QW!R5f^Y2C1p=8~RS^+~9FlGq>R{)(h=p5CKX2 zUE|u2?gFJ?SK+5&IXB1y=R9x@uQh7X+M>EhUn3ry8+;uQz5e9jBUDy{t_#npuu&(= zIlv~5pS|wpn=)D#waDz6N6suRgope0H)Xcsp07|W;zt@S>+^bx|2(0V;E8G|2Tmauv~BCAa}8*w1c zB>e%{bkq???XsRqF@eGyawYfuOQ44WdMLmS#|UWm)}6=F`FD2oM5CWrP)|0i1gG{VhlrlZ(ks1g#O(){mXC5dLX{6EZ$rs2C!iIHZ zP(JSr^&M4LAc@wOn5L>8u5^|Rjj$_3(R>uA@O39enT7hE_?YH~rn{XmorMg>%ur)i zXRw*r8)Jc=eziTxoM_2oN_(j9Umw=PP8Z~ZMJ4k-^K9OJWIOzBxzc)DcBWlKG*`N9 zy}3|9EZQb7EEue}uk+?ugi~0hAt~ml``oi-d+M{u%?=hm2g`z5r>K{YRsTFRaQLy@ z>vD2tI}tZ$hhMJU?mSddk9mw3O~b{X^{2clm?eNW*n^SR+k z^yd5kwsD~{8o2%nUa-p{OL1@Xzd8Fvk->hx)_kphW+CMu?eidVj1}+lW%%zea&N{S zhaFCde3CkzM}&E(uMOqMYPYHpCZkn&pMVy2OX$3P9f^6Fyl!%i9ri-ihk~2~?gVWH zxN)x^tePx|iXPsOv93`$@y>;t$#-aQ+OS*OpTpziCIJ>c@!F*h4ks1_tK91{iaXjT zAuflaa=_gTlh#em<%=h+CmDPk9@8j|M&+FGa-)5eSe`S=i5a33`1lrsb9R&>qgQRd>6r&pKE{ zx5pYJoq{t^;GeZ)UuCE-?f3w0uOhqg=f_1krY?&~yvd34EUG`n=|5@MyOC|b7$>w+ zjs?flv1(6G3CDlR&Uq!7R#BigA752CfOA*0lLv1by^-X?)ILQfUMx>Rl+W8CYuvuv9Miy0XpCpI+79JJYr)vJ|P-m!bO0OC9eua8Neb4+;0tEjE z=C*qmb^qh#VikcZ(s(0{d{gy^!F*T8MPDTJos2= z9D65ZtIK3F-hU^=+jpnXxY20xR=aZ-p1ZJ$JqD-I80HfV2SB5j!Z|^?7@{rGkG&D{ z+LtB|E=~vKCLqRR0RlVX)c08xClN7#sQU#CmG=U6%NHkaIem*knvOC=%RQm`%EsER z{#QeV@L!b4V;1WWO|`aS<4-nMBJ#ybr(c{}jA#NMdB+MatE5?S(@!#S zPSQNa*BPaGET-D0dOmgBBAFl~2px3{@l}u5)5c{mgY~jR(VyP`Mrb17vxT8Fihn^~ zDV6?Tj@#r17uQ#En_^_dWbT^9dTS;GJGmL4W?`3i19=#+sF2--7>_)*7k6tBt>4C^ zT{*k%=SRC@{nzZ`946<D3Asj_)9p6Y3ravV6lCdNtqn1Fr=ydcg1#xfmtwM};`uhe#Wg92(7HgPy-(u zu44vLHvjN?(z7lF?yw*sF1POnO&GEWzfD{FxL-HW^WzYdK?jLdk&0;wA6 z>-$^%{4JkYtv~5}9PmvJ)`!+t zkZhWM6#UbFbKP|C(GRU(gE9w0IAcIR3sR_^+f!5MzpDS;(2V|nhSK}r3+WtVUDO{D z(lpZl`SNAd>(1)BSZVrG%PSH80~x|~@jh;sQL-W8?4P0e^5o!>kVPq*xAdtFaFIzZ zOSdd)SGa}kSUpBesY#k&_qW1h)=yJ3KMiquT`lqH2h%2Ed~~(P)pOA$=vQ}O_tfN| z7x27=K1^j}hFEW;F}QHeQLAVnpf<^<;W? zW=rl3Jo@n&*6bCmQq0w*qYUnU!bueRuG<58dr0h5s2&}EOw`#0rv~E**UjBy5M!Et z^qtW3qwj@CGj2N_lyLelJUd$N5EsKLQRl7j6uc|e+h28>l{ckkHKNp#VHmhq9kmZr<|FpX-If}>3Eb8oS`-7) zao7pwJ(pf_C&lsWypSjPpMp~Slb?q&w% zy<02SgdK&Xr<|Wj z#Z5vhX82aPz8k>9&59FoY7|drbh^>be~mWEx^>Apyqe-&W}KlN58a8PsQ(Emh9#h! zIG4A(5Wc6^ElM|Mujn>{%l3w74X3#uJJgTT-2CR=CW0uU;|a1AypD9?md>8e=Ke&E zUk6PM`YbdxuIZS8YevkZH+TcM^9>uDcL+OqrALi5#JaDlLkpW>{qJZ#mdFXvw5a7o z&etxqT2=opVycktX&5S;!WLFHT7MZ(Miyo-AC%8IL19sFqw{5p>ZbCGK2~i8e z2HUfQYuZzlj-J4RK`uVG19c8o#YnZCfKs8<@piuYcxP?9Th-H5k0{nnX(iCW%~niL z)wb0yfaL}mYf$2_W6^+hwOPT#c1!T3!&l+tg8#$byT?aWor~YkBs*ae112HD01-Bj zV2DVDfEZK6+=xkp5JN#s z5s_OdrIf>=91c=se&4nC%;W-EPtW^#-#>nDaQx2RdtILOtY_WV+T-{7E%r~7LKoE+ z?aJ|cXJo$L>kmC|p`}ksO$a{MBO|pZ))f?)w5&d)DdIw*|LIUkT9-||;P+0u{LJI| z^uF>JH{dJid3LPPkEs9iFyZNFzjx|S50n3h3o5fJ+hGsm`MCO1!$jw#HT%m>r->zh zRDMsrT}INfz{q;uo_nD%Y2D>Gd&qQ~Kf8h-$WI9VWkmhDztbPv6Cy}!2?}O(cqr+i z)cPXc=ZFLrq)`&*KJVv|_-v2N<4$C9E@q7Ly7l=mWa4)waI5wODoHM}uaKvFGL1cq zL1>`aT{14o{Zm%8k8w`s@w&xNy&1&+n?oDG%0S)XU_N1KKelHcf122yUhHRt?$55p zEUtq2grz-1?{pDQ7cHJQF6`NcogY{lNdJeap`(-YEbN}2o9`bKKw2NkI8$s3l;tDr z@4acwy~QKv2kf%B${N+z>wZlFm zq%UjMO{`frEmr${KHyX)XEvU<&9hi}Zv}UjU1whrGBz!KnDveidaC+ID8Ex0XP!#K z61Ux+vE1s+cyrgXUoZE|zqod*u6!-OZktz69dM=ajh^b1QajrO`f-{q_IMuspQh7! zZslt3_1NPNyDL)l_u>2ohmG-V813`kZQvG;d$~;w1>ls$&9ISrFyCvIa7TJTo>QUEdN;uF+!#Cfm`mS9@&)bpS z&|&v3rH-akXogX=CBL2CwVgwz~#ob%@A%N8!D&CgXSxUlv) zc9p7GgHQd`xIvxFa-Zyb4O_O3Dt+&6Hk50-WT?V zF;>tFo!pwQLioeCx9F`ktn~Y-`@8h>rAI%X_h^^VKcXb{30m|8ybq!j`KZdwhFuv2Ivv<+oku@xF^J)k0{Yy%x7G`!C+LKa9O@?_;s= zFMils7BQ6h372%4r$*tS)_Wp)8aX|Rbk&Fa#P(xH2>aGG!#V>Z%ut7YYwAI@uebSZ zBhk=AsK+*f^u_t=Bm=Ych9r0L)N0f!S=_HnRlVK*)Lbg3^cS8RJCf5$DQb21+$l*XKlj~lhfzRyfxCDXz$Ny*9H)|h9eHkuZo^!&xO zK*Rb!yLQ314?*=#&3P!bn{5^CLhr~f`7!Ku=A5yyi)}`Lgk;h(-1+R`lwev!el;x5 z8n5ck-;SMk%1>fAE4Yf*&|<#_3+ek($xEt-!8=emFm7k;!f%K(mldO{*(f!a)sEhF zld*r-ee&_Y2`9d2TdeJEe=yD*+(&HTktHv!dL#C=&_%Itt9@_YJ#U|DY8Iu59*1|= zo3|YbkIzi?PxWusnz?FebDk1dY9_CsRy-3M!j=~-PycR z)h{BBy`aivali+x^{Jg({t3gLG5ngkI;Fq ztFCmJVsB51GT0^aO=okLzh+}!z5Q~WnF8fr^(Hcr;ogv2ZPH%7MJY+z1qFp#O7A*e z!|26Yy6IR43DMmr_kL}*Sa;EiJw1N)*l#LApZTUD7FUlvdM~}VVVq}Dvt0@F7`xe$ zjxTNEivP2&g5*K@$43%tyV&Drt{;2rxv}lo5tWPUb^*+E+0`&}*FDL2V^!TIyXht8YDFXS+*>szC0>CPM8 zyzw)W!scyDwdOUuR4s4-C&#a>ve`GS>%}-Mi0|t3UMXX=ta%Ma-~OA=(m)p6Q=FUG`l{We2eU8x3R;yqT*SBvX?%8ul=c_y3_~rZNVXteX}xB zdo%ZAqegpxxkvr@AKdRgG$r*VYi6kNn_iq5=)|t7e{A~4+C1akLaftjq4qBJx>QSk zj`5bFf%e{dN$RnrE1TZst*bkE5BU2}SVrgZ#-g21Uf9C9WZcuMc_Nf|ABo>T3oSXR zbj@wS!L-^b^$!?fwBH#vd&Wa=#64(FSZ>X;F(>x+(a`vC$G5zbJp7rLjW_KzH72n> z?f1-scHTTgEi~e|)N3W}kBg|cD7b%lZDM=%8-C0E*b)B|dw1Tf-JSDI>KDDN%*{Vb zc%hCmd##<7HzNdfTI!53C%rb+;%v>QC;vjqGUn}i z%kg}d_(etzUNLeo*j7S5YBn{i-A=cboKZ8}C4YS@q|C2Gy|Ml9Ti;HM)qg=b3@Gtu zhk9THD}Je}*TKn;vY92rg1Saz9*;^2B1LL0(wtM=_@{f>53F3)^NXt5Veee5`{c1b zYF;s9~`Ol5C(OUAJOJ>$m>Hk?H)O@{}f5o4)W6jNb zwQs-5GfsSt=o{~y)2E-dU+s4v#(tINxp&id(|(oT>N{g#bXD zZ~JCbGJ9&;`&K1*CqMO0AoZ|?J+@iLud&vBjkWWFcuPo!NUP2|Frxu^UENW8rY`aP zQeyz$uJG+jW7xb2@tcCeLaBLd?voGyXWTPZ$Az`LhmN%;?+!ET5#1O^n(sXDuG7XG z|BBUA<|2G6wTF+~xKga%Yot~z!#Dwabp-38#$Etb-u`a9*Fv2VGT$_F?+=_aqu27< z>eoJHZf7X-@2l55#4idwWdAk&jLOujyy?I{BKD1Fy>+kXpR^-AXa?yisgY(zmxxug z?rNrPs2Xc8UB&6IzR#+DQIJ#3wpru*KKI+P3s2KudN!0Z3x4|b!hoC19W<{Fs`RM+ zGt-vE#2jgu6a$J9zp2X;2A z{?)tmFEeN>Z?l?xqbBZPe{iYI@0$^Re(bQyZU0Qh zS{t(*HhNt51^Y#ANS#5S#eH(^muf%hgA(f5>1^(G@yh#$rDvDU%5|T7$^D0=ecwpV zDQ$7?)9WUNk(yes{S6_tUat+;?aU^tb>rv1Rz1e%Gb&2=LK@9pfZ1<-Ukhc$T-ox) zwK+@s&YQ55-=wrWK_5iTy*Ilo3Fv~w3%j9v3?@tZDHu> zAbO|u4a4Y_rmJ4*BLVbE1L>8HO~v=zcJxML=#Bo2-sqJc55>lRR4WnlJT8vCl)!W5r#pk<8I{VXwfM z;(45W>|%}JI*jWJTwmupgzF%#uW;?=nzl6LfTxG7WVIUeY4juYj*Mb+7x{%;>&$6< zXBOW$!@-*aFB?1iRbBE=qb|v!7VO1txGwZnRqyiivAvGhqe(SGn95GOOmce8>6lYJ zS;ai+jycuKSj|+Y$1IHVAGD{j=Rx%{pBw9^`;{coDzr0tni+(f7Gh)GxRY%-Az#9U z>UUb_vrm=xq|}T1WWni#Q*XKT(}c~bcKviO_J1j@zh(3->H^Z(c^tq#!C?DO?e7)G z9G@-MUh3T9eO{`zNIb0SPqpt{&1?iP7iy(H=WqP-y9#U2Ty=88yI-X7hW#R44gYQ5 z*H*tPEbSjl*_Xe|Hhd7f6>ixf^*skXxy@gm+!ki7-xg}?HsHyf^$$IpFn-)6O$ZmsE0Y_p6}-<8YXY?B1_JfAwS_3uV3eptO1 zUcEitNM+J zzxFUj87+Q)Lj8`#$rit3ah#chjuDoSQ!ReS!u-XHlbzo;e#zo96Y8yshaNWHn&_8ztMhB# zh#LHB+sME23!aSa_+^3a)7{0laL!pjUVrU_9L}|ie^5{Ler@TQPrGjUG-E)7pFJtH zqrFSEwf$h@4VS+Z^^1wgp5IF>NL9a>*!+8mN=kp;h1sxkaJ|(}{Z5v}PmR8BukXls z*8Ek-JMt5(f9lbZ_iP3`KQVuG+8V&X$nTHouVj`87o)|1agu zEcF|U@AJ+`Ys78p&6W}V{3=^;{_An->XjbE(C}fFl3dCCah!ktmBL2;-xoK(iyK+^ z7V|k5^2g-fXTOsFPL?Ie#=Dv=)?T)bydP&#(m#qqv7-xxoJ8__AZf~I-ZRFVFwL0X z&6E6J$1yA7mX6RhN_&)kt=Q-h8DOmriz-_t%HjmDZG&7qgrx(N2-VirO-#US3h7J6(kpPM7IJ zHv_=UT{W)i8c0~`n_gH^?j(SU@|%QLT~kq6?W&sWs%jZ-MWw4;SC4e_S)yKBKC!&w zv2wk#qDlqLFRzbMk4G6^gGb^X0b6>}iB37zqn+w4MA6lJF`kU~rgsTJilRTX7z zgF#^9w#RA9kUY0sRaF&LJqh=LiVA1J6qoucRz9gd-Ar;+>XTfPDypWaXU^J5lcsQ8 zUF|4#aa~?fu3&Hg9Hs))U3IR)TBT~ero^Qe)s`0;YP(O#9xM-+SE29X^3tg;r=IS4 zNa701Dyogt8_MY4=Gq%}mCNB&u8OKECh64`g%e#h_#IVSSm<&&T}nx5t{PWi4Pun3 zr%t_KiXL6f{d7lZnR3vaHso+&8itgG6_X}8%9VdJ4UbhB#-i6$cw&)MNBJE!dX=lD zwyGSH@kCNHrP4*1#&T@dUa{BLQ$Ec*c*nD*Y{j0 zptiiU&|%~i!jr7lX)aaTVTZBnXSJnODAsGtrA{+red(xnl{*o-xU_}{RoOB8jWG0~ zoH|RZ9R)^SJnShCEghp`PXwmT+rmT|!#Ru2XA7SleD?4;z{gCd$}4iQ0-wdD)uh*m z?~&#l^xoI)bE@2tuMws<2Yq)v9&$Za>2=&P zBIU6;Khly@xiQLBW0ViBltO&Dr!Ghb|L>>Fz{NKsUT#bpt(R8ogvEEf)f)G`;UuS} z>Z5aVOusxKK2@=)3~u{KVts$qY)(g^{#a>EiC$Xnbk!NrdBQhhGvf{R$*Y`mucf?R zJ#yQpMMG*c&4yNyL6v*6?o(-Qj*YsM6|VJ=)pNm$&AnUaq2557f8PO7okkAa0qd z>8BSvD8SK0{m@yF%8uwFm2sZ3&>VhEMTK7GsG{^6x+`qXznYRN8np_Vsv_#Nni697 zRzBpjsxiz;(=e#&AC@&j_~@>>#zD*CD5SVm8!ek@Q*H11a)CP9c`&~;&(suJ;_WPKFoLVyIBAWp_LT>utf7rI+Z|6C@!q?!*bPCefZ??8PBJT&s07O`IvDjZ8XR4EkEjxkwVpnGy^5&hVG2=<0ecTWo1eqJMI!W%;yxJ^L(!G@uPDc!bj&5%cm0`e(gjCc|O#$x^qgo zV^V3MUZpxa_j}WzQr_x`GEYMvt?ss{Cz|_l_>EIKsH!N%S2hiwqq4G$t_+=wxY9|L zWiI+pHLjb~pehohzn7>a%N?0{m&#T8iWOCbF1@xA12X!z=@^4vT}c9j_I%$&832)mX`SfYj^lkd- zdW=e8U!`Ajz@t0LRPH#~gn7gvHtn+e|fd$RMkzw79m)rP>JNesmpmLs=RBXKd!_ z*#1=Yf`3|2T0@!l35DY_?`#8HoL``FkOY8 z810OXZr@UW-x)t+S~G4lFK?C#(pd4Bt4c{?j0nu^@8=n4qRG|+Bqq72LyQKckQ9)m z=6nXa#;vz{DpI3sm1vhSw?bQ7rpCDCw2fuVbHwyD+IGfdwKY9Gb)r$nm=Edgs1c5- zMeaN3+f?GI<$ZEhjQ~A!LZ*v;s$7;6zM6HYauwB9yL@syrV6%c;4X(6-ymCo!&#(c zRK6Sq)R-<~Uc*)7s4Zir%T>x$lzLuTKG{(QClxUn11ahzD{55YaU!mfIoTugMm@|f zCmEJKGUeg)QHmpmjWDi9<>F>oPVUIOks{u{lc5{#ALL#E{#t(4c8~Kkr{WZ|nYM*B!nmjL7eKro!6n(OoRx&FaC^08>Ie zBlc=c%b0?5GV|#D>ZwawIxelGSN1*6jVS@uar;g;Y8K%8o~xMvo?G~gp!2ATuy@uo z&gq&Q#|4ih*lhF}6*zV8eKl$7x$l`QRkNkKgCgBiJxd*xGcqN4)G*p!HU2PXF4Zv2 z=y{mqS#ylT41;HY>nbd%(C^WQ>T%Ums^bc&s;c9PD@!ZlTy?5mpq%mi-hc6&;(iks zDwuoXoXp@Eg`4uG!csNojj<`W_qKFPy*p@9FcV0+Q41Q<%m=KDoOEg$e~hi2ww(=CiixW1ihf4Dk;_jbYa+~liT zWRO63jErvwSHR42=0a#?r>fMYdFFX}X0$mewbgna&8|KyH+N*NckWB|vij*{xMu>< z7$SCibkKlFd1}6f|I}=pL(i%$FJ{

zS$7V_aA{ZBSpY@=X0I1^-)r!8i5QCf1v| zxw*%ixomUKBe*GddTG_9$FO^Sw5v)@S0@IU)1#v*ifY>2H@dIsrFE2t9J9BQ802xC zQsJm_VqcS)lu}`MZvSsZ6vJYTk#ElM;p8VHKI1CQY^3xwx{`)*QV|&KWg^*RIx%PU zJpIPz_S}=@o<37^_)K>azPFF6%xE-CsH$JQ0pdc>EN8h$C6W7PpMpw8b%toAk=s8da=~wlR@`M`1;kD)ip& zA#(%e#kBi4HTqQa6qp?lH6M_OEfXOF8@epjto+dbG`h9XOrH#AJY{qx`{@~_#mpS5 zu?HTT-Sks>q=#YFZKi}&MjqMBYb6=I9FLneR)y?pEl+=}0!#2Xp>8+&wq;5OUOi^0 z;q@qETplyXu8+u=+V`f<;=kwF0MD~vZ=fo3a*X(msd%LmQyen^t(=usy2?~`;nFkI z^2MK)l9{LH+~^>j1UybpM|~PSpJPyc)U)sV_^HJ6M>S>CYpPCD^_i;6R6VBZFtvWi za8i`qx9|z!qyGMQSvzHC^)WbE9fWG9UT8ifj(Q zSapJnO1-OE-|fciuo~kRPu%E_7CME(6jgyPXduq;DJ}Atv8$%Uu0O69SGg+nj7N-- z&Eq z9w+DJ4I7b@M^&E~WHgxOLaJ{`!RNY;a!T)>hC~(SI#nQls9&S`!Aq+E7_$6O|E;~+ z>+I>~zyFC0ZNu;cVb_C$f5=?3Zz}nJ{smj{Bvc>31`z%d&8|t>!y`ugSkE2yK<22t zVY&Lq2Yb>hQ~8>kJfiJno}^RjnydY)!EP}s@2UEh#e)aM(9lQM^;KD;{xc?FunV6p zH}_gS)2pfqG3QHtZYU+j+-mcqoB3B|q1xyon%!bE6kuu&nnnGe~Hesx?;KP~uKBX87p0=Fl^C6;7zX-sr!KjS|&4OFVf z&>pjN!S)l0^h+HT_^Sj@^z`DR|!>{ik)s+bCIGY zXU5aW=ipWYK2_}~ZJB*Nqb6k9{ytTs6qZf&eXTaXsQ}XO;VV^$iOMJ=rbV}XW~SM+ zQePcGc~Z)>7yVw9hj~@Aq zdyE3O=j2ixk4@C?h#GX?eR{8Py-0?dfs3iGEbTk4S15B9yQ<>cj$4n*`hS=iLRQLX{)`QB z3_DciYwY1s6Ug3hOu3cDScWA>lnZ4e?CQ8-TEv{xFsxS8`j*khq6@EAmKuA&YAcNi z0`J7IQJ)*(qsumFG6gXLsII70%YX=Kx;0mRud9uS{AK%gdiiFv$VrbMijJ|JL+#j5 zbG$co+hWBB-86?sei|D&{#96Bcdf%Qdq4c&(+?tO&X{;ETi-LUTHo_|S6@uO9tSPm zdA_%bW57+^sX)BXY6jwy!f1u zAF4;^bTM^DO?AT>i>LgUejhOwGkkuHLaWBB&D{XiHkJ&UHvkOApxe3|Fl1*BR_r>;L%La}AsZ!EGExby;7 z&0{XMo7#<)ufYR*iZ^dm7N|cXFI(u-cdv~@GtWKtV)*psk$L3_!|TqtX=bO|0?PbE z%Lz1dr<1xrs`X@w>irsZoF~7UYZdh9snVLKTG}j~q|r9e32HG>*Bp;WWCcSi6?Y36 zjj!H&E!E+5=4Z~w^H zq^znKfM1+N#eZf3vVk zE>r&2_ssZ=F#Zi`y=gUN@MRxe+!pFK#;B@=H~JuC^$i;L%|nHxAAz9Xr894OiYkj8x=Il(vd=B)^`ys>8q@C5af{P`D?x@#DuC}1 z%DZB(@{*m=)fH9!`?DQNy#3pj&(+d~dV1||tWkJAjpumpzvnX_dau=Ybzfbt!>#wT zLixKa62YgQ&uI_$wzyW$)JNS@&zH9N%;tOlZ$%bx+CqJJmx0Xkd~7YQ)pvDYJsH8d=|V+420 zE9=Ho)H+Lx(p|%fA8;h6jxv@qMZeR2SMNJAnGX&i1m(||GS-Ap+etgCSS%LJkN@%K z-3Mc=73f}R|9`g904JYX|I__-4oa$jt?%FbD&MkA`@VmNtT+B^?fx@s^S}44KkQ%2 z5Dr?K|LwH?uzz0vqLxwrul}odKjCh0Kk1(C{*`-%`ziNK_pjZv+`n zu6v$)zWW*X0{64-h3@Cvi`>t<7rS3@zv%v*dx`t^?xpUR+{@g{-7DNLyH~njaj$a! z!M)o3s(X$5HFu-?b@y8L8}4=PH{I*qe{^qfZ*(`gH@P>v-*RtpzwO@Ye#gDd{jPhv z`#tv#_xtXh?ho9%+#kAkyFYU8aewUI>;A;O&;6-;zxz+_1Mbh<2i>2$54pc^A9jD~ zKH~n$eboK6`OSlKoBN#m@9y*N|8QS$|EK$+`ycL0 z?*DRMcK^5giu)V)Rrf#L*WBN_)tFbUAo&?JNdRk2?WkASzsL$xh_sgua;t<&n1oA5 ziICf*lXMoFbdj#oO(NxX=`KB}_j*b%=`B$bEq&w;iIKh%D|bpi>csvMCw3Vi@iI^b z$=xzo?vVt!m$jH5$q>0uhRXetBn~N%LUD?VA6qS!5-F7lGEvHez1~tGyswt^n`)_% zTA9pjL!C^Ksq(0dlb^_V`KjdpTmFA8kIOG)n*37gal}}`!d@B3pPjWy$lY{cP9Fi~OuzV>; zVE-y-*uKtqLR!nKQ=k@J%iIfe=b?-kKHrnz2wx+EW79L~|MkuNfAt@kFe3hT z`!^YnHH;ndPW3Op8hKl->JP=zR(aY&UsFg+c$4<6ys-LFtdS-#yyIBJ88fn;ZJZaZt`<&QvX@fraZ|GcTudru>!eei`DA}$ z32TvROLr9~*3`-SXEky zNGe#mjm&p@L~!*C|ISpxQWT=;SCW zick@HrA#sQw0flX9@68ur8hMs#f;V1Gmx%S=c;3`qEZsmGaM5vtg5K4zRME=>*f>N z=!8qPO{Q7fnboZ?J>hUr%Fvgn{oNefoMO%-D$N*^iDpLJ>?xwK3#+PvX->70QCd-0 zV~zq%p%`S;G0&q!Z%%~oY?dKyCF>%-V-+4>nPp|JVrH7FU9O4j*>E`Tswg)Oj}T5< zSyZyCC8erjBC|D>Y!6Tqf2`eU4qK=xOpi%nEXoOL_1S{=2<{Dwp=n;DH=bZglpLSJjahhe zmU7CZf(lMsV7w}2N=cpr!bTEY)y82_wQFB8v8tNVqEfaBRB@(wGBSDxspfQ7>y!;Q zb}Gjk(Kqk8#*_JApw8(ERa(85Xvb9}!x6(b;cDv9R8$TV^A&}hlQyQNtBhdTd&FWE zVIXzts7zMLs%i^4;p=LlAg>sn*u2KcL{tejD#BJ#meLk@ zs(N*HhiF?pp5m!#%cl5@kG4*26jM9QNarM_{(>odBresDS%0u&$)}4pu z`@VpR*grut(ArnB+2*sE@WzK~-oMgQ0w_f0!5;4+DRLQIdGnJU!5ru}lz?t9GH)xL zZ5CivMxDHBLRwtc^5z8!y;^ltP_^-phc(Bn=G=9Y-RIVn=U6CDO)@lMJ4Ofv#H;V4hW5llZ>M5 zcv>V?sj!A#=5naFgrH;9R~j=cJ9CWD$g^F-FmxJyrGN85wToTnB^AWnqCv}4y(-l& zXz9gMwPnVQ^wg?prPUMlpVd}ygqEhxsL)in_$p?VG z{PMyYnG4$_q8-=?vK9|mNwuwwn>0tY9;A~%LqeE`h zpSCV<$6O0@_I$?top51F2P^T1KCLbHf68x$g}E2rqrzv%dDaU8jc|Bw_-z@UA=?q$ zUASbtU-Nrq({X1dLFcaWbMbsn=@3eowxxY|tyomCsnby|&80*mz{*{bl zaJ!b$bHI=>g76}rZnr$}x6L7nk=Abvm^v^z=4px;$LNd~8JYULlC7e2p+xEH6 zy=^?N&+z+|@~ZTCiZ8Yx3-dh6jfR_$r~Q}vJ*A%Od^GZ7 z1<%8|LE61Jj2wmzjI_t#rYYDW{f)efY@POu=CrHu@^Et|#3I}Hp4K76lx2)ZGVbYo z>TnbF6ASZ9H`ljv^CE7x;0E)$X`U!I+i1*Svd2_&At39uYagAH&# zTnJaf)o?T13irbO@B};!FT<;vv^=8w*ai5#DWGp$^xz|C-%X0fdhi*2=L>5?s$F5{pR5`XVJvGgv06JRAI-rjrQ0eD!mM3J7Tc$f&2 zU?W7ns2y;(W{K_~mgq>>9}b3Np;NQ;i4jYmK`;rX!7^9_NpGL+n#E3d_Mvb*EP^W` z^4Sl=6Pjf}cd-oU1qp8e&*S@uCB8qL4@qDAW=J>#HL(n|LgE`}*DQDM6U*I4;RSd} zv!o3YOIixdf;pPykrJ^yG8s;T(>2SO9I=cU56O=)W#oe&`9OGK=qU_6g*Cugko1P_ zhgZlKA%E7ub&z<%uaG~x$e)9nC8D2LB1rdbR`MePVi&h9g?r#W@?$Rfu>_ui=g9|t zSh&j=h`TPh>pcd&BTw(?a5mfy$-mwg;Z^ibI-}4-6ncp&faHJFR(Kv>M*p4Ae-uPN z(c2*LM4v>0|(Gk8G5Qh zKcr_&D8ydIjDQw)^Z~O#7@;l3O0yCYY33Xxt!u2t+6UZF9vysB*8RI?jybTk=~)mKNR`zpDuF$OihxO(aTz?NecO% zLcTvh)<0m?B!fCLgE})4`7)93LGtTC@+;^ldOSfsG294_(BziOoT9pl9;47>40@|U zZ*`hf6{eT(hWtJv)>mqkYk?w<}`!MM~Pr5IX zZmx%Neg6*9y^D08Al;`)cM<8HK)TaOcNXbhM!Hv$UgCL>c!K+r&UiQ+=0NN)7&{Cm zoM6JaWen*b2OHoFNWR}fzK5*B&emXO)3LLe=%)$&Y{AYZV`o#bGweMSdk@_Pcc3@i zhvB{>dhdwd!-Bc)z%_DrMDBF*H=X>AxPU${Aun=1fSk9LVULw?4O|Pa!t2;2@^nI; zPF#25y7L0`zX)!ITj4o)K@*#m-dhMHeKyi(BOh$!gN=0BNT+Qb+<<+PPTCvkLVk52 zzq*`(=QQaW${XAx;C#4{{M|+V?$M+N>FPncdQzTxQl5I8=K3u89Zr6Cf_ZQZoDJtv zE+Q!xI$Q)_#2!{-4~^JE0`@QjazC2;eKhRC3Z1Y7?t=%g6FYV?2vUyjpd8(?7OsZ} z;30SsUe+Y06C;bRFb4L6Suh)pgZZ!uPKGn#Z0s%xyGz3^PGA?OHOb7A zcm=yef3fH4!80bB%k z!ri#f$GsEIfU~&2f%}`ezQFY*>>qu^S>a;1g!;lpeGv)qXUCtN@?ocZ*cZaZloRwZ z0DTNV?g7Xh-(4iW7ewxOMj6GTsUqo=!%!Bf;vy{Mna#Dod39Ik?XKHlaYDsSR4aOU>RHrS3vT4B>6mY3)}{G!@ckjJOWR{v+xqUqDcFb3ek5C`py{*$3pBT2fG3cggZF4M9=(o7uj5l-I;0$rryP%823JDD8BaLlk#{`uK4lYm zDiV_3r%3Nlk^85}{nHLG9Cn4>VILR^hr$#%9u`3I>!;+`PhW&f;d_k-xA7`+rXz!`8G+yRfk zV-WYnxGy1`62d7#t`g)bMUGPBC|SVuBDfW9hiBk9o+EE5@|G@wFKRNOm&k-Z5PuW! zH?dq~VwEOkgPEa8gveWlypvAwrmoYPl&6W5XJ}G^zAMmorIpjL^W4f$0QsLApz{ObBPO;%u!E3n6!{@jm;3mr{kTSdHR!Kq1KbSBpPEw; zyQ;yiYRRWs@~M{e)snti!mA~`$q^!xZ7>O@!7*?g#QkL4Po4^=!R>ITCXbbIGP4q{ zgBvud>mX7WuE~@ve(x(Au7s;KnM%G-CEp)MPmiOgU!a#?pqF2y!z@TRzaX4n%z|?? zAqtsh)ug^&q<*?4PvHLv{5QmkH1vn)xdA;l;I9FH4X5B4NPaYsAG}jv8un}QB>tbo z|MY3h2sLQ(t4iKAUZcqj(lvv0{c1heOq40t1vZeU^BiT>_VBvS>4thFiH_ z&2^(D3yXMT;{;d-AJ^nL!g-Ex7NMU-=x0#@EQ0glLP$7^R5;g!eMFi(p8$uzJU9kU zhEpMS^87YUUchc%z;0eZt{0H&g`qG7lKvM+{|j^Ae0UCC(2Uuk7nS?9T(5`w-~mm3 zhkgDI`~2Myn54jGerUoxB_g zbx1zFOg^p7=B+Nda0A>7kHJ%#ygF9o)$wo_+@r}F^t%TAt|7cNgtz7@yspV>RU)rV zhDYHEO&Uo@Bk5R=y{^Yz*E?Ye#O~H(cYn+m`J+>lt-CqdvlpI$=QMc-ckkft-6JCJ z9)pDcF5z#VEV7+^+R=%((sYG`V1g#^4;Ohq2Tp+Hn!J)E@=6*ce_tVgUnzlQ5dFS_ zeqWgj7m&Uv(iemL*uxs^Vf{?xnvGn6$Q2CH+aJ-}JHg1)0g~_Uknh{k+jjJ}o&4EO z{_Gf!90kO`fcO^?KJvbTysOsmtGa6;>03qm{(!yw0ee}E{Hu|FHTl1q{9nBoE{HxmEGdN>`v2$w?S-iX{y#M4APO_YNs%0W{Ntb;q? zE_e){(qxleWYZux9Ol4$=!EEh6Z+qD1zyu+a|Ca;vO)4`Gx@X`eQZV_n~`%fa&E?s zHe*L`ksoi7A8!qYiJELV!ffm@P2LU>c{>#5z&uz6D&oC*Wy_em+7!A7_Ys zJRBCm37UK|SLBlgn*51;_!IeXU>0u$oC8VU0n+!`Op(uK!&PvNCSRNu`Qof5htc0* z^mljz+zd&_Vbbv>@qbDDUmk#mH2ErD!j~>(zh0OYjL-BIKM#nW%k2RC51g!4AxygdXaVVCG}D|*~o1}m{Y zqh7EN%!Q+20W88!xc-dm&#K^L>|h#pK>hLM61WV#pyv(fc_aQe;(sIlHsWvNUbvrh zCX&vfa3x$#I*4x*@oicRmq5zfCd%99!N{KoSHM-s-yiwok$XIH7a%X;zDu|t#Us~X zm;%$0i~FB(|4Z`eOO;OtkmnG*46h;w_cwBX<5hSaIf{^D0^AP|68})*Pl4sIiuePG zKNu43X2RXP4<0}sZ2Gq4(7wza4uX0*T6&Yh$bJd6Zvq1CcB*?yG!6QxDs-IH~07U;j~jM z91X`p^s*Pd>?Pm#lJ5u7kv|Jgh11YO1bVQ+K`?=IRgtdAa3x%gUXsvD8q9}IO^%R` zBc$U9c76mq|EfFs>IKQqugK32(BB8>?*QpIKspYipTp?qgDu?O2Cq@y3iU2}*o7W; zU4hp~R}AUu2h(5%tbuhr59WCXmYjHLEP=a-G|8aA#!~<2984?+~3Xp z-P7Sr(vQCPqVK(=e=q6(gmivFIzL12pP~0Jb4Xtv>A;@8!k%_t#NTC2_MqoI=y}g2 zcm?~JjQvc7O>hf51#Iuih_7UDb z!uzy=dUysr4bN(_|A5H;L$ptGXrJa2ubp@YA?GpVJO#1y&n{`~sORmX8Z3cjuo14) z#weM^$h=Y{DPm9wgj@gnN*1KPTMJ3HNjK^EvwY z963Kn&O_+w5PCX<9uJ|%L+Ixa`uPI=e1U!rM`1rP&SZ!Me=Vc+y@V6@-=qyHFk1>@_d5w{Pi{Agn%Z08!Pg+@tRz=vV$Q+lWW9#jd)LD zhbOValgND%xld)YGM=l+U;2prB^GXh+xXchuFu43mJaL1(t-6p+i0=aSchTW)ncoI zv*3Klx{Zx>o7<<0<@TAHr5o#5-EuXHeqAg*{WMF@NT|c5a3!1xS!e250|}?+e7F#1 zz~PW}rk<=v^(5Y&n+c~%Ec#@wFL8ZEv-A?N^kTiNAM0!VvNcQpP_gu9UFm+-@9t+E zDuwG5u2W{ix$poyq*+qAPF2_CT(iD(KjGd_xc9GtYc)$oh*&aMZ_11nOD5}GnOh<2 zeVNDLDb11cZr&vamK;j=k z{38~?MWmwx=?K>>d90u15#PgpVtF`_b-p2D2~UFQFbksh@Tr>RHvHfAxMsN6Zz zHR-smp6l^kPvCko*VDN!;JRG1MCOYn(h2uL?8T-tPaXwhVSnb~W-$*phk3XC%)1?A zJ%D;EgnBD%HuL&(nZMe={MBYnW)z^+qH0M&o9< z6`qF|=_ke0PZ|s80rNKW`7?|j#6(P zrQZCS^n6WvzTN}(X>yEo9wVK{Lq(29z^m{&={`)lkCN{Bq4orQ}XBM2JS+cK+CHp%5DQBIr`_6mee*Bl=e;V$w=V;0c>ueU* z*(`mq|2}oF9%A2Nl((?a5IYaU&cn9BT@ZP~P7xk*cU}xvK+3mm2H_HKH0g+@K8lWo z@q|Y??n625LwW0yf%_8NQ!n(P9QRoRud!||_-CEl)|LGN)Km5xxE^kSJK!G8G9X?o z0}|kTxDcX`0qA4ES$Ki{1H>DT{^D0c!W~F>10(T282{8CcFME804{@#@E|;j|E~C_ z9v(0n@;ts5{<)5y14&=}2Dp{*gz!RO6zoU&r{25!1Uv_?XqJ0OM*`_c&|wtp0I7F+ z>=sK8;z^suI{bXiGHi@khKBy5lUb77M6U%VwqY=bAqK{_DjbW*MkY*WmMl7Q) zX_h-1#BwKk%_AT4(0@Me@+ogJR+z|!1+WM%gDc@dNPL6O@;NV-!58^lMxG?(NrUJ& zVK}UUUeBo8*3-Lc2|4#-|?t)r0WpD{x#=LYL^U{>-;yG|WTnbmfb#Mdo&d6Vi{G|O1)IN z7w#wiLByY+$(%%yIYZ%8h#sCso~M!L>A7%$CUdEO=2HL6BVF@I*SxiGJ-jY5-%peI zonTk!ge8!Aaz6FseA@r{mo#~XdhZ$Py=TV50yqsez&&suB>ZOxpQK6|`k1oq%nvcFF63;~9nMl4&Bwr>X_eA8L zxD{@PC*WyKCY=|VbdmY@9OmEin181pte_sOBtI(2k4o~ZlKh&Ojr&~W+>4z1@iz{C z`4G7#Ay>H#|B(Y9z(tuYodMG$+b#9k`r!1-_$TmwmeCF%cJu*lCkz+SKq zOoJJ4EF2FjVGW!G=RoZ3XV}}%n&1|Q{69nfIp}2$dYMB!bBO2ZuH;vDxCL$_-zJc6 z<>XTe`IHVD;0$;Mo+H2TKOg_|55uF_19tq(aEQG=gT21IkoJEu#7sc;(oj??rz&N40*=G`><9mKz#_}>d>yxR$Xg!3}ttXqs+OOQiHjwo0L zE8%%~k$w%~{E=`r1k#=c6aF&7Uy1)!_+LZ1DOW2gS1*%qFOzRCABIP{-=F)mPaSDr zI_`%@;2F&laaAl4*XieNqo22f`_!QwFLFJcYucsTPC?wUzs17-7EAOH+PNf1dk}qy z_AHxrEtluCOJV1^pT+%bxC`#3K8JVifjqyH=XcX?5B8(|*esTNwo+%)jt-v1HSO#@ zN2s57Qa|sey`p`#*U(O-(N58h4pv=^hfKbrfa>Bo*f09V4*unD3!za8w)+66DcE9|$5WWSY8 z|16gNS$~)Shp-RA#y*Hhm`*X_ECguqIDI~y2J6X0M3B3Aa^iUyjD?ACC?uXh;t4E(MUeCdlK#M1a1LAom%(*# z1KbIB!^7|>JP$9j2iA{0uz|1>>RVmC9fo7r4b9w#{MemgIlN%Zpndpko4R_dTv<{ zn;?3*1-*pSFy5+zOW_Jgx$1?B5#4{;hmC3(jF57y9Ui zKDy0?3*a`m10sJnV>{~p|4(B;5PPwMX(Rd28Y5FSOAM4^7KZY-o)FRczY9W zZ^Dhz*)J9a2{(#xqt3&N>>IPQZ)^}mzG&o&#(y;aqtSOX`i{QF{xM-68Ts3X{OyC> zeUQ7)Vz>nEf_va~_K*3ok1PiEgM@bn;oY$SE@Hn}J^RI`!>w>T^&R=!m;CLU0f$5K ztuOi3m-P1~{e7w5`cl8e_M@J&!#p?!PJrcbA3Ok&?@r{qa|ld=#Cs?4-buW767QYs zVH3Oxud|=*arTqd!!?llu-{I&8f? z9)#S3(qIN$1Yd;v;XzIAwu#&w2~%J?TmqLt^5t&wWw6kmX__Q-6-nq0vtTy+#&)uA zY&YW{^!p?9`y=e>ta4_`45(_pOAhA?dh} zbPSDUUs->MeGJ7uhR%WWA^wNr|Ne0Hn{|S@a5N;G`w8d%EpQw2BBUdUbR<>68n_rP zfrsHy_M`P!d;338=`8kho_r_&nAepDvdNEJ^t~E=H=-xxdJwttaG!_!oN4UiYv7vj^9bLc z^!k(DpjEWvYv6f!5&hx*7TmYLK)ZVhJ(8{tq$_MJdK`})!_g!87=io|$lo~~J!YXt z+;zjx;kG4d`(*_2dES$wTOo z^u&>#0ocm`>}B8@^tTq`Zy^2#AxjPU&2BWui=xqaf+k)P{`>IC{%LZ~f4l9lgy&Z?n-GazBXNBbG5wvXXt6quGZ!7X4AKawu0h z$d`kBIj7(mp4)jo2s&X2JO~f7UsBjFslo2B7y4e0zMGJLJM!;DUgWq3Ir4}vkNENk zH;-^fAkPTo88IFfz^QN=;U*C75aL}(yo({}%^|%H5&lDj|IiSa1j}I+oDJuaucSYS z^aoLngDJlzvw{I<33;NBCkp*Vp}%PCFB_-33DY$KwCao!H-Q%JY88^Fi8K z^w}SM#^FB>|8d9_hg|lVw41ZB&oS8NIPB4eJx0PS@EUeG9lM-Kx#sy`p8sex?a)~4 zvl07Thkb@(pAqo?RCEU+ZJuEO$NeCO@6dw>4<0;t@E}7Jxi$dD0=lv1Qfks(8dhaUFx@aLc8 z{l4dY-sgGa;qw)@IJQsCf5rS?F4?Ece9C9`>udXU)6akV{44wX>J|I;DnH}r_OJe5 z*Z=D?oVJhEwNG7d%JZf?``i4SY`4D-?XM&Lm;ZC#*8L;yA6ei+Ar@x0?3=cO(>FLjyKVO1T9-WREnLq2i`hA@ZNKc2G2DTtWQ;as)|qvV0=>M0fZu%RiETe!@DYpCR=b;WW?k5-+pss;;ZLzv}*~`>XEX z_C4D6J=*@jAJxmcBI}BN03?TYSv$~{@N%f`58awpLvB}^Cs&@O+RY# zsmUk*LVthar~HgB^XJYpedj#WeV*Vcp5-~u*VOZO^~~RJ-PihfRUfbM8-A-_*YxWK z-{HHw!CU$?q)#LKn4hpZmDQLux5vXE>CeBD)0jaTvzWtt z7^IA)jHQgFjHQgFjHQf?HKGa4XhAF5(2h=Y;1asggRU@`@Y#gVCX7#nSo6Ao63$iZ-;P1DDVVIXvh_4|>sue%!(U1~H6LBykU87{??YVj43@V-|B*z#^8gj2sFm zp^SBGU<)yJu!}wHqmBc-!y%4vj1!#UllnCvfe;tagl4p$6>Vro2Rg&xQ9rEf(EtW9 zj8UY~ha~P{4A%E(5)UzrnJ{>~j2sFmVJ!?Y;%3~N5j!JxM(m8(nJ#pr2fbmCbx(E) zVr0e0ik}rfYp$&LS@E-TSU?){Fn4wqi!fJq7kemU12K+pfOj~=7WT1@9n?|6aTxrN zKqK1Gf>yK{JL3?|UVq{STtJieCpZm*!a1%h7=LBFVBUh51>-9@tYIAml*1rzo)z=v zZ{d8*y?OWL<&Za5Ui=lY@?GdbFZ$4rZgX^C5NU|>Y8P@?ZG~%B$FYcY)FD=}1!5J) KFb{bY>;D7hF2e%= From 79d5a24af40d0292bb1cdfcdeb6eac074cd4a60c Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 4 Nov 2016 12:02:37 +0100 Subject: [PATCH 116/128] debugging --- .../multiSlsDetector/multiSlsDetector.cpp | 62 ++++++++++++++----- .../multiSlsDetector/multiSlsDetector.h | 2 +- slsDetectorSoftware/slsDetector/slsDetector.h | 2 +- .../slsDetectorAnalysis/detectorData.h | 4 +- 4 files changed, 52 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 89fbf951a..4a5e87ce3 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -2231,17 +2231,18 @@ slsDetectorDefs::ROI* multiSlsDetector::getROI(int &n){ double* multiSlsDetector::decodeData(int *datain, double *fdata) { double *dataout; + cprintf(GREEN,"numchanensl:%d\n",thisMultiDetector->numberOfChannels); + if (fdata) dataout=fdata; else dataout=new double[thisMultiDetector->numberOfChannels]; - + // int ich=0; double *detp=dataout; int *datap=datain; - for (int i=0; inumberOfDetectors; i++) { if (detectors[i]) { detectors[i]->decodeData(datap, detp); @@ -5100,8 +5101,24 @@ void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index + char hostname[100] = "tcp://"; + + char rx_hostname[100]; + strcpy(rx_hostname, detectors[ithread]->getReceiver()); + cout<<"rx_hostname:"<h_addr)); + } + strcat(hostname,":"); //server details - char hostname[100] = "tcp://127.0.0.1:"; + //char hostname[100] = "tcp://127.0.0.1:"; int portno = DEFAULT_ZMQ_PORTNO + ithread; sprintf(hostname,"%s%d",hostname,portno); @@ -5113,7 +5130,7 @@ void multiSlsDetector::startReceivingDataThread(){ zmqsocket = zmq_socket(context, ZMQ_PULL); //int hwmval = 10; //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower//should not drop last packets) - zmq_connect(zmqsocket, hostname); + cprintf(RED,"connect ret:%d\n",zmq_connect(zmqsocket, hostname)); cout << "ZMQ Client of " << ithread << " at " << hostname << endl; cprintf(BLUE,"%d Created socket\n",ithread); @@ -5124,6 +5141,7 @@ void multiSlsDetector::startReceivingDataThread(){ int expectedsize = 1024*256;/**shouldnt work for other bit modes or anythign*/ if(getDetectorsType() == EIGER){ numReadoutPerDetector = 2; + expectedsize = 1024*256; }else if(getDetectorsType() == JUNGFRAU){ jungfrau = true; expectedsize = 8192*128; @@ -5149,6 +5167,7 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); + cprintf(BLUE,"waiting to listen to header\n"); len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { cprintf(BG_RED,"Could not read header for socket %d\n",ithread); @@ -5160,7 +5179,7 @@ void multiSlsDetector::startReceivingDataThread(){ // error if you print it // cout << ithread << " header len:"<numberOfDetectors; //initializing variables - strcpy(currentFileName,""); + currentFileName=""; currentAcquisitionIndex = -1; currentFrameIndex = -1; currentSubFrameIndex = -1; @@ -5362,7 +5381,20 @@ void multiSlsDetector::readFrameFromReceiver(){ //send data to callback fdata = decodeData(multiframe); if ((fdata) && (dataReady)){ - thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentFileName,nx,ny); + //cprintf(BLUE,"progress:%d\n",getCurrentProgress()); + //cprintf(BLUE,"f:%d\n",currentFrameIndex); + //cprintf(BLUE,"progress:%d\n",getCurrentProgress()); + + // cprintf(BLUE,"filename:%s\n",currentFileName); + + //cprintf(BLUE,"progress:%d\n",getCurrentProgress()); + //cprintf(BLUE,"f:%d\n",currentFrameIndex); + currentFileName = "/external_pool/jungfrau_data/softwaretest/dhanya/run_f000000000000_0.raw"; + thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentFileName.c_str(),nx,ny); + //cprintf(BLUE,"progress:%d\n",getCurrentProgress()); + // cprintf(BLUE,"f:%d\n",currentFrameIndex); + //cprintf(BLUE,"progress:%d\n",getCurrentProgress()); + //cprintf(BLUE,"filenameeeeeeeeeee:%s\n",thisData->fileName); dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);//should be fnum and subfnum from json header delete thisData; fdata = NULL; diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 7e0a7e362..7d1204198 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -1404,7 +1404,7 @@ private: int currentAcquisitionIndex; int currentFrameIndex; int currentSubFrameIndex; - char currentFileName[MAX_STR_LENGTH]; + string currentFileName; pthread_t receivingDataThreads[MAXDET]; /** Ensures if threads created successfully */ diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index a3c6ff126..da6168ba8 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1590,7 +1590,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { * @param destroy is true to destroy all the threads * @return OK or FAIL */ - int createReceivingDataThreads(bool destroy = false){}; + int createReceivingDataThreads(bool destroy = false){return 0;}; /** Reads frames from receiver through a constant socket diff --git a/slsDetectorSoftware/slsDetectorAnalysis/detectorData.h b/slsDetectorSoftware/slsDetectorAnalysis/detectorData.h index 79c37d93b..888993fa0 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/detectorData.h +++ b/slsDetectorSoftware/slsDetectorAnalysis/detectorData.h @@ -17,7 +17,9 @@ class detectorData { \param np number of points in x coordinate defaults to the number of detector channels (1D detector) \param ny dimension in y (1D detector) */ - detectorData(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1) : values(val), errors(err), angles(ang), progressIndex(p_ind), npoints(np), npy(ny){strcpy(fileName,fname);}; + detectorData(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1) : values(val), errors(err), angles(ang), progressIndex(p_ind), npoints(np), npy(ny){ + strcpy(fileName,fname); + }; /** @short The destructor deletes also the arrays pointing to data/errors/angles if not NULL From 771e5323b420952d9427d0274052515f7c75f506 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 4 Nov 2016 12:10:36 +0100 Subject: [PATCH 117/128] added binary --- .../jungfrauDetectorServerv2.2.0 | Bin 0 -> 126244 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 new file mode 100755 index 0000000000000000000000000000000000000000..def2294855e08838b6344cab7923e2def9c229a0 GIT binary patch literal 126244 zcmd44dwf*Y)jxbD7dVql;3V7z13Fxkh@u0cOaNgLP%#1-Fd`t;2?-Y!G2ApD;v}L( zi#idi*xKirLF+?pYA1l2!&p1059O)Y4vI>xZRc=ej1^^qr~?A?`>uWF+$IUy`u_3e z^VySg_HC`b_S$Q&z4qGsEWCDl1;=q&2va$WH^Nz(T%1Mpa-6`iXHJ-aG|Sw=IalC+ zmw!E%PLw$AYJ^D$lM${RWAS^O7v0^{yYu(=Hcyef-b{qALQ|xbcv|VbqS-AuEgXd- zdw%g<_6<_vH@OJ*XSnuEj!~<`ZvPtJp9)GIo|u?MvhA^ z5v@5w{+OI)cWl{u>+Hsb+{KNeHE}^1FvvkDwe_&OrM@WN_ty(K-fRDbrJdu#*=QL@ zaOjPm)%+A!YRh3|N+hm{%31J#A$PsBz-vX|8#!C9UCm!=%eI#|sg~JVUB-Ipxh2#R z;N*=BDlD$O0dXfooHr8Yz45Tu5f|(C3H6Bp?-9lbjU`gRYeC@TzCYt^mkV)`cUr4k z0v0}3a7#^Ij)J_of%m%F)+hgg(tNeK`~j3d;4PKLHf11i@>71!HWFo{D2pI3Z?Jlc zQ8v;EavUY&$noJ;&X%7BIf2p$a(N1JkU@@zJH(bi9sgg2Ede2Kj6D$$#*{9jRt&1N zAaHUs>bgj9NWq?gFr^MJ!O!rhF(h*G zG%g@UN;&z+@MyS9%KBXnLR1vCM3MI7h1ADx=>Td#kU!Xzs3KYyIXHPICpgsnLL>U& z!dN(lGRwFK`+xePh&V)YC3*gfKE{0Z5pL;Y)Q2Fyw25PV=W1P_OmT(EC*VE68^y`T zM>!>cR z`U_9GrPHr)2qjWq#P(e{60yHP?DMa32Iq&Y zE-iNkm$U?iBIlJwti^d*0uK%z?ud#$jIt(Qs4*%-;d#?}Ty-_!>n}jQ3xqbiA#QgeC+#j2+WHvc zww{j`pD(oaH^l88f_y`Swtv4I_lMA%?gUMVxe^NN5{oh-(;$d?SUn z;fA;X;sS^pYKU`Qg8AnXq3uFLoO=|gJW6Q0$Pm|h87H+~CbW$(#GSqzB4!SAZ^82yK@b;=G9SB5sr+ZuMABT0K^1yW9{r{VGnH zewEO6nIZ1uagZzHgf^!kj&lKqOK2Nyh-;a^Ni7qEwlRjdWmj|3va5x*D-3ZJlfc81 zgtoDUxQUZFY2sv|?Mg#jwVRWw-9p<{hPde^z^_DTd%_U64RPBL=QqT)BCZv2;|y`_ zrJU4WDzuF^#JzPbC%tv8&^Eyk$4>+QO%vLt7~)Qsp+CxmwyB1=r8i&<-5|7G19_s# zv#gXn)8*wf$iQg}_dv4s@~g3&Jm{fvr<9U-FI@;Zv}O22+b%|2QG({yXHny`3rn5zQRjvy^jdh^Xw<3J!b87MOYA_29Sch_>trBM ztxs+&bf~Ejq()F*De9Y(!qKLs?nml=q@F_Rbx(|xh64xIV!VGooM=E;=`@fKmrjFr z)X~214V1XZKm)a}dZ7P_nw&Qp*6GGoLCdQ;f-*L=vAr?}L1>IYGtgU@DcDg)p9h~C z&O0#=dE%Jsc$>{$?%bQ=m#4IpUXJu$ZqU-A>WtT(!*B`!C%*xwLBMHH)xUt#8;_Se zD^WMm>>lVVG~*h3eIjyBta=w($lo6%zVwIvB4?W`gv1!;)i~)TwgP)xblG~_c@vBU zD7m2O2uemCbUTc_JIK_#{h$lFP=`)2b1!pp;6bYSe9YO<=dKKZa_e8nLC9~6ixxhM zLC+JYg+`k808RbjOb3-McMeI>@0(#!v_PS0NhFy09|d!pgaH2sH`=GSP-GnyLv zxB+c#sLFx%bROtgm#X*A!xRqc)#WJ4ew;_2M?|JGLe~!gs~&dV!N~{4#=<=Cj)k+? zFXc10EDEZp^UNcFmd-5?0Q)%Oqs}c`p`~fuf_00^FM4k@p>0i78E9M6V>+*RK}X`1 zuG{wXW4u@4xd1RN*0_awx`#kIZO!HW@a5nNbqpwyL(vjRa`Z&54&;04GJm+xz&)I; zFZe8A;N^5~d8D5DJP;9C2a zD8^UBfYSlc>_F9c(5wJ7+neHteM8U14`()$&Km*N3Werf9%bB1azW*&r%^*Bg>f)d z>tn#GyFPwEOVf4WnryD!%DI{oRVRVB#4snRrT6#=V1J_OQAmVco2kcL!J&9wa!&03 zi(wxU16WfHwB^|Y;t(&-Ux5FD%_(ql))<220(UPOBRDgh7VxwL4wA4wW`e&u$ zAD;7EziMd;EuFN|Z?`d75DF)%h~J41 zVg^bMueM0TtN(?`ew6y|Kkv6}-#~{S{Whp62Z2_osi($B z*ygB1?^S@O5adG-P=69MJN_#&o<_VE_=Qr^MwLKw9No*uX^9-+)B{h_aPF4YsU zuwS7>2(valiz7neW)X8MPr3e7vyGAYlD`i%vr9KebSneTlyG2 zie5Qd{UZ9kqIr+8AX$)GdnV^-QX<=D{Pf8{U7H50X zp!1*?OrwKjz2DHf^wIJ8{i_@iajlonxq|rFHq7q9xOmITTQlv6Do=P8q{e#m41z4) z?-9AY9Q!QM;`EmDvnd}ZyB8_B8juS?e&K%JL3Jd1t93-gS>TbjDWUMyfK^w?^F;#H zyA>r6|eAOF$?Y|I$bCzExmxXbfBHIh<4;bkZ-uZS#+R1``tsN zr`??Vel_VeZs`Ql5#$N?_i&J|lgWPl;P!k#qmg`i5mu&)-V{GHjo@MTcjjR~xME0Z z1pj7m41LGj`eUW1j_TlGl~482|FjmT^R+tCAJNkMO!~5sp3+Z9H;Ehi-MQEzITzQ1 zj&E#I^pa9M-vcbVAM3w`U09dEoV@ljg$uJV&VA6XC^f>g7N^(3^Y#^@3;%mU_Qk_? zNV<5qA9}&P7&frQ)Cq*h>sjDXLQsDNIiOOG{Jaq`+i?GIzxclv@u>*DwA#sC6MI zNBzgie@>0*EIVm`wE7@Aa<)R@Rp9x_s7-t(G$z8Q7<{cf`^7qpSoJLg3Mykb#7d6* zo-u61D18iD*XLpc#6wX?4Zj!^cLIk|H~0+m57wEq24fm=3|zQ3#f3`;(RyB)TP&%# zTS1q2+6q$TIFFVV(>V@0vCwI5@q=o9Mzu#D28S<(y&e>t1bFdoXZ$q})7;{O6m>(2 zdSGt|0q0(9ejqNjVsB#HDC$v2LQq~=N84CBab!>MC8IYuP)W;UX%VFHc1RwD{#t5* zaGf)zNVJEn>+BVKQ?-s_{tizLS2JPYG%Lj!F^RLQRuNSKHQ)e5RYm&*5 zJ08C!5h|0uOXf(i~jT66~B%?MK;+3DQ5XPtmuop>k) z?hHU;(wJ|Vsg!O-n+acCPZA6`D)vMjj@{I@1lcaZQ$5fxdLE&Xx2bhd?P{*C&Qp6u zmjo(Tf1;%s>meJTsyp>!{7q}gAbOr8=U>k|7bgo3k#6k)7kio2OyS}PleNUfhc3~% zI06~U*@%lHY-Trdv64o78Uvp`GSj#^fV>1xD}1V~a>0SXYy&WhU`!LAN{mkj6h^w> z(>t_QM^d`G7kpa8wKQ{HU)UkJIZmG5Kx;`(p4OnOb4ju%syMmf$`Hdki!ealdhb7v zasT{cTK_)25!{UyaWi`^Q*yoMzaeE_sc<;9I&>qOvJ=o{O z41geyUprEI9zEI;EOTa{{u6_ISRFu$LK66x4EBYeX-Txa+On_Z{g&1iH?)q0;wtD2 zM;GTHd>gu|c}?@~=6Lhyohx_l+F9zn-sypUHFK>GIQA2sZsBD9l1+RLB)2cz*y5I^ zFTw5uc9gGP>u*t|wSN!gp8P%1+Gm(Q(#OM?wGPM3F_p_6*)viKp*`#N%wPIQ%Ze7u zSnk=Ku?$D%e$LK6$vw+I>2C?P>;zUPXZgb&EtuoktdcI*2_KSGK5!@O4a{=0ejv@; znw^WqtsKZZF+X|&MqWr+I;yp_2u9~0H>thG$$K}&SP$Y?4r6bXdK16$%bR?RYaGlb zavmEW{uI}Y-b7rZa}4T4Dg2svK~L_cdN!5SzSJ8YJNcN zk5T0h2ar1-qi*0xqJYJk3yz^!KYD;Tigp!7%+{q4&6ZS}sH*5}%E&rs4>6rB*Ph}; zNFd_Gw+H%-G)?Ijd+fXus}v6#De_T3T{pGpbAV+EZF=C?%)4_H0HYBX1l4HV2lF z+nNU%}a~#yYM};(R=w$@^_H@*v3b);OW#Oogq? z>TN7nQx72(K`vY4KSL60cS-avVaL^Vg7-)`~L2??5egaB{yjMTm)Fr1k}Ns}Z~U4yx(;HM(5b ze1}Eae8+Lb&R^4+u2IqiQ{!`AzZmM`v4@&Ip2dFZ>eD!$U(#Zu>L_R@S#KP*lT4Cp z9Nuj3NV5How00fG^wFCQ{GUf_p1(uI1h(tdB`9Y>P)6t7{nRwPvvu&|eroNr8$SyB z9N4e996n$p1ZPgQE%Qh?BclUrHUT@+$Hk1i9P}**$$CW0fJBVpxj$API(D#qkKn5X zr;cR^lnjCDudKd6%PE-J@iB6Ie8+j1*H%BEQ-N&mYR#nio7<7wsT~#O3a_RG)v>Uf=kJqv4&Q7wU_ygNx+IOZiqg2LKPwB&h%c~nmQ&MIfnsaYIXYK&Y?MLtT#0XOMggE)vt0-mzD4@^5!%Wl}1Pk0j z(HmY7t`v*GKQ*Zt*@%5QSO0v~O%6${gFfr*HASdX_QueMwRfs}V^k-6DK89!o5Pb~ z38A+S*_$i%_UuKJHahioCG7gm;gPAgg)EI^in_N|1o{=-N&I*zYiGYyPLY-C1r5L- zJ_6gIntwX-Prs9suVL*M3>0y!(rE#G5_W7q(@XOVd3vpKOVwx(g1mpFzE||~K5?dP z+B(UV$B@E9LnukgCN)kEP=MY1$bk>Yn|B4jw@p?qhivp3cU6VNl2DGS*<1@SZu zE|HR@kpfjKp#G^tei}skP|g_)TZ~z{``2S z71isAGwQb-F+~_ffy;?f&^Wb01{6BWTH8*x7X1 z?!Y{%OXT!bQS=A!#o?N1;0s^4PP9NX^O2UtUuGW-yPiMXh&bNvM=gErjbeUYzAzZ$ z(8y({LG#nghDr-KPJZw{8l@4_D4ly3`28-dJ8GifJy&4?>V=J|uyf83a)yx8Uqh{P zq$CmH6ks^@uv;CFABD6h#L0ia|L*HpUZbzET7~X7_Cur)$5y8L=`Sp2syEp>jQC6U z)qKaWW;y_D58O2$yvE3FRsH`isd*ps^aKNm6D(Krgd<4 zbU7b%Sq8cw$VZpc`a|!VKb^Cr1tt9`i6H-lmDJnU)&6bNK$~=loqP8%>_}p_HIujI z3p)*3$!<__Hz1r^?g589aW7%G7kfiEi2~RN^1W-m?1IuX-6;JH#*URH#a~03`G2xLw-URZ#!t&yYy=_^p^WTM_7OkK< z_njRncEjis@J>4~HF?IF> zBin-@8*(h{ke*Gt+FnlTI*V|(MH22Ni^@-GaTe>WvLi55I>lk_35-ZOb?u{iO)bql zROaUSB~lUUDY|>46h{pu&e_oME?%S5SL*aHDv>Tl`lU#3M>?gRmr8X=)m)j=;?ZmP zIF-Yy<#;NUL#-p0%8^*DKyXO=)9N^!%JC^yql(v7exq9&dpAcxKE15C^)=9-0`Ca& ziDfRlM`pU5^xrq*+9~wkJ)=bVKV>}La7yxSoRYk|Bjjve*-Tn&f3)I5)U+o#zBP>6 z8c-X8{LV7!lTnV*-neMFaXiu|Af3(;+8-b1?6D-%>2wQY>i6YlTIshw;dRZv*!htA zVOxf?)}1{k*IDc??eVbf`W~fI;MIXzx87|7tl%E{4bpEE5Po;M66^Ktykw&XAQhAYF@<5-Sb|` zKTM#0DnhUANfv{~E~jOT3sfjZEAySab5iRoNwxp`G`aw@BQ&P@p5|THwaP{h(tg!d z7sAKpLK+hUjeI1Q0;{DAtM)r{9OGMQv}{J)W)}C4JJY2fX_A=Z*sjnLTa;mKuwJG1 zgy!2+Yjhq?R2%|-($3pZP-=#jqKs{24=9f;_d$CiY3N2FH z%J#Me;L!ETG7~AJr|(Ts=er!rsp{!nx073eb2=+BFgjg^b{<8^c(-%Nu>Vim=}fiL zcCp^)#&$l-u>RJYgN-U zjShODx(3oE^+Zr-;))}n&KLuA+N|f|g~1wihJTMNF!n<_&yT!a;rXMC7tFhdohkAJ zFd~X{-d(Hj+){0Qs<(44+BtUx**0HarH__s)T&xRRCzIX)@xod?NI+n-NB8&0Rfv!KGWE6CFI1#FIFL!>!32$(cG z?OuTs)GIjot0fW9)pqRL;?`r|4(at|KK-XtBbTn^5L8Pna7cL}*P%RFj1`OII=m5N z59)}cj`+8uapus4|2Wkrke3!GFTTVVZVdOvNeX(qoxPD~ui{^LawMe^2PybX=|mI6 zvw7z#t@X=?=)V7#Xt7m@txI8f8N;$N^)^DmIrZjXZ$naV1MxOR949)&eE8t*Uy*@e z^q{X=QX<~$T)6l)=aj|QIUS4jJ^EgkD62mO?@xQC_oa&WM?KZPEC7ZoPJhv2LCq8{ z|7(a-@e6BlUx5?qQaN7-G`&w=#aoFu8@+lIy^0|7OUP>pe0WI|DeoeMLw_R3-z}#8 z(&_!vZt>orL4JktpwiA&TI_EO_}s(r*$eDS!DDyhji9*2N^vEySj+lchdHZTm{Yad z*Q0hzipz?%*cH$q-}-0D8&BdKu;(*a9_-7i92LFTgVlluJgHbSP81R@WRcJ@5W2-6 zQ-d|ZfI*^%+J{b)jR|_(V)Efo&S95I_LUh3Q}CXNp!3Rt#X9VFd+0J!<&phb{mRHz z`~_)j+dA*TXlGz7D`*v;+8aQv-AlKlHMFDQ7o+f2ikW;{I-h|F8Rq)*IVQ0vggGPE z9%Y^_j|?RbD$FggJCctJaAzl0LIwz&jZUnD;K5B8?Co@7F5>jjka}YT3$$??LOa?rZ^*QjQnK06 zO*i}n?;XY2&V%Js-DOz-oENOT19NUxP3Il@UW=%Hs)Hz~;QnlOgi%nRg=8#ufnpc zaK&JOmF9cnUKMZ#Zd-w8-Y+Q5GTTqOM>U;N_Jfmnyl)p3p8CV6kOBXRDg66twrCaq z%QgJ5MuluckRPiiZW)E$gE;EM`)y8Vu`><{)NotA^LR*b_Q2Yglkd98?i}KDNb}sj z@^~o2o9QGg!@G0gdvYu9bW3lcJ_LDDb(ypStHvEzHA0tIMzv>w7MyKGA6n^K?+T!9 z(9LES^j`WHz4Y5%On5Fhr6tKw)7Cwlp02|MQ zfu%~}_pyFqTyU- zao#J^F8lCR@Y-30vw2lSMdO-S@vWozLDjT4U>-$pch=0l%2X*pnwh#vY}aC=8eMvE zu9u5{RVLMfgKEJ+xNkrRRn>%ljnkf1Zw7keH!Bn?BMcvZ<&(0EWxcuOjHZ-cvjj+$1#uaA$$d;z@jRcJiMQ|g&waj%o( z)hI0OYHUH{gkP0N%fPA2Rz(fokims6osL_2!o$J`Y9Yv57e;Yzs79l?1#63z0QEkd z8p?E#Jux&+CQ#pYqY!v?W8p9iYK*+&!hVY^dbpaIX9=x3rA|q^D{i zSIJ*m!5Mx*xcjUW`7@}THy$FtdgY`Y_3K|4RN9@w{tPfhkdu{ThR|5(FL3e&m2{&T zPO9NNG$-5H8}95{PO|5Dj|8?$2)?&s&XOv za}eGTSUjT<&X z@*87f&$oC^<38+6@zrF}G;$;4j`hoem`HlBzSdTJ&%oz)+U@%E)|Nn5<5vu*<5%Gh zWen)t(OrFi_z&wNYN=yhXiO~8p0_BFXzvDAg65OW<9D_Mqv4hycI$#9pCaMBA+GJD zU+}gfdq`}^%f_!@tFoWQEKt9XuLo^B{22Wi{QEOssk>Z&wxgz};%2y~WX$28P6Xpi z63zc$<%N34yHt7QnfTvbP9u{`Vg;3~tDt%eX)`D-2`Q1}EETA4i=M9Fq35mN=i8{K zQq8`ZR3Z_K0fS#M4D9uB4FlyFGPLo=K>fbbC+hc2sV|>{Cm-4PRg5e*sZXUhQSIhZ zZ$4hX?~S^iDD@_`Uy3zcAFfcb{$oYoIX?jw*N61d3g+gT>H+^j2EX2imgGHLUcaxd z_oi~al#1ztkJj(2ugeC^2Q%L&eY>>(oZEgt{d7kMVQ8#RXq*)goCBTp`!anNFWv7! zC))|vL@)xHk%Uh)M=&0+uNvg?ju#LIDfoOmm0>b4VmS4L+%!RXGUxjjmwNw=C`$=I}&dn&${^qU7W) zKOqP>pJgu&Vn&+nYNopZES_lC1-y^+fliV~w>!e)f!%>E3yE$NjZ& z9N&X+9OP*1ZWm}AZ+GC=zuk%7Xuw0y0Uv&;2b5869N$Myg9BQ?0ejM^|Gp{3Nd5h$ z6eIP+rj$AZ*Sus(2^vy@rj)&gl&x9{jUZhfHW=dbx9joiwRrRR)^psc<)Bfc$KR&K zr;qR1rWE7&zD7$q)x?QWaFielJ5Mz^L=S$Qq94D}fEyNT4`xU&-5HYNF)w%wL0)hR z^$p!`Bo zw?x3n{ZgEKFc>h&iX-2t{ZIUUiG3pUHsa-vZYPckv5|5xi2nxpvR^Bs$Rvx#%V8~r z121282X>+MyyC!UNRv?iqvfNXx}deo!-AEJ65khf-7LmPr-3)3l<6tQ@JQMx~ZPs0BejK96b{3Jp$4@6)J0 zP3PAOU&(}UbnRxMgs%gL?tu$RQ)E<#lsN~ISe9YKzymGdAT zLEdeOC!355+5_}p=E+-&TnO@-d9{_^ax3UGGQ)=Tv>)*Z^6f0%g81_@C81R zgYZ1+Dda_vZ=6Rhcj07@#VM5Y9$K5>#(J#SaFQJ*&sfM>CS;_iyHe?y89n*__U=+o zSm*>Ax0XX7%khGFSRcY}9mAeaZ_Xl3F6FIn77~PiS|T%HFNA-Aa!)JSMw}>zAeYQb zz#sEj(7PHj2(k-UbMpUMoUlT3Jm_d~IVt8f3-3%+(aOvME6t#F@HAdGuDPa}?lZ(K z@=||C25vC4IC}w?{`1^YWF7A8UdPGNxws!H!-0Fq=9c5MV;1(sEXo^E@ru+lorC1$ zOARR(SzzZF3Oh)Dg8tcHH-6g&<4%6miy%KgmpqwqatGAjQ9Dv>PHBjw?_YG2V^F0T|iq@RE~M31k)KaTr23i1_m-QIzS z8`jT_n;&84=@;-0k?78f^ZGfwYZ24GUy=7DtXl>B(4#1YAlv6gy!lAu5jPca2y(Bv z4rvM?lt>eGRGAxDleH+8??-chu5~AhR0@7KBW2da_r0` zmFv0$<^GMDyPfbk3CYtHHu&O${xt!}v~#qtQEguj(3e6RH?Ywz#lEt=mJczz|zn7q`$NK z6sS!&L$`1(EbnuRfwlrK&apJLB*DQM)(FH_?OC-po7Qh63F zO$7A16<(tHXa`6wXF=X-4tKaMB@Xb_CjzzQmN|TxG0(BH>80AvDy7CQCEDn1bN;ZNNpi0e{z=Qc{(S4ybq+6GK0d7px|&l)>f~l>a#6X;w*^UeOAYv&Tx6L zW4n~?K1agDVZ=S?jlB8j+W_{C0=TW(A^9Pxe|I(U9Y52LoqW2Ngg84U)>-M65xzRW zO5y|p`uX&IPl^F12}Sg`Wll@Lj}ZoL!|3vhC36Cz8`KCvvOCs84zAxRQob*4Y8H#I zGnJH!&_7(>8aw%JH`MDTww0xqc~2|TEBO=XFfMSmt7%pMItyw>kl(mTjrE{Td`Sdt z)MFwzQ=|CjDkVJu-;@aOnugNT*6(GvJOyuxVzlMkBchMNUx2g)>&csFE1)|W#(z0` zKJ;+HPEUPEOO2d0#;=8)v;j4#Wt-7U#Cyf?6yx(~N6ZHZ2=efolzuA#O%9(?c;lia zdSCwejNX@IQzSj-dgwVcGH`Md^b>IQB@XN-q1Mf)6+u2(q09*HvH9T@Cc{62oTk}f zGCH$ z(PjD>g)To|tkb3Rj9RiK;DN1Q=Ze#Siy*&RA)u`9teS@J^gu&a@)0zBJn2|q&Pk0i z8uK(u&9o_!xCb=2THG0!ZSU!@dOL9QDr}S3|2tVlcMj-%M79C4+0uD3{(kI0-A@!) zQ6UC+=$T2m?X>bgak_JvUMN$9GDWP+%_sv80w%lOKCM1|Y$!+PH4QSblPp(p$pOE> zQ;FlP*#fWuRh~Odzpwlob$uVK?@L$g;Vwplb*D-G_-uCrFMHlH@I;B^X~OLwP0D^R z&7Fw=%|15^3CLEV9-|d>nRdUryH_SnhZLBO{bf75V@`de9nT(uVo|@2o9MvTqrjh~ z+&IV$H4jcAK!;Y}j3qAPhNVhe%$;v2A>fuJrOv@zK`Mux%R`Q7z+xKha?9%rvK>mE zT#oo=KSy)u4eF?9?~A@ViBZvjb~M~yK4!>rYdF4V;Zm#E(S?=^Ud7y{P)q&}ewTrT zUcovT)bPPyClOHe+@Z_qD+Bq?dUu9XaIW>n#evQT-I>nF6n1A@Md=)+hNkZb7v0{h z=py)*0;9jJ6a8s)WI9MM*EqYqAMnTN7hwMy!~W!+7_dLtB6Wj3R!pp~H-1N$#Zs7+ zR>XjBDe$GbtGssWC;@VeY3)OolefTN;AG|op%I+G=i9>pJtt}73diVshdu@nr;bdf*U&j;+DRdQ1=^!;2{?LX4C05<{7pO-*nn^4Y*2a3EydAV1bH@Y+*0_3 zWC-nZTmaihQobjN-E+uZ+Upn%orS&}rsAb=vVway^3c3|_AGFOb`}@yd9lI+@Co1n z5kVf(3BqlFkY1M^Ql)b&ad59rkcl&r^8cQ7bx{xbyLGOIxLm>W#j}IED201`5}rg{#p*1o_XN^gdkD z1)k^XL$!r#&s^6<$$z(nbIuI!qL%LaFt3|YGRDy2ZCESC!^K_HOHybg8|~}PP#fu9 z_N2V}4Do*!YL4MsAQW@w8TwWVJuN;X!2c(Xz0zJR<<>KH+(JVs^Ulzy#Yu4Z%j(qL zR~Ug;Ob$G3=!V!BezODzd>x(8JIUwD7*9Ta!0#OwfEznm5`~#>3*Il&eYD9Eius zKg2t&)7AKDt-duV312XF7grWeT+t21v@X)^jHHLDuTGO94Vc~_Z5dq-*Kh*76@!quzgzCmkW#A?oYy-4dY?=h7zfD z15Qq3T#Wa`!Xu>w&K({ROP!=?!6tJv=q|rquEdu}?a14{f$neo>n(BI&4+lvz&9fh z^N;yzI@wzO59y@OAL~PTZbsTsls&ou=YQ#|kIMPqo9P>h#jW>iwunsNo|NDDR_&im zZdxU+df!rG&^{}NTf%`mg4{ln=uEc3q`dQ6vO1JVA43Q84WzFO928-peE=3(Se5#e z=V0}YbsXLin zQ){YcH><}j_3q6fsO5*T@>iwW-MhC1X*{26r*jM~XlKg<9q7HMQf1?D=mBxHY&I)v zPnC_w@#WCCTJ|)`o@QlhQ}`?My>83Bqmb-6eXv$@`*7R1kCUrrLi4~gf;Nd&kVv|F5*L3E0TYl9t#zxx|k zaBWc6J;}D7i|_laZFU8rKYbHJKJdyn#PN!4f_!u6n>%PV^Tv52{9d?J;_5OG?hD4i zA@s!o;<1|MW_*RBI7nX}*gJz_h!(0nQCV-$YFWXS?#3BZhy9Q`F>ort$ve>IMUZZ^ z-+MCfC+{5?E03$A3DnBud=eL`lem_o{DKy*`1)tT*I#U|4N~1L_;sRgH|loRtqtx$ zYuC-F4T|_b^Lp|&Qf(}>O1N+u`GrGgn9NBt7LvWa<6Ydz|7*oR{EZT$4|%u*-$0#4 zkQ~zO3{$H04)01}TAYL(xl`@mTz9V8x0q@lGzoUtX+$yAr(10s+8sr^4=3f3fO2$N zdK=z6Cls#<%4b(&Z^8&AWnVS-%L34DL8@OqhV;Hu>z5ZR7oxRq80=ZBUt++oJt=>r z#jCh??iU~G_NDserRhq))OTvrymPkc8@I7vj=6C+!F5W%EYbSq=M2-k&SJl)Q|%+q zS^FPNwR=FZ9oKc!FA=nRe^R~`P#m40e0%M=dVi}4%3wfQV}Q~<{hkH=o=wrOSBic| zu1n_$@tm;dm|&NKe&bT~tJLUsp0^%7{mvQe)pn}=(R0>5!c==`B4nnaWnAifP8N-4 zKj^m&Hd8?Hb%Jv9IiZ}GY~+Fa0p?m7_8ZQloQGDd zOtnJbs9XL6XfpKzpEi{3~IELi~qf4?{$w&y8oo5%WnleS&aT~E~Iv(<42{{)|pFR(j_z_KIe6qDOJ$1mQndN zP#Hn?Pg@&wNVj3+C*`aT^{HQnaSl-ToE1L+S`#bZjy;4r4%MH8l(=get^QBNeKUOJ zCj-;w(A(eR^c#;yN@LLN-&z zG|@|u_tFOm+EvpMfmpc<+?bRjsE7G|^tM!7$KVDT+}-imOoBTXrRF|Ja0?mS9VWQ> zDY$F|v9$oTjTg$KB3QtSn#d=dJj9hZ@)u9aZ^z4|ZP;Dh_JTtinoWBz&*JS_y!FDH z8+=OZad^3cTRX6N+mEx7G`@*85$uf8i4lx>e4lZzxC8SF)+2G{|9pnqMqrE}zj7#T#{FajMS0eCaxhQOcQ9!VjfKTe{+YxsPKC3qrR|?ddh=CTDtKp+7dx1U;k+$v z|G)?z5^r?!P5eYkCQ@ajWbG&M@T z9KcwlGh5Mcp5r6i#Xt=U zO3{DL_H7@Wf}Rp7r8Qsxtq(j%vSP}0##NxsgNhC2tz&3)Ac0lZ{YiL{gNJWmJiPsw zL%Ie}Vjw9$du)6VUoiDqyu5Row+58na_nTlAzjCEK6Y%6mRh9P^pDY4xSpkMIM%YA zcE4-4M@maPc9y>SSRA--!`u&D25?e7Lwr(Rf;a2cMUa!b=j!Xs1&F2H(HF^|##xD- zc?EY5;yFiBUU-bgKnq%oAisUBTE~-fRc&A?)|I`OL_dYq($61Rrj|lJYx>=IwdaeY&uq$}}5KR2` zc<2h;ZM3J8Oe<&s9>sHVM4pvn7df%!D5l8e9D3mwG$f@vOA|%DL!! zLredL6l&=gUm9CF2UwDPDN218k@hLmxEq=tO2Shhijp)_(n>lt!!tht&W`odm+G8P znxT@v+gU~=kt2zHW_vdfS%hFSnTHnSF}UV~p> zqxKLK4&Z||_(rV3H)4&Gf|2h{%6(C`nnVAmypU+GBqvp0wW+>$O!cX4nXR>5!J&+m znF>e<@~#x5M^NiOzfd5pF+h6%3j>b8lEeO;PA}5G4e#HVuFxEG;0Y&K;4Bq-UF5ex zG&=PKX=WU6PRn*Uq!SjL%e*-$_rp!@C;O=VNIo2HZvgX&;;*mxHz?m37aHkA{W~}M z!SUqv;DaRey)e7+(XdY>8}l{xdePy{z|L=-XvMt>A3Ewqw>N`dX0H?Lz4`n@_CG_f zqp=`~m|=0A*7HnDTax+P3~)rDjS2OB7B7C1#652L&J5@T3a`;QAUY=qUWR72R}6sr zKZSjZ#zG9YC@J?K%IDnSd9h9E}N)$Kh>Ui^G4r=Y< zrnsl@DV*t+Cmp}`!sV>w)rOMnHUaGR#ln}eSn`Cic$5jKZL5#stYx^*aE6ny7x*y>6vdZ{ zP6?~NoNBu|*CX}us}g~6FP)53xWqU|l58=@D(izhjwnFu0*n%`4>#$M3?mP~0B)v# zPTVabEi@G4SFvGzc?qrig0Q1jWBeh=UroW%S0sBe%kCLxFD9a1> z2VucozY#YpZCr^M@-ibY%lD?l!BO$>gW^`m;&|u{QGxXGC_1Bv_0=5OVSv{$;5BWm z6Q9JKh>OvIK`zHh;V{jg_2L#0T#K(n^vuY0uJuqmnnlnhXICHgpXYHuybtfc>BIi> ziWF7X3?voEuY=2@@6HW}&NIA8Jr$?Ckp^UtBkdXRr%~wE54yCzf-95UDD8&NfU*-2 z6BA3w&aK#q>zJ2JJI0VMHP|{fwPsV-vD7CtqdBD0Tm*8VexJJ@9&0!ehCO=F;kAvY z0wOfPE2j|G(b<)~rR4oX+Urj~k3fqs$KCijjhm@yT7N*~E6n*Oe@<=D*AE!+6`~h2 zV;?RV@>=o#rljJNo0L7tr7UH7vKG1w<;nY8 z(Xbow+%xrDLVSgQJ$(~&b6=6%hMx=WBDdN`*m05o_nX(@4)P}G%~QbzQ<>gOW2-OL zz3IFCwBM-iI!j-w9AeM=yl^u#ZKXW%AeA5AP5DazN%2vc-T3pcA0A_L^SL!ITkvBS z!fG#c;2w1Nf%ru`yx#~5YVnI-_Qq2&o__UZ4xX;ZQ{YSba`Zer{lb9D{}x`W;X+?Z z`JuSH2)-a(f((~H3Kx8#0k{NAxKuM-sE=-AxKQuSXSmSQO(tAas?2WOgVAlpPHG4= zzt!Fhng;~x{pTQ2DsUGYV)YF>GVNwuk+ENZo;Xg+gz5szt&VF}Q=j#QictKJYuA!Bcju3%<0c zV)2Cv{^3yOp|+2Xc5Vwn`SVeoVu#UV z>d5bkmqUz~Co^7NW&bsLTng`C{C0Uabaj~MngjYJ<*$#bd>;!xVxlkY`NMztDDj&W zb<;Re<~Vy^w2qnK*B%t){E}*@1RN-R@w#sy9;l@o z4B9}n&DIH8CZnfu7FW*nQ(wo)!f86?5W_q&=p?@8fwkK5llUGglOtnO>wybqfv=Ey zvJdU>fBY$F`HJRR(3l92#pbfID0#F`XFi>uLN|mhJ1Gx1nUp&cbdKLGaSw46W;SxN{;BonH-=FA%QMwgM|Zft4k(1XkitEH`AAvI?DZt&-yv1O zeFJc3n8HqN4wc}6M>+P7WwPRNzDL)GsGk&pw|XEYl|F$jpfD$a zU4u)}P6T=7B)2pT&j|9eNlCe&!x=6C%`1+3!j-tyfp?yqk(57;tD0?6{wu7YHP9D) zVLN>1?a+0}uZF0l$j69wX6V3&bpD8RV`0mz5ab`TQNyO6#aq891dPPxj-;HAzW6Zi zYU}vAxb67YuGZsU(`|3X_+O0skzB1EUw2gTIoa&VX`?TJ)BwNN<3csr1H8Z;L7q9u z3RzwQ9d9#Y5ajGhHIVf*o+9B-Aa8L;=GV9*^XoeB5NS&ET;eH4EN;yF+C77P1H~CB z=V#M-81%dcH*+HG81U%Nyz$O! zoaWl|x6B5G&2a<~c6e89+u7uOt!J@9HK*q{&JJ8Bg&yjOuuuFMR$}o`2p$Bh;5~4> znQnx0?p(36C(gU|1KeL;jk(Ko%8%+@`^j0@`nb5ov$ym~@j0v~={`Zuo8#=`gq`z~ zMsYifBd(5p@Q53d2uJiM>4)`zm}~7N9JG{HuxdU2!YhA^hq~f{Aq_(yAXmh#S?g z$2w7|>6bG*M5UH%KXFSn$bld~JdtuWhu^@i0QyZ^BkA|2bcO%BVL5!QV~SM!a3(?` zP#jd~nCYapJUfx>=vmmOa^YMB-R$C!R$$$v+_X8~yACU;bzhp>d%9J@vJCCzwDxwS zVkc|3x3^M#2g65jdVp>jC`(d{i3fGumHl2=^7Q>)w)Q+3GRM){g7z~NnG{7okp$$J z{>(uK3*aR25c>#60D55_bZP;*tOHW{CbT6M-htJ49J883x|zMtMZd+veeh1_4PxQB zumZ=i!%1G!4(Uc}e>e+L3F97TsQWaI|7}6zy59=$!ftpNUj}*jIKJFq0sY7q=er58 zR@;U%i#Fx)K^Nq>BO*QX&J2v0>eh9?rSoh}=tl(k2ui?L2(iKzbISV@z7N`46G+dP z)fxro>_&aN!8us}qnv7bCIFX`@XI!ni9J$9$5fWC;LmwE|H8O8HJ z@mm;mc}ENDlPpGa8}^ZXHu4)k2|hU>Qyc#&lT|InDTe)Q@`1CW-*<`ySext;Gi?Kf z{ivOKZWXKB?r2Bd^uC6@3y#C7^m|jVPgQ+aMN)`tH~9|YQdx{M3ydP;EMJfx0Pe;3 zf^ryk>Dk^2?CPM~VI~VskEgvzKV*k`&ddi(BzdORiN)3QZAAMF0rtTX=>$0E#KZ66 ztHg?}halk$>v)HhSzA<&T@>tGeuJIMZ<2mME|bmHfZ9*KVLO+4j$)ZsU$k?n+8>mi z%k+E~q9*g+A>|O9d$FHcGCN?fV;J`mbvW55uiA5T2(wd+cdO3^})X6!hKb=Q{cvJ zez|rR_I7-a!*36J&sT9h=de*9;Hx?La*pyfy11-Nwuo{3wdz{llHlvygg;e}#7{6nh5@0L`BBUP0+=~#)loa%+)D)B3g ztKSf1k!+Rf*S1#_chKpv3g054X(He#2UR_O#^Wcz<0q0n(CM(0&Y33|kLx-9D3J_S zcIR~~TI>K=-}b5&OR0jKzLfZyrERKc+XEQ2yWP&8@K?)0=C$gl6o$>X^AV7sSlH z`O!F~Hv?y=Pd`_^;o7HgBP9;^LzGC*Z^D=RHkC?qTQU&HhyLSnN*X=CFb%uK=y?Qr z^*CL(x)!p)E$v6j{!O~~{w=P~-us_Uh7C zn?h@2<-1~84e*<9K)!K2&J6rMIRUz|QVZ?Yx0m9KCvp@ulpq#gxM;z5LdPZLhySkT zDv{g`76i2Esy)zL5O6N8H@JB!%1t$tyEX+O2M}tIh9IB5iq0_nKIv-xz3R2xPVFX( z3!TO20k3V`?R*tUyQF;c-_cInNOod+IBID?Ee(L6o@{t$TpTAG=*wltMfGIEyvb;( zd@JZp@g>p@V7sH?X6N=LtRE(ke)Bi1T$)f9g1ieD>3yL3C!7kng5-Nmce5;VDm9E-63S9*2!W+5g1(=PeyrvpKLzrQ3q0T~j7`VO#fta_|&K z%w)tYL(DS7(D{mSc(1{G4c^P7YCKglJA9e66wgaj&q@x(Rv8NiVE<8SEog+co`P2I z$r+>8O?RkbSIo1&x%-?csEz#2uJaU(@p*-A$`{~nb5FNvZf`WyU7h4*##%@RM zs%-=j>%g7)ySl5H(mlHx&yntLj$vL!IVD%#fKkp7P&>f0X4K@b|@8-)00 z*&RlDTm#}7(&9EFZgX1PR>W;hi}NGSk2oXmDQhcQ8PK@Gol=24O&;7T<;Q=zA1)fm z5AJD-hVrqhQuS;_hbMgjcSljafW=CDDm=nbkf&ZrcMDvKRgqo`)sYT`#$SPBPwEc3 z5|4EZRwO}Czr4hgk9%6xJz;_Z{l)ruA37TrP3ikn;hW1dU5+qes}h_L!)_Bt&wz#X z3+^@0;yeMgE`&8r5NSaLV=pj9kUt+wda~a!{Pbuen5EVsRiLuXsF!l#zaJiw zDoj7({D^yRd*A1Pk#@uVu_DSd{}`qZ&5JiZ=e)lgd0gjbg^S5w zEp;;jpDUC}JVpc0MuW=bIv=Lva4FzKfkTwxaG~k#d=m}>@Yaf)tt_VijC43Z0;4YI za^z#&X$D9M2I+5j(f$FOx(lNNwI3hP&x|MdKG zfRWw<<-kanak||5w=wI4*H8_w1;A?o!^?gSymCxPk z!{{$~)6@3Zgkl>%!PB;9K&Q##&5Gf|V-9=iJ7iTfrd-7SZ-^O6uQK+ETLH9$o7b^J@pQ>wT zTBZLmxbr)~ou$E@{sZB*tl7Ty}$*?jUX>`wggWGX&)?6X@Pf>AG@*9OtK`=o>u+7{p=a~5uPLL zIm(_}*mDfeo*B5A1$>z;(Am|or?VY&#x*H_3pt?1UU4QHQioz+IkPsnUEC%9Q6zg1 z)(Fk<)X7z4&*wO&``snw(MQQbmz1rimH%&^R%Z^9N=W}JVNV>S+R_Z?aY6Y>|aR5{h9Ti0@8c2_p0jLk#HtPv#NVR^Gc0F+UHQ~q881< zUUP#)_xV|@H(+G=Y|{+biUD(LAlt02ZqtpeNiRvQxd^RsK}Q~7Xbt(>+3Qg+Y@lQz zRa=waNIXTWR`cCCiVc$5pv>{E?ZOt<_H)fM>g<${m619px>+ul{8n^+rR+UO-*g1er-<4Cnp5x)M zs6(Nr8Hc{WL62ASTNo}%Jnc#GtUl@|-s=qiVW?V0Xe20VK9b%>&MURU?>{`j5fOdi z(U5q4cw4oQB_)pa;K+AbiB<2wVJ^DM%`X z;6wdkp$~85HyFj+JB2lPBQIGxUGQch&Z}4QR-8Ns-wU9xemi6BPjUOfPstv7!)4T} zilMN(WBznYAxOW_Pm8z1N8>}>=!Unq*qimk-q2zd-IP)-NIi_y!z}gG2QHk}qccT% zj`#=09G~G$PdoBKf7GVK`Ut5ytoQJyrycm9$m7A2jd5Jzfjw4%rRUjWD!F!9iTAnhg>?ia^#1-E-t@ja^gi*1-X{l; zs`uCbnqa;Der+ed+ilAKTT}iQSlv3T|3a#c$J2Pz)BNu{zPBA4Oy%!2m9I%_$5N!~ z?Wn|?-p2Xwx1`#k!}pl#zTQ-KXdRsOtU-+DRPuakq-}fQPvyw zit5T(r_lc)zccJqceOF!EBEBl{ku+RzV7haAn9fvoX_QFc%gUI00+{toY*hB=i6+D zTO5t2;*<1#X@Wequ6Bq)pJqoQEtY0wKXh?by9=;qMY{{JXGObx+wXXT*S8 zQr?yzAD&$zPVI%F(BLo!G&{u*JRX$YapANouWKNo_ZE_u%^2ve^SN54tEo05vxcTv zo=KmXgc(bjr^t%jz+VNauIgq+YcuI)q*+~r{7PxM_geWLld6M|Z8HjukhBD{`l=dO zO!UEri!`sI@(d5OMA$f^OyAP2jHGYnur)NDxli>Hbl7j+qi=qay(87Dh&%e8GGqDE zdlhN_cn|YV-c$O#gSbQQX=4&^@8B&pCh)e8)jv>|4~TmWIa1>aZ!hCb$LA#tb|bj) z6RckOy#D$uh5WxXm43=p`Uzksq~(9elz)RM|Gmg>Ps@LoDgRYeB zBh4-Z>8IRNMW^Eec%yHJkS_Ok_=isYM78lM_Y%PFf*XHM(GCQ5`uF0ibk6W-c+mH? zJ8^4dwlEqe5OVGP9Zq(-&xY8Gagrd{o(Ip+I6RRZ__bn{9fyyZ55Jkr@0o7TQck+= z6yFrb%()LYGw+4xD?TvF&c7OCYlEHRw9yA0@z_Dq1Psyuai1Ji=ZDTR{zI0()RAB5 zhVKFVE!?!`BhR;8;#>G~c%O)pp1$CvU;3ao82b)BWSnb` z)8K#$@0yR*80H^cniNwm2{E%3YY_Lb=96J@kIJP3z%zM~Z-?%1WNdUqXq3i?0Z5&s zm{Hn1*nPhgj}i45o~MgZ z&@iJK==tc1Y+n~_TQ3sENJ?~~{mwP??(Z)~`#4-m z(6e_>Hd(?7&9;&Mc?|RgC+rLuR`TP%lLtQOHbsa-p$JDx3eM4Q#M$|>; zhztZtR~-_hL2jUgALCN9z2yib&nsTF`OKpY#5IEf$8bd8I0)30o5C zk<@yw8Ua-lpVN?Inwn$sP>y!c%%`YZ!}$3+QipPA81Ds*Q8WgvfgKu>g9NoPrk~pS zomLBt%@;2WK^++zt$+0G1iopl<^rzVd+FWVFN_@L^Z9$ep|1Tyb=`ovZcyv$8mdd{ zV-&a4&SNok(Y}SffJF0~FB;JPzIjgjdlsv6f#6SoUyVvMZ~8qb--DUmgB!MbFk4=I zp%xjYQ4aXYv6qB_+o^XxVFd=KBhV_cdJDWa8htuW{Axbhr~lQmqu`MZMB^uM z3cy~B265Br7`;PdH9i}a<%zB2tN#G+WFJL7VxLJCy)`LkS(&;Y*P$y}d#I5fh zQF;_|$JSMYFK>wBdlYg^%bB##PeQExVlB!hda=; zXkvNDg3+LR<49Cv)6#!OTC-`i^m8N9`$y#8JtDp92;H--@ffX!ZO9Ru-i)-S1!~{h zN2FUvez^uVtP zd!U4K$l_k?G^IOSrU>WXH(0RO|SIQLXrJ(_iqHq)YYDZ#4lMyx_A*qx=IE-gM;L0#m3;T+Sj7rLigyUl$# zJS{`;kS<1b_)v!rbrb;}ik8*1w2|<%41?$F1Pz`Z_V+w;TIhmejP z!@oQqI|g|p#vp*)y`aI~dq2V62(Iq{TGUQ-?to0vDYRmFetnG2n|0uXJL0k4&|@4I zdhD?Q{NnC|zIfks>_U5Ff=1iE|Ipe>KGx1rerRq_07YMnycgf6QNXQeJrn87NP5wT zbQRLE`R6^KK7!}?kRx^m=Z;8wk&d0Cna_6sm$bL18@SvFY|KUbb0h6fdY+(e7}3V~ z5p|4yK65jTM!0Xm^Q6fHf)$|904Nl^4HSB@c)r)TfdN#ieQPY$eqsN4Np?uNPmky2 z?k9nvfxvfTs8Bzl7clmMf9bp}u~#g!8!ZAI^6 zarfABvAFpqzQ)qgrsuq&2Y{;w?mOB|BfSGPYLwEVQc5eR`p#STQ}0oJX{7vR&k;uwyWe!mscNC*4yC9BdudlT9h`JuZLqfcRC#R>=@owP*(%u6 z*p*Ctx1=bzOu>$mk_(qy9bAo)tJRXXL1N&p+F&C}LV}dsijqwzX~1q)u|}*B3h0)V z(KD}Oy;x^#>83XV_Gz_t?^9)#M&~cQ5A2|~OV>`{djpqr>lFE#3pbObzQZ$d!O&CdFe)&jZ_%AV!90Xa5Xoz_4|+IO3reajOz9z zcZ4CiGXS|WFhFwW72x(2;FjyFOVcpo1jb|ez4tKfJhx+3YqpNY8?HFK6n!8~f%xDj zpwZYemmVHI0^^73(ERmU9Z5rVX{Nkvmpj+=X=P_s0$qu3Ts{wkHoE zSFFCV9_iTcYlqt02s|7eOLa_|kcxim{JeSsC1*FNCotedJdD?8Yc*(ognDArw~RmPf#fXyP>^ayUxwm^NJLnym zhh#6`qQ^tB_lrQsFpX>Gc#WPZ{))3pIA7@hrIz$aErE!%C5z+{jK<6s>^Q-x*%W*9 z>A~UY_eZ4r4mP0lc?@{|k1+7exc?0dbVOaiG%+) zG?4wjf`PQJ!9YDQP#?j-$Is%{=a}@nBhsN~htt56|04|SbNz47z=M%mM$$km_gIP^ z$8wiCq+`D;&qg_#=+Ha=F$L!|178g-nhyE{v_RT}O}SZ>He{7Wb%eeX@e0zh zvf{{rk+R|$4u}x(&OuE(MM{D&KsgTk{+==eC3(pqk9DD*zX6P(Ktr~Rypq+JJ8J|%69lz`~f9m z$LjY;$Bxy*&qQffba>FZvlVMRt=hcXIp*u<-T9akP%O&e>1!WDI_cH$%J#zRubq8h zIYIW;Mer2Tp7!V7(IP5(BHqEw&Ey?SY>n#4m?1j{)EE(+dVB1-_sAyu!Dl^?ku=8X zp}RQV`o@qpN;o@0{jM1pTHByChGzb0Xea~006Y^swCy`SAt>gmkX;smZ1+1FObzc0 zs9s0dRH~*t5;p7(P<8l`umx1u(mvC8sAea<3|Me~;BorDp`ZT${Id=P`!X*hPjdA$r5d%jdswayIU8 zzZthd(w;cNbzY=@!hebLneWB+Xx{~~`-cm@C9jhYw1B6tIQ6_QMJF(yxu!V!%Qk z>TgdgR+Wx7zDu-VMIXrHbDmbdO1ICB)hwKck7<8zJg)tH=~JSkKTgIPgsNBGsiwD2 z?&;RjMz>5;M|z-ZnUQ~L!Y`Jwd{Zm8B6`M zVyI^t_Eu|F;o*v=9LoVccMtxz>2b5g%6qIc#W=a?;K|jdg9fwyU}{s-!P{5p?JmJ| zkTdEJ3Jrz>V~nF@p0|s47pyXD>D5bow(X$6HRkNI>ktmkE0immqB>0n^~Q@1j4?MI zT)sL=#V%w|aBD>%Hr|ape<%iIt6R`Q7YP z*~sz{d;jC)Os4%xPrjbv1Z6gptuAaRu$1X+7MI(1rq*OLICZwpDXW`4;-y%*jJ`kE|F}ubb8yEN@ZSB)OQa^ESO`JaQcUB1&lWUI#jeEBgVv zlMMt{7KF2(3_8@_-Ui6EUun*r=&1y&IZ6XIS1A)f1$vtaRA6wOsTF+9#aiyNp>hVb zT+@r(fls?RPNN2$&Fs39W%^FlT5Ky^&Ba6s+2u#Od$Qln1{JPtDoAH(>>2M%-UHt2 zAxl>@X8D@;@0Q|hMi)g^HsM`kqu#g5TIDkH<>EM|SM=!RO0}1zY#K)Be6M=op<8+P zN7;vh+Gy}Yqw%LCo{8!R_Ncwe1Z7)6*{3mrTAxlYaidRKxet<}Bj29154fN{y&Tgg zDtU@1T*bzzS}K`?S#~4F^C7RkY@#g6Z)eP8^I2oz(d-T0B44xh;iPfwbgf=_I74Uq zMcS#_OyBLEGbmY}aTYE2W@z)?#-XhjuX-5!u`&NAV)h&CbDcKZ9qR1Y+dg)EyVzk6a1=Oig^XxJkX89tY!)8QFlYG3nH8RWV z)ciExlhyp%9H;#ExRzs#)(XUv47QdCR7t~To8c=wNtt!+eJ!4tHEly3ySX0moKrGD$}4gMoIlU>g?sB?Y*x&E4c3oG-kEJ&BN*?JfH zqW!vj)LfO*_r}cf;;)_M)kEb3wH(cezL*(dcFkuZ=7hoa8<+8ju7G9>&2@d*zU()$ zC$WZtsxwzhcqeL@Z zl!>E_oa=$0#<6K+wQ))u8mFfdXSTyV=Lx#v=~z zGr&TlRj1Db^geGQ+vpX_N?DONO5r-&VsHY{SL@N{UBENY-D!P2O|SHNIPREfIwKi* z7nfVwbTD`M+?>GzivMxTM$8P8{UyO(caah=k?b(?mxw0Tl?T259x2oqHWnG{49dxB z3#0OXQ_JV&KohxFZy)2d*q?#l^|i7jc}}Rl)ru#d6;!m|7K2CYtV^MSK%&&X?lxuK3nfs(`7HI7!(v6@?`o-e}Z{G2M zDA-quqJ0r|M|%NLV+mGIa_E=7q`R=`;OP~7nX0{&J%X8&$`VlSc#0V^?E}x2qEnC- z&HEG6n+~pCO_Z}{e=66!zeQTJe*;k&DCwo58AG%bf@E3Uz=Nh(lU1+N_Y`E6;Z38# z$FL9V^;|O~i>}045MPs9CINy~MP^5-NT-HPPy`-(8f$p->*&ktbK`3+3Z3J|TfMFd zb}30{<#(P`^vl84c}`Yyb%fhQ+zhcRk9yKnqUCDyjAv#!fi3r#z&YO&UaMW{b=Rba z?g{IPX;iN8Xm#D?X?oGJ7w27p_5TyOR!4FfkMJ`|f^v$-!`XMF)q0u^PHkv9*tN2P zE%4wZEB|Y_XT&U4u%#Yq=Pw?vO7PQZVR3p+U*ydy8{U_fa!r6g9=N?aH^JfOpZ{&z7jnf z&9ZVdn&>Vxl=yQ_6-Ft6){70$i1f-w9$Ss7A@MjTe(qZy!JmfSYNei0>v-Fv!}-gp z><@XLdqy*ZGFbf&57li@Uh*7M`?!18ELd)m zmB1~ySkl|$674mM+2ti?fSaDwTiMh8Mkd=TScRX;Hx@sgd;7RWY=?h_Z6_1;Kl0PN zPMK;o+uuqf`TS%8&-T@xQWCA@scCHQ!sT9z;;`D2xA|=~XO+p;Kc#Y2dj4pt6!Kz} zNSf$aW|_X0*B5&^{cGhW#h}=fWs0TbQibvB#RQgKlb}MM%%1VtY8K!u;b884P8p~7 zHXVE)_R~j=S>^b({32j=dYiOvDxTrqje|y1Nut(`zeh3snynkWVR0@@L~qd0-_VM@<9eymBx7geXvPBEnDk- zG(#KvD^h;$8I3kCcbb%Rl`@UW-VEyXHj(J~@<^|9BXmroRDnJhdn?fAfsDJ^JeG>` zcRNR;m(=SDc7FyzIE{a8biRjZraFUD1dq{vO-ghe(!eEY9KtTlHQ!_C0jK|wZ=Wxi z+wTI_<~o#7%90GDJ^+PbW>b6_3mEl>#I5mjlou{i8vk+$7T^!YIR3>E*9cAz*MiXRFni4XI9zRW4#Jr%i9sUacr$bOI z1r)0Q#kE6F%*{~eHorvN#-7S^Oxs(fx8CJEso1QW)KPdeGFQHi_PRj_6~5i-EG4>| zG6c6qOS>|(S-o=n9M*`_&r=I>%Nm(jupzg^wUmu7cre%J^x{2u&GP25PT363BVsO( zX~c8i;j(D2em6zK!bKRjr~H#a>ojsV`Sef~~)hB{8annHXa zp8rkCdF(V!;gmNrXb#d?-7$r5^8(3MF}E(_YgSu*&976&O9Z8W`+&f^ zgI=Xd*I1o@abIWhQIt7AjhTISl(*psj9) zwz|EQG*v%$IePKb@nc~#q=F`GUMnHV(~(aS=NF8q_unPq>e-=$hKCC?OT@BUB67zZ zkvn9iT{#3BqHZjimO~z^V#X*ugTJ>1jfzRRsP1+TwPUQKmY(xxX3bVC{KN z9q$cKW8B2j_07)CvYa{ zDTHNR3H9YckB&VMoXA3+Bzb{+jmGuvoa1hZ51{a@MRX8%?0Zv;>oc@ zJUPZAmIBI4es~^y}GtnF+p}pTn1P4!)eRujyqtHm`kv~mA8oT(8hLxj~a`nvIC&L19R>5lSAh$CDvb# zZaVlM@WT(98ljENZBPn`!fwyd0UM9oxCJMt(63JXVj0tHZ;np}?>Mu(>EPK0UD=t! z@>O1a#$^6P%9q^u z`zmN%M?L4N7r{QNP4j1@*=9J?_^OnTyIZYSxCXjk@eIO3nk|w>=Z{FKtJ!L=g)!2P z7+0&)&-8}M^{U3J;g~euZuGs$H=XUy9p@rE+SM8V_bG_W^)=$#EzIo`d>i~{YIW?7 z86S6B3qS8Be9`-70HKck0T$Lr7?1bV@yLsehp{d&h4g}W$O#wxF(mJG`tOvLKre8z zr@{OG=&`HZsuOuN^J@Mg zagTMPkcAP^?%$Na6)Twwe9@rS+y9;7!7olv_53T1vyXD>>>s4Tf(DF~GYfV)ublMw z*<{zirx4g7tmo+6_)_TTg2YRcG^jP1 z7gA+ji=`DZPqcJG!jSG^4EFTS7_W@+x2d%$=AD-mh zp?Q{RevV+#YULESMY6mHDP>ZOO25aZ91R*2Q{9BR^_~;iI8#=BJA2K3Gq(Npt-c@Nw?%)iFB#Ir zq>sn{I{j{6R#}Qo^B{@(+n_bx>T{Q6!Dh*8oKv_D9QFFfyuzlkz3lqJXUfRC(o}vZ zH_l~M3J_I%4l)>)W|OtPxjdmj=a_%B)gR4cJ1UevH zAX&G9N zD?KgpYVdNBtx;aC!Kka7q-yfS%hO_bdAYZ_JcaEBFAspf(cM@E?hciQlif-FCb^V6 zBIHpz?{P{i)J^N&vTTb5{-w$C>!7NtmE>jGRcZijSyldzb!qsU#`Aq5&i%e#kW2Z; zRL|1{@cDl^=dkJE34^Nd>9OPr_?-gmcJ|8=z9(Od?`fjydwS5!Ew}`}CntPQs!v4q zKE0W$)sV%;*sdG$J}n>j5PS#$Sk+PQ)8dHt=}p!9w9Fj!K2^ndpPZ`qiF_-2RbR!2 z-_rZ^K#ce48DBEvm7l%B~81g^O`$qrMeX3t5EoH1K z1MGZ3Oe<|p(ptWkYOa#`(-Dd%%aS~GIH|ijK1`qkV*hcHE?3dt;ng{J6Pcv>Jf#?iIm@9I5+nqpw#zQuE*~h=WJ!s+0iBRsBnnt4Q^|aqtj6 zK=z8w zYIbs}RY2=D*X2l|aYnt>>LPt2e3#irHUWK!V^ZilM!|nt*_4Bq_V)}%=XY& z%GHoV`DS~i(1)k>zD93C*{7ap+pVP+ZadDE1N+3fKnjgFB3{eNI}P^H!g+WM_5>%j z8;`YHtz~;m%O85E-NEXS?S?#csvOV6`q*?@AN!R_T^}P)$vJ&G+RDP}*msP){}gt( zT&~v0`&WCTIu!Au#!`b4M^P)^xFQnuOz9$?DK{`+0M<>)Q4g(k5iWGT*&}Lx#Y6kx z3>?9iD!}4HT$JVsd!t0BB(g2}TM9Qu)?OYh+*q=^OpBU2IafW^w(o(j^dTYAhZN{Z zS}&SPs2BUti@(P}lESh_e1FEHm?$BO(=c%}p8UJE*M%acJ* zrPhm_*@)EPL93$mka#D0oMg=OuZrM&RVj_hq0*axzjDaGm6s>ySAwjzB0tAlu7a!M!mcdeM~@9!tc<-R78}dhkk0D=bwvMt#gfa zUVU96^Duqw8|Hhx<5`=x$zE4}nfX%IWMAXG+5E{Ky`tSDdXtU^itV7-U$8UfIfz}F z1&j8(#(Z|zU&0KIIJFn=owoQKh?Hvg&h{3TZ}cux5YYuMS8y)*xoq&kw8EeA3@{nY zwYVIxmB>@QPz=t69u8gn{U%+xqn_3sZ)6kjEve+}65f$Jr1{NaJt|fZg9#e20GimD z_f<_WI`51z9${$ke!Ib{i29F%I(=8p;bNI-<25Pmde5csBdv(c$Lla2PnVMiR~wOi zYTJiAcF4h`7#-$DwyN}H^;wrZ7K=-~j^c53et}bE zAxcr?ZZzWcy$BCybsgZG5^le>AQ}&M$#R0+l@qQO+O#+_?Hux%x>>lP#(-}>--4DC z4A|GmBlnwl6TpcngVo6rXd&+EE$+}>?)2tt*1@^eT1{%Lhmfx`=PYW~*50pZnMOCS zsQdB_oXGCjIW^ZHfUcxFHvc`_U1vb~Sg0Po5LD=4BDhADp86U-`et~jz7c(DzEEi{ z+9!8tn(odmS8qAJc{t2J_!^iguEWI5*dfW2WSM2#4Njvn5qneyXEAv7XS2onz@V^eJ6m~O*Tj#H|FdP2A8RgvT7{(3KRiYK2g*FCq!dal_ z8tjABcQIzE3s`EYp6t*oTd6LpMUUT9Lj`KUj%mEly^`v~&grdGe+zEuYQZV@e2vgH z7r89Vs@UaQcM5~S3smK*V_R*j==S8+|TaHpz23FsA^k*m`%__>O|WNwz->Z)tUEo`pq zLf)-rdZheN_Era;pRl~p_N_KNDXrnYYr}$E$aD)QP-F~tnf%huc4mcUZv7%)VWps& znOnKO3XW?36I%VyMCX8$m)eHErLAuE!!2fv)ScgQq)ebB#HrgdS*G3Q^1))~`j*%- zLA&8Nnw2>$f)lACL4IazH($zjG^(vFqGg&V<&Raf_(U5TzmF4>NX_ zvnIR^t8)^R1zgS8naB!RW6j3_#IE(3)jnx7dkFF+iA%73T0PyI6kO)JDAdFKyuUXr z1*ZnRL0?b_-U{Ecjm>7eH!lxz3vuqbL4f{Z6SKM*PGU1SPu6Ay^RO>R*hEn18BzG> zn4dhyP)eh`A8)6ADYY8y{TSn{Q69aIQr?fZ-^|Skt=VqHlh>M!@$+>s-t443N{i)0 zsZ{2;($-m!Ww_V=9PvD}#Bp`V^J$8^RcO<2rwrk47WUT9Vmm;M3**h~XDr<3JJ(-J zw~!Onj7e&+8?atvmBM{9P+Pi!cKDCev~>^~?=z-Jn2&T;XnN>pTwOcu5P7|p=M93j zjz_696$YVgm!zv}4=Sj0k3*1s!ECz`){qkHlxDNNxbb!UD9-*{p}jkwt-Wa!ZaKdv zXsff$T(ADVBS`o8y*)|^f|om&V%N_g&N;?Durn*9*`XhAx8OO?1qgd7%&YQ(5nQ0} zjYP5pzN6Oh>Y01G+q?64-j$6g60WZ&k?MT@3{Kkv=GSa5ZM6V%i*c7lxNq;79{{H( zQ|@>iYv4FxaPHQuP{~%@`ndIzJvfnLs}3pL|A?6|PoRiN+!vm>M4q*TxWcRipSR zA5J%1<?Q!J*JLQfel38gzuESdGgwV}gBG1>fSXz*tSB24b zn)Bjoa_ota_FnYF1%7#D=^Df}}UgcJj7hP%2Gneo+2{p?~ZVZHL zb^Nm_gE_Q%KGmy4Df^on3kT}N$BL|s`W=Su%po~p#7CB8x`JXHSA^0f6hTkVWnuIR`B zCwtQ7EzB$v*JreCz-gSL06V9{y)1T~Z3ximoRrr2UJHopmgb4;_0nsBywC?*H*{>+ z`Pxo#XT?q%QbKFRF2d5auAi}0LlT6>9h?~BM;u*~2_!-C@y3CNB*+5pJon!N>e&NX zLnUe;YxZpA@GO9g=>i|_LM!5~eAH=S#cfu_fnN(aGbmsIrKFWteCfM{kM?0M`c~R% z$Nwv<;*}JMB!Y!OB4WHdJEpAf+<9WBduJVF%jIo9+(o#cmbpG7Kjn#8_IFdF^^~^S zFfU1-8(k#JZ5+o@jxSQ8&_8P=9l^kD>u_&w#x5_DYtl~2`LaMc+?%&`@cxxX0c#MH z&%#Y&6CzUTztbmpC)GL=RBCXAt1Zwh9L$L~`IvEEFQ>?tPO0Ti6{qTmQ$x$?EAyzmlGyma*yekjyjiMlU()NslnPE~^sxQz^3; zj~L{`#g+&xIz*~d4aGtxzbkS2u_wb>KB|ezJf51*CRbT&I>AK*e)BkjYpo@<>*UO1Ph)G>;1aWQa)^a@S7tM-G^d90H62WC*j<^&bUv)ZNo#Ks z`p<>EHP-qW$Nv(3i62axetd5@OXW{o!t`T%!dWGmfaN{hKYco1V4ns^vw1<7pMHD% zMrU5g*Ji_WPvyGf;c$`Sz@23iL*<-9nt_s&!E4I7s;W%ObZ{a$H#0BOyeQu4oCh7{ zFI8q~4kX)m6@&D6&P__@vF7{FMd;NC4o4~n^wrP{1cr5#!- zIJgxs=QC@~@+zfWU?A`wZW{YzDu;*dT(%{#)!%`0&tTyO#Pc-ph;$FiJ?h$s{~r;G z`1iWUI7?b*+HGjB2JO{sH7vRbYxh^wjg1_#Y=`ozV@#EWnoU4 z99kCc>c2faV?LE~)Xie^loh^s_)RWT##<8=*sJCyU*@shVF9}};rWn!#RQGb=k^h` zBdRB7Ik0SSUS4Fv*zF06xyb@oMYHc3rdQ{lRh*3-n^uKr`rUZm{zcj~em6f0wc$*f zHk?t@Hh?*YvBZj>Hg{f)Z%}Kv`T{i^R%^K0FYy;UNh8n4?4p|Y#KX76k8yr|+rJ-b z+v2?Dcvm=|U6X+sopGv~W+l-!@j8m%+0&Nw z1Fw=-x2sn#@%N|5PH7UTL2%mYeWc5|7DLnE`kvrG#fW~fg7YqJ)l2l1v%jC>Q6O#L5fj$qkt5GNf%cwQR{!9Q8c!cJWrK z$>J33V@1J{>YA?Dq2*u;5Ra97Ya-S!q3~c%Pp{#5n=@N&aX(rt>fqY40v72!3|yPH zp5vZ-{2zQz+89ZL)9P$Kb}^S*BNlRUW2MkaFcN$`PhT#H`H~wzA8|L5)!C5K9N;&L zdE8unCs&oLVuB4^cv!T3Uhojt+c;G>(XTDdy%a38N0@U8^ZnlIUIrR`?lwU8i-EUUv<*q{^eJB;?viqs<>y;)nC*ncW)0+lW1KM@wogm<&u z?!2w4t{r--ODCVJHbd^v-=BJ>k~IieD%v;>u(Xr4<*2991j!dEI4KG9vZ4*L!OuG^ z&S;*zdI!d~<+v3dGw%wLM|)gzLL1twcpwA0T+}oTvS0)1-q4mf6LA*`Fzd=<{@elV z*@hK{yldLhcb!~ftw(O_S+w;FwDpTNQHHjTa%)iT?#klItWbSh?m8X*x5`3UYh}?o zzJ%Js4GH+)BvECDPbk`4Njq`6|5w3AmB20Hfi?xcKmqQy}r zULWdei^FpZd$#7fP){3IXPRclU!TM3Tzyl^@e|<{l`Z`jbKV@2^j!BROPau$GXX!H z9xz+TWV|dguX4I}%}qsHR^K%0*x9fid*pPyBqs9XMTguXf3n24j;O8Db~;PU4l0{!6); zu&uodLbVg1(~U7W>U%dox^qFBP@@NLKhLX(heU02Q^W$VGr?+u{XI}E1f|esZW%0Z z9{0e^W>eW@Sb8|?;uMEdYi0*028s7>HduU2waRC+p9SNwBZn;VA8Ohk_z$gFSzvc_ z_6(dW*9Bd>YpWT2W3*hVdX=vImc9yFo5<2-GLt?2D?SMm<|o%DO|14+p#>r1j1s=$Ub1xvjOx5{^Tj~w9De%&epCi`V9a)Px zQp;l0a$)Ze`650;-{ZKbH|3SBWQ8?EyeT8CFtWhN5+fUH$d6~g4)ZC?5qLJq?j(zo{EQ2@ zWI2ivDz90sREK7}Snt7VHkhjYqw=+9;*41&Fb) z;nG81ow&|e##i8%fzGRrcjmw|m3)#ct#h!nIBr7+Z18n#uDCw7POEDqb#UC+Cvxn2 zQ^I|poJ&GEvK!-JYlZv%GpNSc>{FepC(nMF>)npd4jn(v<=(7= z?~i)38of!!_sNf^Y;>=i{FFCWbS+b1aH`*bhVKc;KUnMD>A+<>e}PUr3(@~JaO2rl zlGw{~qMVp?G~$tfiGfS@orFF6dBDt4KmlZLXY#NPVfzpb5?}jJ#nYYOIa9HVi7>3e z{3PlfFPIUOZh@C^usR-aHhyBU#W}z9nqU_aN1JV>w?F+PPVKFj=Z1&I^qIC+qpc@t ze%gn-OO>=U_C@m#=#0I=Hv*}>g3jKjZxY>9T`2^u)33o)ak7@xlhSw|Tw-vu7gAvjyVua;&obzRQ5){Yo{~hrq|y=T(*nZ|CC;~j zv!6}*WQkR_)#q*yHgP$e{WMnOX|%9b$4=E+mL3Aq_9q+ruC7uP{XTf1JZA&Aa@PHsIC3bzH4v|25VE`lxwA2>@OIs<}FDq z4KR(8Nw@Qewwf6#OxFRX*??q}Yz9mg{2DJ2RLqx&?Cxgl;F zLCncItO0S`>Uf8XYZv6IR(E^r4Mpn&x%CF$x-36-VPlqh0liU#wNn3q8d;-bD_{*Q zGtCZdc*25*_)Y@5zl!TijBN?^XNQhFp~pk5b4TZn64{3)DfA1hUyQD*puh4U2d;xcgi1`MuS4 zoAPI6-4fy~GtZgqoRVpw-=Cf1Ycg$_7NH7WSbH4&wE5r);Xe7?okhv8MOwgB%<#A2 zEaguGd32k`>C_nv_zGD%^e`Tyjd&8kPdGh`akg`l{b;@D|_syTv#)7z3qLv=zWR4&VXnNzmkp< zIT{xhC{t~TP9B#&>3oO<;CS0*0>8-sAG59glDfs#i-kDYq_@HzN)rt5h~pi0J6P)z zHW?JajT!u}luAdUs}M14q%nhUp5AWQJr(@M5p(l{jPKIGfux$a%3b_w=1 z&|*G-_3=TQux?rZ7vb4#X{}DVL#f3`EkA2gOm#K2$#VA-S)uofbfL7BKVgaUrFO2b zD#b3l3mO(QR>jx6TPcDo@VwOSa%P2&9MOedIKuV$QZiXu!Cg7@23S|$U6&#j6e)+j zhl*D(NZa(ioQ5h3{}am?>BqiFpr&Za?_8kdq?nSPP4P9;d~SJSdu-ieN|7QKP~B$6 z*Q{RP*)-FaD7)obs~k1s9EqD8^$(<#%auzWtE81RBl`F7+364S*oPPHJ31i9y-J)k zxW$h5E6>tu)N6RBVNb)H<{!~w#N447y4bb+aNj=U9vNW}&3n~|yubg3yk6wxaJwDs zIW=}6-1qAXPxIa#nyovtIk>rllhhJM#3h9LevT3yIcE@;phe#egT{9= zXR&_|^!3&gHar8}DXm?wDKmY8wcR;~OZlpvJdLj`-I>6~fNrOMgggA~m%+}uP+KYR zRBLVhUN^k$>0i^f*_DD58U@IA3syJ>J`!XFQ62g^n%mh-W=pRcP2lV#qzcvF0QSqLfltP z4dN%=^ZO=JfdztTWXm-+|?e^PP4_5J(;7|4jsCF=9Dkl~yhswPR{ZWU{CODYr{ z`o&waThk?u8`XM`b*xLrlm$&z!CACD3!~oB(Tq`V#R@S}Vr~HZxXs24lFcu)Rk9?% zQZuQIR^R>Gv$0E1<2b6jg8s8gEp%NXB_J&?!2KN>LK_H|RfQ;wIqDc2W{W`$N-K5-0I&jL+f zmR<-U&CoD{k=L3mctGWk^>Gp!Lty4pHQtHbt(Ex z>~J5z?sJ0VPZ3CVMj(0IF)(z)1NG5@c@gzG^mM|rIpo3U>D2rrxQ_wvqwyd;o#Zv> z0XOb>!cU{*BAZ^bf+;_F3=sd+M}Cfa(S|46u6KcpgDWhDVy?w+m&k-DZJ}kr#Rm zaJ=?}3A-~!VLj~{HRgycL~3Ui#gkEt8Di2HR!X_PNl6rI_D28%|W-ro)3%mA9QW@vvnK@Zk<5Op?u5qe+nO#coiNQ>Oq? zFCgkwF+;u13mrrHn3^_;L|spTpKE^!N>zhbXONnTyrJ)u&I_GTHFF#OV!hBl1`&|N z-!-lc=`K(Tb`>5C%XuL?aBc_A;k8CBT3b{X>1)Je^FprxqF0_6e3;5=&~@Q=I&9R* zaxSpRwA9&+mhDC0yYkLaF!M5#D&W8whb z40M*Z@vXPRh8SyyK8QCTbduFU(Q10B6s`3>vFu^Oj?i{JFd2u3FiTjy9+A~1oQ*h; zV3K|hY&z4@ z+CGI%ueE>2&Hx}lq{=`h6I8uy#|3KD^14Iw0r_yfZ^H$0N9%TnwtOXj!#Cvj0g_mq za`6T8ifoxlr>^~V)ZVdEh&MS6n0Y^p7o@I5!(&&&eRD2QL$oiqaio#PwkKa8HwYWn zkwN)15bissu0Rs4FEve7JzSYA6&hhzn4B9{-T$hNioHU^)vKjG3Xv ztj=Jwus6m6KmBTZiaFVm&y5z$94qyAIRmhI_JAvZfz^fW9BYMr89K2-hl(7@rx za<9wHo#RB@oE?6-4!iSk@wK*VEjsWmvUhiX;oh9-yIkV^X4_@ZiyVl44fpN9Tjq1a zljzO;4s7EhWi)X81-xLFLzd$1`2TSBi6Vpje69If|Ewa)LE7gbC5upSM1)5 zJq|ma68R)`JdX(Ta9=yhk=1ThBTPoC@IDSL?3VC(`#Ku)GI`zPTs!QA>h}aW7u*Tj z3~=LKKUh6k5*0nXA!A*mauc14Hk0qr;Iv`4wm+B0$xQ+*eB!ms92`z82vxh+WtDVx zOhQ}^Mdg6I878fpn#Y$+T2C_g1U#lO8jZ?16XhoRD6t}UloK;VC-8}_2Irg{vxJmh z;16f>z@JV@mMU=G9ylu2TNCJ;F0mD>Nlxof&So{|$^0na1<$|;=@Eg?>F(H^ioC+6 z1PLiV6{9P(`2)P#Mk0MdoR*-jN((BFHE~xz?3T$dxdL9~M{=6%aiBe%W2^3VS)X&L zm~M|XNIC^)puj(C$G*yNU&e_6++Ia?mPxcJ#6bye<77%^amtXPsK z9xijovR%|yZ%1bTKf+n9jU7^G0oT=kBCKQXyzYJ_%puMW-UB{(TnSIDi8JrBGo{(W zDfDgnJFg;sVlce7gQ7|*s-X2_y@Fy824Mqq^`8uzl;quC21cVFWVy^s03xW9qokI!!VkC2_0&4VYqMdoAjOQTa(ZLPhg!||2p@>Spx69=@vo4a7~n9?lA_ z&l<#P&x(I$;_b&n{mKAz^j$23o({?E+{oj}XU&y9=!ztJWMfRp_BZCBT`O9pk{_dFxbNP7fzP>SpybPy z2C0VqfKmGtnRu~01yMe4gsu700rl@ZUbM=gRl*eQHo~2IDC@x4cvhhW_@j4JW==Gan2P2EBw@;G8eT$9>>|-_mb*MAkH>KB%dcQ!u;l3yTB>{qe zhI4Bsu}qXT)j8^?BVEc`i^*#YsY^%>^Gv0YK%-i>*(YVoQ@>aWZH-2|v6?+U$qcJQX8V-U+FNJf0axp|(WFCJt z?6ogT9bA$L%1uIy$3g^lB&hFmDo-L}08#e~8>{XC?3T|?-g5dDgESpwh?aZ84OLBb zUHvbGi{QT~m&Yv8A)0D!<;EXwu0rICl}^7nwFJ=wKJtz?Ax7ck*ypQ6>lZ1r<>nt| z%{ffYlebI`{W=^cDZ9NP!$uB|fA`Ye^tK~hK3|8puPj*flx`05 zum-2^<}0)OTB-8+Gj{ZJNVyK2UK8h}eoR0=1YQtl0Atw>yV|C^jaTXd-jIOWg^ito z1@%QZd7ufHmH@B2ttE%PYHib39b!8PR(IQ?Kh>;nuSRhry zeSLpxSa4>Ev`I@f|1G{Ila053oW|J)QcC3C!B2f^$*=K0L3e72yX}X8#{l2tP(yfq zCCR4g$G|`RH`h-GAAQgIB`9++j57xGvmu2#xV^PS{;T@m3eV{OS2(l(?Xb=<)T^juzHM`Qj@fx{%=Lctskdpej4KRx;o<14`fWl_~`0RsOO?f(64@i-BXi8 zUcmD@`Y@G^k+UIfCsc*|?*7Cmd!O*K%y-s;dn7xr9$I(R>`Sr}X*GA`t{J-h!VW(F ztd3JMWP&$dxjUW5>{+4Cp_Sq8;~_+1@FiXSp|HAl>#khHDsj7)26_C=YMs=slN%9t z5dVMM{cO3%+_Wb$jF5-v`l3i@g1Sh+wUPRo_jCX*6n;L#AV3r#tvQu-W zO$Qg9ar|}6_JI^chaT$*Z$Qi7I*KdEx( z?AE*+c=Y2Ftl2AArI@G7L>b)wgp(-rUAG1G_OKXGs2&}ET-4bGrv~E(uA95ZAjUNF z*qh<$$KDQ;X54-{B;oX5cy_ejAufhhq0S$`Q}CA9V1LPJR$h}@kmDbsR*MNao5Pv& z4bs)%m>U#C=^$z@3%aq5cfcRAG>CXGrR(^Su(U}nAsdl5+Ltu+<>M6U)j4h{?q0sv zwN2_k9pju!Sc0-(p%uI!T8{RF8t0pk*N9R}hhg9zb=2NVTY%UrcYAv1CU9GWXi*GE zCtxR-_grS>?G(qa^Fp2!d<;tQQ@$IK?=t7^{@_8sCeI<&QW^t|V}Zv?=r0zrx+1Enc0S@k1E= zB{vDJnBiOD`fdOZH!DuWsZl(g(dkAzKOJq9b?Z`dc{Rnm%s4|k5xNsaQU4243`;<{ z2`+DU5qwXtSd?zgUfFE~m+cMH8cs_;cBmhtx%t(-O$1R?#}i~Lcpd4&t%06EOMf!Q zuY;xreHNM;*L>W-wIF8F8@d79`G$=xJB3}m(xb*2V%=BOp@q$`{&%(q9?Fmkc-djM4f}xaZ+6XP%4x<(ZSc82-J1BRXttxh+^H8Rss#&9L2Pw zuDxL)EH}tlgOY$9iw3N#%?=&0TSCttxe6y2=y$}im%PG;hJ}ZH`o9z^`W^otd+#0} zRdp_YKa=c)Neq~T2m?geK!PD683JNV5pyFZ5kd?RDN>qAW^#d$#9Sb7D2p3JBB zmA|wBUqLUjV~u`9{hx*jPe=Q`TYq+#{CiwbnN`^idl)aq)t?zAIw!5!Uv@T4Ecv7I zd+O~nl2!yp*7Nqev5`{@A_{L0U^tFr&jGNspw~ z7x6wvB(NZjk~sH8Kaa%cdt{z;B9n6|W1QbvUkpPgerE!=YG0s|6PEU4d*;b!iS5~?en#m2>{`s? zDwt1L+9UK%m+*AS(gowfo^ROwp{0TJf0PE}Oefn|n9RJ$;@v*?2WN87Ot@IUBfi$L~0mx3o)q!`OsB|G}+x*k^?F zWzBjsYu1~Ws(n5maw?NE8!y@xSggFaf;%g2vabjkH!ppZ^^OmFs`^JLzf&7$pGm_K zcifq=((253YtM>buJp^l+_YU+zE<9}EvTmsxK{XPPjyPEooxdBIL#J&GLQbx=CgTj z0A zFjnK8vx$E`=+^amhyIe1CxiG@?ALpQP^+Ge%d_8q<{&*H_K1msB1JO9B8EBn}4eMu3bjYJCWYd zVfQYjj?HJ#45MgEemlKyNy4B0;LhM}16KRA#>~_SsX6F4=dCYREM7^QpQ}=Esp$oF zm8w~T&-~Q5L7mKUpYD6@8uihgjkNys4EgnqSNQ$5i$~ws{HGl1!HCCikBsBF%H4p- zu8ofdAB#w#1ySkP`_Hp+PogiYwR?ophnc!}|7ly$;J8stAKcJMs6O1Dc;++qzOX-x zv4UpkV~ye{-gl9uS_mz)*V6W7|H-@dhq2e~11$D~ zrH@+6B8Dm5GZ zNHjDN>amR=eQCZr$-r#AA<5l5wHmcb7WeB?Rd2UHHJ8dM{iPSij^uPwidx-0eble6 zQJpn0bKVwNzf#S~>}(8UE~ULbwJ|5-lSVDF?{gDa$+YlGQgXVtHRic#jiv=CJ%4#4 z(6Ii`Z(Q>2Lr}d_a~?|VW?MtM&^xkAehhn^IcIF_Vw)8pA(^xccRznLC72eGUk%H% z#;dyXS7R5P@sk+N3a+6wwAk;%Li)Z^@`~zV@D3CXjN2Kz@EhXHWyR=fHcHK9wWGJa z+1S79K0W=f!ig{17HfOkZ;dkt4-i{;WXUUQ-i&=CbV=+xYTui8&)XN8nnl@6kHfp` z&D#!z$7iPc@%D!mCjxZ;CAX0;BJ3`ZB%};wE;HVkO-(=tn=bs9=X{kpcbU)rpsx0u z9MwX1&!3hWq<>RviDws(DpB@a{U62t#5n-DuXOfjmml+GyOY?7!uug-&Uq~DTPI>d`{?RCMBteBQuUnVF{RYRk&*My_){NgyamPPj7C@U z(Vlr7>b%pqws@|s&O5jcMT#KX>0*(osaE}ZMJU$lkMDMRS9?eHg!!{m-ki@f_mfoy zWT&e3nAsLu!glOEQ9S}nzMYlgdjdik^(EN-)aw1|K4|$Gy-W4n)Pve1qu#m0?rh$u z>K75mUQp$-IN(Fp`qa)X|A@Hf!gcd5=0INr|I{MuwHS888*2nhCwSiLpmw+LN9erQ zRad%9v9~8h8SIkzrn9-rU$e2V-hMUCOo4K*dJ~z*aDT|{HfgWkqLd`aU&vur*SAL1(w#TF z1>P3XuzZs$4JoF!LN5!)OWiNg4e*4o!b*T^M+k!(P`(|aN z_Ga$KMve9mbC3GT-@4y>WNPXw*33}jH@!GB(1~4Df8X-=raa@_Laftjq4qBJx>QSk zj`5bFf%e{dN$QEDYg^vqt*g6v5BLX9T1Myb#-iO%UE0REWZcuMc`}rDABo>T3N1OQ zbj@wS!L-^b^$!_gwBH>zch)0s#yxCLSZU3(F(>xU@zD5i$3J-|dH8d$8gJU$+?d4r zwBK_N+j;X0wa|!@Qm>V?KPjT#qTv4djfw5mZ}_eBV@Lc??A>{@c6ZJ=Im49lF*QK|0PyU6JWh~h9 zw&TSv@k@*xyk_KJu&soA)NE>2yPa+=Ij3g0OaAh9NSR-WdSm<1xBodYR{t60FrdVr z9qNG*toWs>UI!;X%4U}g3+ft?c`_;~h!m;0NOMkc(;x0eaviuh$URzPeI``VK*SCMY1r6Dv)4o|T%$}U{ z&3a=7K9XOnBi>Y6bV=<=>#oMQY4OYdWSoenJ+~U8Tt*T30s3{?$l!cySq8g9AEPeS zPv%+7Q(D(Jr8OoesO;evyTyO9<=5n)E#p5rf0lG@MY7eJb29MSdbOLt%mF#Q++RYn zBEMPjBz1D%c#XYn^{I@{80p-_Ot1I_=D#q~Mr+A?E}2{uO`Pjx{&$ z)q#U5&p7cpqHnx+PM?0-LABp~82eS4=iW`@(lG#(!-nS~jJNc=10;z{B?6J){d4sj?8?2od#9Kl-L|S#$ff)_R@6;W&XX*;i zuQUem?Hb>%HHIyi5WgiTER>qZ=05%Cf5bg!bzExVJ#?%+d3TsukLkuZ(tPKEcbzuo z?z*GI4}YU~A2#k<%hN`jl@->|P>ifLv7X>-hY@0Q{?+d>gyZ9{qrRPIAv*4%SEDX5C+(Gl|ph}P0 zKQm)RO#I2WFTdTXgQ|xfK_gB1>J3U+w5PXvqmKC&ja$tPDrwp0Z=9saJfT)%IcypIaP`oWa z%;=5!NAM;1^(G@yh$#<>!~r$#tK8#r@mmecw#Z zDQ$7?)9WUNk(yeseTI-)uh)j_c4m{+y77yDR6WM#Gb&2=LK@9pfZ1>TKnrEXT-oyF zrkv${7fe{rZ&F&Gqz|Iz-kV*P1a!gTh279S^2gE>WZuTpKYc(Ca^6qh^uIc*wlH*b z5WUm-hGFzd(^aqZu>g9df%Hnprs8{kJ9?ur^hTecH+rqdBk{A(u)n^-?48-r=6q)M zRDYDWffk1v*Jl4Tncjdpabxyhzv`S!uUhqal;&E?7TiL%VY-B*Z~{Te_n#j5RPVXI zft~+mulX^x^I!FvA4k6M`H9G9N4^88>vKZKB#&0T<|{o?>{I1EDfQw$U2rzx%-e4LEMar1T|e84{a;G!ZySA!x_~rx9tW^bFxdW6`}@T) zC+EtIS30+NpO>mF5|66-Q|&ufGaCWSg<9#)`5V9duEH8LU!C0W?iXqN)_#$$hX1zj zYpdTAmiG7M?91O{8$O8L3b*Z&`kn)x+Tkxx?Fh5h?+CSZ8}QWb`bVDJ5t{wv4!<$} z#+7mvG(h8xcfIz7Gz?n6*Z@7(@37iTx7PG0cUZ=#@5<#fJ0w9p&!-M-{ksuMA64&# zSML#@%C8&9o~bKD5>^DWx3z)yj4#boZ;|{){jS8*{KA;+vlR74#V}6DcHoqq)u>_A zXz2mody!(-tpC;d5&I*lV^S?xQy}Y1{dg<2`28&|nztSPrL))fsm{5)|58FubpD$0 z%5meoP+Pf_RR8MtEE0UbXVHn+BAF}o3+cgVU;Pe6Pv7rZ+#8u3(%sm5cCAp!s(xeQ zFFlM=MvLE{P`_hwy2bBUoMh&pV}vE-OpD*KFn{slbmtF@U$Xez_$7;QBV=Zh2>CYa z$DKO`ebm|f-HZ=953ye8wk_yV$K;Ur2!*twe>LY|rw3l}q;w?))Qf zL=FC>ZRB701y9Cy{IWpzneO7-IOnXNtiSPL4(Hm%Kd7gAzqa(ur(L&vmN6j0&z_Xp z(cUH7+J3O{hRdIe`o+X#&+jD`q^e&`Z2rAOC8a;_!fe<*xZdigekaS~r$*m*)^}t) zYyK+aUHJ*tKlJFxdp3iepPIiqZH-|Uj@9|u@Faen(b|4rXG_Rvn_tL-{Fa`xk(C|@~l3dCCNt}QFwZcaJ-xoK(jvHC{ zHuE``^2g*pV853CZk8p;#=Dv=)?T)bydP&t(%*|hv7<|coJ8__C~4|w-ZRFVFwL0X z%aiRg4jO4WKziAyi4EiW|G_JEQ-SRO5}Lf^&ZrPEwaJ>Bz= z#1)oRR2!)`l+nM9C%S6zJF2#@(B*Qvl#5kGe<)Arj$l<~?3@HmMCQWjbEB|I1rc@cmqSsV-Vv$rw`CT=7m8+(< zsvMK?L{c-g(nXlYvuan3US2z?z*VJJ6zP*HoV8^x6|**yZu) z4XKpKN+-F>tCi&`D=^&_6W1h1o!3>H_?qQ$)z!GF${l5Tb!o9eQJJII8-|kC_gpEU zw!E~^VdNFUldRThE>+rLcd_e<+R`c%>ow+5r_od{iAT0?}Y>=^z=82V67 zou$=|0wXUT^^}K}j#05E0@LPgVIqy;oI~fcjn6JV`}iEv5kj9Ue@DrX%|=`zbSU@y&>r8X3l-H|A zZu_)oNNuLs&?+*ha&OjsD$UKYQTKRs;c$K{Y)@9Tv{zL|%3Wn<8Yz#e95ml+uG1Z5 z6n_W#i^ygfyu~x3G@p6(XqH(BSBTaCA{WbXKIYBf3asoTn@_hhI}sp_e(TDE)@+3Y+tRhb5=!Ba%}yGP8&2DUXi&@%M%J-OqeaGSh|+^Id%Jmmemdw^*5~ z(v^a~H&ow4mD#?F@BZ>wa%Ns;_Cw$8!1v^bg_rwicJ>brPnB*@!pvHm^bNuQZgpQ7 zMz_ZY4ww{O-R*JvB>E(j{Thc(tFD{2R8d*!awby3=sh^-#OP(NBGVRInr^k~OH@}E z)s~e_)r(5YORGy`n&bDDA9cq_q3T1Lfs%4VcSia0=)llr zv)kr)oA0&suPVQ?GNq4Q_lO+jbB51FKG*p8(YX%cqw|U7(}@qibRvU1AL?1%Ikns| zskBh9Qk|U#y=hP>Z}mi(r=gElcU#mG&HXt1#wi_CRg~f@n}*L(Sy@I`hE7IY>7>ds z7yYLi*DY#L6^YT`OH`8Oj?BDAE_`7+Quo)m779 zPo7MlLPe)nRI2_{b)r7N$oLXRS&_%1vcq`e<`cElg>({)0DbKu{olfgUjG>B|1MPC z&+KV$O|dH-%H&n7#@NT#U-i|$^b4zRX{*ilZ1(HvX;qa@nq+js+qOtPeHt}=n|`_; zqf*#c>DL_a=#DZK{nWNS_3!I1$5g5ww+h7Ur>g+I6;CA%s}WD0YE~uDsn|V66 zKUKZppB9wXQ06^@LGmF;f=eqMPP)%^L5!_%Qd(|yzv)gGy^Q{tf$^XIfZ3%ahDnY> zhci*d5UjrI4ksN1V_b+Aqc!rRc}Lg)OeJpVx(OA^l1!%eNnZnYw7DYD-hXCf2KxT$6?gko)H}V9^Zn|n^!TbO7{Rt2 zEahT}q^6ddrb;g`3bQYwT$iffZv9ZzS1l`)Z*}uXKyzJJ=qM{Ks8StU+A=K0p}N8? zo~w8&9W}^M&I8Xkb1Y$4RIrq}CcDa%itwx^7V7vye-4(b+bTGj;=oj~OjTPL8P7dN zzV!9K{eU@%d(>D8lkg2$*wrCd_#8^Z#)gR;;geHUQA{1Ar{_GB%-FFx*IK2|HhiUjGr;B8Mm32w@L+RteE1eQj!=W0yF#jc?Ozjvh@Io2`=goqd_So1!So? zpMkD%>#d%O)aY6z+GWhG&=!}eF>X0+V;S=tF@24;oiSN$O;1mqXw)(0LwY-Egkx%v z`wsdxm3V4-pIlWVK+l|z>7t)1m*s@7W*w?rMYYu~pBz(E!8Q%tRD#5FP}dt~0IN7>;d z!?H)FJeodAam26@#`UON+ziXf9ho;$#M^f=bi@6_+$+Fe%g;K`y=5@L^K8#8+_m&` zhUbFY%m2b%OF#c_e@}0d&bIOA{fp;q-QViE!}o*{`9056SX({1i{-mnJ$M>mN~mYV zUX5uPQ*cgZ9=%^ZbxBLdrIqx`zUR3yC7?QP-|0rp0({?dH50&d3!f2m9#s+c&U(f< zU6bRu;E@EIjXt9Sr|!M4CQUu}J(Hzswp4deqA}Z{b1( zb6=d389bwKQ{Gfqs^eo;}&2Rz%QnR&VSHpV1e-^sNMM` zNFY2x#{GL>Dp^bECp z@u#I^=IJ@#b`VYirqk0=pGME;1XLgO?E5}`D)IbLO&Rr?s?$_`rs^_PkEuFLt=}=6 z6eagYg#`wh(H~OQ6PN6VGRiFzRh;w{Oi#%rRswuJS)AiyiSEZium@%@M zuCqv~-{aJK@$a4@eE?WTVFNj;bmq_U!31&o%r*O_lK=Z(uoX{2^#N@D;4jhanxs8CV#JU2++h!8j>;RB ztB-uRC%rP2uer%1+D_(4I<>C3+OHby7Nhc>s&835cu))teRN%4l{M-=V-g0t@Y!;6 zuhlcXs;UrkzSQT2Qew=lHb1(Re^nN$jV_|;z1dAAL(B?uozU~B`I*yI=9t>-%NJ*} zT!m8$S(R>fBIyjuxnVA-8%4^PHm|P1pp1g=k^kH7TC_`^L>hf0rcw2_lN!vDdiywK z%*A9H^Dwt?gf6GJN~!frRhw%x$KH0MZ5z@0n&GS2R^taB{nWaj`Bl|}-f=%I4h>Pp zXtf5Z?AlueJ)~CYj7mkdTxLx^T6I*-PMx6}!wp8D8a!`ZZ`{k}p6S^4#HV+&ZK5pu ze7A{3q-{Lk_Tmec^*&|>2`y8##;O}i+=<2vAN|%Gdd9B8iPg1}JR+(YLee;u3WdEA z#!?#TF_*}VX4`0>eR|YKvdB2*p%hd^=tYh~mv^mrlrjrd5AuZ?dW6|W@pvSPW_K*H ze4jhhzqgO$5lM9*%&vl9@Qd9L>Kk#8ziQB$rw}HZ9D{vS-C0S%!``cO4>ygQ^8d38f)CjJ}V6URaViN zuOLfljLj`nh(~?unN;?CN7J5rX07V<>@6~9SA2NUG?QE8j5byjY)@Dq1s?7Dw zcpCW}+-kt5svV^*v#)2=giPB%plX!DvWdR0)#f)9KpH-Lr3x`o8D+$@=(f+yG@DlH zt0O4Ssy@QTy>){!ZDY=_b-m?rMWofZRO1AuJQ@2cnN9b`r0GvxRgP*G8zAV>BcE}P zQ2_UxT#94LME$O)K@U8j_ZruWWT+XqnCi;XzTG4C+F}8E49UE$n z_m*y3toWdt=J3c*Vm#k6&#fmixr**fl}icyBjkvJ}2ad z>d`q}Ox;maeQS-yQ+`apj~R;@KEFnxRpZs>Zh&g?y?p@R!j{j2gDDWRJT7b!+1ci^ zlW_JDJp;Mbl)+fOIv!%=7I6Qmv&^*Qb{MGonV)Dm zfoAS>Qujx-o=j1_U!#umJst9eTqveVX@ganI0?a?>&rU%cN6k8ql!F!ImaKQcBc zt7=mjGL^aW#E`d*%tje*d#|OU_^xzd#!tBa1L1vsze{++Z!Ldy4eMuZ)#s7FSy&~P zDSzvGW_(5%{{v~gX*Ff=WglJK7V0*}sH%lG`XFTWw>0jXhcIiRJT)Frj!n0Ty4oDb zR>|f}Z{1f`g9EQl2zyd3J7e2ssF6)7>7L{(eT+2ReowM*X=28fq2_Yfwhl4lFk&%u zt|B(>nGV%GBYi|Z0ztn^XWsM_RTevRl_FYXpIg%FNslKrrro9E7N`HC1Q{}^0KP{k z?~1+3OLj(AS5)=y&vq#B_HSE0S4$hl(+jLU{?+`f=leX*XEF3%tMBT*y55Le?`Mtj zca=Av@R`ZyyoU!{T&rj5qwcBat6F^K^F98b{Pq>6E!3xu&pgj3vc4zKpFe+^=P#hmU*Ny^YxlqW<6QLrr+>;`y?<)n)%$n1+#|Z!>%=~W*La6ogP9jA zDH}dvTFnz<#gCs3HKuPZR_Vcv?(OY3*u}5FsFkZwHN)GEIbYAUrQPkJVc{JkxLaOX zH>RT2Sz46t8dm&}BRO@Hv6LzL-S&HW-<8RHZ~!4Ff5w!tCWP8f+F8Y7v1oq$k3a7| z7-OwK_e%T!vy}!o_0;;G?yqx5QvGXv|JGOemL1yn{X1g)_P^HdKesmj`@s6c{)da+8{NNiH@V+*uXn%Y-r)Ydd!u`kd$W6sd#n3x_cr%C?(Ob(-82(7ng~k$bQEWA{GyC+_|3Pu&OHpScgZ|KL94{@i`o{e}C8`%Cvx_gC&? z?yud)-G6kSaG!Laa-VjeasSDE*8OMqIrm@O=iPsGUvU4;ebN2z?o00fa9?)+-F?OV zpYE&f|8ie*f8)OH{)hX9`=4$#=2a_5enw3az*J|1cvceQ1?WKd`c#@}MM%Lkgr&oZ{k#R*R)XN@apflrmwjw^Ru4s%8DAT56DJ?IO%Ysl-@{U^7ABv@|^0bA%rjVBK7VTSkVfEu!BTZm<$2+jBP;zHF|DTWT zE%LOh92qhHB&NKyOl<~6Y*w@xGqRp-oENOF7EWBUms0I>mYL}q#yLvWC!fTOm(emy3R9+rOicL{R+UyF zk_wh?BlF!JkzB^M0ngNxYZCi~n8oHOLv6XkyGvc|J5&kw9g_0wb;?l+s5VX-Iys7p zB2Ce>cZAr^bCHXP1-D$0$+BZSjd z7M1L3NvW!s$ZSm|+XK|ZA1iuT4SU8sc7WZep^LL(l7sD)%??m8`zgKqT#XYHYLAGi zb|(=VS>%{pQOa3ZW{!xT!xm}^(_>N?i*kZmeYW5|g8Qw-&@`{n8&9w#N{&zA#w@%! zOF4B?K?SERFkY21r6kV*VIv8yYU8k|+O;p4SXE7FQ7KymsyI_T85zBURCBtkb;^bt zJC);&=$rRkw5Q0H`oDy`m2wBxFg;fUdza5eR4Dk_JG`HDi$NgGqsRYtJvJz_D7 zFpxTRR3@urRkekj@O8CNkXH;(Y+hq_)v0-3jzN2Gs3KvE!JEtGFpnD!K~pCXhohVs z?r-@}$IpE?tII0b9buGo_WYQ}XjTH=vSt)rB`OQFDo|sFpgBYH)KMh07egst4cApZ zn6A}^OVe7a+2^QM5GVuY)Tn23T{-iJ6;%@@$5A*@?Uh$?si`8W3Kdwv1hs<*FDm~y z8)GP2O|%!N$;WCkOvRb(gf*q?;4!PMQB{-F1|rW@YO9mR=8%Kf)u~~%N!-jM)8h!N zy|hG~Hl$j{00}!ceUv&lQ-~QAwx|_7Cg)jA^%YrTO2a$rYv{=^#B5b4RMI%{Os1(5 zQr?6cg{HZBCGk3&o6#Tj1!Ya8+FK(UOKQc)M0ILflW}s4Dy!T$jL!5dQ^8IO20Qj? zJCcpZY97GBQkbvRXzi#!uF-|L^P0#V{Z(b)b1uoICR8X)p{g>cL{tejD#BJ#meLk@ zs(N*HhiF?pp6aP-%clB_k48yt6jM9QNarM_{(`A|1rxBF*Y>cNl!UD}> z;xd9JRGF%g>8joI8IieqsdC(~15aSS$3{8w)q|~WSJzgmjkZd5Q!*nE<)QgW>&`>- zeP2LD?4O_+XzeT6Z1dSn`0a;k-oMgQ0w_f0!5;4+DRLQIdGnJU!5ru}lz?t9GH)xL zZ5CivMxDHBLRwtc^5z8!y;^ZR^r)=|#-WOqH$4X- zB%^|rIuQX;@cIFtPk!QPvVdymaO8@4AY8SiCODc%DMT3^9dR3}l z(9(;iYRilp>8VxIN~?VG z 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 Z3HLs`js>h>8)8*DAXa4pbC5@6`+vm+#WVl_ literal 0 HcmV?d00001 From 25780a2b4f316d03d8cb2281d7b43f82ca4b90fb Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 4 Nov 2016 13:45:24 +0100 Subject: [PATCH 118/128] fixed jungfrau gui --- .../multiSlsDetector/multiSlsDetector.cpp | 37 +++++-------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 4a5e87ce3..3f6c05248 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -2231,7 +2231,6 @@ slsDetectorDefs::ROI* multiSlsDetector::getROI(int &n){ double* multiSlsDetector::decodeData(int *datain, double *fdata) { double *dataout; - cprintf(GREEN,"numchanensl:%d\n",thisMultiDetector->numberOfChannels); if (fdata) dataout=fdata; @@ -5167,7 +5166,6 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); - cprintf(BLUE,"waiting to listen to header\n"); len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { cprintf(BG_RED,"Could not read header for socket %d\n",ithread); @@ -5179,7 +5177,7 @@ void multiSlsDetector::startReceivingDataThread(){ // error if you print it // cout << ithread << " header len:"<fileName); - dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);//should be fnum and subfnum from json header - delete thisData; + dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg); fdata = NULL; cout<<"Send frame #"<< currentFrameIndex << " to gui"< Date: Fri, 4 Nov 2016 17:14:47 +0100 Subject: [PATCH 119/128] fixed jungfrau problem, changed set receiver to updatedetector before --- .../jungfrauDetectorServer/firmware_funcs.c | 28 +++++++++++++----- .../jungfrauDetectorServerv2.2.0 | Bin 126244 -> 126220 bytes .../jungfrauDetectorServer/server_funcs.c | 2 +- .../multiSlsDetector/multiSlsDetector.cpp | 15 +++++----- .../slsDetector/slsDetector.cpp | 1 + 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 2578b5cb0..0d34b10a9 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -1630,12 +1630,30 @@ int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int #endif bus_w(CONTROL_REG,GB10_RESET_BIT); - usleep(500 * 1000); + //usleep(50 * 1000); bus_w(CONTROL_REG,0); - usleep(10* 1000); + //usleep(500* 1000); + //bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); + printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); + + + /* + bus_w(CONTROL_REG,GB10_RESET_BIT); + bus_w(CONTROL_REG,0); + usleep(500 * 1000); bus_w(CONFIG_REG,conf | GB10_NOT_CPU_BIT); printf("System status register is %08x\n",bus_r(SYSTEM_STATUS_REG)); + */ + + printf("Reset mem machine fifos\n"); + bus_w(MEM_MACHINE_FIFOS_REG,0x4000); + bus_w(MEM_MACHINE_FIFOS_REG,0x0); + printf("Reset run control\n"); + bus_w(MEM_MACHINE_FIFOS_REG,0x0400); + bus_w(MEM_MACHINE_FIFOS_REG,0x0); + usleep(500 * 1000); + return 0; //any value doesnt matter - dhanya } @@ -1674,11 +1692,7 @@ int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int source for (interface=0; interface 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 z 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 L7OE$XTpa#CH`Y4R delta 42625 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 br0&3OIzbm`iWobaOKhEOrXJ$R*{S~nrq+gt diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index c09605f00..3403f901e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -2024,7 +2024,7 @@ int set_dynamic_range(int file_des) { int retval; int ret=OK; - printf("Set dynamic range?\n"); + printf("Set dynamic range\n"); sprintf(mess,"can't set dynamic range\n"); diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 3f6c05248..dea773460 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5101,7 +5101,6 @@ void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index char hostname[100] = "tcp://"; - char rx_hostname[100]; strcpy(rx_hostname, detectors[ithread]->getReceiver()); cout<<"rx_hostname:"<receiver_hostname,receiverIP.c_str()); From e4dcd1cb6b3ab88090f7d0c0fc46e0ed2f122822 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 7 Nov 2016 15:34:47 +0100 Subject: [PATCH 120/128] setting and getting printouts, changed the rx mess to 1000 --- .../jungfrauDetectorServer/firmware_funcs.c | 39 ++++++++++++------ .../jungfrauDetectorServerv2.2.0 | Bin 126220 -> 126920 bytes .../jungfrauDetectorServer/server_funcs.c | 36 +++++++++------- .../multiSlsDetector/multiSlsDetector.cpp | 4 +- .../slsDetector/slsDetector.cpp | 11 ++--- .../receiverInterface.cpp | 18 ++++---- .../slsReceiverInterface/receiverInterface.h | 3 +- 7 files changed, 66 insertions(+), 45 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 0d34b10a9..46532b854 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -1177,7 +1177,10 @@ int64_t get64BitReg(int aLSB, int aMSB){ int64_t setFrames(int64_t value){ if(value!=-1) printf("\nSetting number of frames to %lld\n",(long long int)value); - return set64BitReg(value, SET_FRAMES_LSB_REG, SET_FRAMES_MSB_REG); + + int64_t retval = set64BitReg(value, SET_FRAMES_LSB_REG, SET_FRAMES_MSB_REG); + printf("Getting number of frames: %lld\n",(long long int)retval); + return retval; } int64_t getFrames(){ @@ -1186,10 +1189,12 @@ int64_t getFrames(){ int64_t setExposureTime(int64_t value){ if (value!=-1){ - printf("\nSetting exptime to %lld\n",(long long int)value); + printf("\nSetting exptime to %lldns\n",(long long int)value); value*=(1E-3*clockdivider); } - return set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + int64_t retval = set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + printf("Getting exptime: %lldns\n",(long long int)retval); + return retval; } int64_t getExposureTime(){ @@ -1199,7 +1204,10 @@ int64_t getExposureTime(){ int64_t setGates(int64_t value){ if(value!=-1) printf("\nSetting number of gates to %lld\n",(long long int)value); - return set64BitReg(value, SET_GATES_LSB_REG, SET_GATES_MSB_REG); + + int64_t retval = set64BitReg(value, SET_GATES_LSB_REG, SET_GATES_MSB_REG); + printf("Getting number of gates: %lld\n",(long long int)retval); + return retval; } int64_t getGates(){ @@ -1208,11 +1216,13 @@ int64_t getGates(){ int64_t setPeriod(int64_t value){ if (value!=-1){ - printf("\nSetting period to %lld\n",(long long int)value); + printf("\nSetting period to %lldns\n",(long long int)value); value*=(1E-3*clockdivider); } - return set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + int64_t retval = set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + printf("Getting period: %lldns\n",(long long int)retval); + return retval; } int64_t getPeriod(){ @@ -1221,10 +1231,13 @@ int64_t getPeriod(){ int64_t setDelay(int64_t value){ if (value!=-1){ - printf("\nSetting delay to %lld\n",(long long int)value); + printf("\nSetting delay to %lldns\n",(long long int)value); value*=(1E-3*clockdivider); } - return set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + + int64_t retval = set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + printf("Getting delay: %lldns\n",(long long int)retval); + return retval; } int64_t getDelay(){ @@ -1234,7 +1247,10 @@ int64_t getDelay(){ int64_t setTrains(int64_t value){ if(value!=-1) printf("\nSetting number of cycles to %lld\n",(long long int)value); - return set64BitReg(value, SET_CYCLES_LSB_REG, SET_CYCLES_MSB_REG); + + int64_t retval = set64BitReg(value, SET_CYCLES_LSB_REG, SET_CYCLES_MSB_REG); + printf("Getting number of cycles: %lld\n",(long long int)retval); + return retval; } int64_t getTrains(){ @@ -1589,7 +1605,7 @@ int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int //int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int udpport){ - volatile u_int32_t conf= bus_r(CONFIG_REG); + /*volatile u_int32_t conf= bus_r(CONFIG_REG);*/ long int checksum=calcChecksum(sourceip, destip); #ifdef NEW_GBE_INTERFACE @@ -1679,7 +1695,6 @@ int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int source uint32_t sourceport = 0x7e9a; // 0xE185; int interface=0; int ngb; - volatile u_int32_t conf= bus_r(CONFIG_REG); #ifdef NEW_GBE_INTERFACE ngb=2; @@ -1760,7 +1775,7 @@ int startStateMachine(){ int stopStateMachine(){ //#ifdef VERBOSE - printf("*******Stopping State Machine*******\n"); + cprintf(BG_RED,"*******Stopping State Machine*******\n"); //#endif #ifdef SHAREDMEMORY write_stop_sm(1); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 index ab073fe9b623ebb9379530b8aece4ab1246d440e..57db3054e6f492b29e3f48afdb57951c8643872c 100755 GIT binary patch delta 53624 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 delta 52435 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 bsU|Jta@-TK`ulOQLzEqwLy8GQ4z>J$fSbi8 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 3403f901e..9eb31029a 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -1603,7 +1603,12 @@ int start_acquisition(int file_des) { if (differentClients==1 && lockStatus==1) { ret=FAIL; sprintf(mess,"Detector locked by %s\n",lastClientIP); - } else { + } else if (setPeriod(-1)==0){ + ret=FAIL; + sprintf(mess,"Frame Period is 0. Set it to start acquisition\n"); + cprintf(RED,"%s",mess); + } + else { ret=startStateMachine(); } if (ret==FAIL) @@ -1754,7 +1759,7 @@ int get_run_status(int file_des) { } int read_frame(int file_des) { - + dataret=FAIL; if (differentClients==1 && lockStatus==1) { dataret=FAIL; sprintf(mess,"Detector locked by %s\n",lastClientIP); @@ -1772,19 +1777,17 @@ int read_frame(int file_des) { if (getFrames()+1>0) { dataret=FAIL; sprintf(mess,"no data and run stopped: %d frames left\n",(int)(getFrames()+1)); + cprintf(RED,"%s\n",mess); } else { dataret=FINISHED; sprintf(mess,"acquisition successfully finished\n"); + printf("%s",mess); if (differentClients) dataret=FORCE_UPDATE; } #endif sendDataOnly(file_des,&dataret,sizeof(dataret)); sendDataOnly(file_des,mess,sizeof(mess)); - if(dataret == FAIL) - cprintf(RED,"%s\n",mess); - else - printf("%s",mess); return dataret; } @@ -1833,7 +1836,6 @@ int set_timer(int file_des) { int64_t retval; int ret=OK; - sprintf(mess,"can't set timer\n"); n = receiveDataOnly(file_des,&ind,sizeof(ind)); @@ -1891,16 +1893,19 @@ int set_timer(int file_des) { } } } - if (ret!=OK) { - printf(mess); - if (differentClients) - ret=FORCE_UPDATE; + + if(ret == OK && (retval!=tns) && (tns != -1)){ + ret = FAIL; + sprintf(mess,"Setting timer %d of failed: wrote %lld but read %lld\n", ind, (long long int)tns, (long long int)retval); + cprintf(RED,"%s",mess); + }else if (ret!=OK) { + cprintf(RED,"%s",mess); + cprintf(RED,"set timer failed\n"); } - if (ret!=OK) { - printf(mess); - printf("set timer failed\n"); - } + if (ret==OK && differentClients) + ret=FORCE_UPDATE; + n = sendDataOnly(file_des,&ret,sizeof(ret)); if (ret==FAIL) { @@ -2024,7 +2029,6 @@ int set_dynamic_range(int file_des) { int retval; int ret=OK; - printf("Set dynamic range\n"); sprintf(mess,"can't set dynamic range\n"); diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index dea773460..6a69c9b5a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1350,7 +1350,6 @@ int multiSlsDetector::startAcquisition(){ int multiSlsDetector::stopAcquisition(){ - int i=0; int ret=OK, ret1=OK; @@ -1447,7 +1446,8 @@ int* multiSlsDetector::getDataFromDetector() { } //eiger returns only null - if(getDetectorsType() == EIGER) + detectorType types = getDetectorsType(); + if(types == EIGER || types == JUNGFRAU) return NULL; if (nodatadet>=0) { diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 6d0652588..71a3a8eb6 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3640,7 +3640,6 @@ int slsDetector::startAcquisition(){ }; int slsDetector::stopAcquisition(){ - int fnum=F_STOP_ACQUISITION; int ret=FAIL; char mess[MAX_STR_LENGTH]=""; @@ -4088,20 +4087,22 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ args[1] = timerValue[ACQUISITION_TIME]; } - + char mess[MAX_STR_LENGTH]=""; if (connectData() == OK) - ret=thisReceiver->sendIntArray(fnum2,retval,args); + ret=thisReceiver->sendIntArray(fnum2,retval,args,mess); disconnectData(); if((args[1] != retval)|| (ret==FAIL)){ ret = FAIL; if(index==FRAME_PERIOD){ //exptime sent if acq period = 0 if(retval){ - cout << "ERROR:Acquisition Period in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; + if(strstr(mess,"receiver not idle")==NULL) + cout << "ERROR:Acquisition Period in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); } }else{ - cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; + if(strstr(mess,"receiver not idle")==NULL) + cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; setErrorMask((getErrorMask())|(RECEIVER_FRAME_NUM_NOT_SET)); } } diff --git a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp index 463d51a71..c3771e7e0 100644 --- a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp +++ b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.cpp @@ -23,7 +23,7 @@ receiverInterface::~receiverInterface(){ int receiverInterface::sendString(int fnum, char retval[], char arg[]){ int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; + char mess[MAX_STR_LENGTH] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->SendDataOnly(arg,MAX_STR_LENGTH); @@ -42,7 +42,7 @@ int receiverInterface::sendString(int fnum, char retval[], char arg[]){ int receiverInterface::sendUDPDetails(int fnum, char retval[], char arg[3][MAX_STR_LENGTH]){ char args[3][MAX_STR_LENGTH]; int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; + char mess[MAX_STR_LENGTH] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->SendDataOnly(arg,sizeof(args)); @@ -60,7 +60,7 @@ int receiverInterface::sendUDPDetails(int fnum, char retval[], char arg[3][MAX_S int receiverInterface::sendInt(int fnum, int &retval, int arg){ int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; + char mess[MAX_STR_LENGTH] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->SendDataOnly(&arg,sizeof(arg)); @@ -78,7 +78,7 @@ int receiverInterface::sendInt(int fnum, int &retval, int arg){ int receiverInterface::getInt(int fnum, int &retval){ int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; + char mess[MAX_STR_LENGTH] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); @@ -95,7 +95,7 @@ int receiverInterface::getInt(int fnum, int &retval){ int receiverInterface::sendInt(int fnum, int64_t &retval, int64_t arg){ int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; + char mess[MAX_STR_LENGTH] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->SendDataOnly(&arg,sizeof(arg)); @@ -111,15 +111,15 @@ int receiverInterface::sendInt(int fnum, int64_t &retval, int64_t arg){ -int receiverInterface::sendIntArray(int fnum, int64_t &retval, int64_t arg[2]){ +int receiverInterface::sendIntArray(int fnum, int64_t &retval, int64_t arg[2], char mess[]){ int64_t args[2]; + char messs[MAX_STR_LENGTH]; int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->SendDataOnly(arg,sizeof(args)); dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); if (ret==slsDetectorDefs::FAIL){ - dataSocket->ReceiveDataOnly(mess,sizeof(mess)); + dataSocket->ReceiveDataOnly(mess,sizeof(messs)); std::cout<< "Receiver returned error: " << mess << std::endl; } dataSocket->ReceiveDataOnly(&retval,sizeof(retval)); @@ -132,7 +132,7 @@ int receiverInterface::sendIntArray(int fnum, int64_t &retval, int64_t arg[2]){ int receiverInterface::sendIntArray(int fnum, int &retval, int arg[2]){ int args[2]; int ret = slsDetectorDefs::FAIL; - char mess[100] = ""; + char mess[MAX_STR_LENGTH] = ""; dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->SendDataOnly(arg,sizeof(args)); dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); diff --git a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h index 11e433a08..0f221f171 100644 --- a/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h +++ b/slsDetectorSoftware/slsReceiverInterface/receiverInterface.h @@ -91,9 +91,10 @@ public: * @param fnum function enum to determine what parameter * @param retval return value * @param arg values to send + * @param mess message returned * \returns success of operation */ - int sendIntArray(int fnum, int64_t &retval, int64_t arg[2]); + int sendIntArray(int fnum, int64_t &retval, int64_t arg[2],char mess[]); /** From 39a2317d8d6c2c6172ee5e83881fb00ceda3a64e Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 7 Nov 2016 17:34:41 +0100 Subject: [PATCH 121/128] somewhere --- .../jungfrauDetectorServerv2.2.0 | Bin 126920 -> 126920 bytes .../multiSlsDetector/multiSlsDetector.cpp | 7 ++++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 index 57db3054e6f492b29e3f48afdb57951c8643872c..91b3b7653ff5d1ffd6daf1f7b98b510b80a17251 100755 GIT binary patch delta 23 fcmX?cpZ&yr_6b@{(_E$}PGgj4blK{{*zz6#d;h}YgetDetectorsType() != EIGER) + if((detectors[id]->getDetectorsType() != EIGER)||(detectors[id]->getDetectorsType() != JUNGFRAU)) break; } p+=n/sizeof(int); @@ -1447,6 +1447,7 @@ int* multiSlsDetector::getDataFromDetector() { //eiger returns only null detectorType types = getDetectorsType(); + //if(types == EIGER ) if(types == EIGER || types == JUNGFRAU) return NULL; @@ -1454,9 +1455,9 @@ int* multiSlsDetector::getDataFromDetector() { for (int id=0; idnumberOfDetectors; id++) { if (id!=nodatadet) { if (detectors[id]) { -#ifdef VERBOSE +//#ifdef VERBOSE cout << "Stopping detector "<< id << endl; -#endif +//#endif detectors[id]->stopAcquisition(); if(detectors[id]->getErrorMask()) setErrorMask(getErrorMask()|(1< Date: Mon, 7 Nov 2016 17:57:03 +0100 Subject: [PATCH 122/128] deletion of retval in getdatafrom, client --- .../jungfrauDetectorServerv2.2.0 | Bin 126920 -> 126920 bytes .../multiSlsDetector/multiSlsDetector.cpp | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 index 91b3b7653ff5d1ffd6daf1f7b98b510b80a17251..f39d3b28b0be310b9ca0cda59b407ca45172b88b 100755 GIT binary patch delta 23 fcmX?cpZ&yr_6b@{8*ffeoW>~8=(5#?vE@Agg$@dQ delta 23 fcmX?cpZ&yr_6b@{(_E$}PGgj4blK{{*zz6#d;getDetectorsType() != EIGER)||(detectors[id]->getDetectorsType() != JUNGFRAU)) - break; + /*if((detectors[id]->getDetectorsType() != EIGER)||(detectors[id]->getDetectorsType() != JUNGFRAU)) + break;*/ } p+=n/sizeof(int); } @@ -1447,9 +1447,10 @@ int* multiSlsDetector::getDataFromDetector() { //eiger returns only null detectorType types = getDetectorsType(); - //if(types == EIGER ) - if(types == EIGER || types == JUNGFRAU) + if(types == EIGER || types == JUNGFRAU){ + delete [] retval; return NULL; + } if (nodatadet>=0) { for (int id=0; idnumberOfDetectors; id++) { From 8aea36b4ef51e75e436feb0ffd90c3aa38481953 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 8 Nov 2016 09:35:34 +0100 Subject: [PATCH 123/128] fixed jungfrau configure bug by getting rid of gb10reset at configure --- .../jungfrauDetectorServer/firmware_funcs.c | 6 ++- .../jungfrauDetectorServerv2.2.0 | Bin 126920 -> 126888 bytes .../jungfrauDetectorServer/registers_m.h | 2 +- .../jungfrauDetectorServer/server_funcs.c | 5 +-- .../slsDetector/slsDetectorCommand.cpp | 41 ++++++++++++++++++ .../slsDetector/slsDetectorCommand.h | 2 + 6 files changed, 50 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 46532b854..4d9ea38c1 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -167,11 +167,13 @@ void resetFPGA(){ cprintf(BLUE,"\n*** Reseting FPGA ***\n"); FPGAdontTouchFlash(); FPGATouchFlash(); + usleep(250*1000); } void FPGAdontTouchFlash(){ //tell FPGA to not touch flash system("echo 0 > /sys/class/gpio/gpio9/value"); + //usleep(100*1000); } void FPGATouchFlash(){ @@ -1645,7 +1647,7 @@ int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int #endif - bus_w(CONTROL_REG,GB10_RESET_BIT); + //bus_w(CONTROL_REG,GB10_RESET_BIT); //usleep(50 * 1000); bus_w(CONTROL_REG,0); //usleep(500* 1000); @@ -1691,7 +1693,7 @@ int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int source - + /*volatile u_int32_t conf= bus_r(CONFIG_REG);*/ uint32_t sourceport = 0x7e9a; // 0xE185; int interface=0; int ngb; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 index f39d3b28b0be310b9ca0cda59b407ca45172b88b..787bef067d9ba7e7c876d11a491cb10cbc81aee9 100755 GIT binary patch delta 53805 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 delta 54411 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 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h index 1fd30a8e2..9e4889e53 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h @@ -312,7 +312,7 @@ #define RUNSTATE_0_BIT 0x00001000 #define RUNSTATE_1_BIT 0x00002000 #define RUNSTATE_2_BIT 0x00004000 -#define STOPPED_BIT 0x00008000 // error! +#define STOPPED_BIT 0x00008000 // stopped! #define ALL_FIFO_EMPTY_BIT 0x00010000 // data ready #define RUNMACHINE_BUSY_BIT 0x00020000 #define READMACHINE_BUSY_BIT 0x00040000 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 9eb31029a..1aa941a7b 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -58,8 +58,8 @@ int init_detector(int b) { if(b){ defineGPIOpins(); resetFPGA(); - usleep(250*1000); - } + }else + usleep(300*1000); if (mapCSP0()==FAIL) { printf("Could not map memory\n"); @@ -3180,7 +3180,6 @@ int reset_fpga(int file_des) { sprintf(mess,"Reset FPGA unsuccessful\n"); resetFPGA(); - usleep(250*1000); initializeDetector(); ret = FORCE_UPDATE; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index ddfd8fa43..e57fc2c48 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -37,6 +37,9 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdStatus; i++; + descrToFuncMap[i].m_pFuncName="datastream"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdDataStream; + i++; /* Detector structure configuration and debugging commands */ @@ -1361,6 +1364,44 @@ string slsDetectorCommand::helpStatus(int narg, char *args[], int action) { } + +string slsDetectorCommand::cmdDataStream(int narg, char *args[], int action) { + +#ifdef VERBOSE + cout << string("Executing command ")+string(args[0])+string(" ( ")+cmd+string(" )\n"); +#endif + int ival=-1; + char ans[100]=""; + + myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); + + if (action==HELP_ACTION) + return helpStatus(narg,args,HELP_ACTION); + + if (action==PUT_ACTION) { + if (!sscanf(args[1],"%d",&ival)) + return string ("cannot scan datastream mode"); + + myDet->enableDataStreamingFromReceiver(ival); + } + sprintf(ans,"%d",myDet->enableDataStreamingFromReceiver()); + return string(ans); +} + + +string slsDetectorCommand::helpDataStream(int narg, char *args[], int action) { + + ostringstream os; + if (action==GET_ACTION || action==HELP_ACTION) + os << string("datastream \t gets if zmq data stream from receiver is enabled. \n"); + if (action==PUT_ACTION || action==HELP_ACTION) + os << string("datastream i\t enables/disables the zmq data stream from receiver. \n"); + return os.str(); +} + + + string slsDetectorCommand::cmdFree(int narg, char *args[], int action) { #ifdef VERBOSE diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.h b/slsDetectorSoftware/slsDetector/slsDetectorCommand.h index 454e01f9f..dd8b4c73c 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.h @@ -38,6 +38,7 @@ class slsDetectorCommand : public virtual slsDetectorDefs { static string helpData(int narg, char *args[], int action); static string helpFrame(int narg, char *args[], int action); static string helpStatus(int narg, char *args[], int action); + static string helpDataStream(int narg, char *args[], int action); static string helpFree(int narg, char *args[], int action); static string helpAdd(int narg, char *args[], int action); static string helpRemove(int narg, char *args[], int action); @@ -109,6 +110,7 @@ class slsDetectorCommand : public virtual slsDetectorDefs { string cmdData(int narg, char *args[], int action); string cmdFrame(int narg, char *args[], int action); string cmdStatus(int narg, char *args[], int action); + string cmdDataStream(int narg, char *args[], int action); string cmdFree(int narg, char *args[], int action); string cmdAdd(int narg, char *args[], int action); string cmdRemove(int narg, char *args[], int action); From dec82ab850e5e21db8b8d8fbb352c04f761044e8 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 8 Nov 2016 15:21:56 +0100 Subject: [PATCH 124/128] included datastream command earlier but not working yet --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 1 + slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 131fccc75..317e0fe6d 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5639,6 +5639,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } }else enable = threadStarted; + int ret=-100, ret1; for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index e57fc2c48..3c62d302e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -1382,7 +1382,6 @@ string slsDetectorCommand::cmdDataStream(int narg, char *args[], int action) { if (action==PUT_ACTION) { if (!sscanf(args[1],"%d",&ival)) return string ("cannot scan datastream mode"); - myDet->enableDataStreamingFromReceiver(ival); } sprintf(ans,"%d",myDet->enableDataStreamingFromReceiver()); From 5c9d610dc48a1a181762ea3967ef256299605f37 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 8 Nov 2016 15:23:56 +0100 Subject: [PATCH 125/128] updaterev --- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt | 8 ++++---- .../jungfrauDetectorServer/gitInfoJungfrau.h | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index efb1fbcc5..b9704303b 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 279965f286cc6364dec8bf7e2a837214d11bb296 -Revision: 1282 +Repsitory UUID: 5a368ba05ff24d4dd46b575e57d923e2780f9349 +Revision: 1294 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1282 -Last Changed Date: 2016-11-03 12:31:34 +0100 +Last Changed Rev: 1294 +Last Changed Date: 2016-11-08 15:21:56 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index ddbf36f53..d5d20c838 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 1f1b31ddf2516a8b2fe51c02dc3602b5fe24faa4 -Revision: 43 +Repsitory UUID: 5a368ba05ff24d4dd46b575e57d923e2780f9349 +Revision: 51 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1283 -Last Changed Date: 2016-11-03 12:32:59 +0100 +Last Changed Rev: 1294 +Last Changed Date: 2016-11-08 15:21:56 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index 55a837b29..0c962edfe 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "1f1b31ddf2516a8b2fe51c02dc3602b5fe24faa4" -//#define SVNREV 0x1283 +#define SVNREPUUID "5a368ba05ff24d4dd46b575e57d923e2780f9349" +//#define SVNREV 0x1294 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x1283 -#define SVNDATE 0x20161103 +#define SVNREV 0x1294 +#define SVNDATE 0x20161108 // diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 07fab34af..2ecb66176 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "279965f286cc6364dec8bf7e2a837214d11bb296" -//#define SVNREV 0x1282 +#define SVNREPUUIDLIB "5a368ba05ff24d4dd46b575e57d923e2780f9349" +//#define SVNREV 0x1294 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1282 -#define SVNDATELIB 0x20161103 +#define SVNREVLIB 0x1294 +#define SVNDATELIB 0x20161108 // From 475e217cc5452dadfd34bd64b3fdfcfa2503d576 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 8 Nov 2016 15:25:16 +0100 Subject: [PATCH 126/128] adding binary --- .../jungfrauDetectorServerv2.2.0 | Bin 126888 -> 126888 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 index 787bef067d9ba7e7c876d11a491cb10cbc81aee9..cdbf316386e4e580e3a8ed52b79d93bd0fc6a1dc 100755 GIT binary patch delta 71 zcmV-N0J#6C-v_AQ2aqZP;1QQWmH`-{L=YL25&>Y)yWzXix#PKl#sY!>U`OE=AP3Y)yWzXix#PKl#sY!>U`OE=AP3 Date: Tue, 8 Nov 2016 15:25:56 +0100 Subject: [PATCH 127/128] updaterevjungfrau --- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt | 8 ++++---- .../jungfrauDetectorServer/gitInfoJungfrau.h | 6 +++--- slsDetectorSoftware/slsDetector/gitInfoLib.h | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index b9704303b..d8be4fa9d 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 5a368ba05ff24d4dd46b575e57d923e2780f9349 -Revision: 1294 +Repsitory UUID: 69e9e77d6b5517bc932f2ff4d54386d886ef6c39 +Revision: 1296 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1294 -Last Changed Date: 2016-11-08 15:21:56 +0100 +Last Changed Rev: 1296 +Last Changed Date: 2016-11-08 15:25:16 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index d5d20c838..28267fca2 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 5a368ba05ff24d4dd46b575e57d923e2780f9349 -Revision: 51 +Repsitory UUID: 69e9e77d6b5517bc932f2ff4d54386d886ef6c39 +Revision: 53 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1294 -Last Changed Date: 2016-11-08 15:21:56 +0100 +Last Changed Rev: 1296 +Last Changed Date: 2016-11-08 15:25:16 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index 0c962edfe..686601243 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "5a368ba05ff24d4dd46b575e57d923e2780f9349" -//#define SVNREV 0x1294 +#define SVNREPUUID "69e9e77d6b5517bc932f2ff4d54386d886ef6c39" +//#define SVNREV 0x1296 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x1294 +#define SVNREV 0x1296 #define SVNDATE 0x20161108 // diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 2ecb66176..f96288d5f 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "5a368ba05ff24d4dd46b575e57d923e2780f9349" -//#define SVNREV 0x1294 +#define SVNREPUUIDLIB "69e9e77d6b5517bc932f2ff4d54386d886ef6c39" +//#define SVNREV 0x1296 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1294 +#define SVNREVLIB 0x1296 #define SVNDATELIB 0x20161108 // From d30e4a4d1c16af7a0ab495f862f85ef831ca8d78 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 8 Nov 2016 15:26:18 +0100 Subject: [PATCH 128/128] updaterev --- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index d8be4fa9d..c16491e70 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 69e9e77d6b5517bc932f2ff4d54386d886ef6c39 -Revision: 1296 +Repsitory UUID: a10faa8aa60e206c4a0a25ae366e9c1e6f024cbc +Revision: 1297 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1296 -Last Changed Date: 2016-11-08 15:25:16 +0100 +Last Changed Rev: 1297 +Last Changed Date: 2016-11-08 15:25:56 +0100 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index f96288d5f..c2fbbfdcc 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "69e9e77d6b5517bc932f2ff4d54386d886ef6c39" -//#define SVNREV 0x1296 +#define SVNREPUUIDLIB "a10faa8aa60e206c4a0a25ae366e9c1e6f024cbc" +//#define SVNREV 0x1297 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1296 +#define SVNREVLIB 0x1297 #define SVNDATELIB 0x20161108 //

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 D*=goj diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 6dfd67b74..53089185b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -1312,7 +1312,9 @@ int getBebFPGATemp(){ int activate(int enable){ - return Beb_Activate(enable); + int ret = Beb_Activate(enable); + Feb_Control_activate(ret); + return ret; } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 7565aeaf8..f9934f21a 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1270,6 +1270,13 @@ int slsDetector::activate(int const enable){ int arg = enable; char mess[MAX_STR_LENGTH]=""; int ret = OK; + + if(thisDetector->myDetectorType != EIGER){ + std::cout<< "Not implemented for this detector" << std::endl; + setErrorMask((getErrorMask())|(DETECTOR_ACTIVATE)); + return -1; + } + #ifdef VERBOSE if(!enable) std::cout<< "Deactivating Detector" << std::endl; @@ -1296,11 +1303,36 @@ int slsDetector::activate(int const enable){ } } #ifdef VERBOSE - if(retval) + if(retval==1) std::cout << "Detector Activated" << std::endl; - else + else if(retval==0) std::cout << "Detector Deactivated" << std::endl; + else + std::cout << "Detector Activation unknown:" << retval << std::endl; #endif + + if(ret!=FAIL){ + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ +#ifdef VERBOSE + std::cout << "Activating/Deactivating Receiver: " << retval << std::endl; +#endif + if (connectData() == OK) + ret=thisReceiver->sendInt(fnum,retval,retval); + disconnectData(); + if(ret==FAIL) + setErrorMask((getErrorMask())|(RECEIVER_ACTIVATE)); + } + } +#ifdef VERBOSE + if(retval==1) + std::cout << "Receiver Activated" << std::endl; + else if(retval==0) + std::cout << "Receiver Deactivated" << std::endl; + else + std::cout << "Receiver Activation unknown:" << retval << std::endl; +#endif + + return retval; } @@ -5535,6 +5567,7 @@ char* slsDetector::setReceiver(string receiverIP){ setTimer(FRAME_PERIOD,thisDetector->timerValue[FRAME_PERIOD]); setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); setDynamicRange(thisDetector->dynamicRange); + activate(-1); //set scan tag setUDPConnection(); if(thisDetector->myDetectorType == EIGER) From 13cff71faf08c8beeeebba2638b05d78fa46fbd5 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 4 Oct 2016 14:43:02 +0200 Subject: [PATCH 025/128] got rid of activate function definition redeclaration in receiver funcs --- .../commonFiles/sls_detector_funcs.h | 1 - .../bin/eigerDetectorServer | Bin 0 -> 277434 bytes 2 files changed, 1 deletion(-) create mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index d30312142..74405a0a4 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -104,7 +104,6 @@ enum { F_GET_RATE_CORRECT, /** < get rate correction tau */ - F_ACTIVATE, /** < activate/deactivate readout */ F_SET_NETWORK_PARAMETER, /**< set network parameters such as transmission delay, flow control */ F_PROGRAM_FPGA /**< program FPGA */ diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer new file mode 100755 index 0000000000000000000000000000000000000000..c4221b0085a6e7f1bc9e33ba41a0851d0a303f61 GIT binary patch literal 277434 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

E9zP>zLQWzNJcN9J9;(>E|$R{T2e| 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 delta 50858 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 i++) { + if (detectors[i]) { + ret=detectors[i]->programFPGA(fname); + if(detectors[i]->getErrorMask()) + setErrorMask(getErrorMask()|(1<myDetectorType != EIGER){/**jungfrau*/ + std::cout << "Not implemented for this detector" << std::endl; + return FAIL; + } + + //check if it exists + struct stat st; + if(stat(fname.c_str(),&st)){ + std::cout << "Programming file does not exist" << endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } + + //convert it to rawbin + string destfname = fname; + destfname.replace(destfname.end()-4,destfname.end(),".rawbin"); //replace .pof with .rawbin +//#ifdef VERBOSE + std::cout << "Converting " << fname << " to " << destfname << std::endl; +//#endif + int filepos,x,y,i; + FILE* src = fopen(fname.c_str(),"rb"); + FILE* dst = fopen(destfname.c_str(),"wb"); + // Remove header (0...11C) + for (filepos=0; filepos < 0x11C; filepos++) + fgetc(src); + // Write 0x80 times 0xFF (0...7F) + for (filepos=0; filepos < 0x80; filepos++) + fputc(0xFF,dst); + // Swap bits and write to file + for (filepos=0x80; filepos < 0x1000000; filepos++) { + x = fgetc(src); + if (x < 0) break; + + y=0; + for (i=0; i < 8; i++) + y=y| ( (( x & (1<> i) << (7-i) ); // This swaps the bits + + fputc(y,dst); + } + if (filepos < 0x1000000){ + std::cout << "ERROR: EOF before end of flash" << std::endl; + setErrorMask((getErrorMask())|(PROGRAMMING_ERROR)); + return FAIL; + } +//#ifdef VERBOSE + std::cout << "File has been converted to " << destfname << ". Sending it to /tftpboot" << std::endl; +//#endif + string onlyfilename = destfname; + size_t foundSlash = onlyfilename.rfind('/'); + if(foundSlash != string::npos) + onlyfilename.erase(onlyfilename.begin(),onlyfilename.begin()+foundSlash+1); + cout<<"\nonly file name:"<setOnline(ONLINE_FLAG); + if (action==PUT_ACTION) { + string sval=string(args[1]); + if (sval=="none") + flag=NORMAL_READOUT; + else if (sval=="storeinram") + flag=STORE_IN_RAM; + else if (sval=="tot") + flag=TOT_MODE; + else if (sval=="continous") + flag=CONTINOUS_RO; + else if (sval=="parallel") + flag=PARALLEL; + else if (sval=="nonparallel") + flag=NONPARALLEL; + else if (sval=="safe") + flag=SAFE; + else + return string("could not scan flag ")+string(args[1]); + } - retval = myDet->setReadOutFlags(flag); - if(retval == NORMAL_READOUT) - return string("none"); + myDet->setOnline(ONLINE_FLAG); - if(retval & STORE_IN_RAM) - strcat(answer,"storeinram "); - if(retval & TOT_MODE) - strcat(answer,"tot "); - if(retval & CONTINOUS_RO) - strcat(answer,"continous "); - if(retval & PARALLEL) - strcat(answer,"parallel "); - if(retval & NONPARALLEL) - strcat(answer,"nonparallel "); - if(retval & SAFE) - strcat(answer,"safe "); - if(strlen(answer)) - return string(answer); + retval = myDet->setReadOutFlags(flag); - return string("unknown"); + if(retval == NORMAL_READOUT) + return string("none"); - } else if (cmd=="extsig") { - externalSignalFlag flag=GET_EXTERNAL_SIGNAL_FLAG; - int is=-1; - if (sscanf(args[0],"extsig:%d",&is)) - ; - else - return string("could not scan signal number ")+string(args[0]); - - if (action==PUT_ACTION) { - flag=myDet->externalSignalType(args[1]); - if (flag==GET_EXTERNAL_SIGNAL_FLAG) - return string("could not scan external signal mode ")+string(args[1]); - } - myDet->setOnline(ONLINE_FLAG); - - return myDet->externalSignalType(myDet->setExternalSignalFlags(flag,is)); + if(retval & STORE_IN_RAM) + strcat(answer,"storeinram "); + if(retval & TOT_MODE) + strcat(answer,"tot "); + if(retval & CONTINOUS_RO) + strcat(answer,"continous "); + if(retval & PARALLEL) + strcat(answer,"parallel "); + if(retval & NONPARALLEL) + strcat(answer,"nonparallel "); + if(retval & SAFE) + strcat(answer,"safe "); + if(strlen(answer)) + return string(answer); - } else - return string("could not decode flag ")+cmd; + return string("unknown"); + + } else if (cmd=="extsig") { + externalSignalFlag flag=GET_EXTERNAL_SIGNAL_FLAG; + int is=-1; + if (sscanf(args[0],"extsig:%d",&is)) + ; + else + return string("could not scan signal number ")+string(args[0]); + + if (action==PUT_ACTION) { + flag=myDet->externalSignalType(args[1]); + if (flag==GET_EXTERNAL_SIGNAL_FLAG) + return string("could not scan external signal mode ")+string(args[1]); + } + myDet->setOnline(ONLINE_FLAG); + + return myDet->externalSignalType(myDet->setExternalSignalFlags(flag,is)); + + } else if (cmd=="programfpga") { + if (action==GET_ACTION) + return string("cannot get"); + + if (narg<2) + return string("wrong usage: should specify programming file"); + if(strstr(args[1],".pof")==NULL) + return string("wrong usage: should specify programming file with .pof extension"); + + string sval=string(args[1]); +#ifdef VERBOSE + std::cout<< " programming file " << sval << std::endl; +#endif + if(myDet->programFPGA(sval) == OK) + return string("programming successful"); + return string("programming unsuccessful"); + } + else + return string("could not decode flag ")+cmd; } @@ -4344,6 +4365,7 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) { os << "extsig:i mode \t sets the mode of the external signal i. can be \n \t \t \t off, \n \t \t \t gate_in_active_high, \n \t \t \t gate_in_active_low, \n \t \t \t trigger_in_rising_edge, \n \t \t \t trigger_in_falling_edge, \n \t \t \t ro_trigger_in_rising_edge, \n \t \t \t ro_trigger_in_falling_edge, \n \t \t \t gate_out_active_high, \n \t \t \t gate_out_active_low, \n \t \t \t trigger_out_rising_edge, \n \t \t \t trigger_out_falling_edge, \n \t \t \t ro_trigger_out_rising_edge, \n \t \t \t ro_trigger_out_falling_edge" << std::endl; os << "flags mode \t sets the readout flags to mode. can be none, storeinram, tot, continous, parallel, nonparallel, safe, unknown" << std::endl; + os << "programfpga f \t programs the fpga with file f with .pof" << std::endl; } if (action==GET_ACTION || action==HELP_ACTION) { diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index e48b1568d..4ed5961fa 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -491,6 +491,12 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { */ virtual int loadSettingsFile(string fname, int imod=-1)=0; + /** programs FPGA with pof file + \param fname file name + \returns OK or FAIL + */ + virtual int programFPGA(string fname)=0; + /** saves the modules settings/trimbits writing to a file From 5c81abdce0d825a2ef42e3a950b2b6d7ceecc879 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 26 Sep 2016 12:00:23 +0200 Subject: [PATCH 019/128] jungfrau programming change --- slsDetectorSoftware/slsDetector/slsDetector.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 46b04c2fe..ed7c4e265 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -6431,13 +6431,14 @@ int slsDetector::programFPGA(string fname){ //#ifdef VERBOSE std::cout << "File has been converted to " << destfname << ". Sending it to /tftpboot" << std::endl; //#endif - string onlyfilename = destfname; - size_t foundSlash = onlyfilename.rfind('/'); - if(foundSlash != string::npos) - onlyfilename.erase(onlyfilename.begin(),onlyfilename.begin()+foundSlash+1); - cout<<"\nonly file name:"< Date: Tue, 27 Sep 2016 20:47:59 +0200 Subject: [PATCH 020/128] change server with new boundary for counts above teh max --- .../eigerDetectorServer/FebControl.c | 48 ++++++++++-------- ....0.14.0 => eigerDetectorServerv2.2.0.14.1} | Bin 281582 -> 281618 bytes 2 files changed, 28 insertions(+), 20 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.2.0.14.0 => eigerDetectorServerv2.2.0.14.1} (60%) diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index e96794689..ea9c1a32a 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -64,7 +64,7 @@ int Feb_control_master = 0; unsigned int Feb_Control_rate_correction_table[1024]; double Feb_Control_rate_meas[16384]; - +double ratemax=-1; void Module_Module(struct Module* mod,unsigned int number, unsigned int address_top){ unsigned int i; @@ -1792,7 +1792,6 @@ int Feb_Control_PulseChip(int npulses){ int64_t Feb_Control_Get_RateTable_Tau_in_nsec(){ return Feb_Control_RateTable_Tau_in_nsec;} int64_t Feb_Control_Get_RateTable_Period_in_nsec(){ return Feb_Control_RateTable_Period_in_nsec;} -//returns -1 if slope is too high int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ //period = exptime if 16bit, period = subexptime if 32 bit @@ -1803,25 +1802,28 @@ int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ double tau_in_sec = (double)tau_in_Nsec/(double)1e9; + printf(" tau %lf %lf ", (double)tau_in_Nsec, (double) tau_in_sec); + unsigned int np = 16384; //max slope 16 * 1024 double b0[1024]; double m[1024]; if(tau_in_sec<0||period_in_sec<0){ if(dr == 32) - printf("Error tau %f and sub_exposure_time %f must be greater than 0.\n", tau_in_sec, period_in_sec); + printf("Error tau %lf and sub_exposure_time %lf must be greater than 0.\n", tau_in_sec, period_in_sec); else - printf("Error tau %f and exposure_time %f must be greater than 0.\n", tau_in_sec, period_in_sec); + printf("Error tau %lf and exposure_time %lf must be greater than 0.\n", tau_in_sec, period_in_sec); return 0; } - cprintf(BLUE, "Changing Rate Correction Table tau:%f sec, period:%f sec",tau_in_sec,period_in_sec); + cprintf(BLUE, "Changing Rate Correction Table tau:%0.8f sec, period:%f sec",tau_in_sec,period_in_sec); printf("\tCalculating table for tau of %lld ns.\n", tau_in_Nsec); int i; - for(i=0;i ratemax) ratemax= Feb_Control_rate_meas[i]; + } /* b : index/address of block ram/rate correction table @@ -1840,13 +1842,11 @@ int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ */ int next_i=0; + double beforemax; b0[0] = 0; m[0] = 1; - for(i=0; i<1024; i++) - Feb_Control_rate_correction_table[i] = 65535; - - Feb_Control_rate_correction_table[0] = (((int)(m[0]+0.5)&0xf)<<14) | ((int)(b0[0]+0.5)&0x3fff); + Feb_Control_rate_correction_table[0] = (((int)(m[0]+0.5)&0xf)<<14) | ((int)(b0[0]+0.5)&0x3fff); int b=0; for(b=1;b<1024;b++){ @@ -1854,9 +1854,13 @@ int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ double s=0,sx=0,sy=0,sxx=0,sxy=0; for(;;next_i++){ if(next_i>=np){ + for(; b<1024; b++){ + if(beforemax>ratemax) b0[b] = beforemax; + else b0[b] = ratemax; + m[b] = 15; + Feb_Control_rate_correction_table[b] = (((int)(m[b]+0.5)&0xf)<<14) | ((int)(b0[b]+0.5)&0x3fff); + } b=1024; - b0[b] = 16383; - m[b] = 15; break; } @@ -1880,17 +1884,20 @@ int Feb_Control_SetRateCorrectionTau(int64_t tau_in_Nsec){ double delta = s*sxx - sx*sx; b0[b] = (sxx*sy - sx*sxy)/delta; m[b] = (s*sxy - sx*sy) /delta; - + beforemax= b0[b]; + if(m[b]<0||m[b]>15){ m[b]=15; - b0[b]=16383; + if(beforemax>ratemax) b0[b] = beforemax; + else b0[b] = ratemax; } /*printf("After Loop s: %f,\t sx: %f,\t sy: %f,\t sxx: %f,\t sxy: %f,\t " "next_i: %d,\t b: %d,\t Feb_Control_rate_meas[next_i]: %f\n", s, sx, sy, sxx, sxy, next_i, b, Feb_Control_rate_meas[next_i]);*/ // cout<ratemax) b0[b] = beforemax; + else b0[b] = ratemax; m[b] = 15; } Feb_Control_rate_correction_table[b] = (((int)(m[b]+0.5)&0xf)<<14) | ((int)(b0[b]+0.5)&0x3fff); @@ -1971,11 +1978,12 @@ int Feb_Control_PrintCorrectedValues(){ lsb = i&3; base = Feb_Control_rate_correction_table[i>>2] & 0x3fff; slope = ((Feb_Control_rate_correction_table[i>>2] & 0x3c000) >> 14); - delta = slope*lsb; - corr = delta+base; - if(base==16383 && slope==15) corr=4095; - printf("Readout Input: %d,\tBase:%d,\tSlope:%d,\tLSB:%d,\tDelta:%d\tResult:%d\tReal:%f\n", + delta = slope*lsb; + corr = delta+base; + if(slope==15) corr= 3*slope+base; + + printf("Readout Input: %d,\tBase:%d,\tSlope:%d,\tLSB:%d,\tDelta:%d\tResult:%d\tReal:%lf\n", i, base, slope, lsb, delta, corr, Feb_Control_rate_meas[i]); } return 1; diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 similarity index 60% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 index 57ce1f888858f313e012e1431cd796101c5a8bb1..658df43b3d5d2ec1f4b039c1042105e9a8ddb91c 100755 GIT binary patch delta 45698 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 delta 45796 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 QH?o|MMg;a$ICYW#2NMf Date: Thu, 29 Sep 2016 10:28:27 +0200 Subject: [PATCH 021/128] added prgoramfpga functionality, currently gpio definitions required in /etc/rc file, will rectify in later commits --- .../commonFiles/sls_detector_funcs.h | 4 +- .../eigerDetectorServer/gitInfo.txt | 8 +- .../eigerDetectorServer/gitInfoEiger.h | 4 +- .../jungfrauDetectorServer/README.txt | 11 ++ .../jungfrauDetectorServer/firmware_funcs.c | 118 +++++++++++++ .../jungfrauDetectorServer/firmware_funcs.h | 5 + .../jungfrauDetectorServerTest | Bin 133140 -> 135700 bytes .../jungfrauDetectorServerv2.0.3 | Bin 133140 -> 0 bytes .../jungfrauDetectorServerv2.2.0 | Bin 0 -> 135700 bytes .../jungfrauDetectorServer/server_funcs.c | 134 +++++++++++++++ .../jungfrauDetectorServer/server_funcs.h | 2 + slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 +- .../slsDetector/slsDetector.cpp | 156 ++++++++++++++++-- 13 files changed, 423 insertions(+), 27 deletions(-) create mode 100644 slsDetectorSoftware/jungfrauDetectorServer/README.txt delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.0.3 create mode 100755 slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index 047f0c10b..d09ee273d 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -104,7 +104,9 @@ enum { F_GET_RATE_CORRECT, /** < get rate correction tau */ F_ACTIVATE, /** < activate/deactivate readout */ - F_SET_NETWORK_PARAMETER /**< set network parameters such as transmission delay, flow control */ + F_SET_NETWORK_PARAMETER, /**< set network parameters such as transmission delay, flow control */ + + F_PROGRAM_FPGA /**< program FPGA */ /* Always append functions hereafter!!! */ diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index 699f0201f..cd9d988a3 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 372aa91aaff8c6acd0fb70a257774ac56974a4b1 -Revision: 233 -Branch: 2.1-rc +Repsitory UUID: d0ef24c35c9b677a297a0ebf7f19a0196df424b5 +Revision: 237 +Branch: developer Last Changed Author: Dhanya_Maliakal Last Changed Rev: 22 -Last Changed Date: 2016-09-22 17:16:49 +0200 +Last Changed Date: 2016-09-26 12:00:23 +0200 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 2f61cd1dc..530c99b36 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "372aa91aaff8c6acd0fb70a257774ac56974a4b1" +#define SVNREPUUID "d0ef24c35c9b677a297a0ebf7f19a0196df424b5" //#define SVNREV 0x22 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" #define SVNREV 0x22 -#define SVNDATE 0x20160922 +#define SVNDATE 0x20160926 // diff --git a/slsDetectorSoftware/jungfrauDetectorServer/README.txt b/slsDetectorSoftware/jungfrauDetectorServer/README.txt new file mode 100644 index 000000000..7785cee12 --- /dev/null +++ b/slsDetectorSoftware/jungfrauDetectorServer/README.txt @@ -0,0 +1,11 @@ +add the following to /etc/rc before using programfpga command before cat motd + + +#registering 7th and 9th pin to linux kernel +echo 7 > /sys/class/gpio/export +echo 9 > /sys/class/gpio/export +#define direction for the linux kernel +echo in > /sys/class/gpio/gpio7/direction +echo out > /sys/class/gpio/gpio9/direction +#needed, else all write errors when server starts up, because linux tries to take control fof gpio +echo 1 > /sys/class/gpio/gpio9/value diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 1765f4662..39f5df976 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -114,6 +114,8 @@ int masterMode=NO_MASTER, syncMode=NO_SYNCHRONIZATION, timingMode=AUTO_TIMING; enum externalSignalFlag signals[4]={EXT_SIG_OFF, EXT_SIG_OFF, EXT_SIG_OFF, EXT_SIG_OFF}; int withGotthard = 0; +char mtdvalue[10]; + /**is not const because this value will change after initDetector, is removed from mcb_funcs.c cuz its not used anywhere * why is this used anywhere instead of macro*/ @@ -3377,4 +3379,120 @@ int setDac(int dacnum,int dacvalue){ } +void eraseFlash(){ +#ifdef VERY_VERBOSE + printf("\n at eraseFlash \n"); +#endif + + char command[255]; + sprintf(command,"flash_eraseall %s",mtdvalue); + system(command); + printf("flash erased\n"); +} + + +int startWritingFPGAprogram(FILE** filefp){ +#ifdef VERY_VERBOSE + printf("\n at startWritingFPGAprogram \n"); +#endif + + //getting the drive + char output[255]; + FILE* fp = popen("awk \'$4== \"\\\"bitfile(spi)\\\"\" {print $1}\' /proc/mtd", "r"); + fgets(output, sizeof(output), fp); + pclose(fp); + strcpy(mtdvalue,"/dev/"); + char* pch = strtok(output,":"); + if(pch == NULL){ + cprintf(RED,"Could not get mtd value\n"); + return FAIL; + } + strcat(mtdvalue,pch); + printf ("\nWriting FPGA program to flash.\nThe drive is %s\n",mtdvalue); + + + //tell FPGA to not touch flash + system("echo 0 > /sys/class/gpio/gpio9/value"); + /* + char output2[255]; + fp = popen("echo 0 > /sys/class/gpio/gpio9/value","r"); + fgets(output2, sizeof(output2), fp); + pclose(fp); + printf("strlen output %d\n", strlen(output2)); //always 1 + printf("output got:%s\n",output2); + if(strstr (output2,"No such file or directory")!= NULL){ //doesnt notice + printf("matched!\n"); + return -1; + } + printf("not matched\n"); +*/ + + + //writing the program to flash + *filefp = fopen(mtdvalue, "w"); + if(*filefp == NULL){ + cprintf(RED,"Unable to open %s in write mode\n",mtdvalue); + return FAIL; + } + printf("flash ready for writing\n"); + + return OK; +} + +int stopWritingFPGAprogram(FILE* filefp){ +#ifdef VERY_VERBOSE + printf("\n at stopWritingFPGAprogram \n"); +#endif + + int wait = 0; + if(filefp!= NULL){ + fclose(filefp); + wait = 1; + } + + + //tell FPGA to touch flash to program itself + system("echo 1 > /sys/class/gpio/gpio9/value"); + + if(wait){ +#ifdef VERY_VERBOSE + printf("Waiting for FPGA to program from flash\n"); +#endif + //waiting for success or done + char output[255]; + int res=0; + while(res == 0){ + FILE* sysFile = popen("cat /sys/class/gpio/gpio7/value", "r"); + fgets(output, sizeof(output), sysFile); + pclose(sysFile); + sscanf(output,"%d",&res); +#ifdef VERY_VERBOSE + printf("gpi07 returned %d\n",res); +#endif + } + } + printf("FPGA has picked up the program from flash\n\n"); + + return OK; +} + +int writeFPGAProgram(char* fpgasrc, size_t fsize, FILE* filefp){ +#ifdef VERY_VERBOSE + printf("\n at writeFPGAProgram \n"); + cprintf(BLUE,"address of fpgasrc:%p\n",(void *)fpgasrc); + cprintf(BLUE,"fsize:%d\n",fsize); + cprintf(BLUE,"pointer:%p\n",(void*)filefp); +#endif + + if(fwrite((void*)fpgasrc , sizeof(char) , fsize , filefp )!= fsize){ + cprintf(RED,"Could not write FPGA source to flash\n"); + return FAIL; + } +#ifdef VERY_VERBOSE + cprintf(BLUE,"program written to flash\n"); +#endif + return OK; +} + + diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h index a9c6316c1..a7945678e 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.h @@ -184,6 +184,11 @@ int setDac(int dacnum,int dacvalue); ROI *setROI(int nroi,ROI* arg,int *retvalsize, int *ret); int getChannels(); +void eraseFlash(); +int startWritingFPGAprogram(FILE** filefp); +int stopWritingFPGAprogram(FILE* filefp); +int writeFPGAProgram(char* fpgasrc, size_t fsize, FILE* filefp); + /* u_int32_t setNBits(u_int32_t); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerTest b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerTest index a4574f51fc1b1244abf1eb5afbe668244ddadab0..cf3566f1de072ca5d45eaa9c106ff379515c2441 100755 GIT binary patch delta 68133 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