R:$CDAq.cpp'// CDan.cpp : Defines the initialization routines for the DLL. // 2007-90 #include "stdafx.h" #include "LMFPreEventData.h" #include "CoboldDll.h" #include "CDan.h" #include "math.h" //#include "CDAq.h" #include "LMInfo.h" #include "SharedClass.h" #include "UserSP.h" #include "CoordinatesMath.h" #include "Coltrims.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #ifndef _DEBUG extern "C" IMAGE_DOS_HEADER __ImageBase; #endif extern CDoubleArray *i_det_sum_correction_table_x[3]; extern CDoubleArray *i_det_sum_correction_table_y[3]; extern CDoubleArray *i_det_pos_correction_table_x[3]; extern CDoubleArray *i_det_pos_correction_table_y[3]; #ifdef FULL_COLTRIMS_DAN extern CDoubleArray *e_det_sum_correction_table_x[3]; extern CDoubleArray *e_det_sum_correction_table_y[3]; extern CDoubleArray *e_det_pos_correction_table_x[3]; extern CDoubleArray *e_det_pos_correction_table_y[3]; #endif ///////////////////////////////////////////////////////////////////////////// // CCDanApp BEGIN_MESSAGE_MAP(CCDanApp, CWinApp) //{{AFX_MSG_MAP(CCDanApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCDanApp construction CUserSpectrum *pUserSP; CSourceCodeInformation *pCodeInformation; ///////////////////////////////////////////////////////////////////////////// // The one and only CCDanApp object CCDanApp theApp; CString *pDllFilePathName; typedef SharedClass * (*MyProc4)(); MyProc4 Get_shared_class_instance; extern CoordinatesParser_class * CoordinatesParser_instance; CCDanApp::CCDanApp() { // get the dll's loaded path-file name pDllFilePathName = new CString(""); char *pcStr = new char[MAX_PATH]; GetModuleFileName((HINSTANCE)&__ImageBase,pcStr,MAX_PATH); pDllFilePathName->Append(pcStr); if(pcStr) { delete[] pcStr; pcStr = NULL; } } BOOL CCDanApp::InitInstance() { if(!CWinApp::InitInstance()) return FALSE; // prepare SharedClass and UserSHM this->SharedClassInstance = 0; this->UserSHM_DLL_is_bound = false; this->UserSHM_lib_handle = 0; BindUserSHMDll(); // prepare user access to certain spectrum commands pUserSP = (CUserSpectrum *)new CUserSpectrum(); // prepare source code information pCodeInformation = (CSourceCodeInformation *)new CSourceCodeInformation(); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "CDAN", "CDAq.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "DANUTILITIES", "DanUtilities.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "DAN", "DAn.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "STDAFX", "StdAfx.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "WRITE_FILE", "Write_File.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_CPP", "DAN_DANUSERUTILITIES", "DAN_UserUtilities.cpp")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "CDAN", "CDAn.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "CHECKPROCESS", "CheckProcess.H")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "COBOLDDLL", "CoboldDll.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "LMFPREEVENTDATA", "LMFPreEventData.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "LMINFO", "LMInfo.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "RESOURCE", "resource.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "SHAREDCLASS", "SharedClass.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "STDAFX", "StdAfx.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "USERSP", "UserSP.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "COLTRIMS", "Coltrims.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "RESORT64C", "resort64c.h")); pCodeInformation->coaCodeInformation.Add(new CCodeInformation("IDS_SOURCE_H", "WRITE_FILE", "Write_File.h")); for (__int32 i=0;i<3;++i) { if (i_det_sum_correction_table_x[i]) i_det_sum_correction_table_x[i]=0; if (i_det_sum_correction_table_y[i]) i_det_sum_correction_table_y[i]=0; if (i_det_pos_correction_table_x[i]) i_det_pos_correction_table_x[i]=0; if (i_det_pos_correction_table_y[i]) i_det_pos_correction_table_y[i]=0; #ifdef FULL_COLTRIMS_DAN if (e_det_sum_correction_table_x[i]) e_det_sum_correction_table_x[i]=0; if (e_det_sum_correction_table_y[i]) e_det_sum_correction_table_y[i]=0; if (e_det_pos_correction_table_x[i]) e_det_pos_correction_table_x[i]=0; if (e_det_pos_correction_table_y[i]) e_det_pos_correction_table_y[i]=0; #endif } return TRUE; } __int32 CCDanApp::ExitInstance() { for (__int32 i=0;i<3;++i) { if (i_det_sum_correction_table_x[i]) {delete i_det_sum_correction_table_x[i]; i_det_sum_correction_table_x[i]=0;} if (i_det_sum_correction_table_y[i]) {delete i_det_sum_correction_table_y[i]; i_det_sum_correction_table_y[i]=0;} if (i_det_pos_correction_table_x[i]) {delete i_det_pos_correction_table_x[i]; i_det_pos_correction_table_x[i]=0;} if (i_det_pos_correction_table_y[i]) {delete i_det_pos_correction_table_y[i]; i_det_pos_correction_table_y[i]=0;} #ifdef FULL_COLTRIMS_DAN if (e_det_sum_correction_table_x[i]) {delete e_det_sum_correction_table_x[i]; e_det_sum_correction_table_x[i]=0;} if (e_det_sum_correction_table_y[i]) {delete e_det_sum_correction_table_y[i]; e_det_sum_correction_table_y[i]=0;} if (e_det_pos_correction_table_x[i]) {delete e_det_pos_correction_table_x[i]; e_det_pos_correction_table_x[i]=0;} if (e_det_pos_correction_table_y[i]) {delete e_det_pos_correction_table_y[i]; e_det_pos_correction_table_y[i]=0;} #endif } // release UserSP if(pUserSP) { delete pUserSP; pUserSP = NULL; } // release source CodeInformation if(pCodeInformation) { pCodeInformation->coaCodeInformation.RemoveAll(); pCodeInformation->coaCodeInformation.FreeExtra(); delete pCodeInformation; pCodeInformation = NULL; } // release UserSHM if(this->UserSHM_lib_handle) { FreeLibrary(UserSHM_lib_handle); UserSHM_lib_handle = 0; UserSHM_DLL_is_bound = false; } return CWinApp::ExitInstance(); } ///////////////////////////////////////////////////////////////////////////// // Local variables used for Event Time functions double _dOldEventTime; double _dStartEventTime; bool CCDanApp::BindUserSHMDll() { if(UserSHM_DLL_is_bound) return true; if(!UserSHM_lib_handle) UserSHM_lib_handle = LoadLibrary("UserSHM.dll"); if(UserSHM_lib_handle) { Get_shared_class_instance = (MyProc4)GetProcAddress(UserSHM_lib_handle,"SHMGetSharedClassInstance"); SharedClassInstance = Get_shared_class_instance(); if(SharedClassInstance) UserSHM_DLL_is_bound = true; else UserSHM_DLL_is_bound = false; if(SharedClassInstance) { SharedClassInstance->csDAnNameAndPath = CString(theApp.m_pszHelpFilePath); SharedClassInstance->csDAnNameAndPath = SharedClassInstance->csDAnNameAndPath.Left(SharedClassInstance->csDAnNameAndPath.GetLength()-3); SharedClassInstance->csDAnNameAndPath += CString("dll"); } } else { AfxMessageBox(CString("UserSHM.dll not found by DAn")); } return UserSHM_DLL_is_bound; } ///////////////////////////////////////////////////////////////////////////// // DAnGetDllPathName // ----------------- // returns name and path of the loaded dll CString &DAnGetDllPathName() { return *pDllFilePathName; } ///////////////////////////////////////////////////////////////////////////// // GetDeltaEventTime // ----------------- // Calculate the time between two events // returns time in seconds (always 0 for the first event!) double GetDeltaEventTime(LMFPreEventData &preEventData, CDoubleArray &Parameter) { LARGE_INTEGER liTime = preEventData.TimeStamp; double dTimeScaling = Parameter[4]; // frequency, in counts per second, of the high-resolution performance counter double dEventTime = (double)liTime.QuadPart; dEventTime /= dTimeScaling; double dDeltaEventTime = _dOldEventTime != 0.0 ? dEventTime - _dOldEventTime : 0.0; _dOldEventTime = dEventTime; return dDeltaEventTime; } ///////////////////////////////////////////////////////////////////////////// // GetEventTime // ------------ // Calculate the time between the aktual event and the first event // returns time in seconds double GetEventTime(LMFPreEventData &preEventData, CDoubleArray &Parameter) { LARGE_INTEGER liTime = preEventData.TimeStamp; double dTimeScaling = Parameter[4]; // frequency, in counts per second, of the high-resolution performance counter double dEventTime = (double)liTime.QuadPart; dEventTime /= dTimeScaling; if(_dStartEventTime == 0) _dStartEventTime = dEventTime; return (dEventTime - _dStartEventTime); } ///////////////////////////////////////////////////////////////////////////// // CorrectGP1NDL // ------------- // corrects the differential nonlinearity of the GP1/HM1 module // returns the corrected double CorrectGP1NDL(double dChannel, double dCorrectionValue) { double dChStart = dChannel; double dOldChannel = dChannel; __int32 iRand; double dRand; bool bMoved = false; if(fmod(dChannel,2.) == 0) { iRand = rand(); dRand = (double)iRand / (double)(RAND_MAX); if(dRand <= dCorrectionValue) { dChannel += 1.; bMoved = true; } } if(bMoved) return dChannel; else return dOldChannel; } CDAN_API CSourceCodeInformation* DAnGetSourceCodeInformation() { return pCodeInformation; }DanUtilities.cpp=/////////////////////////////////////////////////////////////////////////// // DAn utilities called from CoboldPC DAn // (c) by Klaus Ullmann-Pfleger & RoentDek Handels GmbH // // V1.0 - 31.01.2002 /////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "LMFPreEventData.h" #include "DanUtilities.h" #include "CoboldDll.h" #include #include #include #include #include "CDAn.h" //#include "CDAq.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //////////////////// // RotateXY function // ----------------- // rotate an point arout a given centerpoint // // input // ----- // dX, dY = Point to rotate // dAngle = Rotation angle (mathematical) in deg or radian // iAFormat = Angle format (deg or radian, see AF_* in definition file) // dCX, dCY = Center of rotation // // output // ------ // dRX, dRY = Rotated dX, dY // void RotateXY(double dX, double dY, double dAngle, __int32 iAFormat, double dCX, double dCY, double &dRX, double &dRY) { dAngle *= -1; if(dAngle != 0.) { // if angle is in deg then convert it to radian if(iAFormat == AF_DEG || iAFormat == AF_DEG0) dAngle = (dAngle / 180.0) * PI; // move x,y to center of rotation point double x = dX - dCX; double y = dY - dCY; // rotation values (rotation matrix coefficient and centerpoint/offset) double dSin = sin(dAngle) ; double dCos = cos(dAngle) ; // rotate and decenter dRX = x*dCos + y*dSin + dCX; dRY = -x*dSin + y*dCos + dCY; } else { dRX = dX; dRY = dY; } } ////////////// // OrthoToRPhi // ----------- // Convert orthogonal coordinates to r-phi coordinates // if dR < 1E-15 then set phi angle to 0 // if abs(y) < 1E-15 then the quadrant can not be corrected!!! // // input // ----- // dX, dY = Point to rotate // iAFormat = Angle format (deg or radian, see AF_* in definition file) // dCX, dCY = Center of rotation // // output // ------ // dR, dPhi = r-phi coordinates // // void OrthoToRPhi(double dX, double dY, __int32 iAFormat, double dCX, double dCY, double &dR, double &dPhi) { // move x,y to center of rotation point double x = dX - dCX; double y = dY - dCY; // calculate radius dR = sqrt(x*x + y*y); // if radius is to small then set phi to 0 if(dR > 1e-15) { // if y is to small then quadrant correction is not possible if(fabs(y) > 1e-15) dPhi = acos(x / (dR)) * y/fabs(y); else dPhi = acos(x / (dR)); } else dPhi = 0.; // convert angle to specified dataformat if(iAFormat == AF_RAD) { if(dPhi > PI) dPhi -= (2.0*PI); } if(iAFormat == AF_DEG || iAFormat == AF_DEG0) { dPhi = dPhi / PI * 180.; if(iAFormat == AF_DEG) { if(dPhi > 180.0) dPhi -= 360.0; } } } LPCTSTR DAnGetLastLMFName() { // Get DAq Module address (dependent on Cobold.dll!!!) CString csLastDAqPathName; csLastDAqPathName = GetActualDAqPathName(); HMODULE myLib = LoadLibrary(csLastDAqPathName); // "DAq"); if(!myLib) { AfxMessageBox("No DAq module and/or Cobold.Dll found"); return ""; } // Now the Function name typedef LPCTSTR (*MyProc)(CArchive *); MyProc GetLastLMFName; GetLastLMFName = (MyProc)GetProcAddress(myLib,"DAqGetLastLMFName"); if(!GetLastLMFName) { AfxMessageBox("Could not find DAqGetLastLMFName routine"); return ""; } // and execute function static CString myFilePathName; myFilePathName = CString(GetLastLMFName(NULL)); // at the end... release the libraries // and invalidate the function GetLastLMFName = NULL; FreeLibrary(myLib); return LPCTSTR(myFilePathName); } double Rnd() { double r1 = double(rand())/RAND_MAX; double r2 = double(rand())/RAND_MAX; return r1 + r2 / RAND_MAX; }DAn.cpp+#pragma warning(disable : 4996) #include "Coltrims.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #include "LMFPreEventData.h" #include "UserSP.h" extern CUserSpectrum *pUserSP; extern CCDanApp theApp; CDoubleArray *i_det_sum_correction_table_x[3]; CDoubleArray *i_det_sum_correction_table_y[3]; CDoubleArray *i_det_pos_correction_table_x[3]; CDoubleArray *i_det_pos_correction_table_y[3]; #ifdef FULL_COLTRIMS_DAN CDoubleArray *e_det_sum_correction_table_x[3]; CDoubleArray *e_det_sum_correction_table_y[3]; CDoubleArray *e_det_pos_correction_table_x[3]; CDoubleArray *e_det_pos_correction_table_y[3]; #endif /////////////////////////////////////////////// // Definition of global variables: /////////////////////////////////////////////// __int32 ipTimeStamp; // parameter 2 TimeStamp information type double dpTimeScaling; // Time Scaling (ticks per second of the OS's High Performance Counter) CTime ctpLMFStartTime; // Start Time of LMF __int32 iDAQ_ID; // parameter 8 __int32 iTriggerCommonStopMode; // parameter 14 double dpTDCResolution; // parameter 20 __int32 ipTDCDataType; // parameter 21 __int32 ipNumberOfChannels; // parameter 32 __int32 ipNumberOfChannels2; // parameter 34 only for 2TDC8 (not for 2 synced TDC8HP) __int32 ipMaximumNumberOfHits; // parameter 33 __int32 iDataFormat; // parameter 40 __int32 ipStartDAQData; // parameter 105 __int32 ipStartDANData; // parameter 106 double dStartDanCoordinates; __int32 ipWriteOutput; // parameter 108 __int32 iDataOffset; __int32 iIndexDataOffset; __int32 ipStartDAqTDCData; __int32 EventCounter; // EventCounter for the data in LM-file bool software_cooling; // parameter 207 __int32 cnt[25]; // number of detected signals for each channel double tdc_ns[25][MAX_NUM_OF_PARTICLES]; Write_File * FileWriter; #ifdef FULL_COLTRIMS_DAN __int32 iTime_zero_channel; detector_parameters_class e_det; #endif detector_parameters_class i_det; spectrometer_class spec; CString myInfoString; particle_class ion[MAX_NUM_OF_PARTICLES]; #ifdef FULL_COLTRIMS_DAN particle_class electron[MAX_NUM_OF_PARTICLES]; #endif CoordinatesParser_class * CoordinatesParser_instance; RateAveragingClass *racpRateAveragingInstance; ////////////////////////////////// // Get user parameters from CCF // ////////////////////////////////// bool GetUserParameters(__int32 address_offset, CDoubleArray &Parameters) { for (__int32 i=0;i MAX_NUM_OF_PARTICLES) return; if (number_of_particle < number_of_particles) { for (__int32 i = number_of_particle;i 0.5) { EventCounter = 0; Parameters[107-1] = 0.; } if(racpRateAveragingInstance) if(theApp.SharedClassInstance) { racpRateAveragingInstance->ui32EventCounter += (unsigned __int32)(theApp.SharedClassInstance->rate); if(ipTimeStamp) racpRateAveragingInstance->CheckTimestamp(AbsoluteEventTime); } // get the TDC data and convert it to nanoseconds for (__int32 i=0;i MAX_NUM_OF_PARTICLES) n = MAX_NUM_OF_PARTICLES; cnt[i] = n; for (__int32 j = 0; j < n;++j) tdc_ns[i][j] = dpTDCResolution * EventData[ipStartDAqTDCData+i*(ipMaximumNumberOfHits+1)+j+1]; } if (iDAQ_ID == DAQ_ID_TDC8 || iDAQ_ID == DAQ_ID_2TDC8) { bool bDoReverse = false; for (__int32 ch=0;ch 2) { if (tdc_ns[ch][1] > tdc_ns[ch][0]) { if (iTriggerCommonStopMode) {bDoReverse = true; break;} } else { if (!iTriggerCommonStopMode) {bDoReverse = true; break;} } } } if (bDoReverse) { for (__int32 ch=0;ch>1); for (__int32 i=0;i 1) { if (cnt[7] == 2) { // die Rekonstruktion hat also 2 Teilchen gebastelt. Wir wollen aber nur den ersten. tdc_ns[7][1] = second_hit; i_det.number_of_particles = 1; } if (cnt[7] == 1) { // die Rekonstruktion hat ein Teilchen gefunden. Also muessen wir nur die alten Daten einfuegen. tdc_ns[7][1] = second_hit; cnt[7] = 2; } if (fabs(tdc_ns[7][0]) > 8.) { // die Rekonstruktion soll uns ja nur beim Ort helfen. Wenn sie aber viel am MCP-signal veraendert hat, dann ist irgendwas schiefgegangen. cnt[7] = 0; i_det.number_of_particles = 0; } if (cnt[7] == 0) { // wenn kein Teilchen gefunden wurde, dann soll alles geloescht werden, damit es keinen Eintrag im Spektrum gibt. tdc_ns[7][0] = -1.e50; tdc_ns[7][1] = -1.e90; } } // old version pre 20.09.2011 //double second_hit = tdc_ns[7][1]; // if (i_det.use_this_detector) ProcessDetector(i_det,cnt,tdc_ns,spec); #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) ProcessDetector(e_det,cnt,tdc_ns,spec); #endif //tdc_ns[7][1] = second_hit; ////////////////////////////////////////////////////////////////// // write all data back to coordinate transfer array of CoboldPC // ////////////////////////////////////////////////////////////////// __int32 address_counter = ipStartDANData; EventData[address_counter++] = AbsoluteEventTime; EventData[address_counter++] = DeltaEventTime; EventData[address_counter++] = double(EventCounter)+0.0001; EventData[address_counter++] = double(true); if(racpRateAveragingInstance) EventData[address_counter++] = racpRateAveragingInstance->ui32Rate; // rate else EventData[address_counter++] = 0.; // rate #ifdef FULL_COLTRIMS_DAN for (__int32 i=0;i<20;++i) EventData[address_counter++] = event_is_good ? cnt[i] : 0; #else for (__int32 i=0;i<20;++i) EventData[address_counter++] = cnt[i]; #endif OutputToEventDataArray(i_det, address_counter, EventData, cnt, tdc_ns); double debg; if (cnt[6]>1) { // pulse hight gamma debg=tdc_ns[6][1]-tdc_ns[6][0]; EventData[address_counter++] = debg; } else { EventData[address_counter++] = -1.e180; } if (cnt[6]>0 && cnt[7]>1) {// TOF gamma EventData[address_counter++] = tdc_ns[7][1]-tdc_ns[6][0]; } else { EventData[address_counter++] = -1.e180; } if (i_det.use_this_detector) WeighParameter[1-1] = i_det.detector_map_fill; else WeighParameter[1-1] = 0.; #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) WeighParameter[2-1] = e_det.detector_map_fill; else WeighParameter[2-1] = 0.; #endif //////////////////////////////////////////////// // write ASCII or LMF output to hard disc // //////////////////////////////////////////////// if (FileWriter) { if (i_det.use_this_detector) shift_detector_times(i_det,-1,cnt,tdc_ns,spec); #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) shift_detector_times(e_det,-1,cnt,tdc_ns,spec); #endif if (ipWriteOutput == 1) FileWriter->WriteASCIIData((__int32*)cnt,(double*)tdc_ns); if (ipWriteOutput == 2) FileWriter->WriteLMFData( (__int32*)cnt,(double*)tdc_ns,EventData,preEventData.TimeStamp); if (ipWriteOutput == 3) { char temp_string[512]; __int32 max_num = 5; __int32 n = i_det.number_of_particles <= max_num ? i_det.number_of_particles : max_num; sprintf(temp_string,"%i",n); for (__int32 i=0;iFile_Archive->WriteString(temp_string); } } if (CoordinatesParser_instance) CoordinatesParser_instance->execute_all_commands(); return true; } /////////////////////// // AnalysisFinalize // /////////////////////// // is called when analysis is stopped (not paused!) CDAN_API __int32 AnalysisFinalize(CDoubleArray &EventData,CDoubleArray &Parameters, CDoubleArray &WeighParameter) { if (FileWriter) {delete FileWriter; FileWriter = 0;} if (i_det.use_this_detector) Finalize_Detector(i_det); #ifdef FULL_COLTRIMS_DAN if (e_det.use_this_detector) Finalize_Detector(e_det); #endif if(theApp.SharedClassInstance) theApp.SharedClassInstance->bDAnIsRunning = false; if(racpRateAveragingInstance) { delete racpRateAveragingInstance; racpRateAveragingInstance = NULL; } if (pUserSP) { delete pUserSP; pUserSP = NULL; } return true; } /* Todo: 4) Fish-wiggle-Histos 6) Add Gap functionality for HEX-detectors with a hole */ StdAfx.cpp// stdafx.cpp : source file that includes just the standard includes // CDan.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" Write_File.cppFlush(); File_Archive->Close(); delete File_Archive; } if (output_file) { output_file->Flush(); output_file->Close(); delete output_file; } parameters_copy.RemoveAll(); } ////////////////////////////////////////////////////////// void Write_File::write_LMF_header_part1() ////////////////////////////////////////////////////////// { assert(!(number_of_events > 0 && LMUserdefinedheadersize == 0)); File_Archive->Flush(); output_file->Flush(); output_file->SeekToBegin(); __int32 timeinfo = (__int32)(parameters_copy[2-1]+0.1); // parameter 2 if ((iDAQ_ID == 0x8 || iDAQ_ID == 0x10) && LMF_version <8) { *File_Archive << archive_flag; // archive flag *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) *File_Archive << number_of_coordinates; // Number of coordinates *File_Archive << LMHeadersize; *File_Archive << LMUserdefinedheadersize; *File_Archive << number_of_events; } if ((iDAQ_ID == 0x8 || iDAQ_ID == 0x10) && LMF_version >=8) { *File_Archive << archive_flag; // archive flag *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) *File_Archive << number_of_coordinates; // Number of coordinates *File_Archive << LMHeadersize; *File_Archive << LMUserdefinedheadersize; *File_Archive << number_of_events; } if (iDAQ_ID == 2) { *File_Archive << archive_flag; // archive flag *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) *File_Archive << number_of_coordinates; // Number of coordinates *File_Archive << LMHeadersize; *File_Archive << LMUserdefinedheadersize; *File_Archive << number_of_events; } File_Archive->Flush(); output_file->Flush(); } ////////////////////////////////////////////////////////// void Write_File::write_TDC8HP_Cobold2008R1_header() ////////////////////////////////////////////////////////// { LMUserdefinedheadersize = sizeof(unsigned __int64)*5 + sizeof(unsigned __int32)*1 + sizeof(__int32)*32 + sizeof(double)*11 + sizeof(bool)*9 + csDAqInfo.GetLength() + csConfigFile.GetLength() + csINLFile.GetLength() + csDNLFile.GetLength(); // user defined header LMUserdefinedheadersize += sizeof(__int32); write_LMF_header_part1(); // Now write rest of Header: *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; File_Archive->Flush(); File_Archive->GetFile()->Flush(); LMHeadersize = File_Archive->GetFile()->GetPosition(); write_LMF_header_part1(); *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; // Now write UserHeader: *File_Archive << archive_flag; // LMF file version ID *File_Archive << (unsigned __int64)LMUserdefinedheadersize; // aktual header length always 1st value *File_Archive << (__int32)20080507; // Version is always 2nd value *File_Archive << (__int32)0x000008; // HPTDC // DAQ_ID is always 3ed value *File_Archive << parameters_copy[4]; // frequency is always 4th value *File_Archive << (__int32)(parameters_copy[0] + 0.1); // IO address (parameter 1) always 5th value *File_Archive << (__int32)(parameters_copy[1] + 0.1); // TimeInfo (parameter 2) always 6th value *File_Archive << (__int32)csDAqInfo.GetLength(); // Length of DAQInfo always 7th value File_Archive->Write(LPCTSTR(csDAqInfo),csDAqInfo.GetLength()); // DAQInfo always 8th valu *File_Archive << (__int32)0x0007; // LMFVersion always 9th value *File_Archive << (__int32)(parameters_copy[7-1] + 0.1); *File_Archive << parameters_copy[20-1]; *File_Archive << (__int32)(parameters_copy[21-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[32-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[33-1] + 0.1); *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) /// start of TDC configuration *File_Archive << (__int32)(parameters_copy[60-1] + 0.1); // CONFIG file flag *File_Archive << (unsigned __int64)(parameters_copy[61-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[62-1] + 0.1); *File_Archive << (__int32)(parameters_copy[63-1] + 0.1); *File_Archive << (__int32)(parameters_copy[64-1] + 0.1); // trigger channel *File_Archive << (__int32)(parameters_copy[65-1] + 0.1); *File_Archive << (__int32)(parameters_copy[66-1] + 0.1); *File_Archive << (__int32)(parameters_copy[67-1] + 0.1); *File_Archive << parameters_copy[68-1]; *File_Archive << parameters_copy[69-1]; *File_Archive << parameters_copy[70-1]; *File_Archive << (__int32)(parameters_copy[71-1] + 0.1); *File_Archive << (__int32)(parameters_copy[72-1] + 0.1); *File_Archive << (__int32)(parameters_copy[73-1] + 0.1); *File_Archive << (__int32)(parameters_copy[74-1] + 0.1); *File_Archive << (__int32)(parameters_copy[75-1] + 0.1); *File_Archive << (__int32)(parameters_copy[76-1] + 0.1); *File_Archive << (__int32)(parameters_copy[80-1] + 0.1); // INL file flag *File_Archive << (__int32)(parameters_copy[81-1] + 0.1); // DNL file flag *File_Archive << (__int32)csConfigFile.GetLength(); // Config file File_Archive->Write(LPCTSTR(csConfigFile),csConfigFile.GetLength()); *File_Archive << (__int32)csINLFile.GetLength(); // INL file File_Archive->Write(LPCTSTR(csINLFile),csINLFile.GetLength()); *File_Archive << (__int32)csDNLFile.GetLength(); // DNL file File_Archive->Write(LPCTSTR(csDNLFile),csDNLFile.GetLength()); // new for hptdc dll 2.3 *File_Archive << (__int32)(parameters_copy[77-1] + 0.1); // new since DAQ_VERSION7 *File_Archive << (bool)((__int32)(parameters_copy[78-1] + 0.1) ? true : false); *File_Archive << parameters_copy[79-1]; *File_Archive << (bool)((__int32)(parameters_copy[85-1] + 0.1) ? true : false); // SSEEnable *File_Archive << (bool)((__int32)(parameters_copy[86-1] + 0.1) ? true : false); // MMXEnable *File_Archive << (bool)((__int32)(parameters_copy[87-1] + 0.1) ? true : false); // DMAEnable //// write TDCInfo *File_Archive << (__int32)0; // 0 TDCs // now follow reserved values // to be filled later bool bDummy = false; __int32 iDummy = 0x12345678; double dDummy = -1; for (__int32 i=0;i<5;++i) *File_Archive << bDummy; for (__int32 i=0;i<5;++i) *File_Archive << iDummy; for (__int32 i=0;i<5;++i) *File_Archive << dDummy; File_Archive->Flush(); File_Archive->GetFile()->Flush(); header_was_written = true; } ////////////////////////////////////////////////////////// void Write_File::write_TDC8HP_Cobold2008R2_header() ////////////////////////////////////////////////////////// { unsigned __int32 ui32NumberOfBools = 0; // do not forget to change the pui64LMUserHeaderLength unsigned __int32 ui32NumberOf32BitsValues = 4; // accordingly at the beginning of the function!!! unsigned __int32 ui32NumberOfDoubles = 0; if (this->LMF_version >= 9) { ui32NumberOfBools = 0; // do not forget to change the pui64LMUserHeaderLength ui32NumberOf32BitsValues = 5; // accordingly at the beginning of the function!!! ui32NumberOfDoubles = 1; } LMUserdefinedheadersize = sizeof(unsigned __int64)*5 + sizeof(unsigned __int32)*17 + sizeof(__int32)*(6+ui32NumberOf32BitsValues) + sizeof(double)*(6+ui32NumberOfDoubles) + sizeof(bool)*(12+ui32NumberOfBools) + csDAqInfo.GetLength() + csConfigFile.GetLength() + csINLFile.GetLength() + csDNLFile.GetLength(); // user defined header LMUserdefinedheadersize += sizeof(__int32); // for number of source strings (which is zero here) unsigned __int32 ui32TDCcount = 0; //if(tdcManager) ui32TDCcount = tdcManager->getTDCCount(); LMUserdefinedheadersize += sizeof(unsigned __int32) + (ui32TDCcount * ((sizeof(__int32))*9 + sizeof(DWORD)*1 + sizeof(double)*1 + sizeof(__int32)*8*1024 + sizeof(unsigned __int16)*8*1024 + sizeof(bool))); // additional data for DNL & INL write_LMF_header_part1(); // Now write rest of Header: *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; File_Archive->Flush(); File_Archive->GetFile()->Flush(); LMHeadersize = File_Archive->GetFile()->GetPosition(); write_LMF_header_part1(); // write again. But this time with correct LMHeadersize *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; // Now write UserHeader: *File_Archive << archive_flag; // LMF file version ID *File_Archive << (unsigned __int64)LMUserdefinedheadersize; // actual header length always 1st value *File_Archive << (__int32)20080507; // Version is always 2nd value *File_Archive << (__int32)0x000008; // old matrix format // DAQ_ID is always 3ed value *File_Archive << parameters_copy[4]; // frequency is always 4th value *File_Archive << (__int32)(parameters_copy[0] + 0.1); // IO address (parameter 1) always 5th value *File_Archive << (__int32)(parameters_copy[1] + 0.1); // TimeInfo (parameter 2) always 6th value *File_Archive << (__int32)csDAqInfo.GetLength(); // Length of DAQInfo always 7th value File_Archive->Write(LPCTSTR(csDAqInfo),csDAqInfo.GetLength()); // DAQInfo always 8th value *File_Archive << this->LMF_version; // LMFVersion always 9th value *File_Archive << (unsigned __int32)0; // number of source strings *File_Archive << (__int32)(parameters_copy[7-1] + 0.1); *File_Archive << parameters_copy[20-1]; *File_Archive << (__int32)(parameters_copy[21-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[32-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[33-1] + 0.1); *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // DataFormat (p[39] + (0.1*sign(p[39])) /// start of TDC configuration *File_Archive << (bool)(parameters_copy[60-1]>0.5?true:false); // CONFIG file flag *File_Archive << (unsigned __int64)(parameters_copy[61-1] + 0.1); *File_Archive << (unsigned __int64)(parameters_copy[62-1] + 0.1); *File_Archive << (__int32)(parameters_copy[63-1] + 0.1); *File_Archive << (__int32)(parameters_copy[64-1] + 0.1); // trigger channel *File_Archive << (bool)(parameters_copy[65-1]>0.5?true:false); //*File_Archive << (bool)(parameters_copy[66-1]>0.5?true:false); *File_Archive << false; // Grouping enable OFF *File_Archive << (bool)(parameters_copy[67-1]>0.5?true:false); *File_Archive << parameters_copy[68-1]; *File_Archive << parameters_copy[69-1]; *File_Archive << parameters_copy[70-1]; *File_Archive << (bool)(parameters_copy[71-1]>0.5?true:false); *File_Archive << (bool)(parameters_copy[72-1]>0.5?true:false); *File_Archive << (__int32)(parameters_copy[73-1] + 0.1); *File_Archive << (__int32)(parameters_copy[74-1] + 0.1); *File_Archive << (__int32)(parameters_copy[75-1] + 0.1); *File_Archive << (__int32)(parameters_copy[76-1] + 0.1); *File_Archive << (bool)(parameters_copy[80-1]>0.5?true:false); // INL file flag *File_Archive << (bool)(parameters_copy[81-1]>0.5?true:false); // DNL file flag *File_Archive << (__int32)csConfigFile.GetLength(); // Config file File_Archive->Write(LPCTSTR(csConfigFile),csConfigFile.GetLength()); *File_Archive << (__int32)csINLFile.GetLength(); // INL file File_Archive->Write(LPCTSTR(csINLFile),csINLFile.GetLength()); *File_Archive << (__int32)csDNLFile.GetLength(); // DNL file File_Archive->Write(LPCTSTR(csDNLFile),csDNLFile.GetLength()); // new for hptdc dll 2.3 *File_Archive << (__int32)(0); // obsolete: synch validation channel // new since DAQ_VERSION7 *File_Archive << (bool)((__int32)(parameters_copy[78-1] + 0.1) ? true : false); *File_Archive << parameters_copy[79-1]; *File_Archive << (bool)(false); // SSEEnable *File_Archive << (bool)((__int32)(parameters_copy[86-1] + 0.1) ? true : false); // MMXEnable *File_Archive << (bool)((__int32)(parameters_copy[87-1] + 0.1) ? true : false); // DMAEnable //// write TDCInfo *File_Archive << (__int32)0; // 0 TDCs bool bDummy = false; __int32 iDummy = 0x12345678; double dDummy = -1; // now handle additional bools *File_Archive << ui32NumberOfBools; // now handle additional 32Bit values (signed or unsigned) *File_Archive << ui32NumberOf32BitsValues; *File_Archive << (unsigned __int32)(parameters_copy[53-1]+0.1); // NumberOfDAqLoops *File_Archive << (unsigned __int32)0; // driver version *File_Archive << (unsigned __int32)(parameters_copy[89-1]+0.1); //TriggerChannelMask *File_Archive << (__int32)(parameters_copy[88-1]+0.1); // i32TimeZeroChannel (starting at with 1); if (this->LMF_version >= 9) *File_Archive << (__int32)(parameters_copy[90-1]+0.1); // BinsizeType // now handle additional doubles *File_Archive << ui32NumberOfDoubles; if (this->LMF_version >= 9) *File_Archive << parameters_copy[99-1]; // offset in time zero channel File_Archive->Flush(); File_Archive->GetFile()->Flush(); unsigned __int64 written_bytes = File_Archive->GetFile()->GetPosition(); header_was_written = true; if (written_bytes != LMUserdefinedheadersize + LMHeadersize) { AfxMessageBox("LMF header was not correclty written.\n"); header_was_written = false; } } ////////////////////////////////////////////////////////// void Write_File::write_TDC8PCI2_Cobold2008R2_header() ////////////////////////////////////////////////////////// { LMUserdefinedheadersize = sizeof(unsigned __int64)*3 + sizeof(__int32)*21 + sizeof(double)*2 + csDAqInfo.GetLength() + sizeof(unsigned __int32);; // user defined header write_LMF_header_part1(); *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; File_Archive->Flush(); File_Archive->GetFile()->Flush(); LMHeadersize = File_Archive->GetFile()->GetPosition(); write_LMF_header_part1(); *File_Archive << Starttime; *File_Archive << Stoptime; *File_Archive << LMVersionstring; *File_Archive << LMFilePathName; *File_Archive << LMComment; *File_Archive << (unsigned __int32)archive_flag; // LMF file version ID *File_Archive << (unsigned __int64)LMUserdefinedheadersize; // actual header length always 1st value *File_Archive << (__int32)20080507; // Version is always 2nd value *File_Archive << (__int32)0x2; // DAQ_ID is always 3ed value *File_Archive << parameters_copy[5-1]; // frequency is always 4th value *File_Archive << (__int32)0; // IO address (parameter 1) always 5th value *File_Archive << (__int32)(parameters_copy[2-1] + 0.1); // TimeInfo (parameter 2) always 6th value *File_Archive << (__int32)csDAqInfo.GetLength(); // Length of DAqInfo always 7th value File_Archive->Write(LPCTSTR(csDAqInfo),csDAqInfo.GetLength()); // DAqInfo always 8th value *File_Archive << (__int32)0x0009; // LMFVersion always 9th value *File_Archive << (__int32)0; // number of DAq source strings // here no source strings are written *File_Archive << (__int32)(parameters_copy[3-1] + 0.1); // system timeout *File_Archive << (__int32)(parameters_copy[7-1] + 0.1); // start time? *File_Archive << (__int32)(parameters_copy[14-1] + 0.1); // trigger mode *File_Archive << parameters_copy[20-1]; // TDC resolution *File_Archive << (__int32)(parameters_copy[21-1] + 0.1); // DAq data type *File_Archive << (__int32)(parameters_copy[30-1] + 0.1); // event open time *File_Archive << (unsigned __int64)(parameters_copy[32-1] + 0.1); // number of channels *File_Archive << (unsigned __int64)(parameters_copy[33-1] + 0.1); // number of hits *File_Archive << (__int32)(parameters_copy[40-1] + (0.1 * ((parameters_copy[40-1] > 0) - (parameters_copy[40-1] < 0)))); // p[39] + (0.1*sign(p[39]) (Data format) *File_Archive << (__int32)false; // indicator for 2nd module data *File_Archive << (__int32)(parameters_copy[45-1] + 0.1); // gate delay *File_Archive << (__int32)(parameters_copy[46-1] + 0.1); // gate open time *File_Archive << (__int32)(parameters_copy[47-1] + 0.1); // write empty events *File_Archive << (__int32)(parameters_copy[48-1] + 0.1); // trigger at falling edge *File_Archive << (__int32)(parameters_copy[49-1] + 0.1); // trigger at rising edge *File_Archive << (__int32)(parameters_copy[51-1] + 0.1); // internally reserved *File_Archive << (__int32)(parameters_copy[52-1] + 0.1); // internally reserved header_was_written = true; } ////////////////////////////////////////////////////////// bool Write_File::OpenFile() ////////////////////////////////////////////////////////// { if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) parameters_copy[66-1] = (__int32)(0); // grouping disabled for HPTDC, do not remove this line output_file = 0; File_Archive = 0; name[0]=0; LPCTSTR t = DAnGetLastLMFName(); sprintf(name,"%s",t); if (name[0] == 0) { t = GetActualDAqPathName(); sprintf(name,"%s",t); for (__int32 i=strlen(name)-1;i>0;--i) if (name[i] != '\\' && name[i] != '/') name[i] = 0; else break; strcat(name,"Untitled"); } if (mode == 1) strcat(name,".txt"); if (mode == 2) strcat(name,".lmf"); if (mode == 3) strcat(name,".txt"); output_file = new CFile(); if (!output_file->Open(name,CFile::modeCreate|CFile::modeWrite)) { return false; } File_Archive = new CArchive(output_file,CArchive::store); // write to file through an archive object if (mode == 2) { // LMF header must be written __int32 number_of_channels = (__int32)(parameters_copy[32-1]+0.1); // parameter 32 __int32 maximum_number_of_hits = (__int32)(parameters_copy[33-1]+0.1); // parameter 33 __int32 timeinfo = (__int32)(parameters_copy[2-1]+0.1); // parameter 2 number_of_coordinates = number_of_channels*(1+maximum_number_of_hits); if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) { if (LMF_version >= 9) number_of_coordinates++; // for level info } if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) { if (LMF_version < 8) {write_TDC8HP_Cobold2008R1_header(); return true;} if (LMF_version >= 8) {write_TDC8HP_Cobold2008R2_header(); return true;} } if (iDAQ_ID == 2) {write_TDC8PCI2_Cobold2008R2_header(); return true;} AfxMessageBox("This DAn can not write LMF files in this format.\nPlease contact RoentDek."); } // END OF WRITING HEADER return true; } ////////////////////////////////////////////////////////// void Write_File::WriteASCIIData(__int32 *cnt, double * tdc_ns) ////////////////////////////////////////////////////////// { char char_dummy[1024]; if (mode == 1) { __int32 number_of_channels = (__int32)(parameters_copy[32-1]+0.1); // parameter 32 __int32 maximum_number_of_hits = (__int32)(parameters_copy[33-1]+0.1); // parameter 33 ++number_of_events; double TDC_resolution = parameters_copy[20-1]; // parameter 20 for (__int32 channel=0;channel < number_of_channels;channel++) { sprintf(char_dummy,"%i \t%i",channel+1,cnt[channel]); File_Archive->WriteString(char_dummy); for (__int32 i=0;i < cnt[channel];i++) { double a = tdc_ns[channel*tdc_row_length+i]/TDC_resolution; if (a >= 0.) a += 0.0001; else a -= 0.0001; sprintf(char_dummy," \t%i",__int32(a)); File_Archive->WriteString(char_dummy); } for (__int32 i = cnt[channel];i < maximum_number_of_hits;i++) { sprintf(char_dummy," \t%i",0); File_Archive->WriteString(char_dummy); } File_Archive->WriteString("\n"); } } } ////////////////////////////////////////////////////////// void Write_File::WriteLMFData(__int32 *cnt, double *tdc_ns, CDoubleArray &EventData, LARGE_INTEGER timestamp) ////////////////////////////////////////////////////////// { assert(header_was_written); if (!header_was_written) return; ++number_of_events; __int32 timeinfo = (__int32)(parameters_copy[2-1]+0.1); // parameter 2 double TDC_resolution = parameters_copy[20-1]; // parameter 20 __int32 number_of_channels = (__int32)(parameters_copy[32-1]+0.1); // parameter 32 __int32 maximum_number_of_hits = (__int32)(parameters_copy[33-1]+0.1); // parameter 33 if (iDAQ_ID == 2) { unsigned __int64 HeaderLength = timeinfo + 4; // +2 for HeaderLength itself, +2 for EventCounter HeaderLength <<= 1; // now in sizeof int16 for(__int32 iCount=0;iCount 0) { *File_Archive << timestamp.LowPart; if (timeinfo > 1) *File_Archive << timestamp.HighPart; } for(__int32 i=0;i maximum_number_of_hits) cnt_temp = maximum_number_of_hits; *File_Archive << cnt_temp; for(__int32 j=0;j= 0.) a += 0.0001; else a -= 0.0001; *File_Archive << (unsigned __int16)(a); } } } if (iDAQ_ID == 0x8 || iDAQ_ID == 0x10) { unsigned __int64 HeaderLength = timeinfo + 4; // +1 for HeaderLength itself for(__int32 iCount = 0; iCount < number_of_channels; ++iCount) HeaderLength += cnt[iCount]; HeaderLength <<= 2; // now size in bytes HeaderLength += number_of_channels*sizeof(unsigned __int16); // add N array size (unsigned __int16) HeaderLength = (HeaderLength & 0x00ffffffffffffff) | 0xff00000000000000; // set 0xff in bits 63..56 as EventMarker if (LMF_version >=9) HeaderLength+=sizeof(__int64); *File_Archive << HeaderLength; *File_Archive << number_of_events; if (timeinfo > 0) { *File_Archive << timestamp.LowPart; if (timeinfo > 1) *File_Archive << timestamp.HighPart; } for (__int32 i=0;i maximum_number_of_hits) cnt_temp = maximum_number_of_hits; *File_Archive << cnt_temp; for (__int32 j=0;j= 0.) a += 0.0001; else a -= 0.0001; *File_Archive << (__int32)(a); } } if (LMF_version >=9) { *File_Archive << (__int64)(0); // LevelInfo } } } DAN_UserUtilities.cppCDAn.h // CDan.h : main header file for the CDan DLL // V5.14 #pragma once #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef CDAN_EXPORTS #define CDAN_API __declspec(dllexport) #else #define CDAN_API __declspec(dllimport) #endif class SharedClass; class CDoubleArray; class CSourceCodeInformation; class LMFPreEventData; // no file support during AnalysisInitialize // no file support during AnalysisGetInformationString // // I M P O R T A N T // // If you use CArchive or something equivalent // then flush first any data of the file before // you call any function other than reading from the // file or flushing the data otherwhise you risk a // misaligned file! CDAN_API LPCTSTR AnalysisGetInformationString(); CDAN_API __int32 AnalysisInitialize(CDoubleArray &EventData, CDoubleArray &Parameter, CDoubleArray &WeighParameter); CDAN_API __int32 AnalysisProcessEvent(CDoubleArray &EventData, CDoubleArray &Parameter, CDoubleArray &WeighParameter, LMFPreEventData &preEventData); CDAN_API __int32 AnalysisFinalize(CDoubleArray &EventData,CDoubleArray &Parameter, CDoubleArray &WeighParameter); CDAN_API CSourceCodeInformation* DAnGetSourceCodeInformation(); CDAN_API void DoFunction(CString csInput[],unsigned __int32 ui32InputMaximumIndex, unsigned __int32 ui32WordCount); ///////////////////////////////////////////////////////////////////////////// // CCDanApp // See CDan.cpp for the implementation of this class // class CCDanApp : public CWinApp { public: CCDanApp(); // Overrides BOOL InitInstance(); __int32 ExitInstance(); bool BindUserSHMDll(); HMODULE UserSHM_lib_handle; SharedClass * SharedClassInstance; bool UserSHM_DLL_is_bound; // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCDanApp) //}}AFX_VIRTUAL //{{AFX_MSG(CCDanApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }; extern double _dOldEventTime; extern double _dStartEventTime; extern CString &DAnGetDllPathName(); double GetDeltaEventTime(LMFPreEventData &preEventData,CDoubleArray &Parameter); double GetEventTime(LMFPreEventData &preEventData,CDoubleArray &Parameter); double CorrectGP1NDL(double dChannel,double dCorrectionValue); ///////////////////////////////////////////////////////////////////////////// #ifdef __cplusplus } #endif CheckProcess.H/******************************************************************************\ * This is a part of the Microsoft Source Code Samples. * Copyright (C) 1994-1996 Microsoft Corporation. * All rights reserved. * This source code is only intended as a supplement to * Microsoft Development Tools and/or WinHelp documentation. * See these sources for detailed information regarding the * Microsoft samples programs. \******************************************************************************/ #define TITLE_SIZE 64 #define PROCESS_SIZE MAX_PATH // // task list structure // typedef struct _TASK_LIST { DWORD dwProcessId; DWORD dwInheritedFromProcessId; BOOL flags; HANDLE hwnd; CHAR ProcessName[PROCESS_SIZE]; CHAR WindowTitle[TITLE_SIZE]; } TASK_LIST, *PTASK_LIST; typedef struct _TASK_LIST_ENUM { PTASK_LIST tlist; DWORD numtasks; } TASK_LIST_ENUM, *PTASK_LIST_ENUM; // // Function pointer types for accessing platform-specific functions // typedef DWORD (*LPGetTaskList)(PTASK_LIST, DWORD); typedef BOOL (*LPEnableDebugPriv)(VOID); CoboldDll.h#// CoboldDll.h : main header file for the COBOLDDLL DLL // #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #include "resource.h" // main symbols #define COMPRESSIONTYPE_UNDEFINED -1 #define COMPRESSIONTYPE_NONE 0 #define COMPRESSIONTYPE_GZIP 1 #define COMPRESSIONTYPE_DEFLATE 2 ///////////////////////////////////////////////////////////////////////////// // CCoboldDllApp // See CoboldDll.cpp for the implementation of this class // #ifndef CCOBOLDDLLAPP_DEF #define CCOBOLDDLLAPP_DEF class CCoboldDllApp : public CWinApp { public: CCoboldDllApp(); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCoboldDllApp) //}}AFX_VIRTUAL //{{AFX_MSG(CCoboldDllApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #include "CheckProcess.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef COBOLDDLL_EXPORTS #define COBOLDDLL_API __declspec(dllexport) #else #define COBOLDDLL_API __declspec(dllimport) #endif ///////////////////////////////////////////////////////////////////////////// // ATARI Time structure typedef struct { unsigned short hsec : 5; unsigned short min : 6; unsigned short hour : 5; }ATime; typedef struct { unsigned short day : 5; unsigned short month : 4; unsigned short year : 7; }ADate; typedef struct { ATime time; ADate date; }ADateTime; // This class is exported from the CoboldSecurity.dll //template class COBOLDDLL_API CDoubleArray : public CObject { public: DECLARE_SERIAL(CDoubleArray) // Construction CDoubleArray(); CDoubleArray(__int32 NumberOfElements); CDoubleArray(__int32 NumberOfXElements, __int32 NumberOfYElements); // Attributes inline __int32 GetSize() const { return m_nSize; } __int32 GetUpperBound() const; void SetSize(__int32 nNewSize, __int32 nGrowBy = -1); void SetMatixSize(__int32 nNewXSize, __int32 nNewYSize, __int32 nGrowBy = -1); // Operations // Clean up void FreeExtra(); void RemoveAll(); // Accessing elements inline double GetAt(__int32 nIndex) const { ASSERT(nIndex >= 0 && nIndex < m_nSize); return m_pData[nIndex]; } inline void SetAt(__int32 nIndex, double newElement) { ASSERT(nIndex >= 0 && nIndex < m_nSize); m_pData[nIndex] = newElement; } inline double& ElementAt(__int32 nIndex) { ASSERT(nIndex >=0 && nIndex< m_nSize); return m_pData[nIndex]; } void Empty(); // Potentially growing the array void SetAtGrow(__int32 nIndex, double newElement); __int32 Add(double newElement) { __int32 nIndex = m_nSize; SetAtGrow(nIndex,newElement); return nIndex; } // overloaded operator helpers virtual inline double operator[](__int32 nIndex) const { return GetAt(nIndex); } virtual inline double& operator[](__int32 nIndex) { return m_pData[nIndex]; } virtual const CDoubleArray& operator = (const CDoubleArray& sData); // Operations that move elements around void InsertAt(__int32 nIndex, double newElement, __int32 nCount = 1); void RemoveAt(__int32 nIndex, __int32 nCount = 1); void InsertAt(__int32 nStartIndex, CDoubleArray* pNewArray); // Matrix operation void SetAtMatrix(__int32 posx, __int32 posy,double Value); double GetAtMatrix(__int32 posx, __int32 posy); inline __int32 GetSizeX() const { return SizeX; } inline __int32 GetSizeY() const { return SizeY; } // Expand operation bool CDoubleArray::ExpandTo(__int32 xchannels); bool CDoubleArray::ExpandTo(__int32 xchannels, __int32 ychannels); protected: void AssignCopy(__int32 nSrcLen, double *Data); // Implementation public: double* m_pData; // the actual array of data bool m_LoadError; protected: __int32 m_VersionNumber; long m_nSize; // # of elements (upperBound - 1) __int32 m_nMaxSize; // max allocated __int32 m_nGrowBy; // grow amount __int32 SizeX; // Size of Matrix in X __int32 SizeY; // Size of Matrix in Y __int32 m_CompressionType; public: ~CDoubleArray(); virtual void Serialize(CArchive& ar); #ifdef _DEBUG // void Dump(CDumpContext&) const; // void AssertValid() const; #endif }; ///////////////////////////////////////////////////////////////////////////// // helper class CCodeInformation for CSourceCodeInformation class COBOLDDLL_API CCodeInformation : public CObject { protected: CString csCodeID; CString csCodeType; CString csCodeFileName; public: // constructor and destructor CCodeInformation(); CCodeInformation(CString CodeType, CString CodeID, CString CodeFileName); ~CCodeInformation(); public: // implementation CString &GetType(); CString &GetID(); CString &GetFileName(); }; ///////////////////////////////////////////////////////////////////////////// // class to handle source code information of dlls class COBOLDDLL_API CSourceCodeInformation { public: CObArray coaCodeInformation; CString csSourceCode; public: // constructor and destructor CSourceCodeInformation(); ~CSourceCodeInformation(); public: // implementation INT_PTR GetCount(); CString &GetSourceCode(CString csDllFilePathName, CString csSourceID, CString csSourceType); CString &GetTypeAt(unsigned __int32 ui32Index); CString &GetIDAt(unsigned __int32 ui32Index); CString &GetFileNameAt(unsigned __int32 ui32Index); }; ///////////////////////////////////////////////////////////////////////////// // definition for exported functions COBOLDDLL_API __int32 CheckDate(CString Module); COBOLDDLL_API COLORREF GetTNGColor(CDC *pDC, __int32 ColorIndex); COBOLDDLL_API COLORREF GetTNGScreenColor(__int32 ColorIndex); COBOLDDLL_API COLORREF GetTNGPrintColor(__int32 ColorIndex); COBOLDDLL_API void GetTNGDefaultColors(void); COBOLDDLL_API void SetTNGScreenColor(__int32 ColorIndex, COLORREF Color); COBOLDDLL_API void SetTNGPrintColor(__int32 ColorIndex, COLORREF Color); COBOLDDLL_API void ReadColorDefinitions(void); COBOLDDLL_API void ReadDelimiterDefinitions(void *pvView); COBOLDDLL_API void WriteColorDefinitions(void); COBOLDDLL_API void WriteDelimiterDefinitions(void *pvView); COBOLDDLL_API double GetCStringNumber(CString cAddress); COBOLDDLL_API void PumpDlgMessages(CWnd *pWnd); COBOLDDLL_API void PumpMessages(bool bIdle=true); COBOLDDLL_API void DoubleAtari(double register *var); COBOLDDLL_API void LongAtari(unsigned long register *var); COBOLDDLL_API void IntAtari(unsigned short register *var); COBOLDDLL_API void ToAtariTime(CTime *pCTime, ADateTime *pATime); COBOLDDLL_API void ToCTime(CTime *pCTime, ADateTime *pATime); COBOLDDLL_API bool ReadWindowPlacement(WINDOWPLACEMENT *pwp, UINT *puiFlags, char *pszSection, char *pszWindowFlag, char *pszWindowPos); COBOLDDLL_API void WriteWindowPlacement(CWnd *pWnd, char *pszSection, char *pszWindowFlag, char *pszWindowPos); COBOLDDLL_API bool TestFlatBarAvailable(void); COBOLDDLL_API __int32 GetTaskListNT(PTASK_LIST pTask, DWORD dwNumTasks); COBOLDDLL_API BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam); COBOLDDLL_API __int32 CountApplications(CString VersionFileDescription); COBOLDDLL_API __int32 FileNotFoundMessage(CStringArray *pActiveBatchFile, CString BatchName, bool bQuitMessage = false); COBOLDDLL_API HRESULT GetComCtlVersion(LPDWORD pdwMajor, LPDWORD pdwMinor); COBOLDDLL_API void DeleteLocalRegistryKey(HKEY myKey, char RegPath[MAX_PATH]); COBOLDDLL_API void CorrectGP1DifferentialNonlinearity(CDoubleArray &EventData, CDoubleArray &Parameters, __int32 rawdata, __int32 iRes); COBOLDDLL_API CString &GetApplicationPath(); COBOLDDLL_API CString &GetSerialNumber(); COBOLDDLL_API bool IsSerialNumberOK(); COBOLDDLL_API bool IsSerialNumberHM1(); COBOLDDLL_API bool IsSerialNumberDemo(); COBOLDDLL_API bool IsDemoExpired(); COBOLDDLL_API void maInit(); COBOLDDLL_API void OrthogonalToRPhi(double x,double y,double &r,double &phi); COBOLDDLL_API void SetActualDAqPathName(CString csPathName); COBOLDDLL_API void SetActualDAnPathName(CString csPathName); COBOLDDLL_API void SetActualFCPathName(CString csPathName); COBOLDDLL_API CString& GetActualDAqPathName(); COBOLDDLL_API CString& GetActualDAnPathName(); COBOLDDLL_API CString& GetActualFCPathName(); COBOLDDLL_API void ExecuteCommand(CString csCommandLine); COBOLDDLL_API CDoubleArray &GetDaqDanParameters(); COBOLDDLL_API CDoubleArray &GetDaqDanWeighParameters(); COBOLDDLL_API CDoubleArray &GetDaqDanEventData(); COBOLDDLL_API bool IsClearEventDataArraySet(); COBOLDDLL_API void SetClearEventDataArrayState(bool flag); COBOLDDLL_API bool AreCompressCOMsAvailable(bool bInfoBox); COBOLDDLL_API void DisplayLastError(LPTSTR lpszFunction); #ifdef __cplusplus } #endif ///////////////////////////////////////////////////////////////////////////// #endif LMFPreEventData.hn#pragma once #ifndef LMFPreEventDataInclude #define LMFPreEventDataInclude #ifdef COBOLDDLL_EXPORTS #define COBOLDDLL_API __declspec(dllexport) #else #define COBOLDDLL_API __declspec(dllimport) #endif class COBOLDDLL_API LMFPreEventData { public: LMFPreEventData(); virtual ~LMFPreEventData(); // data // hdr1 = EventMarker + EventLength // bit 63..56 always 0xff // bit 55..00 EventLegth in Bytes of this event // hdr2 // bit 63..00 event counter __int64 hdr1; __int64 hdr2; LARGE_INTEGER TimeStamp; // low part for 32 bit, high and low part for 64 bit Timestamp }; #endifLMInfo.h-// LMInfo.h // Informations file to control List-Mode Read #pragma once #define LM_FILE_VERSION 0x74656 // only 32 bit for int values #define LM_FILE_VERSION9 0x74657 // partially 64 bit for int values (since 9.1.808.1) #define LM_READFILE -0x00000000 #define LM_NOFILEOPEN -0x00000001 #define LM_CLOSEFILE -0x00000002 #define LM_STARTFILE -0x00000004 #define LM_HOLDFILE -0x00000008 #define LM_ENDFILE -0x00000010 #define LM_REWINDFILE -0x00000020 #define LM_CLOSEING -0x00000040 #define LM_HARDWARE 0x00000001 #define LM_FILEREAD 0x00000002 #define LM_HARDWAREWRITE 0x00000004 #define LM_SKIPINSERT 0x00000008 #define LMS_HRUNNING 0x00000004 #define LMS_FRUNNING 0x00000003 #define LMS_RUNNING 0x00000002 #define LMS_PAUSED 0x00000001 #define LMS_NONE 0x00000000 #define LMW_NOTSET 0x00000000 #define LMW_EOF 0x00000001 #define LMW_TIME 0x00000002 #define LMW_COUNTS 0x00000003 // Data types possible in DAq/DAn #define DT_NOTSET 0x00000000 #define DT_CHANNEL 0x00000001 #define DT_TIMEINPS 0x00000010 #define DT_TIMEINNS 0x00000011 #define DAQ_ID_RAW 0x000000 // for RAW (no Data) #define DAQ_ID_HM1 0x000001 // for HM1 (single) #define DAQ_ID_TDC8 0x000002 // for TDC8/ISA/PCI #define DAQ_ID_CAMAC 0x000003 // for CAMAC #define DAQ_ID_2HM1 0x000004 // for 2 HM1 #define DAQ_ID_2TDC8 0x000005 // for 2 TDC8 #define DAQ_ID_HM1_ABM 0x000006 // for HM1 (Advanced Burst Mode) #define DAQ_ID_HM1_LR 0x000007 // for HM1 (Long Range Mode) #define DAQ_ID_HPTDC 0x000008 // for HPTDC (TillDC) #define DAQ_ID_TCPIP 0x000009 // for TCPIP (not supported yet) #define DAQ_ID_HPTDCRAW 0x000010 // for HPTDC (TillDC) writing RAW data #define DAQ_ID_FADC8 0x000011 // for fADC8 // Source Code Included Flags // if LM_FILE_VERSION9 upper bits indicate presence of source code #define DAQ_SOURCE_CODE 0x80000000 #define DAN_SOURCE_CODE 0x40000000 #define CCF_HISTORY_CODE 0x20000000 #define MASK_LMF_FILEVERSION (~(DAQ_SOURCE_CODE|DAN_SOURCE_CODE|CCF_HISTORY_CODE)) resource.h//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by CDan.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 130 #define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif SharedClass.h///////////////////////////////////////////////////////// // SharedClass #pragma once #ifndef SharedClass_IS_DEFINED #define SharedClass_IS_DEFINED #include "CoordinatesMath.h" typedef unsigned __int16 HIST_TYPE; class Hist3dClass { public: Hist3dClass() { this->Hist3dArray = NULL; this->i32NumberOfBinsX = 0; this->i32NumberOfBinsY = 0; this->i32NumberOfBinsZ = 0; this->dLengthX = 0.; this->dLengthY = 0.; this->dLengthZ = 0.; this->dBinsizeX = 0; this->dBinsizeY = 0; this->dBinsizeZ = 0; } ~Hist3dClass() { if(this->Hist3dArray) this->Delete3dHist(); } void Clear3dHist() { if(this->Hist3dArray) memset(this->Hist3dArray,0, sizeof(HIST_TYPE) * (this->i32NumberOfBinsX*this->i32NumberOfBinsY*this->i32NumberOfBinsZ + 1)); } bool Init3dHist() { if(this->Hist3dArray) Delete3dHist(); this->i32NumberOfBinsX = __int32((this->dXHigh - this->dXLow) / this->dBinsizeX + 0.001); this->i32NumberOfBinsY = __int32((this->dYHigh - this->dYLow) / this->dBinsizeY + 0.001); this->i32NumberOfBinsZ = __int32((this->dZHigh - this->dZLow) / this->dBinsizeZ + 0.001); this->dXHigh = this->dXLow + this->i32NumberOfBinsX * this->dBinsizeX; this->dYHigh = this->dYLow + this->i32NumberOfBinsY * this->dBinsizeY; this->dZHigh = this->dZLow + this->i32NumberOfBinsZ * this->dBinsizeZ; __int32 total_number_of_bins = this->i32NumberOfBinsX*this->i32NumberOfBinsY*this->i32NumberOfBinsZ + 1; this->Hist3dArray = new HIST_TYPE[total_number_of_bins]; memset(this->Hist3dArray,0,total_number_of_bins*sizeof(HIST_TYPE)); this->dLengthX = this->dXHigh - this->dXLow; this->dLengthY = this->dYHigh - this->dYLow; this->dLengthZ = this->dZHigh - this->dZLow; if(this->Hist3dArray) return true; else return false; } void Delete3dHist() { if(this->Hist3dArray) { delete[] this->Hist3dArray; this->Hist3dArray = NULL; } } void Fill3dHist(double pos_x, double pos_y, double pos_z) { __int32 binx = __int32((pos_x-this->dXLow) / this->dBinsizeX + 0.001); if(binx < 0 || binx >= this->i32NumberOfBinsX) return; __int32 biny = __int32((pos_y-this->dYLow) / this->dBinsizeY + 0.001); if(biny < 0 || biny >= this->i32NumberOfBinsY) return; __int32 binz = __int32((pos_z-this->dZLow) / this->dBinsizeZ + 0.001); if(binz < 0 || binz >= this->i32NumberOfBinsZ) return; unsigned __int32 bin = this->i32NumberOfBinsX*(this->i32NumberOfBinsY * binz + biny) + binx; ++this->Hist3dArray[bin]; } __int32 Get3dHistBincontent(__int32 binx, __int32 biny, __int32 binz) { unsigned __int32 bin = this->i32NumberOfBinsX*(this->i32NumberOfBinsY * binz + biny) + binx; return __int32(Hist3dArray[bin]); } __int32 GetBinFromX(double pos_x) { return __int32((pos_x-this->dXLow) / this->dBinsizeX + 0.001); } __int32 GetBinFromY(double pos_y) { return __int32((pos_y-this->dYLow) / this->dBinsizeY + 0.001); } __int32 GetBinFromZ(double pos_z) { return __int32((pos_z-this->dZLow) / this->dBinsizeZ + 0.001); } double GetBinCenterX(__int32 binx) { return this->dXLow + (double(binx)+0.5)*this->dBinsizeX; } double GetBinCenterY(__int32 biny) { return this->dYLow + (double(biny)+0.5)*this->dBinsizeY; } double GetBinCenterZ(__int32 binz) { return this->dZLow + (double(binz)+0.5)*this->dBinsizeZ; } HIST_TYPE * Hist3dArray; __int32 i32NumberOfBinsX; __int32 i32NumberOfBinsY; __int32 i32NumberOfBinsZ; double dBinsizeX; double dBinsizeY; double dBinsizeZ; double dXLow, dXHigh; double dYLow, dYHigh; double dZLow, dZHigh; double dLengthX, dLengthY, dLengthZ; }; class SharedClass { public: volatile double rate; volatile bool bDAqIsRunningOnline; volatile bool bDAqIsRunningOffline; volatile bool bDAnIsRunning; volatile CoordinatesParser_class * CoordinatesParser_instance; CString csDAqNameAndPath; CString csDAnNameAndPath; Hist3dClass *hist3d; __int16 * adc_trace[80]; __int32 adc_trace_length[80]; void * adc_peak_infos_array; __int32 adc_peak_infos_array_max_nof_hits; SharedClass() { hist3d = new Hist3dClass(); csDAqNameAndPath = ""; csDAnNameAndPath = ""; bDAqIsRunningOnline = false; bDAqIsRunningOffline = false; bDAnIsRunning = false; CoordinatesParser_instance = NULL; adc_peak_infos_array = 0; adc_peak_infos_array_max_nof_hits = 0; for (__int32 ch = 0;ch<80;ch++) { adc_trace[ch] = new __int16[15000]; memset(adc_trace[ch],0,15000*sizeof(__int16)); adc_trace_length[ch] = 0; } } ~SharedClass() { if (CoordinatesParser_instance) { delete CoordinatesParser_instance; CoordinatesParser_instance = NULL; } if(hist3d) { delete hist3d; hist3d = NULL; } for (__int32 ch = 0;ch<80;ch++) { if (adc_trace[ch]) delete[] adc_trace[ch]; adc_trace[ch] = 0; } } }; #endif // #ifndef SharedClass_IS_DEFINED StdAfx.hS// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once //#define _BIND_TO_CURRENT_VCLIBS_VERSION 1 #define _BIND_TO_CURRENT_MFC_VERSION 1 #define _BIND_TO_CURRENT_CRT_VERSION 1 #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include // MFC core and standard components #include // MFC extensions #ifndef _AFX_NO_OLE_SUPPORT #include // MFC OLE classes #include // MFC OLE dialog classes #include // MFC OLE automation classes #endif // _AFX_NO_OLE_SUPPORT #ifndef _AFX_NO_DB_SUPPORT #include // MFC ODBC database classes #endif // _AFX_NO_DB_SUPPORT #ifndef _AFX_NO_DAO_SUPPORT #include // MFC DAO database classes #endif // _AFX_NO_DAO_SUPPORT #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows 95 Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT UserSP.h // UserSP.h : main header file for the UserSP DLL // #pragma once #ifndef __AFXWIN_H__ #error "include 'stdafx.h' before including this file for PCH" #endif #include "resource.h" // main symbols #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef USERSP_EXPORTS #define USP_API __declspec(dllexport) #include "TUserSP.h" #else #define USP_API __declspec(dllimport) #endif class CDoubleArray; // CUserSPApp // See UserSP.cpp for the implementation of this class // class CUserSPApp : public CWinApp { public: CUserSPApp(); // Overrides public: BOOL InitInstance(); // Possible Spectrum calling functions... public: DECLARE_MESSAGE_MAP() }; class CCoboldDocSpectrum; class CParameter; class USP_API CUserSpectrum { // constructor / destructor public: CUserSpectrum(); CUserSpectrum(void *pCDoc); virtual ~CUserSpectrum(); // implemenation public: // spectra math functions void AddOneAt(__int32 iSpNr, double dChannel); void AddOneAt(__int32 iSpNr, double dChannelX, double dChannelY); void AddValueAt(__int32 iSpNr,double dChannel, double dValue); void AddValueAt(__int32 iSpNr,double dChannelX, double dChannelY, double dValue); void SetValueAt(__int32 iSpNr,double dChannel, double dValue); void SetValueAt(__int32 iSpNr,double dChannelX, double dChannelY, double dValue); double GetValueAt(__int32 iSpNr,double dChannel); double GetValueAt(__int32 iSpNr,double dChannelX, double dChannelY); double GetBinValueAt(__int32 iSpNr, __int64 iChannel); double GetBinValueAt(__int32 iSpNr, __int64 iChannelX, __int64 iChannelY); void SetBinValueAt(__int32 iSpNr, __int64 iChannel, double dValue); void SetBinValueAt(__int32 iSpNr, __int64 iChannelX, __int64 iChannelY, double dValue); bool GetHistogramDataArray(__int32 iSpNr, double *pData, __int64 MaxIndex); bool SetHistogramDataArray(__int32 iSpNr, double *pData, __int64 MaxIndex); // spectra information functions // index __int64 GetBinIndexX(__int32 iSpNr, double Channel); __int64 GetBinIndexY(__int32 iSpNr, double Channel); double GetBinChannelX(__int32 iSpNr, unsigned __int64 Channel); double GetBinChannelY(__int32 iSpNr, unsigned __int64 Channel); // bins __int64 GetNumberOfXBins(__int32 iSpNr); __int64 GetNumberOfYBins(__int32 iSpNr); // diverse information __int32 FindSpectrum(char *pcSpName); __int64 GetDisplayedSpectrumNumber(); CString GetDisplayedSpectrumName(); CString GetSpectrumName(__int32 iSpNr); __int32 GetSpectrumType(__int32 iSpNr, bool bDisplayError); void SetGaussFitValues(__int32 iSpNr, double x0, double y0, double Sigma, double YOffset, double lowLimit, double highLimit, double usedLowLimit, double usedHighLimit); // coordinate __int32 GetCoordinateIndexByName(char *pcCoordinateName); char * GetCoordinateNameByIndex(__int32 i32Index); // marker/cursor functions void GetXYCursor(double &xRet, double &yRet, bool bSnap); void GetXYBoxCursor(double &xStartRet, double &yStartRet, double &xEndRet, double &yEndRet, bool bSnap); void SetMarker(CString csType,CDoubleArray &InputData); protected: CCoboldDocSpectrum *pSP; #ifdef USERSP_EXPORTS CtUserSpectrum *ptUserSp; #endif public: }; #ifdef __cplusplus } #endif Coltrims.h$#pragma warning(disable : 4996) #include "stdafx.h" #ifndef _Coltrims_include #define _Coltrims_include #include "resort64c.h" #include "CDan.h" #include "DANUtilities.h" #include "LMInfo.h" #include "math.h" #include "Write_File.h" #include "SharedClass.h" #ifndef FADC_MANAGER_CLASS_IS_DEFINED struct peak_info_struct { double position_ns; double binsize_ns; double height; double integral_ns; double left_edge_position_ns; double right_edge_position_ns; double fwhm_ns; }; #endif #define DAQ_VERSION8 20101015 #define DAQ_VERSION7 20080507 // 07.05.2008 #define DAQ_VERSION6 20080901 #define DAQ_VERSION5 20020408 #define DAQ_VERSION4 20020408 #define LMF_VERSION5 5 #define LMF_VERSION6 6 #define LMF_VERSION7 7 #define LMF_VERSION8 8 #define LMF_VERSION9 0x9 #define LMF_VERSION10 0xa #define DAN_VERSION7 20090527 #define DAN_VERSION6 20070901 #define DAN_VERSION5 20020513 #define DAN_SUBVERSION 0x0002 // increase with 1 (start with 0 at V4) #define MAX_NUM_OF_PARTICLES (25) #define p_au 1.985e-24 #define mass_amu 1.66056e-27 #define mass_e 9.1094e-31 #define eV 1.602176487e-19 #define pi 3.14159265 //#define FULL_COLTRIMS_DAN class vector_class { public: double x,y,z; double Abs(void) {return sqrt(x*x+y*y+z*z);} vector_class() { this->x = 0.; this->y = 0.; this->z = 0.; } vector_class(double x, double y, double z) { this->x = x; this->y = y; this->z = z; } vector_class& operator=(const vector_class &rhs) { if (this != &rhs) { this->x = rhs.x; this->y = rhs.y; this->z = rhs.z; } return *this; } vector_class& operator=(const double value) { this->x = value; this->y = value; this->z = value; return *this; } vector_class & operator+=(const vector_class &rhs) { this->x = this->x + rhs.x; this->y = this->y + rhs.y; this->z = this->z + rhs.z; return *this; } vector_class & operator-=(const vector_class &rhs) { this->x = this->x - rhs.x; this->y = this->y - rhs.y; this->z = this->z - rhs.z; return *this; } vector_class & operator*=(const double value) { this->x = this->x * value; this->y = this->y * value; this->z = this->z * value; return *this; } vector_class & operator*=(const vector_class v) { this->x = this->x * v.x; this->y = this->y * v.y; this->z = this->z * v.z; return *this; } vector_class & operator/=(const double value) { this->x = this->x / value; this->y = this->y / value; this->z = this->z / value; return *this; } const vector_class operator+(const vector_class &other) const { return (vector_class(*this) += other); } const vector_class operator-(const vector_class &other) const { return (vector_class(*this) -= other); } const vector_class operator*(const double value) const { vector_class result = *this; result *= value; return result; } const vector_class operator*(const vector_class v) const { vector_class result = *this; result *= v; return result; } const vector_class operator/(const double value) const { vector_class result = *this; result /= value; return result; } double operator*(const vector_class &rhs) const { double v = this->x * rhs.x + this->y * rhs.y + this->z * rhs.z; return v; } void cross(vector_class a, vector_class b) { this->x = a.y*b.z - a.z*b.y; this->y = a.z*b.x - a.x*b.z; this->z = a.x*b.y - a.y*b.x; } void rotate(vector_class a, double angle_RAD) { a = a / a.Abs(); double c = cos(angle_RAD); double s = sin(angle_RAD); double f = 1.-c; vector_class b; b.x = this->x * (f*a.x*a.x+ c) + this->y * (f*a.x*a.y-s*a.z) + this->z * (f*a.x*a.z+s*a.y); b.y = this->x * (f*a.x*a.y+s*a.z) + this->y * (f*a.y*a.y+ c) + this->z * (f*a.y*a.z-s*a.x); b.z = this->x * (f*a.x*a.z-s*a.y) + this->y * (f*a.y*a.z+s*a.x) + this->z * (f*a.z*a.z+ c); this->x = b.x; this->y = b.y; this->z = b.z; } }; class particle_class { public: particle_class() {x_m=0.;y_m=0.;TOF_s=0.;m_q=0.;Ekin_eV=0.;mass_kg=0.;charge_C=0.;reconstruction_method=0;} double x_m; double y_m; double TOF_s; double m_q; vector_class p; double Ekin_eV; double reconstruction_method; bool is_ion; double mass_kg; double charge_C; particle_class& operator=(const particle_class &rhs) { if (this != &rhs) { this->x_m = rhs.x_m; this->y_m = rhs.y_m; this->TOF_s = rhs.TOF_s; this->m_q = rhs.m_q; this->p = rhs.p; this->Ekin_eV = rhs.Ekin_eV; this->reconstruction_method = rhs.reconstruction_method; this->is_ion = rhs.is_ion; this->mass_kg = rhs.mass_kg; this->charge_C = rhs.charge_C; } return *this; } }; class spectrometer_class { public: #ifdef FULL_COLTRIMS_DAN double time_zero_offset_ns; double E_field; double B_field; double ion_accel_length; double ion_drift_length; double elec_accel_length; double elec_drift_length; double i_mass_kg; double i_charge_C; double e_mass_kg; double e_charge_C; double e_pos_offset_x; double e_pos_offset_y; double ion_pos_offset_x; double ion_pos_offset_y; #endif }; class detector_parameters_class { public: detector_parameters_class() { use_this_detector=false; sorter=0; sum_walk_calibrator=0; pos_walk_calibrator=0; scalefactors_calibrator=0; particle=0; parameter_address_of_this_detector=0; parameter_address_of_next_detector=0; ipUseReconstruction=0; AutoCalibration=false; det_name=""; number_of_particles=0; } ~detector_parameters_class() { if (sorter) {delete sorter; sorter=0;} if (sum_walk_calibrator) {delete sum_walk_calibrator; sum_walk_calibrator=0;} if (pos_walk_calibrator) {delete pos_walk_calibrator; pos_walk_calibrator=0;} if (scalefactors_calibrator) {delete scalefactors_calibrator; scalefactors_calibrator=0;} } bool use_this_detector; __int32 parameter_address_of_this_detector; __int32 parameter_address_of_next_detector; double dpCOx_pos; double dpCOy_pos; double dpCOx_rot; double dpCOy_rot; double dpRotA; double w_offset; double dpOSumu; double dpOSumv; double dpOSumw; bool bDiscard_MCP_signals; __int32 ipUseReconstruction; bool AutoCalibration; __int32 Cu1,Cu2,Cv1,Cv2,Cw1,Cw2,Cmcp; // Channel numbers double time_zero_offset_ns; double u_ns, v_ns, w_ns; double mcp_ns; double Sumu_ns,Sumv_ns,Sumw_ns; double Xuv_mm, Yuv_mm, Xuw_mm, Yuw_mm, Xvw_mm, Yvw_mm; double corrected_sum_u_pos, corrected_sum_u; double corrected_sum_v_pos, corrected_sum_v; double corrected_sum_w_pos, corrected_sum_w; double fv_best, fw_best; double best_w_offset_ns; double detector_map_fill; __int32 detector_map_x,detector_map_y; CString det_name; __int32 number_of_particles; __int32 ConsistenceIndicator; // __int32 Anti_ConsistenceIndicator; // __int32 MCP_reflections_indicator; sort_class * sorter; sum_walk_calibration_class * sum_walk_calibrator; nonlinearity_calibration_class * pos_walk_calibrator; scalefactors_calibration_class * scalefactors_calibrator; particle_class * particle; }; void write_sum_calibration_table_to_file(detector_parameters_class &det, CString filename); void calculate_ConsistenceIndicators(detector_parameters_class &det, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES]); bool get_parameters_into_sorter(detector_parameters_class &det, __int32 parameter_offset, CDoubleArray &Parameters, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES]); void shift_detector_times(detector_parameters_class &det, __int32 direction, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES], spectrometer_class &spec); void Finalize_Detector(detector_parameters_class &det); void OutputToEventDataArray(detector_parameters_class &det, __int32 &address_counter, CDoubleArray &EventData, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES]); void ProcessDetector(detector_parameters_class &det, __int32 cnt[], double tdc_ns[][MAX_NUM_OF_PARTICLES], spectrometer_class &spec); #ifdef FULL_COLTRIMS_DAN double GetZVelocity(double mass, double charge, double TOF, double E_field, double L_accel, double L_drift); void GetElectronMomentum(particle_class &particle, spectrometer_class spec); #endif __int32 GetHistogramID(char * name); ///////////////////////////////////////////////////////////////////// // This function produces pseudo random values between 0 and "factor" ///////////////////////////////////////////////////////////////////// inline double rnd() { return double(rand())/RAND_MAX; } ///////////////////////////////////////////// // This function returns the sign of a number ///////////////////////////////////////////// inline __int32 signofd(double a) { return (a == 0.0) ? 0 : (a < 0.0 ? -1 : 1); } #endif resort64c.hKo // The following ifdef block is the standard way of creating macros which make exporting // from a DLL simpler. All files within this DLL are compiled with the RESORT64C_EXPORTS // symbol defined on the command line. this symbol should not be defined on any project // that uses this DLL. This way any other project whose source files include this file see // RESORT64C_API functions as being imported from a DLL, wheras this DLL sees symbols // defined with this macro as being exported. //#define LINUX #ifndef LINUX #ifndef WINVER #define WINVER 0x0501 #endif #pragma warning(disable : 4005) #endif #ifndef NUM_IONS #define NUM_IONS (100) // needed for users who are porting their old projects from the old sort routine to the new one #endif #ifndef RESORT_IS_ALREADY_DEFINED #define RESORT_IS_ALREADY_DEFINED #define RESORT64C_API #ifndef LINUX #ifdef RESORT64C_EXPORTS #define RESORT64C_API __declspec(dllexport) #else // uncomment the following line if linking against the dynamic lib (resort64c.dll): // comment the line if linking against the static lib of resort64c.lib: #define RESORT64C_API __declspec(dllimport) #endif #else #ifndef __int32_IS_DEFINED #define __int32_IS_DEFINED #define __int32 int #define __int16 short #define __int64 long long #define __int8 char #endif #endif // List of error_codes of init()-function: // -1 wrong channel numbers // -2 uncorrected_time_sum_half_widths not correctly initialized // -3 corrected_time_sum_half_widths not correctly initialized // -4 tdc_array_row_length not correctly initialized // -5 MCP_radius not correctly initialized // -6 runtime not correctly initialized // -7 scalefactors not correctly initialized // -8 error allocating memory for internal arrays // -9 error during initialization of sum correctors // -10 error during initialization of pos correctors // -11 address of count-array not given // -12 address of tdc-array not given // -13 TDC binsize not given class sort_class; class profile_class; class gaussfit_class; class hit_class; class interpolate_class; class sum_walk_calibration_class; class scalefactors_calibration_class; class nonlinearity_calibration_class; #ifdef USE_DOUBLE_ARRAY_CLASS class double_array_class; #endif #ifdef USE_DOUBLE_ARRAY_CLASS class RESORT64C_API double_array_class { public: double_array_class(); // CONSTRUCTOR ~double_array_class(); double& operator[]( __int32 nSubscript ); double *pointer; __int32 * pointer_to_cnt; }; class RESORT64C_API double_array_pointer_class { public: double_array_pointer_class(); // CONSTRUCTOR ~double_array_pointer_class(); double_array_class& operator[]( __int32 nSubscript ); double_array_class pointer[7]; }; #endif class RESORT64C_API version_number_class { public: __int32 A; __int32 B; __int32 C; __int32 D; }; class RESORT64C_API signal_corrector_class { public: signal_corrector_class(); // FUNCTION virtual ~signal_corrector_class(); // FUNCTION virtual signal_corrector_class * clone(); // FUNCTION virtual double correct_sum(double t1, double t2,__int32 number_of_layer); // FUNCTION virtual double correct_pos(double t1, double t2,__int32 number_of_layer); // FUNCTION virtual double get_other_anode_signal_corrected(double tmcp_ns, double t_ns,__int32 left_or_right_side_of_output_signal, __int32 layer); // FUNCTION virtual double get_this_anode_signal_corrected(double tmcp_ns, double t_ns,__int32 left_or_right_side_of_input_signal, __int32 layer); // FUNCTION virtual __int32 configure(double max_runtime,double TDC_resolution_ns,bool use_HEX,bool use_pos_correction,bool use_sum_correction); // FUNCTION virtual double find_complement_raw_signal(double tmcp_ns, double t_ns, __int32 side_of_input_signal, interpolate_class * corrector); // FUNCTION interpolate_class * sum_corrector_U; interpolate_class * sum_corrector_V; interpolate_class * sum_corrector_W; interpolate_class * pos_corrector_U; interpolate_class * pos_corrector_V; interpolate_class * pos_corrector_W; interpolate_class * single_anode_signal_corrector[6]; interpolate_class * single_partner_anode_signal_corrector[6]; double TDC_resolution_ns; double max_runtime; bool correctors_are_initialized; bool use_HEX; bool use_pos_correction; bool use_sum_correction; private: virtual void init_single_correctors(); // FUNCTION }; class RESORT64C_API nonlinearity_calibration_class { public: nonlinearity_calibration_class(__int32 number_of_stages, __int32 number_of_columns, double fu, double fv, double fw, double tdc_resolution, double max_runtime); // CONSTRUCTOR virtual ~nonlinearity_calibration_class(); // FUNCTION virtual void finalize(); // FUNCTION virtual void fill_pos_histograms(double u1, double u2, double v1, double v2, double w1, double w2, double tmcp); // FUNCTION virtual void generate_pos_correction_profiles(); // FUNCTION virtual double get_ratio_of_full_bins(); // FUNCTION virtual bool map_is_full_enough(); // FUNCTION virtual double get_corrected_position_ns(double pos_ns,__int32 layer); // FUNCTION virtual double get_corrected_anode_signal_ns(double tmcp_ns, double signal_ns, __int32 side_of_input_signal, __int32 layer); // FUNCTION virtual bool get_correction_point(double &pos_ns, double &correction_ns, __int32 index, __int32 layer); // FUNCTION virtual double get_corrected_partner_anode_signal_ns(double tmcp_ns, double t_ns, __int32 side_of_output_signal, __int32 layer); // FUNCTION // virtual nonlinearity_calibration_class * clone(); // FUNCTION __int32 detector_map_size; double fu,fv,fw; __int32 number_of_columns; double tdc_resolution; __int32 number_of_stages; __int32 full_bins_counter; __int32 bins_with_1_fill_counter; profile_class ** pos_profile[3]; profile_class * single_corrector_profiles[6]; profile_class * single_complement_corrector_profiles[6]; sum_walk_calibration_class * sum_walk_calib; interpolate_class * correction[3]; bool initialization_successful; private: virtual bool reset(); // FUNCTION __int32 bins_in_usable_area; __int32 full_bin_limit; __int16 ** detector_map_counter; double runtime; float * stack[6]; __int32 stack_counter; __int32 stack_size; }; class RESORT64C_API peak_tracker_class { public: static peak_tracker_class * new_peak_tracker_class(__int32 stack_size, double center_left_bin, double center_right_bin, __int32 number_of_bins); // static CONSTRUCTOR virtual ~peak_tracker_class(); // FUNCTION virtual void reset(); // FUNCTION virtual double track(double tracked_value); // FUNCTION virtual bool is_new_result_available(); // FUNCTION __int32 stack_size; double center_left_bin; double center_right_bin; __int32 number_of_bins; double binsize; __int32 * internal_histogram; __int32 internal_hit_counter; __int32 underflows; __int32 overflows; double last_return_value; double maximum_return_up_to_now; bool new_result_available; double maximum_total_correction_up_to_now; double sum_of_all_corrections_up_to_now; double offset_to_user_in_first_run; bool this_is_the_first_run; __int32 number_of_resets; private: peak_tracker_class(__int32 stack_size, double center_left_bin, double center_right_bin, __int32 number_of_bins); // CONSTRUCTOR }; class RESORT64C_API sum_walk_calibration_class { public: static sum_walk_calibration_class * new_sum_walk_calibration_class(sort_class* mother_sort_instance, __int32 number_of_columns); // CONSTRUCTOR sum_walk_calibration_class(__int32 number_of_columns, bool use_HEX, double max_runtime_ns,double tdc_resolution); // CONSTRUCTOR virtual sum_walk_calibration_class * clone(); // FUNCTION virtual ~sum_walk_calibration_class(); // FUNCTION virtual void finalize(); // FUNCTION virtual bool init_with_sorter(sort_class * mother_sort_instance); // FUNCTION virtual void fill_sum_histograms(); // FUNCTION virtual void fill_sum_histograms(double u1, double u2, double v1, double v2, double w1, double w2, double mcp_ns); // FUNCTION virtual void fill_sum_histograms(double u1, double u2, double v1, double v2, double mcp_ns); // FUNCTION virtual void generate_sum_walk_profiles(); // FUNCTION virtual double get_corrected_sum_ns(double sum_ns, double pos_ns,__int32 layer); // FUNCTION virtual bool get_correction_point(double &pos_ns, double &correction_ns, __int32 index, __int32 layer); // FUNCTION sort_class * sorter; __int32 number_of_columns; profile_class * sumu_profile; profile_class * sumv_profile; profile_class * sumw_profile; bool initialization_successful; double tdc_resolution; private: sum_walk_calibration_class(sort_class* mother_sort_instance, __int32 number_of_columns); // FUNCTION }; class RESORT64C_API scalefactors_calibration_class { public: scalefactors_calibration_class(bool BuildStack,double runtime, double runtime_inner_limit, double fu,double fv,double fw); // CONSTRUCTOR virtual ~scalefactors_calibration_class(); // FUNCTION virtual void feed_calibration_data(double u_ns, double v_ns, double w_ns, double w_ns_minus_woffset); // FUNCTION virtual void do_auto_calibration(double w_offset); // FUNCTION virtual double get_ratio_of_full_bins(); // FUNCTION virtual bool map_is_full_enough(); // FUNCTION virtual scalefactors_calibration_class * clone(); // FUNCTION double fu,fv,fw; double best_fv, best_fw, best_w_offset; double detector_map_fill; __int32 binx,biny; __int32 detector_map_size; __int32 full_bins_counter; __int32 bins_with_1_fill_counter; bool disable_optimization_of_fv; bool disable_optimization_of_fw; bool disable_optimization_of_offset; bool new_was_succesful; private: virtual double integrate_deviations(double fv, double fw, double w_offset); // FUNCTION __int32 full_bin_limit; bool BuildStack; double runtime; double runtime_inner_limit; float * u_ns_stack; float * v_ns_stack; float * w_ns_stack; float * X_calibration; float * Y_calibration; __int16 **detector_map_counter; float **detector_map; __int32 TDC_stack_counter; __int32 tdc_stack_size; __int32 bins_in_inner_area; }; class RESORT64C_API gaussfit_class { public: gaussfit_class();// CONSTRUCTOR gaussfit_class(double * double_y_array,__int32 number_of_points);// CONSTRUCTOR gaussfit_class(__int32 * int_y_array,__int32 number_of_points);// CONSTRUCTOR gaussfit_class(double * double_y_array,double fwhm,double x_pos,double height,__int32 number_of_points);// CONSTRUCTOR gaussfit_class(__int32 * int_y_array,double fwhm,double x_pos,double height,__int32 number_of_points);// CONSTRUCTOR virtual ~gaussfit_class(); virtual bool do_gauss_fit(); // FUNCTION virtual bool find_good_start_values(); // FUNCTION virtual void reset(); // FUNCTION virtual void smooth(); // FUNCTION virtual gaussfit_class * clone(); // FUNCTION virtual double get_random_gauss_value(); // FUNCTION virtual double get_random_value(); // FUNCTION __int32 number_of_points; double* double_y_array; double fwhm,height,x_pos; double fwhm_stepsize,height_stepsize,x_pos_stepsize; __int32 max_number_of_iterations; private: bool private_array_used; virtual void copy_to_private_double_array(__int32 *); // FUNCTION virtual void copy_to_private_double_array(double *); // FUNCTION virtual double calculate_error(double, double, double); // FUNCTION virtual double gauss_value(double , double , double , double); // FUNCTION }; class RESORT64C_API profile_class { public: profile_class(); // CONSTRUCTOR virtual ~profile_class(); virtual void generate_profile_with_gauss(); // FUNCTION virtual void generate_profile_with_box(); // FUNCTION virtual void generate_profile_with_averaging(); // FUNCTION virtual bool box_fit(double * fit_array, __int32 number_of_bins, double &pos, double &width); // FUNCTION virtual void reset(); // FUNCTION virtual void fill_matrix(double x_pos,double y_pos,double value); // FUNCTION virtual void fill_matrix(__int32 x_bin,__int32 y_bin,double value); // FUNCTION virtual void fill_matrix(double x_pos,double y_pos); // FUNCTION virtual void fill_matrix(__int32 x_bin,__int32 y_bin); // FUNCTION virtual void clear_matrix(); // FUNCTION virtual double get_x_bin_as_double(double x_pos); // FUNCTION virtual double get_y_bin_as_double(double y_pos); // FUNCTION virtual __int32 get_x_bin(double x_pos); // FUNCTION virtual __int32 get_y_bin(double y_pos); // FUNCTION virtual double get_bin_center_x(double x_bin); // FUNCTION virtual double get_bin_center_y(double y_bin); // FUNCTION virtual double get_bin_center_x(__int32 x_bin); // FUNCTION virtual double get_bin_center_y(__int32 y_bin); // FUNCTION virtual double get_y(__int32 bin); // FUNCTION virtual double get_fwhm(__int32 bin); // FUNCTION virtual double get_y(double x_pos); // FUNCTION virtual double get_fwhm(double x_pos); // FUNCTION virtual unsigned __int32 get_bin_content(__int32 bin); // FUNCTION virtual unsigned __int32 get_bin_content(double x_pos); // FUNCTION virtual void heal_gaps_where_fit_did_not_work(); // FUNCTION virtual profile_class * clone(); // FUNCTION virtual void transfer_to_interpolate_class_instance(interpolate_class * interpolate_class_instance); // FUNCTION __int32 number_of_columns; __int32 number_of_rows; double center_of_upper_bin; double center_of_lower_bin; double center_of_left_bin; double center_of_right_bin; double * double_profile_y; double * double_profile_fwhm; bool * bool_profile_fit_worked; double ** double_source_matrix; unsigned __int32 * bin_content; private: //double dNaN; bool using_internal_matrix; bool profile_exists; }; class RESORT64C_API interpolate_class { friend class sort_class; public: interpolate_class(); // CONSTRUCTOR virtual ~interpolate_class(); virtual double get_y(double x_pos); // FUNCTION void set_point(double x_pos, double y_pos); // FUNCTION void reset(); // FUNCTION virtual interpolate_class * clone(); // FUNCTION double min_x,max_x; __int32 number_of_bins_per_nanosecond; __int32 number_of_points; double binsize_ns; bool is_sorted; bool use_fast_interpolation; bool init_successful; private: void init_after_setting_points(); // FUNCTION // must be called after the points have been fed in double interpolate(double x_pos); // FUNCTION void sort(); // FUNCTION void find_duplicates(); // FUNCTION __int32 size_of_array; __int32 size_of_input_arrays; double* x_input; double* y_input; double* y_pos; }; class RESORT64C_API hit_class { friend class sort_class; public: hit_class(sort_class *); // CONSTRUCTOR virtual ~hit_class(); __int32 iCu1,iCu2,iCv1,iCv2,iCw1,iCw2,iCmcp; double fu,fv,fw; double uncorrected_time_sum_half_width_u,uncorrected_time_sum_half_width_v,uncorrected_time_sum_half_width_w; double corrected_time_sum_half_width_u,corrected_time_sum_half_width_v,corrected_time_sum_half_width_w; __int32 number_of_reconstructed_signals_in_deadtime_shadow; double tu1, tu2; double tv1, tv2; double tw1, tw2; double tmcp; double ctu1, ctu2; double ctv1, ctv2; double ctw1, ctw2; double tsummcp; bool tsummcp_exists; double x, y, time; bool use_HEX; __int32 set_of_rules; sort_class * sort_instance; bool common_start_mode; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_pointer_class tdc; #else double * tdc[7]; #endif __int32 *cnt; __int32 number_of_possible_reflections; __int32 number_of_reconstructed_signals_sitting_on_top_of_a_real_signal; //__int32 number_of_already_used_signals; bool hit_is_good; __int32 number_of_combination; __int16 * used_signals[7]; double * reconstructed_signals[7]; __int32 reconstructed_cnt[7]; __int32 number_of_original_anode_signals; bool with_mcp; unsigned __int32 DEBUG_event_number; unsigned __int32 unique_hit_identifier; __int32 method; __int32 sum_stack_size; double * u_sum_stack1, *v_sum_stack1, *w_sum_stack1; double * u_sum_stack2, *v_sum_stack2, *w_sum_stack2; __int32 * u_sum_valid, *v_sum_valid, *w_sum_valid; __int32 * sum_killers; __int32 number_of_destroyed_sums; bool hit_was_treated_by_stolen_signal_function; __int32 channel_treated_by_stolen_signal_function; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_class tdc_Cu1,tdc_Cu2,tdc_Cv1,tdc_Cv2,tdc_Cw1,tdc_Cw2,tdc_Cmcp; #else double *tdc_Cu1,*tdc_Cu2,*tdc_Cv1,*tdc_Cv2,*tdc_Cw1,*tdc_Cw2,*tdc_Cmcp; #endif __int16 *used_signals_Cu1,*used_signals_Cu2,*used_signals_Cv1,*used_signals_Cv2,*used_signals_Cw1,*used_signals_Cw2,*used_signals_Cmcp; virtual __int32 get_number_of_signals_which_are_used_more_than(__int32); // FUNCTION private: bool corrected_anode_signals_are_computed; virtual void generate(__int32 iCu1, __int32 iCu2, __int32 iCv1, __int32 iCv2, __int32 iCw1, __int32 iCw2, __int32 iCmcp, __int32 number_of_combination, __int32 unique_hit_identifier,__int32 set_of_rules); // FUNCTION virtual bool is_in_deadtime_shadow(double , __int32); // FUNCTION virtual bool is_closer_to_a_real_signal_than(double , __int32 , double); // FUNCTION virtual bool could_be_a_reflection(__int32 , __int32); // FUNCTION virtual bool are_N_signals_used_more_than(__int32,__int32); // (including own signals of this hit) FUNCTION virtual void clone(hit_class *); // FUNCTION virtual void apply_filter_rules(); // FUNCTION virtual __int32 get_method_number(__int32,__int32,__int32,__int32,__int32,__int32,__int32); // FUNCTION virtual __int32 how_many_reconstructed_pairs_at_MCP_edge(); // FUNCTION virtual __int32 get_number_of_destroyed_sums(); // FUNCTION virtual bool check_if_a_used_anode_signal_belongs_to_a_destroyed_sum(); // FUNCTION virtual void compute_time(); // FUNCTION virtual bool signal_is_distorted(__int32,__int32,double,double); // FUNCTION }; class RESORT64C_API sort_class { public: sort_class(); // CONSTRUCTOR virtual ~sort_class(); virtual __int32 sort(); // FUNCTION virtual __int32 run_without_sorting(); // FUNCTION virtual void sort_an_hit_array_in_time(hit_class* hit_array[], __int32 number_of_hits, bool small_numbers_first); // FUNCTION // virtual bool expand_an_hit_array(hit_class**[], __int32 * , __int32); // FUNCTION virtual __int32 init_after_setting_parameters(); // FUNCTION virtual void get_error_text(__int32 error_code,__int32 buffer_length,char* destination_array); virtual void shift_layer_w(__int32 add_or_sub_sign,double w_offset); // FUNCTION virtual void shift_sums(__int32 add_or_sub_sign,double sumu_offset,double sumv_offset); // FUNCTION virtual void shift_sums(__int32 add_or_sub_sign,double sumu_offset,double sumv_offset,double sumw_offset); // FUNCTION virtual void shift_position_origin(__int32 add_or_sub_sign,double pos_x_mm_offset,double pos_y_mm_offset); // FUNCTION virtual sort_class * clone(); // FUNCTION static version_number_class get_version_number(); // FUNCTION // the following variables must be initialized by the user: __int32 *count; double *tdc_pointer; double fu,fv,fw; double runtime_u,runtime_v,runtime_w; //or double max_runtime; __int32 tdc_array_row_length; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_pointer_class tdc; #else double *tdc[7]; #endif __int32 cnt[7]; double uncorrected_time_sum_half_width_u,uncorrected_time_sum_half_width_v,uncorrected_time_sum_half_width_w; bool common_start_mode; // true = common start, false = common stop double MCP_radius; bool use_HEX; bool use_MCP; double TDC_resolution_ns; __int32 Cu1,Cu2,Cv1,Cv2,Cw1,Cw2,Cmcp; //optional: double corrected_time_sum_half_width_u,corrected_time_sum_half_width_v,corrected_time_sum_half_width_w; double dead_time_anode; double dead_time_mcp; bool use_sum_correction; bool use_pos_correction; bool run_without_sorting_flag; bool dont_overwrite_original_data; bool use_reflection_filter_on_u1,use_reflection_filter_on_u2; bool use_reflection_filter_on_v1,use_reflection_filter_on_v2; bool use_reflection_filter_on_w1,use_reflection_filter_on_w2; double u1_reflection_time_position, u1_reflection_half_width_at_base; double u2_reflection_time_position, u2_reflection_half_width_at_base; double v1_reflection_time_position, v1_reflection_half_width_at_base; double v2_reflection_time_position, v2_reflection_half_width_at_base; double w1_reflection_time_position, w1_reflection_half_width_at_base; double w2_reflection_time_position, w2_reflection_half_width_at_base; //the following variables should not be modified: double pos_check_radius_mm; double triple_MCP_time_tolerance_ns; double lower_dead_time_margin; __int32 maximum_uses_of_signals; //double pre_dead_time; __int32 maximum_of_already_used_signals_in_one_hit; bool initialization_successful; double * reconstructed_signals[7]; __int32 reconstructed_cnt[7]; __int16 * used_signals[7]; __int32 output_hit_array_counter; hit_class ** output_hit_array; unsigned __int32 unique_hit_identifier; __int32 DEBUG_flag; unsigned __int32 DEBUG_event_number; version_number_class version_number; #ifdef USE_DOUBLE_ARRAY_CLASS double_array_class tdc_Cu1,tdc_Cu2,tdc_Cv1,tdc_Cv2,tdc_Cw1,tdc_Cw2,tdc_Cmcp; #else double *tdc_Cu1,*tdc_Cu2,*tdc_Cv1,*tdc_Cv2,*tdc_Cw1,*tdc_Cw2,*tdc_Cmcp; #endif __int16 *used_signals_Cu1,*used_signals_Cu2,*used_signals_Cv1,*used_signals_Cv2,*used_signals_Cw1,*used_signals_Cw2,*used_signals_Cmcp; __int32 local_sort_instance_id; signal_corrector_class * signal_corrector; private: virtual bool create_new_hit_instance(__int32 &,__int32 &, hit_class **&,__int32 &); // FUNCTION virtual bool detect_twins(); // FUNCTION virtual bool get_combination(__int32 , __int32 , bool); // FUNCTION virtual void search_combinations(__int32,bool,__int32,__int32,__int32); // FUNCTION virtual bool init_arrays(); // FUNCTION virtual void delete_arrays(); // FUNCTION virtual void sort_into_output_hit_array(); // FUNCTION virtual void get_all_from_one_combination(__int32,__int32,__int32); // FUNTCION virtual bool garbage_was_found(); // FUNTCION virtual __int32 find_next_hit_by_signal(__int32, __int32, __int32, hit_class * [], __int32); // FUNTCION virtual void remove_hit_from_output_hit_array(__int32); // FUNTCION virtual void kill_all_hits_using_this_signal_except(__int32,__int32,__int32*); // FUNTCION virtual void find_stolen_anode_signals(hit_class*[],__int32); // FUNCTION static __int32 global_instance_id_counter; bool ready_to_run; __int32 number_of_already_used_signals; double tdc_signal_dummy; __int32 number_of_blocked_combinations; unsigned __int32 * blocked_combinations[7]; __int32 temp_hit_array_counter; hit_class ** temp_hit_array; __int32 number_of_hit_instances_in_temp_hit_array_stack; __int32 number_of_hit_instances_in_output_hit_array_stack; __int32 combination[7]; __int32 size_of_temp_hit_array_stack; __int32 size_of_output_hit_array_stack; }; #endif #ifdef iwfh938qh4f9q8hf9hq98h498hfq98hq98h Help section: How to use the "peak_tracker_class" by Achim Czasch: make an instance of the peak_tracker_class: example: peak_tracker_class * tracker = peak_tracker_class::new_peak_tracker_class(20000,-w,w,int(2.*w/0.025+1.e-6)+1); this will initialze "tracker". Do not forget to delete tracker at the end of the prgram to prevent memory leaks: delete tracker; "tracker" will have an internal histogram. The center of the left bin will be at -w. The center of teh right bin will be at +w. The histogram is divided into int(2.*w/0.025+1.e-6)+1 bins. after 20000 fill commands "tracker" will calculate the center of mass of the histogram and then clear the histogram. This is called one "cycle". Before "tracker" can be used it needs some information. When you determine the position of a peak in a histogram you will probably get a slightly different results than the simple COM-calucaltion. Therefore you must tell "tracker" about this offset. This is done with tracker->offset_to_user_in_first_run = x The best way to get "x" is to create a histogram and fill it only with the first 20000 events (the first cycle). Then determine the position and feed the offset into "tracker". To prevent some pitfalls it is best to track a value which should be at zero. Now you can start to fill values into "tracker": tracker->track(value); Each time after such a fill you can ask tracker if it has produced a new correction offset (in other words "if it has finished one cycle"): if(tracker->is_new_result_available()) offset = offset - tracker->last_return_value; tracker->reset() clears the internal histogram. You can keep track of what "tracker" is doing by looking at the following member variables: bool tracker->this_is_the_first_run (true during first cycle. False after first cycle.) int tracker->internal_hit_counter (reset after each cycle) double tracker->maximum_return_up_to_now (maximum return value of all cycles) double tracker->maximum_total_correction_up_to_now (maximum total correction since start) int tracker->number_of_resets int tracker->overflows (reset after each cycle) int tracker->underflows (reset after each cycle) double tracker->sum_of_all_corrections_up_to_now (sum of all corrections. This is different from "maximum_total_correction_up_to_now".) The value "tracker->maximum_total_correction_up_to_now" helps to check wether a value has drifted too far. #endif #include "stdafx.h" #ifndef WRITE_FILE_HEADER_INCLUDED #define WRITE_FILE_HEADER_INCLUDED //#include "resort64c.h" #include "CoboldDll.h" class Write_File { public: void WriteASCIIData(__int32 *pointer_to_CNT_array, double * pointer_to_TDC_array); void WriteLMFData( __int32 *pointer_to_CNT_array, double * pointer_to_TDC_array, CDoubleArray &, LARGE_INTEGER timestamp); bool OpenFile(); __int64 number_of_events; Write_File(__int32 mode, __int32 tdc_row_length, CDoubleArray &); ~Write_File(); __int32 iDAQ_ID; // parameter 8 __int32 LMF_version; // parameter 9 CFile * output_file; CArchive * File_Archive; private: void write_LMF_header_part1(); void write_TDC8HP_Cobold2008R1_header(); void write_TDC8HP_Cobold2008R2_header(); void write_TDC8PCI2_Cobold2008R2_header(); CString LMVersionstring; CString LMFilePathName; CString LMComment; CString csDAqInfo; CString csConfigFile; CString csINLFile; CString csDNLFile; CTime Starttime; CTime Stoptime; unsigned __int32 archive_flag; __int32 mode; __int32 tdc_row_length; char name[1024]; CDoubleArray parameters_copy; unsigned __int64 LMHeadersize; HMODULE DAQ_lib; bool header_was_written; // for Cobold2008 unsigned __int64 LMUserdefinedheadersize; unsigned __int64 number_of_coordinates; typedef void (*MyProc3)(CArchive *pAr, CDoubleArray &Parameter, unsigned __int64 *pLMUserHeaderLength); // for Cobold2008 typedef void (*MyProc4)(unsigned __int32 _ui32LMHeaderVersion); // for Cobold2008 typedef LPCTSTR (*MyProc5)(); // for Cobold2008 MyProc3 DAqOnlineInitialize; MyProc4 DAqSetLMHeaderVersion; MyProc5 DAqGetInformationString; // for Cobold2002: //unsigned __int32 LMUserdefinedheadersize; //typedef void (*MyProc3)(CArchive *, CDoubleArray &, unsigned __int32 *); //MyProc3 DAQOnlineInitialize; }; #endif l4 Write_File.h{#include "stdafx.h" #ifndef WRITE_FILE_HEADER_INCLUDED #define WRITE_FILE_HEADER_INCLUDED //#include "resort64c.h" #include "CoboldDll.h" class Write_File { public: void WriteASCIIData(__int32 *pointer_to_CNT_array, double * pointer_to_TDC_array); void WriteLMFData( __int32 *pointer_to_CNT_array, double * pointer_to_TDC_array, CDoubleArray &, LARGE_INTEGER timestamp); bool OpenFile(); __int64 number_of_events; Write_File(__int32 mode, __int32 tdc_row_length, CDoubleArray &); ~Write_File(); __int32 iDAQ_ID; // parameter 8 __int32 LMF_version; // parameter 9 CFile * output_file; CArchive * File_Archive; private: void write_LMF_header_part1(); void write_TDC8HP_Cobold2008R1_header(); void write_TDC8HP_Cobold2008R2_header(); void write_TDC8PCI2_Cobold2008R2_header(); CString LMVersionstring; CString LMFilePathName; CString LMComment; CString csDAqInfo; CString csConfigFile; CString csINLFile; CString csDNLFile; CTime Starttime; CTime Stoptime; unsigned __int32 archive_flag; __int32 mode; __int32 tdc_row_length; char name[1024]; CDoubleArray parameters_copy; unsigned __int64 LMHeadersize; HMODULE DAQ_lib; bool header_was_written; // for Cobold2008 unsigned __int64 LMUserdefinedheadersize; unsigned __int64 number_of_coordinates; typedef void (*MyProc3)(CArchive *pAr, CDoubleArray &Parameter, unsigned __int64 *pLMUserHeaderLength); // for Cobold2008 typedef void (*MyProc4)(unsigned __int32 _ui32LMHeaderVersion); // for Cobold2008 typedef LPCTSTR (*MyProc5)(); // for Cobold2008 MyProc3 DAqOnlineInitialize; MyProc4 DAqSetLMHeaderVersion; MyProc5 DAqGetInformationString; // for Cobold2002: //unsigned __int32 LMUserdefinedheadersize; //typedef void (*MyProc3)(CArchive *, CDoubleArray &, unsigned __int32 *); //MyProc3 DAQOnlineInitialize; }; #endif l4XCCoboldDocCoordinateA ch01nDAq RAW coordinatesA ch01s01DAq RAW coordinatesA ch02nDAq RAW coordinatesA ch02s01DAq RAW coordinatesA ch03nDAq RAW coordinatesA ch03s01DAq RAW coordinatesA ch04nDAq RAW coordinatesA ch04s01DAq RAW coordinatesA ch05nDAq RAW coordinatesA ch05s01 DAq RAW coordinatesA ch06n DAq RAW coordinatesA ch06s01 DAq RAW coordinatesA ch07n DAq RAW coordinatesA ch07s01 DAq RAW coordinatesA ch08nDAq RAW coordinatesA ch08s01DAq RAW coordinatesA LowResLevelInfoA AbsoluteEventTimeA DeltaEventTimeA EventCounterA TrueA rateA n01A n02A n03A n04A n05A n06A n07A n08A n09A n10A n11 A n12!A n13"A n14#A n15$A n16%A n17&A n18'A n19(A n20)A i_ConsistenceIndicator*A i_u_ns+A i_v_ns,A i_w_ns-A i_sumu.A i_sumv/A i_sumw0A i1_X_mm1A i1_Y_mm2A i1_r_mm3A i1_TOF_ns4A i2_X_mm5A i2_Y_mm6A i2_r_mm7A i2_TOF_ns8A i3_X_mm9A i3_Y_mm:A i3_r_mm;A i3_TOF_ns<A i4_X_mm=A i4_Y_mm>A i4_r_mm?A i4_TOF_ns@A i_Xuv_mmAA i_Yuv_mmBA i_Xuw_mmCA i_Yuw_mmDA i_Xvw_mmEA i_Yvw_mmFA i1_used_reconstruction_methodGA i_corrected_sumpos_UHA i_corrected_sum_UIA i_corrected_sumpos_VJA i_corrected_sum_VKA i_corrected_sumpos_WLA i_corrected_sum_WMA i_detector_map_xNA i_detector_map_yOA i_reflection_u1PA i_reflection_u2QA i_reflection_v1RA i_reflection_v2SA i_reflection_w1TA i_reflection_w2UA PH_gVA TOF_gWCCoboldDocCoordinateSet iAll_X_mm159=Z iAll_Y_mm26:>Z iAll_TOF_ns48<@A l`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~OOt cW ~sW?'M? olr;/ϟQ)}]O꼙w=c??~Oysl<{g_?5~3Oz}znl<sc3<~n~N ~+?;?oz,OLVӟ]|knhI\Save TimeStamp. Always 2 [0=no Timestamp,1=32Bit(Low.Low,Low.high),2=64Bit(L.L,L.h,H.L,H.h)]number of Channelsnumber of hits)check-ID (tests compatibility of CCF/DAn))check-ID (tests compatibility of CCF/DAq);display only every (n)th event (for high rate measurements)"config file read (0 = no, 1 = yes)0RisingEnable, 0 = none (e.g. 0x40 = channel 7):FallingEnable, Channel 1-9 on first TDC and 1-8 on 2nd TDCTriggerEdge, 0 = falling#TiggerChannel,channel 8 for triggerOutputLevel, 0 = false?ReadoutMode, 1 = 25ps binsize and max. +-200 microseconds range%AllowOverlap, 0 = false (0 = default)ATriggerDeadTime, time in ns (usually 10ns more than parameter 70)GroupRangeStart, time in nsGroupRangeEnd, time in ns'External Clock, 0 = false (0 = default)'OutputRollovers, 1 = true (1 = default).VHR (TDC8HP only: 0 = 100ps LSB, 1 = 25ps LSB)&GroupTimeout in seconds (default 0.2s)+INL, 0 = false = do not read file (default)+DNL, 0 = false = do not read file (default)$MMXEnable (never set to 0, always 1)$DMAEnable (never set to 0, always 1)time zero channel:2type of binsize (works only with parameter 66 = 0)7offset for signals in time zero channel (unit: seconds) do not modify or move this line!IStart of DAQ Data for DAN (Start Coordinate) 0 = automatic (always use 0)BStart of DAN Data (Start Coordinate) 0 = automatic (always use 0)?Reset event counter at first chance (1 = yes (default), 0 = no)Deadtime of anode electronics (nanoseconds) (Always use 25 ns)time zero offset (will be added to all times on this detector)S1 = use MCP signal, 0 = discard all MCP signals and reconstruct using anode signalsGfirst parameter for the next detector (0 if this was the last detector) CCoboldDocConditioncsumu`@b@.s_w,i_correc;^csumv`@a@/qCoordinates)^csumwa@b@0>^csumuvx@@y@W^csumuwT@T@. >=^csumvw@U@U@/ ^ctofggx@@y@W^ctofgnf@p@W^ctof_g`@a@/^ctof_n `@b@.CCoboldDocSpectrum i_ConsistenceIndicatorD*P@?Q{GP@Q{GP@)\xq= &A[=8@Kpj?)ďAďAlDD`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ ).Ͽ'--%r?j?wK$|_ו~~?o37#{ y;㟿___7oP~};1F3'>?[v[?G{V_=אE1?_~K;!ۯos_5Gw;??[~{] 7sߧO_x |kn i time i_sum U [ns].i@?@i@@i@ ףp=BnGzD@xxxxxx @a?bAbAl7`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ <_{Cԟ7.SԟD^Пcm?=篧?{_Oo?/~c q'{՟:3ן|?>oN翭go9ӟ|?E?VOg~J~GN??5o^C翥?H?C՟#ҟ~X~Ư?ҿYC[_П?"}W~+Пo߿BT~&󏕟Yco/?I?'+~[i o??Zֿ\>֟Zߵ_?՟?!ZOԟ5ӿG}\oOX??~R矠?P?U|_矣[ϿZN ?'׿[1 mX>ן^翋kOD?/H??^skOџ矠?1}ԟ~N'?J;:W9v|?oiԿl{?)\ k/ֿ֟?ӿ?֟+<ԟ%՟~{ߟ߿@]?~L~Sҿ-V֟ߪ?|?U?ӟ}_ҟ/9HiSWϿV_Aп__cGW7G?gJ^WE?kB'ߟϿMMs"?I]?R~Cq"?ϟ^?ПM'_=ߵ>՟KkkןIT_+5/~H=O.Oֿo]?o-4D>֟Կm?4hR?׿C_v_P~/o/?m+B3]??W߯pޙ~S wԟ_gsǿX?:|LcR?w@-VR>ߩ5~)寧Ov~|Sy?rjV[o?XN}O/WOk-HsO?T=g?Zҟi{諭 ?Wg?O~+UK_S?sĎAs#~?@?]#?D֟~~ϻW??Uҟsן~~???Ox|?+j7vP?G;~ݮ~H~ASпK]ҟϵ/ѿw_?_cGLsӼ߿/ӟO_7F{?޿?WyY?5s=ҟ?uoA W_A?T@?3?L~v\Bѿpҟ_.?_C׼_hDNײַwџU՟Z П3;p?N]oџ~?_OÏ~3o_vo翹~owggShkSߪ?O_?97U;w{^J߻7m߿?HۏӿB~ןSC.?ֿ%ԟ~No֟_ߢ? ޿XUOԟ ~v9֟4M^j~CkNwvO52w?oosmwԿBm?]WDr+ߧ? _|K{3B߿sZ~~@?o>X[z#~~nί ֟GU_K#~[j?~[Toֿ5?k[+_~篯VA]WOw_Sۙ~/vv~k+s|?Sx?_EOןnH?Կ+Կz]Fӟuލ/Cҿi+m?Cǿߩ?|򷑏_П\;[79'П?iwA}_ozϟП~[_?mߣ1KwbXNSO[^g?RCL8տy󏐟KA~H5>uZ?4iN~N{So!??@k>ҿm_/ӟW k/}?M|}SпO ?W~}W?KeW@#oyZ.wHa~ ]mh??HKԟq[}?o_?󧕮|?"s/?Bԟ<~>ҿ<>W_ӟ4Qǯt4ӟҟJ~/kQ?~H_c G _?5V˯8 gx_ϿC_S+Uy?7[Ue?RwzпDէO翮TjO4NL|7c՟~cOޫ?k_Dž?$?%߉WOҟ/? /T\i? ?*>GKcB?+]^vR}/_|{:S>_i[/#&9BR>⿒%k_#}g[_?F/[G蟐^?/ֿt/SwO_?!??T~Ay+??X~g_Omgyg ;TO/T~Xk_o2t!?L?7+_/_?C~I=i_?S~fկ[=?MU?A~EįC[O{ |+o?a1~g&L-?د?WԳ_f?.[o?7o?ߌn\>o?%/_k w-[-$?g|__)?O~vRF߯-?Cw/;)~ߘA_8\ ?^m ?^2sۿ/g7~L>_ޟ翫?_&~Mc__U;UzOKES?7~m]\_K~B~ſ&kW'-i; ]-zs]R9_ݓy5U_? W3_m_8 ?ݟ9__]=_?dMxkgk?,xז _şտ/V7A~џ?nO~M~?:.׿$>z>+{ߎ]$~KE/Eӿ]o'ijL_n&?^wߖ?'5 XRmoW?QQL6M['ߢ~̯~͟/^n./ԟ&?ӿU~>[ۿY~՟(?^~:yv<+_W/_&?T~o_bϿ/_??O~\9Ο%??#s?g|??U~u-ԟ۟$?o s?$ҟꏖsw?G#v~G!? {K?pO"P,{Ǵן??D~Tݯ,?'iѿm?~߿[ wwf_3~70hH^ߦoϿI?7xOQf00xW?dfͼӟygc2`Ƽg1g\w1r}?i]o;igwJW=U?SsGK|7ҟo-.է~k<ПFԿOm|v]}2k-Nfto/u>o;OioJ6hGo2IK@6|w1z\:ƴ3|_ = ?<3kW ޿~oO2rC? sj@vH_{4TOc?L~nߩ3t15?IM|UaCofӿ%_ҿ팼jۿ;{J~[R8Qg>,ico7ӟLgg id=ПO|N7ПF~So߯oC?c~ N?1? {pK?7Ӯ3șmO?\ff|fߍ=6ݙog>̇WuWύ^L;i}[t?GOWoWm:c@66~ktnjп-o?d>7|62c訟ݱ{f>^j;_VLE?L~>8п%i~o_CԿ,ߥӿ3e(ҟ4Tֿ,ms{?}g>i time i_sum U [ns]_c.i@?@i@@i@\(p= ף@xxxxxx @{?(VAtVAl`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=?z~GϏ=?z~GϏ=?z~GϏ=?z~G GϏ=?z~GM=E󷓟o"?IX~g~_/߿ֿ"B󟐟gI_C%~GG=??.|??7esuW_?_5Mw/vowOw~os?4?կy=?-~E_[2͂W ?ϾXE/E"5<57_?y}柿w";%%[߯?~{Kw_ o'i-=J&?e>k_?o?ߔ]GϏ=?z~GϏ=?z~?Θi>i time i_sum V [ns]/i@?@i@@i@HzW~(\/@xxxxxx @OUFV? "A"Al-`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ <_{g?_ϏϿAgg?{ҟӟ'?gWnϿH??L/GҟԿDyW}OԿ_S?տ-'}B ?(?T?Gwo?G\5K|!?J߭A՟~߿?"??}ҟ?*?UϟݯP?_Mo?=GYП5W\>5~o3ԟHiWA?[?!ϟҟOc?)}ԟW?%P~ALoϑ5<ϿT?FTS^Ow?3ԟ~ϿM[[?ZYӟ?ן\-_{\}_jӟO]S?5~}X?/~3|W{?=ҟ֟ǯcw?E׿N;B?m_L?]D[T#y77ѿuv?;JVZYҟӟkk[?7翣G?wӟ?L?ҿA~7տ/k'ߪ?*wϿ_QB~?g6m.? y&?}m֟Pߣ?OiB?e?חП"m7VMf ~WT~C_X"?B _X>ѿ?yvoɿ& ?tG~?~?WK?Gߩ?Qҟ]՟C~/kпh?O~~>Q? o~;Xhί2ҿVoп_SПgsOMo?W}פݿ?y?`k<ԟ~ǵ/W?|*~?֟?T>~ſr?iof֟{*}UoS~?'<}Ѫsm[?Q?"l}G}WG~ԟjoW}c _ֿtw(^_?UCի[o_Oj/\?_.RV?BV֟5>՟~OO?Կ-kߥ?xO8!џ?KJ-#7ӟ|?_#GF9?N/6|GqB:?JT~fw1пCKj|kRӿ#O'k|*П&o?Ͽ_Jk[G?yF ߪG?Gco?SПSҟ~)I[J?[P?K#_n?^Jy?Pޟ+?#Y_ߏ/;g,B^O3U~?@cg\X?-}t翫ӟ~O~߯aCKҿG?ן+?M<? 1yg)?Uo?Z3/s?L>~'}Gҿ֟cT#7ҟsߟߥ4od身ߪ7 4oS(B}G~?Uzҟ翩=j_E?SOӟYD?o?OK/R;<ϧWOkcw翡J?hp"̓??)?J?'Sϗ#[~*_/џ֟~߿HoOUAO篫?KmVnEuڽ_џF~m셱ן&S/֟Z3s]'|o ?G.\]v׿ϔ.~NL>ߗs[?]VyAS?ye?7ҟ~nwT?__C?ެ7y?u:ҟT O՟S}ԟן4v}7П~h_?h?'+y? m7_K~Η<П?S5sS矣?FGj3K6;ެzį;,WA>_?J5_?o׿G@h??Q'H~&zO~?篑Ͽ\~C=Dϟ|•OsCk+Ns\~WRޯ?7G~m??A-m@g_=;JNϿB{*d_ПL՟R矬?ND~A_?kT.1O/ѿN՟r/|Fo?hg?ԟXC?W9낿ZAVw?P*}?wB?zџkwC~?sg~˕?'CHӿ uM?y7yKԟ*j_~ڕEׁکM럣vֿGMw#SЅIW󏑟Ɓ[߿WC󏔟ƉG}?!?_~/ПҟJ~?g?Ycs'ϻԟ-矡?C/ѿ?ֿ~~Wt|oGן~Hޕ/PNJWR:eo:ϿO>S>2Yӿy~O(E5w1qͯu[*xXЕTEo*??M^Y?߯ҿП|i?՟j??^ן*EH ϿI y_߯K#2o3wU ѿ(;?RcӬ_AK~m_??=ܗz1fD??on}?}jMGvSp}W?V?ϟQO]/zT?G~[~|/{??O_g[y??M˯柫~c+-̯?ocC~S'߂eo?Y]N?[~=iG%K_O_^~w_\s?Ͽџco{ H.П.?M~>[_DK ߨӟ_+?/_?믖_%?R~ooTgoBO|6i_o?(? ?n:sϓ|3著nl翧??W~IS8X]Пϑ|itOa_?f~?2NY7_ugZW 9#[™u1w?_ߤ?4?ӿ:3^N6?h{tΟ?+~[6jeo7t?oϟC? ~? =8?gn ~5SH3|~;`oG? ] ͸_|m4f>&ԟF1Kk?G~5gt~0|i۴{:f s3O?HEri{3Of_y{C̣31̯~nߦ?ܿN {ßoFqy1^y3gK5:p(Kqw13O{3.#~WПO3.VΙu:{O3fRQF~yg*icPߪc}bԷ?ܛ~$y02g=c[WNoOGC_~nڛqcoӟmG~Y/.<>/ yOv>:ӟ߆>i_zq :0ſrwSH7x>0OT|5|b_ӿ_aӌֿߦ+w:~2kK~nߟxX{#o>7t7gCyg^?ֿmO3~:oCT=f ~cOgKCo{}gƯ4/3|H6qa_[?L{|N>՟Li?O~[ciJ}[JyF_wLN8ys_? o}ۡ翦?7ӿ$g?ӿ1}~oY>i time i_sum V [ns]_c/i@?@i@@i@\(€= ףhr@xxxxxx @*. ?"F#APF#AlH`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=?z~GϏ=?z~GϏ=?z~GϏ=?z~G GϏ=?z~/~O_?YOWW?G~[~|/{??O_g[y??M˯柫~c+-̯?ocC~S'߂eo?Y]N?[~=iG%K_O_^~w_\s?Ͽџco{ i time i_sum W [ns]0i@?@i@@i@HzC|(\'Z@xxxxxx @ @@?&'A(''Aln`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~ <_{??_~~GJo~o'?3w՟W???g[OI޵g?~ߦݯ?ӟHH_П~?W?3[g?4xwv'OҟiZD^Ӵo?տu\ƿ֟??_?mgϿF?%SS>ҟϵݷ5x/_*FH|G_So?o߿ƯE~5~?^~iZ?矡_ϿH?miR?__\m篱-?/~{m[_ֿ_'/ ~?֟&~kJ?hC7v?B~C?QK[-uk?_SAB?+?F?YG?E~O}?џ&?yj\k{J~&?_w??|W3}翛?\?-翣|(*~翯*~~Zmo/*FaTSO?ӿ~ϿU۴ߨHY߿mYj^R:v?տcSڭJ#_?vIO?y?"kꟓK7_cGY9ơZ/5N?k/G3CL??ן8ԟ+ 9ӟ~?!%?߉|F?ϿP~~n?SOiFO?究XC?OABҿ;ѿ}׿vӟ~_o_{?6Oӟ?Cj\k9?RVV?u?M?~C~WVG={ӟo_X??s͛mWS?Pw)?h?gAGsW?F??sҿM>ן߯g߯E?ӟs^1g~OCN~{kBfc՟'ߡ?i;ҟ~wO}+goW/?UmU>Mk#P8wϷW3'S?ןF.O+y?s?|翉mkSїT}k?Կ5k?ȴ?J}.gߊ/S_?Z[ϿN3|[?O?Dd_{}W/1熎:N?W;\6WO3<ύmПf=ӟ~߿~OL}>JoBҟXvקqc_?Yiݟ_kԟOп _/ՎA_'? ?&??T7TO?OS?_՟??S97w?[}iӟ՟ F?7M?GҟJIkk?3mq/ПfџsGߧ?C8ӟeo?ֿG_?mO_矕FI}ik,?K?7U~֟/K?пyӿwm3sOXyҿ߿ Gq_??տlпMW#;jo׿?R?U/?H}GW%/ҟ~nϿ?3oC<џП4\oYwK+~OGJB矣tu??ֿ'moց {({OAOW_й*i(? C~I~Aɿ*mT|w+mk3ԟ+\k(RY_]ҟf"2OQzJ?N+}Mԟk:?ׯ{+UnOCѪ~MoSUK7P\Ny?7T{g"?KkC__h;[?/՟WT~ ϿR#cqVJ/KПgkoJߕ_~!G,>OF~C|;g3{o_迖V^w{{O+'/}?KV~ME32yo)?_)?W/|C_?+?S~|+彿_~>ߤ[Wo/?oOs*?Q~Kg/ןOG~A~'ԟoϝLN'/g?ׯkD~h_-?&|?ů?W/ί#W_ϗͯ?翾_~S|"x;?FM7埿o?7~ g~Klߚ}/~[߁a?_ &~?q?k#?W_ q"?s OI*'O~Q} ?(k?w?/yw%6 JoK/Y?(IO/?[+O>J+[?+z޿%?o5Oj7zY9j>Ɖ|Uڽ?Q3/A3[7_?Q6k_\_=CEA-yB_}DA睟=?&vSD.?Sd'?qW_;?}{_{Яk{o_qSrO~?_._kW_Ws5~V_v/3cߓ'o>;o?"Og2o?#z/1?g_z₩ؗlWO==?_?[#~bߓȿ#?A_&?GR*^~6Cԏkea6{I[MJX!o?ϿW~|wϗ;wo&?ϿU~?Mӟ7o_/?N~m_W寒cӿGR~П_!?('X?CK/7??Gi?3f<~~oCG>R1wƻ ͸ }~3ߥCo'Oo#mO1tMoÏfȟѯ/xCW3f>gscw=wio᧿N2+3?91t3pL?7YϿxqu_O ӟFYH?F~?3f|G+? {߿?џFN ~Z?;KE oџiܼgy+ӟf^y3?J?П? _?+wcoCo[No1't_?3|nbvF }<у]8??=oo~c|]=sGi5R6Oҟnv&^ҟ?П&>|?ϿJ џ:phSo?ҟ?L~?'џ{?;و>i time i_sum W [ns]_c0i@?@i@@i@Qףp=2@xxxxxx @Ğoo?lI%AI%AAAAV>AU>lBzACl`I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~=?z~GϏ=?z~GϏ=?z~GϏ=?z~G GϏ=?z~GϏ=?{?|-?@k5~_=7/)[9ɧsn ??//+~+VS뿈??c?gqo1^CV7[ŝ7Ջ_?d\O;3%~7??/ѯ?_z5\r?+;F>K?[#cO?ϻ2_㟿翩>5IQ~^~6CYi+/OS'?z~GϏ=?z~GϏ_=ž>i i_XYuv [mm]_highresAB**@?**@? Q*Q*@Q*Q*@Q*Q*@Q*Q*@9@蘬瘬O@蘬瘬O@ ףp= ?HH|)A|)AlXuv [mm]Yuv [mm]! `I%&/m{JJt`$ؐ@iG#)*eVe]f@흼{{;N'?\fdlJɞ!?~|?"~~}zߝgsoi|X{?|S ozjmA~=o< w~M鶿-.9>7&v߳SA mVo=?xޗ.m7v;߿sk>=ÿoM<7ύ?s!^w\ܖo g=M9nC|u&}aұvAgy3eu}?|~O18;[? q ݧ7m.n䷯\7=7m轟߳S!|>?t|7 >|~!=1$G7ѡێt1`3O1D!vێt-^_M|s[-=_=n4Ouyۧߐz?[1Ow\ym5>M|yz.i<}蹑?~ρ-=|mM}w>|ϭY?=/>7Ս=?߷t{n& -My=oݿ{C:M|n۾c3sh7ѩ&y{|ύqϻχxo}>-;۾ch\]~nqv~[w=Gw1:yn!7ͧyv3gs=o&>-oϡχH}nMt~߃MCzkmq>}zt|~[x]8m}=7}鶿v [D)?z 7h!p[ nw?qCͣﺟįgm?m>7}~mfxn;|w!ߝ;[..;H {?-t>7P;󳇗go{:Cxۧy;?oooo;/sh>m>wӮwMGo\? ?(G ~{ʏ_^4AznNCJvqSџ=;| xv|n~yoznz.}߄ms[u}݈yߝ~nKOtnmF|zvݿߗ7㦿gss}ng=t>_>|yyՓߝH.nNt硿o -C> ōs8ӓs[~4mySCwqu<=>W۾/Mr<~oם&>K{<] əy7?;n+g7o6yo?$g7ǿ} S?{=w|3٣{繉/n}n~=;?7Ŀ_> ~ϡ4?jw[D!{[{=;߷Cy{y|O> |~onǥ{7C]8m>gh\Cm.ų~nyL{}7{x~~[: ߿gw{ʏտӝ!gޣc |~Xyn˟7ѵI6[[׿yn{4Meێ|ǡ |q ~{Z n>3 N;ys.>;&:k5|ϠFz߳R~~n|/~|ޚ&𧻓o&9m[=ohwt߷}n˯79ygC?o'7=)?n·ύ~Gtzoyv^n3{~OwSS~tw}<|>;Dw߿gx ͫ}oK+<ݿi\]|oK7굛<=o3yD[?ﻏ~?$7Ѡ|?|ut=ÿߗo g?s=޷_7|t1ݺ'ӮܶMw{v>=yno{OӮ+W} igi4! ?oכ<{=t?5vv]gpsm~~gMFҧ}wOmg>>͸ҥϻ|p8zi[u]|{~[ϡɴ.]on?gw#߃|&|o!: M{Yy[vt7P;yoO繉O gog½C |o~w<_wn;F.wӝmK{vˡˡ;4M߳sƳiǷӅw[>y34_Cy[n>ӫ7<7ύ|yρ;mMӽ|y=?&> Mxno^?g}&:tՓ8~O}S޻]~? ߄g{j7nyns_:$7EA~>INLGo3ğ}.>ݿsC>wC}C|{๩ێHS~X~5?;i[q[I܄Ӑ|{v&|H9-A|O1hwuWo?2V<77Oӌ;!t =_~+g!|yݥG3_Vi>7C:3oCx3^y~ޥMbw2͇ykhvoNs oiwyWyم[!~1ߛӿݝ.}[uio7&|\6~^;_7so;>?-^ݿ+|n6݃ynMt?n/3w7|P.q~;緦sߖ3/C{7{޲]톾c~vu[ynm}v~ozn;=cn~n}s=>7=;ӡoxno{v_=?oKԧ7Ov>7#98vCxu?5]{n|}~O1$/=>i՛7>oC<&z/gNu2?~~#?t~kt{~=o=7x{~~k: ᖟץynK{>|oۍtv7=7z~OaǩO>Ctxo~o£P8ұӮ _t³p:?i<叛kCO.ߪyoC⿡yGgh7wyҟC|ůO;C2VOtV}|n.cgxn m.^ݟC؅38/>]x»i>Mt-?ޖ{hF[ө7[Ӯ;7}sS惁χs[7}~|v~^gm38s[C7Ӿ }[n_mc!Cp  z|~ߗM1Dn;;n8_tvoMCmzn1OiwS?=9n}~xݣWxn_gnoj}7ѡP7>}~ρχty=y<7Gv^nggm~ӣ=;{7}7ӿM?7O=O}ah|?)??_=~.y}||nl}oo}nyn<8o䓡7z<75i7un ]o;n3MOW?gn{緝ϮۿM|ݖݧ- 6vg}ݟG?͏gw^{~nڙ3F>|&7yMj=:yҧs ?.O󘿇}[~ߣyn|o;y4O?CtSCt5ŷ;~yw.+{hn34gog>ҿ{tg>ӥC[34?C|}<]<~+٥chކlΣ7 C4DotwѧGǼ9D!|}:wwO}Cq/?u>9y4ϛ=Mύ7ӥ|xonp\gs/7qw|7ʣ>Żf|3go3mtqC)?n>7}oMtzo<~}txMort[n gy>-vm7M2Mݤ?tzow8m5?Nv{HnOߖ>]v~nn;{|>o~ρ/y=ßksߪwO鷏cC?S~t֌o}t~o}~7&z4~ =7wD0MAgпo;^{۾M>4!82 ݧ<7o~f}|p>{;}}7o?o;oXtG/ۿ}:O}y rG~24ϐu~#.>o>썣cمooxC7M` wg}{SݴP?Ct  .t:4Γy7?~g 7tW}v}?wūGم{S7s{Z7==|3sFojgsqC㺉On=;-C8m)?rFz =M湩w盦mu۾w[|ozn޻)?qވ9>7o|{|}~Oqn[C߶m|[x^|d=χ! 7E!DA;qߗ.7=Cܖ׭v湱_}74>=ÿoK߿g}#?c^_>7{nj{~O3x?߷!~<7ף=D^?՟׍{|?o ;ޡǴoMޅ? >g=>{s߳2ܖg_ywF~՟7ﹹ}]v]:g>oϐ4C{o?gHNO<]| .^oe>>v]8=zu>jh>uw?~] ӛO}zt|?Կyx8χuwY_!|{χ=Hs8t77=|n~Vshs#ݺϴnzwNm>gMx3><7cןCoK=:OŻ y>CmpnP?7}{؂=ǭcs# }yn~{ƿzn vokV_~o >7?>g{M/]/<_[wM}nߍ~3>_~v_!;noMCpo9^=ߖonM?Mp{7m< ʃ|=>P}~7Mnj74Cnw=֟7>x3y?{:w{>_{{zHOv|nm7=ÿo˗ݿon!5tz}S~Mt3>M4'?χno3Huk>0 4mw7o?ק7CMVb~u5t7]yGSgh _oc֟7;ϡӝǡy0<S1?ͣ]OoiwOVvCAן77}~g.CrߪӾ7ϡ{[fi7DUqV3M|Г>]nNf|y1O~t0o4nCtك wq|yzt\C ?chܷ=Cx o_}~ϡ܄o!Wm4sgy鹉>c˃t=ϻϭg-_ =Xuեߗo>7;o;oc|}n)?>9>{Ӄ{nn7m߳y˿mDכ~o1xķ|ޖw> ?t>>gß|r=ĿM=}Mq7GNN?Ӵxn⫡y|hM!94M|}[yCύCχC7{~A&|{?| }nF:3(4-=ﭗ~ρMpߤgz9.o+7&w~N7O繉NCu6Oo>w<ͧ4qҩg8oӅׅ{}nGo~xz3Ю}>o&ҷKG;|[~[χ?M|moǣ_خӅ34Cұns>ן u=«W˟{}0 Gu>S~vVsh^<]|x}7}C3MrgMmK.ts|}LD>Í;D{>7 =?ϭx&9>7۾g7^~~vommgm?|#]>j7ܖ7_3&z.u~ߛgވG]=7=D!ڮw}m9|~#3M}n~n-_ۧy->t>o=7ݥS{l>z>CχyވWmf<ߦmg3yc;}=>F7|}~ϯݯ>7pM|Շ)?zr{Mm}o}uq?.ύt?{ʏ xo<ҟC/:wa]xv .1wN; |k>}]m |nӥ!:VsnJ?gj4O>>7ѳ;/!Uߴ7{8zx.}{{h>[x|u[u>/{p|tLO +9$Cҥ۟yOnOߛӣ_o~!>3ܶA߲ݍg~3'a~37]xx|pv]|_zv^o=?o{۽/}sk|~}O>|}nMs{|]vۿ~< Wvߛ.7|nS~ܚ:ϭǯ47?nhn\tse{~߆3y>7{!zv?to#ܺ3mc3o{gM|o 5>=톾w3=;{Co;C1w}W>ޗOno~[U>gOONm>oϡqghw<7:wgێC?)?Cŷ? qom|n߳=>C~~[<=ß7͏}:=gePV/=D7v|y=-8ߝo d|>47^L?o{S}[}op\χҿoi{zϡbvy ]Ow>Sn{o?c>?=Mr|SߪwߛǼu>xӅ777En]ximgo.njߛ߄M7m?{}k|ҟOW7O{?77Mtn>Cx;g;{~[M ]s[:Gu3s/v_w=ctq^;>-.o;Wv=g i!cn{F87=o{?-ghz<7K^3Mzn;ti|G-}]<+>7/? {;/M/O|ngGOwͺ!:/ wmnMew[o7ӿ-]:?oO?7ύ{?rm?Dӟ.}nnOϻxU[yn;湉COw>o&~j7cܾo}Mѵ;ݧ;8|~z3Wyit[D7o.>Knm!:ėnC4(?~ބwyo|n n=[xVwn;t>Cn!| w ɑ}mS]z 뎷w<³  ?Ca?t?<.~=s< {3=o?}twghufﻟC|r<~] <> ~=g|ogķM|7ݧo<7mv#_vm W>8k9썷mz92|nG}o-ߛϛns>gMt|_9-7x{t in3~8n/Mm3O?Ю ?rЛ߷}~ ~!~g~ G<\A|:ߖ~W~ow{"|~O[ M $owoz&;D[}8=-}O7 _uq }iS~t~oozwk[!=0n[f\7ѡ 4C㸑/:xu~xto?ҥ_vۙN;\!w>7 󷙏>3دy!ooA8ǩ?>>Cx~m?o5M9o5?4c6?+^!7M趿H}-oou#t 5DoM}~ӼvΟ } = ys[w8:~G ^wqo{?>ݿoD!7coi\U2?=7F>-~WywC|{{ʏ7qg=9vܷ{/?vmhMF=><7_Oܨ;-W~~ϰ}u3M~Vt=;ߖ˛syo9gyx<߳S½-~o{gC7:o{4O`ss}njuO}u7U=G^Otҟ]1DJvKvgӣC]}~;}o4/]]x=5DW}!м Q ?{xs m>m}A:?w~D!87}>DEv߻m7o}lC߳w~~S˯y_ o o;ұy3ou|z{7==8߳mm0{vFv|7=gogq3}s#t-}w33}7|#_7M?bc>t6?;>=z7O!>߷;3n~C =]C7{O>a;S~tw~oMpz)?n+܄Mχqygpgg1+~p:w_-=7>$o7~?o⧛op}~[mmOt;ntt7m?8N;7UwMxߖ7}[u7wo7] ѽ7_v]~qG?iCxwVxz?a{m}ūC0D;_nhףy};Ǎ݄Mno>=>3w oO[ |~?Dy=-M}n=go}޷6A8wpD+/7?/==~3~~uu`?ķgPκ3/t6w?~M<}M=7o\ >o⣛Gzfgϡ~sz{?{94^ci._+㟡;ӛ_|_{;?M]z ~o۶y4P?CV?տ;ׅg}s^!|0Hz/}L.^M<!K!:Vyxg ?iͷ}:D!>-ߘ&mClS~v\C|.޿U!z ogo?xv7}}nvA~ρyCUӮ~ M|ГC :톞.F>׿sύ{g~7g3j[{=}L z5!zD΃}~O} Oܖo~|_/}w}_:{?<3wg=78snlm=_nz>G-w-ϻɾzoGFxgg.}o&>0ύ/A}߷m|~O18o7=4ێo_ yt>ݿ;Ma>7tq^~w7?som<]x?ȴӧ;]|c><+=~<-g{ڙngߛ{yw7=ÿo/ܶlϛ;/rq߷9^w³}|~~mG!:^?|u6ύpohw[~Η[{1a ɉyh|?7vCa>:8tg7&mu3χomwuӼ?[u:}];Cs.7}k/i74O=:v>sN]Sju7? ߪ~;wm?'ѿ~ۙͣCߣm۴c7w3$Okh~Ksgs<~,<ބw>CxU]φ3Hǁ&&~>CpkǷk>7[u>_}ЅwQ&~2p{p;4hs[:wm=;?;F~=ݿ;Mx 38߳|y}#g{?}nv8?ϛmᦿ{|5C~~#_y˧9>.ćC|imw-MVgs[7مg=7vCg!~ ߗ^/p៷iw[tMإҫ]>7=g}tѕq>C ϐzn=ϛ=;?Mߛg]{Nq[t:D!??q}~߿Uotz~Oх{|= 7Doi6?P]oӏyn¯}.tҿm(vniS~t9MxӸ~Z괻ߛbCvwN7aNϻ7|ntߥSn_C!8vq7Ϳ>7;nx~N;ߖnϻwMra쎧7n}ۃмm{ɉy:Mo;&z9{ʏ!ztgA94vDכżϛ}zӟ7 F /ni7mץwM}#=714-Y`{m?{?o;/y_u߻s[ם[﹩ptv=ÿoԷ7<_ݍ|i7 yw\C=? ߪy.oߦ?g~HD;qV~?ܖ?|w|xn~wooz֑ߖ?m۽Ӆkm}տݟv|wO湭 >{ s[ggo=oiuk{I~p0gt³ o~|o3&8o>w=8gs/ڙno=ypvv7Q!|[vm?oeujߣ}~+~Cv~ޅw}3Dw'x? ~>Cgߡ7Os!MtoMu K.?H߿ge <=>ҧ ?s#{{Mt~GnCb}}V>znPMpo}3}x]4&3m O^C-o¯M_ {#^|4_-t>qvoқowW?F;3sh87 [.ԮK'o?pzv8z|2V>-]x]0w7?joJ·ţ^7}ޝ.Oy^y4Oo\C!}иuz<7aK.CowѡnCt3ǝvD!|ߦog6ݥM?Ow<)?ts &zsh<]:VOx{&~_z<7F9g/got߻i^b=ߛ94/pi78?g~?D!w<st5܄mwsS~͟ׯ~.ϭG״77ң ~yy7oH_#~}s#`?g~nexk9dP?y_z/s}ȿg(^7>gMx =?ߗ.߳2vCύ=o9 =v]| /n+7Me蹑3yWܖ>ujwcporįݿoy ލ=;?}m6yoKێ&>|_8u~Crr[>כ>Ct ½x347=_.CMQ}oyǩ[dtߖ>o?714[χ}Gۙϻr[u7M|gy|o|~v ?']>4~<7{v~vGq:ޖ}!z y ?Mw~7;_s[:ϐ{ozPm=}~x;߿/]n߶sq;{؂ێ>o{|ߗ7wouCϐ\vKsQqgsy{_|ޗϿK>7ҽ8oC=]~ }wϡzyq;}?៷ūmD[?{~> {v&:<=ӓ}w>}w?7湉~zo[>=]vN!64Cuw|m783w>o?x4!|i[J?7q<KA7-4Cj<]z ҳ>M }o?:ߛ]7gO;?xg~C8 y< &~2xSϛwc {8af~ghoύ|i7&3O}q~?o={q M=7Wϭ<7{gpgzv{go>>|[>m߿=gs-?u-~vC}ua5߶H^n3Mt#go}ޗOo7=5ܚρ mCznm>vgNy|v=?o3 |~ӼN7|o;_1jw#ӃύzFӥP;=w| |[|pnK2OzvD&1onnp:g_ =!˛qh1w>3&ބ18/7{-󛞛{7{ʏ5O-o+]|?yC|{v_<{y#j>4]yO^k!|uu|vi|ŻKwgioC㶏~ޥSAzӣ[.^7v]v<~Mq gߡ4ny6?ǩ!x79DGw.t³_!~Wм i7мt񼉏 k>:߄ik~6Os[ |{.yҵtv҅Ǽoi>߅m78 _ӓ;!C_]yo{Sp G?>7Fṉ]=7~~pry2?sz~O}n ~c=mvջ-]~xGߚoϛ77w77=ÿo䣁&cA g۾ogs<7oz~n;=ß;!i~to»CO]sg nWo_}ώsw|~7O:ߖ_o7CD'ӛ߳e]~nߪΌ;oC?u ߝJv?̣q ͏yn7s⯛?펿;!9xw147 |}~C5i\=|M5Mt4Ow|O!} ?i\χ<壛 m gN wwM>CtnC}?Ծ}:D! ѧ`{}}ɋ>C|3Dם|iyqÍo~Dǡ$'7};ݿo}~ρy_鹉onwy9>'ݿﹹmC(g}-M|9momg3Fn3cvw7w۟;7=x߷mnҟ]k>vi޻?o;7{ʏL=P[So&۾7N3&>)?nK}nύy7=-F|nx{[K=27<_v/} C18N׿~nko}c޼t5 i?v[>m;t&/w3_nӛ14٧=How]f~sӼum[ϡ~c6uMҡOw7wcw}uy3D!ctų;n?o}t}:w!7M[߿wC4VzyD ׾|s?otߗ.C轟3gw<7ί>C}{pw[>7=;s[x_iw=syMC5߿gϛ~xwes7|F~Nۛ0tj7~ou>3 oow&z/]3F59y{yӼt9n[|F|}߄[?g vVn{ 3熞~~nm񽑿ڙ;>vo?~{t7 i7$~MvU{ٛO>~=y׿>7u~[]Gѣ_ی;/ѿ}~+{Hn?O>Cӥo?{xsn<]zvA|[mﶻq|ݟ ?4U{w!:v[;?hgӾμo:ȯHN&|<yn.C_&~M~~>4Λߪyw~>ҹg!w<||u[iyz;D!z} ӛy#~{yKw7ѵo;D}[џ7}~ Ow-i|wt6Os3_Cxvϻ |>4!w|y>Ck7c!8·w!yI}#_޶s=nP?|v7qﻟ}n9﷝}m|fҥv7{ʏt3۾y^kw]x=vCg!?D}ks/;o7{߽q]~.7=>MzoKw|<?s[>gA>пo{v[ߖ=m߻m3wߺ3m~ozm;z^Ds~ss;h;D9P?}Ky7^~~+it4Cso?͓yoooyK.v!~M[:v~>د>7͗}!uK.ݟ7i7wΏ|>Dw ;m74|>sn~;Cps[x=>gχ48s}7$~7ϻ$_tcu?mh_i)?nz ~֧ wfw gw>M$!zHt>p}м=򹉟>G7m߻q\{ߛg[xnMo| ΐ<ْ۾vP|zy@߶VMny~7=o= g˯ o_{~ρ|3tI47߿g|7٥mץÍ|{vMpo|]ԟy޻I/ =ߚg ΍mH7Kyqm]n;_M|hynʴ<7Ӯ7Nۮ7nD!zn}CrxnKm? M~~o_W޸c>ן7/}n|{?<+{ߺץydu~]zVv]|Cww+i!v;ߴww{4~.Cg !xK/ ѿ7 }!c.~y}LCkwҟ72svK.^C?p1Dߪ}w ^/ſKn;wo }[s]<447osKO} Ώ}.!Vvy9|N.&:뽯O!>nj&Mۣͣ4w g=7Ԯ!>6|wwCOC}?>_ӥw]3Om7=ρ;m_-u.C:ם{yMt=S|:؟y~PC{H~pzu蹑^8nみӳ;>7>g{{-~oG-^+4g& m=DQ>{sw> Mt IC?{rxɏynlyn;C_ ﴷ~>CsPO}~ig~vۣKs|wgs}\G!9']]8v}yohi }^;.y~?D{ OߦߪNg>y=<H.~S~ވG!z 3_w^sߪy!>C-ϻM>莧>=M|xkfkhF>8 {~OqCsz޷x4o-?g}MMzbg=7p[{v~3soo9{ vt3Vqwi?ۮK} 7CŻ}!zV}]~;?pt3и߽G|OnC07?C5~nt<χŧK޼ţKOHGo9}sPig=+y~^O}0~?8?nC?CwO}|[>=mgMwMM|ky[|o;_Wnܖm{g{X߷}>t\!:g{o?9Ծ;]٥Ӡ|u [_o;^s yL A!}msgsN0χ~&>zx4rbU:ʍ\8&> my.>v7Mz&1O^w^n<ވ χi]<=>7{xv{ t041u..7{Nut6o촳Oco\tMҟ=g>|cjg~bӶ&:tyӸomK!~~?D.u?~o~v=Mt=м ~{vם! 񋅧OMzqtoxv{ƿ!߿~?| [{t3Dؕ=:uv=9&:4~W]S4yn;o}3yO!~5}~3~~sh>3s_njoK<}\xa>>q:o~'}t= ONG?yn˿n?u =Cy}~g[?W847~3Mrr[n}]o鹉g:M}nss}=]޶mm~Snӳ7܈;>g{v~<Ƕo˟7>gsuk}nnjwy=ؿ>M=g{]g ;8[>ſ;Ogvߛun3мvCt= In+/}t~Nݧ&~-ߛ7ύ{|O.qMօ{wcߛt W~< u>74}gwCt4?:ߛgh>zkߪ{^?^C?مo Ηy:ONgmҟC GK.=gixpox3į^ݧ}蘭8@;]x}?f|}oH~zy릟]77߷}>MyU{{gmAon;m~?4?U|X:?3O!A<o{:oKgO:c<7u7y[8Ct1MV>q33{Az=Dg {h^f7|owC~oY7=7ͫ}~ϡH߳w-ܛ<7ܶy38?ggyy_ >}|m<5| ď7)?.w㹱o7ć&||٣ߝo_woKΟyn gm߳ҫo?o-Wχu{v>׿sn<.݆zM|m!x7=m}nNs#tvu<73ğj睿{o?oz؏>>gg>g?n]>5]>7CmG3W<ϡv~{~~=7C~ﻟM? Co󷙷.Ct 9оtwyhVov 1y̸;~w V3('7{u6VoA;w;=>yonMxѳ_{w~pny[~|>8gh|CM_nG7=C>} &>gMz~ߖ7>g ?4[m>7m^s?&6ėA=Mqng3M&?myvC>g0xw?F;ύ ΋ynj?yo;A3.g&>&=j3Կy=44m~:F:5<>mޤ }~vsӸ}_Wߚ&8Ct{7}{m>gM㽩x~}m;_CM~o|ҧnУ߄mtqC}[w?AҟfC1 7m[_ލ2~>w!~O>U! .o~:?{v~u7Osóܖ/9GuG?7?moK!zNgm O߃th7ė?4]<-s3O7wnh]oҿ!Xt~nCyn⛡qv|>Dߛ~v!>_߿U;n=.ޣ ̓yInt|C\As[zt5u}n~cz~tzc}0~O1ć7_ym  uAmyw=3ė7顡߷mw[|n==s#9ms#:PSy湉_߷_cWyooq<ݖχ=dk?gg& >{~}F|:7<]~q=>0V>/oggww>44zw1K&:gߡv]<xt.~ߥG}=?͸{i><]o;C1?|gxnK._s#o=>x>oh|Cύe3P۶{_}e_v7=7Gss;hs{nG_>y_~>_~~}޷mwmKw[o}q/n =Hs[:/ύx-݇޿.]{7n;.wqg^WN{~3WG?׭{ۏN[~}-\ ?w\7<L=xan?C=gηyryogh~z~#_$ݧ F<7}?(w m?[=;?oOMߨ?!3Mt?}[ӕ!I ͓}vwg!{8npݟ W۟ۼSA<:wCxDoe>gM`mcG.~y3s[ҷo5y 74]ot<][u7?mt6W\ow|34}w8lyb~=}w{|ѩG/} ^}tg=:?$ _;Cأ>.3~+F|?_]yY:3n]ghӝOCxgCxwoHnnz_ w<4~ϛï;ӁoN~>F{M}nzOq^7>7o۶xks38/v=o^m߻_5~y?I0]~ҡߍt<]8Cwi:Go_yL{}}MG¯ Ck7/gcnҫ g!~1?o˗2v<ϻ?{{h\Pt ;Cx y]|LCtممcC1~h\1=7ϛ>zMj? мD]u8ϻ|mw}#}p>=;w.!-fM04ޡvSoeO}n}:D[}dss!:w!8!9uS~ܖ;vnz2! c/ߗNC}nA~=gF~O߬ӮWoM?SܘC}ߪw/<7Ci7DǴy]ϻѥypv[u?ק7Oѿ;?Cw~Ctowgn>7Y'9D?tv5~ϰ]owބy3O7}]G}߿4i<Mu:ۧM8ct٥M }n~]Cc~]z w]{}IMz5Ow<~[y>7A<:47~Nfn{=ӟ{}mgy_gs63 |o:u{ƿzn]}w~}sS7gPvz~[27~~~w]o٣=8]zCt4s[ﹹݍws7ύ|l3_}ru}nos>!zc}yꍳӮwko{vK8o!o Mx!]>J |2ϡy{ OиJg|>vC>;?7Nߩwy:w ;!χyAo~>754~>4{Cx$WK: ߘg^]||p^;P?7qh|C}_] QV&мv<==ypB ѧKסy<ϻxVigN;K'9^w=݄ig0O.u?ȇ3p&yVg+94o!ԝO}j?Oߝϻ !<7ؾlwsx1OsCuy3|c~ >gg t]sz&9{gn >cFzv7C{ng{??]=v[90m&:wj}zxۛǴ3?;OWߖϿo;O]|3?;muS7o;}zroۧ8nǍtqGI.n|h~p{ʏM9mMtCOn=}Ncם!8qtۧe]!:wu3Ow֟s{?< |?~Srpo ?}F~ρQ:8g!x]y#7kn?v7moǩ?Fwpz-_UԿ] ]n_o&|ztMuuyߝϻ5$].߿ ݅st>JMsSxNqgh k?o}>»;G.}o94O]<~bm}uP.}U!<ߪM?Dt~{&>i~mwng7<ߡy ۧnCߛgH7y.= !:VмMt#ϡwo!zďOC?sCw<7gA:S.zp޻ y=Do s={{>Mq;Mvn߷g蹑G?Coy~X=߿/=z4~3><7Mt=?s[~uܖypǣ?7m;myy9~~>7{ƿOsy&~~xnͷ.8oڮܶҟC=KO=~3FyǴ~wn3DcOnە| K{=7=D3ix7<=7z1?o;OWwyz7{nEo}|~xv~vC MnA3ߖO?ͣ[u>73 qDGw=t޼G[[IꯋW{^7{_?oߪӮ;!]~+9Dm[ zu޸ͣķCt[{xw }>ؿy!~i>c5'Cwl7&>C,vA90?}~Oqy57Ky>χ!9}nnDs#:톞ynۮn;?Mvo3}eP?Kxn}1Oogs{{zO7 M=C㾩}kPпo~Mxus>1?C<7Mm{_~_C4>tO;wn˯7<}o?oߛMt|oy=7o=ݿ;zw n3&Gzޗn7ύ3Ny:߄!>,myA=d~vύv>7=]xf>yc?n1ď>C|҅ו;܄m+9خh}:Pχtۧmҧ;4=D⡏iCw>]{>P?)?{;C+i/ ogvg.Cѵ7y~fAK.c|w1o?oː\ g}P^|?On͗m>|#uNo} Cav{`ycVsL;;7mx nw|7gJ݄O޼߅;8 |o޷~ Qu͇>S.?Vgs7}|ϻߗ_o}n޻{ʏ.4voOyxn}noPm>7mkh>gsMMt>73~ϭ<7vC>gn7|~#}mF៷ux&7mS~އ{|ywyzw3~H{gץCoz- !:;}-v7m{ ~>MzȟgMxyU{yo34/&z󆿻~?4=:g!1&7_NMunM<7o.湑}CKgybh楋G.n;?7mw0~߃d~3ǝ{ʏwu04h~3z~?s<7ݿ{OC2DotyOW~ڙgMc3s =~s zO^I~?o⿛g]!|翙}ﹹsy=P5 ץ{`߳2¿/o9Ծ4O湑:|u3m-_}q[|sS~~[~[y[~~OeM|};!`~axo;7= ]:wp=5`g3{ބ|o&=53ܖ|fw oh^xGzo}ޗo|ywpn7^vcpL;9|#zOO~>ߗӥkFz3$_7qv|?Mycy|wH_كUio]97_y|u ۾=4i~z}>g }cmM?|{hJ}߿4O~{9D{Ch.] CzK=1ůK.ߡѩS. GңCywt=|v kK.ߩwo|c }s4C7?q#w <~I~ y4<<{3$ݧ݆ |`qg7o }wu;^y. ]nhwVg!x77{{n&;7{$½{ov>ޗN=G~~};M||ܖ_>n}/t>Cםe]{ܖv|?R՝s|Dntg`Pu>q:o{nnwk>{vn.J?zn>y4mZޚ?n;ïܡgp~.nf\ݟC붟/ݨoqߖ.ρ;?ޖoMti8N~n󹑋n{O< C }{?}}K?CNKߪwmߪ}^Jvs_M{t]sqԮ Kig8χW2m:ѡ;owkN{vC_f|oww{^Cեocoѿoˏ=ܴ!>CqV4i_w\CŻ Wg o+iwKnC|1D{S?]7_nky yn}3~}>y54>qt?5t<7{7Nmgwϛ?<;7>g}!ޖz<;|ss#]~MqynkzKi7w#~oC}>g71 qpSϡyY6?iKogH=]=Zu .\5'7}c sk<;韡 K!]n;7}?$/CMt2MznMţ៷ ۡo+uss?;mynm?~?chn[繩wp)?C[m7C~uϾ 3w7C$O]~?d>\ ~wo>ߡ+otۛg?14￝}<7O}:wwCVvgϛb΋иnMw>g?{t{C[M;CD7tGs]74/7Kύ|6ЮKn}]|6~=PݻPKs|Qqy߷|wnܖz=cs]y7?}a=Ǎs[ݶ!7myk~=s& =m_:߿/7>gsA:7=?m6ϐ>C9y};=:w~z6d;Cm=$y>qyC}埛&yק˟CMtm!|n1;4 [{y.nz~H7۟>MtǛӣ>ϛ˿{;/t7p{o>!z;?onUyLo£OxpM|ynޣ&|pݟqsoO~;!zVץ]|o~7 ;P?qw14ti{7kC8t:ߛϻtj?7cx>h~nwqC04Ͽg/Cם ?6̣iynmHgm7mq[~poīܖ=zuﵻ=?oMvܛp{ʏ;oN_v|(ܶv7}~ρϻx G}nOMmVovn@u߿xo;χ~<ݿoW75Cҿ }oCxݟ?}&z4&ϻt Mмv>n m?7o o|O߬m7G}n&~3sp3?{th}n nom><7];mp^=ߗn~~OL{?S~t|&>cǣ?]8]:<|?{H,}O]~y>awMţ7_ynyMt>&ztu<ԏyn;7K[|8]8Coiwyo7MMgh>n{~7<;<7=ns|]jvP<.>m[=Hs׽q!FHNoǾ<]»syX+qȟCw!z77=;?4n;oÐ?4N.D?}Cozv& nOCrj4?oz~MmM=mn߳s>g!=f~Czn;GMуc~3]9_~s.>quhAS?[>u<=87=毇s=|[ {!Ct5}F:Gg]1wvo&vu}3Cm>w?| O£t|;!zp=ȟ1wv{ҟCoφy.>C|\ |r4CtPnuu:4|~ܖߺ84^Ӵ>C?|pOtenS~ts}nM>f\]gh^ C-ӣ>y߁gh|8zo~<&sy]|~[8K!{[zu{?[>7yym6/ϭ=;?;ӳ=M}<ޖ^ {~~#~ρ><~^ܖnG~}w߷mrqv7}_g?=?DK=ßSܤ7n}Cf!lsC|r[z8gsh|`bhxtu!/]oM~q~݇gHy]z`3{s3^ߐ>o}]<,;?ooI?t&6O3m.o}kVqG?NCo܌wҟ=|3M @cy~+F3W{|yi]:Vig~oMﻏ~ss=7mD!N!6?~vCpмwџCt7j.ogH.n_<noMVCߛG7i\v|gh7G=xCtom wҿ+9Dc!o3kܡvC}nwC5 ~ޛOC|b2yzf~|k<C1D.~nc~}}C?7MkA8g7=g{?>7>oύpoxh;D3&zݧyΐwӭopܿߝ 5|m~~S={|y{ɧW3D姛27g0Om?Ohvyxk!zv34o{ ]=}y~3}}_y<7 {v[v\4'_w>n=4}G`g7 ҽ湉8nMx ѡ 7t<<}{C[uuj?4gC{sx<7c|yA?{Cdovp~ӝ=igj18wqw6o5yx5C ҿѣmA3juMt=s[ϛ|[1t1ѿK|X>g]w|x>?8=ß ; t[ C1ė~/z4A<|ߛұMtM˗}n <]>mqv |~u۶mg^7}73(/}~Mvm{-_3j}ޗn7=ۛ+7~~~湭~ݖN=o~~ӝǥwm&|n_k>7\7>>>7=DF|[7y[ݖ7?sNѧ>==[&:~{}=ol<]7wҫ|xxn7^>Cz~3w~g=wu_ğwnA~tg^!><w2ӥyLN9>ߡq i=~+94}sh<ΝvU] Nߡy{nѿM{3nC}<ϡt5y ێg>4.ێ{z?n>ߪ}y&|o^ ѵ}м{]:= ]zg|vy5Mk>7O7xۧ>~sk{?z&| /{ۙgs=]xCy#ҫ _;n9?ouC;|];7K< |?D!~M|~[mAt-v\7}}5 ˷7xpoj?_hws8,ѿo ~:/1=:=>廡vCݶ{?o g3M}q}t~Ooe>קˏC>i3>=9>6n7~1w׿=8^;7vwt~[9ĿU.^ݟyt>Cv7P]o '_y>q~;x|{tЧ owԴ}h>c~.vMcm~m~Vsp ѳgkwo{C:]8U{C24Cο}:& ^@!]}xv34om7>C㸉ѿ{}.|y:w1oOҟqL>o94v<w{h|>~~?k~7sCpo 罟3mӴ3OymۿOύ7|{v~<{y }~[-k󡿇޿5?! A |&~7M gv_yvqݖ^]n~sy|~O}n|z\v7M|t{ʏygsӿc|~#\}~3tɩynύ=7i>x޶;iF]ӥM>7&y5o{>;ץMߗ7mr~C?3'5ǰו{ʏ!zįwZN~z4n˗;N{F>g$CgC{Ymv\7&~o~3ԾGv m[1[>՟K3ϡ{gCxޖv7}h\!yE!y?34o~Cjh޺:w ك3W޺g7D!ק;.{}wuϻwݖ{ {Cwv7oh34s{h~oy{>CpOW7<y~~Oq#|m7Vi>ϛ-7=Ƿs=o귋{yߗ=ǭw />sy>C|cg.})7߷ݿo}5~wиow|4C]m^<7>~?χQ }}nyێ{nM{߶?ȧny{7>i!?oz+w{~n4Z{v mo~v~?{ʏ[}zM3ϝLJ|f;.y!uMtvχw?ygn]|p.]8]gCcC7HW}1^? 7~;?bn|ONt;v!4p?Cxt&E_o]ws kN=]VstO>q>ρgmo߻p}pqG7͏9t3sMnܛ`ﻟߤwnsCmFtv7oyyWo߿=M7m3}C)?w嬫{ߝnׅ}ӿ~P&|g:?@!8C[ϡt2qpt~gVv=sӸ|royx1MΛyx}v=>gѿ3p&~gw:4?[n{v]z4] Ot>c!zt~h\C?{p:мu}n! }ѡӾych|O}t 34?}wC8||¹{oiߝ3D..񆿇ߥ_t?;v\ܚ/y{ӮO]o{ |~k!y5tw;.3x~?2Mﮜ 7-~7=_?{y|}n!C)?z~7;S~$7>gy ?=77=M{[=ۧ3Mi}n3]94!zwq?k3|`?yC`|?70_ooiҧ!Y{~{pߖ734ѿ3nhlh|\O~+vq|<]wt>ԟMpjPѿfw|{u~Mg!On..nAo߾P{n~+y]w?3D!:vwO ]2N| ʭOnA: {9$?7{Ѵ춻34< |ﹹmt4ύx}_|n!y>Cn;7Oۍhwt'|h-r1DM{gׅ}w>{ƿ5^q޻on|1]{tޖn˯Cx| C=v^𻩟߳S3H7ϛ8N}|:v=>>g~os<7ӟ7A=ßn~轛7khnW?tc/~h@ ͳy~C>gy:?]Yg.>]8? Muo|w?7Uqtw繉^Cr2q譏Gwݟ]wynw.]]?N>[ǣOw|C|ޥmk~Vu<A:cǧ?o|Oϻg?}}3ϐ|i?ojgh޻[AzcP?7n7u#|}zxmCvs/<7>t5?;gО3ğ֟xv q/oK!<|>Ծ|83oy=>gpv~~OgH.o>V:?oǩ=7u]-]o޹Ngӣϐ3M8&z<As{w!8C}w.xSo}~+KWŷmK{C?D޼34n&>yţV\{=Ooϻpo_Cgo΋y:wgǼ[y5ϛ}.]wo |م?ħ~[ O.]:;]؅ke-V 3igw<k>{7]w~h^os#?3$n&g}1>gޗ~_7=ÿ1}~vC៷{>=߿wn; q4=:t<J7v8>Mx8ԯ=;?;_<]4ynG9S&x7 =><]y~>7s#uva5}qϛVMvӸ{zwg]=SonC߿o?K޿iC? G6t=s9^1n;3.NN..}мxC5>ﻟCt>sCKKN] }>4o7|O.?t ͻ}O?yl>f|]t3ȗv:⦟[ϛ3tңC?+yx ] o3Dϡqzh_>].,\t?ןCMt.N܅gu7 [.|v4Cw'՟qO.Co&v>j?$ݟ]: ۴7D!sS!>aC gx̣w܌Î[m6}: ?34}~[t|~~xqw#N4o7P:vݕs[x湉?o◛}nMxunzz՟W7 s{|o}n߈-<x< q[ts }~ρ;Mޖn}nc5s77H]<~3~]~S~vCM/>T=7⯛ϟ~{v~t糋C?{}:ߖ]{yyx_.]:('ܶ]P7zn;~O1goܝ|}|#MC޿i޺p:y¿=:ߤ |O y5 ΋yn|mПwߘ73s#7ī547?ͣǎ{ҿM?]¿ t~ޅӝ.>g7kh^n>߮yKN֟{xcv|OGo;wV\q ͇w]wn'V3G7}?4|t0v]ov^qSC՛G}n~ߝoێcvvK q!>Moб+}zoeץy9D7Cn!J~ޥ|>4~94NiA4Ug.}w]vsn!>yog_mw#^X:w&zg_o+ϡ~[~}[݈{ޚ~x&9z}~z~Oڝnמ'}nMrb~_yMc~=M|kֿM9N?7 V }4z& }|v>=8gyѩMn˟yێt7}qgxn;~WWoy{C~>Hw~pvog^=ԯҿ/v C⏛}g]zthA>Ч;_Οim>ZyҟPzuV tuw|oK߮m&mߪ}Ctc;{i~z=|1g1it>ѿi>a-~!]qvѹt5s7;8n{t&2m~n:~]~4?o+!xVM;|igN!X8t|?ħ=>g]n{}xuܛly~C =znWMx4y.&>75ynKyIzO[ým37MtG{ʏ?(Ϯo<7eg=ǭ<|]>~^֟7Η= >Cxqވm3y? =>-|ukmh|i73N}[}]{9}s7ޭ~vcE]vio.7o{v>пoڙ<|{o7nxn3Flw#߆Ϻ?igc|~n~y{v}|ߥkoӅ#?h߷sOS~f}2ϭ=;?Os;]9-]_7}{Cwoo= ynO|9]87xұOwdh>g!:D., ѽGOCgo>1 ѩ;oo;CuIz9 \}ozIzd~[u>⏡~>v{9D.7<χaH.zm`~v߅c~: c m7$/7vg.]z ӥP?=ǝonC8snU]1w~v&&v94.] ѱGϡ湩и{s~Ǽw#ugi{ߙg_{p:O~v;yswm>C34ێ۶ mAS~H-]7=o^yO߿74oݧ&96ϭwz }J۶z=ß=|>ҷ7yzMt !~;m}yWn!v>3~pg{Ks}=;?=Fv\7wM =g7kK cv?xz7|}~wo~:Mz7oߗn}}o~|~S?M}n3}u[g{ʏ<7M|w#_Inx<ϭ{mӃ4;? 839ȟ鴻i}7ӟoMa|w@ C+7=Wx`=t98C7{]z {no\ϻowۛχGzx=gߛǴ!x2tbhݿ{G[CCyۿ.it74.^U ] tw᛿M?I6oѿ}OZ^_鎿;7qg^[߿~?4n?f^=v[;Ϡj(}n.]ρ{y[?o⃡sy>9yބ|{VS~o]=zs[~=m-z7}o!z yo1}? ٳSy>g=mm=_7IWs_ _j8;n|h|Czg@gM|hm?7xv^snznF=ѧ&Oyyg:w> 򹱟s 7xo]9o{]v37I/Vo ~?F&9yҟfgs7Mޛ{N7|vkaxyz.=tn5?DߪnO-ߖoM?}noS.|v{ &uih^1wgqVo}yq^w{q]yd!|My0ioi78.94vC|lL{]~_m~v[Nχi]c=wѿ;OCCԅg~ބ?&ۃ?qm] M㴏=4?^A֧'C44n!|gno]<1~=㺩oi7߿].=0}2:w?߻: <}]~aCų0 c4s=<7ms๩>~Y߃|}~Cxy{=;?wEu7=ڮ{nrmgrcܶ}~_xϭ7?M7P?Ju{gmҠ]|>\M _MMf!Wߪ}oy~A~C~ku3[Ӎ{|=ߚ7}[zD iv=cs[z eynw;?io}|~S?7uo_=;?i{-C~gCи9Mֿ.7qS?]87Mq[!yI.^?7oi7jү7};!zuu6Gc>~wĻy<xχKc>ן7}V}}:w &>muA9=w0ҿc ߎCqUvyӿC:4gw^k|hڙG?g.>C֥߼u>}ӼߖnCkMmp^o3᫏?Dޣiץi&0[ugu!zvKqvCqwNioo޴~>$?qv?jg#Ż.]:[w!ﴷ~??{3}w|ѿC}&C}!{4MyOqݖD4 |y|{?~_>iuMMp{nxQn[Mm 3m>t=ÿo|{kv-_Dsq{ùm|?ӵ3)?ޗ~t=;?>iq\gt- wjyw>凛v{q߃ynM&n;Azn}5G %>m&om9߳S8FxC)?n;?񘟝nCt-{v~v>u>7Pх<| 3~n~vC18ݿ}o{?tFӟ]tҿoߡ4/}g{Mx/|Hnvݺuԝ}wCo|.ߛӛŷM2D!G!i{Oo~oCaߪywn>Cn~V4>yNٝt˼[u6 ۟i]{]ݟ]xބgs~Cws=ѿ'y!9w;.]+>CwnJ(G>C|[uu߳!8Cwm78]z'٥Kۯ|n|5ďGAyghoסvC7ԏyt}n{uYyyӼ&>=7||]~[~5ϭ{ptn7{|~g_WNn~yy~ ~{ƿm?7zy>vgW7MowkoWnMut=;wg󡿇#Cx }}osv]:D߬ӮH|[c7ѫ;o!v?q߃}ݟg.>Ctw[Mpg!:8}|ۼ[ucOwg!v8ңcCίd7=$v]7gcyӥS|o{wu8~nCۯ>q &zķ7ߤ_Own?uvg<7ѷ7/~Ow c^U;4C|`|vS]:tvKn?C? 8gwL;Pv7Y~C|5$WC5Ow>>{ϐiznj|o6p~'y:VߛKo3]M64>t|m?4]zwnSn!<[ |9ķvC:߿| GsJs?vg~M;O{JZv O.~]u߻m?+=;<~v>΃yq3ygnC·?;m4}pnF <_7C㶏\_mm}nCk{v~o;߷N{3~71OM0oyoxn7Q{vs>7sn[}24k~7ٙ >n<=ϡ~o Ggm?wCW|~#?squMi|7=C4yqz~:PW{? !z m}o[׮Mrc;}ro'vC؅ߝoDqߖ<7̓o8~ǼߥPvnyO^g~+98= y;>73;?]u!z_.}SJu~qӮCu4p]o[!9cڛmoK.}} JNgnvc~4Nv#مc ߪ#i:WgwCtkC)|~yn~Ct1mnyo}y{}|iNC||m78y_ΝC1nߛك!:V;v]C=sieg@.C=4_CyONOw~߮n7K]:u gh{: ;!+|yӼwwMo{Cg7xVKK0W8fhgC~o3yS;} }/y}yn;78[!z 7C?oѿ[vvMrd۴3MCy֧K7ӟ]6M{иt0N ߪy.:4ߛiws??ҟ|n;߭mVou立gK.?G:]||iF>7yHt!uct5 <}g`Ͽ3Dq7>C㻩mŷ >|uDq o]ρy 3}oMxh~u?~>&H)?nK罿7gH^M|{Ӹ{?xtv\Cp{8>]=8z}]壮~h\{~ρ{3}S7w=į-7Pc3j|MavC|ڝ!xӃ4.nynҳ;M`{w.3spL;7oܴ뎣4m4xݖ/?S!8[]x=>ynߪŷ]w2ϡie~Cpg}.7¯]{OA9 ѧ >7:߄oi:wqv6p n-ii-iڛ/՟;wӟgN.]~OW?󞡟ۥwwnkvC;v] ?g3݆>DWDu7M}yyM3Hߝoy1oݮ ~>ȏmq}vywno_FnF!=|~Os]ns?=GϮ gr|M_w7mt3?sm|3p]1t>>]=;G??Ctyn=ϐ|~!zoq[=7Կozy[|o;;C=7}w&9}np߶vw{]zDsҫy!s{?Aݿo#t]lێ&?8?3ލ||gѷnWC} '<|[;Ưރ]M|h~ZzѿпV;ѿ|>Կnh?} P޼gx[;?o_n]o}n◡|<ǴMM6w=Ch!s ;D!<[=3Ρy/mVs}{94!8=:_tύ|>ė? 1Ͼ?i[..!_w ߩu>7pL{4ߛߩ4u?yo?ߦ?wCi^v[ [sGBij6tqw[yMw|~v8~om~ߡ>gMrcg}~Ƿ}&7<_CyD/Ϸ}Oyhw[|pzognoi^wy[>77y7rk~v7ѥO/SyO c>ןCp&}q?t- P>}C}ϻgꩡﶻI/ >g{~ v!q#]Cpn!{t~o9]zNoyyjg3 yn/;o?38t7?ttVsyg^snny0{bWߪvݣs.|}OWtkNvv<1vCͣi 3=zLIVsP^̣wPߪyM }y4'y:>NqVvxxtw[w6.]: }vۙ~R;uڙ!2߿ciOn3y?wҟ4G~KVv M|4t<]Siɱ}:ק;n^}湉]z?{x3t!|?pol>;/~v?kzݧ>O.Mo7|;3z<7wӁv{C߽|?oAxݿ8ọ|~[ϭv7>N}~Ƿw߿get=?߷d~sǩܴIWݿ>?ߗoVMti>Ov# [s#s=?+凛>ԟKn.]-_vv]~۝n?C2ύ{?ן=D_2{t|nKסכv7n!ϻ?{|kh[M|mgp:sh~A:tm}~M24.n7}{=3Ŀ|?vsγ<=8\}&zӿy[s[0vi~?اn1wv7D.go7&/~q4]|{Ӹxu۾oyp& gyp+c:{Oߪۮw|n~vЅ[|oMIv-?w~Xӟ@G|iuڛ |n:V]z ̓|n~ϻ|},<م+Cz'Cpn+o ~餟g>ݿ{hw=Ǎ[?gM=G1χ¿t}oxJs||]|m!9=g!|c촻-{]~5ggCt{ʏ.Q?O>Cv-xD}|ݖOv<=om3³|ޕ^[>];}M xo> ߛ ]O^Mcgis34Av]:tiN.߮}w=y|>$v_.į7<w0OoeןCw04/37m7yM5Ov^C+iM|vӼ ѻ =į >]V>n[!Vs}ڛ;!vo}z?{h>\Co\>=4?v\>n?ߪ<.:m744>]9»;]<[uן]3vCΣm~v܅Goi׬wtڥӬ׏||s_~AOoӯyo?}k>7t15o?j> ϻmo~\7MA>ghCs݆㸉?L=<[?χ&~M7G134_7rb3H{|m}nߖێ}7!~{>m GN;v7}z4?1w=ß_{yqvwM?7|y|ބM|}~+Mt <|p'܄z:͋yofsD|o/}Om~!>>½ұ >7MݥC?g7|4.xWw|]|ߖg.ݿo ogǼ[7wѝ?|[O ҟC _> |ޛWۮOwݧ;?~Z8m?ĿgCw3(7t}h\]<ҿv{w~[;Kx;Χ[u n]uw!`3| g~NҟC!y!]o>ﮛo??|KM?4?G{S՟o?/ԟf]}[u>wkzrM3 ݓ3}n/=?Ct|;.}{O{Dz}nzxcNC6L{{[>i>P?}i{=o[n}~ρoxnC1v湱}jS뛞x/݆79Ǻ=7{{nzz6WߝF=o?mߤz~~݆O5zw=;?1p|qSmt?=ßsӼ}y󛞛ķ7A˛=?ci~i7ė7 ޖ!M>Ms)?޿QMofן7iynMg}n;?7镛tyɵ}}h{i7Կynj[u6ύd֟]zOCpm͟>߮£KnJ|o g]sM;󘿇u>~_󹙧qt[ONwoV9G]x]|zgh~{Jvjן>7MG.@n~3w:Mх34/CiO?m8H_gVw]C}~+{h߿mJ |;V!Do?M=_!]< ]zN]V鷋_IVLgPf}ެÛLߪHӟџti3mT{?<|{ϱ?\4xx? ]]󥏡M3?Ϯ<uߌϛ:s3ϐ/}|m?`Mkw;7=gۣ)?nݿ>[1F~V|xxw[$w?xo= w.jץmxj}n^[ox=o!<7Os[{?m~>D=>}n7>?湉9C:hޣg77C{ 4ݖO{ʏu}c޻o· mz |>$q;5~{ ԧKtC私3į7η>C ҟ]ygӾߍt՟Cp{pͫ~o0?vCӣCx[sߘg_}^C ɇyIJ?|~K{};&ahw&G7}VgxV4ߛ oܝv]u&z7OLNvwۙvm{]>]<]>7ҟCoy v ӧ;?{O~o|io>ߓw܌7џU}w<]~6?{H!0VWM]xS]8C㶏~?nOOt<=}>y|>}]=ox1{ F~=o7ҿ=ß<< m3M}_o|M|[z }~[&:8ˏ\|?ߍ3Q>7ſ mgo?q|Hχas[so|~_C?o &>g~vM3}15_ѿ ;.!>xw;y뽧yo~tѥMt5mҟ]~o?t펣;ݟf=:u6&|o;?p;̸[u6.=ץg?3sH޺u24n;VߩKJ7i?K[w|?{[ן=?c6|?{v>7pL?d?}ӼoT8|wҟ]>W._tu&{1o=I|ߡq zߛg/ 濻tw]!zt>Cnv34?7c=o7Fz{yq4oۭǭߚṑ.7~h_wmk{|G3l7ៃt>Cz<7WCp]g7oyq̣4~_~z6xϛ޻qg[y[=gF9gH^o[s{ʏ8Ooѿo<7_7oo<}_ޣnCC?Mt-7ӟA]o{7=V[C0 gt<~?+iioи.>A>|[]4;O!z.Ow{?ojOo\v]{xu~Cޗt^;]7g=onC.]~N{txG?1OnnCxtf=onCmo? ~n6^n|n`ǣ7/vݿc8|?D=v~v ɭy|;J !>5?;ܾy \P]\vᚧ o;~_ߩiץ[~GWt|;O~iaڙUsǴc?:/|?z9ҟ|"? ߏax? L;P7OL~w}3nK4ҟ]2wE 17m{Hnn{{tw[>7|M{3 5ϛ3y)? ?7~?y{CMx-w}5^ojg>_~io;|:mz~7 ig!=^}nˇ)?sc v=DmIvgqHNny=ß7{398/7|Ӽg?s[7y}lINs>vρ̛yӸxy -? =_Pp{ϭ{~=;?oz~u}oHޭ҃ϻ=ÿ~ouI!: cߪ{:ħCxMMtw W~>s#|n3D1n;9Dү;߷&5vv wp|:? ]<=zt>7~+9 vu⻡ạ<.^;?Cw/>|v&~}<~>{=zϛ>wU}.vtΧg:ܛ{/};^7&Cu?7w֥Gw^ޣ>UcwjWvn?Cܛ}[}M7ݿz __Kxt1Nχۯu[8w.鶷Os;.޿Uoҭ;]:Viţ;4O:{SiϑL;8c џ}]ן}s[~zy~~=4COW. mmؓ[>|o~v4/&>{n}!y>sCz{+WCx~?ti^n=|n;Cy!x[ץwzGߝܖ7mzt~{|~[z =7|-?/Dgs7mv.7<7{?o{v~}ϻrm~34yy͸G?ɕ=܈)?z;Mu?F=ß]:;Ԯ_Sy.^Cv>߿}u=P.}oj74q܈y~wshnҩK_PMң ±GM1?-vsOӟ|~S!|ߪmOn!C74?7Kw<=~Ct~~7{ﻟ1v4J74߿ҹ m5O?oeuѱ}o?oGw!ti3! 7pOGϷg?N{|?wӟ4Gk~ϱ4@>ҟg< No著'?}˴?Oӿ[ wO>P:w=g/7.ݤ{Un.\gHwyzy{!|=g]:OXxvտo7m?}=P~~~{~v֮v?-]F}{vC=ۙa=Ǎ=?{Ni| ې}~?oynM7?}_|D߬w&zDM|0PC6w~Ca޴q[i ~i7Ctoܴw~vtv|xknNۙмvϻ ygD΋y}:ww~xwv2μw]w.כw93NF>wҡ;N۾ yP?7hMJv?>]|mqt۟ynj9D!y趻it:zp;w+Nwҟ]Vv=io4vqv?7^Y6?+iLߩӮN.\4f^{s_>ПDS~ALvƙ4NI޾ =O;ߛ~8 1џ=C7CMNsHow;ߪ{.o5c~vAt?7u gۼyz=~o7C:=nMxi3mw߿g}u?7|v[z8}~m}Eʳ>i7/]~{94_ޗ?nM}{Ю}-Cz1?5}~ρϻO]q<~yrd WW>sҥt}}ϭ=;w>vy_: m. C|}|v1$G7ynl{nz|e3y>Cw)?x޻s]x]> ӟ7~uڙﻟwɐ~-ݺ>7pq}]nF<S~v|7m6ôY;yn݅o~[zm?^Wo£tg~vo\~?4P;}?wۛ~ރ7]xoyOg>Cy!:F|\͗;uugy1O.]ҿM{e>:vx+yykh޺V;O]:u:wqfO ҟ½Ioly4V7;ug:7Ow1;ϡy0nc @; :՟f] t=~'4зysL?7ޯH}??Ciݓ.}F ;~Qw>??fއoMzxӅk޿~?_CM|~zzy=?.>]Cx4eWMw~~m77cDt> ;7n3m}ޗn7΋y~_W =כ~=Fxg M183w7>x_l[ϻ|6ossk=ţ|[|o~ŻwuqC}fxdN7=y=ܶ]o)?nWi>oK!>|_}{?D]8N{ܚ7|>}i!zu~u?i޻}yo?{v~=m5?|{ioH qχv{v>׿n{v|u?>;w7M0o.q73Vyѧ >o?xVKϡ|oe|?;]z Ws|ƭ? &<^7M[ߥ|~S]c}ߦn;o?G!~soz;D;Jxio?ͺ|o6x[M >[c3L4;:}i]7Oof]D~k_4?O;C 3Tk;ӯigӟf\ݧӌCt8ԟXvgwӟ:ߛyݕ i>:ߺ 4ovvv7مX&3nhݧ g^߳w ۾[z=7o/yo߿ =q;w_og้>7y{ʏ =7W~m8?skrm<7ѩ+'m|y~!btzn;g߷MxH3m}Fύ0M|{q!>Qڽgs ==x ߿34Λ{ʏ[7٥\S~tnH~MmvngM|y[;$]<8sss#oW=Կ4gmwuty5?gw O~yf7ynMWo>g;Cwz7ch~ߛ~m?4nou]tim[u?{h}IӮi~gM &|ڛgHn3ot3~χ4p CѱPOм飛N n?}qcu[OmҟC4&G?W̸߽O}Ҵӟygߐ=g]UIvׅ;u7)?Gio>7o?MT:ߛύ2pY77un~v#y??m~u~~??ןޱv'?Os(iYi|Kۙ߿? _c_vߪ̏!>0|>$4+iy&f]=4?{ ޿ <wy{ʏ> w~HNnsn7uyFMDcpm<߽nzrVC}~o zџCu`< .}~x|?v5p{t4O{y7ѹ]ϡ~N>qu7ߝy1o.}38>|Nn]34.-]yJ6?; ҧ鎫yteny&:ۧP?ݟC04.]: c4pn \}D< ;Ԯҟ]zχ3Dn7x]!Cw7Ki[ |o:,~ѿ>7u!:χ7?+ٝn 3՟noigg'i߿4ȦܴWs|n6 ~[wӟPVNiu?7:oN?Mo Ƒ~nQ<'vO L8ocsi蠟|~GsG̃߆|d>MvdHO u}[ |>Ծ:y8zMyoj7(OvCm>7{ƿ7 M߳S߷퐾x|pg~^tg]scnKG/>75xsc^}>gMDA<}osvCnwq~ܖ&tS7}?znwiw7>K}()?n7tz烈]|t-y_>oCa;(/;z>|n}7.nc<߳}{=χ~CyL>_7ގC!y5?Cp.=D gNgwŻx~Owv]:wqt|ޅguv{twutcvdK; Qߩܴ3Bi7ߛiVӌ|n8Y7:ϱ4}PO?Y7kvGoO ?7 ӟ7? k8}'lo3OCCwӟ;OfoOïfrӾg󮞲v^iՇ];ϡ7׿P=/_Mt5{n<7-S~ mCm3ͣy~ϡ|]-nk{v~7k>:>7Mk~m~o!C0D{q :yVӥм:?xvC N>]7u|ioCi:D꺽TmL~k<ӿOk8Ok(ϯxM?=ict+^y_gT:u~n߆_l>ߦy.w!>d7ۯy贻Ɏg_g.w~g>9ywzznۮ =>џ7{w7Moϻ  |{~umi[=7jmo< &w繑n0uߨ/im Ӽ&Ft?7w?ghG]>Cr[߿ҩ}8Ct~o7Lg¿i]5xUo|n24^Ӯ>vuzi>7?z7<ԟ?GMo.<ތw|n2 -iqA۬c[Y7z{oig~~i?ywީ?} W?ߦ_g?П瞶3ן4a+FMuO7U}}Oqµs}Ɏ34n&=Gs۾?>Ԯww>x۶noߡo}8n͇om}n;nss}n߷ţ﹩-8}yo>7=Sn!{~O _ޠC0myo F}ns~> so 3ݵy3|nK{v?7- ѱmҵvoz-{ʏN}[{4_ho;߿fgܽ3{}wwch^n;?g[A=D!>3 _dwv!~o&~x[>ן];.]]z2O.̣^ o+>ϻ4o1xm>yݝ.C147)?6O!t;~~~CGyn!<1?{&8|ޥvҟCtmҟ͟ygw|C|;t&>Ӄݿ{pg!<{ѿߗynѿ+|nӝG}W3ķ=|~mw>jg~O94No5y4t1?w~pMgIO.һy}w\!0iuoa Ow߭g[vfXϑufO8f۟c>MM?{3Ӭw>y(lou߬A|_C5YN2k>> T>48ԟSیüo>7Gokcm;OJ+w7ʡgGknkn?Cxdo_tg|N!zw~dnynyߝ&oj }nj7_ϡnK.x=?ԧ}7<]}b^}^= s#{yn=;?| }Ӯ/=?vs;Mmu&&}~nznm2F/4!x_8s{ʍ ύ|yL?C|xk}~>7~qvnwv𧻓n<_}#F~&z ɋ}M:D!o ;wi?4.} Jv1toCaG6wu&ҡ|gnC[zu>]}{ݟCwHtVwCu[u:wҟCp:]fwӟ;sK=i֓OH}مc3?w?ͺi713㸧?׼u~ }izvwisiu?}iXOW?d<տ ^Lv\wmm;}tﶿ~0o?[_}.<ސ {]z^6c ?40}>t_ Wmq#;Ov }]{ܶ_/{y~ρ;緥M}}_<ۛ7<]Ly~>ԟy<ݿ:w:7ɟo^g.p3٣Ggo>:5u8nnCgn].q C?Sϡ~ ѹ}w^<~~+٥_oӮ}xwᘟ is94ųw21wkwo3wOsGן#?7i:?ҟ#iN[snWM{Cg{?uڙuSL~AY7COm_|~|_68fixWaue񙿿N~n7a;s? 6? 7?][ |n/7)C>l~s[}o_<7g߳S!;4A=ß~{ƿ7ύrvS?Cnny[9>ش3?ɋ>7?Cym?zyimw| =nt{ vpu# |[yynr^g߿!ބиvMҧۮ_w湉~C7x4O!?Hg}n}x9༘G5[ |8M{<ڛqy>ϻ <7Q!~ϡz>~nڛҹ ]|sӼt[v!8ot7tV]~'9D.]^z}H~Cw[!SMt!Յ;oiו}w<]z5?;y~9DG;g.|[._Dn;oޖnogw>٧yV{Soo5Ю޴3? f} |ܬכu;4 ^Mߦۼg~ӟ[Hf=Siw?OiٟAOsD~[7pNogpA8ԟ~o~?1ug3?_;es7ҟOCwßf>'gӮFO7+g]9s1&:^C?z|>/ m3s_C߿3pn}~w?GmF/;߿{mit;&mq>y=M|~[nMm֣=_ynz<73D巛/sk~gh7M|mn{{{~?$Gowooyno|N7cS~X9_.=nP;t7|{ʏܖ_n}]>u7|~߷sk~y_~c< o5ύt7>omwSC5m|y:w{4 {?O7=4{nz7=g5D'o {p}χߖOp~ ^g̓ûӮOy:;Ю77&t7OLʴgo9į]u>U{}`ڙߩ>gi?W~oyn+~n]ߡOxoW]C~ӝ!w;ėCxTk~VsݟC@;t=_w>O3O1px'ˌϴ3CVCm ~Uoӿ Kߪ}޷?sHI|o֋GӬ-i7y o?ׅk7<ԟDO|,?iu|o6ߛzԟw? |cm(_CG|n5eS8S4xg~8 v\]zw? 'ٕ߿4O#_?C&[O{]ݧ}g^7~=;_tgN߳w34oM=9~ޣvCm8C{yo;/]Po-}ݿoK0H&M<ޖ34!>=7}si{= t>pO}n{~}n{ݿ?}ҥl _?~=;?sC}Ӹn+/C ބ=;y_~q̣߿8omy[ ѩ |D!r#]{ƿ<4Cxz݈>,s<|]i|v7ݥnKg |qXϴ;nn?J?3ԯyyw^ovCk{?#?}:ߦ}nC[y-u[u7<<7ѿt?m7|7xM?]:v߅ׅKۏy:wcP~~O}< ogjIV.]9[|>&>sHtvݟv:?ߖ/;K!z&I g>uo>gHκ?ͣwNvo;N;tm74]ujg58|o>M;uJN?ͺ=u~ǝv[in{3..io4?M;s?ͺy=ҟg>,ޮqYB7x??u?;Di?f}߾ok?|n-p-<3H6k`c7xCi@O3o _7|c|ߕ'^3?;9^} } Cm!<>Cg/}zύvmu3 C34>^-ܖnލ<:77~}nw#~[gS~ܖ!zno7}kaho{Cc &87ćMgM=|h}gg鯧W:v[~ms}1wrr#;w3ύ=KIuG}޿!~M|txw/̣o&!z mեonAM?Hg}t15=ϻO.^Dǡy<]u~gw^-tsݻVs]A7ͧyn/Mt.棋PP?>m78v7xg8o~?:3qy?=C{?<ԟ oL>֟_ӟ8k_f <;ʙ>[;?'9dϻ}:z:~!>d7gwCt1Mwn;Mp{?G|7[~{~Mt>gADϛM|m߳mAz[˟y~=иnˏ| ߯;Cx8םכ}nl{nn77v{&|oޭy <7{_~wM||$7|oS~4gm}n;/7Muq=ߚmٕJO{[ٴ3? ʁ=翙^!C|ryn⟛Cup>1壡vCwhk|q罿=;?P;ć7ot`|oq٧}|;?2ןCΣy]{|m;qVvѿǥw7kwF<5D14u6~>4! ͇^V3DKOt֧~n=ϛMt}KGoe>y$?Cѣ;ntG]:V;|n!: ѿ;C?v. M;]z{xx^v|o7DK}Mm뎻ˏ~ <|[uڛyy0'٥.]m! [!zn-&|n߮<8 =(COO}nKA}&9c{ s7 3&y{o;/[ӵmc=;C&A8g7Ǎ{ʏۙ -=sv7_o}n_hd_nϮ n.g.<߷_.s~7r7:Mn <7C|ϴ]{O!>5Ojݍ7鱛l3}m7.󘿇><7g|&o;?oc߳s|- 7x>֟Ok{~??vO4eM6NijHO1?]y|}}c~?d{s=|P~ s]{~O[ϡv;;5_ps[x7ܖ7ѭ<;t>{>gk7$O<^}gyCMP{||iw߿gMcvghnQl{|C{~u_ !y/7g>7:m;Ծxz~oW/O~.^]/? y๑} {>7׵}nD^{}mߥMa<7Օn?o;A:tpnG[:4ovv}3{ߛ> =7m7H7gO>cڙ ۿ}yӿ]|uoL4O~~ oNyC[ |o|okpmn|?xu }w^ ~0w ~7o-{C.~mw^]PUo<}.;.?tu9ovݟMpongoPݟ7ѯsߩyghHߪӾoG?t5ps }_[Ϯ>2C;u6v;Oqt3.43w3fKMi֥ͺig֏?4Oӏigur@X8f\ӌԟ{v]_o~d?џy~gSH?7|As_m?M{T~?>'C73f _1|;O#ݿ VӼ琝io`3oG! ~C=?{C{~n3~{:/Al Mu? |~[|`vtP~pn~ޝ?m~>M= \7k ?>_5o&=xpo C|7tܣ}ywvg!.9 m~&>sH~n[m[o;Cxܚo4u5צM|&:v7L6?4n^< oC:ߛ;!zvqk:u>Gyxt 8{y6O'FݟS+Fs&۟劣FOw>U!?b>Cx ٯ]ukS~տ{O8s8n}n=;? =/}{ʏ7OCzn/~OCocm{v17o?7!~6x{w=ß7w]t>o7ѡ·ᗡzn_ s}~ρ->׍8ow=o|~|C{#_uom8湩m?vߡg_<]|n«M3=}~CΫ=vu!>7O.ܡS=$7?[!xt;i[OC|kh}n㛁o';3Wϯˏ]:~;iߪygץyx }>ק;۴3|ޥow3?p{~m}o=̣ynuw=Ǽ7ϡv]ztikyxF:Gһ;!|Nѵۯy~+uӼoy U]zG6wgo?7o|ޅӥS2 ~mwaoV}|o~i;Oo{Gҟ߭? \1Fͺ^{|Y|?ͺ4;s? ig֭xO|nT??mgc۬|8/5>v'S5m;kҟ.ޏSiv~n? <3.mgi{3ן?O󷑧J+`g~~]1O ծ3psݭmgMOn>tp۟qݧ8~>~ho繑n{}n|~OqmFnxnsy}7sy6~oMz|v>nkM:8=ol<}x ϭ៷GyAy~Cύw3Mدy~O&8oρg?Mt=}!>7}߿m; 盚<7Mz&gMPz4o[[im~;MxVg{ʏ.u7=Cu㛞Ct37v7Mr>$?o.ʴӧ ~z M.rj~=}qw~ߝIg߿UCt2xtO?w=ӥMr楇.=>w.ݺ <}x {oWp:?ݛowwwO3.>]\z^t{\ 3|uV}n=:|ߥ{w7.~~~:wKOw2oڥӬ MNO<ԟf=y߬4~私|?Gvy|ܬ[OH~t~O۬?ӟ|of]~Љ4ow6~n5?M4Уߖf}[ !8=֟7|z 7M?Owχﶳ9~壡oӅ7&Gۙ}||ߛΝv7~gM|3qv_i^o;?ny_<mj|~[yc?n/z~]>I>)=yxP7y_~]:}߅_Jg{tucVywC6~O~Kߞ3ǽq?[v~5w|_t?׿~;9ϴg>Ccghlh~~+|o|;:w<~h<~GSߪϛmh̺ZOٝ.n~CNM{ߥc>]z m1wۿcm2Vϻ?'_y'Y5M߭Yӟf=u_<|n3?֟ių4xӮO߮OܬAO牶7f]+loӴ~oڙgڮwagg6C?7p?u<ώW ӏk~ԟO2O{63՟f'i7|n~VF~ ic#__9Mgw3dvy3Cū =~vρ?nӣo`w 3y&|nм qݤzFzϡmSێ} ~{ƿ>_χ4ug3vχ߳SF<~uG?7O~#7=Ca31dxp죟M7Ct|z>g.}{χ?|3n wg?Oy~OGjm.ͣzC򣋏m=+9DA.ޖNs[v^.t4W]3翕]ߥK?oiPCO 73O|ҟ=<;Dϛ07gקm£yg!:w>иD.߷c3pgwߣ[ |>4_2OKO} IvųK?|N-=Noy]:w|nҩo>7w?OgW/M;Vww^f}|;O3߭|t4?+i:wҟ]-ii:o~||?;mOm7xv4OϾ4O=տ{my?h;oڟOn1ߛOsO?{ofmg~ogf|4:fosw> NJy2ޕ?}nvSo#o5MvyOGۙ~3 > !x7}~{C)?~+}8n&8C{9y=?oKn_o4Kmw?yzt}CsqߖN}_ >ݿ;{~Ouzz|w=o<7PCxZz_>l{Zg[5fҹC3MOWo9|o&:={}ҡ;?oyZ{"7vg}ʷy:kw้_7#vo?skzuS~|Sty7}y~n𹉏o!y^7s톞3i>҃w>7u>g 7|~[5fݟgۯ7=mvC|>4nt~? <o+]C|y{o4Ns}6Oχ34K}K]n|OJ.v_ tץM~{ӿݿo!qvPn?CGW}=Dߪ}}Ӵi7owC24p߅347Ƕ7Oߦҫ/~ͣcN:wᘿ]:vһ;g翕74_S{ 4: ѷKwҟCt56?]7xVv[?ǝfw_4zY'|o~w}@w~v:?k秝Ӭ?|?zYo7fݬvֿ4kftR{?՟Cmg>7f'یs{]<O3^kT:q禟_ҟo~q熿߆4a+_[{#4rjio-khMw~??;ԾύxcOWv|7G[>=|=Gq ~< }}&7m<ŷ g>qO& F}4|=>>yn&:t}Uo<ʛyύ|{v~c?ߗOza|~[-nO]o5Юˇ=zwwp\}χ@߃v 7=ss<oz~_ߖ~CM{~=AWrd׍C >{ww>~wq~Ϡݲ]_߄yn-Gg3~{oߛݖ/omų^1~N;|h|Crp[o<3;N &|C:|o<t>7xVw9Dn~C|kw>Ctu?3io~yOo;7}>DovN.~7͇&:Y|~34oCҥiu 3M{.go{:?[uڙ !ů]8]s_T4y~+Ӯg~u;uҧ[g~]}=ߦo?w߿<}C'[uuv~.4owՅ wҟ ߛ Ӭf4ͺi;u~ns?ͺ?;Y6u|άwu}@u4[e֝uw6~ nw_ܬO޷tiݯqߛugd5=uھ #^{~~p:߄MOyk:7~~?7}~tOܖOng}njw[|t4=^Wt>mwkj㼩AsO-ܖnz&<-ov>7O~ww\Ct鹑nq >:v^[u>{7]w^oMzvs[i?=o=vܷo[{ H?m}zO}.uw鴻=m{؂n7mah^;zM9o[{k>CtПɁ}ѻ}.=]|~_:޴7?yߝχqNCxכ}GgyzǴ ·>|߄xx~;[ |i;o?H?&zVv~ghh74NS.=>Csh~~'woi74/quu?ym]v64g.<}C]u |!C:]|gVNsHxVOM ҟ]o«wn:ЮKn9D.Oӏi:t>7u.^Cq8:t1quuY?o>nMO^l։σ} ; >{_۟X~w>7x ~o8u|nߺ>kfެ^vf޼o=cmެu|' T~C~[OCܴ? tXu7?_Oiga0m̫[Çf^O#_7#]4ߛϻwNM_CCFׯjoL.~j>;1?|psSg{g)?zxn ss}n)?z׿t A7y[.{n=o}~|P~ǫ{_Mng!~ߝxt{=|ߝϻV3y+vgy:wH}y0¹-}n>ޠ<;>Coy?:ߨ?~ɭS~|m:M|z7>y~Oqvoyns7e-~n}~[> >gAjJ=~[|n;7{4}nO{nKgH݄mw?z =zsyx xGt==:ӝ!z { ?~.v\ݟoe>|nn奔ϛ櫋uS vtqcJv=?1w~p>{ʏq~o}{ >ݟgnoy|w< 3o}~+>gן4O.v}!Qߪ+?wKnV3՟CtO}zm{[.]mփt7?oIӼ[uwu}hM]x~v;_ݝDJNӴ3w \v4ߛ|;uu뎷;nyo?av6<~xfwџ#?:4ӬubOgOHOӿyc68̺YG?}?{;?f|nzY Ak෯?f^߳k4+~yێ|o1}L{te~|[|oMw?7;ߪ5?\iCsΐ`t|O~{ؾ7c!zFCp޻m{#|ޖ_)?n57||Htc|m=?< ?iKޣw.jwyzox)>quq }n>Ax{oxݖs;Mx/-)??o-7|iC)?3ė3H?}Q/nǷ&q }|{3n!~ ϡχ彟s߷ynysC7?>ui.\q [~n7yߝCu[ ץwj7qw3M?<]=zt ߃xs mhC؟݃wχy }ҿnһo? ^CǼwqtk??o翝ҩ;>Ӯۯg!>2[u~v]xva~ve[u>mϻ<}{Ssw..ކ>}>Y OCb{n]:VCuaI>;1po7tHw|}4ߛYn?;ߛY5?ެ[=ÇOo? ~ޡuxzuN㊿ۮ+з~S^o߿}z_N?750u_47q1^S?f>ߧ}WCidOMVHvvM!=d¯myon w߳>7x/C}zL;97鴻iS~txz|z.]no{" M|}[|ozru?$=? tkσ>7E7Mt<34{- =n>=>x HǛ<yn߿gyi7D.o FwǎS9 |o ݅k3!z7?HOY6f]۬v4Ǧ]?wڙi>֟ӼiM۬uݾ{oOn?4:?DA'm麼mgO3neAcl{njT:ѿ/C.u>O33/fF KO#o=#WFF^rk~Nv}mޯ?Vm3P!Ѵzsχꍷ=;Oo&t8oM;<=Ot<{v㿑ngg]7ć7w]A _-C^ϡGsS3F<;ޛ>Cq|]>7M{:{ʏ-}nS{ƿnyn;o{繭m< |3s/{K7ούt5o?g{-F=߿o;|y_?7 ?vg~yo?]¼oiOo.|3!v[uAЧKAghCԥM|ۃOnw.w!_ ͯyn=[^&+oM|&sϡ:vo3}pw;u?Gݟ.]m[u}sm.pytMt!y4xV'ێ[i;톾7ucV}߿y4[Ϯ1?~7N{Vχi۴:?M.#/Jvᛟ~2zVM״7CuUܬÚ~'ig?ԟY6?Okm{4O۟m ӏ|/?-N;}~;S3v}D6igM;n~~?wiY?O|o1 |CmqϗδWзÿ+NSn1L{3w{v_#wݿ߭ȁ߿4eVF'iڛM;|n~O>]Ϯ]ɾdg~yn^t?>|O}[z4ChO3F}}~&87{vpWn38n>Mj<{z.~7}M>{򑅯?o u M=?g^N凟~~_o?7chߖ~~Om.Gn] |>Cr}no;?oiwqDn.o˧m}n>gڇCq<_\vn;]ū`N^[1Ϯa>7ޣӛ?94Λ;Ivo>_w4i?{ww.疎1w3;!k~VM]]8CxO7iӛWK|Vv]|~;~wghNCxV]x.^n?_}n:7}w>7yVCt7y6?翝;տoo4]y3ӿS{ww/w|7}|;u6끆.7;u~v?ckKua~Gi@\Pן4O}ukgֳz~Y7ߛuGۯio~;vzkfޮ_N{Sߺ>o1 }j{Ό7x ܧӌWk|oә?Уӿ{Komgᣑ4|mSW^F~Jy4p74f |}>N;tviǥON={'.!Gݝէk/ՃgN[{w>7xo gs< zn ߿7^ol{?7?U!y2<{ ߖ/>7}7}C囡3P;msv7{Ⱦ ^Yy{CHO}߿~]ozcHvм=7}>gHs[z;|4v}nwy_COwCxďCgA?M~- i~z|{=vOӮm&>ҧ ~Sw7D!鶻o!zӟ]stӮyY>yggďy¹iߪׅ3ml!o7 <ݿ3|uc7Du>L{}o?~o:g]8.?;u7p=zOӾK|>wnow|iv>}|ޕM ߿Uߩyyo!>5wbh}GC']W;n:fxOӏS{u6i?}M/ԟ#iПCVF~i䮫M{Ӵ7wO󹅣7ӟCܼcȿҟC9@.j7Hm7}w^ ҥ^ޖ.7O!G oӣ98;?o<7=Mwlnm7<χ¹i\]>~n?m;y{fχ|hG| ~y8i~?n3mqs_/nCm]pw?<wusy-nz|ߖϐ3}SC&~osȮCrm}xn޸O/s[<}Ct>Cws#\9igwCGS~$C59د~!SVMf~'vs_sݟ7vv]8C6Ծ;T8fjye7?;u>7uVqn٥76V;M۬'CtΓiڛjুciCߦouuۛ x[sχӼw?wN=y_>|o^?ڦYVx{ìY~?4f޼oueۙݯ\>՟֟Ӽo i)~mTj{CcaM~̟y8\62wc}?o1qq.ߎ|?|=ħ7|}ox -]o ѿ}=?oķ }~~# <{ |{/gAt~< |ޣ[7|߅ϐ:]>ѷ|}&4.=ͣyooqJѩM<]~+4ϛg:w߿{vwj>ןs ?&tCp CoiǴc1D>UI |^.T8讛V=wnw{3_|4nhOo׬k{L?7mg;sm z۬˛q>՟ Ƕ7qf O3Ӵem< q:x? |GC}-iȑȇW^~'O#_]M|nڛOo?}ϐwojg 3OYxtMpzpoxt{?-nl{n}v|y|݈Mkrh{zxP?~O&y-;{yx_~{ʏA:3}}qt{_>7n v; ?~Ӹ{z=7نu g繩A}}~Ƿ}n^ێ{OG -u|w[oI{?߅3}W>m:V~Ҡ}q[{ <Ӎ>-=>n>ȟOϛeA>χaOskoiS.8ǃ|{wO~+A>C4{ߺ[:?xG !O~7oM?-yqϛ g?943yӟvC0$ogV85i?'yz;/uۛҿv:xgtٿ]t2xC|[u=D@;S.AvkO~=4?o󳋟^mڛ]NS٥;~UMt424/oV Kn?m:w1.եY4V;nInk3vnoӮ3JUϴ7;s4|??i֙vf}ZdmkӬ+gn;{? |g3Y6ߟOYϷf}Bvvo2?՟fGww 7N{^Ӆߥ}~Cm!=Mb;~{PKyȿgރ=c7ѫu3y<8{mmוvm`s{ƿ7M1P]ҟx <}:D!½q~n7MDg=`yzt0wum)}oͷ=Ÿ7M|߁뎣 wx:{Ϗy~ρ;o{ϛG7ws}zpsݖqgN^7wsy_}-9>7my4O=;waS~ Ug~Nw^ 4Ю ҟ]|O~No54|o?a4Ojcџf=ן#i֝Ov=ڼ]77Tp y?ͺY_7M;i4:ϴ?ԟ .nvLO~Adڙ~o5+?ތ|ONY7{n{d>7i1pg'vkb_>7r7|n6c>ʟmo7ʻ4w :?+iq^wߪwa8x }[ 7}O߁|}78sv>=>gh{;ύt= i &ޖ=}uqӝw Fx{m?>7{|?>]>ynwi.ei7;tMl?oi37 o?3h>~~>O秥>Us xVCܛ |}on,ͣ|y?+y!iO3M:N~tmCp~[u~v1t1NviˌKvc[N٥}^w|w|;uo Onc>ҟ=ߴ3NӬ?|oͺi5?A禽Y7xӟfcֵGӼOkׅ:{7{5;ӌ4x<:{ǎSWi˵]<.~xK.ot2oKo}ߌx? s3~k2|ԙoKקӌ߆gᗑ4iôkW>߿4@{w7pgm>±xcü|[vn}:3{{n| ҫ;Λ}ny~ݿxG}~O1HOno{ʏCd3mpSMϭ_7nzY:M||]x'7}k=7MM8n?Igp^ xsOA=yޗCܚOs[x޷7D};m5v݄y=톞7ٝ>=>֟7״|r|zh^3{>ێ}[z.=6?s=|M&>2z;W/Ӆ ;w;c>ן7KPoMi^ϡuoqvw<] K?~h|m~GMo?pOnhioC3{]|LCtw}u~;u>t.7ѯ;ߪy]Owӟߩ !>7Vv槁ok~߿:w]q24w]gI5w iڙCx}YӾKiyџ[{s}y?zY5?O{lַ:j>??zcD꺳kשOӏ~nzY{4v˰2? A_t6 k64l߅gj;omy?];~3o8w\??M{C/ӟi?O#7SʍSaW/F~y|og5>7Ig2۴A?H]<&mN+ϡqo|ky]>w{ }z}zn tc ݟܖ?3̣ߛF~=;߷ v]}>< &y9V^n۶yGw?{7 ?Cx >ooy~Sџ=~էˇ潛|}~tu3 |w>7}~[~M{u={ʏ.wҟCxܖ]t;|p7ɣ7|dA;߄߷}&]:7O~!>v~v>7קGiu}> u^}w~9.c>u?Dכ睟] Ow-;{Cҥy5Vϻwj !:SSo^ҟ]:w~n[u>ۥ} oGwiͯ44{q }oIco;!7?]< n;wy>nig66Vӌ4O>]1V=9ןos~oVϻwe~n <~w[u>kڙM?]vތKߩ[Ӭ몦_|_P~*?g4u:]Wus{Ok?7w~?ͺCi7 ſmTͺ;n6}{ 4f=]ۿxA{3.4v:϶?ηm1t0 }Siy5n/|mߌcs#~7O#S{iVv]3m yϴ71 <3Int g.\y~P.]ng}Vge_v~gUO}z[ M:3}v^n{-n=v[aS~܄Mdύ>->_{o{n6ϭA!83ǯM>g!zwFyvgUN{ޖ?{z>7^7}nsCM|u3D|{#}~OaCi>i;;/?w.^C~ѿo!C5VC|g_Gy=Ч;oIb|[;ghqKϛ77Jv?NӼo6V[~mOLv[=~m.~C~I!?uȿ;|~ϡq >C~M2mO3oo < ͻy:U3|}~g~mws?nn[6}n o{/M98yA|{toCq[~>o|ۯoץ8njt׿ܙP=~_6[:t߿qntS7uoۮ|cץmCr}n?>ݿoϛ~v}޸GsNoKqu6wHngon}k7ѳ }ſۏw~?4.v~ƫ Og;N{{2v1ϡ8߃|~uw2w? y88ҿu=D. .C?^jw[|uѣy׿ O WϻU!|[ 붿{ Ηw~Uݍ߿u>7+y[=ѕߛ]i.q m.KOyI~M~4?!w9D߿Si>7p ^C;mNϻCY50n.޿? L;y?ئߴgw}|n~v9~n6.}nzo?G4:7iaeҟNgw.u2~7i7?M.|_>|n֥]i֏ͺ]_~D?7iBul5xh{Sg}z~n4f\cx,i쿗4槅cf?՟3>M = >޴y_m`kh-S~ R*'sy7=|lwҟ/zȥ4]a~ϻwҟgoҟ ?M7ݯzgw}g=ouCgnvwb[}<]z|?=n G>7~kyz~OqӸqs}ߛ=m-{N|PC׷m74?~~Oq#݇s] A{y7V>o}ӴkN.\{F<׍ϯ-73np~{n7oO7~nS~tU? }y|k=Mt m{_m߿߳>7ύpo|S~tmvigo+O=7}nW1{7ηgoӮ~o>i[!pw1O }mѭ[vD3D.>J۾OC4﷞CiF8xcnC2wnnpJv<ߦMiy oV}>]:v5DV=:]: o>7?=3no<>M]N;8oi@ߩyw7? 4ǝii?Sԟf=mm3yHumv|~o׻M;ìۿO;Y:뺺]vi;k1t4: gihe7~n6w6?՟eeeT?|)?!iwkϑ4|n|n|ޕInߪȣȻOioCWw? J䯙 w2[!G_5 ûߛ;t?׿!= vCߍ3>ݿgC>MѩC4s|vPʇ>7kH.z{Zm>gM]oyn3}=;7>>7<7_!~!4~yn.|9ϭ?=m0O.>C|8僡nϾ&|Mm>goC|[gOҹ y7K>C[ ӟC?4Ϧo?8oyѿx 3|Ctk}o<?[Oӏ{+iaww \4p{cJv oNi.ta~OǬwu~xu|o5uیnޝ8w?o?]zw3~'i+i?͸zw|[u>[}ne>7SNs:?2p~'[u>7뗿O}Y_i??՟ Ǯ'T>f]^?7ж5~Oi֙OHzyߴ3zqM?oO~o3/yϴ{? =ݯa:禽GSތӴ? } } ݞOiod@?gt>gůw.=nKs}{\>ogK=o~?xtwCOߛ[!}it#}vgm?o3xn}oz{K۶Ct>7ﹹo_}n_~8o۾;c> g~3Do=(7o;N}w>:v潡y4[]zD٧P]¯oK.<}nshކ {x C~ߥiץ>64ݿ&>Mvkgh2Ow|C_ѥ{ wgw\qJvpL.>][ |n2<] .Si>7翓46ߛ~=ҟuk}wp~'!zw۝Wo}ӥm׶?{i]7];|uHoe>gw]yOQ:#y_>֟#i׍2ҧӬ':h]_5o^l;qioֿ;{gڛ:siƧAm?imܬ?ןuT = CSiLvhMx? ܧ8f ^CC_C/ys>f Nf|ύ<֟44?y5f~7iҟߝχם=<7ύM|ys?{tχM|yqD~~Oxៃ<7M3M:&}oAH/}p߿gA7ӟMW}ng)?=}|S~ m?ס|߻o~=ܖ_e;}zt=vVy7ti<&7s๑ߝo͇|zן]z }wMti~n!~>Ծ]:_![Mt2[8gs![ݲ]1wOyK.n.Ct~onx/~>Կ|.ݿ{x]zV>~oK!~6?;٥oi7&DOt|n~ϻxoCݖ]zVϻshc4Mw6? .vCχҟt>ONvfNm1<{wڙڙNmwҟ.;ߪӼo߭ol;.i{Os3N?Z4G+]3N{? ߙ:};o{wҟgY?sӯYG7uۙwf/?zkOY\k>7f3OsǬӛunmgף]6:rwC>=\[wwݬ4/sT?? 1}io7mvv|f=KsX~Z<4:<ԟ/CwG3s5^OCgӎ_j7v|O#Mʥ7ߩ73ߛ;.QO4pv]{;v?{n;3>tvCx >b77 ;og~{ޮmk{n}nMܥS]wntyF<}~_FuF gD.!={sħ~ۙ&4_nnOnNиv&zOt><5Dyڽ/}~#}~#<7{ƿ߻=Ǎ>gr?ߖ}{?3(Wuhzqvi}~]1On3M|uvH.nx }n|ޕc6MtK^>>Un?C)?4]ve08ѿsAyMaiw[~~;94 ѻn.ѿ Os[V|n:?Co_^}o˿Ce~3ԟiu7ѹL{ӮK!~'|o 94N[Oi]]?qwi{g}ww<.\ӾN;ϴӮKO[u~wҟӯ{KnJv`>7]gw~~Y:|+]7p;|nv3Qߩ鿋igt2]zu=م? ?smg~{?ׅ۝n{ Oqv!/s{|Mi7?Oʑӝ347ɱ}:y ]gc3y|~O}|o;7i3l;m&=y=;w>gߺCgCH3=~v!~|=7} =gҩܚ{~Muti}n {wN?Wy_|nO{n{N7}ߡv] }[uu:(/sj.]v? }Ot3w;4=;4.3C;/C|?;_C17G]>O}!zv]xoҟC~ߥKo:&_ޅoڧ~w218=Ӯ hץ8+;Onjۥ;߭Ό7 \}S!1p ߩҟ[s K7Vswҟf|ouv7Wwͺuڛ mcuaߦ]/3b6ywӟS翕4~'iMM~Mngu߆>ioi7M;^{N;Y4Ǭt?d}f|oOn֟wSό$8m=om}Nn?׿_|n7?͸ͺ?_ם_j/gw/kva{k|? T~+vt՟sǼo5-LCo3NnjG<~ϟ|23: 9Yo 4:?#A{|[O'oӟig5o?'}39Ciҁv7ݷ7CϻVwP.ߪw~?w-{#g!x]|,?s湉^y>C{v4ߍ3|C{?4O!4Oh_|{}14!|~Oq|u[>ϻMx4g|y}܄o{L7gM1{)?z{้oMύ|ύzLێ>oiiv5ߛJNt2N.>]v뮛 \~Nߪi5[uu4bKߩo?M]sӮ;.]0?w:wǬ_ui|? <;f|ۼ]|ny߬w>Ⱨ?ϑ<П߸5?yϴ7OY}?ON{}T~A~n֏ͺ纾kqZ7/oެzY76v=Z?M{ig>71x|8ME?oK7]7f<{i7io3?O;|?s ?Y7>2o?IӼ|t6~o?M0ߛL;..^x]?P7 !|и 7{Oϻw? ~hM)?nyz^)`t64Ư~۟53q M|=nz^toz:g}/~m;ޮ~nێ}qs#vC?;?ݖ7|>4m=H_}n&> ץynn =yC6|(nz?Fh7 c1ߛɍr}gݟ;t=;?;ύc֟7k3iGϛ8ȧ34?7M{!:7 4O<tЅף7Oo?|6.8Mp㇁C<] }ߪ̗y`h|Cd|t[<yЧ!9荿Ӿ7M}xďv c3ҟqѹ;Ͻy׼7Ŀg~/CnqVs}te>:!~1z]<q Kn޾o>|n1M^w>wo1N1(o3MnxM.\J|!wwwdwҟ]:M;󾙇Mt~v]oی}5nk6GӬIn1?#i~>hw˷h'wϑ4 O7{CvCi{uaio֗/[ח{槮CAf]|n֋ ܧ y"? Ӯnf=۴;ҿ~nf}\b֯m{iϗ\^H?x = Yw|ߦK/ߎ|o41@O[igʴ?? ۙZ>v\f;?:nK=ןSiUO?O^1ri>7?>~oOWVvzwҟyL߭wҟ:w7pܴ7ӟ]4t?ɏ7~+k t|o|٥Ð|~kxt|.~=XCO|z~so.u奔g]C)?nOA|!ޚ|i{ N}nG?4=ߖ?nW߬{)?z|{gh&~=?7ϝ-=o^ݿ}}6]&=χ~;P<ύxl7Hm7nN|~oݣc7|gxng^gH:? >C ݖ >û ݆S~|]~ion;緅s7t3 w[>=O[vwL{tƭ?V3K!o.Ct2~3?\KWtڙ7/ѿ!Ƀ>] o'go|>C ?4/7[~n}w:|to?i>U.~s~ݿ?t2nqKm18C>ŧyw݅3ԏۼO.p[<iwߩ:?zEsi>ҟi13qV?'|ŻKy]1w7? ]In7? }I|Ge7~~w~'iK[OYgQ޼g>7_ߩ?:ioӟn={h\N};Omz秝΁|ۼo̺ެGS߳:ѿOD*?H[o%?Wmׁo~m׉z4fܦ[ڟi?8밝F~[um{v: fd>/Ӿӏ?|2y22wοdaKW2wnm4f|kgx?zȯ+sFe7OU{s]߬g}wӟAoҟw|0?1 ]?|7io{ߩim?ww\]: s|ރc~c~?P<;>qu G)N 7Gv O<38ӥkw9osq כ{8ot=M6 =1(3}7F] =ן7χion1i7=ޗ `{O0MS~_ W9|]|»{ʏg7:χmy4?oxn=~9H=Mtq շCrtD{nn747yݧ}?z߈^}o>7_C@{[>Mky7nMu~͟٥y;v>Cz#_t[u&z ; <}Lnyo!:u?Kf<]|p~{·M+KӮ;?ݿ{1~ޥG3|~[z }oGѡy?7u|o~ų~vݻwᤝMߩwgJ84Mϡq״7wc>oVw3p: 7%qt۴3[|GVϻ|n3ZU.>.~:w?7zͺioh~71t0翛4񚟦Y7?ҟf=3ן4x:? <ޑ4pCX<g]|? O]7pLmuO~lO|T:si׵umם}~m_ôWv]f.n֑ ~lz~nuf=ۮ+ۿK|OO/䧅\v|g>F~n21pk,?K_mߡOC.ÇoGi;O=O~oMΣʉrhmƼgȡыFVsW}WHw|ni;uVi7 .<ӯҟYswNiwӅoڙLF﮿wS;O{.|N!?}/;?Nןѩ>v- w߿vCݿ=D{4п߄.>ק;7?4ų}~ϛuq>׾8_G{ޖCտyӼut~w=0?ͣv=}Cy=;34O=9-Mm?Czt iw{Z|~#MI>ߗ=;wṩߛߓ}n!xtן7_pӥmߛg=^>ҟy7Ow3 ~Ϯ>x Png߬w<mgJjg2vo} Q?Oy~Oų w!~h~]x]<ӣ.n^ߛVݛ3Mxʝ>]6;_]<xt3(7ih>~'^!> Mxw?gy{_1[|o;.ަ>|;Nߦ|oߥyϴ3?ߦ}.]<߿]xf |~ Y= =ެfN>?|nf]o]7ywctlt3!3ӌ5 ?<oۼg40|F7|d@A#_X=bFύ0`HwnS؋QiOӏc}?3iझoy;Oӟi۴7<Iv ގ<}{.>7On?kxw <|>wM]uN<w5]~>ćCu[M8nܚ:gA~n3@ ?CF7iӇ]8ݧM ]p:3?ߛG!xK=zu'&>䃁{?o > }m9Mw-{ ϠϡooAПo{?Hgm{>t3Vm!t>>zn;ێ{ynow~xty</{nK!ٝ;|V4v߽q^.U]3o{yJҁ?:w ѣ;J8oۅ; 쎧 ;OmMJ:w᛿[sGvGOތ3xiouy^iY77t0oҟ)3.=x =sio1w60Lݿ[s_z2@{g3ߛuwϬ@4vSy~uFӿ׼o;՟fii<֟Os"?K?7sX?mx?M{󽮳ukϬkc޴]G6?oܬ '(H6YpL;~uS \ӏ۬gw~v ????F~A}C5_:v}G7Q:ZuM'v 4mi20lF71|:Z9|3K2l3i{ig΁4|Keڧs_M;Oo?>7[ߪo?{: xyj[MsӴ7n{yϾoN~?_tڙSPn.\t߿7o{ϻO}ů;t=Wиo zK8;Mw#C4/~7kNo!<Wg_~iX|O}nAG?zo/ߝ&|{&tџg&nǭ{ʏǯsh|Cs8nC7MrM?7ύ{ʏOe琼z5? }zU|g~vo^?{3|=]:s[4&z 5Dv>[>;ޛkpga[>7{vп{wۙgs}ޛ.g xx;w&>eϻL?v\{}no{ ѭ+o7c9|G/Cn}?_~|}[{M4{C .=ѹ =4/7ѹP=on߮o&4xysh3D|: ]xVwwSs߅c>mgi:{ӼׅcyM \`:?4ߪwCG=wm.t5w|n7wd 4p7;nsi֥f}ˬ/QG4?:[{s_~|? o3N|o{vi<՟f}Q~f{Aoz]<Ͽd>7/oGi3v=4Ʀv+\}SױGۙןޮcvOAi4+fv.kx+<?Cf=Co3 4 -\cM0wǩ?5x g 9ç槡[3|X1)9Z=a丫T^4soNѫ|ok_oi7?'wӟJi;Lߪ?'iv݅;m!8CqǍyp(nk~O? 7sh<3y~Oу;t1w]^?=;3^x FvC8.|ԥv)?n|~Ff{Kwy<Ǽw[|n|~1$]n_A8{nǛ~zt2ҿ1x]~o;CsS?$7M~&ŷK? e7mu> S4nǐv?ϛ1?N{̓i7mnҟ ۮمu7;O3Ni92?[uڛҟf<ߩ7:?xV]0ߛ״7pFc6{w:|[ig?C/~? n?߭Odc֑>՟ ??MOӟgg <џf:?c?1s}z?s]w̺kiG S3[f^xN:]՟fڬoήOTޮCvO(u~~{uj_k?ͺYG7?п /~n?oC_CC37z-^~z0) C71t0oa|n𹡇λ/ ѿpۿyOAv |ort|y~ VN?ȌSFYd衧X?7T}hRO:^՟]{OOc߿[ov>7~+iA߬|nڙϻݟ{w{wm1w3=1ws>7tӍwyS~6l|hg[i?4_|1}[ܼ[O󘿇y/}po_}=ti޿.Ca1p~smqφMpy{_:߄yMwSCpowy~O1ؾyns=MCw|ox~S~7goC] {Cslg34_׍{ʏ!ūs[ }[n Ou_D{~]xU?7m1R?7χE³ |ch_y:rݟG6xD]5򍡣_C4dcU h?HC?|ci=:>3 _HŒ?~N{#?<ʿȋ~n2rr{v3z2z'kFXXF;`4u>7f]NQҟ4p[o3|o1Mߩ#}߮ҟ]5:oio~ϻ.! nj=ig? \iC ųv7O^Fy2yn?7пspu?v=z{؂tӟmuy~yn^]>4ύM6ϭ=>=?oލ{|>ܚ~Cskϡoxn=;?7.!=iis?<7ҿo<7Mvkyxno=omynߍxnsvCи}<ݿsk~|?4^7otW<7}q&Ѕm#C4cן7O=muӼ>gM7Λ>7}on}n;]}}wW>}Wc ̓[vt߷3{.}7Owigu߻i~ oiVKtK^ۮ ]:?os[.<ЮmK.=;];34!zuo>k74!<;٥sӮK!<'N< C|1$]|-߿Usӿ|}3794I4p~+٥4xf:xv|Kv2 owӟ}.;OތcGuHvewOn'=߬';ߛ:?B?o7?՟Y2;?u]̮Osfڛv>gu;4֟L{n^;]o늦~o!z~oz3띿\6뭿O!]w5f0뾦W?#?zY6vv~{~s+^_>OnH iַB~Y_=ܬ 8!aEm7~ii+OϙSo3T5:#ӯ~G/ ~ {*"qE >iQ|ii?H1|)a>7+CyR~r~_iOs?d#Gȁ^?+F?翧s+Ʊ|4m>ןF6;?7?3v#?wҟ[wӟ4vMT1V{}L|?O4]xC~CigJ}qu}_n>~|]|^ѭC1m54uxc7un{MC[!Y8nz~ρ0m!!xvޖc½I~y:>7һoݏy~M't _ |?m}==;3׷ܶϐ=Ǜ~#vA·y嫡ِI~]z1 o}~ϛ;$OCt6yx Mt~m. }osχ7ץߐ4C-;?3X|w_;2{C4D?]8Cߖnn~+{hܷO ΍woN؟>C͋}ߝCK.= w3WM|;MgU^]>0wۙVχ?{tҿ{7~>]8]޴m7p0?'ҟ |no;u6? &?o~͸~'i7io:OcY»ig~v16Om_xv;G|ngq \wwǴןCӏN;Pzsio|?x \~OTܬ}'i}[~ߟߦA[x/s5tx?/m{O{o% \nJ==jA:붦Yo5fk֝ _ìsvSifOӏY6f=ܬgAάH=~i?@f=^9]?ziokL;?= ]??Hv)S0t2tO}ct ] 5 (2[~O3N?H|`R>i+F.?=iO7ru5\{2|{}c \~sƙ|?5}n?~Si˦ߍ>7M;c~nϑ4v¼-J~>|oN+ܴ3vm~nП4n~oig>4? \vm[}Ӎ x {gD? }>8.|}Sp{<(gCm!Q&~7|ynO4ύ|>!I^߿MO;}w;~N!<]Cg?&q~gwCѥxtjm[uwqϡq7S{]M>$W7~iߥK7/xn/t}<y>|k^wҟ]-94v44:YiПUo0y{N|߅?y_72Mch<]|ߝ>g~?/ yzt=ß]'[;{{|>xnM8'oχoC㸉?oמ߳S^WNo=;?3>|}y5 t 4A:u=7#t}Lyn[ M9(wwӅg2Hw.<į7Mr5ȧ>Ca{}5Ӯ;Ӿ;~̣V}x<;goC߿ w~n޿i>6w֣o9ܴ|yoKxnߪo?Mܴ: >?f||{ |4]: 8~#?M~3 ߩά_ϼgn?M?ig~=iONAsc7 |y4wǬ3=f=Ci֟ ^X>՟~]2WvLAfT~!?ϗY4kֿ:]g}T? lk|_H﫟߿5:kimͺY?5f]?uӬf](gfjsoKmowo/vOYAoO;]ϝ+'s{?ouեZiI?7w0=޿?_j;3N3~d>)ߊN+?& ?WqY<:_7th{ϕ/) > ߤC4e? m{*5)E򑑃ȅi6r3i>UTA|oUX}|?3?H{gѯգFlڝߟw>7|?=0[kCٵܼ?ҟi읱sc?|?|;OJvsw|ns(^0߿3}]{oiou?.<7o>!߆^ѿxxvק ߎ{{t ==<jwmGs<7ѧ|]{m) g>t=><[O:4vghܦM9?7Mx8KLG7}n֞&y=w|=n+7>_ޭ3}/mnzL޻iv޻F~=ğK7/=ß{W~~={aoK!}y[}S|[;pӓ34~Cn 7Owt'Ӵ30p7O.ߩ~n?:N;}{Ӿ6tV{4L;Oҟ4y~ϖ4M4M#iz?MfŒ{GVs?Ӽgڍڛx7٥Y1pF@v7㺧?w7<ԟfoǴ3"Ӵ3? S~A}::;_ow~~?_OZ~#? O;0^ht5r9s>i3篡siK k/ҿ"]V~~߿/Y5g/՟f}/_"?KKm'👟 /vCWoGϗ?#?&O#߿QG{ׯq? ?H ip3mo7V?!m{8 w?'7smR]/~3c ocƱ2?u>&?~)ߙV~CӿWʷR?׿ i/\G*WǯQϴ+Nz+?mg95_ ȳ ȯꕿH7FHiO7S mx~5~/k?^~yU[{?S<ԟG44oo߭igi G[NNӼgomڛ߿Oμo~<~ 4ߛ]8o8ļgG~n{t>|>o94Az3_w~!zt߻i7{| y睿oMOvP;3.W?-<7~[uI;?=M m{?ozt[<{o=?f3Ю5~߽v߄yn[ݣcFw7Կ}|qw<;o o-?ė7=mgA|n9į7m_뎣ۯ3k~zݿ_ot={ynF<ޗo+G=Mt鶳r}:V >hw[t!Y=nNvwiM[u?D!ztۙ?3?n;t>?D^;}=Hͣ4ӣ>=:wfv]:.4:sC!ɣO/7?u|}|n2s3.Hv}_nӬ;xuio7O3.ӟYW1u? Όì<|{}]O.AOiή7{]5u6ߛ_Ȭi?=hK?zZ̺YY1={??@~ÙLT){sR~oߤ߳?Hew]KkzoLa#篡Y{o'wG􏓟G)@iOOv{IR<1翥=^)\q7~_~O1O?Q~c_3翤 [IH;ӿ}_~~O)~Lk究xϿN?i?Jym7?U~'?_t7yQJw|gKo/]ϕ~?՟?YO*//UR}oȣٿO#ݯa~s#zԿE S??=kSگS2ziћKGU/[=R[ٟSzwʁ|?:mHnGs_u~>֟;o߮4Ooiw|n:_Co[L{޼?|Sao.~_}O}PCX^Cqg(}~樂w5yN vtjmwk|Mn7{gWo|~cIvo7~ӥsoymoM/;ot[9}i~o>Cz|as[~ y|4c}k{?3_n_wsځghs#]gү܈o=[ןCұ۾ ;?y|D7^}]|t:ԏi?ow~44}?禟!4gwLv[}qVvCߥywҟ]zwvcI;wg4Ӵ-[!z&_N߭ɿwvSsӟg7o?}|o~o4pOu]0ymw748.|󹮫A@O]1@I{H7uYO#d֟Ӭ/}!?!s}KF?7M?)?߯'ެAӟ~!]H {uwseu}0]o翤ߧ~Kӟ_ֿ ?Vu?I?#??L~Pmo??\?ꏒo$)ss3_ϑ< ;] oN??п׿~~^?L_&?kПK Qx?O:/oϿO?;?_+\-:_&?@?+??[~CLnO7~?P;ϭ?R~X)?L~T~SrܽT5T ˗oRy}5TFȽ_CGJ~FhhgkFO깿HFh{0џ??ex팾~4|{)~s??w#Ӵ՟Ow_~?M?QoO'՟Aߩ4Yoow|n3kj{|ߍnۺqP{^/ԧNOtM{77{ݿoWGك[ҽtyO4Onw?7}v|~k><7~~#~K!837]{o~ mێ}OwYڛgh^sۿo?HN;+ݟѿoo=;?;{-=D.N?7x ͯy =8/7>y2M;C޼ws< 4 ſ>Cҥ7Sn]C|nuo}L.}zw77{.Ctx[ =uӅ{x4Oߪ~1vvӕK_[oڙ2N1o?io~nҟPvW_?xoi: \~ݼzMuݿG;?M|?xV?pG?ze/>՟f4uwڙ48fПw3?gSAo著?׿zt]2F/+^=u~}W~o۟}~Mh\sm2fO'w_jKKGzg?\~IP/uu돗Ο$?.{O5d֟#??]~g|g?N׹X~y4_{?L2/_"? w/_&?|gQ_&?w?Nzx?wW}[h=ן gJ?_-?+ۊBT??K~G?ソL)寑?ZN~:^~E\J~1]*H q=ן~((]i)/TϬh{OKTW{@GEѓ'?L~AןF߿W}ßiF?7?n{`=UOK!޴P5;w~A?}?7|?`|ϑҟc ;nҟo:ߛ~槁:?~o5o? 3ߦi~w|ޅ3usxx|~!ovӅ{~!<x~3iݿ>3!~~} ;ߖ7߭F<Ow}n3nPN:ܖ&:-.wzW>㽭D~=;wz~_y_8C[gy>{ƿO uynys7S{o;_y>7M]{Cru!.6=}~7C=o!}Nߗ77ύp:P.]?Oy翧҇vqߪӮ=ҟ]]< ;_oKz~vs~ߴL;}|n!zv?+y}2wzm3쎷ݿ<|ѥ &~|/y.]:t34OU=1Ooo{t֧;IN3w3w7ߛOy?Mom.}L4VJNw|ۼo1xxIӟwߛvGϻߛ]GӬ#8_`ןY0i9w~?M4p?֟:L> S\t}K꺑]{)?zWSב7fIC{j{~Jد?:Yg3nDϿH\~G=ZhuÝ_,?wCU5򏖟~/qꏕuҟ$??]~tSw?_~q:sYc_*?L~~}ꯐ\׃Y_C矠~]/eo/h7)_$?}OП;'?I:y?x:FYGso?p_p~ogJ/ϟoB;?N~fWz8?{W\N~[uE;LkG?N?_i-џh;vҟ*(~_&?9姹hϕ~_YN?_C'ϗTT_ao#?ҟI˿3=R};FoEXBW}g~7!7UOG_[}g>7CF;z߫}1? cOc?moigj^[;{}iy݁ۦ_~G4:?3Jvwӟ]yߴ7ߪ|on;g׿6ߛ4w GoS\b>݅?u&]7mU`y?߳>C7 ޖ~ƟMMύOD!=gmyi>{?}~ns>7=Gw]:߈W!z cχx_goǽqS{k>gg.o W~=7}=6 ΋mu{ <7񓑏0ύ{8ݿs m3ݿo;7N|>=՟|k>=ÿ{dk ~3՝:ONCjo|n'O}<3ćݿSmpvy0M|h~CtsPʴ|>=>~Ny8Qw\Cmgc֟DWM6ύ6?<~'9yyӝֶן7{no:N]<~Oto1o?mv!<[n{.=ae~h? qNߪ??{yaƵ?M{ן4yi2MN;#i<֟П3i+ \02$v~H\_N_&?1]R8Ko/i~eVo/o?_C)ߧKL|oѿmgAgƭSmԟoIs?Ek<st<_'?7w_/?k/GLG@keӌ?2?S:%?#_џ~3R?kH}DI7vVʷ՟)?w}_o_?鏖&??X~\ߍ5ߗ?ZJ~+i?T?HѻS`9~kП~=z؁?|R~JTdڭH3x?}|?G}?]6ݼ??՟:o߮?wXnQo#v~Nwӟo?3i2L{?߿Aߩ|o~O7}98}s(3oOC;.}dݸr(}}}34 .>C=7~wy~vnߛy׿3>ݿ$W7=;/ۿn-nW=M{ri7t=s9Mz[~xo=]uvo vOsh^37COo>w{t/D34oy_wː ې|ޖoӥǭ{v|~vݿc@;Km-_~vMzrv aM}urk>3~h|{oo?o<οm~V\8]o'Cxu qϛx-:w4|n[ gy莳P?]N ״3?pK!ҭ3sh>~+쾗vO5qnwҟ?xt?7yn?qߩ?G4߾4px~7i7{igk?|nן4=iaL;P>֟y=Ρio= ~,v}ż{O's[m:ͯqu_Ki~~fȼ{:/3[Af=l.?)Nv~]_C_/u]jgKjџt=oK?N~M,tuw3KY.]rf=П_"? [߿𯐟/OS}wo:gW/o?f[xw:/W[Ͽ/_#?k痺oi_B|)()~Iѿ~~^?N?7|xED?@wDT)?p?џ[_)@~*_/NߩJUU\8zo\?t?F^_K?V~K{^ϿG34zyU3v{*P{{ԟ??X;s^AџR8NSm[Ai՟{sG~{?;:?_?7O|>ҟ@IxoӴ:|n5PG{<ۏi>71оKFwn~C|w }{n Ӯ;?e&>znFvA>Կo9t޷嗡rs[8C&~18tfyn/7ao= ?|~#C5 o{ʏ./}Cr[S~V>oiw#n^=yѿߛPt=47<[7{~߷>y\~hnGyiOo^}vK៷kH>{/C97]~//!7ao7ͯ翕n[+*ӿS~//ߟo~ߩOeҟן濖9͟'?{?KB˴ݷ?@״'?O?iџk>۴sҟ~G)=6S|^]ߦ _5[{*O2W)}ѿ#gO@6?MOSoߡ1|RSL~ӿFi?~Wh)ϴߧ(??m;O1-ߧ9÷X2F'~C_aHi?U.)O3o_R\b{t)?_Z/Rz{PMsNo'=cW/?Sݯamd՗Tk■k;c_#D=;;Gm~Gן{Ӽ7ig?57ӟn\ҿOϴ5:ߛ7|o~OyJZ8Nyߴ|s/vC^}P\=O{}pX:t şCΛ>no?Hgo 3D骟ݧ7/g{n<qA|;Mt=}i^ w[wχ>J~~zO^yn ۛMp ^^o{<PG?{y~O1ߍsq4A:܄32Cy~?pnA27y$_vBC?yzn?ynijM3o}Cm)?~3yn 738|h[ |ޓO{?ok~1wp! 4əyJ>7}lM!u'ipMywӿgKVۮtC!x=?ߗ>sk=oCM)?>N=Ot[ >7xnۿ}~O߿U|}֧ gNڮK'צ}+]|p?7kwώ;?k/٥] =ߝϻtM|}L;OM1DwH>D.j4Gswg¿Kt}ώGVC݅m]~]<{U>L~|;u~vSIo mt?u7n?M-9|[IqMGx9g={w&n{w~AXM<ӿ)?'Ӭu|v'N;|o L^SG̺ɯ\J~C=3f`u~Rۛ?O^d~ε+A+{gV&??H~X7Tgwϖ'??K~ s?Ͽ/\NW_C?JBֿҿ?_~L~~Gx?|{#f}Q?t}/ӿ_N?On9,6?Mcmo<{iL?\ҿiKW|2iֹ;UQm4gJ?ߧ?_㟧篣i:f=g߿Oc? m_i-oK_GjN~[{|Jg_?,m?uL6_&?Z?[s+UOߩt\F~kK2t7~>v~n>Wh/O#W;:;h ?E-磿Z~v߿k'X5>T^LtO;?Dioe?>CKA3]Ͽ(ύ!c~R~ Cj?}:vԟ{kgSy?OvC|{s_t~ϿiNv:ouڥ|L84ҟu>7_Co?o1֟Uo |>_wj[{>8>gMqMqpw^os4g{(.>οgm}n>hw;!Cnm>7=;?7[=yyޛNgo}n;73$C|2~{ƿ77Cv-~7tqu37|y_:v{?SM47:w~? ѣ;ޡbSC! ?&>:w?7DM3?N|wt?7?M7wi7yL.R wot =K]|Lz~oOCG;nwo?7iۼoN5w[O3߭ioJ:N{n۴3y4xt?7O^;~n >y4?D6&oC[m)m{ͺi_ìo:BY_1~[C__7?MO}44:ƅj{;E#M~3PGsϗ$mLisJ?t"m3f=ϗtK翥l_&?or?mK/]sm/(^\?7?(T?N?ן?xs?I'N?u_g޿c֍_}џ;o?A{?eϑ?A }wS?k}y׿#/v_V 7~-[@>翠o)I?L??N/PS_e]}ҿ*ҟTR2i])KHJ?G矦ߧp/esO|Cq;O7{v~cܚozp~oMmwܖηzsS=vCVv}#~=;7mf[>~]>Mq޷.}:߶]=;?o?n]=n˟G gyuxn;7}Sxh~v7eS~ؾӮ[u6{?o<χ ݇כo&sOv߳N.^]78Ow7y,|gh|.}og.C:C||C{-Ǵyg!yץypown^ c:|[u>o.| Ǽvڙ'u>7 |Ӵ3|msV?G8n&=ÿM;OӏO6ӟcig݁iPɿ盿T??џT|vV,ER O)?D7_86mi? Kۛ?K~NI?xП5mGi֟'? {t0eoaKmh֟oDM|*?Kq翉a_vsK_j'?wS:-}kCk)ͼ~}H>V7)?N?K@?uM KпOv~iϙֿL~VJ(=?Mj'^2Sۿ?;~7Ja?B/WgMAGqm_#Y_&?R%~ >Ό󯐟/SfJCsTi|􏐟;D~A?#?wګϥv(0ѿSaߙ? C_߿=B?7|.?R}?џP?ȼg>7u~y??ҟ[w|>ҟ[sGv3՟ ig7 ߬Ӽg7SoӼo3? 8|o~(5M[!S1?{<7sn;zuq\g=Ç7oH >o& {;i7Sk|wwMܨ64۾kݿo7zn7 kN}[e-?$_79>]:=y#\}nї>]vyn~x rg7{ʏF>=?o3}=?oǍtv3go}}]>>7ugNA3?y0w-}oи5x |m?o¿KGۯ>=z.ݿCq: ѥS<;?{p; }ooi7Ӵi7>NC|eg?Ӵ&hڙ]<}n;nwҟPV{ ҟ4xuIN[L?4y^~|o6go=iڦ~۴30t]5̺3S~mz_d~ӬGy?1Q)?ϟ@tZϗWR~@/ҿ?\~O۟9sH6lfzs[t]Y<_{okL?=LۿϿcSoӿͺuҿh=QH~o|os=[*\CQ]sά:UYgLLVc֋-y3 =䧙W~ny83篣~omW*H4'su/ Wѿm~|t\,Ct1mm]zk[ӡ WwCv3w=n{ʏ?8.}}-?w! Fnxn_}>7k湉^9HN7om_Cxfg>>ڮrs߷s[:S{2C{~O 38Ͽt߻nˁ?omm)O~-~v7Y=;? AIކ:7qS }ڛgH. u>˴:ghs󳋟v| ~Iv4uu|M&/j>7? 4~oJnm5^GsGv&lgم4p{Ao<П1ys/Ǵ3w~n7?O4y|z??^ ~ϗӬ7s\~Ӭ_4?=i4ӿݯqkB?_O?ZϿI_v~3 }w#[&gOg-sOn/g~?ϟu?/oև7i;џ~MсkL~~h/~i_q6?{a 7Q{*_cnf\gsgx5mHkߓLӟRۯF?M]jS>}gL>?K~<=Px_&f?ܬc_O?A~~'ҟӯeS}<1;ݟ'?hH?ҿ=wt5?ן_L??FfJ~?Vgo~/~oiH5 jL+2?}N?u{jM~6~iL;哝L~RsCI_R}DџG~}KПeR<~_ȅ7_N~_/?J&O~篖gQtOП(? _ڳD~KT?^O0W_3{SF~=J?{I} ?<ǝχS@ﭿ?{|?wTnolߪo? [u8Fߠio>7q|߅cڙO}2:wvCx>ϻpLqG+?6Mt!s3H}F:=t78xӣ=Mxܖnwcg>]mޟwy y_s#=~mgnzg/dhy}3m_w#ssyύ|;Vv!{VsC}x45O]Oox~S~޶S-?!xCf}n߳wxc/P7xow~n~!u1|b~ڙP?7~?C$77 v3g&mvt?ןq &~_)?M?^gNsFx{/m}ngygNget}N;y4߷S~ |<;}tq!87w.y{ʏs|~8d0|8.]oMk7·;!zwӟ5oO~~5_l󻦝gڙMן3O|i?My?OiןGSAO;?y?5nAɯ[;??5k|'s~Nh]?h5B~O+^G!^?,?H쏗ퟤ]5L~7ԟ,?G~ٟ*?2]3~S]H~k_V{O_?@<.~ߦfomk?f:#]矦l~g;3Onyu?Ogߛ(/2?e~'}oOCBW_K3,*0{mgC?K7v~8)+y}{'ϗ@?+=nC}?^?H~Rk֟Tz)?/5>ן/ |~k<ҟO|?w{sOn??ҟ]o7П4N߿ҟo65o?{n{;~+ۺx~v^7^vj74.Ӯt>zۯ}nw7.7^vkgvCw8v|d4)?^8Ogiw[Cp3wO sq [{>o۾woKWD`|?t> {ʏcu=g7>f=:>0wyoħ8;^~fsh\7mci[OߌghM>o[u= :ߛt &5|ԛG}~oOot[߃t|><Kfg.C|gn_yw|oi!zM.qz4O?4ߛ :[nݟߪo޷=iџs?MشkڙM{}_w|??՟6AgӼ仟O?5O{gv&{ zk{{S'?]o0Sh&?O]=_@/?i-? ?pQSt=_7t?SEt}̬qu_gʼI~Auϗf=73]3?Vx?ӟG+}?O~n:G-v~m?Rfv?Mt?O~ڿY7eͺ蘭 @S<=Iu烈?v?M~rތoK(gS7R8t__m)I՟~nwp coӟ2kWoҟf3/W?ݴpJ_G}_5L_?_;韣]'?*R'S=20'Nohʹߧyo-wOmg_sQ_.?[Wh{h?m[~m{'p!L~jA,?21?_c-?W_Z=Kտ3\/C\5~J~_׿_O_KB?K?џO;?П7χT~?a}-iL;uڙҟ&IIo6w6߿>Cq{Ckߔ趿g0_OCwxn{|<bៃ)?qS~ &|}OcIM4Mkϭ=;w>Q ֥SOiOnhws[n >7zn7}cK&:|]84=ߖmgo}rcLp}m;~Hm}wY8nA|midho·N#wC=77x{\D_t?׿[G1py=Cߛ~zχ4w|ߥM74!vG8}[O5?V&oig7ycܼH|\߳yk=Щ7{~O1_w=poh^oM߃}!z=t5ύ>Cݖ7m7y ~Mߛo}[gp~Oqs=w&y߿S~|oyMap;~3 nͿݿ~}nz{?->uߡ߶m ny~~ρnWo܈g ojgݥ0톞CtOo}zx <7}oS~to{/c߷3nC7}>} 34n{}P.~oe>ӟ]|M{sS;{gnqutoH?[ |ޥsw.߆C?ѿ{a=:s|vs]! }ncЅ;4N?+م;?{owvʹ7|>_? ^&?hNӴ7]v󋿕:ۼ߅5|n61jInUw;3Vӏio՟vڛlioy7}yixݼCj_ϏmR~C?߿֟JH3y翯5~?ӟS_Fۭ_?v=xIs珓џ&??Y%?ͺghǟ/?4i{oTɾOߧY|߿ofZXxFYo״Ϲ?M=.f󱮣/)OuH~u[?iS|~o]YG\篡p4wRf3iIh=Wџ~F~n4O%C_oWϓO?̧)fJiH4?)^˕47vgmG?O~]3y픾gV7ҿ-Oџ⹣UO~5(u?Iߛim3ep~muV|0iȯIx4OV޴s4ri_C?J?;gϿg~(7:>W߿_*1 ?y3t`noҿ*M3t|)_x:??'_]Fy_}Foi#?S^翃~[CLoџ~L~#\~IhR} oy_G_}џFL~3;)|}-_㏑)??T~Wѿ1׿ m_D~?_翿|>'?_?|?ӿ_S~/<ԟ:sO_?ϑ][uҟSo/՟Yo??ҟ:8޴7u5g73xC?ءv]̇ =ۥí1)?Ojχ~>gg{[&:uVg}~C4_C>y=on}~qSίyǥ1 3|^w7z~O14~nKio{v>пo of3Os&:;i7ynjw_[:u:wt\gCMxv[\ܘ+mg{:OnO-38/g~{w!zv/<^!~iކ|o~?? <<ҟ<|mm<~?M;ԼɓOA~{ki2O7NNs-?wV/vk#?L~~۟,??I~{ԬiӬ{w?|iNYw3B|?:??ҟOw7;1soto?qy|igmץ}:1w>c7ߘ괳^7}>G߿>{ٛݧyoy2OOo\[{vCڛSߪ~+}oKC8>]7ҫ}{N{4.nA|̣_oϻfgn?}_wC⿛g~mcagc;~[^[.].=ig~i5y]:uu~V}LތwӟUKO4SOɧc ǝ4pL^3i&{#OkDq?M|kѿ/{jI[4y?W<tkJs%??H~.??I~m߿at/?2Y_ҿ5]WzCӬvcg)?ϕ?M~: ݟ"?#Ϭ?xj[?U~>׿go[ҿ'7Yg?H=_xzY?<;/q?J?/u7gx?wֿͼ}c __S|)^ܟ'?#3&?,̧3WJެI_uNǬIuo~_iv_Nά;o翁mgYOן1Sܟ&?"ϟQγYYO|aF:՟'? ~_C/۬ۛtߦ g4 Rli;3ofȹCf=GwY _F~G4of,0o$ 3nm3:Ff䧁k˾o3Dϓu^8OS~xgQu_/oCD>ןoO?O?F23n'?5O=ʹTS6?/t~T~}O\'/=ҿ'֟\H7?x'ӿt<_!? %mkesanFxm?RN4m?߿5Oi7ҟ_h?syߟc~Tן6v;v{Nn3՟#;u7+4 7П:wy|߅k~L{iٍojo٧>χjg[{ʏ!z7ynW}{ʏ!vVyg-߷_=7O|~S]:4xv7߼{ʏ[uintg|4O7F~gm?7= !3yuMW7=§_7<7 |_rۧӮy =|4..?ϻo.gh~+6|G6qvtһۮ[Ommڛݼ5wҟ]|ߦ|o~MLɇ;ߛwyQMSy?Ghg~;П&Oloϧvg;{?B?7y{5ߚ7=?ҟ&OH2~k?Xϗ+.p)?_*?ԟ$7Ϙuv^Y ^\?M]f̬[y[Gޯu@)=ui-m{m7X5t|fxO?W7ܬu_2foҟf7Sxߟ&? }4mWs?)ͺHH?ߦxosҿ?O~JW>3;Ͽ/Sx;>R}:3.hK~Wm)oϕ~{߿~G?N?:Vw7W)f}iӬL?Mq`ӟ:f]7P~Rx۟Yo R'C#wkG矤[p.{ϿACnKۙGS_~+OV 7sfS{߿o?I䥶7ҏu>;F~ M?uϓt);H?9#g_?ߥO>.?S|?M~F4zF=OxWҟK̗_ϿO'?)_/~o_䧁)v_ѿ ;ox?ௐJkUR祾-;iڟ&?_{'Ͽ"?WD~\~P?H53}{~?~o}_ߕ4^K}[S<ҟ=:;s?i>Oo?; ;v| wsNߪig3?۴g8 >Cuݥ3>]CP^q C.A|u!=;4}X87<˟38_o }~#t?=ÿoi3y=(y7tVO ѥ;.]ozos#:n~[<ߖos7Mog~:[uބp15~O1wGwSc޻/m_ӟi[c֟{ߥmӟ?UJ/)ϓ;_ϟf_gOsߤtϬ*c#Fo!ovmֻhF.YF ?ӿ7ֿ3Y9ֿ3>gRc#.?p VJJۛ~ /3w}s3oxu_i?fޟ?JϨT_CF(Iƾ~nyk@:SgoCgxgN i\o\yuU7X~}O%ӟ~ism| ;п7gOf3VM?}ҟ?O~SS#WHLj{HFt/4'"?P+?Kg#?k޹.?\_C=B~%?g:#\?ơ|?N]?;?}4p~:ߛ+u:o? uo4mLn; |ŷV⯏yϾP>`S~tvCxuu}#Cyu>>x7SmD.?>&oKWޖ_{tF|~ρ3G{}nk้n_?=n)?zgh\}݅ynz>gPC}?yCuzޗ^smc?&=xӼFo}[|nו.Ͽ.C)?z|xS?yt3.tyn2?iw#:x =v]8Cp+|q43ԏ :?=ߦ|Ge3<7nM|} Jи,χe7ן/{?߯o߿oO~Lo͟yH};W.??^~WD:tŬuN"?kci.]\9uH5$ߥ?Oi?~ܟ"?(IgJ[?&)+}i3w?Of}ެÛu/i;.)m4p2ys?%t^7ųԿ6*TT<_)ܹ_O}l7пͺ?;G:3_;f}۬w gN?f]F>?^ ?hKiYÌ|Foޛ+ :~qo_C#RҿK?SxO篡QoN?9@? ]M}XGc?NsȻqU5/v\_3 kh?MF_#R?ݟ߿#?ԑ?H?u )N4z[SU}{ˎտ'iM4iL?ѿ$3 _j?֟+^FEvwi?//~ C:?BVG?x~}w ?ӟ;/տ9O3esK#J3v_%?mK*G Fo'5N~Ak{.翴\?ϴwgC5~?~"lk|U֟7³G[0ny &=g{?܄>毻㷏~}+ܚws}~ρͣ<_3t0Oo>7^⟮>7chܿ=ovҽ 顮u;??t6O0G|? ]ztg轛o>7{! 7xVͷ>~J΋y.=An|P;{N]zyi<ٝO i7PCcAoKߩo?t:~2w7xu;u<}?Moo? ݿ翛=ҟ&'7yM?5j7? #XCiyit?}4Ok^z?_{OKA~}_~~L~Z;N~'b.??^~kOLiֻ77u>똟??)ӿu]OzKuο1m)fwӿ:Y?N'i{:G7oO~{**۬:uu<<ߎ)wߥ?A~?wύS*V96F>5N?}HI>-3OR3[)ѯR5<<_[6oߩ|co5?2|ogތO\7R8U?M4u_̺onoyߥ?2Ï o|lַ4iMNV?O~f'__$?#mџK[?s#ϑ;i~~??iֿ Kϥ߿_&??5_~ϿJ~[o_xOϼo??菕&?_/֟JU3}tg??=o?sOm|D??џVH~KNwӟo?Su6?M;Ӵ:?F{|n;u>o?Ӯw0w3pM|xPc(rS^3y[x7~ϞK!V|n.湭< =4!9y!6@óMۧyzwkێ/ݟ&7?oxC~v~p>7λy~O1!zw^s߷:u>7w?GC|2įJvi~c~Σ>|[uSCեyǡ:ŧ cVиI!~.~CwJv3wn>~ii?M'iK;џ4E}HߴӼg/og|?M^{gӼD~AO~n~i~zG~A_{}?RT?]}j>?R~T~-?[]7$ޟ%??M~kߙQt8۬W4$f]/Y}niџ&?[{vS8Y5d}OisO~'z篡?e詟NY6LH0뷿3)!m{OcַmֹWO?_߿T~> O;oy6|T=)]~?ҟ۬ Uo>fԟs}G Jw~j>/ozMߥ~[4t_Gm)OI ϿK?K Y5H65oo2:-ϕ~7i{gtO7oQ8 fy翁|wߦN_\)H翤ru<__? _:>f213KmkFRxF2zD̼L?7 ߴ?c~F[q~ ȿ~vgKA4_FsȏL <)>ѧe(eC#w??M~T~/bi?9msK(]-?ӿh?_Hk~7翕oѿן֟'?;џi?_&?.mW_?wZ~7N~}\e+_S:T~8{1CN~@~Ak?ig!?~>{++??_OocLP><ПǝkLV]??ҟ`7}Cxޚ= ӣ7M0? _ޖx4~sH~3tc;yoy- =gyo{|wk=;߽|>}Oo+GoǍ{ݖ>7{h|Ikݐ~y=syON7q^3 >gzn7sCw5rbs].{|ů+Tvwoߪn7cu5ݧ 2?;G9gq_o.}pG_<joѿKxV>d>ןyGIv3p禝Wn}wӟ&fڛS[O3?ߛ~'i1VMn[wџ&;O3.c>?{N}9֟4pL<ԟԟd֟Ob>L[Yw{cH7vf=?Ofuo߿\ۭ7)CKC=S8YW_ˬ3ANj? 甎u{Y}m?ogӟf=/?M{~giw̟$?Y?iL4ioLMӌ[oJ yS:Ӭ}w U|߿|m)>f~n_f=:o wӿG? {qz_+ϟqkֿ)[߿&?#<|Gfowio _C_(gֻ:|i:M?tFy=n3Lkڬ R< -mf=7PU?J7o+?Oѓ﫟C;g}2?t;f)cT~oϲ̼HcK<=ϑ3v@~n㿧kuz3MߦR}O @?s?{Si_$?i?[://_*?G[3O/ߧ;[w2V~OJ }/?O-??R~Q.;ZLG\?@~ϟП?߿-?O<|n~?cy_ӟ;sK~?wHIv3߿ƕUiig:|ދ7{(^tM~χ q}!p{1~{so;˗U{vog  <7[[}}voy]!zݖ/n=c|sӼv?^?t&~m0ύ|s5M1>0fmH7|~]{yܴ>;vA{>o+7M?}> '|ohއ}!~=gw3n/5?ͣwkxs~z8{t&:ӟ7wm9D. |yߡ4p~Cm 4| |?4~ ~Ct»۾;Ng=ϻf!zuҟwwm;}~翕x.Oyw7ҟ>; م߿4yߪig6;wҟ4;Ǵ3?G?7i7 /:ߛ~7i5p&i>7ן&??ҟmTjռ}G}[~/E{zkҿ74k^m4ӿ3篱Q!?V~%&??Q~]tO,EYoѿ_Vo t'?+uH/~?M~[m|pY4ˬ/eʹ_u4m_O)]Ff|oe:g~'Ǭ~[OuΟ'?ͺku+}߬_mŬGF,o~{m֟_ܬf0_qIǖf-78{??A~A֟~}ϬSdSF?7ϴRK>矧o)^Ͽ|=3{wJ_ӿo3W9пFaodOiҿm{vmd~S}_3ֿ I@TMJH6aOu翎#uNG? ̼r'?HFiϹ~>9G32տ.ی@m7)ܗ#motI~c؟&?.7Շr{dƟ{f\JﭟAͺvggN6eϗ3Rô?I?~M\('i~yOTHbyԿ_"? ?BK ֿ߿_.?(?G? i_WσF~wo?1џ'?Ha73s*? ;ӟ?%??@~4?K5{S??ֿOi_}9֟ҟ# ڧ[ӟ=m߭o?߿4pw~χU|n6?p{ݟ_72?莣g-<ϻv-\cݟ4CM1Ծy~x{C y[~ Mt=ݿ~4~3/Cwo?o?-7<=<wܚ^ wu37}n3s.7ˍynqF7;Ṿ8?ڮ]~znCtn0Ms[~o3}~ѫ7{S3ޭǡOwi^oK<tt$o7ŧG߳t7|aOgߛ e~34_]Vw!8CcVѫҟvo_~N;ӟ}o3^ K.s5?'[u> w|o7ͻ~h~>ҟ^]| \Ӯ |;ߪg0?3?M{u>7w|oO% N]y~w>֟< A<;?;?"k z߿W+[~џ՟~o~4kJ~IKs]~۟ ?ͺOua@/\if]vݿt}Ooֿ >4mp^σ?U~E?:ߥ:4m6j;ǿwӿ?;m߿ѬO?I6I?ewS8s'w~[)?gϿL,?O o^X\i;)JMovSF?3)\NQmϷJ?@봟[a۬gf7P87_ 8>?ѿ?@?'~W ?M/78u\_i;Yw6Rhօ'ܬu[M?L1;([?o3gџ&?3z@?+c?[~_?M~F^HJ>ѿIoC@6|iS3ڟK{jzevs3Hӿ/K?CM1zӗov;L?Woӿ?SܬvO3޿L7~nf_zf?vQ~?_~~_}Пyp$Yj3<矦?OR;m/5K熮 3?G_,?F//7P82|R~LG Wo~3 QxNϿ菓-??H~3՟uO{osmg~?ϟ4>iԗO3ks?wVuB[OOC?MTo>s+i>:|s{获׮y?t u>g>]nyoh~O?熿s3Wt7&Oѿ㼑N>?{?-]{|{4_k{H>ngo/ g<~ܶn{ޖ7?]ݟiߪV{ӏϙҟ4pΨ|nvv:MsW||?_? AO:LT>m;ImR~k|O}Wo_~AS|3|_T_*??H~o?0],:Ͽͬyz[?JJߛMi ׬:?M~fy?@y*~wfڟY77xfh;3o~i{wt4N4ҟfߌ3VG)^i_s?9?2? s_C{i訟ư~A3﫟知>05khß&?x4_g~Xs7rXwr?u4Vx=~g~n#7~=п2is翷 ޙύ0XoҿMF Nϟ߿^?I`쁱k_eHwoz]7o3G ]?2V=fU~p ]m?cf׿?O374_$?~o?ҿoiF/_*?/)J2h?Ux_%?'/k狿V~?R~qL/~_*oHwPlk{.?R~1=׿/?ϩJ~ߕ-?WOџϴ yyX4wӟi o?3iVӼmk߭u6xݿqysSx<~?K' q禼Hѯ P.~qs๩s>7>mwk~4?¯GmIoܤ/kVo>1i7F91>]o3oˏC5Կwcֿߛ~O1Dg_»-]3}shx<stuۛ>Ct oOjCtiw^G ݝ.^qw>7+iҵK?2mw[y1?v9o.+iE=:w~]>o>O;Vf]Inҟn3o.}L;|߅gnҟ&Og>7Ao?wןӌχӼg3?{A}T>֟\T>ѿֿ5o߿%?!Ϳ^?%?ϟ翟?H~k3B_?;w~ ?WoCꏖf=Ȭv<;_F~?wL{NfwӼ??ͺL?U~{YwYt7_ O篣S@:蘭vR?\OYL?ꏓϿ돑ܟIooi;'{۟&?z?:؎WiA~?t-ߧyTx#ܬyJqwY;m著uO~?Y} N6pͺeƧ?M~o3+ߧQJ[ ?M7o=g?̏~n֓?M~uS~_o?8~O0oR?o4~~/)ܿK?MoSmӿ :tύ?N#fجk_O#/T> \6tK|߿Hf:M5V41/.Wk_z9t|FoS?TџmᯡtN2}ߥ]чoo}عI봽L:h>:p8ҟo4gϿI6v_n>׿>?N?o _ϓ_ӿ?_~n?@}HS_yS?R_*?;[M?sџR~;_-?w{_+?^~woS=*esG7R?b"5(?g3G?@5~֟/癶3?c3yOןg??q߮o?'[ Pn6y7gy~vUy:kCsHo<ݿ; }{| o|>gp=}߼8 }>/7mk3mC3fc?mw-F>19mz^g{C4M4_ݿFzGO?oӝ~~7P: c{yO W.Cԅ;Dy/}ӟ_~1yzo}C!vP?k},;?vK>|n^}NnoW!z!kk3vNCy,| |;u~6m:nlo1n M;4}<ԟ=ici^:ѿ_OK{ֿB~CӼ}4v?O_ӥ?쏐Os9<˿H~e/??yOY?П%?H3?yxEޟefO4)]zuꏗf״Nu?K}HfROϬ[xOoϵ_㏕~{߿3m;f[cɬiM?)■?Ow?3ϬS =?&irR<>7O?[Y7ӿ?M~u?@ەc)~)?3t鸷oiӟ/џ~n:p@o~c^s~{iseL3RL_>}4}O>iuf}R::~3V8П&?(mgovfϟ+\S8fK}|oӿ >WktҟJOu7y?ȅ?&}߬NF3}̯f?ϿK?7Rx"{?(m(_F?Cw3-7ywvt>m ՟gϖLyůy0̬=77zX? #1)~۟-??M~S?<F??@m~Nnio~P|nvC?A1MpOwӼǴקKޣag^ϻ}{nn>{=ia=ß7K˧7>=ѿyzxS~$g]<~h!yqOq<u>w?m>'v?$Cˇ|nugmoIvyzm=gt>Cw }?wu߳<7y/>g>7u]sW.z?ލp}:wteh= Í|h~s[o7_M oD~ݧ7Evvo<. e_go?c>{vӼtm7 EJ6?{xu|o>C毋G?wҟ{3δwҟCo6ߛf\]i>7OL{|oڛou6[w?M|_>ԟy??ӟ=#D~AT~?П/=_| ɻ~iF.?k/?Oٟ%??O6H~eh0k~O?7/R8k~'iO{fĬ߿iӬ4/?3c֛SܬQ'*qS}?fά'm??Z~s菔f]7wT^)^fk﴿Oʹ/Wm)=!׬ZWMOf]ߟkc ͺO}mi.o3 j;~P:'??M~O?7i1ܬ/3/ⱥ/7Lvf> Oo2zDӌ~_dWo'3[f(~ agO?oC?MgwY4v/S?);U|~+m7翧~?_I?wU<P~[X~M_oݟ'?D~/?R8ߡ?_+??J~>mi3}eC~?L~I~ ?__Z?\~CsD~o6{Sc??-9֟&^HyvLo6ig~Nw|kOo4pONv{(mmteqޔ?&<~>yeW!|~Oу<7C)c}ӼD{ʏ34w!87O3tMGnp!9趿骟5}b֭i??w^{n_{wu s[:sE!~Z~?}L߬}\<=g<=7?>~}A =|~[3&W=^u{~]zM| }{v6~+{m7|٣y:vf|v>]xqV ՟]Vsozo}wwCeO蘭wso!xtu3w勛g&~{=ӾK'Mpx7n˿ym~whiNs'k3ߛu~?g=i1io>O{?Oi=tC?iKT^N '{UT&?k~*?ҿ_^j<3-?'OYӬy-ͷ~4/?ѿZ~[?OMUϑ\?N?sߥxIuM9"?S}wӿ:?3Î~o~?N~ҟ#?7Hݟ_C~Uc߮ӬuK_Y??J~Of%ӿ"RxfqmNsKi4w[on4OoqaH`7t3ҟ&?ͺp~nv7]!X??пFۛ?=WOxYO 7翥E~ϙyo.{۟&? <ß\:?q2ϗai?R ߦy_6xߤpoά/翆{OC.;^FQ|{~?翛m֡;OOiOW|13۬y3zRvvsR?7@oF?Aco? m3rgˍ*Soߦ?(cM}mFU U>s3~3qzWod]i_gv7RN~nֿͺч[??[F??#۟-??M~_C\?@?|Gy/*ҿ̗~OCӟO/)1֟?_"?@~WL~IoI?MD?D?_i?WϿ䯒_*?˿F~k_!?p6)~TGT~E+mWHھv~?"#?ϟwWO?Lok;8֟՟;#i3:?}o?ߩڙoӴ5~VӼţpqmiP]8}H)2g)1sPݿ7X: | >7ci|{g<S8z~O<7m7?vsCt>㳏=]>N77ѹ~~82}oOvx}\ ͣ]]I68uh?y翝eO>[yww> [{Ctg>~oAOko>7?'O{MIV{owӟ&ߴ3nsing|?O3G3<< O;AN?&kП&?'KO{ߓD~sh/Z߳Y,???V~1O[G{ϗ_,_߿_$?go7yoߗoFoM}K4g)~[n|=quI3xfӟf=!ۿ'?Izu?@{f:Կ]d3YI?GOoLJ?Oҿx:)^Oۿ?_{}[ޯگYzvRmzY6f}wis?ͺ(? or}߬יuC7﵆ 羶7\:i[߆f>ۚa3NÿfY{3o#73?̺Ct|OF>7ïY~' cO-?2~n70Y5f2M}̻mi93gT4iCO??K7P{oogN?7ϑ|nϓ\)ϗԟ+?7oSx~pR?<~IYoϗ?? _*?eџ?pEF7O?k򯐟_"?J~+WN~.C){|/Q?HE3{L}o3k>O???_SmTL>oϑ|T6;uy ӟ=o?}yoҟ}to}wy»)/ԝ>Mxu>4nӮ_z--=:?o{G?OOA<:VNAz}n}>7mq[>=gM{nqwo7M ow}>?Cx>gt@=Mqv? >o{sz~nosyn?}y=8C>3iomѥy{Ovo<ϻp~[u:ߛ.bAѿ'iԾ s#i׃y,<}~;ҥߦOۏ>UN|nڙχvmg_F~9W7y6T|{Kן|iw? \y|@j\~ҿWs=z?o+'?_HQ5?,Z~ID~H9Y5f=/׼H~K-m;?MԼ?Jn|HJ>蘭MIwoSߥxM=Yu$Ofϴ̺'?:ܬY\{f7c¿'mNni)ܬ}߬#ԟ׿菗;oqmJSǬIYwHoi/%vYӟmA7O3.Nh?K._4}Ou:?JӔ2So.7O/)?a>?? 2ziӟoNgsdƥ?-Rx'?ͺo?ͺϟgLn翤5뚆vOo7iLuz7=בO3K?x3 ~F?+3^ß:O\t{ȭcֹ ?K5)J7|fqQߧY ҿmտx-1]v _K)~|i[熯~#)\ߏ4\R'f>oO_x ?džn+sqiO]8C;nʋ>3o6~w¹i]|c3sy~ϡ~6HN1)?zh7S>ӧ޷s7:<3m!z|Gk4m {>=<~xnCy_s[:tqy_:}z&z_oҟ7={&~nk=χzGg-=F<yӼ4Ρ?=4O=;?> ?1ۯ;nn|o^W߮}хw<S.!+|ޅgҟ&=A !gL?ҿwKiߓ?Ͽh"?B~Oݥ"?-A4Y|H|/~N?\ϕ76i՟F?gDѿ_}e'?:}iɟ&?9;ύ6vӿ[R{{U[\oF(s:_ϓ/?*OQg?KFY biD~#/S8/RL?՟k:?x+\?+?o?_v;_?-??\~f?#?_"?V~H~G~ZN1j;Ͽ?gg@?=y_ӟ[s# o?;v>:x4f74ys4x{3 i74.Hg +t!ƿtkn۾ k{uO?⏛Gns[o ={>7͛yn~?&z ͣynKKߛgn~}z9N?o{v7P=M|38Cws[~zn}6o>g}OnvC:ߍ=ß]|wqcgo} ~9p3Cp|n}~߳Ӡ>?K|o!C5{}n g4wҧۮ;>~vvϡq8s^]8CųM|إ?D73}~;\GsCv]Nt>7Iv]u?Vv.[ߛ|VqH~N{s_ im??՟4y=ǝ jГNYs3A/ y?K{ 5OϴyO<44Ϻs"&?ϕi^?C-L_$?7mҼߧϕn<\??H?Y5_)ܿOsSgN\ᘟ{J(zY5f]ڟ$?S}/w/Ru}kq~~3ӿ[ӿͺQ ҿ\1?3ޗf|1}R>mg~I?ןo?)ܬAJGgv~nֵ>1-yC[_Ӭi7f遾gޖEԿ~fIea×/8ƴ7#Po?M~yo蘭u?@h緍~]rR8[i?۟픞~c]ћ̳c#JǿM2x}h *#ravF?q4rwVN?[h> =s?Q73vC4izj?KYOϖ[/s??o7so?Si2ϗ3vϓ~nM?N} RKbϓ~HRoh/~~L~O_;?:B^_!?_%?jᯕL?F?O~}:ѧ"?Wt)?Z~G?-?]?`"?sLO_CAKD=gP>П^XB?GJ~o?>7V75:?M;3՟7ӟ}}LkNvs܌ ׏>ytmyoC:߄M㺑.ݿݍy(]xC 3y³ﹹ ku3.}mhoݍ|OLoyIz{I-۶5~ M|փi~oe~vsk<78o{7-}{gn?Cxw<7nG??jynsmvn hԧ}5tڙ>CvVw6]zDMx@| ng-~[.xnOoҟ77Ck~^}K.}}?7M]z]< ?0nHo? qtۛOǨ~N;i޼gaɫw6y]yOt~|? ?O4k?T8~^}?5}[v[O?WO̓G4OT?\bSf??RL~߿=K篥w\i~R?O~G3?[ەo?mgM ~?M~gf}Og)<)RnO.WsO'?[CO7i۬ 4f=fGc [_zG?Hfϝ?Zo?ʴӿ.KgzY4JC~{q~o֯#mi?IìS̬3f^wϿI𹡧[?-{Y-URǿJQ?3}՟G_CYiOi?o!ܬǛu?N:Tcy}kNtލ1}4|k֡oi5迆{\6?_:WK>՟;YG5u1f]ߦK=ch軯p'm_~4f}k͟&?7mTN%,#/ћO#oM?-{~ҟїf#kop\w3'ύo &? Yw}q;}:ki?7Rx6տ(3O k7o;og?L:|~(Uf\mӿOH6 ~~WߧzRQ=nwӿ-Gi֟4~oS~\i?O~M_知ύ~~KH~ ѿ i=п#y?Ksw?N>Qx_.?L翕_hW~osj5_)?^~}mF?\~W~L/W>D~?󧴽4z__D>v?s?M:ouN3 o?禽w|n5yu>vCw$S.ܛ>o(-(]3~.`>}ӿoӣi۴3͗y>gmy]z A & }ޝ=>3D`8Vn鶿-v&C^-_=v{{ixryoHou & }u& vݿoܚn=?oKϻ㻱{v~u9>y94޼G?c ^CF>S^χ~>Hn;翕쎫ۮt=8 ̣yDϛo¯Gǁ]<|qt |nǡύ?u`C|3OomןsD?7yS;Ӽ{?M>!;A? G~Z~_i4O͇C~ ?w<_?-ͫh{G6oLY_*?ϿJ?M?5?m}|"iڬyS>vӬCuy?@?/TYG g <ӿ;Os g??N?F~4%?"]xWs돓f}GOm|GLosJio+?X~~$mmu?L~AYY?OfSϗ/׿JkO~i[f3oj@y:߿Ɵ&?&wҿ:Loӿ;+?e oOW)}m;|oW#mi@׿:_ Ǭ_U|oJ/o0COY?돓3_R~{8cПd {|AT?]S7PV__iL6;4~mmoƷRzoJ~ncK6w3mm{{ÿ5|f=ӟ'? O}ʑi3P??MCJg'i;'6r?5rg~?N~lO3of/2熾FuwcO^f+g:{cO_|џ?4cL\oeJSkM?kM?7p[CW7|Y/8ҟK#JLT:~z.yL7PzY~+篣T_Q}|lG9SK[h~?W?m?_~{NOEҿ7oM@?oO~G/Oes?~Oџs3~_eS|׿B~!\߿_/?A~Z~$?m򯑟_?>F?N~R?v~Wx9ןߗTGJ~o_|[>'ןߩ5:N#JfM{O~oӯ=}~~v܃~ρ-o}KOG~Cvoz}cvt!Cw4!|plw{ʏ}~_ܤ?}{?yj[n?8{|c~ ovwãy4/]1?K.. =:y={OnJvۛywf~<ԯom-~N~yu>7iׅܼgm>Jn͸MkN}7ouu<ԟ<ҟǝOi|mg׼T~[~"?K{o?y?S=&n??If?֟$?M}1?v/u#ossP0)~Qg##>ύ\熞/e'?7Kӕw7=-獑?M~Wqa _׿&7/ӿ,moh<>?sO Hoԟ-??M~C_z_S.?#moϑ_ϕ՟/?'kR?7P5M?}ρӴoߋX~Os'IFi2 ϕT/29+WZ~cUL?JLt0R~0Z~篱ωfS~_履Կҟ\>v@Oןc޼QLN7П:?M;Ӽ_Gs(4xpn~ҟ7},,]7C3D._g[w~cNvݿ> w.Cz}v7C-pv]>}߷巡|~۟~~sM>717=7sh;< w?~๑Ͽ.Cϻћm3?1f t λ~Mtѣ =ͣ~.7F>ԟ7M]n;}]<\Jg>|n~~n7?Si<͖cwa6?vnJ|wҟ}ɏ=ԟ;~SyOtOg?ןg5=_ow¿[~W~O~C=_~j_ϗ4G?I~f4Sok>П/5w4?(?M[opk~/R<~oϓ#ͫK\9׼ϟqFڏY_ìj>.?ͺ;mGiRzc6/ҿfլ'uw?o_I Yw?YM~?D~[ ҟTOϻ?X~M o?N&?oRV ɬFJJ_{۬KJ3fҬwKߟfNۙV37Ο&?{mօ:o翓i<ПYOS<"m{*[??H5oatoROT)^cJ/3ogO#7hM3 |mv+^[~K4rlO?7?mR8~)z@?7 :~i?S: 3r| 8x%7g82ήߌi7qM g4F̺?N~y矤0|c ݌ U?vFy/c' ?q{? ?i2 ߤNf\ۧϟV~Xi;/~i?so4\Yu4?i;cN?n;]9vi'7ܼV̗ϒ_>_ҟN+}ϬӟsKM _]=ηK?N?7?[}ԿH~R~c~ϧݟ'?_K~mO2i?/~U/\~>J򯗟(?}V~% Oq}:FK|+?R?׿?(???|ԟ'H?տ?y/ԟϴ?6gڙП4u?7pg7z([n{Ǵ3uP~;.^wܽGynχ߶O4.S~tcp\oz~O1H}[>77w񽱟S~$/7Sm񸉯g }{>o;Awt{M-]os#7|?Vsvy7=7noͳKsN^C ұ Mtu>7ws>=zo&>Ct[{ʏy6Mt1o<sӸ-A[mr}|?Hg<7?o Kv펻yN]< ןCt«owv8nߘvU}w~- gA3՟UП&fk~~?OzŸs{Ot}=?@~yhi^?*F~K\?\~SMkscͯg\翛翑~{W?y?Lf5_yߧp!2y~۬G/:.n1(H[I6п7+sNkfue~?N~n<}sjPG߿wqR8s-O_o;"?(ҿ)Ho\f=?J~]p~OmwRN3z(>ݟ ?8o[=㵽?Yg_翆c7Пftm֯-m?JۙKY5S?+}wӴ~ns_G \i;:K|Gi *{1oևYw߿{I?dUџ~nַ(3䧙7.omSʇf~>7tzU4Oެ~6xͺYoߤffo3$,Կ5o߿ҿzaơY:gIu|یȳCJjΏY6Oyv? N[)V? 著98Jڿ|oށ :^#?fo?k_GO'{~o -}w2|O{fR4F+}_Wmg:3|&OC _TRR/vLsث;'?K~]oALK?R?gJ??H"Yj/+?KUR'S'w/_)?#Z~ wϟ֟_!?A~eR8?ot~ϿKg-?V~H~X(?y~?W~A??_w~χןsOH;KnwҟLo? }۴uu5:?i>7y~7уP~Myn?Cn/u|}>CxvgP;: =~1 wOOq߽/!z ynмخ84D!>7<}?Dv~{۽/(7ϡy34ύ7?oz~_D[?gMu8w7<7g>ϭᘿ;ߖs#yns{y{]o;.7ϛ&||{#v=D'7 &z } ϭC?c޷!} wAiyⷛ橋of|4+PCy|}o?!:Vsh<߿4x]yoh~?4?i3W{L;~B;Oc77i0@{w]L7?|?G&e8ԟ1|~O\Ɖ~?ߚ|?5&\_~OMgt?~GO_I_H"ϕ[?9[7zY73пsG/?Z~3|aW:+gi;)/HmS~pWM~pVoT;4] =%wo{/yߧg ҿ'i9#oH鏓xGߤxx6swif]?ӟߥi~翷m`+ҿ翁m?N~~Y-}/?OC?L{oJ]mzKmoև IfRt>#m/ϿK{wxO>mQp },WX?>2xY_iWt+ǟt0݆O!?ЫC-}7 m1re }iסL 0+㴽igF̯c}hF?=w֟·3F~;mGqe:I0zAfسM7?e]̯Gog~k(k3ھT ~v~i?'?_'cw?M~vO!gӿkF?=?J?|-ϿK?烈C_g>ןs_[?"矤?ig\[y*ӿ@~ϿϒHwϗߦ~^3v |c(X~wҿD~>KL~@Qx/|c7oW_!?V~'|}_:e{؟#?*?|ѕVNK>F!??@~{?~J~AKR~G8DCPs_{s?-Tv_?Nߪ7ӟ_CMy3wۛO+7s] O<_?4{?m߷}nͧ7<7 Mv#߿gg^vǴ7Oogy.ܖN7}~>M߶}~Ctxϻ n!{{߷y4vt5_oy@.݆b.1|h7ҭҿ-\}[]8Cr2>|>~^v>ߩ|>}+;.=pxvVsڙ^]~ݟSڙ'J:qou>7+tϿ&o{GB~Gq7YO=(mϒo4y7 矧k4_jOϕK?@p4/gi?O&uOf3f}7ߛwXwiIG?T~[h4/7)_C>п*N)Iۿvf~nMڿ@Gi?OVo7utY2ߥџ~n*i~_돓fҟ/C^c_Y43f]Ѭ?uV?J~i{^k'ϿIeַ~o_١WmdmRK:>3?f}R8_anf]4ӿ~')ܿI),~R?I?VoϿJnv?ӿ }(3f~);Gwi{'`KE*?N~::o)ܕGySx:Y=M5q@??п-~~\?5U<9}_?7mIkS׿ПO| ҟҟiHfwҟ:ߛ { :vߪӮӴ3o^n.PogP:|i>MyqG)?C{?oM|2÷m=g8n{|yܖ/{go;۶}#=}ܶm<7ps}{v~-[7nhK_󷑻{G;߄yzq»n}MM|py<P7}ޖM>Cxvs/睟]>j?ߐCt3tϻq[>_| ?8ѿw3tڙg= M84;:I4c֟+ٝii7#v~N4w <@;g|ot3NsWX߭μoV?M&f>ןO͏ټT6w=B~~ﭟn+?L~y.{)?Vn?&_|oϓ#_3yϒ~ȼO&?1?|x_?П~*fS8~?I~W_S|[!V/ןu YY77f]%??AuKXYz쏖篡?T~GڟY?@ᛟ~fo?L~Wgf}J,R8 ﭟCѿ,}_okJ8i6t4눿o6룆O~#?H۽ѿ<h{^o<*>~o}~oo%ߖiy߬qӬ7uHۛMuL?7?uY/wӬ>ֿ=28[<vsWi{翷~2qt\3~w:}tV16̆ ;ﴽY4rj׃.?K?f~p573¿&i֯ } F {Ͽ돐]/yqG3oYIT?țLs3J?_G?rN5ogF3=1F?s3޿IGi;3~יq?CJ [5o:{IK _#m?2|5fOϟg=lki-4=Vy? ~+}wӟni;?F'`/F~3?H~?ԟPnu~Ͽ?u>o{?+u7xߠig~wҿM{{(2?1N 7vO> mp[4xv?st}o8;Cr޼7DL?o[~~ϡqvХo 5pn?^{?!]?M>KӾK~?N;mI߭ sGӟ:?MiY{T~A'~X~?SXzПo=iӿ?ռ/'5:?O~5vߥ}п?R8H4OiS~7/O_?ϓOM>ZޟMTiO1"y?7|wM3$W-m߿'ou?ꏓf9cߤghYt]ԬcIO2Y_+C'?:SGOQYK=K}YoIYowi5m~'q@_Giտ+ҟ~k_~iIӬe??Ooӿ\iJ4fv'?% &RxN/ ^f>=f+o A oJSf3"moJkuь:gڙ~uFN:濥|dzigg+"ßwύܚq}ݯ?'}ӿW[goߧa}o~?M~KJ]fwjQ7ty0zvz/ύ?ֿ:3\)\/)|guͿHFFN:093׆"{t4z)3翷~߿c˵7?Sz?M42f/ӿ$y󏓟mC_+WY7i;3k/FOi?~ } ;2O ~~}3_/k_~;:oo-Qjko>Yߟjƥ9>zѿ*[虿ѿ?[~Q|xW|LmuOE~?~R?o?i?MC?o/}ϓ_*?R[ǿT{ O+_?D~:r_+?5_~>:s?{iSzϿŸZ~s{ߙ{'?qB|?]-y~??ҟw|ӟ:w?o?6n?s>g~nO}/?g(b 建Cw~ikCx޼óܖ^Cŷ}y~P:twyn_I6~騏>½.C&|t~Cy:g]⇛c>}pnMw Py#<8nS~ o wcN ߛgy깛QszQ?34jw|8_ݿO߷N={t߻-n»ۮ!>C||[>y=;?һ+'7Ŵ7_!A>ЧnN湉tBu~>owv^̣ߖ՟]:yso?2~6&b6MnӼw1ҟTHN5L{Ӯ4MOioڙƞ3ϕ_1rf|O4_kNos#'Ts=oOMFoڟӟFJcF_=? v~nFG41zɌ)0zR-}&?3%3/?LП%?oc\/?OL߿i_CK??/ ϗ0?V?J/*9/_+?rX#џ&?7oa;X~AH~M+?h՟?)?ϯ< 5߿}?H]ys[wҟ[voi߮Ӽ[N_~(f7w~nuwuᘿ }}ߩۮPlM[ק}c}~|[.>vCjy8.^]~1M9M=g.o?7m}tܚN`g.}o+M:8?ggo;MiCgbysSVߘ}8ϝ}괳z{ʏs.}on>gM}#~vvM24G=7~F;)?noo|w<&~Om?o }L;Mt5z|~/9HǁCx~nӥOn|>4߷kM4 =gjn¿y.sܙRuoi7V Ivg&}Mv[Ӽwsi?֟&odLC9ҟ΁4y*<ԟ'S_meƩ\L~C/o֟&fq}wg4}O~EE}S#?%A_5LO՟'?4i|oIg?_~oiӬ3ӿ~n+R?7Y5|d0qSo>^oҿzӬY Ǭ{F>}{3MۍkșoCqvF^Hf2|m3>&m_Ϲ5{j[?N~odrt+Y[io:)}(7PL;{Pw\翥W:H^u7?@Y5V:{_> E*7άzç~pi?/?TwOC_ϕ a>7kM?O#4rc@c8~2F篡I??NS\uuO?N~ކ)^~{+7?NHg??+n翛ѻ근 e~Gѯ{Y:oO8.3翧Y2.sg?H߯cR=?L蘭߿_(?"3v/y/WGV?#gW 9mKW?En_#?Z~w W:oK_t-?,~Z?g.?GIKJ~\>֟<ҟ{s??N_??GJ~4o?A{w۴o~vwc> |(obO7cwY~CCyP/e =<7O?x;O.{<7{[:g74|wK7}0}n;?7}}~Ƿ}ohnOFv7ɏynz|vyzn~?yNvo;?>{u?9S7yߴ34/{]j?}#u>mgA݄{/>;;3>C翕sn湉~7o'o^{o5yo:;ϴ;?koe6ݝ.C㼉^C?Mߪw!tKg|h>O;^}tzݿM??;g?N!~4qNmu/߭cӅgڛMƴ՟#5sG8cӾ=:?Гq{cm{O͏7=v3ֿk;SGS/<^Z{+R~K??-?/|?yϕ//yԿMi_74yRu?K4ǟ*?9擟jOӟ[oo)~4OYO6yzO똼~of=c/~IcYw3%?_*>~O~){ߛI R|Ӭ[ϟJe~om_#]`g_Rk>) ֟&?Yt//Omgֿgߏ3ʁì[Yzf'?:?)^{3ҟ[I.nRrTۙuFӿ-m5Yo~3RWo#Ofά:著S/fϯ|Wqaw:@ vf/I=_C[LpC7iOӟ?vs3nf]G>P:'wؓHi,mgw)\#~n5 ?ws/oxdQT^O~gO{#k@F/o2v̋ig5x}f<7ΟiW.ǑN7v3O/oe>W|2t^v&?SmgQ<4~ogLsv?M~G?5~3?M~VGR|~?G~c~oy/?FwoϿ/_C?u")/_"?9,oϿO!o:ҟ~?/?ПO_!?U?_#?'w;/F?䟿ZZ"k\_4姍~FۿП~\~?GP#@>ԟ#?w:B߮o?S|kt~ Aoio~兆]x{p;i 姺^gn)K]:OwCώte>7p}y&߄ymN~o~Mt>7m>cÛ޻qo-=zG muS~[OϭiwOG:wm{ʏA}w ~=y|;xмV/#>mz=Cxk:|v3ϼw .}w&: ѭ}o?3ws}|`?vwgCt.~7Sw\o5Mѱ}nߪycNOooywiwۙqݟMN&b4i?wן{O2y&2tz?OSLxdb|?B۽+mSW~Gr?-?ϕ~^J~AoC%?ͺ4OiuyG*˿H~?Ki?K~?&??W~K 'S~o|著]?:{}߿?zeƭ?ͺ;KYGY' |}oc矦N)HYҿ)k̺f}'?m?fJf۬ߦvfCsNɬo?p~S~/\{KnSO>0%mµozYOL[8cwmK?ϕ_:?mӬo:Fo4D3ͺ_u$9!OҿY\ *_o?zYw;п:L=YݬK:_SY'4c?N~zwfGJO_fP>2b֣ ꏓ'3/fܬf_2S/*kRwxW-ӿݯaWO#?VgL)]4?uoݍ')^Mv]^yiӿ?N~h֥Oo_x_߆_Q 2K6kh?I5ߌV<og33z_vcOI=oi2r?W:?N~}_iשWv1v2rp|aO^M?߿ۙ?Q (Ff̫ii3S{翛O?7dG?߿8yMW;#4xWg/~ooOӟiM?J?M?M~~?W~\yo@~uOۍ?H??%|{R퓿L~igMە_ߓ~?<}_!?Rj𯑟ﱶN;J_W/2~P׸L~Csz?^jD;?sOJ;?[wҟLo#߮oio7vCw$U_篡? 7ѣ םO ҭӮ47qf yi>uM~7Asϻzk>ṑ?/=onh<<->~ϛ~~7mo߳s{stm ?yӸ6=gc73mozķ{-&gp< n7547;Lڧ2|a~y:!Ct.7Dn?Cx~MW{޼3Կi[.=n;]zv w<џ&m~ ;=?~_[?4ML/ {W:gcܬ~'# Is_x$w;[ '?ͺ)C@5uf~'Psl֝:YOo94di+mgH1|;mG[mg0m2F_zߥ %|6׿;O2?W7sϬy=-9W|:M?7k~Gߤ:s}п ~/MaK?ɼxY4tY71=?J]߆ ^gj;36to#/IR7)cb?ekOc/+}wӟ~nSܬI:p ?mQgt|;:?J6~n4|OF?N;}?>A:~;oi_-)ܿIC]<0տgϿϒ4o灶?п?[~~{Yos_dϗ7;/_ ?_O}O_(?.?篣%7KpZ@F ҿ?CHIrmߏ知p2s)V~~믓_.?-mw{;|jZ~OTOA? F&?iv_/W~~?翧}_~?M:c?;u~Vvig~xy>v{y'yS wn^>k}{|t7~>y9^o~~O1Ow\Cp| P~rA=o^.~7k7xy_8=ynKoܖ7ѹMu=S~4/5\}7}>Ds#> 3?\ޖw}ot>C{&٧xx x:CI{7oKjC joAgg>~?Cߛ&_}|r? 3$7Kw `h|7}]~i ӧ;~:cן]8IVswwp|o;~5ԯi[u s.xuv7ѳo5مwӟJNisKB[oMuxHNw:O2>4ߛM GX??џg{|nַK4/~{&oZ~O~oϷskϿ&IA?W~,isi;[ߧyWۛo~My?GyMSowu4?Om|g ԟf]vҿ_jH?oY<x4i{aJ۬Of}%? ?N~Opmo֟~_h~:ʟ/Ҽ{+?H]?C:Joov \ ~[:K?߿JEտKo۷3fͬ#Oqoӿ?^~3w~(J?F ja7Hfvf=Uo.w=YJ篡]_C0οofݬW_㏓+m7uGfſf~I2'?Cs#V>著WF.Jߎ7Wάg~[?7z2r>۴WRȓ8mߴTf]m5!iȕȋǬf~1J0q4+T ݍ~St\mӿ{*:zv5r:m+7yV<7#wޮ3y_o~vf8'O3#4{5n7пw??N~} kLn_g|F/*^??M~rKo裟?翥O}~m{IoHoi)?4K??[~W-mGiҿ# _Vk?G~?S?(_[I 矤w4OEOS<~X~WS|D~_ϟvI}?/$ӿ#)~{|?W _.?m7koWG~r)OC{/AO7O߯姉~?mL>ԟLX/ԟ߭o7ӟo?'i1߿4~k>7o2g([O_|Mn_i^~{}n~o߷Gg܄nKߛtSC/^;~tϻt70mq~Cŷ}.P]|Dǡ~<[?.C/A֟ۿyn)?nߍ:O߳y+Cnig<7ό7ү۾>7~wk~~[g/zߛ&z|( 㹩џvcw=|2ԧw};n.ңKF=ÿt΋iכҹK' }:wyg.~7gǭ?N;qt?7~CӴm~v;OӿGpTnun i'&awӟM8;L^<=3{?|}?OO}[֟k{OͳJ^ՕPiևzN5E'?M2џAMZiQ<%{K O&m70|n#cQM>ӟҟ$??Mӟ~T6?^~w czyUm?Q?y著W Gj{N\?L~@@MY5|sOKC4.??X(??L3?~#/AoϿokN0gf_ҟe/f2tz緕.f]Rm||EuK~n~F?7f}Pt0÷Lci;2??dU.wGז[-}7g]70|:\]Y}﹁vOm۬uBi;'?%mO5O!S᧿~o7&S7+mg>5|tkoO㴝?ˌ37S:Eo9z/ìLF.!~'i쏓;2P_VxVG[Foqi;W ϔs7P2zM2B7t1z菓m/v~翝3__{߿wGFFg9|?N~M ^Y/Ix~F3[״?:џ:?K3'?|ws7R[{`꟥^kڟOWHl~\P?ҟFq7~Q8=~$iOi ҟ7:R_߿ =,̟io{C?l~#_ҟS8ٟ'?@?y}2Es=wvD1?NEb3 UD~~/G?u_/o_%?#77NgtT0{\Tg.?G~I߿{C[H_/ԟHn1v7ПiNcڙ.n̴~68'g(_7G{CO󁿻D^;}nk7{H>~i<7{my6xD<7k>7 ]ρ6ess}2?c֟UgC]zv7O?봿w|n3Vw>3C_wއ[v>C|ҥo?6ԟū'fjg}.ݺve~C|`7wvϻ?&?;߭5ߛX9ӟ=Go>7yMys_O2kT?D6yKA m&z|Wi^пO矴R~ 9CY4i?W~{?,5o5O~iL5i?Y4?3/v؟$?g;_o?8[io0|Os|Y'5R+/ocߤYߦyu?KE_5xf]#著IXpG?IS4y?HfK6롿~k(o{y??L~oKK5\YRmiN֟sҿ"{Ki֙0mgvfȡS?&ӏ.)f]ڏY3|Wf=w#>oif}ۙ=f֏:pf\?9Sf@niHt}݁L槎_2t՟S3E:H~̼zos#~w)?K~EY6t8t$3_J'#o y70+L~)Ko翷N1zय़Կ n)#}!CyGnqc5}.ofGi;W3wǬ1z6p.iw"2xuF8iύ^T.g?FYFӿmc#mo|e5~2|{mˬތO迿Mm7ӿ<)]7~niQҿ_g ^: =Vϴ#埪~iIqv{OofS ϧAUxm_C6pNϔ~~w8v˴?gϿMf:CiKڟ1iO _~P~>ן~F o"v~7_?(ӿ8KD~~e@?ob'+/_-?V~U ?^~eџSg+7/;TϿTϹ5~_9՟ӟ^O}ߟGTG}?sO#;߮o?Oviߩ7?:?My9ywMs|t94.C!8=ۮMxߖ-A}!~ &n;ҥHs[|o˛:w:O&x=?s&~nQ}[w.?ߚ}z=; =C㽑s[|K3Hw>n/~Vuv.{]}S?c>^syyz|?2Dj}ߛ~N{{hP!zr߳SC!9|o oigiy߿i?4OiӾ?8M>mOgw_Ӵ:s%Oa>u~}i0;]Fo4yyyOбy_Sy??HKзI|L~|?Ml.?_&?aٟ%?wLPP_$?T~a74XJۍ4/5zy_ϓ/iӼ?u4?ofeqӬU _JCY4O{OL=8ig:GOl/ͺ?Yi?N~[~x?\~CO.HQ@?owO.oo0'$?#/._,?W OҟSU?L~Ks ;qY;o2ӿzo)/seqy2+JGWYt^*?f~+۬wuÿJW~-mgֵ7ӿ:_-ܼo _P{+~fo.}w3pv_;пRs#Fn:濤_R:y06y7bR~SR<4mJ?I~[3w)̫#~f<{HۥFt|f&C__~?N~ ?//o~ͼR:[ߟo#ά7S}#Weƫ4vE3?)\F+}_R|~ތOv=N _omֹ+ï*JV Όس-G#'F }?N~3|k~_{7J=?JM~1;F?t8߭ f$73~;gk_O={?}fE?s#ׯkY1zH^ImwvR<:g=۬]oi;;׿ֿ#՟c?Gv~nӁ?ҟS]7?O޴:OtF7|>~n7~3GӿS7{y7ô:pzC⥟w:M?n]|ܶn{ }y3vm׃ &vt]oK!nzM.ܛqq7ѷu |o:ѿoρvݿoⳛ=o ѧ߳sm?s8~!xCϻu`n &ߝCwKمKL6?u7Ow1O.}S?C5Dw5?;zdtm.z|]}W!:v[u>7 }>gCߛҿʶiN;.=qu?g? ߩҟ]8&OOwҟ]}C? ~4p4 |P΁|?{{T~ADщ4y%=_sѿo}O??L~G}!?W+i/*??L~4i^|a_/_*??_j_C=ϕ}ɏL~ϐWI,ӴTio~3Oן'?ͺ?:пYsˬ ;ѿ1i?Imi֧ fS8Q޴v~7@!?H6!Ga^6˯G{3C?\~W/矤7|Gֿ%R<)gϕ~7i/?~WI\opRmRof0'cou̓-O5?qR<:YGΫY6mֽ{?Ho.eo hfo2Qӌô7|=)mgq{[ۙ_Yn~~$۬[_8k(ͺρΓYWo!i֧Oߥ|i[?Y~O#W Y7T33Y?hf،ۯa)~f0cpOoӿ:xC|')N7cCwmG翑mԿ ~n3pO3O_CIS#ٟ!?s3?J6~ׯfW_aS?ҟ~ϔ_ϒO?[~Kf>7so __S'?;)>ݟ?;mh/~П+\QH:bB<%oKAgB?+opJ~UwBgw~~FQsgfwO?J>Ɨ{?՟[s?ǝMV7|;tso?@nv]7[_ݼJyڙO}Cn{My͡gݍQݿ펧7^}c轛k}n¯K|'X~xny3M>gM>7{v^}ki;|qޓw}n;Cy m3{ÿ{̟퇞۾74]MS~t~o`oj[{ӣﹹM<<Lin˧=>>vCMգyngo:i9p:݆{gw|]zۿMt[ujo~>Kݟy-V>wctu3?ұK_^^ϻC?[ |o֧;n{owmoԾKNvjo7M{o;Ϗ:?[G7_b(|?w?w~4yo=Sio} o;߿W_~O_Cۥo+]?__OW4߸a4_[i_*?5A_/y_/LOLۛџ&?oHL߬#Կ:UM~i[I?}YҿM>gIw"oN??Z~>ֿ?J~Iߟxu?ꏓf\=?Hpm^~{aӬK~$goL`{+T_G~~|G_%ҟ.7~I /%?)&?7{soooO?;8i[!_̼|Ksmmo֧̺̕;峗۬u moڙTf_R:fY@?7n֭KmoYWLndU8K{ّNYGT>^~ ~H:2ri6r_q2i։-[omgCFf\kmzSWmM?7yύ^4;_dvֿwY6?q_RoÿvJfRIdG>ҟ:^I?-WߥwiR?H?O;ow#fi?߿It\͔F?Y~R6p]0q|CוW)k~>72|k~_qyK?7꿷a(F?Mg7䧡KaS?t5xx/1ӿ _v64xWdS3t4^?u?5w:ݟ!??]~V v lT5?@?ϔ翓}v\{Ogϖ~ϑ7oi?H?ʹOUg7i;3?Oϟ֟/__!?/rEK9WM?ҿ/*(\e?i-?w_ԟoTωf7}п/:w?H xO7c~g n^7 ~i?ai3O0.[Os_yOð{ߟOX>ҟ';ϗF~A&Z~C~~}h>?vW?I~W&O4XO4/wh^o cOѿ=}"RO4Mk5OoyҿNiv~i^|br[=8j;,mo[f}Y/W7|[Y2vY0iqGh{۬_M'vXSOi?"??\~OS43?HC v/?@?~H5~ߴ@ǬfY{ӿzuG3zh;hցf]7Sf~G翆?i?4몿YG2'R|ߦ_RxY7/Y5럿m01z!55|򏕟O(I$}߬M:ȵo):蝑׬Kn +Q7f#ʼg7ݿ2FC?u_+}ߴ7zT7οH:QF'd589yIߤa액oTK=oY?8c'?(]cW?@U _w ݟ~YiII"?3t4o֫ } >'?zO#NfӟV_3^g~Ogt[fwӟFO￁Tk(~'?1mgv\ϟ *<;翤JC/4L<34vv|?>m_? ,G)oivjwnK??ϑLuyi\ύ|i7}~tyzrPO~~[~8;{vg߳S!w[ 7m g?y;osk=?{|~|(oV>ڙqvCt4ȿM|ӛqw.fм54_?{ЮKߪy=o?͸CߣKs[M]? >C|ߥWqxG|MM>:LS{|K8?M>[:G<?#?W$z^75M~? J~Yiͺ׿Ÿ?ῧ?ys?OA|oiW"iso?O3ϓ;5y7T)JП$?,4뎿՟Ӭa~n[O~O8[7-+i֛!۬G<H37f׬_'?YONmϿ쏖Wasފ?ϿKNG_J~E_ ׬oU~G7?H~F~ 7bNd%?L~7S*CWCRJSoOmoƻ7߿_o)ofԬiև!ӗf}Ϭۘ{k7Щ~N85IW{~nڛ-o+,oҿ)mfٌПSot5Yo]:̌soE7m5:[4`ޛ+C 2z}4fn\J3._ύ1|W݁aK.7-̛T>3zFiJoύO/i~) ݌=/)myQSR ߫?䟆I5ӿߙqS w_6z[?}t~~ Oҟ7=?鏓N)](o<)/"{*?@tz?!o?|U>3rR(}\XϿJ6CY?7gko~ߤ~9o/G:? ]\;ccK:\|O#Fy wO3|7SzK篡?^}t{߿wO[?]/ύ߿O{~ϿJ?oNgHiҿ(>ϿL? LnJ[ k?篣?Mw߿Wӟ_$?H_"?/Rx_sL?K_&?!՟_(?km_iWW +WϏ_?@?X~ڮJ~A52s*?7??ԟ5?g ?G[9֟ҟu~VviI7П|igʟt1?{4um>sߪy|?7^!87ۥC=?w<7c|hC{yxo}&u>3HCxoC>v|ﶻi>tsty~v;7o~<7M=? =-~mxot=gCߤ_n>o{|ύ>]8ko5nӾoK[uw|uu>:' i?~7q_~? 4pt>?sӮ _56{Cy?iSLj~\B~%?W'w ?_ּ_B~4z'?k'?oi35?\io?y?LI|3{*In˴?O?O*OӟTw\翝Ѽ'?O\Ak7ӿ2IӬv Ǭ3Y}_C? s^wi>п֯$ӟf]Ƽo~YWbŶY8fK{*SM_?fϬS]wNۙR~Igm_; ״K_d(^~nO޼k\@g>v?,lOi?J~pSwg ۬n)?u`3f=_R1?$gֻ~o?L= k)fiw}nmE3YLTq?_91t?^Ws3.mȧH6pz꟥M#OSۛ~;??ͼO70tͺ;dx0?߿'?!Ϸ߁])<3;ߤ߿~_~߿g5.3ߤ-=v'? _oF﷔=緍|i?/ߓzxLoCߤp*q;rO)?H?7 }OY?dƯZ':ҿߤp|sg)F^"O[\A:Og?+Oÿc ?Qx;yttLFN>2m}W}[:_4vKM;ӏY7ӟOH ^H~~>?@6~Kmo_C\0|&mc~t~ ?M~{mV?џ+L\[io5}[?x]mӿ'7o@?749՟~W۟#?=/<_(?'m\LR?GO󷑋5Myv{;i Ju|oj?W_^t?7<>]w}n>=4N8 |Kggow5 }.q+|u>7Ri]:wCOO4?՟&c~C~A?s|o@?|ߛ~39/=0{O4;s O|ϒ['}?MۗR8~ir}Kmmvo4O{vߦ]O(ͷw?6i ?o@6&O|`{7f?Z~?JvIA[ޮK鏒&ԿM;?#57.?z?L~nnC篡xu$?,<玾/ov&??P~o nYp_ҿMϿI[Kҟoҿ?'ܬ:* [fu^#3_f;U~Y7=_߿K۴  Ϸ?Hߕ~n}߿~7ȼμoYW߬[io|2-czPf7$Rfyu~PmփS5zR^/8YO0i֋;@8WxoysӏY7zGIڿw {O7!}7ȃH~YR3p?N~E)]^_C?5}߮[f~ORx)H֟V!c:` ͺ+#W'fܿѿFo^~0noO#0iqK?77翆5׿s3?F%)};?H?o;_ҿ+m{+RvZoO9t:rW)\;?e~?McIsOF;Gi;F;4r߳RK{Gi?C~uJ?7s5?:|")_v~˵}kvgC?g?M_?G~qoSxџ-/?@~>OIΟ/?u'"&wxF?1[ 7Ko#HswϿꯐ WOm~+ߖJk?BϿ(v߿^SC/mLS?|?w9֟yӟ :w:Oߪivu}~N;^Myn|m߻]COnCy^g(gnNo|(؝!:toN~~6n 󽥳{]<i~e<ܖ39s[~=sn=uϻn{ƿ-[ϛ>M2~o{#=:Vui^g9>C3tt>C~ߣy^?zF>1?;`;Ӯ;.ރiw|};7o{?9igt~vu!z~vC`!w>z|ޥgnδSo~Ӵ7LCxUy:w@}:;u>7t3?'ߴiڧ'w|[QoO3~Ӿ7i?M9L;HןɃ<ҟ|o~>֟X~AOo3\=B?J~CK{?5ksߩ~O"N~~ ?ͺY8sy L^ϕܟ%?$k'4X?_eIެ@_iӬGu?L~v_CE7P+???A7/ >;~oR~?\KMIs#G+OC_*N?IIߤt\z翷2@t!Gf]jGoKOfҬkAYTߘu|?,Y{8%{+;пܟEm3SF?MGu#Uf(_*ܿJ?IKof 8u:du:?J?7w~Ç/ L{kˌSK= y ҿwaiS&?ߙo3ȝ?N~4G7ߤCnK?7x;mY>P~Oç3j o}7ӿx|=we_CG:]8R?GaϷM;3o~?#m*^~>/):IkȖmo]=e7o92|MF;`7i?H m{߿4ro)K?7 }[??dN㴝/~F?:|܌Yя[o?SRS?~it7sW~ ?_}? gJ?O [?S~ԟ~_ix}v\g?K~^?L?L?7¿p)_ ?%|Vg=moѿKmGeKO~>+ߧ>KZSJ~Q:K?j⼴[&T~=C?\>տOSy?ϑ|?:vwӟis7ӟymڙySm~VwdCyqGʷCOŷt>sSޭ=<75ؾy!:=3༙i7HO^i[O ܈{yn;M1ytWy~Oѣ>C Wmg;߄ߍ{os|w0o}nO੟+i%_CKcCߖi<g{#Rzdi i?>J~} ӿJ{WV_C6ݟe~n5`{C'cIˣ?U~2g?O3~iӟ{g*)70~z߿?K}|ϔ~NG<۴??[~K \i̟'??_~+<_C?s?p~7oҿ-#} ϿL/%//RNg a~*W 9V~C?MR}g?/\~Gfӿם?_C>ҟ}9֟GwӟS/ԟ3ߛYJwҟCy'{(gϻ? ϡ|o~|oJxy!qwy=?7uM5Oy~{=G޿} =ݖ{||A~7?o7=+}7|m}Mx4?M?߷m>7Γ>M?= CzynO湉_o׷寡W |NvӮӿo8z?5OOؿo˿7}~A>98>1uŧۏ{h翕}#>}i7м !pt͋y=|?mgK?o?0ϻ/n&owҟUx;uv4y~4ߛ&u7yJ|CΨџ޾?5/=ѿ?4 wڟwL~/?{O}~п_z'?_bGQ$?W?ӼMq?o72yH?J?yOk~}oi&/O9|Lt<~ؼL~wwJ7P|?V~a!4?/ӬUY8ͺ?d֟T?7UfŬG8WiϹ~7i~R~aҿ'_=?I-oҿt<~Aџok?~K3|__"?('7{h{S3/_3S?I;_*??L)^O)Ꮥ3|xziϗގʍY4J|W{?N~u?K6K)'/U8Kmg7dI7p'#Yf=~O߿߿4w4iOf@{:S`:]g oύ^0&?,#=OY8iz\)/FqСWfx !8\3zBtG%ǖ/4t47S<~3؉K70v4-{}mg'/#gG知|?K6ҿ,37ϷLF=? '?)_C6-##?sg= .fYc72V ;5|nS#mƟeW7vg\?SGX_*=cѧw|oGHM_п#>SFN5O՟%᫿J6kn_oF^7]oύ_27P~OCJy~'i/ҿ?C~v.u0ayyLIosco7Wkoџ)?? ]ҟ/4mo)ϓϗ_ ??K~?H~ϓ]4x(?N\i7D~I?AO?/_%?/ko_)?N~9?ϿNGq_?J~A~>ӟ/ϟҟ??Z~O~ksG՟vҟi_?+_Cnw|o>:? ܡO73ݼi޷=}O~;}޿go<q 7?{t5s~>Cݖ7}7iύ~/o}nK!sN7ͫy.}]4F|?ݖnz-yҟ{~Oq7 n)?n{[ y.>7ɉṱsC|y[3{>)?`ss}ߦߛ݄Ow7g=>7Mcqv~vgMvۛV{MvgCtO>1DA3x]v7|?yG~>ķCxtOv{7ݶg/}qt:to?ovuc5~smyҟ;8MG&/aiiX|ȁ~N{~@>Oß?ӿz)?ϯWy~_^GS>5OvWs~'ϙ?M~]Gi?2N>ۚ׿}+(ӽTx՟&?'}/Ӽ?y?NS{~>3ypO~.ӿ8M>~7m:h?O?7ySe#*}+?zۯ'O]/z.?;̓fY\)?f]'?pͺԷuSx ފh{7^?o[ \?ߊYJ?K|~&?'o3m?_ֿS']M?I(^t|a?ҟO3ܬoA:Ŏ7b/̼*G5TۙuHިpOzS)-mi?sTߟ+=)-OO#fɌ׬U|y1JWάGK3?I~[Ǜ*##?Kά G7vmﭟS'a4tԟƎu'?}~4|GhƫxEߥ?5TY R}%M@MF?џ8; >Om~6O7??ҟw?߿7ӟ:<۴:wᘟA{Pҟ4ߛyR}O<`SCg߃mF<u?^CwwAn[=5Ծ a~ޖ/x3HC܄}~}#uݖ^75-}sӸDoG}F>z|;M!ȉynwD>7yMq/g&=1ojg72H7S=>ק˯Cle~cC4Cum# A:ۧc:wz;?qDWҟ~vg1ϡwCw٥?ߪ1w5N737? MQs|n4v|~_s?I{ߟSBRj^<d5?߿|?4ӿ?{п7{'??X~n!S۟$??K~u4i4yLߧ?O~Os矤yOǚί俤yHNV'iOٟ[?&ߝ{kqӬQꏕf|Y1#4}Los-mgߩ+ܬsYGRo{R84%?iu[;}@K?H0?R7)ԟ=miHo#?K)?ҟ/?);I?~ ?"|3W/vF>(ia1t4~on=Y2637PSo2|?7Y'gE~̺o`5G?@ѿH?J2rt_)'c]y4|_y㴝gf\F޴#O-i XW}ͺ?<y_?u4Q0z_iS߿4=y2p ?߿~Rֿ!gFi쇡ةRy S??w89ҿ?KAOMCi?M=ߥmamN~OW_CW5cI~g?Iϕӟ)?=m)#moI }ϖϿOO|JKߦ?W翦I[ 磿H~a߯_?)_"?[s?_(//*F~zy7~>=7\%EX |Ͽh"?ԟ~|?hH~?/ԟGwҟ:~_Ussߩ ǼgVMJ3~nt³ԧ;{0M9.n}{ynyz·'{nnw[oG~ޗ{nwCrlwb}|?V~n=DgP] & =7}^[S}/CӅ7o7wϻo6}&y>i;$ߪy۝> yz?{=:t~o ;!x]<7w?xp~ߦ|^{?ۮ;N|;u>7~;}}8N;JnӼg7v&7?S}|nڙ~ߦ]iݟ[u~{sO#=OߟϗE+|W=L/\?i-?V~o4/?Ҽ_Ͽ՟i~мo?%|yN?_K }O2kJ?SdK?џ΋Y6FߚuȇG@?5w4d賥Z4tߤ?,؇?Jq熯#3^o /~_qFsS7#Ou?vu? ǿ:~ ȝ7 "3ڿYW7t5')v޿?Sӿ[yHOyS|~?L~|ȫ_<͔nmC'7ҿo.m4?_GxS:[w)~7ύ/{ߛu_C=Fg6|GFT 4՟<ԟ/ԟ{sW~?SInɴПOP~|n? ! }7c(Oſ}n=zvO.]u mw3nu{oo o{v}>wv77 <7哛n蹑{ʏ3ϭz~O1&:Ms {3]7mjsݚ=-3om9$M{?o!{yogs?unێ;}M=.?vi?n81vU.>nUs,N[w~vy| ѿ~o yu? KIӿOOVg}KWU?M>[vSo?0[si??3 -uD~A{u~&?ϟϿ_?d4]s.?_T~Ƿ4i^?W~4ϓ~{j>7пI?_)KVN)|y?'Ws _ҿ?M~?I~mϚ|ɃUY/MuJ]'ҿ*ҼYX?qӬH|?_zJo.2YgL;OiT?(waԿzM^?7_aAʧ?SR8&??X~[?ҟ3߿X~o~ =o~F~nk{*I=U.w8F+G?J?R|;a3:o? mou̺o3o~~]=moiK?ÿNoҿo?i~n[umgv+[[s~g#ӏ\?7r:!~nֹ?L~vt\Ioq \o0^30f02t0_igGF ?uD'oR{?IJ.hĬf OGY5s3+#_ CKS>0lhU7ѫߥpL^'?;_R 3>M;oMkן8ݎog S:菓4|߆~F/ ?}5;'՟FNwn>waN?O?J?8o+~fܿggҟ;^/QoJMn>ʴio^;}Lss(Ǽo |wC{tu^S.Cpz}nq =|㸆yn;)?z}!zs=x9ķC~H·s~s?H3g3tێcݧ g߿{v~o=3xǼ7)?nv~?Wo^}~ﻟwc&OAO~]OCo[o?3ħ].?eHnxL.}]|7Ӽo6qPJn?ߩV{{HnӼovJiӟ&`3ןH~A'CA_'a?H&&{~6bIdkTϗL4M;G4iӿ?O~4/ҟ+?M~ӿKM o{Yҟo-m7swj4Hmoiԟ4/i&?{&ߧ]&t4y?JO8iVxY0Uf}cyK6][K? ?_)}@~vo]?IIwWOGsKf?0O?P~_o;v/R|%߮߿/Fv_Z~u?I?~F~ogGGȫ'u{i(2~ ]?+ެG:&? oy?IAf{_-m__I^߿5f3)]'~Rv/YO4+ןe>׿)>F.,|mC?f 8ov?|̺؟աoϿK?T4t1i-}\G+sHԁk?Yӿ7'?:ffS:K409|~v|F _do,C_moG(mGOiȣmE@??2t8|qh{#fe?R9ߤqh{7ͼ}5Ff=5r'{{us0:VO}Cnm7s]-{G^̣v]8nG߶^|>|yڽ/_}]zn ܶ]>{gem`H>o ?}? =s[:t񼩿Ӎ=D?394ghێkӅ忡-]̣ߛg޷Vϡ3 Wohw[G^mKn?]|駟Eg?}~h1?=:w|w?_o?1:}/~Ʃi[v{޴;7gwߛ][Si:VM{󹉗Pns??=4xsGGv1Sik_?|d}sS4[VO_IuП&??W~y7|XMџ!۽T89{}?[,I7Jx&&igo'ϗ;7g\5~;N~^ߩ~F~UtIsﭟAJ\R:S_f/[Y?siw??L~9i_? 0R~V˴ύA`J[7S!_F Ǭކ? >K?[\_x~[}OR8FGIsG7;jf2ꏓ0t,_)\lo`9}̃ׯ?J#7\N>0o?,_COS[{R6?N~*_Q~_CC8Y/S{Ο*? _up?灾o Y?=To=7=H 4i)=̺ԿmgoOc'5mg6t:p?M~E5t?S{;&ϖ[7Smg>;m/'??_~h?= 灾7~oMq"W)O?s__.?B~Y~m{W/_%?5Ok矡Z2~ϝ_Bߛϙ5~J~ԟ_?c;|{OOXB߮o?O:7i._CO[u>3||>4O^?OGۙ&|!wh~>Cz |= S~t<qy[F|9OF}~}n=7<7-\s:3s{u㹉Cj~ۮ}sM0$C{h3ȧ=;mg7cwo|~OqSݟ]=}~3|-g>7ۛOn奔}_t?ןCwwsqu]|䪋M-鎯ۮ;.}Ug}O3ߩygJN.~14ߦ}jywmz~n~vyOן潃N}?=Lּ\>kmo~R~?([g-?_j>gk?J~O4Yi~|oNw?W~M3?G~~~7m[y_VN_C]&eyI/?H󘿕~n<ӟ&3y?U?7yXiJI~L??ͺQ /y{'fnӿ=?Pi?\~Txs.?OO)>ii;;3 ?L~o7!?,wʗϿH?Kv/)?g;kOA SW/wL~ռp o#oehHQ˟m5~~,?2a~O_Cf~ ݕ.ֿ\?Ga^oMo?;CCڏY0{+3gi@A ӟ+_vʷo2r؁,ȓ?C/sp%󹁫ߛmύ~4Nw)~)"?e?L~$çFFvS1]JH~_j{/iJoѓ}/%;+?ҿ{㌝1vR|{c '?3.iYf~s#'?%CG_CF.{cG?,?qtءI5zR|udĊ ȭ{+^]2q$3>#/ ?em7 ]|~OR8U3_~n¦?ݔ>~oi)O[SF6k)շ3?/3֞[~?N~4vK>ПƎ>F+O3m?p;ϿJw27SooL?~>W<;ܬ~y?IR4iMK|? ]k;#f_?8C1OF0ӟ _~?6ҿ)}7o9ӟ-??]~Y<92|j;;i_ ?*}'?$G?ҿOm(ܟ/}/_.?Jf|?WߠVL?oJe试5Ovٟ#?Mܶe/֟*˕?(g{翏s}?ӟ?wX~?Gҟ:VПAsܴKwu?7y0i9Ctmp>S~M|>4ODԆM Aχw7|yn{vtnOw^|Cޖ7njwSgwܷm3 ~C`ރ)?38ߗφv&q7t?׿I7z<>=;_C KozrM|`w?߆fgo|v^om?yoj;uڙg_t״}k>}|n|[ߩyw]~1 iw3?M|wӟUig~|?g \4Sy?/Z~C3D~ -ߴoKM?W~ӼTg[Z|?O~w4L4)Lw&?_GUߥߛ~+ͣϑ~_ooO(?I#i?ͺodןߩ<ߌ蕹kyO?7_5iC}kt8f߿.~ȅSMcp" ;?~o,giF̼o)O2|'O_~w)=ןF-?@Jn{f}OOFN?M~s?+_<Wa_?M?7pA ?R733緵ߤuŸYп-R8I ҿ ?G~vNe֟7͓߷~sk~ϻMsu+gύ<7}oi<7>s[C!ny[~}߳>7w=o=>}Ӽo?t5!=q߿濇<7ߥOn}NA>gmſw\ѿsng}}K_>~7[uyC[uyL]:ބҿ;io>ߣ>Ca=4.w|ߥ??M{3w?ҟ}ۼg>74|o>?M>4ϨyLށ|(?ԟgϗ'ҟO~ET|t%?O|q~?U~/п"GҼO͏cMo&_O֟)?K?I???xf&ϧy=i~ӿ=N пwI+?Mv??N~O~Lۙuߥok~Wu~?zm p~?Q~u׿KhKHuQ(_ߤtoҿÿ?8y:~3??mgR<(ҿM;cǍ ڏsm/߆FA:H?k8!??}M]fd裟OR;Lfe_'qI_eWo_+i_dIۛ?WhS[ #Fu'?)LS?sܬcR9 cϭq]G?AyOFwt翛_CߟfƟ&?:)~f_Rx34to3]Uw?Gӟ+??_~>V8ӟ'?oƣ/(}Kmuo7/_"?TjL~3翥Or;翟(J_)?=ow_8~_?ϿЕ5/ҟ[{NŸJ~!?=牶;ҟS?GsOB-Ϗ~N?{篡?+i?3mt~1_i[guv4xޘ/m>oO߁o}hw|.oki7Ώ>71[yӸ{O}O]~;[.ѿM{۟>~Kuҷم[ߩݥ;u>7~&.ҟ&6O?{כwmyo_>П|?u>iT\>ӟs4{vӟ?)??@ɯ1хJ~h>7?D~O4y_$??K~3~Oϓ.ӿ9N4/=~,Oҿ./ҿ ͷw5yOC4_5M^?̺fs돕oJ/nn[Ӭ}o[TJGڏSY4 fJGH)_CM~nKus}Ϭ-_~ߩ._CRmE󟑟[?Hmift-?O# ߥg~&i޿?w?I5JnsR|?L~ֿOo3̿4t4f??@/y@Okq;?v'k֟'#WYg&?o}߬4ѿK9|+{GǙ?IOk&ߥYtˬW4?IKowF~o?:Y1 =_J\7UW oKg_޿?m{=T|V.3nmR|8g?k"Cc??Nϙڗ?IތcG?7)W:ҟi_ _~ڿY2t3ao\(`̯3/+1PMsc_ ?(^s?i{c?e쮶ތI?[?7Ѵxk;9|gc_\u?ǬOMY5t _-m/iN?i{3>wן1rbƥ5|f?x 1t׿a)O3.n@i@xVO׿}{Y*F^̼rcSvR>ZKqn翤S_?1u_q:W[O#՟&?=)?M? }OmΟ)?~iMô翙~~i~)_w֟Ps_Nwӟ-u~v1woiڛҿt_c}:wۛc>{}zx.z7o`v=>>gs~Cm3s}o[{v֧;oC3gP7epߴӟ7Σi?{t>gt4y}~Oqk>{j74ޚnw=zzYv88&:|mt?=7>ϐy?NvN.goKߡG/Cۅk?1n7C;3 ί>[vô7ύyL8uVϻKP.>]<~I?~o{h]w7;՟qٿ[-iџi޿?M4yoχgT?џ//?|~J@?3y{JJ|˯??X~鏕Gi?/|ogLF?wڮԟO}T43R{kTwil|Y[?yK~?7WS .7@&=ҿ'Qӿ-}_J=&/MWYH{.?Sҟ~_i&? /Rx+qOm>Pi9'wJ_C۽Կ:O۬s;mo֟RR̺?3/~n֯~ϟ{@~v?Uε<п?H~X~o;/ѿ󝟑=R~KKOI!m')97[k]t4TOo3~2|0뒩o嫿gi;ߤ|dfY_eڛ0mG-'?WY equwﭟߥ?L~7@ o{x~;Կ ̺??*/ҿ> ~YO=sC]ן;ڿї'??LVzoO,{*Twxۆ/ﹶ3I[@?~̺їjv8v@;2Sm_)?E@?5N ~ |>ƞwWY?@^)= O؋H鱥K ؍o+_y5od삑?L6vI51|nURKO~mmom֍ocAߤr')fܿ팞2vP7p*-Ϭ]Fu?i̷Wmo􄑃Nqt7x翝ș̫7~Y7kgi?N~ߥ;(J?7zsy`XwSy7?Mןȱ~uN]NOu\^~n_ҿ3_)'߬KoeR8FOi?f}8~nUR>xp^4N3gϿM?M??{ߧ?.}/cӟ3#SooL>~Z3+I״/׿_ymПo̸_ϑ"NZ|ϗ?87K3)?B6q /ҟe?ПkϿxt^# ?g+kL~CI}~S ;K7CH7Z>oGo<ϻw[;ߛcC1$wqZxMf.+iwK{?ͺoԟ0}O?@?T*?!7п 3>m?f}ϬS<-?ҟ~N6Owx(y߬[N??;0Cߚ~ ?ҿ"HI?A O/HN~RWGN4R#o'8L?__H1 =)R ?4`7O?ӟWGߤI~ K1?L~y3r_i{#f/vTͺߥp*7Y[[}[My.{aӌ2tԿ_j@̸8Wǟeo|)O)_C097-m=?Om)>FMۙ쏓aIzя=J]JJe]j~ }!.IֿQ4qy-R|0}ORLC,*M Όk1t0t Ϭy1rheTk.g~0ǿ~oT8&?4 ?lȗcG?L7?N~=imo3rmFh;c___Cu菓KRSMo#?oAիJȴWFOӿdI/2|ϕ~?i;7)\7h*8i?Hy5I4忥w}g*~??N~V9RJ?I~>2YH?R8Fo|w 7ӿ?h돓3t?C~2gO/o?п(7ӟFo4ݿH?7ү@:xwo?O[??w ~ߧ? ޿_ ?Sk{O?S5b?Ms3B/Rs{~;wh/?_+?B+o=qN_ZO7?4'+8ӟ3Ptӟwӟ;[s?w?[7[u~f?{Ao?Nn^ϴ3 >n]8=;Ow7c8MwswC O4^ {.a&܄s[7mn]~ oҟѿtgA~3?kisχ S?7Mcmw}nsk|~yn7=oyzҭnP_ }o; 樂o;3?ͣ}y>.C0G?cCW7ӟţ_6ύg><7FЧۮ77q :ny,c>ןC~|pin.~vq?O}5pj]oӮ^nuڛ8 wҟUo>3tnߩ}?sKџOPt>7OG0?ԿS\[C{?o9&/k(?(͟hWi>S>0mOR6~n?R8ge~+}ʌW1듿&?*mF~'O蝿돓F/흶tӿS3nmGQi])?<۟-?3~|ٗߧe?-1y+C6~=?M~>sLq-m~?_~Q/_smϓLS)wѿ+9 __oM F~ᯒo)]goט?h*?~?J~ }L=T>=֟sKӟҟ#uOo?UϏ?3t~ҟ&;߿[sӮˣ3y_ܔdz?)hJ</ )y2Mu}~Okvs>)?nM?o {{?!zy=o|=χmA`-.]鹩.=]9ѿwMzw^o:w~3i[}.}y~иov]vܖs5}! m;4]oy}zџC翕Յo_÷Cnww`I>L!g/{轡ig쎫ow23ik>;O+i'i.]翕[n;;sGM|j~ϰi[u~8w|nߩ3՟[5q?M^s<П|"?oc?Z→?yv?`?yϿ4^g_kI<;_KM?~&g4?ϕ~?M{?U~ ?E~y F??I~~[Cw)S4G~i;h{+~N?7a^Y޼g&nU~O7?B~|m:.?"~?;p?L~Ysc݁~~N%?M^Կ:ߤ8?N~SͺO.5;M[YT^?D~ToϿ/%Ӭu_g?Kߤ_,?S'o]ȴ׿&m{|K @I?$/ҟ~oJo;/, y4\f #7?L?W~L6ik$-Nvʷ[Y7fƌȉ?L~M陋 7S8;O#ҟ6(\3^nia'LI/Rm~wuެ?N~byztߴf^RmoY/U/CTj?~O}?vJۙ{ڙJ7f5Of=3矦vw~nف(K4듦ELݎ~?翆m)7mgO-=u liOgןϿKSFOFn]0vإM])]cƣ:著sc翭p $п)?@?7ҟERWFW/oc =>U:hM7~?J_7~˟s8_qv~n~ȋ7dŸdi@?8^HKO\+(\=c~n7ߥLQ T,R_=[/qC ? ӿ<3>f_G=? =)M4xrm;)JJT4io+?M?W~K9翦ϓ~mΎӝ?M~vg$ϑ7p*o?|oύ=п#mi74qHb%2xߦIJ?/{?g??ҟPNϷ:v{74߿A4|o 7<9o5y~|ut.>`^7GnO)o< who3w>y³7|x~'|~? nj붟o?o t- ʁ>'8n}ys~Pϐ7@;ܖ7=y0?3ޮmq=|P^;Mh߳sMl~v>~{~]->7==:v>~?47&~o~m ~yzz3?^?t iw^gp?o<yߡysM=Oߪw^3tt2owvϻ? V?|7? CN[vۙwL;~+i&6? Qywן{#y?wt|tK;z}WL'?2y 翤?*?zYW4i~~H~V/_y, jv3?L~SuJ??ПM;3?fa7({GK?!m)N?Oݻ?X~uI?%z'?&7?~nNGOjJC~p~37"{eOgv(?_*?&C?7/0o:~7oӿ!۬]:{k-GJgWߴdA͔)&?߿~Wi{#򙑷&?,}6F.Io >_Fξm#o8CϟՑ߆5_MJ-cCH~?.og \g)OG~+ ]Vwi?Jڃ-mo[:\}oNk_i著o)~ӟڣNTOڵ?KVnH_C[zYYt swN69ߛ돓3|vt7rk셱7~w)y1vop?NS|<y6ןo8(oRxA 8 _z0i접W#i_;~N7 }ѯ~ 8*)?R K~?!Ǭw]=/}ç3O3~nFOs$_2?u ޟ?;|:*#[oy1rgҿ'k'|oO3OVqRӍkK/K{_fn,y@ϒΟ-?$m9/ӟ~iK״LfO}_rm{ߟ)?Mտ~ߩHio[4w=9W8_$?ϗ)v{S7i?WOC_/??!пg%_џ_(?L~?B~?w翣J~)5J߿~)@6{/ m?`=kX?ӿ?s?=џw>/ԟ[ҟiڙ7|oiusy4ߔny ѭKyKM۾7n}ͷ>Ct߄GyԧKA|}!zi7HC~>Կy>y7ҿ<=m܄ύunK}.w3ϐ>-.n?=y|}eA=˷g߃o7|~~v>;3nH^nn[F~vy_>Ogy~+~3m{h][7H=; |O ?{M?kU.=Ow߮^4tkڙ'y{:?Mk4p~Oٍw4ߏ^Og77??3NŸz)?{'O?5-_O4G$?h~+?2F_"9ןKKF'<\yO<ӿ{O?U~sy;;П?ҿSm[ϴ烈JMϿ菓~o%??^~~Yo1y[6f}R8&?k~Oi;fŴ7&R3뤿m |5R?iJWe禟ܬ>=uo= i֫@qub¥~?H{'~R;xOi?I R~ߩh;r-?W 7Z~ݯz7&Oҟ\?#?_*)~7Uz:[ӟ ̼*?~?-韥EJ?7f}R;/s*}ό2mDyH~ܬkA+ka}1f]ovJ?7멆ަ?'x;F/*?ӟ?v[F9U|*oiT60i_)ICOm_q7qYΐ?J6yFLG/׿ͺY4у R{'ϗoS8oԾssO?JY?M~KߧpͺSmo쪡_W̿I7|_翧qG6Fz߿4|Oc c?L~Y˟|_ƞ98io0aqmK?7҆uߤ$&?x|];?cocW~;{+?ȩO-OuѣkC/O(}eַ ~#}0zE7f^? o$T897l2pKCGsoSt|7ҿ>1t J?LQ|'6t7|U\7}ftT?7xf~~om:ϿO?6zҿ+_Ǫ߿՟}s?[~?}~L)>?&ӟ&?;տWKf~yﭟ翤ڮύ0pSS~?O~~k-"%o.Ie~yX~oS|>տM<ϟџO3՟; }s'W比~_ksgԟ?>Wyxy%?Z~Cg?[~/L<g@}yOv~nuB:?3uV߿A篡?SiM~m{=o?|lg]p/o~CyYWj?7߳}|!D i>gsnygo:}~ρ=sy_|o|>x9y{t_}ayy?oy{tuuyߖxߗn{&c_ۓmߝ&~~]OC 5ԟΛyy=N[>⭟oGWj7ϻ2߄ڙyGJ]8o}w~]]^.>q&w~Nҟޖ鴻?GvG?}a &?!7￧D~Ei+?w{!Ӭw<;oik^m6 Fߚ<7{5pϿO6?p~#R>a_|M>Ygyi;K{ ؟*?7z??H4{k/M^?ijf}'G_Xi5~3_ҿ+&ۼ)~f/v׌S?t|\)oY72 Oҟ~ҿ:ǿYt|:0^O)wAv[R<_,?͸?X='7пmiJsgWD~'?џo{{H?7x4T_GsG _&ߦ?o:13zȌ3տ?Lm~y/ҿz??o:'ܬIf^~ ۬?Cw=g=s#G0iȼ{evfR<q0iK*?~Ց_ȧxފYO_:t ~hI? tﴽ'u~G;#?sg#~;یR/ODiڋ?mN[韬7Sif=_S;o)^џ+K\C_ujO=T?u| ^TQ:o+}~ sKiտd?N?7T-m?)+凿Kۛ?H?'}Ͽ&?f]P< K[oƎ߿_:N}xc[>gF/;?ߦokS;ȉӿ30o2z# 4e;C-f^L{7v;H<5f =o{*?Hߣ}~'?F?_knjCYoO2k$mg_Ct s]7}nC}~Oa igC|v={;M~CߖOn;~;|?oj[}xy=ß|yn͗gow:\-_4ޛlp^O}&~K!7Ms|~8{?fo;.O WŧGϻ79Կ[ K!x~+9Wo~p%wY<п)o)̺o'+տͺ8 翥p_W[^?+mfѬK:L0*?@ᚿ wAR?L__t%?!_T{3R~q_Rg?fZ~EG~G]-? _}z)?&m?$3ߛOCw}o'ߤWi{3K 0iYi̳Y?R+gaOoE)n1zm7|OYSۛqoaӬ[*1z@S #fi;e訟oߥMJߕOh{G~1gf}eԟsCO#>矤 ̸?菓k߿R}oYl$?]O6L?H3U~i{c-ڿˌvgGeƻR~{3f^ͺt玱ޟϿK7a\9scO ~3ȵGiv7ӿ?L~ ߥޚ}#F~|ύaſx[*_ka!OяS8f߼tFߥ:gp fOR3WeÿF>Om7x?6zAO㧙u?@7mqqFoJ?ȇeY7ҿ6ߧ~0dݿ>6ki8p.*M??S}ѯ껕lU=տߙ ҿ-m[iҟ7ӿ mVxs_H},J{?iN{esߗ4ӟ-?BYE/ҿ?CA/Կ%kQ&>?ϕ_,??R8%?_~gOej?_W_%?,3kgoM꡿R~W\?H?)?G~C?~{o'ןTן ?W~ Ix{o7mO3|a<;?3N3i༐&o ?~*}0 ?BE7ӟfGϿOCҿH~_J?=5_iӟ&_yzoP8,)J4giyE-i}T&m|K~_(|OɋufbK0^C5C=mw+?L~M:;_[x)+meߎ~<J?Iiw:] o_x*ެǘuYh$?3?L%{߿?iot-?JEܴo$|?$ҿS;p%?Hf&O/j{ oj~7iI?@io򨿧~/?#?#̓tן~P>ҟ{y?-#ϴ7y7|[O :84w[8=-ox~߆CxY`~Gʯy ҟ]?]81O>ק>ѿO>CC|}ѝ'oK!:~ncVO}ؿOwCxwo |ޅ;uK;ߪwӟHoI~ϱN{{Sih?ӟ<ߛxT~?_/?F~B~g:SR~uՕas'IX'?*{o:ϒ)5N@of篡xfYRfӬgQ $?S}sC_ߤ?_*?ͺߥ?WX~CY7#ϿI?^*RxTM+}~輪{W}s?E73x+Io 7U~3og-?''"RߔfPU?awoA߯~~w)[J7S8_|V5|{4?H?O}Y3>0yϹ|*F?N~.&?: eƯ? }zd^G?mthsm~ mg-mo֟'u2xK޿?O3/ύ^7zKf=Ti?ƾl3fzCgַ̺on?i{ϿIߧ);|?_ӟ-?KJSiQ8ii+S'a?@YMwj^?7bߤuZïfG?$mgi8μg)^sc|w+_玎7KSc80i쥶3r?)@WiN8g:yPxs}7ύ=i#2aF>o|mG&kzj??MA ȯY7>W(iI۽Q^*Fo?dE\ᦦi\^?C̋`疶_g?N~V:/&0[i?')'q3տ}RF{4_O =xlӣ=: =7|< qki>_#gyn75}:=7Ky_} x.C|u#߳>7V:?oOẓV|k~Vg>C[7n;?=ß}cvK?\tӟCo¯'=v$/7y=ÿ1o>.t^<?O~>׿H~k>OX4?HWڟ%??U~_ߧN|؁x oOO\;cp~n?UGCnqOߤX7󏒟?L~~{翝m~nL~ҿ-cIK0}OS Rv8me RaӬo?R7mgkM^*S?7뢦5U:^xӬAo2?L~zf*7~RRNU~OܬkoY@/?@?_~K&?R83 ?ӵ?HGIwk; OZHN+? _CX?W '/)>;4f\2|:yveCa3__OeS3듆zLȇY' k{×f]7_eOT.{n֟Fo~%?L{H7=uO)Ƚ5s3ΫsC/3I?7̸(7&??!ϟOF_u3>o7Vm?>7PbokKsxN'i4P{X=cwO)^p;;Y봽ۗ:oW:f]24kZ?L+Eҿ&7Y]I?_)^Ǝ/R>vG?L~vڟw}{KCcfQmiWҿ`#omӬv?̼+97*vά]F>Yï'?W70QS3p3x?돓~fo~7cֵoiYDZp_翙~nMK7^:7qnOR/8:oӟ~f~~O#K{K2Γwf=7JG\ooozf?H?J?{oozO%ҟg_6qYT/7S<*}HϒڅO\yS|/ ~_ ?7oS9_3ﭟI_/uy=<< ѥw>χ&zݧן-i^ߛ7=ÿ3'lqvA;Niw}ngGӟ?tv]:~+иzo;.}eNt}o4wi9io>:?xVӴ7v&ƝC:: ߭?aogm8zk{翟&Zџ|J3ӟi~ig_I%;y?O՟%?4/ӿ8}~+/<5y&?M~ޟ$?@?5L폗Gi?v&_i?{|G0?N~UPifͬ3yf,?M~Vf,YGx-?m)^&RJGǟ_=f}Ͽfҿ7f٬OT~?H>P8:~G5_?oӟߤ?$m)?ggp'7:Ie+HMf4p%"&/'4t\kx3@:t>=oC7֟/u>ߦ??LS>yfجdž,_2rj>m7iǩMy1`ύO߿JY3zcO~;# ߬Uҿ7~nC{1zN65޿?Uo؎/'ڋz?K?7̋YKѿ9mg{4kޟ~Na?3o?_mW9>?ҟG gO~{Ͽ~Gߌ=1#?著a\?K6|7{{`Ж-K?7Կ*?c~O?4WFT^>ҟmomQ&?#ܼw~~3R45|?iIYyP<ͺwF_Tofe֕zof8io2t0k/g;Wi?K~H7v4~nqnF_yP=})?ҿM?Jύ烈vFa䟤=mwT<:ҟr՟nyOosҟi;%mga󝡧A+w翕?HTKnOUߛwӿ:?Oϒ&?Wj/?W~u ?ϟ1{e?.7vӟ'?;k4qL@6: gϟGߢ6~%W?MMOiBS~g_+?_i\~mdoK?矤?\~G/_w_ϗwC~?ԟGsG;ns__=NӼkTV?M{7ПVw}P^wҟѿx)z;?=GsKw}ltVo߽<.ү7nt[<{}ww߳i>_n<湉_~~{ʏ~g7|o3Mxޖ)xJHGmgt}&yw/o|=o^Vvq7Gw^zg!zOy3<Ǎyn')?Lv|йw~woʴs],u~|xv=~ޥ}sGw}~+&|o{n!~ҽ;?wnҟ߮w^>]ig>7pߩ7w3?{o?Gĭi-4v?5)?S=23P3z/)>~n;#ǷsCo? ?=t?|A)~m@᭔3~_|f4mqR<_7zov[/ \ߥp#ҟ&?x&'vS ]3^-da0܌F_?:՟f|mwVyҿ*K#{ߛqQ oKYS޾3_ԟտKGM?QxFfFqM2ouJo?M~>֟f\FT?V؟!?#_ӿi?S~ԟ&'wS/\?Scl3߿8o3G?J;3/$T՟'?#wR|qW?;/7 տD~~#L~a_WϿ쯖~?kOc;_r/@~?5.G~|=_O͋w>?ԟ{;s4o??S ?߿4ПY?{y7w{1)[u 7~M|y׶yq;ߝ;O]~sS|8g^o!:g3~nMxD!zIv7x?=zw.=6M|o7MxѽѿoM3M|>Cwy|_Nύ=Gocy}:~$7w3tПߛ&34ێ ~~#vuN;Vy!~MoK^{pgOo ҷowҷO o?V;_Ct2mѱm;ok~8翕7wN ۮ }TVӼ;.]M;HL<;֟~#y?;ןv4l=ѿmy?B~CK{~W}ԿiJ_If}7;u4T"oпhҿP~nKR8?p*ky/|ϟ] ;}?OY~o'i_O&x_iJ|M~GQ|Lv_4??J~Gߥ??B~oI&ҼYO1IӬxfծI?Q uH?7a乶}߬CA|-{+HY7q[¦o)N?7)/ )_f}Կ*mcҟ/ D~hoR_ϿH?=gt)?wݿdڛ ki= Z~_d-~E_i~{j?FK5?iI??p3Oҿ_,? | ׎·\|A?#?;sw)2b>T>͔O\&?${?$u/i;g[Tf~YT*o/swR#ߤs>~a70?xYoU7oCg~3'?ͺ]M)}я/nݟuҟ[sj+_io?A~U??KA?_gKoܬAc/s䧱~;)?Lꏓ/S|t<4]wOwۆK_Ry{ܑWgǬ ~oҿ)m);{*^O;{j7/=cO??g2ԟw?CKmӦm_FO*<_v0x'({G 7*Og۴돓&?S ?_? FM~78!0i$_pW᣿I=}~[ op~c?;}]05ca3f2x(<?>N~kq៧w"97U?IRM|k?ON?7H??K?:׿߿ӟ&?SOr723ߥ!+i?miM~gv~t?4ߧp97{v~~G,OyϿKϗ~﫟sM"i?&VHi_%OKo/L~#J~e$;W,?Io;D߿4Hݗ?ѿ|?wv~Ϗo?翓o<՟Uig3F{ҟwҟ}}7]|Ӄwϻw |o~8ay > 7F~OѥC~qt mj7M|rx7gyCvrpͣ{{ʏA{g_3&C4Mpn~/gMˍr^6oA<7-ݖz<ڧwS~t1~~#=;gi7yqcZ߃|C3 t>7xY8~߅?D.J۴»;? .^Un;4uJvǕv>OIߦ߭L|:||??M?CifӴ׿{Sy? ?{)п?]?-?s[ *7;|y?OC"Oп?K~I|[?4ϑ?W~慞*_IywGY0yOG߿i^ߛ<ϕ{jM?[6"ӏ~_ ?J~yX~翷mf=0#ɏ&?M>@PӬOYoY?0i-,msKf?o)^|ja-{2y?Xa翆%~RimgY7Z+}|Gi~7; ҟo\v~b2K_?_L7kҿ_IIsҟ=;M ?WH+_d\TM?)!mx~nSˬ~0O@7(Ngv4쿁}`3[2rV*_FKog֩:O4lV;SYxQORkh;ז//|9eƩ,?2z/7{{j;>G)wt\'?_{m-|'Owӿ!8#ƾ=R;]0PfӿH?~ͺi?Ws?~Ͽϕj3s(-\?_)~(qQ_菓׬O0j;:/ _fS#g~n_C*U[wk略+&?\AsnLG 7Пȣy_t;"/O3/;#&?t3}O)oc_WffXkF^*K{K}oi{ߤ?'m7Om53^f\/|g'? wqI]W8F~?N~U.ÏƿvMuS I+ؓ?͵߿O֟Ə5󿧙g3U@3~'?+O?yMʹf4=ӿ;ioOCO+OӿM\Wz~(~~7ϟӿ+}o4O䧱_ݚyϿO[j,|_j~oCvoϓ4xMM|/&>~ϿH?H~~?'o?<߿/V8_!?򯒟D~yJIo_B~K_{~o=_/ÿ#H~?;ϴ??ǝϷ:vwҟ[OyOoۙoiׅc1<o Wn{ye}ߔ'ѵGwwk:t.C4?pO}n³y7[]myw|g[sXe=m1$Ϯy3oC|wۿߗz著aFw:>ˡvsy5uw?qug?}nF|SG|>$CCpoo|4y|04!~}y}um~[uNpߪ:vs4N{/ԟSҟ4wuݖ4wҟ:s~o)? kTj=4O?ϯԿoտ'3Q)?J?EӬI_;ͻӼoy}EQ?K~>c?W~v\?Hk4L^y@'4N37ߴ_g: _~n/yϕ)Stѳ?q_ҟF|+[foύ|ko31>ݔ[O-ҿOi\-#o~6vk_Koc^5i_Om)HN?SsniN??NS~{?M?WY"ܬI՞}[j!/?_ϗⱥC@5q?M{ _C?R_,?mg)^~h;%_ ?\~ k?믔_!?'m)]fD~GH~* ?L}k'S|?Cӟ} ;ns?Nߪo7iڛOo? [uڙyߩ|oio a8ϝg3}īCj-_F|>vC{?i;C/wҿt0Ow\Ct{]8]gw>wv w]=5~ߦ}ߴ:ڛ84Iy4oߩ?]iLnO:7AOoc"J~C[~M\ߛ?IO.i~N&5-K|ʎm/e~?O~m?g;ӼΟY&?)ӼY_j{~(cQ O_4}g|+LM7_GϟQ8N6lg~n4j֍?N~S zf M){aӬv7oӿ ~G?7)fάAYOpi򺿆ww? ?7`^R*/v&ҟ~R~p퍟Rx3 io?ڏѯ~7O7vƎO_C?ߚyZ=MFMNCߤ?,}'?0t}?"߯twogJ?7t5ZiT8F^1̳'Ff߬S?w(w~70R|ѷT}omw[}t=>xnb[7ty &:)?{zcim?.?i:ߛK|~Oѝ!zӿ'٥m>;u6xoܼgw;.N?gg|?mG4:? qo}Xn{??i{ߧ i<п_H&x/*=]4ǚ1yN=?K~ϟ<a]jwRTGi}!cOoF4NM3%4yӿMO+5b։̺wo'Onef=7W8!?Mc_p ~ :ÎRG+kALo?J~C C~~o`+A4v4+Ǭu-mg37#R0yoW Rx~{qo'ӌ{G~ӟτ3Ÿӵ4;{jp%߬f?#?M?Z~ eiAvY4_iU?2x(?@7Gm!|^*vn;P<߿)Y3{9=_ӟ~e7y0kӿ.}P|#2F޴-ҟG~nqFOFOп_~ߥA@1zhM?oGS ~O02h?5mokoi}[wzL;{mof73̇wSqڵN v4~_7P3:+}-?f/ҿG4wQM?'mS{i0')~;?R~ǯ<4dWM{-qO_/hcH긌=|9[?5K7p \~6>~Gtܿm|goGoIcW%e+J2~;#:?:^G*ʉ TN"3/RG翝gyן~nACa?e?N~33tVaѿod㏓i?I{Y/_V|myt~n0zOP}1ߛ3|%oCnѳ?@??zџFE ORJg̣~nßx8R~xm5۪翝~i~R:=3 UoC+O_I}_?8~ӿ,i߿7W*^-?1khMo?9Կ _nx_ϗ~~oҿ#/vHnSy/gxaqvD~ɿL~7㯔7ӟc?@푉҅~n~{П_siwCXן;^ϑ|?7QLN翝Li ;ߠwߪy7wCvuO}L7g(܅c}}L<><~ggo},cFxnM|{~O=.oį߿g=3}5~ V}goK>=9z~ǃm>4|~嗛|pӸz߷M|r[A|~XӧHvn~^]/;ҫ󳫗3&jg~ބOikO.||[!M.==Ms] ^]vn;owCp:4L{w3w-i槉~'iI;ߛ1M?&nƵG}yߴ{?ϴݱ}?|m{ҟMC}L~Sm_Oҟ(0y쏕&`:5>Y)f˴oϿI~n ?M~>׼O7/iӟ3+1!\~ Wi篣??I~o ҟ;J[o)f 7cpCҟ&??W~NWKo޴?%ԟw2+?IO|;l{&"ϿNZi%_&?'R4Fl?R~f_#ӿ/?/?ϟԿ~~@~{OBQNn{_CN#ߪio~vf'}m~n6y@>mt74O/mvݟ]Cy?^7?۾?ߝw]:!]n£;?gp^oz~G?ێ>gs[k˯kl3D!It?ɫ>]yOo˯g[z|Vo >gg_ͯg34.]{z3|{Ӿم3{ʏ!ץǭMw~1.-~Ok!~oӥv34nCsҟOCp:i. .~+ۼgӅcڙYi|ޅu~~GsK<~4|-iCyO8|?5.4R~Gj\ CCs/f=ŬW&i?K~_(?9g}\w-sIw4_mmOM~ vݟ?I~FoK4oRu?Z~u?돓4?iӟ/G&{k~n'?kOopm3Xi&/&?+*?S{K`{@1~O>:7{g!-kxV`oio%?b8~ommO(\#}3Ӭ?fsGv3.oRx;\Oܬ?#?VWYJ~ХݯRR=N |Ra;?Tj;_ ?Om?sп$37 | oF\ O2k?f^-CǬ*ϿKq}? ~o~ѿ)IS=(fe:LoKL{+ޟ&?=.OOY;v׬Y~知i|?$mg3pOfTf ^|t =oï~4TW?+P45܄MzM O~緕 iиzp;O!>oǯ?j.~h7үi=4!:uUMo?z&<߿4xNio?u~ {ns4xM՟o/W2?J4N&^Ki7?L~G_{?L-+e,[~m͇̟ҟ&?8kVcOSxi^_ҟ)~O{_1y?O_xMiMP:-{Mo(ۙL^S?7 /?32yMmoJOEɷh?)|5yOgpo`kԿ$O'a7Y=K?H\>z7_*&??H~Aw߿~4"Is{(?(=u|?fO$~c翤Kk{~o>g f&vݽ;}OI(|пovJ~CkU?/A gy_?of/ >4K;5x_j?!mG):tt'{|{aR:okԿ~ԟN5HM;&?Omo[7|vc?J?7t1~7Tf:VxJQߤoiУ￧aQ#R+5V+?祶3븿&?$()IA_YG{/TEL~7_F>HH})JoS<*onDa~n`mG> \{p~ƴ׿mMgg1ԎOoJc44;/ϷUONJ/v~;翁,OkBbkOO%Oҟ#_&?'mߥ/m7@2/~;~R~ߕcy{_>ԟϽo-9ҟi篡?a:v7ҟ v7 w{C_m=ؿ;?y^t }y죟wiM߁ ghǰ]7=C|f|~h{ c!z=?ߛgo}xMruo~Host|>$mO!n!~|]-LUsw>w|n3V;n&3w՟#iIn@g7>5qc/?H~??ןG~n~~%?W5~J~Cӿ5NOs+']4o4|_?JYyg4o'1L+˿V_~W|Ÿ-on_oy4FG5Ocow;mw[/2ÏWio={fO2|#o4H^cߥOȝ40AFh?&?7zdGK=ύvf>#m?7z[mmK?#o#@MﴽS?d㎶ J4ONߤ??;ֿ(i/R~JK=ϟ{՟sKn[vsOo?+_CBuo? ߠ|o]?}=ÿ=-4Cz<ϭ~џ]87cݿ=ßpLχc!{?-<}n;{C|;D!8Cl}3 7݃?gǛrp|~S]:N?m{}n.^wj~Vϻ؅k.^ϴ>]:8ҟ]<=wҟmio6m߮i?M\h~O?yo_>}(?O;ןӼ?Mkh\N_?}著\~KkmK_ϿI0f~H~.翤yV O?W~N/ȴןsYμ}?Ӽ?yӬ{?s~i|no7著~o#7GIw&<JvG5L̏s<_i{i7}c'a73+~TJ{o4#f]c>7K?姁mmgL٬om_ϕϿ/osm~KoǬy_^f<~nA }z'?_*>']o9տMcrf]o$7:J8%kmL/o?_$?'Zi{;+fGEԿOmU~ki+)^i?I8P:{y|(ݿ^f]2O[;7IiQ7pO37xI?SN<翁~W~Ό[ۙ SdƫII?ʵOFo7?L-#g??o?o#շʽ}K325'߿K3FAj:JPo ?M~nӬMJKyjͺYt'y/ӟ7O{W?N~ff|:~c_"S:EJ?@?)=1vox;:o?ȏ7οsf=c~Uog7rli~~Q8Ev;zs2z{য়fϕ?d8oM_OwL̷~)?[ |iK6~ƿL? ҟ&?_f)MJG&)&?;ꗎH?7WT93HS0c{[2w{oyT8̛{߆8iUc+?voߛuT?KCovw c7pW~iF ?4pL{k;.J{j'RwiHħ#zߥ_ϙ?w]:iSgן?c-?Oj*JSK njjwn?͸3{F?4bo{_$?Wݴݟ%T~_&?3U+矣p2}qn?/ҟo?4ѿ?S|?_jo?=c3=?Tto@V7|n7#; 4 ߪo4k;Ӿ~/j~[]Cyn; {ʏn^t c0ѧgqv8ݟ sC!:Ծ{ϡ6D;O=mw#}~s{|pO}ngP!~{|svC(W ބиo⿡4߿g{ Ȯ }ޅu>7Go~緝oowҟѿM?C2w:G?w~D񘟿UoӮ7v7Ռgoigmѱۿ[Cew~N{o?7iNwiםwҟOw|niӮןcy?'ПAs}ƵOƽF~x}sgP&?BgkGAi^S󿪃׎sߥSKR ~^;??8FOǵ_2zEz?؉?L~f=̻YgQ8Nop"mgq߯L]AjSڻooR;i)}ϟ+OHNo՟-?:_p?7i֗>7?M~ Ov~7ߤ{<K5t$3R:70SR>1ƞߥ|iJ='֮{7ύpjj-e&?*N?7.=W:j-m?=Nk{FC_d(S6o)?J\vTN&o3Lˬ;vO dW2z_ҟ?2O㧘tn?I0z2&?z'GL?7_)@~C/#7Iӟ&? !?H??@7Sڟ{^5vп R3 IH??@6`|(-}oz7S=e4MJߧ;pWoaїFc /UL񻩾N疾߫?M~>6x翷}TC_s_?o﫟oM[iۦ8%m4?dU<){)>t\\Fw,/џ-?MwR8۟+? c7ߤqo翥?v_G}BE7o//ޟc{?+W?H}4y%/Rט?׿W~C~R>|'џX/ԟYI~K~uڙ ҟߠ|߅;vP>cϻ՟>ϻy^{}9yߘ=g>C3sp C~v?7ߝg=;?>wӼ߿g}&~-w}= ^><7xnF0n/Ǽo7{M|dݨq;/7&9o?ވy~8/gh|8ۮt>v}~s3J/ߪ:zd~ҟ{1bO'|?M\j>L~AOm|ASmJ~?mqus{.si'w[SѸ|w"Yjѿ4`+g?WgϿO?M3͛oϿO_G4y?O=ooo3TQ6yE?WY2y_㏕.?ӟ~gipK:?fK{q7_ϵY?cve[W~7?T?׿L^'a篡p~ov?)?KfO/%ӬMR8ӿOi)'o3}mڧus~p m_dK8W?vꉗ3^?Rٕ]ϗ翤H~K{oAsOy%?VWkh{i7)޿4zP|!m{*>~/i?@/)=#㯡t^7~ @WYQ}fp!ow?&՟sC/1$)'?#smwƾU ӿ.}PwϿJMSo~O~vάKQfҿ5~:ϵ(џ'??G~ϕSg֫'w~(6 u̺goߧ:~Oi_ߎ ?/w?K?7o޿25kh߁JۿS8K6K?9]533vFL G'߿/fOy0q/џ ?g%}ߌ;|O+mg!0|iM_gs'? ?@=}Կͺ_A~;97ȟG翁0?i;vQџH ?KS?TԟF_o:R_oR}Ox07ӟ+3 ߿[?Mgp.C?՛/Wj~;)_1cW~;cwO3R۷ύ1pOMusCϿKN?W?7qџ&?翤N'ӟJ3CcL_CiogLYj/7;^?״}?@C/*_VT~|/_)?B~?6յL+V~ߗ>B~3{ߏ-X~?w}_??ҟ :v|;u5y5V <~+iNi橻t~nw>o3ow~S}=uw۹~~3Gqw>w};~}{Ͽ{|pozks i\x|>!>={gxn<]ߡ{?ЮwozsAx?C2ߛG4p?+9ooo~oOOg.~?ڙ|h|~~Oy7n3i5q~Wqi?wgs??ϧzҟџW4OIDߛj??H~Uv?ǿ?IoI~K?7O{?M9?V~fo`&?&C翤xo_mo|p(?"mhm%?Οty&翆M~`Oߩf?ͺAT~WYK5著54f?R캆~n/vFJۙm翙vt~{jLNi篡p~3m{Uf2zH5Z^᚟=. 0߿7?@?pV.п'i;R:AJ;ș~?a}?M?odƬ[I:?L~~F&՟oiL1zțJۥȱ7)'yCI5FF?hIW;7v׬/xiS~|Nd3G04?N oY=K/R8Ο*?F~[ۙc{~j|vj_?_*Ng{~??WjTo_p?M~QH|qӬwOo4W~i?72iI-i=vge著C=r0 ӏ;3]_oO#G߿~om> <|e쭶;軿H{s~_g?K6?w ^_q_㏓G5}r(o_A?oן3O7WOԿ(m=eo2熟~ vo?I?ӌȏGOc?Nӟ~{^4t6[ᙸovf۪&藙\祶ulG]Yxe5۬Ef|q=oƬoԿAܟ"?K~~n\vt> IOӿijߪ=4{?ƾ[\:pߏ_L}r7SL1t?M<^b?O~>KS'I/Ux_!?R~G?~+5={ߍ*k??'寧{?ocmPwӟs:?ҟ@MV7ӟ<`yߴoc)s P>ҟ=|sC>]ݿg.ݿGg~ni|P3~w|䳡[Wχlyu[z[o܄muH3mܖ?s~y.7>м_]~m^ѿۙt{~?g@[{wz{v[38~>g&~uM}^l~vo xn+nߪ9HӮwg!79}OC5i}tv8ҁioⰭ?M|g6{(3:?:8A{o8s_~x~m\~/7|}Пӟ~.?\~H~Ks?@N'?_ca4E~_ gyϗ'?8{S8i>oR<7mg3?M~CT翆~'vIֿc4?7iN&K@K+o;}_ҟ/5i+?M>ҿM?:_fo)>;0߿kRmOi~v&O*JI[6 =L$?zoNf7LJߛ?D~~nݩw_*?}ϬED~L{/aⵣMp)/Wo~O;U8s;m˵5IuuF~LITKڏ74IV#iSO=ӎGMOҟ[͸G73]Hig?&N/R>~'gY')Xfy1|fߛȓ?L[uCG_p,Ŭ4mKe>W7뻿کLہ]=Y2>f=7?M~J};7R?ӵ4oOӿ?O~9/H?KؾiRz{?~AFΔf7mo찑#i?L~K2UF~?@F |+OR3Oo`m];f~oǿ~ #ڟ?#oF vvIewkC?L~o~;'Uy2o_y[fwg ]ow6rI _+\S}O0{q/2xsm+3>ȓionUO3ON~n7䧑_CQ<?N~ ^F޷U?OS4tWgg2z[?KwHA\5{/i?J? oM}c'%'?;׿ӿJT54O)4[JOfߥxͼYoi{mm~ P`_;wS8ڥ34)ܭ?M7ҟ~3?eEܟ?}O*7Lο?t\ҟ-?(mmJϗGoϧL[O/ҟ_ ?, _)?k'//Uks{*?G~AпϟПokԟ'<֟[sҟ:?Gvڙ3[NNOigy~|o5c37C|q[z޿m?mwӣw_|39OWCcܚ>=;?I? ]og4oۿ>7ѱxtMM|߷~~O1~ot}Mt⛛gq qqyp#_Cxvo5y!t??ۼ;u~?s]w<4ߪӾ;߮|nNo??N߭3V{ۼ?ҟ[Sy?]X>ԟG0īSy?_OkOO߯??'w+|i7a_|?M?/\ ?T -KOw,[{O5Oi^v$??U~ni&v_ϿM?׿1}?돒L'O+]?Nj۬Kg7%!?;Oҿ'|m_pWڏ'ӬCuJ??߿O@翤t~p _Q _vf]R|$?wo^sI?p_!Ӭ?T~O|0:?I?~]Y5;3}m?V~E ?Rxv\?7mڵ~i?7p^^OEsտ[~?{p/7 m/?`!?Wo}I?=P:ԟ;oC÷@{~GY~o~G)?E:f7v዗'7v֟FSП3{nM3gY0w~Tv31eaN[ȳ~O=KKR)?N~M=M{ҟcj7ӏm,?fRşQ;ly#ӟ.=Y?}tmϿJKIϿv/?V_|[KJ?p?M~Qڛo+>PzK.Fo3Io~$ܬy52|S>L;Oҿ%}Kߌw9=o*vL~Hhwߥ23˴3vW5?J3'ݎmԟt3Oc_&;I6~sWF@ε?Ï'՟TG|n]7ƿs/qK3.׻?L~=cFAF?+ƿ8kh5=~z/8w\~g3?:im#a ~ Пf^~Fh?sֱ J|z[Ϲc~;R~1 ?M??Oӏ'=zcѿfg?OR8oi7Пn#[5q_IJI̸#q4H?{iҿ9iϓܟ/?*?o??[~mwob_ ?T~^e~{Ur35~;&0qV=5ҟkTO#9ҟV-_?;@Vw|oڛv:?]~n5~ ?ʯw3O7oi5P=O|?4n~{}~-޽ҧoo>iw죟2nnU{K9?>g [>t}v7wܛqۿ{m>Cߛ~g:|ޓ3&y|~O14_CnM6OOopߗtq~s 3s 7ht-{v>׿39]8Cgg!y=o{3P@{tןt~Q4 oҧ;.}o· =w~CN1Vg6>ߩ󷉷t0qy~翛џXσN{ć&~<|X~A|?Ki7=42{﹔f$?Mo~?K~Eo"ioпFJ4y'WɣSm=4[a{&_?M?5LN{GmGcɳҟ)VIm۬/U ?\&/y?IyG~?J~W?}3N?CJO?]?L^Y[7?DfӬK7)ީ+ߛou@?7 fNY0uDôHkCR/~k\T޿ߛWnGޟd?@iN~LT/M{ |G??\iHL{o)mo2$~?i;?L~MfwIʏ#?UK;R?K?0ϿH3g \37}i;P|翆п,_z~QRy[?=nKzfJ7zJf/Ra֧>)R;~o֋}5XO4^[Of獾;?m?{Nl{翛O7fhGg7YW}t1rb!m&?W\[Yؓ}߬6rx[?_)_vƾ[ǿxG?H{e~;[-{`߿ɯa3?L~f ׼FNJ?7}{+mm2iߠO^*~7z/ҿ'iOLo3)_Q_|8vs#K3?=VH+w̸o7~(f~~o{`ˌWfFI?O 4z{Ɵ 'm7U?v~o-x mWyi&7&5v'?>V8cϮ3k;\?ן^ܼu\yO/sկ8N6? _Rx;_8ПOsٟ&??U~>V)7R;Nߛӟ33.{_c?-ӯ \Ӵ4~cE܌?M|)~ovԼp'ҟo{w|yo~CVi_{X~s v~!7#yo(?iCwNѿ׷m?_w\NCn.{uYx1}{M2=oD~34!}~o3z>y#=?vvn ćʫ?4CݶM183t2}_9-x m.~K!xCHt:gs4wo9?7O.}3^o\vCSoƭOMc׏y!tw?qv;Op~ <~i[ߩiO|ߪ|nmu>7q~'i}H8C=:?ҿ >﫟ϿӬOX~WyO?W~_$?PӼ_}?ϓ#i_R8K4W{uL>OUL70?OL^|oqL^䁟%?;{|)Ln珗ݯ?%7пM>oҿ$}<wL~P3?H?|w鏕~o)~ A4{G.?71yI>П&?!Wֿ?D~T8ɏ]RPiwm`~oi;NaA+ܬU ﴝǴ?K~;2ϕ)Z~|+iY$7ύ^0~Tx+:M~ ?3wZ?)Km)LAK'R+?W_zwoOT? ggf?RzAK'3~{*?EY7䧑 i3o֯zWʏo#f}gç[Yw27ﴝ[[׬CQ_J? <#NCqW;g)>o-m=__C?N?ӟ8iʖڏJ^vjʟSŸ'wS8ϗ^g_sKHNrs_~o3篡xsR{wx^aT[j&_>Vz̼a巵Q??N~~[~cQ8?I|F?7~7v3m_{e~&?3)?vġڧRɛ?K~GsK?iNS\|[. ~ҟWt|^?]ߟq:ϖf<֟y5o.EV;߿b_%Sѿ_[|?T~R~GT~oc_g??@~Ovg8ҟu>П] Lo5wӟCyߠ|;Ϗ:ߛ|[Og6?CEؿ~vy~Oo{ʏ.7o|ރgЧs|{1Mx}o;xݖn=F8g|qvg>CZ[Ϗ~?Ծmhs#G-lA}igoCI/_~n֟7_ݭ t-u~v6?}~g>Ctsz)? yoмfM}kvwn8~+i .}Ct鎯_NIvwᙿLnr^4qOgڛҟ]|uڙn<NMߛxz_[=hk5.V*?sGg;"1#gqϕ՟{&X6y8;4O{+42~;m;8~'oP%?%7W wM|WFj?Iv3:>vRO2|eTۿ?L~T~YofZ?{ep ?o)~S'u_R||yϟMx0e?~C?͸M;3oҩ?HyHHsK/'fs ?V~S?*׬gvofѿ?I?>ޖ_j/.MӬn??@[UYԾOj■}GgO} wG)?@5q'?W4;jw|uHcK7vK}[ۙuȝy3rN6rhY? T?O mgځ'F!Jm2#/FKO&#g0^?w4rWF^g8_c _~?L~fwFo~ #ҿ oCC?T;ҿw?J?7HY:t6tw6ߤ{&?<-OފW?4Yk>7]ƏO|kV+_$d?IV?JoY6= _+JmgWcӿYoԁ?鏓ϗ;x4i#g>ӟNJpFjy;}Ux~8${5;M<ҿ;ǻ?N~u?_`W{o2?W~gL>+m[ys_?B?ϖO"}-boϭ?O~MwJ?Iҟ\ROſ'<+_-??+gz72ToP_\~A=~Ki>s|?CYsGfs?wo?S;_??mxAO|n5o~(h6?~ns(n?]z g]>7MH/EMC>C - >gsoschn{Dׯ;mCwmoCg{ [Axw]=? Ŀ7kN;Cxfgyտ!}4_7wy-&{~Oqk1Hv7߃rwc;+_Ӽ[ߦ}nk>3?|M|څůӴҟS.\y?;i1o:M|dVs5?MN;8ݨn_xQo:?џ;:ӿ/y*?OjԿ?m?`Y{~f=+L^8/ ~O s|5y[{nos/WxoT_{?V\1?yok^w E g矤fKӘu}?~?V~S?t1y?J(y`*]*w'?̿p*&wwL~+w${& #䷷8)^_~n&?MR4[Jd/ )fCY0O~oց%+C$lo~A0m)LCkG?ozx?zY;i~F~=ݿ̸ oJ~t-?V~?ۙ$mRJATL=Om-F?_?HJ~K?IGk+ճf'|: P:(8$_7|E:O3/:oO3fﭟI_dU}O)?H _s~w<[7矤RY5z__y6i0{S| ݌-~g=C?L~}b6odM_~ ͿJ0^8//U{*?@3ffGn?/CHO?Oyc%Sv=Î~)I5dƣߏo:+='?KaK2f~n7?ioR>vf}?R>0N2v~i2H}of>ןFUF^T1riI3x]e>$ïY&#F.țꩮ||GJSk}wO鸍u?@6Ro:_w*Km{I6~V3?(|>2t_%߼OO\ |/R<'C0zռ?L~AƏS<$mo>ߌRke~n@o֑O3=O緍]Qf~GM.ff~ݎo>?W>ΌopMaѿfF}_f["P}g%۩K?7z R8~R3 7ӟR6;mN?7_}o8L|(~>;vsL¾L=4iMʿpXGovjKupHiǟ&?ogwJiҿo'CiCCN0xo, x矧?_~O?>s c7ҿH~_,??W~6\џ߿Pvϟ@jW_'?~Yڑh%?M{o O X^?y?w^M~L?;o4ߛM;~=}7 :?G:wv]qw7ޣO̗ӥ`|M.64OCۅcs# ?wgM =mgcss}{Z{ޖ~i j79.ߛ׾ t>7}Ӽ S?`֟7y~C1ܖ {g9wC?;<4Of<;4!:oyovCwgoA~|oM[v_;j4pivu3xt g_?:77Nc6p[u6q?w4ܨ#iÇ=osiS{k{OϿh.?V~I?#??H?M~q74k"?K~niK#kT4}SJ4iw4iП$?!&~ N8?J~w4{s/߿JAX3;:?2T~7RN ?N~f}Rpiҟ*?'۬M?aSM?~+(}߬OEog~翁ӟK_*??L~Eߤ?w@ ҿSgѿomw~L~/̸u\~nS~ Yw4f_qEWL?ӬCά3ެϛ|yҿ{ gEϟoMSۿ{''fZ*<[~A_&m,Jԟ(>f>;:u?t ۆ~F~4p&?(>տ-S |ȳKu'S'^eyO ?ßֿ[\}_i;O|?ՑOvё/#RK Ȼk<@3vҟscIIߟد@_o}P[O7R;X=Wjg:~iן*?Wg?/o~;2@Y1Y3>CˬAJߤtt{ß[t?Lӿ'3:+_/ca߁yd슶3vx#2vU?7;mgثI?y7퍝swtƾ(HÁm3m_e4ҿLԌK;E_UFn0iȬ_dl{k;_|cօ?L~Aߥt1||O÷{ᅥ'q4giwtU:}Ǝ*~si?G~UL?_~n P~{{/_ӟ/3_ҿ //_#?vtV~0g+?M\}/5O~?ѿ?՟:?P~;NV7v>7?ߦ3Oy禝||y4MyޛC埻xuV[zu>)mo{(n;~+|~7mznyt|9C ͇yn{|ϭyz<7_w >s< ?oҟC2xtg w{'̣gn˿ =oJnvO}nAz3o{v>п&92wyy.oZ8:|~u|ޅ'٥u֕co1(?i魏{^|qo~x]:Ԯ]Iv[O^!x~4pԷo?7iw?GoП&{?=mJ?INsO!ijLV?&??J~?M~S???翥? .?O~9п_gHi77wHna[S[_iuڙ۴ʃi1w=죟_{~(?+wq3'>n}_x5s.=OW.hH>t!x]|'n;O7)?zzHv wA<XaoKx=DF:znO߄ynӕ?H/駋ǐ$7};ϡdVv|o!]k> |n}.ݻ ^:?}ҟ4p ܴ#;jc~v7?M\e>7t~~?w;?s_~AOSX~g;~ԟkT=ӟ?-?ͮ?N~A:Z'aԟ~3;fR>~?ȅϗFn ~:޿M?ϿKo_xUK?#*Fn;?LVP|W 7S}翷cֹ!ءiY1vG.U;mmU4TW7?^~{7Sxݟ.?mXO?_Y_1Ο&?{79ocN{jI7P:>soƞuSfMJy0i؁s#*OʹoO}F^?b&? 2Q?L;k7п"O27rxEߤJ3S\#73t6rfôc |kKG:γJ?~nìOf,k(Ii_eF?R:K ;ڗCߥx֬_dvߓc7~L;og1v폓ڋ}xt<ΟvoS{i?=WeMV~?8}ݟ&?S_3'?mgNN:_n~翝)ϒhI|[q՟ҿj-_$?-? џ_ҟǟ'?T~߿_&?W~5wӟg/OZ_zo(/>NP^~^g)? ^C㳏~owui||tѿ|mz?:MO&>g t3us=no~:w鍧n4O>-? gJv23=Dϡ;O.y[:ȧ{< _7<7o{/wҟ||?߄i[ߩy ]_ӏo5Cɴ:xtpucw3ߛ.^{?{;߭ҟe>O_ߟϏv|?S8Xx4wO'{Ki'ϕ~n~Ri^?<÷5OisO?xߦE4?vϒ47翑~>;