pax_global_header00006660000000000000000000000064126075666310014526gustar00rootroot0000000000000052 comment=be5d1bfade9b49a506aaf86274c7eed0cdf3e164 blasr_libcpp-master/000077500000000000000000000000001260756663100150175ustar00rootroot00000000000000blasr_libcpp-master/.gitignore000066400000000000000000000001271260756663100170070ustar00rootroot00000000000000*.o *.d *.a *.so *.dylib defines.mk all.xml *.h5 libconfig.h /hdf/hdf5-1.8.12-headers/ blasr_libcpp-master/.travis.yml000066400000000000000000000005051260756663100171300ustar00rootroot00000000000000language: cpp script: - ./travis.sh compiler: - gcc # - clang install: - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.8 - g++-4.8 # - clang # - libhdf5-serial-1.8.4 notifications: email: false sudo: false blasr_libcpp-master/README.md000066400000000000000000000017001260756663100162740ustar00rootroot00000000000000[![Build Status](https://travis-ci.org/PacificBiosciences/blasr_libcpp.svg?branch=master)](https://travis-ci.org/PacificBiosciences/blasr_libcpp) #What is blasr_libcpp# **Blasr_libcpp** is a *library* used by **blasr** and other executables such as samtoh5, loadPulses for analyzing PacBio sequences. This library contains three sub-libraries, including pbdata, hdf and alignment: + pbdata - contains source code for handling Pacbio sequences and can build lib ```libpbdata```. + hdf - contains source code for handling Pacbio hdf5 files (e.g., *.pls.h5, *.rgn.h5, *.bas.h5) and builds ```libpbhdf```. + alignment - contains source code for aligning Pacbio reads to target sequences used in blasr and builds ```libblasr```. For more information, see * https://github.com/PacificBiosciences/blasr_libcpp/wiki ## Building The simplest way is: ``` NOPBBAM=1 ./configure.py make -j all ``` That will skip pbbam, and it will download HDF5 headers. blasr_libcpp-master/alignment/000077500000000000000000000000001260756663100167755ustar00rootroot00000000000000blasr_libcpp-master/alignment/MappingMetrics.cpp000066400000000000000000000222251260756663100224260ustar00rootroot00000000000000#include #include #include "MappingMetrics.hpp" //In order to use clock_gettime in LINUX, add -lrt #ifdef __APPLE__ #pragma weak clock_gettime int clock_gettime(clockid_t clk_id, struct timespec *tp) { kern_return_t ret; clock_serv_t clk; clock_id_t clk_serv_id; mach_timespec_t tm; uint64_t start, end, delta, nano; task_basic_info_data_t tinfo; task_thread_times_info_data_t ttinfo; mach_msg_type_number_t tflag; int retval = -1; switch (clk_id) { case CLOCK_REALTIME: case CLOCK_MONOTONIC: clk_serv_id = clk_id == CLOCK_REALTIME ? CALENDAR_CLOCK : SYSTEM_CLOCK; if (KERN_SUCCESS == (ret = host_get_clock_service(mach_host_self(), clk_serv_id, &clk))) { if (KERN_SUCCESS == (ret = clock_get_time(clk, &tm))) { tp->tv_sec = tm.tv_sec; tp->tv_nsec = tm.tv_nsec; retval = 0; } } if (KERN_SUCCESS != ret) { errno = EINVAL; retval = -1; } break; case CLOCK_PROCESS_CPUTIME_ID: case CLOCK_THREAD_CPUTIME_ID: start = mach_absolute_time(); if (clk_id == CLOCK_PROCESS_CPUTIME_ID) { getpid(); } else { sched_yield(); } end = mach_absolute_time(); delta = end - start; if (0 == __clock_gettime_inf.denom) { mach_timebase_info(&__clock_gettime_inf); } nano = delta * __clock_gettime_inf.numer / __clock_gettime_inf.denom; tp->tv_sec = nano * 1e-9; tp->tv_nsec = nano - (tp->tv_sec * 1e9); retval = 0; break; default: errno = EINVAL; retval = -1; } return retval; } #endif // __APPLE__ Timer::Timer(std::string _header) { keepHistogram = false; keepList = false; totalElapsedClock = 0; header = _header; elapsedClockMsec = 0; elapsedTime = 0.0; } int Timer::ListSize() { return msecList.size(); } void Timer::PrintHeader(std::ostream &out) { if (msecList.size() > 0) { out << header << " "; } } void Timer::PrintListValue(std::ostream &out, int index) { if (msecList.size() > 0) { out << msecList[index] << " "; } } void Timer::Tick() { clock_gettime(CLOCK_THREAD_CPUTIME_ID, &cpuclock[0]); } void Timer::SetStoreElapsedTime(bool value) { keepList = value; } void Timer::SetStoreHistgram(bool value) { keepHistogram = value; } void Timer::Tock() { clock_gettime(CLOCK_THREAD_CPUTIME_ID, &cpuclock[1]); elapsedClockMsec = (cpuclock[1].tv_nsec - cpuclock[0].tv_nsec)/1000; totalElapsedClock += elapsedClockMsec; elapsedTime = ((1.0)*elapsedClockMsec); if (keepHistogram) { // keep a histogram in number of milliseconds per operation if (histogram.find(elapsedClockMsec) == histogram.end()) { histogram[elapsedClockMsec] = 1; } else { histogram[elapsedClockMsec]++; } } if (keepList) { msecList.push_back(elapsedClockMsec); } } void Timer::Add(const Timer &rhs) { elapsedClockMsec += rhs.elapsedClockMsec; elapsedTime += rhs.elapsedTime; totalElapsedClock += rhs.totalElapsedClock; msecList.insert(msecList.end(), rhs.msecList.begin(), rhs.msecList.end()); } void Timer::SetHeader(std::string _header) { header = _header; } void MappingClocks::AddCells(int nCells) { nCellsPerSample.push_back(nCells); } void MappingClocks::AddBases(int nBases) { nBasesPerSample.push_back(nBases); } int MappingClocks::GetSize() { return total.ListSize(); } MappingClocks::MappingClocks() { total.SetHeader("Total"); findAnchors.SetHeader("FindAnchors"); mapToGenome.SetHeader("MapToGenome"); sortMatchPosList.SetHeader("SortMatchPosList"); findMaxIncreasingInterval.SetHeader("FindMaxIncreasingInterval"); alignIntervals.SetHeader("AlignIntervals"); } void MappingClocks::PrintHeader(std::ostream &out) { total.PrintHeader(out); findAnchors.PrintHeader(out); mapToGenome.PrintHeader(out); sortMatchPosList.PrintHeader(out); findMaxIncreasingInterval.PrintHeader(out); alignIntervals.PrintHeader(out); } void MappingClocks::PrintList(std::ostream &out, int index) { total.PrintListValue(out,index); findAnchors.PrintListValue(out,index); mapToGenome.PrintListValue(out,index); sortMatchPosList.PrintListValue(out,index); findMaxIncreasingInterval.PrintListValue(out,index); alignIntervals.PrintListValue(out,index); if (nCellsPerSample.size() > 0) { out << nCellsPerSample[index] << " "; } if (nBasesPerSample.size() > 0) { out << nBasesPerSample[index] << " "; } out << std::endl; } void MappingClocks::SetStoreList(bool value) { total.SetStoreElapsedTime(value); findAnchors.SetStoreElapsedTime(value); mapToGenome.SetStoreElapsedTime(value); sortMatchPosList.SetStoreElapsedTime(value); findMaxIncreasingInterval.SetStoreElapsedTime(value); alignIntervals.SetStoreElapsedTime(value); } void MappingClocks::AddClockTime(const MappingClocks &rhs) { total.Add(rhs.total); findAnchors.Add(rhs.findAnchors); mapToGenome.Add(rhs.mapToGenome); sortMatchPosList.Add(rhs.sortMatchPosList); findMaxIncreasingInterval.Add(rhs.findMaxIncreasingInterval); alignIntervals.Add(rhs.alignIntervals); } MappingMetrics::MappingMetrics() { numReads = 0; numMappedReads = 0; numMappedBases = 0; anchorsPerRead = 0; totalAnchorsForMappedReads = 0; totalAnchors = 0; } void MappingMetrics::StoreSDPPoint(int nBases, int nSDPAnchors, int nClock) { sdpBases.push_back(nBases); sdpAnchors.push_back(nSDPAnchors); sdpClock.push_back(nClock); } void MappingMetrics::SetStoreList(bool value) { clocks.SetStoreList(value); } void MappingMetrics::PrintSeconds(std::ostream& out, long sec ){ out << sec << " Msec"; } void MappingMetrics::PrintFraction(std::ostream &out, float frac) { out << std::setprecision(2) << frac; } void MappingMetrics::RecordNumAlignedBases(int nBases) { mappedBases.push_back(nBases); } void MappingMetrics::RecordNumCells(int nCells) { cellsPerAlignment.push_back(nCells); } void MappingMetrics::Collect(MappingMetrics &rhs) { clocks.AddClockTime(rhs.clocks); totalAnchors += rhs.totalAnchors; numReads += rhs.numReads; numMappedReads += rhs.numMappedReads; totalAnchorsForMappedReads += rhs.totalAnchorsForMappedReads; mappedBases.insert(mappedBases.end(), rhs.mappedBases.begin(), rhs.mappedBases.end()); cellsPerAlignment.insert(cellsPerAlignment.end(), rhs.cellsPerAlignment.begin(), rhs.cellsPerAlignment.end()); } void MappingMetrics::CollectSDPMetrics(MappingMetrics &rhs) { sdpAnchors.insert(sdpAnchors.end(), rhs.sdpAnchors.begin(), rhs.sdpAnchors.end()); sdpBases.insert(sdpBases.end(), rhs.sdpBases.begin(), rhs.sdpBases.end()); sdpClock.insert(sdpClock.end(), rhs.sdpClock.begin(), rhs.sdpClock.end()); } void MappingMetrics::PrintSDPMetrics(std::ostream &out) { out << "nbases ncells time" << std::endl; int i; for (i = 0; i < sdpAnchors.size(); i++) { out << sdpBases[i] << " " << sdpAnchors[i] << " " << sdpClock[i] << std::endl; } } void MappingMetrics::PrintFullList(std::ostream &out) { // // Print the full header // clocks.PrintHeader(out); out << " MappedBases Cells " << std::endl; // // Print all values: clocks + bases and cells. // int i; for (i = 0; i < clocks.GetSize(); i++) { clocks.PrintList(out,i); // out << mappedBases[i] << " " << cellsPerAlignment[i] << endl; } } void MappingMetrics::PrintSummary(std::ostream &out) { out << "Examined " << numReads << std::endl; out << "Mapped " << numMappedReads << std::endl; out << "Total mapping time\t"; PrintSeconds(out, clocks.total.elapsedClockMsec); out << " \t"; PrintSeconds(out, (1.0*clocks.total.elapsedClockMsec)/numReads); out << " /read" << std::endl; out << " find anchors\t"; PrintSeconds(out, clocks.mapToGenome.elapsedClockMsec); out << " \t"; PrintSeconds(out, (1.0*clocks.mapToGenome.elapsedClockMsec)/numReads); out << std::endl; out << " sort anchors\t"; PrintSeconds(out, clocks.sortMatchPosList.elapsedClockMsec); out << " \t"; PrintSeconds(out, (1.0*clocks.sortMatchPosList.elapsedClockMsec)/numReads); out << std::endl; out << " find max interval\t"; PrintSeconds(out, clocks.findMaxIncreasingInterval.elapsedClockMsec); out << " \t"; PrintSeconds(out, (1.0*clocks.findMaxIncreasingInterval.elapsedClockMsec)/numReads); out << std::endl; out << "Total anchors: " << totalAnchors << std::endl; out << " Anchors per read: " << (1.0*totalAnchors) / numReads << std::endl; out << "Total mapped: " << totalAnchorsForMappedReads << std::endl; out << " Anchors per mapped read: " << (1.0*totalAnchorsForMappedReads) / numMappedReads << std::endl; } void MappingMetrics::AddClock(MappingClocks &clocks) { clocks.AddClockTime(clocks); } blasr_libcpp-master/alignment/MappingMetrics.hpp000066400000000000000000000053411260756663100224330ustar00rootroot00000000000000#ifndef _BLASR_MAPPING_METRICS_HPP_ #define _BLASR_MAPPING_METRICS_HPP_ #include #include #include #include //In order to use clock_gettime in LINUX, add -lrt #ifdef __APPLE__ #include #include #include #include typedef enum { CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID } clockid_t; static mach_timebase_info_data_t __clock_gettime_inf; int clock_gettime(clockid_t clk_id, struct timespec *tp); #endif // __APPLE__ class Timer { public: bool keepHistogram, keepList; timespec cpuclock[2]; int elapsedClockMsec; float elapsedTime; std::map histogram; std::vector msecList; long long totalElapsedClock; std::string header; Timer(std::string _header=""); int ListSize(); void PrintHeader(std::ostream &out); void PrintListValue(std::ostream &out, int index); void Tick(); void SetStoreElapsedTime(bool value); void SetStoreHistgram(bool value); void Tock(); void Add(const Timer &rhs); void SetHeader(std::string _header); }; class MappingClocks { public: Timer total; Timer findAnchors; Timer mapToGenome; Timer sortMatchPosList; Timer findMaxIncreasingInterval; Timer alignIntervals; std::vector nCellsPerSample; std::vector nBasesPerSample; void AddCells(int nCells); void AddBases(int nBases); int GetSize(); MappingClocks(); void PrintHeader(std::ostream &out); void PrintList(std::ostream &out, int index); void SetStoreList(bool value=true); void AddClockTime(const MappingClocks &rhs); }; class MappingMetrics { public: MappingClocks clocks; int numReads; int numMappedReads; int numMappedBases; std::vector mappedBases; std::vector cellsPerAlignment; std::vector anchorsPerAlignment; std::vector sdpAnchors, sdpBases, sdpClock; long totalAnchors; int anchorsPerRead; long totalAnchorsForMappedReads; MappingMetrics(); void StoreSDPPoint(int nBases, int nSDPAnchors, int nClock); void SetStoreList(bool value=true); void PrintSeconds(std::ostream &out, long sec); void PrintFraction(std::ostream &out, float frac); void RecordNumAlignedBases(int nBases); void RecordNumCells(int nCells); void Collect(MappingMetrics &rhs); void CollectSDPMetrics(MappingMetrics &rhs); void PrintSDPMetrics(std::ostream &out); void PrintFullList(std::ostream &out); void PrintSummary(std::ostream &out); void AddClock(MappingClocks &clocks); }; #endif // _BLASR_MAPPING_METRICS_HPP_ blasr_libcpp-master/alignment/algorithms/000077500000000000000000000000001260756663100211465ustar00rootroot00000000000000blasr_libcpp-master/alignment/algorithms/alignment/000077500000000000000000000000001260756663100231245ustar00rootroot00000000000000blasr_libcpp-master/alignment/algorithms/alignment/AffineGuidedAlign.hpp000066400000000000000000000512711260756663100271300ustar00rootroot00000000000000#ifndef _BLASR_AFFINE_GUIDE_ALIGNMENT_HPP_ #define _BLASR_AFFINE_GUIDE_ALIGNMENT_HPP_ #include "GuidedAlign.hpp" template int AffineGuidedAlign(QSequence &origQSeq, TSequence &origTSeq, Alignment &guideAlignment, T_ScoreFn &scoreFn, int bandSize, Alignment &alignment, std::vector &scoreMat, std::vector &pathMat, std::vector &probMat, std::vector &optPathProbMat, std::vector &lnSubPValueVect, std::vector &lnInsPValueVect, std::vector &lnDelPValueVect, std::vector &lnMatchPValueVect, AlignmentType alignType=Global, bool computeProb=false) { Guide guide; AlignmentToGuide(guideAlignment, guide, bandSize); StoreMatrixOffsets(guide); int guideSize = ComputeMatrixNElem(guide); // // Make a copy of the sequences that is guaranteed to be in 3-bit format for faster alignment. // (mabybe eventually reuse the qseq and tseq memory) // QSequence qSeq; TSequence tSeq; qSeq.Assign(origQSeq); tSeq.Assign(origTSeq); int matrixNElem = ComputeMatrixNElem(guide); StoreMatrixOffsets(guide); /* * The following code is useful to produce images of the dp-matrix. * Make sure the sequenences are less than 5kb each though. Matrix probMatrix; probMatrix.Resize(qSeq.length, tSeq.length); probMatrix.Initialize(0); ofstream matrixOut; stringstream matrixOutNameStrm; matrixOutNameStrm << "probMatrix_"<< runIndex << ".dat"; matrixOut.open(matrixOutNameStrm.str().c_str()); */ if (computeProb) { // // Convert phred scale to proper ln for faster manipulation later on. // QVToLogPScale(qSeq.substitutionQV, qSeq.length, lnSubPValueVect); QVToLogPScale(qSeq.insertionQV, qSeq.length, lnInsPValueVect); QVToLogPScale(qSeq.deletionQV, qSeq.length, lnDelPValueVect); if (lnMatchPValueVect.size() < qSeq.length) { lnMatchPValueVect.resize(qSeq.length); } // // Normalize probability std::vectors so that the probability of transition from each cell is 1. // int i; for (i = 0; i < qSeq.length; i++) { float subSum = LogSumOfTwo(lnSubPValueVect[i], QVToLogPScale(scoreFn.substitutionPrior)); // prior on substitution rate float denominator = LogSumOfThree(lnDelPValueVect[i], lnInsPValueVect[i], subSum); lnDelPValueVect[i] = lnDelPValueVect[i] - denominator; lnSubPValueVect[i] = lnSubPValueVect[i] - denominator; lnInsPValueVect[i] = lnInsPValueVect[i] - denominator; lnMatchPValueVect[i] = subSum - denominator; } } // // Make sure the alignments can fit in the reused buffers. // std::vector affineInsScoreMat, affineDelScoreMat; std::vector affineInsPathMat, affineDelPathMat; affineInsScoreMat.resize(matrixNElem); fill(affineInsScoreMat.begin(), affineInsScoreMat.end(), 0); affineDelScoreMat.resize(matrixNElem); fill(affineDelScoreMat.begin(), affineDelScoreMat.end(), 0); affineInsPathMat.resize(matrixNElem); fill(affineInsPathMat.begin(), affineInsPathMat.end(), NoArrow); affineDelPathMat.resize(matrixNElem); fill(affineDelPathMat.begin(), affineDelPathMat.end(), NoArrow); if (scoreMat.size() < matrixNElem) { scoreMat.resize(matrixNElem); pathMat.resize(matrixNElem); fill(scoreMat.begin(), scoreMat.end(), 0); fill(pathMat.begin(), pathMat.end(), NoArrow); } if (computeProb) { if (probMat.size() < matrixNElem) { probMat.resize(matrixNElem); optPathProbMat.resize(matrixNElem); } } // // Initialze matrices. Only initialize up to matrixNElem rather // than matrix.size() because the matrix.size() unnecessary space // may be allocated. // std::fill(scoreMat.begin(), scoreMat.begin() + matrixNElem, 0); std::fill(pathMat.begin(), pathMat.begin() + matrixNElem, NoArrow); if (computeProb) { std::fill(probMat.begin(), probMat.begin() + matrixNElem, 0); std::fill(optPathProbMat.begin(), optPathProbMat.begin() + matrixNElem, 0); } // // Initialize boundary conditions. // int q, t; int bufferIndex; // start alignemnt at the beginning of the guide, and align to the // end of the guide. if (guide.size() == 0) { qSeq.Free(); tSeq.Free(); return 0; } int qStart = guide[1].q; int tStart = guide[1].t; int qEnd = guide[guide.size()-1].q+1; int tEnd = guide[guide.size()-1].t+1; GetBufferIndexFunctor GetBufferIndex; GetBufferIndex.seqRowOffset = qStart; GetBufferIndex.guideSize = guide.size(); int indicesAreValid, delIndexIsValid, insIndexIsValid, matchIndexIsValid; bufferIndex = -1; indicesAreValid = GetBufferIndex(guide, qStart-1, tStart-1, bufferIndex); assert(indicesAreValid); scoreMat[bufferIndex] = 0; pathMat[bufferIndex] = NoArrow; int matchIndex, insIndex, delIndex, curIndex; // // Initialize deletion row. // if (computeProb) { probMat[0] = optPathProbMat[0] = 0; } for (t = tStart; t < tStart + guide[0].tPost; t++) { curIndex=-1; indicesAreValid = GetBufferIndex(guide, qStart-1, t, curIndex); if (indicesAreValid == 0 ) { cout << "QSeq" << endl; (static_cast(&origQSeq))->PrintSeq(cout); cout << "TSeq" << endl; (static_cast(&origTSeq))->PrintSeq(cout); assert(0); } delIndex = -1; delIndexIsValid = GetBufferIndex(guide, qStart-1, t-1, delIndex); if (delIndexIsValid) { if (alignType == Global) { scoreMat[curIndex] = scoreMat[delIndex] + scoreFn.del; } else if (alignType == Local) { scoreMat[curIndex] = 0; } affineDelScoreMat[curIndex] = scoreFn.del; affineDelPathMat[curIndex] = AffineDelOpen; affineInsPathMat[curIndex] = AffineInsOpen; affineInsScoreMat[curIndex] = scoreFn.ins; pathMat[curIndex] = Left; if (computeProb) { if (qSeq.qual.Empty() == false) { optPathProbMat[curIndex] = probMat[curIndex] = probMat[delIndex] + QVToLogPScale(scoreFn.globalDeletionPrior); } } } } // // Initialize stripe along the top of the grid. // for (q = qStart ; q < qStart + bandSize and q < qEnd; q++) { insIndex = -1; insIndexIsValid = GetBufferIndex(guide, q-1, tStart-1, // diagonal from t-start insIndex); curIndex = -1; indicesAreValid = GetBufferIndex(guide, q, tStart-1, curIndex); if (insIndexIsValid and indicesAreValid) { assert(insIndex >= 0); assert(curIndex >= 0); if (alignType == Global) { scoreMat[curIndex] = scoreMat[insIndex] + scoreFn.ins; } else { scoreMat[curIndex] = 0; } affineInsScoreMat[curIndex] = scoreFn.ins; affineInsPathMat[curIndex] = AffineInsOpen; affineDelScoreMat[curIndex] = scoreFn.del; affineDelPathMat[curIndex] = AffineDelOpen; pathMat[curIndex] = Up; } } int matchScore, insScore, delScore, affineInsOpenScore, affineInsExtScore, affineDelOpenScore, affineDelExtScore; for (q = qStart; q < qEnd; q++) { int qi = q - qStart + 1; int tp = guide[qi].t; curIndex = matchIndex = insIndex = delIndex = -1; // // Do some work that will help define when matchIndex and insIndex // may be used. Once delIndex is computed once, it is valid for // all t positions. // int prevRowTEnd = -1; if ( qi > 0) { // // Define the boundaries of the column which may access previously // computed cells with a match. // prevRowTEnd = guide[qi-1].t + guide[qi-1].tPost; } for (t = tp - guide[qi].tPre ; t < guide[qi].t + guide[qi].tPost +1; t++) { if (q < qStart + bandSize and t == tp - guide[qi].tPre - 1) { // On the boundary condition, don't access the 1st element; t++; continue; } // Make sure the index is not past the end of the sequence. if (t < -1) continue; if (t >= tEnd) continue; // // No cells are available to use for insertion cost // computation. // if (t > prevRowTEnd) { insIndex = -1; } if (t > prevRowTEnd + 1) { matchIndex = -1; } // // Find the indices in the buffer. Since the rows are of // different sizes, one can't just use offsets from the buffer // index. // if (GetBufferIndex(guide, q-1,t-1, matchIndex)) { assert(matchIndex >= 0); matchScore = scoreMat[matchIndex] + scoreFn.Match(tSeq, t, qSeq, q); } else { matchScore = INF_INT; } if (GetBufferIndex(guide, q-1, t, insIndex)) { assert(insIndex >= 0); insScore = scoreMat[insIndex] + scoreFn.Insertion(tSeq,(DNALength) t, qSeq, (DNALength)q); affineInsExtScore = affineInsScoreMat[insIndex] + scoreFn.affineExtend; // 0 extension } else { insScore = INF_INT; affineInsExtScore = INF_INT; } if (GetBufferIndex(guide, q, t-1, delIndex)) { assert(delIndex >= 0); delScore = scoreMat[delIndex] + scoreFn.Deletion(tSeq, (DNALength) t, qSeq, (DNALength)q); affineDelExtScore = affineDelScoreMat[delIndex] + scoreFn.affineExtend; } else { delScore = INF_INT; affineDelExtScore = INF_INT; } int minScore = MIN(matchScore, MIN(insScore, MIN(delScore, MIN(affineInsExtScore, affineDelExtScore)))); int result = GetBufferIndex(guide, q, t, curIndex); // This should only loop over valid cells. assert(result); assert(curIndex >= 0); scoreMat[curIndex] = minScore; if (minScore == INF_INT) { pathMat[curIndex] = NoArrow; } else { assert(result == 1); if (minScore == matchScore) { pathMat[curIndex] = Diagonal; } else if (minScore == delScore) { pathMat[curIndex] = Left; } else if (minScore == insScore) { pathMat[curIndex] = Up; } else if (minScore == affineInsExtScore) { pathMat[curIndex] = AffineInsClose; } else { assert (minScore == affineDelExtScore) ; pathMat[curIndex] = AffineDelClose; } } // affineInsOpenScore = scoreMat[curIndex] + scoreFn.ins * 2; // affineDelOpenScore = scoreMat[curIndex] + scoreFn.del * 2; // // Set the penalty to initiate an affine gap here. // affineInsOpenScore = scoreMat[curIndex] + scoreFn.affineOpen; affineDelOpenScore = scoreMat[curIndex] + scoreFn.affineOpen; if (affineInsOpenScore == INF_INT and affineInsExtScore == INF_INT) { cout << q << " " << t << endl; cout << "All infinity, bad things will happen." << endl; cout << "the score mat here is : " << scoreMat[curIndex] << " and path " << pathMat[curIndex] << endl; assert(0); } if (affineInsOpenScore < affineInsExtScore) { affineInsPathMat[curIndex] = AffineInsOpen; affineInsScoreMat[curIndex] = affineInsOpenScore; } else { affineInsPathMat[curIndex] = AffineInsUp; affineInsScoreMat[curIndex] = affineInsExtScore; } if (affineDelOpenScore < affineDelExtScore) { affineDelPathMat[curIndex] = AffineDelOpen; affineDelScoreMat[curIndex] = affineDelOpenScore; } else { affineDelPathMat[curIndex] = AffineDelLeft; affineDelScoreMat[curIndex] = affineDelExtScore; } } } // Ok, for now just trace back from qend/tend q = qEnd-1; t = tEnd-1; std::vector optAlignment; int bufferIndexIsValid; int curMatrix = Match; while(q >= qStart or t >= tStart) { bufferIndex = -1; // cout << "backtrace: " << q << " "<< t << endl; bufferIndexIsValid = GetBufferIndex(guide, q, t, bufferIndex); assert(bufferIndexIsValid); assert(bufferIndex >= 0); Arrow arrow; // cout << q << " "<< t << " " << curMatrix << " " << arrow << endl; if (curMatrix == Match) { arrow = pathMat[bufferIndex]; if (arrow == NoArrow) { tSeq.ToAscii(); qSeq.ToAscii(); int gi; for (gi = 0; gi < guide.size(); gi++) { cout << guide[gi].q << " " << guide[gi].t << " " << guide[gi].tPre << " " << guide[gi].tPost << endl; } cout << "qseq: "<< endl; (static_cast(&qSeq))->PrintSeq(cout); cout << "tseq: "<< endl; (static_cast(&tSeq))->PrintSeq(cout); cout << "ERROR, this path has gone awry at " << q << " " << t << " !" << endl; exit(1); } if (arrow == Diagonal) { optAlignment.push_back(arrow); q--; t--; } else if (arrow == Up) { optAlignment.push_back(arrow); q--; } else if (arrow == Left) { optAlignment.push_back(arrow); t--; } else if (arrow == AffineInsClose) { optAlignment.push_back(Up); curMatrix = AffineIns; q--; } else if (arrow == AffineDelClose) { t--; optAlignment.push_back(Left); curMatrix = AffineDel; } } else if (curMatrix == AffineIns) { arrow = affineInsPathMat[bufferIndex]; if (arrow == AffineInsOpen) { curMatrix = Match; } else if (arrow == AffineInsUp) { q--; optAlignment.push_back(Up); } else { cout << "ERROR! Reached arrow " << arrow << " at " << q << " " << t << " in affine ins path mat. That is bad." << endl; assert(0); } } else { assert(curMatrix == AffineDel); arrow = affineDelPathMat[bufferIndex]; if (arrow == AffineDelOpen) { curMatrix = Match; } else if (arrow == AffineDelLeft) { t--; optAlignment.push_back(Left); } else { cout << "ERROR! Reached arrow " << arrow << " at " << q << " " << t << " in affine del mat. This is also bad." << endl; assert(0); } } } alignment.nCells = ComputeMatrixNElem(guide); std::reverse(optAlignment.begin(), optAlignment.end()); alignment.qPos = qStart; alignment.tPos = tStart; alignment.ArrowPathToAlignment(optAlignment); // StickPrintAlignment(alignment, qSeq, tSeq, cout); RemoveAlignmentPrefixGaps(alignment); int lastIndex = 0; tSeq.Free(); qSeq.Free(); lastIndex = -1; if (GetBufferIndex(guide, qEnd - 1, tEnd - 1, lastIndex)) { alignment.score = scoreMat[lastIndex]; return scoreMat[lastIndex]; } else { return 0; } } template //, typename T_BufferCache> int AffineGuidedAlign(QSequence &origQSeq, TSequence &origTSeq, T_ScoreFn &scoreFn, int bandSize, int sdpIns, int sdpDel, float sdpIndelRate, Alignment &alignment, AlignmentType alignType=Global, bool computeProb = false, int sdpTupleSize= 8) { Alignment sdpAlignment; int alignScore = SDPAlign(origQSeq, origTSeq, scoreFn, sdpTupleSize, sdpIns, sdpDel, sdpIndelRate, sdpAlignment); //, Local, false, false); int b; for (b = 0; b < sdpAlignment.blocks.size(); b++) { sdpAlignment.blocks[b].qPos += sdpAlignment.qPos; sdpAlignment.blocks[b].tPos += sdpAlignment.tPos; } sdpAlignment.tPos = 0; sdpAlignment.qPos = 0; return AffineGuidedAlign(origQSeq, origTSeq, sdpAlignment, scoreFn, bandSize, alignment, // fill in optional parameters alignType, computeProb); } // // Use Case: No guide yet exists for this alignment, but using // buffers. Run SDP alignment first, then refine on the guide. // template int AffineGuidedAlign(QSequence &origQSeq, TSequence &origTSeq, T_ScoreFn &scoreFn, int bandSize, int sdpIns, int sdpDel, float sdpIndelRate, T_BufferCache &buffers, Alignment &alignment, AlignmentType alignType=Global, bool computeProb = false, int sdpTupleSize= 8) { Alignment sdpAlignment; int alignScore = SDPAlign(origQSeq, origTSeq, scoreFn, sdpTupleSize, sdpIns, sdpDel, sdpIndelRate, sdpAlignment, buffers, Local, false, false); int b; for (b = 0; b < sdpAlignment.blocks.size(); b++) { sdpAlignment.blocks[b].qPos += sdpAlignment.qPos; sdpAlignment.blocks[b].tPos += sdpAlignment.tPos; } sdpAlignment.tPos = 0; sdpAlignment.qPos = 0; return AffineGuidedAlign(origQSeq, origTSeq, sdpAlignment, scoreFn, bandSize, buffers, alignment, // fill in optional parameters alignType, computeProb); } // // Use case, guide exists, using buffers // template int AffineGuidedAlign(QSequence &origQSeq, TSequence &origTSeq, Alignment &guideAlignment, T_ScoreFn &scoreFn, int bandSize, T_BufferCache &buffers, Alignment &alignment, AlignmentType alignType=Global, bool computeProb=false) { return AffineGuidedAlign(origQSeq, origTSeq, guideAlignment, scoreFn, bandSize, alignment, buffers.scoreMat, buffers.pathMat, buffers.probMat, buffers.optPathProbMat, buffers.lnSubPValueMat, buffers.lnInsPValueMat, buffers.lnDelPValueMat, buffers.lnMatchPValueMat, alignType, computeProb); } // // Missing the use case for guide does not exist, and not using // buffers. This is just a very long function declaration, so it's // not worth writing until it is needed. // // // Use case, guide exists, but not using buffers. // template int AffineGuidedAlign(QSequence &origQSeq, TSequence &origTSeq, Alignment &guideAlignment, T_ScoreFn &scoreFn, int bandSize, Alignment &alignment, AlignmentType alignType=Global, bool computeProb=false) { // Make synonyms for members of the buffers class for easier typing. std::vector scoreMat; std::vector pathMat; std::vector probMat; std::vector optPathProbMat; std::vector lnSubPValueVect; std::vector lnInsPValueVect; std::vector lnDelPValueVect; std::vector lnMatchPValueVect; return AffineGuidedAlign(origQSeq, origTSeq, guideAlignment, scoreFn, bandSize, alignment, scoreMat, pathMat, probMat, optPathProbMat, lnSubPValueVect, lnInsPValueVect, lnDelPValueVect, lnMatchPValueVect, alignType, computeProb); } #endif // _BLASR_AFFINE_GUIDE_ALIGNMENT_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/AffineKBandAlign.hpp000066400000000000000000000334661260756663100267140ustar00rootroot00000000000000#ifndef _BLASR_AFFINE_KBAND_ALIGN_HPP_ #define _BLASR_AFFINE_KBAND_ALIGN_HPP_ #include #include #include #include "NucConversion.hpp" #include "defs.h" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Alignment.hpp" #include "KBandAlign.hpp" template int AffineKBandAlign(T_QuerySequence &pqSeq, T_TargetSequence &ptSeq, int matchMat[5][5], int hpInsOpen, int hpInsExtend, int insOpen, int insExtend, int del, int k, vector &scoreMat, vector & pathMat, vector &hpInsScoreMat, vector &hpInsPathMat, vector &insScoreMat, vector &insPathMat, T_Alignment &alignment, AlignmentType alignType) { // // Make a copy of the sequences that is guaranteed to be in 3-bit format // for quick access to the score array. // int INF_SCORE = INF_INT - 1000; T_QuerySequence qSeq; T_TargetSequence tSeq; // CreateThreeBitSequence(pqSeq, qSeq); // CreateThreeBitSequence(ptSeq, tSeq); qSeq.seq = pqSeq.seq; qSeq.length= pqSeq.length; tSeq.seq = ptSeq.seq; tSeq.length = ptSeq.length; DNALength tLen, qLen; SetKBoundedLengths(tSeq.length, qSeq.length, k, tLen, qLen); // // // Allow for length up to diagonal + k + 1 for boundary. // // Allow for width: // diagonal (1) // up to k insertions (k) // up to k deletions (k) // boundary on left side of matrix (1) // // if (qLen + k > tLen and qLen < tLen) { // k = tLen - qLen +1; // } DNALength nCols = 2*k + 1; VectorIndex totalMatSize = (qLen + 1) * nCols; // // For now the scoreMat and path mat maintained outside this // function so that they may have different sizes from the affine // matrices. // if (scoreMat.size() < totalMatSize) { scoreMat.resize(totalMatSize); pathMat.resize(totalMatSize); } if (hpInsScoreMat.size() < totalMatSize) { hpInsScoreMat.resize(totalMatSize); hpInsPathMat.resize(totalMatSize); insScoreMat.resize(totalMatSize); insPathMat.resize(totalMatSize); } // // Initialze matrices // std::fill(scoreMat.begin(), scoreMat.begin() + totalMatSize, 0); std::fill(pathMat.begin(), pathMat.begin() + totalMatSize, NoArrow); std::fill(hpInsScoreMat.begin(), hpInsScoreMat.begin() + totalMatSize, 0); std::fill(hpInsPathMat.begin(), hpInsPathMat.begin() + totalMatSize, NoArrow); std::fill(insScoreMat.begin(), insScoreMat.begin() + totalMatSize, 0); std::fill(insPathMat.begin(), insPathMat.begin() + totalMatSize, NoArrow); // // Initialize the boundaries of the DP matrix. // int q, t; if (alignType != TargetFit) { insScoreMat[rc2index(0, k, nCols)] = 0; insPathMat[rc2index(0, k, nCols)] = AffineInsOpen; for (q = 1; q <=k && q < (int) qLen + 1; q++ ){ insScoreMat[rc2index(q, k - q, nCols)] = q * insExtend + insOpen; insPathMat[rc2index(q, k-q, nCols)] = AffineInsUp; } } else if (alignType == TargetFit) { // // Allow free gap penalties at the beginning of the alignment. // insScoreMat[rc2index(0, k, nCols)] = 0; insPathMat[rc2index(0, k, nCols)] = AffineInsOpen; for (q = 1; q <= k && q < (int) qLen + 1; q++ ){ insScoreMat[rc2index(q, k - q, nCols)] = 0; insPathMat[rc2index(q, k-q, nCols)] = AffineInsUp; } } // // Assign score for (0,0) position in matrix -- aligning a gap to a gap // which should just be a finished alignment. There is no cost for // gap-gap alignment. // hpInsScoreMat[rc2index(0,k,nCols)] = 0; hpInsPathMat[rc2index(0,k,nCols)] = AffineHPInsOpen; for (q = 1; q <= k && q < (int) qLen + 1; q++) { hpInsScoreMat[rc2index(q, k - q, nCols)] = q * hpInsExtend + hpInsOpen; hpInsPathMat[rc2index(q,k-q,nCols)] = AffineHPInsUp; } for (t = k+1; t < (int) nCols; t++ ) { hpInsScoreMat[rc2index(0, t, nCols)] = INF_SCORE;// hpInsOpen + (t - k) * hpInsExtend;//; //INF_SCORE; hpInsPathMat[t] = NoArrow; //AffineHPInsOpen ; //NoArrow; insScoreMat[t] = INF_SCORE; //insOpen + (t - k) * insExtend; //INF_SCORE; insPathMat[t] = NoArrow; //AffineInsOpen; //NoArrow; } for (q = 1; q <= k && q < (int) qLen + 1; q++) { scoreMat[rc2index(q, k - q, nCols)] = insScoreMat[rc2index(q,k-q,nCols)]; pathMat[rc2index(q, k - q , nCols)] = AffineInsClose; } for (t = 1; t <= (int) k; t++) { scoreMat[rc2index(0, t + k , nCols)] = t * del; pathMat[rc2index(0, t + k , nCols)] = Left; } // // The recurrence relation here is a slight modification of the // standard affine gap alignment. Deletions are non-affine. Insertions // are affine with different scores for homopolymer insertions, and // an affine score for mixed insertions. // int matchScore, delScore; int hpInsExtendScore, hpInsOpenScore, insOpenScore, insExtendScore; int minHpInsScore, minInsScore; for (q = 1; q <= (int) qLen; q++) { for (t = q - k; t < (int) q + k + 1; t++) { if (t < 1) { continue; } if ((DNALength) t > tLen) { break; } VectorIndex upper = rc2index(q-1, k + t - q + 1, nCols); VectorIndex curIndex = rc2index(q, k + t - q, nCols); if (t < q + k) hpInsOpenScore = scoreMat[upper] + hpInsOpen; else hpInsOpenScore = INF_SCORE; // // The homopolymer insertion score is defined only when the previous nucleotide // is the same as the current, in which case the homopolymer insertion score // is used. If the current and previous nucleotide in the query are different, // the extension is not possible, and the best that can happen is a gap open. // if (q > 1 and qSeq[q-1] == qSeq[q-2]) { if (t < q + k) hpInsExtendScore = hpInsScoreMat[upper] + hpInsExtend; else hpInsExtendScore = INF_SCORE; } else { hpInsExtendScore = INF_SCORE; } // // Since this is only allowing insertions, this grid has only horizontal and // elevation arrows. // if (hpInsOpenScore < hpInsExtendScore) { hpInsPathMat[curIndex] = AffineHPInsOpen; minHpInsScore = hpInsOpenScore; } else { hpInsPathMat[curIndex] = AffineHPInsUp; minHpInsScore = hpInsExtendScore; } hpInsScoreMat[curIndex] = minHpInsScore; if (t < q + k) { insOpenScore = scoreMat[upper] + insOpen; insExtendScore = insScoreMat[upper] + insExtend; } else { insOpenScore = INF_SCORE; insExtendScore = INF_SCORE; } if (insOpenScore < insExtendScore) { insPathMat[curIndex] = AffineInsOpen; minInsScore = insOpenScore; } else { insPathMat[curIndex] = AffineInsUp; minInsScore = insExtendScore; } insScoreMat[curIndex] = minInsScore; // On left boundary of k-band. // do not allow deletions of t. if (t == q - k) { delScore = INF_SCORE; } else { // cur row = q // cur col = t - q // prev col therefore t - q - 1 // and offset from diagonal is k + t - q - 1 delScore = scoreMat[rc2index(q, k + t - q - 1, nCols)] + del; } // cur row = q // cur col = t - q // cur query index = q - 1 // cur target index = t - 1 // therefore match row (up) = q // match col (left, but since up shifted right) = t - q assert(rc2index(q - 1, k + t - q, nCols) < scoreMat.size()); assert(t-1 >= 0); assert(q-1 >= 0); matchScore = scoreMat[rc2index(q - 1, k + t - q, nCols)] + matchMat[ThreeBit[qSeq.seq[q-1]]][ThreeBit[tSeq.seq[t-1]]]; // // Possibly on right boundary of k-band, in which // case do not allow insertions from q. int minScore = MIN(matchScore, MIN(delScore, MIN(minInsScore, minHpInsScore))); curIndex = rc2index(q, k + t - q, nCols); assert(curIndex < scoreMat.size()); scoreMat[curIndex] = minScore; if (minScore == matchScore) { pathMat[curIndex] = Diagonal; } else if (minScore == delScore) { pathMat[curIndex] = Left; } else if (minScore == minInsScore) { pathMat[curIndex] = AffineInsClose; } else { pathMat[curIndex] = AffineHPInsClose; } } } /* std::cout << "tracing back from: " << q << ", " << t << std::endl; std::cout << "match score: " << std::endl; PrintFlatMatrix(&scoreMat[0], qLen + 1, nCols, std::cout); std::cout << " path: " << std::endl; PrintFlatMatrix(pathMat, qLen + 1, nCols, std::cout); std::cout << "hp score: " << std::endl; PrintFlatMatrix(&hpInsScoreMat[0], qLen + 1, nCols, std::cout); std::cout << "hp path: " << std::endl; PrintFlatMatrix(hpInsPathMat, qLen + 1, nCols, std::cout); std::cout << "normal affine ins score: " << std::endl; PrintFlatMatrix(&insScoreMat[0], qLen + 1, nCols, std::cout); std::cout << "normal affine ins path: " << std::endl; PrintFlatMatrix(&insPathMat[0], qLen + 1, nCols, std::cout); */ vector optAlignment; // First find the end position matrix. int minScoreTPos, minScore; int minScoreQPos; if (alignType == Global) { q = qLen ; t = k - ((int)qLen - (int)tLen); } else if (alignType == QueryFit) { q = qLen; minScoreTPos = max(q-k,1); DNALength index = rc2index(qLen, k + minScoreTPos - q, nCols); minScore = scoreMat[index]; for (t = q - k; t < (int) q + k + 1; t++) { if (t < 1) { continue;} if (t > tLen) { break;} int index = rc2index(qLen,k + t - q,nCols); if (scoreMat[index] < minScore) { minScoreTPos = t; minScore = scoreMat[index ]; } } t = k - ((int)qLen - minScoreTPos); } else if (alignType == TargetFit) { t = tLen; int qStart = max(0,min((int)qLen, (int)tLen) - max(0, k - max(((int)tLen) - ((int)qLen), 0))); int qEnd = min(qLen, tLen + k) + 1; minScoreQPos = qStart; int index = rc2index(minScoreQPos, k - (minScoreQPos - tLen), nCols); minScore = scoreMat[index]; for (q = qStart; q < qEnd; q++) { // add to k since this is going up. index = rc2index(q, k + (q - tLen), nCols); if (scoreMat[index] < minScore) { minScoreQPos = q; minScore = scoreMat[index]; } } q = minScoreQPos; t = (k+((int)q-(int)tLen)); } int optScore = scoreMat[rc2index(q, t, nCols)]; Arrow arrow; MatrixLabel curMatrix = Match; while ((q > 0) or (q == 0 and t > k)) { assert(t < 2*k+1); if (curMatrix == Match) { arrow = pathMat[rc2index(q,t, nCols)]; if (arrow == Diagonal) { optAlignment.push_back(arrow); q--; } else if (arrow == Left) { optAlignment.push_back(arrow); t--; } // // The following two conditions change matrices // without changing coordinates, since the gap close // just changes state without adding to the alignment. // else if (arrow == AffineInsClose) { curMatrix = AffineIns; } else if (arrow == AffineHPInsClose) { curMatrix = AffineHPIns; } } else if (curMatrix == AffineHPIns) { // // The current arrow = hpInsPathMat[rc2index(q,t,nCols)]; if (arrow == AffineHPInsOpen) { curMatrix = Match; } else if (arrow != AffineHPInsUp) { std::cout << "ERROR! Affine homopolymer insertion path matrix MUST only have UP or OPEN arrows." << std::endl; assert(0); } optAlignment.push_back(Up); q--; t++; } else if (curMatrix == AffineIns) { arrow = insPathMat[rc2index(q,t,nCols)]; if (arrow == AffineInsOpen) { curMatrix = Match; } else if (arrow != AffineInsUp) { std::cout << "ERROR! Affine insertion path matrix MUST only have UP or OPEN arrows."< #include #include #include #include #include #include #include "AlignmentUtils.hpp" using namespace blasr; int ComputeAlignmentScore( std::string &queryStr, std::string &textStr, int matchScores[5][5], int ins, int del) { DistanceMatrixScoreFunction scoreFn(matchScores, ins, del); return ComputeAlignmentScore(queryStr, textStr, scoreFn); } int GetNumberWidth(unsigned int value) { // 0 has a width of 1. int width = 1; while (value / 10 > 0) { value = value / 10; ++width; } return width; } int ComputeDrift(Block &cur, Block &next) { int tGap = (next.tPos - cur.TEnd()); int qGap = (next.qPos - cur.QEnd()); int commonGap = 0; if (tGap > 0 and qGap > 0) { commonGap = abs(tGap - qGap); } tGap -= commonGap; qGap -= commonGap; return tGap - qGap; } blasr_libcpp-master/alignment/algorithms/alignment/AlignmentUtils.hpp000066400000000000000000000124001260756663100265710ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_UTILS_HPP_ #define _BLASR_ALIGNMENT_UTILS_HPP_ #include #include "DNASequence.hpp" #include "datastructures/alignment/Alignment.hpp" #include "algorithms/alignment/DistanceMatrixScoreFunction.hpp" enum AlignmentType { Local, // Standard Smith-Waterman Global, // Standard Needleman-Wuncsh QueryFit, // No gap penalties from query. TargetFit, // For when the query engulfs the target. Overlap, // No gap penalty at the beginning of // query, nor at the end of text ** // not yet implemented for k-band **, FrontAnchored, // Require the alignment to align // pos 0,0 in the matrix EndAnchored, // Require the alignment to align // the pos m,n in the matrix // Score alignment types solely compute the score // of an alignment and do not store the actual // alignment itself. This is fast for filtering // potential alignments that may be re-aligned // later to store the actual alignment. Fit, // No gap penalties at the beginning nor ends of alignments. TSuffixQPrefix, // Same as overlap TPrefixQSuffix, // so that the order of the alignment does not have to be reversed ScoreGlobal, ScoreLocal, ScoreQueryFit, ScoreTargetFit, ScoreOverlap, ScoreFrontAnchored, ScoreEndAnchored, ScoreTSuffixQPrefix, ScoreTPrefixQSuffix, // // A LocalBoundaries alignment is in-between a // score-only and full-alignment. The full path // matrix is computed, but rather // than computing an alignment, simply the // (qStart, qLength), (tStart, tLength) // coordinates of the alignment are returned. // LocalBoundaries, // // A SignificanceLimited alignment is a banded // alignment that continues alignment until the // score drops below a certain threshold below // the maximum score. // SignificanceLimited }; inline int ComputeAlignmentScore( std::string& queryStr, std::string& textStr, int matchScores[5][5], int ins, int del); template inline int ComputeAlignmentScore( std::string& queryStr, std::string& textStr, T_ScoreFn & scoreFn, bool useAffineScore = false); template int ComputeAlignmentScore(blasr::Alignment& alignment, T_QuerySequence& query, T_TargetSequence& text, T_ScoreFn& scoreFn, bool useAffinePenalty = false); template int ComputeAlignmentScore(blasr::Alignment &alignment, T_QuerySequence &query, T_TargetSequence &text, int matchScores[5][5], int ins, int del); int GetNumberWidth(unsigned int value); template inline void PrintCompareSequencesAlignmentStats(T_Alignment &alignment, std::ostream &out); template inline int ReadCompareSequencesAlignmentStats(std::istream &in, T_Alignment &alignment); template inline int ReadCompSeqAlignment(std::istream &in, T_Alignment &alignment); /* * This should be changed to read any type of alignment, since templates are being * used. */ inline void ReadCompSeqAlignments(std::string &compSeqAlignmentFileName, std::vector &alignments); inline void PrintAlignmentStats(blasr::Alignment &alignment, std::ostream &out); template void AppendGapCharacters(blasr::Gap &gap, T_QuerySequence &query, T_TargetSequence &text, DNALength &q, DNALength &t, char mismatchChar, char gapChar, std::string &textStr, std::string &alignStr, std::string &queryStr); template void CreateAlignmentStrings(T_Alignment &alignment, T_QuerySequence &query, T_TargetSequence &text, std::string &textStr, std::string &alignStr, std::string &queryStr, DNALength queryLength=0, DNALength textLength=0); template void ComputeAlignmentStats(T_Alignment & alignment, Nucleotide* qSeq, Nucleotide * tSeq, T_ScoreFn & scoreFn, bool useAffineScore = false); template void ComputeAlignmentStats(T_Alignment &alignment, Nucleotide* qSeq, Nucleotide *tSeq, int matchMatrix[5][5], int ins, int del); template int ComputeDrift(T_Alignment &alignment); int ComputeDrift(blasr::Block &cur, blasr::Block &next); template void RemoveAlignmentPrefixGaps(T_Alignment &alignment); // QVsToCmpH5QVs converts the optional QVs read from a SAM file into something // that's ready to be written to the HDFArrays of a cmp.h5 file. This involves // two things: First, it needs to be converted from a std::string to a vector // of either chars or UChars. Second, it needs to have appropriate gap // characters inserted. The location of gaps if found using the byteAlignment. template void QVsToCmpH5QVs(const std::string &fieldName, const std::string &qvs, const std::vector &byteAlignment, bool isTag, std::vector *gappedQVs); #include "AlignmentUtilsImpl.hpp" #endif // _BLASR_ALIGNMENT_UTILS_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/AlignmentUtilsImpl.hpp000066400000000000000000000433751260756663100274320ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_UTILS_IMPL_HPP_ #define _BLASR_ALIGNMENT_UTILS_IMPL_HPP_ #include using namespace blasr; template int ComputeAlignmentScore(Alignment &alignment, T_QuerySequence &query, T_TargetSequence &text, T_ScoreFn &scoreFn, bool useAffinePenalty) { VectorIndex b, q, t, l, bi, gi; int alignmentScore = 0; for (b = 0; b < alignment.blocks.size(); b++ ) { for ((q = alignment.qPos + alignment.blocks[b].qPos, t = alignment.tPos + alignment.blocks[b].tPos, l = 0) ; l < alignment.blocks[b].length; q++, t++, l++) { alignmentScore += scoreFn.Match(text, t, query, q); } if (alignment.gaps.size() == alignment.blocks.size() + 1) { for (gi = 0; gi < alignment.gaps[b+1].size(); gi++) { if (alignment.gaps[b+1][gi].seq == Gap::Target) { if (useAffinePenalty) { alignmentScore += scoreFn.affineOpen + alignment.gaps[b+1][gi].length * scoreFn.affineExtend; } else { alignmentScore += alignment.gaps[b+1][gi].length * scoreFn.ins; } } else { if (useAffinePenalty) { alignmentScore += scoreFn.affineOpen + alignment.gaps[b+1][gi].length * scoreFn.affineExtend; } else { alignmentScore += alignment.gaps[b+1][gi].length * scoreFn.del; } } } } } return alignmentScore; } template int ComputeAlignmentScore(blasr::Alignment &alignment, T_QuerySequence &query, T_TargetSequence &text, int matchScores[5][5], int ins, int del) { DistanceMatrixScoreFunction scoreFn(matchScores, ins, del); return ComputeAlignmentScore(alignment, query, text, scoreFn); } template int ComputeAlignmentScore(std::string &queryStr, std::string &textStr, T_ScoreFn &scoreFn, bool useAffineScore) { if (queryStr.size() != textStr.size()) { std::cout << "Computing alignment score using invalid alignment string." << std::endl; std::cout << "Bailing out."<< std::endl; exit(1); } VectorIndex i; int score = 0; int alignStrLen = queryStr.size(); for(i = 0; i < alignStrLen; i++) { if (queryStr[i] != '-' and textStr[i] != '-') { score += scoreFn.scoreMatrix[ThreeBit[(int)queryStr[i]]][ThreeBit[(int)textStr[i]]]; } else { if (useAffineScore) { // // Compute affine gap scoring. For now this uses symmetric insertion/deletion penalties. // int gapEnd = i; while (gapEnd < queryStr.size() and gapEnd < textStr.size() and (queryStr[gapEnd] == '-' or textStr[gapEnd] == '-')) { ++gapEnd; } int gapLength = gapEnd - i; score += scoreFn.affineOpen + gapLength * scoreFn.affineExtend; // // Advance past gap -1, so that at the top of the for loop i // will be at the end of the gap. // i = gapEnd - 1; } else { // // Use non-affine gap scoring. // if (queryStr[i] == '-' and textStr[i] != '-') { score += scoreFn.del; } else if (queryStr[i] != '-' and textStr[i] == '-') { score += scoreFn.ins; } else { score += scoreFn.scoreMatrix[4][4]; } } } } return score; } /* * This should be changed to read any type of alignment, since templates are being * used. */ inline void ReadCompSeqAlignments(std::string &compSeqAlignmentFileName, std::vector &alignments) { std::ifstream in; CrucialOpen(compSeqAlignmentFileName, in); CompSeqAlignment alignment; while (ReadCompSeqAlignment(in, alignment)) { alignments.push_back(alignment); } } inline void PrintAlignmentStats(Alignment &alignment, std::ostream &out) { out << " nMatch: " << alignment.nMatch << std::endl; out << " nMisMatch: " << alignment.nMismatch << std::endl; out << " nIns: " << alignment.nIns << std::endl; out << " nDel: " << alignment.nDel << std::endl; out << " %sim: " << alignment.pctSimilarity << std::endl; out << " Score: " << alignment.score << std::endl; } template inline void PrintCompareSequencesAlignmentStats(T_Alignment &alignment, std::ostream &out) { int lastBlock; lastBlock = alignment.blocks.size() -1; int qLength, tLength; if (lastBlock >= 0) { qLength = (alignment.blocks[lastBlock].qPos + alignment.blocks[lastBlock].length) ; tLength = (alignment.blocks[lastBlock].tPos + alignment.blocks[lastBlock].length); } else { qLength = tLength = 0; } // // First print the query // int alignmentQStart; if (lastBlock >= 0) { alignmentQStart = alignment.qPos + alignment.qAlignedSeqPos; } else { alignmentQStart = alignment.qAlignedSeqPos; } out << alignment.qName << " " << alignment.qLength << " " << alignmentQStart << " " << alignmentQStart + qLength; if (alignment.qStrand == 0) { out << " + "; } else { out << " - "; } int alignmentTStart; if (lastBlock >= 0) { alignmentTStart = alignment.tPos + alignment.tAlignedSeqPos; } else { alignmentTStart = 0; } out << " " << alignment.tName << " " << alignment.tLength; if (alignment.tStrand == 0) { out << " " << alignmentTStart << " " << alignmentTStart + tLength; out << " + "; } else { out << " " << alignment.tLength - (alignmentTStart + tLength) << " " << alignment.tLength - (alignmentTStart); out << " - "; } out << alignment.score << " " << alignment.nMatch << " " << alignment.nMismatch << " " << alignment.nIns << " " << alignment.nDel << " " << (int) alignment.mapQV << " "; } template inline int ReadCompareSequencesAlignmentStats(std::istream &in, T_Alignment &alignment) { int qEnd, tEnd; int qLength, tLength; char qStrand, tStrand; if (!(in >> alignment.qName )) return 0; if (!(in >> qLength)) return 0; if (!(in >> alignment.qPos)) return 0; if (!(in >> qEnd)) return 0; if (!(in >> qStrand)) return 0; if (!(in >> alignment.tName)) return 0; if (!(in >> tLength)) return 0; if (!(in >> alignment.tPos)) return 0; if (!(in >> tEnd)) return 0; if (!(in >> tStrand)) return 0; if (!(in >> alignment.score)) return 0; if (!(in >> alignment.nMatch)) return 0; if (!(in >> alignment.nMismatch)) return 0; if (!(in >> alignment.nIns)) return 0; if (!(in >> alignment.nDel)) return 0; return 1; } template inline int ReadCompSeqAlignment(std::istream &in, T_Alignment &alignment) { if (!ReadCompareSequencesAlignmentStats(in, alignment)) return 0; std::string alignStr; if (!(in >> alignment.qString)) return 0; if (!(in >> alignStr)) return 0; if (!(in >> alignment.tString)) return 0; std::string eol; std::getline(in, eol); return 1; } template void AppendGapCharacters(Gap &gap, T_QuerySequence &query, T_TargetSequence &text, DNALength &q, DNALength &t, char mismatchChar, char gapChar, std::string &textStr, std::string &alignStr, std::string &queryStr) { int gp; for (gp = 0; gp < gap.length; gp++) { if (gap.seq == Gap::Query) { textStr.push_back(text[t]); alignStr.push_back(mismatchChar); queryStr.push_back(gapChar); t++; } else if (gap.seq == Gap::Target) { textStr.push_back(gapChar); alignStr.push_back(mismatchChar); queryStr.push_back(query[q]); q++; } } } template void CreateAlignmentStrings(T_Alignment &alignment, T_QuerySequence &query, T_TargetSequence &text, std::string &textStr, std::string &alignStr, std::string &queryStr, DNALength queryLength, DNALength textLength) { DNALength q = alignment.qPos; DNALength t = alignment.tPos; DNALength qPos, tPos; DNALength g; char mismatchChar = '*'; char matchChar = '|'; char gapChar = '-'; char gapSeparationChar = ' '; if (alignment.blocks.size() == 0) { textStr = ""; alignStr = ""; queryStr = ""; return; } if (alignment.gaps.size() == 0) { // // If there is no gap list, add the gaps as an offset here. // if (alignment.blocks[0].qPos > 0 or alignment.blocks[0].tPos > 0) { // commonGapLen should be the shorter gap. qPos = alignment.blocks[0].qPos; tPos = alignment.blocks[0].tPos; DNALength commonGapLen = qPos; if (commonGapLen > tPos) { commonGapLen = tPos; } for (g = 0; g < commonGapLen; g++ ) { textStr.push_back(text[t]); alignStr.push_back(mismatchChar); queryStr.push_back(query[q]); t++; q++; } tPos -= commonGapLen; qPos -= commonGapLen; // // one of tPos or qPos is now 0. // The other represents extra sequence // that should be output before starting the alignment DNALength p; for (p = 0; p < tPos; p++) { textStr.push_back(text[t]); alignStr.push_back(gapSeparationChar); queryStr.push_back(gapChar); t++; } for (p = 0; p < qPos; p++) { textStr.push_back(gapChar); alignStr.push_back(gapSeparationChar); queryStr.push_back(query[q]); q++; } } } // // Add gap characters if they are before the beginning of the alignment. // This shouldn't happen, but for some local alignments, it can. // DNALength b, bl, gi; if (alignment.gaps.size() > 0) { // The first gap is before the first block of characters. DNALength gi; for (gi = 0; gi < alignment.gaps[0].size(); gi++) { AppendGapCharacters(alignment.gaps[0][gi], query, text, q, t, mismatchChar, gapChar, textStr, alignStr, queryStr); } } for (b = 0; b < alignment.size() ; b++) { for (bl = 0; bl < alignment.blocks[b].length; bl++ ) { queryStr.push_back(query[q]); textStr.push_back(text[t]); assert(queryLength == 0 or q < queryLength); assert(textLength == 0 or t < textLength); if (TwoBit[query[q]] != TwoBit[text[t]]) alignStr.push_back(mismatchChar); else alignStr.push_back(matchChar); q++; t++; } // // There are no gaps to count after the last block, so // don't add the gapped characters for this. // if (alignment.blocks.size() == 0) continue; if (b == alignment.blocks.size() - 1) { continue; } if (alignment.gaps.size() > 0) { for (gi = 0; gi < alignment.gaps[b+1].size(); gi++) { AppendGapCharacters(alignment.gaps[b+1][gi], query, text, q, t, gapSeparationChar, gapChar, textStr, alignStr, queryStr); } } else { DNALength queryGapLen = (alignment.blocks[b+1].qPos - alignment.blocks[b].qPos - alignment.blocks[b].length); DNALength textGapLen = (alignment.blocks[b+1].tPos - alignment.blocks[b].tPos - alignment.blocks[b].length); if (queryGapLen > 0 or textGapLen > 0) { // commonGapLen should be the shorter gap. DNALength commonGapLen = queryGapLen; if (queryGapLen > textGapLen) { commonGapLen = textGapLen; } textGapLen -= commonGapLen; queryGapLen -= commonGapLen; for (g = 0; g < queryGapLen; g++, q++ ){ textStr.push_back(gapChar); alignStr.push_back(gapSeparationChar); queryStr.push_back(query[q]); } for (g = 0; g < textGapLen; g++, t++ ){ textStr.push_back(text[t]); alignStr.push_back(gapSeparationChar); queryStr.push_back(gapChar); } for (g = 0; g < commonGapLen; g++ ) { textStr.push_back(text[t]); alignStr.push_back(gapSeparationChar); queryStr.push_back(query[q]); t++; q++; } } } } } template void ComputeAlignmentStats(T_Alignment & alignment, Nucleotide* qSeq, Nucleotide * tSeq, T_ScoreFn & scoreFn, bool useAffineScore) { int qp = 0, tp = 0; int nMatch = 0, nMismatch = 0, nIns =0, nDel = 0; float pctSimilarity; std::string textStr, alignStr, queryStr; CreateAlignmentStrings(alignment, qSeq, tSeq, textStr, alignStr, queryStr); int i; int alignLength = textStr.size(); for (i = 0; i < alignLength; i++ ) { if ((textStr[i] != '-') and (queryStr[i] != '-')) { int ti = (int)textStr[i]; int qi = (int)queryStr[i]; if (ThreeBit[ti] == ThreeBit[qi]) { nMatch++; } else { nMismatch++; } tp++; qp++; } else if (textStr[i] == '-' and queryStr[i] != '-') { nIns++; qp++; } else if (queryStr[i] == '-' and textStr[i] != '-') { nDel++; tp++; } } if (tp + qp > 0) { if (textStr.size() + queryStr.size() > 0) { pctSimilarity = (nMatch*2.0) / (textStr.size() + queryStr.size()) * 100; } else { pctSimilarity = 0; } } else { pctSimilarity = 0; } alignment.score = ComputeAlignmentScore(queryStr, textStr, scoreFn); alignment.nMatch = nMatch; alignment.nMismatch = nMismatch; alignment.nDel = nDel; alignment.nIns = nIns; alignment.pctSimilarity = pctSimilarity; } template void ComputeAlignmentStats(T_Alignment &alignment, Nucleotide* qSeq, Nucleotide *tSeq, int matchMatrix[5][5], int ins, int del) { DistanceMatrixScoreFunction scoreFn(matchMatrix, ins, del); ComputeAlignmentStats(alignment, qSeq, tSeq, scoreFn); } template int ComputeDrift(T_Alignment &alignment) { VectorIndex b; int qGap = 0, tGap = 0, commonGap = 0; int drift = 0; int maxDrift = 0; int driftBetweenBlocks; if (alignment.blocks.size() == 0) return 0; for (b = 0; b < alignment.blocks.size() - 1; b++) { driftBetweenBlocks = ComputeDrift(alignment.blocks[b], alignment.blocks[b+1]); drift += driftBetweenBlocks; if (abs(drift) > maxDrift) maxDrift = abs(drift); } return maxDrift; } template void RemoveAlignmentPrefixGaps(T_Alignment &alignment) { if (alignment.gaps.size() == 0) { return; } unsigned int g; int tStart = 0, qStart = 0; for (g = 0; g < alignment.gaps[0].size(); g++) { if (alignment.gaps[0][g].seq == Gap::Target) { qStart += alignment.gaps[0][g].length; } else if (alignment.gaps[0][g].seq == Gap::Query) { tStart += alignment.gaps[0][g].length; } } int b; int nBlocks; for (b = 0, nBlocks = alignment.blocks.size(); b < nBlocks; b++) { alignment.blocks[b].qPos -= qStart; alignment.blocks[b].tPos -= tStart; } alignment.gaps[0].clear(); alignment.tPos += tStart; alignment.qPos += qStart; } template void QVsToCmpH5QVs(const std::string &qvs, const std::vector &byteAlignment, bool isTag, std::vector *gappedQVs) { gappedQVs->clear(); unsigned int qv_i = 0; // QVs and tags get different values at gaps in the read char tagGapChar = 'N'; UChar qvGapChar = 255; for (int i=0; i> 4 == 0) { //Look at upper bits to get query char if (isTag) { gappedQVs->push_back(tagGapChar); } else { gappedQVs->push_back(qvGapChar); } } else { if (isTag) { //std::cout << "Pushing back " << (T)qvs[qv_i] << " for tag " << qvs[qv_i] << std::endl; gappedQVs->push_back((T)qvs[qv_i]); } else { //std::cout << "Pushing back " << (T)qvs[qv_i] - FASTQSequence::charToQuality << " for QV " << qvs[qv_i] << std::endl; gappedQVs->push_back((T)qvs[qv_i] - FASTQSequence::charToQuality); } qv_i++; } } assert(gappedQVs->size() == byteAlignment.size()); } #endif blasr_libcpp-master/alignment/algorithms/alignment/BaseScoreFunction.cpp000066400000000000000000000005311260756663100272030ustar00rootroot00000000000000#include "BaseScoreFunction.hpp" BaseScoreFunction::BaseScoreFunction(int insP, int delP, int subPriorP, int delPriorP, int affineExtensionP, int affineOpenP) { ins = insP; del = delP; substitutionPrior = subPriorP; globalDeletionPrior = delPriorP; affineExtend = affineExtensionP; affineOpen = affineOpenP; } blasr_libcpp-master/alignment/algorithms/alignment/BaseScoreFunction.hpp000066400000000000000000000007251260756663100272150ustar00rootroot00000000000000#ifndef _BLASR_BASE_SCORE_FUNCTION_HPP_ #define _BLASR_BASE_SCORE_FUNCTION_HPP_ class BaseScoreFunction { public: int ins; int del; int substitutionPrior; int globalDeletionPrior; int affineExtend; int affineOpen; BaseScoreFunction(int insP = 0, int delP = 0, int subPriorP = 0, int delPriorP = 0, int affineExtensionP = 0, int affineOpenP = 0); }; #endif // _BLASR_BASE_SCORE_FUNCTION_HPP_` blasr_libcpp-master/alignment/algorithms/alignment/DistanceMatrixScoreFunction.hpp000066400000000000000000000027271260756663100312660ustar00rootroot00000000000000#ifndef _BLASR_DISTANCE_MATRIX_SCORE_FUNCTION_HPP_ #define _BLASR_DISTANCE_MATRIX_SCORE_FUNCTION_HPP_ #include "BaseScoreFunction.hpp" #include "ScoreMatrices.hpp" template class DistanceMatrixScoreFunction : public BaseScoreFunction { public: int scoreMatrix[5][5]; DistanceMatrixScoreFunction(); DistanceMatrixScoreFunction(int scoreMatrixP[5][5], int insertionP, int deletionP); void InitializeScoreMatrix(int scoreMatrixP[5][5]); int Deletion(T_RefSequence &seq, DNALength pos, T_QuerySequence &querySeq, DNALength queryPos); int Insertion(T_RefSequence &seq, DNALength pos, T_QuerySequence &querySeq, DNALength queryPos); int Deletion(T_RefSequence &seq, DNALength pos); int Match(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos); // // Define the score function on dereferenced pointers for speed. // int Match(Nucleotide ref, Nucleotide query); int Insertion(T_QuerySequence &seq, DNALength pos); float NormalizedMatch(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos); float NormalizedInsertion(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos); float NormalizedDeletion(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos); }; #include "DistanceMatrixScoreFunctionImpl.hpp" #endif // _BLASR_DISTANCE_MATRIX_SCORE_FUNCTION_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/DistanceMatrixScoreFunctionImpl.hpp000066400000000000000000000066661260756663100321160ustar00rootroot00000000000000#ifndef _BLASR_DISTANCE_MATRIX_SCORE_FUNCTION_IMPL_HPP_ #define _BLASR_DISTANCE_MATRIX_SCORE_FUNCTION_IMPL_HPP_ #include #include #include #include #include #include #include "Types.h" #include "NucConversion.hpp" #include "Enumerations.h" #include "DNASequence.hpp" #include "FASTASequence.hpp" #include "FASTQSequence.hpp" #include "DistanceMatrixScoreFunction.hpp" template void DistanceMatrixScoreFunction::InitializeScoreMatrix(int scoreMatrixP[5][5]) { int i, j; for (i = 0; i < 5; i++ ){ for (j = 0; j < 5; j++ ){ scoreMatrix[i][j] = scoreMatrixP[i][j]; } } } template DistanceMatrixScoreFunction::DistanceMatrixScoreFunction() : BaseScoreFunction() { } template DistanceMatrixScoreFunction::DistanceMatrixScoreFunction(int scoreMatrixP[5][5], int insertionP, int deletionP) : BaseScoreFunction() { InitializeScoreMatrix(scoreMatrixP); ins = insertionP; del = deletionP; } template int DistanceMatrixScoreFunction::Deletion( T_RefSequence &seq, DNALength pos, T_QuerySequence &querySeq, DNALength queryPos) { return del; } template int DistanceMatrixScoreFunction::Insertion( T_RefSequence &seq, DNALength pos, T_QuerySequence &querySeq, DNALength queryPos) { return ins; } template int DistanceMatrixScoreFunction::Deletion( T_RefSequence &seq, DNALength pos) { return del; } template int DistanceMatrixScoreFunction::Match( T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos) { return scoreMatrix[ThreeBit[ref[refPos]]][ThreeBit[query[queryPos]]]; } // // Define the score function on dereferenced pointers for speed. // template int DistanceMatrixScoreFunction::Match( Nucleotide ref, Nucleotide query) { return scoreMatrix[ThreeBit[ref]][ThreeBit[query]]; } template int DistanceMatrixScoreFunction::Insertion( T_QuerySequence &seq, DNALength pos) { return ins; } template float DistanceMatrixScoreFunction ::NormalizedMatch(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos) {return 0;} template float DistanceMatrixScoreFunction ::NormalizedInsertion(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos) {return 0;} template float DistanceMatrixScoreFunction::NormalizedDeletion(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos) {return 0;} #endif // _BLASR_DISTANCE_MATRIX_SCORE_FUNCTION_IMPL_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/ExtendAlign.cpp000066400000000000000000000032241260756663100260330ustar00rootroot00000000000000#include "ExtendAlign.hpp" RCToIndex::RCToIndex() { qStart = 0; tStart = 0; band = middleCol = nCols = 0; } int RCToIndex::operator()(int r, int c, int &index) { // // First do some error checking on the row and column to see if it // is within the band. // if (r < qStart) { return 0; } if (c < tStart) { return 0; } r -= qStart; c -= tStart; if (std::abs(r-c) > band) { return 0; } // outside band range. if (c < 0) { return 0; } if (middleCol - (r - c) >= nCols) { return 0; } index = (r*nCols) + (middleCol - (r - c)); return 1; } int BaseIndex::QNotAtSeqBoundary(int q) { return q != queryAlignLength; } int BaseIndex::TNotAtSeqBoundary(int t) { return t != refAlignLength; } int BaseIndex::QAlignLength() { return queryAlignLength; } int BaseIndex::TAlignLength() { return refAlignLength; } int ForwardIndex::QuerySeqPos(int q) { return queryPos + q; } int ForwardIndex::RefSeqPos(int t) { return refPos + t; } int ForwardIndex::GetQueryStartPos(int startQ, int endQ) { return queryPos + startQ + 1; } int ForwardIndex::GetRefStartPos(int startT, int endT) { return refPos + startT + 1; } void ForwardIndex::OrderArrowVector(std::vector &mat) { reverse(mat.begin(), mat.end()); } int ReverseIndex::QuerySeqPos(int q) { return queryPos - q; } int ReverseIndex::RefSeqPos(int t) { return refPos - t; } int ReverseIndex::GetQueryStartPos(int startQ, int endQ) { return queryPos - (endQ-1); } int ReverseIndex::GetRefStartPos(int startT, int endT) { return refPos - (endT-1); } void ReverseIndex::OrderArrowVector(std::vector &mat) { } blasr_libcpp-master/alignment/algorithms/alignment/ExtendAlign.hpp000066400000000000000000000340521260756663100260430ustar00rootroot00000000000000#ifndef _BLASR_EXTEND_ALIGN_HPP_ #define _BLASR_EXTEND_ALIGN_HPP_ #include #include #include "defs.h" #include "KBandAlign.hpp" #include "NucConversion.hpp" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Alignment.hpp" class RCToIndex { public: int qStart, tStart; int middleCol; int band; int nCols; RCToIndex(); int operator()(int r, int c, int &index); }; class BaseIndex { public: int queryPos, refPos; int queryAlignLength, refAlignLength; int QNotAtSeqBoundary(int q); int TNotAtSeqBoundary(int t); int QAlignLength(); int TAlignLength(); }; class ForwardIndex : public BaseIndex { public: int QuerySeqPos(int q); int RefSeqPos(int t); int GetQueryStartPos(int startQ, int endQ); int GetRefStartPos(int startT, int endT); void OrderArrowVector(std::vector &mat); }; class ReverseIndex : public BaseIndex { public: int QuerySeqPos(int q); int RefSeqPos(int t); int GetQueryStartPos(int startQ, int endQ); int GetRefStartPos(int startT, int endT); void OrderArrowVector(std::vector &mat); }; template int ExtendAlignment(T_QuerySeq &querySeq, int queryPos, T_RefSeq &refSeq, int refPos, int k, std::vector &scoreMat, std::vector &pathMat, T_Alignment &alignment, T_ScoreFn &scoreFn, T_Index &index, int minExtendNBases=1, // Require that there // are more than one // base to align. int maxNDrops=2 // A drop is a row where // the alignment is // extended without // increasing the alignment // score. maxnDrops is the // maximum number of times // that one may have before // terminating the alignment // ) { // // Try extending an alignment in the forward direction as long the // maximum score that is extended is above a threshold above the // initial score. This dynamically grows the alignment matrices as // the alignment is extended (or the limits of the alignment // matrices since reusable buffers are used). // int nCols = 2 * k + 1 + 1; // 2*k is for search space, +1 is for the // middle band, and the last +1 is for the // boundary conditions at the beginning of // the array. RCToIndex rcToIndex; rcToIndex.band = k; rcToIndex.nCols = nCols; rcToIndex.middleCol = k+2-1; if (index.queryAlignLength < minExtendNBases or index.refAlignLength < minExtendNBases) { // // One of the sequences isn't long enough to even try to extend, // just bail with an empty alignment. // return 0; } // // Preallocate arrays to be at least k long. The full matrix may // not be loaded. // int matSize = nCols * (k+1); if (scoreMat.size() < nCols * (k+1)) { scoreMat.resize(nCols * (k+1)); pathMat.resize(nCols * (k+1)); } // // Initialize boundary conditions. // int q, t; // Initialize first column for insertions. int firstIndex; fill(scoreMat.begin(), scoreMat.begin() + matSize, 0); fill(pathMat.begin(), pathMat.begin() + matSize, NoArrow); rcToIndex(0, 0, firstIndex); scoreMat[firstIndex] = 0; pathMat[firstIndex] = NoArrow; // Initialize insertion penalties. t = 0; int i; int pi; for (q = 1; q <= k and index.QNotAtSeqBoundary(q-1); q++) { bool res = rcToIndex(q, t, i); assert(res); res = rcToIndex(q-1, t, pi); int qSeqPos = index.QuerySeqPos(q-1); scoreMat[i] = scoreMat[pi] + scoreFn.Insertion(querySeq, qSeqPos); pathMat[i] = Up; // cout << "initializing insertion gap penalty for " << q << " " << refPos-1 << " " << i << " " << scoreMat[i] << endl; } // Initialize the first row for deletions. q = 0; for (t = 1; t <= k and index.TNotAtSeqBoundary(t-1); t++) { bool res = rcToIndex(q, t, i); assert(res); int previ; res = rcToIndex(q,t-1,previ); int qSeqPos = index.QuerySeqPos(0); scoreMat[i] = scoreMat[previ] + scoreFn.Deletion(querySeq, qSeqPos); pathMat[i] = Left; // cout << "initializing deletion gap penalty for " << ((int)queryPos)-1 << " " << t << " " << i << " " << scoreMat[i] << endl; } /* PrintFlatMatrix(&scoreMat[0], k , nCols, cout); cout << endl; PrintFlatMatrix(&pathMat[0], k, nCols, cout); cout << endl; */ int nDrops = 0; int prevRowMinScore = INF_INT; int globalMinScore = INF_INT; int globalMinScoreQPos = 0; int globalMinScoreTPos = 0; int curIndex = -1; int maxAlignLength = std::min(index.QAlignLength(), index.TAlignLength()) + maxNDrops; for (q = 1; (index.QNotAtSeqBoundary(q-1) and nDrops < maxNDrops and q < maxAlignLength); q++ ) { // // Grow the path and score matrices by another row if this has // extended beyond their current capacity. // if ((q+1) * nCols > scoreMat.size()) { scoreMat.resize((q+1)*nCols); pathMat.resize((q+1)*nCols); } // // Now score the latest row. // int curRowMinScore = INF_INT; int diagLength = q; int tStart = std::max((int) 1, ((int)diagLength) - k); int tEnd = std::min((int) (diagLength + k +1), index.TAlignLength() + 1 ); int qSeqPos, tSeqPos; for (t = tStart; t < std::min(tEnd, maxAlignLength); t++) { int insIndex, delIndex, matchIndex; bool hasInsIndex = false, hasDelIndex = false, hasMatchIndex = false, hasCurIndex = false; hasCurIndex = rcToIndex(q, t, curIndex); assert(hasCurIndex); hasDelIndex = rcToIndex(q, t - 1, delIndex); hasInsIndex = rcToIndex(q - 1, t, insIndex); hasMatchIndex = rcToIndex(q-1, t-1, matchIndex); int insScore, delScore, matchScore; delScore = INF_INT; insScore = INF_INT; matchScore = INF_INT; // cout << "ins index: " << insIndex << " del: " << delIndex << " match index " << matchIndex << endl; qSeqPos = index.QuerySeqPos(q-1); // The offset is to allow for the boundary buffer. tSeqPos = index.RefSeqPos(t-1); // ditto. /* if (scoreMat[insIndex] == -1) { cout << "bleh" << endl; } if (scoreMat[matchIndex] == -1) { cout << "bleh" << endl; } if (scoreMat[delIndex] == -1) { cout << "bleh" << endl; } if (scoreFn.Insertion(refSeq, (DNALength) tSeqPos, querySeq, (DNALength) qSeqPos) == -1) { cout << "bleh" << endl; } if (scoreFn.Deletion(refSeq, (DNALength) tSeqPos, querySeq, (DNALength) qSeqPos) == -1) { cout << "ugh" << endl; } if ( scoreFn.Match(refSeq, (DNALength) tSeqPos, querySeq, (DNALength) qSeqPos) == -1) { cout <<" gah" << endl; }*/ if (hasInsIndex) { insScore = scoreMat[insIndex] + scoreFn.Insertion(refSeq, (DNALength) tSeqPos, querySeq, (DNALength) qSeqPos); } if (hasDelIndex) { delScore = scoreMat[delIndex] + scoreFn.Deletion(refSeq, (DNALength) tSeqPos, querySeq, (DNALength) qSeqPos); } if (hasMatchIndex) { matchScore = scoreMat[matchIndex] + scoreFn.Match(refSeq, (DNALength) tSeqPos, querySeq, (DNALength) qSeqPos); } /* cout << "ins score: " << insScore << "[" << scoreMat[insIndex] << "] del score " << delScore << " [" << scoreMat[delIndex] << "] match score " << matchScore << " [" << scoreMat[matchIndex] << "] qchar " << (int) querySeq.seq[qSeqPos] << " tchar " << (int) refSeq.seq[tSeqPos] << endl;*/ int minScore = std::min(matchScore, delScore); minScore = std::min(minScore, insScore); scoreMat[curIndex] = minScore; // cout << "extend: " << qSeqPos << " " << tSeqPos << " " << minScore << endl; if (minScore != INF_INT) { if (minScore == insScore) { pathMat[curIndex] = Up; } if (minScore == delScore) { pathMat[curIndex] = Left; } if (minScore == matchScore) { pathMat[curIndex] = Diagonal; } } else { pathMat[curIndex] = NoArrow; } assert(pathMat[curIndex] != NoArrow); if (minScore < curRowMinScore) { curRowMinScore = minScore; } int nRows = q+1; if (minScore < globalMinScore) { globalMinScore = minScore; globalMinScoreQPos = q; globalMinScoreTPos = t; } } if (curRowMinScore > prevRowMinScore) { nDrops++; } prevRowMinScore = curRowMinScore; } int nRows = q; q = globalMinScoreQPos; t = globalMinScoreTPos; std::vector optAlignment; rcToIndex(q,t,i); // // When the optimal score is on a cell with NoArrow, there is no // good alignment. Only try and trace an alignment out if the path // starts on a good alignment. // if (pathMat[i] != NoArrow) { while(q > 0 or t > 0) { int res; res = rcToIndex(q, t, i); assert(res != 0); Arrow arrow = pathMat[i]; optAlignment.push_back(pathMat[i]); if (pathMat[i] == NoArrow) { assert(pathMat[i] != NoArrow); } if (arrow == Diagonal) { q--; t--; } else if (arrow == Left) { t--; } else if (arrow == Up) { q--; } } } index.OrderArrowVector(optAlignment); alignment.ArrowPathToAlignment(optAlignment); alignment.qPos = index.GetQueryStartPos(q, globalMinScoreQPos); alignment.tPos = index.GetRefStartPos(t, globalMinScoreTPos); return globalMinScore; } template int ExtendAlignmentForward(T_QuerySeq &querySeq, int queryPos, T_RefSeq &refSeq, int refPos, int k, std::vector &scoreMat, std::vector &pathMat, T_Alignment &alignment, T_ScoreFn &scoreFn, int minExtendNBases=1, // Require that there // are more than one // base to align. int maxNDrops=2 // A drop is a row where // the alignment is // extended without // increasing the alignment // score. maxnDrops is the // maximum number of times // that one may have before // terminating the alignment // ) { ForwardIndex forwardIndex; forwardIndex.queryPos = queryPos; forwardIndex.refPos = refPos; // // The alignment does not include queryPos nor refPos. // forwardIndex.queryAlignLength = querySeq.length - queryPos; forwardIndex.refAlignLength = refSeq.length - refPos; int alignScore; alignScore= ExtendAlignment(querySeq, queryPos, refSeq, refPos, k, scoreMat, pathMat, alignment, scoreFn, forwardIndex, minExtendNBases, maxNDrops); alignment.qPos = queryPos; alignment.tPos = refPos; return alignScore; } template int ExtendAlignmentReverse(T_QuerySeq &querySeq, int queryPos, T_RefSeq &refSeq, int refPos, int k, std::vector &scoreMat, std::vector &pathMat, T_Alignment &alignment, T_ScoreFn &scoreFn, int minExtendNBases=1, // Require that there // are more than one // base to align. int maxNDrops=2 // A drop is a row where // the alignment is // extended without // increasing the alignment // score. maxnDrops is the // maximum number of times // that one may have before // terminating the alignment // ) { ReverseIndex reverseIndex; reverseIndex.queryPos = queryPos-1; reverseIndex.refPos = refPos-1; reverseIndex.queryAlignLength = queryPos; reverseIndex.refAlignLength = refPos; int alignScore; alignScore = ExtendAlignment(querySeq, queryPos, refSeq, refPos, k, scoreMat, pathMat, alignment, scoreFn, reverseIndex, minExtendNBases, maxNDrops); return alignScore; } #endif // _BLASR_EXTEND_ALIGN_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/FullQVAlign.hpp000066400000000000000000000123711260756663100257650ustar00rootroot00000000000000#ifndef _BLASR_FULL_QV_ALIGN_HPP_ #define _BLASR_FULL_QV_ALIGN_HPP_ #include "matrix/Matrix.hpp" #include "FASTQSequence.hpp" #include "FASTASequence.hpp" template double FullQVAlign(T_Query &query, T_Reference &target, Matrix &alignProb) { alignProb.Resize(query.length + 1, target.length + 1); alignProb.Initialize(0); DNALength q, t; if (query.length == 0 or target.length == 0) { return 0; } // Initialize boundaries of ins/del/match probability matrices. q = 0; VectorIndex numCols = target.length + 1; VectorIndex numRows = query.length + 1; alignProb[0][0] = 1; for (t = 1; t < numCols; t++ ) { // cannot match to a gap alignProb[0][t] = log(target.GetInsertionQV(t-1)) + alignProb[0][t-1]; } for (q = 1; q < numRows; q++) { alignProb[q][0] = log(query.GetInsertionQV(q-1)) + alignProb[q-1][0]; } // Now compute probability of alignment with the Forward algorithm. for (q = 1; q < numRows; q++) { for (t = 1; t < numCols; t++) { // First compute p_ins[q,t] as transitions from match matrix double logMatchedPulseProb = 0; double logInsertedPulseProb = 0; double logDeletedPulseProb = 0; // // Use inefficient coding for now. // // Compute match, the bases are either the same, in which case // this is simply the product of the probabilities of the two // matches. Otherwise, either one of the pulses may be correct, // and the probability is the union of the two cases. // double matchedPulseProb; if (query.seq[q-1] == target.seq[t-1]) { matchedPulseProb = (1-query.GetSubstitutionQV(q-1)) * (1-target.GetSubstitutionQV(t-1)); } else { matchedPulseProb = (query.GetSubstitutionQV(q-1)/3.0)*(1-target.GetSubstitutionQV(t-1)) + ((1-query.GetSubstitutionQV(q-1)))*(target.GetSubstitutionQV(t-1)/3.0); } matchedPulseProb = exp(alignProb[q-1][t-1])*matchedPulseProb; // // An insertion in the query can be either a normal extra base // in the query, or a deletion in the reference. // // logInsertedPulseProb = uery.GetInsertionQV(q-1)) + alignProb[q-1][t]; double insertedPulseProb = 0; if (target.GetDeletionTag(t-1) != 'N') { // // The target has a pulse that was not strong enough to call a // real incorporation. For now assume that the weak pulse is // the previous nucleotide in the query. So the likelihood of // the weak pulse is influenced by the likelihood of the // previous nucleotide in the query. // // Also, we only consider the previous base to be a missed // weak pulse if the current base is a match. // if (q > 1) { insertedPulseProb = (target.GetPreBaseDeletionQV(t-1, query.seq[q-2]) *target.GetDeletionQV(t-1) + query.GetInsertionQV(q-1)) * exp(alignProb[q-1][t]); } else { // // There can be no pre-base deletion tag here (could probably be an assert statement). // insertedPulseProb = query.GetInsertionQV(q-1) * exp(alignProb[q-1][t]); } } else { insertedPulseProb = (query.GetInsertionQV(q-1) + target.GetDeletionQV(t-1))*exp(alignProb[q-1][t]); } // // An insertion in the target may be either a normal extra base // in the target, or a deletion in the query. // logDeletedPulseProb = target.GetInsertionQV(t-1)) + alignProb[q][t-1]; double deletedPulseProb = 0; if (query.GetDeletionTag(q-1) != 'N') { if (t > 1) { deletedPulseProb = (query.GetPreBaseDeletionQV(q-1, target.seq[t-2]) * query.GetDeletionQV(q-1) + target.GetInsertionQV(t-1))*exp(alignProb[q][t-1]); } else { // There was a dropped pulse before this position, but nothing to align it to. deletedPulseProb = target.GetInsertionQV(t-1) * exp(alignProb[q][t-1]); } } else { deletedPulseProb = (target.GetInsertionQV(t-1) + query.GetDeletionQV(q-1)) *exp(alignProb[q][t-1]); } // Determine the total probability of reaching this position. /* cout << "align prob " << q << " " << t << " " << logMatchedPulseProb << " " << logInsertedPulseProb << " " << logDeletedPulseProb << endl;*/ alignProb[q][t] = log(matchedPulseProb + insertedPulseProb + deletedPulseProb); } } double fullAlignProb = alignProb[numRows-1][numCols-1]; alignProb.Free(); return fullAlignProb; } #endif // _BLASR_FULL_QV_ALIGN_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/GraphPaper.hpp000066400000000000000000000015211260756663100256650ustar00rootroot00000000000000#ifndef GRAPH_PAPER_HPP_ #define GRAPH_PAPER_HPP_ #include "datastructures/alignment/Path.h" #include "matrix/FlatMatrix.hpp" template bool SetBounds(vector &points, DNALength &minPos, DNALength &maxPos, int axis); inline int GetIndex(DNALength pos, DNALength minPos, DNALength maxPos, int nBins); template int GraphPaper(vector &points, int nRows, int nCols, FlatMatrix2D &bins, FlatMatrix2D &scoreMat, FlatMatrix2D &pathMat, vector &onOptPath); template void RemoveOffOpt(vector &points, vector &optPath); #include "GraphPaperImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/alignment/GraphPaperImpl.hpp000066400000000000000000000103101260756663100265030ustar00rootroot00000000000000#ifndef GRAPH_PAPER_IMPL_HPP_ #define GRAPH_PAPER_IMPL_HPP_ template bool SetBounds(vector &points, DNALength &minPos, DNALength &maxPos, int axis) { int i; DNALength maxRow = 0; if (points.size() == 0) { return false; } else { if (axis == 0) { minPos = maxPos = points[0].GetX(); } else { minPos = maxPos = points[0].GetY(); } } for (i = 1; i < points.size(); i++) { DNALength curPos; if (axis == 0) { curPos = points[i].GetX(); } else { curPos = points[i].GetY(); } if (curPos < minPos) { minPos = curPos; } else if (curPos > maxPos) { maxPos = curPos; } } } inline int GetIndex(DNALength pos, DNALength minPos, DNALength maxPos, int nBins) { assert(maxPos != minPos); float diff = pos - minPos; float len = maxPos - minPos; float ratio = diff/len; return min((DNALength)(nBins-1), ((DNALength)(ratio * nBins))); } template int GraphPaper(vector &points, int nRows, int nCols, FlatMatrix2D &bins, FlatMatrix2D &scoreMat, FlatMatrix2D &pathMat, vector &onOptPath) { bins.Resize(nRows, nCols); bins.Fill(0); scoreMat.Resize(nRows+1, nCols+1); pathMat.Resize(nRows+1, nCols+1); scoreMat.Fill(0); pathMat.Fill(NoArrow); onOptPath.resize(points.size()); fill(onOptPath.begin(), onOptPath.end(), false); DNALength xMin, xMax, yMin, yMax; SetBounds(points, xMin, xMax, 0); xMax++; // make half-open interval. SetBounds(points, yMin, yMax, 1); yMax++; // ditto. // // First set up the grid to optimize over. // int i; for (i = 0; i < points.size(); i++) { int rowIndex = GetIndex(points[i].GetX(), xMin, xMax, nRows); int colIndex = GetIndex(points[i].GetY(), yMin, yMax, nCols); bins[rowIndex][colIndex]+= points[i].length; } // // Now optimize using DP. // // First handle boundary strips int r, c; for (r = 1; r < nRows+1; r++) { scoreMat[r][0] = 0; pathMat[r][0] = Up; } for (c = 1; c < nCols+1; c++) { scoreMat[0][c] = 0; pathMat[0][c] = Left; } scoreMat[0][0] = 0; for (r = 1; r < nRows + 1; r++) { for (c = 1; c < nCols + 1; c++) { int diagScore, leftScore, upScore; diagScore = scoreMat[r-1][c-1]; leftScore = scoreMat[r][c-1]; upScore = scoreMat[r-1][c]; int optScore; Arrow optDir; if (diagScore >= leftScore and diagScore >= upScore) { optScore = diagScore; optDir = Diagonal; } else if (leftScore >= diagScore and leftScore >= upScore) { optScore = leftScore; optDir = Left; } else { optScore = upScore; optDir = Up; } scoreMat[r][c] = optScore + bins[r-1][c-1]; pathMat[r][c] = optDir; } } r = nRows; c = nCols; while (r > 0 or c > 0) { Arrow dir = pathMat[r][c]; pathMat[r][c] = Star; if (dir == Diagonal) { r--; c--; } else if (dir == Left) { c--; } else if (dir == Up) { r--; } if (r == 0 and c == 0) { break; } } // // Now mark inclusion/exclusion from matrix. // int nOpt = 0; for (i = 0; i < points.size(); i++) { int rowIndex = GetIndex(points[i].GetX(), xMin, xMax, nRows); int colIndex = GetIndex(points[i].GetY(), yMin, yMax, nCols); if (pathMat[rowIndex+1][colIndex+1] == Star) { onOptPath[i] = true; } else if (pathMat[rowIndex][colIndex+1] == Star) { onOptPath[i] = true; } else if (rowIndex + 2 < nRows and pathMat[rowIndex+2][colIndex+1] == Star) { onOptPath[i] = true; } else if (pathMat[rowIndex+1][colIndex] == Star) { onOptPath[i] = true; } else if (colIndex < nCols + 2 and pathMat[rowIndex+1][colIndex+2] == Star) { onOptPath[i] = true; } if (onOptPath[i]) { ++nOpt; } } return nOpt; } template void RemoveOffOpt(vector &points, vector &optPath) { int i, c; for (i = 0, c = 0; i < points.size(); i++) { if (optPath[i]) { points[c] = points[i]; c++; } } points.resize(c); } #endif blasr_libcpp-master/alignment/algorithms/alignment/GuidedAlign.cpp000066400000000000000000000151131260756663100260050ustar00rootroot00000000000000#include "GuidedAlign.hpp" int GuideRow::GetRowLength() { return tPost + tPre + 1; } int GetBufferIndexFunctor::operator()(Guide &guide, int seqRow, int seqCol, int &index) { // // Whenever a previous index was found, just use the one in the array to the right // int prevIndex = -1; if (index != -1) { index++; return 1; } int row, col; row = seqRow + 1 - seqRowOffset; col = seqCol; // use the variable here for standardized naming. if (row < 0 or row > guideSize ) { return 0; } if (col <= guide[row].t and guide[row].t - col <= guide[row].tPre) { index = guide[row].matrixOffset - (guide[row].t - col); assert(prevIndex == -1 or prevIndex == index); return 1; } else if (col > guide[row].t and col - guide[row].t <= guide[row].tPost) { index = guide[row].matrixOffset + (col - guide[row].t); assert(prevIndex == -1 or prevIndex == index); return 1; } return 0; } int ComputeMatrixNElem(Guide &guide) { int totalSize = 0; int r; for (r = 0; r < guide.size(); r++) { totalSize += guide[r].GetRowLength(); // cout << r << " " << totalSize << endl; assert(guide[r].GetRowLength() >= 0); } return totalSize; } void StoreMatrixOffsets(Guide &guide) { int curMatrixSize = 0; int r; for (r = 0; r < guide.size(); r++) { guide[r].matrixOffset = guide[r].tPre + curMatrixSize; curMatrixSize += guide[r].GetRowLength(); } } float QVToLogPScale(char qv) { return qv/-10.0; } void QVToLogPScale(QualityValueVector &qualVect, int phredVectLength, std::vector &lnVect) { if (phredVectLength > lnVect.size()) { lnVect.resize(phredVectLength); } int i; for (i = 0; i < phredVectLength; i++) { lnVect[i] = qualVect[i]/-10.0; //log(qualVect.ToProbability(i)); } } int AlignmentToGuide(Alignment &alignment, Guide &guide, int bandSize) { guide.clear(); if (alignment.size() == 0) { // no blocks to make guide, exit. return 0; } int tStart, tEnd, qStart, qEnd; int firstBlock = 0; int lastBlock = alignment.size() - 1; tStart = alignment.blocks[firstBlock].tPos; tEnd = alignment.blocks[lastBlock].TEnd(); qStart = alignment.blocks[firstBlock].qPos; qEnd = alignment.blocks[lastBlock].QEnd(); int qAlignLength = qEnd - qStart; // Add one extra block for boundary conditions. guide.resize(qAlignLength+1); // Initilize the first (boundary condition) row. guide[0].t = tStart - 1; guide[0].q = qStart - 1; int drift = abs(tStart - qStart); if (drift > bandSize) { guide[0].tPost = drift; } else { guide[0].tPost = bandSize; } guide[0].tPre = 0; // The first row of the guide matches int q = 0; int t = 0; int guideIndex = 1; int b; for (b = 0; b < alignment.blocks.size(); b++) { // // First add the match stored in block b, each block is a // diagonal, so that makes life easy. // int bp; for (bp = 0; bp < alignment.blocks[b].length; bp++) { guide[guideIndex].t = alignment.blocks[b].tPos + bp; guide[guideIndex].q = alignment.blocks[b].qPos + bp; // // This complicated logic is to determine how far back the band // should stretch. The problem is that if the band stretches // back further than the previous row, it's possible for the // path matrix to go backwards into cells that should not be // touched. // int tDiff = guide[guideIndex].t - guide[guideIndex-1].t; if (bp == 0) { guide[guideIndex].tPre = guide[guideIndex].t - (guide[guideIndex-1].t - guide[guideIndex-1].tPre); guide[guideIndex].tPost = bandSize + abs(drift); } else { // // Within aligned blocks, align around the band size. // int fullLengthTPre = (guide[guideIndex].t - (guide[guideIndex-1].t - guide[guideIndex-1].tPre)); guide[guideIndex].tPre = min(bandSize, fullLengthTPre); guide[guideIndex].tPost = min(MAX_BAND_SIZE, bandSize); //if (guide[guideIndex].tPre > 500 or guide[guideIndex].tPost > 500) { //cout << guideIndex << " " << guide[guideIndex].tPre << " " << guide[guideIndex].tPost << endl; //} //assert(guide[guideIndex].tPre >= 0); //assert(guide[guideIndex].tPost >= 0); } guideIndex++; } // // Now, widen k around regions where there is drift from the diagonal. // int diagonalLength; int qGap, tGap; if (b < alignment.blocks.size()-1) { qGap = alignment.blocks[b+1].qPos - alignment.blocks[b].QEnd(); tGap = alignment.blocks[b+1].tPos - alignment.blocks[b].TEnd(); // // Drift is how far from the diagonal the next block starts at. // drift = ComputeDrift(alignment.blocks[b], alignment.blocks[b+1]); //drift = min(drift, 100); diagonalLength = std::min(qGap, tGap); int diagPos; int qPos, tPos; int qEnd, tEnd; qPos = alignment.blocks[b].QEnd(); tPos = alignment.blocks[b].TEnd(); qEnd = alignment.blocks[b+1].qPos; tEnd = alignment.blocks[b+1].tPos; for (diagPos = 0; diagPos < diagonalLength; diagPos++, tPos++, qPos++) { guide[guideIndex].t = tPos; guide[guideIndex].q = qPos; guide[guideIndex].tPre = min(MAX_BAND_SIZE, (guide[guideIndex].t - (guide[guideIndex-1].t - guide[guideIndex-1].tPre))); guide[guideIndex].tPost = min(MAX_BAND_SIZE, bandSize + abs(drift)); /* if (guide[guideIndex].tPre > 500 or guide[guideIndex].tPost > 500) { cout << guideIndex << " " << guide[guideIndex].tPre << " " << guide[guideIndex].tPost << endl; } */ ++guideIndex; } // // If the query gap is shorter than target (there is a deletion // of the target), the guide must be extended down the side of // the gap. See the figure below. // // ***** // ** // * * // * * // * * // extend down from here. // * * // * * // while (qPos < qEnd) { guide[guideIndex].t = tPos; guide[guideIndex].q = qPos; // move q down. qPos++; // keep tPos fixed, the guide is straight down here. guide[guideIndex].tPre = min(MAX_BAND_SIZE, guide[guideIndex].t - (guide[guideIndex-1].t - guide[guideIndex-1].tPre)); //bandSize + abs(drift); guide[guideIndex].tPost = min(MAX_BAND_SIZE, bandSize + abs(drift)); guideIndex++; } } } //int i; //for (i = 0; i < guide.size(); i++) { // guide[i].tPre = min(guide[i].tPre, 200); // guide[i].tPost = min(guide[i].tPost, 200); // } return 1; // signal ok. } blasr_libcpp-master/alignment/algorithms/alignment/GuidedAlign.hpp000066400000000000000000000511461260756663100260200ustar00rootroot00000000000000#ifndef _BLASR_GUIDE_ALIGNMENT_HPP_ #define _BLASR_GUIDE_ALIGNMENT_HPP_ #include #include #include #include #include "Types.h" #include "defs.h" #include "NucConversion.hpp" #include "DNASequence.hpp" #include "sdp/SDPFragment.hpp" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Alignment.hpp" #include "datastructures/anchoring/MatchPos.hpp" #include "matrix/Matrix.hpp" #include "tuples/TupleList.hpp" #include "tuples/TupleMetrics.hpp" #include "tuples/DNATuple.hpp" #include "utils/LogUtils.hpp" #include "utils/PhredUtils.hpp" #include "qvs/QualityValue.hpp" #include "qvs/QualityValueVector.hpp" #include "AlignmentUtils.hpp" #include "DistanceMatrixScoreFunction.hpp" #include "algorithms/alignment/SDPAlign.hpp" #define LOWEST_LOG_VALUE -700 #define MAX_BAND_SIZE 250 class GuideRow { public: int q, t; int tPre, tPost; unsigned int matrixOffset; // Where the center (q) is in the score // and path matrices. int GetRowLength(); }; typedef std::vector Guide; class GetBufferIndexFunctor { // row + rowSeqOffset - 1 == seqRow // so, rowInSeq = -1, rowSeqOffset = 0 -> row = 0 public: int seqRowOffset; int guideSize; int operator()(Guide &guide, int seqRow, int seqCol, int &index); }; int ComputeMatrixNElem(Guide &guide); void StoreMatrixOffsets(Guide &guide); float QVToLogPScale(char qv); void QVToLogPScale(QualityValueVector &qualVect, int phredVectLength, std::vector &lnVect); int AlignmentToGuide(blasr::Alignment &alignment, Guide &guide, int bandSize); template int GuidedAlign(QSequence &origQSeq, TSequence &origTSeq, blasr::Alignment &guideAlignment, T_ScoreFn &scoreFn, int bandSize, blasr::Alignment &alignment, std::vector &scoreMat, std::vector &pathMat, std::vector &probMat, std::vector &optPathProbMat, std::vector &lnSubPValueVect, std::vector &lnInsPValueVect, std::vector &lnDelPValueVect, std::vector &lnMatchPValueVect, AlignmentType alignType=Global, bool computeProb=false) { Guide guide; AlignmentToGuide(guideAlignment, guide, bandSize); StoreMatrixOffsets(guide); ComputeMatrixNElem(guide); // // Make a copy of the sequences that is guaranteed to be in 3-bit format for faster alignment. // (mabybe eventually reuse the qseq and tseq memory) // QSequence qSeq; TSequence tSeq; qSeq.Assign(origQSeq); tSeq.Assign(origTSeq); unsigned int matrixNElem = ComputeMatrixNElem(guide); assert(matrixNElem >= 0); StoreMatrixOffsets(guide); /* * The following code is useful to produce images of the dp-matrix. * Make sure the sequenences are less than 5kb each though. Matrix probMatrix; probMatrix.Resize(qSeq.length, tSeq.length); probMatrix.Initialize(0); ofstream matrixOut; stringstream matrixOutNameStrm; matrixOutNameStrm << "probMatrix_"<< runIndex << ".dat"; matrixOut.open(matrixOutNameStrm.str().c_str()); */ if (computeProb) { // // Convert phred scale to proper ln for faster manipulation later on. // QVToLogPScale(qSeq.substitutionQV, qSeq.length, lnSubPValueVect); QVToLogPScale(qSeq.insertionQV, qSeq.length, lnInsPValueVect); QVToLogPScale(qSeq.deletionQV, qSeq.length, lnDelPValueVect); if (lnMatchPValueVect.size() < qSeq.length) { lnMatchPValueVect.resize(qSeq.length); } // // Normalize probability vectors so that the probability of transition from each cell is 1. // unsigned int i; for (i = 0; i < qSeq.length; i++) { float subSum = LogSumOfTwo(lnSubPValueVect[i], QVToLogPScale(scoreFn.substitutionPrior)); // prior on substitution rate float denominator = LogSumOfThree(lnDelPValueVect[i], lnInsPValueVect[i], subSum); lnDelPValueVect[i] = lnDelPValueVect[i] - denominator; lnSubPValueVect[i] = lnSubPValueVect[i] - denominator; lnInsPValueVect[i] = lnInsPValueVect[i] - denominator; lnMatchPValueVect[i] = subSum - denominator; } } // // Make sure the alignments can fit in the reused buffers. // if (scoreMat.size() < matrixNElem) { scoreMat.resize(matrixNElem); pathMat.resize(matrixNElem); fill(scoreMat.begin(), scoreMat.end(), 0); fill(pathMat.begin(), pathMat.end(), NoArrow); } if (computeProb) { if (probMat.size() < matrixNElem) { probMat.resize(matrixNElem); optPathProbMat.resize(matrixNElem); } } // // Initialze matrices. Only initialize up to matrixNElem rather // than matrix.size() because the matrix.size() unnecessary space // may be allocated. // std::fill(scoreMat.begin(), scoreMat.begin() + matrixNElem, 0); std::fill(pathMat.begin(), pathMat.begin() + matrixNElem, NoArrow); if (computeProb) { std::fill(probMat.begin(), probMat.begin() + matrixNElem, 0); std::fill(optPathProbMat.begin(), optPathProbMat.begin() + matrixNElem, 0); } // // Initialize boundary conditions. // int q, t; int bufferIndex; // start alignemnt at the beginning of the guide, and align to the // end of the guide. if (guide.size() == 0) { qSeq.Free(); tSeq.Free(); return 0; } int qStart = guide[1].q; int tStart = guide[1].t; int qEnd = guide[guide.size()-1].q+1; int tEnd = guide[guide.size()-1].t+1; GetBufferIndexFunctor GetBufferIndex; GetBufferIndex.seqRowOffset = qStart; GetBufferIndex.guideSize = guide.size(); int indicesAreValid, delIndexIsValid, insIndexIsValid; bufferIndex = -1; indicesAreValid = GetBufferIndex(guide, qStart-1, tStart-1, bufferIndex); assert(indicesAreValid); scoreMat[bufferIndex] = 0; pathMat[bufferIndex] = NoArrow; int matchIndex, insIndex, delIndex, curIndex; // // Initialize deletion row. // if (computeProb) { probMat[0] = optPathProbMat[0] = 0; } for (t = tStart; t < tStart + guide[0].tPost; t++) { curIndex=-1; indicesAreValid = GetBufferIndex(guide, qStart-1, t, curIndex); if (indicesAreValid == 0 ) { std::cout << "QSeq" << std::endl; (static_cast(&origQSeq))->PrintSeq(std::cout); std::cout << "TSeq" << std::endl; (static_cast(&origTSeq))->PrintSeq(std::cout); assert(0); } delIndex = -1; delIndexIsValid = GetBufferIndex(guide, qStart-1, t-1, delIndex); if (delIndexIsValid) { if (alignType == Global) { scoreMat[curIndex] = scoreMat[delIndex] + scoreFn.del; } else if (alignType == Local) { scoreMat[curIndex] = 0; } pathMat[curIndex] = Left; if (computeProb) { if (qSeq.qual.Empty() == false) { optPathProbMat[curIndex] = probMat[curIndex] = probMat[delIndex] + QVToLogPScale(scoreFn.globalDeletionPrior); } } } } // // Initialize stripe along the top of the grid. // for (q = qStart ; q < qStart + bandSize and q < qEnd; q++) { insIndex = -1; insIndexIsValid = GetBufferIndex(guide, q-1, tStart-1, // diagonal from t-start insIndex); curIndex = -1; indicesAreValid = GetBufferIndex(guide, q, tStart-1, curIndex); if (insIndexIsValid and indicesAreValid) { assert(insIndex >= 0); assert(curIndex >= 0); if (alignType == Global) { scoreMat[curIndex] = scoreMat[insIndex] + scoreFn.ins; } else { scoreMat[curIndex] = 0; } pathMat[curIndex] = Up; if (computeProb) { if (qSeq.qual.Empty() == false) { optPathProbMat[curIndex] = probMat[curIndex] = probMat[insIndex] + QVToLogPScale(scoreFn.Insertion(tSeq,(DNALength) 0, qSeq, (DNALength)q)); } } } } int matchScore, insScore, delScore; for (q = qStart; q < qEnd; q++) { int qi = q - qStart + 1; int tp = guide[qi].t; curIndex = matchIndex = insIndex = delIndex = -1; // // Do some work that will help define when matchIndex and insIndex // may be used. Once delIndex is computed once, it is valid for // all t positions. // int prevRowTEnd = -1; if ( qi > 0) { // // Define the boundaries of the column which may access previously // computed cells with a match. // prevRowTEnd = guide[qi-1].t + guide[qi-1].tPost; } for (t = tp - guide[qi].tPre ; t < guide[qi].t + guide[qi].tPost +1; t++) { if (q < qStart + bandSize and t == tp - guide[qi].tPre - 1) { // On the boundary condition, don't access the 1st element; t++; continue; } // Make sure the index is not past the end of the sequence. if (t < -1) continue; if (t >= tEnd) continue; // // No cells are available to use for insertion cost // computation. // if (t > prevRowTEnd) { insIndex = -1; } if (t > prevRowTEnd + 1) { matchIndex = -1; } // // Find the indices in the buffer. Since the rows are of // different sizes, one can't just use offsets from the buffer // index. // if (GetBufferIndex(guide, q-1,t-1, matchIndex)) { assert(matchIndex >= 0); matchScore = scoreMat[matchIndex] + scoreFn.Match(tSeq, t, qSeq, q); } else { matchScore = INF_INT; } if (GetBufferIndex(guide, q-1, t, insIndex)) { assert(insIndex >= 0); insScore = scoreMat[insIndex] + scoreFn.Insertion(tSeq,(DNALength) t, qSeq, (DNALength)q); } else { insScore = INF_INT; } if (GetBufferIndex(guide, q, t-1, delIndex)) { assert(delIndex >= 0); delScore = scoreMat[delIndex] + scoreFn.Deletion(tSeq, (DNALength) t, qSeq, (DNALength)q); } else { delScore = INF_INT; } int minScore = MIN(matchScore, MIN(insScore, delScore)); int result = GetBufferIndex(guide, q, t, curIndex); // This should only loop over valid cells. assert(result); assert(curIndex >= 0); scoreMat[curIndex] = minScore; if (minScore == INF_INT) { pathMat[curIndex] = NoArrow; if (computeProb) { probMat[curIndex] = 1; optPathProbMat[curIndex] = 0; } } else { assert(result == 1); if (minScore == matchScore) { pathMat[curIndex] = Diagonal; } else if (minScore == delScore) { pathMat[curIndex] = Left; } else { pathMat[curIndex] = Up; } float pMisMatch, pIns, pDel; // Assign these to anything over 1 to signal they are not assigned. pMisMatch = 2; pIns = 2; pDel = 2; if (computeProb) { if (matchScore != INF_INT) { pMisMatch = QVToLogPScale(scoreFn.NormalizedMatch(tSeq, t, qSeq, q)); } if (insScore != INF_INT) { pIns = QVToLogPScale(scoreFn.NormalizedInsertion(tSeq, t, qSeq, q)); } if (delScore != INF_INT) { pDel = QVToLogPScale(scoreFn.NormalizedDeletion(tSeq, t, qSeq, q)); } if (qSeq.qual.Empty() == false) { if (matchScore != INF_INT and delScore != INF_INT and insScore != INF_INT) { probMat[curIndex] = LogSumOfThree(probMat[matchIndex] + pMisMatch, probMat[delIndex] + pDel, probMat[insIndex] + pIns); } else if (matchScore != INF_INT and delScore != INF_INT) { probMat[curIndex] = LogSumOfTwo(probMat[matchIndex] + pMisMatch, probMat[delIndex] + pDel); } else if (matchScore != INF_INT and insScore != INF_INT) { probMat[curIndex] = LogSumOfTwo(probMat[matchIndex] + pMisMatch, probMat[insIndex] + pIns); } else if (insScore != INF_INT and delScore != INF_INT) { probMat[curIndex] = LogSumOfTwo(probMat[delIndex] + pDel, probMat[insIndex] + pIns); } else if (matchScore != INF_INT) { probMat[curIndex] = probMat[matchIndex] + pMisMatch; } else if (delScore != INF_INT) { probMat[curIndex] = probMat[delIndex] + pDel; } else if (insScore != INF_INT) { probMat[curIndex] = probMat[insIndex] + pIns; } // // Not normalizing probabilities, but using value as if it // was a probability later on, so cap at 0 (= log 1). // if (probMat[curIndex] > 0) { probMat[curIndex] = 0; } assert(!std::isnan(probMat[curIndex])); } } } } } // Ok, for now just trace back from qend/tend q = qEnd-1; t = tEnd-1; std::vector optAlignment; int bufferIndexIsValid; while(q >= qStart or t >= tStart) { bufferIndex = -1; bufferIndexIsValid = GetBufferIndex(guide, q, t, bufferIndex); assert(bufferIndexIsValid); assert(bufferIndex >= 0); Arrow arrow; arrow = pathMat[bufferIndex]; if (arrow == NoArrow) { tSeq.ToAscii(); qSeq.ToAscii(); unsigned int gi; for (gi = 0; gi < guide.size(); gi++) { std::cout << guide[gi].q << " " << guide[gi].t << " " << guide[gi].tPre << " " << guide[gi].tPost << std::endl; } std::cout << "qseq: "<< std::endl; (static_cast(&qSeq))->PrintSeq(std::cout); std::cout << "tseq: "<< std::endl; (static_cast(&tSeq))->PrintSeq(std::cout); std::cout << "ERROR, this path has gone awry at " << q << " " << t << " !" << std::endl; exit(1); } optAlignment.push_back(arrow); if (arrow == Diagonal) { q--; t--; } else if (arrow == Up) { q--; } else if (arrow == Left) { t--; } } alignment.nCells = ComputeMatrixNElem(guide); std::reverse(optAlignment.begin(), optAlignment.end()); alignment.qPos = qStart; alignment.tPos = tStart; alignment.ArrowPathToAlignment(optAlignment); RemoveAlignmentPrefixGaps(alignment); int lastIndex = 0; tSeq.Free(); qSeq.Free(); lastIndex = -1; if (GetBufferIndex(guide, qEnd - 1, tEnd - 1, lastIndex)) { alignment.score = scoreMat[lastIndex]; if (computeProb) { alignment.probScore = probMat[lastIndex]; } return scoreMat[lastIndex]; } else { return 0; } } template //, typename T_BufferCache> int GuidedAlign(QSequence &origQSeq, TSequence &origTSeq, T_ScoreFn &scoreFn, int bandSize, int sdpIns, int sdpDel, float sdpIndelRate, blasr::Alignment &alignment, AlignmentType alignType=Global, bool computeProb = false, int sdpTupleSize= 8) { blasr::Alignment sdpAlignment; int alignScore = SDPAlign(origQSeq, origTSeq, scoreFn, sdpTupleSize, sdpIns, sdpDel, sdpIndelRate, sdpAlignment); //, Local, false, false); int b; for (b = 0; b < sdpAlignment.blocks.size(); b++) { sdpAlignment.blocks[b].qPos += sdpAlignment.qPos; sdpAlignment.blocks[b].tPos += sdpAlignment.tPos; } sdpAlignment.tPos = 0; sdpAlignment.qPos = 0; return GuidedAlign(origQSeq, origTSeq, sdpAlignment, scoreFn, bandSize, alignment, // fill in optional parameters alignType, computeProb); } // // Use Case: No guide yet exists for this alignment, but using // buffers. Run SDP alignment first, then refine on the guide. // template int GuidedAlign(QSequence &origQSeq, TSequence &origTSeq, T_ScoreFn &scoreFn, int bandSize, int sdpIns, int sdpDel, float sdpIndelRate, T_BufferCache &buffers, blasr::Alignment &alignment, AlignmentType alignType=Global, bool computeProb = false, int sdpTupleSize= 8) { blasr::Alignment sdpAlignment; int alignScore = SDPAlign(origQSeq, origTSeq, scoreFn, sdpTupleSize, sdpIns, sdpDel, sdpIndelRate, sdpAlignment, buffers, Local, false, false); int b; for (b = 0; b < sdpAlignment.blocks.size(); b++) { sdpAlignment.blocks[b].qPos += sdpAlignment.qPos; sdpAlignment.blocks[b].tPos += sdpAlignment.tPos; } sdpAlignment.tPos = 0; sdpAlignment.qPos = 0; return GuidedAlign(origQSeq, origTSeq, sdpAlignment, scoreFn, bandSize, buffers, alignment, // fill in optional parameters alignType, computeProb); } // // Use case, guide exists, using buffers // template int GuidedAlign(QSequence &origQSeq, TSequence &origTSeq, blasr::Alignment &guideAlignment, T_ScoreFn &scoreFn, int bandSize, T_BufferCache &buffers, blasr::Alignment &alignment, AlignmentType alignType=Global, bool computeProb=false) { return GuidedAlign(origQSeq, origTSeq, guideAlignment, scoreFn, bandSize, alignment, buffers.scoreMat, buffers.pathMat, buffers.probMat, buffers.optPathProbMat, buffers.lnSubPValueMat, buffers.lnInsPValueMat, buffers.lnDelPValueMat, buffers.lnMatchPValueMat, alignType, computeProb); } // // Missing the use case for guide does not exist, and not using // buffers. This is just a very long function declaration, so it's // not worth writing until it is needed. // // // Use case, guide exists, but not using buffers. // template int GuidedAlign(QSequence &origQSeq, TSequence &origTSeq, blasr::Alignment &guideAlignment, T_ScoreFn &scoreFn, int bandSize, blasr::Alignment &alignment, AlignmentType alignType=Global, bool computeProb=false) { // Make synonyms for members of the buffers class for easier typing. std::vector scoreMat; std::vector pathMat; std::vector probMat; std::vector optPathProbMat; std::vector lnSubPValueVect; std::vector lnInsPValueVect; std::vector lnDelPValueVect; std::vector lnMatchPValueVect; return GuidedAlign(origQSeq, origTSeq, guideAlignment, scoreFn, bandSize, alignment, scoreMat, pathMat, probMat, optPathProbMat, lnSubPValueVect, lnInsPValueVect, lnDelPValueVect, lnMatchPValueVect, alignType, computeProb); } #endif // _BLASR_GUIDE_ALIGNMENT_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/IDSScoreFunction.cpp000066400000000000000000000104611260756663100267530ustar00rootroot00000000000000#include "IDSScoreFunction.hpp" float SumAsValidPhred(float v1, float v2, float v3) { float sum = 0; if (v1 > 0) { sum = std::pow(10,v1/-10.0); } if (v2 > 0) { sum += std::pow(10,v2/-10.0); } if (v3 > 0) { sum += std::pow(10,v3/-10.0); } return sum; } template<> int IDSScoreFunction::Deletion(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos) { if (query.deletionQV.Empty() == false and query.deletionTag != NULL) { if (query.deletionTag[queryPos] == 'N') { return globalDeletionPrior; //query.deletionQV[queryPos] ; } else { if (query.deletionTag[queryPos] == ref.seq[refPos]) { return query.deletionQV[queryPos]; } else { return globalDeletionPrior; } } } else { return del; } } template<> int IDSScoreFunction::Deletion(FASTQSequence &query, DNALength queryPos) { return query.deletionQV[queryPos]; } template<> int IDSScoreFunction::Deletion(DNASequence &query, DNALength pos) { return del; // For now there is no global deletion quality value. } template<> int IDSScoreFunction::Insertion(DNASequence &refSeq, DNALength refPos, FASTQSequence &query, DNALength pos) { return query.insertionQV[pos] ; } template<> int IDSScoreFunction::Insertion(FASTQSequence &query, DNALength pos) { return query.insertionQV[pos]; } template<> int IDSScoreFunction::Match(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos) { if (query.seq[queryPos] == ref.seq[refPos]) { return 0; } else if (query.substitutionTag != NULL) { if (query.substitutionTag[queryPos] == ref.seq[refPos]) { return query.substitutionQV[queryPos]; } } return substitutionPrior; } template<> float IDSScoreFunction::NormalizedMatch(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos) { /* * Return the match probability normalized such that the probability * of transitioning from refPos, queryPos is 1. */ float matchScore = Match(ref, refPos, query, queryPos); float delScore = -1; if (refPos > 0) { delScore = Deletion(ref, refPos-1, query, queryPos); } float insScore = -1; if (queryPos > 0) { insScore = Insertion(ref, refPos, query, queryPos-1); } float sumScore = SumAsValidPhred(matchScore, delScore, insScore); if (sumScore > 0) { float numerator = std::pow(10, matchScore/-10.0); return -10*std::log10( numerator / sumScore); } else { return 0; } } template<> float IDSScoreFunction::NormalizedInsertion(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos) { float insScore = Insertion(ref, refPos, query, queryPos); float delScore = -1; float matchScore = -1; if (refPos < ref.length - 1) { matchScore = Match(ref, refPos + 1, query, queryPos); if (queryPos > 0) { delScore = Deletion(ref, refPos + 1, query, queryPos - 1); } } float sum = SumAsValidPhred(insScore, delScore, matchScore); if (sum > 0) { float numerator = std::pow(10,insScore/-10.0); return -10*std::log10( numerator / sum); } else { return 0; } } template<> float IDSScoreFunction::NormalizedDeletion(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos) { float delScore = Deletion(ref, refPos, query, queryPos); float matchScore = -1; float insScore = -1; if (queryPos < query.length - 1) { matchScore = Match(ref, refPos, query, queryPos + 1); if (refPos > 0) { insScore = Insertion(ref, refPos - 1, query, queryPos + 1); } } float sum = SumAsValidPhred(delScore, matchScore, insScore); if (sum > 0) { float numerator= std::pow(10, delScore/-10.0); return -10*std::log10( numerator / sum); } else { return 0; } } blasr_libcpp-master/alignment/algorithms/alignment/IDSScoreFunction.hpp000066400000000000000000000103161260756663100267570ustar00rootroot00000000000000#ifndef _BLASR_IDS_SCORE_FUNCTION_HPP_ #define _BLASR_IDS_SCORE_FUNCTION_HPP_ #include #include #include "ScoreMatrices.hpp" #include "BaseScoreFunction.hpp" #include "FASTASequence.hpp" #include "FASTQSequence.hpp" #include "utils/LogUtils.hpp" float SumAsValidPhred(float v1, float v2, float v3); template class IDSScoreFunction : public BaseScoreFunction { public: int scoreMatrix[5][5]; IDSScoreFunction(int scoreMatrixP[5][5], int insertionP, int deletionP, int globalInsertionPriorP, int globalDeletionPriorP) : BaseScoreFunction(insertionP, deletionP, globalInsertionPriorP, globalDeletionPriorP) { InitializeScoreMatrix(scoreMatrixP); } IDSScoreFunction() { substitutionPrior = 20; globalDeletionPrior = 13; } void InitializeScoreMatrix(int scoreMatrixP[5][5]) { int i, j; for (i = 0; i < 5; i++ ){ for (j = 0; j < 5; j++ ){ scoreMatrix[i][j] = scoreMatrixP[i][j]; } } } int Deletion(T_QuerySequence &seq, DNALength pos) { std::cout << "IDS. For now, deletion must be specialized with FASTQ or FASTA Sequences. " << std::endl; exit(1); return 0; } int Deletion(T_RefSequence &refSeq, DNALength refPos, T_QuerySequence &querySeq, DNALength queryPos) { std::cout << "IDS. For now, this function must be specialized with either FASTQ or FASTA sequences"< int IDSScoreFunction::Deletion(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos); template<> int IDSScoreFunction::Deletion(FASTQSequence &query, DNALength queryPos); template<> int IDSScoreFunction::Deletion(DNASequence &query, DNALength pos); template<> int IDSScoreFunction::Insertion(DNASequence &refSeq, DNALength refPos, FASTQSequence &query, DNALength pos); template<> int IDSScoreFunction::Insertion(FASTQSequence &query, DNALength pos); template<> int IDSScoreFunction::Match(DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos); template<> float IDSScoreFunction::NormalizedMatch( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos); template<> float IDSScoreFunction::NormalizedInsertion( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos); template<> float IDSScoreFunction::NormalizedDeletion( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos); #endif // _BLASR_IDS_SCORE_FUNCTION_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/KBandAlign.cpp000066400000000000000000000014001260756663100255550ustar00rootroot00000000000000#include "algorithms/alignment/KBandAlign.hpp" DefaultGuide::DefaultGuide() {} int DefaultGuide::operator()(int i) { return i; } void SetKBoundedLengths(DNALength tLength, DNALength qLength, DNALength k, DNALength &tLen, DNALength &qLen) { // // Determine how much of each read to align. If the query is // shorter than target - k, then it is impossible to align all the // way to the end of the target. Similar if the query is longer // than the target. // if (tLength < qLength) { tLen = tLength; qLen = MIN(qLength, tLength + k); } else if (qLength < tLength) { qLen = qLength; tLen = MIN(tLength, qLength + k); } else { // They are the same length, the diagonal will definitely fit the two. qLen = qLength; tLen = tLength; } } blasr_libcpp-master/alignment/algorithms/alignment/KBandAlign.hpp000066400000000000000000000242651260756663100256000ustar00rootroot00000000000000#ifndef _BLASR_K_BAND_ALIGN_HPP_ #define _BLASR_K_BAND_ALIGN_HPP_ #include #include #include #include "defs.h" #include "AlignmentUtils.hpp" #include "NucConversion.hpp" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Alignment.hpp" #include "statistics/StatUtils.hpp" class DefaultGuide { public: DefaultGuide(); int operator()(int i); }; template int KBandAlign(T_QuerySequence &pqSeq, T_TargetSequence &ptSeq, int matchMat[5][5], int ins, int del, DNALength k, std::vector &scoreMat, std::vector & pathMat, T_Alignment &alignment, T_ScoreFn &scoreFn, AlignmentType alignType=Global, bool samplePaths=false) { return KBandAlign(pqSeq, ptSeq, matchMat, ins, del, k, scoreMat, pathMat, alignment, alignType, scoreFn, samplePaths); } void SetKBoundedLengths(DNALength tLength, DNALength qLength, DNALength k, DNALength &tLen, DNALength &qLen); template void CreateThreeBitSequence(T_Sequence &origSeq, T_Sequence &threeBitSeq) { // // Make a copy of the sequences that is guaranteed to be in 3-bit format. // This is 2 bits for A,C,T,and G, and an extra bit to signal masked sequence. // ResizeSequence(threeBitSeq, origSeq.length); VectorIndex i; for (i = 0; i < origSeq.length; i++ ) { threeBitSeq.seq[i] = ThreeBit[origSeq.seq[i]]; } } template int KBandAlign(T_QuerySequence &qSeq, T_TargetSequence &tSeq, int matchMat[5][5], int ins, int del, int k, std::vector &scoreMat, std::vector &pathMat, T_Alignment &alignment, AlignmentType alignType, T_ScoreFn &scoreFn, bool samplePaths=false) { DNALength qLen, tLen; SetKBoundedLengths(tSeq.length, qSeq.length, k, tLen, qLen); // // // Allow for length up to diaonal + k + 1 for boundary. // // Allow for width: // diagonal (1) // up to k insertions (k) // up to k deletions (k) // boundary on left side of matrix (1) // DNALength nCols = 2*k + 1; DNALength totalMatSize = (qLen + 1) * nCols; alignment.nCells = totalMatSize; if (scoreMat.size() < totalMatSize) { scoreMat.resize(totalMatSize); pathMat.resize(totalMatSize); } // // Initialze matrices // std::fill(scoreMat.begin(), scoreMat.begin() + totalMatSize, 0); std::fill(pathMat.begin(), pathMat.begin() + totalMatSize, NoArrow); // // Initialize the boundaries of the score and path matrices. // int q, t; for (q = 1; q <= k && q < qLen + 1; q++) { scoreMat[rc2index(q, k - q, nCols)] = q * ins; pathMat[rc2index(q, k - q , nCols)] = Up; } if (alignType == Global) { for (t = 1; t <= k && t < tLen; t++) { scoreMat[rc2index(0, t + k , nCols)] = t * del; pathMat[rc2index(0, t + k , nCols)] = Left; } } if (alignType == QueryFit or alignType == Fit) { for (t = 1; t <= k & t < tLen; t++) { scoreMat[rc2index(0, t + k , nCols)] = 0; pathMat[rc2index(0, t + k , nCols)] = Left; } } if (alignType == TargetFit or alignType == Fit) { for (q = 1; q <= k & q < qLen; q++) { scoreMat[rc2index(q, 0, nCols)] = 0; pathMat[rc2index(q, 0, nCols)] = Up; } } // // Initialize the 0,0 position to be a match. // scoreMat[rc2index(0, k, nCols)] = 0; pathMat[rc2index(0, k, nCols)] = Diagonal; int matchScore, insScore, delScore; for (q = 1; q <= qLen; q++) { for (t = q - k; t < q + k + 1; t++) { if (t < 1) continue; if (t > tLen) continue; // On left boundary of k-band. // do not allow deletions of t. if (t == q - k) { delScore = INF_INT; } else { // cur row = q // cur col = t - q // prev col therefore t - q - 1 // and offset from diagonal is k + t - q - 1 delScore = scoreMat[rc2index(q, k + t - q - 1, nCols)] + scoreFn.Deletion(tSeq, (DNALength) t-1, qSeq, (DNALength)q-1); } // cur row = q // cur col = t - q // cur query index = q - 1 // cur target index = t - 1 // therefore match row (up) = q // match col (left, but since up shifted right) = t - q assert(rc2index(q - 1, k + t - q, nCols) < scoreMat.size()); assert(t-1 >= 0); assert(q-1 >= 0); int tmpMatchScore = scoreFn.Match(tSeq, t-1, qSeq, q-1); matchScore = scoreMat[rc2index(q - 1, k + t - q, nCols)] + tmpMatchScore; // // Possibly on right boundary of k-band, in which // case do not allow insertions from q. if (t == q + k ) { insScore = INF_INT; } else { // cur row = q // cur col = t - q // therefore insertion col = t - q + 1 insScore = scoreMat[rc2index(q-1, k + t - q+1, nCols)] + scoreFn.Insertion(tSeq, (DNALength) t-1, qSeq, q-1); } int minScore = MIN(matchScore, MIN(insScore, delScore)); int curIndex = rc2index(q, k + t - q, nCols); assert(curIndex < scoreMat.size()); scoreMat[curIndex] = minScore; int nEqual = 0; (matchScore == minScore ? nEqual++ : nEqual ); (insScore == minScore ? nEqual++ : nEqual ); (delScore == minScore ? nEqual++ : nEqual ); if (samplePaths == false or nEqual == 1) { if (minScore == matchScore) { pathMat[curIndex] = Diagonal; } else if (minScore == delScore) { pathMat[curIndex] = Left; } else { pathMat[curIndex] = Up; } } else { // // When there are paths of equal score reaching // if (nEqual == 3) { int v = RandomInt(3); if (v == 0) { pathMat[curIndex] = Diagonal; } else if (v == 1) { pathMat[curIndex] = Left; } else if (v == 2) { pathMat[curIndex] = Up; } } else { assert(nEqual == 2); int v = RandomInt(2); if (matchScore == insScore) { if (v == 0) { pathMat[curIndex] = Diagonal; } else { pathMat[curIndex] = Up; } } else if (matchScore == delScore) { if (v == 0) { pathMat[curIndex] = Diagonal; } else { pathMat[curIndex] = Left; } } else if (delScore == insScore) { if (v == 0) { pathMat[curIndex] = Left; } else { pathMat[curIndex] = Up; } } else { std::cout << "ERROR, counted two values equal to the minimum but cannot find them." << std::endl; assert(0); } } alignment.nSampledPaths++; } } } // // Now create the alignment. // q = qLen ; t = k - (qLen - tLen); int globalMinScore; int minLastColScoreIndex, minLastRowScoreIndex; globalMinScore = scoreMat[rc2index(q,t,nCols)]; int minLastColScore = globalMinScore, minLastRowScore = globalMinScore; if (alignType == QueryFit or alignType == Fit) { int q2,t2; q2 = qLen; t2 = k - (qLen - tLen); UInt qi, qend; bool minScoreSet = false; int minScoreIndex; for (t2 = q - k; t2 < q2 + k + 1; t2++) { if (t2 < 1) continue; if (t2 > tLen) continue; // std::cout << t2 << " " << tLen << " " << " " << scoreMat[rc2index(q2, k+t2-q,nCols)] << " " << minLastRowScore <= tLen - k and q2 > 0; q2--) { int index = rc2index(q2, k+tLen-q2, nCols); if (minScoreSet == false or scoreMat[index] < minLastColScore) { minLastColScore = scoreMat[index]; minScoreSet = true; minLastColScoreIndex = q2; } } if (alignType == Fit) { if (minLastColScore < minLastRowScore) { t = t2; q = minLastColScoreIndex; } } else if (alignType == TargetFit) { t = t2; q = minLastColScoreIndex; } } std::vector optAlignment; int optScore = scoreMat[rc2index(q, t, nCols)]; Arrow arrow; /* PrintFlatMatrix(&pathMat[0], qLen + 1, nCols, debugOut); std::cout << std::endl; ofstream debugOut; stringstream debugOutName; debugOutName << "kband_" << kbandcounter << ".table"; debugOut.open(debugOutName.str().c_str()); PrintFlatMatrix(&scoreMat[0], qLen + 1, nCols, debugOut); kbandcounter++; */ /* std::cout << std::endl; */ // // Use some logic to deal with unsigned types. When t > k, t must // also be greater than 0, so it's not worth checking to see if it // hits a boundary. // if (alignType == Global or alignType == QueryFit) { while (q > 0 and (t < k ? (k - t != q) : true)) { arrow = pathMat[rc2index(q,t, nCols)]; if (arrow == NoArrow) { break; } optAlignment.push_back(arrow); if (arrow == Diagonal) { q--; } else if (arrow == Up) { q--; t++; } else if (arrow == Left) { t--; } } } else if (alignType == Fit) { while (q > 0 and (t < k ? (k - t != q) : true) and ( q <= k ? k - q != t : true) ) { arrow = pathMat[rc2index(q,t, nCols)]; if (arrow == NoArrow) { break; } optAlignment.push_back(arrow); if (arrow == Diagonal) { q--; } else if (arrow == Up) { q--; t++; } else if (arrow == Left) { t--; } } } else if (alignType == TargetFit) { while (q > 0 and ( q < k ? k - q != t : true) ) { arrow = pathMat[rc2index(q,t, nCols)]; if (arrow == NoArrow) { break; } optAlignment.push_back(arrow); if (arrow == Diagonal) { q--; } else if (arrow == Up) { q--; t++; } else if (arrow == Left) { t--; } } } // remove the boundary condition. //optAlignment.pop_back(); // qSeq.Free(); // tSeq.Free(); alignment.qPos = q; // // Use a little extra logic to deal with the unsignedness of indices. // if (t < k) { alignment.tPos = (k - t) - q; } else { alignment.tPos = (t - k) - q; } std::reverse(optAlignment.begin(), optAlignment.end()); alignment.ArrowPathToAlignment(optAlignment); return optScore; } #endif // _BLASR_K_BAND_ALIGN_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/OneGapAlignment.hpp000066400000000000000000000305561260756663100266560ustar00rootroot00000000000000#ifndef _BLASR_ONEGAP_ALIGNMENT_HPP_ #define _BLASR_ONEGAP_ALIGNMENT_HPP_ #include #include "Types.h" #include "FASTQSequence.hpp" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Path.h" #include "datastructures/alignment/Alignment.hpp" /* Perform gapped alignment that aligns the entire query sequence to leftTarget, rightTarget, or between the two with a gap in between. The gap between leftTarget and rightTarget is an affine gap. */ template int OneGapAlign(T_QuerySequence &query, T_RefSequence &leftTarget, T_RefSequence &rightTarget, DNALength distanceBetweenLeftAndRightTarget, T_ScoreFunction &scoreFn, Alignment &alignment, FlatMatrix2D & scoreMat, FlatMatrix2D & pathMat, FlatMatrix2D &affineScoreMat, FlatMatrix2D &affinePathMat) { /* Perform alignment that spans what is effectively two pairs of matrices. This is implemented as a single matrix, however paths may only transition through the boundary between the two through the affine portion of the matrices. leftTarget rightTarget affine |==============| | x------>x | | ^ | | |===|=======|==| | | regular |===|=+||===|=+| | x || | | | || v | |======||======| */ UInt nQueryRows, nLeftTargetCols, nRightTargetCols; UInt nTargetCols; nQueryRows = query.length + 1; nLeftTargetCols = leftTarget.length + 1; nRightTargetCols = rightTarget.length; nTargetCols = nLeftTargetCols + nRightTargetCols; // // Create the matrices // affineScoreMat.Grow(nQueryRows, nTargetCols); affinePathMat.Grow(nQueryRows, nTargetCols); scoreMat.Grow(nQueryRows, nTargetCols); pathMat.Grow(nQueryRows, nTargetCols); // // Initialize to undefined for debugging purposes. // affineScoreMat.Initialize(0); affinePathMat.Initialize(NoArrow); scoreMat.Initialize(0); pathMat.Initialize(NoArrow); // Initialize insertion and deletion strips UInt i, j; scoreMat[0][0] = 0; pathMat[0][0] = NoArrow; affineScoreMat[0][0] = 0; // always drop down to 0,0 at end of affine gap. affinePathMat[0][0] = AffineDelOpen; for (i = 1; i < nQueryRows; i++) { scoreMat[i][0] = scoreMat[i-1][0] + scoreFn.ins; pathMat[i][0] = Up; // // Affine gaps can only start here. // affineScoreMat[i][0] = scoreMat[i][0]; affinePathMat[i][0] = AffineDelOpen; } for (j = 1; j < nTargetCols; j++) { scoreMat[0][j] = scoreMat[0][j-1] + scoreFn.del; pathMat[0][j] = Left; // // Allow free affine transition across first row. // affineScoreMat[0][j] = 0; affinePathMat[0][j] = Left; } // Now run the alignment. // i and j index over positions in the query/target sequences, or // [0,len(seq)). Since the score mat are of length len(seq) + 1, // the indices of the score matrices are [1, len(seq) + 1) for (i = 0; i < query.length; i++) { // // First align a row of the left target, allowing for transition // up to the big affine gap. No transitions down from affine gap // are allowed. // for (j = 0; j < leftTarget.length; j++) { // // First, assign the non-affine score. // int matchScore, insScore, delScore; // Remember mapping: // scoreMat[i+1][j+1] = position to fill // scoreMat[i+1][j] ==> back one column // scoreMat[i][j+1] ==> up one row. matchScore = scoreMat[i][j] + scoreFn.Match(leftTarget, j, query, i); insScore = scoreMat[i][j+1] + scoreFn.Insertion(leftTarget, j, query, i); delScore = scoreMat[i+1][j] + scoreFn.Deletion(leftTarget, j, query, i); int minScore = min(matchScore, min(insScore, delScore)); scoreMat[i+1][j+1] = minScore; // set path. if (matchScore == minScore) { pathMat[i+1][j+1] = Diagonal; } else if (insScore == minScore) { pathMat[i+1][j+1] = Up; } else { assert(delScore == minScore); pathMat[i+1][j+1] = Left; } // // Next, assign the affine score // if (affineScoreMat[i+1][j] < scoreMat[i+1][j+1]) { affineScoreMat[i+1][j+1] = affineScoreMat[i+1][j]; affinePathMat[i+1][j+1] = Left; } else { // Allow free gap open... maybe this will change. affineScoreMat[i+1][j+1] = scoreMat[i+1][j+1]; affinePathMat[i+1][j+1] = AffineDelOpen; } } // // Now align the right target, allowing a jump over the divide. // int affineCloseScore; j = 0; // // A match here may only be preceded by an affine gap close. // int matchScore, delScore, insScore, minScore; matchScore = affineScoreMat[i][leftTarget.length] + scoreFn.Match(rightTarget, j, query, i); // // Cannot have a non-affine deletion here. delScore = INT_MAX; // // The insertion is a horizontal move, so that is all allowed. // insScore = scoreFn.Insertion(rightTarget, j, query, i - 1); minScore = min(matchScore, insScore); UInt targetCol = leftTarget.length; assert(scoreMat[i+1][targetCol+1] == 0); assert(pathMat[i+1][targetCol+1] == NoArrow); scoreMat[i+1][targetCol+1] = minScore; if (minScore == matchScore) { pathMat[i+1][targetCol+1] = AffineLongDelClose; } else { assert(minScore == insScore); pathMat[i+1][targetCol+1] = Up; } // // The affine matrix on the right side can only progress forward. // affineScoreMat[i+1][targetCol+1] = affineScoreMat[i+1][targetCol]; affinePathMat[i+1][targetCol+1] = AffineLongDelLeft; for (j = 1; j < rightTarget.length; j++) { targetCol = leftTarget.length + j; matchScore = scoreMat[i][targetCol] + scoreFn.Match(rightTarget, j, query, i); insScore = scoreMat[i][targetCol+1] + scoreFn.Insertion(rightTarget, j, query, i); delScore = scoreMat[i+1][targetCol] + scoreFn.Deletion(rightTarget, j, query, i); affineCloseScore = affineScoreMat[i][targetCol] + scoreFn.Match(rightTarget, j, query, i); minScore = min(matchScore, min(insScore, min(delScore, affineCloseScore))); scoreMat[i+1][targetCol+1] = minScore; if (minScore == matchScore) { pathMat[i+1][targetCol+1] = Diagonal; } else if (minScore == insScore) { pathMat[i+1][targetCol+1] = Up; } else if (minScore == delScore) { pathMat[i+1][targetCol+1] = Left; } else { assert(minScore == affineCloseScore); pathMat[i+1][targetCol+1] = AffineLongDelClose; } // // As with before, the affine matrix on the right side can // only progress forward. // affineScoreMat[i+1][targetCol+1] = affineScoreMat[i+1][targetCol]; affinePathMat[i+1][targetCol+1] = Left; } // done aligning right target } // done aligning full query // // Now build the alignment string // i = nQueryRows - 1; j = nTargetCols - 1; vector optAlignment; int REGULAR = 0; int AFFINE = 1; int curMatrix = REGULAR; Arrow arrow; /* cout << "score " << endl; PrintFlatMatrix(scoreMat.matrix, scoreMat.nRows, scoreMat.nCols, cout, 3); cout << "path " << endl; PrintFlatMatrix(pathMat.matrix, scoreMat.nRows, scoreMat.nCols, cout, 3); cout << "affine score " << endl; PrintFlatMatrix(affineScoreMat.matrix, scoreMat.nRows, scoreMat.nCols, cout, 3); cout << "affine path " << endl; PrintFlatMatrix(affinePathMat.matrix, scoreMat.nRows, scoreMat.nCols, cout, 3); */ int optScore = scoreMat[i][j]; while (i > 0 or j > 0 or curMatrix == AFFINE) { if (curMatrix == REGULAR) { arrow = pathMat[i][j]; if (arrow == Diagonal) { optAlignment.push_back(arrow); i--; j--; } else if (arrow == Left) { optAlignment.push_back(arrow); j--; } else if (arrow == Up) { optAlignment.push_back(arrow); i--; } else if (arrow == AffineLongDelClose) { optAlignment.push_back(Left); j--; i--; curMatrix = AFFINE; } } else { // in affine matrix arrow = affinePathMat[i][j]; if (arrow == Left or arrow == AffineLongDelLeft) { optAlignment.push_back(arrow); j--; } else if (arrow == AffineDelOpen) { // // no change in i nor j, and this does not result in an // arrow. // Drop down to the regular alignment matrix. // curMatrix = REGULAR; } } assert(arrow != NoArrow); // // Check for wrap around. // assert(i != UINT_MAX); assert(j != UINT_MAX); } // done tracing alignment path. std::reverse(optAlignment.begin(), optAlignment.end()); alignment.LongGapArrowPathToAlignment(optAlignment, distanceBetweenLeftAndRightTarget); return optScore; } // // Create a version that does not need reusable mapping buffers. // template int OneGapAlign(T_QuerySequence &query, T_RefSequence &leftTarget, T_RefSequence &rightTarget, DNALength distanceBetweenLeftAndRightTarget, T_ScoreFunction &scoreFn, Alignment &alignment) { FlatMatrix2D scoreMat; FlatMatrix2D affineScoreMat; FlatMatrix2D pathMat; FlatMatrix2D affinePathMat; return OneGapAlign(query, leftTarget, rightTarget, distanceBetweenLeftAndRightTarget, scoreFn, alignment, scoreMat, pathMat, affineScoreMat, affinePathMat); } template int OneGapAlign(T_QuerySequence &query, T_RefSequence &leftTarget, T_RefSequence &rightTarget, DNALength distanceBetweenLeftAndRightTarget, T_ScoreFunction &scoreFn, T_BufferList &buffers, Alignment &alignment) { return OneGapAlign(query, leftTarget, rightTarget, distanceBetweenLeftAndRightTarget, alignment, buffers.scoreMat, buffers.pathMat, buffers.affineScoreMat, buffers.affinePathMat); } template int OneGapAlign(T_QuerySequence &query, T_RefSequence &reference, T_ScoreFunction &scoreFunction, T_BufferList &buffers, Alignment &alignment) { T_RefSequence leftReference, rightReference; UInt leftReferenceLength = min(reference.length, query.length); leftReference.ReferenceSubstring(reference, 0, leftReferenceLength); UInt rightReferenceLength = min(reference.length - leftReferenceLength, query.length); rightReference.ReferenceSubstring(reference, reference.length - rightReferenceLength, rightReferenceLength); DNALength distanceBetweenLeftAndRight = reference.length - rightReferenceLength - leftReferenceLength; assert(distanceBetweenLeftAndRight >= 0); return OneGapAlign(query, leftReference, rightReference, distanceBetweenLeftAndRight, scoreFunction, alignment); } #endif // _BLASR_ONEGAP_ALIGNMENT_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/QualityValueScoreFunction.cpp000066400000000000000000000061271260756663100307650ustar00rootroot00000000000000#include "QualityValueScoreFunction.hpp" int QualityScoreTypeNotSpecified(const std::string func) { std::cout << func << " must be specialized with FASTQ or " << "FASTA sequencecs." << std::endl; exit(1); return 0; } template int QualityValueScoreFunction::Deletion( T_RefSequence &seq, DNALength refPos, T_QuerySequence &querySeq, DNALength queryPos) { return QualityScoreTypeNotSpecified("Deletion"); } template int QualityValueScoreFunction::Deletion( T_RefSequence &seq, DNALength pos) { return QualityScoreTypeNotSpecified("Deletion"); } template int QualityValueScoreFunction::Match( T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos) { return QualityScoreTypeNotSpecified("Match"); } template int QualityValueScoreFunction::Insertion( T_RefSequence &ref, DNALength refPos, T_QuerySequence &seq, DNALength pos) { return QualityScoreTypeNotSpecified("Insertion"); } template int QualityValueScoreFunction::Insertion( T_QuerySequence &seq, DNALength pos) { return QualityScoreTypeNotSpecified("Insertion"); } /* * Define all specializations for a FASTA reference and FASTQSequence * for the query, or FASTA sequence for query. */ template<> int QualityValueScoreFunction::Deletion( FASTASequence &ref, DNALength pos) { return del; // For now there is no global deletion quality value. } template<> int QualityValueScoreFunction::Deletion( DNASequence &ref, DNALength pos) { return del; // For now there is no global deletion quality value. } template<> int QualityValueScoreFunction::Deletion( DNASequence &seq, DNALength refPos, FASTQSequence &querySeq, DNALength queryPos) { return Deletion(seq, refPos); } template<> int QualityValueScoreFunction::Insertion( FASTQSequence &query, DNALength pos) { // Positive value for quality value penalizes the alignment. return query.qual[pos]; } template<> int QualityValueScoreFunction::Insertion( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength pos) { // Positive value for quality value penalizes the alignment. // return query.qual[pos]; // return Insertion(query, pos); return ins; } template<> int QualityValueScoreFunction::Match( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos) { // Positive value for quality value penalizes the alignment. return (QVDistanceMatrix[ThreeBit[query.seq[queryPos]]][ThreeBit[ref.seq[refPos]]] * query.qual[queryPos]); } blasr_libcpp-master/alignment/algorithms/alignment/QualityValueScoreFunction.hpp000066400000000000000000000034221260756663100307650ustar00rootroot00000000000000#ifndef _BLASR_QUALITY_VALUE_SCORE_FUNCTION_HPP_ #define _BLASR_QUALITY_VALUE_SCORE_FUNCTION_HPP_ #include "FASTASequence.hpp" #include "FASTQSequence.hpp" #include "NucConversion.hpp" #include "ScoreMatrices.hpp" #include "BaseScoreFunction.hpp" template class QualityValueScoreFunction: public BaseScoreFunction{ public: int Deletion(T_RefSequence &seq, DNALength refPos, T_QuerySequence &querySeq, DNALength queryPos); int Deletion(T_RefSequence &seq, DNALength pos); int Match(T_RefSequence &ref, DNALength refPos, T_QuerySequence &query, DNALength queryPos); int Insertion(T_RefSequence &ref, DNALength refPos, T_QuerySequence &seq, DNALength pos); int Insertion(T_QuerySequence &seq, DNALength pos); }; // // Define all specializations for a FASTA reference and // FASTQSequence for the query, or FASTA sequence for query. // template<> int QualityValueScoreFunction::Deletion( FASTASequence &ref, DNALength pos); template<> int QualityValueScoreFunction::Deletion( DNASequence &ref, DNALength pos); template<> int QualityValueScoreFunction::Deletion( DNASequence &seq, DNALength refPos, FASTQSequence &querySeq, DNALength queryPos); template<> int QualityValueScoreFunction::Insertion( FASTQSequence &query, DNALength pos); template<> int QualityValueScoreFunction::Insertion( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength pos); template<> int QualityValueScoreFunction::Match( DNASequence &ref, DNALength refPos, FASTQSequence &query, DNALength queryPos); #endif blasr_libcpp-master/alignment/algorithms/alignment/SDPAlign.hpp000066400000000000000000000046261260756663100252460ustar00rootroot00000000000000#ifndef _BLASR_SDP_ALIGN_HPP_ #define _BLASR_SDP_ALIGN_HPP_ #include "DNASequence.hpp" #include "tuples/TupleMatching.hpp" #include "sdp/SDPFragment.hpp" #include "FASTASequence.hpp" #include "FASTQSequence.hpp" #include "DistanceMatrixScoreFunction.hpp" #define SDP_DETAILED_WORD_SIZE 5 #define SDP_PREFIX_LENGTH 50 #define SDP_SUFFIX_LENGTH 50 template int SDPAlign(T_QuerySequence &query, T_TargetSequence &target, T_ScoreFn &scoreFn, int wordSize, int sdpIns, int sdpDel, float indelRate, blasr::Alignment &alignment, AlignmentType alignType=Global, bool detailedAlignment=true, bool extendFrontByLocalAlignment=true, DNALength noRecurseUnder=10000, bool fastSDP=true, unsigned int minFragmentsToUseGraphPaper=100000); template int SDPAlign(T_QuerySequence &query, T_TargetSequence &target, T_ScoreFn &scoreFn, int wordSize, int sdpIns, int sdpDel, float indelRate, blasr::Alignment &alignment, T_BufferCache &buffers, AlignmentType alignType=Global, bool detailedAlignment=true, bool extendFrontByLocalAlignment=true, DNALength noRecurseUnder=10000, bool fastSDP=true, unsigned int minFragmentsToUseGraphPaper=100000); template int SDPAlign(T_QuerySequence &query, T_TargetSequence &target, T_ScoreFn &scoreFn, int wordSize, int sdpIns, int sdpDel, float indelRate, blasr::Alignment &alignment, std::vector &fragmentSet, std::vector &prefixFragmentSet, std::vector &suffixFragmentSet, T_TupleList &targetTupleList, T_TupleList &targetPrefixTupleList, T_TupleList &targetSuffixTupleList, std::vector &maxFragmentChain, // A few optinal parameters, should delete that last one. AlignmentType alignType=Global, bool detailedAlignment=true, bool extendFrontByLocalAlignment=true, DNALength noRecurseUnder=10000, bool fastSDP=true, unsigned int minFragmentsToUseGraphPaper=100000); #include "SDPAlignImpl.hpp" #endif // _BLASR_SDP_ALIGN_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/SDPAlignImpl.hpp000066400000000000000000000636041260756663100260710ustar00rootroot00000000000000#ifndef _BLASR_SDP_ALIGN_IMPL_HPP_ #define _BLASR_SDP_ALIGN_IMPL_HPP_ #include #include #include #include #include #include "Types.h" #include "defs.h" #include "utils.hpp" #include "Enumerations.h" #include "DNASequence.hpp" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Alignment.hpp" #include "sdp/SDPFragment.hpp" #include "GraphPaper.hpp" #include "AlignmentUtils.hpp" #include "SWAlign.hpp" #include "sdp/SparseDynamicProgramming.hpp" #include "SDPAlign.hpp" template int SDPAlign(T_QuerySequence &query, T_TargetSequence &target, T_ScoreFn &scoreFn, int wordSize, int sdpIns, int sdpDel, float indelRate, blasr::Alignment &alignment, AlignmentType alignType, bool detailedAlignment, bool extendFrontByLocalAlignment, DNALength noRecurseUnder, bool fastSDP, unsigned int minFragmentsToUseGraphPaper) { /* Since SDP Align uses a large list of buffers, but none are provided with this mechanism of calling SDPAlign, allocate the buffers on the stack. */ std::vector fragmentSet, prefixFragmentSet, suffixFragmentSet; TupleList targetTupleList; TupleList targetPrefixTupleList; TupleList targetSuffixTupleList; std::vector maxFragmentChain; return SDPAlign(query, target, scoreFn, wordSize, sdpIns, sdpDel, indelRate, alignment, fragmentSet, prefixFragmentSet, suffixFragmentSet, targetTupleList, targetPrefixTupleList, targetSuffixTupleList, maxFragmentChain, alignType, detailedAlignment, extendFrontByLocalAlignment, noRecurseUnder, minFragmentsToUseGraphPaper); } template int SDPAlign(T_QuerySequence &query, T_TargetSequence &target, T_ScoreFn &scoreFn, int wordSize, int sdpIns, int sdpDel, float indelRate, blasr::Alignment &alignment, T_BufferCache &buffers, AlignmentType alignType, bool detailedAlignment, bool extendFrontByLocalAlignment, DNALength noRecurseUnder, bool fastSDP, unsigned int minFragmentsToUseGraphPaper) { return SDPAlign(query, target, scoreFn, wordSize, sdpIns, sdpDel, indelRate, alignment, buffers.sdpFragmentSet, buffers.sdpPrefixFragmentSet, buffers.sdpSuffixFragmentSet, buffers.sdpCachedTargetTupleList, buffers.sdpCachedTargetPrefixTupleList, buffers.sdpCachedTargetSuffixTupleList, buffers.sdpCachedMaxFragmentChain, alignType, detailedAlignment, extendFrontByLocalAlignment, noRecurseUnder, fastSDP, minFragmentsToUseGraphPaper); } template int SDPAlign(T_QuerySequence &query, T_TargetSequence &target, T_ScoreFn &scoreFn, int wordSize, int sdpIns, int sdpDel, float indelRate, blasr::Alignment &alignment, std::vector &fragmentSet, std::vector &prefixFragmentSet, std::vector &suffixFragmentSet, T_TupleList &targetTupleList, T_TupleList &targetPrefixTupleList, T_TupleList &targetSuffixTupleList, std::vector &maxFragmentChain, // A few optinal parameters, should delete that last one. AlignmentType alignType, bool detailedAlignment, bool extendFrontByLocalAlignment, DNALength noRecurseUnder, bool fastSDP, unsigned int minFragmentsToUseGraphPaper) { // minFragmentsToUseGraphPaper: minimum number of fragments to // use Graph Paper for speed up. fragmentSet.clear(); prefixFragmentSet.clear(); suffixFragmentSet.clear(); targetTupleList.clear(); targetPrefixTupleList.clear(); targetSuffixTupleList.clear(); maxFragmentChain.clear(); // // Collect a set of matching fragments between query and target. // Since this function is an inner-loop for alignment, anything to // speed it up will help. One way to speed it up is to re-use the // vectors that contain the sdp matches. // TupleMetrics tm, tmSmall; tm.Initialize(wordSize); int smallWordSize = (wordSize < SDP_DETAILED_WORD_SIZE ? wordSize : SDP_DETAILED_WORD_SIZE); tmSmall.Initialize(smallWordSize); // // Partition the read into a prefix, middle, and suffix. The prefix // and suffix are matched using a smaller word size allowing for // higher sensitivity at the ends of reads, which are more likely to // be misaligned. // int prefixLength, middleLength, suffixLength, middlePos, suffixPos; // prefix pos is 0 prefixLength = min(target.length, (DNALength) SDP_PREFIX_LENGTH); suffixLength = min(target.length - prefixLength, (DNALength) SDP_SUFFIX_LENGTH); middleLength = target.length - prefixLength - suffixLength; DNASequence prefix, middle, suffix; DNASequence qPrefix, qMiddle, qSuffix; DNALength pos = 0; prefix.seq = &target.seq[pos]; prefix.length = prefixLength; pos += prefixLength; // Align the entire query against the entire target to get alignments // in the middle. middlePos = 0; middle.seq = &target.seq[0]; middle.length = target.length; pos += middleLength; suffixPos = pos; // while = prefixLength + middleLength suffix.seq = &target.seq[suffixPos]; suffix.length = suffixLength; int qPrefixLength, qMiddleLength, qSuffixLength, qMiddlePos, qSuffixPos; // prefix pos is 0 qPrefixLength = min(query.length, (DNALength) SDP_PREFIX_LENGTH); qSuffixLength = min(query.length - qPrefixLength, (DNALength) SDP_SUFFIX_LENGTH); qMiddleLength = query.length - qPrefixLength - qSuffixLength; pos = 0; qPrefix.seq = &query.seq[pos]; qPrefix.length = qPrefixLength; // Align the entire query against the entire target to get alignments // in the middle. qMiddle.seq = &query.seq[0]; qMiddle.length = query.length; qMiddlePos = pos += qPrefixLength; qSuffixPos = pos += qMiddleLength; // = qPrefixLength + qMiddleLength qSuffix.seq = &query.seq[qSuffixPos]; qSuffix.length = qSuffixLength; fragmentSet.clear(); SequenceToTupleList(prefix, tmSmall, targetPrefixTupleList); SequenceToTupleList(suffix, tmSmall, targetSuffixTupleList); SequenceToTupleList(middle, tm, targetTupleList); targetPrefixTupleList.Sort(); targetSuffixTupleList.Sort(); targetTupleList.Sort(); // // Store in fragmentSet the tuples that match between the target // and query. // StoreMatchingPositions(qPrefix, tmSmall, targetPrefixTupleList, prefixFragmentSet); StoreMatchingPositions(qSuffix, tmSmall, targetSuffixTupleList, suffixFragmentSet); StoreMatchingPositions(qMiddle, tm, targetTupleList, fragmentSet); // // The method to store matching positions is not weight aware. // Store the weight here. // VectorIndex f; for (f = 0; f < suffixFragmentSet.size(); f++) { (suffixFragmentSet)[f].weight = tm.tupleSize; (suffixFragmentSet)[f].length = tmSmall.tupleSize; } for (f = 0; f < prefixFragmentSet.size(); f++) { (prefixFragmentSet)[f].weight = tm.tupleSize; (prefixFragmentSet)[f].length = tmSmall.tupleSize; } for (f = 0; f < fragmentSet.size(); f++) { (fragmentSet)[f].weight = tm.tupleSize; (fragmentSet)[f].length = tm.tupleSize; } // // Since different partitions of the read are matched, the locations // of the matches do not have the correct position because of the // offsets. Fix that here. for (f = 0; f < suffixFragmentSet.size(); f++) { (suffixFragmentSet)[f].x += qSuffixPos; (suffixFragmentSet)[f].y += suffixPos; } // // Collect all fragments into one. // fragmentSet.insert(fragmentSet.begin(), prefixFragmentSet.begin(), prefixFragmentSet.end()); fragmentSet.insert(fragmentSet.end(), suffixFragmentSet.begin(), suffixFragmentSet.end()); FlatMatrix2D graphScoreMat; FlatMatrix2D graphPathMat; FlatMatrix2D graphBins; int nOnOpt = fragmentSet.size(); if (fragmentSet.size() > minFragmentsToUseGraphPaper and fastSDP) { int nCol = 50; vector onOptPath(fragmentSet.size(), false); nOnOpt = GraphPaper(fragmentSet, nCol, nCol, graphBins, graphScoreMat, graphPathMat, onOptPath); int prev = fragmentSet.size(); RemoveOffOpt(fragmentSet, onOptPath); } graphScoreMat.Clear(); graphPathMat.Clear(); graphBins.Clear(); // // Because there are fragments from multiple overlapping regions, remove // any fragments that have the same starting coordinate as a // previous fragment. // std::sort(fragmentSet.begin(), fragmentSet.end(), LexicographicFragmentSort()); f = 0; int fCur = 0; while (f + 1 <= fragmentSet.size()) { fragmentSet[fCur] = fragmentSet[f]; while (f < fragmentSet.size() and fragmentSet[fCur].x == fragmentSet[f].x and fragmentSet[fCur].y == fragmentSet[f].y) { f++; } fCur++; } fragmentSet.resize(fCur); if (fragmentSet.size() == 0) { // // This requires at least one seeded tuple to begin an alignment. // return 0; } // // Find the longest chain of anchors. // SDPLongestCommonSubsequence(query.length, fragmentSet, tm.tupleSize, sdpIns, sdpDel, scoreFn.scoreMatrix[0][0], maxFragmentChain, alignType); // // Now turn the max fragment chain into a real alignment. // int startF; blasr::Alignment chainAlignment; alignment.qPos = 0; alignment.tPos = 0; Block block; std::vector fragScoreMat; std::vector fragPathMat; // // Patch the sdp fragments into an alignment, possibly breaking the // alignment if the gap between two fragments is too large. // for (f = 0; f < maxFragmentChain.size(); f++ ){ startF = f; // Condense contiguous stretches. while(f < maxFragmentChain.size() - 1 and fragmentSet[maxFragmentChain[f]].x == fragmentSet[maxFragmentChain[f+1]].x - 1 and fragmentSet[maxFragmentChain[f]].y == fragmentSet[maxFragmentChain[f+1]].y - 1) { f++; } block.qPos = fragmentSet[maxFragmentChain[startF]].x; block.tPos = fragmentSet[maxFragmentChain[startF]].y; // Compute the block length as the difference between the starting // point of the current block and ending point of the last // overlapping block. This was previously calculated by adding // the number of merged blocks - 1 to the first block length. // When the block lengths are heterogenous, this does not work, // and it would be possible to have a block with a length that // extends past the end of a sequence. By taking the length as // the difference here, it ensures this will not happen. // block.length = fragmentSet[maxFragmentChain[f]].x + fragmentSet[maxFragmentChain[f]].length - fragmentSet[maxFragmentChain[startF]].x; chainAlignment.blocks.push_back(block); } // // It may be possible that in regions of low similarity, spurious matches fit into the LCS. // Assume that indels cause the matches to diverge from the diagonal on a random walk. If they // walk more than 3 standard deviations away from the diagonal, they are probably spurious. // unsigned int b; chainAlignment.qPos = 0; chainAlignment.tPos = 0; for (b = 0; b < chainAlignment.size()-1; b++){ if (chainAlignment.blocks[b].qPos + chainAlignment.blocks[b].length > chainAlignment.blocks[b+1].qPos) { chainAlignment.blocks[b].length = (chainAlignment.blocks[b+1].qPos - chainAlignment.blocks[b].qPos); } if (chainAlignment.blocks[b].tPos + chainAlignment.blocks[b].length > chainAlignment.blocks[b+1].tPos) { chainAlignment.blocks[b].length = (chainAlignment.blocks[b+1].tPos - chainAlignment.blocks[b].tPos); } // the min indel rate between the two chain blocks is the difference in diagonals between the two sequences. int curDiag, nextDiag, diffDiag; curDiag = chainAlignment.blocks[b].tPos - chainAlignment.blocks[b].qPos; nextDiag = chainAlignment.blocks[b+1].tPos - chainAlignment.blocks[b+1].qPos; diffDiag = std::abs(curDiag - nextDiag); // // It is expected that the deviation is at least 1, so discount for this // diffDiag--; // compare the alignment distances. } std::vector blockIsGood; blockIsGood.resize(chainAlignment.size()); fill(blockIsGood.begin(), blockIsGood.end(), true); // // The hack that allows anchors of different lengths at the front // and end of alignments (to increase sensitivity at the ends of // sequences) has the side effect that there may be blocks that have // zero length. This shouldn't happen, so to balance this out // remove blocks that have zero length. // bool badBlock; for (b = 0; b < chainAlignment.size(); b++){ if (chainAlignment.blocks[b].length == 0) { blockIsGood[b] = false; } } for (b = 1; b < chainAlignment.size()-1; b++){ // the min indel rate between the two chain blocks is the difference in diagonals between the two sequences. int prevDiag = abs(((int)chainAlignment.blocks[b].tPos - (int)chainAlignment.blocks[b].qPos) - ((int)chainAlignment.blocks[b-1].tPos - (int)chainAlignment.blocks[b-1].qPos)); int prevDist = std::min(chainAlignment.blocks[b].tPos - chainAlignment.blocks[b-1].tPos, chainAlignment.blocks[b].qPos - chainAlignment.blocks[b-1].qPos); int nextDiag = abs(((int)chainAlignment.blocks[b+1].tPos - (int)chainAlignment.blocks[b+1].qPos) - ((int)chainAlignment.blocks[b].tPos - (int)chainAlignment.blocks[b].qPos)); int nextDist = std::min(chainAlignment.blocks[b+1].tPos - chainAlignment.blocks[b].tPos, chainAlignment.blocks[b+1].qPos - chainAlignment.blocks[b].qPos); if (prevDist * indelRate < prevDiag and nextDist * indelRate < nextDiag) { blockIsGood[b] = false; } } for (b = chainAlignment.size(); b > 0; b--) { if (blockIsGood[b-1] == false) { chainAlignment.blocks.erase(chainAlignment.blocks.begin() + b-1); } } if (chainAlignment.blocks.size() > 0) { T_QuerySequence qFragment; T_TargetSequence tFragment; blasr::Alignment fragAlignment; unsigned int fb; if (alignType == Global) { // // For Global alignment, refine the alignment from the beginnings of the // sequences to the start of the first block. // if (chainAlignment.blocks[0].qPos > 0 and chainAlignment.blocks[0].tPos > 0) { qFragment.seq = &query.seq[0]; qFragment.length = chainAlignment.blocks[0].qPos; tFragment.seq = &target.seq[0]; tFragment.length = chainAlignment.blocks[0].tPos; for (fb = 0; fb < alignment.blocks.size(); fb++) { alignment.blocks.push_back(fragAlignment.blocks[b]); } } } else if (alignType == Local) { // Perform a front-anchored alignment to extend the alignment to // the beginning of the read. if (chainAlignment.blocks[0].qPos > 0 and chainAlignment.blocks[0].tPos > 0) { qFragment.seq = (Nucleotide*) &query.seq[0]; qFragment.length = chainAlignment.blocks[0].qPos; tFragment.seq = (Nucleotide*) &target.seq[0]; tFragment.length = chainAlignment.blocks[0].tPos; blasr::Alignment frontAlignment; int frontAlignmentScore; // Currently, there might be some space between the beginning // of the alignment and the beginning of the read. Run an // EndAnchored alignment that allows free gaps to the start of // where the alignment begins, but normal, ungapped alignment // otherwise. if (extendFrontByLocalAlignment) { if (noRecurseUnder == 0 or qFragment.length * tFragment.length < noRecurseUnder) { frontAlignmentScore = SWAlign(qFragment, tFragment, fragScoreMat, fragPathMat, frontAlignment, scoreFn, EndAnchored); } else { // cout << "running recursive sdp alignment. " << endl; vector recurseFragmentChain; SDPAlign(qFragment, tFragment, scoreFn, std::max(wordSize/2, 5), sdpIns, sdpDel, indelRate, frontAlignment, fragmentSet, prefixFragmentSet, suffixFragmentSet, targetTupleList, targetPrefixTupleList, targetSuffixTupleList, recurseFragmentChain, alignType, detailedAlignment, extendFrontByLocalAlignment, 0); } unsigned int anchorBlock; for (anchorBlock = 0; anchorBlock < frontAlignment.blocks.size(); anchorBlock++) { // // The front alignment needs to be transformed to the // coordinate offsets that the chain alignment is in. This // is an alignment starting at position 0 in the target and // query. Currently, the front alignment is offset into the // sequences by frontAlignment.[q/t]Pos. // frontAlignment.blocks[anchorBlock].tPos += frontAlignment.tPos; frontAlignment.blocks[anchorBlock].qPos += frontAlignment.qPos; alignment.blocks.push_back(frontAlignment.blocks[anchorBlock]); } } } } // // The chain alignment blocks are not complete blocks, so they // must be appended to the true alignment and then patched up. // for (b = 0; b < chainAlignment.size() - 1; b++) { alignment.blocks.push_back(chainAlignment.blocks[b]); int alignScore; // // Do a detaied smith-waterman alignment between blocks, if this // is specified. fragAlignment.Clear(); qFragment.Free(); qFragment.ReferenceSubstring(query, chainAlignment.blocks[b].qPos + chainAlignment.blocks[b].length); qFragment.length = chainAlignment.blocks[b+1].qPos - (chainAlignment.blocks[b].qPos + chainAlignment.blocks[b].length); tFragment.seq = &(target.seq[chainAlignment.blocks[b].tPos + chainAlignment.blocks[b].length]); tFragment.length = (chainAlignment.blocks[b+1].tPos - (chainAlignment.blocks[b].tPos + chainAlignment.blocks[b].length)); if (qFragment.length > 0 and tFragment.length > 0 and detailedAlignment == true) { if (noRecurseUnder == 0 or qFragment.length * tFragment.length < noRecurseUnder) { alignScore = SWAlign(qFragment, tFragment, fragScoreMat, fragPathMat, fragAlignment, scoreFn, Global); } else { // cout << "running recursive sdp alignment on " << qFragment.length * tFragment.length << endl; std::vector recurseFragmentChain; SDPAlign(qFragment, tFragment, scoreFn, std::max(wordSize/2, 5), sdpIns, sdpDel, indelRate, fragAlignment, fragmentSet, prefixFragmentSet, suffixFragmentSet, targetTupleList, targetPrefixTupleList, targetSuffixTupleList, recurseFragmentChain, alignType, detailedAlignment, 0, 0); } fragAlignment.qPos = 0; fragAlignment.tPos = 0; int qOffset = chainAlignment.blocks[b].qPos + chainAlignment.blocks[b].length; int tOffset = chainAlignment.blocks[b].tPos + chainAlignment.blocks[b].length; for (fb = 0; fb < fragAlignment.blocks.size(); fb++) { fragAlignment.blocks[fb].qPos += qOffset; fragAlignment.blocks[fb].tPos += tOffset; alignment.blocks.push_back(fragAlignment.blocks[fb]); } } } int lastBlock = chainAlignment.blocks.size() - 1; if (alignType == Global or alignType == Local) { if (chainAlignment.size() > 0) { // Add the last block. alignment.blocks.push_back(chainAlignment.blocks[lastBlock]); if (alignType == Global and detailedAlignment == true) { // // When doing a global alignment, the sequence from the end of // the last block of the query should be aligned to the end of // the text. // qFragment.Free(); qFragment.ReferenceSubstring(query, chainAlignment.blocks[lastBlock].qPos + chainAlignment.blocks[lastBlock].length, query.length - (chainAlignment.blocks[lastBlock].qPos + chainAlignment.blocks[lastBlock].length)); tFragment.seq = &(target.seq[chainAlignment.blocks[lastBlock].tPos + chainAlignment.blocks[lastBlock].length]); tFragment.length = (target.length - (chainAlignment.blocks[lastBlock].tPos + chainAlignment.blocks[lastBlock].length)); if (qFragment.length > 0 and tFragment.length > 0 ) { if (extendFrontByLocalAlignment) { fragAlignment.Clear(); if (qFragment.length * tFragment.length > 10000) { // cout << "Cautin: slow alignment crossing! " << qFragment.length << " " << tFragment.length << endl; } if (noRecurseUnder == 0 or qFragment.length * tFragment.length < noRecurseUnder) { SWAlign(qFragment, tFragment, fragScoreMat, fragPathMat, fragAlignment, scoreFn, EndAnchored); } else { std::vector recurseFragmentChain; SDPAlign(qFragment, tFragment, scoreFn, std::max(wordSize/2, 5), sdpIns, sdpDel, indelRate, fragAlignment, fragmentSet, prefixFragmentSet, suffixFragmentSet, targetTupleList, targetPrefixTupleList, targetSuffixTupleList, recurseFragmentChain, alignType, detailedAlignment, extendFrontByLocalAlignment, 0); } int qOffset = chainAlignment.blocks[lastBlock].qPos + chainAlignment.blocks[lastBlock].length; int tOffset = chainAlignment.blocks[lastBlock].tPos + chainAlignment.blocks[lastBlock].length; unsigned int fb; for (fb = 0; fb < fragAlignment.size(); fb++) { fragAlignment.blocks[fb].qPos += qOffset; fragAlignment.blocks[fb].tPos += tOffset; alignment.blocks.push_back(fragAlignment.blocks[fb]); } } } } } } } if (alignType == Local) { alignment.tPos = alignment.blocks[0].tPos; alignment.qPos = alignment.blocks[0].qPos; VectorIndex b; for (b = 0; b < alignment.blocks.size(); b++) { alignment.blocks[b].qPos -= alignment.qPos; alignment.blocks[b].tPos -= alignment.tPos; } } int alignmentScore; /* ofstream queryOut("query.fasta"); FASTASequence tmp; ((DNASequence&)tmp).Copy(query); tmp.CopyTitle("query"); tmp.PrintSeq(queryOut); queryOut.close(); ofstream targetOut("target.fasta"); ((DNASequence&)tmp).Copy(target); tmp.CopyTitle("target"); tmp.PrintSeq(targetOut); targetOut.close(); */ alignmentScore = ComputeAlignmentScore(alignment, query, target, scoreFn); return alignmentScore; } #endif //_BLASR_SDP_ALIGN_IMPL_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/SWAlign.hpp000066400000000000000000000010341260756663100251370ustar00rootroot00000000000000#ifndef _BLASR_SW_ALIGN_HPP_ #define _BLASR_SW_ALIGN_HPP_ template int SWAlign(T_QuerySequence &qSeq, T_TargetSequence &tSeq, std::vector &scoreMat, std::vector &pathMat, T_Alignment &alignment, T_ScoreFn &scoreFn, AlignmentType alignType = Local, bool trustSequences = false, bool printMatrix = false ); #include "SWAlignImpl.hpp" #endif // _BLASR_SW_ALIGN_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/SWAlignImpl.hpp000066400000000000000000000362031260756663100257670ustar00rootroot00000000000000#include #include #include #include #include #include "Types.h" #include "defs.h" #include "DNASequence.hpp" #include "matrix/FlatMatrix.hpp" #include "datastructures/alignment/Path.h" #include "datastructures/alignment/AlignmentMap.hpp" #include "datastructures/alignment/AlignmentStats.hpp" #include "datastructures/alignment/Alignment.hpp" #include "AlignmentUtils.hpp" #include "SWAlign.hpp" template int SWAlign(T_QuerySequence &qSeq, T_TargetSequence &tSeq, std::vector &scoreMat, std::vector &pathMat, T_Alignment &alignment, T_ScoreFn &scoreFn, AlignmentType alignType, bool trustSequences, bool printMatrix ) { VectorIndex nRows = qSeq.length + 1; VectorIndex nCols = tSeq.length + 1; VectorIndex totalMatSize = nRows * nCols; if (scoreMat.size() < totalMatSize) { scoreMat.resize(totalMatSize); pathMat.resize(totalMatSize); } // // Initialze matrices std::fill(scoreMat.begin(), scoreMat.begin() + totalMatSize, 0); std::fill(pathMat.begin(), pathMat.begin() + totalMatSize, NoArrow); // // Initialize boundary conditions. // int r = 0, c = 0; if (alignType == Global or alignType == ScoreGlobal or alignType == FrontAnchored or alignType == ScoreFrontAnchored) { // // Global alignments penalize gaps at the beginning of both // sequences. // for (c = 0; c < (int) tSeq.length + 1; c++ ){ scoreMat[rc2index(0, c, tSeq.length + 1)] = scoreFn.del * c; pathMat[rc2index(0, c, tSeq.length + 1)] = Left; } for (r = 0; r < (int) qSeq.length + 1; r++ ){ scoreMat[rc2index(r,0, tSeq.length + 1)] = scoreFn.ins * r; pathMat[rc2index(r, 0, tSeq.length + 1)] = Up; } } else if (alignType == Local or alignType == ScoreLocal or alignType == LocalBoundaries // end anchoring requires free gap penalties at the // beginning of sequences. or alignType == EndAnchored or alignType == ScoreEndAnchored) { // // Local alignments may shave off the beginning of either read. // No penalties at the starts of reads. // for (c = 0; c < (int) tSeq.length + 1; c++ ){ scoreMat[rc2index(0, c, tSeq.length + 1)] = 0; pathMat[rc2index(0, c, tSeq.length + 1)] = NoArrow; } for (r = 0; r < (int) qSeq.length + 1; r++ ){ scoreMat[rc2index(r,0, tSeq.length + 1)] = 0; pathMat[rc2index(r, 0, tSeq.length + 1)] = NoArrow; } } else if (alignType == QueryFit or alignType == ScoreQueryFit) { // // Query fit allows free gaps at the beginning and end // of the target sequence. // for (c = 0; c < (int) tSeq.length + 1; c++ ){ scoreMat[rc2index(0, c, tSeq.length + 1)] = 0; pathMat[rc2index(0, c, tSeq.length + 1)] = Left; } for (r = 0; r < (int) qSeq.length + 1; r++ ){ scoreMat[rc2index(r,0, tSeq.length + 1)] = scoreFn.ins * r; pathMat[rc2index(r, 0, tSeq.length + 1)] = Up; } } else if (alignType == TargetFit or alignType == ScoreTargetFit) { // // Query fit allows free gaps at the beginning and end // of the target sequence. // for (c = 0; c < (int) tSeq.length + 1; c++ ){ scoreMat[rc2index(0, c, tSeq.length + 1)] = scoreFn.del * c; pathMat[rc2index(0, c, tSeq.length + 1)] = Left; } for (r = 0; r < (int) qSeq.length + 1; r++ ){ scoreMat[rc2index(r,0, tSeq.length + 1)] = 0; pathMat[rc2index(r, 0, tSeq.length + 1)] = Up; } } else if (alignType == Overlap or alignType == ScoreOverlap or alignType == TSuffixQPrefix or alignType == ScoreTSuffixQPrefix) { // // Overlap alignments allow a gap at the beginning of the // query, and at the end of the target. // for (r = 0; r < (int) qSeq.length + 1; r++ ){ scoreMat[rc2index(r,0, tSeq.length + 1)] = scoreFn.ins*r; pathMat[rc2index(r, 0, tSeq.length + 1)] = Up; } for (c = 0; c < (int) tSeq.length + 1; c++ ){ scoreMat[rc2index(0, c, tSeq.length + 1)] = 0; pathMat[rc2index(0, c, tSeq.length + 1)] = Left; } } else if (alignType == TPrefixQSuffix or alignType == ScoreTPrefixQSuffix) { // // Overlap alignments allow a gap at the beginning of the // query, and at the end of the target. // for (c = 0; c < (int) tSeq.length + 1; c++ ){ scoreMat[rc2index(0, c, tSeq.length + 1)] = scoreFn.del * c; pathMat[rc2index(0, c, tSeq.length + 1)] = Left; } for (r = 0; r < (int) qSeq.length + 1; r++ ){ scoreMat[rc2index(r,0, tSeq.length + 1)] = 0; pathMat[rc2index(r, 0, tSeq.length + 1)] = Up; } } pathMat[0] = Diagonal; int match, qGap, tGap; // // Begin matrix pointers after the int *matchScorePtr = &scoreMat[0]; int *gapQScorePtr = &scoreMat[1]; int *gapTScorePtr = &scoreMat[tSeq.length + 1 ]; int *curScorePtr = &scoreMat[tSeq.length + 2 ]; Arrow *optPathPtr = &pathMat[tSeq.length + 2]; int minScore; int localMinScore = 0; int localMinRow = 0; int localMinCol = 0; for (r = 0; r < (int) qSeq.length; r++ ){ for (c = 0; c < (int) tSeq.length; c++ ) { // // r+1, c+1 is the current row /col in the score and path mat. // //match = matchMat[TwoBit[qSeq.seq[r]]][TwoBit[tSeq.seq[c]]] + *matchScorePtr; // qGap = *gapQScorePtr + gap; // tGap = *gapTScorePtr + gap; match = scoreFn.Match(tSeq, c, qSeq, r) + scoreMat[rc2index(r,c,nCols)]; qGap = scoreMat[rc2index(r,c+1, nCols)] + scoreFn.Insertion(tSeq, r+1, qSeq, c); tGap = scoreMat[rc2index(r+1,c, nCols)] + scoreFn.Deletion(tSeq, r, qSeq, c+1); minScore = MIN(match, MIN(qGap, tGap)); if (minScore < localMinScore) { localMinScore = minScore; localMinRow = r; localMinCol = c; } if (minScore > 0 and (alignType == Local or alignType == ScoreLocal or alignType == LocalBoundaries or alignType == EndAnchored or alignType == ScoreEndAnchored )) { *curScorePtr = 0; *optPathPtr = NoArrow; } // This staement will get easier when the alignTypes are bitfields. // Not sure why this explicitly checks all conditions. else if (alignType == Local or alignType == Global or alignType == QueryFit or alignType == Overlap or alignType == TargetFit or alignType == ScoreTargetFit or alignType == ScoreLocal or alignType == ScoreGlobal or alignType == ScoreQueryFit or alignType == ScoreOverlap or alignType == FrontAnchored or alignType == ScoreFrontAnchored or alignType == EndAnchored or alignType == ScoreEndAnchored or alignType == LocalBoundaries or alignType == TPrefixQSuffix or alignType == ScoreTPrefixQSuffix or alignType == TSuffixQPrefix or alignType == ScoreTSuffixQPrefix ) { *curScorePtr = minScore; // scoreMat[rc2index(r+1,c+1, tl)] = minScore; if (minScore == match) { *optPathPtr = Diagonal; //pathMat[rc2index(r+1,c+1,tl)] = Diagonal; } else if (minScore == qGap) { *optPathPtr = Up; //pathMat[rc2index(r+1,c+1, tl)] = Up; } else if (minScore == tGap) { *optPathPtr = Left; //pathMat[rc2index(r+1,c+1, tl)] = Left; } } ++matchScorePtr; ++gapTScorePtr; ++gapQScorePtr; ++curScorePtr; ++optPathPtr; } // Done processing a row. // This leaves the pointers starting at the first column in the next row // which is a boundary column. Advance one more. // ++matchScorePtr; ++gapTScorePtr; ++gapQScorePtr; ++curScorePtr; ++optPathPtr; } // // Now trace back in the pairwise alignment. // // The location of the trace back depends on the type of alignment that is done. int minRow = 0, minCol = 0; if (alignType == Global or alignType == ScoreGlobal or alignType == EndAnchored or alignType == ScoreEndAnchored ) { // start at bottom right of matrix. r = qSeq.length; c = tSeq.length; minRow = r; minCol = c; } else if (alignType == Local or alignType == ScoreLocal or alignType == FrontAnchored or alignType == ScoreFrontAnchored or alignType == LocalBoundaries) { // start at cell that gives the highest score. r = localMinRow; c = localMinCol; minRow = r; minCol = c; } else if (alignType == QueryFit or alignType == Overlap or alignType == ScoreQueryFit or alignType == ScoreOverlap) { // Start at the point at the end of the target that gives the highest score, but has the // end query sequence alignment. r = nRows-1; int minScore = scoreMat[rc2index(nRows-1, 1, nCols)]; minCol = 1; for (c = 2; c < (int) nCols; c++ ) { if (scoreMat[rc2index(nRows-1, c, nCols)] < minScore) { minScore = scoreMat[rc2index(nRows-1, c, nCols)]; minCol = c; } } c = minCol; minRow = nRows - 1; } else if (alignType == TargetFit or alignType == ScoreTargetFit) { // Start at the point at the end of the target that gives the highest score, but has the // end query sequence alignment. // // Always trace back from the end of the target. // minCol = nCols-1; c = nCols-1; r = 0; int minScore = scoreMat[rc2index(1, nCols-1, nCols)]; for (r = 2; r < (int) nRows; r++ ) { if (scoreMat[rc2index(r, nCols-1, nCols)] < minScore) { minScore = scoreMat[rc2index(r, nCols-1, nCols)]; minRow = r; } } // store where to trace back from in the query. r = minRow; } else if (alignType == TSuffixQPrefix or alignType == ScoreTSuffixQPrefix) { // Start at the point at the end of the target that gives the highest score, but has the // end query sequence alignment. c = nCols - 1; r = 1; int minScore = scoreMat[rc2index(1, nCols-1, nCols)]; minRow = 1; for (r = 2; r < (int) nRows; r++) { if (scoreMat[rc2index(r, nCols-1, nCols)] < minScore) { minScore = scoreMat[rc2index(r, nCols-1, nCols)]; minRow = r; } } r = minRow; minCol = nCols - 1; } else if (alignType == TPrefixQSuffix or alignType == ScoreTPrefixQSuffix) { r = nRows-1; int minScore = scoreMat[rc2index(nRows-1, 1, nCols)]; minCol = 1; for (c = 2; c < (int) nCols; c++ ) { if (scoreMat[rc2index(nRows-1, c, nCols)] < minScore) { minScore = scoreMat[rc2index(nRows-1, c, nCols)]; minCol = c; } } c = minCol; minRow = nRows - 1; } /* PrintFlatMatrix(&scoreMat[0], nRows, nCols, cout); PrintFlatMatrix(&pathMat[0], nRows,nCols, cout); */ if (alignType != ScoreGlobal and alignType != ScoreLocal and alignType != ScoreQueryFit and alignType != ScoreOverlap and alignType != ScoreTPrefixQSuffix and alignType != ScoreTSuffixQPrefix) { std::vector optAlignment; Arrow arrow; while (((alignType == Global or alignType == FrontAnchored ) and (r > 0 or c > 0)) or // global alignment stops at top corner ((alignType == QueryFit or alignType == Overlap or alignType == TSuffixQPrefix) and r > 0) or ((alignType == TPrefixQSuffix) and c > 0) or (alignType == TargetFit and c > 0) or // local alignment stops at top corner -or- when new local alignment started. ((alignType == Local or alignType == EndAnchored or alignType == LocalBoundaries) and r > 0 and c > 0 and pathMat[r*nCols+c] != NoArrow) ) { arrow = pathMat[rc2index(r, c, nCols)]; // // When the alignment type is localBoundaries, it is not necessary to store // the actual alignment. Only the starting positions and lengts will be stored. // if (alignType != LocalBoundaries) { optAlignment.push_back(arrow); } if (arrow == Diagonal) { r--; c--; } else if (arrow == Up) { r--; } else if (arrow == Left) { c--; } } // remove the boundary condition that is added for global alignment. if (alignType == LocalBoundaries and alignType != Local and alignType != EndAnchored and optAlignment.size() > 0) optAlignment.pop_back(); if (optAlignment.size() > 1) std::reverse(optAlignment.begin(), optAlignment.end()); if (optAlignment.size() > 0) alignment.ArrowPathToAlignment(optAlignment); // // If running a local alignment, the alignment does not // explicityly encode the gaps at the beginning and ending of the // alignment. These are stored in the qPos and tPos fields. // if (alignType == TSuffixQPrefix or alignType == TPrefixQSuffix) { alignment.qPos = r; alignment.tPos = c; } else if (alignType == Local or alignType == EndAnchored or alignType == LocalBoundaries) { alignment.qPos = r; alignment.tPos = c; alignment.qLength = localMinRow - alignment.qPos + 1; alignment.tLength = localMinCol - alignment.tPos + 1; } else if (alignType == QueryFit or alignType == TargetFit) { alignment.qPos = r; alignment.tPos = c; } } if (printMatrix) { PrintFlatMatrix( &scoreMat[0], qSeq.length + 1, tSeq.length + 1, std::cout); std::cout << std::endl; PrintFlatMatrix( &pathMat[0], qSeq.length + 1, tSeq.length + 1, std::cout); } return scoreMat[rc2index(minRow, minCol, nCols)]; } blasr_libcpp-master/alignment/algorithms/alignment/ScoreMatrices.cpp000066400000000000000000000017011260756663100263720ustar00rootroot00000000000000#include "ScoreMatrices.hpp" int QVDistanceMatrix[5][5] = { {-1, 1, 1, 1, 1}, {1, -1, 1, 1, 1}, {1, 1, -1, 1, 1}, {1, 1, 1, -1, 1}, {1, 1, 1, 1, 1} }; int EditDistanceMatrix[5][5] = { {0, 1, 1, 1, 1}, {1, 0, 1, 1, 1}, {1, 1, 0, 1, 1}, {1, 1, 1, 0, 1}, {1, 1, 1, 1, 1} }; int SMRTDistanceMatrix[5][5] = { {-5, 6, 6, 6, 6}, {6, -5, 6, 6, 6}, {6, 6, -5, 6, 6}, {6, 6, 6, -5, 6}, {6, 6, 6, 6, 0} }; int SMRTLogProbMatrix[5][5] = { {0, 15, 15, 15, 15}, {15, 0, 15, 15, 15}, {15, 15, 0, 15, 15}, {15, 15, 15, 0, 15}, {15, 15, 15, 15, 0}, }; int LowMutationMatrix[5][5] = { {0, 5, 5, 5, 5}, {5, 0, 5, 5, 5}, {5, 5, 0, 5, 5}, {5, 5, 5, 0, 5}, {5, 5, 5, 5, 5} }; int LocalAlignLowMutationMatrix[5][5] = { {-2, 5, 5, 5, 5}, {5, -2, 5, 5, 5}, {5, 5, -2, 5, 5}, {5, 5, 5, -2, 5}, {5, 5, 5, 5, 5} }; int CrossMatchMatrix[5][5] = { {-1, 2, 2, 2, 2}, {2, -1, 2, 2, 2}, {2, 2, -1, 2, 2}, {2, 2, 2, -1, 2}, {2, 2, 2, 2, 2} }; blasr_libcpp-master/alignment/algorithms/alignment/ScoreMatrices.hpp000066400000000000000000000005771260756663100264110ustar00rootroot00000000000000#ifndef _BLASR_SCORE_MATRICES_HPP_ #define _BLASR_SCORE_MATRICES_HPP_ extern int QVDistanceMatrix[5][5]; extern int EditDistanceMatrix[5][5]; extern int SMRTDistanceMatrix[5][5]; extern int SMRTLogProbMatrix[5][5]; extern int LowMutationMatrix[5][5]; extern int LocalAlignLowMutationMatrix[5][5]; extern int CrossMatchMatrix[5][5]; #endif // _BLASR_SCORE_MATRICES_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/StringToScoreMatrix.cpp000066400000000000000000000011021260756663100275540ustar00rootroot00000000000000#include "StringToScoreMatrix.hpp" bool StringToScoreMatrix(std::string &str, int matrix[5][5]) { std::stringstream strm(str); std::vector values; while(strm) { int val; if ((strm >> val)) { values.push_back(val); } } if (values.size() != 25) { return 0; } else { int i,j; int index = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { matrix[i][j] = values[index]; ++index; } } return true; } } blasr_libcpp-master/alignment/algorithms/alignment/StringToScoreMatrix.hpp000066400000000000000000000003241260756663100275660ustar00rootroot00000000000000#ifndef _BLASR_STRING_TO_SCORE_MATRIX_HPP_ #define _BLASR_STRING_TO_SCORE_MATRIX_HPP_ #include #include #include bool StringToScoreMatrix(std::string &str, int matrix[5][5]); #endif blasr_libcpp-master/alignment/algorithms/alignment/sdp/000077500000000000000000000000001260756663100237125ustar00rootroot00000000000000blasr_libcpp-master/alignment/algorithms/alignment/sdp/FragmentSort.hpp000066400000000000000000000006511260756663100270400ustar00rootroot00000000000000#ifndef _BLASR_FRAGMENT_SORT_HPP_ #define _BLASR_FRAGMENT_SORT_HPP_ template class LexicographicFragmentSort { public: int operator()(const T_Fragment &a, const T_Fragment &b) const; }; template class LexicographicFragmentSortByY { public: int operator()(const T_Fragment &a, const T_Fragment &b) const; }; #include "FragmentSortImpl.hpp" #endif // _BLASR_FRAGMENT_SORT_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/sdp/FragmentSortImpl.hpp000066400000000000000000000005661260756663100276670ustar00rootroot00000000000000#include "FragmentSort.hpp" template int LexicographicFragmentSort::operator() (const T_Fragment &a, const T_Fragment &b) const { return a.LessThanXY(b); } template int LexicographicFragmentSortByY::operator() (const T_Fragment &a, const T_Fragment &b) const { return a.LessThanYX(b); } blasr_libcpp-master/alignment/algorithms/alignment/sdp/NonoverlappingSparseDynamicProgramming.h000066400000000000000000000130671260756663100337610ustar00rootroot00000000000000#ifndef NONOVERLAPPING_SPARSE_DYNAMIC_PROGRAMMING_H_ #define NONOVERLAPPING_SPARSE_DYNAMIC_PROGRAMMING_H_ /* * * Compute the subset of fragmentSet of largest weight that is not overlapping. * */ #include "FragmentSort.h" #include "SDPSet.h" #include "SDPFragment.h" #include "SDPColumn.h" #include "../AlignmentUtils.h" #include "../../../datastructures/alignment/Alignment.h" template int SDPHeaviestSubsequence(int queryLength, vector &fragmentSet, int indel, int match, vector &maxFragmentChain, AlignmentType alignType=Global) { maxFragmentChain.clear(); if (fragmentSet.size() < 1) return 0; std::sort(fragmentSet.begin(), fragmentSet.end(), LexicographicFragmentSort()); SDPSet activeSet; int sweepX; int trailRow; int fSweep; int fi; for (fi = 0; fi < fragmentSet.size(); fi++) { fragmentSet[fi].index = fi; } sweepX = fragmentSet[0].x; fSweep = 0; int maxChainLength = 0; int maxChainFragment = -1; int minFragmentCost, minFragmentIndex; minFragmentCost = INF_INT; minFragmentIndex = -1; for (sweepX = 0; sweepX < queryLength; sweepX++) { // // For each fragment ending in sweepX, attempt to compute its cost // by looking for the best previous match. // int fSweepStart = fSweep; while (fSweep < fragmentSet.size() and fragmentSet[fSweep].x == sweepX) { // // Compute the cost of every fragment in the sweep. // int cp = INF_INT, cl = INF_INT, ca = INF_INT; SDPColumn curCol, predCol; curCol.col = fragmentSet[fSweep].y; // // Search preceeding fragments. // // // Compute the cost of fragment_f int foundPrev = 0; T_Fragment fragStartPoint; fragStartPoint.x = fragmentSet[fSweep].x - fragmentSet[fSweep].GetLength(); fragStartPoint.y = fragmentSet[fSweep].y - fragmentSet[fSweep].GetLength(); T_Fragment predFrag; int predFragScore; if (activeSet.Predecessor(fragStartPoint, predFrag)) { // // predCol points to the fragment with greatest value less than curCol. // predFragScore = fragmentSet[predCol.optFragment].cost + abs((fragmentSet[fSweep].x - fragmentSet[fSweep].y) - (fragmentSet[predCol.optFragment].x - fragmentSet[predCol.optFragment].y)) * indel; foundPrev = 1; } // // Now assign the score for the fragment. When doing a local alignment // start a new chain if the score is not good. if (foundPrev and (alignType == Global or (alignType == Local and predFragScore < 0))) { fragmentSet[fSweep].chainPrev = predCol.optFragment; fragmentSet[fSweep].cost = predFragScore - fragmentSet[fSweep].weight; fragmentSet[fSweep].chainLength = fragmentSet[fragmentSet[fSweep].chainPrev].chainLength + 1; } else { fragmentSet[fSweep].chainPrev = -1; fragmentSet[fSweep].cost = fragmentSet[fSweep].GetLength() * match - fragmentSet[fSweep].weight; fragmentSet[fSweep].chainLength = 1; } if (minFragmentCost > fragmentSet[fSweep].cost) { minFragmentCost = fragmentSet[fSweep].cost; minFragmentIndex = fSweep; // maxChainLength = fragmentSet[fSweep].chainLength; } if (fragmentSet[fSweep].chainLength > maxChainLength) { maxChainLength = fragmentSet[fSweep].chainLength; maxChainFragment = fSweep; } fSweep++; } // // Each column must contain the highest scoring hit in that column. // fSweep = fSweepStart; while (fSweep < fragmentSet.size() and fragmentSet[fSweep].x == sweepX) { // // These elements are removed from the sweep set since they are done being processed. // If they are the lowest cost in the value, update activeSet // SDPColumn col; int storeCol = 0; col.col = fragmentSet[fSweep].y; if (activeSet.Member(col)) { if (fragmentSet[col.optFragment].cost < fragmentSet[fSweep].cost) { storeCol = 1; } } else { storeCol = 1; } if (storeCol) { col.col = fragmentSet[fSweep].y; col.optFragment = fSweep; // // Insert new column or replace col with a more optimal one. // activeSet.Insert(col); // // The invariant structure of the activeSet is that // after inserting a fragment of score S at column col, // the score of all columns greater than 'col' in col set // must be less than col. // // To preserve this invariant, when an element is inserted // at 'col', look to columns greater. As long as any columns // have scores that are greater than col, remove them. // Once a column col_next has been found that has a score less than S // by the structure of the loop invariant, all columns greater than col_next // are guaranteed to have lower score than S, so we can continue searching // through this loop. // // Since fragments are processed at most once, this remains O(M). SDPColumn successorCol = col; while (activeSet.Successor(col, successorCol) and fragmentSet[successorCol.optFragment].cost > fragmentSet[fSweep].cost) { activeSet.Delete(successorCol); } } // // Now remove this fragment, it is at the end of the sweep line. // int deleted; deleted = activeSet.Delete(fragmentSet[fSweep]); assert(deleted); ++fSweep; } } if (alignType == Local) { maxChainFragment = minFragmentIndex; } while (maxChainFragment != -1) { maxFragmentChain.push_back(maxChainFragment); maxChainFragment = fragmentSet[maxChainFragment].chainPrev; } std::reverse(maxFragmentChain.begin(), maxFragmentChain.end()); return maxFragmentChain.size(); } #endif blasr_libcpp-master/alignment/algorithms/alignment/sdp/SDPColumn.hpp000066400000000000000000000010411260756663100262230ustar00rootroot00000000000000#ifndef _BLASR_SDP_COLUMN_HPP_ #define _BLASR_SDP_COLUMN_HPP_ class SDPColumn { public: int col; int optFragment; SDPColumn() : col(0), optFragment(0) {} int operator<(const SDPColumn & rhs) const { return col < rhs.col; } int operator<(const int y) const { return col < y; } int operator==(const SDPColumn &rhs) const { return col == rhs.col; } int operator>(const SDPColumn &rhs) const { return (!(*this < rhs) && !(*this == rhs)); } }; #endif // _BLASR_SDP_COLUMN_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/sdp/SDPFragment.cpp000066400000000000000000000007211260756663100265300ustar00rootroot00000000000000#include "SDPFragment.hpp" int Fragment::operator>(const Fragment &f) const { return (!(*this < f) && !(*this == f)); } int Fragment::GetLength() { return length; } void Fragment::SetLength(int _length) { length = _length; } bool Fragment::SetAbove(int a) { above = a; return true; } bool Fragment::GetAbove(int & a) { if (above >= 0) { a = above; return true; } else { a = -1; return false; } } blasr_libcpp-master/alignment/algorithms/alignment/sdp/SDPFragment.hpp000066400000000000000000000054231260756663100265410ustar00rootroot00000000000000#ifndef _BLASR_SDP_FRAGMENT_HPP_ #define _BLASR_SDP_FRAGMENT_HPP_ class Fragment { public: unsigned int x; unsigned int y; unsigned int weight; unsigned int length; int index; int chainPrev; int cost; int above; unsigned int chainLength; inline Fragment(unsigned int px, unsigned int py, int pweight=0); inline Fragment(); unsigned int GetX() const {return x;} unsigned int GetY() const {return y;} bool SetAbove(int a); bool GetAbove(int & a); inline int LessThanXY(const Fragment &f) const; inline int LessThanYX(const Fragment &f) const; inline int operator<(const Fragment &f) const; inline Fragment& operator=(const Fragment &rhs); inline int operator==(const Fragment &f) const; int operator>(const Fragment &f) const; int GetLength(); void SetLength(int _length); }; inline Fragment::Fragment(unsigned int px, unsigned int py, int pweight) { x = px; y = py; weight = pweight; length = index = 0; chainPrev = cost = chainLength = 0; above = -1; } // // Provide default constructor that will // give bad results if members are not properly initialized // later on. // inline Fragment::Fragment() { x = -1; y = -1; weight = length = index = 0; chainPrev = cost = chainLength = 0; above = -1; } inline int Fragment::LessThanXY(const Fragment &f) const { if (x == f.x) { if (y == f.y) { if (length == f.length) return 0; else return length < f.length; } else return y < f.y; } else return x < f.x; /* if (x < f.x) return 1; else if (x == f.x) return y < f.y; else return 0; */ } inline int Fragment::LessThanYX(const Fragment &f) const { if (y == f.y) { if (x == f.x) { if (length == f.length) return 0; else return length < f.length; } else return x < f.x; } else return y < f.y; /* if (y < f.y) return 1; else if (y == f.y) return x < f.x; else return 0; */ } inline Fragment& Fragment::operator=(const Fragment &rhs) { x = rhs.x; y = rhs.y; index = rhs.index; cost = rhs.cost; weight = rhs.weight; length = rhs.length; chainLength = rhs.chainLength; chainPrev = rhs.chainPrev; above = rhs.above; return *this; } inline int Fragment::operator==(const Fragment &f) const { return (x == f.x and y == f.y); } inline int Fragment::operator<(const Fragment &f) const { // // Sort fragments by diagonal: // int diag, fDiag; diag = (y - x); fDiag = f.y - f.x; if (diag < fDiag) return 1; else if (diag == fDiag) return (x < f.x); else return 0; } #endif // _BLASR_SDP_FRAGMENT_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/sdp/SDPSet.hpp000066400000000000000000000021461260756663100255300ustar00rootroot00000000000000#ifndef _BLASR_SDP_SET_HPP_ #define _BLASR_SDP_SET_HPP_ /* A SDPSet is a collection of types T that have strict ordering defined. It supports ways to query for points immediately less or immediately greater than another value. */ template class SDPSet { private: typedef std::set Tree; typename SDPSet::Tree tree; public: int size(); /* * Remove a fragment f if it exists. */ int Delete(T &f); /* * Insert a fresh copy of f into the set. If a copy * already exists, replace it with this one. */ inline VectorIndex Insert(T &f); /* Returns true if there is a value such that value == f */ int Member(T &f); int Min(T &f); /* * Given f, set succ to be the first value greater than f. * Return 1 if such a value exists, 0 otherwise. */ int Successor(T &f, T &succ); /* * Given f, set pred to the first value less than f. * Returns 1 if such a value exists, 0 otherwise. */ int Predecessor(T &f, T &pred); }; #include "SDPSetImpl.hpp" #endif // _BLASR_SDP_SET_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/sdp/SDPSetImpl.hpp000066400000000000000000000043221260756663100263500ustar00rootroot00000000000000#include #include #include "Types.h" #include "SDPSet.hpp" template int SDPSet::size() { return tree.size(); } /* * Remove a fragment f if it exists. */ template int SDPSet::Delete(T &f) { typename std::set::iterator it = tree.find(f); if (it != tree.end() and (*it) == f) { tree.erase(f); return 1; } return 0; } /* * Insert a fresh copy of f into the set. If a copy * already exists, replace it with this one. */ template inline VectorIndex SDPSet::Insert(T &f) { typename SDPSet::Tree::iterator it = tree.find(f); if (it != tree.end()) tree.erase(it); tree.insert(f); return tree.size(); } /* Returns true if there is a value such that value == f */ template int SDPSet::Member(T &f) { typename SDPSet::Tree::iterator it = tree.find(f); if (it != tree.end()) { f = *it; return 1; } return 0; } template int SDPSet::Min(T &f) { if (tree.size() == 0) { return 0; } else { f = *(tree.begin()); } } /* * Given f, set succ to be the first value greater than f. * Return 1 if such a value exists, 0 otherwise. */ template int SDPSet::Successor(T &f, T &succ) { // // Set succ to the first value > f, if such a value exists. // if (tree.size() < 2) { return 0; } typename Tree::iterator it = tree.upper_bound(f); if (it == tree.end()) return 0; succ = *it; return 1; } /* * Given f, set pred to the first value less than f. * Returns 1 if such a value exists, 0 otherwise. */ template int SDPSet::Predecessor(T &f, T &pred) { // // Set pred equal to the largest value <= f. // Return 1 if such a value exists, 0 otherwise. // if (tree.size() == 0) return 0; typename Tree::iterator it = tree.find(f); if (it != tree.end()) { pred = *it; return 1; } it = tree.lower_bound(f); if (it != tree.begin()) --it; if (f < *it) { // No elements less than f exist. return 0; } else { pred = *it; return 1; } } blasr_libcpp-master/alignment/algorithms/alignment/sdp/SparseDynamicProgramming.cpp000066400000000000000000000006201260756663100313610ustar00rootroot00000000000000#include "SparseDynamicProgramming.hpp" int IndelPenalty(int x1, int y1, int x2, int y2, int insertion, int deletion) { int drift, driftPenalty; drift = (x1 - y1) - (x2 - y2); if (drift > 0) { driftPenalty = drift * insertion; } else if (drift < 0) { driftPenalty = -drift * deletion; } else { driftPenalty = 0; } return driftPenalty; } blasr_libcpp-master/alignment/algorithms/alignment/sdp/SparseDynamicProgramming.hpp000066400000000000000000000023741260756663100313760ustar00rootroot00000000000000#ifndef SPARSE_DYNAMIC_PROGRAMMING_H_ #define SPARSE_DYNAMIC_PROGRAMMING_H_ #include #include #include "Types.h" #include "defs.h" #include "DNASequence.hpp" #include "datastructures/alignment/Alignment.hpp" #include "algorithms/alignment/AlignmentUtils.hpp" /******************************************************************************* * Sparse dynamic programming implementation of Longest Common Subsequence * * Implementation of method described in Baker and Giancarlo, Journal of * Algorithms 42, 231-254, 2002. * * 5/7/09 -- Modified to incorporate different linear cost functions, and * local alignments. * ******************************************************************************/ int IndelPenalty(int x1, int y1, int x2, int y2, int insertion, int deletion); template void StoreAbove(std::vector &fragmentSet, DNALength fragmentLength); template int SDPLongestCommonSubsequence(DNALength queryLength, std::vector &fragmentSet, DNALength fragmentLength, int insertion, int deletion, int match, std::vector &maxFragmentChain, AlignmentType alignType=Global); #include "SparseDynamicProgrammingImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/alignment/sdp/SparseDynamicProgrammingImpl.hpp000066400000000000000000000245731260756663100322250ustar00rootroot00000000000000#ifndef SPARSE_DYNAMIC_PROGRAMMING_IMPL_HPP_ #define SPARSE_DYNAMIC_PROGRAMMING_IMPL_HPP_ #include #include #include #include #include #include #include #include "SDPSet.hpp" #include "SDPFragment.hpp" #include "SDPColumn.hpp" #include "FragmentSort.hpp" template void StoreAbove(std::vector &fragmentSet, DNALength fragmentLength) { std::sort(fragmentSet.begin(), fragmentSet.end(), LexicographicFragmentSortByY()); int i; for (i = 1; i < fragmentSet.size(); i++) { if (fragmentSet[i-1].x <= fragmentSet[i].x and fragmentSet[i-1].x + fragmentSet[i-1].length > fragmentSet[i].x and fragmentSet[i-1].y < fragmentSet[i].y) { fragmentSet[i].SetAbove(fragmentSet[i-1].index); } } // Place back in original order. std::sort(fragmentSet.begin(), fragmentSet.end(), LexicographicFragmentSort()); } template int SDPLongestCommonSubsequence(DNALength queryLength, std::vector &fragmentSet, DNALength fragmentLength, int insertion, int deletion, int match, std::vector &maxFragmentChain, AlignmentType alignType) { maxFragmentChain.clear(); if (fragmentSet.size() < 1) return 0; std::sort(fragmentSet.begin(), fragmentSet.end(), LexicographicFragmentSort()); SDPSet sweepSet; SDPSet colSet; unsigned int sweepRow; unsigned int trailRow; VectorIndex fSweep, fTrail; VectorIndex fi; for (fi = 0; fi < fragmentSet.size(); fi++) { fragmentSet[fi].index = fi; } StoreAbove(fragmentSet, fragmentLength); sweepRow = fragmentSet[0].x; Fragment pred, succ; fSweep = 0; fTrail = 0; unsigned int maxChainLength = 0; int maxChainFragment = -1; int minFragmentCost, minFragmentIndex; minFragmentCost = INF_INT; minFragmentIndex = -1; for (; sweepRow < queryLength + fragmentLength; sweepRow++) { // // Add all elements on the sweep row to the sweep set. Note that when // fSweep is past query.length. int startF = fSweep; int fragmentSetSize = fragmentSet.size(); while (fSweep < fragmentSetSize and fragmentSet[fSweep].x == sweepRow) { // // Compute the cost of every fragment in the sweep. // int cp = INF_INT, cl = INF_INT, ca = INF_INT; SDPColumn curCol, predCol; curCol.col = fragmentSet[fSweep].y; // // Search preceeding fragments. // // // Compute the cost of fragment_f int foundPrev = 0; int drift, driftPenalty; if (colSet.Predecessor(curCol, predCol)) { // // predCol points to the fragment with greatest value less than curCol. // // Baker and Giancarlo LCS cost driftPenalty = IndelPenalty(fragmentSet[fSweep].x, fragmentSet[fSweep].y, fragmentSet[predCol.optFragment].x, fragmentSet[predCol.optFragment].y, insertion, deletion); cp = fragmentSet[predCol.optFragment].cost + driftPenalty; foundPrev = 1; } // Search overlapping fragments. if (sweepSet.Predecessor(fragmentSet[fSweep], pred)) { // // Baker and Giancarlo LCS cost // Cost with insertion and deletion penalty. // cl = pred.cost + MIN((int)(fragmentLength - (fragmentSet[fSweep].y - pred.y)) * match, 0) + IndelPenalty(fragmentSet[fSweep].x, fragmentSet[fSweep].y, pred.x, pred.y, insertion, deletion); foundPrev = 1; } int aboveIndex; if (fragmentSet[fSweep].GetAbove(aboveIndex)) { // Baker and Giancarlo LCS cost ca = fragmentSet[aboveIndex].cost + (fragmentLength - (int)(fragmentSet[fSweep].y - fragmentSet[aboveIndex].y)) * match + IndelPenalty(fragmentSet[fSweep].x, fragmentSet[fSweep].y, fragmentSet[aboveIndex].x, fragmentSet[aboveIndex].y, insertion, deletion); foundPrev = 1; } // // Now compute the minimum of all these. // int minCost; minCost = MIN(cp, MIN(cl, ca)); // // If doing a global alignment, chain is always extended. If local, the chain may not be. // if (foundPrev and (alignType == Global or (alignType == Local and minCost < 0))) { fragmentSet[fSweep].cost = minCost - fragmentSet[fSweep].weight; if (minCost == cp) { fragmentSet[fSweep].chainPrev = predCol.optFragment; } else if (minCost == cl) { fragmentSet[fSweep].chainPrev = pred.index; } else if (minCost == ca) { fragmentSet[fSweep].chainPrev = aboveIndex; } assert(fragmentSet[fSweep].chainPrev >= 0 and fragmentSet[fSweep].chainPrev < (int)fragmentSet.size()); fragmentSet[fSweep].chainLength = fragmentSet[fragmentSet[fSweep].chainPrev].chainLength + 1; } else { if (alignType == Global) { fragmentSet[fSweep].chainPrev = (int) -1; fragmentSet[fSweep].cost = (fragmentSet[fSweep].x + fragmentSet[fSweep].y) * deletion + fragmentLength * match - fragmentSet[fSweep].weight; fragmentSet[fSweep].chainLength = 1; } else if (alignType == Local) { fragmentSet[fSweep].chainPrev = (int) -1; fragmentSet[fSweep].cost = fragmentLength * match - fragmentSet[fSweep].weight; fragmentSet[fSweep].chainLength = 1; } } if (minFragmentCost > fragmentSet[fSweep].cost) { minFragmentCost = fragmentSet[fSweep].cost; minFragmentIndex = fSweep; // maxChainLength = fragmentSet[fSweep].chainLength; } if (fragmentSet[fSweep].chainLength > maxChainLength) { maxChainLength = fragmentSet[fSweep].chainLength; maxChainFragment = fSweep; } // Done computing the optimal score for this fragment. fSweep++; } // // Insert all fragments in the sweep set // fSweep = startF; while (fSweep < fragmentSetSize and fragmentSet[fSweep].x == sweepRow) { // cout << "inserting sweep set with index" << fragmentSet[fSweep].index << endl; sweepSet.Insert(fragmentSet[fSweep]); ++fSweep; } // Remove elements from the sweep set that are too far back. if (sweepRow >= fragmentLength + 1) { trailRow = sweepRow - fragmentLength - 1; while (fTrail < fragmentSetSize and fragmentSet[fTrail].x == trailRow) { // // These elements are removed from the sweep set since they are done being processed. // If they are the lowest cost in the value, update colSet // SDPColumn col; int storeCol = 0; col.col = fragmentSet[fTrail].y; if (colSet.Member(col)) { if (fragmentSet[col.optFragment].cost < fragmentSet[fTrail].cost) { storeCol = 1; } } else { storeCol = 1; } if (storeCol) { col.col = fragmentSet[fTrail].y; col.optFragment = fTrail; // // Insert new column or replace col with a more optimal one. // colSet.Insert(col); // // The invariant structure of the colSet is that // after inserting a fragment of score S at column col, // the score of all columns greater than 'col' in col set // must be less than col. // // To preserve this invariant, when an element is inserted // at 'col', look to columns greater. As long as any columns // have scores that are greater than col, remove them. // Once a column col_next has been found that has a score less than S // by the structure of the loop invariant, all columns greater than col_next // are guaranteed to have lower score than S, so we can continue searching // through this loop. // // Since fragments are processed at most once, this remains O(M). SDPColumn successorCol = col; while (colSet.Successor(col, successorCol) and fragmentSet[successorCol.optFragment].cost > fragmentSet[fTrail].cost) { colSet.Delete(successorCol); } } // // Now remove this fragment, it is at the end of the sweep line. // int deleted; deleted = sweepSet.Delete(fragmentSet[fTrail]); assert(deleted); ++fTrail; } } } if (alignType == Local) { maxChainFragment = minFragmentIndex; } while (maxChainFragment != -1) { maxFragmentChain.push_back(maxChainFragment); maxChainFragment = fragmentSet[maxChainFragment].chainPrev; } std::reverse(maxFragmentChain.begin(), maxFragmentChain.end()); return maxFragmentChain.size(); } #endif // __SPARSE_DYNAMIC_PROGRAMMING_IMPL_HPP_ blasr_libcpp-master/alignment/algorithms/alignment/sdp/VariableLengthSDPFragment.h000066400000000000000000000015361260756663100310120ustar00rootroot00000000000000#ifndef VARIABLE_LENGTH_SDP_FRAGMENT_H_ #define VARIABLE_LENGTH_SDP_FRAGMENT_H_ #include "SDPFragment.h" class ChainedFragment : public Fragment { int score; ChainedFragment *chainPrev; public: ChainedFragment():Fragment() { score = 0; chainPrev = NULL; } int SetScore(int _score) { return (score = _score); } int GetScore() { return score; } ChainedFragment *SetChainPrev(ChainedFragment *_chainPrev) { return (chainPrev = _chainPrev); } ChainedFragment *GetChainPrev() { return chainPrev; } int LessThan(const ChainedFragment &f) const { // // Order fragments by endpoint. // if (x == f.GetX()) { return (y < f.GetY()); } else { return x < f.GetX(); } } int operator<(const ChainedFragment &f) const { // // Sort fragments by x then y. // return LessThan(f); } }; #endif blasr_libcpp-master/alignment/algorithms/anchoring/000077500000000000000000000000001260756663100231165ustar00rootroot00000000000000blasr_libcpp-master/alignment/algorithms/anchoring/BWTSearch.cpp000066400000000000000000000053131260756663100254060ustar00rootroot00000000000000#include "algorithms/anchoring/BWTSearch.hpp" int MapReadToGenome(BWT & bwt, FASTASequence & seq, DNALength subreadStart, DNALength subreadEnd, std::vector &matchPosList, AnchorParameters & params, int &numBasesAnchored, std::vector & spv, std::vector & epv) { FASTASequence prefix; numBasesAnchored = 0; if (subreadEnd - subreadStart < params.minMatchLength) { return 0; } else { DNALength p; prefix.seq = seq.seq; for (p = subreadStart + params.minMatchLength; p < subreadEnd; p++) { // // Try reusing the vectors between calls - not thread // safe replace function call with one that has access // to a buffer class. // spv.clear(); epv.clear(); prefix.length = p; bwt.Count(prefix, spv, epv); DNALength matchLength = spv.size(); // // Keep going without subtracting from zero if there // are no hits. // if (spv.size() == 0) { continue; } DNALength i; std::vector matches; while (matchLength >= params.minMatchLength) { i = matchLength - 1; if (matchLength > 0 and epv[i] >= spv[i]) { // // Add the positions of the matches here. // matches.clear(); if (epv[i] - spv[i] + 1 < params.maxAnchorsPerPosition) { numBasesAnchored++; bwt.Locate(spv[i], epv[i], matches); } break; } matchLength--; } // Convert from genome positions to tuples DNALength m; for (m = 0; m < matches.size(); m++ ) { // This if statement is a workaround for a bug // that is allowing short matches if (matches[m] >= matchLength) { matchPosList.push_back(ChainedMatchPos( matches[m] - matchLength, p-matchLength, matchLength , matches.size())); } } } } return matchPosList.size(); } int MapReadToGenome(BWT & bwt, FASTASequence & seq, DNALength start, DNALength end, std::vector & matchPosList, AnchorParameters & params, int &numBasesAnchored) { std::vector spv,epv; return MapReadToGenome(bwt, seq, start, end, matchPosList, params, numBasesAnchored, spv, epv); } blasr_libcpp-master/alignment/algorithms/anchoring/BWTSearch.hpp000066400000000000000000000017501260756663100254140ustar00rootroot00000000000000#ifndef _BLASR_BWT_SEARCH_HPP_ #define _BLASR_BWT_SEARCH_HPP_ #include #include "FASTASequence.hpp" #include "bwt/BWT.hpp" #include "datastructures/anchoring/MatchPos.hpp" #include "datastructures/anchoring/AnchorParameters.hpp" int MapReadToGenome(BWT & bwt, FASTASequence & seq, DNALength subreadStart, DNALength subreadEnd, std::vector &matchPosList, AnchorParameters & params, int &numBasesAnchored, std::vector & spv, std::vector & epv); int MapReadToGenome(BWT & bwt, FASTASequence & seq, DNALength start, DNALength end, std::vector & matchPosList, AnchorParameters & params, int &numBasesAnchored); template int MapReadToGenome(BWT & bwt, FASTASequence & seq, std::vector &matchPosList, AnchorParameters & params, int & numBasesAnchored, T_MappingBuffers & mappingBuffers); #include "algorithms/anchoring/BWTSearchImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/BWTSearchImpl.hpp000066400000000000000000000006761260756663100262440ustar00rootroot00000000000000#ifndef _BLASR_BWT_SEARCH_IMPL_HPP_ #define _BLASR_BWT_SEARCH_IMPL_HPP_ template int MapReadToGenome(BWT & bwt, FASTASequence & seq, std::vector &matchPosList, AnchorParameters & params, int & numBasesAnchored, T_MappingBuffers & mappingBuffers) { return MapReadToGenome(bwt, seq, matchPosList, params, numBasesAnchored, mappingBuffers.spv, mappingBuffers.epv); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/BasicEndpoint.hpp000066400000000000000000000030051260756663100263470ustar00rootroot00000000000000#ifndef _BLASR_BASIC_ENDPOINT_HPP_ #define _BLASR_BASIC_ENDPOINT_HPP_ #include "Types.h" #include "algorithms/anchoring/Coordinate.hpp" // // An endpoint is one of the ends of a fragment, where // a fragment is an exact match between two genomes. // So, a fragment is a 2D object that has a position and length, // and an endpoint is 1D, where it just has a position. // A fragment may be associated with a score that is the score // of the fragment in a maximum scoring chain. When finding a // maximum scoring chain using priority search trees, one must // be able to set the score of a fragment when indexing solely // a point. // enum WhichEnd {Start, End}; typedef UInt KeyType; template class BasicEndpoint { private: Coordinate p; WhichEnd side; T_ScoredFragment *fragmentPtr; public: class LessThan { public: int operator()(const BasicEndpoint & lhs, const BasicEndpoint & rhs) const { return lhs.p < rhs.p; } }; BasicEndpoint(); WhichEnd GetSide(); void FragmentPtrToStart(T_ScoredFragment* fragment); void FragmentPtrToEnd(T_ScoredFragment* fragment); int GetScore(); int SetScore(int score); T_ScoredFragment* SetScoredReference(T_ScoredFragment* _fragmentPtr); int operator<(const BasicEndpoint &rhs) const; KeyType GetKey(); T_ScoredFragment* GetFragmentPtr(); void SetChainPrev(T_ScoredFragment* prevChainFragment); }; #include "algorithms/anchoring/BasicEndpointImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/BasicEndpointImpl.hpp000066400000000000000000000044461260756663100272030ustar00rootroot00000000000000#ifndef _BLASR_BASIC_ENDPOINT_IMPL_HPP_ #define _BLASR_BASIC_ENDPOINT_IMPL_HPP_ #include "algorithms/anchoring/BasicEndpoint.hpp" /* An endpoint is one of the ends of a fragment, where a fragment is an exact match between two genomes. So, a fragment is a 2D object that has a position and length, and an endpoint is 1D, where it just has a position. A fragment may be associated with a score that is the score of the fragment in a maximum scoring chain. When finding a maximum scoring chain using priority search trees, one must be able to set the score of a fragment when indexing solely a point. */ template BasicEndpoint:: BasicEndpoint(){} template WhichEnd BasicEndpoint:: GetSide() {return side;} template void BasicEndpoint:: FragmentPtrToStart(T_ScoredFragment *fragment) { p.SetX(fragment->GetX()); p.SetY(fragment->GetY()); side = Start; fragmentPtr = fragment; } template void BasicEndpoint::FragmentPtrToEnd( T_ScoredFragment *fragment) { p.SetX(fragment->GetX() + fragment->GetLength()); p.SetY(fragment->GetY() + fragment->GetLength()); side = End; fragmentPtr = fragment; } template int BasicEndpoint::GetScore() { return fragmentPtr->GetScore(); } template int BasicEndpoint::SetScore(int score) { return (fragmentPtr->SetScore(score)); } template T_ScoredFragment* BasicEndpoint:: SetScoredReference( T_ScoredFragment *_fragmentPtr) { return (fragmentPtr = _fragmentPtr); } template int BasicEndpoint:: operator<(const BasicEndpoint &rhs) const {return p < rhs.p;} template KeyType BasicEndpoint:: GetKey() {return p.GetY();} template T_ScoredFragment* BasicEndpoint:: GetFragmentPtr() {return fragmentPtr;} template void BasicEndpoint:: SetChainPrev(T_ScoredFragment* prevChainFragment) { fragmentPtr->SetChainPrev(prevChainFragment); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/ClusterProbability.cpp000066400000000000000000000022311260756663100274420ustar00rootroot00000000000000#include "algorithms/anchoring/ClusterProbability.hpp" #include #include float ComputeAnchorProbability(float pMatch, int minAnchorLength) { assert(minAnchorLength >= 0); assert(pMatch < 1.00001 and pMatch > 0); int i; float totalProbability = 0.0; float pMisMatch = 1 - pMatch; for (i = 0; i < minAnchorLength; i++) { totalProbability += pMatch * pMisMatch; pMatch *= pMatch; } return 1 - totalProbability; } float ComputeExpectedAnchorLength(float pMatch, int minAnchorLength, float pAnchor) { int i = 0; for (i = 0; i < minAnchorLength; i++) { pMatch *= pMatch; } float pMismatch = 1 - pMatch; float pValueEpsilon = 0.000000001; float expAnchorLength = 0; while(pMatch*pMismatch > pValueEpsilon) { expAnchorLength += i * pMatch*pMismatch/pAnchor; pMatch *= pMatch; } return expAnchorLength; } float AnchorBasesPerRead(int readLength, float pAnchor) { return pAnchor * readLength; } float AnchorBasesPerReadSigma(float expAnchorBasesPerRead) { // Assume exponential distribution: return sqrt(expAnchorBasesPerRead); } blasr_libcpp-master/alignment/algorithms/anchoring/ClusterProbability.hpp000066400000000000000000000005561260756663100274570ustar00rootroot00000000000000#ifndef _BLASR_CLUSTER_PROBABILITY_HPP_ #define _BLASR_CLUSTER_PROBABILITY_HPP_ float ComputeAnchorProbability(float pMatch, int minAnchorLength); float ComputeExpectedAnchorLength(float pMatch, int minAnchorLength, float pAnchor); float AnchorBasesPerRead(int readLength, float pAnchor); float AnchorBasesPerReadSigma(float expAnchorBasesPerRead); #endif blasr_libcpp-master/alignment/algorithms/anchoring/Coordinate.cpp000066400000000000000000000004221260756663100257070ustar00rootroot00000000000000#include "algorithms/anchoring/Coordinate.hpp" int Coordinate::operator<=(const Coordinate &rhs) const { return (*this < rhs) or (x == rhs.x && y == rhs.y); } int Coordinate::Equals(const Coordinate &rhs) const { return (x == rhs.GetX() and y == rhs.GetY()); } blasr_libcpp-master/alignment/algorithms/anchoring/Coordinate.hpp000066400000000000000000000022211260756663100257130ustar00rootroot00000000000000#ifndef _BLASR_COORDINATE_HPP_ #define _BLASR_COORDINATE_HPP_ #include "Types.h" class Coordinate { private: UInt x; UInt y; public: inline UInt GetX() const; inline UInt GetY() const; inline UInt SetX(UInt _x); inline UInt SetY(UInt _y); inline int operator<(const Coordinate &rhs) const; int operator<=(const Coordinate &rhs) const; int Equals(const Coordinate &rhs) const; // // Synonym for Equals. // inline int operator==(const Coordinate &rhs) const; inline Coordinate &operator=(const Coordinate &rhs); }; inline UInt Coordinate::GetX() const {return x;} inline UInt Coordinate::GetY() const {return y;} inline UInt Coordinate::SetX(UInt _x) {return (x = _x);} inline UInt Coordinate::SetY(UInt _y) {return (y = _y);} inline int Coordinate::operator<(const Coordinate &rhs) const { if (x == rhs.GetX()) return y < rhs.GetY(); else return x < rhs.GetX(); } inline int Coordinate::operator==(const Coordinate &rhs) const { return this->Equals(rhs); } inline Coordinate& Coordinate::operator=(const Coordinate &rhs) { this->x = rhs.x; this->y = rhs.y; return *this; } #endif blasr_libcpp-master/alignment/algorithms/anchoring/FindMaxInterval.cpp000066400000000000000000000011041260756663100266510ustar00rootroot00000000000000#include "algorithms/anchoring/FindMaxInterval.hpp" unsigned int NumRemainingBases(DNALength curPos, DNALength intervalLength) { if (curPos > intervalLength) { return 0; } else { return intervalLength - curPos; } } IntervalSearchParameters::IntervalSearchParameters() { advanceHalf = false; globalChainType = 0; maxPValue = log(0.1); aboveCategoryPValue = 0; warp = true; fastMaxInterval = false; aggressiveIntervalCut = false; verbosity = 0; ddPValueThreshold = -500; } blasr_libcpp-master/alignment/algorithms/anchoring/FindMaxInterval.hpp000066400000000000000000000137411260756663100266700ustar00rootroot00000000000000#ifndef _BLASR_FIND_MAX_INTERVAL_HPP_ #define _BLASR_FIND_MAX_INTERVAL_HPP_ #include #include #include #include #include "algorithms/anchoring/LongestIncreasingSubsequence.hpp" #include "algorithms/anchoring/GlobalChain.hpp" #include "algorithms/anchoring/BasicEndpoint.hpp" #include "datastructures/anchoring/WeightedInterval.hpp" #include "datastructures/anchoring/MatchPos.hpp" #include "datastructures/anchoring/ClusterList.hpp" #include "statistics/VarianceAccumulator.hpp" unsigned int NumRemainingBases(DNALength curPos, DNALength intervalLength); class IntervalSearchParameters { public: bool advanceHalf; int globalChainType; float maxPValue; float aboveCategoryPValue; bool warp; bool fastMaxInterval; bool aggressiveIntervalCut; int verbosity; float ddPValueThreshold; IntervalSearchParameters(); }; template class DefaultWeightFunction { public: float operator()(T_Sequence &text, T_Sequence &read, T_AnchorList matchPosList); }; template class MatchPosQueryOrderFunctor { public: int operator()(T_Pos &pos); }; template void PrintLIS(T_MatchList &matchList, DNALength curPos, DNALength curGenomePos, DNALength nextGenomePos, DNALength clp, DNALength cle); template void FilterMatchesAsLIMSTemplateSquare(T_MatchList &matches, DNALength queryLength, DNALength limsTemplateLength, T_SequenceDB &seqDB); template void AdvanceIndexToPastInterval(T_MatchList &pos, DNALength nPos, DNALength intervalLength, DNALength contigLength, T_SequenceBoundaryDB &SeqBoundary, DNALength startIndex, DNALength startIntervalBoundary, DNALength &index, DNALength &indexIntervalBoundary); template int RemoveZeroLengthAnchors(T_MatchList &matchList); template int RemoveOverlappingAnchors(T_MatchList &matchList); template int SumAnchors(T_MatchList &pos, int start, int end); template void StoreLargestIntervals( T_MatchList &pos, // End search for intervals at boundary positions // stored in seqBoundaries T_SequenceBoundaryDB & ContigStartPos, // parameters // How many values to search through for a max set. DNALength intervalLength, // How many sets to keep track of int minSize, vector &start, vector &end); template int FindMaxIncreasingInterval( // Input // readDir is used to indicate if the interval that is being stored is // in the forward or reverse strand. This is important later when // refining alignments so that the correct sequence is aligned back // to the reference. int readDir, T_MatchList &pos, // How many values to search through for a max set. DNALength intervalLength, // How many sets to keep track of VectorIndex nBest, // End search for intervals at boundary positions // stored in seqBoundaries T_SequenceBoundaryDB & ContigStartPos, // First rand intervals by their p-value T_PValueFunction &MatchPValueFunction, // When ranking intervals, sum over weights determined by MatchWeightFunction T_WeightFunction &MatchWeightFunction, // Output. // The increasing interval coordinates, // in order by queue weight. WeightedIntervalSet &intervalQueue, T_ReferenceSequence &reference, T_Sequence &query, IntervalSearchParameters ¶ms, std::vector > *chainEndpointBuffer, ClusterList &clusterList, VarianceAccumulator &accumPValue, VarianceAccumulator &accumWeight, VarianceAccumulator &accumNumAnchorBases, const char *titlePtr=NULL); template int FastFindMaxIncreasingInterval( int readDir, T_MatchList &pos, DNALength intervalLength, VectorIndex nBest, T_SequenceBoundaryDB & ContigStartPos, T_PValueFunction &MatchPValueFunction, T_WeightFunction &MatchWeightFunction, WeightedIntervalSet &intervalQueue, T_ReferenceSequence &reference, T_Sequence &query, IntervalSearchParameters ¶ms, std::vector > *chainEndpointBuffer, ClusterList &clusterList, VarianceAccumulator &accumPValue, VarianceAccumulator &accumWeight); template int ExhaustiveFindMaxIncreasingInterval( int readDir, T_MatchList &pos, DNALength intervalLength, VectorIndex nBest, T_SequenceBoundaryDB & ContigStartPos, T_PValueFunction &MatchPValueFunction, T_WeightFunction &MatchWeightFunction, WeightedIntervalSet &intervalQueue, T_ReferenceSequence &reference, T_Sequence &query, IntervalSearchParameters ¶ms, std::vector > *chainEndpointBuffer, ClusterList &clusterList, VarianceAccumulator &accumPValue, VarianceAccumulator &accumWeight); #include "algorithms/anchoring/FindMaxIntervalImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/FindMaxIntervalImpl.hpp000066400000000000000000001013441260756663100275070ustar00rootroot00000000000000#ifndef _BLASR_FIND_MAX_INTERVAL_IMPL_HPP_ #define _BLASR_FIND_MAX_INTERVAL_IMPL_HPP_ template float DefaultWeightFunction::operator() ( T_Sequence &text, T_Sequence &read, T_AnchorList matchPosList) { int i; float weight = 0; for (i = 0; i < matchPosList.size(); i++) { weight += matchPosList[i].weight(); } return weight; } template int MatchPosQueryOrderFunctor::operator()(T_Pos &pos) { return pos.q; } template void PrintLIS(T_MatchList &matchList, DNALength curPos, DNALength curGenomePos, DNALength nextGenomePos, DNALength clp, DNALength cle) { int i; cout << curPos << " " << curGenomePos << " " << nextGenomePos << " " << clp << " " << cle << endl; for (i = 0; i < matchList.size(); i++) { cout.width(8); cout << matchList[i].l << " "; } cout << endl; for (i = 0; i < matchList.size(); i++) { cout.width(8); cout << matchList[i].q << " "; } cout << endl; for (i = 0; i < matchList.size(); i++) { cout.width(8); cout << matchList[i].t << " "; } cout << endl << endl; } template void FilterMatchesAsLIMSTemplateSquare(T_MatchList &matches, DNALength queryLength, DNALength limsTemplateLength, T_SequenceDB &seqDB) { int seqIndex; // // Make sure there is sequence coordinate information. // if (seqDB.nSeqPos == 0) { return; } int matchIndex = 0; for (seqIndex = 1; seqIndex < seqDB.nSeqPos; seqIndex++) { DNALength refLength = seqDB.seqStartPos[seqIndex] - seqDB.seqStartPos[seqIndex - 1]; // account for indel error. refLength = queryLength * 1.15 + limsTemplateLength; // // Flag matches that are beyond the (rough) square with the length // of the query for removal. // while (matchIndex < matches.size() and matches[matchIndex].t < seqDB.seqStartPos[seqIndex]) { if (matches[matchIndex].t > seqDB.seqStartPos[seqIndex-1] + refLength) { matches[matchIndex].l = 0; } matchIndex++; } int curMatchIndex = 0; matchIndex = 0; for (matchIndex = 0; matchIndex < matches.size(); matchIndex++) { if (matches[matchIndex].l != 0) { matches[curMatchIndex] = matches[matchIndex]; curMatchIndex++; } } matches.resize(curMatchIndex); } } template void AdvanceIndexToPastInterval(T_MatchList &pos, DNALength nPos, DNALength intervalLength, DNALength contigLength, T_SequenceBoundaryDB &SeqBoundary, DNALength startIndex, DNALength startIntervalBoundary, DNALength &index, DNALength &indexIntervalBoundary) { if (index >= pos.size()) { return; } indexIntervalBoundary = SeqBoundary(pos[index].t); DNALength boundaryIndex = SeqBoundary.GetIndex(pos[index].t); DNALength nextBoundary = SeqBoundary.GetStartPos(boundaryIndex + 1); while (// index is not past the end of the genome index < nPos and // // Stop when the index goes too far ahead. // pos[index].t - pos[startIndex].t <= intervalLength and // // Still searching in the current contig. // indexIntervalBoundary == startIntervalBoundary) { index++; if (index < nPos) { indexIntervalBoundary = SeqBoundary(pos[index].t); } } } template int RemoveZeroLengthAnchors(T_MatchList &matchList) { int origSize = matchList.size(); int cur = 0, m; for (m = 0; m < matchList.size(); m++) { if (matchList[m].l > 0) { matchList[cur] = matchList[m]; cur++; } } matchList.resize(cur); return origSize - cur; } template int RemoveOverlappingAnchors(T_MatchList &matchList) { int cur = 0; int m; int n; for (m = matchList.size(); m > 0; m--) { n = m - 1; // // Skip past repeats in the query. while (n > 0 and matchList[n].t == matchList[m].t) { n--; } bool mergeFound = false; int ni = n; while (mergeFound == false and n > 0 and matchList[n].t == matchList[ni].t) { if (matchList[n].q < matchList[m].q and matchList[n].t < matchList[m].t and matchList[n].l + matchList[n].q >= matchList[m].l + matchList[m].q and matchList[n].l + matchList[n].t >= matchList[m].l + matchList[m].t) { matchList[m].l = 0; mergeFound = true; } n--; } } int numRemoved = RemoveZeroLengthAnchors(matchList); return numRemoved; } template int SumAnchors(T_MatchList &pos, int start, int end) { int sum = 0; int i; for (i = start; i < end; i++) { sum += pos[i].l; } return sum; } template void StoreLargestIntervals( T_MatchList &pos, // End search for intervals at boundary positions // stored in seqBoundaries T_SequenceBoundaryDB & ContigStartPos, // parameters // How many values to search through for a max set. DNALength intervalLength, // How many sets to keep track of int minSize, vector &start, vector &end) { if (pos.size() == 0) { return; } // // Search for clusters of intervals within the pos array within // pos[cur...next). The value of 'next' should be the first anchor // outside the possible range to cluster, or the end of the anchor list. VectorIndex cur = 0; VectorIndex nPos = pos.size(); VectorIndex next = cur + 1; DNALength curBoundary = 0, nextBoundary = 0; DNALength contigLength = ContigStartPos.Length(pos[cur].t); DNALength endOfCurrentInterval = curBoundary + contigLength; curBoundary = ContigStartPos(pos[cur].t); nextBoundary = ContigStartPos(pos[next].t); // // Advance next until the anchor is outside the interval that // statrts at 'cur', and is inside the same contig that the anchor // at cur is in. // DNALength curIntervalLength = NumRemainingBases(pos[cur].q, intervalLength); AdvanceIndexToPastInterval(pos, nPos, intervalLength, contigLength, ContigStartPos, cur, curBoundary, next, nextBoundary); DNALength prevStart = cur, prevEnd = next ; int prevSize = next - cur; DNALength maxStart = cur, maxEnd = next; int maxSize = SumAnchors(pos, cur, next); int curSize = maxSize; bool onFirst = true; if (curSize > minSize) { start.push_back(cur); end.push_back(next); } while ( cur < nPos ) { // // This interval overlaps with a possible max start // if (pos[cur].t >= pos[maxStart].t and maxEnd > 0 and pos[cur].t < pos[maxEnd-1].t) { if (curSize > maxSize) { maxSize = curSize; maxStart = cur; maxEnd = next; } } else { if (maxSize > minSize) { start.push_back(maxStart); end.push_back(maxEnd); } maxStart = cur; maxEnd = next; maxSize = curSize; } // // Done scoring current interval. At this point the range // pos[cur...next) has been searched for a max increasing // interval. Find a new range that will possibly yield a new // maximum interval. // There are a few cases to consider: // // // genome |---+----+------------+------+-----------------------| // anchors cur cur+1 next next+1 // // Case 1. The range on the target pos[ cur+1 ... next].t is a // valid interval (it is roughly the length of the read). In this // case increase cur and next by 1, and search this range. // // genome |---+----+------------+------+-----------------------| // cur cur+1 next next+1 // read interval ==================== // // Case 2. The range on the target pos[cur+1 ... next] is not a // valid interval, and it is much longer than the length of the // read. This implies that it is impossible to increase the score // of the read by including both // // genome |---+----+--------------------------------+-----+---| // cur cur+1 next next+1 // read interval ==================== // // Advance the interval until it includes the next anchor // // genome |---+----+------------------+-------------+-----+---| // cur cur+1 cur+n next next+1 // read interval ==================== // // First advance pointer in anchor list. If this advances to the // end, done and no need for further logic checking (break now). // // If the next position is not within the same contig as the current, // advance the current to the next since it is impossible to find // any more intervals in the current pos. // bool recountInterval = false; if (curBoundary != nextBoundary) { cur = next; curBoundary = nextBoundary; // // Start the search for the first interval in the next contig // just after the current position. // if (next < nPos) { next = cur + 1; } } else { // // The next interval is in the same contig as the current interval. // Make sure not to double count the current interval. // curSize -= pos[cur].l; cur++; if (cur >= nPos) break; // // Advance the next to outside this interval. // curSize += pos[next].l; if (pos[next].t - pos[cur].t > intervalLength) { if (maxSize > minSize) { start.push_back(maxStart); end.push_back(maxEnd); } cur = next; recountInterval = true; maxSize = 0; } next++; } if (next > nPos) { // // Searched last interval, done. // break; } // // Next has advanced. Check what contig it is in. // if (next < nPos) { nextBoundary = ContigStartPos(pos[next].t); // // Advance next to the maximum position within this contig that is // just after where the interval starting at cur is, or the first // position in the next contig. // int prevNext = next; AdvanceIndexToPastInterval(pos, nPos, intervalLength, contigLength, ContigStartPos, cur, curBoundary, next, nextBoundary); if (prevNext != next or recountInterval) { curSize = SumAnchors(pos, cur, next); } } // if next >= nPos, the boundary stays the same. // // When searching multiple contigs, it is important to know the // boundary of the contig that this anchor is in so that clusters // do not span multiple contigs. Find the (right hand side) // boundary of the current contig. // curBoundary = ContigStartPos(pos[cur].t); contigLength = ContigStartPos.Length(pos[cur].t); // // Previously tried to advance half. This is being removed since // proper heuristics are making it not necessary to use. // } if (curSize > minSize) { start.push_back(maxStart); end.push_back(maxEnd); } } template int FindMaxIncreasingInterval( // Input // readDir is used to indicate if the interval that is being stored is // in the forward or reverse strand. This is important later when // refining alignments so that the correct sequence is aligned back // to the reference. int readDir, T_MatchList &pos, // How many values to search through for a max set. DNALength intervalLength, // How many sets to keep track of VectorIndex nBest, // End search for intervals at boundary positions // stored in seqBoundaries T_SequenceBoundaryDB & ContigStartPos, // First rand intervals by their p-value T_PValueFunction &MatchPValueFunction, // When ranking intervals, sum over weights determined by // MatchWeightFunction T_WeightFunction &MatchWeightFunction, // Output. // The increasing interval coordinates, // in order by queue weight. WeightedIntervalSet &intervalQueue, T_ReferenceSequence &reference, T_Sequence &query, IntervalSearchParameters ¶ms, vector > *chainEndpointBuffer, ClusterList &clusterList, VarianceAccumulator &accumPValue, VarianceAccumulator &accumWeight, VarianceAccumulator &accumNumAnchorBases, const char *titlePtr) { int maxLISSize = 0; if (params.fastMaxInterval) { maxLISSize = FastFindMaxIncreasingInterval( readDir, pos, intervalLength, nBest, ContigStartPos, MatchPValueFunction, MatchWeightFunction, intervalQueue, reference, query, params, chainEndpointBuffer, clusterList, accumPValue, accumWeight); } else { maxLISSize = ExhaustiveFindMaxIncreasingInterval( readDir, pos, intervalLength, nBest, ContigStartPos, MatchPValueFunction, MatchWeightFunction, intervalQueue, reference, query, params, chainEndpointBuffer, clusterList, accumPValue, accumWeight); } if (params.aggressiveIntervalCut and intervalQueue.size() >= 3) { // aggressiveIntervalCut mode: // only pick up the most promising intervals if we can classify // intervals into 'promising' and 'non-promising' clusters. WeightedIntervalSet::iterator it = intervalQueue.begin(); int sz = intervalQueue.size(); vector pValues, ddPValues; pValues.resize(sz); ddPValues.resize(sz); float sumPValue = 0; int i = 0; for(; it != intervalQueue.end(); i++,it++) { sumPValue += (*it).pValue; pValues[i] = (*it).pValue; } //We will attemp to divide intervals into two clusters, promising //and non-promising. float prevSumPValue = pValues[0]; // ddPValue[i], where i in [1...n-2] is the difference of // (1) (mean pvalue of [0...i-1] minus pvalue[i]) // and // (2) (pvalue[i] minus mean pvalue of [i+1...n-1]) // pValues are all negative, the lower the better. // if ddPValue is negative, interval i is closer to cluster [i+1...n-1], // otherwise, interval i is closer to cluster [0..i-1]. it = intervalQueue.begin(); it ++; //both it and i should point to the second interval in intervalQueue. for(i = 1; i < sz - 1; i++,it++) { ddPValues[i] = (prevSumPValue / i) + (sumPValue - prevSumPValue - pValues[i]) / (sz - i - 1) - 2 * pValues[i]; if (ddPValues[i] <= params.ddPValueThreshold) { // PValue of interval i is much closer to cluster [i+1...n-1] than // to cluster [0...i-1]. Mean pValue of cluster [0..i-1] // minus mean pvalue of cluster [i+1...n-1] < 2 * -500 break; } prevSumPValue += pValues[i]; } if (it != intervalQueue.end()) { // Erase intervals in the non-promising cluster. intervalQueue.erase(it, intervalQueue.end()); // Recompute accumPValue, accmWeight, clusterList; accumPValue.Reset(); accumWeight.Reset(); clusterList.Clear(); for(it = intervalQueue.begin(); it != intervalQueue.end(); it++) { accumPValue.Append((*it).pValue); accumWeight.Append((*it).size); clusterList.Store((*it).totalAnchorSize, (*it).start, (*it).end, (*it).nAnchors); } } } return maxLISSize; } template int FastFindMaxIncreasingInterval( // Input // readDir is used to indicate if the interval that is being stored is in the forward // or reverse strand. This is important later when refining alignments so that the // correct sequene is aligned back to the reference. int readDir, T_MatchList &pos, // How many values to search through for a max set. DNALength intervalLength, // How many sets to keep track of VectorIndex nBest, // End search for intervals at boundary positions // stored in seqBoundaries T_SequenceBoundaryDB & ContigStartPos, // First rand intervals by their p-value T_PValueFunction &MatchPValueFunction, // When ranking intervals, sum over weights determined by MatchWeightFunction T_WeightFunction &MatchWeightFunction, // Output. // The increasing interval coordinates, // in order by queue weight. WeightedIntervalSet &intervalQueue, T_ReferenceSequence &reference, T_Sequence &query, IntervalSearchParameters ¶ms, vector > *chainEndpointBuffer, ClusterList &clusterList, VarianceAccumulator &accumPValue, VarianceAccumulator &accumWeight) { WeightedIntervalSet sdpiq; VectorIndex cur = 0; VectorIndex nPos = pos.size(); vector lisIndices; // // Initialize the first interval. // if (pos.size() == 0) { return 0; } int lisSize; float lisWeight; float lisPValue; T_MatchList lis; float neginf = -1.0/0.0; int noOvpLisSize = 0; int noOvpLisNBases = 0; // // Search for clusters of intervals within the pos array within // pos[cur...next). The value of 'next' should be the first anchor // outside the possible range to cluster, or the end of the anchor list. VectorIndex next = cur + 1; DNALength curBoundary = 0, nextBoundary = 0; DNALength contigLength = ContigStartPos.Length(pos[cur].t); DNALength endOfCurrentInterval = curBoundary + contigLength; vector scores, prevOpt; vector start, end; StoreLargestIntervals(pos, ContigStartPos, intervalLength, 30, start, end); VectorIndex i; VectorIndex posi; int maxLISSize = 0; for (posi = 0; posi < start.size(); posi++) { lis.clear(); lisIndices.clear(); cur = start[posi]; next = end[posi]; if (next - cur == 1) { // // Just one match in this interval, don't invoke call to global chain since it is given. // lisSize = 0; lisIndices.push_back(0); } else { // // Find the largest set of increasing intervals that do not overlap. // if (params.globalChainType == 0) { lisSize = GlobalChain >(pos, cur, next, lisIndices, chainEndpointBuffer); } else { // // A different call that allows for indel penalties. // lisSize = RestrictedGlobalChain(&pos[cur],next - cur, 0.1, lisIndices, scores, prevOpt); } } // Maybe this should become a function? for (i = 0; i < lisIndices.size(); i++) { lis.push_back(pos[lisIndices[i]+cur]); } // // Compute pvalue of this match. // if (lis.size() > 0) { lisPValue = MatchPValueFunction.ComputePValue(lis, noOvpLisNBases, noOvpLisSize); } else { lisPValue = 0; } if (lisSize > maxLISSize) { maxLISSize = lisSize; } // // Insert the interval into the interval queue maintaining only the // top 'nBest' intervals. // WeightedIntervalSet::iterator lastIt = intervalQueue.begin(); MatchWeight lisWeight = MatchWeightFunction(lis); VectorIndex lisEnd = lis.size() - 1; accumPValue.Append(lisPValue); accumWeight.Append(lisWeight); if (lisPValue < params.maxPValue and lisSize > 0) { WeightedInterval weightedInterval(lisWeight, noOvpLisSize, noOvpLisNBases, lis[0].t, lis[lisEnd].t + lis[lisEnd].GetLength(), readDir, lisPValue, lis[0].q, lis[lisEnd].q + lis[lisEnd].GetLength(), lis); intervalQueue.insert(weightedInterval); if (weightedInterval.isOverlapping == false) { clusterList.Store((float)noOvpLisNBases, lis[0].t, lis[lis.size()-1].t, noOvpLisSize); } if (params.verbosity > 1) { cout << "Weighted Interval to insert:"<< endl << weightedInterval << endl; cout << "Interval Queue:"<< endl << intervalQueue << endl; } } } return maxLISSize; } template int ExhaustiveFindMaxIncreasingInterval( // Input // readDir is used to indicate if the interval that is being stored is in the forward // or reverse strand. This is important later when refining alignments so that the // correct sequene is aligned back to the reference. int readDir, T_MatchList &pos, // How many values to search through for a max set. DNALength intervalLength, // How many sets to keep track of VectorIndex nBest, // End search for intervals at boundary positions // stored in seqBoundaries T_SequenceBoundaryDB & ContigStartPos, // First rand intervals by their p-value T_PValueFunction &MatchPValueFunction, // When ranking intervals, sum over weights determined by MatchWeightFunction T_WeightFunction &MatchWeightFunction, // Output. // The increasing interval coordinates, // in order by queue weight. WeightedIntervalSet &intervalQueue, T_ReferenceSequence &reference, T_Sequence &query, IntervalSearchParameters ¶ms, vector > *chainEndpointBuffer, ClusterList &clusterList, VarianceAccumulator &accumPValue, VarianceAccumulator &accumWeight) { WeightedIntervalSet sdpiq; VectorIndex cur = 0; VectorIndex nPos = pos.size(); // // Initialize the first interval. // if (pos.size() == 0) { return 0; } int lisSize; float lisWeight; float lisPValue; T_MatchList lis; float neginf = -1.0/0.0; int noOvpLisSize = 0; int noOvpLisNBases = 0; // // Search for clusters of intervals within the pos array within // pos[cur...next). The value of 'next' should be the first anchor // outside the possible range to cluster, or the end of the anchor list. VectorIndex next = cur + 1; DNALength curBoundary = 0, nextBoundary = 0; DNALength contigLength = ContigStartPos.Length(pos[cur].t); DNALength endOfCurrentInterval = curBoundary + contigLength; curBoundary = ContigStartPos(pos[cur].t); nextBoundary = ContigStartPos(pos[next].t); vector scores, prevOpt; // // Advance next until the anchor is outside the interval that // statrts at 'cur', and is inside the same contig that the anchor // at cur is in. // DNALength curIntervalLength = NumRemainingBases(pos[cur].q, intervalLength); AdvanceIndexToPastInterval(pos, nPos, intervalLength, contigLength, ContigStartPos, cur, curBoundary, next, nextBoundary); vector lisIndices; VectorIndex i; // // Do some preprocessing. If the number of anchors considered for this hit is 1, // the global chain is this sole ancor. Don't bother calling GlobalChain // since it allocates and deallocates extra memory. // int maxLISSize = 0; // // Search intervals until cur reaches the end of the list of // anchors. // while ( cur < nPos ) { // // Search the local interval for a LIS larger than a previous LIS. // lis.clear(); lisIndices.clear(); if (next - cur == 1) { // // Just one match in this interval, don't invoke call to global chain since it is given. // lisSize = 1; lisIndices.push_back(0); } else { // // Find the largest set of increasing intervals that do not overlap. // if (params.globalChainType == 0) { lisSize = GlobalChain >(pos, cur, next, lisIndices, chainEndpointBuffer); } else { // // A different call that allows for indel penalties. // lisSize = RestrictedGlobalChain(&pos[cur],next - cur, 0.1, lisIndices, scores, prevOpt); } } // Maybe this should become a function? for (i = 0; i < lisIndices.size(); i++) { lis.push_back(pos[lisIndices[i]+cur]); } // // Compute pvalue of this match. // lisPValue = MatchPValueFunction.ComputePValue(lis, noOvpLisNBases, noOvpLisSize); if (lisSize > maxLISSize) { maxLISSize = lisSize; } // // Insert the interval into the interval queue maintaining only the // top 'nBest' intervals. // WeightedIntervalSet::iterator lastIt = intervalQueue.begin(); MatchWeight lisWeight = MatchWeightFunction(lis); VectorIndex lisEnd = lis.size() - 1; accumPValue.Append(lisPValue); accumWeight.Append(lisWeight); if (lisPValue < params.maxPValue and lisSize > 0) { WeightedInterval weightedInterval(lisWeight, noOvpLisSize, noOvpLisNBases, lis[0].t, lis[lisEnd].t + lis[lisEnd].GetLength(), readDir, lisPValue, lis[0].q, lis[lisEnd].q + lis[lisEnd].GetLength(), lis); intervalQueue.insert(weightedInterval); if (weightedInterval.isOverlapping == false) { clusterList.Store((float)noOvpLisNBases, lis[0].t, lis[lis.size()-1].t, noOvpLisSize); } if (params.verbosity > 1) { cout << "Weighted Interval to insert:"<< endl << weightedInterval << endl; cout << "Interval Queue:"<< endl << intervalQueue << endl; } } // // Done scoring current interval. At this point the range // pos[cur...next) has been searched for a max increasing // interval. Find a new range that will possibly yield a new // maximum interval. // There are a few cases to consider: // // //genome |---+----+------------+------+-----------------------| // anchors cur cur+1 next next+1 // // Case 1. The range on the target pos[ cur+1 ... next].t is a // valid interval (it is roughly the length of the read). In this // case increase cur and next by 1, and search this range. // // genome |---+----+------------+------+-----------------------| // cur cur+1 next next+1 // read interval ==================== // // Case 2. The range on the target pos[cur+1 ... next] is not a // valid interval, and it is much longer than the length of the // read. This implies that it is impossible to increase the score // of the read by including both // // genome |---+----+--------------------------------+-----+---| // cur cur+1 next next+1 // read interval ==================== // // Advance the interval until it includes the next anchor // // genome |---+----+------------------+-------------+-----+---| // cur cur+1 cur+n next next+1 // read interval ==================== // // First advance pointer in anchor list. If this advances to the // end, done and no need for further logic checking (break now). // // If the next position is not within the same contig as the current, // advance the current to the next since it is impossible to find // any more intervals in the current pos. // if (curBoundary != nextBoundary) { cur = next; curBoundary = nextBoundary; // // Start the search for the first interval in the next contig // just after the current position. // if (next < nPos) { next = cur + 1; } } else { cur++; if (cur >= nPos) break; // // Look for need to advance the interval within the same // contig. If the start of the next match is well past the // length of this read, keep moving forward matches until it is // possible to include the next interval in the matches for // this read. // if (params.warp) { while (cur < next and next < nPos and pos[next].t - pos[cur].t >= intervalLength) { // // It is impossible to increase the max interval weight any more // using pos[cur] when pos[next] is too far away from // pos[cur]. This is because the same set of anchors are used // when clustering pos[cur+1] ... pos[next] as // pos[cur] ... pos[next]. // Advance cur until pos[cur] is close enough to matter again. cur++; } } // // Advance the next to outside this interval. next++; } if (next > nPos) { // // Searched last interval, done. // break; } // // Next has advanced. Check what contig it is in. // if (next < nPos) { nextBoundary = ContigStartPos(pos[next].t); // // Advance next to the maximum position within this contig that is // just after where the interval starting at cur is, or the first // position in the next contig. // AdvanceIndexToPastInterval(pos, nPos, intervalLength, contigLength, ContigStartPos, cur, curBoundary, next, nextBoundary); } // if next >= nPos, the boundary stays the same. // // When searching multiple contigs, it is important to know the // boundary of the contig that this anchor is in so that clusters // do not span multiple contigs. Find the (right hand side) // boundary of the current contig. // curBoundary = ContigStartPos(pos[cur].t); contigLength = ContigStartPos.Length(pos[cur].t); // // Previously tried to advance half. This is being removed since // proper heuristics are making it not necessary to use. // } return maxLISSize; } #endif blasr_libcpp-master/alignment/algorithms/anchoring/GlobalChain.hpp000066400000000000000000000024071260756663100257750ustar00rootroot00000000000000#ifndef _BLASR_GLOBAL_CHAIN_HPP_ #define _BLASR_GLOBAL_CHAIN_HPP_ #include #include "Types.h" #include "DNASequence.hpp" #include "algorithms/anchoring/PrioritySearchTree.hpp" template void FragmentSetToEndpoints(T_Fragment* fragments, int nFragments, std::vector &endpoints); template UInt RestrictedGlobalChain(T_Fragment *fragments, DNALength nFragments, float maxIndelRate, std::vector& optFragmentChainIndices, std::vector& scores, std::vector& prevOpt); template int GlobalChain( T_Fragment *fragments, DNALength nFragments, std::vector &optFragmentChainIndices, std::vector *bufEndpointsPtr = NULL); template int GlobalChain(std::vector &fragments, std::vector &optFragmentChainIndices); template int GlobalChain(std::vector &fragments, DNALength start, DNALength end, std::vector &optFragmentChainIndices, std::vector *bufEndpointsPtr = NULL); #include "algorithms/anchoring/GlobalChainImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/GlobalChainImpl.hpp000066400000000000000000000144261260756663100266230ustar00rootroot00000000000000#ifndef _BLASR_GLOBAL_CHAIN_IMPL_HPP_ #define _BLASR_GLOBAL_CHAIN_IMPL_HPP_ #include #include "Types.h" #include "DNASequence.hpp" #include "algorithms/anchoring/PrioritySearchTree.hpp" using namespace std; template void FragmentSetToEndpoints(T_Fragment* fragments, int nFragments, std::vector& endpoints) { endpoints.resize(nFragments*2); int i; int ep = 0; for (i = 0; i < nFragments; i++) { endpoints[ep].FragmentPtrToStart(&fragments[i]); ep++; endpoints[ep].FragmentPtrToEnd(&fragments[i]); ep++; } } template UInt RestrictedGlobalChain(T_Fragment *fragments, DNALength nFragments, float maxIndelRate, vector &optFragmentChainIndices, vector &scores, vector &prevOpt) { // assume fragments are sorted by t UInt f1, f2; scores.resize(nFragments); prevOpt.resize(nFragments); std::fill(scores.begin(), scores.end(), 0); UInt globalOptScore = 0; UInt globalOptIndex = 0; for (f1 = 0; f1 < nFragments; f1++) { prevOpt[f1] = f1; scores[f1] = 1; } for (f1 = 0; f1 < nFragments - 1; f1++) { UInt maxF1Score = 0; UInt maxF1Prev = f1; for (f2 = f1+1; f2 < nFragments; f2++ ){ // // Check to see if the fragments may be connected within the // expected indel rate. // if (fragments[f2].GetQ() > fragments[f1].GetQ() + fragments[f1].GetW() and fragments[f2].GetT() > fragments[f1].GetT() + fragments[f1].GetW()) { // // Compute drift from diagonal. // UInt tDiff, qDiff; tDiff = fragments[f2].GetT() - (fragments[f1].GetT() + fragments[f1].GetW()); qDiff = fragments[f2].GetQ() - (fragments[f1].GetQ() + fragments[f1].GetW()); UInt tIns, qIns; tIns = qIns = 0; UInt maxDiff = max(tDiff, qDiff); UInt minDiff = min(tDiff, qDiff); if (maxDiff - minDiff < minDiff*maxIndelRate) { // // The fragment is sufficiently close to the diagonal to // consider it as a chain. // if (scores[f2] < scores[f1] + 1) { scores[f2] = scores[f1] + 1; prevOpt[f2] = f1; if (scores[f2] > globalOptScore) { globalOptScore = scores[f2]; globalOptIndex = f2; } } } } } } UInt index = globalOptIndex; UInt prevIndex; while(index != prevOpt[index]) { optFragmentChainIndices.push_back(index); assert(optFragmentChainIndices.size() < nFragments); prevIndex = index; index = prevOpt[index]; // Make sure there was no problem with backtracking. assert(index < nFragments); assert(index <= prevOpt[prevIndex]); } optFragmentChainIndices.push_back(index); std::reverse(optFragmentChainIndices.begin(), optFragmentChainIndices.end()); return optFragmentChainIndices.size(); } template int GlobalChain(T_Fragment *fragments, DNALength nFragments, vector & optFragmentChainIndices, vector * bufEndpointsPtr) { // // Initialize the fragment score to be the length of each fragment. // if (nFragments == 0) { return 0; } DNALength f; for (f = 0; f < nFragments; f++) { fragments[f].SetScore(fragments[f].GetLength()); } // // Add the start/end points of each fragment. This allows separate // scoring of start points and activation of endpoints. // vector endpoints; vector *endpointsPtr; if (bufEndpointsPtr != NULL) { endpointsPtr = bufEndpointsPtr; } else { endpointsPtr = &endpoints; } FragmentSetToEndpoints(fragments, nFragments, *endpointsPtr); // // The Starting points of all the fragmements are in order, // but not necessarily all of the end endpoints, so // the list must be resorted. // std::sort(endpointsPtr->begin(), endpointsPtr->end(), typename T_Endpoint::LessThan()); PrioritySearchTree pst; pst.CreateTree(*endpointsPtr); VectorIndex p; VectorIndex maxScoringEndpoint = 0; bool maxScoringEndpointFound = false; for (p = 0; p < endpointsPtr->size(); p++) { if ((*endpointsPtr)[p].GetSide() == Start) { int maxPointIndex; if (pst.FindIndexOfMaxPoint((*endpointsPtr), (*endpointsPtr)[p].GetKey(), maxPointIndex)) { (*endpointsPtr)[p].SetChainPrev((*endpointsPtr)[maxPointIndex].GetFragmentPtr()); (*endpointsPtr)[p].SetScore((*endpointsPtr)[maxPointIndex].GetScore() + (*endpointsPtr)[p].GetScore()); } else { (*endpointsPtr)[p].SetChainPrev(NULL); } } else { assert((*endpointsPtr)[p].GetSide() == End); // // The score of the fragment should be already set. So simply activate // it here (make the point be visible in a search). // pst.Activate((*endpointsPtr), p); if (maxScoringEndpointFound == false or (*endpointsPtr)[maxScoringEndpoint].GetScore() < (*endpointsPtr)[p].GetScore()) { maxScoringEndpoint = p; maxScoringEndpointFound = true; } } } // // Now compute the chain of optimum fragments // T_Fragment *optFragmentPtr; if (maxScoringEndpointFound == false) { // // Null case, no endpoints have been processed. // return 0; } optFragmentPtr = (*endpointsPtr)[maxScoringEndpoint].GetFragmentPtr(); unsigned int numIter = 0; while (optFragmentPtr != NULL) { optFragmentChainIndices.push_back((int) (optFragmentPtr - &fragments[0])); optFragmentPtr = optFragmentPtr->GetChainPrev(); // // Do a sanity check to make sure this loop is finite -- the optimal // fragment chain should never contain more fragments than what are // input. // assert(numIter < nFragments); ++numIter; } reverse(optFragmentChainIndices.begin(), optFragmentChainIndices.end()); return optFragmentChainIndices.size(); } template int GlobalChain(vector &fragments, vector &optFragmentChainIndices) { return GlobalChain(&fragments[0], fragments.size(), optFragmentChainIndices); } template int GlobalChain(vector &fragments, DNALength start, DNALength end, vector &optFragmentChainIndices, vector *bufEndpointsPtr) { return GlobalChain(&fragments[start], end - start, optFragmentChainIndices, bufEndpointsPtr); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISPValue.hpp000066400000000000000000000013331260756663100253730ustar00rootroot00000000000000#ifndef _BLASR_LISPVALUE_HPP_ #define _BLASR_LISPVALUE_HPP_ #include #include "datastructures/anchoring/MatchPos.hpp" #include "tuples/TupleCountTable.hpp" #include "algorithms/anchoring/ScoreAnchors.hpp" template void StoreNonOverlappingIndices(std::vector &lis, std::vector &noOvpLis); template float ComputeLISPValue(std::vector &lis, T_TextSequence &text, T_Sequence &read, TupleMetrics &tm, TupleCountTable &ct, int &lisNBases, int &lisSize ); #include "algorithms/anchoring/LISPValueImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISPValueImpl.hpp000066400000000000000000000111231260756663100262130ustar00rootroot00000000000000#ifndef _BLASR_LISP_VALUE_IMPL_HPP_ #define _BLASR_LISP_VALUE_IMPL_HPP_ template void StoreNonOverlappingIndices(std::vector &lis, std::vector &noOvpLis) { unsigned int i; // // Greedily add lis matches according to weight. A match may be added // as long as it does not overlap with any other matches. // // do nothing on empty lists if (lis.empty()) return; // // First build a list of matches sorted by weight. SortMatchPosListByWeight(lis); // // The first match is guaranteed to not overlap. noOvpLis.push_back(lis[0]); // // Nothing is overlapping, and everything is sorted when there is // just one value. if (lis.size() == 1) return; // // Next, add matches as long as they do not overlap. for (i = 1; i < lis.size(); i++ ){ VectorIndex j; int lts = lis[i].t; int lte = lis[i].t + lis[i].GetLength(); int lqs = lis[i].q; int lqe = lis[i].q + lis[i].GetLength(); int ovpFound = 0; for (j =0; j < noOvpLis.size(); j++ ){ int tIntvStart = noOvpLis[j].t; int tIntvEnd = noOvpLis[j].t + noOvpLis[j].GetLength(); int qIntvStart = noOvpLis[j].q; int qIntvEnd = noOvpLis[j].q + noOvpLis[j].GetLength(); if ((lts >= tIntvStart and lts < tIntvEnd) or (lte > tIntvStart and lte <= tIntvEnd) or (lqs >= qIntvStart and lqs < qIntvEnd) or (lqe > qIntvStart and lqe <= qIntvEnd)) { ovpFound = 1; break; } } if (!ovpFound) { noOvpLis.push_back(lis[i]); } } // // Now, the matches are found in order of size, but they need to // be stored in order of text. // SortMatchPosList(noOvpLis); // // The match pos list was sorted in order of weight. // Just in case it causes problems down the line, re-sort it // according to query pos. // lis = noOvpLis; SortMatchPosList(lis); } template float ComputeLISPValue(std::vector &lis, T_TextSequence &text, T_Sequence &read, TupleMetrics &tm, TupleCountTable &ct, int &lisNBases, int &lisSize ) { // // First, find a subset of the lis that has non-overlapping matches. // int i; lisNBases = 0; for (i = 0; i < lis.size(); i++) { lisNBases += lis[i].l; } lisSize = lis.size(); float neginf = -1.0/0.0; float inf = 1.0/0.0; if (lis.size() == 1) { // // When just one LIS is found, the pvalue of the match is just the // pvalue of getting a single hit with one read, which we estimate // as the pvalue of at least one hit. // float matchProb; // // Weight the single match based on how frequently it appears in // the genome. if (POneOrMoreMatches(text, lis[0].t, lis[0].GetLength(), tm, ct, matchProb)) { return matchProb; } else { // return non-significant match value. return 1; } } else { // // There is more than one non overlapping match. This evokes a // totally different probability metric on LIS values. Rather // than computing the probability of a single match, compute // the probability of seeing several matches in a row. // VectorIndex i; float pChain = 0; // In other words, pChain = log(1) // // prob of chain starts out as prob of first match. // if (POneOrMoreMatches(text, lis[0].t, lis[0].GetLength(), tm, ct, pChain)) { // // Next, for each match, compute the expected probability of // having to wait at most tGap time for a match. Since this // has screened for anchors that are not overlapping, // consider the events to be independent, and therefore // the probabilities multiply. // for (i = 1; i < lis.size(); i++ ){ int tupleMatchCount; // // Find out how many times this word appears in the genome. // int approxNumMatches; // // Assume all hits are uniformly distributed across the // genome. qLambda is the frequency of seeing hit i in the // genome. // float qLambda; int tGap; int qGap; qLambda = lis[i].GetMultiplicity() / (1.0*text.length); // Now compute the probability of the chain. Since the // matches are uniformly distributed across the genome, the // waiting time between matches is exponentially distributed. pChain = pChain + log(qLambda); } return pChain; } else { return 1; } } } #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISPValueWeightor.hpp000066400000000000000000000027611260756663100271120ustar00rootroot00000000000000#ifndef _BLASR_LISPVALUE_WEIGHTOR_HPP_ #define _BLASR_LISPVALUE_WEIGHTOR_HPP_ #include "algorithms/anchoring/LISPValue.hpp" #include "tuples/TupleMetrics.hpp" template class LISSumOfLogPWeightor { public: DNALength genomeLength; LISSumOfLogPWeightor(T_RefSequence &targetGenome); float ComputePValue(T_MatchList &matchList, int &noOvpLisNBases, int &noOvpLisSize); float operator()(T_MatchList &matchList); }; template class LISSMatchFrequencyPValueWeightor { public: T_RefSequence target; LISSMatchFrequencyPValueWeightor(T_RefSequence &_target); float ComputePValue(T_MatchList &lis, int &noOvpLisNBases, int &noOvpLisSize); float operator() (T_MatchList &lis); }; template class LISPValueWeightor { public: // // All of these must be initialized prior to // computing weights (running the functor). // FASTASequence query; T_RefSequence target; TupleMetrics tm; TupleCountTable *ct; LISPValueWeightor(FASTASequence &_query, T_RefSequence &_target, TupleMetrics _tm, TupleCountTable *_ct); float ComputePValue(T_MatchList &matchList, int &noOvpLisNBases, int &noOvpLisSize); float operator()(T_MatchList &matchList); }; #include "algorithms/anchoring/LISPValueWeightorImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISPValueWeightorImpl.hpp000066400000000000000000000072771260756663100277430ustar00rootroot00000000000000#ifndef _BLASR_LISPVALUE_WEIGHTOR_IMPL_HPP_ #define _BLASR_LISPVALUE_WEIGHTOR_IMPL_HPP_ #include "algorithms/anchoring/LISPValue.hpp" #include "tuples/TupleMetrics.hpp" template LISSumOfLogPWeightor::LISSumOfLogPWeightor( T_RefSequence &targetGenome) { genomeLength = targetGenome.length; } template float LISSumOfLogPWeightor::ComputePValue( T_MatchList &matchList, int &noOvpLisNBases, int &noOvpLisSize) { float pMatch = 0; int i; T_MatchList noOvpLis; StoreNonOverlappingIndices(matchList, noOvpLis); noOvpLisSize = noOvpLis.size(); noOvpLisNBases = 0; for (i = 0; i < noOvpLis.size(); i++) { noOvpLisNBases += noOvpLis[i].l; } for (i = 0; i < noOvpLis.size(); i++ ) { pMatch += -1 * ((int)noOvpLis[i].l); // log(matchList[i].GetMultiplicity() / (1.0*genomeLength)); } noOvpLisNBases = 0; for (i = 0; i < matchList.size(); i++) { noOvpLisNBases += matchList[i].l; } return pMatch; } template float LISSumOfLogPWeightor::operator()( T_MatchList &matchList) { int temp; return ComputePValue(matchList, temp, temp); } template LISSMatchFrequencyPValueWeightor::LISSMatchFrequencyPValueWeightor( T_RefSequence &_target) { target.seq = _target.seq; target.length = _target.length; } template float LISSMatchFrequencyPValueWeightor::ComputePValue( T_MatchList &lis, int &noOvpLisNBases, int &noOvpLisSize) { T_MatchList noOvpLis; StoreNonOverlappingIndices(lis, noOvpLis); noOvpLisSize = noOvpLis.size(); int i; noOvpLisNBases = 0; for (i = 0; i < noOvpLis.size(); i++) { noOvpLisNBases += noOvpLis[i].l; } if (noOvpLis.size() == 0){ return 1; } float pMatch = 0; for (i = 0; i < noOvpLis.size(); i++ ) { assert(noOvpLis[i].GetMultiplicity() > 0); pMatch += log((1.0*noOvpLis[i].GetMultiplicity()) / target.length) * noOvpLis[i].l; } return pMatch; } template float LISSMatchFrequencyPValueWeightor::operator() ( T_MatchList &lis) { int noOvpLisSize = 0; return ComputePValue(lis, noOvpLisSize, noOvpLisSize); } template LISPValueWeightor::LISPValueWeightor( FASTASequence &_query, T_RefSequence &_target, TupleMetrics _tm, TupleCountTable *_ct) { query.seq = _query.seq; query.length = _query.length; target.seq = _target.seq; target.length = _target.length; ct = _ct; tm = _tm; } template float LISPValueWeightor::ComputePValue( T_MatchList &matchList, int &noOvpLisNBases, int &noOvpLisSize) { return ComputeLISPValue(matchList, target, query, tm, *ct, noOvpLisNBases, noOvpLisSize); } template float LISPValueWeightor::operator()( T_MatchList &matchList){ int noOvpLisSize = 0, noOvpLisNBases = 0; return ComputeLISPValue(matchList, target, query, tm, *ct, noOvpLisNBases, noOvpLisSize); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISQValueWeightor.hpp000066400000000000000000000015561260756663100271140ustar00rootroot00000000000000#ifndef _BLASR_LIS_QVALUE_WEIGHTOR_HPP_ #define _BLASR_LIS_QVALUE_WEIGHTOR_HPP_ #include "qvs/QualityValue.hpp" #include "DNASequence.hpp" #include "FASTQSequence.hpp" template class LISQValueWeightor { public: T_Sequence *seq; float operator()(const T_MatchList &matchList); }; template float LISQValueWeightor::operator() ( const T_MatchList &matchList) { float totalQ; DNALength nBases; VectorIndex i; totalQ = 0.0; nBases = 0; for (i = 0; i < matchList.size(); i++) { DNALength mp; for (mp = matchList[i].q; mp < matchList[i].q + matchList[i].w; mp++) { totalQ += (*seq).qual[mp]; } nBases += matchList[i].w; } if (nBases > 0) { return totalQ / nBases; } } #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISSizeWeightor.hpp000066400000000000000000000004251260756663100266230ustar00rootroot00000000000000#ifndef _BLASR_LIS_SIZE_WEIGHTOR_HPP_ #define _BLASR_LIS_SIZE_WEIGHTOR_HPP_ #include "Types.h" template class LISSizeWeightor { public: MatchWeight operator()(T_MatchList &matchList); }; #include "algorithms/anchoring/LISSizeWeightorImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/LISSizeWeightorImpl.hpp000066400000000000000000000005541260756663100274500ustar00rootroot00000000000000#ifndef _BLASR_LISSIZE_WEIGHTOR_IMPL_HPP_ #define _BLASR_LISSIZE_WEIGHTOR_IMPL_HPP_ template MatchWeight LISSizeWeightor:: operator()( T_MatchList &matchList) { MatchWeight size = 0; VectorIndex i; for (i = 0; i < matchList.size(); i++) { size += matchList[i].GetLength(); } return size; } #endif blasr_libcpp-master/alignment/algorithms/anchoring/LongestIncreasingSubsequence.hpp000066400000000000000000000014551260756663100314550ustar00rootroot00000000000000#ifndef _BLASR_LONGEST_INCREASING_SUBSEQUENCE_HPP_ #define _BLASR_LONGEST_INCREASING_SUBSEQUENCE_HPP_ #include #include #include #include using namespace std; template class RawValue { int operator()(T &t) { return t; } }; template int BinarySearch(T *x, vector &m, int i, int lenM, F_IntValue IntValue); template int LongestIncreasingSubset(T *x, int xLength, vector &subsetIndices, vector &m, vector &p, F_IntValue IntValue, int start=0, int end = -1); template int LongestIncreasingSubset(T*x, int& xLength, vector &subsetIndices); #include "algorithms/anchoring/LongestIncreasingSubsequenceImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/LongestIncreasingSubsequenceImpl.hpp000066400000000000000000000064521260756663100323010ustar00rootroot00000000000000#ifndef _BLASR_LONGEST_INCREASING_SUBSEQUENCE_IMPL_HPP_ #define _BLASR_LONGEST_INCREASING_SUBSEQUENCE_IMPL_HPP_ using namespace std; template int BinarySearch(T *x, vector &m, int i, int lenM, F_IntValue IntValue) { // // Binary search for the largest // j ≤ L such that X[M[j]] < X[i] // (or set j = 0 if no such value exists) // // // In English: Find the longest subsequence ending // at some value less than X[i]. That // way, X[i] can increase this subsequence by 1. // int low = 0, high = lenM, cur; cur = (high + low) / 2; assert(cur < m.size()); while (low < high) { if (high == 1) { assert(cur == 0); return cur; } // The highest value is between cur and high. if (IntValue(x[m[cur]]) < IntValue(x[i])) { low = cur + 1; } else { // x[m[cur]] is above x[i], so the highest valid value is // strictly below cur high = cur; } cur = (low + high) / 2; } // cur is either the last spot where x[m[cur]] < x[i], or // the first spot where x[m[cur]] > x[i]; // Typically x[m[cur]] must be less than x[i], except on the first // call to this, in which case x[m[cur]] == x[i] == the first element // in the array. if (cur == 0) { return cur; } else { return cur - 1; } } template int LongestIncreasingSubset(T *x, int xLength, vector &subsetIndices, vector &m, vector &p, F_IntValue IntValue, int start, int end) { // // m[i] is the index of the LIS of length i+1 // m.resize(xLength+1); if (xLength == 0) return 0; m[0] = -1; p.resize(xLength); int i; int maxM; // On the first iteration m[0] should be set to 0. int lenM = 1; int mi; for (i = 0; i < xLength; i++) { // // Find the index of the longest increasing subsequence ending // before x[i] // maxM = BinarySearch(x, m, i, lenM); // // p is the list of back pointers. // Create a reference for where the previous longest increasing // subsequence that x[i] is part of. // p[i] = m[maxM]; // // If this creates a LIS longer than any previously known one, // add this to maxM. // if (maxM + 1 >= lenM) { assert(maxM+1 < m.size()); m[maxM+1] = i; if (maxM + 1>= lenM) { // assume that lenM is never more than 2 greater than maxM. lenM++; } } // // Otherwise, x[i] cannot create a longer LIS, BUT, if // it is less than the current element that ends a LIS of length maxM, // it bumps that element out from the slot of ending the LIS with // length maxM. // else if (IntValue(x[i]) < IntValue(x[m[maxM+1]])) { m[maxM+1] = i; } } // // Trace back; // int lisLen = lenM-1; int lisCur = m[lisLen]; for (i = 0 ; i < lisLen and lisCur != -1; i++) { subsetIndices.push_back(lisCur); lisCur = p[lisCur]; } std::reverse(subsetIndices.begin(), subsetIndices.end()); return lenM - 1; } template int LongestIncreasingSubset(T*x, int& xLength, vector &subsetIndices) { vector p; vector m; return LongestIncreasingSubset(x, xLength, subsetIndices, m, p); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/MapBySuffixArray.hpp000066400000000000000000000032251260756663100270250ustar00rootroot00000000000000#ifndef _BLASR_MAP_BY_SUFFIX_ARRAY_HPP_ #define _BLASR_MAP_BY_SUFFIX_ARRAY_HPP_ #include #include "suffixarray/SuffixArray.hpp" #include "datastructures/anchoring/MatchPos.hpp" #include "datastructures/anchoring/AnchorParameters.hpp" #include "algorithms/alignment/SWAlign.hpp" #include "algorithms/alignment/ScoreMatrices.hpp" /* * Parameters: * Eventually this should be strongly typed, since this is specific to * suffix array searching on DNASequence read/genome types. * reference - should be of type DNASequence * sa - shuld be of type SuffixArray * read - may be of any DNASequence subclass. * tupleSize - The length of the keyword used to speed up searching. * Out: * matchLow - The starting point in the suffix array for the LCP * match for the read at pos p. * matchHigh -The same array but for the upper bound. * saMatchLength - The length of the lcp. */ template int LocateAnchorBoundsInSuffixArray(T_RefSequence &reference, T_SuffixArray &sa, T_Sequence &read, unsigned int minPrefixMatchLength, std::vector &matchLow, std::vector &matchHigh, std::vector &matchLength, AnchorParameters ¶ms); template int MapReadToGenome(T_RefSequence &reference, T_SuffixArray &sa, T_Sequence &read, unsigned int minPrefixMatchLength, vector &matchPosList, AnchorParameters &anchorParameters); #include "algorithms/anchoring/MapBySuffixArrayImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/MapBySuffixArrayImpl.hpp000066400000000000000000000257551260756663100276630ustar00rootroot00000000000000#ifndef _BLASR_MAP_BY_SUFFIX_ARRAY_IMPL_HPP_ #define _BLASR_MAP_BY_SUFFIX_ARRAY_IMPL_HPP_ #include "defs.h" #include "algorithms/anchoring/MapBySuffixArray.hpp" /* * Parameters: * Eventually this should be strongly typed, since this is specific to * suffix array searching on DNASequence read/genome types. * reference - should be of type DNASequence * sa - shuld be of type SuffixArray * read - may be of any DNASequence subclass. * tupleSize - The length of the keyword used to speed up searching. * Out: * matchLow - The starting point in the suffix array for the LCP * match for the read at pos p. * matchHigh -The same array but for the upper bound. * saMatchLength - The length of the lcp. */ template int LocateAnchorBoundsInSuffixArray(T_RefSequence &reference, T_SuffixArray &sa, T_Sequence &read, unsigned int minPrefixMatchLength, std::vector &matchLow, std::vector &matchHigh, std::vector &matchLength, AnchorParameters ¶ms) { // // Make sure there is enough of this read to map. Since searches // are keyed off of 'minPrefixMatchLength' matches, don't search // anything shorter than that. // if (minPrefixMatchLength > 0 and read.SubreadLength() < minPrefixMatchLength) { return 0; } DNALength p, m; DNALength alignEnd; DNALength matchEnd = read.SubreadEnd() - minPrefixMatchLength + 1; DNALength numSearchedPositions = matchEnd - read.SubreadStart(); matchLength.resize(numSearchedPositions); matchLow.resize(numSearchedPositions); matchHigh.resize(numSearchedPositions); std::fill(matchLength.begin(), matchLength.end(), 0); std::fill(matchLow.begin(), matchLow.end(), 0); std::fill(matchHigh.begin(), matchHigh.end(), 0); vector lowMatchBound, highMatchBound; for (m = 0, p = read.SubreadStart(); p < matchEnd; p++, m++) { DNALength lcpLow, lcpHigh, lcpLength; lowMatchBound.clear(); highMatchBound.clear(); lcpLow = 0; lcpHigh = 0; lcpLength = sa.StoreLCPBounds(reference.seq, reference.length, &read.seq[p], matchEnd - p, params.useLookupTable, params.maxLCPLength, // // Store the positions in the SA // that are searched. // lowMatchBound, highMatchBound, params.stopMappingOnceUnique); // // Possibly print the lcp bounds for debugging // if (params.lcpBoundsOutPtr != NULL) { for (int i = 0; i < lowMatchBound.size(); i++) { *params.lcpBoundsOutPtr << (highMatchBound[i] - lowMatchBound[i]); if (i < lowMatchBound.size() - 1) { *params.lcpBoundsOutPtr << " "; } } *params.lcpBoundsOutPtr << endl; } // // Default to no match. // matchLow[m] = matchHigh[m] = matchLength[m] = 0; // // If anything was found in the suffix array: // if (lowMatchBound.size() > 0) { // // First expand the search bounds until at least // one match is found. // int lcpSearchLength = lowMatchBound.size(); bool extendedForward = false; while (lcpSearchLength > 0 and lowMatchBound[lcpSearchLength - 1] == highMatchBound[lcpSearchLength - 1]) { lcpSearchLength--; lcpLength--; } matchLow[m] = lowMatchBound[lcpSearchLength - 1]; matchHigh[m] = highMatchBound[lcpSearchLength - 1]; matchLength[m] = minPrefixMatchLength + lcpSearchLength; // // Next, apply some heuristics to the anchor generation. // // 1.1 If the suffix array match is unique, try and extend that // match as long as possible to ease global chaining later on. // // 1.2 If the suffix array match is unique, but cannot be // extended, it probably ends in an error. Back the search up // by 1. // // 2.1 If the suffix array match is not unique, return the // default matches, or expand the search to include more // matches. // // // Check to see if the match was unique. // if (matchLow[m] + 1 == matchHigh[m]) { // // If the match is unique, extend for as long as possible. // lcpLength = minPrefixMatchLength + lcpSearchLength; long refPos = sa.index[matchLow[m]] + lcpLength; long queryPos = p + lcpLength; bool extensionWasPossible = false; while (refPos + 1 < reference.length and queryPos + 1 < read.length and reference.seq[refPos + 1] == read.seq[queryPos + 1] and (params.maxLCPLength == 0 or lcpLength < params.maxLCPLength)) { refPos++; queryPos++; lcpLength++; extensionWasPossible = true; } if (extensionWasPossible) { // // Was able to extend match far into the genome, store that. // matchLength[m] = lcpLength; } else if (extensionWasPossible == false) { // // No extension was possible, indicating that this match // ends at an error. To be safe, expand search by up to // 1. // if (lcpSearchLength > 1) { lcpSearchLength = lcpSearchLength - 1; } matchLow[m] = lowMatchBound[lcpSearchLength-1]; matchHigh[m] = highMatchBound[lcpSearchLength-1]; matchLength[m] = minPrefixMatchLength + lcpSearchLength; } } else { // // The match is not unique. Store a possibly expanded search. // int numBacktrack = params.expand; if (lcpSearchLength > params.expand) { lcpSearchLength -= params.expand; } else { assert(lowMatchBound.size() > 0); lcpSearchLength = 1; } // // There are multiple matches for this position. // matchLow[m] = lowMatchBound[lcpSearchLength - 1]; matchHigh[m] = highMatchBound[lcpSearchLength - 1]; matchLength[m] = minPrefixMatchLength + lcpSearchLength; } } else { // // The match is shorter than what the search is supposed to // expand to. In order to avoid expanding to before the end // of the match list, do not set any match. // matchLow[m] = 0; matchHigh[m] = 0; matchLength[m] = 0; } // // Possibly advance a bunch of steps. // if (params.advanceExactMatches) { int tmp = (int)lcpLength - (int)params.expand - params.advanceExactMatches; int advance = MAX(tmp, 0); p += advance; m += advance; } } return 1; } template int MapReadToGenome(T_RefSequence &reference, T_SuffixArray &sa, T_Sequence &read, unsigned int minPrefixMatchLength, vector &matchPosList, AnchorParameters &anchorParameters) { vector matchLow, matchHigh, matchLength; int minMatchLen = anchorParameters.minMatchLength; if (read.SubreadLength() < minMatchLen) { matchPosList.clear(); return 0; } LocateAnchorBoundsInSuffixArray(reference, sa, read, minPrefixMatchLength, matchLow, matchHigh, matchLength, anchorParameters); // // Try evaluating some contexts. // DNALength pos; DNALength mappedLength = matchLow.size(); assert(matchLow.size() == matchHigh.size()); DNASequence evalQrySeq, evalRefSeq; vector pathMat; vector scoreMat; Alignment alignment; // // Do some filtering on the matches looking for overlapping matches // if there are any. // if (anchorParameters.removeEncompassedMatches) { vector removed; removed.resize(read.length); std::fill(removed.begin(), removed.end(), false); int i; int nRemoved = 0; for (i = 0; i < read.length-1; i++) { if (matchLength[i] == matchLength[i+1]+1) { removed[i+1] = true; } } for (i = 1; i < matchLength.size(); i++) { if (removed[i]) { matchLength[i] = matchLow[i] = matchHigh[i] = 0; } } } // // Now add // DNALength endOfMapping; DNALength trim = MAX(minMatchLen + 1, sa.lookupPrefixLength + 1); if (read.SubreadEnd() < trim) { endOfMapping = 0; } else { endOfMapping = read.SubreadEnd() - trim; } for (pos = read.SubreadStart(); pos < endOfMapping; pos++) { int matchIndex = pos - read.SubreadStart(); assert(matchIndex < matchHigh.size()); if (matchHigh[matchIndex] - matchLow[matchIndex] <= anchorParameters.maxAnchorsPerPosition) { DNALength mp; for (mp = matchLow[matchIndex]; mp < matchHigh[matchIndex]; mp++) { if (matchLength[matchIndex] < minMatchLen) { continue; } // // By default, add all anchors. // if (matchLength[matchIndex] + pos > read.length) { // // When doing branching, it's possible that a deletion // branch finds an anchor that goes past the end of a // read. When that is the case, trim back the anchor // match since this confuses downstream assertions. // matchLength[matchIndex] = read.length - pos; } assert(sa.index[mp] + matchLength[matchIndex] <= reference.length); matchPosList.push_back(ChainedMatchPos(sa.index[mp], pos, matchLength[matchIndex], matchHigh[matchIndex] - matchLow[matchIndex])); } } } return matchPosList.size(); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/PrioritySearchTree.hpp000066400000000000000000000036111260756663100274170ustar00rootroot00000000000000#ifndef _BLASR_PRIORITY_SEARCH_TREE_HPP_ #define _BLASR_PRIORITY_SEARCH_TREE_HPP_ #include #include "algorithms/anchoring/BasicEndpoint.hpp" /* * Define a priority search tree on a point that implements * the following interface: * * int T_point::GetIndex() * - Return the index of the point in a list of points. * int T_point::GetKey() * - Return the key value that the points are sorted by (x-value in a 2D query) * int T_point::GetValue() * - Return the value of a point. * int T_point::SetValue(int value) * - sets the value of a point. * * This class implements a query FindMax(key), which returns * the index of the point with greatest value of all points with key [0...key). * * */ template class PSTVertex { public: unsigned int leftChildIndex; unsigned int rightChildIndex; unsigned int isALeaf; KeyType medianKey; KeyType maxKey; unsigned int pointIndex; int maxScoreNode; PSTVertex(); }; template class PrioritySearchTree { private: std::vector > tree; std::vector > * treePtr; int GetMedianIndex(int start, int end); inline KeyType CreateTree(std::vector &points, int start, int end, unsigned int &iterativeIndex); int FindIndexOfMaxPoint(int curVertexIndex, std::vector &points, KeyType maxKey, int &maxPointValue, int &maxPointIndex); public: PrioritySearchTree(); void CreateTree(std::vector &points, std::vector > *bufTreePtr=NULL); int FindPoint(KeyType pointKey, int curVertexIndex, int &pointVertexIndex); void Activate(std::vector &points, int pointIndex); int FindIndexOfMaxPoint(std::vector &points, KeyType maxPointKey, int &maxPointIndex); }; #include "algorithms/anchoring/PrioritySearchTreeImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/PrioritySearchTreeImpl.hpp000066400000000000000000000234571260756663100302530ustar00rootroot00000000000000#ifndef _BLASR_PRIORITY_SEARCH_TREE_IMPL_HPP_ #define _BLASR_PRIORITY_SEARCH_TREE_IMPL_HPP_ /* * Define a priority search tree on a point that implements * the following interface: * * int T_point::GetIndex() * - Return the index of the point in a list of points. * int T_point::GetKey() * - Return the key value that the points are sorted by (x-value in a 2D query) * int T_point::GetValue() * - Return the value of a point. * int T_point::SetValue(int value) * - sets the value of a point. * * This class implements a query FindMax(key), which returns * the index of the point with greatest value of all points with key [0...key). * * */ template PSTVertex::PSTVertex() { isALeaf = 0; leftChildIndex = 0; rightChildIndex = 0; maxScoreNode = -1; maxKey = 0; medianKey = 0; pointIndex = 0; } template PrioritySearchTree::PrioritySearchTree() {treePtr = NULL;} template int PrioritySearchTree:: GetMedianIndex(int start, int end) { return (end + start) / 2; } template inline KeyType PrioritySearchTree:: CreateTree(std::vector &points, int start, int end, unsigned int &iterativeIndex) { assert(iterativeIndex < (*treePtr).size()); // // Look to see if this vertex is the parent of a leaf // -- when there are only two points below. // int medianIndex = GetMedianIndex(start, end); int curVertexIndex = iterativeIndex; (*treePtr)[curVertexIndex].medianKey = points[medianIndex].GetKey(); if (end == start) { // No children for this node, done. (*treePtr)[curVertexIndex].pointIndex = start; return (*treePtr)[curVertexIndex].medianKey; } // // Check to see if the current // node is a leaf node. No recursion on this node. // if (end - start == 1) { (*treePtr)[curVertexIndex].isALeaf = 1; (*treePtr)[curVertexIndex].medianKey = points[start].GetKey(); (*treePtr)[curVertexIndex].pointIndex = start; // // Return the key of this vertex. The parent // will know what to do with it. If this is // a left child, the parent will use the key to // distinguish what is on the left side of the branches. // If it is the right side of a (*treePtr), it is ignored. // return (*treePtr)[curVertexIndex].medianKey; } else { // // This vertex contains at least two children, so it is not // a leaf. Recurse assigning leaves. // (*treePtr)[curVertexIndex].isALeaf = 0; (*treePtr)[curVertexIndex].leftChildIndex = ++iterativeIndex; KeyType leftTreeKey, rightTreeKey; leftTreeKey = CreateTree(points, start, medianIndex, iterativeIndex); // // The leftTreeKey separates the branches BELOW this vertex. // (*treePtr)[curVertexIndex].medianKey = leftTreeKey; (*treePtr)[curVertexIndex].rightChildIndex = ++iterativeIndex; rightTreeKey = CreateTree(points, medianIndex, end, iterativeIndex); // // The rightTreeKey will separate the parent's left tree from the right. // (*treePtr)[curVertexIndex].maxKey = rightTreeKey; return rightTreeKey; } } template int PrioritySearchTree:: FindIndexOfMaxPoint(int curVertexIndex, std::vector &points, KeyType maxKey, int &maxPointValue, int &maxPointIndex) { // // Attempt to find the leaf vertex beneath this vertex that has // the largest score, with a key less than max key. // // On return: // Return 1 if a value is assigned to maxPointValue, 0 otherwise. // If a value is assigned to maxPointValue, this sets: // maxPointValue is the score of the maximum point. // maxPointIndex the index of the point in 'points' that has // the maximum score. // // // The vertex at curVertexIndex has a max score node beneath it, // if it has been initialized. If the maxScoreNode has a key less // than the current maxKey, then we know the maximum value is // contained beneath this vertex, AND that its key is within the // range in the rage maximum query. // That means that there is no need to continue the search below here. // if ((*treePtr)[curVertexIndex].maxScoreNode == -1) { return 0; } T_Point thisPoint = points[(*treePtr)[curVertexIndex].maxScoreNode]; if (thisPoint.GetKey() < maxKey) { if (thisPoint.GetScore() >= maxPointValue) { maxPointValue = thisPoint.GetScore(); maxPointIndex = (*treePtr)[curVertexIndex].maxScoreNode; return 1; } else { return 0; } } // // Otherwise, the maximum scoring node beneath this node has a // key greater than the max key. That means that the search must // continue for the maximum value node with a key less than 'maxKey'. // // The search has two cases: // First, if the median key of this node is greater than the maxKey, // all keys on the right side of the tree are greater than maxKey, // so do not search there. // // If the median key of this node si less than maxKey, there may // be a node on the left or right child of the current node with // a maximum key. Search both to the left and right. // else { if (!(*treePtr)[curVertexIndex].isALeaf) { if (maxKey <= (*treePtr)[curVertexIndex].medianKey) { return FindIndexOfMaxPoint( (*treePtr)[curVertexIndex].leftChildIndex, points, maxKey, maxPointValue, maxPointIndex); } else { int foundValueLeft, foundValueRight; foundValueLeft = FindIndexOfMaxPoint( (*treePtr)[curVertexIndex].leftChildIndex, points, maxKey, maxPointValue, maxPointIndex); foundValueRight = FindIndexOfMaxPoint( (*treePtr)[curVertexIndex].rightChildIndex, points, maxKey, maxPointValue, maxPointIndex); return (foundValueLeft or foundValueRight); } } else { // // The current node is a leaf node, but due to the condition // from before, its key is greater than or equal to the max key, // therefore its score cannot be used for the maximum score. // Returning 0 here signifies that this search-branch did not // turn up any candidates for // the maximum scoring node. return 0; } } } template void PrioritySearchTree:: CreateTree(std::vector &points, std::vector< PSTVertex >* bufTreePtr) { // // Precondition: points is sorted according to key. // // // The tree is a binary tree containing all the points. The // perfectly balanced tree is of maximum size points.size()-1, // so go ahead and preallocate that now. // if (bufTreePtr != NULL) { treePtr = bufTreePtr; } else { treePtr = &tree; } treePtr->resize((points.size() * 2) - 1); unsigned int curVertexIndex = 0; CreateTree(points, 0, points.size(), curVertexIndex); } // // Implement the tree as an array of interior nodes. // Since there is already space allocated for the // template int PrioritySearchTree:: FindPoint(KeyType pointKey, int curVertexIndex, int &pointVertexIndex) { if ((*treePtr)[curVertexIndex].isALeaf) { pointVertexIndex = curVertexIndex; return (*treePtr)[curVertexIndex].medianKey == pointKey; } else { if (pointKey <= (*treePtr)[curVertexIndex].medianKey) { return FindPoint(pointKey, (*treePtr)[curVertexIndex].leftChildIndex, pointVertexIndex); } else { return FindPoint(pointKey, (*treePtr)[curVertexIndex].rightChildIndex, pointVertexIndex); } } } template void PrioritySearchTree:: Activate(std::vector &points, int pointIndex) { int pointScore = points[pointIndex].GetScore(); // Now, update the pMax scores in the (*treePtr). int curVertexIndex = 0; KeyType pointKey = points[pointIndex].GetKey(); unsigned int itIndex = 0; while (pointIndex != -1 and (*treePtr)[curVertexIndex].isALeaf == 0) { assert(itIndex < (*treePtr).size()); int nodeIndex = (*treePtr)[curVertexIndex].maxScoreNode; if (nodeIndex == -1 or points[nodeIndex].GetScore() < pointScore) { (*treePtr)[curVertexIndex].maxScoreNode = pointIndex; pointIndex = nodeIndex; } if (pointKey <= (*treePtr)[curVertexIndex].medianKey) { curVertexIndex = (*treePtr)[curVertexIndex].leftChildIndex; } else { curVertexIndex = (*treePtr)[curVertexIndex].rightChildIndex; } // Keep track of the number of times this loop is executed... an // infinite loop will bomb. ++itIndex; } } template int PrioritySearchTree:: FindIndexOfMaxPoint(std::vector &points, KeyType maxPointKey, int &maxPointIndex) { // start at the root int curVertexIndex = 0; if ((*treePtr)[curVertexIndex].maxScoreNode == -1) { // // This case can only be hit if none of the points have been // activated. // return 0; } int maxPointValue = 0; return FindIndexOfMaxPoint(0, points, maxPointKey, maxPointValue, maxPointIndex); } #endif blasr_libcpp-master/alignment/algorithms/anchoring/ScoreAnchors.hpp000066400000000000000000000027201260756663100262210ustar00rootroot00000000000000#ifndef _BLASR_SCORE_ANCHORS_HPP_ #define _BLASR_SCORE_ANCHORS_HPP_ #include #include "tuples/TupleCountTable.hpp" #include "tuples/DNATuple.hpp" #include "tuples/TupleMetrics.hpp" #include "statistics/cdfs.hpp" #include "statistics/pdfs.hpp" template int GetTupleCount(TSequence &seq, DNALength startPos, TupleMetrics &tm, TupleCountTable &ct, int &count); template int PMatch(TSequence &seq, DNALength startPos, DNALength length, TupleMetrics &tm, TupleCountTable &ct, float &pMatch); template int POneOrMoreMatches(TSequence &seq, DNALength startPos, DNALength length, TupleMetrics &tm, TupleCountTable &ct, float &pValue); template int SumRightShiftMarginalTupleCounts(TupleMetrics &tm, TupleCountTable &ct, T_Tuple curTuple, int nextNuc, int &nextSeqCount); template int ComputeTotalTupleCount(TupleMetrics &tm, TupleCountTable &ct, TSequence &seq, int start=0, int end=-1); template int ComputeAverageTupleCount(TupleMetrics &tm, TupleCountTable &ct, TSequence &seq); inline int ComputeExpectedFirstWaitingTime(float lambda); #include "ScoreAnchorsImpl.hpp" #endif blasr_libcpp-master/alignment/algorithms/anchoring/ScoreAnchorsImpl.hpp000066400000000000000000000116531260756663100270500ustar00rootroot00000000000000#ifndef _BLASR_SCORE_ANCHOR_IMPL_HPP_ #define _BLASR_SCORE_ANCHOR_IMPL_HPP_ template int GetTupleCount(TSequence &seq, DNALength startPos, TupleMetrics &tm, TupleCountTable &ct, int &count) { T_Tuple tuple; if (tuple.FromStringLR(&seq.seq[startPos], tm)) { count = ct.countTable[tuple.ToLongIndex()]; return 1; } else { return 0; } } template int PMatch(TSequence &seq, DNALength startPos, DNALength length, TupleMetrics &tm, TupleCountTable &ct, float &pMatch){ int tupleCount; T_Tuple tuple, curTuple; // // Compute the probability of a match of length 'length' // in the genome using a k-th order Markov model of the genome. // Other than that there is no spatial constraint on a match. // This means that if the length of seq is k, and that sequence // of length k exists in the genome, then the probability of a // match is 1. pMatch = 1; if (GetTupleCount(seq, startPos, tm, ct, tupleCount)) { if (tupleCount == 0) return 0; int i; // // Compute the frequency of the following tuple, and compare this // to the frequencies of all 4 possible tuples that are next. // curTuple.FromStringLR(&seq.seq[startPos], tm); if (length < tm.tupleSize) { // the match is shorter than the tuples used to model the // genome sequence composition. Don't try and compute a p-value // for it -- assume that you will always find a match of this // length. // pMatch = 0; return 1; } for (i = 1; i < length - tm.tupleSize; i++) { // // now add on the log counts for the transitions. // if (tuple.FromStringLR(&seq.seq[i+startPos], tm) == 0) { return 0; } int nextTupleCount = 0; int rightMarCount = SumRightShiftMarginalTupleCounts(tm, ct, tuple, TwoBit[seq.GetNuc(startPos+i+tm.tupleSize-1)], nextTupleCount); // // tuple counts are not defined for N's. // if (TwoBit[seq.GetNuc(startPos + i+tm.tupleSize)] > 3) { return 0; } if (nextTupleCount == 0) { // // There is no background distribution available for this // sequence context, therefore no way to evaluate p-value. // return 0; } pMatch += log((nextTupleCount / (1.0*rightMarCount))); curTuple.tuple = tuple.tuple; } // // Done computing the probability of an extension. Now compute the probability // of the match. There are nMatches of the initial seed. We assume that each has // an equal probability of matching. // return 1; } else { return 0; } } template int POneOrMoreMatches(TSequence &seq, DNALength startPos, DNALength length, TupleMetrics &tm, TupleCountTable &ct, float &pValue){ int nMatches; float pMatch = 1; // // Compute the probability that the sequence matches ANY spot // in the reference for at least 'length' bases. // PMatch(seq, startPos, length, tm, ct, pMatch); pValue = pMatch; return 1; } template int SumRightShiftMarginalTupleCounts(TupleMetrics &tm, TupleCountTable &ct, T_Tuple curTuple, int nextNuc, int &nextSeqCount) { int totalCount = 0; int rightMarCount = 0; long i; T_Tuple altMask; altMask.tuple = 3L; altMask.tuple = ~altMask.tuple; for (i = 0; i < 4; i++ ) { T_Tuple alt = curTuple; // next.ShiftLeft(tm, 2); alt.tuple = alt.tuple & altMask.tuple; alt.tuple += i; // next.Append(i,2L); long countedTuple = alt.ToLongIndex(); rightMarCount = ct.countTable[countedTuple]; totalCount += rightMarCount; if (i == nextNuc) { nextSeqCount = rightMarCount; } } return totalCount; } template int ComputeTotalTupleCount(TupleMetrics &tm, TupleCountTable &ct, TSequence &seq, int start, int end) { if (end == -1) { end = seq.length; } int nTuples = end - tm.tupleSize + 1; if (nTuples == 0 ){ return 0; } int totalCount = 0; T_Tuple tuple; int i; for (i = 0; i < nTuples; i++) { tuple.FromStringLR(&seq.seq[i], tm); totalCount += ct.countTable[tuple.ToLongIndex()]; } return totalCount; } template int ComputeAverageTupleCount(TupleMetrics &tm, TupleCountTable &ct, TSequence &seq) { int i; int nTuples = seq.length - tm.tupleSize + 1; if (nTuples == 0 ){ return 0; } int totalCount = ComputeTotalTupleCount(tm, ct, seq); return totalCount / nTuples; } inline int ComputeExpectedFirstWaitingTime(float lambda) { // The first waiting time of a Poisson process is // exponentially distributed. The mean of an exponentially // distributed variable with parameter lambda is 1/lambda. return (1/lambda); } #endif blasr_libcpp-master/alignment/algorithms/compare/000077500000000000000000000000001260756663100225745ustar00rootroot00000000000000blasr_libcpp-master/alignment/algorithms/compare/CompareStrings.hpp000066400000000000000000000034601260756663100262500ustar00rootroot00000000000000#ifndef _BLASR_COMPARE_STRINGS_HPP_ #define _BLASR_COMPARE_STRINGS_HPP_ template class DefaultCompareStrings { public: static int Compare(T lhs, T rhs) { return ThreeBit[lhs] - ThreeBit[rhs]; } static int Compare(T *lhs, T *rhs, int length) { int i; int res; i = 0; T *lhsptr; T *rhsptr; lhsptr = lhs; rhsptr = rhs; char *lhsend = lhs + length; res = 0; while (lhsptr != lhsend and res == 0) { res = ThreeBit[*lhsptr] - ThreeBit[*rhsptr]; ++lhsptr; ++rhsptr; } return res; } static int Equal(T a, T b) { // // Compare single characters. // return a == b; } static int LessThan(T *a, int aLen, T *b, int bLen) { int minabLen = MIN(aLen, bLen); if (minabLen <= 0) return 0; int cmpRes = memcmp((void*) a, (void*) b, minabLen); if (cmpRes < 0) { return 1; } else { return 0; } } static int LessThanEqual(T *a, int aLen, T *b, int bLen) { int minabLen = MIN(aLen, bLen); if (minabLen <= 0) return 1; int cmpRes = memcmp((void*) a, (void*)b, minabLen); if (cmpRes <= 0) { return 1; } else { return 0; } } static int Equal(T* a, int aLen, T *b, int bLen) { int minabLen = MIN(aLen, bLen); if (minabLen < 0) return 0; if (minabLen == 0) return 1; int cmpRes = memcmp((void*) a, (void*)b, minabLen); if (cmpRes == 0 and aLen <= bLen) { return 1; } else { return 0; } } }; #endif // _BLASR_COMPARE_STRINGS_HPP_ blasr_libcpp-master/alignment/algorithms/sorting/000077500000000000000000000000001260756663100226335ustar00rootroot00000000000000blasr_libcpp-master/alignment/algorithms/sorting/DifferenceCovers.cpp000066400000000000000000000007321260756663100265550ustar00rootroot00000000000000#include #include "utils.hpp" #include "DifferenceCovers.hpp" int InitializeDifferenceCover(int diffCoverSize, UInt &diffCoverLength, UInt *&diffCover) { UInt index; for (index = 0; index < N_COVERS; index++) { if (diffCovers[index][0] == diffCoverSize) { diffCoverLength = diffCovers[index][1]; diffCover = ProtectedNew(diffCoverLength); memcpy(diffCover, &diffCovers[index][2], sizeof(UInt)*diffCoverLength); return 1; } } return 0; } blasr_libcpp-master/alignment/algorithms/sorting/DifferenceCovers.hpp000066400000000000000000000023661260756663100265670ustar00rootroot00000000000000#ifndef _BLASR_DIFFERENCE_COVERS_HPP_ #define _BLASR_DIFFERENCE_COVERS_HPP_ #include "Types.h" #define N_COVERS 5 const UInt diffCovers[N_COVERS][60] = { {7, 3, 1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {32, 7, 1, 2, 3, 4, 8,12,20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {64, 9, 1, 2, 3, 6,15,17,35,43,60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {111,12, 1, 2, 3, 6,13,28,37,39,45,53,66,94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2281, 58, 0, 1,2,3,4,5,6,7,8,9,19,38,57,76,95,114,133,152,171,190,229,268,307,346,385,424,463,502,541,580,619,658,697,736,775,814,853,892,931,951,971,991,1011,1031,1051,1071,1091,1111,1131,1132,1133,1134,1135,1136,1137,1138,1139, 1140}}; int InitializeDifferenceCover(int diffCoverSize, UInt &diffCoverLength, UInt *&diffCover); #endif // _BLASR_DIFFERENCE_COVERS_HPP_ blasr_libcpp-master/alignment/algorithms/sorting/Karkkainen.hpp000066400000000000000000000105261260756663100254260ustar00rootroot00000000000000#ifndef ALGORITHMS_SORTING_KARKKAINEN_HPP_ #define ALGORITHMS_SORTING_KARKKAINEN_HPP_ #include "DNASequence.hpp" inline bool leq(DNALength a1, DNALength a2, DNALength b1, DNALength b2) // lexicographic order { return(a1 < b1 || a1 == b1 && a2 <= b2); } // for pairs inline bool leq(DNALength a1, DNALength a2, DNALength a3, DNALength b1, DNALength b2, DNALength b3) { return(a1 < b1 || a1 == b1 && leq(a2, a3, b2, b3)); } // and triples // stably sort a[0..n-1] to b[0..n-1] with keys in 0..K from r template void radixPass(DNALength* a, DNALength* b, T_R* r, DNALength n, DNALength K) { // count occurrences DNALength* c = new DNALength[K + 1]; // counter array for (DNALength i = 0; i <= K; i++) c[i] = 0; // reset counters for (DNALength i = 0; i < n; i++) c[r[a[i]]]++; // count occurrences for (DNALength i = 0, sum = 0; i <= K; i++) { // exclusive prefix sums DNALength t = c[i]; c[i] = sum; sum += t; } for (DNALength i = 0; i < n; i++) b[c[r[a[i]]]++] = a[i]; // sort delete [] c; } // find the suffix array SA of T[0..n-1] in {1..K}^n // require T[n]=T[n+1]=T[n+2]=0, n>=2 template void KarkkainenBuildSuffixArray(T_T* T, DNALength* SA, DNALength n, int K) { DNALength n0=(n+2)/3, n1=(n+1)/3, n2=n/3, n02=n0+n2; DNALength* R = new DNALength[n02 + 3]; R[n02] = R[n02+1] = R[n02+2]=0; DNALength* SA12 = new DNALength[n02 + 3]; SA12[n02]=SA12[n02+1]=SA12[n02+2]=0; DNALength* R0 = new DNALength[n0]; DNALength* SA0 = new DNALength[n0]; //******* Step 0: Construct sample ******** // generate positions of mod 1 and mod 2 suffixes // the "+(n0-n1)" adds a dummy mod 1 suffix if n%3 == 1 for(DNALength i=0; i < n02+3; i++) { R[i] = 0; } for (DNALength i=0, j=0; i < n+(n0-n1); i++) if (i%3 != 0) R[j++] = i; //******* Step 1: Sort sample suffixes ******** // lsb radix sort the mod 1 and mod 2 triples radixPass(R , SA12, T+2, n02, K); radixPass(SA12, R, T+1, n02, K); radixPass(R , SA12, T , n02, K); // find lexicographic names of triples and // write them to correct places in R int name = 0, c0 = -1, c1 = -1, c2 = -1; for (DNALength i = 0; i < n02; i++) { if (T[SA12[i]] != c0 || T[SA12[i]+1] != c1 || T[SA12[i]+2] != c2) { name++; c0 = T[SA12[i]]; c1 = T[SA12[i]+1]; c2 = T[SA12[i]+2]; } if (SA12[i] % 3 == 1) { R[SA12[i]/3] = name; } // write to R1 else { R[SA12[i]/3 + n0] = name; } // write to R2 } // recurse if names are not yet unique if (name < n02) { KarkkainenBuildSuffixArray(R, SA12, n02, name); // store unique names in R using the suffix array for (DNALength i = 0; i < n02; i++) R[SA12[i]] = i + 1; } else {// generate the suffix array of R directly for (DNALength i = 0; i < n02; i++) SA12[R[i] - 1] = i; } //******* Step 2: Sort nonsample suffixes ******** // stably sort the mod 0 suffixes from SA12 by their first character for (DNALength i=0, j=0; i < n02; i++) if (SA12[i] < n0) R0[j++] = 3*SA12[i]; radixPass(R0, SA0, T, n0, K); //******* Step 3: Merge ******** // merge sorted SA0 suffixes and sorted SA12 suffixes for (DNALength p=0, t=n0-n1, k=0; k < n; k++) { #define GetI() (SA12[t] < n0 ? SA12[t] * 3 + 1 : (SA12[t] - n0) * 3 + 2) DNALength i = GetI(); // pos of current offset 12 suffix DNALength j = SA0[p]; // pos of current offset 0 suffix if (SA12[t] < n0 ? // different compares for mod 1 and mod 2 suffixes leq(T[i], R[SA12[t] + n0], T[j], R[j/3]) : leq(T[i],T[i+1],R[SA12[t]-n0+1], T[j],T[j+1],R[j/3+n0])) { // suffix from SA12 is smaller SA[k] = i; t++; if (t == n02) // done --- only SA0 suffixes left for (k++; p < n0; p++, k++) SA[k] = SA0[p]; } else { // suffix from SA0 is smaller SA[k] = j; p++; if (p == n0) // done --- only SA12 suffixes left for (k++; t < n02; t++, k++) SA[k] = GetI(); } } delete [] R; delete [] SA12; delete [] SA0; delete [] R0; } #endif blasr_libcpp-master/alignment/algorithms/sorting/LightweightSuffixArray.cpp000066400000000000000000000327131260756663100300100ustar00rootroot00000000000000#include "utils.hpp" #include "LightweightSuffixArray.hpp" UInt DiffMod(UInt a, UInt b, UInt d) { if (b > a) { return (d - ((b - a) % d))%d; } else { return (a - b) % d; } } void BuildDiffCoverReverseLookup(UInt diffCover[], UInt diffCoverLength, UInt reverseDiffCover[] // of size diffCoverSize ){ UInt i; for (i = 0; i < diffCoverLength; i++ ){ reverseDiffCover[diffCover[i]] = i; } } UInt DiffCoverFindH(UInt diffCover[], UInt diffCoverLength, UInt diffCoverSize, UInt textSize) { UInt h; for (h = 0; h < diffCoverSize; h++) { UInt rem = textSize % diffCoverSize ; if (rem == 0) return 0; if ((h < diffCoverSize -1 and (diffCover[h] <= rem and rem < diffCover[h+1])) or (h == diffCoverSize-1 and (diffCover[h] <= rem and rem < diffCoverSize))) { return h; } } return h; } UInt DiffCoverMu::compute(UInt i, UInt j) { return textSize/diffCoverSize * i + std::min(i,h+1) + j; } UInt DiffCoverMu::operator()(const UInt k) { // // k is from 0 .. n (size of string) // UInt di = k % diffCoverSize; UInt j = k / diffCoverSize; UInt i = diffCoverReverseLookup[di]; // return (textSize/diffCoverSize)*i + min(i,h) + j; // return (textSize/diffCoverSize)*i + i + j; UInt itemsInBucket; // return min(i,h)*(1 + textSize / diffCoverSize) + (i > h ? i - h : 0)*(textSize/diffCoverSize) + j; return (textSize/diffCoverSize) * i + std::min(i,h+1) + j; } DiffCoverMu::DiffCoverMu() { diffCoverLength = diffCoverSize = textSize = h = 0; diffCoverReverseLookup = diffCover = NULL; } DiffCoverMu::~DiffCoverMu() { if (diffCoverReverseLookup !=NULL) delete[] diffCoverReverseLookup; } void DiffCoverMu::Initialize(UInt diffCoverP[], UInt diffCoverLengthP, UInt diffCoverSizeP, UInt textSizeP) { diffCoverReverseLookup = ProtectedNew(diffCoverSizeP); diffCoverLength = diffCoverLengthP; textSize = textSizeP; diffCoverSize = diffCoverSizeP; diffCover = diffCoverP; UInt i; for (i = 0; i < diffCoverSize; i++ ) { diffCoverReverseLookup[i] = 9999999; } BuildDiffCoverReverseLookup(diffCoverP, diffCoverLength, diffCoverReverseLookup); h = DiffCoverFindH(diffCoverP, diffCoverLength, diffCoverSize, textSize); } void BuildDiffCoverLookup(UInt diffCover[], UInt diffCoverLength, UInt v, UInt diffCoverLookup[]) { UInt h; // Initialize with sentinal that shows a value has not been set (for small problems); for (h = 0; h < v; h++) { diffCoverLookup[h] = 99999999; } for (h = 0; h < v; h++) { // // For now, fill table via exhaustive search. // UInt hd; for (hd = 0; hd < diffCoverLength; hd++) { UInt dcm = (diffCover[hd] + h ) % v; UInt hdi; for (hdi = 0; hdi < diffCoverLength; hdi++ ){ if (dcm == diffCover[hdi]) break; } if (hdi < diffCoverLength) { diffCoverLookup[h] = diffCover[hd]; break; } } } } void DiffCoverDelta::Initialize(UInt diffCoverP[], UInt diffCoverLengthP, UInt diffCoverSizeP) { diffCoverLookup = ProtectedNew(diffCoverSizeP); diffCoverSize = diffCoverSizeP; BuildDiffCoverLookup(diffCoverP, diffCoverLengthP, diffCoverSizeP, diffCoverLookup); } UInt DiffCoverDelta::operator()(UInt i, UInt j) { return DiffMod(diffCoverLookup[DiffMod(j,i,diffCoverSize)],i,diffCoverSize); } DiffCoverDelta::~DiffCoverDelta() { if (diffCoverLookup) { delete [] diffCoverLookup; diffCoverLookup = NULL; } } UInt NCompareSuffices(unsigned char text[], UInt a, UInt b, UInt n) { // not sure how to make lower amortized cost of the comparison. return(strncmp((const char*) &text[a], (const char*)&text[b], n)); } UInt ComputeDSetSize(UInt diffCover, UInt diffCoverLength, UInt diffCoverSize, UInt textSize) { UInt div = textSize / diffCoverSize + 1; UInt rem = textSize % diffCoverSize; return div*diffCoverSize + rem; } void ComputeSufVNaming(UInt diffCover[], UInt diffCoverLength, UInt diffCoverN, UInt textSize, UInt lexNaming[], DiffCoverMu &mu, UInt sufVNaming[]) { UInt nDiffCover = textSize / diffCoverN + 1; UInt cover; UInt d; UInt diffCoverIndex; UInt ln = 0; for (cover = 0; cover < nDiffCover; cover++) { for (d = 0; d < diffCoverLength; d++) { diffCoverIndex = cover * diffCoverN + diffCover[d]; sufVNaming[mu(diffCoverIndex)] = lexNaming[ln]; ln++; } } } UInt IndexToDiffCoverIndex(UInt index, UInt diffCoverlookup[], UInt diffCoverSize, UInt diffCoverLength ){ UInt diff = index / diffCoverSize; UInt offset = index % diffCoverSize; return diff*diffCoverLength + diffCoverlookup[offset]; } void DiffCoverComputeLOrder(UInt sufVNaming[], UInt sufVNamingLength, UInt maxVNaming, UInt textLength, DiffCoverMu &mu, UInt lOrder[]) { // // the sufvnaming now contains the UInt i, di; UInt nDiffCover = textLength / mu.diffCoverSize + 1; UInt dci; for (i = 0; i < sufVNamingLength; i++ ) { lOrder[i] = 0; } for (dci = 0; dci < nDiffCover; dci++ ) { for (di = 0; di < mu.diffCoverLength; di++ ){ i = dci*mu.diffCoverSize + mu.diffCover[di]; if (i >= textLength) { break; } UInt dsetIndex = IndexToDiffCoverIndex(i, mu.diffCoverReverseLookup, mu.diffCoverSize, mu.diffCoverLength); UInt mui = mu(i); lOrder[mui] = sufVNaming[dsetIndex] + 1; } } lOrder[sufVNamingLength] = 0; // // The result of the sufsort function is to store the inverse suffix // array in the first parameter. // LarssonSuffixSort sufsorter; sufsorter.INDEX_MAX = maxVNaming + 2; sufsorter(lOrder, sufVNaming, sufVNamingLength, maxVNaming+2, 0); for (i = 0; i < sufVNamingLength; i++) { assert(lOrder[i] > 0); lOrder[i]--; } } /* * Build the lex naming of the v-ordered suffices. * * Input: textVOrder - the v-ordering of a subset of the text. * textSize - the size of the v-order set. * diffCover - the diff cover used, and it's length * diffCoverLength * diffCoverSize - the size of the diff cover. * Output: lexNaming: the lex-naming of the v-order suffices. The * names are implemented as unsigned integers. * Returns: the largest value of the lex-ordering. */ UInt DiffCoverBuildLexNaming( unsigned char text[], UInt textSize, UInt textVOrder[], UInt dSetSize, UInt diffCover[], UInt diffCoverLength, UInt diffCoverSize, UInt diffCoverLookup[], UInt lexNaming[]) { UInt nCovers = textSize / diffCoverSize + 1; UInt cover = 0; UInt d; UInt vOrder = 0; UInt prevCoverIndex, coverIndex; UInt lexOrder = 0; UInt lexIndex = 0; // // Make sure there is something to do here. // if (dSetSize == 0) return 0; UInt dcindex; dcindex = IndexToDiffCoverIndex(textVOrder[0], diffCoverLookup, diffCoverSize, diffCoverLength); lexNaming[dcindex] = 0; for (d = 1; d < dSetSize; d++) { if (NCompareSuffices(text, textVOrder[d-1], textVOrder[d], diffCoverSize) != 0) { lexOrder++; } dcindex = IndexToDiffCoverIndex(textVOrder[d], diffCoverLookup, diffCoverSize, diffCoverLength); lexNaming[dcindex] = lexOrder; } return lexOrder; } int DiffCoverCompareSuffices::operator()(UInt a, UInt b) { UInt aDCIndex, bDCIndex; UInt dab = (*delta)(a,b); aDCIndex = IndexToDiffCoverIndex(a + dab, diffCoverReverseLookup, diffCoverSize, diffCoverLength); bDCIndex = IndexToDiffCoverIndex(b + dab, diffCoverReverseLookup, diffCoverSize, diffCoverLength); return (lOrder[aDCIndex] < lOrder[bDCIndex]); } bool LightweightSuffixSort(unsigned char text[], UInt textLength, UInt *index, int diffCoverSize) { // // index is an array of length textLength that contains all // suffices. // // // Phase 0. Compute delta function for difference cover. // // For now, use a very small hard wired diff cover for testing UInt *diffCover; UInt diffCoverLength; if (InitializeDifferenceCover(diffCoverSize, diffCoverLength, diffCover) == 0) { std::cout << "ERROR! There is no difference cover of size " << diffCoverSize << " that is precomputed." << std::endl; exit(1); } DiffCoverDelta delta; delta.Initialize(diffCover, diffCoverLength, diffCoverSize); // // Phase 1. Sort suffices whose starting position modulo v is in D. // // The set d is given by // Step 1.1 v-sort D-sample suffices UInt dIndex = 0; // index in D-sample UInt tIndex = 0; // index in text UInt nDiffCover; nDiffCover = textLength / diffCoverSize + 1; UInt coverIndex; UInt d; bool done = false; for (coverIndex = 0; coverIndex < nDiffCover and done == false; coverIndex++) { for (d = 0; d < diffCoverLength and done == false; d++) { tIndex = coverIndex * diffCoverSize + diffCover[d]; if (tIndex >= textLength) { done = true; break; } index[dIndex] = tIndex; dIndex++; } } UInt dSetSize = dIndex; std::cerr << "Sorting " << diffCoverSize << "-prefixes of the genome." << std::endl; MediankeyBoundedQuicksort(text, index, dIndex, 0, dSetSize, 0, diffCoverSize); UInt i; // // Step 1.2 Compute l^v(i) for all i \in D_n by traversing the // D-sample suffixes in lexicographic order and construct s^\prime // by setting s^\prime[\mu(i)] = l^v(i) // UInt *lexVNaming; lexVNaming = ProtectedNew(dSetSize+1); DiffCoverMu mu; mu.Initialize(diffCover, diffCoverLength, diffCoverSize, textLength); UInt largestLexName; std::cerr << "Enumerating " << diffCoverSize << "-prefixes." << std::endl; largestLexName = DiffCoverBuildLexNaming(text, textLength, index, dSetSize, diffCover, diffCoverLength, diffCoverSize, mu.diffCoverReverseLookup, lexVNaming); // // Step 1.3 Compute ISA' of lex-order. // UInt *lexOrder; // // lexVNaming is allocated space. The suffix sorting needs an // auxiliary array. Since the index is not being used right now, // use that as the extra space. // UInt t; UInt dci,di; for (dci = 0; dci < nDiffCover; dci++) { for (di = 0 ; di < diffCoverLength; di++) { i = dci*diffCoverSize + diffCover[di]; if (i > textLength) { break; } mu.compute(di, dci); } } UInt *tmpLexOrder = index; DiffCoverComputeLOrder(lexVNaming, dSetSize, largestLexName, textLength, mu, tmpLexOrder); lexOrder = lexVNaming; nDiffCover = textLength / diffCoverSize + 1; for (dci = 0; dci < nDiffCover; dci++) { for (di = 0 ; di < diffCoverLength; di++) { i = dci*diffCoverSize + diffCover[di]; if (i >= textLength) { break; } UInt lexOrderIndex = mu(i); UInt diffCoverIndex = IndexToDiffCoverIndex(i, mu.diffCoverReverseLookup, diffCoverSize, diffCoverLength); lexOrder[diffCoverIndex] = tmpLexOrder[lexOrderIndex]; } } // // Phase 2. Construct SA by exploiting the fact that for any i,j\in // [0,n-v], the relative order of the suffixes starting at // i+\delta(,j) and j+\delta(i,j) is already known. // std::cerr << "Sorting suffices." << std::endl; // Step 2.1 v-order suffices using multikey quicksort for (i = 0; i < textLength; i++ ){ index[i] = i; } MediankeyBoundedQuicksort(text, index, textLength, 0, textLength, 0, diffCoverSize); // Step 2.2. For each group of suffixes that remains unsorted // (shares a prefix of length diffCoverSize, complete the sorting // with a comparison based on the sorting algorithm using // l(i+\delta(i,j)) nad l(j+\delta(i,j)) as keys when comparing // suffixes S_i and S_j. // DiffCoverCompareSuffices lOrderComparator; lOrderComparator.lOrder = lexOrder; lOrderComparator.delta = δ lOrderComparator.diffCoverSize = diffCoverSize; lOrderComparator.diffCoverLength=diffCoverLength; lOrderComparator.diffCoverReverseLookup = mu.diffCoverReverseLookup; UInt setBegin, setEnd; setBegin = setEnd = 0; std::cerr << "Sorting buckets." << std::endl; int percentDone = 0; int curPercentage = 0; while(setBegin < textLength) { setEnd = setBegin; percentDone = (int)(((1.0*setBegin) / textLength) * 100); if ( percentDone > curPercentage) { std::cerr << " " << percentDone << "% of buckets sorted." << std::endl; curPercentage = percentDone; } while(setEnd < textLength and NCompareSuffices(text, index[setBegin], index[setEnd], diffCoverSize) == 0) { setEnd++; } std::sort(&index[setBegin], &index[setEnd], lOrderComparator); setBegin = setEnd; } // diffCover was allocated in DifferenceCovers.cpp -> // InitializeDifferenceCover(...). Deallocate it. if (diffCover) {delete [] diffCover; diffCover = NULL;} if (lexVNaming) {delete [] lexVNaming; lexVNaming = NULL;} return true; // DONE!!!!! } blasr_libcpp-master/alignment/algorithms/sorting/LightweightSuffixArray.hpp000066400000000000000000000056451260756663100300210ustar00rootroot00000000000000#ifndef ALGORITHMS_SORTING_LIGHTWEIGHT_SUFFIX_ARRAY_H_ #define ALGORITHMS_SORTING_LIGHTWEIGHT_SUFFIX_ARRAY_H_ #include #include "qsufsort.hpp" #include "MultikeyQuicksort.hpp" #include "DifferenceCovers.hpp" #include "Types.h" /* * a - b potentially may not fit into a signed type. Use some logic * to get around that. */ UInt DiffMod(UInt a, UInt b, UInt d); void BuildDiffCoverReverseLookup(UInt diffCover[], UInt diffCoverLength, UInt reverseDiffCover[] // of size diffCoverSize ); UInt DiffCoverFindH(UInt diffCover[], UInt diffCoverLength, UInt diffCoverSize, UInt textSize); class DiffCoverMu { public: UInt *diffCoverReverseLookup; UInt diffCoverLength; UInt diffCoverSize; UInt textSize; UInt h; UInt *diffCover; UInt compute(UInt i, UInt j); UInt operator()(const UInt k); DiffCoverMu(); ~DiffCoverMu(); void Initialize(UInt diffCoverP[], UInt diffCoverLengthP, UInt diffCoverSizeP, UInt textSizeP); }; void BuildDiffCoverLookup(UInt diffCover[], UInt diffCoverLength, UInt v, UInt diffCoverLookup[]); class DiffCoverDelta { public: UInt *diffCoverLookup; UInt diffCoverSize; void Initialize(UInt diffCoverP[], UInt diffCoverLengthP, UInt diffCoverSizeP); UInt operator()(UInt i, UInt j); ~DiffCoverDelta(); }; UInt NCompareSuffices(unsigned char text[], UInt a, UInt b, UInt n); UInt ComputeDSetSize(UInt diffCover, UInt diffCoverLength, UInt diffCoverSize, UInt textSize); void ComputeSufVNaming(UInt diffCover[], UInt diffCoverLength, UInt diffCoverN, UInt textSize, UInt lexNaming[], DiffCoverMu &mu, UInt sufVNaming[]); UInt IndexToDiffCoverIndex(UInt index, UInt diffCoverlookup[], UInt diffCoverSize, UInt diffCoverLength ); void DiffCoverComputeLOrder(UInt sufVNaming[], UInt sufVNamingLength, UInt maxVNaming, UInt textLength, DiffCoverMu &mu, UInt lOrder[]); /* * Build the lex naming of the v-ordered suffices. * * Input: textVOrder - the v-ordering of a subset of the text. * textSize - the size of the v-order set. * diffCover - the diff cover used, and it's length * diffCoverLength * diffCoverSize - the size of the diff cover. * Output: lexNaming: the lex-naming of the v-order suffices. The * names are implemented as unsigned integers. * Returns: the largest value of the lex-ordering. */ UInt DiffCoverBuildLexNaming( unsigned char text[], UInt textSize, UInt textVOrder[], UInt dSetSize, UInt diffCover[], UInt diffCoverLength, UInt diffCoverSize, UInt diffCoverLookup[], UInt lexNaming[]); class DiffCoverCompareSuffices { public: UInt *lOrder; DiffCoverDelta *delta; UInt diffCoverSize; UInt diffCoverLength; UInt *diffCoverReverseLookup; int operator()(UInt a, UInt b); }; bool LightweightSuffixSort(unsigned char text[], UInt textLength, UInt *index, int diffCoverSize); #endif blasr_libcpp-master/alignment/algorithms/sorting/MultikeyQuicksort.cpp000066400000000000000000000127761260756663100270640ustar00rootroot00000000000000#include #include "MultikeyQuicksort.hpp" void UIntSwap(unsigned int &a, unsigned int &b) { // // There probably is an SSE for this. // unsigned int tmp = a; a = b; b = tmp; } void VecSwap( UInt i, UInt j, UInt n, UInt index[]) { UInt ni; for (ni = 0; ni < n; ni++) { UIntSwap(index[i], index[j]); i++; j++; } } unsigned char ComputeMedianValue(unsigned char text[], UInt index[], int length, UInt low, UInt high, int offset, UInt maxPossible, UInt *freq ) { /* * Compute the median value of positions at suffix+offset across all * suffices from [low,high). */ int f; for (f = 0; f< maxPossible+1; f++) { freq[f] = 0; } UInt pos; UInt maxValue = 0; int val; // return text[index[(high+low)/2]+offset]; // Compute frequencies of nucleotides (+N), packed into 3-bit representation. for (pos = low; pos < high; pos++) { // if (index[pos] + offset < length) { // val = ThreeBit[text[index[pos] + offset]]; val = text[index[pos]+offset]; if (val > maxValue) { maxValue = val; } freq[val]++; // } } UInt medianBound = (high - low)/2; int i; int runningTotal = 0; for(i =1; i<= maxValue; i++ ){ runningTotal = freq[i] + runningTotal; if (runningTotal >= medianBound) { return i; } } return maxValue; } UInt FindFirstOf(unsigned char text[], UInt index[], UInt length, UInt low, UInt high, int offset, Nucleotide nuc) { UInt p; for (p = low; p < high and text[index[p]+offset] != nuc; p++); return p; } inline void SwapIndices(UInt &a, UInt &b) { UInt temp = a; a = b; b = temp; } /* UInt min(UInt a, UInt b) { return (a < b) ? a : b; } */ void TransformSequenceForSorting(unsigned char text[], UInt textLength, int bound) { UInt i; for (i = 0; i < textLength; i++) { text[i] = ThreeBit[text[i]] + 1; } for (i = textLength; i < textLength+bound;i++) { text[i] = 0; } } void TransformBackSequence(Nucleotide text[], UInt textLength) { UInt i; for (i = 0; i < textLength; i++) { text[i]--; text[i] = ThreeBitToAscii[text[i]]; } } /* * depth: the current depth of how much is sorted. * bound: how far to sort. */ void MediankeyBoundedQuicksort(unsigned char text[], UInt index[], UInt length, UInt low, UInt high, int depth, int bound, UInt maxChar, UInt *freq) { if (high - low <= 1) return; if (depth > bound) return; bool deleteFreq = false; if (freq == NULL) { UInt ci; maxChar = 0; for (ci = low; ci < high; ci++) { UInt c = text[index[ci]+depth]; if ( c > maxChar) { maxChar = c; } } freq = ProtectedNew(maxChar+1); deleteFreq = true; } Nucleotide medianChar = ComputeMedianValue(text, index, length, low, high, depth, maxChar, freq ); UInt medianCharPos = FindFirstOf(text, index, length, low, high, depth, medianChar); UInt medLeft, lastLeft; UInt medRight, lastRight; // // Pack the median characters into the sides of the array. // SwapIndices(index[low], index[medianCharPos]); medLeft = lastLeft = low+1; medRight = lastRight = high-1; for(;;) { Nucleotide nuc; while(lastLeft <= lastRight and (nuc = text[index[lastLeft]+depth]) <= medianChar) { if (nuc == medianChar) { SwapIndices(index[medLeft], index[lastLeft]); medLeft++; } lastLeft++; } while(lastLeft <= lastRight and (nuc = text[index[lastRight]+depth]) >= medianChar) { if (nuc == medianChar) { SwapIndices(index[medRight], index[lastRight]); medRight--; } lastRight--; } if (lastLeft > lastRight) { // done with median sort. break; } // // Otherwise, this ends with an index at the left out of order // from the right assert(text[index[lastLeft]+depth] > text[index[lastRight]+depth]); SwapIndices(index[lastLeft], index[lastRight]); } // // Now join the indices of the median charactes in the middle of the // array. // // move left outside to middle UInt swapLeftLength = std::min(medLeft - low, lastLeft - medLeft); VecSwap(low, lastLeft - swapLeftLength, swapLeftLength, index); // move right outside to middle UInt swapRightLength = std::min(high - medRight - 1, medRight - lastRight); VecSwap(lastRight+1, high-swapRightLength, swapRightLength, index); UInt medianStartIndex = low + lastLeft - medLeft; UInt medianEndIndex = lastRight + (high - medRight); // Sort the suffices with keys lower than the median. // Since these may contain multiple keys that are less than the // median, the same depth is used. MediankeyBoundedQuicksort(text, index, length, low, medianStartIndex, depth, bound, maxChar,freq); if (medianEndIndex - medianStartIndex > 1) { MediankeyBoundedQuicksort(text, index, length, medianStartIndex, medianEndIndex, depth+1, bound, maxChar, freq); } MediankeyBoundedQuicksort(text, index, length, medianEndIndex, high, depth, bound, maxChar, freq); if (deleteFreq) {delete [] freq; freq = NULL;} } blasr_libcpp-master/alignment/algorithms/sorting/MultikeyQuicksort.hpp000066400000000000000000000031321260756663100270530ustar00rootroot00000000000000#ifndef _BLASR_MULTIKEY_QUICKSORT_HPP_ #define _BLASR_MULTIKEY_QUICKSORT_HPP_ /* * This is an implementation of MultiKey Quicksort, or ssort1 from * Bentley and Sedgewick, Fast Algorithms for Sorting and Searching * Strings, Proc. 8th Annual ACM-SIAM Symposium on Discrete Algorithms * (SODA), pages 360-369, January 1997. * * The implementation here sorts lists of indices into an array of * substrings rather than the substrings themselves (for use in suffix * array generation). Furthermore, it is made to be sse-alizeable to * speed up sorts on modern architectures. */ #include #include #include #include "NucConversion.hpp" #include "FASTASequence.hpp" #include "Types.h" typedef unsigned int UInt; void UIntSwap(unsigned int &a, unsigned int &b); void VecSwap( UInt i, UInt j, UInt n, UInt index[]); unsigned char ComputeMedianValue(unsigned char text[], UInt index[], int length, UInt low, UInt high, int offset, UInt maxPossible, UInt *freq ); UInt FindFirstOf(unsigned char text[], UInt index[], UInt length, UInt low, UInt high, int offset, Nucleotide nuc); void SwapIndices(UInt &a, UInt &b); void TransformSequenceForSorting(unsigned char text[], UInt textLength, int bound); void TransformBackSequence(Nucleotide text[], UInt textLength); /* * depth: the current depth of how much is sorted. * bound: how far to sort. */ void MediankeyBoundedQuicksort(unsigned char text[], UInt index[], UInt length, UInt low, UInt high, int depth, int bound, UInt maxChar= 0, UInt *freq=NULL); #endif // _BLASR_MULTIKEY_QUICKSORT_HPP_ blasr_libcpp-master/alignment/algorithms/sorting/qsufsort.cpp000066400000000000000000000270121260756663100252270ustar00rootroot00000000000000/* qsufsort.c Copyright 1999, N. Jesper Larsson, all rights reserved. This file contains an implementation of the algorithm presented in "Faster Suffix Sorting" by N. Jesper Larsson (jesper@cs.lth.se) and Kunihiko Sadakane (sada@is.s.u-tokyo.ac.jp). This software may be used freely for any purpose. However, when distributed, the original source must be clearly stated, and, when the source code is distributed, the copyright notice must be retained and any alterations in the code must be clearly marked. No warranty is given regarding the quality of this software.*/ #include static int *I, /* group array, ultimately suffix array.*/ *V, /* inverse array, ultimately inverse of I.*/ r, /* number of symbols aggregated by transform.*/ h; /* length of already-sorted prefixes.*/ #define KEY(p) (V[*(p)+(h)]) #define SWAP(p, q) (tmp=*(p), *(p)=*(q), *(q)=tmp) #define MED3(a, b, c) (KEY(a)KEY(c) ? (b) : KEY(a)>KEY(c) ? (c) : (a))) /* Subroutine for select_sort_split and sort_split. Sets group numbers for a group whose lowest position in I is pl and highest position is pm.*/ static void update_group(int *pl, int *pm) { int g; g=pm-I; /* group number.*/ V[*pl]=g; /* update group number of first position.*/ if (pl==pm) *pl=-1; /* one element, sorted group.*/ else do /* more than one element, unsorted group.*/ V[*++pl]=g; /* update group numbers.*/ while (pl>1); /* small arrays, middle element.*/ if (n>7) { pl=p; pn=p+n-1; if (n>40) { /* big arrays, pseudomedian of 9.*/ s=n>>3; pl=MED3(pl, pl+s, pl+s+s); pm=MED3(pm-s, pm, pm+s); pn=MED3(pn-s-s, pn-s, pn); } pm=MED3(pl, pm, pn); /* midsize arrays, median of 3.*/ } return KEY(pm); } /* Sorting routine called for each unsorted group. Sorts the array of integers (suffix numbers) of length n starting at p. The algorithm is a ternary-split quicksort taken from Bentley & McIlroy, "Engineering a Sort Function", Software -- Practice and Experience 23(11), 1249-1265 (November 1993). This function is based on Program 7.*/ static void sort_split(int *p, int n) { int *pa, *pb, *pc, *pd, *pl, *pm, *pn; int f, v, s, t, tmp; if (n<7) { /* multi-selection sort smallest arrays.*/ select_sort_split(p, n); return; } v=choose_pivot(p, n); pa=pb=p; pc=pd=p+n-1; while (1) { /* split-end partition.*/ while (pb<=pc && (f=KEY(pb))<=v) { if (f==v) { SWAP(pa, pb); ++pa; } ++pb; } while (pc>=pb && (f=KEY(pc))>=v) { if (f==v) { SWAP(pc, pd); --pd; } --pc; } if (pb>pc) break; SWAP(pb, pc); ++pb; --pc; } pn=p+n; if ((s=pa-p)>(t=pb-pa)) s=t; for (pl=p, pm=pb-s; s; --s, ++pl, ++pm) SWAP(pl, pm); if ((s=pd-pc)>(t=pn-pd-1)) s=t; for (pl=pb, pm=pn-s; s; --s, ++pl, ++pm) SWAP(pl, pm); s=pb-pa; t=pd-pc; if (s>0) sort_split(p, s); update_group(p+s, p+n-t-1); if (t>0) sort_split(p+n-t, t); } /* Bucketsort for first iteration. Input: x[0...n-1] holds integers in the range 1...k-1, all of which appear at least once. x[n] is 0. (This is the corresponding output of transform.) k must be at most n+1. p is array of size n+1 whose contents are disregarded. Output: x is V and p is I after the initial sorting stage of the refined suffix sorting algorithm.*/ static void bucketsort(int *x, int *p, int n, int k) { int *pi, i, c, d, g; for (pi=p; pi=p; --pi) { d=x[c=*pi]; /* c is position, d is next in list.*/ x[c]=g=i; /* last position equals group number.*/ if (d>=0) { /* if more than one element in group.*/ p[i--]=c; /* p is permutation for the sorted x.*/ do { d=x[c=d]; /* next in linked list.*/ x[c]=g; /* group number in x.*/ p[i--]=c; /* permutation in p.*/ } while (d>=0); } else p[i--]=-1; /* one element, sorted group.*/ } } /* Transforms the alphabet of x by attempting to aggregate several symbols into one, while preserving the suffix order of x. The alphabet may also be compacted, so that x on output comprises all integers of the new alphabet with no skipped numbers. Input: x is an array of size n+1 whose first n elements are positive integers in the range l...k-1. p is array of size n+1, used for temporary storage. q controls aggregation and compaction by defining the maximum value for any symbol during transformation: q must be at least k-l; if q<=n, compaction is guaranteed; if k-l>n, compaction is never done; if q is INT_MAX, the maximum number of symbols are aggregated into one. Output: Returns an integer j in the range 1...q representing the size of the new alphabet. If j<=n+1, the alphabet is compacted. The global variable r is set to the number of old symbols grouped into one. Only x[n] is 0.*/ static int transform(int *x, int *p, int n, int k, int l, int q) { int b, c, d, e, i, j, m, s; int *pi, *pj; for (s=0, i=k-l; i; i>>=1) ++s; /* s is number of bits in old symbol.*/ e=INT_MAX>>s; /* e is for overflow checking.*/ for (b=d=r=0; r=k-l) { /* if bucketing possible,*/ j=transform(V, I, n, k, l, n); bucketsort(V, I, n, j); /* bucketsort on first r positions.*/ } else { transform(V, I, n, k, l, INT_MAX); for (i=0; i<=n; ++i) I[i]=i; /* initialize I with suffix numbers.*/ h=0; sort_split(I, n+1); /* quicksort on first r positions.*/ } h=r; /* number of symbols aggregated by transform.*/ while (*I>=-n) { pi=I; /* pi is first position of group.*/ sl=0; /* sl is negated length of sorted groups.*/ do { if ((s=*pi)<0) { pi-=s; /* skip over sorted group.*/ sl+=s; /* add negated length to sl.*/ } else { if (sl) { *(pi+sl)=sl; /* combine sorted groups before pi.*/ sl=0; } pk=I+V[s]+1; /* pk-1 is last position of unsorted group.*/ sort_split(pi, pk-pi); pi=pk; /* next group.*/ } } while (pi<=I+n); if (sl) /* if the array ends with a sorted group.*/ *(pi+sl)=sl; /* combine sorted groups at end of I.*/ h=2*h; /* double sorted-depth.*/ } for (i=0; i<=n; ++i) /* reconstruct suffix array from inverse.*/ I[V[i]]=i; } blasr_libcpp-master/alignment/algorithms/sorting/qsufsort.hpp000066400000000000000000000346301260756663100252400ustar00rootroot00000000000000#ifndef _BLASR_QSUFSORT_HPP_ #define _BLASR_QSUFSORT_HPP_ #include "utils.hpp" #include void suffixsort(int *x, int *p, int n, int k, int l); /* qsufsort.c Copyright 1999, N. Jesper Larsson, all rights reserved. This file contains an implementation of the algorithm presented in "Faster Suffix Sorting" by N. Jesper Larsson (jesper@cs.lth.se) and Kunihiko Sadakane (sada@is.s.u-tokyo.ac.jp). This software may be used freely for any purpose. However, when distributed, the original source must be clearly stated, and, when the source code is distributed, the copyright notice must be retained and any alterations in the code must be clearly marked. No warranty is given regarding the quality of this software.*/ #include #define KEY(p) (V[*(p)+(h)]) #define MED3(a, b, c) (KEY(a)KEY(c) ? (b) : KEY(a)>KEY(c) ? (c) : (a))) /* Subroutine for select_sort_split and sort_split. Sets group numbers for a group whose lowest position in I is pl and highest position is pm.*/ #include #include template class LarssonSuffixSort { private: T_Index *I; T_Index *V; T_Index r; T_Index h; T_Index SWAPPtr(T_Index *p, T_Index *q) { T_Index tmp=*(p); *(p)=*(q); *(q)=tmp; return *(q);} std::vector boundaries; public: T_Index INDEX_MAX; LarssonSuffixSort() { INDEX_MAX = T_Index_MAX; r = h = 0; I = V = NULL; } void operator()(T_Index *x, T_Index *p, T_Index n, T_Index k, T_Index l) { suffixsort(x,p,n,k,l); } void update_group(T_Index *pl, T_Index *pm) { int g; g=pm-I; /* group number.*/ V[*pl]=g; /* update group number of first position.*/ if (pl==pm) { /*MC*/ assert(pl -I >= 0); boundaries[pl - I] = 1; // *pl=-1; /* one element, sorted group.*/ } else do /* more than one element, unsorted group.*/ V[*++pl]=g; /* update group numbers.*/ while (pl= 0); // assert(boundaries[pa-I] == 0 ); V[*pa]=pa-I; /*MC*/ // *pa=-1; /* sorted group.*/ boundaries[pa - I] = 1; } } /* Subroutine for sort_split, algorithm by Bentley & McIlroy.*/ T_Index choose_pivot(T_Index *p, T_Index n) { T_Index *pl, *pm, *pn; T_Index s; pm=p+(n>>1); /* small arrays, middle element.*/ if (n>7) { pl=p; pn=p+n-1; if (n>40) { /* big arrays, pseudomedian of 9.*/ s=n>>3; pl=MED3(pl, pl+s, pl+s+s); pm=MED3(pm-s, pm, pm+s); pn=MED3(pn-s-s, pn-s, pn); } pm=MED3(pl, pm, pn); /* midsize arrays, median of 3.*/ } return KEY(pm); } /* Sorting routine called for each unsorted group. Sorts the array of integers (suffix numbers) of length n starting at p. The algorithm is a ternary-split quicksort taken from Bentley & McIlroy, "Engineering a Sort Function", Software -- Practice and Experience 23(11), 1249-1265 (November 1993). This function is based on Program 7.*/ void sort_split(T_Index *p, T_Index n) { T_Index *pa, *pb, *pc, *pd, *pl, *pm, *pn; T_Index f, v, s, t; if (n<7) { /* multi-selection sort smallest arrays.*/ select_sort_split(p, n); return; } v=choose_pivot(p, n); pa=pb=p; pc=pd=p+n-1; while (1) { /* split-end partition.*/ while (pb<=pc && (f=KEY(pb))<=v) { if (f==v) { SWAPPtr(pa, pb); ++pa; } ++pb; } while (pc>=pb && (f=KEY(pc))>=v) { if (f==v) { SWAPPtr(pc, pd); --pd; } --pc; } if (pb>pc) break; SWAPPtr(pb, pc); ++pb; --pc; } pn=p+n; if ((s=pa-p)>(t=pb-pa)) s=t; for (pl=p, pm=pb-s; s; --s, ++pl, ++pm) SWAPPtr(pl, pm); if ((s=pd-pc)>(t=pn-pd-1)) s=t; for (pl=pb, pm=pn-s; s; --s, ++pl, ++pm) SWAPPtr(pl, pm); s=pb-pa; t=pd-pc; if (s>0) sort_split(p, s); update_group(p+s, p+n-t-1); if (t>0) sort_split(p+n-t, t); } /* Bucketsort for first iteration. Input: x[0...n-1] holds integers in the range 1...k-1, all of which appear at least once. x[n] is 0. (This is the corresponding output of transform.) k must be at most n+1. p is array of size n+1 whose contents are disregarded. Output: x is V and p is I after the initial sorting stage of the refined suffix sorting algorithm. */ void bucketsort(T_Index *x, T_Index *p, T_Index n, T_Index k) { T_Index *pi, i, c, d, g; for (pi=p; pi= 0); assert(pi - p == pi - I); // boundaries[pi-p] = 0; } int *buckets = ProtectedNew(k); T_Index *starts = ProtectedNew(k); /*MC+1*/ for (i = 0; i < k; i++ ){ buckets[i] = -1; } /*MC-1*/ for (i=0; i<=n; ++i) { /*MC+2*/ if (buckets[x[i]] == -1) { starts[x[i]] = i; } x[i]=buckets[c=x[i]]; /* insert in linked list.*/ buckets[c]=i; //*x[i]=pi[c=x[i]] p[c] = i; /*MC-2*/ } for (pi=p+k-1, i=n; pi>=p; --pi) { d=x[c=*pi]; /* c is position, d is next in list.*/ x[c]=g=i; /* last position equals group number.*/ // if (d>=0) { /* if more than one element in group.*/ if (c != starts[pi - p]) { p[i--]=c; /* p is permutation for the sorted x.*/ do { d=x[c=d]; /* next in linked list.*/ x[c]=g; /* group number in x.*/ p[i--]=c; /* permutation in p.*/ } while (c != starts[pi - p]); //while (d>=0); } else { /*MC*/ boundaries[i--]=true; // p[i--]=-1; /* one element, sorted group.*/ } } delete[] starts; delete[] buckets; } /* Transforms the alphabet of x by attempting to aggregate several symbols into one, while preserving the suffix order of x. The alphabet may also be compacted, so that x on output comprises all integers of the new alphabet with no skipped numbers. Input: x is an array of size n+1 whose first n elements are positive integers in the range l...k-1. p is array of size n+1, used for temporary storage. q controls aggregation and compaction by defining the maximum value for any symbol during transformation: q must be at least k-l; if q<=n, compaction is guaranteed; if k-l>n, compaction is never done; if q is INT_MAX, the maximum number of symbols are aggregated into one. Output: Returns an integer j in the range 1...q representing the size of the new alphabet. If j<=n+1, the alphabet is compacted. The global variable r is set to the number of old symbols grouped into one. Only x[n] is 0.*/ T_Index transform(T_Index *x, T_Index *p, T_Index n, T_Index k, T_Index l, T_Index q) { T_Index b, c, d, e, i, j, m, s; T_Index *pi, *pj; for (s=0, i=k-l; i; i>>=1) ++s; /* s is number of bits in old symbol.*/ e=INDEX_MAX>>s; /* e is for overflow checking.*/ for (b=d=r=0; r=k-l) { /* if bucketing possible,*/ j=transform(V, I, n, k, l, n); bucketsort(V, I, n, j); /* bucketsort on first r positions.*/ } else { transform(V, I, n, k, l, INDEX_MAX); for (i=0; i<=n; ++i) I[i]=i; /* initialize I with suffix numbers.*/ h=0; sort_split(I, n+1); /* quicksort on first r positions.*/ } h=r; /* number of symbols aggregated by transform.*/ while (*I<=n) { pi=I; /* pi is first position of group.*/ sl=0; /* sl is negated length of sorted groups.*/ do { /*MC-3*/ // if ((s=*pi)<0) { s = *pi; if (boundaries[pi - I] == 1) { // pi-=s; /* skip over sorted group.*/ s = 1; pi+=s; sl+=s; /* add negated length to sl.*/ } else { if (sl) { // *(pi+sl)=sl; /* combine sorted groups before pi.*/ assert(boundaries[(pi-sl) - I] == 1); assert(pi - sl >= I); *(pi-sl)=sl; /* combine sorted groups before pi.*/ sl=0; } pk=I+V[s]+1; /* pk-1 is last position of unsorted group.*/ sort_split(pi, pk-pi); pi=pk; /* next group.*/ } } while (pi<=I+n); if (sl) /* if the array ends with a sorted group.*/ *(pi-sl)=sl; /* combine sorted groups at end of I.*/ h=2*h; /* double sorted-depth.*/ } for (i=0; i<=n; ++i) /* reconstruct suffix array from inverse.*/ I[V[i]]=i; } }; #endif // _BLASR_QSUFSORT_HPP_ blasr_libcpp-master/alignment/anchoring/000077500000000000000000000000001260756663100207455ustar00rootroot00000000000000blasr_libcpp-master/alignment/anchoring/AnchorParameters.hpp000066400000000000000000000014641260756663100247210ustar00rootroot00000000000000#ifndef _BLASR_ANCHOR_PARAMETERS_HPP_ #define _BLASR_ANCHOR_PARAMETERS_HPP_ #include #include #include "qvs/QualityValue.hpp" #include "DNASequence.hpp" class AnchorParameters { public: QualityValue branchQualityThreshold; DNALength minMatchLength; int maxMatchScore; int expand; int contextAlignLength; bool useLookupTable; int numBranches; int maxAnchorsPerPosition; int advanceExactMatches; DNALength maxLCPLength; bool stopMappingOnceUnique; int verbosity; bool removeEncompassedMatches; std::ostream *lcpBoundsOutPtr; int branchExpand; AnchorParameters(); AnchorParameters &Assign(const AnchorParameters &rhs); AnchorParameters &operator=(const AnchorParameters &rhs); }; #endif // _BLASR_ANCHOR_PARAMETERS_HPP_ blasr_libcpp-master/alignment/build.mk000077700000000000000000000000001260756663100221202makefileustar00rootroot00000000000000blasr_libcpp-master/alignment/bwt/000077500000000000000000000000001260756663100175715ustar00rootroot00000000000000blasr_libcpp-master/alignment/bwt/BWT.hpp000066400000000000000000000173321260756663100207440ustar00rootroot00000000000000#ifndef _BLASR_BWT_HPP_ #define _BLASR_BWT_HPP_ #include #include #include "Occ.hpp" #include "Pos.hpp" #include "suffixarray/SuffixArray.hpp" #include "PackedDNASequence.hpp" #include "FASTASequence.hpp" /* * Define an Occurrence table appropriate for Gb sized genomes. * Probably everything will end up using this. */ typedef Occ GbOcc; /* * Define an Occurrence table appropriate for Mb sized genomes. */ typedef Occ MbOcc; class SingleStoragePolicy { public: DNALength *spp, *epp; void Store(DNALength sp, DNALength ep) { *spp = sp; *epp = ep; } }; class VectorStoragePolicy { public: std::vector *spvp, *epvp; void Store(DNALength sp, DNALength ep) { spvp->push_back(sp); epvp->push_back(ep); } }; template class Bwt { public: T_BWT_Sequence bwtSequence; GbOcc occ; Pos pos; static const int CharCountSize = 7; int useDebugData; std::vector saCopy; DNALength charCount[CharCountSize]; DNALength firstCharPos; void Write(std::string outName) { std::ofstream bwtOut; CrucialOpen(outName, bwtOut, std::ios::binary|std::ios::out); Write(bwtOut); } void PrintBWTString(std::ostream &out) { DNALength p; for (p = 0; p < bwtSequence.length; p++) { out << (char) ThreeBitToAscii[bwtSequence[p]]; if (p % 50 == 49) out << std::endl; } if(p % 50 != 0) out << std::endl; } void Write(std::ostream &bwtOut) { bwtSequence.Write(bwtOut); bwtOut.write((char*)charCount, sizeof(DNALength)*CharCountSize); bwtOut.write((char*)&firstCharPos, sizeof(DNALength)); bwtOut.write((char*)&useDebugData, sizeof(useDebugData)); if (useDebugData) { bwtOut.write((char*)&saCopy[0], (bwtSequence.length-1) * sizeof(DNALength)); } occ.Write(bwtOut); pos.Write(bwtOut); } int Read(std::string inName) { std::ifstream bwtIn; DNALength seqStorageSize; CrucialOpen(inName, bwtIn, std::ios::binary|std::ios::in); bwtSequence.Read(bwtIn); bwtIn.read((char*)charCount, sizeof(DNALength)*CharCountSize); bwtIn.read((char*)&firstCharPos, sizeof(DNALength)); bwtIn.read((char*)&useDebugData, sizeof(useDebugData)); if (useDebugData) { saCopy.resize(bwtSequence.length-1); bwtIn.read((char*)&saCopy[0], (bwtSequence.length-1) * sizeof(DNALength)); } occ.Read(bwtIn, useDebugData); pos.Read(bwtIn); occ.InitializeBWT(bwtSequence); return 1; } void Print(std::ofstream &out) { bwtSequence.Print(out); } DNALength LFBacktrack(DNALength bwtPos) { Nucleotide curNuc = bwtSequence.Get(bwtPos); assert(curNuc < 5); DNALength bwtPrevPos = charCount[curNuc] + occ.Count(curNuc, bwtPos) - 1; return bwtPrevPos; } DNALength Locate(DNALength bwtPos) { DNALength seqPos; DNALength offset = 0; while (1) { if (pos.Lookup(bwtPos, seqPos)) { break; } else { DNALength bwtPrevPos; bwtPrevPos = LFBacktrack(bwtPos); if (useDebugData) { assert(saCopy[bwtPos-1] - 1 == saCopy[bwtPrevPos-1]); } bwtPos = bwtPrevPos; assert(bwtPos <= bwtSequence.length); /* * Boundary condition at the beginning of the bwt string. */ if (bwtPos == firstCharPos) { seqPos = 1; break; } } ++offset; } return seqPos + offset; } DNALength Locate(DNALength sp, DNALength ep, std::vector &positions, int maxCount = 0) { DNALength bwtPos; DNALength seqPos; if (sp <= ep and (maxCount == 0 or ep - sp < maxCount)) { for (bwtPos = sp; bwtPos <= ep; bwtPos++) { if ((seqPos = Locate(bwtPos))) { positions.push_back(seqPos); } } } return ep - sp + 1; } DNALength Locate(T_DNASequence &seq, std::vector &positions, int maxCount =0) { DNALength ep, sp; Count(seq, sp, ep); return Locate(sp, ep, positions); } DNALength GetNumCharsLessThan(Nucleotide nuc) { return charCount[nuc]; } void InitializeDNACharacterCount() { // // All counts start at 1 due to implicit encoding of $ character, // where $ is less than all other chars. // std::fill(charCount, &charCount[6], 0); DNALength p; Nucleotide nuc; for (p = 0; p < bwtSequence.length; p++) { nuc = bwtSequence[p]; /* * Intentionally omit break commands so that charCount[4] * contains the counts of all characters 4 and below and so on. */ switch(nuc) { case 5: // // 5 is out of order here because the '$' is stored after ACGTN // since it is a nonstandard character. // charCount[0]++; case 0: //A charCount[1]++; case 1: //C charCount[2]++; case 2: //G charCount[3]++; case 3: //T charCount[4]++; case 4: //N charCount[5]++; } } // sum charCount[6] = bwtSequence.length; } template int Count(T_DNASequence &seq, T_PStoragePolicy &StoragePolicy) { /* * Implement algorithm count directly from the FM-Index paper(s -- * it's shown many times). */ DNALength p = seq.length-1; DNALength sp, ep; Nucleotide c; int i; // // Original forumlation is using count offsets starting at 1. // Nucleotide tbn = ThreeBit[seq[p]]; sp = charCount[tbn]; // = +1 (from paper) - 1 (0 // offset not in paper). ep = charCount[tbn +1] - 1; StoragePolicy.Store(sp,ep); while (sp <= ep and p > 0) { c = ThreeBit[seq[p-1]]; int cc = charCount[c]; sp = cc + occ.Count(c,sp-1) + 1 - 1; ep = cc + occ.Count(c,ep) - 1; StoragePolicy.Store(sp,ep); p--; } return ep - sp + 1; } int Count(T_DNASequence &seq, DNALength &sp, DNALength &ep) { /* * Implement algorithm count directly from the FM-Index paper(s -- * it's shown many times). */ SingleStoragePolicy storagePolicy; storagePolicy.spp = &sp; storagePolicy.epp = &ep; return Count(seq, storagePolicy); } int Count(T_DNASequence &seq, std::vector &spv, std::vector &epv) { VectorStoragePolicy storagePolicy; storagePolicy.spvp = &spv; storagePolicy.epvp = &epv; return Count(seq, storagePolicy); } int Count(T_DNASequence &seq) { DNALength ep, sp; return Count(seq, sp, ep); } void InitializeBWTStringFromSuffixArray(T_DNASequence &origSeq, DNALength saIndex[]) { // extra +1 is for $. bwtSequence.Allocate(origSeq.length+1); if (useDebugData) { saCopy.resize(origSeq.length); } DNALength p; if (origSeq.length == 0) { // // No work to do, but even the null string has the sentinal // appended to it. // bwtSequence.Set(0,ThreeBit[(int)'$']); return; } // // By convention, bwt[0] = T[len(T)-1] because T[len(T)] == '$', // the lexicographic least character in the alphabet. // bwtSequence.Set(0, ThreeBit[origSeq[origSeq.length-1]]); for (p = 1; p < origSeq.length+1; p++) { if (useDebugData) { saCopy[p-1] = saIndex[p-1]; } if (saIndex[p-1] > 0) { assert(ThreeBit[origSeq[saIndex[p-1]-1]] != 255); bwtSequence.Set(p, ThreeBit[origSeq[saIndex[p-1]-1]]); } else { // // The 0'th suffix corresponds to the one ending in the // sentinal '$'. Since this is explicitly encoded, we can // store a value in the bwt for '$'. // firstCharPos = p; bwtSequence.Set(p,ThreeBit[(int)'$']); } } } void InitializeFromSuffixArray(T_DNASequence &dnaSeq, DNALength saIndex[], int buildDebug=0) { useDebugData = buildDebug; InitializeBWTStringFromSuffixArray(dnaSeq, saIndex); InitializeDNACharacterCount(); // sequence, major, minor bin sizes. occ.Initialize(bwtSequence, 4096, 64, buildDebug); pos.InitializeFromSuffixArray(saIndex, dnaSeq.length); } }; typedef Bwt BWT; #endif // _BLASR_BWT_HPP_ blasr_libcpp-master/alignment/bwt/Occ.hpp000066400000000000000000000175311260756663100210150ustar00rootroot00000000000000#ifndef _BLASR_OCC_HPP_ #define _BLASR_OCC_HPP_ #include #include #include #include "DNASequence.hpp" #include "NucConversion.hpp" #include "utils.hpp" #include "matrix/Matrix.hpp" #include "matrix/FlatMatrix.hpp" template class Occ { public: int majorBinSize; int minorBinSize; int hasDebugInformation; FlatMatrix2D major; FlatMatrix2D minor; FlatMatrix2D full; static const unsigned int AlphabetSize = 5; T_BWTSequence *bwtSeqRef; DNALength numMajorBins, numMinorBins; void PrintBins(std::ostream &out) { out << "numMajor: " << numMajorBins << " numMinor: " << numMinorBins << std::endl; DNALength ma, mi, mii; mi = 0; int i; for (ma = 0; ma < numMajorBins; ma++) { out << "MAJOR: "; for (i = 0; i < 5; i++ ){ out << major[ma][i] << " "; } out << std::endl; for (mii = 0; mii < majorBinSize / minorBinSize && mi < numMinorBins; mii++, mi++) { out << " "; for (i = 0;i <5; i++ ){ out << minor[mi][i] << " "; } out << std::endl; } } } void InitializeBWT(T_BWTSequence &bwtSeq) { bwtSeqRef = &bwtSeq; } void Initialize(T_BWTSequence &bwtSeq, int _majorBinSize=4096, int _minorBinSize=64, int _hasDebugInformation=0) { // // This reference is used when counting nucleotides. It assumes // the sequence does not change between initialization and // subsequent calls to count. // bwtSeqRef = &bwtSeq; majorBinSize = _majorBinSize; minorBinSize = _minorBinSize; hasDebugInformation = _hasDebugInformation; InitializeMajorBins(bwtSeq); InitializeMinorBins(bwtSeq); if (hasDebugInformation) { InitializeTestBins(bwtSeq); } } void InitializeMajorBins(T_BWTSequence &bwtSeq) { numMajorBins = CeilOfFraction(bwtSeq.length, (DNALength) majorBinSize); major.Allocate(numMajorBins, AlphabetSize); std::vector runningTotal; runningTotal.resize(AlphabetSize); fill(runningTotal.begin(), runningTotal.end(), 0); fill(&major.matrix[0], &major.matrix[numMajorBins*AlphabetSize], 0); DNALength p; DNALength binIndex = 0; for (p = 0; p < bwtSeq.length; p++) { Nucleotide nuc = ThreeBit[bwtSeq[p]]; // only handle ACTGN, $==6, so skip counting that. if (nuc > AlphabetSize) continue; if (p % majorBinSize == 0) { //majorBinSize-1) { // cout << "storing at " << p<< " " << binIndex << std::endl; int n; for (n = 0; n < AlphabetSize; n++ ) { major[binIndex][n] = runningTotal[n]; } binIndex++; } runningTotal[nuc]++; } } void InitializeTestBins(T_BWTSequence &bwtSeq) { full.Allocate(bwtSeq.length, AlphabetSize); fill(full.matrix, &full.matrix[bwtSeq.length * AlphabetSize],0); DNALength p; int n; for (p = 0; p < bwtSeq.length; p++) { Nucleotide nuc = ThreeBit[bwtSeq[p]]; if (nuc > AlphabetSize) { for (n = 0; n < AlphabetSize; n++ ) { full[p][n] = full[p-1][n]; } } else { full[p][nuc]++; if (p > 0) { for (n = 0; n < AlphabetSize; n++ ) { full[p][n] = full[p-1][n] + full[p][n]; } } } } } void InitializeMinorBins(T_BWTSequence &bwtSeq) { numMinorBins = CeilOfFraction(bwtSeq.length, (DNALength) minorBinSize); minor.Allocate(numMinorBins, AlphabetSize); std::vector majorRunningTotal; majorRunningTotal.resize(AlphabetSize); std::fill(majorRunningTotal.begin(), majorRunningTotal.end(), 0); std::fill(&minor.matrix[0], &minor.matrix[numMinorBins*AlphabetSize], 0); DNALength p; DNALength minorBinIndex = 0; for (p = 0; p < bwtSeq.length; p++ ){ Nucleotide nuc = ThreeBit[bwtSeq[p]]; if (nuc > AlphabetSize) continue; // // The minor bins are running totals inside each major // bin. When the count hits a bin offset, reset the bin // counter. // if (p % majorBinSize == 0) { fill(majorRunningTotal.begin(), majorRunningTotal.end(), 0); } if (p % minorBinSize == 0) { int n; for (n = 0; n < AlphabetSize; n++ ) { minor[minorBinIndex][n] = majorRunningTotal[n]; } minorBinIndex++; } majorRunningTotal[nuc]++; } } int Count(Nucleotide nuc, DNALength p ) { DNALength majorIndex = p / majorBinSize; DNALength minorIndex = p / minorBinSize; DNALength lastBinnedIndex = minorBinSize * (p / minorBinSize); // // This should be sort of O(1), since the last expression should // be made of bit operations that are fast. // Nucleotide smallNuc = ThreeBit[nuc]; //assert(smallNuc < 5); DNALength nocc = major[majorIndex][smallNuc] + minor[minorIndex][smallNuc] + bwtSeqRef->CountNuc(lastBinnedIndex, p+1, nuc); // assert(full.matrix == NULL or full[p][smallNuc] == nocc); return nocc; } void Write(std::ostream &out) { out.write((char*) &majorBinSize, sizeof(majorBinSize)); out.write((char*) &minorBinSize, sizeof(minorBinSize)); out.write((char*) &numMajorBins, sizeof(numMajorBins)); if (numMajorBins > 0) { out.write((char*) major[0], sizeof(T_Major) * numMajorBins*AlphabetSize); } out.write((char*) &numMinorBins, sizeof(numMinorBins)); if (numMinorBins > 0) { out.write((char*) minor[0], sizeof(T_Minor) * numMinorBins*AlphabetSize); } if (hasDebugInformation) { DNALength bwtSeqLength = bwtSeqRef->length; out.write((char*)&bwtSeqLength, sizeof(bwtSeqLength)); out.write((char*)&full.matrix[0], sizeof(DNALength)* bwtSeqLength * AlphabetSize); } } int Read(std::istream &in, int _hasDebugInformation) { hasDebugInformation = _hasDebugInformation; in.read((char*) &majorBinSize, sizeof(majorBinSize)); in.read((char*) &minorBinSize, sizeof(minorBinSize)); in.read((char*) &numMajorBins, sizeof(numMajorBins)); if (numMajorBins > 0) { major.Resize(numMajorBins * AlphabetSize); in.read((char*) major[0], sizeof(T_Major) * numMajorBins * AlphabetSize); major.nRows = numMajorBins; major.nCols = AlphabetSize; } in.read((char*) &numMinorBins, sizeof(numMinorBins)); if (numMinorBins > 0) { minor.Resize(numMinorBins * AlphabetSize); in.read((char*) minor[0], sizeof(T_Minor) * numMinorBins*AlphabetSize); minor.nRows = numMinorBins; minor.nCols = AlphabetSize; } if (hasDebugInformation) { DNALength bwtSeqLength; in.read((char*)&bwtSeqLength, sizeof(bwtSeqLength)); if (full.matrix) {delete [] full.matrix;} full.matrix = ProtectedNew(bwtSeqLength *AlphabetSize); full.nRows = bwtSeqLength; full.nCols = AlphabetSize; in.read((char*)&full.matrix[0], sizeof(DNALength)* bwtSeqLength * AlphabetSize); } return 1; } }; #endif // _BLASR_OCC_HPP_ blasr_libcpp-master/alignment/bwt/PackedHash.hpp000066400000000000000000000277351260756663100223130ustar00rootroot00000000000000#ifndef _BLASR_PACKED_HASH_HPP_ #define _BLASR_PACKED_HASH_HPP_ #include #include #include #include #include #include "Types.h" #include "utils.hpp" #include "utils/BitUtils.hpp" #include "DNASequence.hpp" class PackedHash { public: DNALength tableLength; uint32_t *table; uint64_t *values; std::vector hashLengths; static const uint32_t BinNumBits = 5; static const uint32_t BinSize = 1 <<(BinNumBits); PackedHash() { table = NULL; values = NULL; tableLength = 0; } ~PackedHash() { Free(); } void Free() { // In general convertions between int and pointer is not desired, // Consequences depending on the implementation, as the resulting // pointers may incorrectly aligned. See C standard subclause 6.3.2.3. if (tableLength <= 0) { table = NULL; values = NULL; tableLength = 0; hashLengths.clear(); return; } for(DNALength i = 0; i < tableLength; i++) { int nSetBits = CountBits(table[i]); if (nSetBits >= 3) { //values[i] is a pointer to a list of uint32 integers volatile uintptr_t iptr = values[i]; uint32_t * ptr = (uint32_t *)iptr; if (ptr != NULL) { delete [] ptr; } //otherwise, values[i] is an uint_64. } } if (values) {delete [] values;} if (table) {delete [] table;} table = NULL; values = NULL; tableLength = 0; hashLengths.clear(); } /* * Create a mask that retains the lower 5 bits (0 .. 31) of a * position so that pos % 32 may be computed by a shift. */ static const uint32_t BinModMask = 0x1FU; void Allocate(uint32_t sequenceLength) { Free(); tableLength = CeilOfFraction(sequenceLength, (DNALength) BinSize); table = ProtectedNew(tableLength); values = ProtectedNew(tableLength); std::fill(&table[0], &table[tableLength], 0); std::fill(&values[0], &values[tableLength], 0); hashLengths.resize(tableLength); std::fill(hashLengths.begin(), hashLengths.end(), 0); } void PrintBinSummary() { // // Report some stats on the hash. // DNALength p; std::map countMap; int card; for (p = 0; p < tableLength; p++ ){ card = CountBits(table[p]); countMap[card]++; } std::map::iterator mapit; for (mapit = countMap.begin(); mapit != countMap.end(); ++mapit) { std::cout << mapit->first << " " << mapit->second << std::endl; } } uint32_t LookupBinAtPos(DNALength pos) { /* * Each bucket contains 32 positions. Membership is simply when * the bit at pos & BinModMask is set. There should never be * collisions of multiple positions (from different areas in the * genome) mapping to the same position in a bin. */ return table[pos/BinSize] & (1 << (pos & BinModMask)); } void ValueToList(uint64_t &storage, DNALength newValue, int newValuePos) { /* * This is called when one is attempting to add a spot to storage, * but there are already two values stored in it, so storage must * be converted to a pointer, and the values added to a list on * the heap. The size of the list is necessarily 3 at this point, * because there are two values in storage that must be moved to * the list, and the new value as well. * The values are copied to the list in sorted order, and sorting * is handled case-by-case since there are only 3 cases. */ DNALength v0, v1; v0 = ((DNALength)storage); v1 = ((DNALength)(storage >> 32)); DNALength *storagePtr = ProtectedNew(3); storage = (uint64_t) storagePtr; // // Only a couple of options, so handle them directly here // if (newValuePos == 0) { storagePtr[0] = newValue; storagePtr[1] = v0; storagePtr[2] = v1; } else if (newValuePos == 1) { storagePtr[0] = v0; storagePtr[1] = newValue; storagePtr[2] = v1; } else if (newValuePos == 2) { storagePtr[0] = v0; storagePtr[1] = v1; storagePtr[2] = newValue; } else { assert("ERROR! Somehow expected to only add 3 elements to an array of length 3, but the position of the new value is greater than the length of the array" && 0); } } void InsertValueInList(uint64_t &storage, int curStorageLength, DNALength newValue, int newValuePos) { /* * This simply creates a new list with size 1 larger than before, * and inserts the new value into its position that maintains * sorted order in the list. */ DNALength *newListPtr = ProtectedNew(curStorageLength + 1); // // Copy the values from the old list making space for the new // value. // if (newValuePos > 0) { memcpy(newListPtr, ((DNALength*)storage), newValuePos * sizeof(DNALength)); } if (newValuePos < curStorageLength) { memcpy(&newListPtr[newValuePos+1], &((DNALength*)storage)[newValuePos], (curStorageLength - newValuePos)*sizeof(uint32_t)); } assert(curStorageLength < 32); newListPtr[newValuePos] = newValue; if (storage){delete[] ((DNALength*)storage);} storage = (uint64_t)newListPtr; } void DirectlyStoreValue(uint64_t &storage, int curStorageLength, DNALength value, int valuePos) { /* * In this instance, the value may be copied to either the first * half or the second half of 'storage', without having to turn * storage into a list. The values must be stored in sorted * order. If 'storage' is empty, the correct place is at the * beginning of storage. If there already is a value at the * beginning, it may be necessary to shift the existing value over * to keep everything in sorted order. */ if (curStorageLength == 0) { // // Nothing here, just store the value. // storage = value; } else if (valuePos == 0) { // // Place the value at the beginning of the storage. // storage = storage << 32; storage = storage + value; } else { // // Place the value at the end of storage. // uint64_t longValue = value; longValue = longValue << 32; storage += longValue; } } int AddValue(DNALength pos, DNALength value) { // // The bucket is either a values[pos] that can store up to two // values, or it is a pointer to a list of values. The values are // always in order of their corresponding position in the BWT // string. // To add a value to this bucket, first check to see if // values[pos] has enough room to simply put it there, otherwise, // either a list already exists and the value must be inserted, or // the values[pos] must be converted to a list, and then the new // value inserted. // // First, operate on the assumption that no value gets added // twice. // UInt bin = pos / BinSize; UInt bit = pos & BinModMask; assert((table[bin] & ( 1 << bit)) == 0); // // Now, add the pos and determine where it is in the array. // table[bin] = table[bin] + ( 1 << bit); // // Mask off everything above this bit. // UInt mask = (UInt)-1; mask >>= (31 - bit); UInt lowerBits = table[bin] & mask; int rank = CountBits(lowerBits) - 1; int card = CountBits(table[bin]); if (card < 3) { DirectlyStoreValue(values[bin], card-1, value, rank); } else if (card == 3) { ValueToList(values[bin], value, rank); } else { InsertValueInList(values[bin], card-1, value, rank); } return card; } int LookupValue(DNALength pos, DNALength &value) { /* * Check to see if there is a value stored for 'pos'. If so, * store it in value, and return 1 for success. */ UInt binIndex = pos/BinSize; UInt bin = table[binIndex]; UInt setBit = bin & (1 << (pos & BinModMask)); if (setBit == 0) { return 0; } // // GetSetBitPosition64 returns the position relative to the most // significant bit in a 64-bit word, starting at MSB = 1. This // should never be less than 32, since it's counting bits in a 32 // bit word. // int bitPos = GetSetBitPosition32(setBit); UInt bitPosMask = ((UInt)-1) >> (32 - bitPos-1);; // // Determine how to interpret the value of this bucket. It is // either a pointer or two words. If there are more than two bits // set in this bucket, it is a pointer. Otherwise, pick the half // of the 64 bit word based on the index in the bucket. // int nSet = CountBits(bin); int bitRank = CountBits(bin & bitPosMask) - 1; assert(nSet > 0); if (nSet <= 2) { // return lower 32 bits if (bitRank == 0) { value = ((uint32_t)values[binIndex]); return 1; } else { value = ((uint32_t)(values[binIndex]>>32)); return 1; } } else { /* * In this instance, values is a pointer rather than a pair of values. */ value = (uint32_t) ((DNALength*)values[binIndex])[bitRank]; return 1; } // // This is reached if nothing is stored in value. For now, this // shouldn't be reached, so make sure the program bails here. // assert(0); return 0; } /* * Define binary I/O routines for the packed hash. The sizes of the * tables are constant, but then the values table has some lists. * Those are written past the end of the tables treating the last * half of the file as a heap structure. They are simlarly read in. * */ void Write(std::ostream &out) { out.write((char*) &tableLength,sizeof(tableLength)); if (tableLength > 0) { out.write((char*) table, tableLength * sizeof(table[0])); out.write((char*) values, tableLength * sizeof(values[0])); } DNALength tablePos; for (tablePos = 0; tablePos < tableLength; tablePos++) { int nSetBits = CountBits(table[tablePos]); if( nSetBits > 2) { out.write((char*)values[tablePos], sizeof(uint32_t)*nSetBits); } } } void Read(std::istream &in) { Free(); in.read((char*)&tableLength, sizeof(tableLength)); if (tableLength > 0) { table = ProtectedNew(tableLength); values = ProtectedNew(tableLength); in.read((char*)table, sizeof(uint32_t)*tableLength); in.read((char*)values, sizeof(uint64_t)*tableLength); DNALength tablePos; for (tablePos = 0; tablePos < tableLength; tablePos++) { int nSetBits = CountBits(table[tablePos]); if (nSetBits > 2) { values[tablePos] = (uint64_t)(ProtectedNew(nSetBits)); in.read((char*)values[tablePos], nSetBits * sizeof(uint32_t)); } } } } }; #endif // _BLASR_PACKED_HASH_HPP_ blasr_libcpp-master/alignment/bwt/Pos.hpp000066400000000000000000000021101260756663100210350ustar00rootroot00000000000000#ifndef _BLASR_POS_HPP_ #define _BLASR_POS_HPP_ #include #include #include "PackedHash.hpp" #include "DNASequence.hpp" #include "Types.h" #include "utils/BitUtils.hpp" template< typename T_BWT_Sequence> class Pos { public: static const unsigned int stride=8; PackedHash packedHash; std::vector hashCount; std::vector fullPos; int hasDebugInformation; void Write(std::ostream &out) { packedHash.Write(out); } void Read(std::istream &in) { packedHash.Read(in); } void InitializeFromSuffixArray(DNALength suffixArray[], DNALength suffixArrayLength) { DNALength p; packedHash.Allocate(suffixArrayLength); std::fill(hashCount.begin(), hashCount.end(), 0); for (p = 0; p < suffixArrayLength; p++ ){ if (suffixArray[p] % stride==0){ packedHash.AddValue(p,suffixArray[p]); } } } int Lookup(DNALength bwtPos, DNALength &seqPos) { return packedHash.LookupValue(bwtPos-1, seqPos); } }; #endif // _BLASR_POS_HPP_ blasr_libcpp-master/alignment/datastructures/000077500000000000000000000000001260756663100220525ustar00rootroot00000000000000blasr_libcpp-master/alignment/datastructures/alignment/000077500000000000000000000000001260756663100240305ustar00rootroot00000000000000blasr_libcpp-master/alignment/datastructures/alignment/AlignedPair.h000066400000000000000000000004071260756663100263610ustar00rootroot00000000000000#ifndef ALIGNED_PAIR_H_ #define ALIGNED_PAIR_H_ #include template class AlignedPair { public: int length; T_AlignChar *tAlignmentSeq; T_AlignChar *qAlignmentSeq; }; inline void ReadCompareSequencesAlignment { } #endif blasr_libcpp-master/alignment/datastructures/alignment/Alignment.cpp000066400000000000000000000344311260756663100264570ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include "Types.h" #include "DNASequence.hpp" #include "datastructures/alignment/Alignment.hpp" using namespace blasr; Alignment::Alignment() : AlignmentStats() { qName = ""; tName = ""; qStrand = tStrand = 0; qPos = tPos = 0; qLength = tLength = 0; probability = 0; nCells = 0; nSampledPaths = 0; zScore = 0; score = probScore = sumQVScore = 0; qAlignLength = tAlignLength = 0; } void Alignment::CopyStats(Alignment &rhs) { AlignmentStats::CopyStats((AlignmentStats) rhs); probability = rhs.probability; probScore = rhs.probScore; sumQVScore = rhs.sumQVScore; nCells = rhs.nCells; nSampledPaths = rhs.nSampledPaths; } void Alignment::Clear() { qName = ""; tName = ""; blocks.clear(); gaps.clear(); } Alignment& Alignment::operator=(const Alignment &rhs) { qName = rhs.qName; tName = rhs.tName; qStrand = rhs.qStrand; tStrand = rhs.tStrand; qPos = rhs.qPos; tPos = rhs.tPos; qAlignLength = rhs.qAlignLength; tAlignLength = rhs.tAlignLength; qLength = rhs.qLength; tLength = rhs.tLength; zScore = rhs.zScore; blocks.clear(); blocks = rhs.blocks; gaps.clear(); gaps = rhs.gaps; nCells = rhs.nCells; nSampledPaths = rhs.nSampledPaths; AlignmentStats::Assign(rhs); return *this; } unsigned int Alignment::size() { return blocks.size(); } void Alignment::Assign(Alignment &rhs) { ((AlignmentStats*)this)->Assign(rhs); qPos = rhs.qPos; tPos = rhs.tPos; qAlignLength = rhs.qAlignLength; tAlignLength = rhs.tAlignLength; qLength = rhs.qLength; zScore = rhs.zScore; qName = rhs.qName; tName = rhs.tName; qStrand = rhs.qStrand; tStrand = rhs.tStrand; nCells = rhs.nCells; std::vector empty; blocks.swap(empty); blocks.resize(rhs.size()); int b; for (b = 0; b < rhs.blocks.size(); b++) { blocks[b].Assign(rhs.blocks[b]); } } int Alignment::ComputeNumAnchors(int minAnchorSize, int &nAnchors, int &nAnchorBases) { int i; nAnchors = 0; nAnchorBases = 0; for (i = 0; i < blocks.size(); i++) { if (blocks[i].length >= minAnchorSize) { nAnchors++; nAnchorBases += blocks[i].length; } } return nAnchors; } void Alignment::AllocateBlocks(int nBlocks) { blocks.resize(nBlocks); } void Alignment::AppendAlignmentGaps(Alignment &next, bool mergeFirst) { // // append all gaps belonging to ext to the gap list in this // alignment. The logic for determining just what the gap should // be between two separate alignments is somewhat complicated, and // should probably be handled outside this function. The default // to do this is to skip the first gap in the next alignment, and // assume that the code has handled computing the gap stored in // the last gap in this alignment correctly. // // At your own risk, you can simply merge the first gap in next // with the last gap in the current alignment. assert(gaps.size() > 0); // Ditto for the next alignment. assert(next.gaps.size() > 0); std::vector::iterator secondGapIt = next.gaps.begin(); if (mergeFirst) { // Merge the gap list in the first gap in next sequence to the // last gap in the current sequence. gaps[gaps.size()-1].insert(gaps[gaps.size()-1].end(), secondGapIt->begin(), secondGapIt->end()); } // Append all other gaps to the current one. secondGapIt++; gaps.insert(gaps.end(), secondGapIt, next.gaps.end()); } void Alignment::AppendAlignmentBlocks(Alignment &next, int qOffset, int tOffset) { VectorIndex n; Block tempBlock; for (n = 0; n < next.blocks.size(); n++ ) { tempBlock = next.blocks[n]; tempBlock.qPos += qOffset; tempBlock.tPos += tOffset; blocks.push_back(tempBlock); } } void Alignment::AppendAlignment(Alignment &next) { int qOffset = next.qPos - qPos; int tOffset = next.tPos - tPos; AppendAlignmentBlocks(next, qOffset, tOffset); } /* Transform the series of operations in an optimal dynamic programming path to a block representation of the alignment. Since it is possible to have an adjacent insertion and deletion, the gap blocks are tracked in addition to the match blocks. */ void Alignment::ArrowPathToAlignment(std::vector &optPath) { int q, t; VectorIndex a = 1; q = 0; t = 0; Block b; a = 0; bool beforeFirstBlock = true; while (a < optPath.size()) { // // Allow for there to be a block at the beginning // of the alignment, so process gap characters first. // if (!beforeFirstBlock) { if (optPath[a] == Diagonal) { // Start of a block; b.qPos = q; b.tPos = t; b.length = 0; while(a < optPath.size() and optPath[a] == Diagonal) { b.length++; a++; t++; q++; } blocks.push_back(b); } } gaps.push_back(GapList()); int curGapList = gaps.size() - 1; // // Add gaps as condensed blocks of insertions or deletions. It // is possible there are multiple stretches of ins/del/ins/del // patterns, so have to loop over all of these. // while (a < optPath.size() and (optPath[a] == Left or optPath[a] == Up)) { if (a < optPath.size() and optPath[a] == Left) { int gapStart = a; while(a < optPath.size() and optPath[a] == Left) { t++; a++; } gaps[curGapList].push_back(Gap(Gap::Query, a - gapStart)); continue; } else if (a < optPath.size() and optPath[a] == Up) { int gapStart = a; while(a < optPath.size() and optPath[a] == Up) { q++; a++; } gaps[curGapList].push_back(Gap(Gap::Target, a - gapStart)); continue; } } if (a == optPath.size()) { if (gaps.size() > 0) { gaps[curGapList].clear(); } } assert(a == optPath.size() or gaps[curGapList].size() != 0 or beforeFirstBlock == true); beforeFirstBlock = false; } } // // samtools / picard do not like the pattern // insertion/deletion/insertion (or the opposite). To get around // this, reorder the idi patterns to iid (or did to idd). This // produces the same scoring alignment, however it is reordered so // that Picard / samtools accepts the alignments. // void Alignment::OrderGapsByType() { int g; // // Gaps at the beginning and end of the sequence are hard to deal // with. Just get rid of them. // RemoveEndGaps(); // // Start at 1 since the gaps at the beginning of the sequence are // removed. // for (g = 1; g < gaps.size(); g++ ) { if (gaps[g].size() <= 1) { continue; } Gap queryGap, targetGap; GapList condensedGapList; int gi; targetGap.seq = Gap::Target; queryGap.seq = Gap::Query; for (gi = 0; gi < gaps[g].size(); gi++) { if (gaps[g][gi].seq == Gap::Target) { targetGap.length += gaps[g][gi].length; } else { queryGap.length += gaps[g][gi].length; } } int nTypes = 0; gaps[g].clear(); int matchExtend = 0; if (targetGap.length > queryGap.length) { targetGap.length -= queryGap.length; gaps[g].push_back(targetGap); matchExtend = queryGap.length; } else if (queryGap.length > targetGap.length) { queryGap.length -= targetGap.length; gaps[g].push_back(queryGap); matchExtend = targetGap.length; } else { matchExtend = targetGap.length; } if (matchExtend > 0) { assert(g>0); blocks[g-1].length += matchExtend; } // // When targetGap.length == queryGap.length, there is no gap, so // just leave the gap list cleared. // } } // // Transform an alignment that has up to one long gap in it to a // block based alignment. void Alignment::LongGapArrowPathToAlignment( std::vector &optPath, DNALength lengthOfLongGap) { DNALength i; int numLongGaps = 0; // Input checking. // Only one long gap is allowed per alignment. Make sure this is // the case on the input. // for (i = 0; i < optPath.size(); i++) { if (optPath[i] == AffineLongDelLeft or optPath[i] == AffineLongDelClose) { numLongGaps++; } } if (numLongGaps > 1) { std::cout << "ERROR. Only one long gap per alignment is allowed." << std::endl; exit(1); } // // First locate the position of the gap. // Also, change the gap to a normal arrow. // DNALength indexOfLongGap; // undefined until one is found bool aLongGapWasFound = false; Arrow longGapArrow; // will hold the type of the long gap int numBlocksBeforeGap = 0; int indexOfLastMatchBeforeGap = 0; // Now locate both the type of type of the arrow, and the // position for (i = 0; i < optPath.size(); i++) { // // Count the number of blocks. This will tell us where to insert // the gap. // if ( i > 0 and optPath[i-1] == Diagonal and optPath[i] != Diagonal ) { numBlocksBeforeGap++; indexOfLastMatchBeforeGap = i; } // // Look for the gap. // if (optPath[i] == AffineLongDelLeft or optPath[i] == AffineLongDelClose) { aLongGapWasFound = true; longGapArrow = optPath[i]; indexOfLongGap = i; optPath[i] = Left; break; } } // // Next transform the path into an alignment that lacks the gap. // ArrowPathToAlignment(optPath); // // Finally, insert the gap into the block form of the alignment. // if (aLongGapWasFound and numBlocksBeforeGap < blocks.size()) { // Found a gap, add it. // First, find which gap corresponds to the long gap. This is // the hardest step. First, find how many arrow instructions // there are between the last block and the arrow. int numGapChars = indexOfLongGap - indexOfLastMatchBeforeGap + 1; int gi; // Define some variables for readability. int indexOfBlockBeforeGap; int gapIndex; gapIndex = numBlocksBeforeGap; assert(gapIndex < gaps.size()); // There must be at least one gap here (the long deletion) assert(gaps[gapIndex].size() > 0); int cumulativeGapLength = 0; bool indexOfGapFound = false; for (gi = 0; gi < gaps[gapIndex].size(); gi++) { cumulativeGapLength += gaps[gapIndex][gi].length; if (cumulativeGapLength >= numGapChars) { // Found the gap where the long deletion happened. // Make sure this is on a deletion. assert(gaps[gapIndex][gi].seq == Gap::Query); indexOfGapFound = true; break; } } assert(indexOfGapFound == true); // // Found the gap corresponding to the long deletion. // Now, add in the length of the long gap, taking into account // the fact that there is already one base used in the previous // accounting of the gap. gaps[gapIndex][gi].length += lengthOfLongGap - 1; // // Now fix the offsets of the positions of the rest of the // blocks in the sequence. // UInt b; for (b = numBlocksBeforeGap; b < blocks.size(); b++) { blocks[b].tPos += lengthOfLongGap - 1; } } } // // The length of the aligned sequence in the query. // DNALength Alignment::QEnd() { if (blocks.size() > 0) { return blocks[blocks.size()-1].QEnd(); } else { return 0; } } // // The lenght of the aligned sequence in the target. // DNALength Alignment::TEnd() { if (blocks.size() > 0) { return blocks[blocks.size()-1].TEnd(); } else { return 0; } } DNALength Alignment::GenomicTBegin() { return tPos; } DNALength Alignment::GenomicTEnd() { return tPos + TEnd(); } // // Some programs do not accept alignments that have gaps at their // ends. This is used to trim gaps at the ends of alignments (even // if the structure represents an acceptable alignment). // void Alignment::RemoveEndGaps() { if (gaps.size() > 0 and gaps[0].size() > 0) { int i; for (i = 0; i < gaps[0].size(); i++) { if (gaps[0][i].seq == Gap::Target) { qPos += gaps[0][i].length; } else { tPos += gaps[0][i].length; } } gaps[0].clear(); } if (gaps.size() > 1 ) { int lastGap = gaps.size() - 1; gaps[lastGap].clear(); } } MatchedAlignment& MatchedAlignment::Assign(MatchedAlignment &rhs) { ((Alignment*)(this))->Assign(rhs); refIndex = rhs.refIndex; readIndex = rhs.readIndex; tStart = rhs.tStart; tEnd = rhs.tEnd; qStart = rhs.qStart; qEnd = rhs.qEnd; tChromOffset = rhs.tChromOffset; return *this; } std::ostream& operator<<(std::ostream &out, const Block &b) { out << " q: " << b.qPos << " t: " << b.tPos << " len: " << b.length; return out; } Block& Block::Assign(Block &rhs) { qPos = rhs.qPos; tPos = rhs.tPos; length = rhs.length; return *this; } DNALength Block::QEnd() { return qPos + length; } DNALength Block::TEnd() { return tPos + length; } void Block::Clear() { qPos = tPos = length = 0; } Gap::Gap() { seq = Query; length = 0; } Gap::Gap(GapSeq seqP, int lengthP) { seq = seqP; length = lengthP; } blasr_libcpp-master/alignment/datastructures/alignment/Alignment.hpp000066400000000000000000000117421260756663100264640ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_HPP_ #define _BLASR_ALIGNMENT_HPP_ #include "Path.h" #include #include #include "DNASequence.hpp" #include "datastructures/alignment/AlignmentStats.hpp" namespace blasr { class Block { public: // // An alignment is a collection of blocks. The qPos and tPos in a block // is relative to the beginning of the alignment rather than the // target or query. // DNALength qPos, tPos, length; friend std::ostream &operator<<(std::ostream &out, const Block &b); Block& Assign(Block &rhs); DNALength QEnd(); DNALength TEnd(); void Clear(); }; class Gap { public: enum GapSeq {Query, Target}; GapSeq seq; int length; Gap(); Gap(GapSeq seqP, int lengthP); }; typedef std::vector GapList; class Alignment : public AlignmentStats { public: // the FASTA titles of each sequence std::string qName, tName; // Strands represented in the alignment, 0=forward, 1=reverse int qStrand, tStrand; // The starting pos in the text and query of the start of the // alignment, in the window that is matched. DNALength qPos, tPos; DNALength qAlignLength; DNALength tAlignLength; DNALength qLength; DNALength tLength; double probability; float zScore; float probScore; int sumQVScore; int nCells; int nSampledPaths; std::vector blocks; std::vector gaps; Alignment(); void CopyStats(Alignment &rhs); // // The position in the query is qPos + block[i].qPos // and the position in the text is tPos + block[i].tPos // void Clear(); Alignment& operator=(const Alignment &rhs); unsigned int size(); void Assign(Alignment &rhs); int ComputeNumAnchors(int minAnchorSize, int &nAnchors, int &nAnchorBases); void AllocateBlocks(int nBlocks); void AppendAlignmentGaps(Alignment &next, bool mergeFirst=false); void AppendAlignmentBlocks(Alignment &next, int qOffset = 0, int tOffset = 0); void AppendAlignment(Alignment &next); /* Transform the series of operations in an optimal dynamic programming path to a block representation of the alignment. Since it is possible to have an adjacent insertion and deletion, the gap blocks are tracked in addition to the match blocks. */ void ArrowPathToAlignment(std::vector &optPath); // // samtools / picard do not like the pattern // insertion/deletion/insertion (or the opposite). To get around // this, reorder the idi patterns to iid (or did to idd). This // produces the same scoring alignment, however it is reordered so // that Picard / samtools accepts the alignments. // void OrderGapsByType(); // // Transform an alignment that has up to one long gap in it to a // block based alignment. void LongGapArrowPathToAlignment(std::vector &optPath, DNALength lengthOfLongGap); // // The length of the aligned sequence in the query. // DNALength QEnd(); // // The lenght of the aligned sequence in the target. // DNALength TEnd(); DNALength GenomicTBegin(); DNALength GenomicTEnd(); // // Some programs do not accept alignments that have gaps at their // ends. This is used to trim gaps at the ends of alignments (even // if the structure represents an acceptable alignment). // void RemoveEndGaps(); }; // // This data structure holds two things: alignments, of course, and in addition // the coordinates of sequences that are successively refined in order to produce // the alignment. This is somewhat tricky when the target genome has been // transformed by some noise-reducing function phi(t). // // Before aligning a read, it is first mapped to the genome, or transformed // then mapped to the transformed genome. Because the mapping is inexact, the // region a read is mapped to is typically much larger than the read. // The coordinates of the mapped region are stored in tStart and tEnd // Alignments are performed in native nucleotide space (not transformed). // For now, the query is always qStart=0, qEnd = queryLength. // // When mapping a read to a set of concatenated chromosomes, each chromosome // has an offset into the file. Therefore though a sequence may be aligned // to a region starting at tStart, the relative offset into the chromosome // is tStart - tChromOffset. This is used when printing the coordinates of a match. // class MatchedAlignment : public Alignment { public: int refIndex; int readIndex; DNALength tStart, tEnd, qStart, qEnd; int tChromOffset; MatchedAlignment &Assign(MatchedAlignment &rhs); }; /* * Create a structure for storing the information output by compare sequences. * Namely, the two string representations of the alignment. */ class CompSeqAlignment : public Alignment { public: std::string tString, qString, alignString; }; } // namespace blasr #endif // _BLASR_ALIGNMENT_HPP_ blasr_libcpp-master/alignment/datastructures/alignment/AlignmentCandidate.cpp000066400000000000000000000014661260756663100302560ustar00rootroot00000000000000#include "AlignmentCandidate.hpp" int SortAlignmentPointersByScore::operator() (T_AlignmentCandidate *lhs, T_AlignmentCandidate* rhs) { if (lhs->score == rhs->score) { return lhs->tPos + lhs->tAlignedSeqPos < rhs->tPos + rhs->tAlignedSeqPos; } else { return lhs->score < rhs->score; } } int SortAlignmentPointersByMapQV::operator() (T_AlignmentCandidate *lhs, T_AlignmentCandidate* rhs) { if (lhs->mapQV == rhs->mapQV) { if (lhs->score == rhs->score) { return lhs->tPos + lhs->tAlignedSeqPos < rhs->tPos + rhs->tAlignedSeqPos; } else { return lhs->score < rhs->score; } } else { return lhs->mapQV > rhs->mapQV; } } blasr_libcpp-master/alignment/datastructures/alignment/AlignmentCandidate.hpp000066400000000000000000000314331260756663100302600ustar00rootroot00000000000000#ifndef _ALIGNMENT_ALIGNMENT_CANDIDATE_HPP_ #define _ALIGNMENT_ALIGNMENT_CANDIDATE_HPP_ #include "Alignment.hpp" #include "DNASequence.hpp" #include "FASTQSequence.hpp" template class AlignmentCandidate : public blasr::Alignment { private: void ReassignSequence(DNASequence &curSeq, bool curIsSubstring, DNASequence &newSeq) { // // If this sequence is in control of itself (it is not a substring // of anoter sequence), it should be freed here to avoid memory // leaks. // if (curIsSubstring == false) { curSeq.Free(); } curSeq.seq = newSeq.seq; curSeq.length = newSeq.length; } void ReassignSequence(FASTQSequence &curSeq, bool curIsSubstring, FASTQSequence &newSeq) { // // Free the current sequence with the same rules as above. // if (curIsSubstring == false) { curSeq.Free(); } curSeq.ReferenceSubstring(newSeq, 0, newSeq.length); } // TryReadingQVs is a helper function for ReadOptionalQVs. It checks if the // qvs that are supposed to be copied to a member of AlignmentCandidate are // in fact empty. If so, then don't substr or copy anything void TryReadingQVs(const std::string qvs, DNALength start, DNALength length, std::string *memberQVs) { if (qvs.size() == 0) { memberQVs->clear(); } else { *memberQVs = qvs.substr(start, length); } } public: T_TSequence tAlignedSeq; T_QSequence qAlignedSeq; std::string insertionQV, deletionQV, mergeQV, substitutionQV, deletionTag, substitutionTag; std::vector optionalQVNames; DNALength tAlignedSeqPos, qAlignedSeqPos; DNALength tAlignedSeqLength, qAlignedSeqLength; float pvalVariance, weightVariance, pvalNStdDev, weightNStdDev; int numSignificantClusters; int readIndex; // // [q/t]IsSubstring refers to whether or not the text or query // sequences are pointers into longer sequences. If they are, // then reassigning the target/query sequences just means // reassigning the seq and length values. If not, they occupy their // own space, and should have the same lifetime as the alignment // candidate object. // bool tIsSubstring, qIsSubstring; std::string tTitle, qTitle; float clusterScore, clusterWeight; // // For indexing into sequence index databases, tIndex stores which // target this match is from. // int tIndex; AlignmentCandidate&operator=(const AlignmentCandidate &rhs) { tAlignedSeq = rhs.tAlignedSeq; qAlignedSeq = rhs.qAlignedSeq; tAlignedSeqPos = rhs.tAlignedSeqPos; qAlignedSeqPos = rhs.qAlignedSeqPos; tAlignedSeqLength = rhs.tAlignedSeqLength; qAlignedSeqLength = rhs.qAlignedSeqLength; readIndex = rhs.readIndex; tIndex = rhs.tIndex; mapQV = rhs.mapQV; clusterScore = rhs.clusterScore; clusterWeight = rhs.clusterWeight; *((Alignment*)this) = ((Alignment&)rhs); pvalVariance = rhs.pvalVariance; pvalNStdDev = rhs.pvalNStdDev; weightVariance=rhs.weightVariance; weightNStdDev= rhs.weightNStdDev; insertionQV = rhs.insertionQV; deletionQV = rhs.deletionQV; substitutionQV = rhs.substitutionQV; mergeQV = rhs.mergeQV; substitutionTag = rhs.substitutionTag; deletionTag = rhs.deletionTag; return *this; } AlignmentCandidate() { /* * The default configuration of an alignment candidate is to have * the t and q sequences be substrings. This means that the * position of the substrings starts at 0 (no offset into a longer * string). */ tIsSubstring = true; qIsSubstring = true; tTitle = ""; qTitle = ""; tAlignedSeqPos = 0; qAlignedSeqPos = 0; tAlignedSeqLength = 0; qAlignedSeqLength = 0; tIndex = 0; readIndex = 0; mapQV = 50; clusterScore = 0; clusterWeight = 0; numSignificantClusters = 0; pvalVariance = pvalNStdDev = 0; weightVariance = weightNStdDev = 0; } void Print(std::ostream & out = std::cout) { out << "An AlignmentCandidate object (mapQV " << mapQV << ", clusterscore " << clusterScore << ", tTitle: " << tTitle << ", qTitle: " << qTitle << ")." << std::endl; out << " query: " << qTitle << ", " << "qName: " << qName << "," << "qStrand: " << qStrand << ", " << "qPos: " << qPos << ", " << "qLen: " << qLength << ", " << "qAlignLength: " << qAlignLength << ", " << "qAlignedSeqPos:" << qAlignedSeqPos << ", " << "qAlignedSeqLen:" << qAlignedSeqLength << std::endl << " target: " << tTitle << ", " << "tName: " << tName << "," << "tStrand: " << tStrand << ", " << "tPos: " << tPos << ", " << "tLen: " << tLength << ", " << "tAlignLength: " << tAlignLength << ", " << "tAlignedSeqPos:" << tAlignedSeqPos << ", " << "tAlignedSeqLen:" << tAlignedSeqLength << std::endl; tAlignedSeq.Print(out); } AlignmentCandidate(const AlignmentCandidate &rhs) { *this = rhs; } DNALength GenomicTBegin() { return tAlignedSeqPos + tPos; } DNALength GenomicTEnd() { return tAlignedSeqPos + tPos + TEnd(); } void GetQIntervalOnForwardStrand(int &qStart, int &qEnd) { GetQInterval(qStart, qEnd, true); } void GetQInterval(int &qStart, int &qEnd, bool useForwardStrand=false) { qStart = qEnd = 0; if (blocks.size() == 0) { return; } qStart = blocks[0].qPos + qAlignedSeqPos; qEnd = QEnd() + qAlignedSeqPos; if (useForwardStrand and qStrand == 1) { int forQEnd, forQStart; forQStart = qLength - qEnd; forQEnd = qLength - qStart; qStart = forQStart; qEnd = forQEnd; } } DNALength QAlignEnd() { return QEnd() + qPos + qAlignedSeqPos; } DNALength QAlignStart() { return qPos + qAlignedSeqPos; } DNALength TAlignStart() { return tPos + tAlignedSeqPos; } // Synonyms for T/QStart DNALength GetQBasesToStart() { return qPos + qAlignedSeqPos; } DNALength GetTBasesToStart() { return tPos + tAlignedSeqPos; } // ReadOptionalQVs populates the optional QV attributes of // AlignmentCandidate with values read from a vector. void ReadOptionalQVs(const std::vector& optionalQVs, DNALength start, DNALength length) { TryReadingQVs(optionalQVs[0], start, length, &insertionQV); TryReadingQVs(optionalQVs[1], start, length, &deletionQV); TryReadingQVs(optionalQVs[2], start, length, &substitutionQV); TryReadingQVs(optionalQVs[3], start, length, &mergeQV); TryReadingQVs(optionalQVs[4], start, length, &substitutionTag); TryReadingQVs(optionalQVs[5], start, length, &deletionTag); } // CopyQVs fills a vector with optional QV attributes. void CopyQVs(std::vector *optionalQVs) { optionalQVNames.clear(); optionalQVs->clear(); optionalQVs->push_back(insertionQV); optionalQVNames.push_back("InsertionQV"); optionalQVs->push_back(deletionQV); optionalQVNames.push_back("DeletionQV"); optionalQVs->push_back(substitutionQV); optionalQVNames.push_back("SubstitutionQV"); optionalQVs->push_back(mergeQV); optionalQVNames.push_back("MergeQV"); optionalQVs->push_back(substitutionTag); optionalQVNames.push_back("SubstitutionTag"); optionalQVs->push_back(deletionTag); optionalQVNames.push_back("DeletionTag"); } void AppendAlignment(AlignmentCandidate &next) { // // If the next alignment is empty, just return now. // if (next.blocks.size() == 0) { return; } // // It is necessary to determine how much after the first alignment // the second alignment starts, in order to assert(GetTBasesToStart() <= next.GetTBasesToStart()); assert(GetQBasesToStart() <= next.GetQBasesToStart()); assert(GetTBasesToStart() + TEnd() <= next.GetTBasesToStart()); assert(GetQBasesToStart() + QEnd() <= next.GetQBasesToStart()); // // qOffset is the offset of the frame of reference for the 'next' // alignment relative to this one. If the frame of reference is // the same (qOffset == 0 and tOffset == 0), then the alignment // blocks may simply be appended. If it is non zero, then the // location in the query or target where the alignment has started // is different, and the values of qPos or tPos need to be // adjusted accordingly. DNALength qOffset = next.qPos + next.qAlignedSeqPos - qPos - qAlignedSeqPos; DNALength tOffset = next.tPos + next.tAlignedSeqPos - tPos - tAlignedSeqPos; DNALength origQEnd = QEnd(); DNALength origTEnd = TEnd(); /* DNALength tGap = next.GetTBasesToStart() + next.blocks[0].tPos - (GetTBasesToStart() + TEnd()); DNALength qGap = next.GetQBasesToStart() + next.blocks[0].qPos - (GetQBasesToStart() + QEnd()); */ DNALength tGap = next.GetTBasesToStart() - (GetTBasesToStart() + TEnd()); DNALength qGap = next.GetQBasesToStart() - (GetQBasesToStart() + QEnd()); // if ( gaps.size() > 0 and next.gaps.size() > 0 ) { // // Determine the gap between the two alignments in order to assign // the gap between them. DNALength commonGap = 0; DNALength gapDiff = 0; if (tGap >= qGap) { gapDiff = tGap - qGap; commonGap = tGap - gapDiff; tGap = gapDiff; qGap = 0; } else { gapDiff = qGap - tGap; commonGap = qGap - gapDiff; qGap = gapDiff; tGap = 0; } if (commonGap > 0) { // There is some portion of sequence between the two alignments // that is a common gap. Add a block representing this. blasr::Block block; block.qPos = origQEnd; block.tPos = origTEnd; block.length = commonGap; blocks.push_back(block); blasr::GapList emptyGap; gaps.push_back(emptyGap); } blasr::GapList endGapList; // // When gapDiff == 0, an empty list is appended. // if (next.gaps.size() > 0) { // // The first gap in the next alignment is already handled by // the gap created with the endGap. So get rid of the first // gaps. // next.gaps[0].resize(0); static const bool mergeFirstGap = true; AppendAlignmentGaps(next); } } // // Finally append all the blocks. // AppendAlignmentBlocks(next, qOffset, tOffset); } void FreeSubsequences() { if (tIsSubstring == false) { tAlignedSeq.Free(); } if (qIsSubstring == false) { qAlignedSeq.Free(); } } void ReassignTSequence(DNASequence &newSeq) { ReassignSequence(tAlignedSeq, tIsSubstring, newSeq); } template void ReassignQSequence(T_Sequence &newSeq) { ReassignSequence(qAlignedSeq, qIsSubstring, newSeq); } ~AlignmentCandidate() { qAlignedSeq.Free(); tAlignedSeq.Free(); } }; // // Define a default alignment candidate for aligning quality-sequence // to a reference without quality. // typedef AlignmentCandidate T_AlignmentCandidate; class SortAlignmentPointersByScore { public: /// Sort AlignmentCandidate pointer by score, then by target position. int operator()(T_AlignmentCandidate *lhs, T_AlignmentCandidate* rhs); }; class SortAlignmentPointersByMapQV { public: /// Sort AlignmentCandidate pointer by mapQV, then by target position. int operator()(T_AlignmentCandidate *lhs, T_AlignmentCandidate* rhs); }; #endif // _ALIGNMENT_ALIGNMENT_CANDIDATE_HPP_ blasr_libcpp-master/alignment/datastructures/alignment/AlignmentContext.cpp000066400000000000000000000013271260756663100300220ustar00rootroot00000000000000#include "AlignmentContext.hpp" AlignmentContext::AlignmentContext() { isPrimary = true; subreadIndex = 0; isFinal = true; nextSubreadPos = 0; hasNextSubreadPos = false; numProperlyAlignedSubreads = 0; allSubreadsProperlyAligned = false; nSubreads = 0; nextSubreadDir = 0; rNext = ""; readGroupId = ""; chipId = ""; alignMode = NoAlignMode; editDist = 0; } bool AlignmentContext::IsFirst() { return subreadIndex == 0; } bool AlignmentContext::IsLast() { return subreadIndex == nSubreads-1; } bool AlignmentContext::AllSubreadsAligned() { if (numProperlyAlignedSubreads == nSubreads) { return true; } else { return false; } } blasr_libcpp-master/alignment/datastructures/alignment/AlignmentContext.hpp000066400000000000000000000012141260756663100300220ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_CONTEXT_HPP_ #define _BLASR_ALIGNMENT_CONTEXT_HPP_ #include #include "Enumerations.h" class AlignmentContext { public: bool isPrimary; int subreadIndex; int numProperlyAlignedSubreads; bool allSubreadsProperlyAligned; bool isFinal; int nextSubreadPos; int nextSubreadDir; bool hasNextSubreadPos; int nSubreads; std::string rNext; std::string readGroupId; std::string chipId; AlignMode alignMode; int editDist; AlignmentContext(); bool IsFirst(); bool IsLast(); bool AllSubreadsAligned(); }; #endif // _BLASR_ALIGNMENT_CONTEXT_HPP_ blasr_libcpp-master/alignment/datastructures/alignment/AlignmentGapList.h000066400000000000000000000005741260756663100274110ustar00rootroot00000000000000#ifndef DATASTRUCTURES_ALIGNMENT_GAP_LIST_H_ #define DATASTRUCTURES_ALIGNMENT_GAP_LIST_H_ #include using namespace std; class Gap { public: enum GapSeq {Query, Target}; GapSeq seq; int length; Gap() { seq = Query; length = 0; } Gap(GapSeq seqP, int lengthP) { seq = seqP; length = lengthP; } }; typedef vector GapList; #endif blasr_libcpp-master/alignment/datastructures/alignment/AlignmentMap.cpp000066400000000000000000000012201260756663100271030ustar00rootroot00000000000000#include #include #include "AlignmentMap.hpp" using namespace std; void CreateSequenceToAlignmentMap(const string & alignedSequence, vector & baseToAlignmentMap) { baseToAlignmentMap.resize(alignedSequence.size()); int alignedPos, unalignedPos; for (alignedPos=0, unalignedPos=0; alignedPos < alignedSequence.size(); alignedPos++) { if (not (alignedSequence[alignedPos] == ' ' or alignedSequence[alignedPos] == '-')) { baseToAlignmentMap[unalignedPos] = alignedPos; unalignedPos++; } } baseToAlignmentMap.resize(unalignedPos); } blasr_libcpp-master/alignment/datastructures/alignment/AlignmentMap.hpp000066400000000000000000000006221260756663100271150ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_MAP_HPP_ #define _BLASR_ALIGNMENT_MAP_HPP_ #include class AlignmentMap { public: int qPos, tPos; std::vector alignPos; }; // Build a map of positions from (unaligned) bases to an aligned sequence void CreateSequenceToAlignmentMap(const std::string & alignedSequence, std::vector & baseToAlignmentMap); #endif // _BLASR_ALIGNMENT_MAP_HPP_ blasr_libcpp-master/alignment/datastructures/alignment/AlignmentStats.cpp000066400000000000000000000012371260756663100274740ustar00rootroot00000000000000#include "AlignmentStats.hpp" using namespace blasr; AlignmentStats::AlignmentStats() { nMatch = nMismatch = nIns = nDel = 0; pctSimilarity = 0.0; mapQV = 0; score = 0; } AlignmentStats& AlignmentStats::Assign(const AlignmentStats &rhs) { nMatch = rhs.nMatch; nMismatch = rhs.nMismatch; nIns = rhs.nIns; nDel = rhs.nDel; pctSimilarity = rhs.pctSimilarity; score = rhs.score; return *this; } AlignmentStats& AlignmentStats::operator=(const AlignmentStats &rhs) { Assign(rhs); return *this; } void AlignmentStats::CopyStats(AlignmentStats rhs) { *this = rhs; } blasr_libcpp-master/alignment/datastructures/alignment/AlignmentStats.hpp000066400000000000000000000007441260756663100275030ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_STATS_HPP_ #define _BLASR_ALIGNMENT_STATS_HPP_ namespace blasr { class AlignmentStats { public: int nMatch; int nMismatch; int nIns; int nDel; float pctSimilarity; int score; int mapQV; AlignmentStats(); AlignmentStats &Assign(const AlignmentStats &rhs); AlignmentStats& operator=(const AlignmentStats &rhs); void CopyStats(AlignmentStats rhs); }; } #endif // _BLASR_ALIGNMENT_STATS_HPP_ blasr_libcpp-master/alignment/datastructures/alignment/ByteAlignment.h000066400000000000000000000304721260756663100267510ustar00rootroot00000000000000#ifndef DATASTRUCTURES_ALIGNMENT_BYTE_ALIGNMENT_H_ #define DATASTRUCTURES_ALIGNMENT_BYTE_ALIGNMENT_H_ #include #include "algorithms/alignment/AlignmentUtils.hpp" #include "DNASequence.hpp" using namespace std; /* * These arrays are for going from the HDF byte alignment format to characters, or * from characters to the upper or lower nybble for translating from character * alignments to byte alignments. */ typedef vector ByteAlignment; static char QueryChar[256] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', //0 ' ', ' ', ' ', ' ', ' ', ' ', 'A', 'A', 'A', 'A', //10 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', // 20 'A', 'A', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', // 30 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', ' ', ' ', // 40 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 50 ' ', ' ', ' ', ' ', 'G', 'G', 'G', 'G', 'G', 'G', // 60 'G', 'G', 'G', 'G', 'G', 'G', 'G', 'G', 'G', 'G', // 70 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 80 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 90 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 100 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 110 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'T', 'T', // 120 'T', 'T', 'T', 'T', 'T', 'T', 'T', 'T', 'T', 'T', // 130 'T', 'T', 'T', 'T', ' ', ' ', ' ', ' ', ' ', ' ', // 140 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 150 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 160 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 170 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 180 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 190 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 200 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 210 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 220 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 230 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', // 240 'N', 'N', 'N', 'N', 'N', 'N' // 250 }; static char RefChar[256] = { ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', 'N', ' ', 'A', 'C', ' ', 'G', ' ', ' ', ' ', 'T', ' ', ' ', ' ', ' ', ' ', ' ', ' '}; static unsigned char RefAlignmentByte[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static unsigned char QueryAlignmentByte[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; void MakeReverseComplementByteAlignment(const unsigned char *byteAlignment, UInt length, unsigned char *byteAlignmentRC) { unsigned char q,t; int i; for (i = 0; i < length; i++) { if (QueryChar[byteAlignment[i]] == ' ') { q = ' '; } else { q = ReverseComplementNuc[QueryChar[byteAlignment[i]]]; } if (RefChar[byteAlignment[i]] == ' ') { t = ' '; } else { t = ReverseComplementNuc[RefChar[byteAlignment[i]]]; } byteAlignmentRC[length - i - 1] = QueryAlignmentByte[q] + RefAlignmentByte[t]; } } void ByteAlignmentToQueryString(const unsigned char* byteAlignment, UInt length, char* charAlignment) { int i; for (i = 0; i < length; i++) { charAlignment[i] = QueryChar[byteAlignment[i]]; } } void ByteAlignmentToRefString(const unsigned char* byteAlignment, UInt length, char* charAlignment) { int i; for (i = 0; i < length; i++) { charAlignment[i] = RefChar[byteAlignment[i]]; } } void RemoveGaps(string &gappedStr, string &ungappedStr) { ungappedStr = gappedStr; int i, i2; i = i2 = 0; for (i = 0; i < ungappedStr.size(); i++ ){ if (ungappedStr[i] != ' ') { ungappedStr[i2] = ungappedStr[i]; i2++; } } ungappedStr.resize(i2); } void GappedStringsToAlignment(string &gappedQuery, string &gappedRef, Alignment &alignment) { int qPos = 0, rPos = 0; int i = 0; // position in alignment string while (i < gappedQuery.size()) { while (i < gappedQuery.size() and (gappedQuery[i] == ' ' or gappedRef[i] == ' ')) { if (gappedQuery[i] != ' ') { qPos++; } if (gappedRef[i] != ' ') { rPos++; } i++; } int queryBlockStart, queryBlockEnd, refBlockStart, refBlockEndl; Block b; b.qPos = qPos; b.tPos = rPos; while (i < gappedQuery.size() and gappedQuery[i] != ' ' and gappedRef[i] != ' ') { i++; qPos++; rPos++; } b.length = qPos - b.qPos; alignment.blocks.push_back(b); } } void ByteAlignmentToAlignment(vector &byteAlignment, Alignment &alignment) { string readSequence, refSequence; readSequence.resize(byteAlignment.size()); refSequence.resize(byteAlignment.size()); ByteAlignmentToQueryString(&byteAlignment[0], byteAlignment.size(), &readSequence[0]); ByteAlignmentToRefString(&byteAlignment[0], byteAlignment.size(), &refSequence[0]); GappedStringsToAlignment(readSequence, refSequence, alignment); } void AlignmentToByteAlignment(Alignment &alignment, DNASequence &querySeq, DNASequence &refSeq, vector &byteAlignment) { string refStr, alignStr, queryStr; CreateAlignmentStrings(alignment, querySeq, refSeq, refStr, alignStr, queryStr); byteAlignment.resize(refStr.size()); int i; for (i = 0; i < refStr.size(); i++) { byteAlignment[i] = RefAlignmentByte[refStr[i]] + QueryAlignmentByte[queryStr[i]]; } } bool IsMatch(vector &byteAlignment, int i) { if (QueryChar[byteAlignment[i]] != ' ' and RefChar[byteAlignment[i]] != ' ' and (QueryChar[byteAlignment[i]] == RefChar[byteAlignment[i]])) { return true; } else { return false; } } void CountStats(vector &byteAlignment, int &nMatch, int &nMismatch, int &nIns, int &nDel, int start=0, int end=-1) { int i; if (end == -1) { end = byteAlignment.size(); } nMatch = nMismatch = nIns = nDel = 0; for (i = start; i < end; i++) { if (QueryChar[byteAlignment[i]] == ' ') { nDel++; } else if (RefChar[byteAlignment[i]] == ' ') { nIns++; } else if (RefChar[byteAlignment[i]] != QueryChar[byteAlignment[i]]) { nMismatch++; } else { nMatch++; } } } int CountBasesInReference(vector &byteAlignment) { int i; int nBases = 0; for (i = 0; i < byteAlignment.size(); i++) { if (RefChar[byteAlignment[i]] != ' ') { nBases++; } } return nBases; } int CountBasesInQuery(vector &byteAlignment) { int i; int nBases = 0; for (i = 0; i < byteAlignment.size(); i++) { if (QueryChar[byteAlignment[i]] != ' ') { nBases++; } } return nBases; } int CountNMatches(vector &byteAlignment) { int nMatches = 0; int i; for (i = 0; i < byteAlignment.size(); i++) { if (IsMatch(byteAlignment, i)) { nMatches++; } } return nMatches; } float ComputePacBioAccuracy(vector &byteAlignment) { int m, mm, i, d; CountStats(byteAlignment, m, mm, d, i); int readLength = CountBasesInQuery(byteAlignment); return 1 - (1.0*mm + d + i)/readLength; } float ComputePercentIdentity(vector &byteAlignment) { int i; int nMatch = CountNMatches(byteAlignment); return (1.0*nMatch) / byteAlignment.size(); } void CreateSequenceToAlignmentMap(vector &byteAlignment, vector &baseToAlignmentMap) { int alignPos, ungappedAlignPos; int alignmentLength = byteAlignment.size(); baseToAlignmentMap.resize(alignmentLength); for (ungappedAlignPos = 0, alignPos = 0; alignPos < alignmentLength; alignPos++) { if (QueryChar[byteAlignment[alignPos]] != ' ') { baseToAlignmentMap[ungappedAlignPos] = alignPos; ++ungappedAlignPos; } } baseToAlignmentMap.resize(ungappedAlignPos); } void CreateAlignmentToSequenceMap(vector &byteAlignment, vector &alignmentToBaseMap) { int alignPos, ungappedAlignPos; int alignmentLength = byteAlignment.size(); alignmentToBaseMap.resize(alignmentLength); for (ungappedAlignPos = 0, alignPos = 0; alignPos < alignmentLength; alignPos++) { if (QueryChar[byteAlignment[alignPos]] != ' ') { alignmentToBaseMap[alignPos] = ungappedAlignPos; ++ungappedAlignPos; } } } #endif blasr_libcpp-master/alignment/datastructures/alignment/CmpFile.cpp000066400000000000000000000002641260756663100260550ustar00rootroot00000000000000#include "CmpFile.hpp" void CmpFile::StoreReadType(std::string &readTypeStringP) { readTypeString = readTypeStringP; readType = ReadType::ParseReadType(readTypeString); } blasr_libcpp-master/alignment/datastructures/alignment/CmpFile.hpp000066400000000000000000000014201260756663100260550ustar00rootroot00000000000000#ifndef _BLASR_CMP_FILE_HPP_ #define _BLASR_CMP_FILE_HPP_ #include "reads/ReadType.hpp" #include "datastructures/alignment/CmpIndexedStringTable.h" #include "saf/AlnGroup.hpp" #include "saf/AlnInfo.hpp" #include "saf/RefGroup.hpp" #include "saf/RefInfo.hpp" #include "saf/MovieInfo.hpp" #include "Enumerations.h" #include class CmpFile { public: int lastRow; std::string readTypeString, index, version, commandLine; ReadType::ReadTypeEnum readType; void StoreReadType(std::string &readTypeStringP); CmpIndexedStringTable readGroupTable, movieNameTable, refSeqTable; vector colNames; PlatformId platformId; AlnGroup alnGroup; AlnInfo alnInfo; RefGroup refGroup; RefInfo refInfo; MovieInfo movieInfo; }; #endif blasr_libcpp-master/alignment/datastructures/alignment/CmpIndexedStringTable.h000066400000000000000000000026041260756663100303620ustar00rootroot00000000000000#ifndef DATASTRUCTURES_ALIGNMENT_CMP_INDEXED_STRING_TABLE_H_ #define DATASTRUCTURES_ALIGNMENT_CMP_INDEXED_STRING_TABLE_H_ #include #include #include using namespace std; class CmpIndexedStringTable { public: void resize(int size) { names.resize(size); ids.resize(size); } void StoreArrayIndexMap() { int i; for (i = 0; i < ids.size(); i++) { idToArrayIndex[ids[i]] = i; } } // // The terminology of Index here is confusing. // Actually 'Index' is equivalent to 'id'. // Each id represents index of an indexed string. // That's why an id is called an 'Index' in this function. // GetNameAtIndex returns name of an indexed string, // whose index is the given value // bool GetNameAtIndex(int index, string &name) { map::iterator mapIt; mapIt = idToArrayIndex.find(index); if (mapIt != idToArrayIndex.end()) { name = names[mapIt->second]; return true; } else { return false; } } // // Here 'Id' means indexes of indexed strings, // 'Index' means index of an 'Id' in ids // bool GetIndexOfId(int id, int &index) { map::iterator mapIt; mapIt = idToArrayIndex.find(id); if (mapIt != idToArrayIndex.end()) { index = mapIt->second; return true; } else { return false; } } vector ids; vector names; map idToArrayIndex; }; #endif blasr_libcpp-master/alignment/datastructures/alignment/CmpReadGroupTable.h000066400000000000000000000006121260756663100275000ustar00rootroot00000000000000#ifndef DATASTRUCTURES_ALIGNMENT_CMP_READ_GROUP_TABLE_H_ #define DATASTRUCTURES_ALIGNMENT_CMP_READ_GROUP_TABLE_H_ #include #include using namespace std; class CmpReadGroupTable { public: void resize(int size) { readGroupNameIds.resize(size); readGroupNames.resize(size); } vector readGroupNameIds; vector readGroupNames; int lastRow; }; #endif blasr_libcpp-master/alignment/datastructures/alignment/CmpRefSeqTable.h000066400000000000000000000005621260756663100270010ustar00rootroot00000000000000#ifndef DATASTRUCTURES_ALIGNMENT_CMP_REF_SEQ_TABLE_H_ #define DATASTRUCTURES_ALIGNMENT_CMP_REF_SEQ_TABLE_H_ #include #include using namespace std; class CmpRefSeqTable { public: void resize(int size) { refSeqNameIds.resize(size); refSeqNames.resize(size); } vector refSeqNameIds; vector refSeqNames; int lastRow; }; #endif blasr_libcpp-master/alignment/datastructures/alignment/FilterCriteria.cpp000066400000000000000000000336601260756663100274540ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: FilterCriteria.h * * Description: Criteria for filtering alignment hits. * * Version: 1.0 * Created: 04/14/2015 11:33:00 AM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "FilterCriteria.hpp" constexpr float Score::errorunit; Score::Score(const float & value, const ScoreSign & sign) : _value(value) , _sign(sign) { } Score::Score(const Score & another) : _value(another._value) , _sign(another._sign) { } Score::~Score() { } float Score::Value() const { return _value; } ScoreSign Score::Sign() const { return _sign; } bool Score::operator == (const Score & another) const { return (another.Value() - this->_value < errorunit and another.Value() - this->_value > -errorunit); } bool Score::BetterThan(const Score & another) const { if (this->_value == another.Value()) return false; if (this->_sign == ScoreSign::POSITIVE) return (this->_value > another.Value()); else return (this->_value < another.Value()); } bool Score::BetterThanOrEqual(const Score & another) const { return BetterThan(another) or ((*this) == another); } bool Score::WorseThan(const Score & another) const { return (not BetterThanOrEqual(another)); } /// ----------------------------------------- /// HitPolicy /// ----------------------------------------- HitPolicy::HitPolicy(const std::string & hitPolicyStr, const ScoreSign & sign) { // Create a multiple hit policy. std::string str(hitPolicyStr); std::transform(str.begin(), str.end(), str.begin(), ::toupper); if (str == "RANDOM") { _hit = HitPolicyEnum::RANDOM; } else if (str == "ALL") { _hit = HitPolicyEnum::ALL; } else if (str == "ALLBEST") { _hit = HitPolicyEnum::ALLBEST; } else if (str == "RANDOMBEST") { _hit = HitPolicyEnum::RANDOMBEST; } else if (str == "LEFTMOST") { _hit = HitPolicyEnum::LEFTMOST; } else { std::cout <<"ERROR, the specified multiple hit policy " << hitPolicyStr <<" is not supported." << std::endl; exit(1); } _sign = sign; } HitPolicy::~HitPolicy(void) { } ScoreSign HitPolicy::Sign() const { return _sign; } bool HitPolicy::IsRandom() const { return _hit == HitPolicyEnum::RANDOM; } bool HitPolicy::IsRandombest() const { return _hit == HitPolicyEnum::RANDOMBEST; } bool HitPolicy::IsAll() const {return _hit == HitPolicyEnum::ALL; } bool HitPolicy::IsAllbest() const {return _hit == HitPolicyEnum::ALLBEST; } bool HitPolicy::IsLeftmost() const {return _hit == HitPolicyEnum::LEFTMOST; } const std::string HitPolicy::ToString() const { switch (_hit) { case (HitPolicyEnum::RANDOM) : return "random"; case (HitPolicyEnum::RANDOMBEST): return "randombest"; case (HitPolicyEnum::ALL) : return "all"; case (HitPolicyEnum::ALLBEST) : return "allbest"; case (HitPolicyEnum::LEFTMOST) : return "leftmost"; default: { assert(false); } } } std::ostream & HitPolicy::operator << (std::ostream & os) { return os << this->ToString(); } const std::string HitPolicy::Help(const std::string & pad) const{ std::stringstream ss; ss << "(" << this->ToString() << ") Specify a policy to treat multiple hits from " << "[all, allbest, random, randombest, leftmost]\n" << pad << " all : report all alignments.\n" << pad << " allbest : report all equally top scoring alignments.\n" << pad << " random : report a random alignment.\n" << pad << " randombest: report a random alignment from multiple " << "equally top scoring alignments.\n" << pad << " leftmost : report an alignment which has the best alignment" << "score and has the smallest mapping coordinate in any reference."; return ss.str(); } std::vector HitPolicy::Apply(const std::vector alnPtrs, const bool & createRand, const int & passedRand) const { // Shallow copy pointers. if (alnPtrs.empty() or IsAll()) return alnPtrs; int rint = createRand?rand():passedRand; if (IsRandom()) { return std::vector({alnPtrs[rint%alnPtrs.size()]}); } std::vector ret = alnPtrs; // Sort AlignmentCandidate pointers according to score and target start position. ScoreSign sign = this->Sign(); std::sort(ret.begin(), ret.end(), SortAlignmentPointersByScore()); // Get the best alignments whose alignment scores are the best. // Assume that input alignments share the same query name and // are sorted by score and tPos asscendingly: worst, ...., best int bestScore = ret[0]->score; ret.erase(std::remove_if(ret.begin(), ret.end(), [&bestScore](const T_AlignmentCandidate* x)->bool{return x->score != bestScore;}), ret.end()); if (IsAllbest()) { return ret; } else if (IsRandombest()) { return std::vector({ret[rint%ret.size()]}); } else if (IsLeftmost()) { return std::vector({ret[0]}); } else { assert("Unsupported hit policy" == 0); } } /* std::vector> HitPolicy::Apply(std::vector> & records) const { if (records.empty() or IsALL()) return; sort(records.begin(), records.end(), compareByQNameScoreTStart); assert(records.size() > 0); if (IsRandom) { //records = vector({records[ } } */ #ifdef USE_PBBAM bool HitPolicy::compareByQNameScoreTStart(const PacBio::BAM::BamRecord & a, const PacBio::BAM::BamRecord & b) const { assert(a.Impl().HasTag(AS) and b.Impl().HasTag(AS)); const int aScore = a.Impl().TagValue(AS).ToInt32(); const int bScore = b.Impl().TagValue(AS).ToInt32(); if (a.FullName() == b.FullName()) { if (aScore == bScore) return a.ReferenceStart() < b.ReferenceEnd(); return Score(aScore, _sign).WorseThan(Score(bScore, _sign)); } return (a.FullName() < b.FullName()); } bool HitPolicy::compareByScoreTStart(const PacBio::BAM::BamRecord & a, const PacBio::BAM::BamRecord & b) const { assert(a.Impl().HasTag(AS) and b.Impl().HasTag(AS)); assert(a.FullName() == b.FullName()); const int aScore = a.Impl().TagValue(AS).ToInt32(); const int bScore = b.Impl().TagValue(AS).ToInt32(); if (aScore == bScore) return a.ReferenceStart() < b.ReferenceEnd(); return Score(aScore, _sign).WorseThan(Score(bScore, _sign)); } std::vector HitPolicy::Apply(const std::vector & records, const bool & createRand, const int & passedRand) const { if (records.empty() or IsAll()) return records; int rint = createRand?rand():passedRand; //cout << "FilterCriteria " << ", " << records[0].FullName() << ", " << rint << endl; if (IsRandom()) { return std::vector({records[rint%records.size()]}); } std::vector ret = records; // Sort bam records according to score and target start position. ScoreSign sign = this->Sign(); std::sort(ret.begin(), ret.end(), [&sign](const PacBio::BAM::BamRecord & a, const PacBio::BAM::BamRecord & b)->bool { assert(a.Impl().HasTag(AS) and b.Impl().HasTag(AS)); assert(a.FullName() == b.FullName()); const int aScore = a.Impl().TagValue(AS).ToInt32(); const int bScore = b.Impl().TagValue(AS).ToInt32(); if (aScore == bScore) return a.ReferenceStart() < b.ReferenceEnd(); else return Score(aScore, sign).WorseThan(Score(bScore, sign)); }); // Get the best alignments whose alignment scores are the best. // Assume that input alignments share the same query name and // are sorted by score and tPos asscendingly: worst, ...., best int bestScore = ret[0].Impl().TagValue(AS).ToInt32(); ret.erase(std::remove_if(ret.begin(), ret.end(), [&bestScore](const PacBio::BAM::BamRecord & x)->bool{return x.Impl().TagValue(AS).ToInt32() != bestScore;}), ret.end()); if (IsAllbest()) { return ret; } else if (IsRandombest()) { return std::vector({ret[rint%ret.size()]}); } else if (IsLeftmost()) { return std::vector({ret[0]}); } else { assert("Unsupported hit policy" == 0); } } #endif /// ----------------------------------------- /// FilterCriteria /// ----------------------------------------- FilterCriteria::FilterCriteria(const DNALength & minAlnLength, const float & minPctSimilarity, const float & minPctAccuracy, const bool & useScore, const Score & score) : _minAlnLength(minAlnLength) , _minPctSimilarity(minPctSimilarity) , _minPctAccuracy(minPctAccuracy) , _useScore(useScore) , _scoreCutoff(score) , _verbose(false) { } FilterCriteria::~FilterCriteria(void) { } /* const std::string FilterCriteria::Help(const std::string & pad) { return std::string (pad + minAlnLengthHelp() + pad + minPctSimilarityHelp() + pad + minPctAccuracyHelp() + pad + scoreSignHelp() + pad + scoreCutoffHelp()); }*/ const std::string FilterCriteria::MinAlnLengthHelp() { return std::string("(") + std::to_string(_minAlnLength) + ") " + "Report alignments only if their lengths are greater than minAlnLength."; } const std::string FilterCriteria::MinPctSimilarityHelp() { return std::string("(") + std::to_string(static_cast(_minPctSimilarity)) + ") " + "Report alignments only if their percentage similairty is greater than minPctSimilarity."; } const std::string FilterCriteria::MinPctAccuracyHelp() { return std::string("(") + std::to_string(static_cast(_minPctAccuracy)) + ") " + "Report alignments only if their percentage accuray is greater than minAccuracy."; } const std::string FilterCriteria::ScoreSignHelp() { return "(-1) Whether higher or lower scores are better. -1: lower is better; 1: higher is better."; } const std::string FilterCriteria::ScoreCutoffHelp() { return "(INF) Report alignments only if their scores are no worse than score cut off."; } bool FilterCriteria::MakeSane(std::string & errMsg) const{ if (_minPctSimilarity > 100 or _minPctSimilarity < 0) { errMsg = "ERROR, minimum similarity not in [0, 100]."; return false; } if (_minPctAccuracy > 100 or _minPctAccuracy < 0) { errMsg = "ERROR, minimum accuracy not in [0, 100]."; return false; } return true; } void FilterCriteria::Verbose(bool verbose) { _verbose = verbose; } /* template bool FilterCriteria::Satisfy(AlignmentCandidate & a) const; //bool FilterCriteria::Satisfy(AlignmentCandidate<> & a) const { float pctAccuracy = 100 * a.nMatch / static_cast(a.nMismatch + a.nMatch + a.nIns + a.nDel); Score s(a.score, _scoreCutoff.Sign()); return Satisfy(a.qAlignedSeqLength, a.pctSimilarity, pctAccuracy, s); } */ bool FilterCriteria::Satisfy(const DNALength & alnLength, const float & pctSimilarity, const float & pctAccuracy, const Score & score) const { if (alnLength < _minAlnLength) { if (_verbose > 0) std::cout << "Alignment length " << alnLength << " is too short." << std::endl; return false; } if (pctSimilarity < _minPctSimilarity) { if (_verbose > 0) std::cout << "Percentage similarity " << pctSimilarity << " is too low." << std::endl; return false; } if (pctAccuracy < _minPctAccuracy) { if (_verbose > 0) std::cout << "Percentage accuracy " << pctAccuracy << " is too low." << std::endl; return false; } if (_useScore and not score.BetterThanOrEqual(_scoreCutoff)) { if (_verbose) std::cout << "Alignment score " << score.Value() << " worse than cut off." << std::endl; return false; } return true; } #ifdef USE_PBBAM bool FilterCriteria::Satisfy(const PacBio::BAM::BamRecord & record) const { assert(record.IsMapped() and record.Impl().HasTag(AS)); DNALength alnLength = static_cast(record.Sequence(PacBio::BAM::Orientation::NATIVE, true, true).size()); PacBio::BAM::Cigar cigar = record.CigarData(); uint32_t nMatch = 0, nMismatch = 0, nIns = 0, nDel = 0; for(auto op: cigar) { uint32_t n = op.Length(); switch (op.Type()) { case PacBio::BAM::CigarOperationType::SEQUENCE_MATCH: nMatch += n; break; case PacBio::BAM::CigarOperationType::SEQUENCE_MISMATCH: nMismatch += n; break; case PacBio::BAM::CigarOperationType::ALIGNMENT_MATCH: nMismatch += n; break; case PacBio::BAM::CigarOperationType::INSERTION: nIns += n; break; case PacBio::BAM::CigarOperationType::DELETION: nDel += n; break; default: break; } } //TODO: Use = X instead of M in blasr. float pctSimilarity = 100 * nMatch / static_cast(alnLength); float pctAccuracy = 100 * nMatch / static_cast(nMismatch + nMatch + nIns + nDel); Score s(static_cast(record.Impl().TagValue("AS").ToInt32()), ScoreSign::NEGATIVE); return Satisfy(alnLength, pctSimilarity, pctAccuracy, s); } #endif blasr_libcpp-master/alignment/datastructures/alignment/FilterCriteria.hpp000066400000000000000000000122671260756663100274610ustar00rootroot00000000000000#ifndef _BLASR_FILTER_CRITERIA_HPP_ #define _BLASR_FILTER_CRITERIA_HPP_ #include #include #include #include // transform #include // toupper #include "AlignmentCandidate.hpp" /// POSITIVE - larger score value is better. /// NEGATIVE - smaller score value is better. enum class ScoreSign {NEGATIVE=-1, POSITIVE=1}; static const std::string AS = "AS"; class Score { public: Score(const float & value, const ScoreSign & sign); Score(const Score & another); ~Score(); /// \returns float score value in [0, 100] float Value() const; /// \returns score sign, NEGATIVE or POSITIVE ScoreSign Sign() const; bool operator == (const Score & another) const; /// \returns true if this score value is better than another's. bool BetterThan(const Score & another) const; /// \returns true if this score value is better than or equal to another's. bool BetterThanOrEqual(const Score & another) const; /// \returns true if this score value is worse than another's. bool WorseThan(const Score & another) const; private: float _value; ScoreSign _sign; static constexpr float errorunit = 1e-6; }; class HitPolicy { /// \name Hit Policy /// \{ public: /// \note Constructor HitPolicy(const std::string & hitPolicyStr, const ScoreSign & sign); ~HitPolicy(void); const std::string ToString() const; std::ostream & operator << (std::ostream & os); /// \returns score sign, NEGATIVE or POSITIVE ScoreSign Sign() const; /// \returns a help string describing hit policies. const std::string Help(const std::string & pad = "") const; /// \returns true if HitPolicy is RANDOM. bool IsRandom() const; /// \returns true if HitPolicy is RANDOMBEST. bool IsRandombest() const; /// \returns true if HitPolicy is ALL. bool IsAll() const; /// \returns true if HitPolicy is ALLBEST. bool IsAllbest() const; /// \returns true if HitPolicy is LEFTMOST. bool IsLeftmost() const; /// Apply hit policy on a list of AlignmentCandidate pointers. /// \returns apply hit policy and return alignment candidate pointers. /// \params createRand, call rand() to generate a random number /// or use the random number passed from caller. /// \params passedRand, random int passed from caller std::vector Apply(const std::vector alnPtrs, const bool & createRand = true, const int & passedRand = 0) const; //std::vector> & //Apply(std::vector> & records) const; #ifdef USE_PBBAM /// Compare aligned bamRecords by query names, scores and target positions. bool compareByQNameScoreTStart(const PacBio::BAM::BamRecord & a, const PacBio::BAM::BamRecord & b) const; /// Compare aligned bamRecords by scores and target positions. /// \note BamRecords must share the same query name. bool compareByScoreTStart(const PacBio::BAM::BamRecord & a, const PacBio::BAM::BamRecord & b) const; std::vector Apply(const std::vector & records, const bool & createRand = true, const int & passedRand = 0) const; #endif private: enum class HitPolicyEnum{RANDOM, ALL, ALLBEST, RANDOMBEST, LEFTMOST}; HitPolicyEnum _hit; ScoreSign _sign; /// \} }; class FilterCriteria { /// \name FilterCriteria /// \{ public: FilterCriteria(const DNALength & minAlnLength, const float & minPctSimilarity, const float & minPctAccuracy, const bool & useScore, const Score & score); ~FilterCriteria(void); bool MakeSane(std::string & errMsg) const; void Verbose(bool verbose); template bool Satisfy(AlignmentCandidate * a) const; #ifdef USE_PBBAM bool Satisfy(const PacBio::BAM::BamRecord & record) const; #endif public: /// \retuns a string describing criteria for filtering alignments. // const std::string Help(const std::string & pad = ""); const std::string MinAlnLengthHelp(); const std::string MinPctSimilarityHelp(); const std::string MinPctAccuracyHelp(); const std::string ScoreSignHelp(); const std::string ScoreCutoffHelp(); private: DNALength _minAlnLength; float _minPctSimilarity; float _minPctAccuracy; bool _useScore; Score _scoreCutoff; bool _verbose; bool Satisfy(const DNALength & alnLength, const float & pctSimilarity, const float & pctAccuracy, const Score & score) const; /// \} }; template bool FilterCriteria::Satisfy(AlignmentCandidate * a) const { float pctAccuracy = 100 * a->nMatch / static_cast(a->nMismatch + a->nMatch + a->nIns + a->nDel); Score s(a->score, _scoreCutoff.Sign()); return Satisfy(a->qAlignedSeqLength, a->pctSimilarity, pctAccuracy, s); } #endif //_BLASR_FILTER_CRITERIA_HPP_ blasr_libcpp-master/alignment/datastructures/alignment/Path.h000066400000000000000000000013071260756663100250760ustar00rootroot00000000000000#ifndef _BLASR_PATH_H_ #define _BLASR_PATH_H_ enum Arrow { Diagonal, Up, Left, AffineInsUp, AffineInsOpen, AffineInsClose, AffineDelLeft, AffineDelOpen, AffineDelClose, AffineHPInsUp, AffineHPInsOpen, AffineHPInsClose, NoArrow, DiagonalXYZ, InsertX,InsertY,InsertZ, // imply diagonal yz/xz/xy DiagonalXY, DiagonalYZ, DiagonalXZ, // imply insertion of Z/X/Y, // // These are used to denote an affine gap has been closed // from a different matrix. This is used in OneGap alignment. // AffineLongDelLeft, AffineLongDelClose, AffineLongIns, AffineLongInsClose, Star }; enum MatrixLabel {Match, AffineHPIns, AffineIns, AffineDel, AffineHPDel}; #endif blasr_libcpp-master/alignment/datastructures/alignment/SAMToAlignmentCandidateAdapter.cpp000066400000000000000000000334161260756663100324230ustar00rootroot00000000000000#include #include "utils/SMRTTitle.hpp" #include "SAMToAlignmentCandidateAdapter.hpp" void InitializeCandidateFromSAM(SAMAlignment &sam, AlignmentCandidate<> &candidate) { candidate.qName = sam.qName; candidate.tName = sam.rName; candidate.tPos = sam.pos; candidate.mapQV = sam.mapQV; } int ProcessGap(std::vector &lengths, std::vector &ops, int &opIndex, int opEnd, blasr::GapList &gaps, int &qAdvance, int &tAdvance) { // // Default is no gap. // qAdvance = tAdvance = 0; gaps.clear(); if (opIndex >= lengths.size()) { return opIndex; } // // Look to see if the suffix of operations stars with a gap. // if (ops[opIndex] != 'I' and ops[opIndex] != 'D') { return opIndex; } while (opIndex < opEnd and (ops[opIndex] == 'I' or ops[opIndex] == 'D')) { if (ops[opIndex] == 'I') { gaps.push_back(blasr::Gap(blasr::Gap::Target, lengths[opIndex])); qAdvance += lengths[opIndex]; } else { assert(ops[opIndex] == 'D'); gaps.push_back(blasr::Gap(blasr::Gap::Query, lengths[opIndex])); tAdvance += lengths[opIndex]; } opIndex++; } return opIndex; } int AdvancePastClipping(std::vector &lengths, std::vector &ops, int &opIndex, int &numSoftClipped) { int numClipped = 0; numSoftClipped = 0; while (opIndex < lengths.size() and IsClipping(ops[opIndex])) { numClipped += lengths[opIndex]; if (ops[opIndex] == 'S') { numSoftClipped+= lengths[opIndex]; } ++opIndex; } return numClipped; } int AdvancePastSkipped(std::vector &lengths, std::vector &ops, int &opIndex) { int numSkipped = 0; while (opIndex < lengths.size() and IsSkipped(ops[opIndex])) { numSkipped += lengths[opIndex]; opIndex++; } return numSkipped; } int ProcessMatch(std::vector &lengths, std::vector &ops, int &opIndex, int opEnd) { // // Make sure this starts on some sort of blockn // int blockLength = 0; while (opIndex < opEnd and (IsAssignChar(ops[opIndex]))) { blockLength += lengths[opIndex]; opIndex++; } return blockLength; } void CIGAROpsToBlocks(std::vector &lengths, std::vector &ops, int cigarStart, int cigarEnd, AlignmentCandidate<> &aln) { cigarStart = 0; cigarEnd = lengths.size(); CIGAROpsToBlocks(lengths, ops, cigarStart, cigarEnd, aln); } int AdvancePosToAlignmentEnd(std::vector &ops, int &pos) { int start = pos; while (pos < ops.size() and ops[pos] != 'N' and !IsClipping(ops[pos])) { pos++; } return pos - start; } int GetAlignedQueryLengthByCIGARSum(std::vector &ops, std::vector &lengths) { int i; for (i = 0; i < ops.size(); i++) { if (ops[i] != 'S' && ops[i] != 'H') { break; } } int queryLength = 0; for (; i < ops.size() && ops[i] != 'S' && ops[i] != 'H'; i++) { if (IsAssignChar(ops[i]) or ops[i] == 'I' or ops[i] == 'N') { queryLength += lengths[i]; } } return queryLength; } int GetAlignedReferenceLengthByCIGARSum(std::vector &ops, std::vector &lengths) { int i; for (i = 0; i < ops.size(); i++) { if (ops[i] != 'S' && ops[i] != 'H') { break; } } int refLength = 0; for (; i < ops.size() && ops[i] != 'S' && ops[i] != 'H'; i++) { if (IsAssignChar(ops[i]) or ops[i] == 'D' or ops[i] == 'N') { refLength += lengths[i]; } } return refLength; } void CIGAROpsToBlocks(std::vector &lengths, std::vector &ops, int &cigarPos, int &cigarEnd, int &qPos, int &tPos, AlignmentCandidate<> &aln) { int gapIndex = 0; DNALength qStart = qPos, tStart = tPos; assert(cigarPos >= cigarEnd or !IsClipping(ops[cigarPos])); // // Advance past any skipped portion. // int numSkipped = AdvancePastSkipped(lengths, ops, cigarPos); tPos += numSkipped; // // Process the gaps before the first match. // // // If there is nothing left, just bail. blasr::GapList gap; cigarEnd = cigarPos; AdvancePosToAlignmentEnd(ops, cigarEnd); if (cigarPos >= cigarEnd) { return; } // // Process any gap that the aligner produces before the first match // begins. // int qAdvance, tAdvance; ProcessGap(lengths, ops, cigarPos, cigarEnd, gap, qAdvance, tAdvance); aln.gaps.push_back(gap); qPos += qAdvance; tPos += tAdvance; // // Now add gaps. // while(cigarPos < cigarEnd) { // // The next operation must be a match. // int matchLength = ProcessMatch(lengths, ops, cigarPos, cigarEnd); blasr::Block b; b.qPos = qPos - qStart; b.tPos = tPos - tStart; b.length = matchLength; aln.blocks.push_back(b); qPos += b.length; tPos += b.length; ProcessGap(lengths, ops, cigarPos, cigarEnd, gap, qAdvance, tAdvance); aln.gaps.push_back(gap); tPos += tAdvance; qPos += qAdvance; } } void SAMAlignmentsToCandidates(SAMAlignment &sam, std::vector &referenceSequences, std::map & refNameToRefListIndex, std::vector > &candidates, bool parseSmrtTitle, bool keepRefAsForward, bool copyQVs) { // // First determine how many alignments there are from CIGAR string. // std::vector lengths; std::vector ops; sam.cigar.Vectorize(lengths, ops); DNASequence querySeq; // For now just reference the query sequence. querySeq.deleteOnExit = false; querySeq.seq = (Nucleotide*) sam.seq.c_str(); querySeq.length = sam.seq.size(); DNALength samTEnd = 0; DNALength samTStart = sam.pos - 1; std::vector optionalQVs; if (copyQVs) { sam.CopyQVs(&optionalQVs); } if (keepRefAsForward == false and IsReverseComplement(sam.flag)) { ReverseAlignmentOperations(lengths, ops); DNASequence rcQuerySeq; querySeq.CopyAsRC(rcQuerySeq); // // Zero out the query seq so that the string memory is not // deleted. // querySeq.seq = NULL; querySeq.length = 0; querySeq = rcQuerySeq; rcQuerySeq.Free(); samTEnd = GetAlignedReferenceLengthByCIGARSum(ops, lengths); // We also need to reverse any optional QVs if (copyQVs) { for(int i=0; i= lengths.size()) { break; } qPos += numSoftClipped; // // Skipped sequences are just advances in the tPos. // int numSkipped = AdvancePastSkipped(lengths, ops, cigarPos); tPos += numSkipped; if (cigarPos >= lengths.size()) { break; } AlignmentCandidate<> alignment; // // The aligned sequence must start at a match therefore the tpos // and qpos are 0. // alignment.qPos = 0; alignment.tPos = 0; // qAlignStart is the start of the alignment relative to the sequence in the SAM file. DNALength qAlignStart = qPos; // tAlignStart is the start of the alignment in the genome. DNALength tAlignStart = tPos; int cigarEnd = cigarPos; AdvancePosToAlignmentEnd(ops, cigarEnd); CIGAROpsToBlocks(lengths, ops, cigarPos, cigarEnd, qPos, tPos, alignment); DNALength queryLengthSum = GetAlignedQueryLengthByCIGARSum(ops, lengths); DNALength refLengthSum = GetAlignedReferenceLengthByCIGARSum(ops, lengths); alignment.qAlignedSeqLength = qPos - qAlignStart; alignment.tAlignedSeqLength = tPos - tAlignStart; // // Assign candidate sequences. // // First, the query sequence is straight from the SAM line. ((DNASequence*)&alignment.qAlignedSeq)->Copy(querySeq, qAlignStart, alignment.qAlignedSeqLength); if (copyQVs) { alignment.ReadOptionalQVs(optionalQVs, qAlignStart, alignment.qAlignedSeqLength); } // The SAM Alignments a alignment.qStrand = IsReverseComplement(sam.flag); alignment.tStrand = 0; alignment.mapQV = sam.mapQV; // // Assign the offsets into the original sequence where the // subsequence starts. // alignment.qAlignedSeqPos = queryPosOffset + qAlignStart; alignment.tAlignedSeqPos = samTStart + tAlignStart; if (sam.rName == "*") { // // No reference, do not add the alignment to the list of // candidates. // continue; } else { int refIndex; int s = refNameToRefListIndex.size(); if (refNameToRefListIndex.find(sam.rName) == refNameToRefListIndex.end()) { std::cout <<" ERROR. SAM Reference " << sam.rName << " is not found in the list of reference contigs." << std::endl; exit(1); } refIndex = refNameToRefListIndex[sam.rName]; alignment.tLength = referenceSequences[refIndex].length; alignment.qLength = sam.seq.size(); alignment.qName = sam.qName; alignment.tName = sam.rName; if (keepRefAsForward == false and alignment.qStrand == 1) { // // Now that the reference sequence has been copied, if it is // on the reverse strand, make the reverse complement for // proper printing. // alignment.tAlignedSeqPos = samTStart + (samTEnd - tAlignStart - alignment.tAlignedSeqLength); if (alignment.tAlignedSeqLength > referenceSequences[refIndex].length || alignment.tAlignedSeqPos > referenceSequences[refIndex].length || alignment.tAlignedSeqLength + alignment.tAlignedSeqPos > referenceSequences[refIndex].length + 2) { //alignment.tAlignedSeqPos is 1 based and unsigned. std::cout << "WARNING. The mapping of read " << alignment.qName << " to reference " << alignment.tName << " is out of bounds." << std::endl << " StartPos (" << alignment.tAlignedSeqPos << ") + AlnLength (" << alignment.tAlignedSeqLength << ") > RefLength (" << referenceSequences[refIndex].length << ") + 2 " << std::endl; continue; } ((DNASequence*)&alignment.tAlignedSeq)->Copy(referenceSequences[refIndex], alignment.tAlignedSeqPos, alignment.tAlignedSeqLength); alignment.tAlignedSeq.ReverseComplementSelf(); // either ref or read is defined as being in the forward // orientation. Here, since refAsForward is false, the read // is forward. Since the read is forward, the aligned // sequences are stored as the reverse complement of the read // and the references. // alignment.tStrand = 1; alignment.qStrand = 0; } else { if (alignment.tAlignedSeqLength > referenceSequences[refIndex].length || alignment.tAlignedSeqPos > referenceSequences[refIndex].length || alignment.tAlignedSeqLength + alignment.tAlignedSeqPos > referenceSequences[refIndex].length + 2) { //alignment.tAlignedSeqPos is 1 based and unsigned. std::cout << "WARNING. The mapping of read " << alignment.qName << " to reference " << alignment.tName << " is out of bounds." << std::endl << " StartPos (" << alignment.tAlignedSeqPos << ") + AlnLength (" << alignment.tAlignedSeqLength << ") > RefLength (" << referenceSequences[refIndex].length << ") + 2 " << std::endl; continue; } ((DNASequence*)&alignment.tAlignedSeq)->Copy(referenceSequences[refIndex], alignment.tAlignedSeqPos, alignment.tAlignedSeqLength); } } if (alignment.blocks.size() > 0) { candidates.push_back(alignment); } } if (candidates.size() > 0 and keepRefAsForward == false and candidates[0].tStrand == 1) { std::reverse(candidates.begin(), candidates.end()); } querySeq.Free(); } void ReverseAlignmentOperations(std::vector &lengths, std::vector &ops) { reverse(lengths.begin(), lengths.end()); reverse(ops.begin(), ops.end()); } blasr_libcpp-master/alignment/datastructures/alignment/SAMToAlignmentCandidateAdapter.hpp000066400000000000000000000051551260756663100324270ustar00rootroot00000000000000#ifndef _BLASR_SAM_TO_ALIGNMENT_CANDIDATE_ADAPTER_HPP_ #define _BLASR_SAM_TO_ALIGNMENT_CANDIDATE_ADAPTER_HPP_ #include #include "sam/SAMAlignment.hpp" #include "sam/SAMFlag.h" #include "datastructures/alignment/AlignmentCandidate.hpp" void InitializeCandidateFromSAM(SAMAlignment &sam, AlignmentCandidate<> &candidate); // // Change a list of gap operations into a gap structure between // blocks. // int ProcessGap(std::vector &lengths, std::vector &ops, int &opIndex, int opEnd, blasr::GapList &gaps, int &qAdvance, int &tAdvance); inline bool IsClipping(char c) { return (c == 'S' or c == 'H'); } inline int IsSkipped(char c) { return c == 'N'; } // // // Returns true if the corresponding characters are assigned to each // other in the alignment. This is either a match or a mismatch. // inline bool IsAssignChar(char c) { return (c == 'M' or c == 'X' or c == '='); } int AdvancePastClipping(std::vector &lengths, std::vector &ops, int &opIndex, int &numSoftClipped); int AdvancePastSkipped(std::vector &lengths, std::vector &ops, int &opIndex); int ProcessMatch(std::vector &lengths, std::vector &ops, int &opIndex, int opEnd); void CIGAROpsToBlocks(std::vector &lengths, std::vector &ops, int cigarStart, int cigarEnd, AlignmentCandidate<> &aln); int AdvancePosToAlignmentEnd(std::vector &ops, int &pos); int GetAlignedQueryLengthByCIGARSum(std::vector &ops, std::vector &lengths); int GetAlignedReferenceLengthByCIGARSum(std::vector &ops, std::vector &lengths); void CIGAROpsToBlocks(std::vector &lengths, std::vector &ops, int &cigarPos, int &cigarEnd, int &qPos, int &tPos, AlignmentCandidate<> &aln); void ReverseAlignmentOperations(std::vector &lengths, std::vector &ops); void SAMAlignmentsToCandidates(SAMAlignment &sam, std::vector &referenceSequences, std::map & refNameToRefListIndex, std::vector > &candidates, bool parseSmrtTitle = false, bool keepRefAsForward = true, bool copyQVs = false); #endif blasr_libcpp-master/alignment/datastructures/alignmentset/000077500000000000000000000000001260756663100245445ustar00rootroot00000000000000blasr_libcpp-master/alignment/datastructures/alignmentset/AlignmentSetToCmpH5Adapter.hpp000066400000000000000000000051231260756663100323110ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_SET_TO_CMPH5_ADAPTER_HPP_ #define _BLASR_ALIGNMENT_SET_TO_CMPH5_ADAPTER_HPP_ #include "utils/SMRTReadUtils.hpp" #include "HDFCmpFile.hpp" #include "sam/AlignmentSet.hpp" #include "datastructures/alignment/AlignmentCandidate.hpp" #include "datastructures/alignment/ByteAlignment.h" #include "algorithms/alignment/DistanceMatrixScoreFunction.hpp" class RefGroupNameId { public: std::string name; unsigned int id; RefGroupNameId() { id = 0; name = ""; } RefGroupNameId(std::string n, unsigned int i) { name = n; id = i; } RefGroupNameId(const RefGroupNameId &rhs) { name = rhs.name; id = rhs.id; } }; // number of zmws per SMRTCell for springfield: 163482 const unsigned int numZMWsPerMovieSpringField = 163482; template class AlignmentSetToCmpH5Adapter { public: // Map reference name to reference group (/RefGroup) name and ID. std::map refNameToRefGroupNameandId; std::map knownMovies; std::map knownPaths; unsigned int numAlignments; std::map refNameToRefInfoIndex; void Initialize() { numAlignments = 0; } template void StoreReferenceInfo(std::vector &references, T_CmpFile &cmpFile); unsigned int StoreMovieInfo(std::string movieName, T_CmpFile &cmpFile); // Given a reference name, find whether there exists a refGroup // (e.g. /ref000001) associated with it. // If not, create a refGroup and update refNameToRefGroupNameandId. // Finally, return its associated refGroup ID. unsigned int StoreRefGroup(std::string refName, T_CmpFile & cmpFile); unsigned int StorePath(std::string & path, T_CmpFile &cmpFile); void RemoveGapsAtEndOfAlignment(AlignmentCandidate<> &alignment); void StoreAlignmentCandidate(AlignmentCandidate<> &alignment, int alnSegment, T_CmpFile &cmpFile, int moleculeNumber = -1, bool copyQVs=false); void StoreAlignmentCandidateList(std::vector > &alignments, T_CmpFile &cmpFile, int moleculeNumber=-1, bool copyQVs=false); void StoreAlignmentCandidate(AlignmentCandidate<> alignment, T_CmpFile &cmpFile) { StoreAlignmentCandidate(alignment, 0, cmpFile); } }; #include "AlignmentSetToCmpH5AdapterImpl.hpp" #endif blasr_libcpp-master/alignment/datastructures/alignmentset/AlignmentSetToCmpH5AdapterImpl.hpp000066400000000000000000000216341260756663100331400ustar00rootroot00000000000000#ifndef _BLASR_ALIGNMENT_SET_TO_CMPH5_ADAPTER_IMPL_HPP_ #define _BLASR_ALIGNMENT_SET_TO_CMPH5_ADAPTER_IMPL_HPP_ #include "AlignmentSetToCmpH5AdapterImpl.hpp" template unsigned int AlignmentSetToCmpH5Adapter::StoreMovieInfo( std::string movieName, T_CmpFile &cmpFile) { std::map::iterator mapIt; mapIt = knownMovies.find(movieName); if (mapIt != knownMovies.end()) { return mapIt->second; } else { unsigned int id = cmpFile.movieInfoGroup.AddMovie(movieName); knownMovies[movieName] = id; return id; } } template template void AlignmentSetToCmpH5Adapter::StoreReferenceInfo( std::vector &references, T_CmpFile &cmpFile) { for (int r = 0; r < references.size(); r++) { std::string sequenceName, md5; sequenceName = references[r].GetSequenceName(); md5 = references[r].GetMD5(); unsigned int length = references[r].GetLength(); // Add this reference to /RefInfo. // Don't create /ref0000x and register it in /RefGroup at this point, // because this reference may not map to any alignments at all. cmpFile.AddRefInfo(sequenceName, length, md5); // Update refNameToRefInfoIndex if (refNameToRefInfoIndex.find(sequenceName) != refNameToRefInfoIndex.end()) { cout << "ERROR. Reference name " << sequenceName << " is not unique." << endl; exit(1); } refNameToRefInfoIndex[sequenceName] = r; } } template unsigned int AlignmentSetToCmpH5Adapter::StoreRefGroup( std::string refName, T_CmpFile & cmpFile) { // Find out whether there is a refGroup associated with refName. std::map::iterator mapIt; mapIt = refNameToRefGroupNameandId.find(refName); if (mapIt != refNameToRefGroupNameandId.end()) { // An existing refGroup is associated with this refName. return mapIt->second.id; } else { // No refGroup is associated with refName, create one. int refInfoIndex = refNameToRefInfoIndex[refName]; unsigned int refInfoId = refInfoIndex + 1; std::string refGroupName; unsigned int refGroupId = cmpFile.AddRefGroup(refName, refInfoId, refGroupName); // Update refNameToRefGroupNameandId. refNameToRefGroupNameandId[refName] = RefGroupNameId(refGroupName, refGroupId); return refGroupId; } } template unsigned int AlignmentSetToCmpH5Adapter::StorePath( std::string & path, T_CmpFile &cmpFile) { if (knownPaths.find(path) != knownPaths.end()) { return knownPaths[path]; } else { unsigned int id = cmpFile.alnGroupGroup.AddPath(path); knownPaths[path] = id; return id; } } template void AlignmentSetToCmpH5Adapter::RemoveGapsAtEndOfAlignment(AlignmentCandidate<> &alignment) { int numEndDel = 0, numEndIns = 0; if (alignment.gaps.size() > 0) { int lastGap = alignment.gaps.size() - 1; int g; for (g = 0; g < alignment.gaps[lastGap].size(); g++) { if (alignment.gaps[lastGap][g].seq == Gap::Target) { numEndIns += alignment.gaps[lastGap][g].length; } else if (alignment.gaps[lastGap][g].seq == Gap::Query) { numEndDel += alignment.gaps[lastGap][g].length; } } } alignment.qAlignedSeqLength -= numEndIns; alignment.tAlignedSeqLength -= numEndDel; } template void AlignmentSetToCmpH5Adapter::StoreAlignmentCandidate( AlignmentCandidate<> &alignment, int alnSegment, T_CmpFile &cmpFile, int moleculeNumber, bool copyQVs) { // // Find out where the movie is going to get stored. // std::string movieName; int holeNumber = 0; bool nameParsedProperly; nameParsedProperly = ParsePBIReadName(alignment.qName, movieName, holeNumber); if (!nameParsedProperly) { std::cout <<"ERROR. Attempting to store a read with name " << alignment.qName << " that does not " << std::endl << "appear to be a PacBio read." << std::endl; exit(1); } unsigned int movieId = StoreMovieInfo(movieName, cmpFile); // Check whether the reference is in /RefInfo. std::map::iterator mapIt; mapIt = refNameToRefInfoIndex.find(alignment.tName); if (mapIt == refNameToRefInfoIndex.end()) { std::cout << "ERROR. The reference name " << alignment.tName << " was not found in the list of references." << std::endl; std::cout << "Perhaps a different reference file was aligned to than " << std::endl << "what was provided for SAM conversion. " << std::endl; exit(1); } // Store refGroup unsigned int refGroupId = StoreRefGroup(alignment.tName, cmpFile); std::string refGroupName = refNameToRefGroupNameandId[alignment.tName].name; assert(refGroupId == refNameToRefGroupNameandId[alignment.tName].id); if (cmpFile.refGroupIdToArrayIndex.find(refGroupId) == cmpFile.refGroupIdToArrayIndex.end()) { std::cout << "ERROR. The reference ID is not indexed. " << "This is an internal inconsistency." << std::endl; exit(1); } int refGroupIndex= cmpFile.refGroupIdToArrayIndex[refGroupId]; assert(refGroupIndex + 1 == refGroupId); std::string path = "/" + refGroupName + "/" + movieName; unsigned int pathId = StorePath(path, cmpFile); int pathIndex = pathId - 1; vector alnIndex; alnIndex.resize(22); RemoveGapsAtEndOfAlignment(alignment); /* * Store the alignment string */ vector byteAlignment; AlignmentToByteAlignment(alignment, alignment.qAlignedSeq, alignment.tAlignedSeq, byteAlignment); unsigned int offsetBegin, offsetEnd; cmpFile.StoreAlnArray(byteAlignment, alignment.tName, movieName, offsetBegin, offsetEnd); // Copy QVs into cmp.h5 if (copyQVs) { std::vector optionalQVs; alignment.CopyQVs(&optionalQVs); for (int qv_i=0; qv_isize() == 0) { continue; } unsigned int qvOffsetBegin, qvOffsetEnd; if (qvName->compare(qvName->size() - 3, 3, "Tag") == 0) { std::vector qvVector; QVsToCmpH5QVs(*qvString, byteAlignment, true, &qvVector); cmpFile.StoreTags(qvVector, alignment.tName, *qvName, movieName, &qvOffsetBegin, &qvOffsetEnd); } else { std::vector qvVector; QVsToCmpH5QVs(*qvString, byteAlignment, false, &qvVector); cmpFile.StoreQVs(qvVector, alignment.tName, *qvName, movieName, &qvOffsetBegin, &qvOffsetEnd); } assert(qvOffsetBegin == offsetBegin); assert(qvOffsetEnd == offsetEnd); } } numAlignments++; DistanceMatrixScoreFunction distScoreFn; //distScoreFn does not matter since the score is not stored. ComputeAlignmentStats(alignment, alignment.qAlignedSeq.seq, alignment.tAlignedSeq.seq, distScoreFn); /* The current AlnIndex column names: (0): "AlnID", "AlnGroupID", "MovieID", "RefGroupID", "tStart", (5): "tEnd", "RCRefStrand", "HoleNumber", "SetNumber", (9): "StrobeNumber", "MoleculeID", "rStart", "rEnd", "MapQV", "nM", (15): "nMM", "nIns", "nDel", "Offset_begin", "Offset_end", (20): "nBackRead", "nReadOverlap" */ if (moleculeNumber == -1) { moleculeNumber = numZMWsPerMovieSpringField * (movieId - 1) + holeNumber; } alnIndex[0] = numAlignments; // AlnId alnIndex[1] = pathId; // AlnGroupID alnIndex[2] = movieId; // MovieID alnIndex[3] = refGroupId; // RefGroupID alnIndex[4] = alignment.tAlignedSeqPos; // tStart alnIndex[5] = alignment.tAlignedSeqPos + alignment.tAlignedSeqLength; // tEnd alnIndex[6] = alignment.tStrand; // RCRefStrand alnIndex[7] = holeNumber; alnIndex[8] = 0; // SET NUMBER -- parse later!!!! alnIndex[9] = alnSegment; // strobenumber alnIndex[10] = moleculeNumber; alnIndex[11] = alignment.qAlignedSeqPos; alnIndex[12] = alignment.qAlignedSeqPos + alignment.qAlignedSeqLength; alnIndex[13] = alignment.mapQV; alnIndex[14] = alignment.nMatch; alnIndex[15] = alignment.nMismatch; alnIndex[16] = alignment.nIns; alnIndex[17] = alignment.nDel; alnIndex[18] = offsetBegin; alnIndex[19] = offsetEnd; alnIndex[20] = 0; alnIndex[21] = 0; cmpFile.alnInfoGroup.WriteAlnIndex(alnIndex); } template void AlignmentSetToCmpH5Adapter::StoreAlignmentCandidateList( std::vector > &alignments, T_CmpFile &cmpFile, int moleculeNumber, bool copyQVs) { int a; for (a = 0; a < alignments.size(); a++) { StoreAlignmentCandidate(alignments[a], a, cmpFile, moleculeNumber, copyQVs); } } #endif blasr_libcpp-master/alignment/datastructures/alignmentset/SAMQVConversion.cpp000066400000000000000000000015271260756663100302120ustar00rootroot00000000000000#include #include #include "FASTQSequence.hpp" #include "SAMQVConversion.hpp" void QualityVectorToPrintable(unsigned char *data, int length) { if (data == NULL) { return; } for (int i = 0; i < length; i++) { data[i] = (((unsigned char)data[i]) == MAX_STORED_QUALITY) ? MAX_PRINTED_QUALITY : (unsigned char)data[i]; data[i] = (((unsigned char)data[i]) == SENTINAL) ? MAP_SENTINAL : (unsigned char)data[i]; assert(data[i] != 255); } } void QualityStringToStored(unsigned char *data, int length) { if (data == NULL) { return; } for (int i = 0; i < length; i++) { data[i] = data[i] - FASTQSequence::charToQuality; data[i] = ((unsigned char)data[i]) == MAX_PRINTED_QUALITY ? MAX_STORED_QUALITY : (unsigned char)data[i]; data[i] = ((unsigned char)data[i]) == MAP_SENTINAL ? SENTINAL : (unsigned char)data[i]; } } blasr_libcpp-master/alignment/datastructures/alignmentset/SAMQVConversion.hpp000066400000000000000000000004761260756663100302210ustar00rootroot00000000000000#ifndef _BLASR_SAMQVConversion_HPP_ #define _BLASR_SAMQVConversion_HPP_ #define MAX_PRINTED_QUALITY 93 #define MAX_STORED_QUALITY 100 #define SENTINAL 255 #define MAP_SENTINAL 93 void QualityVectorToPrintable(unsigned char *data, int length); void QualityStringToStored(unsigned char *data, int length) ; #endif blasr_libcpp-master/alignment/datastructures/alignmentset/SAMSupplementalQVList.cpp000066400000000000000000000046231260756663100313720ustar00rootroot00000000000000#include "SAMSupplementalQVList.hpp" const char* SupplementalQVList::qvNames[] = {"InsertionQV", "DeletionQV", "SubstitutionQV", "MergeQV", "SubstitutionTag", "DeletionTag"}; const char* SupplementalQVList::qvTags[] = {"iq", "dq", "sq", "mq", "st", "dt"}; // Only the first 4 tags are quality values. int SupplementalQVList::nqvTags = 4; int SupplementalQVList::nTags = 6; int SupplementalQVList::UseQV(std::vector &qvList) { int i; useqv = 0; for (i = 0; i < qvList.size(); i++) { int j; for (j = 0; j < nTags; j++) { if (qvList[i] == qvNames[j]) { useqv |= 1 << j; break; } } if (j == nTags) { return 1; } } return 0; } void SupplementalQVList::FormatQVOptionalFields(SMRTSequence &alignedSubsequence) { int i; for (i = 0; i < nqvTags; i++) { if (alignedSubsequence.GetQVPointerByIndex(i+1)->data == NULL) { // mask off this quality value since it does not exist useqv = useqv & ~(1 << i); } } for (i = 0; i < nqvTags; i++) { if (useqv & (1 << i)) { QualityVectorToPrintable(alignedSubsequence.GetQVPointerByIndex(i+1)->data, alignedSubsequence.length); } } } void SupplementalQVList::PrintQVOptionalFields(SMRTSequence &alignedSubsequence, std::ostream &out) { int i = 0; for (i = 0; i < nqvTags; i++) { if (alignedSubsequence.GetQVPointerByIndex(i+1)->data == NULL) { // mask off this quality value since it does not exist useqv = useqv & ~(1 << i); } } for (i = 0; i < nTags; i++) { if (alignedSubsequence.GetQVPointerByIndex(i+1) != NULL and (useqv & (1 << i)) ) { out << "\t" << qvTags[i] << ":Z:"; alignedSubsequence.PrintAsciiRichQuality(out, i + 1, 0); } } if (alignedSubsequence.substitutionTag != NULL and (useqv & SubstitutionTag)) { out << "\t" << qvTags[I_SubstitutionTag-1] << ":Z:"; alignedSubsequence.PrintAsciiRichQuality(out, I_SubstitutionTag, 0); } if (alignedSubsequence.deletionTag != NULL and (useqv & DeletionTag)) { out << "\t" << qvTags[I_DeletionTag-1] << ":Z:"; alignedSubsequence.PrintAsciiRichQuality(out, I_DeletionTag, 0); } } void SupplementalQVList::clear() { for (int j = 0; j < nTags; j++) { useqv &= 0 << j; } } blasr_libcpp-master/alignment/datastructures/alignmentset/SAMSupplementalQVList.hpp000066400000000000000000000016131260756663100313730ustar00rootroot00000000000000#ifndef _BLASR_SAMSUPPLEMENTALQVLIST_HPP_ #define _BLASR_SAMSUPPLEMENTALQVLIST_HPP_ #include "SMRTSequence.hpp" #include "SAMQVConversion.hpp" class SupplementalQVList { public: //enum QVList {InsertionQV=0x1, DeletionQV=0x2, SubstitutionQV=0x4, MergeQV=0x8, SubstitutionTag=0x10, DeletionTag=0x20}; //enum QVIndex {I_InsertionQV=1,I_DeletionQV=2,I_SubstitutionQV=3,I_MergeQV=4,I_SubstitutionTag=5,I_DeletionTag=6}; //defined in FASTQSequence. unsigned int useqv; void SetDefaultQV() { useqv = InsertionQV | DeletionQV | SubstitutionQV | MergeQV | DeletionTag; } static const char* qvTags[]; static const char* qvNames[]; static int nqvTags; static int nTags; int UseQV(std::vector &qvList); void FormatQVOptionalFields(SMRTSequence &alignedSubsequence); void PrintQVOptionalFields(SMRTSequence &alignedSubsequence, std::ostream &out); void clear(); }; #endif blasr_libcpp-master/alignment/datastructures/anchoring/000077500000000000000000000000001260756663100240225ustar00rootroot00000000000000blasr_libcpp-master/alignment/datastructures/anchoring/AnchorParameters.cpp000066400000000000000000000030601260756663100277630ustar00rootroot00000000000000#include "AnchorParameters.hpp" AnchorParameters::AnchorParameters() { branchQualityThreshold = 0; minMatchLength = 0; maxMatchScore = 0; expand = 0; contextAlignLength = 0; useLookupTable = true; numBranches = 0; maxAnchorsPerPosition = 1000; advanceExactMatches = 0; maxLCPLength = 0; // 0 Defaults to full lcp length stopMappingOnceUnique = false; removeEncompassedMatches=false; verbosity = 0; lcpBoundsOutPtr = NULL; branchExpand = 0; } AnchorParameters &AnchorParameters::Assign(const AnchorParameters &rhs) { // // Manually handle assignment in case there is some deep copy // that is necessary eventually. // branchQualityThreshold = rhs.branchQualityThreshold; minMatchLength = rhs.minMatchLength; maxMatchScore = rhs.maxMatchScore; expand = rhs.expand; contextAlignLength = rhs.contextAlignLength; numBranches = rhs.numBranches; maxAnchorsPerPosition = rhs.maxAnchorsPerPosition; advanceExactMatches = rhs.advanceExactMatches; maxLCPLength = rhs.maxLCPLength; stopMappingOnceUnique = rhs.stopMappingOnceUnique; verbosity = rhs.verbosity; removeEncompassedMatches= rhs.removeEncompassedMatches; branchExpand = rhs.branchExpand; return *this; } AnchorParameters &AnchorParameters::operator=(const AnchorParameters &rhs) { return this->Assign(rhs); } blasr_libcpp-master/alignment/datastructures/anchoring/AnchorParameters.hpp000066400000000000000000000014471260756663100277770ustar00rootroot00000000000000#ifndef _BLASR_ANCHOR_PARAMETERS_HPP_ #define _BLASR_ANCHOR_PARAMETERS_HPP_ #include #include #include "qvs/QualityValue.hpp" #include "DNASequence.hpp" class AnchorParameters { public: QualityValue branchQualityThreshold; int minMatchLength; int maxMatchScore; int expand; int contextAlignLength; bool useLookupTable; int numBranches; int maxAnchorsPerPosition; int advanceExactMatches; int maxLCPLength; bool stopMappingOnceUnique; int verbosity; bool removeEncompassedMatches; std::ostream *lcpBoundsOutPtr; int branchExpand; AnchorParameters(); AnchorParameters &Assign(const AnchorParameters &rhs); AnchorParameters &operator=(const AnchorParameters &rhs); }; #endif // _BLASR_ANCHOR_PARAMETERS_HPP_ blasr_libcpp-master/alignment/datastructures/anchoring/ClusterList.cpp000066400000000000000000000042021260756663100270010ustar00rootroot00000000000000#include "datastructures/anchoring/ClusterList.hpp" ClusterList::ClusterList() { lowerSizeLimit = 20; lowerSizeLimitNumAnchors = 1; curp = cure = 0; onContigStart = true; curIndex = 0; } void ClusterList::Clear() { onContigStart = true; numBases.clear(); startPos.clear(); numAnchors.clear(); } bool ClusterList::Store(int n, DNALength p, DNALength e, int b) { bool intervalIsEclipsed = true; bool intervalEclipses = false; if (onContigStart == true) { curp = p; cure = e; intervalIsEclipsed = false; } else { if (curp <= p and cure >= e) { intervalIsEclipsed = true; } else { if (p <= curp and e >= cure) { intervalEclipses = true; } intervalIsEclipsed = false; } } if (intervalIsEclipsed == false) { // // The current interval is unique: it does not eclipse any // other intervals and is not eclipsed by any. // if (n >= lowerSizeLimit) { if (intervalEclipses == false or onContigStart) { numBases.push_back(n); startPos.push_back(p); numAnchors.push_back(b); onContigStart = false; // // Record where the last interval is. Since ther intervals // are sorted by position, only need to compare against the // current interval to make sure they are not overlapping // other intervals. // curp = p; cure = e; } else { // // The new interval eclipses the last one added. // if (n > numBases[numBases.size()-1]) { numBases[numBases.size()-1] = n; startPos[startPos.size()-1] = p; numAnchors[numAnchors.size()-1] = b; curp = p; cure = e; } } } } return !intervalIsEclipsed; } void ClusterList::ResetCoordinates() { onContigStart = true; } blasr_libcpp-master/alignment/datastructures/anchoring/ClusterList.hpp000066400000000000000000000010601260756663100270050ustar00rootroot00000000000000#ifndef _BLASR_CLUSTER_LIST_HPP_ #define _BLASR_CLUSTER_LIST_HPP_ #include #include "DNASequence.hpp" class ClusterList { public: std::vector numBases; std::vector numAnchors; std::vector startPos; std::vector indices; int lowerSizeLimit; int lowerSizeLimitNumAnchors; DNALength curp, cure; // cur - p, and cur - e. int curIndex; bool onContigStart; ClusterList(); void Clear(); bool Store(int n, DNALength p, DNALength e, int b); void ResetCoordinates(); }; #endif blasr_libcpp-master/alignment/datastructures/anchoring/MatchPos.cpp000066400000000000000000000021401260756663100262410ustar00rootroot00000000000000#include "MatchPos.hpp" MatchPos::MatchPos(const MatchPos &rhs) { (*this) = rhs; } int MatchPos::GetMultiplicity() const { return m; } MatchWeight MatchPos::GetWeight() const { if (m > 0) { return (1.0*l)/m; } else { return 0; } } UInt MatchPos::GetT() { return t; } UInt MatchPos::GetQ() { return (UInt) q; } UInt MatchPos::GetW() { return w; } std::ostream& operator<<(std::ostream & out, MatchPos &p) { out << p.q << "\t" << p.t <<"\t"<< p.l << "\t"<< p.m; return out; } ChainedMatchPos::ChainedMatchPos(DNALength pt, DNALength pq, DNALength pl, int pm) : MatchPos(pt, pq, pl, pm) { score = 0; chainPrev = NULL; } ChainedMatchPos::ChainedMatchPos() : MatchPos() { score = 0; chainPrev = NULL; } int ChainedMatchPos::SetScore(int _score) { return (score = _score); } ChainedMatchPos* ChainedMatchPos::SetChainPrev(ChainedMatchPos *_chainPrev) { return (chainPrev = _chainPrev); } std::ostream& operator<<(std::ostream & out, ChainedMatchPos &p) { out << p.q << "\t" << p.t <<"\t"<< p.l << "\t"<< p.m; return out; } blasr_libcpp-master/alignment/datastructures/anchoring/MatchPos.hpp000066400000000000000000000103441260756663100262530ustar00rootroot00000000000000#ifndef _BLASR_MATCH_POS_HPP_ #define _BLASR_MATCH_POS_HPP_ #include #include #include #include "Types.h" #include "DNASequence.hpp" class MatchPos { public: DNALength t, q; MatchWeight w; DNALength l; int m; // multiplicity inline MatchPos(DNALength pt, DNALength pq, DNALength pl, int pm = 0); MatchPos (const MatchPos &rhs); inline MatchWeight Size(); inline MatchPos(); inline MatchPos& operator=(const MatchPos &rhs); inline DNALength GetLength() const; int GetMultiplicity() const; MatchWeight GetWeight() const; inline DNALength GetX() const; inline DNALength GetY() const; UInt GetT(); UInt GetQ(); UInt GetW(); friend std::ostream& operator<<(std::ostream & out, MatchPos &p); }; inline MatchPos::MatchPos(DNALength pt, DNALength pq, DNALength pl, int pm) : t(pt), q(pq), l(pl), m(pm), w(0){ } inline MatchPos::MatchPos() { t = q = -1; l = 0; w = 0; m = 0; } inline MatchWeight MatchPos::Size() { return l; } inline MatchPos& MatchPos::operator=(const MatchPos &rhs) { t = rhs.t; q = rhs.q; w = rhs.w; l = rhs.l; m = rhs.m; return *this; } inline DNALength MatchPos::GetLength() const { return l; } inline DNALength MatchPos::GetX() const { return q; } inline DNALength MatchPos::GetY() const { return t; } class ChainedMatchPos : public MatchPos { private: int score; ChainedMatchPos *chainPrev; public: ChainedMatchPos(DNALength pt, DNALength pq, DNALength pl, int pm); ChainedMatchPos(); inline ChainedMatchPos(const ChainedMatchPos &rhs); inline int GetScore(); int SetScore(int _score); ChainedMatchPos* SetChainPrev(ChainedMatchPos *_chainPrev); inline ChainedMatchPos* GetChainPrev(); inline ChainedMatchPos &operator=(const ChainedMatchPos &rhs); friend std::ostream& operator<<(std::ostream & out, ChainedMatchPos &p); }; inline ChainedMatchPos::ChainedMatchPos(const ChainedMatchPos &rhs) { (*this) = rhs; } inline ChainedMatchPos* ChainedMatchPos::GetChainPrev() { return chainPrev; } inline int ChainedMatchPos::GetScore() { return score; } inline ChainedMatchPos &ChainedMatchPos::operator=(const ChainedMatchPos &rhs) { ((MatchPos&)(*this)) = ((MatchPos&)rhs); return *this; } template class CompareMatchPos { public: int operator()(const T_MatchPos &lhs, const T_MatchPos &rhs) const { if (lhs.t < rhs.t) return 1; else if (lhs.t > rhs.t) return 0; else { return lhs.q < rhs.q; } } }; typedef std::vector MatchPosList; template class CompareMatchPosByWeight { public: int operator()(const T_MatchPos &a, const T_MatchPos &b) const { return a.l < b.l; } }; template class CompareMatchPosIndexByWeight { public: std::vector *list; int operator()(const int i, const int j) const { return ((*list)[i].w > (*list)[j].w); } }; template class CompareMatchPosIndexByTextPos { public: std::vector *list; int operator()(const int i, const int j) const { return (*list)[i].t < (*list)[j].t; } }; template void SortMatchPosList(std::vector &mpl) { std::sort(mpl.begin(), mpl.end(), CompareMatchPos()); } template void SortMatchPosListByWeight(std::vector &mpl) { std::sort(mpl.begin(), mpl.end(), CompareMatchPosByWeight()); } template void SortMatchPosIndexListByWeight(std::vector &mpl, std::vector &indices) { CompareMatchPosIndexByWeight cmp; cmp.list = &mpl; std::sort(indices.begin(), indices.end(), cmp); } template void SortMatchPosIndexListByTextPos(std::vector &mpl, std::vector &indices) { CompareMatchPosIndexByTextPos cmp; cmp.list = &mpl; std::sort(indices.begin(), indices.end(), cmp); } #endif // _BLASR_MATCH_POS_HPP_ blasr_libcpp-master/alignment/datastructures/anchoring/WeightedInterval.cpp000066400000000000000000000115051260756663100277750ustar00rootroot00000000000000#include "datastructures/anchoring/WeightedInterval.hpp" WeightedInterval::WeightedInterval(){} void WeightedInterval::Init(int _size, int _start, int _end, int _readIndex, float _pValue) { size = _size; start = _start; end = _end; readIndex = _readIndex; pValue = _pValue; qStart = 0; qEnd = 0; nAnchors = 0; totalAnchorSize = 0; pValueVariance = 0; pValueNStdDev = 0; sizeVariance = 0; sizeNStdDev = 0; } WeightedInterval::WeightedInterval(int _size, int _start, int _end, int _readIndex, float _pValue) { Init(_size, _start, _end, _readIndex, _pValue); } WeightedInterval::WeightedInterval(int _size, int _start, int _end, int _readIndex, float _pValue, int _qStart, int _qEnd){ Init(_size, _start, _end, _readIndex, _pValue); qStart = _qStart; qEnd = _qEnd; } WeightedInterval::WeightedInterval(int _size, unsigned int _nAnchors, unsigned int _totalAnchorSize, int _start, int _end, int _readIndex, float _pValue, int _qStart, int _qEnd, std::vector &_matches) { Init(_size, _start, _end, _readIndex, _pValue); qStart = _qStart; qEnd = _qEnd; matches = _matches; nAnchors = _nAnchors; totalAnchorSize = _totalAnchorSize; } float WeightedInterval::PValue() const { return pValue; } int WeightedInterval::Size() const { return size; } int WeightedInterval::GetStrandIndex() const { return readIndex; } void WeightedInterval::SetPValueVariance(float v) { pValueVariance = v; } void WeightedInterval::SetPValueNStdDev(float v) { pValueNStdDev = v; } void WeightedInterval::SetSizeVariance(float v) { sizeVariance = v; } void WeightedInterval::SetSizeNStdDev(float v) { sizeNStdDev = v; } int WeightedInterval::operator<(const WeightedInterval &intv) const { if (size == intv.size) { return start > intv.start; } else { return size < intv.size; } } int WeightedInterval::operator==(const WeightedInterval &intv) const { return size == intv.size; } // Functions of class CompareWeightedIntervalByPValue int CompareWeightedIntervalByPValue::operator()(const WeightedInterval &a, const WeightedInterval &b) const { if (a.PValue() != b.PValue()) { return a.PValue() < b.PValue(); } else { return a.start < b.start; } } // Functions of class WeightedIntervalSet WeightedIntervalSet::WeightedIntervalSet() { maxSize = 0; } WeightedIntervalSet::WeightedIntervalSet(int maxSizeP): maxSize(maxSizeP) { } bool WeightedIntervalSet::insert(WeightedInterval &intv) { intv.isOverlapping = false; // // Make sure this interval is not contained inside any other // weighted intervals. // WeightedIntervalSet::iterator it = (*this).begin(); WeightedIntervalSet::iterator endit = (*this).end(); bool isContained = false; while (it != endit and isContained == false) { if (intv.qStart >= (*it).qStart and intv.qEnd <= (*it).qEnd and intv.start >= (*it).start and intv.end <= (*it).end and intv.readIndex == (*it).readIndex and intv.pValue >= (*it).pValue) { // // This already overlaps an existing interval, don't bother // trying to add it. // isContained = true; intv.isOverlapping = true; } else if((*it).start >= intv.start and (*it).end <= intv.end and (*it).qStart >= intv.qStart and (*it).qEnd <= intv.qEnd and (*it).readIndex == intv.readIndex and (*it).pValue >= intv.pValue) { WeightedIntervalSet::iterator next = it; ++next; this->erase(it); it = next; } else { ++it; } } // // Take a peek to see if this interval is too low of a score to // bother attempting to add at all. // if (size() >= maxSize and maxSize > 0) { WeightedIntervalSet::iterator last = (*this).end(); last--; if (last->pValue < intv.pValue) { return false; } } if (isContained == false) { bool addInsert = false; if (size() == 0) { addInsert = true; } else { it = end(); --it; if (size() < maxSize or (*it).pValue > intv.pValue) { addInsert = true; // // Keep the size of the stack the same if it is at the limit. // if (maxSize != 0 and size() >= maxSize and size() > 0) { erase(it); } } } if (addInsert) { ((T_WeightedIntervalMultiSet*)this)->insert(intv); } return true; } return false; } blasr_libcpp-master/alignment/datastructures/anchoring/WeightedInterval.hpp000066400000000000000000000050141260756663100300000ustar00rootroot00000000000000#ifndef _BLASR_WEIGHTED_INTERVAL_HPP_ #define _BLASR_WEIGHTED_INTERVAL_HPP_ #include #include #include "DNASequence.hpp" #include "datastructures/anchoring/MatchPos.hpp" class WeightedInterval { public: DNALength size; // not necessarily end - start + 1 DNALength start; DNALength end; DNALength qStart, qEnd; int readIndex; float pValue; std::vector positions; std::vector matches; float pValueVariance, pValueNStdDev; float sizeVariance, sizeNStdDev; int nAnchors; int totalAnchorSize; bool isOverlapping; WeightedInterval(); WeightedInterval(int _size, int _start, int _end, int _readIndex, float _pValue =0.0); WeightedInterval(int _size, int _start, int _end, int _readIndex, float _pValue, int _qStart, int _qEnd); WeightedInterval(int _size, unsigned int _nAnchors, unsigned int _totalAnchorSize, int _start, int _end, int _readIndex, float _pValue, int _qStart, int _qEnd, std::vector &_matches); void Init(int _size, int _start, int _end, int _readIndex, float _pValue); int GetStrandIndex() const; void SetPValueVariance(float v); void SetPValueNStdDev(float v); void SetSizeVariance(float v); void SetSizeNStdDev(float v); int operator<(const WeightedInterval &intv) const; int operator==(const WeightedInterval &intv) const; friend std::ostream & operator << (std::ostream & out, WeightedInterval & wi) { out << wi.size << " " << wi.start << " " << wi.end << " " << wi.qStart << " " << wi.qEnd << " " << wi.readIndex << " " << wi.pValue ; return out; } float PValue() const; int Size() const; }; class CompareWeightedIntervalByPValue { public: int operator()(const WeightedInterval& a, const WeightedInterval& b) const; }; typedef std::vector WeightedIntervalVector; typedef std::multiset T_WeightedIntervalMultiSet; class WeightedIntervalSet: public T_WeightedIntervalMultiSet { public: int maxSize; WeightedIntervalSet(); WeightedIntervalSet(int maxSizeP); bool insert(WeightedInterval &intv); friend std::ostream & operator << (std::ostream & out, WeightedIntervalSet & wis) { WeightedIntervalSet::iterator it; for (it = wis.begin(); it != wis.end(); it++) { out << *((WeightedInterval*)&(*it)) << std::endl; } return out; } }; #endif blasr_libcpp-master/alignment/files/000077500000000000000000000000001260756663100200775ustar00rootroot00000000000000blasr_libcpp-master/alignment/files/BaseSequenceIO.cpp000066400000000000000000000043711260756663100234030ustar00rootroot00000000000000#include #include "BaseSequenceIO.hpp" using namespace std; void BaseSequenceIO::SetFiles(FileType &pFileType, std::string &pFileName) { fileType = pFileType; fileName = pFileName; } FileType BaseSequenceIO::GetFileType() { return fileType; } int BaseSequenceIO::DetermineFileTypeByExtension(string &fileName, FileType &type, bool exitOnFailure) { string::size_type dotPos = fileName.rfind("."); if (dotPos != string::npos) { string extension; extension.assign(fileName, dotPos+1, fileName.size() - (dotPos+1)); if (extension == "fasta" or extension == "fa" or extension == "fas" or extension == "fsta" or extension == "screen" ) { type = Fasta; return 1; } else if (extension == "h5") { dotPos = fileName.rfind(".", dotPos-1); extension.assign(fileName, dotPos+1, fileName.size() - (dotPos + 1)); if (extension == "pls.h5" or extension == "plx.h5" ) { type = HDFPulse; return 1; } else if (extension == "bas.h5" or extension == "bax.h5") { type = HDFBase; return 1; } else if (extension == "ccs.h5") { type = HDFCCSONLY; return 1; } else { type = None; return 0; } } else if (extension == "fastq" or extension == "fq") { type = Fastq; return 1; } else if (extension == "4bit" or extension == "fourbit") { type = Fourbit; assert("Four bit reading is not yet implemented for the reader agglomerate!" == 0); return 1; } else if (extension == "bam") { type = PBBAM; return 1; } else { type = None; if (exitOnFailure) { cout << "ERROR, file type '." << extension << "' is not understood to be one of pls.h5, fasta, fastq, nor bam. " << endl; exit(1); } return 0; } return 0; } return 0; } blasr_libcpp-master/alignment/files/BaseSequenceIO.hpp000066400000000000000000000007731260756663100234120ustar00rootroot00000000000000#ifndef _BLASR_DATA_FILE_TYPE_HPP_ #define _BLASR_DATA_FILE_TYPE_HPP_ #include #include #include #include "Enumerations.h" class BaseSequenceIO { protected: FileType fileType; std::string fileName; public: void SetFiles(FileType &pFileType, std::string &pFileName); FileType GetFileType(); static int DetermineFileTypeByExtension(std::string &fileName, FileType &type, bool exitOnFailure=true); }; #endif // _BLASR_DATA_FILE_TYPE_HPP_ blasr_libcpp-master/alignment/files/CCSIterator.cpp000066400000000000000000000011571260756663100227310ustar00rootroot00000000000000#include "files/CCSIterator.hpp" void CCSIterator::Initialize(CCSSequence *_seqPtr) { seqPtr = _seqPtr; curPass = 0; numPasses = seqPtr->passDirection.size(); } int CCSIterator::GetNext(int &direction, int &startBase, int &numBases) { if (curPass >= numPasses) { return 0; } else { direction = seqPtr->passDirection[curPass]; startBase = seqPtr->passStartBase[curPass]; numBases = seqPtr->passNumBases[curPass]; ++curPass; return 1; } } void CCSIterator::Reset() { curPass = 0; } int CCSIterator::GetNumPasses() { return numPasses; } blasr_libcpp-master/alignment/files/CCSIterator.hpp000066400000000000000000000005621260756663100227350ustar00rootroot00000000000000#ifndef _BLASR_BASE_CCS_ITERATOR_HPP_ #define _BLASR_BASE_CCS_ITERATOR_HPP_ #include "CCSSequence.hpp" class CCSIterator { public: CCSSequence *seqPtr; int curPass; int numPasses; virtual void Initialize(CCSSequence *_seqPtr); virtual int GetNext(int &direction, int &startBase, int &numBases); void Reset(); int GetNumPasses(); }; #endif blasr_libcpp-master/alignment/files/FragmentCCSIterator.cpp000066400000000000000000000076251260756663100244230ustar00rootroot00000000000000#include "files/FragmentCCSIterator.hpp" void FragmentCCSIterator:: Initialize(CCSSequence *_seqPtr, RegionTable *_regionTablePtr) { seqPtr = _seqPtr; regionTablePtr = _regionTablePtr; curPass = 0; numPasses = 0; subreadIntervals.clear(); readIntervalDirection.clear(); int hqRegionStart, hqRegionEnd, hqRegionScore; hqRegionStart = hqRegionEnd = hqRegionScore = 0; bool hasHQRegion = LookupHQRegion(seqPtr->zmwData.holeNumber, *regionTablePtr, hqRegionStart, hqRegionEnd, hqRegionScore); if (not hasHQRegion) { return; // Don't bother if there is no HQ region. } // // Since this iterator covers all passes, and not just those // included in the ccs, the the regions need to be loaded. subreadIntervals = (*regionTablePtr)[seqPtr->HoleNumber()].SubreadIntervals(seqPtr->unrolledRead.length, true); if (subreadIntervals.size() == 0) { return;} readIntervalDirection.resize(subreadIntervals.size()); fill(readIntervalDirection.begin(), readIntervalDirection.end(), 2); // // Assign the read interval directions based on the pass direction // for the pass that has a similar start position. This allows // some wiggle although in practice they coordinates of the pass // start base and the template should always match up. // int i, j; for (i = 0; i < subreadIntervals.size(); i++) { for (j = 0; j < seqPtr->passStartBase.size(); j++) { if (abs( ((int)subreadIntervals[i].start) - ((int)seqPtr->passStartBase[j]) ) < 10) { readIntervalDirection[i] = seqPtr->passDirection[j]; break; } } } int firstAssignedSubread = 0; while (firstAssignedSubread < subreadIntervals.size() and readIntervalDirection[firstAssignedSubread] == 2) { firstAssignedSubread++; } if (firstAssignedSubread == subreadIntervals.size()) { // None of the subread has been assigned a direction, guess. firstAssignedSubread = 0; readIntervalDirection[0] = 0; } // Assign directions to intervals to the left of the first assigned. if (firstAssignedSubread < subreadIntervals.size() and subreadIntervals.size() > 0) { int curSubreadDir = readIntervalDirection[firstAssignedSubread]; assert(curSubreadDir == 0 or curSubreadDir == 1); for (i = firstAssignedSubread - 1; i >= 0; i--) { curSubreadDir = (curSubreadDir==0)?1:0; readIntervalDirection[i] = curSubreadDir; } } // Assign directions to intervals which are to the right of the first // assigned and whose direction is unknown. for (i = firstAssignedSubread + 1; i < subreadIntervals.size(); i++) { int & di = readIntervalDirection[i]; int dp = readIntervalDirection[i-1]; if (di != 0 and di != 1) { di = (dp==0)?1:0; } } // // So far, subreadIntervals have been sorted and each assigned // a passDirection. But since all or part of a subreadInterval // may not be in the HQ region, we need to trim low quality regions // from subreads, remove subreads which do not have any high quality // regions from subreadIntervals and their corresponding pass directions // from readIntervalDirection. // GetHighQualitySubreadsIntervals(subreadIntervals, readIntervalDirection, hqRegionStart, hqRegionEnd); // Update number of passes. numPasses = subreadIntervals.size(); } int FragmentCCSIterator:: GetNext(int &direction, int &startBase, int &numBases) { if (curPass >= subreadIntervals.size()) { return 0; } direction = int(readIntervalDirection[curPass]); startBase = int(subreadIntervals[curPass].start); numBases = int(subreadIntervals[curPass].end - subreadIntervals[curPass].start); ++curPass; return 1; } blasr_libcpp-master/alignment/files/FragmentCCSIterator.hpp000066400000000000000000000010651260756663100244200ustar00rootroot00000000000000#ifndef _BLASR_FRAGMENT_CCS_ITERATOR_HPP_ #define _BLASR_FRAGMENT_CCS_ITERATOR_HPP_ #include #include "reads/RegionTable.hpp" #include "utils/RegionUtils.hpp" #include "files/CCSIterator.hpp" class FragmentCCSIterator : public CCSIterator { public: RegionTable *regionTablePtr; std::vector subreadIntervals; std::vector readIntervalDirection; virtual void Initialize(CCSSequence *_seqPtr, RegionTable *_regionTablePtr); virtual int GetNext(int & direction, int & startBase, int & numBases); }; #endif blasr_libcpp-master/alignment/files/ReaderAgglomerate.cpp000066400000000000000000000352411260756663100241620ustar00rootroot00000000000000#include "files/ReaderAgglomerate.hpp" void ReaderAgglomerate::SetToUpper() { fastaReader.SetToUpper(); } void ReaderAgglomerate::InitializeParameters() { start = 0; stride = 1; subsample = 1.1; readQuality = 1; useRegionTable = true; ignoreCCS = true; readType = ReadType::SUBREAD; #ifdef USE_PBBAM bamFilePtr = NULL; entireFileQueryPtr = NULL; zmwGroupQueryPtr = NULL; #endif } ReaderAgglomerate::ReaderAgglomerate() { InitializeParameters(); } ReaderAgglomerate::ReaderAgglomerate(float _subsample) { this->InitializeParameters(); subsample = _subsample; } ReaderAgglomerate::ReaderAgglomerate(int _stride) { this->InitializeParameters(); stride = _stride; } ReaderAgglomerate::ReaderAgglomerate(int _start, int _stride) { this->InitializeParameters(); start = _start; stride = _stride; } void ReaderAgglomerate::GetMovieName(string &movieName) { if (fileType == Fasta || fileType == Fastq) { movieName = fileName; } else if (fileType == HDFPulse || fileType == HDFBase) { movieName = hdfBasReader.GetMovieName(); } else if (fileType == HDFCCS || fileType == HDFCCSONLY) { movieName = hdfCcsReader.GetMovieName(); } else if (fileType == PBBAM) { #ifdef USE_PBBAM assert("Reading movie name from BAM using ReaderAgglomerate is not supported." == 0); #endif } } void ReaderAgglomerate::GetChemistryTriple(string & bindingKit, string & sequencingKit, string & baseCallerVersion) { if (fileType == HDFPulse || fileType == HDFBase) { hdfBasReader.GetChemistryTriple(bindingKit, sequencingKit, baseCallerVersion); } else if (fileType == HDFCCS || fileType == HDFCCSONLY) { hdfCcsReader.GetChemistryTriple(bindingKit, sequencingKit, baseCallerVersion); } else if (fileType == PBBAM) { #ifdef USE_PBBAM assert("Reading chemistry triple from BAM using ReaderAgglomerate is not supported." == 0); #endif } else { sequencingKit = bindingKit = baseCallerVersion = ""; } } void ReaderAgglomerate::SetReadType(const ReadType::ReadTypeEnum & readType_) { readType = readType_; } ReadType::ReadTypeEnum ReaderAgglomerate::GetReadType() { return readType; } bool ReaderAgglomerate::FileHasZMWInformation() { return (fileType == HDFPulse || fileType == HDFBase || fileType == HDFCCS || fileType == HDFCCSONLY); } void ReaderAgglomerate::SkipReadQuality() { readQuality = 0; } void ReaderAgglomerate::IgnoreCCS() { ignoreCCS = true; } void ReaderAgglomerate::UseCCS() { ignoreCCS = false; hdfBasReader.SetReadBasesFromCCS(); } int ReaderAgglomerate::Initialize(string &pFileName) { if (DetermineFileTypeByExtension(pFileName, fileType)) { fileName = pFileName; return Initialize(); } return false; } bool ReaderAgglomerate::SetReadFileName(string &pFileName) { if (DetermineFileTypeByExtension(pFileName, fileType)) { fileName = pFileName; return true; } else { return false; } } int ReaderAgglomerate::Initialize(FileType &pFileType, string &pFileName) { SetFiles(pFileType, pFileName); return Initialize(); } #define UNREACHABLE() \ cout << "ERROR! Hit unreachable code in " << __FILE__ << ':' << __LINE__ << endl; \ assert(0) bool ReaderAgglomerate::HasRegionTable() { switch(fileType) { case PBBAM: case Fasta: case Fastq: return false; break; case HDFPulse: case HDFBase: return hdfBasReader.HasRegionTable(); break; case HDFCCSONLY: case HDFCCS: return hdfCcsReader.HasRegionTable(); break; case Fourbit: case None: UNREACHABLE(); break; } return false; } #ifdef USE_PBBAM #define GET_NEXT_FROM_BAM() \ numRecords = (bamIterator == entireFileQueryPtr->end())?0:1;\ if (numRecords != 0) {seq.Copy(*bamIterator); bamIterator++;} #define RESET_PBBAM_PTRS() \ if (bamFilePtr != NULL) {delete bamFilePtr; bamFilePtr = NULL;} \ if (zmwGroupQueryPtr != NULL) {delete zmwGroupQueryPtr; zmwGroupQueryPtr = NULL;} \ if (entireFileQueryPtr != NULL) {delete entireFileQueryPtr; entireFileQueryPtr = NULL;} #endif int ReaderAgglomerate::Initialize() { int init = 1; switch(fileType) { case Fasta: init = fastaReader.Init(fileName); break; case Fastq: init = fastqReader.Init(fileName); break; case HDFCCSONLY: ignoreCCS = false; hdfCcsReader.SetReadBasesFromCCS(); hdfCcsReader.InitializeDefaultIncludedFields(); init = hdfCcsReader.Initialize(fileName); if (init == 0) return 0; break; case HDFPulse: case HDFBase: // // Here one needs to test and see if the hdf file contains ccs. // If this is the case, then the file type is HDFCCS. if (hdfCcsReader.BasFileHasCCS(fileName) and !ignoreCCS) { fileType = HDFCCS; hdfCcsReader.InitializeDefaultIncludedFields(); init = hdfCcsReader.Initialize(fileName); if (init == 0) return 0; } else { hdfBasReader.InitializeDefaultIncludedFields(); init = hdfBasReader.Initialize(fileName); // // This code is added so that meaningful names are printed // when running on simulated data that contains the coordinate // information. if (init == 0) return 0; } break; case PBBAM: #ifdef USE_PBBAM RESET_PBBAM_PTRS(); try { bamFilePtr = new PacBio::BAM::BamFile(fileName); assert(bamFilePtr != nullptr); } catch (std::exception e) { cout << "ERROR! Failed to open " << fileName << ": " << e.what() << endl; return 0; } entireFileQueryPtr = new PacBio::BAM::EntireFileQuery(*bamFilePtr); assert(entireFileQueryPtr != nullptr); bamIterator = entireFileQueryPtr->begin(); zmwGroupQueryPtr = new PacBio::BAM::QNameQuery(*bamFilePtr); assert(zmwGroupQueryPtr != nullptr); zmwGroupIterator = zmwGroupQueryPtr->begin(); break; #endif case HDFCCS: case Fourbit: case None: UNREACHABLE(); break; } readGroupId = ""; if (init == 0 || (start > 0 && Advance(start) == 0) ){ return 0; }; if (fileType != PBBAM) { // All reads from a non-PBBAM file must have the same read group id. // Reads from a PABBAM file may come from different read groups. // We have sync reader.readGroupId and SMRTSequence.readGroupId everytime // GetNext() is called. string movieName; GetMovieName(movieName); readGroupId = MakeReadGroupId(movieName, readType); } return 1; } ReaderAgglomerate & ReaderAgglomerate::operator=(ReaderAgglomerate &rhs) { fileType = rhs.fileType; fileName = rhs.fileName; return *this; } bool ReaderAgglomerate::Subsample(float rate) { bool retVal = true; while( (rand() % 100 + 1) > (rate * 100) and (retVal = Advance(1))); return retVal; } int ReaderAgglomerate::GetNext(FASTASequence &seq) { int numRecords = 0; if (Subsample(subsample) == 0) { return 0; } switch(fileType) { case Fasta: numRecords = fastaReader.GetNext(seq); break; case Fastq: numRecords = fastqReader.GetNext(seq); break; case HDFPulse: case HDFBase: numRecords = hdfBasReader.GetNext(seq); break; case HDFCCSONLY: case HDFCCS: cout << "ERROR! Reading CCS into a structure that cannot handle it." << endl; assert(0); break; case PBBAM: #ifdef USE_PBBAM GET_NEXT_FROM_BAM(); break; #endif case Fourbit: case None: UNREACHABLE(); break; } seq.CleanupOnFree(); return numRecords; } int ReaderAgglomerate::GetNext(FASTQSequence &seq) { int numRecords = 0; if (Subsample(subsample) == 0) { return 0; } switch(fileType) { case Fasta: numRecords = fastaReader.GetNext(seq); break; case Fastq: numRecords = fastqReader.GetNext(seq); break; case HDFPulse: case HDFBase: numRecords = hdfBasReader.GetNext(seq); break; case PBBAM: #ifdef USE_PBBAM GET_NEXT_FROM_BAM(); break; #endif case HDFCCSONLY: case HDFCCS: cout << "ERROR! Reading CCS into a structure that cannot handle it." << endl; assert(0); break; case Fourbit: case None: UNREACHABLE(); break; } if (stride > 1) Advance(stride-1); return numRecords; } int ReaderAgglomerate::GetNext(vector & reads) { int numRecords = 0; reads.clear(); if (Subsample(subsample) == 0) { return 0; } if (fileType == PBBAM) { #ifdef USE_PBBAM if (zmwGroupIterator != zmwGroupQueryPtr->end()) { const vector & records = *zmwGroupIterator; numRecords = records.size(); reads.resize(numRecords); for (size_t i=0; i < records.size(); i++) { reads[i].Copy(records[i]); } zmwGroupIterator++; } #endif } else { UNREACHABLE(); } if (numRecords >= 1) readGroupId = reads[0].ReadGroupId(); return numRecords; } int ReaderAgglomerate::GetNext(SMRTSequence &seq) { int numRecords = 0; if (Subsample(subsample) == 0) { return 0; } switch(fileType) { case Fasta: numRecords = fastaReader.GetNext(seq); break; case Fastq: numRecords = fastqReader.GetNext(seq); break; case HDFPulse: case HDFBase: numRecords = hdfBasReader.GetNext(seq); break; case HDFCCSONLY: cout << "ERROR! Reading CCS into a structure that cannot handle it." << endl; assert(0); break; case HDFCCS: assert(ignoreCCS == false); assert(hdfBasReader.readBasesFromCCS == true); numRecords = hdfBasReader.GetNext(seq); break; case PBBAM: #ifdef USE_PBBAM GET_NEXT_FROM_BAM(); break; #endif case Fourbit: case None: UNREACHABLE(); break; } // A sequence read from a Non-BAM files does not have read group id // and should be empty, use this->readGroupId instead. Otherwise, // read group id should be loaded from BamRecord to SMRTSequence, // update this->readGroupId accordingly. if (fileType != PBBAM) seq.ReadGroupId(readGroupId); else readGroupId = seq.ReadGroupId(); if (stride > 1) Advance(stride-1); return numRecords; } int ReaderAgglomerate::GetNextBases(SMRTSequence &seq, bool readQVs) { int numRecords = 0; if (Subsample(subsample) == 0) { return 0; } switch(fileType) { case Fasta: cout << "ERROR! Can not GetNextBases from a Fasta File." << endl; assert(0); break; case Fastq: cout << "ERROR! Can not GetNextBases from a Fastq File." << endl; assert(0); break; case HDFPulse: case HDFBase: numRecords = hdfBasReader.GetNextBases(seq, readQVs); break; case HDFCCSONLY: cout << "ERROR! Reading CCS into a structure that cannot handle it." << endl; assert(0); break; case HDFCCS: cout << "ERROR! Can not GetNextBases from a CCS File." << endl; assert(0); break; case PBBAM: #ifdef USE_PBBAM cout << "ERROR! Can not GetNextBases from a BAM File." << endl; #endif case Fourbit: case None: UNREACHABLE(); break; } if (fileType != PBBAM) seq.ReadGroupId(readGroupId); else readGroupId = seq.ReadGroupId(); if (stride > 1) Advance(stride-1); return numRecords; } int ReaderAgglomerate::GetNext(CCSSequence &seq) { int numRecords = 0; if (Subsample(subsample) == 0) { return 0; } switch(fileType) { case Fasta: // This just reads in the fasta sequence as if it were a ccs sequence numRecords = fastaReader.GetNext(seq); seq.SubreadStart(0).SubreadEnd(0); break; case Fastq: numRecords = fastqReader.GetNext(seq); seq.SubreadStart(0).SubreadEnd(0); break; case HDFPulse: case HDFBase: numRecords = hdfBasReader.GetNext(seq); break; case HDFCCSONLY: case HDFCCS: numRecords = hdfCcsReader.GetNext(seq); break; case PBBAM: #ifdef USE_PBBAM cout << "ERROR! Could not read BamRecord as CCSSequence" << endl; #endif case Fourbit: case None: UNREACHABLE(); break; } if (fileType != PBBAM) seq.ReadGroupId(readGroupId); else readGroupId = seq.ReadGroupId(); if (stride > 1) Advance(stride-1); return numRecords; } int ReaderAgglomerate::Advance(int nSteps) { int i; switch(fileType) { case Fasta: return fastaReader.Advance(nSteps); case HDFPulse: case HDFBase: return hdfBasReader.Advance(nSteps); case HDFCCSONLY: case HDFCCS: return hdfCcsReader.Advance(nSteps); case Fastq: return fastqReader.Advance(nSteps); case PBBAM: case Fourbit: case None: UNREACHABLE(); break; } return false; } void ReaderAgglomerate::Close() { switch(fileType) { case Fasta: fastaReader.Close(); break; case Fastq: fastqReader.Close(); break; case HDFPulse: case HDFBase: hdfBasReader.Close(); break; case HDFCCSONLY: case HDFCCS: hdfCcsReader.Close(); break; case PBBAM: #ifdef USE_PBBAM RESET_PBBAM_PTRS(); break; #endif case Fourbit: case None: UNREACHABLE(); break; } } blasr_libcpp-master/alignment/files/ReaderAgglomerate.hpp000066400000000000000000000065121260756663100241660ustar00rootroot00000000000000#ifndef _BLASR_READER_AGGLOMERATE_HPP_ #define _BLASR_READER_AGGLOMERATE_HPP_ #include #include "Enumerations.h" #include "reads/ReadType.hpp" #include "files/BaseSequenceIO.hpp" #include "FASTAReader.hpp" #include "FASTQReader.hpp" #include "CCSSequence.hpp" #include "SMRTSequence.hpp" #include "StringUtils.hpp" #include "HDFBasReader.hpp" #include "HDFCCSReader.hpp" #ifdef USE_PBBAM #include "pbbam/BamFile.h" #include "pbbam/EntireFileQuery.h" #include "pbbam/QNameQuery.h" #include "pbbam/BamRecord.h" #endif class ReaderAgglomerate : public BaseSequenceIO { FASTAReader fastaReader; FASTQReader fastqReader; int readQuality; int stride; int start; float subsample; bool useRegionTable; bool ignoreCCS; ReadType::ReadTypeEnum readType; public: // // Create interfaces for reading hdf // T_HDFBasReader hdfBasReader; HDFCCSReader hdfCcsReader; vector readBuffer; vector ccsBuffer; string readGroupId; public: void SetToUpper(); void InitializeParameters(); ReaderAgglomerate(); ReaderAgglomerate(float _subsample); ReaderAgglomerate(int _stride); ReaderAgglomerate(int _start, int _stride); void GetMovieName(string &movieName); /// Get BindingKit, SequencingKit and Base Caller Version from h5. /// /// /param [out] sequencingKit - sequencingKit from /// /ScanData/RunInfo/SequencingKit. /// /// /param [out] bindingKit - BindingKit from /// /ScanData/RunInfo/BindingKit. /// /// /param [out] baseCallerVersion - Base Caller Version /// from /PulseData/BaseCalls/ChangeListID. /// void GetChemistryTriple(string & bindingKit, string & sequencingKit, string & baseCallerVersion); bool FileHasZMWInformation(); void SkipReadQuality(); void IgnoreCCS(); void UseCCS(); int Initialize(string &pFileName); bool SetReadFileName(string &pFileName); int Initialize(FileType &pFileType, string &pFileName); bool HasRegionTable(); int Initialize(); ReaderAgglomerate &operator=(ReaderAgglomerate &rhs); bool Subsample(float rate); // Set read type to SUBREAD, CCS, or UNKNOWN. void SetReadType(const ReadType::ReadTypeEnum & readType_); // returns read type, SUBREAD, CCS, or UNKNOWN ReadType::ReadTypeEnum GetReadType(); public: int GetNext(FASTASequence &seq); int GetNext(FASTQSequence &seq); int GetNext(SMRTSequence &seq); int GetNext(CCSSequence &seq); int GetNext(vector & reads); template int GetNext(T_Sequence & seq, int & randNum); int GetNextBases(SMRTSequence & seq, bool readQVs); int Advance(int nSteps); void Close(); #ifdef USE_PBBAM public: // Define reader to fetch sequences from bam. PacBio::BAM::BamFile * bamFilePtr; PacBio::BAM::EntireFileQuery * entireFileQueryPtr; PacBio::BAM::EntireFileQuery::iterator bamIterator; PacBio::BAM::QNameQuery * zmwGroupQueryPtr; PacBio::BAM::QNameQuery::iterator zmwGroupIterator; #endif }; template int ReadChunkByNReads(ReaderAgglomerate &reader, vector &reads, int maxNReads); template int ReadChunkBySize (ReaderAgglomerate &reader, vector &reads, int maxMemorySize); #include "files/ReaderAgglomerateImpl.hpp" #endif blasr_libcpp-master/alignment/files/ReaderAgglomerateImpl.hpp000066400000000000000000000020541260756663100250050ustar00rootroot00000000000000#ifndef _BLASR_READER_AGGLOMERATE_IMPL_HPP_ #define _BLASR_READER_AGGLOMERATE_IMPL_HPP_ template int ReaderAgglomerate::GetNext(T_Sequence & seq, int & randNum) { randNum = rand(); return GetNext(seq); } template int ReadChunkByNReads(ReaderAgglomerate &reader, vector &reads, int maxNReads) { T_Sequence seq; int nReads = 0; while(nReads < maxNReads) { if (reader.GetNext(seq)) { reads.push_back(seq); ++nReads; } else { break; } } return nReads; } template int ReadChunkBySize (ReaderAgglomerate &reader, vector &reads, int maxMemorySize) { T_Sequence seq; int nReads = 0; int totalStorage = 0; while (totalStorage < maxMemorySize) { if (reader.GetNext(seq)) { reads.push_back(seq); totalStorage += seq.GetStorageSize(); nReads++; } else { break; } } return nReads; } #endif blasr_libcpp-master/alignment/format/000077500000000000000000000000001260756663100202655ustar00rootroot00000000000000blasr_libcpp-master/alignment/format/BAMPrinter.hpp000066400000000000000000000021731260756663100227440ustar00rootroot00000000000000#ifndef _BLASR_FORMAT_BAMPRINTER_HPP_ #define _BLASR_FORMAT_BAMPRINTER_HPP_ #ifdef USE_PBBAM #include #include #include "format/SAMPrinter.hpp" #include "pbbam/BamHeader.h" #include "pbbam/BamWriter.h" namespace BAMOutput { template void SetAlignedSequence(T_AlignmentCandidate &alignment, T_Sequence &read, T_Sequence &alignedSeq); template void CreateCIGARString(T_AlignmentCandidate &alignment, T_Sequence &read, std::string &cigarString, const bool cigarUseSeqMatch); template void AlignmentToBamRecord(T_AlignmentCandidate & alignment, T_Sequence & read, PacBio::BAM::BamRecord & bamRecord, AlignmentContext & context, SupplementalQVList & qvList, Clipping clipping, bool cigarUseSeqMatch); template void PrintAlignment(T_AlignmentCandidate &alignment, T_Sequence &read, PacBio::BAM::BamWriter &bamWriter, AlignmentContext &context, SupplementalQVList & qvList, Clipping clipping, bool cigarUseSeqMatch=false); } #include "BAMPrinterImpl.hpp" #endif #endif blasr_libcpp-master/alignment/format/BAMPrinterImpl.hpp000066400000000000000000000177421260756663100235760ustar00rootroot00000000000000#ifndef _BLASR_BAM_PRINTER_IMPL_HPP_ #define _BLASR_BAM_PRINTER_IMPL_HPP_ #ifdef USE_PBBAM #include #include "utils/SMRTTitle.hpp" using namespace BAMOutput; using namespace std; #include "pbbam/BamRecord.h" #include "pbbam/BamFile.h" template void BAMOutput::CreateCIGARString(T_AlignmentCandidate &alignment, T_Sequence &read, std::string &cigarString, const bool cigarUseSeqMatch) { cigarString = ""; // All cigarString use the no clipping core std::vector opSize; std::vector opChar; SAMOutput::CreateNoClippingCigarOps(alignment, opSize, opChar, cigarUseSeqMatch); // Clipping needs to be added DNALength prefixSoftClip = alignment.QAlignStart() - read.SubreadStart(); DNALength suffixSoftClip = read.SubreadEnd() - alignment.QAlignEnd(); if (alignment.tStrand == 1) { std::swap(prefixSoftClip, suffixSoftClip); } if (prefixSoftClip > 0) { opSize.insert(opSize.begin(), prefixSoftClip); opChar.insert(opChar.begin(), 'S'); } if (suffixSoftClip > 0) { opSize.push_back(suffixSoftClip); opChar.push_back('S'); } SAMOutput::CigarOpsToString(opSize, opChar, cigarString); } template void BAMOutput::SetAlignedSequence(T_AlignmentCandidate &alignment, T_Sequence &read, T_Sequence &alignedSeq) { if (alignment.tStrand == 0) { alignedSeq.ReferenceSubstring(read); } else { T_Sequence subSeq; subSeq.ReferenceSubstring(read); subSeq.MakeRC(alignedSeq); } } template void BAMOutput::AlignmentToBamRecord(T_AlignmentCandidate & alignment, T_Sequence & read, PacBio::BAM::BamRecord & bamRecord, AlignmentContext & context, SupplementalQVList & qvList, Clipping clipping, bool cigarUseSeqMatch) { // soft clipping and subread clipping are identical for BAM assert(clipping == SAMOutput::soft or clipping == SAMOutput::subread); // Build from scratch if input reads are not from pbbam files. // Otherwise, use API provided by pbbam to make alignments from bamRecords. bool buildFromScratch = false; if (dynamic_cast(&read) == NULL) { //not SMRTSequence buildFromScratch = true; } else { //is SMRTSequence, but not copied from bam. if (not read.copiedFromBam) { buildFromScratch = true; } } // build cigar string. string cigarString; BAMOutput::CreateCIGARString(alignment, read, cigarString, cigarUseSeqMatch); PacBio::BAM::Cigar cigar = PacBio::BAM::Cigar::FromStdString(cigarString); T_Sequence alignedSequence; BAMOutput::SetAlignedSequence(alignment, read, alignedSequence); // build flag uint16_t flag; BuildFlag(alignment, context, flag); // Get sequence string. string seqString; seqString.assign((char*)alignedSequence.seq, alignedSequence.length); // Get alignment starting position on reference sequence forward strand. PacBio::BAM::Position pos = 0; PacBio::BAM::Strand strand; if (alignment.tStrand == 0) { pos = static_cast(alignment.TAlignStart()); strand = PacBio::BAM::Strand::FORWARD; } else { pos = static_cast(alignment.tLength - (alignment.TAlignStart() + alignment.TEnd())); strand = PacBio::BAM::Strand::REVERSE; } if (buildFromScratch) { SMRTTitle smrtTitle(alignment.qName); if (smrtTitle.isSMRTTitle) { bamRecord.Impl().Name(smrtTitle.ToString()); } else { cout << "ERROR, can not convert non-pacbio reads to pbbam record." << endl; exit(-1); } bamRecord.Impl().SetSequenceAndQualities(seqString, alignedSequence.qual.ToString()); bamRecord.Impl().CigarData(cigar); bamRecord.Impl().Bin(0); bamRecord.Impl().InsertSize(0); bamRecord.Impl().MapQuality(static_cast(alignment.mapQV)); bamRecord.Impl().MatePosition(static_cast(-1)); bamRecord.Impl().MateReferenceId(static_cast(-1)); bamRecord.Impl().Position(pos); bamRecord.Impl().ReferenceId(static_cast(alignment.tIndex)); if (strand == PacBio::BAM::Strand::REVERSE) { bamRecord.Impl().SetReverseStrand(true); } // Add tags required for bax->bam. PacBio::BAM::TagCollection tags; tags["RG"] = context.readGroupId; if (dynamic_cast(&read) == NULL) { // subread tags["qs"] = read.SubreadStart(); tags["qe"] = read.SubreadEnd(); /// Number of passes for a subread should always be 1. tags["np"] = 1; } else { // ccs read /// Number of passes for ccs reads. tags["np"] = (static_cast(&read))->numPasses; } tags["zm"] = read.zmwData.holeNumber; // Build QV tags. // Skip tags not define in BAM specification 3.0. // including XL, XT, XQ, XS, XE, YS, YE. // // Write out optional quality values. If qvlist does not // have any qv's signaled to print, this is a no-op. // // First transform characters that are too large to printable ones. qvList.FormatQVOptionalFields(alignedSequence); // Add QVs to BamRecordImpl. string insertionQVs, deletionQVs, substitutionQVs, mergeQVs, substitutionTags, deletionTags; bool alnReverse = (alignment.tStrand == 1); // reverse-complement alignment // If this is a reverse-complement alignment, bases and QVs of // alignedSequence are reverse(-complement) of the sequence read // from bax.h5 file. With PB BAM specification 3.0, QVs will be stored // in BAM Record, therefore, reverse orders of QVs before add QV tags. if (alignedSequence.GetQVs("InsertionQV", insertionQVs, alnReverse)) { tags["iq"] = insertionQVs; } if (alignedSequence.GetQVs("DeletionQV", deletionQVs, alnReverse)) { tags["dq"] = deletionQVs; } if (alignedSequence.GetQVs("SubstitutionQV", substitutionQVs, alnReverse)) { tags["sq"] = substitutionQVs; } if (alignedSequence.GetQVs("MergeQV", mergeQVs, alnReverse)) { tags["mq"] = mergeQVs; } // substitutionTag is not included by default if (alignedSequence.GetQVs("DeletionTag", deletionTags, alnReverse)) { tags["dt"] = deletionTags; } bamRecord.Impl().Tags(tags); } else { // The following code can be used to hard-clip reads, if needed. // PacBio::BAM::Position clipStart = read.bamRecord.QueryStart() + alignment.QAlignStart(); // PacBio::BAM::Position clipEnd = read.bamRecord.QueryStart() + alignment.QAlignEnd(); // bamRecord = PacBio::BAM::BamRecord::Clipped(read.bamRecord, // PacBio::BAM::ClipType::CLIP_TO_QUERY, // clipStart, clipEnd). bamRecord = PacBio::BAM::BamRecord::Mapped(read.bamRecord, static_cast(alignment.tIndex), static_cast(pos), strand, cigar, static_cast(alignment.mapQV)); } // Add tags common for bax->bam and bam->bam. bamRecord.Impl().AddTag("AS", alignment.score); bamRecord.Impl().AddTag("NM", context.editDist); // Set Flag bamRecord.Impl().Flag(static_cast(flag)); } template void BAMOutput::PrintAlignment(T_AlignmentCandidate &alignment, T_Sequence &read, PacBio::BAM::BamWriter &bamWriter, AlignmentContext &context, SupplementalQVList & qvList, Clipping clipping, bool cigarUseSeqMatch) { PacBio::BAM::BamRecord bamRecord; BAMOutput::AlignmentToBamRecord(alignment, read, bamRecord, context, qvList, clipping, cigarUseSeqMatch); bamWriter.Write(bamRecord); } #endif #endif blasr_libcpp-master/alignment/format/CompareSequencesPrinter.cpp000066400000000000000000000005041260756663100255760ustar00rootroot00000000000000#include "CompareSequencesPrinter.hpp" void CompareSequencesOutput::PrintHeader(std::ostream &out) { out << "qName qLength qStart qEnd qStrand " << "tName tLength tStart tEnd tStrand " << "score numMatch numMismatch numIns numDel " << "mapQV qAlignedSeq matchPattern tAlignedSeq" << std::endl; } blasr_libcpp-master/alignment/format/CompareSequencesPrinter.hpp000066400000000000000000000010221260756663100255770ustar00rootroot00000000000000#ifndef _BLASR_COMPARE_SEQUENCES_PRINTER_HPP_ #define _BLASR_COMPARE_SEQUENCES_PRINTER_HPP_ #include #include #include "algorithms/alignment/AlignmentUtils.hpp" namespace CompareSequencesOutput{ void PrintHeader(std::ostream &out); template void Print(T_Alignment &alignment, T_QuerySequence &qseq, T_TargetSequence &tseq, std::ostream &out, bool refForward=true); } #include "CompareSequencesPrinterImpl.hpp" #endif blasr_libcpp-master/alignment/format/CompareSequencesPrinterImpl.hpp000066400000000000000000000051061260756663100264300ustar00rootroot00000000000000#ifndef _BLASR_COMPARE_SEQUENCES_PRINTER_IMPL_HPP_ #define _BLASR_COMPARE_SEQUENCES_PRINTER_IMPL_HPP_ template void CompareSequencesOutput::Print(T_Alignment &alignment, T_QuerySequence &qseq, T_TargetSequence &tseq, std::ostream &out, bool refForward) { std::string queryStr, alignStr, textStr; CreateAlignmentStrings(alignment, qseq, tseq, textStr, alignStr, queryStr); if (refForward == false) { if (alignment.qStrand == 1 and alignment.tStrand == 0) { DNALength alignedSeqToEnd = 0; // DNALength alignedTSeqToEnd = 0; if (alignment.blocks.size() > 0) { // First compute the offset of the reverse of the substring that was aligned. alignedSeqToEnd = alignment.qLength - (alignment.qAlignedSeqPos + alignment.qAlignedSeq.length); DNALength alignEndToSubstrEnd = alignment.qAlignedSeq.length - (alignment.qPos + alignment.blocks[alignment.blocks.size()-1].qPos + alignment.blocks[alignment.blocks.size()-1].length); alignment.qPos = alignEndToSubstrEnd; } alignment.qAlignedSeqPos = alignedSeqToEnd; alignment.qStrand = 0; alignment.tStrand = 1; } } PrintCompareSequencesAlignmentStats(alignment, out); // change the spaces in the align string to *s for easy parsing of alignment VectorIndex i; for (i = 0; i < alignStr.size(); i++ ) { if (alignStr[i] == ' ') alignStr[i] = '*'; } if (refForward == false and alignment.tStrand == 1) { // // Build reverse complement strings. // std::string queryStrRC, alignStrRC, textStrRC; queryStrRC.resize(queryStr.size()); alignStrRC.resize(alignStr.size()); textStrRC.resize(alignStr.size()); DNALength pos; DNALength alignStringLength = alignStr.size(); for (pos = 0; pos < alignStringLength; pos++ ) { if (queryStr[pos] != '-') { queryStrRC[alignStringLength-pos-1] = ReverseComplementNuc[queryStr[pos]]; } else { queryStrRC[alignStringLength-pos-1] = '-'; } alignStrRC[alignStringLength-pos-1] = alignStr[pos]; if (textStr[pos] != '-') { textStrRC[alignStringLength-pos-1] = ReverseComplementNuc[textStr[pos]]; } else { textStrRC[alignStringLength-pos-1] = '-'; } } queryStr = queryStrRC; alignStr = alignStrRC; textStr = textStrRC; } // Headers of m5 format are: // qName qSeqLength qStart qEnd qStrand // tName tSeqLength tStart tEnd tStrand // score numMatch numMismatch numIns numDel // mapQV qAlignedSeq matchPattern tAlignedSeq out << queryStr << " " << alignStr << " " << textStr << std::endl; } #endif blasr_libcpp-master/alignment/format/IntervalPrinter.cpp000066400000000000000000000051451260756663100241260ustar00rootroot00000000000000#include "IntervalPrinter.hpp" void IntervalOutput::Print(T_AlignmentCandidate &alignment, std::ostream &outFile) { int mapQV = alignment.mapQV; int lastBlock = alignment.blocks.size()-1; if (lastBlock < 0) return; outFile << alignment.qName << " " << alignment.tName << " " << alignment.score << " " << alignment.pctSimilarity << " " << alignment.qStrand << " " << alignment.QAlignStart() << " " << alignment.QAlignEnd() << " " << alignment.qLength << " " << alignment.tStrand << " " << alignment.TAlignStart() << " " << (alignment.tAlignedSeqPos + alignment.tPos + alignment.blocks[lastBlock].tPos + alignment.blocks[lastBlock].length) << " " << alignment.tLength << " " << mapQV << std::endl; //Remove the last four fields from m4 format. //<< " " << alignment.nCells << " " << alignment.clusterScore //<< " " << alignment.probScore << " " //<< alignment.numSignificantClusters } // Print an alignment from a sam file in Interval (m 4) format. void IntervalOutput::PrintFromSAM(AlignmentCandidate<> &alignment, std::ostream &outFile) { int mapQV = alignment.mapQV; int lastBlock = alignment.blocks.size()-1; if (lastBlock < 0) return; outFile << alignment.qName << " " << alignment.tName << " " << alignment.score << " " << alignment.pctSimilarity << " " << alignment.qStrand << " " << alignment.QAlignStart() << " " << alignment.QAlignEnd() << " " << alignment.qLength << " " << alignment.tStrand << " "; DNALength tS = alignment.TAlignStart(); DNALength tE = alignment.tAlignedSeqPos + alignment.tPos + alignment.blocks[lastBlock].tPos + alignment.blocks[lastBlock].length; if (alignment.tStrand == 1) { // Since the alignment is from a SAM file and the reference // is reverse, compute tS and tE in the coordinate of the reverse // complementary sequence DNALength tmp = tS; tS = alignment.tLength - tE; tE = alignment.tLength - tmp; } outFile << tS << " " << tE << " " << alignment.tLength << " " << mapQV << std::endl; } void IntervalOutput::PrintHeader(std::ostream &out) { out << "qName tName score percentSimilarity qStrand " << "qStart qEnd qLength tStrand tStart tEnd tLength mapQV" << std::endl; //ncells clusterScore probscore numSigClusters" << endl; } blasr_libcpp-master/alignment/format/IntervalPrinter.hpp000066400000000000000000000007371260756663100241350ustar00rootroot00000000000000#ifndef _BLASR_INTERVAL_ALIGNMENT_PRINTER_HPP_ #define _BLASR_INTERVAL_ALIGNMENT_PRINTER_HPP_ #include "datastructures/alignment/AlignmentCandidate.hpp" #include "FASTQSequence.hpp" namespace IntervalOutput{ void Print(T_AlignmentCandidate &alignment, std::ostream &outFile); // Print an alignment from a sam file in Interval (m 4) format. void PrintFromSAM(AlignmentCandidate<> &alignment, std::ostream &outFile); void PrintHeader(std::ostream &out); } #endif blasr_libcpp-master/alignment/format/SAMHeaderPrinter.cpp000066400000000000000000000347601260756663100241000ustar00rootroot00000000000000#include #include "format/SAMHeaderPrinter.hpp" const std::string SAMVERSION("1.5"); const std::string PBBAMVERSION("3.0.1"); const std::string PACBIOPL("PACBIO"); std::vector MakeSAMHeaderItems(const std::string & fromString){ std::vector items; std::vector vs; Splice(fromString, ";", vs); std::vector::iterator it; for (it = vs.begin(); it != vs.end(); it++) { items.push_back(SAMHeaderItem(*it)); } return items; } // SAMHeaderItem SAMHeaderItem::SAMHeaderItem(const std::string & fromString) { std::size_t pos = fromString.find("="); if (pos != std::string::npos) { _key = fromString.substr(0, pos); _val = fromString.substr(pos + 1); } } std::string SAMHeaderItem::ToString() { std::stringstream ss; if (_key != "") ss << _key << "=" << _val; return ss.str(); } // SAMHeaderTag SAMHeaderTag::SAMHeaderTag(const std::string & fromString) { size_t pos = fromString.find(":"); if (pos != string::npos) { _tagName = fromString.substr(0, pos); string tagValue = fromString.substr(pos + 1); if (tagValue.find("=") != std::string::npos) { AddItems(tagValue); } else { _tagValue = tagValue; } } else { cout << "Unable to parse SAM/BAM header" << fromString << endl; exit(1); } } std::string SAMHeaderTag::ToString() { std::stringstream ss; if (_tagName != "") { ss << _tagName << ":"; if (_tagValue != "") { ss << _tagValue; } else { std::vector::iterator it; for(it = _tagItems.begin(); it != _tagItems.end(); it++) { if (it != _tagItems.begin() and (*it).ToString() != "") { ss << ";"; } ss << (*it).ToString(); } } } return ss.str(); } std::string SAMHeaderTag::TagName() const { return _tagName; } void SAMHeaderTag::AddItem(SAMHeaderItem & item) { _tagItems.push_back(item); } void SAMHeaderTag::AddItem(const std::string & fromString) { _tagItems.push_back(SAMHeaderItem(fromString)); } void SAMHeaderTag::AddItems(const std::string & fromString) { // SAM Header Items: key=value;key=value std::vector items = MakeSAMHeaderItems(fromString); _tagItems.insert(_tagItems.begin(), items.begin(), items.end()); } // SAMHeaderGroup SAMHeaderGroup::SAMHeaderGroup(const std::string & fromString) { if (fromString == "" || fromString[0] != '@') return; std::vector vs; Splice(fromString.substr(1), "\t", vs); if (vs.size() >= 1) { std::vector::iterator it = vs.begin(); _groupName = (*it); it++; for(; it != vs.end(); it++) { _tags.push_back(SAMHeaderTag(*it)); } } } std::string SAMHeaderGroup::ToString() { std::stringstream ss; ss << "@" << _groupName; SAMHeaderTags::iterator it; for (it = _tags.begin(); it != _tags.end(); it++) { ss << "\t" << (*it).ToString(); } return ss.str(); } std::ostream & operator << (std::ostream& os, SAMHeaderGroup & g) { return os << g.ToString(); } /// returns true if this SAMHeaderGroup contains a tag tagName. bool SAMHeaderGroup::HasTag(std::string tagName) { for(SAMHeaderTags::iterator it = _tags.begin(); it != _tags.end(); it++) { if ((*it).TagName() == tagName) { return true; } } return false; } /// returns value of a tag if it exists, otherwise, return an empty string. std::string SAMHeaderGroup::Tag(const std::string & tagName) { for(SAMHeaderTags::iterator it = _tags.begin(); it != _tags.end(); it++) { if ((*it).TagName() == tagName) { return (*it).ToString(); } } return ""; } // SAMHeaderGroupWithID std::string SAMHeaderGroupWithID::ID() const {return _id;} SAMHeaderGroupWithID::SAMHeaderGroupWithID(const std::string & fromString) : SAMHeaderGroup(fromString) { assert (HasTag("ID")); if (not HasTag("ID")) { assert("ERROR! SAM Header read/program group must has ID tag." == 0); } _id = Tag("ID"); } // SAMHeaderRG SAMHeaderRG::SAMHeaderRG(const std::string & id, const std::string & pl, const std::string & pu, const std::vector & dsItems) { _groupName = "RG"; _id = id; _tags.push_back(SAMHeaderTag("ID", id)); _tags.push_back(SAMHeaderTag("PU", pu)); _tags.push_back(SAMHeaderTag("PL", pl)); _tags.push_back(SAMHeaderTag("DS", dsItems)); } SAMHeaderRG::SAMHeaderRG(const std::string & fromString) :SAMHeaderGroupWithID(fromString) { if (_groupName != "RG") { assert("ERROR! SAM Header read group should start with @RG" == 0); } } // SAMHeaderPG SAMHeaderPG::SAMHeaderPG(const std::string & id, const std::string & progName, const std::string & progVersion, const std::string & commandLine) { _groupName = "PG"; _id = id; _tags.push_back(SAMHeaderTag("ID", id)); _tags.push_back(SAMHeaderTag("PN", progName)); _tags.push_back(SAMHeaderTag("VN", progVersion)); _tags.push_back(SAMHeaderTag("CL", commandLine)); } SAMHeaderPG::SAMHeaderPG(const std::string & fromString) : SAMHeaderGroupWithID(fromString) { if (_groupName != "PG") { assert("ERROR! SAM Header program group must start with @PG" == 0); } } // SAMHeaderSQ SAMHeaderSQ::SAMHeaderSQ(const std::string & sn, const DNALength & ln, const std::string & md5) : SAMHeaderSQ(sn, std::to_string(ln), md5) {} SAMHeaderSQ::SAMHeaderSQ(const std::string & sn, const string & ln, const std::string & md5) : SAMHeaderGroup() { _groupName = "SQ"; _tags.push_back(SAMHeaderTag("SN", sn)); _tags.push_back(SAMHeaderTag("LN", ln)); _tags.push_back(SAMHeaderTag("M5", md5)); } SAMHeaderSQ::SAMHeaderSQ(const std::string & fromString) : SAMHeaderGroup(fromString) { if (_groupName != "SQ") { assert("ERROR! SAM Header soring order must start with @SO" == 0); } } // SAMHeaderPrinter std::string SAMHeaderPrinter::ToString() { std::stringstream ss; ss << _hd.ToString() << _sqs.ToString() << _rgs.ToString() << _pgs.ToString() << _cos.ToString(); return ss.str(); } /* /// Add a SAM Header @RG entry, including the following tags: /// ID (identifier), PL (platform), PU (platform unit), /// DS (description, which may have many items) SAMHeaderPrinter & SAMHeaderPrinter::AddRG(std::string & id, std::string & pl, std::string & pu, std::string & ds) { _rgs.Add(SAMHeaderRG(id, pl, pu, ds)); return *this; }*/ /// Add a SAM Header @RG entry from string, which may contain arbitary tags. SAMHeaderPrinter & SAMHeaderPrinter::AddRG(const std::string & fromString) { _rgs.Add(SAMHeaderRG(fromString)); return *this; } /// Add a SAM Header @PG entry, including the following tags: /// ID, progName, progVersion, commandLine. @PG must have unique ID. SAMHeaderPrinter & SAMHeaderPrinter::AddPG(std::string & id, std::string & progName, std::string & progVersion, std::string & commandLine) { _pgs.Add(SAMHeaderPG(id, progName, progVersion, commandLine)); return *this; } /// Add a SAM Header @PG entry from string, which may contain arbitary tags. SAMHeaderPrinter & SAMHeaderPrinter::AddPG(const std::string & fromString) { _pgs.Add(SAMHeaderPG(fromString)); return *this; } /// Add a SAM Header @CO entry from string. SAMHeaderPrinter & SAMHeaderPrinter::AddCO(const std::string & fromString) { _cos.Add(fromString); return *this; } /// \returns SAMHeaderGroup @HD SAMHeaderGroup SAMHeaderPrinter::MakeHD(const std::string & sortingOrder) { std::stringstream ss; ss << "@HD" << "\t" << "VN:" << SAMVERSION << "\t" << "SO:" << sortingOrder << "\t" << "pb:" << PBBAMVERSION << std::endl; return SAMHeaderGroup(ss.str()); } /// \returns SAMHeaderSQs, SAM Header @SQ groups SAMHeaderSQs SAMHeaderPrinter::MakeSQs(SequenceIndexDatabase & seqdb) { SAMHeaderSQs sqs; for (int i = 0; i < seqdb.nSeqPos-1; i++) { std::string md5 = ""; if (seqdb.md5.size() == seqdb.nSeqPos - 1) { md5 = seqdb.md5[i]; } string seqName; seqdb.GetName(i, seqName); sqs.Add(SAMHeaderSQ(seqName, seqdb.GetLengthOfSeq(i), md5)); } return sqs; } SAMHeaderPrinter::SAMHeaderPrinter(const std::string & sortingOrder, SequenceIndexDatabase & seqdb, const std::vector & readsFiles, const ReadType::ReadTypeEnum & readType, const SupplementalQVList & samQVs, const std::string & progName, const std::string & progVersion, const std::string & commandLine) :_sortingOrder(sortingOrder), _readsFiles(readsFiles), _seqdb(seqdb) { if (readsFiles.size() == 0) { assert("Must specify input reads files" == 0); } // all read types supported, no check needed. // Determine fileType based on extension of the first read file. std::string rf = readsFiles[0]; BaseSequenceIO::DetermineFileTypeByExtension(rf, fileType); // Make @HD, @SQ, @RG _hd = MakeHD(sortingOrder); _sqs = MakeSQs(seqdb); _rgs = MakeRGs(readsFiles, readType, samQVs); // Make PGs and COs _pgs = MakePGs(readsFiles, progName, progVersion, commandLine); _cos = MakeCOs(readsFiles); } /// \param[in] readsFiles - incoming reads files in BAM or other formats /// \param[in] readType - read type, must be either SUBREAD or CCS or UNKNOWN /// \param[in] samQVs - SupplementalQVList, an object that handles which /// QVs to print in SAM/BAM file. SAMHeaderRGs SAMHeaderPrinter::MakeRGs(const std::vector & readsFiles, const ReadType::ReadTypeEnum & readType, const SupplementalQVList & samQVs) { SAMHeaderRGs rgs; if (fileType != PBBAM) { ReaderAgglomerate * reader = new ReaderAgglomerate(); assert(reader != nullptr); std::vector::const_iterator rfit; for(rfit = readsFiles.begin(); rfit != readsFiles.end(); rfit++) { std::string rf(*rfit); reader->SetReadFileName(rf); reader->SetReadType(readType); reader->Initialize(); // Get movie name from ReaderAgglomerate std::string movieName; reader->GetMovieName(movieName); string bindingKit, sequencingKit, baseCallerVersion; reader->GetChemistryTriple(bindingKit, sequencingKit, baseCallerVersion); reader->Close(); std::vector dsItems; dsItems.push_back(SAMHeaderItem("READTYPE", ReadType::ToString(readType))); dsItems.push_back(SAMHeaderItem("BINDINGKIT", bindingKit)); dsItems.push_back(SAMHeaderItem("SEQUENCINGKIT", sequencingKit)); dsItems.push_back(SAMHeaderItem("BASECALLERVERSION", baseCallerVersion)); // Add QVs, e.g., InsertionQV=iq;DeletionQV=dq;... if (samQVs.useqv) { for (int i = 0; i < samQVs.nTags; i++) { if (samQVs.useqv & (1 << i)) { dsItems.push_back(SAMHeaderItem(samQVs.qvNames[i], samQVs.qvTags[i])); } } } rgs.Add(SAMHeaderRG(reader->readGroupId, PACBIOPL, movieName, dsItems)); } delete reader; } else { #ifdef USE_PBBAM // TODO: use Derek's API to merge bamHeaders from different files when // it is in place. Use the following code for now. std::vector::const_iterator rfit; for(rfit = readsFiles.begin(); rfit != readsFiles.end(); rfit++) { try { PacBio::BAM::BamFile bamFile(*rfit); PacBio::BAM::BamHeader header = bamFile.Header(); // Get read groups from bam header. std::vector vrgs = header.ReadGroups(); std::vector::iterator rgit; for (rgit = vrgs.begin(); rgit != vrgs.end(); rgit++) { rgs.Add(SAMHeaderRG((*rgit).ToSam())); } } catch (std::exception e) { cout << "ERROR, unable to open bam file " << (*rfit) << endl; exit(1); } } #else REQUEST_PBBAM_ERROR(); #endif } return rgs; } SAMHeaderPGs SAMHeaderPrinter::MakePGs(const std::vector & readsFiles, const std::string & progName, const std::string & progVersion, const std::string & commandLine) { SAMHeaderPGs pgs; // program id, unique identifier for @PG lines; int prog_id = 1; if (fileType != PBBAM) { // Reads files are not in BAM format, no other @PG lines. } else { #ifdef USE_PBBAM // Reads files are in BAM format, keep all @PG lines from Bam files. // TODO: use Derek's API to merge bamHeaders from different files when // it is in place. Use the following code for now. std::vector::const_iterator rfit; for(rfit = readsFiles.begin(); rfit != readsFiles.end(); rfit++) { PacBio::BAM::BamFile bamFile(*rfit); PacBio::BAM::BamHeader bamHeader = bamFile.Header(); std::vector progs = bamHeader.Programs(); std::vector::iterator it; for (it = progs.begin(); it != progs.end(); it++) { pgs.Add(SAMHeaderPG((*it).ToSam())); prog_id++; // Increase prog_id; } } #else REQUEST_PBBAM_ERROR(); #endif } pgs.Add(SAMHeaderPG(std::to_string(prog_id), progName, progVersion, commandLine)); return pgs; } SAMHeaderCOs SAMHeaderPrinter::MakeCOs(const std::vector & readsFiles) { SAMHeaderCOs cos; if (fileType == PBBAM) { #ifdef USE_PBBAM // Reads files are in BAM format, keep all @CO lines from Bam files. std::vector::const_iterator rfit; for(rfit = readsFiles.begin(); rfit != readsFiles.end(); rfit++) { PacBio::BAM::BamFile bamFile(*rfit); PacBio::BAM::BamHeader bamHeader = bamFile.Header(); cos.Append(bamHeader.Comments()); } #else REQUEST_PBBAM_ERROR(); #endif } // reads files are not in BAM format, no comments. return cos; } #ifdef USE_PBBAM PacBio::BAM::BamHeader SAMHeaderPrinter::ToBamHeader() { std::string headerStr = ToString(); return PacBio::BAM::BamHeader(headerStr); } #endif blasr_libcpp-master/alignment/format/SAMHeaderPrinter.hpp000066400000000000000000000243351260756663100241020ustar00rootroot00000000000000#ifndef _BLASR_FILE_SAM_HEADER_PRINTER_ #define _BLASR_FILE_SAM_HEADER_PRINTER_ #include #include #include #include #include #include "Types.h" #include "Enumerations.h" #include "StringUtils.hpp" #include "files/BaseSequenceIO.hpp" #include "files/ReaderAgglomerate.hpp" #include "datastructures/alignmentset/SAMSupplementalQVList.hpp" /// This is a simple implementation for generating SAM Headers. /// It is provided such that libblasr can compile with and without /// linking to lib PBBAM. /// * When compiled without linking to lib PBBAM, blasr should be /// able to produce SAM output. /// * When compiled with lib PBBAM, blasr should be able to produce /// SAM and BAM output. If input is one or more than one BAM files, /// @PG and @CO info will be kept. #define REQUEST_PBBAM_ERROR() \ assert("libblasr must be compiled with lib PBBAM to consume bam files." == 0) class SAMHeaderItem { /// SAM Header Item: key=value public: SAMHeaderItem(const std::string & key, const std::string & val) :_key(key), _val(val) {} SAMHeaderItem(const std::string & fromString); std::string ToString(); private: std::string _key; std::string _val; }; std::vector MakeSAMHeaderItems(const std::string & fromString); class SAMHeaderTag { public: SAMHeaderTag() {} /// ID:12345 SAMHeaderTag(const std::string & tagName, const std::string & tagValue) :_tagName(tagName), _tagValue(tagValue) {} /// DS:READTYPE=SUBREAD;BINDKINGKIT=123456 SAMHeaderTag(const std::string & tagName, const std::vector & tagItems) :_tagName(tagName), _tagItems(tagItems) {} SAMHeaderTag(const std::string & fromString); public: std::string ToString(); std::string TagName() const; void AddItem(SAMHeaderItem & item); void AddItem(const std::string & fromString); void AddItems(const std::string & fromString); private: std::string _tagName; std::string _tagValue; std::vector _tagItems; }; typedef std::vector SAMHeaderTags; class SAMHeaderGroup { public: SAMHeaderGroup() {} SAMHeaderGroup(const std::string & groupName, const SAMHeaderTags & tags) :_groupName(groupName), _tags(tags) {} SAMHeaderGroup(const std::string & fromString); std::string ToString(); /// returns true if this SAMHeaderGroup contains a tag tagName. bool HasTag(std::string tagName); /// returns value of a tag if it exists, otherwise, return an empty string. std::string Tag(const std::string & tagName); protected: std::string _groupName; SAMHeaderTags _tags; }; class SAMHeaderGroupWithID : public SAMHeaderGroup { public: SAMHeaderGroupWithID() {} SAMHeaderGroupWithID(const std::string & fromString); std::string ID() const; protected: std::string _id; }; std::ostream & operator << (std::ostream& os, SAMHeaderGroup & g); class SAMHeaderRG : public SAMHeaderGroupWithID { /// SAM Header @RG entry, containing ID, PL, PU, DS tags. /// ID: Read group Id Tag, which must be unique for read groups. /// PL: PacBio platform Tag, e.g., PacBio. /// PU: PacBio platform unit Tag, e.g., m1473.....p0 /// DS: Description Items for this @RG entry, including READTYPE, BINDKINGKIT, /// SEQUENCEKIT, BASECALLERVERSION. /// The following is an example: /// @RG ID:abcdefgh PL:PacBio PU:m1473...p0 DS:READTYPE=SUBREAD;BINDINGKIT=123456;SEQUENCINGKIT=123456;BASECALLERVERSION=2.3 public: SAMHeaderRG(const std::string & id, const std::string & pl, const std::string & pu, const std::vector & dsItems); SAMHeaderRG(const std::string & fromString); }; class SAMHeaderPG: public SAMHeaderGroupWithID { public: SAMHeaderPG(const std::string & id, const std::string & progName, const std::string & progVersion, const std::string & commandLine); SAMHeaderPG(const std::string & fromString); }; class SAMHeaderSQ: public SAMHeaderGroup { public: SAMHeaderSQ(const std::string & sn, const DNALength & ln, const std::string & md5); SAMHeaderSQ(const std::string & sn, const string & ln, const std::string & md5); SAMHeaderSQ(const std::string & fromString); }; template class SAMHeaderGroups { public: SAMHeaderGroups() {} // Add a SAM Header group regardless void Add(const T & group); void Append(const std::vector & groups); std::string ToString(); protected: std::vector _groups; }; template class SAMHeaderGroupsWithID : public SAMHeaderGroups { public: SAMHeaderGroupsWithID(): SAMHeaderGroups() {} /// Add a SAM Header group with unique ID if it does not exist. void Add(const T & g) ; /// Check whether a group already exists or not. /// \returns true if g.ID() already exists in _groups, otherwise false. bool Contain(const T & g); }; typedef SAMHeaderGroupsWithID SAMHeaderRGs; // FIXME: @PG groups should have unique IDs according to SAM spec v1.5, // However, PacBio tools such as blasr and bax2bam use prog name as prog id. typedef SAMHeaderGroups SAMHeaderPGs; typedef SAMHeaderGroups SAMHeaderSQs; typedef SAMHeaderGroups SAMHeaderCOs; class SAMHeaderPrinter { public: /// SAMHeaderPrinter constructor /// \param[in] sortingOrder - sorting order of alignments. /// \param[in] seqdb - database of target sequences. /// \param[in] readsFiles - input reads files, file format /// can be FASTA, FASTQ, BAS.H5, BAX.H5, BAM. /// \param[in] samQVs - samQVs that will be printed. /// \param[in] readType - read type, must be either SUBREAD or CCS or UNKNOWN /// \param[in] progName - program which calls SMAHeaderPrinter /// \param[in] progVersion - program version. /// \param[in] commandLine - command line to call program. SAMHeaderPrinter(const std::string & sortingOrder, SequenceIndexDatabase & seqdb, const std::vector & readsFiles, const ReadType::ReadTypeEnum & readType, const SupplementalQVList & samQVs, const std::string & progName, const std::string & progVersion, const std::string & commandLine); /// \returns SAM header in string. std::string ToString(); public: #ifdef USE_PBBAM /// Converts this SAMHeader to PacBio::BAM::BamHeader, must be compiled with pbbam /// \returns a PacBio::BAM::BamHeader. PacBio::BAM::BamHeader ToBamHeader(); #endif /// Add a SAM Header @RG entry, including the following tags: /// ID (identifier), PL (platform), PU (platform unit), /// DS (description, which may have many items) SAMHeaderPrinter & AddRG(std::string & id, std::string & pl, std::string & pu, std::string & ds); /// Add a SAM Header @RG entry from string, which may contain arbitary tags. SAMHeaderPrinter & AddRG(const std::string & fromString); /// Add a SAM Header @PG entry, including the following tags: /// ID, progName, progVersion, commandLine. @PG must have unique ID. SAMHeaderPrinter & AddPG(std::string & id, std::string & progName, std::string & progVersion, std::string & commandLine); /// Add a SAM Header @PG entry from string, which may contain arbitary tags. SAMHeaderPrinter & AddPG(const std::string & fromString); /// Add a SAM Header @CO entry from string. SAMHeaderPrinter & AddCO(const std::string & fromString); private: const std::string & _sortingOrder; const std::vector & _readsFiles; SequenceIndexDatabase & _seqdb; FileType fileType; SAMHeaderGroup _hd; //@HD VN:? SO:? pb:? SAMHeaderSQs _sqs; //@SQ SN:? LN:? M5:? SAMHeaderRGs _rgs; //@RG ID:? PU:? PL:? DS:key=val;key=val;key=val SAMHeaderPGs _pgs; //@PG VN:? CL:? SAMHeaderCOs _cos; //@CO private: /// \returns SAMHeaderGroup @HD static SAMHeaderGroup MakeHD(const std::string & sortingOrder); /// \returns SAMHeaderSQs, SAM Header @SQ groups SAMHeaderSQs MakeSQs(SequenceIndexDatabase & seqdb); /// \returns SAMHeaderRGs @RG groups /// \param[in] readsFiles - incoming reads files in BAM or other formats /// \param[in] readType - read type, must be either SUBREAD or CCS or UNKNOWN /// \param[in] samQVs - SupplementalQVList, an object that handles which /// QVs to print in SAM/BAM file. SAMHeaderRGs MakeRGs(const std::vector & readsFiles, const ReadType::ReadTypeEnum & readType, const SupplementalQVList & samQVs); /// \returns SAMHeaderPGs @PG groups /// \param[in] readsFiles - incoming reads files in BAM or other formats /// \param[in] progName - program which calls SMAHeaderPrinter /// \param[in] progVersion - program version. /// \param[in] commandLine - command line to call program. SAMHeaderPGs MakePGs(const std::vector & readsFiles, const std::string & progName, const std::string & progVersion, const std::string & commandLine); /// \returns SAMHeaderPGs @CO groups /// \param[in] readsFiles - incoming reads files in BAM or other formats SAMHeaderCOs MakeCOs(const std::vector & readsFiles); }; // template SAMHeaderGroups template void SAMHeaderGroups::Add(const T & group) { this->_groups.push_back(group); } template void SAMHeaderGroups::Append(const std::vector & groups) { for(int i = 0; i < groups.size(); i++) { this->Add(groups[i]); } } template std::string SAMHeaderGroups::ToString() { std::stringstream ss; for (int i = 0; i < this->_groups.size(); i++) { ss << this->_groups[i] << std::endl; } return ss.str(); } // template SAMHeaderGroupsWithID template void SAMHeaderGroupsWithID::Add(const T & g) { if (not this->Contain(g)) {this->_groups.push_back(g);} } template bool SAMHeaderGroupsWithID::Contain(const T & g) { typename std::vector::iterator it; for(it = this->_groups.begin(); it < this->_groups.end(); it++) { if ((*it).ID() == g.ID()) { return true; } } return false; } #endif blasr_libcpp-master/alignment/format/SAMPrinter.cpp000066400000000000000000000145021260756663100227570ustar00rootroot00000000000000#include "SAMPrinter.hpp" #include //reverse using namespace SAMOutput; void SAMOutput::BuildFlag(T_AlignmentCandidate &alignment, AlignmentContext &context, uint16_t &flag) { /* * Much of the flags are commented out for now since they do not * generate PICARD compliant SAM. This needs to be worked out. */ // // Without supporting strobe, assume 1 segment per template. flag = 0; /* if (context.nSubreads > 1) { flag |= MULTI_SEGMENTS; }*/ // if (context.AllSubreadsAligned() and context.nSubreads > 1) { // flag |= ALL_SEGMENTS_ALIGNED; // } if (alignment.tStrand == 1) { flag |= SEQ_REVERSED; } /* if (context.hasNextSubreadPos == false and context.nSubreads > 1) { flag |= NEXT_SEGMENT_UNMAPPED; } if (context.nextSubreadDir == 1) { flag |= SEQ_NEXT_REVERSED; } if (context.IsFirst() and context.nSubreads > 1) { flag |= FIRST_SEGMENT; } */ else if (context.nSubreads > 1) { /* * Remember, if you're not first, you're last. */ // flag |= LAST_SEGMENT; } if (context.isPrimary == false) { flag |= SECONDARY_ALIGNMENT; } } void SAMOutput::CreateDNAString(DNASequence &seq, DNASequence &clippedSeq, // // Trimming is used for both hard non-clipping // so it is called trim instead of clip. // int trimFront, int trimEnd) { assert(seq.length - trimEnd >= trimFront); clippedSeq.seq = &seq.seq[trimFront]; clippedSeq.length = seq.length - trimEnd - trimFront; } void SAMOutput::AddGaps(T_AlignmentCandidate &alignment, int gapIndex, std::vector &opSize, std::vector &opChar) { int g; for (g = 0; g < alignment.gaps[gapIndex].size(); g++) { if (alignment.gaps[gapIndex][g].seq == blasr::Gap::Query) { opSize.push_back(alignment.gaps[gapIndex][g].length); opChar.push_back('D'); } else if (alignment.gaps[gapIndex][g].seq == blasr::Gap::Target) { opSize.push_back(alignment.gaps[gapIndex][g].length); opChar.push_back('I'); } } } void SAMOutput::AddMatchBlockCigarOps(DNASequence & qSeq, DNASequence & tSeq, blasr::Block & b, DNALength & qSeqPos, DNALength & tSeqPos, std::vector & opSize, std::vector & opChar) { DNALength qPos = qSeqPos + b.qPos, tPos = tSeqPos + b.tPos, n = 0; bool started = false, prevSeqMatch = false; for(DNALength i = 0; i < b.length; i++) { bool curSeqMatch = (qSeq[qPos + i] == tSeq[tPos + i]); if (started) { if (curSeqMatch == prevSeqMatch) opSize[opSize.size()-1]++; else { opSize.push_back(1); opChar.push_back(curSeqMatch?'=':'X'); } } else { started = true; opSize.push_back(1); opChar.push_back(curSeqMatch?'=':'X'); } prevSeqMatch = curSeqMatch; } } void SAMOutput::CreateNoClippingCigarOps(T_AlignmentCandidate &alignment, std::vector &opSize, std::vector &opChar, bool cigarUseSeqMatch) { // // Create the cigar string for the aligned region of a read, // excluding the clipping. // int b; // Each block creates a match NM (N=block.length) int nBlocks = alignment.blocks.size(); int nGaps = alignment.gaps.size(); opSize.clear(); opChar.clear(); // // Add gaps at the beginning of the alignment. // if (nGaps > 0) { AddGaps(alignment, 0, opSize, opChar); } for (b = 0; b < nBlocks; b++) { // // Determine the gap before printing the match, since it is // possible that the qurey and target are gapped at the same // time, which merges into a mismatch. // int qGap=0, tGap=0, commonGap=0; int matchLength = alignment.blocks[b].length; if (nGaps == 0) { if (b + 1 < nBlocks) { qGap = alignment.blocks[b+1].qPos - alignment.blocks[b].qPos - alignment.blocks[b].length; tGap = alignment.blocks[b+1].tPos - alignment.blocks[b].tPos - alignment.blocks[b].length; int commonGap; commonGap = abs(qGap - tGap); qGap -= commonGap; tGap -= commonGap; matchLength += commonGap; if (cigarUseSeqMatch) { AddMatchBlockCigarOps(alignment.qAlignedSeq, alignment.tAlignedSeq, alignment.blocks[b], alignment.qPos, alignment.tPos, opSize, opChar); } else { opSize.push_back(matchLength); opChar.push_back('M'); } assert((qGap > 0 and tGap == 0) or (qGap == 0 and tGap > 0)); if (qGap > 0) { opSize.push_back(qGap); opChar.push_back('I'); } if (tGap > 0) { opSize.push_back(tGap); opChar.push_back('D'); } } } else { if (cigarUseSeqMatch) { AddMatchBlockCigarOps(alignment.qAlignedSeq, alignment.tAlignedSeq, alignment.blocks[b], alignment.qPos, alignment.tPos, opSize, opChar); } else { opSize.push_back(matchLength); opChar.push_back('M'); } int gapIndex = b+1; AddGaps(alignment, gapIndex, opSize, opChar); } } if (alignment.tStrand == 1) { std::reverse(opSize.begin(), opSize.end()); std::reverse(opChar.begin(), opChar.end()); } } void SAMOutput::CigarOpsToString(std::vector &opSize, std::vector &opChar, std::string &cigarString) { std::stringstream sstrm; int i, nElem; for (i = 0, nElem = opSize.size(); i < nElem; i++) { sstrm << opSize[i] << opChar[i]; } cigarString = sstrm.str(); } blasr_libcpp-master/alignment/format/SAMPrinter.hpp000066400000000000000000000065531260756663100227730ustar00rootroot00000000000000#ifndef _BLASR_FORMAT_SAMPRINTER_HPP_ #define _BLASR_FORMAT_SAMPRINTER_HPP_ #include #include #include "SMRTSequence.hpp" #include "datastructures/alignment/AlignmentCandidate.hpp" #include "datastructures/alignment/AlignmentContext.hpp" #include "datastructures/alignment/Alignment.hpp" #include "datastructures/alignment/Alignment.hpp" #include "datastructures/alignmentset/SAMSupplementalQVList.hpp" #define MULTI_SEGMENTS 0x1 #define ALL_SEGMENTS_ALIGNED 0x2 #define SEGMENT_UNMAPPED 0x4 #define NEXT_SEGMENT_UNMAPPED 0x8 #define SEQ_REVERSED 0x10 #define SEQ_NEXT_REVERSED 0x20 #define FIRST_SEGMENT 0x40 #define LAST_SEGMENT 0x80 #define SECONDARY_ALIGNMENT 0x100 #define NO_PASS_QUALITY 0x200 #define PCR_OR_OPTICAL_DUPLICATE 0x400 namespace SAMOutput { enum Clipping {hard, soft, subread, none}; void BuildFlag(T_AlignmentCandidate &alignment, AlignmentContext &context, uint16_t &flag); // // Trimming is used for both hard non-clipping // so it is called trim instead of clip. // void CreateDNAString(DNASequence &seq, DNASequence &clippedSeq, int trimFront=0, int trimEnd=0); void AddGaps(T_AlignmentCandidate &alignment, int gapIndex, std::vector &opSize, std::vector &opChar); // Add sequence match/mismatch CIGAR string Ops for block b. void AddMatchBlockCigarOps(DNASequence & qSeq, DNASequence & tSeq, blasr::Block & b, DNALength & qSeqPos, DNALength & tSeqPos, std::vector & opSize, std::vector & opChar); // If cigarUseSeqMatch is true, cigar string uses '=' and 'X' // instead of 'M' to represent sequence match and mismatch; void CreateNoClippingCigarOps(T_AlignmentCandidate &alignment, std::vector &opSize, std::vector &opChar, bool cigarUseSeqMatch = false); // // // The aligned sequence is either the sequence from the first // aligned base to the last (hard and no clipping), or first high // quality base to the last high quality base (soft clipping). // template void SetAlignedSequence(T_AlignmentCandidate &alignment, T_Sequence &read, T_Sequence &alignedSeq, Clipping clipping = none); template void SetSoftClip(T_AlignmentCandidate &alignment, T_Sequence &read, DNALength hardClipPrefix, DNALength hardClipSuffix, DNALength &softClipPrefix, DNALength &softClipSuffix); template void SetHardClip(T_AlignmentCandidate &alignment, T_Sequence &read, DNALength &prefixClip, DNALength &suffixClip); void CigarOpsToString(std::vector &opSize, std::vector &opChar, std::string &cigarString); // // Straight forward: create the cigar string allowing some clipping // The read is provided to give length and hq information. // template void CreateCIGARString(T_AlignmentCandidate &alignment, T_Sequence &read, std::string &cigarString, Clipping clipping, DNALength &prefixSoftClip, DNALength &suffixSoftClip, DNALength &prefixHardClip, DNALength &suffixHardClip, bool cigarUseSeqMatch = false); template void PrintAlignment(T_AlignmentCandidate &alignment, T_Sequence &read, std::ostream &samFile, AlignmentContext &context, SupplementalQVList & qvList, Clipping clipping = none, bool cigarUseSeqMatch = false); } #include "SAMPrinterImpl.hpp" #endif // _BLASR_FORMAT_SAMPRINTER_HPP_ blasr_libcpp-master/alignment/format/SAMPrinterImpl.hpp000066400000000000000000000240331260756663100236060ustar00rootroot00000000000000#include //max #include //swap #include //assert using namespace SAMOutput; template void SAMOutput::SetAlignedSequence(T_AlignmentCandidate &alignment, T_Sequence &read, T_Sequence &alignedSeq, Clipping clipping) { // // In both no, and hard clipping, the dna sequence that is output // solely corresponds to the aligned sequence. // DNALength clippedReadLength = 0; DNALength clippedStartPos = 0; if (clipping == none or clipping == hard) { DNALength qStart = alignment.QAlignStart(); DNALength qEnd = alignment.QAlignEnd(); clippedReadLength = qEnd - qStart; clippedStartPos = qStart; } else if (clipping == soft) { clippedReadLength = read.length - read.lowQualityPrefix - read.lowQualitySuffix; clippedStartPos = read.lowQualityPrefix; } else if (clipping == subread) { clippedReadLength = read.SubreadLength(); clippedStartPos = read.SubreadStart(); } else { std::cout <<" ERROR! The clipping must be none, hard, subread, or soft when setting the aligned sequence." << std::endl; assert(0); } // // Set the aligned sequence according to the clipping boundaries. // if (alignment.tStrand == 0) { alignedSeq.ReferenceSubstring(read, clippedStartPos, clippedReadLength); } else { T_Sequence subSeq; subSeq.ReferenceSubstring(read, clippedStartPos, clippedReadLength); subSeq.MakeRC(alignedSeq); assert(alignedSeq.deleteOnExit); } } template void SAMOutput::SetSoftClip(T_AlignmentCandidate &alignment, T_Sequence &read, DNALength hardClipPrefix, DNALength hardClipSuffix, DNALength &softClipPrefix, DNALength &softClipSuffix) { DNALength qStart, qEnd; qStart = alignment.QAlignStart(); qEnd = alignment.QAlignEnd(); assert(qStart >= hardClipPrefix); softClipPrefix = alignment.QAlignStart() - hardClipPrefix; assert(alignment.QAlignEnd() + hardClipSuffix <= read.length); softClipSuffix = read.length - hardClipSuffix - alignment.QAlignEnd(); } template void SAMOutput::SetHardClip(T_AlignmentCandidate &alignment, T_Sequence &read, DNALength &prefixClip, DNALength &suffixClip) { // // Set the hard clipping assuming the read is in the forward // direction. // prefixClip = alignment.QAlignStart(); suffixClip = read.length - alignment.QAlignEnd(); if (alignment.tStrand == 1) { // // If the read is instead reverse, swap the clipping lengths. // std::swap(prefixClip, suffixClip); } } // // Straight forward: create the cigar string allowing some clipping // The read is provided to give length and hq information. // template void SAMOutput::CreateCIGARString(T_AlignmentCandidate &alignment, T_Sequence &read, std::string &cigarString, Clipping clipping, DNALength & prefixSoftClip, DNALength & suffixSoftClip, DNALength & prefixHardClip, DNALength & suffixHardClip, bool cigarUseSeqMatch) { cigarString = ""; // All cigarString use the no clipping core std::vector opSize; std::vector opChar; CreateNoClippingCigarOps(alignment, opSize, opChar, cigarUseSeqMatch); // Clipping needs to be added if (clipping == hard) { SetHardClip(alignment, read, prefixHardClip, suffixHardClip); if (prefixHardClip > 0) { opSize.insert(opSize.begin(), prefixHardClip); opChar.insert(opChar.begin(), 'H'); } if (suffixHardClip > 0) { opSize.push_back(suffixHardClip); opChar.push_back('H'); } prefixSoftClip = 0; suffixSoftClip = 0; } if (clipping == soft or clipping == subread) { // // Even if clipping is soft, the hard clipping removes the // low quality regions // if (clipping == soft) { prefixHardClip = read.lowQualityPrefix; suffixHardClip = read.lowQualitySuffix; } else if (clipping == subread) { prefixHardClip = std::max((DNALength) read.SubreadStart(), read.lowQualityPrefix); suffixHardClip = std::max((DNALength)(read.length - read.SubreadEnd()), read.lowQualitySuffix); } SetSoftClip(alignment, read, prefixHardClip, suffixHardClip, prefixSoftClip, suffixSoftClip); if (alignment.tStrand == 1) { std::swap(prefixHardClip, suffixHardClip); std::swap(prefixSoftClip, suffixSoftClip); } // // Insert the hard and soft clipping so that they are in the // order H then S if both exist. // if (prefixSoftClip > 0) { opSize.insert(opSize.begin(), prefixSoftClip); opChar.insert(opChar.begin(), 'S'); } if (prefixHardClip > 0) { opSize.insert(opSize.begin(), prefixHardClip); opChar.insert(opChar.begin(), 'H'); } // // Append the hard and soft clipping so they are in the order S // then H. // if (suffixSoftClip > 0) { opSize.push_back(suffixSoftClip); opChar.push_back('S'); } if (suffixHardClip > 0) { opSize.push_back(suffixHardClip); opChar.push_back('H'); } } CigarOpsToString(opSize, opChar, cigarString); } template void SAMOutput::PrintAlignment(T_AlignmentCandidate &alignment, T_Sequence &read, std::ostream &samFile, AlignmentContext &context, SupplementalQVList & qvList, Clipping clipping, bool cigarUseSeqMatch) { std::string cigarString; uint16_t flag; T_Sequence alignedSequence; DNALength prefixSoftClip = 0, suffixSoftClip = 0; DNALength prefixHardClip = 0, suffixHardClip = 0; CreateCIGARString(alignment, read, cigarString, clipping, prefixSoftClip, suffixSoftClip, prefixHardClip, suffixHardClip, cigarUseSeqMatch); SetAlignedSequence(alignment, read, alignedSequence, clipping); BuildFlag(alignment, context, flag); samFile << alignment.qName << "\t" << flag << "\t" << alignment.tName << "\t"; // RNAME if (alignment.tStrand == 0) { samFile << alignment.TAlignStart() + 1 << "\t"; // POS, add 1 to get 1 based coordinate system } else { samFile << alignment.tLength - (alignment.TAlignStart() + alignment.TEnd()) + 1 << "\t"; // includes - 1 for rev-comp, +1 for one-based } samFile << (int) alignment.mapQV << "\t"// MAPQ << cigarString << "\t"; // CIGAR // // Determine RNEXT std::string rNext; rNext = "*"; /* if (context.hasNextSubreadPos == false) { rNext = "*"; } else { if (context.rNext == alignment.tName) { rNext = "="; } else { rNext = context.rNext; } } */ samFile << rNext << "\t"; // RNEXT DNALength nextSubreadPos = 0; /* if (context.hasNextSubreadPos) { nextSubreadPos = context.nextSubreadPos + 1; }*/ samFile << nextSubreadPos << "\t"; // RNEXT, add 1 for 1 based // indexing //DNALength tLen = alignment.GenomicTEnd() - alignment.GenomicTBegin(); //SAM v1.5, tLen is set as 0 for single-segment template samFile << 0 << "\t"; // TLEN // Print the sequence on one line, and suppress printing the // newline (by setting the line length to alignedSequence.length (static_cast(&alignedSequence))->PrintSeq(samFile, 0); // SEQ samFile << "\t"; if (alignedSequence.qual.data != NULL && qvList.useqv == 0) { alignedSequence.PrintAsciiQual(samFile, 0); // QUAL } else { samFile <<"*"; } samFile << "\t"; // // Add optional fields // samFile << "RG:Z:" << context.readGroupId << "\t"; samFile << "AS:i:" << alignment.score << "\t"; // // "RG" read group Id // "AS" alignment score // "XS" read alignment start position without counting previous soft clips (1 based) // "XE" read alignment end position without counting previous soft clips (1 based) // "XL" aligned read length // "XQ" query sequence length // "XT" # of continues reads, always 1 for blasr // "NM" edit distance // "FI" read alignment start position (1 based) // DNALength qAlignStart = alignment.QAlignStart(); DNALength qAlignEnd = alignment.QAlignEnd(); if (clipping == none) { samFile << "XS:i:" << qAlignStart + 1 << "\t"; samFile << "XE:i:" << qAlignEnd + 1 << "\t"; } else if (clipping == hard or clipping == soft or clipping == subread) { DNALength xs = prefixHardClip; DNALength xe = read.length - suffixHardClip; if (alignment.tStrand == 1) { xs = suffixHardClip; xe = read.length - prefixHardClip; } samFile << "XS:i:" << xs + 1 << "\t"; // add 1 for 1-based indexing in sam assert(read.length - suffixHardClip == prefixHardClip + alignedSequence.length); samFile << "XE:i:" << xe + 1 << "\t"; } samFile << "YS:i:" << read.SubreadStart() << "\t"; samFile << "YE:i:" << read.SubreadEnd() << "\t"; samFile << "ZM:i:" << read.HoleNumber() << "\t"; samFile << "XL:i:" << alignment.qAlignedSeq.length << "\t"; samFile << "XT:i:1\t"; // reads are allways continuous reads, not // referenced based circular consensus when // output by blasr. samFile << "NM:i:" << context.editDist << "\t"; samFile << "FI:i:" << alignment.qAlignedSeqPos + 1; // Add query sequence length samFile << "\t" << "XQ:i:" << alignment.qLength; // // Write out optional quality values. If qvlist does not // have any qv's signaled to print, this is a no-op. // // First transform characters that are too large to printable ones. qvList.FormatQVOptionalFields(alignedSequence); qvList.PrintQVOptionalFields(alignedSequence, samFile); samFile << std::endl; } blasr_libcpp-master/alignment/format/StickAlignmentPrinter.hpp000066400000000000000000000107571260756663100252700ustar00rootroot00000000000000#ifndef _BLASR_STICK_ALIGNMENT_PRINTER_HPP_ #define _BLASR_STICK_ALIGNMENT_PRINTER_HPP_ #include #include #include #include "datastructures/alignment/Alignment.hpp" #include "algorithms/alignment/AlignmentUtils.hpp" template void StickPrintAlignment(T_Alignment &alignment, T_QuerySequence &query, T_TargetSequence &text, std::ostream &out, unsigned int qPrintStart = 0, unsigned int tPrintStart = 0, int maxPrintLength = 50) { // // Eventually hack to add options for alignment format. // std::string queryStr, alignStr, textStr; char gapChar = '-'; // // [q/t]PrintStart are the beginning/ending of the subsequence that // is being printed however the actual alignment begins at // [q/t]PrintStart + alignment->[q/t]Pos, since there may be a small // gap between the beginning of the alignment and the beginning of // the substring that is aligned. // out << " Query: " << alignment.qName << endl; out << " Target: " << alignment.tName << endl; out << " Model: a hybrid of global/local non-affine alignment" < 0) { out << " QueryRange: " << qPrintStart + alignment.qPos //alignment.blocks[0].qPos << " -> " << (qPrintStart + alignment.qPos + + alignment.blocks[alignment.blocks.size() - 1 ].qPos + alignment.blocks[alignment.blocks.size() - 1 ].length) << " of " << alignment.qLength << endl; out << " TargetRange: " << tPrintStart + alignment.tPos //alignment.blocks[0].tPos << " -> " // << (tPrintStart + alignment.blocks[alignment.blocks.size() - 1].tPos + << (tPrintStart + alignment.tPos + alignment.blocks[alignment.blocks.size() - 1 ].tPos + alignment.blocks[alignment.blocks.size() - 1].length) << " of " << alignment.tLength << endl; } else { out << " QueryRange: NONE " << endl; out << " TargetRange: NONE " << endl; } if (alignment.blocks.size() == 0) return; CreateAlignmentStrings(alignment, query.seq, text.seq, textStr, alignStr, queryStr, query.length, text.length); // // Process any gaps at the beginning of // the alignment. // DNALength qPos, tPos; int coordsPrintWidth = MAX(GetNumberWidth(alignment.qPos + qPrintStart + query.length), GetNumberWidth(alignment.tPos + tPrintStart + query.length)); // // Now print the alignment VectorIndex lineLength = maxPrintLength; if (lineLength > textStr.size()) lineLength = textStr.size(); std::string textLine, queryLine, alignLine; DNALength pos = 0; tPos = alignment.tPos; qPos = alignment.qPos; int spacePad = 2; std::string coordPadding(spacePad, ' '); std::string alignStrPadding(coordsPrintWidth + spacePad, ' '); while (lineLength > 0) { textLine.assign(textStr, pos, lineLength); alignLine.assign(alignStr, pos, lineLength); queryLine.assign(queryStr, pos, lineLength); out.width(coordsPrintWidth); out << qPrintStart + qPos; out.width(0); out << coordPadding << queryLine << endl; out << alignStrPadding << alignLine << endl; out.width(coordsPrintWidth); out << tPrintStart + tPos ; out.width(0); out << coordPadding << textLine << endl; out << endl; pos += lineLength; tPos += lineLength; qPos += lineLength; // // Adjust tPos and qPos for indels. // VectorIndex p; for (p = 0; p < textLine.size(); p++) { if (textLine[p] == gapChar) tPos--; } for (p = 0; p < queryLine.size(); p++) { if (queryLine[p] == gapChar) qPos--; } lineLength = maxPrintLength; if (textStr.size() < (pos +lineLength)) { // sets lineLength to 0 on the last iteration lineLength = textStr.size() - pos; } else { lineLength = maxPrintLength; } } } #endif // _BLASR_STICK_ALIGNMENT_PRINTER_HPP_ blasr_libcpp-master/alignment/format/SummaryPrinter.cpp000066400000000000000000000021101260756663100237640ustar00rootroot00000000000000#include "SummaryPrinter.hpp" void SummaryOutput::Print( AlignmentCandidate &alignment, std::ostream &outFile) { int lastBlock = alignment.blocks.size()-1; outFile << alignment.qName << " " << alignment.tName << " " << alignment.qStrand << " " << alignment.tStrand << " " << alignment.score << " " << alignment.pctSimilarity << " " << alignment.tAlignedSeqPos + alignment.blocks[0].tPos << " " << alignment.tAlignedSeqPos + alignment.blocks[lastBlock].tPos + alignment.blocks[lastBlock].length << " " << alignment.tLength << " " << alignment.qAlignedSeqPos + alignment.blocks[0].qPos << " " << alignment.qAlignedSeqPos + alignment.blocks[lastBlock].qPos + alignment.blocks[lastBlock].length << " " << alignment.qLength << " " << alignment.nCells << std::endl; } void SummaryOutput::PrintHeader(std::ostream &out) { out << "qName tName qStrand tStrand score percentSimilarity tStart tEnd tLength qStart qEnd qLength nCells" << std::endl; } blasr_libcpp-master/alignment/format/SummaryPrinter.hpp000066400000000000000000000005211260756663100237750ustar00rootroot00000000000000#ifndef SUMMARY_ALIGNMENT_PRINTER_H_ #define SUMMARY_ALIGNMENT_PRINTER_H_ #include "datastructures/alignment/AlignmentCandidate.hpp" #include "FASTQSequence.hpp" namespace SummaryOutput{ void Print(AlignmentCandidate &alignment, std::ostream &outFile); void PrintHeader(std::ostream &out); } #endif blasr_libcpp-master/alignment/format/VulgarPrinter.hpp000066400000000000000000000023611260756663100236040ustar00rootroot00000000000000#ifndef _BLASR_VULGAR_ALIGNMENT_PRINTER_HPP_ #define _BLASR_VULGAR_ALIGNMENT_PRINTER_HPP_ #include #include namespace VulgarOutput{ template int CreateVulgarString(T_Alignment &alignment, std::string &vstring) { std::stringstream vstream; VectorIndex b; int tGap, qGap, cGap; if (alignment.blocks.size() == 0) { vstring = ""; return 1; } for (b = 0; b < alignment.blocks.size() - 1; b++) { tGap = (alignment.blocks[b+1].tPos - (alignment.blocks[b].length + alignment.blocks[b].tPos)); qGap = (alignment.blocks[b+1].qPos - (alignment.blocks[b].length + alignment.blocks[b].qPos)); if (tGap > 0 and qGap > 0) cGap = abs(tGap - qGap); else cGap = 0; tGap -= cGap; qGap -= cGap; vstream << " M " << alignment.blocks[b].length + cGap; if (tGap > 0) { vstream << " D " << tGap; } else { vstream << " I " << qGap; } } if (alignment.blocks.size() > 0) { vstream << " M " << alignment.blocks[alignment.blocks.size() - 1].length; } vstring = vstream.str(); return 1; } template void Print(T_Alignment &alignment, std::ostream &out) { std::string vstring; CreateVulgarString(alignment, vstring); out << vstring; } } #endif blasr_libcpp-master/alignment/format/XMLPrinter.hpp000066400000000000000000000075211260756663100230070ustar00rootroot00000000000000#ifndef _BLASR_XML_PRINTER_HPP_ #define _BLASR_XML_PRINTER_HPP_ #include "utils/SimpleXMLUtils.hpp" namespace XMLOutput{ template void Print(T_Alignment &alignment, T_Sequence &query, T_Sequence &text, std::ostream &out, int qPrintStart = 0, int tPrintStart = 0, int maxPrintLength = 50) { /* * Sample alignment: * AG--CGTTCC-TATGG-TG-GGGTCGTTA-ACT---GTCGCCAG AGCCCG-TCCTTATGGTTGAGGGTTGTTACACTTCGGTCGCCAG */ char strand[2] = {'+', '-'}; std::string tAlignStr, alignStr, qAlignStr; CreateAlignmentStrings(alignment, query.seq, text.seq, tAlignStr, alignStr, qAlignStr); int alignLength = tAlignStr.size(); if (alignLength == 0) { alignLength = 1; // Make sure there are no divide by zero. alignment.nIns = 0; alignment.nDel = 0; alignment.nMismatch = 0; alignment.nMatch = 0; } out << BeginDataEntry(std::string("hit"), CreateKeywordValuePair(std::string("name"), alignment.qName) + CreateKeywordValuePair(std::string("unalignedLength"), alignment.qLength) + CreateKeywordValuePair(std::string("start"), alignment.qPos) + CreateKeywordValuePair(std::string("end"), alignment.qPos + alignment.qAlignLength) + CreateKeywordValuePair(std::string("strand"), strand[alignment.qStrand]) + CreateKeywordValuePair(std::string("targetStart"), alignment.tPos) + CreateKeywordValuePair(std::string("targetEnd"), alignment.tPos + alignment.tAlignLength) + CreateKeywordValuePair(std::string("targetStrand"), strand[alignment.tStrand])) << std::endl; out << CreateDataEntry(std::string("zScore"), CreateKeywordValuePair(std::string("value"), alignment.zScore)) << std::endl; out << CreateDataEntry(std::string("nInsert"), CreateKeywordValuePair(std::string("value"), alignment.nIns) + " " + CreateKeywordValuePair(std::string("percent"), alignment.nIns*0.5/alignLength)) << std::endl; out << CreateDataEntry(std::string("nDelete"), CreateKeywordValuePair(std::string("value"), alignment.nDel) + " " + CreateKeywordValuePair(std::string("percent"), alignment.nDel*0.5/alignLength)) << std::endl; out << CreateDataEntry(std::string("nMismatch"), CreateKeywordValuePair(std::string("value"), alignment.nMismatch) + " " + CreateKeywordValuePair(std::string("percent"), alignment.nMismatch*0.5/alignLength)) << std::endl; out << CreateDataEntry(std::string("nCorrect"), CreateKeywordValuePair(std::string("value"), alignment.nMatch) + " " + CreateKeywordValuePair(std::string("percent"), alignment.nMatch*0.5/alignLength)) << std::endl; out << CreateStartEntry(std::string("alignment"), std::string("")) << CreateStartEntry(std::string("query"), std::string("")) << std::endl; out << qAlignStr << std::endl; out << CreateEndEntry(std::string("query")) << std::endl; out << CreateStartEntry(std::string("target"), std::string("")) << std::endl; out << tAlignStr << std::endl; out << CreateEndEntry(std::string("target")) << std::endl; out << CreateEndEntry(std::string("alignment")) << std::endl; out << CreateEndEntry(std::string("hit")) << std::endl; } } #endif blasr_libcpp-master/alignment/ipc/000077500000000000000000000000001260756663100175505ustar00rootroot00000000000000blasr_libcpp-master/alignment/ipc/SharedMemoryAllocator.hpp000066400000000000000000000021011260756663100245130ustar00rootroot00000000000000#ifndef _BLASR_SHARED_MEMORY_ALLOCATOR_HPP_ #define _BLASR_SHARED_MEMORY_ALLOCATOR_HPP_ #include #include #include #include #include #include template int AllocateMappedShare(std::string &handle, int dataLength, T_Data *&dataPtr, int &shmId) { std::cout << "opening shm" << std::endl; shmId = shm_open(handle.c_str(), O_CREAT| O_RDWR, S_IRUSR | S_IWUSR); if (ftruncate(shmId, sizeof(T_Data[dataLength])) == -1) { std::cout <<" ftruncate error: " << errno << std::endl; } std::cout << "done truncating." << std::endl; dataPtr = (T_Data*) mmap(NULL, sizeof(T_Data[dataLength]), PROT_READ | PROT_WRITE, MAP_SHARED, shmId, 0); if (dataPtr == MAP_FAILED) { // // Handle this better later on. // std::cout << "ERROR, MEMORY MAP FAILED." << std::endl; exit(1); } std::cout << "done mapping." << std::endl; return dataLength; } #endif // _BLASR_SHARED_MEMORY_ALLOCATOR_HPP_ blasr_libcpp-master/alignment/makefile000066400000000000000000000030251260756663100204750ustar00rootroot00000000000000all: THISDIR:=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) -include ${CURDIR}/defines.mk include ${THISDIR}/../rules.mk CXXOPTS := -std=c++11 -pedantic -Wno-long-long INCLUDES += ${THISDIR} ${LIBPBDATA_INC} ${LIBPBIHDF_INC} ${HDF5_INC} ${PBBAM_INC} ${HTSLIB_INC} ${BOOST_INC} LIBS += ${LIBPBDATA_LIB} ${LIBPBIHDF_LIB} ${HDF5_LIB} ${PBBAM_LIB} ${HTSLIB_LIB} ${ZLIB_LIB} LDFLAGS += $(patsubst %,-L%,${LIBS}) LDLIBS += -lpbdata ifeq (${nohdf},) LDLIBS+= -lpbihdf #LDFLAGS+= -flat_namespace # so we do not need LDLIBS+= -lhdf5 -lhdf5_cpp endif # We might also need some -l* for pbbam, etc. all: libblasr.a libblasr${SH_LIB_EXT} paths := . simulator format files utils tuples statistics qvs suffixarray \ datastructures/alignment datastructures/alignmentset datastructures/anchoring datastructures/tuplelists \ algorithms/alignment algorithms/alignment/sdp algorithms/anchoring algorithms/compare algorithms/sorting paths := $(patsubst %,${THISDIR}%,${paths}) sources := $(shell find ${THISDIR} -name '*.cpp') ifdef nohdf sources := $(filter-out ${THISDIR}files/% ${THISDIR}utils/FileOfFileNames.cpp ${THISDIR}format/SAMHeaderPrinter.cpp, $(sources)) endif sources := $(notdir ${sources}) objects := $(sources:.cpp=.o) shared_objects := $(sources:.cpp=.shared.o) dependencies := $(objects:.o=.d) $(shared_objects:.o=.d) vpath %.cpp ${paths} libblasr.a: $(objects) $(AR) $(ARFLAGS) $@ $^ libblasr${SH_LIB_EXT}: $(shared_objects) clean: rm -f libblasr.a libblasr.so *.o *.d -include $(dependencies) depend: $(dependencies:.d=.depend) blasr_libcpp-master/alignment/qvs/000077500000000000000000000000001260756663100176065ustar00rootroot00000000000000blasr_libcpp-master/alignment/qvs/QualityValueProfile.cpp000066400000000000000000000024571260756663100242700ustar00rootroot00000000000000#include "QualityValueProfile.hpp" QualityValueProfile::QualityValueProfile(int _wordSize, int _numQualityValues) { wordSize = _wordSize; numQualityValues = _numQualityValues; // Initialize the tuple metrics to map from seq->index tm.Initialize(wordSize); nWords = 1 << (2*wordSize); // Initialize the matrix of quality values. profile.Grow(nWords, numQualityValues); profile.Initialize(0); } void QualityValueProfile::Update(Nucleotide *seq, QualityValue qv) { DNATuple tuple; if (tuple.FromStringLR(seq, tm)) { profile.Set(tuple.tuple, qv, profile(tuple.tuple, qv) + 1); } } void QualityValueProfile::Print(std::ofstream &out) { out << wordSize << " " << numQualityValues << " " << CDF_GRANULARITY << std::endl; profile.Print(out); } void QualityValueProfile::ProfileToCDF() { int qv; int wordIndex; for (wordIndex = 0 ; wordIndex < nWords; wordIndex++) { int totalSamples = 0; for (qv = 0; qv < numQualityValues; qv++) { totalSamples += profile(wordIndex, qv); profile.Set(wordIndex, qv, totalSamples); } for (qv = 0; qv < numQualityValues; qv++ ){ profile.Set(wordIndex, qv, ((profile(wordIndex,qv) * 1.0) / totalSamples) * CDF_GRANULARITY); } } } blasr_libcpp-master/alignment/qvs/QualityValueProfile.hpp000066400000000000000000000011171260756663100242650ustar00rootroot00000000000000#ifndef _BLASR_QUALITY_VALUE_PROFILE_HPP_ #define _BLASR_QUALITY_VALUE_PROFILE_HPP_ #include #include "tuples/DNATuple.hpp" #include "tuples/TupleMetrics.hpp" #include "matrix/FlatMatrix.hpp" #include "qvs/QualityValue.hpp" class QualityValueProfile { int wordSize; int numQualityValues; FlatMatrix2D profile; int nWords; TupleMetrics tm; public: static const int CDF_GRANULARITY = 10000; QualityValueProfile(int _wordSize, int _numQualityValues); void Update(Nucleotide *seq, QualityValue qv); void Print(std::ofstream &out); void ProfileToCDF(); }; #endif blasr_libcpp-master/alignment/simulator/000077500000000000000000000000001260756663100210145ustar00rootroot00000000000000blasr_libcpp-master/alignment/simulator/CDFMap.hpp000066400000000000000000000022271260756663100225620ustar00rootroot00000000000000#ifndef _SIMULATOR_CDF_MAP_HPP_ #define _SIMULATOR_CDF_MAP_HPP_ #include #include #include #include "statistics/StatUtils.hpp" template class CDFMap { public: std::vector cdf; std::vector data; /* Tests: * indices 0 1 2 3 4 5 6 * lengths: 1 3 5 9 10 10 11 * lengthHistogram.data: 1 3 5 9 10 11 * lengthHistogram.cdf : 1 2 3 4 6 7 * * lengths: 1 3 5 9 10 11 * lengthHistogram.data: 1 3 5 9 10 11 * lengthHistogram.cdf : 1 2 3 4 5 6 * * lengths: 10 * lengthHistogram.data: 10 * lengthHistogram.cdf : 1 */ int SelectRandomValue(T_Data &value); }; template int CDFMap::SelectRandomValue(T_Data &value) { std::vector::iterator search_it; assert(cdf.size() >= 0); int randomIndex = RandomInt(cdf[cdf.size()-1]); search_it = lower_bound(cdf.begin(), cdf.end(), randomIndex); assert(search_it != cdf.end()); int valueIndex = search_it - cdf.begin(); value = data[valueIndex]; return valueIndex; } #endif blasr_libcpp-master/alignment/simulator/ContextOutputList.hpp000066400000000000000000000056531260756663100252370ustar00rootroot00000000000000#ifndef _SIMULATOR_CONTEXT_OUTPUT_LIST_HPP_ #define _SIMULATOR_CONTEXT_OUTPUT_LIST_HPP_ #include #include #include #include #include #include "utils.hpp" #include "simulator/OutputList.hpp" class ContextOutputList { public: std::map outputMap; int contextLength; int ParsePair(std::string &output, std::string &outStr, int &outCount){ std::string contextStr, outCountStr; int i; for (i = 0; i < output.size(); i++) { if (output[i] == '=') { int start = 0; while(start < i and (output[start] == ' ' or output[start] == '\t')) { start++;} outStr.assign(&output[start], i-start); outCountStr.assign(&output[i+1], output.size()-i-1); outCount = atoi(outCountStr.c_str()); return 1; } } return 0; } int SampleRandomContext(std::string refContext, std::string &readContext) { // // Chec to see if there is a distribution for this ref context, if // not, just return the ref context so that things may proceed, // but return a fail code. // if (outputMap.find(refContext) == outputMap.end()) { readContext = refContext; return 0; } else { outputMap[refContext]->SelectRandomContect(readContext); return 1; } } void Read(std::string &inName) { ifstream in; CrucialOpen(inName, in, std::ios::in); Read(in); } void Read(ifstream &in) { int nLines = 0; contextLength = 0; while(in) { std::string context; if (!(in >> context)) break; contextLength = context.size(); std::string outputsLine; getline(in,outputsLine); // parse ctx=num; pairs int i; int e; i = 0; if (outputMap.find(context) == outputMap.end()) { outputMap[context] = ProtectedNew(); } while(i < outputsLine.size()) { e = i+1; while(e < outputsLine.size() and outputsLine[e] != ';') e++; std::string pairStr; pairStr.assign(&outputsLine[i], e-i); if (e > i + 1) { std::string outStr; int outCount; ParsePair(pairStr, outStr, outCount); outputMap[context]->AddOutput(outStr, outCount); } i = e + 1; } outputMap[context]->StoreCumulativeCounts(); } } void Free() { std::map::iterator mapIt; for (mapIt = outputMap.begin(); mapIt != outputMap.end(); ++mapIt) { if (mapIt->second) {delete mapIt->second;} } } }; #endif blasr_libcpp-master/alignment/simulator/ContextSample.cpp000066400000000000000000000024041260756663100243060ustar00rootroot00000000000000#include "ContextSample.hpp" ContextSample::ContextSample() { minSamples = 0; maxSamples = 0; reachedMinSamples = 0; } int ContextSample::GetNSamples() { return samples.size(); } int ContextSample::AppendSample(SMRTSequence &seq, DNALength pos) { // // Check to see if the space has been sampled enough. // if (maxSamples != 0 and samples.size() >= maxSamples) return 0; samples.resize(samples.size()+1); samples[samples.size()-1].CreateFromRead(seq,pos); if (samples.size() > minSamples and reachedMinSamples == 0) { reachedMinSamples = 1; return 1; } else { return 0; } } QualitySample* ContextSample::GetRandomQualitySample() { int sampleIndex = RandomInt(samples.size()); return &samples[sampleIndex]; } void ContextSample::Write(std::ofstream &out) { int s; int sampleSize = samples.size(); out.write((char*) &sampleSize, sizeof(sampleSize)); for (s = 0; s < samples.size(); s++ ){ samples[s].Write(out); } } void ContextSample::Read(std::ifstream &in) { int s; int sampleSize; in.read((char*)&sampleSize, sizeof(sampleSize)); samples.resize(sampleSize); for (s = 0; s < sampleSize; s++ ){ samples[s].Read(in); } } blasr_libcpp-master/alignment/simulator/ContextSample.hpp000066400000000000000000000011011260756663100243040ustar00rootroot00000000000000#ifndef _SIMULATOR_CONTEXT_SAMPLE_HPP_ #define _SIMULATOR_CONTEXT_SAMPLE_HPP_ #include #include #include #include "simulator/QualitySample.hpp" #include "statistics/StatUtils.hpp" class ContextSample { public: std::vector samples; int minSamples; int maxSamples; int reachedMinSamples; ContextSample(); int GetNSamples(); int AppendSample(SMRTSequence &seq, DNALength pos); QualitySample* GetRandomQualitySample(); void Write(std::ofstream &out); void Read(std::ifstream &in); }; #endif blasr_libcpp-master/alignment/simulator/ContextSet.cpp000066400000000000000000000021101260756663100236120ustar00rootroot00000000000000#include "ContextSet.hpp" ContextSampleMap::ContextSampleMap() { contextLength = 0; } void ContextSampleMap::Write(std::ofstream &out) { T_ContextSampleMap::iterator mapIt, mapEnd; int mapSize = this->size(); out.write((char*)&contextLength, sizeof(contextLength)); out.write((char*)&mapSize, sizeof(mapSize)); mapEnd = this->end(); for(mapIt = this->begin(); mapIt != mapEnd; ++mapIt) { out.write(mapIt->first.c_str(), contextLength); mapIt->second->Write(out); } } void ContextSampleMap::Read(std::ifstream &in) { in.read((char*)&contextLength, sizeof(contextLength)); int numContext; in.read((char*)&numContext, sizeof(numContext)); int i; char *context = ProtectedNew(contextLength+1); context[contextLength] = '\0'; for (i = 0; i < numContext; i++) { in.read(context, contextLength); std::string contextString = context; // Allocate the context (*this)[contextString] = ProtectedNew(); (*this)[contextString]->Read(in); } delete[] context; } blasr_libcpp-master/alignment/simulator/ContextSet.hpp000066400000000000000000000006131260756663100236250ustar00rootroot00000000000000#ifndef _SIMULATOR_CONTEXT_SET_HPP_ #define _SIMULATOR_CONTEXT_SET_HPP_ #include #include #include "ContextSample.hpp" typedef std::map T_ContextSampleMap; class ContextSampleMap : public T_ContextSampleMap { public: int contextLength; ContextSampleMap(); void Write(std::ofstream &out); void Read(std::ifstream &in); }; #endif blasr_libcpp-master/alignment/simulator/LengthHistogram.cpp000066400000000000000000000032411260756663100246170ustar00rootroot00000000000000#include "simulator/LengthHistogram.hpp" int LengthHistogram::Read(std::string &inName) { std::ifstream in; CrucialOpen(inName, in, std::ios::in); return Read(in); } int LengthHistogram::Read(std::ifstream &in) { while(in) { int length, count; in >> length; in >> count; lengthHistogram.data.push_back(length); if (lengthHistogram.cdf.size() == 0) { lengthHistogram.cdf.push_back(count); } else { lengthHistogram.cdf.push_back(lengthHistogram.cdf[lengthHistogram.cdf.size()-1] + count); } } return 1; } void LengthHistogram::GetRandomLength(int &length) { lengthHistogram.SelectRandomValue(length); } void LengthHistogram::BuildFromAlignmentLengths(std::vector &lengths) { int i; sort(lengths.begin(), lengths.end()); int f; for (f = 0, i = 1; i < lengths.size(); i++) { if (lengths[i] != lengths[f]) { lengthHistogram.data.push_back(lengths[f]); lengthHistogram.cdf.push_back(i); f = i; } } if (lengths.size() != 0) { lengthHistogram.data.push_back(lengths[lengths.size()-1]); lengthHistogram.cdf.push_back(lengths.size()); } /* Tests: * indices 0 1 2 3 4 5 6 * lengths: 1 3 5 9 10 10 11 * lengthHistogram.data: 1 3 5 9 10 11 * lengthHistogram.cdf : 1 2 3 4 6 7 * * lengths: 1 3 5 9 10 11 * lengthHistogram.data: 1 3 5 9 10 11 * lengthHistogram.cdf : 1 2 3 4 5 6 * * lengths: 10 * lengthHistogram.data: 10 * lengthHistogram.cdf : 1 */ } blasr_libcpp-master/alignment/simulator/LengthHistogram.hpp000066400000000000000000000007441260756663100246310ustar00rootroot00000000000000#ifndef _SIMULATOR_LENGTH_HISTOGRAM_HPP_ #define _SIMULATOR_LENGTH_HISTOGRAM_HPP_ #include #include #include #include "simulator/CDFMap.hpp" #include "alignment/CmpAlignment.hpp" #include "utils.hpp" class LengthHistogram { public: CDFMap lengthHistogram; int Read(std::string &inName); int Read(std::ifstream &in); void GetRandomLength(int &length); void BuildFromAlignmentLengths(std::vector &lengths); }; #endif blasr_libcpp-master/alignment/simulator/OutputList.hpp000066400000000000000000000022621260756663100236630ustar00rootroot00000000000000#ifndef _SIMULATOR_OUTPUT_LIST_HPP_ #define _SIMULATOR_OUTPUT_LIST_HPP_ #include #include #include "CDFMap.hpp" class Output { public: std::string output; int count; }; class OutputList { public: int totalCount; std::vector outputs; CDFMap::iterator> cdf; OutputList() { totalCount = 0; } int AddOutput(std::string str, int count) { outputs.resize(outputs.size()+1); outputs[outputs.size()-1].output = str; outputs[outputs.size()-1].count = count; totalCount += count; } void StoreCumulativeCounts() { int outputIndex; int total = 0; for (outputIndex = 0; outputIndex < outputs.size(); outputIndex++) { total += outputs[outputIndex].count; cdf.cdf.push_back(total); cdf.data.push_back(outputs.begin() + outputIndex); } assert(total == totalCount); } int ReturnUniformRandomContextIt(std::vector::iterator &outputIt) { return cdf.SelectRandomValue(outputIt); } int SelectRandomContect(std::string &outputContext) { std::vector::iterator outIt; ReturnUniformRandomContextIt(outIt); outputContext = outIt->output; return outIt - outputs.begin(); } }; #endif blasr_libcpp-master/alignment/simulator/OutputSample.hpp000066400000000000000000000027261260756663100241760ustar00rootroot00000000000000#ifndef _SIMULATOR_OUTPUT_SAMPLE_HPP_ #define _SIMULATOR_OUTPUT_SAMPLE_HPP_ #include "QualitySample.hpp" #include "SMRTSequence.hpp" class OutputSample { public: enum Type {Match, Insertion, Deletion, Substitution}; std::vector qualities; std::vector nucleotides; Type type; void Resize(int size) { qualities.resize(size); nucleotides.resize(size); } int CopyFromSeq(SMRTSequence &seq, int pos, int length=1) { Resize(length); int i; for (i = 0; i < length; i++) { qualities[i].CopyFromSequence(seq, pos+i); nucleotides[i] = seq.seq[pos+i]; } } void Write(std::ofstream &out) { out.write((char*) &type, sizeof(type)); int nNuc = nucleotides.size(); out.write((char*)&nNuc, sizeof(int)); int i; for (i = 0; i < qualities.size(); i++) { qualities[i].Write(out); } assert(nNuc == qualities.size()); out.write((char*) &nucleotides[0], sizeof(Nucleotide)*nucleotides.size()); } void Read(std::ifstream &in) { in.read((char*) &type, sizeof(Type)); int nNuc; in.read((char*) &nNuc, sizeof(int)); qualities.resize(nNuc); int i; for (i = 0; i < nNuc; i++) { qualities[i].Read(in); } nucleotides.resize(nNuc); in.read((char*) &nucleotides[0], sizeof(Nucleotide)* nNuc); } }; #endif blasr_libcpp-master/alignment/simulator/OutputSampleList.hpp000066400000000000000000000013771260756663100250330ustar00rootroot00000000000000#ifndef _SIMULATOR_OUTPUT_SAMPLE_LIST_HPP_ #define _SIMULATOR_OUTPUT_SAMPLE_LIST_HPP_ #include #include "OutputSample.hpp" class OutputSampleList: public std::vector { public: void Write(ofstream &out) { int nElem = this->size(); out.write((char*)&nElem, sizeof(int)); if (nElem > 0) { int i; for (i = 0; i < nElem; i++) { (*this)[i].Write(out); } } } void Read(std::ifstream &in) { int nElem; in.read((char*) &nElem, sizeof(int)); if (nElem > 0) { this->resize(nElem); int i; for (i = 0; i < nElem; i++) { (*this)[i].Read(in); } } } }; #endif blasr_libcpp-master/alignment/simulator/OutputSampleListSet.hpp000066400000000000000000000064371260756663100255110ustar00rootroot00000000000000#ifndef SIMULATOR_OUTPUT_SAMPLE_LIST_SET_H_ #define SIMULATOR_OUTPUT_SAMPLE_LIST_SET_H_ #include #include #include #include "utils.hpp" #include "OutputSampleList.hpp" using namespace std; typedef map OutputSampleListMap; class OutputSampleListSet { public: OutputSampleListMap listMap; vector keys; int keyLength; int nSufficient; int sampleSpaceSize; int keySize; int minSamples; int maxSamples; vector lengths; OutputSampleListSet(int keySizeP) { minSamples = 500; maxSamples = 2000; nSufficient = 0; keySize = keySizeP; sampleSpaceSize = 1 << (2*keySize); } void Write(ofstream &out) { // Say how many elements to write. OutputSampleListMap::iterator mapIt; int setSize = listMap.size(); out.write((char*) &setSize, sizeof(int)); int keySize = 0; // Say how large each element is. if (listMap.size() > 0) { keySize = listMap.begin()->first.size(); } out.write((char*)&keySize, sizeof(int)); for (mapIt = listMap.begin(); mapIt != listMap.end(); ++mapIt) { string mapItKey = mapIt->first; out.write((char*) mapItKey.c_str(), sizeof(char) * mapItKey.size()); mapIt->second.Write(out); } int numLengths = lengths.size(); out.write((char*) &numLengths, sizeof(int)); int i; for ( i = 0; i < lengths.size(); i++) { out.write((char*) &lengths[i], sizeof(int)); } } void Read(string &inName) { ifstream in; CrucialOpen(inName, in, std::ios::in|std::ios::binary); Read(in); in.close(); } void Read(ifstream &in) { int setSize; in.read((char*) &setSize, sizeof(int)); in.read((char*) &keyLength, sizeof(int)); if (keyLength == 0 or setSize == 0) { return; } char *key = ProtectedNew(keyLength+1); key[keyLength] = '\0'; int i; for (i = 0; i < setSize; i++) { in.read(key, sizeof(char)*keyLength); listMap[key].Read(in); } int numLengths; in.read((char*) &numLengths, sizeof(int)); if (numLengths > 0) { lengths.resize(numLengths); } for (i = 0; i < numLengths; i++) { in.read((char*) &lengths[i], sizeof(int)); } if (key) {delete [] key; key = NULL;} } void AppendOutputSample(string key, OutputSample &sample) { if (listMap[key].size() < minSamples) { if (listMap[key].size() < maxSamples) { listMap[key].push_back(sample); } if (listMap[key].size() == minSamples) { nSufficient++; cout << nSufficient << " / " << sampleSpaceSize << endl; } } } bool Sufficient() { return nSufficient == sampleSpaceSize; } void SampleRandomSample(string key, OutputSample &sample) { if (listMap.find(key) == listMap.end()) { cout << listMap.size() << endl; cout <<"ERROR, " << key << " is not a sampled context." << endl; int i; for (i = 0; i < key.size(); i++) { char c = toupper(key[i]); if (c != 'A' and c != 'C' and c != 'G' and c != 'T') { cout << "The nucleotide " << c << " is not supported." << endl; } } exit(1); } sample = listMap[key][RandomInt(listMap[key].size())]; } }; #endif blasr_libcpp-master/alignment/simulator/QualitySample.cpp000066400000000000000000000041221260756663100243110ustar00rootroot00000000000000#include "QualitySample.hpp" void QualitySample::CopyFromSequence(SMRTSequence &seq, int pos) { qv[0] = seq.qual[pos]; qv[1] = seq.deletionQV[pos]; qv[2] = seq.insertionQV[pos]; qv[3] = seq.substitutionQV[pos]; tags[0] = seq.deletionTag[pos]; tags[1] = seq.substitutionTag[pos]; frameValues[0] = seq.pulseIndex[pos]; frameValues[1] = seq.preBaseFrames[pos]; frameValues[2] = seq.widthInFrames[pos]; } void QualitySample::Write(std::ofstream &out) { out.write((char*)qv, sizeof(qv[0])*NQV); out.write((char*)frameValues, sizeof(frameValues[0])*NFV); out.write((char*)tags, sizeof(tags[0])*NT); } void QualitySample::Read(std::ifstream &in) { in.read((char*)qv, sizeof(QualityValue)*NQV); in.read((char*)frameValues, sizeof(frameValues[0])*NFV); in.read((char*)tags, sizeof(tags[0])*NT); } void QualitySample::CreateFromRead(SMRTSequence &seq, DNALength pos) { /* * For now create with a static set of values: * qvs: * 0 QualityValue * 1 DeletionQV * 2 InsertionQV * 3 SubstitutionQV * tags: * 0 DeletionTag * 1 SubstitutionTag * PulseData * 0 PulseIndex * 1 PreBaseFrames * 2 WidthInFrames */ // qv.resize(4); std::fill(&qv[0], &qv[NQV], 0); if (seq.qual.Empty() == false){ qv[0] = seq.qual[pos]; } if (seq.deletionQV.Empty() == false) { qv[1] = seq.deletionQV[pos]; } if (seq.insertionQV.Empty() == false ){ qv[2] = seq.insertionQV[pos]; } if (seq.substitutionQV.Empty() == false){ qv[3] = seq.substitutionQV[pos]; } std::fill(&tags[0], &tags[NT], 0); if (seq.deletionTag){ tags[0] = seq.deletionTag[pos]; } if (seq.substitutionTag) { tags[1] = seq.substitutionTag[pos]; } std::fill(&frameValues[0], &frameValues[NFV], 0); if (seq.pulseIndex) { frameValues[0] = seq.pulseIndex[pos]; } if (seq.preBaseFrames) { frameValues[1] = seq.preBaseFrames[pos]; } if (seq.widthInFrames) { frameValues[2] = seq.widthInFrames[pos]; } } blasr_libcpp-master/alignment/simulator/QualitySample.hpp000066400000000000000000000010341260756663100243150ustar00rootroot00000000000000#ifndef _SIMULATOR_QUALITY_SAMPLE_HPP_ #define _SIMULATOR_QUALITY_SAMPLE_HPP_ #include #include "Types.h" #include "SMRTSequence.hpp" #include "qvs/QualityValue.hpp" #define NQV 4 #define NFV 3 #define NT 2 class QualitySample { public: QualityValue qv[NQV]; HalfWord frameValues[NFV]; Nucleotide tags[NT]; void CopyFromSequence(SMRTSequence &seq, int pos); void Write(std::ofstream &out); void Read(std::ifstream &in); void CreateFromRead(SMRTSequence &seq, DNALength pos); }; #endif blasr_libcpp-master/alignment/statistics/000077500000000000000000000000001260756663100211675ustar00rootroot00000000000000blasr_libcpp-master/alignment/statistics/AnchorDistributionTable.hpp000066400000000000000000116344211260756663100264760ustar00rootroot00000000000000#ifndef STATISTICS_ANCHOR_DISTRIBUTION_TABLE_H_ #define STATISTICS_ANCHOR_DISTRIBUTION_TABLE_H_ static int anchorMinKValues[] = {10,25,1}; static int anchorReadLengths[] = {100,3000,10}; static int anchorReadAccuracies[] = {70,95,1}; static float meanNumAnchors[] = { 0.83,0.91,1.07,1.08,1.18,1.21,1.39,1.46,1.54,1.64, 1.69,1.83,1.87,1.96,2.08,2.11,2.22,2.35,2.38,2.46, 2.57,2.60,2.66,2.65,2.82,3.03,3.08,3.06,3.26,3.31, 3.32,3.38,3.58,3.67,3.69,3.85,3.81,3.88,4.05,4.16, 4.32,4.43,4.44,4.38,4.44,4.52,4.65,4.90,4.73,4.90, 4.98,5.11,5.21,5.31,5.37,5.49,5.54,5.70,5.59,5.75, 5.89,6.02,6.10,6.18,6.33,6.37,6.59,6.36,6.56,6.65, 6.72,6.74,6.85,7.01,7.08,7.18,7.24,7.27,7.36,7.57, 7.43,7.63,7.80,7.81,8.12,7.86,8.11,8.20,8.29,8.33, 8.43,8.39,8.71,8.81,8.70,8.75,8.92,8.94,9.24,9.21, 9.11,9.36,9.32,9.41,9.62,9.60,9.73,9.91,9.80,9.82, 10.09,10.17,10.20,10.27,10.33,10.39,10.57,10.46,10.72,10.91, 10.80,11.10,11.25,11.11,11.45,11.21,11.25,11.45,11.65,11.56, 11.91,12.01,11.90,11.97,12.09,12.25,12.12,12.21,12.54,12.53, 12.61,12.37,12.88,12.88,13.03,12.94,13.12,13.23,13.37,13.26, 13.40,13.47,13.70,13.60,13.72,13.79,14.00,13.99,14.04,13.95, 14.27,14.16,14.57,14.47,14.65,14.68,14.93,14.98,14.89,15.01, 15.08,15.24,15.21,15.25,15.21,15.59,15.64,15.81,15.64,15.86, 15.98,16.17,16.13,16.11,16.15,16.15,16.25,16.42,16.61,16.56, 16.78,16.62,17.07,16.83,17.13,17.18,17.13,17.51,17.57,17.73, 17.49,17.83,17.75,17.79,18.08,17.96,18.09,18.25,18.27,18.09, 18.35,18.56,18.59,18.75,18.67,18.93,18.97,19.12,19.01,19.23, 19.32,19.48,19.41,19.47,19.72,19.68,19.83,19.94,19.88,20.18, 20.19,20.11,20.14,20.50,20.35,20.65,20.74,20.77,20.91,20.83, 20.78,20.91,21.19,21.12,21.21,21.39,21.52,21.27,21.62,21.96, 21.96,21.59,22.06,21.96,22.24,22.45,22.18,22.63,22.50,22.83, 22.57,22.77,22.71,22.70,23.02,23.00,23.06,23.24,23.33,23.42, 23.57,23.61,23.95,23.48,23.88,23.82,24.00,24.08,23.96,24.24, 24.36,24.41,24.75,24.72,24.59,24.57,24.82,24.71,25.22,24.88, 0.59,0.65,0.70,0.76,0.82,0.87,0.95,0.98,1.17,1.11, 1.18,1.22,1.27,1.32,1.48,1.53,1.59,1.60,1.65,1.67, 1.78,1.80,1.92,1.97,2.07,2.07,2.09,2.18,2.31,2.29, 2.42,2.49,2.46,2.51,2.56,2.67,2.75,2.79,2.84,2.85, 2.94,3.01,3.04,3.18,3.22,3.34,3.27,3.39,3.40,3.53, 3.49,3.61,3.60,3.71,3.77,3.71,3.85,3.98,4.05,4.04, 4.13,4.24,4.33,4.35,4.37,4.41,4.49,4.55,4.59,4.59, 4.74,4.89,4.79,4.81,4.82,5.00,5.10,5.11,5.07,5.23, 5.31,5.39,5.55,5.40,5.47,5.63,5.63,5.73,5.73,5.91, 5.89,5.94,6.02,5.94,6.13,6.26,6.31,6.29,6.58,6.45, 6.46,6.41,6.56,6.77,6.79,6.70,6.82,6.84,7.14,7.03, 6.94,7.00,7.27,7.23,7.35,7.29,7.37,7.28,7.48,7.52, 7.53,7.74,7.92,7.76,7.85,8.00,7.86,8.04,8.02,8.08, 8.35,8.32,8.41,8.39,8.34,8.56,8.61,8.67,8.66,8.81, 8.70,8.87,8.81,8.75,9.33,9.09,9.10,9.00,9.35,9.28, 9.27,9.44,9.54,9.60,9.60,9.65,9.72,9.77,9.91,9.90, 10.11,9.90,10.13,10.13,10.21,10.39,10.34,10.22,10.46,10.64, 10.40,10.84,10.89,10.70,10.98,10.79,10.75,10.96,11.09,11.12, 11.26,11.40,11.34,11.28,11.32,11.45,11.55,11.80,11.61,11.67, 11.74,11.69,11.95,11.92,11.92,11.88,11.98,12.26,12.25,12.13, 12.19,12.16,12.24,12.51,12.52,12.48,12.63,12.90,12.85,12.79, 12.77,13.16,13.05,13.13,13.12,13.13,13.41,13.37,13.46,13.35, 13.44,13.65,13.61,13.58,13.74,13.67,13.98,13.97,13.95,13.92, 14.07,13.87,14.15,14.41,14.36,14.44,14.38,14.54,14.69,14.78, 14.72,14.90,14.77,14.85,14.84,14.96,15.08,15.04,15.21,15.08, 15.23,15.29,15.42,15.36,15.29,15.58,15.71,15.78,15.55,15.98, 16.01,15.88,15.89,16.07,16.11,16.44,16.32,16.29,16.37,16.50, 16.58,16.38,16.55,16.54,16.54,16.55,16.80,16.77,16.81,16.95, 16.89,17.43,17.14,17.19,17.04,17.35,17.34,17.40,17.27,17.73, 0.41,0.47,0.52,0.54,0.56,0.61,0.66,0.72,0.77,0.79, 0.81,0.90,0.88,0.92,1.01,1.12,1.03,1.09,1.16,1.20, 1.25,1.25,1.40,1.31,1.37,1.43,1.43,1.51,1.48,1.62, 1.68,1.73,1.66,1.74,1.82,1.84,1.86,1.94,2.04,2.02, 2.06,2.14,2.18,2.18,2.17,2.25,2.30,2.25,2.36,2.37, 2.42,2.50,2.59,2.54,2.63,2.64,2.70,2.88,2.74,2.76, 2.88,2.91,3.07,2.96,3.09,3.12,3.17,3.14,3.24,3.35, 3.22,3.27,3.43,3.39,3.38,3.52,3.45,3.56,3.66,3.75, 3.71,3.69,3.77,3.92,3.90,3.87,3.86,3.99,4.06,4.11, 4.05,4.18,4.16,4.29,4.31,4.42,4.40,4.47,4.61,4.52, 4.42,4.54,4.59,4.65,4.71,4.74,4.71,4.88,4.81,4.88, 4.95,5.00,5.11,5.14,5.18,5.11,5.15,5.32,5.30,5.27, 5.39,5.45,5.54,5.53,5.52,5.50,5.55,5.67,5.64,5.70, 5.64,5.84,5.83,5.73,5.93,5.95,6.03,6.21,6.12,6.04, 6.16,6.14,6.30,6.26,6.24,6.48,6.51,6.33,6.42,6.46, 6.60,6.59,6.61,6.72,6.83,6.78,6.83,6.91,6.89,6.94, 6.90,6.99,7.01,7.15,7.19,7.18,7.26,7.11,7.25,7.33, 7.40,7.34,7.64,7.62,7.51,7.66,7.84,7.69,7.79,7.73, 7.92,7.83,7.90,7.95,8.08,8.01,8.15,8.24,8.10,8.25, 8.13,8.15,8.40,8.47,8.45,8.43,8.31,8.52,8.58,8.68, 8.69,8.53,8.69,8.71,8.69,8.97,8.92,8.80,8.86,8.99, 9.04,9.08,9.15,9.19,9.32,9.12,9.15,9.47,9.31,9.42, 9.39,9.54,9.56,9.60,9.70,9.81,9.78,9.68,9.68,9.91, 9.90,9.69,9.89,9.91,10.12,10.16,10.22,10.25,10.26,10.21, 10.32,10.34,10.35,10.33,10.37,10.44,10.52,10.53,10.60,10.76, 10.61,10.79,10.80,10.87,10.84,10.80,10.94,10.90,10.85,11.04, 11.09,11.20,11.03,11.08,11.16,11.42,11.14,11.30,11.54,11.36, 11.52,11.43,11.53,11.68,11.62,11.67,11.80,11.83,11.94,12.01, 11.90,11.94,11.77,12.01,12.08,12.09,12.13,12.33,12.26,12.06, 0.28,0.33,0.37,0.39,0.41,0.48,0.50,0.49,0.52,0.51, 0.58,0.63,0.65,0.66,0.68,0.71,0.68,0.79,0.83,0.84, 0.89,0.90,0.91,0.95,1.02,1.04,1.08,1.04,1.08,1.19, 1.08,1.22,1.20,1.21,1.30,1.27,1.36,1.35,1.37,1.45, 1.41,1.44,1.54,1.49,1.54,1.55,1.56,1.65,1.68,1.71, 1.71,1.78,1.80,1.81,1.85,1.86,1.87,1.87,1.97,1.96, 2.12,2.07,2.09,2.17,2.14,2.19,2.21,2.27,2.27,2.25, 2.24,2.36,2.29,2.33,2.44,2.35,2.48,2.45,2.63,2.58, 2.60,2.64,2.67,2.67,2.69,2.74,2.77,2.84,2.78,2.87, 3.02,2.88,3.05,2.94,3.05,3.04,3.16,3.15,3.12,3.12, 3.22,3.28,3.17,3.27,3.22,3.40,3.32,3.34,3.47,3.45, 3.44,3.49,3.60,3.69,3.63,3.52,3.53,3.69,3.70,3.68, 3.74,3.78,3.83,3.87,3.96,3.72,3.86,3.95,4.00,3.92, 4.07,4.03,4.04,4.03,4.12,4.14,4.22,4.17,4.20,4.22, 4.36,4.31,4.41,4.43,4.46,4.45,4.48,4.53,4.54,4.53, 4.59,4.71,4.64,4.72,4.78,4.75,4.70,4.85,4.83,4.90, 4.86,4.98,4.90,5.05,5.04,4.90,5.08,5.16,5.04,5.21, 5.23,5.09,5.26,5.24,5.29,5.29,5.34,5.46,5.45,5.39, 5.39,5.53,5.49,5.54,5.42,5.57,5.51,5.64,5.75,5.64, 5.76,5.76,5.84,5.95,5.89,6.02,5.84,5.99,5.90,6.16, 6.14,5.97,5.99,6.27,6.06,6.10,6.27,6.31,6.18,6.18, 6.24,6.32,6.35,6.39,6.54,6.52,6.49,6.51,6.57,6.68, 6.70,6.57,6.63,6.74,6.72,6.69,6.72,6.96,6.85,6.81, 6.92,6.79,6.95,7.11,6.98,7.02,6.97,7.06,7.02,7.15, 7.17,7.20,7.20,7.34,7.35,7.18,7.24,7.46,7.38,7.35, 7.50,7.52,7.60,7.71,7.47,7.43,7.68,7.65,7.71,7.80, 7.76,7.78,7.81,7.68,7.98,7.98,8.05,7.86,8.13,8.02, 8.16,8.19,8.09,8.19,8.09,8.07,8.07,8.19,8.20,8.38, 8.36,8.51,8.50,8.38,8.37,8.51,8.57,8.34,8.52,8.65, 0.19,0.22,0.23,0.26,0.28,0.32,0.36,0.34,0.37,0.41, 0.42,0.42,0.45,0.46,0.51,0.50,0.55,0.53,0.62,0.57, 0.60,0.59,0.67,0.69,0.75,0.69,0.78,0.77,0.80,0.79, 0.76,0.89,0.89,0.86,0.94,0.92,0.97,0.93,1.00,1.00, 1.04,1.07,1.04,1.01,1.11,1.12,1.10,1.18,1.15,1.22, 1.25,1.26,1.22,1.24,1.33,1.36,1.30,1.39,1.47,1.44, 1.38,1.42,1.38,1.47,1.49,1.55,1.53,1.58,1.54,1.55, 1.62,1.64,1.67,1.68,1.70,1.73,1.77,1.84,1.74,1.81, 1.77,1.81,1.92,1.87,1.95,1.88,1.91,2.00,1.96,1.98, 2.02,2.10,2.05,2.05,2.08,2.14,2.17,2.14,2.21,2.13, 2.17,2.19,2.17,2.21,2.23,2.19,2.34,2.29,2.39,2.41, 2.44,2.42,2.53,2.53,2.45,2.53,2.60,2.59,2.67,2.60, 2.54,2.62,2.55,2.73,2.74,2.75,2.68,2.74,2.75,2.77, 2.82,2.81,2.88,2.83,2.97,3.01,2.90,2.98,2.94,3.01, 3.04,3.06,3.00,3.13,3.06,3.22,3.25,3.23,3.24,3.22, 3.28,3.31,3.33,3.29,3.28,3.30,3.29,3.41,3.32,3.30, 3.45,3.38,3.38,3.48,3.45,3.50,3.50,3.61,3.50,3.75, 3.68,3.57,3.58,3.64,3.66,3.79,3.71,3.71,3.69,3.79, 3.77,3.85,3.81,3.80,3.85,3.96,4.03,3.91,4.07,4.08, 3.96,3.93,4.02,4.13,4.09,4.12,4.17,4.13,4.21,4.16, 4.30,4.17,4.38,4.23,4.29,4.22,4.40,4.39,4.46,4.35, 4.40,4.43,4.43,4.56,4.49,4.58,4.60,4.49,4.61,4.57, 4.71,4.59,4.71,4.84,4.72,4.67,4.76,4.79,4.69,4.85, 4.85,4.82,4.80,4.93,4.94,4.89,4.95,5.06,5.02,5.00, 5.10,5.06,5.08,5.09,5.14,5.17,5.19,5.23,5.22,5.21, 5.21,5.23,5.13,5.41,5.37,5.32,5.27,5.33,5.45,5.40, 5.37,5.53,5.46,5.51,5.56,5.64,5.60,5.49,5.55,5.57, 5.60,5.72,5.47,5.70,5.68,5.71,5.75,5.76,5.79,5.93, 5.80,5.80,5.94,5.98,5.89,5.98,5.89,6.07,5.93,6.03, 0.14,0.14,0.16,0.18,0.18,0.22,0.23,0.25,0.23,0.30, 0.30,0.31,0.28,0.34,0.36,0.38,0.35,0.41,0.39,0.42, 0.45,0.45,0.44,0.47,0.48,0.49,0.50,0.50,0.54,0.55, 0.53,0.57,0.57,0.64,0.64,0.66,0.64,0.69,0.68,0.69, 0.68,0.70,0.76,0.71,0.76,0.81,0.78,0.78,0.82,0.77, 0.83,0.87,0.87,0.92,0.90,0.90,0.95,0.96,1.02,0.97, 0.95,1.02,1.02,1.10,1.03,1.03,1.16,1.12,1.07,1.13, 1.14,1.14,1.13,1.16,1.20,1.21,1.16,1.21,1.26,1.23, 1.31,1.24,1.32,1.29,1.31,1.31,1.32,1.44,1.39,1.41, 1.41,1.40,1.49,1.41,1.46,1.46,1.56,1.52,1.49,1.62, 1.52,1.54,1.59,1.57,1.61,1.62,1.62,1.74,1.68,1.72, 1.73,1.74,1.72,1.68,1.74,1.75,1.75,1.85,1.81,1.81, 1.80,1.85,1.92,1.91,1.95,1.91,1.85,1.98,1.97,2.00, 2.00,2.00,2.03,2.04,2.11,2.07,2.08,2.07,2.15,2.10, 2.10,2.08,2.11,2.20,2.17,2.19,2.23,2.14,2.26,2.26, 2.25,2.22,2.27,2.33,2.30,2.35,2.33,2.36,2.35,2.36, 2.37,2.42,2.38,2.51,2.45,2.44,2.53,2.55,2.54,2.51, 2.54,2.51,2.53,2.55,2.65,2.62,2.65,2.61,2.73,2.70, 2.60,2.68,2.73,2.72,2.67,2.74,2.74,2.82,2.79,2.83, 2.85,2.82,2.90,2.83,2.89,2.93,2.92,2.94,2.90,2.92, 3.03,2.93,2.95,2.98,3.03,3.02,3.17,3.09,3.12,3.09, 3.12,3.14,3.18,3.20,3.18,3.07,3.21,3.21,3.19,3.23, 3.28,3.30,3.27,3.21,3.35,3.35,3.44,3.34,3.29,3.35, 3.42,3.37,3.48,3.43,3.36,3.45,3.43,3.52,3.49,3.51, 3.54,3.62,3.47,3.66,3.56,3.55,3.55,3.70,3.56,3.61, 3.65,3.66,3.64,3.69,3.65,3.77,3.75,3.68,3.79,3.73, 3.68,3.77,3.81,3.84,3.81,3.85,3.85,3.90,3.91,3.92, 3.82,3.95,3.93,4.00,4.05,3.99,4.08,4.04,4.02,4.03, 4.07,4.19,4.12,4.15,4.12,4.18,4.20,4.22,4.23,4.19, 0.08,0.11,0.12,0.14,0.14,0.15,0.16,0.17,0.18,0.19, 0.18,0.20,0.23,0.22,0.24,0.24,0.23,0.29,0.26,0.30, 0.31,0.29,0.33,0.31,0.33,0.34,0.33,0.38,0.35,0.38, 0.36,0.40,0.46,0.42,0.41,0.43,0.47,0.47,0.48,0.46, 0.48,0.49,0.50,0.56,0.52,0.54,0.59,0.59,0.59,0.59, 0.61,0.56,0.59,0.63,0.64,0.68,0.66,0.68,0.66,0.70, 0.72,0.69,0.71,0.70,0.72,0.72,0.73,0.78,0.71,0.74, 0.78,0.80,0.82,0.79,0.84,0.80,0.86,0.89,0.83,0.83, 0.88,0.91,0.95,0.87,0.91,0.95,0.96,0.94,1.04,0.92, 0.99,1.07,1.00,0.99,1.04,1.07,1.01,1.06,1.04,1.07, 1.11,1.13,1.08,1.12,1.14,1.16,1.13,1.14,1.23,1.14, 1.21,1.21,1.21,1.18,1.30,1.20,1.27,1.32,1.26,1.26, 1.25,1.30,1.27,1.29,1.28,1.32,1.36,1.32,1.35,1.34, 1.38,1.40,1.35,1.44,1.45,1.45,1.47,1.45,1.48,1.50, 1.51,1.45,1.52,1.51,1.51,1.49,1.58,1.53,1.55,1.59, 1.57,1.61,1.58,1.61,1.70,1.66,1.65,1.67,1.71,1.59, 1.66,1.70,1.69,1.74,1.74,1.73,1.80,1.74,1.71,1.78, 1.81,1.71,1.86,1.85,1.83,1.83,1.81,1.87,1.92,1.89, 1.84,1.92,1.85,1.90,1.90,1.88,1.94,2.05,1.92,1.87, 2.02,1.98,2.04,2.01,2.04,2.01,2.00,2.05,2.02,2.16, 2.03,2.03,2.13,2.02,2.13,2.15,2.19,2.20,2.15,2.26, 2.20,2.18,2.15,2.24,2.21,2.27,2.23,2.29,2.29,2.35, 2.17,2.27,2.26,2.35,2.30,2.32,2.38,2.31,2.41,2.33, 2.34,2.43,2.33,2.39,2.39,2.34,2.44,2.49,2.50,2.42, 2.47,2.47,2.54,2.52,2.49,2.58,2.46,2.54,2.47,2.45, 2.49,2.60,2.57,2.53,2.75,2.65,2.59,2.63,2.65,2.60, 2.61,2.74,2.59,2.66,2.69,2.65,2.73,2.72,2.71,2.76, 2.82,2.80,2.84,2.79,2.84,2.74,2.81,2.90,2.85,2.85, 2.99,2.88,2.88,2.82,2.88,2.93,2.84,2.84,2.99,2.93, 0.06,0.08,0.07,0.10,0.10,0.12,0.14,0.10,0.12,0.15, 0.17,0.17,0.13,0.17,0.17,0.16,0.19,0.17,0.20,0.22, 0.22,0.21,0.23,0.24,0.22,0.23,0.24,0.25,0.28,0.25, 0.32,0.24,0.28,0.29,0.26,0.34,0.32,0.33,0.34,0.34, 0.34,0.39,0.38,0.37,0.35,0.40,0.41,0.38,0.40,0.41, 0.41,0.42,0.44,0.45,0.47,0.46,0.46,0.47,0.49,0.44, 0.48,0.52,0.52,0.48,0.52,0.50,0.53,0.59,0.56,0.51, 0.56,0.54,0.53,0.57,0.58,0.58,0.59,0.59,0.59,0.61, 0.61,0.65,0.63,0.60,0.66,0.61,0.69,0.68,0.66,0.71, 0.69,0.69,0.70,0.72,0.71,0.69,0.72,0.76,0.72,0.71, 0.75,0.80,0.80,0.77,0.76,0.77,0.77,0.82,0.87,0.82, 0.83,0.83,0.83,0.93,0.84,0.89,0.92,0.90,0.87,0.88, 0.95,0.92,0.93,0.93,0.96,0.92,0.95,0.97,0.96,0.98, 1.01,0.96,0.98,0.96,0.98,1.02,1.01,1.09,1.06,1.05, 1.04,1.02,0.99,1.01,1.04,1.15,1.03,1.08,1.08,1.09, 1.09,1.09,1.11,1.13,1.07,1.06,1.16,1.13,1.15,1.13, 1.20,1.15,1.19,1.13,1.20,1.20,1.23,1.25,1.18,1.27, 1.20,1.25,1.25,1.30,1.27,1.26,1.29,1.28,1.28,1.32, 1.31,1.40,1.30,1.34,1.32,1.39,1.38,1.37,1.38,1.42, 1.40,1.36,1.32,1.41,1.45,1.48,1.38,1.43,1.44,1.46, 1.52,1.49,1.52,1.44,1.44,1.47,1.51,1.56,1.54,1.54, 1.55,1.54,1.55,1.55,1.58,1.58,1.49,1.57,1.65,1.54, 1.64,1.61,1.71,1.63,1.59,1.65,1.60,1.62,1.65,1.65, 1.64,1.64,1.72,1.73,1.63,1.67,1.76,1.69,1.67,1.79, 1.69,1.77,1.80,1.76,1.73,1.76,1.82,1.72,1.72,1.86, 1.72,1.79,1.73,1.79,1.83,1.85,1.88,1.90,1.84,1.81, 1.83,1.88,1.91,1.90,1.94,1.97,1.89,1.90,1.82,1.88, 1.96,1.96,1.94,1.91,1.96,2.02,2.03,2.03,1.97,2.03, 2.04,1.98,2.06,2.05,2.01,2.07,2.04,2.11,2.09,2.14, 0.04,0.05,0.07,0.06,0.08,0.09,0.09,0.07,0.09,0.11, 0.09,0.09,0.10,0.11,0.12,0.12,0.13,0.13,0.12,0.15, 0.15,0.13,0.15,0.17,0.19,0.17,0.17,0.16,0.16,0.17, 0.21,0.20,0.22,0.20,0.22,0.21,0.22,0.23,0.25,0.22, 0.23,0.27,0.27,0.27,0.26,0.26,0.27,0.29,0.27,0.30, 0.28,0.28,0.33,0.31,0.30,0.28,0.32,0.31,0.31,0.33, 0.34,0.34,0.34,0.36,0.31,0.35,0.37,0.38,0.38,0.39, 0.39,0.40,0.41,0.40,0.38,0.44,0.44,0.42,0.43,0.42, 0.46,0.45,0.44,0.44,0.44,0.49,0.48,0.47,0.51,0.48, 0.47,0.52,0.49,0.52,0.52,0.52,0.50,0.48,0.52,0.54, 0.52,0.55,0.52,0.54,0.51,0.59,0.62,0.61,0.57,0.58, 0.54,0.57,0.61,0.60,0.61,0.56,0.62,0.62,0.59,0.61, 0.67,0.66,0.62,0.66,0.63,0.67,0.64,0.65,0.67,0.65, 0.70,0.70,0.68,0.68,0.73,0.71,0.66,0.73,0.75,0.70, 0.77,0.74,0.73,0.73,0.75,0.77,0.78,0.70,0.76,0.77, 0.78,0.77,0.82,0.79,0.74,0.78,0.81,0.84,0.83,0.83, 0.82,0.86,0.81,0.85,0.90,0.82,0.79,0.87,0.89,0.91, 0.83,0.90,0.92,0.90,0.80,0.93,0.92,0.87,0.90,0.88, 0.89,0.92,0.91,0.97,0.93,0.96,0.92,0.92,0.90,0.87, 0.94,0.98,0.95,0.98,0.93,0.97,1.02,1.06,0.97,1.09, 1.06,1.04,1.06,1.08,1.00,0.96,1.03,1.06,1.04,1.07, 1.05,1.08,1.01,1.03,1.03,1.12,1.05,1.07,1.12,1.02, 1.09,1.16,1.07,1.15,1.12,1.09,1.13,1.14,1.22,1.21, 1.16,1.16,1.16,1.20,1.22,1.23,1.18,1.20,1.18,1.20, 1.20,1.23,1.21,1.21,1.26,1.21,1.24,1.29,1.23,1.23, 1.26,1.26,1.24,1.27,1.34,1.21,1.25,1.33,1.29,1.29, 1.37,1.34,1.36,1.31,1.35,1.37,1.35,1.32,1.33,1.36, 1.35,1.25,1.33,1.39,1.36,1.39,1.45,1.30,1.41,1.45, 1.37,1.43,1.42,1.43,1.47,1.49,1.43,1.40,1.47,1.46, 0.04,0.04,0.04,0.04,0.05,0.06,0.06,0.05,0.05,0.06, 0.07,0.07,0.07,0.06,0.08,0.07,0.09,0.08,0.09,0.12, 0.11,0.10,0.11,0.13,0.14,0.12,0.14,0.13,0.15,0.14, 0.14,0.14,0.15,0.17,0.16,0.16,0.16,0.15,0.17,0.16, 0.16,0.18,0.17,0.20,0.20,0.17,0.20,0.20,0.18,0.18, 0.19,0.22,0.23,0.21,0.22,0.24,0.22,0.23,0.25,0.22, 0.21,0.25,0.27,0.27,0.24,0.28,0.25,0.26,0.31,0.25, 0.27,0.29,0.27,0.29,0.26,0.28,0.32,0.29,0.29,0.28, 0.33,0.32,0.33,0.34,0.34,0.32,0.33,0.34,0.30,0.36, 0.34,0.35,0.33,0.37,0.36,0.37,0.34,0.39,0.35,0.36, 0.38,0.37,0.36,0.36,0.40,0.42,0.36,0.36,0.41,0.40, 0.39,0.42,0.39,0.41,0.41,0.43,0.45,0.43,0.45,0.43, 0.43,0.48,0.40,0.48,0.45,0.49,0.46,0.47,0.43,0.47, 0.42,0.48,0.45,0.46,0.51,0.46,0.50,0.49,0.48,0.50, 0.51,0.52,0.52,0.48,0.55,0.54,0.51,0.54,0.54,0.49, 0.57,0.55,0.55,0.51,0.54,0.51,0.57,0.55,0.57,0.55, 0.55,0.60,0.58,0.64,0.60,0.57,0.56,0.60,0.60,0.62, 0.64,0.57,0.60,0.62,0.57,0.61,0.64,0.66,0.62,0.66, 0.62,0.62,0.69,0.68,0.69,0.62,0.67,0.64,0.71,0.66, 0.67,0.64,0.67,0.67,0.68,0.68,0.67,0.70,0.70,0.75, 0.70,0.72,0.70,0.71,0.73,0.71,0.73,0.76,0.72,0.74, 0.78,0.79,0.72,0.76,0.76,0.76,0.76,0.78,0.80,0.75, 0.77,0.78,0.72,0.78,0.79,0.78,0.81,0.82,0.79,0.85, 0.75,0.79,0.81,0.83,0.85,0.84,0.86,0.85,0.85,0.83, 0.89,0.85,0.83,0.88,0.85,0.88,0.84,0.85,0.90,0.89, 0.90,0.88,0.84,0.87,0.85,0.90,0.91,0.93,0.88,0.90, 0.88,0.84,0.94,0.90,0.91,0.91,0.93,0.92,0.92,0.97, 0.94,0.93,0.95,0.94,0.99,0.94,0.93,1.00,1.02,0.95, 0.96,0.97,0.99,1.05,1.04,1.01,0.96,1.03,1.03,0.99, 0.02,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.05,0.05, 0.05,0.04,0.06,0.05,0.06,0.06,0.06,0.07,0.07,0.06, 0.07,0.07,0.07,0.08,0.06,0.09,0.07,0.09,0.08,0.09, 0.10,0.11,0.10,0.09,0.10,0.10,0.10,0.11,0.11,0.12, 0.12,0.11,0.14,0.15,0.14,0.12,0.12,0.15,0.15,0.15, 0.13,0.16,0.15,0.15,0.17,0.14,0.15,0.14,0.16,0.14, 0.16,0.17,0.18,0.19,0.18,0.19,0.18,0.16,0.18,0.19, 0.19,0.19,0.18,0.19,0.18,0.21,0.22,0.21,0.22,0.20, 0.22,0.23,0.22,0.22,0.22,0.23,0.21,0.24,0.26,0.22, 0.25,0.23,0.23,0.22,0.23,0.24,0.26,0.24,0.23,0.25, 0.23,0.28,0.26,0.27,0.28,0.28,0.29,0.29,0.26,0.27, 0.30,0.29,0.29,0.27,0.30,0.31,0.28,0.32,0.31,0.29, 0.32,0.32,0.33,0.30,0.30,0.32,0.33,0.32,0.34,0.33, 0.32,0.32,0.35,0.34,0.34,0.33,0.35,0.35,0.37,0.33, 0.31,0.34,0.35,0.40,0.37,0.34,0.41,0.41,0.38,0.37, 0.39,0.37,0.36,0.38,0.37,0.40,0.41,0.39,0.39,0.42, 0.39,0.38,0.41,0.39,0.45,0.41,0.43,0.40,0.40,0.48, 0.45,0.43,0.41,0.44,0.43,0.42,0.46,0.45,0.47,0.47, 0.43,0.45,0.43,0.48,0.46,0.45,0.46,0.48,0.46,0.47, 0.51,0.47,0.46,0.52,0.47,0.49,0.50,0.51,0.51,0.48, 0.54,0.49,0.50,0.52,0.52,0.53,0.53,0.51,0.56,0.54, 0.53,0.55,0.47,0.54,0.55,0.54,0.52,0.56,0.56,0.52, 0.53,0.56,0.56,0.55,0.55,0.51,0.54,0.56,0.53,0.56, 0.57,0.57,0.58,0.63,0.59,0.54,0.55,0.59,0.57,0.57, 0.57,0.57,0.59,0.59,0.57,0.61,0.58,0.59,0.61,0.63, 0.64,0.61,0.60,0.65,0.62,0.68,0.67,0.64,0.66,0.67, 0.66,0.68,0.63,0.65,0.66,0.67,0.67,0.63,0.67,0.56, 0.64,0.64,0.71,0.64,0.63,0.67,0.68,0.64,0.66,0.68, 0.66,0.69,0.71,0.71,0.71,0.65,0.73,0.70,0.69,0.71, 0.01,0.03,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03, 0.04,0.04,0.03,0.04,0.05,0.04,0.03,0.05,0.05,0.04, 0.06,0.05,0.05,0.04,0.06,0.06,0.08,0.06,0.05,0.06, 0.06,0.07,0.07,0.08,0.07,0.08,0.09,0.08,0.08,0.08, 0.08,0.09,0.08,0.09,0.09,0.10,0.08,0.11,0.09,0.10, 0.10,0.11,0.11,0.10,0.09,0.11,0.10,0.11,0.11,0.12, 0.11,0.13,0.12,0.13,0.13,0.13,0.12,0.13,0.12,0.12, 0.13,0.13,0.15,0.14,0.14,0.14,0.15,0.15,0.15,0.15, 0.16,0.15,0.17,0.15,0.16,0.17,0.16,0.15,0.17,0.15, 0.17,0.17,0.17,0.16,0.17,0.16,0.18,0.17,0.17,0.17, 0.19,0.18,0.17,0.19,0.19,0.19,0.21,0.20,0.20,0.19, 0.20,0.21,0.19,0.19,0.21,0.21,0.21,0.19,0.22,0.22, 0.21,0.20,0.22,0.21,0.23,0.21,0.22,0.22,0.25,0.24, 0.23,0.24,0.20,0.25,0.21,0.22,0.25,0.23,0.24,0.25, 0.24,0.23,0.24,0.25,0.26,0.25,0.23,0.28,0.26,0.26, 0.28,0.29,0.26,0.29,0.28,0.29,0.24,0.26,0.26,0.29, 0.28,0.29,0.32,0.28,0.28,0.30,0.32,0.29,0.32,0.30, 0.31,0.28,0.33,0.29,0.29,0.30,0.31,0.32,0.27,0.32, 0.32,0.30,0.33,0.30,0.31,0.32,0.32,0.32,0.32,0.33, 0.31,0.33,0.33,0.34,0.38,0.33,0.32,0.32,0.37,0.34, 0.33,0.33,0.33,0.35,0.34,0.37,0.35,0.35,0.37,0.35, 0.33,0.39,0.40,0.37,0.36,0.37,0.35,0.39,0.38,0.36, 0.40,0.42,0.40,0.40,0.39,0.37,0.40,0.38,0.40,0.39, 0.40,0.40,0.40,0.36,0.37,0.40,0.41,0.43,0.44,0.45, 0.46,0.41,0.38,0.41,0.44,0.40,0.43,0.41,0.45,0.40, 0.43,0.42,0.43,0.45,0.52,0.47,0.44,0.47,0.43,0.42, 0.44,0.48,0.48,0.46,0.46,0.46,0.43,0.50,0.46,0.45, 0.45,0.43,0.44,0.44,0.49,0.47,0.46,0.43,0.48,0.48, 0.51,0.49,0.49,0.46,0.51,0.47,0.50,0.50,0.48,0.49, 0.02,0.01,0.01,0.01,0.01,0.02,0.01,0.02,0.02,0.02, 0.02,0.02,0.03,0.03,0.02,0.04,0.02,0.03,0.04,0.02, 0.04,0.05,0.04,0.04,0.04,0.05,0.04,0.07,0.05,0.05, 0.04,0.06,0.05,0.05,0.04,0.06,0.05,0.06,0.07,0.06, 0.07,0.06,0.07,0.08,0.07,0.05,0.07,0.07,0.06,0.07, 0.06,0.09,0.07,0.07,0.07,0.08,0.08,0.09,0.08,0.09, 0.07,0.09,0.10,0.08,0.08,0.08,0.08,0.08,0.09,0.09, 0.10,0.10,0.08,0.09,0.08,0.11,0.12,0.09,0.07,0.10, 0.09,0.10,0.12,0.09,0.12,0.12,0.12,0.11,0.10,0.12, 0.12,0.11,0.12,0.11,0.14,0.12,0.12,0.11,0.12,0.13, 0.13,0.12,0.13,0.13,0.13,0.12,0.14,0.13,0.12,0.14, 0.14,0.13,0.15,0.16,0.14,0.14,0.13,0.13,0.15,0.14, 0.18,0.15,0.15,0.15,0.17,0.15,0.16,0.16,0.16,0.14, 0.17,0.17,0.14,0.18,0.18,0.16,0.17,0.15,0.15,0.17, 0.18,0.17,0.19,0.17,0.18,0.20,0.20,0.17,0.19,0.20, 0.18,0.20,0.17,0.18,0.20,0.17,0.20,0.19,0.20,0.20, 0.22,0.20,0.20,0.20,0.24,0.22,0.24,0.21,0.21,0.20, 0.21,0.21,0.23,0.22,0.23,0.22,0.21,0.21,0.24,0.22, 0.22,0.22,0.20,0.23,0.23,0.22,0.20,0.26,0.24,0.23, 0.23,0.23,0.24,0.25,0.27,0.27,0.24,0.25,0.23,0.24, 0.24,0.25,0.23,0.24,0.25,0.25,0.24,0.24,0.26,0.26, 0.26,0.29,0.28,0.27,0.27,0.26,0.30,0.25,0.26,0.29, 0.26,0.24,0.28,0.27,0.28,0.30,0.28,0.29,0.27,0.30, 0.28,0.26,0.30,0.31,0.28,0.30,0.31,0.30,0.32,0.28, 0.35,0.30,0.27,0.30,0.28,0.30,0.29,0.29,0.29,0.33, 0.29,0.33,0.27,0.30,0.30,0.30,0.30,0.30,0.31,0.29, 0.31,0.29,0.33,0.29,0.34,0.33,0.34,0.35,0.34,0.31, 0.32,0.33,0.33,0.34,0.34,0.36,0.32,0.34,0.35,0.36, 0.34,0.35,0.33,0.36,0.33,0.34,0.38,0.36,0.34,0.35, 0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01, 0.02,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.02,0.02, 0.02,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04, 0.04,0.03,0.04,0.04,0.03,0.03,0.05,0.04,0.05,0.02, 0.04,0.04,0.04,0.05,0.04,0.04,0.04,0.05,0.05,0.06, 0.04,0.06,0.08,0.06,0.06,0.05,0.04,0.05,0.06,0.06, 0.06,0.05,0.07,0.06,0.06,0.05,0.06,0.06,0.07,0.07, 0.07,0.05,0.07,0.07,0.07,0.08,0.07,0.08,0.07,0.06, 0.08,0.09,0.07,0.07,0.07,0.07,0.08,0.08,0.07,0.08, 0.09,0.08,0.10,0.07,0.08,0.10,0.09,0.09,0.09,0.08, 0.08,0.10,0.09,0.10,0.10,0.12,0.09,0.10,0.09,0.09, 0.10,0.10,0.09,0.10,0.12,0.09,0.11,0.10,0.10,0.11, 0.11,0.10,0.10,0.11,0.13,0.10,0.10,0.11,0.11,0.13, 0.12,0.12,0.10,0.11,0.11,0.14,0.14,0.11,0.11,0.13, 0.13,0.12,0.13,0.13,0.11,0.13,0.12,0.12,0.11,0.13, 0.12,0.13,0.14,0.12,0.13,0.13,0.16,0.14,0.14,0.13, 0.14,0.12,0.14,0.13,0.14,0.16,0.13,0.15,0.15,0.16, 0.15,0.14,0.13,0.15,0.15,0.14,0.15,0.15,0.17,0.17, 0.17,0.17,0.14,0.16,0.15,0.17,0.17,0.17,0.18,0.17, 0.18,0.15,0.17,0.17,0.18,0.16,0.14,0.17,0.15,0.17, 0.17,0.18,0.17,0.17,0.19,0.20,0.17,0.17,0.18,0.18, 0.19,0.15,0.21,0.18,0.17,0.17,0.19,0.18,0.20,0.19, 0.16,0.20,0.20,0.19,0.20,0.21,0.20,0.19,0.19,0.19, 0.20,0.20,0.18,0.21,0.18,0.22,0.18,0.20,0.22,0.19, 0.18,0.21,0.19,0.23,0.22,0.21,0.20,0.22,0.22,0.20, 0.23,0.22,0.21,0.20,0.21,0.23,0.22,0.21,0.20,0.21, 0.20,0.21,0.20,0.24,0.23,0.23,0.23,0.19,0.26,0.23, 0.23,0.24,0.21,0.22,0.19,0.28,0.21,0.24,0.22,0.20, 0.23,0.24,0.23,0.23,0.26,0.23,0.23,0.28,0.24,0.24, 0.00,0.01,0.01,0.00,0.01,0.01,0.01,0.01,0.01,0.01, 0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.01, 0.02,0.02,0.02,0.01,0.01,0.03,0.01,0.02,0.02,0.02, 0.01,0.03,0.02,0.02,0.03,0.04,0.03,0.03,0.04,0.03, 0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04, 0.03,0.03,0.04,0.03,0.03,0.04,0.04,0.04,0.03,0.04, 0.04,0.04,0.04,0.05,0.05,0.04,0.04,0.04,0.05,0.05, 0.04,0.05,0.05,0.05,0.05,0.04,0.05,0.05,0.06,0.06, 0.05,0.03,0.05,0.05,0.05,0.06,0.05,0.06,0.05,0.05, 0.05,0.06,0.05,0.06,0.05,0.05,0.07,0.06,0.06,0.07, 0.07,0.06,0.07,0.06,0.07,0.06,0.07,0.07,0.07,0.06, 0.06,0.06,0.09,0.07,0.06,0.07,0.07,0.06,0.07,0.08, 0.08,0.07,0.07,0.09,0.08,0.08,0.07,0.10,0.08,0.09, 0.07,0.09,0.08,0.08,0.09,0.08,0.10,0.08,0.09,0.08, 0.08,0.09,0.08,0.09,0.09,0.08,0.10,0.08,0.07,0.09, 0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.09,0.10, 0.10,0.11,0.10,0.09,0.11,0.09,0.09,0.09,0.12,0.11, 0.11,0.09,0.10,0.11,0.10,0.11,0.11,0.12,0.10,0.10, 0.10,0.12,0.11,0.13,0.12,0.09,0.12,0.12,0.11,0.12, 0.14,0.09,0.11,0.10,0.10,0.10,0.10,0.10,0.12,0.12, 0.12,0.11,0.13,0.12,0.13,0.12,0.12,0.14,0.12,0.12, 0.11,0.13,0.11,0.12,0.13,0.12,0.12,0.12,0.11,0.12, 0.13,0.14,0.13,0.12,0.13,0.13,0.11,0.13,0.14,0.15, 0.14,0.12,0.12,0.15,0.12,0.14,0.15,0.14,0.13,0.13, 0.14,0.14,0.12,0.11,0.14,0.16,0.13,0.14,0.14,0.14, 0.15,0.16,0.14,0.15,0.15,0.15,0.14,0.17,0.14,0.14, 0.15,0.17,0.17,0.15,0.15,0.15,0.16,0.16,0.18,0.16, 0.14,0.17,0.17,0.18,0.16,0.15,0.15,0.15,0.17,0.14, 0.14,0.20,0.17,0.17,0.17,0.20,0.17,0.17,0.17,0.18, 1.00,1.00,1.20,1.30,1.36,1.48,1.59,1.64,1.81,1.86, 1.94,1.98,2.13,2.22,2.30,2.41,2.54,2.55,2.70,2.75, 2.88,3.01,3.04,3.10,3.29,3.31,3.46,3.58,3.61,3.72, 3.90,3.87,4.07,4.23,4.14,4.26,4.41,4.52,4.58,4.57, 4.82,4.80,4.87,5.01,5.15,5.16,5.31,5.32,5.53,5.63, 5.69,5.89,5.88,5.92,6.08,6.10,6.28,6.27,6.40,6.54, 6.63,6.75,6.96,7.02,6.96,7.12,7.13,7.40,7.39,7.65, 7.65,7.77,7.87,7.85,8.06,7.98,8.17,8.21,8.51,8.57, 8.51,8.66,8.80,8.84,8.93,9.03,8.98,9.25,9.28,9.34, 9.57,9.63,9.56,9.75,9.99,9.90,10.07,10.19,10.11,10.43, 10.49,10.59,10.53,10.79,10.84,10.90,11.12,11.16,11.30,11.03, 11.44,11.41,11.54,11.61,11.81,11.91,11.93,12.09,12.13,12.21, 12.28,12.38,12.51,12.65,12.60,12.77,12.95,12.99,13.02,13.26, 13.17,13.37,13.57,13.78,13.71,13.76,13.85,14.13,13.95,14.01, 14.18,14.25,14.49,14.60,14.67,14.82,14.69,14.85,14.98,15.21, 15.34,15.18,15.33,15.46,15.69,15.60,15.76,16.04,16.03,15.95, 16.03,16.31,16.35,16.56,16.57,16.43,16.75,16.62,16.88,17.13, 17.20,17.16,17.13,17.58,17.45,17.70,17.74,17.89,18.03,17.80, 18.18,18.14,18.36,18.28,18.41,18.50,18.52,18.66,18.82,18.75, 18.87,19.05,19.18,19.39,19.53,19.25,19.63,19.55,19.66,19.90, 19.85,19.90,19.94,20.57,20.27,20.45,20.60,20.54,20.68,20.66, 20.67,20.83,21.09,21.29,21.41,21.46,21.46,21.52,21.64,21.59, 21.80,22.01,22.18,21.96,22.18,22.18,22.42,22.66,22.53,22.83, 22.78,22.86,22.76,22.99,23.11,23.21,23.65,23.32,23.59,23.63, 23.87,23.84,24.07,23.96,24.32,24.29,24.46,24.39,24.52,24.60, 24.37,24.79,24.85,25.00,25.09,25.21,25.18,25.27,25.38,25.43, 25.77,25.36,25.75,26.00,25.97,26.01,26.32,26.52,26.42,26.56, 26.49,26.48,27.00,26.77,27.10,26.92,27.08,27.14,26.85,27.37, 27.57,27.62,27.64,27.78,27.81,27.94,27.92,28.17,28.38,28.37, 0.67,0.78,0.81,0.88,0.99,1.02,1.11,1.12,1.29,1.27, 1.35,1.37,1.50,1.59,1.63,1.76,1.75,1.84,1.95,1.98, 2.07,2.12,2.10,2.23,2.32,2.43,2.37,2.53,2.54,2.65, 2.74,2.77,2.89,2.96,3.00,3.12,3.14,3.15,3.27,3.31, 3.34,3.43,3.45,3.45,3.62,3.69,3.73,3.73,3.94,3.94, 4.12,4.09,4.20,4.19,4.23,4.49,4.47,4.66,4.66,4.56, 4.87,4.84,4.93,4.92,4.93,5.01,5.21,5.21,5.25,5.34, 5.47,5.43,5.51,5.69,5.75,5.67,5.78,5.97,6.03,6.01, 6.06,6.16,6.27,6.24,6.48,6.42,6.67,6.49,6.74,6.71, 6.71,6.82,6.81,6.89,7.01,7.04,7.19,7.19,7.35,7.39, 7.41,7.62,7.51,7.70,7.67,7.80,7.75,7.98,7.96,7.98, 8.04,8.11,8.20,8.19,8.33,8.33,8.26,8.50,8.59,8.66, 8.80,8.86,8.96,8.81,9.11,9.12,9.17,9.18,9.27,9.46, 9.42,9.39,9.63,9.54,9.70,9.73,9.79,10.01,10.08,10.02, 10.12,10.17,10.30,10.32,10.47,10.62,10.52,10.54,10.60,10.63, 10.69,10.92,10.92,11.05,11.07,11.14,11.30,11.34,11.27,11.45, 11.32,11.60,11.61,11.75,11.71,11.63,11.65,11.97,12.04,12.03, 12.09,12.21,12.23,12.20,12.42,12.39,12.68,12.75,12.64,12.65, 12.75,12.96,12.87,13.04,13.03,13.08,13.22,13.31,13.09,13.56, 13.44,13.60,13.78,13.61,13.66,13.71,14.00,13.90,14.11,14.04, 14.07,14.07,14.22,14.46,14.41,14.46,14.44,14.72,14.60,14.97, 14.74,14.87,15.22,15.05,15.14,15.06,15.23,15.28,15.48,15.57, 15.41,15.69,15.93,15.48,15.56,15.73,16.08,15.84,16.12,16.09, 16.28,16.25,16.54,16.34,16.40,16.50,16.68,16.96,16.79,16.56, 16.97,16.90,16.91,17.20,17.10,17.08,17.23,17.32,17.46,17.37, 17.47,17.61,17.60,17.80,17.85,17.99,17.94,18.07,18.06,18.30, 18.25,18.20,18.35,18.32,18.48,18.59,18.56,18.53,18.62,18.67, 18.90,19.21,19.03,18.89,19.21,19.07,19.34,19.21,19.59,19.40, 19.57,19.52,19.52,19.88,19.77,19.73,20.24,19.98,20.13,20.05, 0.54,0.54,0.61,0.61,0.71,0.76,0.76,0.87,0.91,0.91, 1.00,1.02,1.06,1.12,1.19,1.28,1.29,1.30,1.35,1.43, 1.40,1.47,1.58,1.60,1.70,1.67,1.74,1.78,1.85,1.90, 1.98,1.99,2.04,2.09,2.07,2.16,2.21,2.21,2.32,2.37, 2.43,2.46,2.52,2.57,2.69,2.55,2.68,2.66,2.87,2.80, 2.89,2.80,2.98,2.98,3.04,3.17,3.14,3.18,3.33,3.36, 3.38,3.44,3.46,3.47,3.63,3.52,3.70,3.54,3.74,3.93, 3.89,3.88,3.95,3.94,3.96,4.13,4.15,4.20,4.19,4.27, 4.31,4.45,4.41,4.39,4.57,4.63,4.68,4.60,4.76,4.61, 4.73,4.87,4.88,4.92,4.87,5.03,5.20,5.08,5.16,5.18, 5.32,5.40,5.40,5.43,5.50,5.54,5.71,5.57,5.69,5.72, 5.80,5.89,5.90,5.85,5.95,6.04,6.06,6.12,6.20,6.18, 6.30,6.22,6.38,6.47,6.43,6.42,6.43,6.49,6.71,6.57, 6.78,6.81,6.78,6.88,6.87,7.11,7.11,7.03,7.09,7.06, 7.33,7.12,7.30,7.37,7.32,7.41,7.51,7.36,7.54,7.56, 7.59,7.78,7.89,7.91,7.75,7.83,8.09,8.05,7.93,8.23, 8.14,8.04,8.16,8.22,8.34,8.32,8.56,8.31,8.73,8.55, 8.61,8.73,8.80,8.70,8.89,8.85,8.97,9.01,9.06,9.14, 8.99,9.16,9.22,9.33,9.35,9.39,9.41,9.34,9.34,9.49, 9.62,9.70,9.54,9.61,9.78,9.76,9.91,9.96,10.12,10.05, 10.10,10.07,10.16,10.16,10.24,10.03,10.40,10.36,10.63,10.31, 10.71,10.57,10.75,10.70,10.62,10.65,10.62,10.93,10.97,10.84, 11.04,10.99,11.11,11.15,11.28,11.19,11.36,11.38,11.34,11.43, 11.48,11.41,11.59,11.72,11.65,11.80,11.84,11.76,11.87,11.82, 11.91,11.98,11.99,12.11,12.14,12.43,12.47,12.38,12.38,12.40, 12.60,12.43,12.36,12.58,12.80,12.61,12.70,12.73,12.86,12.84, 12.97,12.82,12.97,13.08,13.20,13.01,13.30,13.40,13.38,13.30, 13.46,13.52,13.45,13.65,13.66,13.46,13.59,13.69,13.67,13.80, 13.79,13.88,14.01,14.04,14.11,14.18,14.16,13.97,14.17,14.15, 0.34,0.40,0.41,0.43,0.50,0.54,0.59,0.58,0.62,0.65, 0.69,0.74,0.77,0.81,0.81,0.83,0.92,0.91,0.95,1.05, 1.07,1.03,1.11,1.11,1.16,1.24,1.24,1.28,1.25,1.32, 1.36,1.42,1.43,1.43,1.51,1.58,1.59,1.57,1.58,1.69, 1.75,1.79,1.73,1.80,1.85,1.90,1.91,1.97,2.02,2.09, 2.00,2.08,2.10,2.12,2.19,2.22,2.18,2.31,2.28,2.31, 2.41,2.41,2.46,2.43,2.52,2.50,2.55,2.52,2.66,2.70, 2.67,2.79,2.72,2.89,2.88,2.92,2.97,2.88,3.07,3.05, 3.03,3.12,3.10,3.15,3.17,3.30,3.26,3.25,3.29,3.38, 3.28,3.43,3.44,3.54,3.57,3.57,3.61,3.73,3.67,3.68, 3.78,3.86,3.75,3.76,3.98,3.87,3.94,4.04,4.00,4.09, 4.06,4.02,4.23,4.18,4.29,4.25,4.20,4.27,4.35,4.47, 4.43,4.49,4.67,4.47,4.51,4.59,4.56,4.75,4.74,4.87, 4.87,4.75,4.82,4.74,4.95,4.96,4.86,5.04,4.90,4.99, 5.06,5.15,5.10,5.27,5.10,5.28,5.42,5.14,5.40,5.46, 5.46,5.53,5.32,5.48,5.49,5.71,5.66,5.70,5.65,5.75, 5.83,5.75,5.96,5.81,5.96,6.02,5.98,5.99,5.99,5.90, 6.24,6.08,6.25,6.35,6.26,6.29,6.39,6.44,6.45,6.51, 6.39,6.41,6.60,6.52,6.49,6.69,6.44,6.59,6.76,6.73, 6.79,6.78,6.78,6.87,6.88,6.96,7.04,7.00,7.10,7.05, 7.21,7.16,7.43,7.03,7.39,7.24,7.33,7.32,7.34,7.42, 7.40,7.66,7.69,7.72,7.36,7.56,7.62,7.67,7.77,7.76, 7.93,7.92,7.93,8.07,7.95,8.04,7.88,8.08,7.95,8.18, 8.20,8.07,8.22,8.35,8.39,8.34,8.49,8.49,8.31,8.46, 8.51,8.65,8.61,8.46,8.58,8.74,8.58,8.81,8.64,8.68, 8.60,8.66,8.77,8.83,8.95,9.06,9.21,9.05,9.04,9.04, 9.12,9.07,9.27,9.31,9.40,9.27,9.47,9.39,9.54,9.50, 9.59,9.44,9.63,9.69,9.73,9.63,9.87,9.64,9.83,9.77, 9.73,9.97,9.92,10.00,9.83,9.95,10.26,10.07,10.02,10.26, 0.22,0.23,0.29,0.32,0.38,0.35,0.40,0.45,0.43,0.52, 0.49,0.50,0.56,0.55,0.57,0.62,0.66,0.66,0.70,0.70, 0.72,0.75,0.81,0.81,0.85,0.83,0.88,0.92,0.93,0.92, 0.97,0.96,1.02,1.05,1.08,1.08,1.15,1.12,1.18,1.15, 1.26,1.24,1.19,1.31,1.30,1.38,1.31,1.36,1.43,1.47, 1.48,1.52,1.54,1.59,1.53,1.62,1.61,1.58,1.66,1.69, 1.67,1.74,1.71,1.76,1.79,1.79,1.91,1.80,1.84,1.89, 1.97,2.01,1.99,1.95,1.96,2.00,2.10,2.11,2.08,2.14, 2.18,2.20,2.21,2.15,2.23,2.33,2.36,2.38,2.39,2.46, 2.53,2.48,2.42,2.54,2.55,2.47,2.58,2.61,2.57,2.58, 2.73,2.64,2.69,2.77,2.75,2.86,2.90,2.83,2.92,2.90, 2.94,3.00,2.94,2.96,2.91,2.93,2.97,3.12,3.07,3.05, 3.18,3.12,3.22,3.18,3.33,3.23,3.31,3.33,3.39,3.34, 3.43,3.31,3.42,3.52,3.46,3.50,3.48,3.54,3.55,3.56, 3.66,3.64,3.61,3.71,3.75,3.82,3.71,3.83,3.80,3.91, 3.82,3.87,4.00,3.97,4.03,3.94,4.05,4.03,4.09,4.12, 4.08,4.03,4.12,4.16,4.08,4.21,4.22,4.24,4.34,4.39, 4.50,4.40,4.52,4.35,4.43,4.42,4.64,4.54,4.55,4.56, 4.50,4.71,4.67,4.73,4.71,4.70,4.73,4.93,4.77,4.85, 4.76,4.91,4.77,4.91,5.13,4.81,5.04,5.10,5.07,5.10, 4.95,5.00,5.14,5.05,5.17,5.15,5.30,5.20,5.16,5.36, 5.31,5.41,5.48,5.40,5.33,5.37,5.46,5.58,5.47,5.70, 5.46,5.65,5.50,5.63,5.64,5.58,5.52,5.83,5.78,5.87, 5.77,5.78,5.92,5.83,5.92,5.86,6.00,5.93,6.01,6.09, 6.09,6.08,6.02,6.01,6.08,6.17,6.22,6.25,6.25,6.19, 6.13,6.26,6.18,6.33,6.31,6.33,6.38,6.45,6.38,6.57, 6.49,6.45,6.54,6.43,6.72,6.60,6.75,6.69,6.72,6.74, 6.73,6.71,6.71,6.73,7.08,6.98,6.85,7.04,6.98,7.00, 6.90,7.22,7.02,7.17,6.88,7.06,6.94,7.31,7.20,7.21, 0.16,0.19,0.21,0.24,0.23,0.27,0.25,0.29,0.30,0.34, 0.34,0.35,0.39,0.35,0.44,0.45,0.49,0.45,0.47,0.48, 0.53,0.58,0.56,0.58,0.61,0.62,0.58,0.63,0.68,0.70, 0.62,0.71,0.74,0.72,0.74,0.86,0.79,0.80,0.78,0.87, 0.84,0.90,0.93,0.94,0.90,0.91,1.01,0.97,1.01,1.02, 1.04,1.08,1.02,1.08,1.14,1.11,1.12,1.14,1.12,1.14, 1.24,1.26,1.24,1.23,1.29,1.26,1.28,1.35,1.31,1.33, 1.39,1.38,1.34,1.41,1.39,1.44,1.49,1.51,1.47,1.48, 1.56,1.54,1.64,1.53,1.65,1.65,1.59,1.67,1.62,1.70, 1.75,1.64,1.74,1.78,1.80,1.82,1.89,1.79,1.75,1.82, 1.92,1.91,1.88,1.97,2.00,2.02,1.99,1.98,2.10,1.96, 2.03,2.13,2.13,2.07,2.07,2.12,2.12,2.22,2.15,2.18, 2.19,2.23,2.32,2.29,2.31,2.31,2.33,2.40,2.37,2.38, 2.35,2.44,2.41,2.42,2.49,2.50,2.56,2.49,2.58,2.61, 2.60,2.55,2.56,2.63,2.62,2.63,2.76,2.63,2.73,2.75, 2.69,2.73,2.77,2.86,2.77,2.82,2.89,2.79,2.84,2.95, 2.91,2.93,2.90,2.94,2.98,3.00,3.06,3.02,3.03,3.09, 3.02,3.07,3.21,3.09,3.21,3.19,3.23,3.11,3.33,3.30, 3.27,3.23,3.29,3.37,3.37,3.35,3.43,3.32,3.37,3.34, 3.45,3.52,3.45,3.52,3.46,3.50,3.56,3.57,3.56,3.60, 3.57,3.65,3.68,3.65,3.62,3.68,3.76,3.77,3.80,3.78, 3.79,3.76,3.86,3.90,3.74,3.87,3.89,3.93,3.94,3.91, 3.89,3.93,4.02,4.03,4.00,4.08,4.13,4.12,4.16,4.00, 4.17,4.16,4.16,4.21,4.12,4.13,4.21,4.15,4.33,4.43, 4.34,4.39,4.31,4.38,4.42,4.37,4.36,4.40,4.30,4.41, 4.46,4.45,4.44,4.42,4.48,4.53,4.43,4.62,4.62,4.64, 4.56,4.62,4.56,4.69,4.70,4.75,4.71,4.78,4.70,4.91, 4.79,4.81,4.77,4.78,4.88,4.91,4.89,4.91,4.92,4.90, 4.97,5.00,4.96,5.00,5.15,5.04,5.03,4.96,5.17,5.07, 0.12,0.13,0.15,0.16,0.18,0.18,0.19,0.21,0.23,0.23, 0.24,0.26,0.27,0.28,0.30,0.31,0.31,0.36,0.36,0.33, 0.38,0.37,0.41,0.42,0.39,0.45,0.44,0.47,0.45,0.49, 0.48,0.52,0.56,0.53,0.53,0.58,0.54,0.56,0.59,0.57, 0.59,0.63,0.66,0.67,0.65,0.71,0.69,0.69,0.73,0.69, 0.77,0.76,0.71,0.74,0.79,0.75,0.85,0.84,0.84,0.84, 0.81,0.83,0.88,0.84,0.88,0.98,0.95,0.99,0.95,1.02, 0.99,1.00,1.05,1.06,1.06,1.02,1.02,1.07,1.06,1.10, 1.09,1.12,1.18,1.14,1.17,1.17,1.18,1.21,1.23,1.23, 1.19,1.22,1.21,1.21,1.30,1.31,1.34,1.34,1.31,1.34, 1.32,1.33,1.40,1.43,1.45,1.41,1.39,1.37,1.44,1.37, 1.40,1.48,1.48,1.54,1.49,1.52,1.59,1.65,1.55,1.54, 1.53,1.63,1.62,1.63,1.63,1.61,1.69,1.62,1.70,1.70, 1.74,1.69,1.73,1.74,1.71,1.71,1.84,1.77,1.77,1.82, 1.84,1.82,1.82,1.88,1.86,1.82,1.87,1.84,2.01,2.01, 1.97,1.93,1.98,1.96,2.05,2.01,2.03,2.07,1.95,2.05, 2.04,2.14,2.08,2.11,2.09,2.20,2.20,2.18,2.18,2.22, 2.27,2.19,2.27,2.25,2.17,2.26,2.29,2.29,2.25,2.29, 2.28,2.36,2.31,2.37,2.38,2.40,2.43,2.42,2.33,2.42, 2.43,2.48,2.50,2.48,2.45,2.47,2.44,2.51,2.50,2.44, 2.58,2.67,2.57,2.58,2.55,2.62,2.65,2.66,2.68,2.61, 2.66,2.68,2.73,2.87,2.78,2.70,2.84,2.78,2.69,2.83, 2.88,2.92,2.80,2.87,2.74,2.88,2.87,2.93,2.87,2.93, 2.95,2.88,2.93,3.01,2.99,2.95,3.01,2.98,3.06,3.07, 3.11,3.09,3.13,3.07,3.02,3.08,3.09,3.12,3.15,3.13, 3.12,3.23,3.16,3.26,3.22,3.22,3.11,3.25,3.26,3.25, 3.23,3.39,3.29,3.31,3.40,3.30,3.41,3.32,3.41,3.37, 3.49,3.44,3.49,3.40,3.39,3.47,3.37,3.49,3.64,3.43, 3.59,3.54,3.64,3.58,3.54,3.56,3.63,3.57,3.57,3.73, 0.07,0.07,0.10,0.10,0.14,0.15,0.13,0.14,0.16,0.14, 0.19,0.18,0.21,0.21,0.20,0.21,0.22,0.23,0.23,0.26, 0.33,0.26,0.26,0.29,0.28,0.34,0.32,0.29,0.32,0.33, 0.37,0.35,0.34,0.35,0.37,0.36,0.35,0.40,0.43,0.40, 0.43,0.43,0.43,0.46,0.48,0.49,0.46,0.50,0.51,0.53, 0.55,0.49,0.55,0.56,0.56,0.57,0.56,0.56,0.58,0.60, 0.61,0.61,0.66,0.67,0.63,0.63,0.65,0.64,0.69,0.67, 0.67,0.67,0.72,0.67,0.74,0.72,0.76,0.78,0.78,0.77, 0.78,0.82,0.80,0.87,0.80,0.81,0.81,0.83,0.84,0.88, 0.85,0.79,0.90,0.86,0.88,0.89,0.95,0.93,0.90,0.98, 0.96,0.94,0.97,1.01,0.95,1.03,1.03,1.03,1.05,1.05, 1.02,1.10,1.07,1.00,1.06,1.04,1.09,1.04,1.07,1.08, 1.12,1.17,1.13,1.13,1.21,1.15,1.17,1.18,1.15,1.21, 1.25,1.17,1.23,1.25,1.24,1.28,1.17,1.29,1.25,1.27, 1.32,1.25,1.30,1.29,1.40,1.34,1.38,1.35,1.40,1.36, 1.38,1.40,1.41,1.45,1.43,1.41,1.45,1.48,1.46,1.47, 1.48,1.48,1.54,1.56,1.53,1.51,1.48,1.57,1.53,1.57, 1.59,1.59,1.57,1.61,1.56,1.58,1.58,1.55,1.61,1.58, 1.66,1.68,1.65,1.67,1.66,1.69,1.68,1.69,1.67,1.69, 1.70,1.69,1.71,1.82,1.75,1.74,1.81,1.75,1.76,1.75, 1.79,1.84,1.72,1.88,1.89,1.83,1.86,1.87,1.92,1.77, 1.93,1.87,1.84,1.93,2.00,2.00,1.92,1.95,1.97,1.97, 1.98,1.99,2.02,2.12,2.07,2.00,1.98,2.02,2.10,2.07, 2.09,2.10,2.07,2.07,2.14,2.11,2.13,2.17,2.08,2.13, 2.17,2.15,2.17,2.20,2.18,2.19,2.29,2.24,2.08,2.28, 2.24,2.24,2.22,2.24,2.35,2.30,2.40,2.27,2.26,2.37, 2.34,2.31,2.30,2.34,2.36,2.30,2.40,2.36,2.44,2.41, 2.39,2.39,2.46,2.40,2.48,2.44,2.43,2.51,2.53,2.56, 2.52,2.55,2.45,2.58,2.49,2.53,2.63,2.53,2.47,2.58, 0.07,0.06,0.08,0.08,0.10,0.10,0.10,0.11,0.10,0.11, 0.14,0.11,0.13,0.13,0.15,0.15,0.16,0.17,0.17,0.19, 0.17,0.20,0.23,0.21,0.21,0.23,0.22,0.23,0.21,0.25, 0.23,0.26,0.23,0.24,0.29,0.28,0.29,0.27,0.30,0.30, 0.33,0.30,0.29,0.33,0.33,0.33,0.38,0.40,0.39,0.34, 0.34,0.37,0.39,0.40,0.40,0.39,0.41,0.44,0.41,0.42, 0.44,0.41,0.42,0.44,0.47,0.49,0.47,0.52,0.48,0.54, 0.51,0.47,0.55,0.52,0.54,0.51,0.54,0.52,0.59,0.52, 0.55,0.53,0.56,0.54,0.56,0.62,0.62,0.60,0.63,0.60, 0.57,0.63,0.62,0.61,0.61,0.62,0.63,0.65,0.68,0.72, 0.68,0.63,0.68,0.64,0.67,0.71,0.67,0.70,0.74,0.67, 0.74,0.73,0.72,0.80,0.73,0.76,0.77,0.79,0.80,0.74, 0.81,0.81,0.78,0.81,0.84,0.81,0.84,0.88,0.82,0.82, 0.78,0.83,0.88,0.93,0.91,0.89,0.90,0.91,0.89,0.92, 0.93,0.88,1.00,0.95,0.98,0.94,0.97,0.95,0.98,0.95, 0.93,0.93,0.93,0.92,1.00,1.01,1.00,1.02,1.02,1.01, 1.03,1.01,1.00,1.05,1.03,1.02,1.07,1.07,1.12,1.17, 1.15,1.11,1.05,1.08,1.10,1.08,1.10,1.17,1.14,1.13, 1.21,1.18,1.22,1.17,1.20,1.20,1.29,1.24,1.24,1.19, 1.13,1.24,1.21,1.27,1.18,1.34,1.29,1.26,1.26,1.27, 1.24,1.35,1.31,1.34,1.37,1.35,1.31,1.34,1.42,1.38, 1.33,1.39,1.33,1.41,1.37,1.34,1.38,1.44,1.44,1.40, 1.35,1.40,1.42,1.44,1.43,1.44,1.47,1.45,1.44,1.52, 1.39,1.45,1.49,1.50,1.49,1.57,1.51,1.55,1.47,1.56, 1.54,1.60,1.54,1.59,1.49,1.56,1.54,1.56,1.58,1.56, 1.63,1.62,1.54,1.53,1.70,1.62,1.59,1.65,1.68,1.64, 1.67,1.69,1.71,1.71,1.72,1.64,1.74,1.74,1.71,1.75, 1.72,1.75,1.65,1.75,1.75,1.72,1.74,1.82,1.74,1.79, 1.75,1.72,1.75,1.87,1.79,1.78,1.82,1.82,1.78,1.85, 0.04,0.04,0.06,0.06,0.08,0.07,0.07,0.08,0.09,0.09, 0.09,0.09,0.08,0.10,0.10,0.13,0.11,0.12,0.12,0.12, 0.12,0.14,0.15,0.15,0.14,0.12,0.15,0.17,0.15,0.18, 0.17,0.20,0.17,0.18,0.19,0.20,0.21,0.20,0.22,0.22, 0.21,0.23,0.23,0.22,0.23,0.24,0.26,0.26,0.25,0.26, 0.26,0.30,0.28,0.27,0.29,0.28,0.28,0.33,0.33,0.29, 0.29,0.32,0.32,0.31,0.34,0.35,0.32,0.36,0.31,0.35, 0.34,0.35,0.37,0.34,0.40,0.36,0.39,0.40,0.40,0.39, 0.36,0.39,0.42,0.38,0.42,0.44,0.37,0.41,0.45,0.42, 0.44,0.43,0.47,0.44,0.41,0.48,0.44,0.42,0.47,0.48, 0.51,0.51,0.48,0.49,0.48,0.51,0.51,0.53,0.49,0.57, 0.51,0.55,0.54,0.51,0.52,0.50,0.52,0.53,0.58,0.57, 0.53,0.53,0.53,0.55,0.55,0.62,0.57,0.60,0.61,0.63, 0.60,0.62,0.63,0.63,0.64,0.64,0.65,0.63,0.66,0.68, 0.62,0.67,0.71,0.63,0.65,0.64,0.70,0.68,0.71,0.71, 0.64,0.68,0.70,0.69,0.73,0.69,0.71,0.72,0.78,0.77, 0.75,0.78,0.75,0.74,0.77,0.73,0.81,0.74,0.75,0.80, 0.81,0.82,0.77,0.84,0.80,0.80,0.80,0.84,0.80,0.88, 0.82,0.80,0.87,0.90,0.84,0.90,0.86,0.86,0.85,0.87, 0.87,0.86,0.88,0.91,0.86,0.89,0.89,0.91,0.92,0.91, 0.89,0.92,0.93,0.98,0.91,0.88,0.95,0.98,0.97,0.95, 0.98,0.94,0.99,0.97,1.02,0.99,0.98,1.00,1.02,0.99, 1.03,1.07,0.98,1.03,1.00,1.01,1.02,1.02,1.02,1.05, 1.05,1.10,1.10,1.06,1.06,1.08,1.03,1.07,1.08,1.11, 1.07,1.07,1.10,1.12,1.15,1.13,1.14,1.11,1.09,1.12, 1.17,1.13,1.15,1.15,1.17,1.12,1.17,1.17,1.20,1.14, 1.20,1.21,1.15,1.17,1.16,1.19,1.16,1.17,1.22,1.20, 1.19,1.21,1.22,1.19,1.24,1.19,1.26,1.25,1.28,1.19, 1.31,1.33,1.27,1.31,1.29,1.33,1.28,1.32,1.34,1.31, 0.04,0.04,0.05,0.03,0.06,0.05,0.06,0.05,0.07,0.06, 0.08,0.07,0.06,0.07,0.07,0.07,0.08,0.09,0.09,0.11, 0.09,0.10,0.10,0.09,0.10,0.10,0.11,0.13,0.13,0.11, 0.12,0.13,0.13,0.12,0.13,0.15,0.15,0.15,0.17,0.18, 0.17,0.17,0.14,0.17,0.19,0.19,0.17,0.18,0.20,0.19, 0.17,0.21,0.19,0.21,0.21,0.21,0.21,0.22,0.20,0.24, 0.23,0.21,0.23,0.22,0.21,0.22,0.25,0.28,0.26,0.24, 0.25,0.23,0.28,0.28,0.28,0.27,0.25,0.28,0.25,0.27, 0.28,0.27,0.27,0.29,0.28,0.31,0.29,0.31,0.31,0.30, 0.29,0.32,0.34,0.32,0.30,0.33,0.31,0.32,0.34,0.33, 0.37,0.34,0.31,0.39,0.36,0.37,0.38,0.35,0.34,0.38, 0.33,0.39,0.34,0.38,0.40,0.42,0.37,0.38,0.37,0.40, 0.39,0.42,0.39,0.40,0.43,0.41,0.41,0.47,0.43,0.44, 0.45,0.41,0.44,0.43,0.48,0.45,0.47,0.48,0.46,0.47, 0.46,0.48,0.47,0.47,0.52,0.52,0.46,0.51,0.49,0.52, 0.52,0.49,0.48,0.49,0.51,0.53,0.50,0.50,0.56,0.51, 0.51,0.54,0.53,0.49,0.46,0.53,0.54,0.55,0.51,0.52, 0.53,0.58,0.58,0.59,0.59,0.55,0.58,0.58,0.62,0.56, 0.61,0.58,0.59,0.59,0.58,0.62,0.62,0.60,0.59,0.57, 0.62,0.61,0.61,0.62,0.61,0.60,0.61,0.64,0.66,0.64, 0.65,0.72,0.68,0.63,0.67,0.67,0.64,0.72,0.69,0.66, 0.67,0.69,0.71,0.73,0.67,0.68,0.69,0.69,0.73,0.73, 0.68,0.70,0.72,0.72,0.70,0.72,0.69,0.73,0.74,0.74, 0.76,0.74,0.74,0.78,0.69,0.76,0.74,0.73,0.80,0.80, 0.76,0.77,0.73,0.81,0.79,0.76,0.77,0.82,0.78,0.81, 0.82,0.82,0.77,0.83,0.85,0.89,0.87,0.79,0.85,0.83, 0.86,0.84,0.82,0.77,0.82,0.83,0.89,0.86,0.84,0.86, 0.85,0.88,0.85,0.85,0.82,0.94,0.86,0.93,0.97,0.85, 0.88,0.89,0.94,0.88,0.92,0.87,0.91,0.91,0.90,0.97, 0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04, 0.05,0.05,0.04,0.05,0.05,0.06,0.04,0.06,0.06,0.07, 0.06,0.06,0.07,0.08,0.06,0.08,0.07,0.08,0.08,0.08, 0.10,0.09,0.10,0.09,0.10,0.10,0.11,0.10,0.11,0.11, 0.12,0.10,0.11,0.12,0.13,0.12,0.12,0.12,0.11,0.11, 0.12,0.14,0.15,0.13,0.14,0.15,0.14,0.14,0.16,0.15, 0.15,0.16,0.13,0.18,0.15,0.16,0.19,0.16,0.20,0.17, 0.17,0.16,0.19,0.19,0.20,0.18,0.18,0.16,0.18,0.19, 0.20,0.21,0.20,0.20,0.22,0.21,0.22,0.23,0.21,0.23, 0.21,0.21,0.24,0.23,0.25,0.23,0.24,0.25,0.22,0.27, 0.23,0.26,0.26,0.26,0.25,0.24,0.28,0.28,0.26,0.26, 0.25,0.28,0.27,0.25,0.25,0.27,0.29,0.28,0.27,0.30, 0.27,0.28,0.30,0.31,0.27,0.27,0.30,0.28,0.34,0.31, 0.30,0.29,0.34,0.31,0.32,0.30,0.33,0.34,0.33,0.34, 0.32,0.31,0.31,0.35,0.34,0.32,0.30,0.35,0.38,0.34, 0.37,0.34,0.36,0.32,0.34,0.38,0.37,0.37,0.37,0.38, 0.39,0.38,0.42,0.35,0.38,0.37,0.38,0.43,0.42,0.39, 0.40,0.41,0.40,0.41,0.37,0.42,0.41,0.40,0.44,0.39, 0.41,0.43,0.43,0.41,0.42,0.44,0.39,0.40,0.43,0.44, 0.41,0.43,0.48,0.47,0.44,0.43,0.42,0.45,0.47,0.45, 0.46,0.48,0.46,0.45,0.52,0.47,0.44,0.45,0.48,0.51, 0.48,0.49,0.45,0.50,0.55,0.52,0.50,0.50,0.54,0.50, 0.52,0.55,0.52,0.50,0.52,0.52,0.52,0.54,0.56,0.52, 0.53,0.53,0.55,0.52,0.50,0.56,0.56,0.55,0.56,0.56, 0.58,0.56,0.58,0.56,0.57,0.56,0.56,0.54,0.53,0.57, 0.56,0.54,0.60,0.60,0.57,0.56,0.62,0.60,0.56,0.57, 0.59,0.59,0.61,0.60,0.58,0.61,0.65,0.60,0.56,0.66, 0.62,0.62,0.63,0.57,0.65,0.58,0.62,0.64,0.65,0.60, 0.60,0.64,0.58,0.65,0.63,0.67,0.68,0.65,0.65,0.69, 0.01,0.03,0.03,0.03,0.03,0.02,0.03,0.03,0.03,0.03, 0.03,0.04,0.02,0.03,0.04,0.03,0.04,0.05,0.04,0.04, 0.05,0.05,0.06,0.04,0.05,0.07,0.05,0.06,0.06,0.08, 0.06,0.06,0.08,0.07,0.08,0.05,0.09,0.06,0.09,0.07, 0.06,0.09,0.09,0.08,0.10,0.08,0.10,0.07,0.08,0.08, 0.10,0.11,0.08,0.10,0.10,0.11,0.11,0.11,0.10,0.12, 0.09,0.10,0.14,0.12,0.11,0.11,0.11,0.14,0.12,0.14, 0.14,0.12,0.12,0.13,0.12,0.14,0.14,0.12,0.14,0.15, 0.15,0.16,0.13,0.16,0.15,0.14,0.14,0.16,0.19,0.16, 0.16,0.14,0.14,0.16,0.17,0.14,0.17,0.14,0.18,0.15, 0.17,0.17,0.16,0.17,0.18,0.19,0.19,0.15,0.16,0.19, 0.19,0.19,0.19,0.17,0.18,0.20,0.22,0.18,0.20,0.19, 0.21,0.22,0.19,0.20,0.22,0.20,0.22,0.21,0.23,0.21, 0.20,0.22,0.20,0.19,0.21,0.22,0.24,0.19,0.22,0.25, 0.22,0.23,0.22,0.23,0.25,0.23,0.26,0.25,0.23,0.27, 0.25,0.25,0.27,0.22,0.27,0.24,0.29,0.25,0.26,0.25, 0.26,0.29,0.27,0.27,0.29,0.28,0.29,0.30,0.29,0.28, 0.30,0.28,0.28,0.27,0.29,0.27,0.28,0.28,0.30,0.28, 0.26,0.30,0.30,0.32,0.30,0.31,0.29,0.34,0.30,0.32, 0.31,0.33,0.32,0.27,0.33,0.29,0.36,0.36,0.31,0.31, 0.33,0.36,0.32,0.35,0.31,0.28,0.34,0.30,0.32,0.32, 0.37,0.35,0.33,0.32,0.37,0.36,0.36,0.36,0.36,0.34, 0.38,0.34,0.38,0.37,0.37,0.39,0.33,0.39,0.36,0.39, 0.35,0.37,0.37,0.38,0.39,0.39,0.40,0.37,0.42,0.39, 0.37,0.37,0.40,0.39,0.41,0.38,0.41,0.41,0.42,0.37, 0.38,0.38,0.45,0.39,0.42,0.40,0.45,0.39,0.39,0.40, 0.45,0.40,0.40,0.45,0.38,0.43,0.43,0.45,0.44,0.46, 0.40,0.47,0.41,0.45,0.45,0.49,0.44,0.46,0.45,0.45, 0.47,0.45,0.45,0.48,0.44,0.46,0.44,0.46,0.42,0.50, 0.01,0.01,0.01,0.02,0.01,0.02,0.01,0.01,0.01,0.02, 0.02,0.03,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03, 0.04,0.03,0.03,0.05,0.04,0.03,0.05,0.04,0.04,0.05, 0.05,0.04,0.05,0.05,0.04,0.05,0.06,0.06,0.04,0.06, 0.05,0.06,0.05,0.05,0.07,0.05,0.07,0.06,0.05,0.07, 0.06,0.09,0.07,0.07,0.07,0.06,0.08,0.07,0.08,0.07, 0.08,0.08,0.09,0.09,0.08,0.09,0.09,0.08,0.09,0.10, 0.09,0.08,0.10,0.09,0.09,0.10,0.09,0.11,0.11,0.10, 0.10,0.11,0.10,0.09,0.12,0.10,0.11,0.10,0.10,0.12, 0.10,0.12,0.10,0.11,0.13,0.12,0.12,0.10,0.12,0.11, 0.13,0.11,0.13,0.14,0.12,0.13,0.12,0.12,0.10,0.12, 0.12,0.14,0.14,0.13,0.14,0.15,0.14,0.14,0.14,0.15, 0.14,0.14,0.17,0.14,0.17,0.16,0.17,0.13,0.17,0.17, 0.16,0.16,0.14,0.16,0.15,0.15,0.15,0.15,0.17,0.16, 0.17,0.17,0.16,0.16,0.18,0.16,0.18,0.18,0.18,0.16, 0.17,0.17,0.17,0.17,0.17,0.18,0.17,0.19,0.20,0.19, 0.19,0.21,0.19,0.20,0.20,0.21,0.20,0.21,0.20,0.20, 0.18,0.20,0.20,0.23,0.21,0.19,0.22,0.20,0.22,0.23, 0.21,0.20,0.19,0.23,0.19,0.23,0.21,0.24,0.20,0.24, 0.20,0.21,0.24,0.24,0.21,0.23,0.23,0.22,0.23,0.23, 0.24,0.21,0.22,0.25,0.25,0.26,0.22,0.25,0.23,0.24, 0.23,0.27,0.24,0.26,0.25,0.23,0.24,0.26,0.28,0.23, 0.23,0.24,0.25,0.26,0.28,0.24,0.25,0.22,0.26,0.22, 0.27,0.24,0.28,0.27,0.26,0.28,0.33,0.26,0.27,0.24, 0.28,0.26,0.27,0.29,0.26,0.28,0.28,0.28,0.28,0.31, 0.28,0.23,0.27,0.31,0.30,0.30,0.31,0.26,0.33,0.31, 0.30,0.33,0.29,0.30,0.30,0.29,0.28,0.34,0.28,0.32, 0.32,0.32,0.29,0.33,0.33,0.33,0.30,0.31,0.30,0.30, 0.32,0.32,0.30,0.32,0.34,0.32,0.33,0.32,0.33,0.35, 0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.01,0.01,0.02, 0.02,0.01,0.01,0.01,0.02,0.01,0.02,0.03,0.02,0.02, 0.03,0.02,0.02,0.02,0.04,0.04,0.02,0.03,0.03,0.04, 0.03,0.02,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04, 0.04,0.04,0.04,0.04,0.05,0.04,0.05,0.04,0.05,0.05, 0.05,0.04,0.04,0.05,0.06,0.04,0.05,0.04,0.06,0.04, 0.05,0.05,0.06,0.07,0.07,0.07,0.06,0.06,0.05,0.06, 0.07,0.07,0.06,0.07,0.07,0.06,0.06,0.07,0.07,0.08, 0.07,0.06,0.07,0.07,0.08,0.07,0.07,0.07,0.08,0.07, 0.08,0.07,0.08,0.09,0.09,0.09,0.08,0.08,0.09,0.09, 0.09,0.11,0.09,0.09,0.08,0.09,0.08,0.10,0.09,0.09, 0.10,0.09,0.10,0.11,0.11,0.11,0.09,0.08,0.10,0.09, 0.10,0.08,0.10,0.10,0.10,0.09,0.11,0.12,0.10,0.12, 0.13,0.09,0.13,0.12,0.12,0.14,0.12,0.12,0.10,0.12, 0.13,0.13,0.10,0.14,0.12,0.12,0.10,0.14,0.14,0.13, 0.13,0.14,0.12,0.13,0.11,0.13,0.13,0.13,0.10,0.13, 0.12,0.13,0.12,0.14,0.13,0.15,0.13,0.13,0.16,0.13, 0.14,0.15,0.13,0.18,0.14,0.14,0.14,0.15,0.16,0.15, 0.15,0.16,0.17,0.16,0.13,0.14,0.16,0.17,0.15,0.16, 0.14,0.16,0.17,0.16,0.17,0.17,0.17,0.18,0.15,0.17, 0.19,0.17,0.17,0.17,0.17,0.16,0.19,0.18,0.17,0.17, 0.19,0.16,0.14,0.17,0.20,0.18,0.18,0.18,0.16,0.20, 0.20,0.18,0.20,0.19,0.20,0.21,0.19,0.18,0.17,0.19, 0.19,0.18,0.20,0.20,0.20,0.19,0.20,0.18,0.20,0.21, 0.19,0.20,0.21,0.18,0.20,0.21,0.19,0.21,0.22,0.22, 0.18,0.20,0.21,0.20,0.21,0.20,0.21,0.19,0.22,0.18, 0.25,0.20,0.21,0.22,0.25,0.21,0.22,0.23,0.22,0.21, 0.22,0.21,0.25,0.24,0.24,0.21,0.25,0.23,0.26,0.21, 0.23,0.23,0.24,0.23,0.21,0.21,0.25,0.27,0.23,0.25, 1.13,1.23,1.22,1.52,1.57,1.61,1.72,1.82,1.98,2.08, 2.08,2.28,2.47,2.49,2.66,2.70,2.78,2.95,3.03,3.12, 3.19,3.31,3.49,3.69,3.64,3.79,3.77,4.09,4.18,4.25, 4.41,4.43,4.59,4.59,4.72,4.85,4.90,5.08,5.10,5.29, 5.31,5.58,5.64,5.77,5.86,6.13,6.01,6.20,6.24,6.15, 6.50,6.64,6.57,6.78,6.88,6.86,7.11,7.11,7.19,7.46, 7.42,7.50,7.61,7.85,7.99,7.97,8.28,8.25,8.40,8.52, 8.53,8.72,8.69,8.92,9.10,9.20,9.27,9.38,9.39,9.53, 9.77,9.74,9.80,10.00,10.03,10.10,10.33,10.36,10.55,10.82, 10.70,10.82,11.03,11.00,11.11,11.25,11.34,11.55,11.53,11.58, 11.77,11.97,11.90,12.09,12.14,12.46,12.50,12.70,12.80,12.60, 12.92,13.05,12.86,13.00,13.32,13.50,13.40,13.73,13.71,13.66, 14.07,13.91,14.24,14.24,14.23,14.65,14.65,14.71,14.76,14.76, 15.04,14.97,15.22,15.50,15.34,15.62,15.66,15.82,16.03,16.02, 16.08,16.00,16.43,16.32,16.50,16.67,16.81,16.82,16.99,17.20, 17.09,17.54,17.38,17.50,17.39,17.62,17.75,17.74,17.94,18.16, 18.27,18.24,18.36,18.36,18.61,18.89,18.71,18.81,19.26,19.17, 19.29,19.51,19.53,19.74,19.78,19.84,20.31,20.13,20.05,20.29, 20.33,20.42,20.67,20.55,20.69,20.97,21.05,20.96,21.18,21.40, 21.54,21.47,21.79,21.85,21.91,22.21,22.27,22.09,22.12,22.45, 22.44,22.66,22.64,22.87,22.74,23.11,23.13,23.20,23.52,23.53, 23.52,23.78,23.94,23.95,24.07,24.13,24.34,24.41,24.44,24.95, 24.52,24.64,24.91,24.86,25.14,25.09,25.42,25.35,25.70,25.62, 25.78,25.74,25.74,25.66,26.19,26.30,26.38,26.48,26.46,26.44, 26.68,26.81,26.83,26.90,27.21,27.17,27.46,27.60,27.54,27.61, 27.73,28.27,28.10,28.25,28.32,28.33,28.61,28.49,28.83,28.64, 29.05,29.12,29.11,29.41,29.05,29.44,29.57,29.86,29.89,29.85, 29.90,29.92,30.36,30.49,30.41,30.31,30.55,30.46,30.98,31.29, 31.11,30.90,31.50,31.41,31.43,31.73,31.69,31.89,31.80,32.22, 0.75,0.87,0.95,1.08,1.13,1.15,1.30,1.41,1.40,1.54, 1.52,1.64,1.74,1.79,1.89,1.90,2.08,2.17,2.12,2.32, 2.32,2.44,2.51,2.61,2.62,2.76,2.88,2.84,2.90,2.97, 3.10,3.13,3.25,3.38,3.34,3.48,3.62,3.54,3.69,3.87, 4.00,4.00,4.03,4.21,4.18,4.36,4.37,4.45,4.39,4.59, 4.77,4.67,4.85,4.94,4.95,4.97,5.09,5.21,5.27,5.35, 5.43,5.54,5.55,5.73,5.74,5.86,5.91,6.05,6.08,6.12, 6.14,6.32,6.25,6.44,6.42,6.54,6.60,6.67,6.63,6.85, 6.98,6.87,7.01,7.11,7.22,7.26,7.42,7.54,7.70,7.66, 7.72,7.88,7.75,8.05,8.02,8.23,8.31,8.23,8.36,8.42, 8.41,8.53,8.53,8.72,8.78,8.91,9.04,9.09,9.07,9.16, 9.27,9.32,9.43,9.45,9.46,9.74,9.57,9.93,9.96,9.96, 10.06,10.12,10.34,10.18,10.35,10.40,10.60,10.59,10.61,10.83, 10.82,10.85,10.84,11.04,11.08,11.21,11.07,11.39,11.53,11.56, 11.46,11.48,11.84,11.79,12.07,11.86,11.97,12.18,12.31,12.20, 12.23,12.35,12.56,12.52,12.68,12.79,12.77,12.89,12.91,12.94, 13.26,13.11,13.35,13.45,13.46,13.55,13.63,14.05,13.59,13.83, 13.84,13.96,14.00,14.20,14.28,14.32,14.66,14.50,14.42,14.45, 14.63,14.89,14.93,14.72,15.00,14.96,15.10,15.18,15.30,15.21, 15.24,15.32,15.65,15.77,15.53,15.82,16.02,15.99,16.06,16.03, 16.22,16.15,16.32,16.40,16.54,16.57,16.72,16.73,16.99,17.02, 16.99,17.14,17.11,17.14,17.33,17.41,17.23,17.56,17.59,17.73, 17.89,17.92,17.97,18.03,18.15,18.11,18.19,18.25,18.09,18.48, 18.77,18.48,18.75,18.89,18.70,19.28,19.11,19.00,19.04,19.19, 19.36,19.26,19.53,19.47,19.55,19.95,19.69,19.92,19.93,19.92, 20.06,20.04,20.48,20.34,20.16,20.25,20.74,20.69,20.43,20.54, 20.69,20.79,20.92,21.01,21.20,21.13,21.21,21.61,21.32,21.48, 21.74,21.75,21.95,21.72,21.65,21.75,21.96,22.13,22.12,22.11, 22.46,22.21,22.61,22.80,23.00,22.71,22.36,23.00,22.98,23.14, 0.57,0.65,0.67,0.73,0.75,0.82,0.96,0.96,0.98,1.05, 1.08,1.22,1.20,1.32,1.29,1.35,1.44,1.52,1.64,1.63, 1.65,1.76,1.77,1.88,1.86,2.00,1.94,1.97,2.09,2.22, 2.27,2.34,2.35,2.46,2.46,2.53,2.51,2.64,2.65,2.75, 2.87,2.82,2.95,2.99,3.03,3.01,3.10,3.14,3.21,3.36, 3.32,3.41,3.48,3.50,3.70,3.61,3.63,3.68,3.84,3.94, 3.82,3.94,4.02,3.89,4.08,4.21,4.21,4.33,4.27,4.46, 4.34,4.52,4.48,4.67,4.59,4.81,4.71,4.88,4.80,5.04, 4.97,5.01,5.05,5.16,5.23,5.29,5.26,5.42,5.36,5.42, 5.60,5.67,5.60,5.79,5.68,5.84,5.87,6.05,6.02,6.14, 6.01,6.15,6.29,6.26,6.44,6.39,6.35,6.59,6.41,6.54, 6.75,6.71,6.82,6.84,6.85,7.04,7.06,7.10,7.15,7.08, 7.19,7.27,7.34,7.57,7.30,7.53,7.60,7.63,7.68,7.75, 7.62,7.81,7.80,8.01,7.98,7.96,8.11,8.24,8.34,8.35, 8.25,8.49,8.49,8.54,8.69,8.70,8.52,8.57,8.77,8.92, 8.99,9.01,9.04,9.15,9.12,9.05,9.12,9.29,9.26,9.26, 9.41,9.43,9.51,9.87,9.60,9.87,9.60,9.79,9.90,10.03, 10.01,10.01,10.09,10.23,10.13,10.36,10.27,10.47,10.60,10.69, 10.63,10.59,10.67,10.80,10.68,10.72,10.91,11.05,11.00,11.11, 11.31,11.18,11.28,11.34,11.51,11.40,11.38,11.40,11.50,11.56, 11.62,11.83,11.83,11.89,11.90,12.02,12.01,12.09,12.05,12.39, 12.24,12.26,12.19,12.40,12.52,12.59,12.44,12.55,12.67,12.63, 12.89,12.95,12.81,13.06,12.83,13.12,13.14,13.14,13.16,13.07, 13.27,13.40,13.27,13.41,13.42,13.58,13.76,13.80,13.57,13.73, 13.70,13.86,13.81,14.04,14.19,14.37,14.20,14.19,14.32,14.50, 14.51,14.32,14.46,14.46,14.57,14.84,14.77,14.66,15.07,15.04, 14.97,15.06,15.07,15.24,15.26,15.21,15.24,15.34,15.75,15.33, 15.55,15.66,15.59,15.91,15.72,15.65,15.83,15.92,16.07,16.21, 16.07,16.15,15.99,16.28,16.22,16.42,16.68,16.54,16.51,16.71, 0.37,0.47,0.47,0.51,0.57,0.67,0.68,0.73,0.72,0.77, 0.83,0.84,0.87,0.85,0.93,0.99,1.00,1.12,1.15,1.19, 1.22,1.17,1.29,1.37,1.41,1.44,1.44,1.44,1.46,1.50, 1.70,1.64,1.66,1.70,1.77,1.81,1.88,1.95,1.90,1.99, 1.98,2.15,2.06,2.09,2.15,2.24,2.18,2.31,2.32,2.31, 2.37,2.49,2.56,2.50,2.52,2.52,2.61,2.72,2.73,2.69, 2.72,2.96,2.86,2.93,3.02,3.04,3.14,3.11,3.08,3.18, 3.23,3.15,3.33,3.31,3.41,3.44,3.45,3.51,3.50,3.61, 3.66,3.62,3.67,3.74,3.73,3.81,3.88,3.83,3.95,3.92, 4.08,4.02,4.12,4.03,4.14,4.22,4.36,4.23,4.29,4.27, 4.51,4.42,4.48,4.52,4.51,4.78,4.59,4.76,4.77,4.84, 4.75,4.79,4.88,4.99,5.02,4.99,4.97,5.02,5.10,5.12, 5.15,5.29,5.34,5.30,5.44,5.35,5.37,5.47,5.54,5.52, 5.59,5.64,5.70,5.78,5.68,5.70,5.93,5.88,6.06,6.01, 6.09,6.08,6.12,6.01,6.04,6.31,6.30,6.30,6.38,6.34, 6.36,6.55,6.48,6.67,6.57,6.65,6.76,6.76,6.79,6.84, 6.85,6.89,6.87,6.87,6.81,7.00,6.88,6.97,7.00,7.16, 7.27,7.09,7.33,7.27,7.50,7.37,7.40,7.36,7.59,7.48, 7.66,7.70,7.79,7.70,7.63,7.82,7.82,8.00,7.97,7.98, 7.96,8.00,8.15,8.16,8.15,8.36,8.10,8.26,8.38,8.23, 8.43,8.43,8.48,8.51,8.45,8.58,8.59,8.52,8.78,8.71, 8.75,8.82,8.96,8.99,9.01,9.05,8.92,9.06,9.01,9.39, 9.19,9.29,9.34,9.05,9.31,9.38,9.38,9.48,9.44,9.39, 9.64,9.59,9.80,9.75,9.67,9.65,9.84,9.75,9.89,10.20, 9.93,10.05,10.01,10.08,10.11,10.26,10.03,10.23,10.15,10.48, 10.42,10.38,10.37,10.54,10.57,10.55,10.49,10.54,10.69,10.76, 10.71,10.90,10.89,10.91,11.09,10.75,10.78,10.98,11.14,11.12, 10.98,11.24,11.25,11.31,11.27,11.45,11.46,11.59,11.61,11.49, 11.42,11.70,11.37,11.76,11.92,11.77,11.75,11.79,11.80,11.73, 0.32,0.32,0.33,0.42,0.43,0.46,0.43,0.52,0.47,0.59, 0.57,0.62,0.67,0.66,0.72,0.80,0.79,0.78,0.81,0.86, 0.88,0.89,0.93,0.87,0.96,0.96,1.02,1.08,1.09,1.08, 1.17,1.19,1.24,1.28,1.23,1.28,1.36,1.32,1.34,1.36, 1.40,1.53,1.49,1.52,1.62,1.55,1.68,1.58,1.66,1.69, 1.71,1.70,1.82,1.85,1.86,1.87,1.91,1.96,2.02,1.92, 2.03,2.02,2.05,2.10,2.10,2.13,2.23,2.22,2.23,2.25, 2.32,2.29,2.36,2.37,2.40,2.36,2.46,2.44,2.50,2.59, 2.67,2.68,2.66,2.67,2.70,2.67,2.77,2.76,2.76,2.81, 2.97,2.98,2.90,2.97,3.10,3.08,3.09,3.08,3.11,3.12, 3.12,3.24,3.27,3.23,3.35,3.21,3.37,3.41,3.35,3.36, 3.45,3.49,3.51,3.53,3.49,3.62,3.62,3.65,3.69,3.73, 3.68,3.77,3.87,3.79,3.87,3.88,3.85,3.99,4.03,4.08, 4.00,4.12,4.16,4.03,4.17,4.14,4.35,4.31,4.23,4.24, 4.32,4.34,4.39,4.45,4.52,4.45,4.56,4.53,4.51,4.59, 4.61,4.71,4.64,4.65,4.77,4.71,4.67,4.80,4.85,4.87, 4.94,4.79,5.03,4.88,5.07,5.06,5.05,5.18,5.16,5.17, 5.20,5.24,5.23,5.17,5.31,5.27,5.38,5.28,5.38,5.43, 5.41,5.39,5.61,5.54,5.65,5.53,5.58,5.71,5.71,5.63, 5.85,5.76,5.77,5.75,5.98,5.88,5.86,6.08,6.05,6.00, 6.01,6.06,6.04,6.12,6.14,6.19,6.28,6.31,6.29,6.45, 6.36,6.42,6.41,6.45,6.47,6.42,6.44,6.63,6.52,6.69, 6.60,6.64,6.68,6.77,6.78,6.85,6.78,6.75,6.83,6.94, 6.70,6.86,6.87,7.02,7.01,6.92,7.08,7.08,7.08,7.04, 7.11,7.25,7.19,7.29,7.28,7.27,7.42,7.46,7.44,7.46, 7.60,7.58,7.47,7.54,7.58,7.59,7.57,7.68,7.89,7.70, 7.58,7.83,7.78,7.69,7.92,7.79,8.13,7.95,8.08,8.08, 8.16,8.06,8.22,8.06,8.19,8.25,8.21,8.21,8.29,8.35, 8.47,8.41,8.45,8.36,8.38,8.36,8.53,8.52,8.67,8.71, 0.23,0.22,0.23,0.27,0.30,0.33,0.34,0.38,0.37,0.39, 0.43,0.46,0.44,0.47,0.51,0.54,0.51,0.56,0.57,0.59, 0.66,0.66,0.67,0.67,0.69,0.75,0.79,0.80,0.77,0.84, 0.84,0.87,0.82,0.86,0.90,0.93,0.93,0.99,0.98,0.94, 1.02,1.08,1.02,1.08,1.17,1.17,1.15,1.18,1.21,1.27, 1.28,1.27,1.25,1.36,1.36,1.29,1.39,1.39,1.35,1.51, 1.41,1.42,1.55,1.49,1.60,1.51,1.60,1.64,1.58,1.58, 1.67,1.68,1.68,1.60,1.70,1.75,1.77,1.75,1.83,1.82, 1.85,1.94,1.97,1.88,1.96,2.00,2.02,2.02,2.09,2.02, 2.07,2.12,2.17,2.13,2.16,2.15,2.17,2.14,2.27,2.27, 2.27,2.33,2.35,2.39,2.47,2.37,2.38,2.43,2.54,2.47, 2.51,2.51,2.50,2.58,2.63,2.61,2.59,2.57,2.71,2.70, 2.71,2.69,2.68,2.78,2.78,2.81,2.80,2.80,2.81,2.87, 2.95,3.11,2.91,2.92,2.92,3.04,2.96,3.06,3.06,3.13, 3.08,3.12,3.11,3.20,3.23,3.19,3.21,3.23,3.32,3.28, 3.43,3.25,3.35,3.36,3.47,3.44,3.40,3.46,3.38,3.45, 3.54,3.60,3.46,3.61,3.57,3.62,3.67,3.67,3.57,3.80, 3.73,3.85,3.78,3.77,3.83,3.84,3.83,3.80,4.04,3.98, 3.90,3.90,4.01,3.92,4.00,4.06,4.08,4.15,4.08,4.17, 4.14,4.15,4.18,4.11,4.31,4.18,4.26,4.27,4.25,4.29, 4.28,4.37,4.49,4.31,4.37,4.39,4.44,4.53,4.53,4.53, 4.55,4.49,4.67,4.58,4.62,4.51,4.66,4.76,4.65,4.82, 4.60,4.82,4.70,4.87,4.88,4.78,4.95,4.96,4.87,4.96, 4.92,5.02,4.92,4.99,4.94,5.02,5.06,5.08,5.04,5.14, 5.13,5.23,5.17,5.25,5.25,5.26,5.19,5.32,5.30,5.46, 5.44,5.43,5.49,5.29,5.43,5.61,5.50,5.59,5.58,5.60, 5.62,5.63,5.77,5.76,5.62,5.62,5.58,5.78,5.73,5.71, 5.79,5.78,5.81,5.79,5.74,5.87,6.03,5.95,6.06,5.92, 5.95,6.06,6.07,5.91,6.03,6.04,5.99,6.15,6.25,6.18, 0.15,0.18,0.19,0.20,0.21,0.22,0.23,0.27,0.28,0.31, 0.27,0.32,0.34,0.32,0.34,0.35,0.42,0.41,0.44,0.42, 0.46,0.46,0.47,0.45,0.51,0.52,0.52,0.55,0.60,0.56, 0.63,0.63,0.65,0.67,0.61,0.67,0.70,0.73,0.74,0.74, 0.75,0.76,0.79,0.77,0.83,0.74,0.83,0.86,0.87,0.92, 0.88,0.86,0.89,0.95,0.97,0.96,1.03,1.06,1.05,1.03, 1.08,1.09,1.11,1.09,1.08,1.11,1.15,1.17,1.16,1.12, 1.19,1.26,1.18,1.23,1.25,1.24,1.30,1.35,1.32,1.38, 1.38,1.33,1.33,1.40,1.47,1.42,1.47,1.44,1.51,1.47, 1.50,1.47,1.51,1.48,1.51,1.57,1.57,1.63,1.55,1.65, 1.63,1.65,1.67,1.73,1.67,1.67,1.75,1.76,1.74,1.81, 1.78,1.80,1.81,1.87,1.84,1.93,1.88,1.96,1.97,1.91, 1.94,2.00,1.99,2.00,2.03,1.97,1.98,2.04,2.00,2.00, 2.06,2.10,2.08,2.12,2.20,2.19,2.20,2.22,2.13,2.23, 2.24,2.25,2.25,2.21,2.30,2.40,2.34,2.39,2.35,2.32, 2.35,2.36,2.45,2.42,2.42,2.47,2.48,2.54,2.59,2.56, 2.57,2.57,2.57,2.67,2.65,2.61,2.63,2.62,2.62,2.67, 2.77,2.73,2.71,2.81,2.70,2.87,2.83,2.84,2.77,2.84, 2.78,2.83,2.94,2.96,2.96,2.93,2.96,2.99,2.95,3.05, 2.97,3.06,2.98,2.97,3.09,3.02,3.13,3.10,3.01,3.07, 3.13,3.19,3.15,3.17,3.25,3.20,3.19,3.26,3.24,3.24, 3.23,3.29,3.39,3.22,3.49,3.41,3.35,3.47,3.37,3.40, 3.40,3.42,3.42,3.44,3.57,3.44,3.47,3.58,3.63,3.58, 3.61,3.60,3.69,3.67,3.75,3.65,3.46,3.74,3.75,3.67, 3.85,3.65,3.76,3.79,3.76,3.81,3.75,3.94,3.84,3.86, 3.92,3.93,3.88,3.99,4.01,3.95,4.12,4.08,4.04,4.00, 4.14,3.94,4.01,4.01,4.13,4.10,4.03,4.15,4.13,4.11, 3.98,4.20,4.21,4.29,4.22,4.21,4.20,4.31,4.34,4.34, 4.37,4.27,4.37,4.40,4.31,4.45,4.47,4.43,4.54,4.53, 0.12,0.11,0.14,0.16,0.16,0.17,0.16,0.17,0.23,0.21, 0.24,0.21,0.26,0.25,0.26,0.29,0.26,0.28,0.30,0.31, 0.32,0.29,0.34,0.34,0.34,0.40,0.39,0.38,0.43,0.40, 0.41,0.48,0.45,0.45,0.48,0.50,0.51,0.48,0.52,0.52, 0.52,0.54,0.51,0.55,0.59,0.55,0.64,0.60,0.61,0.61, 0.64,0.66,0.67,0.68,0.69,0.66,0.72,0.74,0.74,0.76, 0.75,0.81,0.81,0.77,0.82,0.77,0.87,0.84,0.88,0.82, 0.89,0.84,0.94,0.92,0.92,0.88,0.94,0.89,0.97,0.91, 0.96,0.94,0.97,1.07,1.01,0.98,1.02,1.01,1.10,1.09, 1.07,1.10,1.10,1.16,1.10,1.08,1.10,1.10,1.16,1.16, 1.19,1.21,1.25,1.21,1.21,1.25,1.24,1.22,1.24,1.24, 1.29,1.29,1.32,1.34,1.35,1.29,1.34,1.34,1.37,1.43, 1.43,1.35,1.49,1.39,1.39,1.50,1.43,1.49,1.46,1.46, 1.52,1.44,1.54,1.59,1.51,1.55,1.56,1.53,1.54,1.53, 1.60,1.58,1.60,1.73,1.63,1.67,1.66,1.62,1.64,1.70, 1.71,1.76,1.78,1.73,1.80,1.76,1.75,1.85,1.78,1.85, 1.84,1.84,1.89,1.85,1.85,1.99,1.97,1.89,1.86,1.91, 1.91,1.89,2.00,1.98,1.97,2.01,1.97,2.03,2.05,2.04, 2.01,2.03,2.01,2.03,2.10,2.04,2.18,2.25,2.10,2.11, 2.07,2.22,2.14,2.20,2.15,2.20,2.19,2.27,2.15,2.29, 2.28,2.24,2.25,2.30,2.32,2.36,2.31,2.41,2.36,2.32, 2.37,2.37,2.38,2.45,2.34,2.40,2.48,2.42,2.43,2.47, 2.57,2.57,2.50,2.56,2.46,2.55,2.50,2.47,2.52,2.62, 2.64,2.52,2.64,2.61,2.54,2.68,2.67,2.61,2.74,2.69, 2.70,2.65,2.81,2.73,2.71,2.69,2.71,2.76,2.85,2.83, 2.84,2.85,2.83,2.88,2.81,2.72,2.91,2.84,2.90,2.85, 2.96,2.88,2.91,3.03,3.03,2.87,2.97,2.96,3.01,2.98, 3.12,3.04,3.06,3.03,3.03,3.08,3.11,3.08,3.10,3.13, 3.09,3.21,3.19,3.18,3.24,3.24,3.21,3.19,3.17,3.20, 0.08,0.09,0.08,0.09,0.13,0.10,0.14,0.12,0.14,0.17, 0.16,0.16,0.16,0.17,0.20,0.19,0.19,0.20,0.22,0.21, 0.24,0.24,0.25,0.27,0.27,0.28,0.27,0.30,0.29,0.33, 0.31,0.31,0.32,0.35,0.33,0.35,0.36,0.36,0.35,0.37, 0.40,0.42,0.38,0.41,0.40,0.45,0.45,0.45,0.42,0.44, 0.48,0.49,0.43,0.48,0.50,0.50,0.53,0.51,0.50,0.54, 0.57,0.58,0.51,0.59,0.54,0.52,0.57,0.58,0.61,0.62, 0.62,0.61,0.65,0.63,0.67,0.64,0.66,0.66,0.69,0.68, 0.68,0.68,0.73,0.68,0.70,0.73,0.78,0.78,0.73,0.79, 0.75,0.77,0.77,0.84,0.75,0.78,0.83,0.86,0.91,0.89, 0.82,0.83,0.85,0.84,0.92,0.86,0.94,0.89,0.89,0.86, 0.92,0.85,0.93,0.90,0.98,0.95,0.98,1.00,0.94,1.02, 0.96,0.98,1.02,0.99,1.00,1.04,1.06,1.04,1.06,1.12, 1.08,1.06,1.11,1.07,1.11,1.08,1.10,1.09,1.14,1.14, 1.15,1.13,1.17,1.15,1.24,1.22,1.19,1.18,1.24,1.20, 1.35,1.21,1.21,1.27,1.28,1.32,1.26,1.24,1.36,1.31, 1.32,1.33,1.27,1.32,1.32,1.37,1.36,1.33,1.43,1.38, 1.39,1.37,1.42,1.50,1.38,1.41,1.38,1.47,1.40,1.47, 1.48,1.52,1.46,1.51,1.48,1.55,1.52,1.54,1.58,1.58, 1.56,1.59,1.58,1.53,1.56,1.58,1.63,1.57,1.60,1.53, 1.66,1.65,1.68,1.61,1.65,1.64,1.67,1.65,1.70,1.68, 1.68,1.69,1.64,1.77,1.71,1.74,1.73,1.85,1.75,1.75, 1.75,1.74,1.77,1.84,1.79,1.89,1.83,1.78,1.93,1.88, 1.76,1.88,1.90,1.88,1.91,1.91,1.84,1.95,1.96,1.94, 1.99,1.92,2.04,1.97,1.94,1.96,1.99,1.98,2.00,2.06, 2.04,1.97,2.00,2.00,2.10,2.01,2.08,2.02,2.07,2.08, 2.10,2.19,2.10,2.15,2.12,2.09,2.22,2.08,2.16,2.17, 2.16,2.18,2.18,2.21,2.20,2.12,2.28,2.20,2.10,2.11, 2.15,2.29,2.26,2.22,2.23,2.23,2.31,2.33,2.30,2.28, 0.06,0.07,0.07,0.09,0.07,0.09,0.08,0.09,0.12,0.12, 0.10,0.13,0.13,0.10,0.14,0.16,0.15,0.16,0.14,0.17, 0.17,0.18,0.18,0.19,0.20,0.21,0.18,0.21,0.21,0.22, 0.22,0.21,0.23,0.24,0.24,0.28,0.24,0.27,0.26,0.28, 0.24,0.29,0.29,0.30,0.30,0.32,0.29,0.30,0.32,0.36, 0.34,0.33,0.38,0.37,0.35,0.37,0.38,0.36,0.39,0.37, 0.40,0.43,0.38,0.40,0.41,0.42,0.44,0.39,0.43,0.44, 0.40,0.47,0.43,0.44,0.48,0.52,0.44,0.48,0.50,0.50, 0.50,0.52,0.49,0.53,0.57,0.50,0.57,0.56,0.59,0.57, 0.58,0.54,0.57,0.54,0.60,0.60,0.61,0.58,0.62,0.63, 0.60,0.63,0.65,0.64,0.68,0.63,0.63,0.62,0.67,0.65, 0.65,0.67,0.66,0.71,0.71,0.69,0.74,0.72,0.69,0.74, 0.69,0.73,0.73,0.72,0.76,0.77,0.74,0.76,0.79,0.81, 0.78,0.80,0.80,0.79,0.83,0.83,0.80,0.87,0.80,0.82, 0.79,0.85,0.80,0.84,0.82,0.86,0.86,0.85,0.83,0.91, 0.91,0.90,0.94,0.91,0.92,0.89,0.95,0.87,0.96,0.96, 0.93,0.99,0.95,0.94,0.94,1.04,0.93,1.02,1.02,1.00, 1.03,1.02,1.01,1.04,1.01,1.00,1.02,1.03,1.01,1.15, 1.06,1.06,1.08,1.12,1.12,1.07,1.06,1.12,1.06,1.12, 1.14,1.07,1.14,1.10,1.14,1.11,1.17,1.17,1.13,1.18, 1.19,1.20,1.18,1.20,1.23,1.16,1.25,1.24,1.22,1.26, 1.27,1.19,1.28,1.29,1.14,1.23,1.22,1.28,1.23,1.25, 1.32,1.32,1.29,1.25,1.35,1.35,1.32,1.35,1.30,1.36, 1.40,1.35,1.38,1.39,1.35,1.37,1.34,1.36,1.31,1.42, 1.41,1.41,1.41,1.39,1.46,1.33,1.44,1.41,1.39,1.48, 1.42,1.47,1.46,1.52,1.55,1.54,1.51,1.44,1.55,1.51, 1.54,1.47,1.45,1.58,1.55,1.47,1.56,1.49,1.60,1.53, 1.59,1.63,1.55,1.58,1.62,1.54,1.56,1.54,1.59,1.57, 1.63,1.66,1.66,1.60,1.68,1.67,1.62,1.69,1.67,1.69, 0.05,0.04,0.05,0.06,0.06,0.07,0.06,0.06,0.08,0.07, 0.09,0.10,0.08,0.10,0.11,0.09,0.10,0.11,0.11,0.11, 0.12,0.11,0.13,0.12,0.15,0.15,0.14,0.14,0.15,0.16, 0.18,0.16,0.17,0.16,0.22,0.18,0.19,0.17,0.19,0.21, 0.21,0.21,0.21,0.21,0.22,0.19,0.25,0.21,0.23,0.24, 0.26,0.25,0.23,0.26,0.25,0.28,0.27,0.26,0.26,0.26, 0.26,0.27,0.28,0.30,0.30,0.30,0.29,0.31,0.31,0.31, 0.30,0.30,0.33,0.34,0.33,0.30,0.34,0.34,0.37,0.34, 0.35,0.37,0.37,0.35,0.40,0.36,0.38,0.38,0.41,0.36, 0.36,0.39,0.39,0.41,0.42,0.43,0.43,0.45,0.44,0.45, 0.45,0.43,0.45,0.47,0.43,0.48,0.47,0.47,0.48,0.51, 0.50,0.51,0.51,0.51,0.51,0.49,0.51,0.56,0.49,0.52, 0.55,0.50,0.55,0.57,0.54,0.50,0.55,0.56,0.56,0.57, 0.53,0.55,0.58,0.57,0.60,0.59,0.56,0.61,0.62,0.62, 0.60,0.56,0.63,0.60,0.60,0.59,0.65,0.67,0.69,0.61, 0.60,0.66,0.61,0.66,0.66,0.62,0.68,0.67,0.74,0.67, 0.70,0.66,0.64,0.70,0.71,0.71,0.68,0.70,0.74,0.73, 0.73,0.75,0.73,0.74,0.77,0.75,0.76,0.72,0.77,0.78, 0.76,0.75,0.75,0.78,0.82,0.79,0.84,0.77,0.78,0.80, 0.78,0.83,0.82,0.79,0.85,0.84,0.79,0.81,0.89,0.82, 0.81,0.81,0.88,0.84,0.84,0.89,0.87,0.87,0.81,0.88, 0.90,0.89,0.88,0.92,0.86,0.92,0.89,0.88,0.91,0.96, 0.90,0.94,0.90,0.91,0.90,1.00,0.96,0.93,0.92,1.00, 0.97,0.94,0.94,0.94,0.99,0.97,1.00,0.98,1.00,1.06, 0.99,1.05,0.98,1.01,1.00,1.02,1.05,1.06,1.00,1.00, 1.03,1.00,1.01,1.06,1.09,1.00,1.04,1.08,1.14,1.12, 1.04,1.13,1.09,1.10,1.15,1.09,1.06,1.15,1.08,1.07, 1.14,1.16,1.15,1.09,1.10,1.14,1.17,1.15,1.16,1.17, 1.17,1.14,1.23,1.19,1.19,1.24,1.23,1.16,1.11,1.17, 0.02,0.02,0.03,0.04,0.05,0.06,0.04,0.05,0.05,0.07, 0.04,0.06,0.06,0.07,0.07,0.08,0.08,0.07,0.07,0.07, 0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.10,0.11,0.12, 0.11,0.11,0.13,0.11,0.13,0.10,0.13,0.14,0.12,0.12, 0.16,0.16,0.15,0.14,0.16,0.15,0.16,0.16,0.16,0.18, 0.17,0.17,0.17,0.19,0.16,0.19,0.19,0.18,0.20,0.20, 0.21,0.19,0.22,0.21,0.24,0.21,0.21,0.19,0.20,0.23, 0.23,0.20,0.27,0.26,0.24,0.24,0.24,0.28,0.27,0.24, 0.27,0.28,0.28,0.27,0.28,0.28,0.27,0.25,0.29,0.28, 0.31,0.30,0.29,0.29,0.31,0.29,0.34,0.33,0.31,0.30, 0.30,0.31,0.32,0.31,0.37,0.31,0.37,0.35,0.34,0.37, 0.34,0.35,0.39,0.36,0.39,0.36,0.40,0.37,0.39,0.39, 0.36,0.35,0.41,0.36,0.37,0.42,0.41,0.40,0.37,0.40, 0.40,0.43,0.41,0.41,0.40,0.43,0.36,0.41,0.43,0.43, 0.45,0.41,0.41,0.44,0.46,0.46,0.44,0.45,0.41,0.46, 0.50,0.44,0.44,0.48,0.47,0.48,0.42,0.50,0.50,0.46, 0.49,0.51,0.51,0.51,0.53,0.51,0.52,0.49,0.48,0.54, 0.53,0.56,0.54,0.50,0.54,0.53,0.52,0.50,0.56,0.54, 0.56,0.52,0.55,0.54,0.58,0.58,0.54,0.60,0.54,0.58, 0.58,0.58,0.62,0.60,0.58,0.62,0.61,0.63,0.66,0.60, 0.60,0.62,0.60,0.63,0.63,0.65,0.64,0.66,0.67,0.60, 0.63,0.64,0.62,0.66,0.62,0.61,0.67,0.65,0.64,0.62, 0.64,0.65,0.66,0.65,0.67,0.71,0.70,0.71,0.71,0.68, 0.74,0.70,0.76,0.71,0.69,0.72,0.74,0.69,0.68,0.68, 0.76,0.73,0.70,0.73,0.73,0.77,0.72,0.74,0.73,0.77, 0.68,0.81,0.75,0.79,0.78,0.77,0.78,0.74,0.73,0.75, 0.84,0.76,0.75,0.79,0.80,0.79,0.79,0.82,0.82,0.80, 0.81,0.79,0.81,0.84,0.81,0.87,0.83,0.89,0.89,0.85, 0.88,0.85,0.84,0.86,0.82,0.84,0.79,0.85,0.91,0.90, 0.03,0.02,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04, 0.04,0.04,0.04,0.05,0.04,0.06,0.04,0.06,0.05,0.07, 0.07,0.06,0.07,0.09,0.07,0.08,0.09,0.08,0.10,0.07, 0.09,0.09,0.08,0.09,0.10,0.11,0.10,0.12,0.10,0.10, 0.10,0.11,0.12,0.12,0.09,0.12,0.11,0.11,0.12,0.12, 0.11,0.13,0.12,0.14,0.12,0.15,0.15,0.16,0.16,0.13, 0.13,0.15,0.15,0.17,0.15,0.18,0.16,0.15,0.20,0.17, 0.15,0.16,0.17,0.18,0.16,0.17,0.17,0.18,0.19,0.19, 0.19,0.19,0.17,0.16,0.20,0.21,0.17,0.18,0.21,0.22, 0.21,0.21,0.20,0.23,0.23,0.20,0.24,0.23,0.17,0.21, 0.21,0.23,0.24,0.23,0.23,0.26,0.24,0.24,0.24,0.24, 0.25,0.25,0.26,0.24,0.25,0.24,0.26,0.27,0.26,0.28, 0.25,0.24,0.28,0.30,0.30,0.28,0.27,0.32,0.32,0.31, 0.29,0.29,0.28,0.29,0.31,0.32,0.34,0.30,0.33,0.31, 0.31,0.32,0.32,0.30,0.33,0.31,0.28,0.33,0.32,0.33, 0.33,0.32,0.33,0.32,0.35,0.34,0.37,0.34,0.35,0.36, 0.33,0.34,0.39,0.37,0.37,0.36,0.36,0.36,0.35,0.37, 0.38,0.39,0.38,0.40,0.38,0.40,0.39,0.40,0.40,0.39, 0.35,0.41,0.37,0.44,0.41,0.41,0.45,0.38,0.39,0.40, 0.47,0.45,0.45,0.42,0.46,0.43,0.45,0.38,0.41,0.40, 0.48,0.42,0.44,0.44,0.47,0.44,0.46,0.47,0.44,0.48, 0.44,0.50,0.46,0.47,0.49,0.47,0.48,0.50,0.48,0.50, 0.48,0.50,0.49,0.49,0.48,0.50,0.52,0.51,0.49,0.50, 0.45,0.52,0.50,0.48,0.50,0.49,0.49,0.56,0.50,0.52, 0.54,0.52,0.49,0.54,0.55,0.54,0.57,0.54,0.55,0.54, 0.54,0.52,0.56,0.54,0.50,0.53,0.56,0.53,0.52,0.58, 0.55,0.56,0.61,0.57,0.60,0.58,0.59,0.56,0.54,0.58, 0.59,0.57,0.60,0.61,0.59,0.61,0.58,0.61,0.56,0.58, 0.59,0.58,0.65,0.58,0.64,0.64,0.61,0.61,0.67,0.63, 0.01,0.01,0.02,0.02,0.02,0.03,0.02,0.01,0.04,0.03, 0.03,0.04,0.03,0.04,0.03,0.04,0.05,0.05,0.04,0.04, 0.04,0.05,0.05,0.06,0.06,0.04,0.06,0.05,0.06,0.06, 0.05,0.06,0.07,0.08,0.06,0.06,0.07,0.08,0.07,0.05, 0.08,0.09,0.08,0.08,0.08,0.07,0.08,0.08,0.08,0.08, 0.10,0.10,0.09,0.07,0.10,0.09,0.10,0.10,0.11,0.12, 0.10,0.10,0.12,0.10,0.11,0.12,0.11,0.12,0.11,0.13, 0.12,0.13,0.12,0.14,0.13,0.14,0.12,0.14,0.14,0.14, 0.17,0.14,0.12,0.16,0.13,0.16,0.15,0.14,0.15,0.14, 0.15,0.16,0.16,0.15,0.15,0.16,0.16,0.17,0.17,0.16, 0.15,0.17,0.18,0.15,0.16,0.17,0.17,0.18,0.19,0.20, 0.19,0.19,0.17,0.18,0.22,0.20,0.18,0.17,0.18,0.22, 0.21,0.18,0.22,0.22,0.19,0.21,0.21,0.20,0.20,0.22, 0.21,0.24,0.21,0.23,0.23,0.23,0.22,0.23,0.25,0.21, 0.22,0.23,0.24,0.25,0.22,0.24,0.23,0.26,0.23,0.23, 0.23,0.24,0.24,0.26,0.24,0.23,0.29,0.27,0.22,0.27, 0.24,0.27,0.28,0.27,0.26,0.28,0.26,0.27,0.26,0.25, 0.25,0.28,0.28,0.27,0.26,0.28,0.28,0.26,0.31,0.26, 0.27,0.29,0.29,0.28,0.27,0.30,0.29,0.31,0.27,0.33, 0.30,0.25,0.31,0.31,0.29,0.34,0.34,0.30,0.30,0.29, 0.32,0.31,0.30,0.32,0.31,0.34,0.31,0.34,0.33,0.32, 0.32,0.32,0.32,0.36,0.36,0.35,0.35,0.35,0.35,0.37, 0.34,0.34,0.38,0.35,0.33,0.37,0.37,0.38,0.37,0.36, 0.37,0.33,0.38,0.37,0.35,0.36,0.38,0.36,0.35,0.36, 0.38,0.39,0.37,0.39,0.39,0.38,0.35,0.40,0.35,0.39, 0.37,0.38,0.40,0.39,0.43,0.35,0.40,0.42,0.38,0.40, 0.42,0.39,0.39,0.44,0.38,0.41,0.42,0.41,0.39,0.41, 0.42,0.42,0.44,0.43,0.46,0.42,0.42,0.38,0.42,0.46, 0.42,0.40,0.45,0.44,0.46,0.44,0.44,0.43,0.45,0.44, 0.01,0.01,0.01,0.02,0.01,0.01,0.02,0.02,0.02,0.02, 0.02,0.02,0.03,0.02,0.02,0.02,0.03,0.02,0.02,0.03, 0.03,0.04,0.04,0.05,0.04,0.04,0.04,0.04,0.04,0.06, 0.04,0.04,0.04,0.05,0.05,0.04,0.05,0.05,0.05,0.05, 0.04,0.08,0.06,0.07,0.06,0.05,0.05,0.06,0.07,0.07, 0.07,0.07,0.07,0.06,0.08,0.07,0.06,0.07,0.09,0.08, 0.06,0.08,0.07,0.07,0.10,0.09,0.09,0.11,0.09,0.08, 0.08,0.09,0.08,0.09,0.09,0.09,0.09,0.10,0.09,0.08, 0.12,0.10,0.08,0.11,0.10,0.13,0.10,0.09,0.11,0.10, 0.10,0.11,0.10,0.10,0.10,0.09,0.12,0.11,0.11,0.12, 0.13,0.12,0.11,0.11,0.12,0.12,0.13,0.12,0.13,0.14, 0.13,0.14,0.13,0.13,0.13,0.12,0.13,0.13,0.13,0.15, 0.14,0.13,0.14,0.16,0.15,0.14,0.14,0.14,0.15,0.15, 0.14,0.15,0.15,0.16,0.15,0.15,0.14,0.17,0.18,0.16, 0.18,0.17,0.17,0.14,0.19,0.16,0.17,0.17,0.18,0.21, 0.17,0.17,0.16,0.18,0.23,0.17,0.18,0.19,0.16,0.20, 0.18,0.17,0.18,0.20,0.18,0.19,0.22,0.17,0.19,0.19, 0.20,0.21,0.22,0.19,0.19,0.18,0.23,0.20,0.20,0.18, 0.20,0.20,0.21,0.21,0.21,0.24,0.20,0.22,0.22,0.23, 0.20,0.20,0.20,0.26,0.23,0.22,0.21,0.23,0.23,0.21, 0.25,0.23,0.25,0.24,0.24,0.23,0.24,0.25,0.23,0.22, 0.23,0.24,0.24,0.28,0.22,0.24,0.21,0.25,0.25,0.24, 0.25,0.23,0.25,0.25,0.22,0.23,0.28,0.29,0.25,0.28, 0.26,0.25,0.26,0.28,0.27,0.30,0.24,0.24,0.25,0.28, 0.27,0.28,0.26,0.29,0.28,0.31,0.28,0.26,0.29,0.25, 0.27,0.26,0.28,0.27,0.27,0.29,0.30,0.32,0.29,0.30, 0.34,0.28,0.31,0.28,0.31,0.29,0.30,0.32,0.30,0.31, 0.35,0.28,0.31,0.31,0.35,0.31,0.32,0.31,0.35,0.32, 0.31,0.32,0.36,0.31,0.32,0.32,0.30,0.30,0.31,0.30, 1.21,1.35,1.57,1.60,1.78,1.87,2.02,2.05,2.27,2.32, 2.50,2.53,2.65,2.85,2.90,3.05,3.14,3.26,3.35,3.43, 3.62,3.81,3.83,4.00,4.03,4.18,4.32,4.57,4.60,4.70, 4.79,4.91,4.95,5.21,5.36,5.53,5.58,5.67,5.82,5.78, 6.08,6.08,6.24,6.42,6.51,6.70,6.80,6.83,6.99,7.11, 7.27,7.34,7.49,7.68,7.60,7.95,7.94,8.09,8.12,8.31, 8.45,8.49,8.62,8.65,8.97,9.03,9.05,9.33,9.40,9.55, 9.74,9.77,9.86,10.04,10.12,10.18,10.34,10.40,10.85,10.82, 10.77,11.02,11.22,11.08,11.23,11.31,11.66,11.70,11.83,12.08, 12.05,12.17,12.27,12.50,12.58,12.69,12.72,12.86,12.90,13.18, 13.22,13.35,13.51,13.57,13.58,13.79,13.91,13.93,14.23,14.17, 14.43,14.53,14.87,14.59,14.89,14.98,15.11,15.30,15.37,15.42, 15.57,15.81,15.70,15.83,16.25,16.14,16.43,16.58,16.49,16.63, 16.75,17.10,17.09,17.11,17.47,17.35,17.62,17.70,17.91,17.80, 17.77,18.18,18.10,18.60,18.45,18.62,18.80,18.89,18.95,19.33, 19.07,19.04,19.52,19.57,19.61,19.78,19.98,20.25,20.20,20.39, 20.42,20.53,20.68,20.90,20.98,21.21,20.99,21.17,21.43,21.51, 21.61,21.95,22.01,21.96,22.19,22.09,22.23,22.46,22.60,22.57, 22.84,22.93,22.96,23.33,23.26,23.27,23.74,23.79,23.88,23.84, 24.15,24.14,24.24,24.40,24.63,24.68,25.01,24.97,24.93,25.07, 25.38,25.22,25.45,25.73,25.57,25.80,26.09,25.99,26.22,26.30, 26.53,26.46,26.68,26.63,27.13,26.95,27.28,27.25,27.25,27.57, 27.58,27.81,27.71,28.01,28.14,28.58,28.48,28.31,28.46,28.63, 28.63,29.00,29.23,29.44,29.55,29.63,29.48,29.61,29.83,29.68, 30.28,29.98,30.16,30.39,30.46,30.52,30.50,31.04,30.89,31.29, 31.28,31.53,31.45,31.84,32.04,31.99,32.10,32.10,32.41,32.31, 32.57,32.49,32.47,32.91,32.95,32.84,33.20,33.66,33.46,33.39, 33.55,33.87,33.81,33.99,34.38,34.09,34.11,34.22,34.46,34.85, 34.95,35.09,34.81,35.07,35.34,35.57,35.61,35.43,35.72,35.92, 0.89,0.98,1.08,1.16,1.29,1.38,1.40,1.50,1.62,1.64, 1.79,1.94,1.96,2.04,2.16,2.23,2.25,2.38,2.54,2.53, 2.59,2.71,2.74,2.87,3.08,3.01,3.14,3.37,3.33,3.53, 3.44,3.60,3.72,3.79,3.83,3.90,4.07,4.27,4.21,4.40, 4.45,4.58,4.53,4.64,4.75,4.87,4.86,5.01,5.15,5.21, 5.25,5.46,5.41,5.69,5.68,5.80,5.78,5.93,6.00,6.00, 6.18,6.31,6.34,6.34,6.57,6.64,6.63,6.83,6.88,6.85, 7.10,7.22,7.17,7.18,7.34,7.37,7.63,7.69,7.76,7.80, 7.99,7.97,8.09,8.24,8.23,8.48,8.41,8.65,8.64,8.71, 8.81,8.83,9.04,9.05,9.16,9.25,9.24,9.45,9.47,9.64, 9.63,9.83,9.99,9.88,9.94,10.11,10.26,10.10,10.41,10.48, 10.60,10.52,10.80,10.80,10.76,10.92,11.11,11.12,11.15,11.48, 11.47,11.41,11.52,11.73,11.84,11.99,11.91,11.97,12.12,12.21, 12.27,12.47,12.37,12.55,12.84,12.58,12.86,12.62,12.93,12.99, 13.11,13.22,13.20,13.34,13.61,13.61,13.77,13.72,13.86,13.86, 14.17,14.02,14.42,14.35,14.43,14.40,14.81,14.79,14.86,14.87, 14.88,14.87,15.18,15.26,15.32,15.17,15.43,15.65,15.60,15.63, 15.58,15.82,15.97,15.91,16.04,16.30,16.40,16.30,16.58,16.68, 16.64,16.92,17.06,16.81,17.20,17.38,17.07,17.45,17.42,17.63, 17.70,17.75,17.89,17.69,18.05,17.95,17.99,18.15,18.39,18.34, 18.60,18.45,18.65,18.80,19.02,18.96,19.08,19.08,18.91,19.28, 19.43,19.58,19.43,19.42,19.82,19.80,19.86,19.89,20.17,19.93, 20.47,20.38,20.26,20.31,20.44,20.51,20.62,20.89,20.80,21.13, 21.12,21.36,21.36,21.33,21.39,21.54,21.71,21.78,21.57,21.74, 21.87,22.20,22.27,22.20,22.02,22.40,22.50,22.38,22.76,22.48, 22.94,22.86,22.96,23.03,23.16,23.29,23.56,23.54,23.48,23.41, 23.45,23.85,23.68,24.00,23.66,24.18,24.07,24.51,24.32,24.55, 24.76,24.75,24.76,25.11,24.66,24.88,24.97,25.09,25.08,25.12, 25.31,25.54,25.58,25.82,25.82,25.61,26.06,25.81,26.15,26.15, 0.69,0.74,0.75,0.82,0.94,0.98,1.06,1.06,1.19,1.22, 1.29,1.38,1.44,1.46,1.50,1.59,1.65,1.70,1.84,1.81, 1.96,2.04,2.08,2.10,2.24,2.32,2.45,2.33,2.42,2.48, 2.59,2.67,2.72,2.77,2.82,2.93,2.95,3.05,3.15,3.15, 3.17,3.23,3.28,3.34,3.53,3.54,3.59,3.70,3.61,3.71, 4.00,3.94,3.99,4.00,4.08,4.14,4.24,4.33,4.33,4.42, 4.61,4.57,4.60,4.65,4.81,4.78,4.78,4.92,5.01,5.08, 5.17,5.15,5.13,5.19,5.43,5.60,5.50,5.61,5.53,5.80, 5.70,5.76,5.97,6.05,6.10,6.06,6.18,6.25,6.42,6.37, 6.49,6.49,6.57,6.72,6.62,6.83,6.74,6.83,6.96,7.00, 7.02,7.10,7.24,7.20,7.34,7.51,7.48,7.49,7.56,7.74, 7.67,7.84,7.74,7.98,8.03,8.01,8.15,8.17,8.00,8.19, 8.32,8.35,8.39,8.60,8.66,8.57,8.67,8.77,8.98,8.94, 8.96,8.85,9.07,9.13,9.13,9.39,9.41,9.51,9.50,9.38, 9.71,9.57,9.80,9.88,9.79,9.99,9.93,9.95,10.03,10.24, 10.33,10.24,10.38,10.49,10.36,10.48,10.67,10.75,10.78,10.82, 10.80,10.98,10.85,11.06,11.15,11.23,11.12,11.54,11.30,11.47, 11.47,11.48,11.99,11.75,11.60,11.93,11.88,12.00,12.11,12.19, 12.18,12.21,12.47,12.44,12.58,12.67,12.45,12.65,12.52,12.62, 12.84,12.90,12.80,13.15,13.15,13.35,13.27,13.13,13.41,13.28, 13.29,13.74,13.52,13.59,13.60,13.76,13.79,13.83,13.96,13.83, 14.09,14.12,14.25,14.44,14.20,14.39,14.59,14.47,14.47,14.64, 14.76,14.58,14.88,14.86,15.00,15.20,15.33,15.28,15.24,15.35, 15.44,15.46,15.62,15.39,15.74,15.70,15.77,15.64,15.47,15.74, 15.95,15.88,16.05,16.07,16.21,16.47,16.52,16.33,16.54,16.72, 16.51,16.64,16.75,16.88,17.08,17.03,16.94,17.08,17.32,17.26, 17.30,17.33,17.47,17.65,17.78,17.69,17.76,17.76,17.77,18.02, 17.99,17.81,18.05,18.13,18.28,18.23,18.39,18.19,18.13,18.55, 18.35,18.70,18.71,18.89,18.58,18.73,18.90,19.04,18.92,18.99, 0.45,0.54,0.57,0.60,0.68,0.67,0.77,0.85,0.89,0.92, 1.00,1.01,1.04,1.13,1.16,1.09,1.25,1.30,1.32,1.37, 1.47,1.45,1.50,1.55,1.59,1.60,1.67,1.79,1.73,1.85, 1.86,1.87,1.95,2.03,2.03,2.15,2.17,2.24,2.29,2.24, 2.39,2.37,2.49,2.55,2.44,2.65,2.65,2.65,2.69,2.77, 2.89,2.83,3.03,2.94,3.04,3.00,2.98,3.14,3.10,3.13, 3.28,3.32,3.25,3.43,3.46,3.54,3.63,3.62,3.59,3.75, 3.75,3.82,4.01,3.90,4.00,4.06,4.01,4.18,4.13,4.15, 4.27,4.19,4.33,4.38,4.44,4.43,4.56,4.58,4.58,4.72, 4.84,4.66,4.68,4.75,4.96,4.93,4.94,5.08,4.93,5.03, 5.08,5.12,5.22,5.38,5.29,5.43,5.43,5.55,5.58,5.63, 5.66,5.70,5.78,5.76,5.71,5.78,6.06,5.95,5.92,5.92, 6.13,6.26,6.15,6.14,6.42,6.48,6.34,6.39,6.54,6.53, 6.51,6.62,6.74,6.58,6.79,6.84,6.80,6.87,6.88,6.89, 6.89,7.12,7.18,7.13,7.27,7.34,7.27,7.27,7.51,7.41, 7.65,7.65,7.61,7.65,7.76,7.66,7.83,7.88,7.95,7.84, 8.04,7.84,8.04,8.13,8.15,8.13,8.35,8.29,8.26,8.32, 8.50,8.47,8.45,8.64,8.69,8.79,8.74,8.63,8.86,9.05, 9.04,8.93,9.05,9.05,9.03,9.10,9.17,9.39,9.36,9.21, 9.30,9.44,9.46,9.53,9.58,9.73,9.78,9.72,9.59,9.82, 9.75,9.92,9.99,9.93,10.13,10.14,10.43,10.10,10.23,10.28, 10.30,10.19,10.43,10.36,10.53,10.55,10.45,10.63,10.83,10.75, 10.59,10.76,10.72,10.89,11.06,10.86,11.18,11.21,11.11,11.27, 11.24,11.29,11.44,11.36,11.39,11.35,11.63,11.51,11.77,11.73, 11.78,11.81,11.78,12.00,11.80,11.91,11.82,12.11,12.10,12.16, 12.26,12.32,12.23,12.17,12.58,12.47,12.39,12.49,12.51,12.67, 12.66,12.53,12.82,12.82,12.93,12.77,13.01,12.93,13.19,12.94, 12.95,13.39,13.28,13.11,13.36,13.54,13.45,13.29,13.40,13.83, 13.48,13.54,13.48,13.81,13.81,13.68,13.94,13.88,13.90,14.03, 0.35,0.38,0.42,0.43,0.51,0.55,0.57,0.58,0.64,0.68, 0.73,0.73,0.81,0.75,0.82,0.84,0.92,0.85,1.00,1.04, 1.07,1.05,1.06,1.19,1.14,1.21,1.29,1.28,1.25,1.29, 1.39,1.39,1.40,1.48,1.52,1.54,1.53,1.64,1.60,1.75, 1.77,1.85,1.72,1.76,1.80,1.88,1.96,1.91,1.97,2.01, 2.07,2.07,2.17,2.16,2.27,2.22,2.29,2.34,2.36,2.37, 2.31,2.46,2.37,2.51,2.48,2.60,2.62,2.73,2.62,2.76, 2.61,2.78,2.84,2.85,2.88,2.93,2.96,2.96,3.00,2.99, 3.09,3.11,3.25,3.28,3.15,3.14,3.33,3.35,3.30,3.39, 3.48,3.46,3.46,3.56,3.55,3.62,3.46,3.73,3.77,3.76, 3.67,3.80,3.85,3.82,3.94,3.95,3.96,4.03,3.95,4.08, 4.09,4.19,4.24,4.12,4.18,4.32,4.26,4.40,4.43,4.45, 4.37,4.56,4.62,4.57,4.66,4.58,4.63,4.76,4.63,4.85, 4.75,4.74,4.84,4.76,4.96,4.88,4.80,5.07,5.06,4.94, 5.18,5.06,5.13,5.21,5.27,5.31,5.29,5.28,5.46,5.52, 5.44,5.45,5.46,5.45,5.57,5.64,5.73,5.57,5.82,5.78, 5.75,5.82,5.79,5.87,5.92,5.92,5.95,6.07,6.18,5.97, 6.22,6.16,6.32,6.13,6.22,6.43,6.31,6.29,6.59,6.59, 6.41,6.47,6.55,6.57,6.67,6.61,6.77,6.93,6.77,6.86, 6.85,6.86,6.88,6.94,6.92,7.07,7.08,6.98,7.07,7.09, 7.16,7.28,7.14,7.19,7.37,7.37,7.39,7.41,7.39,7.40, 7.50,7.60,7.56,7.61,7.82,7.56,7.58,7.78,7.70,7.78, 7.89,7.90,7.83,8.08,7.95,8.08,8.18,8.16,8.16,8.15, 8.31,8.32,8.43,8.31,8.21,8.41,8.36,8.57,8.47,8.53, 8.62,8.57,8.45,8.73,8.74,8.69,8.50,8.65,8.96,8.92, 8.80,8.63,8.78,9.00,9.00,9.05,9.10,9.17,9.12,9.04, 9.31,9.39,9.09,9.29,9.30,9.37,9.51,9.50,9.46,9.55, 9.54,9.53,9.62,9.80,9.79,9.83,9.72,9.74,9.84,10.07, 9.85,9.96,9.87,10.02,9.85,10.18,10.14,10.11,10.09,10.08, 0.27,0.27,0.26,0.32,0.35,0.40,0.42,0.44,0.43,0.47, 0.49,0.56,0.55,0.62,0.61,0.65,0.65,0.66,0.70,0.73, 0.74,0.78,0.81,0.84,0.85,0.88,0.90,0.96,0.97,1.02, 1.04,1.07,1.06,1.09,1.07,1.10,1.27,1.17,1.24,1.21, 1.26,1.28,1.30,1.33,1.36,1.42,1.29,1.43,1.42,1.51, 1.46,1.54,1.49,1.57,1.59,1.63,1.67,1.64,1.71,1.73, 1.73,1.75,1.86,1.80,1.87,1.93,1.91,1.93,1.98,2.01, 2.03,1.98,2.01,2.10,2.06,2.13,2.13,2.19,2.17,2.25, 2.26,2.25,2.31,2.39,2.35,2.38,2.40,2.46,2.39,2.37, 2.48,2.52,2.50,2.61,2.69,2.60,2.62,2.76,2.78,2.69, 2.74,2.84,2.79,2.84,2.77,2.87,2.91,2.97,3.03,2.96, 3.06,3.08,3.02,3.10,3.10,3.06,3.20,3.21,3.23,3.28, 3.23,3.24,3.37,3.29,3.39,3.45,3.34,3.45,3.37,3.44, 3.49,3.55,3.54,3.50,3.69,3.56,3.56,3.67,3.63,3.69, 3.65,3.77,3.81,3.84,3.83,3.88,4.01,4.01,3.99,3.99, 3.99,3.96,4.06,3.96,4.06,4.16,4.24,4.24,4.19,4.12, 4.21,4.24,4.36,4.27,4.26,4.32,4.32,4.35,4.50,4.49, 4.51,4.44,4.51,4.61,4.58,4.52,4.56,4.70,4.67,4.72, 4.77,4.70,4.76,4.75,4.87,4.95,4.87,4.90,4.96,4.92, 4.87,4.96,5.09,5.09,5.17,5.01,5.07,5.14,5.25,5.13, 5.22,5.27,5.25,5.18,5.33,5.30,5.32,5.41,5.46,5.52, 5.57,5.67,5.45,5.55,5.53,5.58,5.58,5.59,5.66,5.69, 5.79,5.77,5.89,5.94,5.78,5.87,5.91,5.89,6.04,5.88, 5.91,6.03,5.94,6.15,6.09,6.14,6.16,6.17,6.17,6.20, 6.23,6.21,6.10,6.23,6.18,6.44,6.39,6.41,6.37,6.47, 6.37,6.56,6.61,6.41,6.55,6.65,6.63,6.68,6.71,6.75, 6.75,6.71,6.67,6.83,6.75,6.71,6.88,6.79,6.88,6.78, 7.04,7.07,7.00,7.16,7.22,7.14,7.20,6.98,7.26,7.23, 7.19,7.26,7.35,7.42,7.38,7.31,7.30,7.52,7.39,7.50, 0.18,0.22,0.24,0.24,0.23,0.29,0.29,0.29,0.37,0.33, 0.36,0.40,0.42,0.47,0.43,0.50,0.50,0.47,0.55,0.52, 0.61,0.60,0.56,0.59,0.61,0.63,0.69,0.65,0.71,0.66, 0.71,0.73,0.82,0.79,0.85,0.86,0.79,0.83,0.88,0.89, 0.91,0.89,0.96,0.87,0.99,1.04,1.01,1.04,1.04,1.06, 1.07,1.12,1.14,1.15,1.17,1.21,1.19,1.22,1.24,1.36, 1.27,1.29,1.32,1.28,1.34,1.42,1.42,1.44,1.38,1.38, 1.45,1.40,1.45,1.48,1.53,1.45,1.59,1.64,1.66,1.63, 1.67,1.66,1.66,1.76,1.72,1.75,1.76,1.74,1.77,1.80, 1.84,1.89,1.73,1.89,1.90,1.86,1.96,1.97,1.92,1.96, 2.02,2.04,2.07,2.04,2.06,2.13,2.10,2.13,2.11,2.29, 2.15,2.23,2.28,2.32,2.26,2.29,2.31,2.27,2.31,2.31, 2.41,2.33,2.37,2.33,2.45,2.56,2.57,2.60,2.52,2.48, 2.52,2.61,2.56,2.67,2.63,2.65,2.64,2.69,2.65,2.74, 2.69,2.72,2.63,2.75,2.81,2.83,2.86,2.86,2.91,2.94, 2.93,2.97,2.93,3.00,3.00,2.96,3.02,3.03,3.09,3.17, 3.12,3.11,3.14,3.15,3.24,3.27,3.16,3.19,3.17,3.19, 3.41,3.32,3.33,3.24,3.28,3.26,3.40,3.38,3.48,3.46, 3.40,3.45,3.42,3.47,3.47,3.62,3.54,3.58,3.57,3.58, 3.65,3.58,3.66,3.79,3.72,3.72,3.84,3.74,3.85,3.84, 3.75,3.83,3.88,3.91,3.94,3.98,3.88,3.92,3.90,3.96, 4.01,4.06,4.05,4.13,4.03,4.04,4.16,4.11,4.15,4.16, 4.15,4.21,4.27,4.28,4.30,4.30,4.29,4.25,4.37,4.27, 4.33,4.29,4.37,4.44,4.53,4.43,4.41,4.40,4.57,4.46, 4.53,4.56,4.73,4.61,4.63,4.55,4.79,4.73,4.57,4.69, 4.88,4.76,4.81,4.67,4.82,4.64,4.92,4.79,4.92,4.88, 4.98,4.78,4.89,5.13,4.90,5.08,4.92,5.04,4.94,5.10, 5.09,5.07,5.08,5.28,5.10,5.14,5.31,5.20,5.17,5.27, 5.26,5.23,5.30,5.30,5.39,5.44,5.38,5.43,5.32,5.34, 0.14,0.14,0.16,0.17,0.20,0.22,0.21,0.23,0.22,0.25, 0.27,0.28,0.29,0.29,0.33,0.34,0.33,0.36,0.33,0.42, 0.41,0.40,0.42,0.46,0.45,0.47,0.48,0.53,0.52,0.49, 0.52,0.55,0.54,0.56,0.58,0.60,0.65,0.59,0.61,0.71, 0.68,0.69,0.72,0.73,0.72,0.70,0.70,0.80,0.81,0.80, 0.80,0.82,0.84,0.87,0.85,0.91,0.84,0.86,0.90,0.90, 0.94,0.92,1.00,1.03,0.99,0.99,1.04,1.06,1.02,1.07, 1.12,1.08,1.07,1.12,1.10,1.06,1.16,1.09,1.19,1.24, 1.24,1.23,1.22,1.21,1.22,1.25,1.34,1.26,1.33,1.34, 1.36,1.34,1.35,1.34,1.35,1.40,1.45,1.46,1.55,1.41, 1.45,1.43,1.53,1.48,1.52,1.55,1.53,1.56,1.51,1.58, 1.59,1.59,1.63,1.67,1.68,1.71,1.57,1.70,1.68,1.73, 1.80,1.73,1.80,1.76,1.79,1.78,1.83,1.89,1.83,1.81, 1.86,1.83,1.89,1.99,1.95,2.04,1.96,1.95,1.95,2.02, 1.95,2.11,1.99,2.02,2.06,2.02,2.14,2.10,2.13,2.15, 2.18,2.20,2.16,2.15,2.18,2.23,2.18,2.19,2.28,2.29, 2.28,2.24,2.30,2.30,2.34,2.38,2.37,2.40,2.48,2.31, 2.43,2.48,2.48,2.37,2.41,2.47,2.44,2.49,2.52,2.52, 2.60,2.56,2.59,2.52,2.60,2.54,2.65,2.60,2.60,2.72, 2.58,2.61,2.76,2.73,2.73,2.65,2.70,2.84,2.71,2.75, 2.82,2.80,2.73,2.69,2.85,2.96,2.82,2.87,2.89,2.92, 2.88,2.91,2.96,2.98,2.92,2.96,3.09,2.96,3.00,3.02, 3.08,3.08,3.19,3.12,3.09,3.06,3.10,3.21,3.13,3.22, 3.22,3.19,3.12,3.29,3.31,3.24,3.30,3.33,3.33,3.23, 3.38,3.20,3.38,3.32,3.54,3.38,3.38,3.42,3.40,3.39, 3.54,3.46,3.50,3.49,3.47,3.44,3.57,3.55,3.52,3.47, 3.60,3.63,3.54,3.65,3.60,3.67,3.65,3.55,3.75,3.60, 3.75,3.80,3.70,3.86,3.74,3.71,3.77,3.85,3.87,3.75, 3.83,3.77,3.90,3.94,3.80,3.85,3.98,4.00,3.95,3.93, 0.09,0.10,0.11,0.15,0.12,0.14,0.15,0.17,0.16,0.21, 0.19,0.23,0.19,0.24,0.23,0.26,0.26,0.27,0.29,0.28, 0.31,0.29,0.34,0.30,0.29,0.35,0.36,0.35,0.39,0.36, 0.38,0.39,0.43,0.41,0.44,0.42,0.44,0.47,0.47,0.47, 0.48,0.47,0.48,0.51,0.52,0.54,0.55,0.60,0.60,0.58, 0.56,0.58,0.61,0.59,0.59,0.67,0.65,0.68,0.65,0.69, 0.70,0.69,0.70,0.74,0.68,0.74,0.77,0.76,0.78,0.76, 0.75,0.84,0.77,0.82,0.82,0.79,0.83,0.84,0.88,0.91, 0.83,0.85,0.89,0.95,0.93,0.92,0.95,0.92,0.92,0.96, 0.95,1.02,1.00,0.95,1.00,1.03,1.01,1.05,1.09,1.04, 1.09,1.14,1.08,1.07,1.14,1.11,1.16,1.20,1.14,1.16, 1.15,1.17,1.19,1.23,1.18,1.19,1.20,1.28,1.17,1.20, 1.27,1.29,1.27,1.25,1.33,1.32,1.33,1.31,1.35,1.34, 1.37,1.36,1.40,1.37,1.42,1.45,1.42,1.36,1.45,1.42, 1.51,1.46,1.47,1.50,1.44,1.50,1.50,1.55,1.50,1.53, 1.53,1.54,1.55,1.66,1.64,1.60,1.65,1.67,1.59,1.58, 1.62,1.68,1.69,1.60,1.69,1.75,1.68,1.70,1.80,1.72, 1.74,1.75,1.77,1.68,1.89,1.80,1.74,1.90,1.82,1.89, 1.90,1.80,1.86,1.80,1.85,1.94,1.80,1.96,1.90,1.95, 1.97,1.97,1.92,1.96,2.01,2.03,2.02,2.02,1.97,2.04, 2.05,2.09,2.08,2.10,2.05,2.08,2.02,2.12,2.06,2.15, 2.18,2.10,2.18,2.18,2.22,2.20,2.24,2.13,2.30,2.34, 2.28,2.19,2.23,2.22,2.29,2.27,2.33,2.27,2.28,2.33, 2.34,2.28,2.37,2.37,2.46,2.46,2.46,2.35,2.39,2.40, 2.44,2.46,2.47,2.56,2.49,2.46,2.44,2.43,2.52,2.49, 2.48,2.55,2.52,2.54,2.63,2.60,2.55,2.57,2.63,2.59, 2.57,2.69,2.57,2.71,2.58,2.76,2.74,2.82,2.71,2.71, 2.62,2.63,2.73,2.65,2.80,2.78,2.81,2.81,2.75,2.81, 2.75,2.77,2.89,2.86,2.87,2.92,2.86,2.81,2.85,2.88, 0.07,0.09,0.09,0.10,0.09,0.10,0.11,0.11,0.14,0.14, 0.15,0.13,0.16,0.15,0.19,0.19,0.20,0.18,0.22,0.19, 0.18,0.20,0.24,0.22,0.24,0.26,0.21,0.25,0.28,0.28, 0.27,0.29,0.29,0.33,0.31,0.31,0.34,0.35,0.34,0.34, 0.34,0.38,0.38,0.37,0.40,0.37,0.39,0.39,0.42,0.43, 0.42,0.44,0.44,0.43,0.45,0.48,0.45,0.47,0.46,0.52, 0.48,0.53,0.51,0.47,0.52,0.53,0.54,0.53,0.55,0.55, 0.51,0.57,0.57,0.62,0.60,0.62,0.63,0.61,0.63,0.66, 0.66,0.65,0.66,0.68,0.66,0.70,0.76,0.64,0.70,0.69, 0.69,0.70,0.74,0.71,0.75,0.74,0.75,0.78,0.73,0.76, 0.81,0.82,0.82,0.84,0.80,0.77,0.88,0.87,0.84,0.86, 0.88,0.79,0.90,0.89,0.89,0.82,0.88,0.89,0.90,0.91, 0.88,0.93,0.97,1.00,0.95,0.97,0.94,0.92,1.00,1.05, 1.00,0.97,1.02,1.02,1.01,1.04,1.02,0.99,1.06,1.07, 1.06,1.07,1.09,1.11,1.03,1.12,1.12,1.14,1.06,1.17, 1.13,1.13,1.15,1.22,1.18,1.10,1.20,1.19,1.17,1.12, 1.21,1.20,1.19,1.19,1.19,1.20,1.31,1.33,1.24,1.22, 1.33,1.20,1.22,1.26,1.40,1.28,1.33,1.36,1.30,1.34, 1.37,1.25,1.39,1.39,1.39,1.37,1.38,1.39,1.41,1.42, 1.34,1.49,1.40,1.45,1.46,1.37,1.51,1.48,1.48,1.53, 1.48,1.47,1.58,1.45,1.54,1.53,1.52,1.58,1.56,1.60, 1.51,1.56,1.60,1.50,1.59,1.54,1.56,1.62,1.58,1.65, 1.62,1.59,1.60,1.63,1.63,1.63,1.66,1.72,1.68,1.71, 1.70,1.69,1.74,1.74,1.75,1.70,1.72,1.71,1.76,1.72, 1.80,1.74,1.85,1.79,1.81,1.79,1.80,1.77,1.87,1.85, 1.84,1.84,1.83,1.83,1.86,1.73,1.98,1.87,1.90,1.85, 1.86,1.90,1.84,1.88,1.94,1.93,1.96,1.89,1.95,1.99, 2.03,1.98,1.98,2.06,1.99,1.99,2.08,2.02,2.00,2.03, 2.07,1.98,2.04,2.08,2.05,2.06,2.06,2.03,2.12,2.23, 0.05,0.06,0.06,0.06,0.07,0.07,0.10,0.09,0.07,0.09, 0.09,0.11,0.09,0.12,0.14,0.15,0.14,0.14,0.14,0.16, 0.16,0.18,0.19,0.15,0.18,0.18,0.19,0.18,0.23,0.20, 0.21,0.20,0.23,0.23,0.23,0.22,0.25,0.24,0.26,0.22, 0.24,0.29,0.27,0.29,0.26,0.28,0.27,0.30,0.31,0.29, 0.30,0.34,0.34,0.33,0.28,0.37,0.33,0.36,0.34,0.36, 0.38,0.36,0.34,0.36,0.36,0.36,0.42,0.41,0.45,0.38, 0.41,0.40,0.41,0.42,0.46,0.43,0.43,0.47,0.45,0.47, 0.47,0.47,0.46,0.47,0.51,0.48,0.49,0.47,0.50,0.50, 0.51,0.54,0.50,0.51,0.51,0.56,0.56,0.55,0.60,0.55, 0.60,0.57,0.59,0.62,0.61,0.58,0.62,0.61,0.61,0.59, 0.61,0.62,0.62,0.64,0.69,0.65,0.66,0.64,0.64,0.67, 0.74,0.68,0.69,0.66,0.70,0.70,0.66,0.74,0.74,0.75, 0.78,0.76,0.77,0.71,0.73,0.72,0.81,0.78,0.83,0.74, 0.83,0.79,0.78,0.82,0.78,0.79,0.80,0.79,0.83,0.88, 0.85,0.83,0.85,0.78,0.86,0.87,0.89,0.82,0.91,0.93, 0.90,0.83,0.86,0.92,0.88,0.96,0.89,0.94,0.91,0.92, 0.96,0.92,0.91,0.94,0.93,1.01,0.98,0.95,0.99,0.96, 1.01,0.96,0.94,1.07,0.98,1.00,0.98,1.08,1.00,1.04, 1.03,1.07,1.03,1.06,1.07,1.05,1.08,1.08,1.06,1.10, 1.07,1.08,1.09,1.12,1.14,1.12,1.15,1.13,1.10,1.15, 1.09,1.18,1.19,1.11,1.14,1.18,1.16,1.15,1.13,1.15, 1.14,1.18,1.21,1.18,1.21,1.21,1.33,1.22,1.25,1.24, 1.29,1.18,1.25,1.25,1.26,1.27,1.22,1.32,1.28,1.29, 1.33,1.33,1.27,1.30,1.33,1.29,1.32,1.33,1.36,1.40, 1.38,1.31,1.37,1.29,1.32,1.33,1.35,1.41,1.39,1.39, 1.34,1.41,1.43,1.39,1.42,1.43,1.34,1.39,1.40,1.48, 1.42,1.45,1.45,1.43,1.44,1.49,1.54,1.49,1.46,1.49, 1.47,1.51,1.55,1.46,1.44,1.55,1.53,1.53,1.53,1.57, 0.04,0.04,0.06,0.04,0.06,0.05,0.07,0.05,0.04,0.08, 0.08,0.09,0.08,0.09,0.09,0.10,0.09,0.11,0.10,0.14, 0.12,0.12,0.12,0.12,0.12,0.14,0.15,0.12,0.14,0.14, 0.15,0.17,0.15,0.17,0.13,0.17,0.16,0.17,0.17,0.18, 0.18,0.20,0.19,0.20,0.20,0.20,0.20,0.23,0.24,0.23, 0.20,0.23,0.23,0.22,0.23,0.26,0.25,0.24,0.26,0.27, 0.27,0.28,0.28,0.26,0.28,0.29,0.27,0.29,0.29,0.30, 0.29,0.31,0.31,0.34,0.31,0.32,0.33,0.33,0.36,0.36, 0.30,0.34,0.34,0.36,0.33,0.36,0.38,0.34,0.34,0.40, 0.37,0.36,0.41,0.38,0.44,0.37,0.42,0.42,0.39,0.42, 0.38,0.42,0.45,0.44,0.42,0.46,0.45,0.44,0.43,0.47, 0.42,0.46,0.43,0.47,0.47,0.46,0.49,0.46,0.50,0.46, 0.45,0.51,0.50,0.50,0.51,0.52,0.51,0.52,0.56,0.53, 0.54,0.54,0.51,0.52,0.54,0.53,0.53,0.58,0.56,0.60, 0.55,0.59,0.60,0.56,0.57,0.64,0.56,0.59,0.64,0.62, 0.61,0.58,0.58,0.58,0.61,0.65,0.59,0.60,0.62,0.63, 0.66,0.66,0.67,0.64,0.66,0.65,0.67,0.67,0.64,0.69, 0.66,0.68,0.69,0.68,0.73,0.66,0.69,0.69,0.68,0.72, 0.70,0.73,0.73,0.69,0.73,0.75,0.73,0.75,0.79,0.74, 0.73,0.77,0.76,0.77,0.75,0.81,0.81,0.76,0.74,0.76, 0.79,0.79,0.79,0.83,0.86,0.85,0.85,0.83,0.87,0.80, 0.82,0.86,0.83,0.83,0.90,0.84,0.85,0.84,0.81,0.91, 0.84,0.87,0.94,0.82,0.92,0.84,0.87,0.86,0.93,0.82, 0.92,0.92,0.84,0.94,0.94,0.89,0.90,0.93,0.93,0.91, 0.87,0.93,0.94,0.89,0.95,0.92,0.94,0.92,0.97,0.92, 0.96,1.03,1.02,1.03,0.98,1.06,1.03,0.95,0.99,0.97, 1.02,0.98,1.01,1.01,1.05,1.05,1.05,1.03,1.00,1.01, 1.01,1.09,1.03,1.11,1.08,1.07,1.06,1.07,1.12,1.04, 1.06,1.11,1.15,1.10,1.17,1.13,1.06,1.13,1.16,1.15, 0.03,0.02,0.03,0.02,0.03,0.04,0.05,0.04,0.04,0.05, 0.06,0.05,0.07,0.07,0.06,0.07,0.06,0.08,0.07,0.08, 0.07,0.08,0.09,0.08,0.09,0.08,0.10,0.10,0.11,0.12, 0.12,0.12,0.10,0.12,0.11,0.12,0.12,0.16,0.14,0.14, 0.14,0.14,0.11,0.14,0.13,0.13,0.14,0.16,0.16,0.16, 0.17,0.15,0.17,0.17,0.18,0.17,0.19,0.20,0.18,0.21, 0.18,0.22,0.22,0.21,0.20,0.20,0.22,0.21,0.23,0.21, 0.24,0.21,0.22,0.21,0.22,0.24,0.23,0.24,0.26,0.25, 0.28,0.25,0.24,0.27,0.26,0.31,0.23,0.25,0.27,0.27, 0.28,0.28,0.27,0.28,0.27,0.30,0.28,0.27,0.33,0.28, 0.30,0.31,0.31,0.30,0.32,0.33,0.32,0.30,0.31,0.32, 0.30,0.29,0.34,0.33,0.36,0.36,0.33,0.35,0.33,0.35, 0.39,0.38,0.38,0.35,0.38,0.37,0.39,0.37,0.37,0.40, 0.37,0.42,0.38,0.41,0.39,0.39,0.39,0.44,0.42,0.38, 0.41,0.43,0.45,0.45,0.42,0.44,0.43,0.45,0.46,0.49, 0.45,0.46,0.43,0.49,0.44,0.45,0.47,0.43,0.45,0.49, 0.47,0.48,0.51,0.44,0.47,0.46,0.46,0.50,0.50,0.53, 0.48,0.49,0.54,0.49,0.48,0.48,0.51,0.52,0.52,0.55, 0.48,0.54,0.55,0.53,0.51,0.52,0.55,0.54,0.57,0.57, 0.53,0.53,0.54,0.55,0.61,0.55,0.57,0.53,0.57,0.58, 0.60,0.56,0.59,0.61,0.58,0.58,0.59,0.59,0.64,0.57, 0.63,0.64,0.63,0.63,0.62,0.61,0.69,0.61,0.62,0.63, 0.62,0.62,0.64,0.64,0.62,0.63,0.66,0.62,0.69,0.65, 0.64,0.69,0.66,0.69,0.63,0.64,0.67,0.68,0.70,0.65, 0.72,0.70,0.65,0.71,0.70,0.72,0.72,0.72,0.73,0.69, 0.72,0.68,0.69,0.78,0.72,0.73,0.73,0.72,0.73,0.73, 0.76,0.73,0.77,0.76,0.73,0.73,0.73,0.76,0.74,0.78, 0.81,0.81,0.74,0.80,0.78,0.78,0.85,0.81,0.82,0.75, 0.74,0.85,0.78,0.80,0.87,0.81,0.82,0.79,0.82,0.81, 0.01,0.02,0.03,0.03,0.02,0.03,0.03,0.04,0.04,0.03, 0.04,0.04,0.04,0.06,0.06,0.04,0.06,0.05,0.06,0.05, 0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.06,0.08, 0.09,0.08,0.08,0.08,0.09,0.08,0.10,0.09,0.10,0.08, 0.10,0.11,0.10,0.10,0.12,0.09,0.11,0.11,0.11,0.10, 0.11,0.11,0.13,0.13,0.12,0.12,0.13,0.13,0.15,0.12, 0.13,0.13,0.17,0.15,0.15,0.16,0.16,0.16,0.16,0.17, 0.15,0.15,0.15,0.17,0.19,0.16,0.17,0.16,0.16,0.18, 0.19,0.17,0.18,0.18,0.18,0.20,0.19,0.17,0.19,0.21, 0.18,0.20,0.19,0.22,0.21,0.20,0.23,0.23,0.21,0.22, 0.22,0.23,0.21,0.24,0.25,0.23,0.24,0.23,0.23,0.23, 0.25,0.23,0.21,0.22,0.25,0.28,0.27,0.22,0.28,0.24, 0.23,0.24,0.24,0.26,0.26,0.27,0.29,0.29,0.27,0.28, 0.27,0.28,0.29,0.28,0.29,0.31,0.31,0.31,0.31,0.30, 0.33,0.30,0.32,0.31,0.28,0.32,0.32,0.32,0.34,0.33, 0.31,0.33,0.33,0.33,0.37,0.33,0.33,0.35,0.35,0.34, 0.35,0.35,0.38,0.36,0.34,0.34,0.32,0.35,0.34,0.36, 0.34,0.32,0.38,0.39,0.36,0.37,0.40,0.35,0.37,0.41, 0.38,0.39,0.36,0.41,0.42,0.40,0.39,0.42,0.41,0.42, 0.37,0.42,0.41,0.42,0.44,0.43,0.41,0.41,0.41,0.43, 0.41,0.42,0.42,0.45,0.39,0.43,0.43,0.44,0.45,0.43, 0.45,0.48,0.45,0.43,0.44,0.48,0.44,0.48,0.45,0.49, 0.45,0.46,0.50,0.50,0.46,0.48,0.51,0.48,0.50,0.50, 0.46,0.47,0.47,0.46,0.50,0.47,0.47,0.46,0.45,0.52, 0.52,0.51,0.49,0.47,0.51,0.50,0.51,0.54,0.52,0.53, 0.49,0.51,0.50,0.51,0.57,0.51,0.55,0.54,0.57,0.56, 0.52,0.55,0.53,0.55,0.52,0.52,0.57,0.58,0.55,0.57, 0.54,0.57,0.59,0.60,0.58,0.56,0.56,0.62,0.56,0.55, 0.58,0.61,0.59,0.62,0.59,0.58,0.57,0.60,0.60,0.60, 0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.03,0.03,0.04, 0.04,0.04,0.03,0.02,0.03,0.04,0.03,0.04,0.05,0.04, 0.04,0.05,0.04,0.05,0.04,0.05,0.07,0.05,0.06,0.05, 0.07,0.07,0.06,0.07,0.07,0.07,0.07,0.06,0.07,0.09, 0.06,0.07,0.09,0.07,0.08,0.09,0.09,0.09,0.08,0.08, 0.09,0.09,0.09,0.10,0.10,0.09,0.08,0.11,0.10,0.10, 0.10,0.11,0.11,0.09,0.13,0.10,0.10,0.11,0.09,0.13, 0.12,0.10,0.11,0.13,0.12,0.13,0.10,0.11,0.13,0.13, 0.14,0.15,0.13,0.14,0.14,0.15,0.15,0.13,0.15,0.15, 0.14,0.17,0.15,0.13,0.16,0.14,0.15,0.14,0.16,0.16, 0.15,0.15,0.17,0.16,0.15,0.18,0.17,0.17,0.16,0.15, 0.19,0.16,0.20,0.19,0.19,0.19,0.18,0.20,0.21,0.18, 0.19,0.21,0.19,0.21,0.18,0.20,0.18,0.21,0.18,0.21, 0.22,0.21,0.21,0.23,0.20,0.20,0.24,0.22,0.22,0.23, 0.18,0.18,0.21,0.22,0.21,0.23,0.22,0.25,0.23,0.23, 0.26,0.27,0.24,0.24,0.23,0.26,0.25,0.25,0.29,0.22, 0.26,0.26,0.26,0.24,0.26,0.23,0.24,0.25,0.27,0.26, 0.24,0.25,0.28,0.28,0.24,0.28,0.27,0.27,0.29,0.26, 0.26,0.29,0.28,0.27,0.30,0.29,0.30,0.31,0.29,0.29, 0.28,0.28,0.30,0.32,0.32,0.33,0.31,0.29,0.32,0.30, 0.28,0.30,0.34,0.35,0.28,0.32,0.30,0.33,0.32,0.32, 0.34,0.33,0.36,0.32,0.30,0.34,0.35,0.33,0.36,0.30, 0.32,0.35,0.34,0.37,0.36,0.33,0.33,0.33,0.36,0.34, 0.34,0.37,0.34,0.38,0.38,0.35,0.38,0.38,0.37,0.39, 0.32,0.36,0.37,0.36,0.36,0.35,0.39,0.35,0.36,0.37, 0.41,0.37,0.37,0.38,0.36,0.39,0.39,0.40,0.42,0.42, 0.41,0.41,0.42,0.39,0.41,0.41,0.36,0.41,0.41,0.41, 0.43,0.42,0.39,0.41,0.44,0.39,0.44,0.42,0.41,0.42, 0.45,0.45,0.44,0.41,0.42,0.47,0.44,0.44,0.45,0.46, 1.37,1.51,1.64,1.73,1.99,2.05,2.18,2.30,2.47,2.55, 2.71,2.79,3.08,3.14,3.38,3.43,3.54,3.71,3.85,3.92, 4.12,4.19,4.36,4.49,4.57,4.81,4.92,4.98,5.22,5.33, 5.42,5.58,5.63,5.84,5.89,6.03,6.15,6.35,6.50,6.59, 6.72,6.88,6.94,7.13,7.22,7.48,7.44,7.70,7.77,8.01, 8.06,8.35,8.36,8.53,8.60,8.86,8.73,9.02,9.15,9.18, 9.54,9.40,9.63,9.86,10.13,9.97,10.37,10.43,10.59,10.66, 10.64,10.79,11.13,11.11,11.33,11.51,11.49,11.74,11.86,11.98, 12.10,12.04,12.52,12.70,12.51,12.75,12.93,12.95,13.13,13.27, 13.54,13.72,13.70,13.86,14.09,14.32,14.07,14.25,14.53,14.71, 14.84,14.97,15.23,15.19,15.28,15.62,15.71,15.93,15.88,16.05, 16.13,16.28,16.24,16.61,16.57,16.96,16.73,17.00,17.18,17.33, 17.32,17.55,17.74,17.90,18.03,18.12,18.44,18.49,18.66,18.79, 18.59,19.02,19.02,19.14,19.40,19.74,19.78,19.80,19.90,20.05, 20.12,20.39,20.47,20.65,20.82,20.78,21.00,21.00,21.23,21.39, 21.37,21.50,21.65,21.80,21.87,22.29,22.43,22.37,22.57,22.49, 22.87,23.00,22.97,23.26,23.49,23.52,23.80,23.82,23.86,24.04, 24.29,24.49,24.34,24.50,25.08,24.77,24.95,25.08,25.21,25.53, 25.34,25.44,25.89,25.92,26.33,26.19,26.39,26.47,26.54,26.87, 26.81,26.97,27.26,27.43,27.49,27.71,27.71,28.04,27.84,28.29, 28.06,28.26,28.24,28.84,28.62,29.02,29.02,29.06,29.23,29.48, 29.60,29.58,29.84,29.70,30.10,30.25,30.52,30.33,30.34,30.88, 30.90,31.01,30.88,31.23,31.48,31.70,31.91,32.01,32.05,31.85, 32.40,32.38,32.84,32.65,32.67,33.09,33.25,33.08,33.26,33.56, 33.54,33.75,33.81,33.65,34.18,34.30,34.31,34.54,34.48,34.62, 34.89,35.04,34.95,35.16,35.26,35.60,35.56,35.84,35.94,36.12, 36.26,36.48,36.26,36.97,36.77,37.03,37.05,37.11,37.52,37.39, 37.73,37.51,37.80,37.94,38.18,38.06,38.51,38.74,38.48,38.96, 39.04,38.81,39.19,39.16,39.59,39.30,39.80,39.84,39.87,39.81, 1.02,1.10,1.20,1.34,1.51,1.52,1.70,1.78,1.73,1.90, 2.05,1.99,2.22,2.27,2.49,2.54,2.61,2.74,2.78,2.92, 3.11,3.13,3.13,3.31,3.37,3.55,3.62,3.72,3.85,3.85, 4.06,4.13,4.18,4.37,4.32,4.53,4.63,4.71,4.82,4.85, 4.94,5.07,5.22,5.33,5.44,5.61,5.64,5.78,5.71,5.85, 5.99,6.08,6.24,6.27,6.47,6.51,6.66,6.66,6.70,6.85, 6.83,7.09,7.26,7.23,7.50,7.45,7.46,7.71,7.68,7.84, 8.07,8.03,8.16,8.41,8.41,8.49,8.59,8.60,8.80,8.80, 9.00,9.11,9.26,9.21,9.42,9.46,9.48,9.71,9.94,9.72, 9.98,9.99,10.07,10.35,10.27,10.41,10.49,10.53,10.86,10.79, 10.98,11.15,11.06,11.17,11.40,11.46,11.37,11.75,11.70,11.88, 12.01,12.01,12.18,12.02,12.48,12.61,12.42,12.53,13.07,13.03, 13.01,13.12,13.12,13.24,13.30,13.40,13.43,13.51,13.88,13.88, 14.01,14.06,14.29,14.09,14.32,14.33,14.60,14.57,14.44,14.83, 14.95,15.01,15.37,15.20,15.10,15.42,15.62,15.47,15.83,15.95, 16.02,15.93,16.26,16.15,16.50,16.50,16.52,16.75,16.74,16.80, 16.94,17.06,16.91,17.29,17.26,17.32,17.55,17.63,17.62,17.77, 18.01,18.13,18.03,18.39,18.49,18.48,18.38,18.65,18.54,18.86, 18.81,19.10,19.12,19.06,19.49,19.27,19.70,19.54,19.73,19.55, 19.81,19.97,19.94,20.38,20.42,20.42,20.56,20.53,20.80,20.53, 20.98,21.12,21.11,21.22,21.25,21.31,21.47,21.53,21.60,21.77, 21.90,21.78,22.17,22.48,22.15,22.46,22.42,22.71,22.53,22.51, 22.80,22.93,23.02,23.04,23.15,23.39,23.45,23.48,23.66,23.68, 23.62,23.93,23.93,24.19,24.36,24.29,24.56,24.72,24.55,24.77, 24.92,25.03,24.97,25.18,25.32,25.24,25.24,25.56,25.52,25.70, 25.93,25.74,26.05,26.14,26.24,26.31,26.26,26.51,26.44,26.71, 27.13,26.80,27.31,27.02,27.16,27.20,27.55,27.47,27.71,27.67, 27.65,27.71,27.92,28.22,28.32,28.34,28.44,28.36,28.38,28.92, 28.83,28.81,29.13,29.02,29.25,29.12,29.41,29.45,29.77,29.69, 0.77,0.83,0.89,1.02,1.07,1.11,1.21,1.24,1.41,1.42, 1.53,1.58,1.60,1.69,1.85,1.86,1.93,1.97,2.09,2.20, 2.23,2.30,2.41,2.40,2.54,2.56,2.59,2.73,2.83,2.85, 3.02,2.99,3.20,3.21,3.31,3.32,3.36,3.41,3.61,3.50, 3.68,3.73,3.85,3.99,3.98,4.05,4.15,4.20,4.44,4.39, 4.44,4.51,4.64,4.63,4.67,4.71,4.93,4.95,5.07,5.08, 5.11,5.19,5.27,5.42,5.46,5.57,5.58,5.65,5.79,5.65, 5.89,5.85,5.94,6.26,6.18,6.30,6.33,6.39,6.58,6.61, 6.64,6.74,6.81,6.95,6.91,7.04,7.05,7.13,7.34,7.32, 7.34,7.44,7.51,7.48,7.64,7.82,7.77,7.85,7.83,8.16, 7.96,8.15,8.11,8.32,8.47,8.44,8.56,8.79,8.69,8.78, 8.87,8.88,9.15,9.02,9.20,9.04,9.27,9.33,9.44,9.45, 9.38,9.53,9.75,9.78,9.94,10.07,10.02,10.05,10.17,10.27, 10.29,10.38,10.47,10.60,10.74,10.79,10.53,10.78,10.88,10.91, 11.12,11.11,11.20,11.32,11.28,11.29,11.52,11.65,11.59,11.71, 11.83,11.78,11.81,12.03,12.16,12.17,12.17,12.33,12.51,12.42, 12.51,12.78,12.85,12.62,12.79,12.98,12.80,13.14,12.93,13.13, 13.38,13.04,13.42,13.37,13.52,13.81,13.57,13.77,13.72,13.93, 14.07,14.07,14.19,13.95,14.42,14.39,14.61,14.62,14.48,14.77, 14.57,14.84,14.77,15.00,15.10,15.10,15.06,15.36,15.31,15.41, 15.51,15.51,15.51,15.84,15.90,15.72,15.93,16.11,15.99,16.17, 16.33,16.17,16.40,16.54,16.48,16.57,16.69,16.59,16.93,16.73, 16.92,16.88,17.12,17.26,17.23,17.31,17.48,17.48,17.37,17.58, 17.70,17.56,17.93,17.75,17.87,18.20,18.03,18.20,18.16,18.39, 18.44,18.45,18.23,18.45,18.63,18.79,18.81,18.80,19.09,18.98, 19.23,19.32,19.29,19.22,19.45,19.36,19.55,19.52,19.50,19.90, 19.69,19.71,19.98,20.01,20.23,20.33,20.29,20.07,20.43,20.50, 20.75,20.63,20.75,21.01,20.97,20.98,20.91,21.05,21.24,21.14, 21.51,21.12,21.40,21.62,21.58,21.54,21.84,21.62,21.81,21.98, 0.59,0.61,0.65,0.75,0.78,0.86,0.88,0.95,1.03,1.06, 1.11,1.15,1.24,1.22,1.33,1.34,1.41,1.54,1.52,1.57, 1.68,1.74,1.81,1.88,1.91,1.88,2.00,2.04,2.05,2.10, 2.16,2.28,2.26,2.33,2.40,2.46,2.54,2.58,2.58,2.75, 2.78,2.77,2.86,2.95,2.95,2.88,3.12,3.16,3.15,3.25, 3.34,3.30,3.32,3.43,3.47,3.58,3.68,3.69,3.65,3.84, 3.81,3.85,3.81,4.06,4.01,4.07,4.08,4.18,4.24,4.43, 4.32,4.45,4.48,4.38,4.60,4.54,4.79,4.79,4.77,4.87, 4.90,4.97,4.92,5.08,5.19,5.30,5.28,5.20,5.36,5.50, 5.54,5.53,5.50,5.48,5.61,5.83,5.64,5.75,5.89,5.93, 6.07,6.17,6.17,6.04,6.22,6.38,6.45,6.44,6.46,6.54, 6.61,6.56,6.67,6.66,6.66,6.75,6.81,6.95,6.95,7.08, 6.95,7.19,7.14,7.20,7.48,7.26,7.45,7.40,7.46,7.53, 7.50,7.58,7.74,7.87,7.79,7.87,8.04,8.00,8.01,8.12, 8.18,8.23,8.20,8.38,8.41,8.57,8.48,8.56,8.67,8.65, 8.77,8.50,8.79,9.01,9.07,8.92,9.05,9.12,9.09,9.24, 9.16,9.34,9.46,9.40,9.67,9.57,9.65,9.60,9.75,9.87, 9.87,10.04,9.89,10.02,10.10,10.07,10.23,10.13,10.27,10.20, 10.36,10.40,10.35,10.70,10.73,10.69,10.79,10.76,10.84,10.74, 10.68,10.94,11.02,11.17,11.05,11.24,10.99,11.21,11.39,11.28, 11.36,11.56,11.58,11.59,11.68,11.52,11.63,11.78,11.97,11.75, 11.89,11.85,12.01,12.03,12.09,12.20,12.44,12.47,12.55,12.40, 12.47,12.66,12.51,12.68,12.78,12.94,12.83,12.89,13.18,13.06, 13.12,12.96,13.15,13.19,13.27,13.53,13.35,13.46,13.40,13.53, 13.67,13.59,13.90,13.78,13.82,14.07,13.98,13.97,14.06,14.01, 14.00,14.34,14.30,14.24,14.14,14.56,14.54,14.67,14.62,14.60, 14.38,14.82,14.79,14.95,14.85,15.02,14.85,15.02,15.08,15.14, 15.35,15.18,15.29,15.43,15.25,15.40,15.56,15.49,15.71,15.50, 15.76,15.72,15.97,16.07,15.88,15.96,16.35,16.16,16.14,16.44, 0.40,0.47,0.52,0.54,0.60,0.59,0.68,0.71,0.73,0.79, 0.85,0.86,0.90,0.96,0.95,0.99,1.06,1.09,1.12,1.20, 1.25,1.27,1.30,1.39,1.37,1.40,1.45,1.58,1.58,1.59, 1.62,1.70,1.71,1.71,1.78,1.75,1.83,1.96,1.96,1.99, 2.02,2.10,2.15,2.11,2.22,2.24,2.34,2.29,2.33,2.40, 2.48,2.43,2.48,2.55,2.58,2.58,2.60,2.72,2.71,2.81, 2.86,2.90,2.89,2.98,2.99,2.98,3.04,3.12,3.22,3.28, 3.33,3.25,3.21,3.40,3.38,3.42,3.55,3.54,3.52,3.63, 3.72,3.67,3.66,3.69,3.72,3.83,3.88,3.90,3.94,4.13, 4.01,4.04,4.08,4.19,4.37,4.28,4.17,4.36,4.26,4.48, 4.53,4.50,4.52,4.64,4.56,4.53,4.69,4.76,4.86,4.86, 4.78,4.83,4.88,4.89,4.90,5.04,4.97,5.22,5.18,5.18, 5.22,5.26,5.30,5.27,5.44,5.52,5.54,5.51,5.54,5.55, 5.62,5.55,5.75,5.85,5.85,6.02,6.06,5.77,5.91,6.01, 6.14,6.14,6.16,6.19,6.24,6.36,6.25,6.41,6.45,6.47, 6.56,6.59,6.58,6.53,6.57,6.63,6.76,6.66,6.82,6.79, 6.82,6.98,6.99,7.07,6.96,7.04,7.17,7.21,7.19,7.25, 7.31,7.34,7.50,7.42,7.63,7.42,7.50,7.50,7.63,7.56, 7.56,7.75,7.73,7.83,7.79,7.81,7.92,7.85,8.10,8.02, 8.05,8.05,8.11,8.19,8.37,8.24,8.32,8.24,8.34,8.36, 8.51,8.52,8.56,8.56,8.66,8.75,8.61,8.68,8.74,8.90, 8.86,8.97,9.01,8.78,9.00,9.09,9.13,9.18,9.15,9.11, 9.34,9.29,9.46,9.40,9.40,9.52,9.58,9.40,9.54,9.51, 9.61,9.78,9.81,9.89,9.71,9.80,9.94,10.07,9.93,10.04, 10.19,10.25,10.29,10.35,10.30,10.19,10.28,10.46,10.37,10.48, 10.26,10.41,10.68,10.74,10.65,10.71,10.56,10.72,10.73,10.93, 10.78,10.88,10.91,11.01,10.93,11.08,11.06,11.00,11.20,11.26, 11.21,11.19,11.29,11.22,11.54,11.64,11.37,11.61,11.50,11.72, 11.64,11.74,11.67,11.67,11.71,11.89,12.00,11.77,11.88,12.29, 0.31,0.34,0.35,0.40,0.44,0.48,0.51,0.55,0.54,0.58, 0.62,0.64,0.62,0.68,0.70,0.76,0.80,0.84,0.79,0.80, 0.92,0.99,1.02,0.96,1.05,1.01,1.06,1.12,1.17,1.20, 1.15,1.15,1.22,1.23,1.29,1.36,1.41,1.40,1.44,1.46, 1.50,1.56,1.61,1.56,1.65,1.66,1.69,1.68,1.75,1.72, 1.76,1.78,1.84,1.94,1.94,1.97,1.97,1.94,2.05,2.08, 2.06,2.10,2.19,2.19,2.19,2.29,2.34,2.29,2.31,2.32, 2.40,2.46,2.43,2.52,2.56,2.56,2.63,2.58,2.60,2.65, 2.66,2.73,2.77,2.87,2.76,2.88,2.81,2.94,2.93,2.94, 3.06,3.00,3.09,3.07,3.07,3.05,3.22,3.22,3.17,3.21, 3.21,3.28,3.21,3.35,3.33,3.44,3.44,3.50,3.59,3.51, 3.58,3.69,3.69,3.71,3.73,3.65,3.79,3.83,3.92,3.86, 3.91,3.91,3.97,4.02,4.09,3.98,4.12,4.15,4.11,4.09, 4.24,4.30,4.38,4.35,4.31,4.39,4.40,4.37,4.41,4.38, 4.57,4.41,4.64,4.56,4.58,4.57,4.63,4.67,4.73,4.74, 4.67,4.82,4.71,4.90,4.98,4.90,4.80,4.95,5.05,5.00, 5.20,5.21,5.04,5.18,5.12,5.30,5.22,5.33,5.14,5.34, 5.33,5.50,5.38,5.46,5.50,5.58,5.47,5.54,5.61,5.73, 5.50,5.77,5.68,5.62,5.73,5.89,5.92,5.76,6.02,5.88, 5.96,5.89,6.06,6.09,6.19,6.18,5.97,6.20,6.31,6.27, 6.26,6.22,6.29,6.20,6.42,6.37,6.39,6.51,6.43,6.49, 6.62,6.65,6.56,6.60,6.51,6.80,6.71,6.77,6.85,6.74, 6.91,6.78,6.94,6.99,7.04,6.91,7.01,7.07,7.01,6.95, 7.17,7.21,7.13,7.21,7.20,7.41,7.31,7.34,7.58,7.49, 7.46,7.45,7.46,7.55,7.53,7.59,7.63,7.72,7.70,7.62, 7.79,7.84,7.71,7.87,8.21,7.99,7.88,7.96,8.04,8.04, 7.98,8.09,8.01,8.12,8.07,8.28,8.23,8.28,8.17,8.17, 8.34,8.28,8.33,8.62,8.44,8.55,8.46,8.53,8.42,8.56, 8.63,8.60,8.76,8.84,8.84,8.80,8.79,8.76,8.80,9.00, 0.24,0.27,0.27,0.31,0.27,0.33,0.37,0.41,0.40,0.40, 0.44,0.47,0.48,0.51,0.52,0.57,0.59,0.62,0.69,0.63, 0.68,0.66,0.73,0.77,0.76,0.79,0.78,0.80,0.83,0.92, 0.88,0.94,0.96,0.97,0.96,1.00,0.99,1.08,1.05,1.08, 1.06,1.13,1.14,1.18,1.21,1.22,1.27,1.32,1.26,1.35, 1.25,1.38,1.43,1.46,1.41,1.42,1.49,1.49,1.50,1.57, 1.52,1.54,1.61,1.60,1.67,1.69,1.69,1.72,1.68,1.74, 1.81,1.82,1.80,1.83,1.97,1.76,1.82,2.01,1.84,1.93, 2.01,2.05,1.95,2.09,2.09,2.08,2.18,2.10,2.16,2.17, 2.26,2.29,2.25,2.29,2.21,2.36,2.37,2.36,2.46,2.37, 2.37,2.40,2.53,2.51,2.52,2.55,2.61,2.58,2.65,2.69, 2.56,2.64,2.68,2.68,2.72,2.77,2.95,2.79,2.88,2.90, 2.84,2.94,2.88,2.94,2.98,2.92,3.00,3.04,3.08,3.04, 3.08,3.19,3.23,3.21,3.15,3.17,3.20,3.15,3.27,3.36, 3.35,3.25,3.37,3.48,3.44,3.39,3.44,3.50,3.42,3.48, 3.49,3.59,3.52,3.68,3.64,3.68,3.59,3.70,3.69,3.75, 3.69,3.80,3.83,3.87,3.77,3.85,3.84,3.89,3.99,3.88, 3.96,3.90,4.00,3.98,4.07,4.09,4.19,4.13,4.17,4.26, 4.18,4.16,4.26,4.27,4.18,4.28,4.31,4.36,4.33,4.46, 4.36,4.45,4.46,4.55,4.55,4.53,4.66,4.50,4.64,4.58, 4.63,4.68,4.50,4.73,4.74,4.85,4.78,4.66,4.73,4.89, 4.93,4.90,4.88,4.93,4.95,4.92,5.05,5.05,5.00,4.99, 5.03,5.06,5.21,5.06,5.26,5.20,5.28,5.38,5.20,5.16, 5.29,5.31,5.31,5.34,5.31,5.37,5.41,5.36,5.49,5.58, 5.52,5.63,5.53,5.65,5.52,5.57,5.66,5.57,5.54,5.77, 5.54,5.80,5.70,5.86,5.74,5.89,5.92,5.90,5.88,5.84, 6.03,6.06,5.97,6.00,6.02,6.08,6.06,6.06,6.18,6.19, 6.20,6.13,6.13,6.23,6.27,6.37,6.24,6.16,6.27,6.40, 6.30,6.45,6.49,6.43,6.48,6.48,6.56,6.52,6.70,6.57, 0.17,0.20,0.21,0.23,0.20,0.26,0.23,0.32,0.31,0.30, 0.32,0.34,0.37,0.36,0.37,0.38,0.44,0.44,0.48,0.47, 0.48,0.51,0.53,0.52,0.54,0.58,0.58,0.59,0.61,0.63, 0.67,0.69,0.72,0.75,0.69,0.73,0.73,0.84,0.79,0.84, 0.87,0.82,0.88,0.86,0.91,0.83,0.89,0.96,0.97,1.00, 0.97,0.98,1.02,1.03,1.10,1.05,1.04,1.13,1.12,1.18, 1.19,1.16,1.17,1.23,1.23,1.23,1.28,1.27,1.28,1.27, 1.29,1.38,1.37,1.33,1.29,1.45,1.44,1.36,1.42,1.50, 1.46,1.50,1.52,1.55,1.55,1.58,1.56,1.61,1.59,1.55, 1.64,1.68,1.61,1.65,1.73,1.69,1.73,1.67,1.80,1.74, 1.89,1.83,1.81,1.85,1.84,1.84,1.96,1.89,1.90,1.90, 1.96,1.96,1.91,1.94,2.00,2.00,2.12,2.09,2.08,2.07, 2.08,2.15,2.16,2.22,2.22,2.14,2.26,2.25,2.26,2.21, 2.23,2.24,2.35,2.23,2.34,2.44,2.40,2.34,2.37,2.50, 2.39,2.53,2.52,2.41,2.44,2.45,2.48,2.52,2.55,2.60, 2.67,2.71,2.64,2.70,2.65,2.75,2.72,2.64,2.78,2.80, 2.72,2.76,2.76,2.79,2.84,2.83,2.95,2.94,2.96,2.94, 2.97,2.88,3.02,2.89,3.02,3.04,3.07,3.04,3.03,2.99, 3.15,3.07,3.15,3.22,3.15,3.24,3.16,3.22,3.26,3.21, 3.27,3.14,3.29,3.25,3.32,3.37,3.23,3.38,3.43,3.52, 3.42,3.51,3.50,3.50,3.54,3.55,3.62,3.49,3.51,3.62, 3.56,3.58,3.58,3.63,3.63,3.78,3.69,3.69,3.68,3.72, 3.69,3.77,3.73,3.71,3.80,3.89,3.98,3.83,3.91,3.88, 3.88,3.85,4.02,3.95,4.08,3.82,3.87,4.13,4.09,4.05, 4.12,4.11,4.06,4.18,4.19,4.17,4.17,4.16,4.29,4.24, 4.30,4.20,4.20,4.26,4.22,4.39,4.37,4.31,4.45,4.44, 4.37,4.37,4.52,4.49,4.44,4.52,4.52,4.49,4.64,4.49, 4.54,4.69,4.55,4.76,4.70,4.60,4.64,4.75,4.84,4.66, 4.83,4.80,4.77,4.78,4.84,4.67,4.87,4.83,4.95,4.87, 0.12,0.14,0.14,0.14,0.16,0.21,0.20,0.22,0.22,0.21, 0.25,0.26,0.29,0.26,0.27,0.32,0.33,0.32,0.33,0.35, 0.39,0.40,0.41,0.39,0.40,0.43,0.46,0.46,0.47,0.44, 0.48,0.51,0.54,0.53,0.51,0.54,0.58,0.56,0.60,0.60, 0.58,0.62,0.68,0.68,0.66,0.68,0.68,0.70,0.69,0.74, 0.72,0.73,0.73,0.72,0.77,0.79,0.79,0.85,0.85,0.83, 0.78,0.85,0.86,0.92,0.88,0.86,0.94,0.94,0.91,0.94, 0.95,0.98,1.02,1.01,0.97,1.04,1.07,1.00,1.09,1.06, 1.10,1.09,1.11,1.13,1.16,1.14,1.16,1.12,1.23,1.20, 1.25,1.29,1.28,1.21,1.24,1.27,1.27,1.27,1.33,1.28, 1.32,1.38,1.42,1.36,1.39,1.40,1.43,1.47,1.46,1.42, 1.47,1.44,1.53,1.48,1.48,1.49,1.58,1.54,1.60,1.57, 1.53,1.59,1.65,1.68,1.64,1.60,1.56,1.58,1.69,1.67, 1.69,1.65,1.65,1.69,1.73,1.77,1.83,1.67,1.83,1.74, 1.80,1.86,1.81,1.86,1.78,1.85,1.87,1.88,1.94,1.90, 1.93,1.87,1.91,2.00,1.98,2.03,1.91,2.08,1.95,2.09, 2.09,2.08,2.10,2.19,2.11,2.11,2.02,2.18,2.14,2.20, 2.08,2.23,2.15,2.22,2.29,2.34,2.22,2.26,2.30,2.21, 2.35,2.37,2.36,2.37,2.35,2.45,2.32,2.46,2.39,2.44, 2.45,2.50,2.46,2.48,2.58,2.46,2.52,2.50,2.49,2.52, 2.55,2.53,2.58,2.55,2.59,2.59,2.68,2.62,2.65,2.66, 2.72,2.64,2.69,2.76,2.75,2.64,2.72,2.71,2.74,2.71, 2.69,2.83,2.78,2.76,2.81,2.83,2.89,2.82,2.82,2.89, 2.80,2.76,2.93,2.94,2.99,3.03,2.97,2.92,3.03,3.07, 3.04,2.96,3.05,3.15,3.07,3.07,2.98,3.15,3.05,3.16, 3.19,3.15,3.20,3.19,3.15,3.07,3.33,3.22,3.20,3.26, 3.24,3.27,3.38,3.23,3.33,3.34,3.42,3.39,3.34,3.35, 3.32,3.37,3.37,3.45,3.43,3.45,3.39,3.45,3.48,3.44, 3.47,3.44,3.44,3.50,3.64,3.71,3.65,3.56,3.49,3.62, 0.09,0.10,0.12,0.07,0.13,0.15,0.14,0.16,0.15,0.19, 0.19,0.17,0.19,0.23,0.21,0.23,0.25,0.26,0.28,0.25, 0.26,0.28,0.28,0.31,0.31,0.32,0.31,0.34,0.35,0.38, 0.37,0.38,0.37,0.41,0.40,0.45,0.44,0.41,0.46,0.43, 0.45,0.44,0.47,0.51,0.52,0.51,0.47,0.49,0.49,0.50, 0.52,0.54,0.56,0.51,0.58,0.57,0.59,0.59,0.62,0.66, 0.65,0.65,0.65,0.66,0.67,0.69,0.71,0.66,0.68,0.69, 0.72,0.72,0.74,0.74,0.75,0.77,0.79,0.79,0.79,0.78, 0.84,0.78,0.84,0.84,0.84,0.81,0.89,0.83,0.95,0.85, 0.85,0.91,0.95,0.93,0.87,0.95,0.94,0.95,0.96,0.95, 0.95,0.99,1.00,1.03,1.07,1.03,1.05,1.07,1.10,1.09, 1.08,1.07,1.08,1.08,1.13,1.13,1.10,1.14,1.18,1.20, 1.25,1.16,1.19,1.25,1.26,1.19,1.19,1.24,1.17,1.25, 1.29,1.20,1.22,1.30,1.30,1.32,1.38,1.18,1.31,1.38, 1.35,1.33,1.37,1.40,1.40,1.42,1.32,1.39,1.48,1.38, 1.42,1.42,1.42,1.43,1.50,1.55,1.48,1.45,1.47,1.51, 1.54,1.52,1.55,1.54,1.53,1.58,1.60,1.61,1.60,1.66, 1.59,1.55,1.62,1.65,1.64,1.65,1.68,1.64,1.72,1.68, 1.67,1.75,1.66,1.65,1.75,1.79,1.77,1.69,1.71,1.73, 1.75,1.86,1.83,1.83,1.88,1.83,1.85,1.85,1.90,1.82, 1.93,1.86,1.94,1.86,1.99,1.98,1.96,1.87,2.04,1.95, 1.98,1.92,2.05,1.99,1.98,1.99,2.03,2.02,2.10,1.96, 2.00,1.98,2.08,2.14,2.08,2.05,2.07,2.08,2.10,2.14, 2.17,2.11,2.15,2.21,2.25,2.12,2.20,2.15,2.18,2.21, 2.19,2.26,2.23,2.24,2.25,2.29,2.23,2.31,2.29,2.28, 2.28,2.35,2.32,2.34,2.29,2.39,2.39,2.37,2.35,2.49, 2.36,2.41,2.40,2.32,2.46,2.39,2.51,2.46,2.43,2.56, 2.49,2.52,2.49,2.61,2.52,2.54,2.59,2.55,2.58,2.61, 2.58,2.52,2.64,2.57,2.65,2.69,2.56,2.61,2.65,2.68, 0.06,0.07,0.10,0.09,0.10,0.10,0.11,0.10,0.12,0.14, 0.14,0.14,0.14,0.17,0.16,0.18,0.16,0.18,0.19,0.23, 0.21,0.20,0.20,0.22,0.21,0.25,0.21,0.26,0.25,0.26, 0.24,0.27,0.27,0.31,0.28,0.28,0.31,0.33,0.32,0.32, 0.33,0.35,0.34,0.34,0.39,0.34,0.37,0.34,0.38,0.38, 0.35,0.41,0.45,0.44,0.42,0.43,0.48,0.47,0.48,0.46, 0.47,0.48,0.50,0.46,0.50,0.47,0.49,0.50,0.51,0.54, 0.58,0.52,0.54,0.55,0.58,0.57,0.59,0.60,0.59,0.59, 0.57,0.61,0.62,0.62,0.62,0.58,0.65,0.63,0.66,0.67, 0.64,0.64,0.71,0.69,0.71,0.73,0.73,0.68,0.72,0.73, 0.79,0.76,0.73,0.77,0.74,0.71,0.75,0.77,0.82,0.78, 0.84,0.83,0.76,0.81,0.78,0.86,0.84,0.81,0.86,0.82, 0.81,0.89,0.91,0.83,0.86,0.91,0.87,0.93,0.90,0.91, 0.94,0.92,0.91,0.94,0.92,0.93,0.91,0.97,1.02,1.02, 0.99,0.98,1.03,1.00,1.02,0.98,1.03,1.03,1.04,1.07, 1.06,1.10,1.08,1.06,1.16,1.12,1.14,1.08,1.15,1.15, 1.10,1.08,1.15,1.15,1.09,1.12,1.15,1.15,1.17,1.17, 1.17,1.19,1.21,1.23,1.25,1.23,1.22,1.18,1.27,1.30, 1.19,1.26,1.26,1.28,1.25,1.27,1.31,1.25,1.33,1.28, 1.31,1.34,1.39,1.36,1.42,1.39,1.41,1.35,1.36,1.40, 1.36,1.32,1.39,1.40,1.42,1.44,1.46,1.39,1.47,1.43, 1.41,1.44,1.48,1.53,1.50,1.52,1.52,1.47,1.49,1.47, 1.51,1.55,1.47,1.48,1.55,1.58,1.55,1.61,1.57,1.53, 1.58,1.62,1.60,1.60,1.61,1.65,1.66,1.70,1.65,1.69, 1.59,1.65,1.61,1.60,1.76,1.68,1.75,1.74,1.75,1.74, 1.68,1.71,1.70,1.81,1.67,1.80,1.81,1.82,1.80,1.83, 1.79,1.78,1.76,1.83,1.84,1.79,1.80,1.78,1.91,1.77, 1.83,1.83,1.88,1.90,1.83,1.87,1.87,1.87,1.90,1.81, 1.97,1.93,1.90,1.91,1.96,1.97,1.91,1.97,2.02,1.99, 0.04,0.07,0.07,0.06,0.08,0.08,0.07,0.07,0.10,0.11, 0.10,0.10,0.11,0.12,0.13,0.12,0.12,0.16,0.16,0.14, 0.15,0.14,0.17,0.18,0.16,0.17,0.19,0.16,0.19,0.21, 0.20,0.20,0.21,0.21,0.21,0.23,0.23,0.23,0.23,0.25, 0.27,0.25,0.26,0.29,0.24,0.26,0.25,0.27,0.28,0.32, 0.28,0.30,0.33,0.28,0.30,0.32,0.30,0.31,0.34,0.37, 0.36,0.37,0.33,0.39,0.37,0.36,0.36,0.38,0.34,0.38, 0.39,0.40,0.43,0.44,0.41,0.39,0.44,0.43,0.44,0.45, 0.43,0.46,0.45,0.44,0.48,0.49,0.47,0.42,0.50,0.47, 0.47,0.46,0.51,0.45,0.53,0.50,0.50,0.52,0.50,0.54, 0.56,0.51,0.53,0.53,0.58,0.55,0.60,0.58,0.54,0.57, 0.56,0.58,0.58,0.57,0.57,0.64,0.63,0.62,0.59,0.64, 0.63,0.64,0.63,0.66,0.65,0.64,0.67,0.63,0.68,0.69, 0.75,0.68,0.71,0.70,0.68,0.69,0.69,0.71,0.78,0.71, 0.72,0.70,0.72,0.74,0.76,0.79,0.72,0.75,0.81,0.81, 0.78,0.80,0.73,0.82,0.81,0.77,0.81,0.85,0.82,0.78, 0.82,0.83,0.81,0.82,0.86,0.84,0.83,0.86,0.80,0.90, 0.87,0.92,0.86,0.93,0.92,0.91,0.89,0.89,0.85,0.88, 0.98,0.94,0.94,0.93,0.94,0.94,0.92,0.99,0.99,1.00, 0.96,0.94,0.96,1.03,1.01,1.06,1.02,1.02,0.99,1.05, 1.05,1.04,0.99,1.06,1.00,1.04,1.01,1.10,1.09,1.12, 1.08,1.14,1.10,1.05,1.06,1.05,1.11,1.12,1.07,1.18, 1.09,1.14,1.11,1.12,1.11,1.21,1.20,1.13,1.15,1.15, 1.16,1.17,1.22,1.27,1.17,1.20,1.14,1.20,1.20,1.21, 1.26,1.29,1.19,1.23,1.26,1.20,1.22,1.27,1.28,1.22, 1.30,1.24,1.28,1.21,1.28,1.30,1.32,1.30,1.28,1.34, 1.37,1.30,1.30,1.32,1.31,1.36,1.35,1.28,1.39,1.39, 1.31,1.42,1.39,1.40,1.33,1.43,1.34,1.41,1.44,1.38, 1.35,1.48,1.46,1.42,1.42,1.47,1.39,1.42,1.50,1.41, 0.03,0.05,0.05,0.06,0.05,0.06,0.06,0.07,0.06,0.07, 0.07,0.09,0.09,0.08,0.07,0.09,0.10,0.10,0.10,0.11, 0.09,0.11,0.12,0.13,0.12,0.13,0.14,0.13,0.15,0.14, 0.14,0.16,0.15,0.17,0.16,0.15,0.17,0.16,0.16,0.19, 0.19,0.22,0.21,0.16,0.19,0.20,0.20,0.23,0.19,0.22, 0.21,0.22,0.22,0.23,0.24,0.23,0.25,0.23,0.24,0.23, 0.24,0.27,0.27,0.27,0.28,0.28,0.31,0.28,0.28,0.28, 0.29,0.31,0.26,0.32,0.34,0.29,0.34,0.31,0.29,0.30, 0.29,0.33,0.31,0.32,0.29,0.35,0.33,0.36,0.36,0.37, 0.36,0.38,0.39,0.36,0.38,0.38,0.39,0.42,0.40,0.37, 0.38,0.44,0.40,0.39,0.42,0.41,0.42,0.43,0.44,0.43, 0.41,0.44,0.44,0.47,0.46,0.46,0.46,0.49,0.47,0.42, 0.44,0.48,0.50,0.49,0.53,0.48,0.49,0.51,0.50,0.48, 0.53,0.52,0.54,0.49,0.53,0.53,0.52,0.53,0.52,0.57, 0.54,0.51,0.52,0.56,0.54,0.57,0.56,0.56,0.59,0.57, 0.59,0.57,0.55,0.58,0.61,0.62,0.63,0.60,0.64,0.64, 0.64,0.65,0.61,0.64,0.63,0.63,0.68,0.64,0.58,0.66, 0.66,0.66,0.64,0.71,0.66,0.68,0.68,0.68,0.71,0.66, 0.66,0.66,0.71,0.72,0.71,0.68,0.74,0.64,0.74,0.70, 0.72,0.71,0.73,0.74,0.75,0.71,0.75,0.76,0.72,0.75, 0.77,0.78,0.76,0.71,0.79,0.77,0.78,0.79,0.79,0.79, 0.80,0.78,0.82,0.81,0.78,0.78,0.81,0.83,0.82,0.79, 0.81,0.77,0.86,0.88,0.90,0.90,0.88,0.82,0.85,0.85, 0.86,0.98,0.87,0.90,0.91,0.89,0.88,0.89,0.86,0.89, 0.92,0.91,0.93,0.91,0.87,0.90,0.97,0.94,0.97,0.90, 0.98,0.92,0.98,0.95,0.96,0.98,0.95,0.92,0.97,1.01, 0.95,1.01,0.97,1.01,0.95,1.02,0.99,0.97,1.06,0.98, 1.01,0.99,1.03,1.07,1.02,1.05,0.99,1.03,1.05,1.03, 1.06,1.12,1.08,1.05,1.04,1.02,1.04,1.12,1.10,1.14, 0.03,0.03,0.03,0.04,0.04,0.04,0.05,0.04,0.05,0.04, 0.06,0.05,0.07,0.06,0.07,0.06,0.06,0.07,0.07,0.08, 0.08,0.10,0.08,0.09,0.09,0.11,0.10,0.10,0.11,0.12, 0.10,0.11,0.10,0.14,0.10,0.11,0.11,0.13,0.12,0.14, 0.13,0.14,0.14,0.15,0.16,0.14,0.15,0.17,0.16,0.16, 0.16,0.15,0.15,0.18,0.18,0.19,0.18,0.17,0.19,0.17, 0.19,0.17,0.18,0.22,0.18,0.22,0.22,0.22,0.20,0.21, 0.22,0.20,0.20,0.23,0.20,0.22,0.26,0.23,0.23,0.25, 0.30,0.25,0.25,0.24,0.25,0.22,0.26,0.26,0.29,0.26, 0.25,0.26,0.23,0.26,0.30,0.26,0.28,0.28,0.28,0.28, 0.27,0.27,0.28,0.32,0.33,0.33,0.35,0.29,0.32,0.35, 0.32,0.33,0.33,0.37,0.31,0.34,0.34,0.33,0.34,0.34, 0.35,0.31,0.37,0.34,0.36,0.40,0.38,0.39,0.37,0.38, 0.39,0.40,0.37,0.38,0.36,0.36,0.38,0.37,0.39,0.39, 0.39,0.42,0.40,0.40,0.40,0.39,0.42,0.42,0.44,0.42, 0.45,0.47,0.41,0.42,0.46,0.41,0.43,0.46,0.47,0.41, 0.44,0.47,0.49,0.41,0.49,0.45,0.48,0.52,0.49,0.47, 0.46,0.53,0.49,0.48,0.50,0.49,0.52,0.52,0.51,0.52, 0.48,0.51,0.50,0.52,0.51,0.54,0.50,0.53,0.49,0.49, 0.53,0.54,0.54,0.55,0.55,0.58,0.55,0.55,0.55,0.53, 0.54,0.54,0.54,0.59,0.55,0.61,0.60,0.52,0.59,0.58, 0.62,0.58,0.67,0.54,0.60,0.59,0.61,0.57,0.63,0.61, 0.61,0.61,0.64,0.62,0.64,0.62,0.65,0.68,0.62,0.64, 0.67,0.64,0.73,0.66,0.67,0.66,0.70,0.65,0.70,0.65, 0.70,0.66,0.70,0.67,0.69,0.69,0.71,0.66,0.70,0.70, 0.64,0.69,0.69,0.72,0.70,0.73,0.74,0.70,0.70,0.71, 0.71,0.71,0.73,0.75,0.73,0.72,0.70,0.74,0.75,0.71, 0.75,0.76,0.75,0.76,0.72,0.70,0.77,0.76,0.76,0.81, 0.82,0.78,0.73,0.76,0.83,0.76,0.79,0.77,0.79,0.79, 0.02,0.02,0.02,0.02,0.04,0.03,0.03,0.04,0.04,0.04, 0.04,0.04,0.05,0.03,0.04,0.06,0.04,0.07,0.06,0.06, 0.06,0.05,0.07,0.07,0.06,0.06,0.07,0.07,0.09,0.08, 0.09,0.09,0.07,0.08,0.07,0.08,0.09,0.09,0.10,0.10, 0.09,0.08,0.09,0.12,0.11,0.10,0.12,0.10,0.10,0.12, 0.12,0.13,0.11,0.15,0.10,0.11,0.14,0.14,0.13,0.14, 0.15,0.14,0.15,0.15,0.17,0.14,0.14,0.13,0.13,0.18, 0.16,0.17,0.18,0.18,0.16,0.16,0.20,0.17,0.18,0.17, 0.17,0.18,0.18,0.17,0.19,0.18,0.19,0.18,0.20,0.21, 0.21,0.20,0.21,0.17,0.20,0.22,0.21,0.18,0.20,0.24, 0.19,0.20,0.20,0.20,0.26,0.23,0.24,0.21,0.24,0.23, 0.23,0.24,0.25,0.23,0.24,0.24,0.23,0.27,0.25,0.26, 0.24,0.25,0.29,0.23,0.28,0.25,0.24,0.27,0.24,0.26, 0.25,0.24,0.30,0.28,0.27,0.27,0.32,0.30,0.27,0.28, 0.31,0.31,0.29,0.28,0.30,0.32,0.33,0.32,0.33,0.31, 0.29,0.32,0.28,0.31,0.32,0.34,0.36,0.33,0.34,0.37, 0.34,0.37,0.33,0.33,0.32,0.33,0.36,0.38,0.32,0.37, 0.37,0.35,0.36,0.35,0.36,0.36,0.39,0.37,0.36,0.36, 0.40,0.40,0.40,0.39,0.38,0.36,0.37,0.39,0.42,0.40, 0.39,0.41,0.41,0.42,0.45,0.41,0.38,0.40,0.39,0.44, 0.41,0.39,0.40,0.40,0.42,0.45,0.44,0.47,0.41,0.45, 0.44,0.44,0.43,0.42,0.44,0.46,0.44,0.45,0.47,0.42, 0.45,0.48,0.42,0.44,0.50,0.47,0.50,0.47,0.51,0.48, 0.48,0.46,0.47,0.46,0.47,0.47,0.46,0.49,0.50,0.47, 0.51,0.47,0.52,0.50,0.53,0.48,0.52,0.54,0.49,0.50, 0.55,0.53,0.48,0.48,0.52,0.51,0.55,0.55,0.53,0.53, 0.56,0.49,0.54,0.50,0.56,0.58,0.56,0.54,0.52,0.58, 0.54,0.57,0.57,0.56,0.53,0.57,0.59,0.56,0.59,0.57, 0.57,0.53,0.56,0.57,0.57,0.58,0.61,0.55,0.57,0.55, 1.55,1.67,1.79,2.02,2.21,2.31,2.39,2.66,2.73,2.84, 3.00,3.25,3.31,3.51,3.66,3.86,3.86,4.13,4.31,4.35, 4.55,4.70,4.86,4.98,5.13,5.28,5.45,5.69,5.78,5.82, 6.13,6.17,6.28,6.45,6.54,6.91,6.93,7.01,7.17,7.30, 7.50,7.52,7.88,7.91,8.09,8.08,8.33,8.61,8.70,8.97, 9.07,9.20,9.12,9.41,9.51,9.76,9.77,9.94,10.15,10.35, 10.38,10.62,10.81,11.11,11.24,11.29,11.32,11.48,11.74,11.67, 11.85,12.11,12.29,12.30,12.77,12.76,13.03,12.98,13.20,13.39, 13.38,13.45,13.95,13.90,14.19,14.17,14.28,14.62,14.74,14.94, 14.94,15.19,15.36,15.46,15.61,15.68,15.86,15.96,16.07,16.60, 16.51,16.70,16.58,16.80,16.94,17.14,17.65,17.66,17.57,17.73, 18.07,18.20,18.31,18.46,18.45,18.91,19.11,19.20,19.27,19.47, 19.52,19.56,19.99,19.86,20.04,20.06,20.44,20.54,20.70,20.77, 20.98,20.96,21.16,21.27,21.74,21.82,21.79,22.00,22.04,22.13, 22.23,22.51,22.86,22.84,22.97,23.21,23.42,23.57,23.64,23.65, 23.75,23.84,24.32,24.47,24.46,24.71,24.66,25.19,25.48,25.13, 25.43,25.40,25.96,25.97,25.90,26.13,26.34,26.36,26.90,26.79, 26.86,26.77,27.12,27.64,27.60,27.64,27.79,27.94,28.03,28.24, 28.47,28.49,28.71,28.77,29.02,28.94,29.21,29.51,29.36,29.54, 29.54,29.95,29.76,30.12,30.28,30.77,30.66,31.09,31.09,31.46, 31.38,31.40,31.56,31.70,32.05,32.36,32.14,32.56,32.63,32.77, 32.94,33.18,33.08,33.33,33.32,33.57,33.71,33.84,34.18,34.36, 34.21,34.48,34.68,34.68,34.84,35.18,35.33,35.08,35.48,35.62, 35.85,35.99,36.15,36.19,36.56,36.55,36.76,36.74,36.96,37.17, 37.31,37.34,37.89,37.74,37.90,38.23,38.17,38.37,38.92,38.58, 39.00,38.34,39.35,38.96,39.48,39.47,39.63,39.76,39.85,40.03, 40.49,40.31,40.72,40.58,40.74,41.03,41.20,41.36,41.52,41.88, 41.67,41.87,41.74,42.23,42.21,42.52,42.44,42.83,42.78,43.08, 43.28,43.11,43.38,43.78,43.63,43.69,44.54,44.37,44.33,44.74, 1.16,1.25,1.36,1.45,1.64,1.73,1.80,1.90,2.08,2.11, 2.19,2.44,2.54,2.56,2.70,2.78,3.03,3.06,3.18,3.25, 3.37,3.44,3.70,3.65,3.81,3.97,4.07,4.14,4.33,4.34, 4.54,4.70,4.75,4.86,5.03,5.08,5.13,5.27,5.42,5.45, 5.60,5.75,5.97,5.96,6.08,6.11,6.33,6.45,6.59,6.52, 6.70,6.91,6.92,7.19,7.22,7.25,7.51,7.55,7.58,7.78, 7.87,8.06,7.97,8.25,8.18,8.42,8.63,8.56,8.72,8.99, 8.90,9.25,9.31,9.38,9.36,9.46,9.51,9.87,9.73,9.95, 10.13,10.20,10.43,10.41,10.69,10.63,10.67,10.84,10.95,11.19, 11.23,11.41,11.39,11.45,11.63,11.82,12.07,12.01,12.06,12.38, 12.36,12.31,12.49,12.52,12.75,12.86,12.96,13.15,13.41,13.30, 13.51,13.49,13.57,13.82,13.95,13.81,14.09,13.80,14.16,14.54, 14.49,14.70,14.80,14.92,15.02,15.25,15.23,15.29,15.46,15.55, 15.78,15.80,15.71,15.78,16.28,16.30,16.44,16.47,16.62,16.99, 16.54,16.81,16.92,17.21,17.29,17.27,17.36,17.56,17.61,17.78, 17.87,17.99,18.07,18.37,18.11,18.47,18.61,18.55,18.83,18.81, 19.00,19.23,19.11,19.48,19.54,19.60,19.63,19.73,19.82,20.07, 20.14,20.41,20.32,20.37,20.71,20.76,20.68,21.00,21.25,21.14, 21.01,21.52,21.56,21.57,21.70,21.92,21.95,21.95,22.03,22.14, 22.40,22.25,22.62,22.75,23.07,23.33,22.87,23.12,23.35,23.59, 23.33,23.62,23.80,23.64,23.99,24.02,24.28,24.04,24.58,24.47, 24.76,25.02,24.71,25.10,25.20,25.00,25.34,25.61,25.51,25.75, 25.95,25.85,25.80,25.95,26.34,26.22,26.62,26.75,26.55,26.81, 26.83,27.16,27.20,27.36,27.41,27.27,27.45,27.85,27.74,28.06, 27.97,28.05,28.41,28.18,28.60,28.38,28.68,28.65,29.05,28.89, 29.12,28.95,29.07,29.55,29.38,29.67,29.65,29.93,29.83,30.12, 30.11,30.28,30.69,30.42,30.91,30.69,31.11,30.89,31.30,31.20, 31.32,31.55,31.63,31.78,31.73,32.02,32.08,32.51,32.50,32.35, 32.52,32.63,32.81,32.83,32.90,32.85,33.07,33.20,33.22,33.59, 0.88,0.97,1.03,1.14,1.13,1.28,1.38,1.47,1.54,1.62, 1.74,1.77,1.91,1.93,2.02,2.12,2.18,2.32,2.42,2.50, 2.53,2.59,2.70,2.79,2.91,3.01,3.12,3.10,3.27,3.25, 3.35,3.53,3.56,3.59,3.79,3.82,3.88,3.95,4.07,4.13, 4.21,4.32,4.50,4.44,4.57,4.66,4.78,4.77,4.93,5.09, 5.09,5.13,5.30,5.39,5.41,5.47,5.59,5.64,5.59,5.85, 5.76,5.96,6.06,6.21,6.21,6.09,6.41,6.62,6.60,6.55, 6.78,6.74,7.04,6.93,6.91,7.13,7.27,7.34,7.42,7.53, 7.65,7.61,7.77,7.84,7.84,8.01,8.08,8.07,8.28,8.36, 8.42,8.47,8.55,8.66,8.74,8.68,9.01,9.19,9.02,9.25, 9.14,9.28,9.52,9.44,9.88,9.76,9.91,9.74,9.90,9.89, 10.17,10.09,10.24,10.38,10.49,10.46,10.62,10.58,10.61,10.95, 11.10,11.18,11.16,11.26,11.43,11.25,11.60,11.51,11.65,11.72, 11.70,11.97,11.98,12.08,12.03,12.23,12.27,12.31,12.38,12.49, 12.68,12.67,12.73,12.69,12.97,13.05,13.27,13.16,13.53,13.59, 13.40,13.42,13.63,13.64,13.58,13.86,13.91,13.89,14.44,14.09, 14.52,14.40,14.41,14.34,14.43,14.66,14.84,14.96,14.99,14.99, 15.19,15.07,15.23,15.09,15.28,15.53,15.64,15.84,15.82,15.67, 15.81,15.99,16.29,16.17,16.51,16.50,16.39,16.67,16.65,16.83, 17.05,16.91,17.02,17.18,16.93,17.39,17.32,17.32,17.33,17.53, 17.46,17.83,17.55,18.04,18.08,17.93,18.03,18.20,18.27,18.31, 18.31,18.49,18.65,18.58,18.86,18.90,19.09,18.99,19.26,19.24, 19.57,19.44,19.37,19.28,19.80,19.58,19.70,19.84,20.12,20.14, 20.03,20.12,20.18,20.16,20.38,20.72,20.81,20.68,20.99,20.93, 21.02,21.13,21.22,21.15,21.30,21.42,21.50,21.51,21.63,21.69, 21.84,21.83,21.87,22.20,21.86,22.09,22.35,22.53,22.54,22.39, 22.57,22.71,22.92,22.92,23.07,23.04,23.12,23.24,23.41,23.37, 23.60,23.59,23.62,23.94,23.99,23.79,23.73,24.15,24.14,24.48, 24.62,24.73,24.46,24.52,24.72,24.86,24.93,25.07,24.67,25.28, 0.66,0.75,0.80,0.86,0.91,0.97,1.05,1.08,1.08,1.21, 1.30,1.35,1.39,1.42,1.58,1.64,1.71,1.68,1.76,1.83, 1.90,1.99,2.04,2.16,2.17,2.26,2.30,2.31,2.44,2.47, 2.52,2.65,2.66,2.77,2.71,2.83,2.96,2.95,3.08,3.06, 3.16,3.22,3.29,3.31,3.35,3.54,3.54,3.56,3.73,3.68, 3.86,3.93,3.91,4.01,3.98,4.06,4.18,4.12,4.27,4.47, 4.30,4.43,4.49,4.54,4.78,4.77,4.73,4.92,4.93,5.15, 5.15,5.09,5.25,5.25,5.22,5.38,5.49,5.49,5.59,5.57, 5.73,5.78,5.78,5.82,5.91,5.96,5.99,6.11,6.25,6.23, 6.27,6.34,6.48,6.48,6.62,6.76,6.61,6.76,6.76,6.79, 6.94,6.89,7.01,7.09,7.09,7.32,7.48,7.50,7.44,7.55, 7.48,7.74,7.71,7.72,7.61,7.88,7.93,7.89,8.05,8.04, 8.15,8.27,8.11,8.43,8.47,8.50,8.58,8.68,8.81,8.79, 8.81,8.95,9.01,8.99,8.99,9.15,9.10,9.20,9.30,9.70, 9.50,9.49,9.47,9.65,9.69,9.80,9.71,9.85,9.83,10.01, 10.01,10.06,10.15,10.19,10.23,10.35,10.51,10.45,10.63,10.63, 10.58,10.93,10.69,10.88,11.11,11.08,11.09,11.26,11.21,11.51, 11.24,11.41,11.40,11.49,11.50,11.50,11.67,11.98,11.63,11.87, 11.99,12.03,12.22,12.19,12.34,12.13,12.47,12.31,12.50,12.69, 12.62,12.71,12.83,12.88,12.86,12.92,13.06,13.01,13.17,13.09, 13.11,13.30,13.40,13.74,13.40,13.62,13.74,13.72,13.63,13.77, 13.83,13.89,13.76,14.08,14.07,14.03,14.29,14.18,14.40,14.45, 14.45,14.39,14.59,14.89,14.62,14.89,14.72,14.97,15.15,15.23, 15.16,15.15,15.40,15.26,15.57,15.42,15.57,15.52,15.67,15.47, 15.73,15.98,15.91,15.89,15.74,16.27,16.18,16.24,16.11,16.27, 16.40,16.40,16.50,16.70,16.43,16.84,16.64,16.89,17.10,17.13, 17.09,17.17,17.15,17.24,17.29,17.05,17.51,17.41,17.42,17.65, 17.64,17.40,17.83,17.82,17.79,18.14,17.86,18.08,18.36,18.18, 18.34,18.39,18.55,18.39,18.68,18.74,18.73,18.72,19.19,18.78, 0.49,0.54,0.59,0.65,0.72,0.79,0.72,0.80,0.85,0.90, 0.94,1.01,1.01,1.07,1.15,1.23,1.21,1.22,1.39,1.42, 1.44,1.54,1.55,1.60,1.62,1.68,1.68,1.74,1.82,1.81, 1.88,1.96,2.00,2.03,2.17,2.10,2.17,2.22,2.36,2.38, 2.33,2.44,2.52,2.65,2.60,2.53,2.70,2.75,2.77,2.85, 2.86,2.85,2.92,3.06,3.02,3.17,3.11,3.17,3.18,3.30, 3.33,3.38,3.48,3.47,3.49,3.53,3.57,3.65,3.54,3.61, 3.86,3.81,3.88,3.79,3.95,4.03,4.02,4.11,4.12,4.20, 4.25,4.22,4.36,4.38,4.41,4.47,4.52,4.67,4.72,4.67, 4.75,4.76,4.84,4.88,5.01,5.07,5.10,5.05,5.21,5.17, 5.10,5.23,5.35,5.28,5.51,5.38,5.49,5.58,5.65,5.64, 5.71,5.65,5.77,5.87,5.93,5.91,5.95,6.08,6.06,6.29, 6.21,6.22,6.25,6.30,6.46,6.24,6.50,6.46,6.46,6.59, 6.69,6.65,6.47,6.72,6.85,6.76,6.96,6.98,7.02,7.11, 7.02,7.12,7.21,7.19,7.23,7.33,7.32,7.34,7.49,7.57, 7.66,7.68,7.76,7.68,7.73,7.83,7.86,7.89,7.91,7.95, 7.88,8.18,8.00,8.28,8.26,8.29,8.24,8.36,8.58,8.37, 8.43,8.56,8.45,8.66,8.76,8.64,8.89,8.90,8.75,8.82, 9.04,8.93,9.12,9.09,9.18,9.23,9.41,9.31,9.48,9.50, 9.52,9.53,9.56,9.61,9.51,9.84,9.69,9.92,9.79,9.97, 9.83,9.92,9.81,10.07,10.03,10.22,10.33,10.12,10.30,10.47, 10.52,10.44,10.38,10.51,10.46,10.66,10.48,10.80,10.65,10.82, 11.03,11.11,10.78,10.98,11.21,11.02,11.22,11.20,11.23,11.27, 11.26,11.33,11.51,11.30,11.62,11.62,11.69,11.75,11.58,11.58, 11.94,11.84,11.83,11.98,11.98,12.16,12.10,12.09,12.27,12.21, 12.39,12.28,12.46,12.51,12.20,12.47,12.52,12.59,12.69,12.68, 12.91,12.68,12.94,12.80,12.93,12.99,13.04,13.11,13.12,13.10, 13.40,13.20,13.40,13.39,13.54,13.35,13.53,13.51,13.41,13.65, 13.46,13.77,13.63,14.00,13.86,13.91,14.12,13.93,13.97,14.11, 0.37,0.39,0.44,0.45,0.49,0.57,0.60,0.59,0.66,0.72, 0.77,0.74,0.84,0.79,0.89,0.88,0.91,0.92,0.98,1.06, 1.09,1.11,1.15,1.21,1.21,1.22,1.27,1.31,1.33,1.41, 1.42,1.52,1.46,1.52,1.53,1.61,1.72,1.62,1.67,1.76, 1.80,1.83,1.84,1.85,1.89,1.90,1.96,2.02,2.17,2.07, 2.12,2.15,2.19,2.25,2.34,2.27,2.35,2.38,2.46,2.46, 2.49,2.52,2.56,2.62,2.65,2.68,2.71,2.84,2.77,2.73, 2.85,2.90,2.80,2.89,3.01,3.05,3.05,3.17,3.11,3.19, 3.24,3.28,3.26,3.33,3.28,3.33,3.44,3.42,3.48,3.52, 3.60,3.54,3.59,3.69,3.69,3.58,3.58,3.74,3.77,3.81, 3.88,3.91,3.97,3.90,4.07,4.07,4.04,4.10,4.11,4.22, 4.24,4.29,4.37,4.31,4.46,4.49,4.49,4.54,4.51,4.59, 4.67,4.62,4.59,4.86,4.72,4.79,4.77,4.83,4.93,4.89, 4.97,4.90,5.27,5.10,5.00,5.28,5.19,5.18,5.33,5.29, 5.36,5.32,5.33,5.48,5.44,5.49,5.47,5.55,5.54,5.63, 5.53,5.79,5.73,5.77,5.71,5.90,5.90,5.84,5.88,6.09, 5.94,5.98,6.09,5.99,6.07,6.15,6.15,6.16,6.32,6.27, 6.23,6.50,6.28,6.46,6.65,6.56,6.71,6.64,6.71,6.75, 6.77,6.72,6.87,6.83,6.82,6.95,6.96,6.96,7.10,7.20, 7.16,7.05,7.07,7.16,7.32,7.33,7.27,7.41,7.35,7.49, 7.29,7.51,7.45,7.66,7.55,7.48,7.59,7.62,7.70,7.81, 7.71,7.75,7.87,7.93,7.82,7.99,8.01,7.91,8.16,8.10, 8.12,8.28,8.18,8.27,8.20,8.26,8.40,8.36,8.38,8.60, 8.55,8.63,8.64,8.61,8.56,8.77,8.62,8.79,8.92,8.71, 8.82,9.04,8.94,9.04,8.94,9.01,9.16,9.15,9.21,9.16, 9.30,9.27,9.36,9.27,9.28,9.38,9.33,9.53,9.40,9.52, 9.64,9.42,9.75,9.69,9.79,9.72,9.81,9.63,10.03,9.95, 9.89,9.89,9.96,10.04,10.17,10.12,10.11,10.10,10.16,10.22, 10.26,10.33,10.35,10.23,10.56,10.44,10.44,10.78,10.57,10.65, 0.27,0.29,0.34,0.35,0.42,0.43,0.42,0.48,0.48,0.51, 0.53,0.57,0.54,0.63,0.64,0.67,0.71,0.71,0.76,0.81, 0.78,0.86,0.87,0.78,1.01,0.96,0.97,0.99,1.00,1.05, 1.08,1.07,1.15,1.12,1.20,1.22,1.21,1.35,1.30,1.30, 1.30,1.35,1.34,1.44,1.41,1.48,1.52,1.56,1.53,1.58, 1.67,1.68,1.73,1.70,1.68,1.79,1.73,1.81,1.83,1.81, 1.88,1.80,1.87,1.88,1.99,1.96,2.01,2.02,2.13,2.20, 2.15,2.18,2.20,2.21,2.28,2.20,2.33,2.37,2.28,2.40, 2.42,2.42,2.51,2.45,2.56,2.49,2.67,2.55,2.60,2.67, 2.59,2.74,2.74,2.77,2.73,2.81,2.83,2.79,2.79,2.84, 2.89,2.87,3.00,2.97,3.06,3.12,3.15,3.19,3.02,3.14, 3.18,3.15,3.19,3.29,3.37,3.32,3.34,3.35,3.44,3.41, 3.47,3.53,3.53,3.58,3.60,3.56,3.64,3.52,3.61,3.68, 3.68,3.71,3.76,3.79,3.90,3.89,3.87,3.93,3.86,3.91, 3.94,4.09,4.07,4.05,4.03,4.14,4.16,4.12,4.17,4.25, 4.33,4.25,4.32,4.25,4.30,4.40,4.40,4.45,4.51,4.38, 4.54,4.65,4.61,4.68,4.56,4.77,4.64,4.68,4.76,4.80, 4.76,4.81,4.97,4.85,4.98,4.89,5.00,5.05,4.88,4.93, 4.99,4.97,5.20,5.10,5.06,5.12,5.16,5.28,5.15,5.36, 5.31,5.40,5.36,5.46,5.35,5.54,5.54,5.43,5.46,5.55, 5.66,5.59,5.52,5.62,5.87,5.66,5.76,5.77,5.68,5.67, 5.93,5.77,5.81,5.97,5.99,5.94,5.96,5.94,6.15,6.06, 6.24,6.21,6.27,6.18,6.18,6.29,6.42,6.13,6.09,6.31, 6.35,6.38,6.44,6.42,6.60,6.42,6.62,6.65,6.80,6.71, 6.52,6.73,6.72,6.54,6.73,6.77,6.71,6.99,6.79,6.90, 6.90,6.89,7.01,6.97,6.93,7.18,6.96,7.04,7.13,7.05, 7.10,7.15,7.30,7.25,7.12,7.35,7.53,7.29,7.34,7.49, 7.55,7.30,7.45,7.47,7.38,7.60,7.64,7.66,7.72,7.73, 7.89,7.67,7.80,7.90,7.82,7.91,7.75,7.80,7.81,7.92, 0.22,0.21,0.25,0.26,0.26,0.33,0.32,0.34,0.36,0.39, 0.42,0.45,0.42,0.49,0.48,0.53,0.53,0.55,0.57,0.57, 0.62,0.64,0.67,0.69,0.67,0.70,0.73,0.71,0.76,0.81, 0.81,0.82,0.83,0.86,0.80,0.85,0.86,0.93,0.94,1.04, 1.05,1.02,1.03,1.05,1.10,1.07,1.16,1.21,1.20,1.10, 1.27,1.20,1.20,1.25,1.31,1.30,1.37,1.36,1.36,1.41, 1.35,1.43,1.45,1.44,1.43,1.56,1.44,1.53,1.54,1.59, 1.60,1.56,1.64,1.69,1.69,1.70,1.67,1.69,1.78,1.84, 1.91,1.91,1.85,1.92,1.87,1.97,1.95,1.96,1.90,1.89, 1.99,2.01,2.08,1.99,2.07,2.04,2.05,2.10,2.23,2.11, 2.19,2.27,2.26,2.34,2.33,2.29,2.34,2.37,2.30,2.37, 2.32,2.41,2.42,2.45,2.51,2.50,2.50,2.54,2.52,2.58, 2.56,2.56,2.67,2.58,2.76,2.71,2.83,2.75,2.78,2.74, 2.88,2.82,2.85,2.88,2.79,2.96,2.90,2.88,2.93,3.03, 2.98,3.00,2.96,3.06,3.03,3.05,3.14,3.03,3.11,3.17, 3.17,3.25,3.30,3.26,3.31,3.35,3.33,3.29,3.38,3.33, 3.42,3.32,3.41,3.42,3.50,3.47,3.51,3.44,3.52,3.44, 3.54,3.65,3.54,3.69,3.71,3.73,3.74,3.71,3.74,3.76, 3.76,3.85,3.81,3.91,3.83,3.98,3.86,4.08,3.91,3.96, 4.10,4.00,4.00,3.98,4.07,3.97,4.03,4.12,4.23,4.27, 4.14,4.33,4.27,4.21,4.31,4.21,4.36,4.29,4.35,4.41, 4.38,4.40,4.27,4.44,4.49,4.49,4.50,4.55,4.48,4.53, 4.56,4.62,4.63,4.61,4.72,4.66,4.73,4.64,4.89,4.67, 4.76,4.80,4.83,4.87,4.90,4.83,4.92,4.88,4.96,4.94, 4.97,4.91,4.87,5.16,5.05,5.08,5.12,5.11,5.16,5.16, 5.09,5.23,5.14,5.30,5.42,5.24,5.32,5.33,5.17,5.37, 5.36,5.33,5.63,5.42,5.44,5.55,5.37,5.45,5.46,5.59, 5.51,5.55,5.49,5.60,5.65,5.65,5.68,5.67,5.66,5.83, 5.81,5.93,5.99,5.96,6.02,5.88,5.85,6.02,5.95,5.90, 0.16,0.17,0.18,0.21,0.21,0.22,0.27,0.29,0.29,0.25, 0.29,0.33,0.34,0.35,0.34,0.37,0.39,0.42,0.44,0.46, 0.48,0.50,0.50,0.51,0.49,0.52,0.55,0.55,0.59,0.61, 0.60,0.64,0.60,0.70,0.66,0.63,0.70,0.69,0.69,0.69, 0.72,0.78,0.75,0.80,0.89,0.79,0.82,0.83,0.90,0.93, 0.92,0.94,0.99,0.97,0.93,0.94,0.95,1.00,1.04,1.06, 1.06,1.05,1.08,1.07,1.06,1.19,1.16,1.15,1.20,1.13, 1.21,1.25,1.24,1.25,1.24,1.26,1.30,1.29,1.32,1.32, 1.42,1.37,1.37,1.40,1.43,1.47,1.46,1.46,1.45,1.48, 1.51,1.55,1.46,1.53,1.56,1.61,1.55,1.63,1.55,1.69, 1.58,1.73,1.71,1.70,1.68,1.71,1.69,1.78,1.78,1.77, 1.82,1.76,1.87,1.86,1.95,1.88,1.81,1.94,1.96,1.97, 1.95,1.93,2.00,2.07,2.00,2.01,2.00,2.00,2.09,2.10, 2.09,2.17,2.08,2.11,2.19,2.22,2.13,2.21,2.29,2.19, 2.26,2.29,2.18,2.23,2.32,2.35,2.37,2.37,2.43,2.34, 2.45,2.31,2.50,2.44,2.41,2.47,2.41,2.46,2.50,2.52, 2.53,2.54,2.59,2.58,2.51,2.64,2.60,2.65,2.74,2.72, 2.71,2.65,2.73,2.75,2.75,2.75,2.74,2.74,2.75,2.70, 2.84,2.84,2.85,2.91,2.94,2.93,2.86,2.93,2.98,2.99, 3.00,3.07,2.98,3.10,2.96,3.04,3.08,3.11,3.08,3.05, 3.11,3.14,3.21,3.23,3.16,3.22,3.30,3.23,3.30,3.35, 3.26,3.28,3.29,3.31,3.29,3.34,3.43,3.44,3.36,3.41, 3.42,3.46,3.43,3.40,3.56,3.46,3.48,3.52,3.52,3.62, 3.67,3.58,3.66,3.75,3.61,3.71,3.64,3.81,3.75,3.64, 3.86,3.74,3.80,3.85,3.81,3.90,3.83,3.74,3.86,3.84, 3.85,4.00,3.88,3.94,4.00,3.96,3.93,3.98,4.06,4.01, 4.13,3.94,4.04,4.14,4.00,4.10,4.12,4.10,4.21,4.28, 4.25,4.18,4.17,4.19,4.30,4.22,4.25,4.34,4.24,4.31, 4.33,4.30,4.33,4.41,4.31,4.33,4.46,4.39,4.43,4.60, 0.11,0.12,0.14,0.15,0.15,0.16,0.19,0.18,0.20,0.25, 0.23,0.25,0.23,0.26,0.28,0.29,0.31,0.29,0.33,0.31, 0.34,0.35,0.37,0.35,0.40,0.39,0.39,0.45,0.42,0.42, 0.47,0.46,0.47,0.52,0.47,0.54,0.54,0.53,0.52,0.57, 0.60,0.56,0.56,0.62,0.60,0.57,0.62,0.67,0.62,0.67, 0.70,0.67,0.64,0.73,0.66,0.75,0.76,0.78,0.76,0.78, 0.78,0.79,0.77,0.82,0.86,0.82,0.84,0.85,0.91,0.86, 0.92,0.94,0.97,0.91,0.89,0.94,0.94,0.95,1.01,0.94, 0.98,1.04,1.11,1.08,1.10,1.10,1.05,1.10,1.06,1.10, 1.06,1.21,1.16,1.16,1.19,1.18,1.17,1.19,1.26,1.22, 1.27,1.24,1.22,1.21,1.31,1.29,1.32,1.32,1.20,1.34, 1.28,1.34,1.41,1.37,1.41,1.43,1.47,1.43,1.52,1.41, 1.46,1.45,1.44,1.48,1.45,1.44,1.54,1.60,1.55,1.56, 1.54,1.66,1.55,1.60,1.62,1.59,1.68,1.72,1.70,1.61, 1.69,1.59,1.67,1.67,1.76,1.75,1.77,1.79,1.71,1.73, 1.81,1.82,1.77,1.84,1.81,1.85,1.86,1.87,1.92,1.92, 1.92,1.94,1.94,1.91,1.94,1.97,2.05,2.03,1.95,2.04, 2.10,2.11,2.01,2.12,2.07,2.08,2.15,2.06,2.12,2.08, 2.15,2.24,2.16,2.17,2.22,2.24,2.19,2.19,2.25,2.16, 2.30,2.17,2.26,2.25,2.25,2.30,2.26,2.35,2.36,2.36, 2.32,2.40,2.34,2.35,2.41,2.44,2.39,2.39,2.51,2.53, 2.50,2.43,2.41,2.41,2.51,2.53,2.45,2.50,2.63,2.50, 2.49,2.50,2.64,2.64,2.63,2.65,2.71,2.58,2.60,2.74, 2.61,2.81,2.68,2.68,2.78,2.80,2.76,2.84,2.71,2.73, 2.83,2.79,2.77,2.85,2.82,2.81,2.85,2.88,2.91,2.92, 2.82,2.87,2.98,2.94,3.02,2.99,2.98,3.08,3.07,2.96, 3.04,3.10,3.11,3.08,3.08,3.15,3.03,3.18,3.13,3.09, 3.28,3.06,3.24,3.11,3.12,3.28,3.22,3.19,3.27,3.27, 3.28,3.33,3.35,3.40,3.34,3.23,3.35,3.34,3.41,3.42, 0.09,0.10,0.09,0.12,0.12,0.12,0.16,0.14,0.14,0.17, 0.16,0.17,0.19,0.18,0.18,0.23,0.21,0.25,0.22,0.27, 0.29,0.27,0.25,0.27,0.25,0.31,0.29,0.33,0.30,0.32, 0.33,0.34,0.36,0.35,0.39,0.40,0.42,0.38,0.42,0.44, 0.39,0.43,0.42,0.39,0.47,0.43,0.47,0.50,0.45,0.49, 0.47,0.49,0.55,0.54,0.57,0.56,0.60,0.58,0.58,0.59, 0.63,0.58,0.58,0.62,0.63,0.61,0.65,0.68,0.67,0.67, 0.68,0.69,0.71,0.71,0.76,0.71,0.73,0.74,0.74,0.73, 0.78,0.78,0.74,0.73,0.82,0.81,0.79,0.83,0.81,0.83, 0.82,0.89,0.87,0.87,0.84,0.91,0.89,0.89,0.86,0.88, 0.90,0.94,0.97,0.88,0.98,0.98,0.96,0.99,1.00,1.03, 1.06,0.99,1.08,1.01,1.05,1.03,1.11,1.08,1.09,1.09, 1.05,1.08,1.11,1.11,1.11,1.18,1.09,1.12,1.14,1.22, 1.20,1.23,1.21,1.21,1.23,1.25,1.23,1.26,1.25,1.26, 1.25,1.31,1.29,1.35,1.27,1.35,1.29,1.25,1.30,1.33, 1.40,1.38,1.36,1.34,1.40,1.38,1.34,1.38,1.42,1.36, 1.40,1.43,1.44,1.37,1.46,1.49,1.49,1.53,1.50,1.50, 1.44,1.59,1.57,1.51,1.52,1.46,1.65,1.54,1.56,1.56, 1.62,1.59,1.64,1.58,1.62,1.63,1.66,1.66,1.66,1.72, 1.74,1.68,1.71,1.68,1.74,1.72,1.68,1.78,1.77,1.80, 1.77,1.81,1.82,1.90,1.80,1.76,1.82,1.86,1.82,1.84, 1.82,1.85,1.91,1.85,1.92,1.90,1.92,1.92,1.95,1.95, 1.91,1.96,1.98,1.99,2.06,1.91,2.00,1.98,1.99,1.94, 1.97,1.98,2.02,2.12,2.16,2.05,2.17,2.13,2.20,2.12, 2.15,2.03,2.09,2.04,2.13,2.17,2.07,2.13,2.12,2.15, 2.21,2.16,2.24,2.27,2.21,2.24,2.25,2.16,2.21,2.27, 2.25,2.26,2.32,2.23,2.28,2.35,2.29,2.31,2.32,2.34, 2.38,2.28,2.42,2.34,2.32,2.39,2.47,2.41,2.53,2.44, 2.40,2.41,2.48,2.46,2.43,2.45,2.46,2.39,2.50,2.50, 0.07,0.06,0.07,0.09,0.09,0.09,0.09,0.11,0.11,0.13, 0.12,0.13,0.13,0.15,0.13,0.17,0.16,0.16,0.17,0.20, 0.18,0.20,0.23,0.23,0.22,0.22,0.22,0.23,0.23,0.24, 0.23,0.25,0.26,0.30,0.31,0.29,0.30,0.29,0.28,0.30, 0.28,0.35,0.31,0.32,0.35,0.39,0.32,0.35,0.35,0.38, 0.37,0.35,0.40,0.39,0.43,0.41,0.42,0.46,0.44,0.42, 0.46,0.43,0.45,0.47,0.44,0.46,0.47,0.46,0.50,0.54, 0.51,0.55,0.53,0.56,0.54,0.56,0.53,0.57,0.53,0.57, 0.58,0.59,0.58,0.61,0.58,0.61,0.59,0.63,0.62,0.60, 0.60,0.65,0.64,0.68,0.66,0.67,0.67,0.64,0.68,0.68, 0.73,0.68,0.73,0.72,0.71,0.77,0.73,0.78,0.75,0.73, 0.71,0.79,0.77,0.76,0.81,0.74,0.84,0.80,0.79,0.76, 0.82,0.83,0.80,0.85,0.86,0.83,0.86,0.85,0.85,0.85, 0.86,0.88,0.84,0.88,0.88,0.95,0.93,0.94,0.96,0.88, 0.93,0.93,0.95,0.94,0.97,1.01,1.02,0.96,0.94,1.03, 0.99,0.90,0.99,1.00,1.12,1.02,1.04,1.05,1.10,1.09, 1.07,1.08,1.12,1.13,1.12,1.06,1.13,1.07,1.15,1.14, 1.11,1.14,1.16,1.08,1.18,1.17,1.16,1.16,1.21,1.22, 1.19,1.23,1.24,1.26,1.23,1.21,1.21,1.30,1.24,1.23, 1.27,1.29,1.24,1.26,1.32,1.31,1.30,1.34,1.29,1.35, 1.31,1.34,1.31,1.29,1.35,1.33,1.34,1.43,1.44,1.37, 1.32,1.46,1.38,1.40,1.38,1.43,1.46,1.45,1.38,1.39, 1.45,1.46,1.52,1.49,1.45,1.50,1.55,1.46,1.54,1.54, 1.48,1.54,1.52,1.62,1.46,1.57,1.56,1.54,1.53,1.58, 1.59,1.54,1.59,1.62,1.60,1.64,1.59,1.58,1.59,1.59, 1.62,1.60,1.75,1.69,1.71,1.69,1.62,1.67,1.64,1.67, 1.73,1.67,1.77,1.69,1.73,1.81,1.73,1.80,1.77,1.79, 1.81,1.71,1.77,1.73,1.75,1.85,1.74,1.89,1.87,1.78, 1.80,1.80,1.85,1.82,1.88,1.84,1.84,1.85,1.93,1.87, 0.05,0.05,0.06,0.05,0.07,0.08,0.09,0.07,0.07,0.10, 0.09,0.12,0.11,0.10,0.12,0.11,0.11,0.14,0.13,0.17, 0.16,0.15,0.15,0.14,0.14,0.16,0.17,0.20,0.16,0.18, 0.17,0.17,0.22,0.20,0.23,0.23,0.22,0.20,0.22,0.22, 0.20,0.22,0.26,0.26,0.25,0.28,0.29,0.24,0.28,0.27, 0.27,0.32,0.30,0.27,0.28,0.29,0.31,0.29,0.33,0.34, 0.35,0.32,0.35,0.35,0.39,0.34,0.35,0.37,0.39,0.42, 0.41,0.35,0.39,0.37,0.39,0.39,0.38,0.40,0.41,0.42, 0.42,0.41,0.41,0.45,0.47,0.47,0.47,0.43,0.45,0.44, 0.48,0.50,0.51,0.54,0.46,0.44,0.52,0.48,0.47,0.51, 0.53,0.53,0.54,0.52,0.52,0.58,0.57,0.54,0.58,0.58, 0.56,0.58,0.56,0.57,0.54,0.57,0.59,0.55,0.65,0.62, 0.64,0.62,0.61,0.65,0.62,0.65,0.64,0.61,0.67,0.61, 0.68,0.65,0.64,0.69,0.66,0.67,0.70,0.69,0.68,0.69, 0.67,0.69,0.75,0.69,0.71,0.72,0.75,0.72,0.74,0.73, 0.77,0.72,0.80,0.78,0.72,0.77,0.80,0.78,0.82,0.79, 0.80,0.76,0.82,0.84,0.86,0.84,0.79,0.85,0.85,0.85, 0.87,0.87,0.84,0.90,0.83,0.86,0.86,0.89,0.85,0.87, 0.95,0.84,0.97,0.92,0.94,0.92,0.92,0.99,0.96,0.94, 0.93,0.92,0.97,0.97,0.89,0.92,0.97,0.99,1.01,0.95, 0.98,0.97,1.05,1.02,1.08,1.04,1.03,1.07,1.00,1.10, 1.08,1.05,1.09,1.05,1.05,1.02,1.09,1.11,1.10,1.03, 1.10,1.15,1.17,1.11,1.17,1.16,1.15,1.21,1.11,1.11, 1.19,1.19,1.14,1.16,1.16,1.20,1.17,1.14,1.14,1.17, 1.11,1.22,1.17,1.24,1.13,1.25,1.19,1.25,1.21,1.24, 1.21,1.25,1.22,1.22,1.23,1.26,1.27,1.22,1.28,1.31, 1.26,1.28,1.28,1.23,1.26,1.26,1.27,1.34,1.28,1.28, 1.34,1.32,1.31,1.37,1.39,1.38,1.35,1.38,1.35,1.32, 1.35,1.40,1.37,1.41,1.34,1.34,1.41,1.42,1.43,1.47, 0.03,0.04,0.05,0.05,0.05,0.06,0.08,0.06,0.06,0.07, 0.07,0.08,0.09,0.09,0.07,0.10,0.09,0.10,0.10,0.09, 0.12,0.12,0.13,0.12,0.11,0.11,0.12,0.14,0.13,0.15, 0.14,0.15,0.14,0.14,0.15,0.14,0.18,0.18,0.15,0.18, 0.18,0.17,0.15,0.19,0.19,0.21,0.20,0.21,0.24,0.21, 0.22,0.22,0.20,0.22,0.22,0.24,0.23,0.25,0.26,0.23, 0.26,0.24,0.24,0.26,0.25,0.27,0.26,0.28,0.26,0.26, 0.29,0.28,0.31,0.27,0.29,0.29,0.32,0.30,0.29,0.33, 0.31,0.33,0.28,0.34,0.32,0.37,0.34,0.36,0.37,0.36, 0.36,0.33,0.38,0.37,0.37,0.36,0.39,0.38,0.38,0.39, 0.40,0.38,0.39,0.38,0.38,0.36,0.41,0.43,0.42,0.40, 0.44,0.41,0.43,0.42,0.46,0.42,0.39,0.43,0.45,0.44, 0.45,0.45,0.51,0.47,0.51,0.52,0.45,0.46,0.48,0.47, 0.50,0.51,0.49,0.53,0.49,0.53,0.53,0.50,0.55,0.52, 0.50,0.52,0.54,0.54,0.56,0.56,0.54,0.54,0.54,0.55, 0.57,0.58,0.59,0.57,0.57,0.59,0.62,0.61,0.62,0.61, 0.61,0.59,0.59,0.62,0.65,0.65,0.61,0.64,0.61,0.61, 0.61,0.61,0.67,0.64,0.66,0.64,0.67,0.65,0.66,0.70, 0.71,0.66,0.68,0.68,0.65,0.69,0.73,0.70,0.71,0.70, 0.70,0.69,0.72,0.71,0.71,0.76,0.72,0.73,0.73,0.76, 0.66,0.76,0.76,0.81,0.75,0.76,0.77,0.75,0.84,0.77, 0.78,0.80,0.80,0.74,0.82,0.80,0.84,0.79,0.83,0.79, 0.83,0.79,0.79,0.83,0.79,0.86,0.82,0.91,0.83,0.81, 0.81,0.85,0.84,0.86,0.84,0.84,0.89,0.91,0.88,0.92, 0.92,0.92,0.86,0.88,0.95,0.92,0.91,0.91,0.94,0.96, 0.92,0.94,0.95,0.99,0.93,0.98,0.93,0.93,0.94,1.00, 0.97,0.95,0.96,0.94,0.96,1.02,0.93,0.93,1.01,0.91, 0.99,1.00,0.95,1.02,0.96,1.05,1.01,1.03,1.01,1.07, 1.02,1.02,1.06,1.06,1.01,1.06,1.01,1.09,1.02,1.10, 0.03,0.03,0.03,0.03,0.04,0.05,0.05,0.06,0.05,0.06, 0.05,0.04,0.07,0.06,0.07,0.06,0.06,0.07,0.07,0.07, 0.07,0.07,0.08,0.08,0.10,0.11,0.10,0.10,0.09,0.10, 0.10,0.12,0.13,0.11,0.12,0.11,0.12,0.13,0.13,0.13, 0.12,0.13,0.15,0.15,0.14,0.15,0.15,0.14,0.17,0.16, 0.14,0.17,0.17,0.16,0.20,0.17,0.19,0.17,0.18,0.18, 0.16,0.19,0.18,0.19,0.20,0.18,0.22,0.20,0.21,0.23, 0.20,0.23,0.21,0.21,0.22,0.21,0.23,0.24,0.26,0.23, 0.23,0.25,0.23,0.25,0.24,0.25,0.27,0.26,0.26,0.26, 0.24,0.26,0.27,0.25,0.28,0.31,0.28,0.30,0.28,0.29, 0.31,0.30,0.27,0.28,0.28,0.31,0.33,0.36,0.33,0.33, 0.31,0.33,0.31,0.32,0.31,0.33,0.32,0.37,0.31,0.32, 0.37,0.36,0.36,0.35,0.38,0.39,0.36,0.34,0.36,0.34, 0.35,0.36,0.37,0.38,0.37,0.37,0.39,0.42,0.40,0.40, 0.42,0.39,0.39,0.39,0.43,0.43,0.41,0.41,0.42,0.44, 0.44,0.41,0.41,0.47,0.43,0.45,0.41,0.42,0.47,0.42, 0.51,0.48,0.43,0.48,0.44,0.47,0.47,0.46,0.49,0.49, 0.43,0.51,0.51,0.48,0.51,0.52,0.51,0.50,0.50,0.53, 0.50,0.53,0.46,0.51,0.52,0.54,0.57,0.52,0.55,0.53, 0.55,0.54,0.56,0.56,0.59,0.59,0.57,0.54,0.54,0.56, 0.60,0.55,0.56,0.54,0.59,0.58,0.57,0.62,0.58,0.56, 0.58,0.52,0.61,0.62,0.64,0.61,0.64,0.59,0.63,0.62, 0.62,0.65,0.68,0.67,0.65,0.60,0.61,0.60,0.62,0.64, 0.66,0.64,0.64,0.66,0.67,0.66,0.62,0.63,0.66,0.66, 0.67,0.62,0.67,0.68,0.63,0.69,0.69,0.65,0.67,0.71, 0.73,0.67,0.69,0.68,0.67,0.70,0.68,0.68,0.74,0.67, 0.77,0.70,0.71,0.73,0.73,0.75,0.72,0.74,0.73,0.75, 0.76,0.77,0.74,0.73,0.74,0.76,0.79,0.79,0.76,0.78, 0.78,0.79,0.80,0.75,0.82,0.72,0.76,0.80,0.84,0.81, 1.73,1.82,2.07,2.22,2.42,2.56,2.69,2.73,3.12,3.24, 3.45,3.43,3.71,3.86,4.01,4.19,4.33,4.55,4.70,4.86, 5.07,5.22,5.34,5.46,5.64,5.81,5.88,6.19,6.39,6.49, 6.68,6.67,7.06,7.14,7.34,7.55,7.65,7.72,8.03,8.21, 8.34,8.59,8.61,8.70,8.87,9.04,9.30,9.37,9.54,9.91, 10.00,10.07,10.37,10.51,10.52,10.69,11.06,11.01,11.25,11.48, 11.62,11.80,11.84,12.20,12.21,12.42,12.52,12.76,12.93,13.05, 13.20,13.38,13.64,13.96,13.94,13.91,14.20,14.48,14.65,14.78, 15.07,15.00,15.30,15.31,15.60,15.73,15.86,16.34,16.12,16.32, 16.48,16.76,16.93,17.03,17.20,17.46,17.59,17.63,17.85,18.00, 18.25,18.34,18.54,18.65,18.89,18.92,19.37,19.36,19.48,19.75, 19.81,19.86,20.13,20.48,20.53,20.68,21.03,21.11,21.04,21.28, 21.53,21.57,21.66,22.19,22.24,22.34,22.44,22.75,22.96,23.25, 23.03,23.10,23.37,23.62,23.72,23.77,24.06,24.48,24.46,24.48, 25.04,25.09,25.29,25.19,25.43,25.74,25.50,26.07,26.11,26.31, 26.47,26.54,26.59,26.76,27.15,27.18,27.37,27.68,28.01,28.06, 28.14,28.30,28.39,28.79,29.02,28.69,29.26,29.20,29.47,29.66, 29.54,30.06,30.00,30.34,30.20,30.64,30.72,30.80,31.31,31.15, 31.45,31.36,31.68,31.94,31.52,32.23,32.33,32.65,32.64,32.78, 32.95,33.12,33.26,33.67,33.69,33.83,34.10,34.15,34.41,34.71, 34.75,35.02,34.91,35.31,35.44,35.39,35.90,36.03,35.65,36.22, 36.28,36.48,36.62,36.99,37.01,37.11,37.36,37.26,37.68,37.83, 37.79,38.14,38.35,38.70,38.74,39.17,38.72,39.17,39.45,39.81, 39.54,39.78,40.15,40.30,40.30,40.38,40.77,40.74,40.93,41.07, 41.17,41.34,41.57,41.74,41.96,42.30,42.31,42.22,42.59,42.89, 42.80,42.93,43.36,43.39,43.56,43.68,43.82,44.58,44.43,44.42, 44.75,44.84,44.74,45.14,45.36,45.70,45.71,45.51,45.77,46.12, 46.09,46.55,46.64,46.66,46.99,46.95,46.89,47.52,47.44,47.63, 47.55,48.07,48.41,48.28,48.50,48.68,48.97,49.20,49.07,49.51, 1.30,1.35,1.58,1.70,1.82,1.94,2.04,2.16,2.23,2.45, 2.54,2.73,2.84,2.84,3.15,3.17,3.30,3.50,3.54,3.64, 3.77,3.91,4.07,4.23,4.35,4.40,4.55,4.76,4.74,4.89, 4.98,5.12,5.34,5.55,5.57,5.64,5.71,5.95,6.10,6.13, 6.36,6.41,6.48,6.62,6.78,6.82,7.15,7.08,7.35,7.54, 7.61,7.67,7.85,7.86,8.08,8.26,8.43,8.57,8.63,8.63, 8.85,8.83,9.19,9.31,9.38,9.35,9.60,9.57,9.83,10.02, 10.04,10.23,10.36,10.39,10.62,10.73,10.70,10.85,11.16,11.29, 11.30,11.46,11.79,11.71,11.58,11.97,12.05,12.16,12.37,12.47, 12.67,12.69,12.87,12.93,13.12,13.15,13.31,13.44,13.51,13.70, 13.69,14.01,14.08,14.31,14.39,14.41,14.44,14.66,14.93,14.90, 15.03,15.33,15.32,15.55,15.54,15.89,15.93,15.89,15.96,16.18, 16.43,16.46,16.57,17.02,16.84,16.95,17.05,17.15,17.36,17.50, 17.62,17.75,17.83,18.12,18.08,18.39,18.46,18.40,18.61,18.82, 18.93,18.86,19.06,19.29,19.15,19.33,19.56,19.86,19.93,20.05, 20.29,19.92,20.21,20.50,20.72,20.82,20.93,20.94,21.07,21.04, 21.33,21.21,21.83,21.93,22.01,22.02,22.07,22.37,22.34,22.56, 22.59,22.57,22.88,22.95,23.14,23.18,23.48,23.30,23.44,23.38, 23.88,24.12,24.06,24.22,24.22,24.35,24.87,24.73,24.73,24.95, 25.23,25.25,25.34,25.51,25.61,25.71,25.92,25.92,25.92,26.23, 26.39,26.47,26.65,26.45,27.01,27.12,26.77,27.11,27.48,27.44, 27.67,27.74,27.46,28.03,27.89,28.24,28.52,28.73,28.67,28.73, 28.88,29.05,29.06,29.06,29.40,29.62,29.43,29.85,30.04,29.82, 30.09,30.12,30.40,30.52,30.44,30.59,30.65,31.32,31.08,31.13, 31.55,31.71,31.48,31.88,31.75,32.11,31.84,32.18,32.30,32.29, 32.54,32.79,32.87,32.83,33.41,33.22,33.28,33.55,33.57,33.54, 33.81,33.96,34.03,34.24,34.40,34.55,34.46,34.79,34.95,34.99, 35.24,35.23,35.43,35.55,35.58,35.74,35.87,36.00,36.05,36.16, 36.43,36.52,36.42,36.78,36.80,37.24,37.45,37.22,37.36,37.53, 0.97,1.06,1.16,1.25,1.45,1.49,1.55,1.68,1.78,1.84, 1.93,2.04,2.22,2.23,2.27,2.39,2.52,2.61,2.66,2.73, 2.83,2.98,3.12,3.13,3.26,3.35,3.45,3.65,3.69,3.68, 3.86,3.96,4.01,4.22,4.22,4.36,4.37,4.44,4.67,4.63, 4.68,4.91,4.98,5.05,5.07,5.29,5.33,5.47,5.64,5.69, 5.81,5.74,5.90,5.94,6.02,6.16,6.29,6.40,6.55,6.53, 6.77,6.71,7.00,7.02,7.10,7.30,7.34,7.33,7.45,7.54, 7.65,7.85,7.84,7.95,8.07,8.07,8.21,8.46,8.49,8.48, 8.62,8.70,8.81,8.60,9.02,9.01,9.34,9.28,9.36,9.41, 9.48,9.60,9.74,9.91,10.04,9.88,10.01,10.17,10.33,10.42, 10.43,10.52,10.86,10.81,10.82,10.84,11.13,11.15,11.33,11.21, 11.59,11.44,11.70,11.79,11.79,12.06,12.01,12.07,12.02,12.28, 12.47,12.43,12.84,12.88,12.78,12.79,12.88,13.23,13.17,13.17, 13.31,13.37,13.66,13.63,13.89,13.84,14.01,13.91,14.08,14.08, 14.25,14.42,14.44,14.60,14.69,14.85,14.88,14.87,14.98,15.39, 15.33,15.46,15.54,15.56,15.96,15.56,15.87,16.01,16.11,16.14, 16.32,16.32,16.36,16.41,16.68,16.66,16.93,16.69,16.80,16.95, 17.31,17.03,17.55,17.59,17.34,17.67,17.80,17.80,17.78,18.14, 18.00,18.29,18.58,18.45,18.55,18.65,18.62,18.77,19.06,18.99, 19.13,19.36,19.09,19.40,19.51,19.33,19.53,19.68,19.73,19.80, 19.87,20.13,20.36,20.31,20.50,20.59,20.70,20.74,20.71,21.12, 21.05,21.23,21.30,21.38,21.31,21.43,21.59,21.69,21.95,21.79, 21.92,21.98,22.36,22.22,22.31,22.42,22.46,22.56,22.53,22.94, 22.88,22.94,23.14,22.99,23.22,23.39,23.52,23.71,23.44,23.65, 24.02,23.78,24.52,24.22,24.40,24.41,24.46,24.48,24.87,25.01, 24.76,25.00,24.73,25.12,25.29,25.14,25.36,25.51,25.70,25.89, 25.81,25.84,25.83,26.10,26.11,26.06,26.45,26.55,26.62,26.54, 26.39,26.82,26.77,26.75,26.72,27.56,27.39,27.40,27.29,27.47, 27.60,27.59,27.74,28.01,28.11,27.98,28.06,28.06,28.53,28.37, 0.74,0.84,0.92,0.94,1.12,1.11,1.20,1.22,1.38,1.37, 1.46,1.52,1.60,1.71,1.73,1.85,1.90,1.97,2.03,2.17, 2.24,2.28,2.46,2.47,2.45,2.58,2.70,2.74,2.75,2.94, 2.86,2.99,3.09,3.08,3.25,3.15,3.33,3.36,3.46,3.60, 3.64,3.67,3.73,3.87,3.90,4.03,4.07,4.20,4.22,4.27, 4.44,4.49,4.48,4.57,4.71,4.75,4.76,4.84,4.85,4.89, 5.08,5.16,5.24,5.42,5.47,5.50,5.59,5.54,5.72,5.82, 5.90,5.88,5.94,6.04,6.12,6.24,6.16,6.32,6.33,6.51, 6.54,6.66,6.74,6.67,6.80,6.85,6.93,7.01,7.14,7.14, 7.20,7.44,7.39,7.55,7.42,7.58,7.72,7.78,7.82,7.88, 8.01,7.87,8.09,8.36,8.39,8.38,8.49,8.53,8.66,8.63, 8.66,8.82,8.98,8.92,9.08,9.06,9.04,9.13,9.40,9.25, 9.32,9.63,9.39,9.69,9.77,9.82,9.84,9.86,9.93,10.21, 10.23,10.15,10.33,10.21,10.57,10.55,10.69,10.54,10.66,10.82, 10.80,10.93,10.95,10.87,11.02,11.11,11.25,11.33,11.37,11.60, 11.59,11.52,11.84,11.91,12.00,12.08,11.77,12.06,12.15,12.24, 12.42,12.44,12.41,12.50,12.50,12.66,12.64,12.86,12.89,13.02, 13.10,13.06,13.43,13.34,13.52,13.39,13.61,13.65,13.67,13.72, 13.66,13.84,13.88,14.03,13.89,14.20,14.25,14.60,14.20,14.47, 14.29,14.43,14.68,14.75,14.72,14.85,14.91,14.91,15.05,15.19, 15.23,15.07,15.45,15.38,15.86,15.74,15.57,15.82,15.73,15.80, 16.02,16.16,16.06,16.34,16.27,16.09,16.51,16.36,16.35,16.71, 16.63,16.66,16.89,16.73,17.18,16.99,16.98,17.02,17.48,17.29, 17.36,17.54,17.39,17.78,17.80,17.90,17.70,17.96,18.03,18.14, 18.18,18.50,18.23,18.27,18.36,18.27,18.53,18.76,18.57,18.75, 19.02,18.94,18.95,19.16,18.95,19.31,19.15,19.37,19.15,19.49, 19.65,19.83,19.69,19.67,19.72,19.96,19.98,20.21,20.13,20.37, 20.37,20.38,20.58,20.48,20.66,20.59,20.78,20.75,20.91,21.04, 20.90,21.08,21.11,21.36,21.38,21.48,21.22,21.41,21.58,21.32, 0.54,0.63,0.66,0.70,0.78,0.88,0.89,0.97,1.08,1.11, 1.10,1.23,1.23,1.29,1.39,1.35,1.47,1.51,1.52,1.56, 1.63,1.76,1.77,1.81,1.92,1.97,1.94,2.03,2.10,2.20, 2.17,2.21,2.37,2.45,2.45,2.42,2.55,2.57,2.69,2.71, 2.78,2.84,2.78,2.90,2.89,3.04,3.10,3.09,3.19,3.27, 3.31,3.40,3.33,3.55,3.50,3.63,3.59,3.69,3.83,3.81, 4.02,3.97,3.99,3.99,4.14,4.26,4.15,4.34,4.29,4.43, 4.31,4.43,4.58,4.47,4.70,4.74,4.88,4.74,4.91,4.95, 4.96,5.02,5.07,5.06,5.21,5.15,5.29,5.36,5.35,5.50, 5.47,5.73,5.65,5.75,5.69,5.77,5.85,5.92,5.95,5.90, 6.08,6.08,6.14,6.26,6.20,6.37,6.37,6.41,6.52,6.61, 6.60,6.73,6.71,6.84,6.87,6.94,6.93,7.02,6.93,7.11, 7.17,7.23,7.35,7.37,7.43,7.44,7.51,7.50,7.63,7.66, 7.64,7.82,7.84,7.86,7.88,7.97,8.10,8.17,8.22,8.25, 8.22,8.38,8.33,8.43,8.41,8.58,8.55,8.70,8.80,8.85, 8.85,8.84,8.90,9.12,9.05,9.04,9.12,9.13,9.38,9.15, 9.20,9.40,9.65,9.31,9.61,9.53,9.69,9.80,9.86,9.92, 9.86,9.97,10.15,10.09,10.12,10.24,10.09,10.22,10.29,10.37, 10.53,10.58,10.66,10.61,10.61,10.60,10.87,10.77,11.10,10.99, 10.88,11.03,11.26,11.35,11.24,11.18,11.16,11.31,11.50,11.50, 11.59,11.75,11.78,11.54,11.70,11.82,12.04,11.89,11.97,12.09, 12.09,12.16,12.21,12.22,12.25,12.31,12.58,12.67,12.46,12.72, 12.70,12.66,12.68,12.69,12.82,12.91,12.81,13.19,13.20,13.02, 13.11,13.29,13.33,13.36,13.52,13.65,13.53,13.52,13.71,13.68, 13.86,13.94,13.81,13.87,14.19,14.00,14.01,14.02,14.33,14.26, 14.31,14.44,14.46,14.46,14.45,14.59,14.69,14.63,14.69,14.93, 14.73,14.70,14.94,15.01,15.20,15.21,15.22,15.15,15.47,15.33, 15.33,15.52,15.64,15.67,15.47,15.77,15.57,15.69,15.88,16.04, 15.97,15.95,16.13,16.23,16.24,16.22,16.18,16.32,16.33,16.35, 0.45,0.46,0.54,0.58,0.63,0.66,0.71,0.70,0.80,0.83, 0.91,0.89,0.93,1.02,0.99,1.12,1.07,1.13,1.23,1.21, 1.18,1.31,1.36,1.43,1.45,1.47,1.53,1.49,1.60,1.66, 1.74,1.76,1.78,1.88,1.83,1.91,1.89,1.88,2.06,2.11, 2.11,2.12,2.22,2.26,2.39,2.29,2.41,2.40,2.43,2.49, 2.51,2.56,2.57,2.64,2.65,2.74,2.58,2.69,2.83,2.94, 2.97,3.02,3.08,3.00,3.05,3.12,3.15,3.22,3.37,3.35, 3.39,3.40,3.45,3.56,3.51,3.56,3.57,3.61,3.73,3.74, 3.74,3.84,3.88,3.97,4.01,3.97,4.09,4.07,4.04,4.17, 4.23,4.22,4.29,4.39,4.34,4.43,4.46,4.49,4.38,4.51, 4.56,4.59,4.76,4.77,4.68,4.82,4.92,4.91,4.95,4.95, 5.02,4.99,5.24,5.21,5.17,5.27,5.43,5.40,5.30,5.49, 5.44,5.52,5.54,5.51,5.59,5.62,5.69,5.85,5.72,5.74, 5.88,5.86,6.01,6.11,6.15,6.16,6.01,6.25,6.27,6.28, 6.32,6.32,6.47,6.45,6.34,6.58,6.61,6.57,6.55,6.69, 6.63,6.74,6.78,6.71,6.91,6.89,6.97,6.93,6.97,7.26, 7.20,7.19,7.12,7.33,7.37,7.50,7.31,7.48,7.39,7.51, 7.63,7.55,7.56,7.75,7.74,7.79,7.80,7.74,8.02,7.86, 8.02,8.01,8.09,8.08,8.05,8.32,8.21,8.25,8.29,8.39, 8.36,8.45,8.39,8.46,8.60,8.71,8.52,8.83,8.66,8.77, 8.88,8.65,8.93,8.95,9.01,8.98,9.07,9.10,9.13,9.10, 9.24,9.22,9.34,9.45,9.42,9.53,9.44,9.71,9.59,9.49, 9.64,9.74,9.88,9.57,9.68,9.66,9.70,10.03,9.92,9.91, 10.21,10.09,10.17,10.20,10.23,10.15,10.40,10.23,10.32,10.53, 10.46,10.39,10.45,10.68,10.55,10.55,10.64,10.88,10.78,10.76, 10.68,10.95,10.95,11.17,11.10,11.25,11.15,11.33,11.33,11.28, 11.39,11.34,11.30,11.63,11.44,11.60,11.55,11.62,11.67,11.61, 11.78,11.82,11.80,11.92,11.87,11.98,11.82,12.00,12.19,12.02, 12.19,12.35,12.25,12.24,12.33,12.28,12.50,12.36,12.40,12.45, 0.34,0.37,0.37,0.40,0.42,0.49,0.49,0.53,0.56,0.65, 0.67,0.68,0.75,0.69,0.75,0.80,0.89,0.88,0.88,0.95, 0.99,1.02,1.06,1.02,1.10,1.03,1.17,1.21,1.25,1.22, 1.33,1.25,1.42,1.39,1.39,1.41,1.43,1.47,1.51,1.58, 1.58,1.65,1.66,1.66,1.72,1.72,1.77,1.92,1.87,1.88, 1.95,1.94,1.96,2.06,2.04,2.07,2.10,2.14,2.26,2.24, 2.20,2.31,2.28,2.33,2.34,2.45,2.41,2.48,2.54,2.56, 2.59,2.58,2.55,2.65,2.66,2.74,2.75,2.76,2.82,2.84, 2.88,2.83,2.98,2.92,2.89,3.09,3.11,3.05,3.11,3.17, 3.20,3.23,3.34,3.31,3.27,3.32,3.45,3.48,3.36,3.47, 3.53,3.54,3.58,3.58,3.58,3.62,3.73,3.81,3.73,3.81, 3.91,3.82,3.92,3.93,3.90,4.01,4.04,3.97,4.01,4.13, 4.29,4.25,4.20,4.21,4.25,4.28,4.36,4.22,4.40,4.49, 4.42,4.47,4.54,4.51,4.55,4.64,4.63,4.75,4.63,4.76, 4.91,4.77,4.92,4.91,4.93,4.98,4.91,5.16,5.10,5.00, 5.04,5.19,5.13,5.07,5.26,5.21,5.33,5.21,5.29,5.47, 5.51,5.49,5.49,5.49,5.52,5.49,5.63,5.65,5.58,5.71, 5.67,5.76,5.81,5.79,5.92,5.89,5.82,6.02,6.00,6.00, 6.07,6.11,6.02,6.07,6.21,6.19,6.27,6.21,6.21,6.16, 6.47,6.51,6.47,6.45,6.49,6.46,6.41,6.51,6.58,6.74, 6.63,6.79,6.83,6.78,6.80,6.81,6.84,6.84,6.93,6.85, 7.00,7.04,7.14,6.99,7.02,7.12,7.22,7.14,7.37,7.25, 7.28,7.55,7.44,7.44,7.45,7.46,7.54,7.61,7.62,7.45, 7.65,7.63,7.73,7.86,7.98,7.71,7.82,7.91,7.86,7.93, 7.99,7.96,8.13,7.99,8.05,8.11,8.29,8.31,8.22,8.19, 8.37,8.27,8.21,8.49,8.63,8.39,8.23,8.66,8.64,8.64, 8.65,8.59,8.58,8.77,8.65,8.78,8.69,8.79,8.89,9.03, 9.02,8.90,8.92,9.03,9.16,8.89,9.00,9.18,9.13,9.17, 9.35,9.39,9.19,9.39,9.31,9.29,9.37,9.51,9.39,9.43, 0.25,0.26,0.32,0.37,0.36,0.36,0.41,0.40,0.43,0.47, 0.49,0.50,0.51,0.59,0.60,0.60,0.61,0.65,0.67,0.72, 0.73,0.78,0.77,0.82,0.84,0.82,0.84,0.93,0.94,0.92, 0.96,1.03,1.04,1.09,1.05,1.12,1.10,1.16,1.14,1.23, 1.22,1.22,1.30,1.30,1.28,1.34,1.39,1.33,1.43,1.40, 1.47,1.49,1.45,1.54,1.50,1.61,1.62,1.60,1.61,1.72, 1.76,1.75,1.81,1.77,1.81,1.78,1.84,1.83,1.84,1.90, 1.94,1.94,2.05,2.02,2.00,2.10,2.14,2.13,2.18,2.15, 2.19,2.22,2.18,2.23,2.23,2.34,2.32,2.32,2.33,2.36, 2.34,2.44,2.54,2.49,2.52,2.53,2.60,2.59,2.68,2.73, 2.67,2.72,2.67,2.74,2.80,2.79,2.84,2.85,2.84,2.90, 2.85,2.94,2.92,2.93,2.95,3.11,3.06,3.14,3.18,3.12, 3.19,3.17,3.20,3.29,3.18,3.34,3.26,3.36,3.25,3.31, 3.47,3.39,3.45,3.39,3.50,3.47,3.60,3.62,3.55,3.68, 3.66,3.58,3.63,3.67,3.67,3.93,3.85,3.88,3.86,3.78, 3.83,3.89,3.95,4.00,3.93,3.98,3.99,4.05,4.03,4.19, 4.09,4.13,4.20,4.22,4.19,4.25,4.32,4.20,4.39,4.17, 4.44,4.30,4.42,4.37,4.50,4.50,4.51,4.68,4.62,4.52, 4.53,4.58,4.72,4.65,4.77,4.65,4.74,4.85,4.72,4.79, 4.80,4.91,4.82,4.81,4.89,5.07,4.97,5.05,5.12,5.09, 5.17,5.01,5.12,5.08,5.24,5.19,5.14,5.23,5.22,5.24, 5.30,5.42,5.29,5.29,5.41,5.38,5.46,5.58,5.46,5.48, 5.68,5.52,5.52,5.69,5.78,5.69,5.77,5.69,5.74,5.82, 5.75,5.85,5.81,5.87,5.89,5.92,5.91,5.88,5.98,6.07, 6.03,6.17,6.11,6.04,6.14,6.26,6.39,6.13,6.29,6.07, 6.24,6.30,6.33,6.30,6.48,6.43,6.43,6.42,6.46,6.45, 6.45,6.60,6.45,6.60,6.66,6.72,6.66,6.64,6.71,6.76, 6.85,6.70,6.74,6.82,6.93,6.85,6.98,7.01,7.03,7.08, 6.95,6.89,7.06,7.00,7.24,7.06,7.19,7.14,7.21,7.12, 0.20,0.21,0.20,0.23,0.25,0.27,0.30,0.30,0.35,0.38, 0.35,0.40,0.42,0.40,0.43,0.44,0.52,0.52,0.54,0.51, 0.56,0.58,0.59,0.61,0.69,0.67,0.62,0.75,0.70,0.76, 0.73,0.78,0.77,0.87,0.77,0.83,0.91,0.89,0.89,0.87, 0.98,0.95,0.89,1.01,0.99,0.99,1.02,0.98,1.06,1.11, 1.10,1.13,1.12,1.17,1.18,1.18,1.17,1.26,1.27,1.26, 1.30,1.30,1.34,1.30,1.35,1.42,1.43,1.41,1.45,1.42, 1.48,1.47,1.50,1.55,1.52,1.62,1.62,1.55,1.59,1.62, 1.60,1.66,1.68,1.71,1.72,1.73,1.72,1.73,1.86,1.79, 1.79,1.79,1.92,1.82,1.97,1.85,1.95,1.99,1.97,1.97, 2.04,2.04,2.04,2.08,2.08,2.15,2.12,2.15,2.18,2.24, 2.23,2.24,2.27,2.25,2.24,2.25,2.26,2.38,2.41,2.35, 2.39,2.40,2.43,2.45,2.45,2.48,2.53,2.53,2.47,2.54, 2.61,2.50,2.57,2.59,2.64,2.79,2.63,2.66,2.70,2.76, 2.77,2.81,2.77,2.77,2.88,2.81,2.90,2.95,2.90,2.89, 2.97,2.94,2.94,3.07,3.03,3.05,3.04,3.00,3.09,3.07, 3.17,3.16,3.10,3.19,3.20,3.21,3.21,3.18,3.23,3.29, 3.29,3.29,3.34,3.36,3.39,3.28,3.47,3.48,3.58,3.58, 3.54,3.54,3.52,3.53,3.58,3.59,3.52,3.52,3.74,3.67, 3.68,3.58,3.66,3.77,3.65,3.75,3.85,3.77,3.93,3.83, 3.98,3.96,3.92,3.99,3.93,3.84,3.92,3.89,4.06,3.92, 4.12,4.22,4.06,4.02,4.20,4.11,4.01,4.23,4.18,4.20, 4.30,4.15,4.25,4.26,4.32,4.35,4.39,4.42,4.38,4.44, 4.43,4.35,4.35,4.39,4.55,4.46,4.58,4.47,4.47,4.64, 4.56,4.58,4.63,4.69,4.69,4.67,4.60,4.62,4.64,4.80, 4.70,4.83,4.84,4.86,4.85,4.91,4.89,4.84,4.90,4.84, 4.94,5.05,5.09,5.01,4.98,5.03,5.08,5.16,5.06,5.02, 5.16,5.21,5.32,5.19,5.16,5.24,5.32,5.20,5.31,5.36, 5.37,5.31,5.36,5.37,5.47,5.42,5.45,5.37,5.41,5.48, 0.14,0.16,0.16,0.19,0.20,0.22,0.20,0.24,0.25,0.30, 0.31,0.29,0.31,0.33,0.34,0.37,0.37,0.38,0.44,0.44, 0.41,0.47,0.45,0.48,0.46,0.49,0.51,0.52,0.52,0.56, 0.57,0.60,0.57,0.64,0.60,0.67,0.68,0.64,0.67,0.71, 0.70,0.72,0.71,0.75,0.79,0.78,0.77,0.84,0.78,0.85, 0.85,0.88,0.91,0.86,0.90,0.88,0.94,0.95,0.96,0.95, 0.93,1.02,1.02,1.03,1.03,1.01,1.11,1.04,1.08,1.13, 1.09,1.16,1.10,1.17,1.16,1.14,1.20,1.20,1.25,1.24, 1.22,1.29,1.25,1.31,1.32,1.37,1.37,1.30,1.36,1.40, 1.40,1.44,1.42,1.39,1.50,1.40,1.48,1.48,1.48,1.49, 1.51,1.51,1.56,1.63,1.66,1.64,1.64,1.61,1.62,1.68, 1.68,1.64,1.70,1.76,1.71,1.82,1.77,1.82,1.81,1.79, 1.86,1.82,1.86,1.89,1.87,1.86,1.86,1.96,1.98,2.02, 1.95,1.97,2.05,2.03,1.98,2.10,2.11,2.05,2.13,2.08, 2.09,2.10,2.15,2.15,2.05,2.12,2.17,2.21,2.23,2.24, 2.21,2.20,2.24,2.24,2.34,2.22,2.33,2.44,2.32,2.32, 2.42,2.39,2.36,2.43,2.40,2.41,2.40,2.41,2.49,2.56, 2.51,2.48,2.54,2.58,2.54,2.64,2.59,2.66,2.55,2.71, 2.65,2.62,2.70,2.64,2.81,2.71,2.74,2.71,2.81,2.84, 2.67,2.85,2.80,2.91,2.84,2.72,2.92,2.85,2.83,2.93, 2.89,2.93,3.02,3.02,3.00,2.96,3.11,2.97,3.02,3.11, 3.14,3.10,3.10,3.17,3.09,3.06,3.15,3.12,3.24,3.32, 3.26,3.23,3.30,3.25,3.33,3.30,3.37,3.34,3.34,3.29, 3.32,3.38,3.36,3.42,3.44,3.46,3.43,3.44,3.30,3.36, 3.42,3.59,3.45,3.49,3.59,3.62,3.56,3.60,3.70,3.63, 3.64,3.67,3.57,3.66,3.73,3.67,3.80,3.73,3.80,3.84, 3.67,3.83,3.82,3.80,3.73,3.87,3.88,3.87,3.88,3.86, 3.92,3.94,3.91,4.00,4.06,3.96,3.94,3.95,3.96,3.95, 4.02,4.05,3.99,4.14,4.17,4.12,4.20,4.25,4.10,4.11, 0.11,0.12,0.12,0.14,0.15,0.16,0.20,0.20,0.21,0.21, 0.23,0.23,0.23,0.26,0.29,0.26,0.29,0.29,0.30,0.31, 0.33,0.36,0.37,0.34,0.36,0.40,0.39,0.37,0.37,0.42, 0.40,0.41,0.47,0.47,0.48,0.51,0.48,0.52,0.53,0.53, 0.56,0.53,0.52,0.56,0.56,0.58,0.61,0.61,0.62,0.68, 0.64,0.63,0.64,0.65,0.66,0.65,0.75,0.69,0.66,0.77, 0.74,0.76,0.75,0.77,0.80,0.74,0.81,0.86,0.83,0.89, 0.83,0.84,0.86,0.87,0.84,0.95,0.93,0.92,0.97,0.96, 0.95,0.98,0.93,1.04,1.00,1.00,1.03,0.99,1.07,1.04, 1.05,1.10,1.07,1.09,1.06,1.17,1.13,1.17,1.14,1.12, 1.17,1.17,1.17,1.24,1.27,1.25,1.23,1.32,1.21,1.25, 1.28,1.28,1.30,1.28,1.31,1.28,1.33,1.38,1.37,1.36, 1.34,1.43,1.41,1.42,1.43,1.41,1.54,1.40,1.46,1.52, 1.54,1.54,1.54,1.53,1.54,1.53,1.53,1.56,1.60,1.56, 1.54,1.58,1.65,1.60,1.60,1.62,1.56,1.63,1.66,1.72, 1.66,1.75,1.76,1.71,1.66,1.85,1.75,1.84,1.75,1.78, 1.81,1.80,1.83,1.86,1.83,1.84,1.85,1.84,1.85,1.89, 1.89,1.96,1.95,1.95,1.92,2.07,1.83,2.02,2.07,1.99, 1.96,2.09,2.07,2.02,2.09,2.05,1.95,2.12,2.17,2.10, 2.12,2.21,2.17,2.16,2.15,2.10,2.13,2.24,2.20,2.24, 2.23,2.29,2.23,2.28,2.31,2.29,2.27,2.32,2.36,2.28, 2.33,2.27,2.38,2.33,2.31,2.45,2.43,2.40,2.54,2.32, 2.42,2.41,2.52,2.52,2.46,2.44,2.46,2.65,2.56,2.54, 2.54,2.54,2.58,2.64,2.59,2.54,2.66,2.64,2.68,2.71, 2.74,2.60,2.73,2.58,2.68,2.66,2.68,2.63,2.71,2.77, 2.79,2.77,2.74,2.81,2.78,2.83,2.84,2.84,2.85,2.81, 2.81,2.83,2.90,2.93,2.85,2.91,2.88,2.90,2.96,3.02, 2.99,2.94,2.95,2.95,3.17,2.95,2.98,3.04,3.08,3.07, 3.06,3.10,3.07,3.01,3.13,3.16,3.19,3.25,3.19,3.20, 0.09,0.09,0.09,0.11,0.11,0.12,0.12,0.16,0.14,0.17, 0.18,0.17,0.16,0.20,0.16,0.18,0.21,0.23,0.23,0.25, 0.22,0.26,0.30,0.26,0.25,0.29,0.29,0.30,0.33,0.33, 0.32,0.33,0.33,0.35,0.35,0.34,0.39,0.39,0.38,0.40, 0.42,0.43,0.45,0.41,0.41,0.45,0.44,0.43,0.51,0.47, 0.51,0.53,0.48,0.52,0.50,0.55,0.55,0.51,0.59,0.61, 0.62,0.61,0.54,0.57,0.60,0.59,0.62,0.61,0.65,0.64, 0.65,0.66,0.69,0.69,0.72,0.70,0.67,0.73,0.72,0.73, 0.76,0.71,0.75,0.78,0.75,0.81,0.71,0.81,0.84,0.81, 0.81,0.84,0.80,0.82,0.76,0.86,0.88,0.88,0.88,0.95, 0.89,0.90,0.94,0.92,0.92,0.93,0.91,0.94,0.96,0.92, 1.04,0.97,1.03,0.93,1.03,1.04,1.01,1.06,1.07,1.08, 1.01,1.05,1.04,1.09,1.08,1.11,1.08,1.09,1.07,1.16, 1.08,1.14,1.13,1.19,1.17,1.16,1.12,1.16,1.26,1.18, 1.16,1.23,1.26,1.31,1.24,1.28,1.22,1.26,1.31,1.26, 1.32,1.29,1.31,1.33,1.34,1.33,1.30,1.35,1.30,1.34, 1.30,1.41,1.40,1.41,1.43,1.47,1.40,1.49,1.46,1.45, 1.37,1.45,1.47,1.48,1.46,1.50,1.48,1.47,1.44,1.57, 1.51,1.54,1.50,1.58,1.62,1.57,1.57,1.62,1.62,1.55, 1.65,1.60,1.61,1.69,1.66,1.64,1.70,1.69,1.63,1.66, 1.69,1.74,1.69,1.75,1.71,1.75,1.82,1.71,1.81,1.77, 1.79,1.81,1.75,1.77,1.86,1.84,1.78,1.78,1.83,1.79, 1.86,1.82,1.89,1.84,1.85,1.83,1.88,1.99,1.85,1.96, 1.88,1.99,2.01,2.01,1.93,2.02,1.95,1.96,1.91,2.00, 1.99,2.04,2.02,2.01,2.07,2.07,2.07,2.10,2.05,2.08, 2.06,2.14,2.15,2.13,2.10,2.11,2.17,2.09,2.16,2.15, 2.16,2.11,2.14,2.22,2.23,2.22,2.14,2.21,2.19,2.25, 2.28,2.29,2.25,2.38,2.34,2.33,2.22,2.26,2.36,2.21, 2.37,2.44,2.29,2.27,2.35,2.42,2.37,2.49,2.44,2.54, 0.06,0.08,0.07,0.09,0.08,0.10,0.10,0.10,0.11,0.12, 0.15,0.12,0.17,0.15,0.13,0.15,0.18,0.17,0.22,0.19, 0.18,0.21,0.19,0.22,0.22,0.23,0.24,0.27,0.22,0.25, 0.24,0.26,0.28,0.26,0.29,0.27,0.27,0.26,0.29,0.29, 0.32,0.33,0.33,0.34,0.34,0.30,0.35,0.36,0.37,0.33, 0.37,0.37,0.39,0.39,0.36,0.44,0.40,0.40,0.41,0.41, 0.42,0.44,0.43,0.40,0.43,0.48,0.46,0.46,0.48,0.51, 0.49,0.47,0.47,0.49,0.49,0.50,0.53,0.51,0.56,0.60, 0.59,0.55,0.58,0.55,0.56,0.57,0.58,0.57,0.60,0.64, 0.64,0.61,0.60,0.65,0.64,0.64,0.67,0.66,0.69,0.67, 0.69,0.72,0.67,0.66,0.73,0.76,0.73,0.76,0.65,0.73, 0.73,0.73,0.74,0.73,0.80,0.70,0.81,0.78,0.81,0.80, 0.78,0.82,0.78,0.81,0.81,0.85,0.83,0.85,0.85,0.90, 0.88,0.87,0.83,0.96,0.89,0.92,0.85,0.88,0.88,0.92, 0.93,0.96,0.95,1.02,0.92,0.96,0.97,0.95,0.95,1.02, 0.98,1.01,0.96,1.01,1.02,1.00,1.02,1.01,1.09,0.98, 1.07,1.04,1.11,1.08,1.07,1.06,1.07,1.09,1.11,1.12, 1.07,1.13,1.09,1.11,1.13,1.16,1.11,1.13,1.15,1.15, 1.13,1.15,1.17,1.17,1.19,1.21,1.18,1.28,1.21,1.21, 1.27,1.25,1.23,1.27,1.25,1.22,1.29,1.27,1.27,1.26, 1.27,1.27,1.31,1.29,1.35,1.32,1.27,1.29,1.28,1.25, 1.36,1.34,1.33,1.42,1.33,1.40,1.34,1.37,1.39,1.43, 1.41,1.40,1.50,1.40,1.46,1.49,1.47,1.46,1.41,1.39, 1.53,1.53,1.50,1.44,1.46,1.48,1.50,1.49,1.54,1.63, 1.55,1.58,1.58,1.55,1.60,1.61,1.54,1.57,1.54,1.53, 1.56,1.65,1.55,1.65,1.61,1.57,1.62,1.65,1.62,1.64, 1.65,1.58,1.68,1.65,1.78,1.78,1.70,1.72,1.70,1.77, 1.68,1.75,1.70,1.77,1.71,1.71,1.73,1.80,1.79,1.74, 1.71,1.69,1.82,1.79,1.71,1.79,1.79,1.81,1.87,1.85, 0.05,0.05,0.06,0.07,0.06,0.07,0.06,0.08,0.08,0.10, 0.10,0.11,0.11,0.10,0.09,0.12,0.12,0.12,0.13,0.13, 0.13,0.13,0.15,0.14,0.16,0.14,0.17,0.18,0.16,0.17, 0.19,0.19,0.19,0.22,0.22,0.20,0.22,0.22,0.23,0.24, 0.25,0.22,0.25,0.24,0.25,0.27,0.26,0.26,0.27,0.29, 0.30,0.31,0.27,0.32,0.32,0.34,0.31,0.33,0.36,0.31, 0.31,0.35,0.31,0.34,0.34,0.34,0.32,0.35,0.33,0.38, 0.37,0.39,0.37,0.38,0.38,0.42,0.37,0.38,0.40,0.43, 0.44,0.43,0.45,0.41,0.45,0.45,0.50,0.45,0.48,0.46, 0.46,0.47,0.47,0.48,0.52,0.48,0.52,0.48,0.52,0.50, 0.47,0.51,0.56,0.55,0.51,0.51,0.52,0.57,0.56,0.56, 0.53,0.55,0.57,0.58,0.61,0.63,0.57,0.58,0.61,0.59, 0.64,0.63,0.59,0.62,0.57,0.65,0.70,0.64,0.71,0.68, 0.67,0.66,0.64,0.71,0.66,0.68,0.70,0.71,0.68,0.69, 0.73,0.69,0.73,0.68,0.75,0.74,0.71,0.73,0.78,0.77, 0.70,0.72,0.78,0.85,0.79,0.73,0.85,0.80,0.81,0.78, 0.87,0.76,0.75,0.77,0.85,0.80,0.83,0.82,0.84,0.87, 0.84,0.87,0.78,0.90,0.87,0.82,0.87,0.85,0.78,0.88, 0.91,0.92,0.95,0.93,0.87,0.91,0.92,0.90,0.91,0.91, 0.96,0.91,0.91,0.97,0.92,0.94,1.00,0.97,0.95,0.92, 0.95,1.02,0.93,0.99,1.02,1.00,1.01,1.01,1.01,0.94, 0.98,1.05,0.97,1.05,1.04,1.07,1.10,1.04,1.04,1.05, 1.12,1.04,1.08,1.04,1.08,1.05,1.06,1.05,1.05,1.07, 1.17,1.16,1.09,1.13,1.10,1.09,1.09,1.19,1.16,1.18, 1.20,1.13,1.17,1.09,1.24,1.20,1.22,1.15,1.26,1.26, 1.20,1.20,1.23,1.20,1.23,1.23,1.21,1.24,1.21,1.29, 1.28,1.27,1.25,1.30,1.26,1.32,1.28,1.28,1.28,1.27, 1.34,1.28,1.36,1.28,1.38,1.33,1.38,1.31,1.31,1.36, 1.38,1.33,1.38,1.34,1.37,1.35,1.33,1.38,1.38,1.44, 0.04,0.04,0.04,0.04,0.05,0.05,0.06,0.06,0.05,0.07, 0.07,0.07,0.08,0.08,0.09,0.09,0.09,0.12,0.09,0.11, 0.12,0.13,0.10,0.11,0.11,0.12,0.15,0.15,0.14,0.13, 0.15,0.12,0.14,0.16,0.15,0.16,0.16,0.16,0.19,0.17, 0.16,0.19,0.20,0.18,0.19,0.20,0.17,0.20,0.22,0.22, 0.20,0.20,0.23,0.22,0.22,0.23,0.25,0.24,0.27,0.21, 0.20,0.29,0.26,0.24,0.27,0.26,0.29,0.28,0.26,0.27, 0.28,0.30,0.31,0.31,0.29,0.28,0.31,0.28,0.30,0.31, 0.34,0.31,0.32,0.33,0.31,0.34,0.35,0.35,0.33,0.37, 0.34,0.34,0.35,0.38,0.36,0.38,0.38,0.36,0.40,0.37, 0.39,0.43,0.40,0.40,0.42,0.38,0.44,0.40,0.39,0.42, 0.40,0.40,0.44,0.41,0.44,0.43,0.44,0.45,0.47,0.47, 0.44,0.53,0.44,0.46,0.44,0.46,0.47,0.48,0.46,0.45, 0.48,0.52,0.47,0.53,0.55,0.49,0.52,0.55,0.52,0.52, 0.50,0.54,0.56,0.54,0.55,0.54,0.55,0.53,0.59,0.55, 0.60,0.54,0.57,0.60,0.62,0.57,0.63,0.61,0.60,0.58, 0.60,0.59,0.60,0.61,0.62,0.59,0.63,0.65,0.64,0.60, 0.65,0.67,0.66,0.68,0.63,0.67,0.62,0.69,0.68,0.71, 0.65,0.70,0.72,0.68,0.65,0.73,0.73,0.74,0.71,0.69, 0.69,0.67,0.72,0.75,0.73,0.72,0.73,0.75,0.75,0.75, 0.64,0.75,0.72,0.75,0.75,0.77,0.81,0.76,0.77,0.79, 0.82,0.77,0.81,0.79,0.78,0.75,0.81,0.79,0.83,0.82, 0.79,0.86,0.84,0.78,0.85,0.86,0.88,0.79,0.86,0.89, 0.82,0.85,0.80,0.89,0.83,0.83,0.84,0.82,0.91,0.89, 0.92,0.90,0.92,0.90,0.92,1.01,0.93,0.91,0.91,0.89, 0.96,0.94,0.97,0.90,0.94,0.93,0.93,0.94,0.96,0.91, 0.93,0.97,0.98,1.00,0.96,0.94,0.93,1.00,0.97,1.02, 0.97,1.06,0.95,0.98,1.05,0.96,1.00,0.99,1.00,1.02, 1.00,1.04,1.09,1.00,1.04,1.08,1.03,1.03,1.07,1.06, 1.87,2.07,2.25,2.41,2.55,2.83,2.98,3.19,3.34,3.60, 3.63,3.88,4.02,4.18,4.41,4.54,4.80,5.02,5.14,5.45, 5.55,5.69,5.88,6.00,6.24,6.38,6.60,6.81,6.95,7.18, 7.35,7.49,7.66,7.87,8.06,8.29,8.30,8.71,8.88,8.97, 9.19,9.34,9.46,9.78,9.84,10.08,10.15,10.51,10.63,10.93, 10.98,11.08,11.21,11.58,11.73,11.85,12.06,12.20,12.49,12.54, 12.46,13.02,13.05,13.35,13.50,13.81,13.90,13.99,14.06,14.30, 14.62,14.71,14.89,15.15,15.37,15.59,15.52,15.86,16.05,16.30, 16.38,16.68,16.83,16.94,17.09,17.42,17.54,17.81,18.00,18.04, 18.21,18.56,18.58,18.87,19.05,19.34,19.47,19.39,19.65,19.86, 20.17,19.98,20.45,20.65,20.78,20.61,20.84,21.31,21.66,21.66, 21.61,21.96,22.40,22.36,22.49,22.56,23.02,23.31,23.34,23.47, 23.76,23.98,24.03,24.24,24.28,24.55,24.89,25.11,25.10,25.26, 25.59,25.64,25.97,26.09,26.25,26.33,26.60,26.72,26.97,27.07, 27.21,27.38,27.59,27.97,27.96,28.02,28.27,28.51,28.71,28.97, 29.01,29.24,29.50,29.64,29.98,30.27,30.04,30.50,30.46,30.82, 31.08,30.92,31.25,31.67,31.74,31.75,32.12,32.26,32.17,32.64, 32.82,32.96,33.06,33.17,33.43,33.66,33.90,33.87,34.22,34.30, 34.59,35.05,35.15,35.05,35.34,35.61,35.70,35.93,36.13,36.22, 36.33,36.55,36.69,36.87,37.22,37.50,37.39,37.65,37.93,37.79, 38.33,38.53,38.72,38.94,38.78,39.14,39.18,39.49,39.50,39.85, 40.03,40.23,40.25,40.68,40.90,40.91,41.26,40.96,41.49,41.52, 41.72,42.33,42.27,42.49,42.27,43.13,42.93,43.10,43.38,43.60, 43.59,43.48,44.11,44.21,44.23,44.73,45.06,45.11,45.00,44.87, 45.65,45.65,45.98,46.25,45.97,46.40,46.33,46.96,47.16,47.17, 47.68,47.65,47.70,47.77,48.20,48.06,48.39,48.65,48.71,48.95, 48.94,49.16,49.34,49.93,50.08,50.13,50.57,50.22,50.17,50.44, 50.95,51.27,51.32,51.25,51.93,51.92,52.02,52.35,52.47,52.40, 53.01,52.77,53.20,53.20,53.19,53.76,53.86,54.06,54.02,54.16, 1.42,1.56,1.71,1.86,2.02,2.17,2.21,2.41,2.50,2.74, 2.81,3.02,3.08,3.21,3.38,3.55,3.74,3.76,3.96,4.12, 4.22,4.32,4.58,4.75,4.89,4.96,5.03,5.18,5.37,5.42, 5.68,5.63,5.94,6.17,6.23,6.36,6.42,6.67,6.80,6.93, 7.05,7.21,7.46,7.41,7.57,7.89,7.92,8.00,8.16,8.10, 8.37,8.46,8.86,8.87,8.95,8.95,9.34,9.31,9.68,9.74, 9.73,10.20,10.33,10.19,10.41,10.60,10.72,10.87,10.88,11.09, 11.18,11.56,11.62,11.74,11.93,11.91,11.97,12.30,12.29,12.66, 12.54,12.70,12.87,13.03,13.25,13.47,13.46,13.51,13.65,13.89, 14.03,14.02,14.41,14.45,14.72,14.67,14.96,14.91,15.07,15.35, 15.51,15.45,15.83,16.03,16.00,16.28,16.15,16.45,16.48,16.76, 16.79,16.93,16.95,17.16,17.48,17.59,17.41,17.68,17.90,18.22, 18.27,18.25,18.57,18.65,18.69,18.86,19.19,19.09,19.39,19.48, 19.62,19.81,19.78,20.07,20.31,20.08,20.62,20.64,20.81,20.73, 21.07,21.28,21.25,21.39,21.49,21.84,22.15,21.83,22.32,22.45, 22.37,22.47,22.79,22.89,22.81,23.04,23.21,23.20,23.53,23.69, 23.70,23.79,24.22,24.05,24.11,24.62,24.72,24.81,24.81,25.38, 25.15,25.53,25.48,25.64,25.63,26.06,26.05,26.04,26.34,26.45, 26.64,26.76,26.86,26.96,27.13,27.29,27.27,27.78,27.76,27.75, 27.93,28.24,28.33,28.70,28.69,28.63,28.95,29.13,29.02,29.39, 29.37,29.77,29.52,29.64,29.99,30.14,30.20,30.24,30.46,30.63, 30.76,31.09,31.20,31.23,30.96,31.24,31.59,31.76,31.92,32.02, 32.25,32.17,32.33,32.81,32.69,32.76,32.99,33.04,33.17,33.26, 33.66,33.69,33.73,34.03,34.42,34.40,34.61,34.47,34.73,35.27, 34.81,35.32,35.38,35.38,35.35,35.60,35.82,35.71,36.04,36.43, 36.43,36.53,36.58,36.62,37.06,36.97,37.50,37.37,37.59,37.51, 37.57,37.83,38.47,38.03,38.50,38.55,38.59,38.64,38.79,38.98, 38.85,39.12,39.39,39.49,40.12,40.05,40.16,40.15,40.27,40.45, 40.63,40.90,40.76,41.15,41.13,40.95,41.51,41.51,41.79,42.02, 1.12,1.21,1.29,1.39,1.53,1.62,1.77,1.89,1.95,2.07, 2.25,2.27,2.38,2.62,2.67,2.72,2.83,2.99,2.97,3.14, 3.19,3.35,3.51,3.64,3.76,3.87,3.94,4.00,4.16,4.13, 4.29,4.49,4.56,4.55,4.79,4.86,5.02,5.11,5.19,5.25, 5.39,5.55,5.61,5.75,5.85,5.88,6.16,6.15,6.32,6.46, 6.49,6.63,6.77,6.92,6.98,7.04,7.08,7.21,7.28,7.56, 7.58,7.66,7.78,8.07,8.03,8.09,8.10,8.21,8.42,8.48, 8.71,8.80,8.83,8.90,8.93,9.18,9.30,9.72,9.43,9.66, 9.64,9.74,9.96,10.03,10.21,10.23,10.41,10.48,10.56,10.71, 10.84,10.85,11.01,11.14,11.17,11.37,11.54,11.42,11.74,11.76, 11.92,11.86,12.03,12.22,12.42,12.36,12.52,12.75,12.71,12.88, 12.87,13.10,13.17,13.46,13.46,13.56,13.56,13.67,13.87,13.72, 14.05,14.13,14.41,14.35,14.35,14.77,14.77,14.90,14.94,15.09, 15.07,15.18,15.21,15.61,15.32,15.58,15.69,15.77,16.12,15.95, 16.17,16.34,16.24,16.45,16.50,16.78,16.77,17.10,17.34,17.28, 17.17,17.30,17.45,17.67,17.82,17.72,17.98,18.20,18.14,18.19, 18.51,18.37,18.52,18.49,18.99,18.73,19.01,19.00,19.25,18.95, 19.39,19.60,19.51,19.65,19.91,19.55,20.00,20.15,20.34,20.30, 20.46,20.75,20.77,20.68,20.90,21.13,21.16,21.43,21.34,21.52, 21.45,21.73,21.92,22.07,21.89,22.19,22.15,22.35,22.33,22.53, 22.54,22.92,22.89,22.81,23.24,23.22,23.28,23.25,23.44,23.44, 23.74,23.85,24.00,23.87,24.30,24.37,24.27,24.63,24.42,24.77, 24.81,24.83,25.12,25.20,25.49,25.54,25.60,25.61,25.52,25.60, 26.04,26.04,26.14,26.06,26.39,26.67,26.35,26.36,26.84,26.76, 26.99,27.22,27.25,27.57,27.27,27.50,27.71,28.00,27.91,27.70, 28.07,28.19,28.22,28.27,28.55,28.31,28.65,28.75,29.01,28.79, 29.20,29.56,29.55,29.56,29.61,29.62,29.58,29.71,30.06,29.86, 30.17,30.16,30.36,30.09,30.50,30.59,30.66,30.82,30.89,31.01, 31.28,31.21,31.36,31.60,31.55,31.96,31.91,32.04,32.06,32.37, 0.86,0.97,1.04,1.10,1.15,1.23,1.42,1.42,1.54,1.59, 1.65,1.72,1.87,1.83,2.03,2.08,2.16,2.21,2.28,2.42, 2.59,2.58,2.72,2.74,2.90,2.88,2.96,3.19,3.19,3.25, 3.45,3.46,3.58,3.62,3.65,3.77,3.89,3.96,4.08,4.05, 4.17,4.22,4.29,4.55,4.51,4.61,4.69,4.85,4.76,4.87, 5.02,5.03,5.13,5.22,5.29,5.46,5.38,5.61,5.69,5.79, 5.78,5.95,5.99,6.11,6.16,6.17,6.45,6.39,6.50,6.48, 6.67,6.76,6.74,6.97,7.12,7.03,7.01,7.21,7.26,7.38, 7.51,7.49,7.68,7.73,7.78,7.79,7.94,8.11,8.07,8.25, 8.45,8.49,8.40,8.57,8.71,8.65,8.85,9.06,8.88,9.10, 9.26,9.17,9.35,9.44,9.50,9.43,9.44,9.74,9.82,9.89, 9.88,10.22,10.12,10.27,10.12,10.50,10.40,10.64,10.67,10.82, 10.57,10.94,10.88,11.14,11.19,11.20,11.32,11.38,11.43,11.50, 11.57,11.66,11.90,11.79,11.90,11.97,12.17,12.21,12.31,12.40, 12.52,12.60,12.68,12.60,12.76,12.83,13.02,12.87,13.24,13.24, 13.27,13.42,13.40,13.49,13.78,13.81,13.85,13.79,13.84,14.00, 14.18,14.17,14.33,14.27,14.36,14.65,14.57,14.79,14.87,14.86, 15.04,14.84,15.23,15.04,15.22,15.26,15.56,15.39,15.50,15.65, 15.70,15.82,16.00,16.07,16.40,16.07,16.47,16.41,16.32,16.41, 16.52,16.77,16.70,16.63,17.03,16.99,16.96,17.07,17.15,17.27, 17.56,17.41,17.51,17.76,17.90,17.88,18.09,17.97,18.07,18.27, 18.17,18.50,18.52,18.42,18.77,18.82,18.68,18.87,18.78,19.04, 19.27,19.21,19.34,19.35,19.28,19.46,19.76,19.52,19.85,19.94, 19.89,19.92,20.24,20.15,20.24,20.31,20.25,20.46,20.75,20.68, 20.88,21.00,20.88,20.94,21.14,21.16,21.12,21.38,21.41,21.49, 21.66,21.80,21.86,21.82,22.00,21.94,22.06,22.05,22.25,22.51, 22.31,22.86,22.37,22.85,22.82,22.73,22.82,22.84,23.33,23.32, 23.23,23.61,23.48,23.56,23.78,23.64,23.71,23.77,23.77,24.19, 24.40,23.81,24.17,24.28,24.23,24.34,24.37,24.66,24.89,24.73, 0.65,0.75,0.85,0.85,0.94,0.96,1.05,1.12,1.18,1.26, 1.30,1.32,1.43,1.49,1.57,1.61,1.64,1.74,1.81,1.84, 1.86,1.93,2.05,2.18,2.24,2.23,2.32,2.42,2.44,2.56, 2.57,2.65,2.59,2.73,2.91,3.06,2.91,3.08,3.12,3.13, 3.22,3.30,3.42,3.44,3.42,3.55,3.62,3.59,3.74,3.75, 3.88,3.98,4.14,4.00,4.10,4.10,4.33,4.21,4.36,4.52, 4.62,4.55,4.62,4.71,4.71,4.82,4.88,5.00,4.99,5.07, 5.20,5.07,5.20,5.41,5.36,5.52,5.61,5.43,5.62,5.62, 5.83,5.86,5.96,5.95,6.08,6.14,6.20,6.22,6.31,6.40, 6.40,6.32,6.66,6.67,6.73,6.75,6.80,6.87,6.90,6.78, 7.02,7.11,7.25,7.18,7.29,7.27,7.42,7.57,7.58,7.74, 7.73,7.68,7.88,8.03,7.96,7.83,8.27,8.25,8.17,8.39, 8.37,8.27,8.36,8.51,8.54,8.77,8.61,8.71,8.73,8.94, 8.95,8.94,9.20,9.19,9.02,9.23,9.31,9.39,9.42,9.41, 9.56,9.76,9.81,9.79,9.72,9.98,9.98,9.90,10.13,10.14, 10.23,10.17,10.32,10.36,10.52,10.51,10.56,10.75,10.86,10.76, 10.90,10.99,11.05,11.06,11.13,11.02,11.15,11.25,11.43,11.41, 11.52,11.39,11.49,11.80,11.67,11.84,11.93,12.02,11.91,12.25, 12.20,12.24,12.16,12.42,12.51,12.52,12.66,12.42,12.51,12.59, 13.01,12.90,12.83,13.06,13.25,13.13,13.40,13.15,13.26,13.19, 13.51,13.35,13.47,13.69,14.00,13.68,13.71,13.98,14.02,14.21, 14.11,14.16,14.34,14.31,14.20,14.38,14.31,14.43,14.47,14.33, 14.71,14.62,14.97,15.06,15.16,15.06,15.03,15.28,15.33,15.16, 15.50,15.36,15.43,15.40,15.64,15.67,15.71,15.83,15.87,15.67, 16.02,15.83,16.10,16.13,16.08,16.47,16.23,16.54,16.73,16.46, 16.59,16.71,16.73,16.76,16.92,16.79,17.07,17.15,17.18,17.35, 17.46,17.37,17.40,17.58,17.61,17.41,17.72,17.83,17.77,17.64, 17.84,17.84,18.21,17.84,18.11,18.31,18.22,18.10,18.54,18.34, 18.66,18.66,18.54,18.88,18.75,18.82,18.78,19.03,18.98,19.21, 0.53,0.54,0.59,0.66,0.69,0.77,0.81,0.87,0.91,0.96, 0.93,1.06,1.10,1.13,1.27,1.26,1.26,1.32,1.39,1.42, 1.48,1.54,1.55,1.64,1.73,1.72,1.88,1.76,1.85,1.96, 1.97,2.04,2.12,2.14,2.18,2.27,2.33,2.28,2.37,2.46, 2.48,2.60,2.57,2.66,2.82,2.74,2.81,2.75,2.86,2.90, 2.96,3.02,3.08,3.19,3.12,3.20,3.30,3.29,3.46,3.40, 3.44,3.49,3.57,3.64,3.61,3.69,3.73,3.81,3.85,3.95, 3.92,4.01,4.10,4.12,4.16,4.18,4.27,4.28,4.30,4.33, 4.45,4.52,4.50,4.67,4.58,4.58,4.68,4.80,4.90,4.92, 4.94,4.94,4.98,5.10,5.18,5.09,5.18,5.26,5.33,5.39, 5.35,5.52,5.51,5.58,5.66,5.63,5.67,5.65,5.75,5.79, 5.96,5.83,6.05,6.09,6.11,6.22,6.16,6.32,6.24,6.34, 6.45,6.52,6.61,6.51,6.49,6.43,6.69,6.78,6.83,6.83, 6.80,6.98,7.06,7.00,7.06,7.13,7.23,7.25,7.39,7.46, 7.45,7.34,7.53,7.42,7.57,7.66,7.70,7.72,7.82,7.90, 7.91,7.80,8.07,8.06,8.04,8.19,8.15,8.18,8.28,8.34, 8.29,8.49,8.45,8.47,8.64,8.70,8.69,8.84,8.71,8.88, 8.98,9.01,9.04,9.16,9.05,8.94,9.21,9.10,9.16,9.56, 9.52,9.34,9.36,9.48,9.51,9.50,9.74,9.82,9.99,9.77, 9.85,9.84,9.92,9.95,10.10,10.04,10.12,10.22,10.11,10.33, 10.44,10.42,10.46,10.23,10.47,10.66,10.62,10.70,10.84,10.75, 10.90,10.94,10.99,11.02,11.03,11.17,11.14,11.38,11.18,11.34, 11.26,11.45,11.55,11.42,11.44,11.51,11.62,11.64,11.85,11.74, 11.79,11.77,12.12,11.96,12.08,11.97,12.15,12.07,12.27,12.42, 12.45,12.42,12.13,12.37,12.66,12.72,12.74,12.75,12.48,12.65, 13.03,12.65,12.99,12.85,13.02,12.98,13.09,13.22,13.19,13.23, 13.21,13.37,13.47,13.48,13.48,13.47,13.60,13.70,13.63,13.73, 13.74,13.56,13.70,14.02,14.04,14.03,13.91,14.18,14.10,14.24, 14.17,14.39,14.57,14.42,14.32,14.49,14.53,14.69,14.69,14.76, 0.38,0.42,0.48,0.48,0.55,0.58,0.66,0.68,0.69,0.76, 0.78,0.77,0.81,0.96,0.98,1.01,0.98,0.98,1.08,1.14, 1.17,1.23,1.18,1.32,1.34,1.38,1.38,1.45,1.42,1.50, 1.52,1.56,1.62,1.71,1.70,1.65,1.70,1.76,1.79,1.90, 1.92,1.93,1.99,2.03,2.01,2.13,2.08,2.09,2.25,2.19, 2.29,2.36,2.34,2.35,2.51,2.48,2.50,2.50,2.55,2.62, 2.57,2.75,2.71,2.74,2.85,2.86,2.92,2.97,2.95,2.96, 3.03,3.06,3.17,3.23,3.19,3.28,3.23,3.36,3.32,3.38, 3.40,3.55,3.50,3.52,3.50,3.70,3.63,3.75,3.81,3.71, 3.86,3.77,3.84,3.90,3.85,3.99,3.96,4.02,4.14,4.05, 4.05,4.23,4.20,4.15,4.28,4.20,4.35,4.42,4.42,4.54, 4.64,4.57,4.70,4.58,4.76,4.73,4.74,4.85,4.80,4.91, 4.99,4.98,5.04,5.04,5.11,5.09,5.04,5.22,5.22,5.32, 5.36,5.39,5.40,5.49,5.45,5.47,5.43,5.62,5.64,5.64, 5.65,5.86,5.83,5.77,5.85,5.74,6.00,6.07,5.91,6.09, 6.16,6.19,6.13,6.19,6.18,6.38,6.24,6.32,6.49,6.40, 6.60,6.48,6.41,6.56,6.64,6.63,6.56,6.79,6.81,6.78, 6.79,6.68,6.89,6.85,6.82,7.00,7.14,7.07,7.20,7.30, 7.39,7.21,7.19,7.37,7.34,7.52,7.34,7.41,7.57,7.53, 7.53,7.72,7.65,7.70,7.75,7.96,7.84,7.77,7.83,8.08, 8.02,8.08,8.06,8.11,8.22,8.20,8.12,8.25,8.45,8.35, 8.34,8.43,8.45,8.36,8.52,8.50,8.50,8.57,8.80,8.64, 8.81,8.70,8.85,8.93,8.96,8.92,8.97,9.13,8.92,9.01, 9.08,9.30,9.37,9.29,9.37,9.11,9.32,9.38,9.43,9.27, 9.55,9.38,9.50,9.54,9.74,9.86,9.63,9.71,9.98,9.59, 9.63,9.95,9.98,9.98,10.10,10.19,10.12,10.11,10.06,10.00, 10.27,10.15,10.36,10.26,10.49,10.41,10.39,10.57,10.55,10.50, 10.45,10.70,10.55,10.76,10.75,10.66,10.96,10.87,10.96,10.90, 11.09,11.00,10.99,10.92,10.96,11.30,11.26,11.38,11.23,11.27, 0.30,0.34,0.37,0.42,0.44,0.49,0.47,0.49,0.54,0.61, 0.64,0.63,0.66,0.69,0.73,0.72,0.75,0.81,0.81,0.83, 0.87,0.87,0.93,0.97,1.04,1.09,1.04,1.12,1.13,1.19, 1.12,1.18,1.31,1.28,1.23,1.30,1.29,1.36,1.43,1.46, 1.44,1.50,1.52,1.59,1.55,1.68,1.60,1.68,1.71,1.67, 1.74,1.75,1.84,1.96,1.97,1.86,1.93,2.02,1.95,1.97, 2.09,2.07,2.09,2.09,2.20,2.19,2.26,2.29,2.32,2.36, 2.32,2.34,2.34,2.38,2.48,2.39,2.48,2.48,2.58,2.54, 2.62,2.64,2.57,2.81,2.77,2.76,2.73,2.85,2.80,2.96, 2.96,2.91,2.96,2.95,3.12,3.13,3.14,3.07,3.06,3.15, 3.21,3.24,3.26,3.38,3.30,3.25,3.50,3.44,3.37,3.46, 3.47,3.56,3.46,3.60,3.55,3.69,3.71,3.75,3.74,3.78, 3.83,3.79,3.88,3.94,3.88,3.97,3.93,3.99,3.98,4.07, 4.15,4.08,4.22,4.18,4.29,4.22,4.26,4.37,4.38,4.39, 4.35,4.41,4.40,4.55,4.51,4.48,4.51,4.56,4.61,4.70, 4.80,4.79,4.80,4.80,4.78,4.72,4.79,4.87,4.83,5.05, 4.95,4.88,4.99,5.03,5.06,5.19,5.14,5.20,5.26,5.19, 5.22,5.35,5.46,5.34,5.48,5.25,5.39,5.44,5.45,5.56, 5.54,5.66,5.70,5.66,5.55,5.64,5.76,5.88,5.73,5.66, 5.84,5.94,5.94,5.88,5.85,5.95,5.97,6.13,6.09,6.13, 6.17,6.07,6.18,6.17,6.26,6.27,6.43,6.30,6.30,6.32, 6.33,6.47,6.36,6.48,6.64,6.44,6.58,6.53,6.56,6.78, 6.63,6.83,6.93,6.66,6.84,7.00,6.81,6.92,6.93,7.00, 7.02,7.23,6.99,7.01,7.08,7.09,7.24,7.34,7.21,7.42, 7.45,7.25,7.47,7.38,7.42,7.46,7.41,7.47,7.54,7.60, 7.44,7.57,7.72,7.66,7.68,7.75,7.74,7.83,7.86,7.69, 7.91,7.87,7.96,7.93,8.07,7.95,7.95,8.26,8.23,8.18, 8.01,8.31,8.22,8.23,8.49,8.40,8.57,8.40,8.41,8.36, 8.41,8.54,8.45,8.56,8.65,8.63,8.66,8.79,8.73,8.71, 0.23,0.23,0.26,0.27,0.32,0.33,0.36,0.38,0.39,0.46, 0.46,0.49,0.51,0.53,0.55,0.59,0.61,0.65,0.65,0.66, 0.67,0.73,0.72,0.73,0.80,0.76,0.84,0.81,0.89,0.84, 0.98,0.94,0.98,0.98,1.04,1.03,1.05,1.07,1.12,1.13, 1.10,1.16,1.18,1.21,1.22,1.23,1.27,1.31,1.30,1.38, 1.32,1.42,1.42,1.39,1.37,1.44,1.51,1.39,1.55,1.50, 1.54,1.58,1.58,1.61,1.67,1.69,1.65,1.77,1.81,1.78, 1.78,1.76,1.88,1.84,1.91,1.94,1.95,1.91,1.98,2.00, 2.06,2.04,2.04,2.11,2.15,2.11,2.15,2.17,2.24,2.21, 2.27,2.26,2.30,2.31,2.31,2.35,2.40,2.39,2.53,2.48, 2.51,2.52,2.57,2.61,2.54,2.58,2.66,2.67,2.61,2.64, 2.67,2.67,2.73,2.75,2.81,2.84,2.73,2.81,2.85,2.81, 2.88,3.00,3.00,2.90,3.05,2.98,3.00,3.04,2.98,3.11, 3.14,3.19,3.15,3.22,3.17,3.25,3.29,3.34,3.35,3.30, 3.35,3.38,3.47,3.44,3.56,3.51,3.50,3.51,3.56,3.52, 3.66,3.57,3.57,3.67,3.73,3.75,3.79,3.87,3.73,3.92, 3.80,3.88,3.93,3.90,3.98,3.86,3.96,4.01,4.00,4.14, 4.01,4.10,4.00,4.14,4.16,4.18,4.19,4.25,4.24,4.34, 4.25,4.24,4.32,4.32,4.32,4.52,4.39,4.40,4.51,4.47, 4.46,4.50,4.49,4.50,4.62,4.68,4.60,4.56,4.77,4.74, 4.67,4.78,4.78,4.80,4.82,4.72,4.89,4.86,4.97,4.90, 4.90,4.94,5.03,5.05,4.89,5.02,5.09,5.14,5.15,5.08, 5.21,5.21,5.25,5.33,5.37,5.28,5.36,5.43,5.27,5.33, 5.42,5.45,5.42,5.46,5.47,5.51,5.54,5.53,5.63,5.44, 5.77,5.62,5.59,5.55,5.62,5.70,5.71,5.78,5.86,5.83, 5.83,5.97,5.89,5.94,6.01,5.87,6.06,6.07,6.13,6.03, 6.04,6.09,6.18,6.19,6.11,6.09,6.10,6.26,6.37,6.25, 6.14,6.10,6.24,6.14,6.29,6.61,6.41,6.36,6.61,6.34, 6.56,6.57,6.49,6.65,6.65,6.67,6.57,6.74,6.67,6.68, 0.15,0.22,0.21,0.24,0.24,0.26,0.29,0.28,0.31,0.35, 0.34,0.35,0.37,0.41,0.45,0.44,0.47,0.47,0.47,0.50, 0.55,0.55,0.55,0.56,0.57,0.56,0.58,0.66,0.66,0.63, 0.64,0.71,0.72,0.73,0.73,0.80,0.82,0.83,0.85,0.83, 0.89,0.90,0.96,0.94,0.95,0.97,0.94,0.93,1.03,0.96, 1.07,1.02,1.11,1.11,1.11,1.10,1.07,1.13,1.20,1.24, 1.11,1.21,1.21,1.32,1.30,1.29,1.32,1.35,1.35,1.39, 1.36,1.42,1.43,1.44,1.45,1.46,1.52,1.51,1.51,1.60, 1.50,1.61,1.53,1.64,1.65,1.63,1.55,1.70,1.66,1.73, 1.73,1.75,1.62,1.76,1.85,1.75,1.87,1.85,1.79,1.80, 1.88,1.95,1.91,1.93,2.01,1.95,2.01,2.00,2.04,2.09, 2.04,2.11,2.17,2.10,2.15,2.15,2.16,2.22,2.29,2.28, 2.23,2.31,2.27,2.30,2.34,2.34,2.29,2.38,2.37,2.38, 2.41,2.44,2.52,2.48,2.48,2.56,2.51,2.66,2.55,2.62, 2.57,2.68,2.66,2.62,2.72,2.72,2.75,2.65,2.79,2.69, 2.73,2.75,2.84,2.76,2.90,2.77,2.89,2.90,2.95,2.90, 2.97,2.92,2.97,2.94,3.09,3.07,2.98,2.98,3.15,2.99, 3.13,3.23,3.01,3.19,3.20,3.20,3.21,3.13,3.34,3.37, 3.23,3.21,3.28,3.32,3.21,3.35,3.41,3.40,3.47,3.38, 3.43,3.48,3.49,3.52,3.60,3.44,3.58,3.65,3.65,3.62, 3.71,3.69,3.72,3.71,3.63,3.81,3.76,3.76,3.77,3.76, 3.77,3.92,3.79,3.77,3.72,3.92,3.90,3.82,3.95,4.03, 4.04,4.04,4.10,3.99,4.04,4.04,4.15,3.99,4.07,4.03, 4.21,4.21,4.19,4.12,4.25,4.27,4.33,4.21,4.17,4.35, 4.29,4.37,4.34,4.28,4.46,4.38,4.35,4.43,4.42,4.51, 4.52,4.40,4.63,4.55,4.53,4.42,4.57,4.58,4.60,4.71, 4.71,4.55,4.80,4.71,4.78,4.75,4.77,4.75,4.74,4.73, 4.74,4.76,4.86,4.78,4.88,4.90,4.99,5.01,5.00,4.96, 4.99,5.09,5.09,5.09,5.13,5.08,5.00,5.11,5.18,5.11, 0.14,0.16,0.16,0.18,0.20,0.21,0.22,0.24,0.26,0.28, 0.28,0.28,0.31,0.33,0.32,0.32,0.38,0.39,0.36,0.38, 0.40,0.41,0.44,0.45,0.47,0.47,0.51,0.53,0.55,0.53, 0.52,0.51,0.56,0.55,0.55,0.65,0.59,0.65,0.61,0.64, 0.64,0.70,0.71,0.70,0.73,0.76,0.73,0.72,0.74,0.81, 0.78,0.88,0.79,0.84,0.80,0.88,0.88,0.89,0.90,0.89, 0.98,1.00,0.97,0.99,0.97,0.99,1.05,1.07,1.05,1.03, 1.06,1.09,1.19,1.09,1.11,1.14,1.10,1.17,1.12,1.18, 1.22,1.26,1.22,1.24,1.21,1.28,1.30,1.29,1.35,1.33, 1.29,1.29,1.31,1.35,1.43,1.37,1.43,1.50,1.47,1.44, 1.48,1.52,1.50,1.52,1.52,1.53,1.62,1.56,1.63,1.58, 1.60,1.57,1.64,1.61,1.61,1.67,1.66,1.80,1.73,1.70, 1.69,1.74,1.80,1.79,1.77,1.81,1.82,1.74,1.85,1.79, 1.88,1.81,1.98,1.96,1.93,1.91,1.96,2.02,1.91,1.98, 2.04,2.03,2.07,2.14,2.10,2.04,2.12,2.00,2.09,2.08, 2.13,2.07,2.18,2.07,2.25,2.12,2.18,2.17,2.26,2.29, 2.28,2.28,2.31,2.21,2.28,2.34,2.32,2.41,2.38,2.41, 2.32,2.46,2.45,2.43,2.44,2.48,2.40,2.51,2.47,2.54, 2.46,2.65,2.48,2.58,2.53,2.60,2.69,2.70,2.65,2.74, 2.67,2.70,2.69,2.64,2.65,2.74,2.72,2.87,2.72,2.70, 2.83,2.84,2.82,2.81,2.84,2.89,2.86,2.88,2.94,2.86, 2.94,2.94,2.97,2.89,2.95,3.01,2.98,3.02,2.96,3.10, 3.00,3.13,3.08,3.14,3.14,3.20,3.19,3.15,3.26,3.21, 3.23,3.23,3.18,3.30,3.23,3.29,3.36,3.35,3.36,3.24, 3.29,3.29,3.37,3.31,3.44,3.43,3.39,3.46,3.35,3.50, 3.48,3.43,3.56,3.47,3.46,3.48,3.54,3.59,3.62,3.52, 3.59,3.57,3.59,3.55,3.71,3.73,3.68,3.75,3.62,3.72, 3.71,3.69,3.80,3.87,3.79,3.82,3.86,3.85,3.72,3.84, 3.93,3.84,3.93,3.93,3.94,3.96,3.94,4.02,3.98,3.93, 0.13,0.10,0.13,0.13,0.15,0.17,0.17,0.18,0.18,0.21, 0.21,0.21,0.24,0.27,0.25,0.24,0.26,0.29,0.30,0.32, 0.27,0.31,0.35,0.32,0.38,0.37,0.36,0.39,0.43,0.41, 0.40,0.42,0.46,0.41,0.44,0.47,0.47,0.47,0.47,0.51, 0.51,0.51,0.56,0.55,0.57,0.53,0.61,0.60,0.62,0.60, 0.62,0.66,0.63,0.67,0.65,0.69,0.68,0.71,0.68,0.70, 0.77,0.76,0.75,0.76,0.77,0.78,0.77,0.76,0.77,0.81, 0.78,0.89,0.85,0.82,0.85,0.90,0.89,0.93,0.87,0.91, 0.92,0.91,0.98,0.93,1.01,1.03,0.93,1.02,1.01,1.01, 1.01,1.02,1.08,1.03,1.10,1.13,1.07,1.08,1.14,1.14, 1.12,1.16,1.12,1.11,1.13,1.22,1.23,1.20,1.20,1.21, 1.22,1.21,1.23,1.29,1.27,1.30,1.34,1.30,1.31,1.34, 1.25,1.33,1.39,1.36,1.43,1.38,1.39,1.44,1.41,1.48, 1.38,1.50,1.44,1.41,1.51,1.48,1.50,1.48,1.46,1.57, 1.58,1.54,1.56,1.55,1.58,1.66,1.63,1.65,1.66,1.51, 1.58,1.69,1.57,1.69,1.75,1.71,1.69,1.67,1.80,1.77, 1.75,1.78,1.75,1.71,1.80,1.74,1.79,1.86,1.89,1.79, 1.88,1.83,1.84,1.85,1.86,1.93,1.87,1.91,1.87,1.91, 1.97,1.96,1.96,1.95,1.96,2.03,2.02,2.07,2.07,1.97, 1.99,2.08,2.08,2.17,2.04,2.13,2.15,2.11,2.09,2.14, 2.16,2.19,2.21,2.17,2.13,2.10,2.27,2.24,2.29,2.20, 2.27,2.35,2.26,2.30,2.36,2.35,2.39,2.35,2.37,2.35, 2.42,2.42,2.42,2.34,2.45,2.45,2.43,2.49,2.48,2.49, 2.39,2.50,2.46,2.43,2.54,2.50,2.58,2.51,2.57,2.58, 2.56,2.62,2.56,2.62,2.55,2.60,2.63,2.66,2.66,2.61, 2.65,2.70,2.72,2.73,2.79,2.73,2.68,2.77,2.79,2.75, 2.81,2.81,2.74,2.72,2.87,2.80,2.81,2.92,2.85,2.87, 2.86,2.86,2.92,2.85,2.97,2.86,2.92,3.05,2.85,3.08, 3.05,2.98,3.03,3.00,3.06,3.03,2.95,3.10,3.04,3.06, 0.08,0.08,0.08,0.10,0.10,0.12,0.14,0.13,0.15,0.14, 0.17,0.18,0.19,0.18,0.22,0.19,0.22,0.23,0.23,0.23, 0.24,0.23,0.26,0.28,0.29,0.26,0.31,0.31,0.29,0.28, 0.33,0.33,0.31,0.35,0.40,0.37,0.34,0.38,0.39,0.37, 0.41,0.39,0.41,0.38,0.41,0.42,0.45,0.46,0.45,0.49, 0.46,0.47,0.51,0.51,0.46,0.51,0.54,0.52,0.55,0.55, 0.56,0.56,0.54,0.57,0.55,0.59,0.55,0.56,0.62,0.60, 0.62,0.63,0.69,0.62,0.65,0.68,0.68,0.73,0.73,0.69, 0.74,0.74,0.70,0.73,0.74,0.72,0.74,0.76,0.81,0.79, 0.80,0.81,0.80,0.85,0.84,0.83,0.89,0.84,0.84,0.84, 0.91,0.87,0.86,0.89,0.90,0.91,0.95,0.94,0.94,0.96, 0.98,0.96,0.96,1.02,1.02,1.02,1.02,1.00,1.01,1.03, 1.02,1.07,1.06,1.04,1.05,1.08,1.01,1.17,1.08,1.10, 1.13,1.15,1.12,1.14,1.20,1.16,1.13,1.18,1.13,1.20, 1.25,1.18,1.16,1.23,1.26,1.24,1.27,1.28,1.24,1.19, 1.26,1.27,1.27,1.31,1.30,1.31,1.33,1.33,1.33,1.31, 1.41,1.36,1.40,1.38,1.43,1.34,1.38,1.41,1.49,1.47, 1.40,1.42,1.50,1.52,1.49,1.45,1.48,1.42,1.48,1.49, 1.50,1.49,1.54,1.56,1.52,1.51,1.61,1.61,1.55,1.50, 1.71,1.62,1.63,1.63,1.64,1.62,1.66,1.60,1.65,1.61, 1.65,1.72,1.68,1.63,1.68,1.70,1.71,1.78,1.73,1.78, 1.74,1.68,1.79,1.80,1.81,1.78,1.78,1.89,1.83,1.76, 1.77,1.82,1.81,1.85,1.90,1.91,1.84,1.90,1.94,1.84, 1.89,1.93,1.87,1.92,1.92,1.91,1.99,1.87,1.95,1.95, 1.93,1.98,2.02,1.98,1.90,1.94,1.98,1.97,2.05,2.02, 2.06,2.05,2.10,2.09,2.10,2.22,2.11,2.09,2.06,2.21, 2.09,2.18,2.13,2.21,2.20,2.15,2.22,2.11,2.28,2.21, 2.22,2.24,2.29,2.28,2.22,2.23,2.27,2.23,2.30,2.24, 2.31,2.40,2.33,2.30,2.41,2.35,2.35,2.38,2.30,2.37, 0.06,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.12, 0.12,0.14,0.12,0.14,0.15,0.18,0.14,0.18,0.20,0.17, 0.18,0.20,0.20,0.20,0.21,0.23,0.20,0.23,0.23,0.22, 0.22,0.25,0.26,0.28,0.27,0.26,0.28,0.28,0.29,0.29, 0.31,0.32,0.31,0.33,0.32,0.36,0.35,0.33,0.37,0.36, 0.37,0.37,0.38,0.39,0.40,0.41,0.41,0.42,0.39,0.42, 0.45,0.47,0.47,0.43,0.47,0.48,0.46,0.47,0.45,0.50, 0.47,0.50,0.53,0.50,0.50,0.49,0.54,0.55,0.52,0.55, 0.53,0.55,0.54,0.59,0.58,0.57,0.56,0.61,0.59,0.64, 0.61,0.62,0.61,0.67,0.64,0.64,0.65,0.67,0.64,0.69, 0.67,0.66,0.70,0.70,0.67,0.68,0.70,0.71,0.71,0.77, 0.75,0.73,0.73,0.71,0.74,0.81,0.81,0.84,0.81,0.80, 0.82,0.76,0.77,0.77,0.76,0.78,0.83,0.88,0.80,0.83, 0.83,0.83,0.84,0.89,0.87,0.90,0.88,0.88,0.93,0.95, 0.93,0.91,0.93,0.90,0.92,0.96,0.97,1.01,1.02,0.92, 1.02,1.04,1.02,1.03,1.01,1.00,0.95,1.01,1.03,1.06, 1.01,1.06,1.05,1.06,1.03,1.10,1.14,1.09,1.07,1.10, 1.05,1.09,1.09,1.10,1.13,1.12,1.11,1.14,1.20,1.09, 1.16,1.15,1.17,1.12,1.18,1.15,1.19,1.19,1.18,1.21, 1.21,1.28,1.26,1.19,1.26,1.18,1.24,1.28,1.29,1.30, 1.34,1.33,1.31,1.27,1.26,1.27,1.35,1.29,1.27,1.28, 1.21,1.34,1.41,1.39,1.29,1.31,1.37,1.45,1.42,1.38, 1.39,1.46,1.40,1.43,1.38,1.41,1.40,1.41,1.40,1.48, 1.47,1.45,1.55,1.52,1.47,1.51,1.49,1.49,1.49,1.49, 1.53,1.50,1.49,1.51,1.53,1.55,1.57,1.55,1.57,1.55, 1.54,1.56,1.65,1.62,1.63,1.66,1.60,1.67,1.58,1.61, 1.56,1.67,1.58,1.71,1.68,1.70,1.65,1.68,1.67,1.66, 1.62,1.67,1.69,1.73,1.63,1.74,1.66,1.75,1.68,1.69, 1.75,1.76,1.81,1.77,1.76,1.81,1.78,1.77,1.80,1.78, 0.04,0.06,0.07,0.06,0.07,0.06,0.08,0.07,0.09,0.09, 0.09,0.09,0.10,0.10,0.12,0.12,0.11,0.14,0.14,0.13, 0.12,0.14,0.17,0.16,0.15,0.14,0.16,0.19,0.19,0.16, 0.17,0.17,0.20,0.20,0.20,0.21,0.24,0.21,0.23,0.22, 0.24,0.24,0.26,0.27,0.26,0.28,0.25,0.29,0.30,0.29, 0.29,0.28,0.30,0.28,0.27,0.31,0.28,0.28,0.33,0.34, 0.32,0.35,0.36,0.32,0.36,0.38,0.38,0.36,0.39,0.37, 0.39,0.35,0.39,0.38,0.40,0.39,0.39,0.42,0.41,0.43, 0.41,0.41,0.44,0.41,0.43,0.44,0.47,0.45,0.47,0.50, 0.44,0.50,0.52,0.50,0.50,0.49,0.49,0.51,0.53,0.53, 0.54,0.52,0.56,0.55,0.57,0.55,0.57,0.56,0.54,0.53, 0.56,0.56,0.60,0.60,0.59,0.61,0.62,0.62,0.64,0.62, 0.64,0.59,0.64,0.60,0.62,0.64,0.63,0.64,0.64,0.71, 0.65,0.64,0.62,0.68,0.63,0.69,0.71,0.70,0.69,0.71, 0.71,0.65,0.73,0.70,0.71,0.73,0.73,0.73,0.77,0.73, 0.77,0.79,0.76,0.76,0.74,0.78,0.79,0.76,0.83,0.78, 0.76,0.80,0.82,0.82,0.86,0.85,0.80,0.81,0.84,0.85, 0.81,0.79,0.88,0.85,0.82,0.86,0.85,0.89,0.91,0.90, 0.82,0.88,0.90,0.90,0.92,0.93,0.96,0.95,0.94,0.95, 0.90,0.91,0.92,0.94,0.97,0.98,1.00,0.92,0.94,1.03, 1.02,0.99,0.99,0.94,1.02,0.99,0.96,1.02,1.03,1.05, 1.02,1.03,1.13,1.07,1.11,1.10,1.04,1.07,1.09,1.02, 1.02,1.10,1.09,1.13,1.15,1.11,1.04,1.14,1.16,1.12, 1.09,1.13,1.14,1.10,1.16,1.13,1.17,1.11,1.19,1.10, 1.12,1.13,1.22,1.19,1.21,1.19,1.25,1.19,1.27,1.21, 1.24,1.15,1.21,1.18,1.19,1.26,1.21,1.22,1.23,1.23, 1.22,1.25,1.23,1.29,1.32,1.29,1.28,1.36,1.29,1.30, 1.28,1.27,1.34,1.34,1.31,1.29,1.33,1.30,1.36,1.36, 1.33,1.38,1.31,1.32,1.42,1.36,1.41,1.35,1.39,1.49, 2.02,2.27,2.52,2.65,2.79,3.04,3.21,3.42,3.63,3.85, 4.06,4.25,4.46,4.71,4.87,5.12,5.17,5.42,5.82,5.80, 6.03,6.25,6.46,6.78,6.86,6.98,7.13,7.39,7.69,7.86, 8.03,8.24,8.38,8.76,8.86,9.10,9.18,9.44,9.67,9.73, 10.06,10.16,10.45,10.67,10.89,11.03,11.24,11.51,11.73,11.85, 12.06,12.30,12.24,12.67,12.84,13.05,13.14,13.20,13.45,13.77, 14.18,14.10,14.41,14.66,15.07,15.02,15.12,15.30,15.79,15.74, 15.95,16.38,16.46,16.69,16.73,17.04,17.11,17.60,17.65,17.78, 18.05,18.17,18.27,18.51,18.61,19.05,19.05,19.45,19.57,19.81, 19.94,20.21,20.41,20.79,20.64,20.80,21.10,21.36,21.61,21.72, 22.06,22.10,22.51,22.57,23.01,22.88,23.33,23.65,23.58,23.84, 24.03,24.19,24.42,24.46,24.56,24.92,25.21,25.40,25.64,25.67, 25.84,25.93,26.51,26.58,26.41,26.69,27.12,27.28,27.48,27.81, 27.87,28.01,28.41,28.45,28.84,28.80,29.06,29.38,29.69,29.62, 29.85,30.13,30.44,30.53,30.70,30.85,31.17,31.11,31.49,31.79, 31.95,31.93,32.27,32.24,32.57,32.97,33.08,33.22,33.52,33.71, 34.12,34.06,34.14,34.09,34.57,35.15,35.07,35.49,35.32,35.53, 36.04,36.03,36.22,36.55,36.83,36.87,36.87,37.45,37.30,37.81, 37.59,37.86,38.24,38.45,38.44,38.68,39.09,39.09,39.58,39.40, 39.82,40.23,40.16,40.29,40.74,40.60,41.16,41.37,41.58,41.62, 41.85,41.84,42.37,42.46,42.66,42.99,43.17,43.23,43.12,43.52, 43.95,44.00,44.01,44.32,44.77,45.02,44.79,45.54,45.62,45.64, 45.85,45.90,46.29,46.55,46.64,46.80,47.17,47.19,47.35,47.81, 47.77,47.71,48.21,48.58,48.67,48.60,48.75,48.89,49.45,49.83, 49.65,49.82,50.12,50.55,50.91,50.48,51.24,51.26,51.56,51.60, 51.69,51.74,52.44,52.21,52.43,52.83,52.72,53.13,53.66,53.60, 53.97,53.80,54.01,54.27,54.64,54.33,55.27,55.38,55.26,55.46, 55.75,55.74,56.28,55.98,56.51,56.76,57.15,57.48,57.43,57.37, 57.82,57.88,58.17,58.19,58.73,59.00,58.96,58.96,59.01,59.61, 1.61,1.75,1.91,2.03,2.21,2.32,2.53,2.76,2.85,2.93, 3.18,3.32,3.51,3.69,3.77,3.91,4.06,4.26,4.46,4.52, 4.67,4.84,4.96,5.24,5.28,5.47,5.64,5.73,5.89,6.20, 6.30,6.41,6.69,6.86,6.93,7.06,7.19,7.34,7.42,7.67, 7.79,7.91,8.32,8.27,8.46,8.59,8.78,8.88,9.06,9.32, 9.20,9.46,9.70,9.84,10.13,10.05,10.29,10.41,10.65,10.79, 10.85,11.08,11.24,11.25,11.45,11.78,11.97,12.12,12.05,12.35, 12.52,12.64,12.98,13.09,13.41,13.40,13.32,13.71,13.72,13.79, 13.95,14.12,14.37,14.61,14.38,14.81,15.15,15.18,15.27,15.43, 15.58,15.75,15.93,16.00,16.15,16.43,16.63,16.71,16.68,16.90, 17.00,17.19,17.43,17.68,17.94,18.01,17.86,17.99,18.40,18.40, 18.82,18.78,18.96,19.13,19.30,19.37,19.39,19.94,20.20,19.87, 20.16,20.14,20.31,20.73,20.91,21.16,21.29,21.34,21.32,21.56, 21.83,22.06,22.08,22.32,22.53,22.70,22.75,22.86,23.27,23.28, 23.28,23.59,23.58,23.68,23.92,23.95,24.40,24.28,24.47,24.85, 25.10,25.12,25.28,25.46,25.33,25.60,26.05,26.26,26.39,26.38, 26.20,26.86,26.86,26.53,27.08,27.20,27.35,27.58,27.46,27.77, 27.94,28.11,28.22,28.65,28.58,28.55,28.90,29.15,29.21,29.49, 29.52,29.79,29.91,29.94,30.39,30.31,30.44,30.47,30.71,30.75, 31.16,31.26,31.31,31.43,31.84,31.65,32.24,32.16,32.55,32.73, 32.70,32.97,33.07,33.31,33.35,33.66,33.67,34.05,33.72,34.25, 34.24,34.32,34.57,34.55,34.88,34.88,35.24,35.16,35.24,35.39, 35.96,35.97,35.93,36.10,36.34,36.51,36.84,37.06,36.89,37.13, 37.60,37.68,37.77,37.85,37.81,37.71,38.19,38.55,38.59,38.77, 39.24,39.04,39.12,39.31,39.40,39.56,40.07,40.26,40.32,40.43, 40.58,40.78,40.95,40.86,41.13,41.31,41.29,41.67,41.58,41.70, 42.29,42.26,42.04,42.66,42.74,42.68,43.03,43.02,43.12,43.42, 43.58,43.70,43.82,43.82,44.13,44.58,44.10,44.70,44.74,44.90, 45.35,45.44,45.16,45.51,45.78,45.64,46.12,46.16,46.34,46.09, 1.27,1.35,1.55,1.65,1.80,1.91,1.96,2.09,2.18,2.37, 2.49,2.62,2.77,2.82,2.94,3.14,3.22,3.26,3.56,3.54, 3.67,3.71,3.89,4.03,4.12,4.23,4.46,4.51,4.68,4.68, 4.95,4.96,5.11,5.33,5.40,5.41,5.63,5.70,5.91,5.96, 6.03,6.16,6.43,6.44,6.59,6.83,6.90,7.02,7.00,7.25, 7.37,7.36,7.58,7.70,7.72,7.88,7.97,8.07,8.18,8.48, 8.59,8.51,8.65,8.79,9.05,9.06,9.20,9.49,9.49,9.58, 9.88,9.83,10.00,9.96,10.24,10.35,10.49,10.74,10.67,10.95, 11.04,11.04,11.12,11.21,11.36,11.64,11.58,11.89,11.91,12.10, 12.16,12.29,12.35,12.44,12.65,12.71,12.84,12.96,13.07,13.18, 13.37,13.40,13.65,13.72,13.67,14.05,14.08,14.10,14.44,14.46, 14.55,14.78,14.76,14.82,15.27,15.37,15.30,15.61,15.63,15.56, 15.68,15.98,15.98,16.05,16.33,16.39,16.48,16.71,16.55,16.87, 16.96,17.03,17.20,17.43,17.45,17.40,17.76,17.85,18.06,18.07, 17.99,18.22,18.37,18.48,18.55,18.88,19.03,19.01,19.21,19.20, 19.48,19.44,19.63,19.86,19.73,20.14,19.93,20.30,20.55,20.38, 20.55,20.75,20.90,20.95,21.16,21.34,21.46,21.32,21.61,21.88, 21.69,22.05,22.18,22.22,22.35,22.81,22.41,22.73,22.85,22.83, 23.00,22.89,23.31,23.66,23.53,23.51,23.91,24.03,23.91,23.96, 24.27,24.45,24.26,24.65,24.73,24.99,25.09,24.99,25.36,25.70, 25.43,25.56,25.67,26.08,25.85,26.32,26.42,26.34,26.35,26.58, 26.51,26.80,26.89,27.07,27.20,27.44,27.26,27.52,27.83,27.88, 28.22,27.91,28.15,28.25,28.54,28.58,28.41,28.95,28.82,29.09, 29.22,29.05,29.23,29.39,29.61,29.80,29.90,30.03,30.10,30.68, 30.10,30.65,30.62,30.79,30.80,30.79,30.96,31.27,31.16,31.50, 31.61,31.61,31.54,31.89,32.20,32.28,32.16,32.42,32.58,32.73, 32.56,32.77,32.65,33.00,33.27,33.41,33.58,33.58,33.61,33.91, 33.95,34.13,34.10,34.19,34.42,34.51,34.69,34.81,35.13,34.97, 35.32,35.27,35.76,35.75,35.53,35.82,36.10,35.92,36.09,36.20, 0.95,1.06,1.17,1.24,1.37,1.49,1.51,1.65,1.69,1.82, 1.91,2.01,2.07,2.19,2.26,2.41,2.45,2.63,2.69,2.75, 2.81,2.99,3.07,3.11,3.19,3.29,3.36,3.55,3.54,3.69, 3.84,3.88,3.87,4.15,4.27,4.23,4.38,4.42,4.50,4.77, 4.76,4.86,4.88,5.04,5.14,5.20,5.41,5.45,5.67,5.55, 5.72,5.67,5.95,5.91,6.08,6.17,6.25,6.32,6.46,6.66, 6.58,6.82,6.81,6.92,7.08,7.07,7.23,7.41,7.30,7.55, 7.55,7.71,7.88,7.85,7.83,7.97,8.26,8.26,8.41,8.43, 8.42,8.54,8.81,8.77,9.02,8.98,9.11,9.29,9.24,9.35, 9.50,9.49,9.60,9.54,9.85,9.98,10.09,10.22,10.39,10.27, 10.37,10.56,10.55,10.64,10.80,11.15,11.02,11.23,11.30,11.31, 11.41,11.40,11.52,11.66,11.78,11.91,11.84,12.16,12.15,12.18, 12.32,12.46,12.71,12.63,12.74,12.66,12.80,13.07,13.09,13.04, 13.46,13.22,13.42,13.63,13.66,13.68,13.69,14.05,14.04,14.20, 14.15,14.32,14.42,14.52,14.69,14.62,14.73,14.89,15.02,15.00, 15.16,15.24,15.30,15.39,15.49,15.68,15.89,15.69,15.89,15.94, 16.14,16.16,16.40,16.25,16.37,16.46,16.61,16.72,16.93,16.86, 17.01,17.12,17.27,17.27,17.42,17.65,17.53,17.67,17.88,17.77, 17.94,18.15,18.29,18.34,18.38,18.52,18.32,18.58,18.76,18.84, 18.85,18.80,18.92,19.29,19.30,19.52,19.46,19.68,19.50,19.92, 19.95,19.95,20.09,20.30,20.27,20.25,20.51,20.61,20.56,20.86, 20.70,20.93,21.13,21.05,21.02,21.32,21.48,21.72,21.80,21.97, 21.65,22.06,22.06,22.26,22.06,22.21,22.18,22.46,22.61,22.66, 22.73,22.71,23.06,22.67,23.01,23.09,23.31,23.20,23.59,23.61, 23.20,23.83,23.85,23.84,24.01,24.34,24.30,24.30,24.21,24.57, 24.54,24.66,24.75,24.85,24.74,24.86,25.37,25.14,25.44,25.39, 25.40,25.70,25.82,25.87,25.92,25.83,26.20,26.48,26.11,26.36, 26.44,26.51,27.03,26.77,26.63,27.07,26.99,27.14,27.44,27.36, 27.35,27.57,27.59,27.83,27.48,27.95,28.09,28.20,28.06,28.09, 0.75,0.85,0.92,0.99,1.07,1.16,1.19,1.25,1.34,1.42, 1.50,1.58,1.64,1.74,1.77,1.89,1.96,1.97,2.09,2.15, 2.20,2.24,2.42,2.45,2.55,2.56,2.62,2.78,2.94,2.80, 2.97,3.08,3.10,3.29,3.29,3.33,3.36,3.47,3.50,3.58, 3.74,3.72,3.88,3.94,4.05,4.16,4.16,4.20,4.36,4.41, 4.42,4.46,4.62,4.67,4.76,4.76,4.79,4.91,5.07,4.98, 5.18,5.22,5.29,5.37,5.48,5.63,5.59,5.76,5.72,5.84, 5.83,5.94,6.04,6.04,6.25,6.48,6.33,6.33,6.53,6.54, 6.74,6.71,6.76,6.86,6.94,7.01,7.14,7.07,7.23,7.24, 7.45,7.28,7.65,7.64,7.81,7.74,7.78,8.02,8.03,7.94, 8.11,8.22,8.34,8.40,8.39,8.41,8.51,8.75,8.65,8.70, 8.82,8.95,9.05,9.11,9.08,9.19,9.27,9.54,9.46,9.48, 9.73,9.62,9.82,9.82,9.76,10.02,10.26,9.98,10.12,10.19, 10.21,10.57,10.43,10.55,10.66,10.60,10.75,10.87,10.99,10.89, 11.13,11.04,11.34,11.15,11.44,11.31,11.63,11.55,11.75,11.97, 11.86,11.76,11.76,12.25,12.06,12.24,12.22,12.36,12.46,12.40, 12.34,12.61,12.77,12.84,12.73,12.92,12.88,12.92,13.05,13.16, 13.26,13.35,13.47,13.29,13.59,13.70,13.67,13.69,13.94,13.94, 14.12,14.03,14.06,14.24,14.34,14.39,14.50,14.59,14.52,14.52, 14.61,14.78,14.99,15.04,15.14,14.98,15.14,15.29,15.29,15.31, 15.49,15.58,15.72,15.60,15.76,16.02,16.02,15.92,16.12,16.25, 16.15,16.24,16.59,16.43,16.47,16.70,16.63,16.75,16.85,17.02, 16.85,16.95,17.09,17.28,17.18,17.27,17.50,17.48,17.42,17.59, 17.95,17.78,17.90,18.12,17.82,18.24,18.03,18.37,18.43,18.58, 18.51,18.55,18.39,18.55,18.74,18.65,18.80,18.86,19.03,18.91, 19.12,19.23,19.25,19.46,19.28,19.49,19.45,19.68,19.69,19.81, 19.76,20.16,20.19,20.26,20.23,20.10,20.37,20.36,20.41,20.81, 20.72,20.73,20.94,20.70,20.93,20.77,21.02,21.21,21.24,21.34, 21.53,21.20,21.47,21.47,21.64,21.99,21.84,21.87,21.82,22.25, 0.60,0.66,0.72,0.76,0.81,0.82,0.94,0.97,1.03,1.10, 1.24,1.23,1.28,1.39,1.40,1.40,1.57,1.60,1.62,1.63, 1.81,1.73,1.88,1.94,2.01,2.02,2.09,2.17,2.22,2.27, 2.31,2.37,2.49,2.51,2.53,2.57,2.65,2.79,2.78,2.85, 2.91,2.86,2.99,3.02,3.16,3.26,3.20,3.42,3.50,3.39, 3.54,3.56,3.48,3.68,3.71,3.80,4.00,3.89,3.91,3.93, 4.04,4.12,4.18,4.21,4.20,4.42,4.43,4.45,4.66,4.53, 4.63,4.70,4.63,4.87,4.93,4.95,5.06,5.00,5.05,5.21, 5.19,5.23,5.38,5.41,5.38,5.37,5.43,5.59,5.67,5.78, 5.85,5.94,5.80,6.03,6.14,6.03,6.05,6.13,6.26,6.37, 6.43,6.33,6.52,6.58,6.54,6.72,6.77,6.83,6.76,6.83, 6.80,7.00,6.82,7.00,7.24,7.28,7.25,7.27,7.41,7.51, 7.44,7.48,7.66,7.79,7.77,7.68,7.75,7.82,7.89,7.94, 8.18,8.08,8.20,8.26,8.41,8.34,8.45,8.43,8.42,8.59, 8.65,8.69,8.90,8.88,8.81,8.99,8.87,8.86,9.09,9.26, 9.21,9.31,9.31,9.38,9.37,9.51,9.48,9.63,9.72,9.69, 9.87,9.99,10.04,9.98,10.04,10.22,10.10,10.27,10.35,10.31, 10.36,10.53,10.44,10.70,10.45,10.66,10.69,10.74,10.94,10.96, 10.87,11.10,11.22,11.19,11.19,11.24,11.50,11.37,11.49,11.43, 11.70,11.62,11.65,11.63,11.76,11.78,11.76,12.06,12.10,11.99, 12.13,11.98,12.37,12.26,12.37,12.47,12.46,12.64,12.54,12.71, 12.81,12.58,12.62,12.99,12.97,12.87,13.13,12.97,12.97,13.24, 13.26,13.27,13.56,13.36,13.58,13.34,13.49,13.66,13.68,13.91, 13.92,13.95,13.95,14.04,14.13,14.09,14.14,14.10,14.38,14.19, 14.35,14.47,14.42,14.45,14.63,14.74,14.63,14.83,14.90,14.93, 15.06,15.01,14.91,14.98,14.98,15.12,15.23,15.39,15.77,15.48, 15.50,15.60,15.77,15.84,15.93,15.95,15.81,15.92,15.93,16.03, 16.17,16.24,16.27,16.52,16.64,16.32,16.59,16.46,16.73,16.64, 16.76,16.72,16.76,16.87,16.99,16.94,17.16,16.90,17.10,17.21, 0.47,0.49,0.56,0.63,0.65,0.66,0.76,0.71,0.85,0.88, 0.90,0.94,0.99,1.05,1.10,1.13,1.22,1.22,1.29,1.35, 1.42,1.39,1.45,1.56,1.58,1.60,1.63,1.67,1.72,1.75, 1.70,1.84,1.88,1.98,1.94,2.05,2.03,2.07,2.23,2.21, 2.32,2.36,2.32,2.37,2.44,2.51,2.57,2.55,2.66,2.67, 2.73,2.74,2.90,2.81,2.85,2.88,2.93,2.95,3.06,3.12, 3.21,3.18,3.41,3.33,3.40,3.37,3.48,3.48,3.54,3.57, 3.62,3.60,3.71,3.85,3.80,3.73,3.81,3.88,3.91,3.96, 4.05,4.08,4.22,4.14,4.30,4.38,4.31,4.40,4.38,4.47, 4.62,4.68,4.57,4.65,4.52,4.72,4.79,4.80,4.83,4.89, 4.81,5.01,4.95,5.11,5.14,5.14,5.30,5.15,5.30,5.33, 5.46,5.43,5.45,5.68,5.53,5.67,5.66,5.77,5.89,5.74, 5.94,5.92,5.92,5.86,6.09,6.04,6.11,6.08,6.11,6.28, 6.27,6.34,6.36,6.36,6.42,6.54,6.63,6.52,6.70,6.62, 6.76,6.78,6.86,6.86,6.91,6.97,6.95,7.15,7.13,7.24, 7.29,7.17,7.18,7.38,7.35,7.36,7.46,7.51,7.41,7.38, 7.68,7.54,7.82,7.78,7.98,7.79,7.85,7.95,7.91,8.04, 8.12,8.13,8.15,8.22,8.21,8.25,8.49,8.39,8.46,8.47, 8.52,8.61,8.60,8.61,8.71,8.85,8.90,8.89,8.85,8.91, 9.06,8.95,9.05,9.06,9.23,9.06,9.31,9.37,9.37,9.46, 9.33,9.42,9.38,9.46,9.87,9.83,9.71,9.79,9.74,9.75, 10.09,9.80,10.07,10.06,10.02,9.97,10.20,10.13,10.26,10.25, 10.21,10.35,10.57,10.61,10.49,10.63,10.47,10.66,10.44,10.73, 10.82,10.88,10.88,10.81,11.01,11.11,10.99,11.00,11.20,11.15, 11.26,11.16,11.30,11.44,11.26,11.32,11.46,11.57,11.65,11.82, 11.75,11.68,11.77,11.83,11.88,11.92,12.09,12.02,12.18,12.15, 12.07,12.16,12.12,12.32,12.41,12.39,12.22,12.29,12.53,12.68, 12.51,12.49,12.43,12.73,13.00,12.65,12.80,12.83,12.74,12.96, 13.03,13.10,12.90,13.24,13.00,13.12,13.35,13.40,13.31,13.44, 0.33,0.39,0.43,0.49,0.52,0.55,0.56,0.62,0.65,0.70, 0.76,0.72,0.77,0.82,0.81,0.94,0.93,0.97,0.99,0.97, 1.07,1.09,1.12,1.18,1.19,1.21,1.24,1.34,1.36,1.44, 1.42,1.42,1.45,1.52,1.60,1.59,1.62,1.67,1.61,1.76, 1.78,1.78,1.78,1.87,1.88,1.90,1.99,2.06,2.10,2.05, 2.10,2.15,2.23,2.25,2.18,2.19,2.30,2.32,2.39,2.41, 2.41,2.52,2.54,2.45,2.63,2.60,2.68,2.66,2.78,2.75, 2.85,2.84,2.94,2.97,2.96,3.07,3.14,3.01,3.08,3.13, 3.17,3.23,3.14,3.27,3.27,3.28,3.51,3.44,3.44,3.48, 3.52,3.46,3.57,3.61,3.67,3.71,3.69,3.76,3.73,3.90, 3.85,3.86,3.92,3.91,4.00,4.08,4.03,4.13,4.24,4.07, 4.16,4.17,4.27,4.24,4.39,4.40,4.59,4.42,4.55,4.44, 4.55,4.56,4.57,4.75,4.69,4.74,4.80,4.81,4.88,4.83, 4.75,5.01,4.97,5.00,4.87,5.13,4.99,5.27,5.13,5.24, 5.24,5.28,5.18,5.35,5.36,5.30,5.47,5.62,5.67,5.55, 5.70,5.55,5.75,5.58,5.81,5.74,5.68,5.86,5.79,5.92, 6.00,5.89,5.99,6.00,6.01,6.08,6.19,6.25,6.27,6.27, 6.18,6.28,6.37,6.48,6.36,6.59,6.46,6.50,6.58,6.52, 6.62,6.70,6.71,6.84,6.71,6.89,6.92,6.95,6.91,7.08, 7.15,7.12,7.04,7.21,7.00,7.03,7.08,7.29,7.34,7.42, 7.46,7.36,7.40,7.60,7.52,7.56,7.44,7.58,7.76,7.65, 7.59,7.72,7.85,7.90,7.95,7.98,7.92,7.93,7.88,8.10, 8.08,8.11,8.12,8.23,8.09,8.09,8.16,8.36,8.25,8.34, 8.36,8.46,8.32,8.70,8.54,8.49,8.63,8.72,8.64,8.55, 8.82,8.85,8.82,8.93,8.84,8.95,8.91,8.94,9.02,9.07, 9.11,9.21,9.21,9.03,9.25,9.16,9.24,9.30,9.51,9.35, 9.59,9.33,9.57,9.63,9.49,9.53,9.64,9.70,9.77,9.63, 9.83,9.74,9.78,9.96,10.12,10.09,9.90,10.05,10.11,10.11, 10.20,10.11,10.28,10.19,10.37,10.16,10.37,10.22,10.38,10.33, 0.28,0.32,0.32,0.36,0.42,0.42,0.44,0.46,0.50,0.53, 0.57,0.58,0.59,0.66,0.63,0.67,0.72,0.80,0.76,0.74, 0.80,0.82,0.90,0.96,0.89,1.01,1.02,1.01,1.02,1.08, 1.10,1.09,1.19,1.19,1.18,1.25,1.28,1.28,1.32,1.34, 1.28,1.43,1.47,1.49,1.45,1.50,1.47,1.53,1.60,1.59, 1.61,1.69,1.71,1.74,1.77,1.79,1.84,1.79,1.87,2.00, 1.96,1.94,1.95,2.03,2.00,2.06,2.14,2.08,2.09,2.17, 2.19,2.20,2.17,2.33,2.34,2.38,2.35,2.45,2.38,2.52, 2.53,2.49,2.56,2.61,2.55,2.57,2.72,2.74,2.72,2.66, 2.78,2.68,2.85,2.76,2.84,2.86,2.92,2.96,2.94,3.08, 2.94,3.05,3.12,3.06,3.14,3.14,3.23,3.25,3.13,3.27, 3.25,3.36,3.31,3.38,3.34,3.40,3.39,3.47,3.58,3.57, 3.63,3.56,3.65,3.70,3.71,3.77,3.73,3.80,3.81,3.86, 3.86,3.80,3.81,4.04,3.90,4.00,4.11,4.01,4.06,4.02, 4.12,4.14,4.15,4.16,4.12,4.20,4.12,4.44,4.26,4.38, 4.37,4.32,4.44,4.47,4.49,4.55,4.54,4.47,4.65,4.61, 4.67,4.61,4.65,4.72,4.65,4.80,4.74,4.81,4.85,5.04, 4.95,5.02,4.91,4.94,4.95,5.00,5.04,5.14,5.18,5.22, 5.04,5.27,5.15,5.23,5.25,5.33,5.32,5.29,5.58,5.50, 5.40,5.61,5.52,5.58,5.45,5.59,5.57,5.58,5.73,5.80, 5.76,5.69,5.82,5.75,5.84,5.76,5.86,5.86,5.98,5.89, 6.04,6.07,6.10,6.13,6.23,6.21,6.22,6.14,6.18,6.26, 6.15,6.31,6.20,6.21,6.44,6.40,6.48,6.42,6.64,6.54, 6.55,6.56,6.56,6.55,6.69,6.79,6.59,6.77,6.81,6.81, 6.72,7.00,6.89,6.93,6.96,7.01,6.88,7.08,6.97,7.10, 6.97,7.24,7.16,7.17,7.19,7.03,7.18,7.21,7.34,7.24, 7.41,7.42,7.48,7.33,7.43,7.59,7.40,7.42,7.64,7.73, 7.63,7.47,7.73,7.67,7.71,7.74,7.90,7.82,7.93,7.93, 7.90,7.92,8.04,8.18,8.12,7.98,8.10,7.96,8.29,8.03, 0.22,0.23,0.27,0.29,0.29,0.35,0.33,0.37,0.42,0.40, 0.42,0.47,0.49,0.52,0.51,0.51,0.58,0.60,0.61,0.59, 0.64,0.64,0.68,0.73,0.73,0.74,0.79,0.80,0.83,0.82, 0.88,0.91,0.88,0.91,1.01,1.02,1.00,1.00,1.05,0.99, 1.09,1.11,1.10,1.08,1.17,1.12,1.17,1.22,1.22,1.28, 1.27,1.27,1.37,1.38,1.34,1.39,1.43,1.40,1.46,1.51, 1.50,1.49,1.54,1.57,1.58,1.57,1.63,1.59,1.69,1.67, 1.69,1.74,1.77,1.75,1.78,1.81,1.86,1.84,1.85,1.82, 1.98,1.97,1.99,1.99,2.11,2.05,2.05,2.11,2.09,2.08, 2.16,2.10,2.22,2.32,2.23,2.22,2.26,2.23,2.30,2.32, 2.28,2.37,2.42,2.42,2.48,2.44,2.49,2.42,2.43,2.49, 2.57,2.58,2.54,2.59,2.61,2.69,2.65,2.73,2.78,2.69, 2.77,2.77,2.79,2.77,2.88,2.92,2.97,2.97,2.95,2.92, 3.14,2.98,2.98,3.08,2.98,3.07,3.03,3.09,3.13,3.29, 3.17,3.28,3.32,3.12,3.24,3.35,3.34,3.32,3.30,3.41, 3.40,3.46,3.48,3.40,3.51,3.48,3.54,3.43,3.56,3.62, 3.56,3.58,3.69,3.72,3.79,3.77,3.81,3.74,3.77,3.80, 3.86,3.77,3.88,3.78,3.95,3.93,4.01,3.93,4.13,4.10, 4.01,4.05,4.02,4.14,4.22,4.24,4.21,4.17,4.21,4.22, 4.22,4.25,4.36,4.35,4.36,4.32,4.40,4.45,4.48,4.51, 4.58,4.42,4.52,4.54,4.51,4.47,4.64,4.62,4.64,4.62, 4.79,4.64,4.60,4.78,4.77,4.80,4.88,4.78,4.78,4.83, 4.94,4.99,4.93,4.87,4.97,4.95,5.04,4.95,5.04,5.08, 5.08,5.11,5.16,5.26,5.11,5.30,5.25,5.20,5.29,5.36, 5.34,5.39,5.27,5.49,5.50,5.37,5.42,5.47,5.43,5.59, 5.53,5.57,5.51,5.64,5.53,5.67,5.59,5.61,5.73,5.77, 5.85,5.74,5.84,5.75,5.81,5.72,5.88,5.86,5.92,5.96, 6.00,6.00,6.02,5.95,5.96,6.11,6.11,6.10,6.09,6.11, 6.11,6.30,6.16,6.28,6.21,6.16,6.42,6.36,6.26,6.16, 0.15,0.20,0.22,0.23,0.22,0.27,0.24,0.29,0.29,0.32, 0.36,0.39,0.37,0.41,0.38,0.40,0.45,0.47,0.47,0.48, 0.51,0.53,0.54,0.55,0.54,0.55,0.60,0.63,0.67,0.65, 0.68,0.74,0.70,0.79,0.72,0.74,0.80,0.79,0.82,0.76, 0.82,0.85,0.84,0.93,0.88,0.91,0.98,1.02,0.93,1.04, 1.00,0.96,1.06,1.05,1.12,1.12,1.13,1.15,1.14,1.14, 1.16,1.20,1.25,1.21,1.20,1.27,1.26,1.26,1.25,1.25, 1.32,1.33,1.38,1.42,1.50,1.41,1.41,1.41,1.48,1.52, 1.54,1.58,1.57,1.56,1.55,1.58,1.58,1.64,1.61,1.70, 1.61,1.70,1.66,1.70,1.76,1.67,1.80,1.80,1.88,1.78, 1.83,1.82,1.90,1.92,1.89,1.94,1.92,1.95,1.93,1.92, 2.01,1.95,2.08,2.07,2.03,2.10,2.17,2.07,2.12,2.12, 2.14,2.18,2.20,2.09,2.19,2.33,2.27,2.27,2.29,2.33, 2.41,2.32,2.38,2.31,2.32,2.42,2.46,2.41,2.40,2.50, 2.60,2.50,2.51,2.47,2.55,2.60,2.62,2.62,2.69,2.60, 2.65,2.62,2.72,2.66,2.70,2.74,2.77,2.70,2.80,2.82, 2.79,2.71,2.88,2.85,2.94,2.78,2.89,2.87,2.94,2.96, 2.94,3.09,3.05,3.06,3.11,3.01,3.19,3.14,3.11,3.15, 3.10,3.16,3.15,3.26,3.33,3.31,3.38,3.17,3.17,3.31, 3.29,3.33,3.27,3.35,3.46,3.43,3.46,3.40,3.43,3.54, 3.49,3.61,3.46,3.51,3.62,3.62,3.59,3.58,3.58,3.65, 3.61,3.76,3.63,3.68,3.64,3.69,3.73,3.82,3.84,3.76, 3.89,3.77,3.89,3.90,3.87,3.98,3.91,3.94,4.00,4.00, 3.94,3.97,4.08,4.01,4.17,4.07,4.13,4.10,4.04,4.11, 4.07,4.05,4.18,4.11,4.28,4.12,4.25,4.26,4.39,4.25, 4.29,4.30,4.34,4.29,4.33,4.38,4.42,4.31,4.55,4.33, 4.49,4.58,4.43,4.45,4.63,4.54,4.53,4.67,4.56,4.72, 4.76,4.67,4.80,4.68,4.67,4.74,4.75,4.79,4.69,4.70, 4.73,4.87,4.80,4.82,4.99,4.85,4.76,5.04,4.93,4.94, 0.12,0.15,0.16,0.18,0.19,0.20,0.21,0.19,0.26,0.23, 0.27,0.28,0.29,0.29,0.29,0.33,0.32,0.36,0.40,0.38, 0.39,0.38,0.39,0.42,0.48,0.47,0.46,0.47,0.48,0.49, 0.53,0.55,0.54,0.56,0.57,0.58,0.62,0.59,0.61,0.68, 0.65,0.68,0.66,0.66,0.66,0.76,0.75,0.78,0.70,0.77, 0.76,0.80,0.80,0.81,0.82,0.81,0.86,0.83,0.86,0.90, 0.91,0.93,1.02,0.95,0.97,1.00,0.99,0.97,1.06,0.99, 1.07,1.04,1.03,1.08,1.06,1.08,1.08,1.08,1.20,1.17, 1.23,1.20,1.22,1.24,1.20,1.24,1.21,1.26,1.28,1.23, 1.26,1.31,1.34,1.32,1.30,1.37,1.37,1.41,1.39,1.43, 1.42,1.43,1.41,1.44,1.48,1.46,1.52,1.48,1.48,1.57, 1.57,1.61,1.62,1.56,1.64,1.58,1.67,1.66,1.62,1.76, 1.70,1.75,1.71,1.75,1.70,1.72,1.75,1.79,1.74,1.81, 1.78,1.82,1.92,1.92,1.92,1.84,1.90,1.92,1.87,1.98, 1.90,2.00,2.01,1.95,1.99,1.98,2.01,2.12,2.03,2.04, 2.10,2.06,2.09,2.04,2.18,2.12,2.13,2.15,2.16,2.18, 2.25,2.29,2.27,2.23,2.31,2.25,2.24,2.27,2.31,2.38, 2.34,2.35,2.38,2.38,2.40,2.39,2.37,2.43,2.44,2.40, 2.46,2.42,2.45,2.54,2.47,2.53,2.62,2.58,2.60,2.44, 2.57,2.60,2.55,2.57,2.70,2.65,2.67,2.77,2.67,2.71, 2.71,2.65,2.80,2.76,2.79,2.86,2.77,2.80,2.81,2.83, 2.76,2.83,2.95,2.85,2.86,2.95,2.94,2.91,2.98,2.95, 2.93,3.03,3.03,3.00,3.02,3.04,3.08,3.08,3.01,2.96, 3.14,3.13,3.24,3.15,3.13,3.28,3.16,3.06,3.26,3.26, 3.28,3.17,3.25,3.30,3.32,3.39,3.23,3.27,3.27,3.33, 3.35,3.35,3.40,3.41,3.45,3.46,3.53,3.48,3.43,3.48, 3.50,3.46,3.39,3.65,3.54,3.48,3.49,3.66,3.62,3.65, 3.56,3.56,3.65,3.70,3.63,3.62,3.76,3.68,3.71,3.81, 3.79,3.82,3.75,3.78,3.84,3.83,3.86,3.90,3.87,3.93, 0.10,0.10,0.14,0.14,0.14,0.17,0.16,0.18,0.18,0.20, 0.22,0.23,0.23,0.24,0.25,0.26,0.29,0.27,0.28,0.30, 0.33,0.34,0.38,0.35,0.35,0.35,0.36,0.35,0.38,0.40, 0.39,0.38,0.40,0.46,0.43,0.44,0.47,0.44,0.51,0.51, 0.50,0.51,0.52,0.53,0.59,0.56,0.59,0.56,0.60,0.61, 0.63,0.65,0.67,0.62,0.68,0.65,0.68,0.70,0.67,0.69, 0.68,0.70,0.78,0.75,0.73,0.75,0.76,0.78,0.77,0.76, 0.78,0.82,0.80,0.86,0.85,0.87,0.89,0.93,0.87,0.93, 0.87,0.94,0.95,0.96,1.01,1.00,0.94,0.99,0.97,0.97, 1.05,0.98,1.00,1.03,1.03,1.06,1.06,1.11,1.07,1.11, 1.10,1.05,1.19,1.17,1.17,1.13,1.17,1.23,1.16,1.24, 1.22,1.21,1.24,1.23,1.20,1.29,1.23,1.35,1.31,1.36, 1.27,1.36,1.35,1.38,1.37,1.34,1.40,1.35,1.40,1.35, 1.43,1.40,1.45,1.45,1.43,1.45,1.47,1.50,1.49,1.49, 1.55,1.59,1.58,1.54,1.52,1.56,1.60,1.58,1.57,1.59, 1.66,1.61,1.69,1.65,1.70,1.63,1.68,1.59,1.62,1.75, 1.70,1.70,1.78,1.86,1.74,1.84,1.83,1.79,1.82,1.78, 1.82,1.91,1.78,1.76,1.84,1.88,1.87,1.89,1.85,1.86, 1.92,1.99,1.96,1.97,1.92,2.03,1.93,1.96,2.05,1.91, 2.06,1.95,2.02,2.00,2.13,2.00,2.07,2.15,2.07,2.06, 2.11,2.21,2.16,2.12,2.13,2.23,2.20,2.19,2.26,2.21, 2.28,2.21,2.26,2.29,2.27,2.30,2.25,2.23,2.29,2.34, 2.26,2.36,2.30,2.38,2.44,2.34,2.39,2.27,2.39,2.34, 2.44,2.42,2.38,2.43,2.49,2.49,2.39,2.55,2.52,2.65, 2.59,2.50,2.50,2.54,2.59,2.61,2.56,2.58,2.63,2.63, 2.74,2.61,2.65,2.58,2.69,2.63,2.72,2.73,2.60,2.66, 2.72,2.75,2.70,2.77,2.71,2.78,2.80,2.73,2.81,2.90, 2.81,2.84,2.86,2.84,2.88,2.79,2.97,2.85,2.93,2.95, 2.90,2.94,2.93,2.98,2.89,2.94,2.96,3.01,3.01,3.06, 0.09,0.10,0.10,0.10,0.10,0.13,0.11,0.15,0.15,0.14, 0.16,0.18,0.18,0.18,0.20,0.20,0.20,0.21,0.25,0.20, 0.23,0.20,0.25,0.26,0.26,0.28,0.26,0.31,0.29,0.33, 0.33,0.34,0.32,0.36,0.32,0.37,0.35,0.36,0.36,0.41, 0.40,0.39,0.42,0.42,0.43,0.41,0.47,0.46,0.48,0.47, 0.43,0.49,0.49,0.51,0.49,0.44,0.54,0.55,0.54,0.51, 0.59,0.59,0.59,0.60,0.57,0.58,0.58,0.61,0.61,0.70, 0.60,0.62,0.66,0.66,0.66,0.63,0.70,0.67,0.68,0.71, 0.74,0.73,0.75,0.72,0.70,0.75,0.75,0.81,0.78,0.79, 0.82,0.83,0.79,0.82,0.83,0.80,0.88,0.80,0.85,0.82, 0.89,0.89,0.85,0.90,0.91,0.96,0.95,0.92,0.91,0.95, 0.92,0.99,0.94,1.00,0.94,0.97,1.01,1.03,1.01,1.05, 1.08,1.00,1.01,1.11,1.04,1.08,1.07,1.06,1.12,1.11, 1.12,1.11,1.06,1.08,1.19,1.13,1.14,1.14,1.16,1.21, 1.19,1.20,1.23,1.24,1.17,1.16,1.22,1.23,1.31,1.23, 1.19,1.33,1.31,1.26,1.27,1.31,1.35,1.29,1.28,1.30, 1.38,1.37,1.31,1.40,1.40,1.41,1.34,1.43,1.38,1.45, 1.38,1.39,1.45,1.46,1.38,1.38,1.48,1.50,1.46,1.53, 1.48,1.53,1.46,1.51,1.52,1.57,1.59,1.55,1.58,1.60, 1.52,1.60,1.59,1.55,1.66,1.55,1.65,1.69,1.62,1.62, 1.66,1.62,1.70,1.67,1.65,1.69,1.71,1.74,1.69,1.73, 1.67,1.69,1.77,1.77,1.78,1.79,1.70,1.71,1.82,1.79, 1.77,1.83,1.88,1.86,1.84,1.83,1.90,1.83,1.88,1.89, 1.95,1.94,1.85,1.90,1.90,1.91,1.92,1.92,1.97,2.08, 1.92,1.97,1.97,2.04,2.02,2.02,2.00,2.00,2.07,2.03, 2.08,2.06,2.08,2.09,2.08,2.16,2.16,2.13,2.17,2.15, 2.09,2.09,2.14,2.12,2.18,2.15,2.16,2.17,2.16,2.17, 2.13,2.30,2.25,2.28,2.23,2.31,2.25,2.23,2.26,2.30, 2.36,2.28,2.30,2.35,2.33,2.29,2.38,2.31,2.33,2.33, 0.06,0.07,0.08,0.09,0.10,0.10,0.09,0.09,0.11,0.11, 0.12,0.13,0.16,0.16,0.17,0.17,0.16,0.17,0.17,0.15, 0.20,0.18,0.23,0.19,0.23,0.22,0.23,0.20,0.22,0.22, 0.24,0.24,0.22,0.23,0.24,0.29,0.31,0.29,0.27,0.30, 0.30,0.29,0.29,0.33,0.35,0.35,0.36,0.37,0.33,0.33, 0.38,0.39,0.36,0.38,0.40,0.41,0.40,0.40,0.41,0.44, 0.39,0.42,0.40,0.46,0.48,0.45,0.46,0.47,0.48,0.41, 0.51,0.50,0.49,0.53,0.50,0.51,0.53,0.51,0.57,0.59, 0.56,0.55,0.55,0.56,0.53,0.58,0.56,0.58,0.61,0.59, 0.61,0.68,0.67,0.68,0.63,0.66,0.65,0.66,0.67,0.67, 0.68,0.70,0.68,0.68,0.73,0.74,0.72,0.75,0.71,0.69, 0.80,0.76,0.72,0.71,0.74,0.84,0.82,0.74,0.77,0.77, 0.80,0.85,0.82,0.77,0.79,0.78,0.82,0.88,0.81,0.84, 0.92,0.89,0.89,0.88,0.88,0.92,0.84,0.90,0.92,0.93, 0.94,0.88,0.94,0.97,0.94,0.98,0.95,0.98,0.95,1.01, 1.00,0.98,1.04,0.99,1.02,1.02,1.03,0.99,1.08,1.02, 1.01,1.05,1.09,1.07,1.17,1.09,1.05,1.07,1.13,1.08, 1.09,1.12,1.13,1.11,1.12,1.20,1.22,1.17,1.07,1.13, 1.17,1.16,1.19,1.19,1.23,1.19,1.23,1.26,1.23,1.21, 1.19,1.17,1.21,1.22,1.30,1.30,1.25,1.23,1.27,1.28, 1.33,1.34,1.23,1.27,1.35,1.35,1.32,1.30,1.33,1.33, 1.34,1.39,1.36,1.35,1.38,1.39,1.43,1.36,1.40,1.43, 1.41,1.46,1.36,1.48,1.44,1.40,1.51,1.46,1.43,1.44, 1.49,1.51,1.48,1.54,1.55,1.56,1.52,1.48,1.47,1.57, 1.58,1.53,1.59,1.54,1.52,1.60,1.61,1.57,1.61,1.59, 1.63,1.60,1.54,1.59,1.64,1.61,1.65,1.59,1.67,1.70, 1.65,1.66,1.67,1.72,1.65,1.72,1.72,1.71,1.72,1.71, 1.70,1.71,1.83,1.79,1.72,1.75,1.80,1.67,1.75,1.69, 1.78,1.75,1.77,1.83,1.86,1.85,1.88,1.88,1.81,1.85, 2.20,2.56,2.64,2.94,3.11,3.34,3.56,3.75,4.01,4.29, 4.43,4.73,4.87,5.05,5.27,5.51,5.72,5.93,6.08,6.51, 6.76,6.91,7.02,7.20,7.48,7.72,8.01,8.05,8.39,8.64, 8.67,8.93,9.11,9.48,9.73,9.84,9.99,10.13,10.29,10.56, 10.99,11.21,11.28,11.64,11.87,12.02,12.31,12.48,12.63,13.08, 13.18,13.24,13.49,13.70,13.92,14.25,14.41,14.54,14.85,15.06, 15.20,15.71,15.91,15.86,16.05,16.40,16.77,16.74,17.05,17.16, 17.39,17.57,17.89,17.91,18.23,18.68,18.89,18.84,19.20,19.33, 19.54,19.76,20.16,20.12,20.18,20.67,21.10,21.17,21.42,21.47, 21.79,21.93,22.19,22.36,22.70,22.81,23.08,23.45,23.59,23.67, 23.79,24.17,24.46,24.53,24.74,25.11,25.33,25.35,25.74,25.95, 26.21,26.63,26.51,26.64,27.04,27.01,27.48,27.67,27.82,28.27, 28.29,28.52,28.68,28.98,29.18,29.27,29.67,29.92,29.92,30.08, 30.33,30.58,30.96,31.22,31.34,31.73,31.64,31.71,31.99,32.36, 32.64,32.71,33.23,33.10,33.47,33.81,33.97,34.23,34.34,34.80, 34.53,34.64,35.26,35.66,35.67,35.65,36.11,36.41,36.68,36.88, 36.97,37.25,37.37,37.67,37.92,37.98,38.30,38.51,38.77,39.02, 39.25,39.45,39.70,39.77,39.98,40.19,40.57,40.77,40.81,40.84, 41.64,41.79,41.96,42.00,42.08,42.31,42.72,42.82,43.28,43.27, 43.51,43.62,43.99,44.47,44.16,44.12,44.65,44.95,45.06,45.27, 45.78,45.98,45.69,46.81,46.77,46.78,46.86,46.92,46.96,47.77, 47.78,48.06,48.28,48.38,48.44,49.15,49.10,49.08,49.62,49.80, 50.14,50.40,50.59,50.25,51.19,51.28,51.21,51.53,51.56,51.92, 52.12,52.50,52.46,52.93,53.21,53.30,53.67,53.87,53.83,54.41, 54.25,54.49,54.80,54.90,55.36,55.20,55.62,55.84,56.54,56.19, 56.65,57.00,57.13,56.71,57.30,57.64,57.41,57.79,58.36,58.79, 58.93,58.97,59.22,59.26,59.48,59.54,59.93,60.25,60.72,60.81, 60.67,60.91,61.24,61.70,61.75,62.03,62.09,62.51,62.40,62.93, 63.07,63.39,63.29,63.57,63.56,63.70,64.24,64.56,64.95,65.09, 1.78,1.92,2.13,2.27,2.44,2.58,2.85,3.07,3.19,3.35, 3.50,3.58,3.82,4.03,4.34,4.31,4.53,4.66,4.79,5.03, 5.17,5.47,5.60,5.79,5.93,6.06,6.19,6.38,6.60,6.86, 6.96,7.14,7.24,7.46,7.67,7.73,7.98,8.13,8.27,8.44, 8.70,8.79,8.83,9.19,9.38,9.56,9.58,9.77,10.09,10.17, 10.20,10.51,10.62,10.88,11.10,11.16,11.15,11.46,11.73,11.87, 12.20,12.34,12.38,12.55,12.65,12.90,13.07,13.19,13.45,13.46, 13.87,13.85,14.20,14.23,14.63,14.46,14.77,15.08,15.10,15.29, 15.39,15.68,15.82,15.91,16.24,16.26,16.70,16.59,16.95,17.06, 16.96,17.30,17.55,17.73,17.86,18.14,18.33,18.52,18.54,18.69, 18.98,19.12,19.25,19.36,19.77,19.69,20.06,20.19,20.22,20.54, 20.73,20.74,20.81,21.16,21.44,21.32,21.99,21.75,22.23,22.12, 22.35,22.48,22.73,23.08,23.21,23.12,23.33,23.50,23.81,23.95, 23.98,24.25,24.48,24.53,24.90,24.99,25.11,25.05,25.47,25.53, 25.65,25.96,26.03,26.28,26.56,26.63,26.71,27.10,27.25,27.27, 27.44,27.69,27.86,27.71,28.26,28.35,28.55,28.74,28.95,28.91, 29.01,29.37,29.70,29.76,29.86,29.80,30.51,30.50,30.28,30.88, 31.07,30.97,31.24,31.35,31.61,31.82,31.87,32.05,32.28,32.56, 32.77,32.73,33.00,33.31,33.17,33.44,33.54,33.50,34.07,34.10, 34.03,34.37,34.78,34.85,35.01,35.20,35.31,35.52,35.60,35.64, 36.03,36.31,36.28,36.45,36.70,36.80,37.23,37.17,37.31,37.74, 37.73,38.23,38.35,38.32,38.57,38.48,38.83,38.68,39.31,39.34, 39.74,39.60,39.98,40.08,40.18,40.13,40.58,40.58,40.88,40.95, 41.49,41.21,41.72,41.59,41.56,41.95,42.09,42.46,42.69,43.03, 42.79,43.25,42.94,43.44,43.64,43.71,43.67,43.88,44.29,44.48, 44.62,44.81,44.93,45.27,45.07,45.49,45.84,45.94,46.22,46.19, 46.60,46.42,46.59,46.66,46.69,47.40,47.12,47.59,47.54,48.11, 48.26,48.13,48.36,48.59,48.62,48.67,49.26,49.15,49.44,49.73, 49.81,49.91,50.16,50.32,50.48,50.53,50.81,51.05,51.15,51.37, 1.47,1.55,1.63,1.90,2.00,2.08,2.23,2.35,2.47,2.65, 2.85,2.89,2.97,3.17,3.24,3.42,3.58,3.69,3.84,3.97, 4.11,4.16,4.33,4.62,4.73,4.81,4.89,5.00,5.13,5.40, 5.50,5.66,5.75,5.99,6.00,6.10,6.34,6.30,6.62,6.82, 6.84,6.92,7.11,7.27,7.29,7.47,7.69,7.75,7.94,8.01, 8.24,8.37,8.45,8.64,8.59,8.82,9.00,9.29,9.30,9.40, 9.43,9.58,9.69,10.14,9.93,10.38,10.45,10.54,10.61,10.69, 10.87,10.87,11.00,11.13,11.42,11.58,11.63,11.88,11.91,12.14, 12.44,12.34,12.47,12.56,12.85,12.88,13.04,12.97,13.35,13.31, 13.61,13.87,13.63,13.83,14.17,14.23,14.36,14.44,14.68,14.73, 14.97,15.39,15.36,15.34,15.53,15.46,15.95,15.91,15.97,16.14, 16.32,16.39,16.79,16.83,16.86,16.88,17.26,17.22,17.44,17.55, 17.54,17.65,17.94,18.33,18.16,18.33,18.44,18.58,18.70,18.93, 18.98,19.17,19.50,19.51,19.63,19.82,19.70,19.96,20.12,20.15, 20.49,20.68,20.67,20.88,20.94,20.87,21.40,21.67,21.61,21.63, 21.67,21.97,21.98,22.14,22.25,22.49,22.44,22.76,22.80,22.86, 23.04,23.31,23.25,23.46,23.58,23.79,24.00,24.00,24.12,24.02, 24.30,24.78,24.66,24.97,24.93,25.03,25.28,25.16,25.66,25.59, 25.89,25.81,25.87,26.23,26.24,26.26,26.58,26.64,26.87,26.80, 26.91,27.20,27.45,27.43,27.69,27.99,28.02,27.95,27.97,28.50, 28.62,28.66,28.63,28.77,29.18,29.19,29.16,29.29,29.72,29.96, 29.67,30.06,29.91,30.18,30.41,30.62,30.56,30.89,30.89,31.10, 31.38,31.25,31.56,31.61,31.73,31.93,32.08,32.18,32.40,32.68, 32.71,32.82,32.72,32.96,33.26,33.50,33.28,33.31,33.53,33.63, 34.14,34.16,34.20,34.27,34.58,34.56,34.76,34.78,34.91,34.92, 35.23,35.76,35.34,35.84,35.87,36.04,35.90,36.30,36.37,36.29, 36.77,36.68,36.84,37.15,37.43,37.43,37.61,37.84,37.80,37.72, 37.85,38.04,38.09,38.54,38.62,38.64,38.46,38.86,39.26,38.93, 39.27,39.45,39.37,39.66,39.72,39.86,40.40,40.73,40.32,40.68, 1.09,1.23,1.35,1.39,1.53,1.61,1.77,1.80,2.00,2.02, 2.14,2.34,2.40,2.44,2.63,2.74,2.84,2.91,3.06,3.22, 3.30,3.26,3.47,3.64,3.63,3.84,3.86,3.97,4.03,4.19, 4.29,4.41,4.49,4.60,4.71,4.76,4.92,5.10,5.13,5.35, 5.38,5.42,5.55,5.59,5.90,5.95,6.07,6.13,6.29,6.28, 6.35,6.59,6.75,6.63,6.94,6.89,7.07,7.36,7.37,7.43, 7.49,7.69,7.83,7.91,7.92,8.19,8.05,8.34,8.43,8.66, 8.59,8.81,8.73,8.99,9.05,9.17,9.24,9.38,9.48,9.49, 9.68,9.89,9.96,9.99,10.04,10.11,10.47,10.48,10.41,10.75, 10.75,10.96,10.81,11.21,11.09,11.31,11.39,11.51,11.67,11.62, 11.84,11.93,11.91,12.27,12.15,12.29,12.36,12.62,12.61,12.81, 12.83,12.97,13.04,13.15,13.18,13.66,13.46,13.51,13.84,13.82, 13.97,14.13,14.32,14.22,14.37,14.65,14.55,14.62,14.76,14.93, 15.03,15.14,14.99,15.45,15.41,15.69,15.79,15.81,15.93,16.04, 15.96,16.15,16.24,16.32,16.42,16.82,16.57,16.90,16.94,17.26, 17.17,17.27,17.48,17.56,17.58,17.70,17.79,17.83,17.96,17.94, 18.08,18.49,18.48,18.53,18.58,18.94,18.68,18.92,19.33,19.36, 19.46,19.37,19.51,19.61,19.77,20.00,20.04,20.14,20.33,20.07, 20.47,20.48,20.39,20.69,20.71,20.93,21.10,21.04,21.15,21.45, 21.38,21.46,21.77,21.77,22.01,22.11,22.23,22.14,22.29,22.39, 22.62,22.51,22.95,22.87,22.81,23.13,23.31,23.20,23.37,23.25, 23.49,23.61,23.85,23.82,23.82,23.82,24.39,24.54,24.64,24.80, 24.66,24.54,24.67,24.90,25.27,25.12,25.52,25.33,25.40,25.47, 25.68,25.77,25.93,26.02,25.89,26.33,26.37,26.29,26.63,26.64, 26.71,26.73,27.07,27.09,27.17,27.23,27.50,27.63,27.41,27.79, 27.64,28.02,28.03,28.00,28.29,28.20,28.52,28.55,28.63,28.78, 28.99,29.07,28.92,28.95,29.20,29.37,29.58,29.82,29.95,29.97, 29.82,30.05,30.41,30.53,30.23,30.65,30.61,30.71,30.87,31.10, 30.99,30.89,31.33,31.22,31.18,31.57,31.44,31.73,32.12,31.95, 0.92,0.93,1.01,1.12,1.23,1.26,1.34,1.50,1.55,1.67, 1.70,1.80,1.89,1.94,2.06,2.19,2.24,2.31,2.36,2.56, 2.60,2.66,2.68,2.74,3.01,2.94,2.99,3.08,3.39,3.35, 3.41,3.48,3.56,3.72,3.72,3.85,4.06,3.90,4.11,4.17, 4.32,4.41,4.59,4.57,4.52,4.66,4.78,4.80,4.97,5.10, 5.21,5.18,5.37,5.33,5.40,5.46,5.56,5.70,5.78,5.80, 6.05,5.96,6.09,6.17,6.36,6.53,6.41,6.54,6.54,6.67, 6.77,6.85,7.04,7.02,7.10,7.29,7.33,7.36,7.32,7.47, 7.65,7.67,7.79,7.94,7.99,8.13,8.21,8.14,8.31,8.32, 8.56,8.54,8.70,8.70,8.92,8.86,8.96,9.00,9.13,9.40, 9.18,9.43,9.52,9.56,9.77,9.77,9.99,9.96,9.91,10.17, 10.08,10.30,10.33,10.52,10.38,10.63,10.59,10.73,10.88,11.01, 10.97,11.02,11.16,11.29,11.31,11.50,11.50,11.72,11.70,11.92, 11.89,11.98,12.13,12.02,12.04,12.20,12.49,12.39,12.61,12.46, 12.72,12.82,12.90,12.96,12.97,13.10,13.10,13.34,13.44,13.37, 13.48,13.72,13.89,13.58,13.72,14.04,13.99,14.18,14.16,14.26, 14.57,14.34,14.54,14.49,14.93,14.96,14.76,15.02,15.05,15.19, 15.03,15.48,15.52,15.19,15.75,15.78,15.73,16.00,15.86,15.99, 16.02,16.41,16.28,16.37,16.23,16.42,16.51,16.54,16.89,16.77, 16.77,16.98,17.22,17.46,17.53,17.50,17.33,17.55,17.57,17.81, 17.75,17.82,17.91,17.89,18.22,18.20,18.27,18.75,18.47,18.54, 18.65,18.65,18.82,19.08,18.78,19.12,19.26,19.15,19.43,19.31, 19.40,19.50,19.63,20.06,20.01,19.77,19.84,20.00,20.16,20.03, 20.18,20.30,20.68,20.52,20.64,20.72,20.71,21.14,21.11,21.18, 21.24,21.16,21.36,21.60,21.62,21.57,21.86,21.87,21.85,21.91, 21.87,21.93,22.30,22.40,22.18,22.42,22.75,22.36,22.64,22.71, 22.79,22.93,23.18,23.10,23.16,23.19,23.34,23.32,23.48,23.86, 23.69,23.93,23.62,24.00,24.27,24.11,24.41,24.40,24.29,24.37, 24.62,24.50,24.68,24.97,24.80,25.24,25.15,25.12,25.22,25.77, 0.68,0.74,0.84,0.93,0.93,1.04,1.09,1.14,1.19,1.29, 1.35,1.42,1.49,1.61,1.58,1.69,1.79,1.87,1.90,1.95, 1.97,2.15,2.19,2.21,2.32,2.29,2.47,2.46,2.54,2.62, 2.68,2.78,2.80,2.89,3.00,3.00,3.05,3.22,3.24,3.28, 3.39,3.43,3.52,3.46,3.67,3.72,3.72,3.87,3.90,3.96, 4.05,4.11,4.20,4.24,4.37,4.41,4.38,4.45,4.53,4.65, 4.67,4.78,4.82,4.76,4.91,4.93,5.20,5.23,5.38,5.34, 5.43,5.38,5.58,5.52,5.60,5.65,5.73,5.71,5.75,5.91, 6.05,5.94,6.22,6.29,6.32,6.43,6.41,6.59,6.41,6.46, 6.71,6.76,6.78,6.86,6.94,6.96,6.95,7.20,7.26,7.37, 7.24,7.50,7.60,7.66,7.76,7.79,7.80,7.87,7.97,7.95, 8.10,8.00,8.13,8.18,8.39,8.32,8.42,8.57,8.40,8.62, 8.77,8.84,8.92,8.88,8.94,9.08,9.16,9.10,9.27,9.26, 9.55,9.54,9.65,9.60,9.68,9.64,9.76,9.85,9.98,10.21, 10.03,10.12,10.13,10.27,10.31,10.29,10.55,10.48,10.57,10.68, 10.77,10.77,10.74,11.00,11.10,11.14,11.15,11.25,11.28,11.27, 11.40,11.41,11.59,11.79,11.62,11.63,11.78,11.76,11.82,12.10, 12.09,12.08,12.16,12.16,12.43,12.45,12.56,12.32,12.87,12.73, 12.91,12.85,12.74,12.97,12.97,13.01,13.00,13.27,13.26,13.26, 13.25,13.54,13.57,13.78,13.65,13.76,13.67,13.84,13.87,14.09, 13.95,14.08,14.33,14.21,14.50,14.32,14.52,14.68,14.46,14.72, 14.53,14.87,14.84,14.89,15.05,14.95,15.13,15.13,15.30,15.44, 15.50,15.38,15.37,15.57,15.70,15.70,15.49,15.68,15.73,15.86, 16.13,15.97,16.06,16.09,16.16,16.26,16.33,16.42,16.54,16.57, 16.75,16.86,16.82,16.86,16.90,17.19,16.99,17.38,17.10,17.41, 17.25,17.36,17.57,17.64,17.84,17.65,17.66,17.82,18.00,17.86, 18.09,17.96,18.34,18.26,18.20,18.52,18.41,18.50,18.48,18.91, 18.86,18.84,18.59,18.98,18.86,19.28,19.29,19.18,19.13,19.41, 19.25,19.38,19.44,19.51,19.78,19.75,19.65,19.83,20.06,19.91, 0.57,0.61,0.66,0.71,0.76,0.84,0.82,0.89,0.92,0.96, 1.07,1.14,1.17,1.26,1.36,1.36,1.43,1.43,1.50,1.58, 1.68,1.67,1.68,1.77,1.79,1.83,1.95,2.03,2.11,2.08, 2.11,2.17,2.19,2.42,2.30,2.44,2.46,2.56,2.50,2.65, 2.70,2.77,2.79,2.84,2.84,2.95,2.95,2.95,3.04,3.13, 3.26,3.31,3.29,3.36,3.36,3.38,3.45,3.54,3.50,3.53, 3.75,3.77,3.73,3.81,3.89,3.93,4.11,4.05,4.08,4.16, 4.30,4.25,4.40,4.44,4.55,4.42,4.54,4.62,4.70,4.61, 4.82,4.82,4.77,4.85,4.80,4.94,5.11,5.02,5.18,5.32, 5.32,5.39,5.30,5.49,5.50,5.57,5.70,5.66,5.59,5.82, 5.84,5.88,5.98,5.92,6.08,6.09,6.15,6.08,6.13,6.30, 6.42,6.41,6.41,6.56,6.54,6.59,6.49,6.55,6.83,6.77, 6.76,6.97,7.07,7.09,7.07,7.04,7.27,7.20,7.38,7.40, 7.44,7.49,7.56,7.59,7.77,7.66,7.78,7.88,7.77,7.91, 7.85,8.03,8.13,8.04,8.00,8.23,8.26,8.24,8.33,8.43, 8.66,8.49,8.54,8.70,8.89,8.66,8.89,8.93,9.10,8.94, 9.04,9.08,9.16,9.10,9.11,9.38,9.25,9.47,9.45,9.32, 9.44,9.59,9.68,9.61,9.72,9.70,9.89,9.93,9.84,10.04, 10.02,10.20,10.15,10.29,10.27,10.41,10.43,10.46,10.37,10.38, 10.54,10.82,10.67,10.84,10.81,10.71,10.91,10.98,11.09,11.11, 11.25,11.17,11.16,11.27,11.28,11.31,11.23,11.36,11.45,11.64, 11.55,11.63,11.60,11.73,11.79,11.91,12.06,12.05,11.97,12.07, 12.14,12.03,12.11,12.34,12.28,12.51,12.40,12.40,12.59,12.56, 12.69,12.72,12.90,12.75,12.88,12.96,12.85,13.08,13.28,13.31, 13.06,13.12,13.34,13.50,13.49,13.45,13.50,13.75,13.79,13.69, 13.67,13.91,13.78,13.89,13.79,13.81,14.01,14.06,14.13,14.29, 14.35,14.30,14.41,14.61,14.41,14.45,14.59,14.81,14.73,14.75, 14.62,14.74,14.66,14.81,15.22,14.94,14.96,15.61,15.16,15.38, 15.30,15.36,15.56,15.27,15.62,15.62,15.73,15.82,15.77,15.94, 0.43,0.48,0.53,0.59,0.62,0.62,0.66,0.69,0.76,0.86, 0.83,0.90,0.92,0.99,1.07,0.99,1.07,1.16,1.20,1.18, 1.25,1.34,1.36,1.35,1.39,1.55,1.51,1.56,1.56,1.61, 1.69,1.77,1.76,1.75,1.85,1.93,1.93,1.90,1.94,2.06, 2.10,2.14,2.19,2.22,2.31,2.36,2.35,2.41,2.49,2.46, 2.51,2.47,2.57,2.64,2.61,2.69,2.73,2.83,2.95,2.99, 2.88,3.09,3.01,3.08,3.13,3.26,3.19,3.21,3.21,3.29, 3.40,3.31,3.47,3.41,3.48,3.48,3.46,3.54,3.64,3.73, 3.73,3.78,3.73,3.81,3.95,4.10,3.93,3.94,4.05,4.19, 4.18,4.20,4.30,4.36,4.26,4.32,4.54,4.56,4.42,4.54, 4.59,4.69,4.69,4.67,4.81,4.77,4.90,4.89,5.05,5.02, 5.03,5.07,5.09,5.02,5.11,5.28,5.40,5.26,5.39,5.51, 5.36,5.38,5.56,5.58,5.55,5.66,5.68,5.59,5.84,5.79, 5.87,6.03,5.84,6.08,5.98,6.00,6.02,6.10,6.16,6.28, 6.33,6.31,6.26,6.43,6.53,6.31,6.51,6.58,6.75,6.63, 6.61,6.71,6.59,6.83,6.88,6.85,6.86,7.06,7.15,7.12, 7.16,7.24,7.17,7.32,7.22,7.35,7.28,7.43,7.48,7.54, 7.49,7.55,7.76,7.72,7.71,7.68,7.83,7.79,7.91,8.00, 7.80,7.83,7.84,8.16,8.08,8.15,8.23,8.19,8.29,8.31, 8.38,8.27,8.42,8.45,8.58,8.74,8.65,8.62,8.85,8.71, 8.78,8.63,8.89,8.70,8.96,9.02,9.06,9.20,9.00,9.21, 9.22,9.13,9.17,9.18,9.52,9.26,9.34,9.37,9.55,9.54, 9.59,9.65,9.66,9.77,9.68,9.84,9.92,9.85,9.87,10.05, 10.18,10.08,10.09,10.15,10.20,10.26,10.34,10.24,10.37,10.38, 10.46,10.41,10.50,10.53,10.44,10.62,10.75,10.66,10.69,10.77, 10.85,10.74,10.87,10.97,11.09,11.09,11.14,11.14,11.21,11.23, 11.21,11.28,11.46,11.38,11.38,11.51,11.39,11.68,11.73,11.67, 11.66,11.80,11.74,11.91,11.89,11.84,11.95,11.97,12.07,12.03, 12.17,12.11,12.26,12.30,12.33,12.39,12.35,12.49,12.41,12.33, 0.36,0.39,0.46,0.41,0.47,0.50,0.52,0.58,0.63,0.64, 0.70,0.74,0.73,0.80,0.79,0.81,0.87,0.92,0.96,0.99, 0.99,0.99,1.04,1.12,1.15,1.15,1.22,1.20,1.29,1.29, 1.37,1.33,1.45,1.47,1.40,1.48,1.51,1.56,1.63,1.67, 1.60,1.67,1.72,1.77,1.77,1.86,1.88,1.92,1.91,2.01, 1.92,1.94,2.11,2.06,2.10,2.18,2.18,2.24,2.19,2.25, 2.31,2.35,2.37,2.42,2.37,2.54,2.62,2.58,2.60,2.55, 2.65,2.71,2.74,2.86,2.70,2.68,2.94,2.85,2.88,2.90, 2.92,3.01,3.05,3.16,3.18,3.13,3.18,3.21,3.19,3.22, 3.39,3.35,3.37,3.30,3.35,3.45,3.46,3.49,3.64,3.60, 3.72,3.62,3.85,3.74,3.85,3.76,3.71,3.88,3.91,4.00, 3.88,3.94,4.11,4.03,4.07,4.12,4.18,4.14,4.20,4.26, 4.23,4.32,4.26,4.43,4.41,4.43,4.42,4.52,4.51,4.73, 4.64,4.77,4.59,4.74,4.83,4.89,4.78,4.91,4.86,4.96, 4.98,5.04,4.91,5.10,5.21,5.05,5.21,5.14,5.13,5.18, 5.18,5.28,5.27,5.40,5.44,5.30,5.40,5.48,5.63,5.63, 5.52,5.71,5.76,5.69,5.78,5.67,5.71,5.90,5.89,5.80, 5.93,5.83,5.94,6.09,6.10,6.05,6.23,6.18,6.03,6.25, 6.35,6.30,6.31,6.40,6.49,6.48,6.43,6.48,6.50,6.58, 6.63,6.72,6.69,6.64,6.73,6.71,6.80,6.70,6.93,6.85, 6.95,6.89,7.11,7.02,7.04,7.09,7.19,7.04,7.34,7.10, 7.26,7.18,7.28,7.29,7.46,7.47,7.52,7.42,7.53,7.54, 7.56,7.56,7.60,7.69,7.80,7.66,7.91,7.79,7.81,7.82, 7.93,8.00,7.91,8.16,8.04,8.06,8.19,8.19,8.20,8.24, 8.16,8.10,8.23,8.45,8.38,8.53,8.34,8.50,8.50,8.50, 8.65,8.57,8.62,8.75,8.53,8.71,8.72,8.90,8.71,8.94, 8.91,8.94,8.90,8.94,9.07,9.13,9.12,9.13,9.22,9.11, 9.30,9.08,9.26,9.39,9.26,9.23,9.60,9.53,9.46,9.36, 9.50,9.52,9.73,9.68,9.70,9.64,9.81,9.74,9.87,9.88, 0.27,0.31,0.31,0.37,0.39,0.38,0.43,0.43,0.47,0.48, 0.55,0.52,0.57,0.64,0.63,0.69,0.63,0.71,0.72,0.85, 0.76,0.80,0.87,0.91,0.89,0.86,0.89,0.91,1.00,1.09, 1.05,1.08,1.12,1.11,1.08,1.18,1.26,1.24,1.26,1.26, 1.28,1.33,1.37,1.40,1.40,1.45,1.49,1.50,1.56,1.58, 1.48,1.59,1.70,1.62,1.66,1.78,1.73,1.74,1.79,1.76, 1.76,1.83,1.86,1.85,1.85,1.88,1.98,1.99,1.97,2.02, 2.02,2.14,2.12,2.21,2.28,2.24,2.26,2.34,2.31,2.43, 2.34,2.39,2.46,2.46,2.47,2.45,2.48,2.54,2.55,2.64, 2.60,2.65,2.66,2.70,2.76,2.65,2.79,2.85,2.83,2.85, 2.89,2.90,2.92,2.93,3.03,3.06,3.01,3.15,3.05,3.11, 3.12,3.19,3.24,3.23,3.28,3.23,3.24,3.20,3.39,3.32, 3.36,3.40,3.44,3.48,3.49,3.48,3.54,3.49,3.67,3.71, 3.62,3.70,3.70,3.67,3.82,3.89,3.88,3.83,3.81,3.91, 3.97,3.93,3.89,3.99,3.96,4.04,4.02,4.19,4.09,4.12, 4.14,4.24,4.21,4.30,4.27,4.19,4.33,4.31,4.41,4.40, 4.41,4.50,4.42,4.55,4.45,4.59,4.48,4.67,4.73,4.63, 4.62,4.72,4.67,4.72,4.90,4.85,4.83,4.82,4.85,4.95, 4.92,4.98,4.99,4.94,5.14,4.95,5.14,5.16,5.23,5.11, 5.18,5.24,5.32,5.24,5.33,5.25,5.35,5.34,5.53,5.44, 5.53,5.49,5.45,5.53,5.55,5.52,5.67,5.59,5.65,5.67, 5.68,5.75,5.67,5.74,5.81,5.90,5.89,5.93,5.98,6.00, 6.05,6.07,6.13,6.03,6.12,6.14,6.19,6.24,6.23,6.25, 6.24,6.13,6.26,6.32,6.50,6.34,6.41,6.44,6.46,6.52, 6.57,6.53,6.50,6.43,6.58,6.62,6.59,6.72,6.76,6.75, 6.87,6.78,6.91,6.86,6.79,6.93,7.00,6.95,7.17,7.02, 7.04,7.13,7.02,7.08,7.12,7.22,7.13,7.03,7.17,7.23, 7.24,7.29,7.33,7.35,7.30,7.30,7.41,7.60,7.36,7.58, 7.63,7.50,7.63,7.43,7.57,7.64,7.84,7.71,7.77,7.64, 0.21,0.26,0.25,0.26,0.29,0.29,0.32,0.36,0.41,0.41, 0.43,0.42,0.46,0.47,0.49,0.53,0.57,0.53,0.58,0.61, 0.66,0.67,0.66,0.73,0.73,0.72,0.67,0.78,0.80,0.80, 0.81,0.87,0.87,0.90,0.90,0.96,0.94,0.94,1.04,1.02, 1.04,1.09,1.06,1.15,1.13,1.10,1.16,1.15,1.21,1.22, 1.21,1.25,1.24,1.27,1.34,1.32,1.43,1.40,1.42,1.47, 1.41,1.48,1.52,1.51,1.51,1.55,1.62,1.59,1.63,1.67, 1.61,1.68,1.67,1.71,1.71,1.72,1.80,1.74,1.80,1.84, 1.87,1.86,1.96,1.91,1.95,1.98,2.07,2.00,2.08,2.05, 2.08,2.04,2.11,2.11,2.07,2.16,2.31,2.25,2.24,2.25, 2.29,2.33,2.33,2.32,2.41,2.33,2.37,2.45,2.49,2.50, 2.55,2.57,2.52,2.59,2.58,2.47,2.55,2.66,2.70,2.71, 2.67,2.65,2.60,2.70,2.77,2.81,2.75,2.75,2.79,2.79, 2.89,2.90,2.93,2.97,2.92,3.02,2.97,3.02,3.15,3.04, 3.12,3.01,3.15,3.15,3.15,3.12,3.21,3.24,3.29,3.37, 3.37,3.41,3.27,3.40,3.38,3.41,3.43,3.51,3.40,3.50, 3.54,3.50,3.54,3.60,3.55,3.63,3.52,3.65,3.67,3.65, 3.78,3.64,3.69,3.78,3.85,3.87,3.81,3.89,3.96,3.91, 3.96,3.92,3.89,3.96,3.93,4.05,4.01,4.14,4.21,4.01, 4.14,4.05,4.09,4.16,4.20,4.24,4.24,4.13,4.29,4.38, 4.36,4.36,4.38,4.38,4.44,4.49,4.33,4.43,4.40,4.49, 4.60,4.53,4.54,4.56,4.63,4.74,4.82,4.62,4.70,4.83, 4.73,4.63,4.67,4.67,4.84,4.79,4.93,4.82,4.90,5.01, 4.95,5.04,4.93,5.06,5.05,4.92,5.11,4.91,5.10,5.15, 5.19,5.20,5.15,5.16,5.33,5.21,5.15,5.25,5.28,5.41, 5.17,5.35,5.40,5.30,5.37,5.45,5.38,5.51,5.62,5.50, 5.51,5.59,5.53,5.59,5.63,5.66,5.71,5.82,5.86,5.61, 5.67,5.89,5.80,5.83,5.85,5.76,5.88,5.91,5.92,6.09, 6.00,6.03,6.05,5.95,6.11,6.13,6.20,6.13,6.17,6.11, 0.19,0.19,0.21,0.23,0.23,0.25,0.29,0.27,0.30,0.31, 0.36,0.36,0.34,0.39,0.39,0.38,0.41,0.46,0.46,0.49, 0.51,0.51,0.56,0.54,0.54,0.57,0.57,0.64,0.66,0.66, 0.63,0.67,0.74,0.71,0.71,0.73,0.76,0.81,0.77,0.82, 0.85,0.85,0.85,0.87,0.92,0.92,0.89,0.90,0.95,0.99, 0.92,0.98,1.01,1.04,1.03,1.07,1.06,1.09,1.18,1.08, 1.16,1.17,1.15,1.15,1.20,1.16,1.24,1.28,1.22,1.35, 1.33,1.31,1.40,1.39,1.31,1.39,1.47,1.39,1.46,1.38, 1.47,1.42,1.56,1.52,1.57,1.48,1.58,1.57,1.58,1.63, 1.68,1.67,1.64,1.70,1.69,1.70,1.70,1.75,1.73,1.74, 1.79,1.81,1.83,1.90,1.83,1.87,1.82,1.86,1.87,1.92, 1.89,1.94,2.08,2.02,2.06,2.11,2.05,2.01,2.08,2.11, 2.11,2.15,2.14,2.15,2.26,2.16,2.25,2.22,2.21,2.29, 2.35,2.21,2.34,2.28,2.29,2.46,2.42,2.33,2.36,2.44, 2.47,2.48,2.51,2.46,2.60,2.58,2.48,2.59,2.51,2.53, 2.53,2.63,2.70,2.56,2.62,2.69,2.71,2.71,2.67,2.79, 2.71,2.85,2.78,2.71,2.84,2.78,2.82,2.85,2.87,2.95, 3.02,2.85,2.95,2.99,3.00,2.92,3.05,3.08,3.07,3.08, 3.19,3.12,3.11,3.24,3.15,3.15,3.12,3.12,3.23,3.21, 3.23,3.26,3.26,3.25,3.29,3.32,3.35,3.36,3.38,3.36, 3.37,3.45,3.42,3.45,3.58,3.46,3.49,3.53,3.53,3.56, 3.71,3.54,3.67,3.46,3.71,3.65,3.69,3.71,3.61,3.80, 3.73,3.68,3.83,3.87,3.80,3.77,3.72,3.86,3.77,3.86, 3.95,3.87,3.93,3.87,4.03,3.95,3.87,4.13,3.94,4.17, 4.10,4.05,4.14,4.03,4.08,4.12,4.22,4.09,4.14,4.12, 4.37,4.23,4.25,4.36,4.40,4.44,4.33,4.35,4.36,4.38, 4.36,4.43,4.43,4.42,4.40,4.48,4.45,4.48,4.50,4.55, 4.52,4.61,4.60,4.49,4.62,4.71,4.72,4.66,4.74,4.69, 4.69,4.73,4.68,4.88,4.72,4.82,4.79,4.79,4.78,4.95, 0.12,0.15,0.17,0.21,0.17,0.18,0.20,0.22,0.23,0.29, 0.25,0.27,0.30,0.31,0.30,0.32,0.31,0.34,0.36,0.38, 0.38,0.39,0.43,0.42,0.43,0.49,0.48,0.49,0.51,0.50, 0.55,0.54,0.54,0.58,0.59,0.58,0.60,0.59,0.60,0.63, 0.65,0.62,0.59,0.67,0.75,0.68,0.68,0.71,0.78,0.70, 0.77,0.81,0.81,0.83,0.86,0.86,0.87,0.84,0.84,0.85, 0.87,0.90,0.95,0.92,0.90,0.97,1.00,0.97,1.04,1.04, 1.00,1.06,1.04,1.10,1.08,1.05,1.18,1.07,1.09,1.22, 1.11,1.16,1.18,1.20,1.23,1.30,1.20,1.30,1.28,1.29, 1.27,1.31,1.35,1.23,1.36,1.35,1.34,1.40,1.44,1.45, 1.44,1.39,1.48,1.43,1.45,1.46,1.49,1.49,1.53,1.54, 1.50,1.58,1.58,1.58,1.61,1.68,1.60,1.64,1.65,1.66, 1.65,1.65,1.73,1.77,1.76,1.72,1.79,1.79,1.79,1.78, 1.74,1.74,1.80,1.78,1.82,1.84,1.87,1.85,1.82,1.95, 2.01,1.97,1.92,1.97,2.03,1.88,1.99,1.99,2.04,2.02, 2.05,2.06,2.11,2.18,2.09,2.11,2.08,2.10,2.21,2.15, 2.17,2.18,2.27,2.28,2.20,2.19,2.36,2.19,2.26,2.23, 2.29,2.29,2.37,2.36,2.40,2.38,2.39,2.47,2.47,2.36, 2.44,2.49,2.45,2.47,2.51,2.54,2.49,2.51,2.50,2.60, 2.58,2.54,2.61,2.61,2.60,2.68,2.65,2.63,2.63,2.64, 2.72,2.72,2.66,2.67,2.82,2.79,2.72,2.71,2.80,2.75, 2.73,2.82,2.87,2.83,2.88,2.92,2.93,2.94,3.01,2.95, 2.93,2.93,2.96,2.94,2.96,3.08,3.13,3.00,3.06,3.13, 3.00,3.09,3.10,3.17,3.06,3.23,3.16,3.21,3.16,3.22, 3.24,3.14,3.25,3.24,3.22,3.27,3.20,3.30,3.21,3.31, 3.29,3.33,3.42,3.29,3.35,3.39,3.52,3.38,3.49,3.46, 3.44,3.48,3.47,3.44,3.57,3.61,3.55,3.51,3.64,3.50, 3.62,3.67,3.63,3.62,3.58,3.61,3.63,3.67,3.69,3.72, 3.76,3.64,3.83,3.73,3.75,3.87,3.71,3.83,3.75,3.80, 0.10,0.10,0.14,0.15,0.15,0.15,0.17,0.15,0.17,0.21, 0.19,0.23,0.24,0.25,0.26,0.26,0.31,0.28,0.28,0.31, 0.32,0.30,0.34,0.33,0.35,0.39,0.35,0.41,0.37,0.40, 0.40,0.44,0.46,0.41,0.46,0.46,0.49,0.49,0.50,0.50, 0.51,0.57,0.55,0.56,0.58,0.52,0.57,0.57,0.56,0.60, 0.63,0.66,0.63,0.63,0.69,0.69,0.69,0.70,0.76,0.71, 0.73,0.65,0.72,0.75,0.77,0.75,0.78,0.78,0.80,0.84, 0.84,0.80,0.87,0.87,0.86,0.87,0.85,0.88,0.88,0.93, 0.93,0.96,0.93,0.94,0.92,0.95,0.98,0.92,1.02,0.95, 1.03,1.06,0.99,1.02,1.08,1.07,1.08,1.08,1.10,1.10, 1.04,1.15,1.09,1.13,1.15,1.10,1.22,1.18,1.18,1.22, 1.23,1.23,1.21,1.32,1.30,1.32,1.25,1.30,1.39,1.30, 1.32,1.31,1.28,1.39,1.33,1.39,1.46,1.39,1.46,1.40, 1.51,1.43,1.41,1.42,1.43,1.47,1.50,1.45,1.41,1.50, 1.53,1.51,1.50,1.56,1.57,1.50,1.66,1.63,1.59,1.66, 1.67,1.63,1.64,1.67,1.63,1.73,1.70,1.62,1.66,1.75, 1.68,1.72,1.73,1.70,1.80,1.82,1.78,1.82,1.86,1.81, 1.86,1.82,1.88,1.83,1.88,1.91,1.91,1.90,1.94,1.94, 2.00,1.94,1.98,2.02,1.96,1.95,2.01,2.00,1.94,2.06, 2.00,2.16,2.07,2.02,2.15,1.96,2.09,2.03,2.14,2.15, 2.04,2.18,2.10,2.21,2.22,2.20,2.19,2.26,2.19,2.24, 2.16,2.25,2.34,2.21,2.29,2.26,2.27,2.34,2.36,2.29, 2.33,2.36,2.37,2.35,2.37,2.42,2.35,2.33,2.45,2.47, 2.46,2.32,2.42,2.44,2.52,2.48,2.57,2.52,2.50,2.53, 2.52,2.58,2.60,2.48,2.60,2.60,2.57,2.59,2.58,2.66, 2.59,2.58,2.65,2.77,2.65,2.81,2.70,2.71,2.65,2.72, 2.74,2.67,2.79,2.83,2.68,2.74,2.81,2.74,2.85,2.72, 2.77,2.79,2.90,2.79,2.91,2.88,2.89,2.90,2.92,2.85, 2.98,2.85,3.02,2.94,3.06,2.92,2.96,2.94,3.00,3.04, 0.08,0.09,0.09,0.13,0.11,0.14,0.13,0.14,0.15,0.15, 0.18,0.19,0.19,0.17,0.21,0.19,0.20,0.22,0.21,0.23, 0.22,0.23,0.26,0.25,0.27,0.29,0.29,0.27,0.30,0.29, 0.30,0.35,0.33,0.34,0.35,0.37,0.42,0.38,0.40,0.43, 0.40,0.40,0.43,0.45,0.41,0.42,0.45,0.45,0.48,0.47, 0.49,0.50,0.50,0.57,0.52,0.51,0.54,0.55,0.55,0.56, 0.58,0.60,0.60,0.58,0.59,0.59,0.61,0.63,0.63,0.64, 0.63,0.64,0.62,0.67,0.67,0.66,0.65,0.64,0.68,0.75, 0.76,0.73,0.75,0.75,0.66,0.76,0.78,0.78,0.81,0.78, 0.81,0.81,0.80,0.86,0.85,0.82,0.86,0.87,0.83,0.84, 0.92,0.88,0.89,0.87,0.92,0.89,0.95,0.93,0.98,0.93, 0.92,0.95,0.99,1.02,1.00,0.95,0.97,0.96,1.03,0.99, 1.06,1.05,1.04,1.09,1.07,1.08,1.15,1.12,1.12,1.11, 1.18,1.11,1.10,1.18,1.19,1.20,1.18,1.16,1.19,1.24, 1.24,1.20,1.22,1.22,1.23,1.23,1.18,1.25,1.27,1.23, 1.25,1.31,1.30,1.20,1.30,1.31,1.39,1.42,1.31,1.36, 1.33,1.32,1.43,1.31,1.37,1.43,1.39,1.38,1.38,1.46, 1.43,1.44,1.46,1.44,1.42,1.47,1.58,1.50,1.53,1.46, 1.49,1.52,1.53,1.54,1.53,1.56,1.59,1.57,1.56,1.53, 1.57,1.59,1.60,1.63,1.64,1.65,1.62,1.73,1.64,1.67, 1.68,1.65,1.72,1.65,1.70,1.74,1.75,1.70,1.80,1.73, 1.82,1.80,1.75,1.78,1.87,1.76,1.81,1.84,1.81,1.84, 1.86,1.84,1.86,1.86,1.91,1.90,1.84,1.90,1.85,1.88, 1.94,1.94,1.91,1.91,1.96,1.90,1.94,2.01,2.00,2.03, 1.97,1.99,1.97,2.13,1.99,2.07,2.11,2.07,2.05,2.03, 2.03,2.07,2.03,2.16,2.17,2.06,2.14,2.15,2.12,2.12, 2.13,2.21,2.17,2.19,2.22,2.13,2.21,2.20,2.23,2.25, 2.24,2.34,2.22,2.23,2.27,2.22,2.19,2.30,2.26,2.32, 2.39,2.29,2.31,2.38,2.26,2.39,2.34,2.31,2.40,2.39, 2.42,2.71,2.95,3.14,3.35,3.60,3.90,4.12,4.42,4.49, 4.77,5.01,5.38,5.46,5.79,6.01,6.15,6.41,6.75,6.90, 7.23,7.45,7.55,7.78,7.95,8.37,8.55,8.85,8.95,9.36, 9.58,9.78,9.84,10.24,10.46,10.78,11.03,11.23,11.44,11.66, 11.80,12.03,12.29,12.50,12.80,13.18,13.39,13.57,13.73,14.08, 14.16,14.38,14.68,14.92,15.23,15.43,15.65,15.72,16.10,16.38, 16.74,16.81,16.88,17.27,17.51,17.66,18.02,18.07,18.50,18.61, 18.74,19.23,19.43,19.58,19.66,20.02,20.40,20.76,20.95,20.98, 21.07,21.62,21.89,22.12,22.26,22.45,22.73,22.91,23.11,23.33, 23.77,23.79,24.05,24.40,24.64,24.58,25.14,25.05,25.52,25.89, 25.96,26.33,26.41,26.73,26.98,27.25,27.54,27.62,28.02,28.23, 28.40,28.80,28.78,29.09,29.22,29.64,29.59,30.14,30.24,30.39, 30.75,30.97,31.27,31.33,31.62,31.66,32.01,32.34,32.35,33.05, 33.10,33.26,33.33,33.68,33.98,34.07,34.44,34.71,34.90,35.18, 35.30,35.50,35.69,36.21,36.22,36.50,36.70,37.05,37.24,37.51, 37.80,37.94,38.53,38.52,38.66,39.12,38.99,39.23,39.74,39.87, 39.88,40.16,40.98,40.68,40.95,41.24,41.50,41.73,41.79,42.18, 42.30,42.81,42.55,43.02,43.21,43.89,43.68,44.24,44.30,44.75, 45.02,44.92,45.40,45.43,45.94,45.98,46.29,46.24,46.56,46.80, 47.38,47.43,47.73,47.83,48.15,48.47,48.76,49.28,48.93,49.31, 49.41,49.86,49.91,50.30,50.40,50.54,50.78,51.38,51.33,51.62, 52.00,52.08,52.24,52.70,52.88,53.11,53.20,53.45,53.87,54.02, 54.25,54.12,54.79,55.17,55.49,55.34,55.76,55.92,55.99,56.58, 56.94,57.01,57.10,57.11,57.58,57.43,58.15,58.18,58.30,58.44, 58.73,59.13,59.36,59.61,59.70,60.24,60.05,60.50,60.84,61.01, 61.30,61.76,61.78,62.00,62.50,62.34,62.78,62.73,63.06,63.36, 63.39,63.90,64.38,64.41,64.72,64.86,65.02,65.33,65.72,66.08, 66.20,65.95,66.52,66.69,66.81,67.03,67.70,67.39,67.67,68.20, 68.25,68.31,68.85,69.33,69.61,69.50,69.77,69.84,70.27,70.60, 1.86,2.11,2.36,2.54,2.77,2.90,3.01,3.23,3.40,3.60, 3.84,4.03,4.26,4.48,4.58,4.81,4.98,5.16,5.39,5.62, 5.70,5.93,6.11,6.35,6.42,6.72,6.85,7.11,7.20,7.48, 7.56,7.85,8.01,8.24,8.44,8.45,8.71,8.84,9.14,9.43, 9.54,9.59,9.89,10.14,10.19,10.57,10.55,10.77,10.85,11.17, 11.49,11.61,11.67,11.86,12.07,12.40,12.49,12.60,12.76,13.09, 13.14,13.42,13.53,13.87,14.05,14.27,14.47,14.38,14.70,14.86, 15.04,15.45,15.48,15.74,15.88,16.04,16.39,16.33,16.70,16.68, 17.02,17.33,17.24,17.53,17.86,17.82,18.10,18.39,18.49,18.65, 18.92,19.11,19.28,19.57,19.76,19.79,20.10,20.25,20.54,20.77, 20.86,21.07,21.12,21.46,21.23,21.67,21.90,22.13,22.28,22.26, 22.62,22.85,23.00,23.49,23.33,23.44,23.69,23.90,24.12,24.43, 24.56,24.67,24.86,25.29,25.17,25.50,25.71,25.89,26.08,25.93, 26.62,26.57,26.73,27.08,27.31,27.40,27.71,28.01,28.05,28.24, 28.33,28.50,28.89,28.71,29.19,29.13,29.37,29.61,29.87,29.99, 30.19,30.49,30.68,30.57,30.86,31.33,31.48,31.75,31.79,31.85, 31.99,32.60,32.53,32.74,32.81,32.88,33.02,33.16,33.80,33.62, 34.10,33.87,34.47,34.31,34.72,35.19,35.18,35.49,35.90,35.41, 35.52,35.85,36.01,36.52,36.52,36.67,36.99,37.13,37.55,37.35, 37.90,38.00,38.24,38.41,38.36,38.78,38.86,39.22,39.25,39.72, 39.46,40.09,39.86,40.08,40.44,40.58,40.68,40.83,41.06,41.58, 41.85,41.77,41.65,42.29,42.32,42.42,42.88,42.66,42.43,43.21, 43.29,43.45,44.05,44.08,43.96,44.27,44.27,44.54,44.92,45.15, 45.09,45.63,45.76,45.65,45.99,46.13,46.39,46.37,46.80,46.91, 47.10,47.57,47.64,47.62,48.23,47.96,48.09,48.27,48.80,48.60, 49.23,49.19,49.10,49.37,49.73,49.96,50.22,50.31,50.59,50.68, 50.89,51.12,51.05,50.85,51.44,51.67,52.27,51.99,52.55,52.57, 52.55,52.76,53.26,53.35,53.40,53.80,54.15,54.19,54.37,54.53, 55.08,54.97,55.17,55.20,55.23,55.53,56.08,55.71,56.31,56.16, 1.55,1.66,1.85,2.07,2.21,2.33,2.48,2.59,2.75,2.95, 3.07,3.21,3.39,3.50,3.68,3.81,3.98,4.09,4.17,4.42, 4.50,4.68,4.96,5.09,5.29,5.33,5.50,5.59,5.72,5.94, 6.13,6.18,6.31,6.54,6.69,6.87,7.11,7.09,7.31,7.45, 7.62,7.77,7.85,7.99,8.30,8.40,8.50,8.62,8.85,9.00, 8.97,9.18,9.52,9.55,9.59,9.95,9.98,10.21,10.30,10.47, 10.52,10.85,10.97,11.02,11.04,11.27,11.42,11.60,11.73,11.95, 12.18,12.35,12.27,12.60,12.72,12.88,13.06,13.17,13.24,13.62, 13.50,13.87,14.13,14.14,14.19,14.30,14.66,14.74,14.83,15.03, 14.96,15.36,15.36,15.53,15.76,15.90,16.00,16.24,16.34,16.42, 16.67,16.71,16.85,17.05,17.32,17.28,17.43,17.79,17.60,18.02, 18.06,18.30,18.50,18.42,18.94,18.81,19.16,19.36,19.48,19.65, 19.91,19.72,19.93,20.16,20.15,20.31,20.64,20.75,20.80,20.85, 21.24,21.29,21.44,21.66,21.64,22.10,22.05,22.11,22.43,22.44, 22.50,22.72,22.91,23.13,23.11,23.28,23.78,23.69,24.19,24.03, 24.13,24.23,24.37,24.34,24.57,24.91,25.20,25.32,25.20,25.70, 25.60,25.86,25.85,26.13,26.25,26.16,26.49,26.77,27.01,26.73, 27.27,27.01,27.66,27.60,28.22,27.87,27.79,28.16,28.35,28.42, 28.67,28.82,28.89,29.35,29.33,29.59,29.60,29.60,30.18,29.92, 30.15,30.51,30.34,30.57,31.00,30.90,31.15,31.34,31.27,31.70, 31.34,31.78,31.86,32.20,32.33,32.67,32.51,32.99,32.82,32.98, 33.21,33.42,33.55,33.71,33.85,33.85,33.83,34.16,34.37,34.77, 34.83,34.71,34.76,35.06,35.13,35.51,35.55,35.72,36.04,36.22, 36.17,36.48,36.47,36.65,37.12,36.91,37.08,37.15,37.49,37.56, 37.74,38.20,38.02,38.32,38.29,38.43,38.67,38.91,38.99,39.06, 39.37,39.17,39.52,39.40,39.81,40.10,40.12,40.48,40.44,40.63, 40.60,40.98,40.89,41.13,41.37,41.39,41.70,41.62,42.24,42.17, 42.42,42.33,42.41,42.40,42.81,42.93,43.11,43.58,43.37,43.49, 43.79,43.70,44.21,44.13,44.35,44.58,44.64,44.61,44.91,45.34, 1.24,1.38,1.50,1.56,1.77,1.78,2.02,2.16,2.20,2.39, 2.46,2.57,2.70,2.84,2.94,3.14,3.16,3.28,3.43,3.56, 3.57,3.85,3.94,4.03,4.06,4.19,4.39,4.64,4.63,4.74, 4.81,5.01,5.05,5.19,5.38,5.57,5.65,5.65,5.81,5.85, 6.11,6.17,6.33,6.47,6.63,6.72,6.90,6.94,6.94,7.08, 7.09,7.40,7.55,7.59,7.77,7.83,8.12,8.13,8.28,8.38, 8.57,8.54,8.60,8.82,8.96,9.10,9.16,9.34,9.50,9.48, 9.54,9.98,10.00,9.96,10.26,10.27,10.56,10.61,10.67,10.78, 10.92,10.98,11.12,11.50,11.40,11.57,11.75,11.71,11.86,11.92, 12.05,12.36,12.46,12.44,12.75,12.63,12.88,12.88,13.10,13.23, 13.37,13.40,13.61,13.65,13.98,14.03,14.03,14.21,14.33,14.45, 14.60,14.65,14.87,14.84,15.12,15.07,15.20,15.30,15.54,15.56, 15.74,15.79,16.07,16.00,15.93,16.38,16.35,16.52,16.71,16.65, 17.12,17.15,17.12,17.21,17.31,17.42,17.59,17.87,17.91,17.98, 18.28,18.26,18.61,18.34,18.68,18.75,18.89,18.86,19.23,19.05, 19.42,19.30,19.50,19.51,19.59,19.86,20.03,20.33,20.23,20.36, 20.61,20.47,20.73,20.91,20.95,21.02,21.11,21.25,21.49,21.66, 21.67,21.75,21.77,22.08,22.22,22.21,22.51,22.65,22.88,22.64, 22.89,23.08,23.14,23.34,23.52,23.52,23.61,23.64,23.91,23.92, 24.07,24.37,24.46,24.66,24.54,24.91,24.84,24.81,25.30,25.32, 25.57,25.31,25.76,25.70,25.71,25.89,26.23,26.31,26.45,26.40, 26.61,26.55,26.64,26.78,27.00,27.51,27.21,27.35,27.71,27.50, 28.00,27.87,27.78,28.27,28.28,28.41,28.46,28.71,28.61,28.95, 28.77,28.99,29.45,29.17,29.33,29.73,29.86,29.65,30.12,30.04, 30.08,30.27,30.55,30.46,30.68,30.87,30.77,30.77,30.95,31.48, 31.37,31.52,31.54,31.82,31.56,32.00,32.31,32.25,32.33,32.63, 32.68,32.49,32.84,33.02,33.16,32.98,33.26,33.23,33.23,33.46, 33.83,33.83,34.08,34.11,34.39,34.34,34.38,34.66,34.69,34.82, 34.96,35.01,35.20,35.44,35.51,35.47,35.41,35.87,36.00,35.89, 1.05,1.09,1.15,1.27,1.34,1.53,1.58,1.68,1.78,1.81, 1.95,2.10,2.16,2.25,2.33,2.53,2.55,2.75,2.70,2.88, 2.93,3.05,3.05,3.19,3.27,3.44,3.48,3.73,3.70,3.72, 3.86,4.03,4.11,4.16,4.26,4.37,4.42,4.56,4.67,4.69, 4.76,5.01,5.07,5.17,5.24,5.28,5.28,5.53,5.59,5.67, 5.86,5.93,5.97,6.16,6.12,6.41,6.46,6.45,6.57,6.71, 6.71,6.96,7.13,7.06,7.21,7.33,7.39,7.52,7.54,7.81, 7.72,7.66,7.99,8.11,8.27,8.26,8.39,8.39,8.43,8.65, 8.82,8.82,8.97,9.14,8.98,9.29,9.25,9.21,9.55,9.52, 9.72,9.90,9.73,10.00,10.04,10.12,10.10,10.36,10.35,10.69, 10.69,10.67,10.88,11.00,11.21,11.15,11.08,11.35,11.53,11.47, 11.65,11.71,11.75,11.95,12.05,12.19,12.23,12.09,12.28,12.66, 12.48,12.74,12.66,12.89,12.86,13.00,13.04,13.48,13.40,13.40, 13.61,13.68,13.76,13.82,13.82,13.93,14.16,14.21,14.30,14.50, 14.40,14.69,14.71,14.89,14.85,15.06,14.96,15.16,15.31,15.12, 15.30,15.43,15.50,15.71,15.88,15.85,15.99,16.38,16.10,16.37, 16.39,16.64,16.70,16.71,16.90,16.91,17.11,17.22,17.28,17.49, 17.61,17.47,17.75,17.63,17.87,17.74,18.10,17.90,18.09,18.15, 18.47,18.30,18.71,18.65,18.88,18.59,19.04,19.04,19.21,19.20, 19.38,19.37,19.79,19.66,19.40,19.83,20.01,19.98,20.13,19.98, 20.00,20.47,20.34,20.58,20.72,20.83,20.81,21.04,21.11,21.11, 21.26,21.24,21.32,21.46,21.47,21.98,22.06,21.92,21.91,22.20, 21.95,22.41,22.27,22.50,22.47,22.63,22.66,22.64,23.38,22.96, 23.12,23.17,23.37,23.49,23.49,23.77,23.46,23.93,23.92,24.02, 24.17,24.00,24.33,24.51,24.67,24.57,24.55,24.78,24.93,25.15, 25.06,25.32,25.15,25.27,25.73,25.39,25.72,25.79,25.87,26.02, 26.11,26.03,26.39,26.73,26.67,26.88,26.52,26.70,26.91,26.96, 26.98,27.07,27.04,27.46,27.52,27.64,27.45,27.52,27.78,28.05, 28.25,28.25,28.19,28.25,28.38,28.40,28.45,28.66,28.49,28.78, 0.80,0.87,0.93,1.04,1.14,1.14,1.22,1.36,1.47,1.49, 1.56,1.60,1.75,1.75,1.82,2.00,2.03,2.15,2.19,2.27, 2.35,2.50,2.53,2.58,2.61,2.71,2.83,2.88,2.95,3.02, 3.19,3.24,3.25,3.31,3.41,3.46,3.66,3.67,3.78,3.85, 3.88,4.04,4.01,4.27,4.26,4.33,4.24,4.36,4.47,4.56, 4.57,4.83,4.80,4.78,4.92,4.93,5.18,5.18,5.26,5.33, 5.37,5.56,5.47,5.54,5.80,5.78,5.80,5.91,6.00,6.07, 6.14,6.30,6.40,6.30,6.47,6.65,6.57,6.79,6.81,6.97, 7.02,6.93,7.11,7.22,7.34,7.45,7.44,7.48,7.59,7.62, 7.64,7.62,7.91,7.95,8.16,8.13,8.29,8.39,8.51,8.51, 8.54,8.64,8.82,8.70,8.95,9.06,8.95,9.05,9.26,9.14, 9.28,9.34,9.46,9.48,9.54,9.56,9.89,9.91,9.86,10.02, 10.10,10.28,10.33,10.25,10.62,10.40,10.47,10.62,10.67,10.83, 10.88,10.73,11.01,11.00,11.17,11.11,11.24,11.39,11.39,11.56, 11.53,11.62,11.70,11.74,11.94,12.01,12.06,12.19,12.33,12.20, 12.37,12.42,12.48,12.64,12.68,12.87,12.91,13.04,13.05,13.10, 13.13,13.08,13.41,13.36,13.37,13.84,13.67,13.74,13.77,13.84, 13.85,14.02,14.03,14.23,14.24,14.42,14.51,14.37,14.53,14.59, 14.75,14.73,15.00,14.72,14.86,15.00,15.14,15.12,15.15,15.43, 15.28,15.56,15.56,15.68,15.77,16.03,15.97,16.09,16.02,16.08, 16.07,16.48,16.36,16.41,16.50,16.59,16.66,16.69,16.78,16.94, 16.97,16.89,17.15,17.19,17.38,17.31,17.59,17.62,17.60,17.73, 17.77,17.95,17.77,18.08,18.02,18.21,18.36,18.19,18.33,18.37, 18.64,18.83,18.62,18.80,18.79,18.92,19.01,18.82,19.17,19.12, 19.45,19.25,19.51,19.69,19.74,19.53,19.81,19.83,20.05,20.20, 20.11,20.08,20.28,20.20,20.34,20.60,20.68,20.67,20.48,20.59, 20.97,20.90,21.01,21.27,21.36,21.17,21.56,21.43,21.44,21.57, 21.79,22.02,21.70,21.95,21.92,22.02,22.04,22.15,22.38,22.30, 22.25,22.40,22.58,22.69,22.75,22.65,22.83,22.95,22.77,23.28, 0.67,0.68,0.72,0.85,0.86,0.96,0.99,1.06,1.17,1.25, 1.27,1.34,1.45,1.52,1.51,1.58,1.66,1.62,1.71,1.89, 1.87,1.89,2.01,2.02,2.10,2.17,2.22,2.30,2.35,2.45, 2.52,2.52,2.60,2.63,2.67,2.83,2.77,2.96,2.97,3.02, 3.16,3.10,3.16,3.29,3.30,3.42,3.50,3.59,3.56,3.62, 3.73,3.76,3.82,3.87,3.90,4.11,4.18,4.08,4.17,4.30, 4.32,4.47,4.43,4.51,4.60,4.69,4.68,4.71,4.82,4.89, 4.95,4.96,5.03,5.24,5.14,5.31,5.35,5.36,5.46,5.49, 5.70,5.58,5.65,5.76,5.80,5.85,6.00,5.96,6.12,6.10, 6.16,6.16,6.29,6.44,6.44,6.60,6.55,6.62,6.80,6.67, 6.91,6.80,6.98,7.04,7.07,7.14,7.12,7.21,7.37,7.40, 7.53,7.52,7.55,7.60,7.70,7.63,7.83,7.76,7.79,8.16, 8.18,8.00,8.25,8.30,8.31,8.35,8.32,8.45,8.47,8.57, 8.60,8.63,8.79,8.96,8.85,9.01,9.06,9.14,8.98,9.35, 9.33,9.43,9.34,9.42,9.44,9.63,9.73,9.72,9.77,9.70, 9.83,10.01,10.06,10.02,10.39,10.20,10.34,10.27,10.38,10.45, 10.44,10.50,10.64,10.75,10.79,10.91,10.80,10.88,11.03,11.12, 11.28,11.22,11.25,11.28,11.45,11.45,11.52,11.68,11.60,11.67, 11.81,11.82,11.86,11.89,11.78,12.05,11.97,12.20,12.30,12.26, 12.27,12.36,12.69,12.36,12.51,12.64,12.71,12.93,12.87,12.95, 13.11,13.06,13.22,13.08,13.23,13.29,13.26,13.55,13.25,13.59, 13.81,13.65,13.81,13.71,14.10,13.88,13.94,14.13,14.07,14.27, 14.30,14.34,14.21,14.53,14.52,14.57,14.66,14.61,14.66,14.59, 14.88,14.78,15.09,14.94,15.23,15.21,15.00,15.28,15.18,15.32, 15.31,15.63,15.60,15.72,15.59,15.76,15.87,15.72,15.76,16.05, 16.05,16.31,16.04,16.09,16.31,16.62,16.37,16.56,16.78,16.51, 16.82,16.72,16.89,16.74,16.90,17.02,16.99,16.91,17.40,17.20, 17.42,17.35,17.58,17.39,17.66,17.63,17.82,17.75,17.74,17.82, 17.92,18.09,18.16,18.06,18.17,18.07,18.37,18.41,18.33,18.53, 0.51,0.58,0.61,0.65,0.70,0.82,0.81,0.89,0.86,0.98, 0.96,1.05,1.06,1.11,1.22,1.22,1.35,1.31,1.40,1.43, 1.47,1.54,1.60,1.68,1.73,1.75,1.79,1.83,1.95,1.98, 1.96,1.99,2.06,2.15,2.14,2.28,2.39,2.32,2.41,2.42, 2.56,2.46,2.63,2.61,2.73,2.70,2.77,2.85,2.92,2.94, 2.96,3.06,3.08,3.13,3.08,3.26,3.36,3.36,3.39,3.46, 3.49,3.45,3.56,3.70,3.61,3.71,3.74,3.77,3.93,3.85, 3.87,4.05,4.08,4.18,4.26,4.29,4.22,4.25,4.30,4.45, 4.53,4.52,4.53,4.42,4.66,4.69,4.72,4.85,4.88,4.86, 5.06,4.97,5.07,5.07,5.18,5.25,5.28,5.32,5.25,5.37, 5.50,5.49,5.56,5.61,5.68,5.66,5.69,5.77,5.85,5.98, 5.90,6.17,5.96,6.10,6.15,6.12,6.14,6.22,6.30,6.41, 6.41,6.58,6.50,6.74,6.60,6.73,6.76,6.83,6.73,6.86, 6.90,7.04,6.98,7.17,7.16,7.18,7.13,7.34,7.20,7.35, 7.47,7.45,7.52,7.47,7.55,7.63,7.66,7.77,7.86,7.87, 7.99,8.02,7.98,8.07,8.00,8.19,8.10,8.49,8.18,8.43, 8.40,8.55,8.50,8.54,8.44,8.59,8.73,8.98,8.97,8.84, 8.89,8.92,9.01,9.18,9.24,9.12,9.14,9.32,9.13,9.34, 9.30,9.49,9.53,9.43,9.62,9.70,9.63,9.76,9.87,9.80, 9.90,9.93,9.88,9.97,10.09,10.07,10.22,10.38,10.17,10.41, 10.40,10.49,10.38,10.51,10.50,10.66,10.57,10.82,10.71,10.78, 10.95,11.11,10.90,11.05,11.12,11.24,11.14,11.41,11.39,11.40, 11.35,11.42,11.45,11.55,11.68,11.68,11.62,11.70,11.78,11.77, 11.81,11.96,12.01,11.88,11.88,12.18,12.19,12.12,12.26,12.08, 12.54,12.41,12.37,12.36,12.47,12.55,12.85,12.62,12.88,12.79, 12.88,12.87,13.01,12.99,12.99,13.06,13.09,13.28,13.29,13.40, 13.04,13.31,13.41,13.61,13.53,13.63,13.64,13.64,13.59,13.80, 13.79,13.94,13.88,13.95,14.20,13.90,14.27,14.27,14.26,14.36, 14.45,14.26,14.57,14.63,14.42,14.59,14.69,14.72,14.76,14.84, 0.37,0.41,0.50,0.53,0.58,0.60,0.67,0.71,0.69,0.78, 0.83,0.85,0.90,0.90,0.96,1.00,1.04,1.05,1.16,1.18, 1.20,1.21,1.25,1.29,1.31,1.32,1.47,1.41,1.56,1.59, 1.62,1.65,1.68,1.77,1.78,1.83,1.85,1.85,1.93,1.93, 1.95,1.95,2.11,2.11,2.12,2.17,2.26,2.28,2.38,2.32, 2.42,2.50,2.48,2.50,2.52,2.50,2.62,2.68,2.58,2.71, 2.77,2.85,2.84,2.85,2.87,2.99,2.90,3.10,3.10,3.17, 3.12,3.23,3.22,3.42,3.45,3.38,3.37,3.45,3.43,3.49, 3.53,3.58,3.68,3.75,3.80,3.77,3.87,3.83,3.85,3.99, 3.93,3.99,4.04,3.99,4.11,4.16,4.25,4.17,4.33,4.28, 4.38,4.30,4.41,4.60,4.47,4.51,4.58,4.69,4.74,4.66, 4.76,4.79,4.81,4.94,4.90,4.98,5.09,4.97,5.08,5.19, 5.05,5.13,5.33,5.25,5.38,5.43,5.49,5.36,5.47,5.49, 5.63,5.56,5.71,5.68,5.52,5.78,5.93,5.89,5.71,5.89, 5.87,5.98,6.13,6.13,6.12,6.18,6.16,6.14,6.28,6.26, 6.45,6.53,6.28,6.40,6.37,6.52,6.67,6.64,6.67,6.70, 6.83,6.79,6.78,6.82,6.80,7.03,6.99,7.12,7.07,6.97, 7.06,7.26,7.23,7.29,7.33,7.35,7.42,7.40,7.25,7.48, 7.53,7.63,7.57,7.54,7.73,7.88,7.68,7.93,7.85,7.93, 7.93,8.03,8.13,7.97,8.10,8.09,8.03,8.24,8.22,8.19, 8.34,8.31,8.42,8.48,8.61,8.48,8.60,8.52,8.70,8.78, 8.77,8.80,8.72,8.90,8.77,8.91,8.83,9.09,9.09,9.02, 9.01,9.26,9.17,9.26,9.25,9.38,9.26,9.35,9.43,9.39, 9.52,9.53,9.64,9.50,9.71,9.76,9.69,9.87,9.51,9.65, 10.00,9.99,10.00,9.97,10.06,10.08,10.25,10.05,10.17,10.30, 10.26,10.46,10.34,10.28,10.48,10.37,10.44,10.44,10.60,10.62, 10.60,10.50,10.71,10.89,10.86,10.97,10.92,10.95,11.06,11.01, 10.92,11.04,11.05,11.10,11.27,11.44,11.17,11.43,11.24,11.49, 11.44,11.41,11.66,11.71,11.62,11.73,11.71,11.63,11.74,11.67, 0.32,0.35,0.40,0.40,0.49,0.50,0.51,0.55,0.59,0.60, 0.60,0.67,0.70,0.76,0.79,0.86,0.77,0.85,0.94,0.94, 0.92,1.00,1.06,1.06,1.11,1.17,1.12,1.25,1.18,1.27, 1.23,1.27,1.34,1.41,1.39,1.41,1.48,1.49,1.52,1.57, 1.62,1.61,1.64,1.67,1.75,1.66,1.76,1.78,1.83,1.90, 1.90,1.91,1.93,2.04,2.09,2.13,2.06,2.19,2.25,2.16, 2.17,2.28,2.27,2.35,2.35,2.43,2.44,2.48,2.51,2.49, 2.53,2.57,2.63,2.68,2.67,2.76,2.71,2.79,2.77,2.74, 2.76,2.79,2.88,2.97,2.97,2.98,3.08,3.12,3.03,3.15, 3.11,3.15,3.26,3.25,3.27,3.28,3.40,3.36,3.45,3.50, 3.53,3.51,3.52,3.57,3.68,3.66,3.64,3.58,3.56,3.83, 3.75,3.76,3.81,3.87,3.98,3.91,4.01,4.00,4.04,4.04, 4.07,4.16,4.32,4.20,4.18,4.30,4.29,4.34,4.40,4.37, 4.34,4.48,4.67,4.59,4.60,4.62,4.74,4.71,4.73,4.77, 4.64,4.81,4.95,4.76,4.95,4.91,4.93,5.06,4.99,5.01, 5.04,4.99,5.12,5.27,5.04,5.23,5.32,5.33,5.33,5.27, 5.39,5.33,5.51,5.41,5.44,5.53,5.64,5.63,5.62,5.83, 5.76,5.70,5.75,5.72,5.91,5.93,5.87,5.91,5.93,5.97, 5.98,6.07,6.20,6.01,6.06,6.01,6.33,6.20,6.24,6.37, 6.47,6.39,6.23,6.31,6.38,6.59,6.60,6.44,6.61,6.63, 6.55,6.62,6.68,6.60,6.80,6.91,6.88,6.83,6.88,7.00, 7.01,6.97,6.90,6.90,7.04,7.17,7.29,7.21,7.28,7.44, 7.21,7.43,7.39,7.28,7.57,7.32,7.50,7.67,7.68,7.60, 7.66,7.53,7.67,7.66,7.65,7.87,7.88,7.75,8.03,7.79, 7.96,7.79,8.10,8.03,8.20,8.09,8.17,8.17,8.19,8.32, 8.22,8.30,8.36,8.31,8.33,8.42,8.40,8.32,8.43,8.47, 8.55,8.56,8.53,8.49,8.73,8.78,8.83,8.64,8.87,8.68, 8.75,8.76,8.84,8.81,8.95,9.03,9.10,9.15,8.95,9.03, 9.32,9.27,9.15,9.36,9.37,9.32,9.52,9.57,9.42,9.39, 0.27,0.29,0.33,0.36,0.37,0.39,0.43,0.45,0.43,0.45, 0.55,0.54,0.58,0.60,0.62,0.66,0.68,0.67,0.76,0.74, 0.80,0.76,0.83,0.84,0.86,0.90,0.90,0.94,0.95,0.98, 1.02,1.03,1.11,1.05,1.17,1.14,1.20,1.18,1.26,1.28, 1.33,1.27,1.32,1.38,1.30,1.40,1.40,1.41,1.45,1.53, 1.56,1.44,1.61,1.61,1.57,1.56,1.68,1.70,1.74,1.71, 1.79,1.84,1.83,1.92,1.90,1.94,1.90,1.95,1.99,1.96, 1.98,2.05,2.07,2.09,2.14,2.16,2.20,2.17,2.26,2.23, 2.29,2.37,2.33,2.35,2.42,2.35,2.43,2.42,2.53,2.61, 2.55,2.61,2.57,2.56,2.70,2.73,2.73,2.71,2.81,2.76, 2.77,2.84,2.75,2.87,2.90,2.89,2.97,2.97,2.90,3.10, 3.01,3.08,3.10,3.05,3.16,3.18,3.28,3.21,3.20,3.32, 3.29,3.35,3.37,3.47,3.34,3.35,3.46,3.43,3.56,3.48, 3.57,3.54,3.56,3.54,3.64,3.56,3.72,3.75,3.77,3.79, 3.76,3.84,3.82,3.79,3.90,4.00,3.99,3.83,3.93,4.07, 4.09,4.06,4.17,4.21,4.23,4.21,4.24,4.27,4.26,4.18, 4.27,4.33,4.23,4.30,4.44,4.46,4.50,4.45,4.51,4.52, 4.46,4.57,4.59,4.54,4.69,4.62,4.71,4.74,4.87,4.81, 4.75,4.86,4.81,4.96,4.88,4.95,5.06,4.98,5.03,5.00, 4.99,5.03,5.05,5.16,5.19,5.21,5.23,5.31,5.18,5.24, 5.17,5.24,5.36,5.29,5.44,5.36,5.47,5.53,5.51,5.47, 5.71,5.53,5.64,5.64,5.58,5.74,5.82,5.63,5.70,5.84, 5.79,5.88,5.92,5.94,5.94,6.03,5.97,6.04,6.00,6.09, 6.14,6.23,6.08,6.02,6.16,6.18,6.12,6.25,6.29,6.36, 6.30,6.41,6.38,6.38,6.46,6.42,6.59,6.47,6.80,6.68, 6.55,6.58,6.66,6.80,6.69,6.74,6.71,6.81,6.78,6.87, 7.00,6.76,7.03,7.02,6.99,7.01,6.90,7.00,7.14,7.05, 7.01,7.17,7.06,7.17,7.06,7.24,7.38,7.21,7.21,7.22, 7.34,7.50,7.34,7.46,7.45,7.53,7.61,7.40,7.72,7.42, 0.19,0.26,0.24,0.25,0.30,0.31,0.33,0.35,0.40,0.37, 0.40,0.45,0.47,0.49,0.52,0.54,0.52,0.57,0.59,0.61, 0.64,0.60,0.66,0.66,0.67,0.73,0.74,0.72,0.79,0.79, 0.83,0.85,0.86,0.89,0.89,0.94,0.99,0.95,0.95,1.03, 1.02,1.02,1.07,1.06,1.10,1.12,1.17,1.14,1.13,1.16, 1.24,1.23,1.29,1.31,1.32,1.31,1.37,1.35,1.36,1.38, 1.43,1.46,1.45,1.48,1.49,1.53,1.58,1.57,1.56,1.59, 1.68,1.62,1.65,1.66,1.78,1.75,1.88,1.75,1.78,1.79, 1.81,1.91,1.92,1.89,1.91,1.96,1.88,1.99,2.00,2.02, 1.99,2.03,1.98,2.10,2.10,2.15,2.12,2.18,2.27,2.15, 2.27,2.24,2.28,2.29,2.32,2.35,2.38,2.30,2.45,2.40, 2.44,2.54,2.48,2.55,2.49,2.49,2.53,2.53,2.56,2.68, 2.64,2.65,2.67,2.71,2.64,2.74,2.77,2.91,2.77,2.81, 2.82,2.92,2.80,2.73,2.91,2.90,2.99,2.98,2.92,3.07, 3.02,3.04,3.09,3.11,3.17,3.10,3.20,3.21,3.21,3.20, 3.22,3.27,3.26,3.30,3.29,3.43,3.42,3.46,3.47,3.52, 3.45,3.38,3.53,3.44,3.58,3.51,3.69,3.54,3.64,3.62, 3.58,3.58,3.73,3.76,3.81,3.78,3.78,3.81,3.73,3.75, 3.85,3.92,3.97,4.00,3.96,4.11,3.97,3.99,4.00,3.94, 4.00,4.11,4.10,4.11,4.10,4.05,4.21,4.18,4.20,4.22, 4.21,4.27,4.31,4.24,4.38,4.46,4.28,4.34,4.42,4.32, 4.47,4.45,4.54,4.51,4.45,4.51,4.49,4.57,4.56,4.68, 4.75,4.74,4.69,4.75,4.77,4.78,4.83,4.69,4.80,4.91, 4.89,4.91,4.96,4.92,4.94,4.96,4.90,5.07,5.15,4.98, 5.16,5.02,5.17,5.12,5.13,5.28,5.18,5.22,5.32,5.23, 5.30,5.30,5.19,5.25,5.28,5.31,5.39,5.50,5.49,5.43, 5.51,5.50,5.54,5.53,5.59,5.59,5.60,5.61,5.67,5.71, 5.62,5.55,5.65,5.85,5.69,5.71,5.77,5.80,5.86,5.80, 5.90,5.90,6.02,6.01,6.00,5.84,6.10,6.03,6.12,6.01, 0.18,0.17,0.17,0.23,0.24,0.27,0.28,0.29,0.29,0.34, 0.34,0.33,0.37,0.37,0.39,0.39,0.41,0.43,0.49,0.51, 0.49,0.46,0.54,0.54,0.54,0.55,0.59,0.61,0.62,0.68, 0.66,0.71,0.69,0.70,0.74,0.77,0.72,0.78,0.77,0.81, 0.84,0.83,0.85,0.85,0.83,0.87,0.93,0.90,0.94,0.93, 0.96,1.03,0.98,1.02,1.08,1.05,1.12,1.15,1.13,1.11, 1.13,1.17,1.17,1.18,1.23,1.20,1.22,1.24,1.23,1.25, 1.24,1.32,1.33,1.30,1.35,1.41,1.43,1.38,1.44,1.47, 1.47,1.46,1.44,1.48,1.53,1.56,1.51,1.57,1.57,1.56, 1.65,1.67,1.61,1.70,1.74,1.73,1.71,1.72,1.73,1.71, 1.90,1.76,1.82,1.83,1.89,1.80,1.87,1.91,1.79,1.93, 2.00,1.93,2.04,1.97,2.09,2.09,2.10,2.10,2.07,2.12, 2.14,2.15,2.13,2.20,2.18,2.23,2.27,2.16,2.33,2.29, 2.27,2.33,2.29,2.26,2.37,2.35,2.35,2.36,2.40,2.48, 2.40,2.47,2.54,2.47,2.50,2.58,2.52,2.50,2.52,2.54, 2.58,2.60,2.55,2.74,2.70,2.71,2.69,2.76,2.69,2.79, 2.74,2.86,2.74,2.83,2.73,2.81,2.83,2.89,2.92,2.98, 2.98,3.00,3.04,2.95,3.11,3.01,3.01,2.91,3.10,3.07, 3.14,3.13,3.18,3.13,3.15,3.28,3.15,3.25,3.23,3.20, 3.29,3.20,3.31,3.23,3.43,3.38,3.38,3.42,3.36,3.34, 3.32,3.43,3.45,3.52,3.40,3.52,3.44,3.52,3.50,3.52, 3.54,3.47,3.60,3.46,3.63,3.71,3.64,3.71,3.58,3.74, 3.62,3.80,3.63,3.86,3.77,3.83,3.86,4.00,3.93,3.90, 3.82,3.92,3.95,3.95,3.85,3.94,3.85,4.02,3.94,4.01, 4.15,4.13,4.10,4.13,4.14,4.13,4.15,4.16,4.11,4.19, 4.20,4.35,4.35,4.33,4.33,4.36,4.33,4.34,4.34,4.41, 4.26,4.46,4.38,4.41,4.30,4.55,4.36,4.62,4.54,4.45, 4.57,4.54,4.62,4.50,4.63,4.65,4.49,4.62,4.65,4.78, 4.69,4.67,4.63,4.74,4.73,4.75,4.79,4.78,4.95,4.73, 0.13,0.14,0.19,0.17,0.18,0.21,0.22,0.21,0.25,0.25, 0.26,0.25,0.28,0.31,0.32,0.33,0.38,0.34,0.34,0.36, 0.41,0.42,0.40,0.47,0.46,0.46,0.54,0.50,0.54,0.51, 0.51,0.56,0.52,0.61,0.59,0.60,0.59,0.65,0.64,0.67, 0.61,0.64,0.71,0.66,0.67,0.69,0.72,0.70,0.77,0.77, 0.75,0.86,0.77,0.81,0.79,0.84,0.82,0.88,0.90,0.89, 0.88,0.92,0.95,0.94,1.00,1.01,0.99,0.96,1.06,1.04, 1.08,1.05,1.06,1.13,1.11,1.17,1.12,1.13,1.13,1.13, 1.16,1.19,1.17,1.19,1.17,1.26,1.24,1.23,1.31,1.34, 1.30,1.29,1.32,1.35,1.35,1.41,1.38,1.47,1.41,1.44, 1.42,1.43,1.45,1.52,1.52,1.54,1.57,1.56,1.50,1.54, 1.59,1.54,1.54,1.69,1.57,1.72,1.60,1.69,1.69,1.68, 1.67,1.70,1.74,1.76,1.71,1.77,1.78,1.75,1.77,1.85, 1.81,1.87,1.85,1.87,1.89,1.87,1.88,1.92,1.96,1.90, 1.93,1.97,1.96,1.96,2.01,1.99,2.05,2.04,2.08,2.14, 2.01,2.08,2.07,2.10,2.08,2.15,2.17,2.12,2.12,2.20, 2.17,2.21,2.26,2.28,2.37,2.17,2.28,2.29,2.34,2.29, 2.37,2.43,2.43,2.37,2.46,2.47,2.39,2.39,2.38,2.50, 2.50,2.47,2.48,2.53,2.54,2.48,2.54,2.58,2.58,2.53, 2.62,2.54,2.61,2.72,2.58,2.66,2.60,2.55,2.79,2.73, 2.64,2.78,2.73,2.69,2.75,2.81,2.87,2.88,2.80,2.80, 2.84,2.88,2.88,2.86,3.01,2.96,2.89,3.04,3.03,3.03, 2.92,2.86,2.94,3.12,3.11,3.09,3.02,3.15,3.16,3.12, 3.09,3.18,3.15,3.17,3.15,3.11,3.16,3.21,3.18,3.20, 3.19,3.15,3.24,3.29,3.44,3.28,3.27,3.33,3.34,3.33, 3.38,3.41,3.40,3.38,3.42,3.46,3.47,3.54,3.46,3.61, 3.51,3.44,3.60,3.67,3.56,3.45,3.57,3.58,3.56,3.63, 3.60,3.53,3.67,3.65,3.70,3.68,3.79,3.77,3.82,3.82, 3.84,3.83,3.79,3.91,3.77,3.82,3.86,3.77,3.79,3.96, 0.10,0.14,0.14,0.15,0.15,0.16,0.19,0.19,0.16,0.23, 0.21,0.21,0.23,0.23,0.23,0.26,0.27,0.25,0.30,0.31, 0.32,0.30,0.31,0.34,0.36,0.39,0.38,0.38,0.40,0.41, 0.41,0.42,0.45,0.47,0.42,0.49,0.49,0.47,0.51,0.49, 0.48,0.52,0.56,0.60,0.61,0.56,0.65,0.62,0.61,0.62, 0.66,0.67,0.68,0.66,0.61,0.67,0.72,0.71,0.72,0.73, 0.74,0.76,0.75,0.79,0.76,0.76,0.77,0.84,0.84,0.81, 0.79,0.89,0.83,0.83,0.91,0.90,0.90,0.91,0.89,0.96, 0.90,0.99,0.97,0.95,0.96,1.00,0.98,1.03,1.07,1.03, 1.02,0.98,1.06,1.05,1.14,1.11,1.11,1.12,1.12,1.17, 1.13,1.18,1.15,1.13,1.13,1.24,1.21,1.20,1.22,1.28, 1.25,1.25,1.29,1.31,1.28,1.34,1.35,1.35,1.30,1.32, 1.29,1.30,1.39,1.32,1.35,1.43,1.50,1.43,1.39,1.49, 1.50,1.48,1.46,1.48,1.51,1.54,1.50,1.49,1.58,1.54, 1.53,1.60,1.61,1.65,1.57,1.54,1.62,1.56,1.63,1.66, 1.65,1.73,1.73,1.72,1.71,1.70,1.68,1.77,1.70,1.77, 1.76,1.78,1.74,1.81,1.77,1.79,1.81,1.83,1.84,1.85, 1.89,1.83,1.85,1.78,1.95,1.84,1.92,1.91,1.93,1.94, 1.98,2.00,1.96,2.00,2.03,2.04,2.00,2.09,2.04,2.08, 2.04,2.10,2.12,2.10,2.13,2.15,2.23,2.09,2.20,2.22, 2.16,2.09,2.27,2.22,2.17,2.28,2.33,2.25,2.25,2.25, 2.29,2.31,2.28,2.36,2.30,2.33,2.37,2.41,2.37,2.40, 2.46,2.45,2.45,2.40,2.46,2.34,2.43,2.44,2.42,2.44, 2.44,2.56,2.47,2.52,2.50,2.50,2.53,2.51,2.58,2.54, 2.56,2.53,2.62,2.61,2.58,2.64,2.66,2.83,2.75,2.65, 2.67,2.77,2.75,2.79,2.67,2.71,2.83,2.73,2.84,2.82, 2.74,2.79,2.79,2.85,2.83,2.81,2.90,2.90,2.90,2.91, 2.99,2.93,2.89,2.88,2.94,2.96,2.93,2.92,2.96,2.95, 3.01,3.12,3.03,3.01,3.06,3.02,3.13,3.11,3.20,3.12, 2.70,2.92,3.10,3.40,3.62,4.00,4.24,4.42,4.68,4.95, 5.17,5.45,5.64,5.98,6.19,6.40,6.71,7.05,7.22,7.53, 7.69,8.00,8.37,8.60,8.73,9.02,9.29,9.46,9.85,10.01, 10.34,10.57,10.68,11.07,11.16,11.72,11.73,11.99,12.24,12.48, 12.88,13.08,13.39,13.59,13.88,14.06,14.34,14.48,14.72,15.19, 15.32,15.44,15.85,16.19,16.31,16.72,16.84,17.19,17.33,17.61, 17.93,18.10,18.45,18.73,18.81,19.15,19.67,19.59,19.91,20.24, 20.30,20.73,20.79,21.25,21.20,21.84,22.05,22.09,22.53,22.79, 22.93,23.27,23.63,23.57,23.95,24.31,24.62,24.72,24.93,25.12, 25.58,25.63,26.02,26.23,26.39,26.81,26.90,27.10,27.72,27.64, 28.07,28.30,28.49,28.88,29.25,29.41,29.35,30.00,30.27,30.39, 30.59,30.86,31.06,31.37,31.66,31.87,32.14,32.27,32.73,32.80, 33.12,33.34,33.38,33.80,34.36,34.33,34.43,35.02,35.07,35.54, 35.56,35.94,36.26,36.63,36.89,37.02,37.05,37.41,37.65,37.81, 38.54,38.61,38.71,38.93,39.11,39.60,39.59,39.82,40.34,40.35, 40.64,40.89,41.21,41.63,41.73,42.12,42.18,42.56,42.87,43.20, 43.38,43.26,43.64,43.76,44.30,44.68,44.64,45.20,45.44,45.34, 45.73,46.14,46.59,46.79,47.06,47.21,47.06,47.34,47.87,48.32, 48.13,48.51,48.99,49.16,49.12,49.62,49.87,50.26,50.41,50.87, 50.95,51.00,51.43,51.85,52.00,52.12,52.28,52.80,52.83,53.35, 53.34,53.61,54.18,54.14,54.19,54.73,54.85,55.32,55.56,55.70, 55.87,55.99,56.45,57.20,56.98,57.53,57.46,57.59,58.19,58.31, 58.83,58.71,59.08,59.12,59.69,59.89,60.01,60.42,60.46,60.90, 61.02,61.27,62.00,61.69,62.23,62.35,62.49,62.61,63.14,63.06, 63.80,64.10,64.38,64.44,64.55,65.08,65.29,65.60,65.60,65.93, 66.31,66.38,66.58,66.88,67.16,67.11,67.84,67.90,68.17,68.55, 68.31,68.95,68.95,69.21,69.53,69.66,70.56,70.53,70.56,71.07, 71.42,71.34,71.70,71.96,72.00,72.10,72.76,72.96,73.11,73.44, 73.82,74.47,74.41,74.63,74.66,75.20,75.08,75.39,75.81,75.85, 2.11,2.38,2.54,2.76,3.00,3.15,3.39,3.56,3.84,3.94, 4.25,4.38,4.61,4.76,5.07,5.27,5.39,5.70,5.84,6.01, 6.19,6.51,6.63,6.94,7.02,7.26,7.54,7.61,8.00,8.12, 8.52,8.44,8.73,8.93,9.04,9.23,9.61,9.74,10.00,10.07, 10.38,10.58,10.80,10.87,11.27,11.34,11.69,11.64,11.93,12.08, 12.44,12.64,12.90,13.00,13.34,13.37,13.64,13.98,14.00,14.44, 14.66,14.83,14.95,15.07,15.33,15.51,15.72,15.91,16.01,16.37, 16.36,16.76,16.87,17.15,17.42,17.69,17.79,18.00,18.16,18.52, 18.53,18.81,19.01,19.05,19.39,19.68,19.99,20.02,20.01,20.45, 20.61,20.91,21.15,21.31,21.49,21.76,22.03,22.07,22.29,22.41, 22.80,22.86,23.02,23.28,23.66,23.85,23.94,24.16,24.33,24.58, 24.75,24.91,25.20,25.53,25.44,25.72,26.21,26.28,26.28,26.68, 26.75,27.11,27.46,27.38,27.62,27.96,28.21,28.24,28.54,28.47, 28.77,29.18,29.42,29.72,29.63,29.95,30.08,30.49,30.59,30.76, 30.83,31.31,31.11,31.49,32.07,32.18,32.21,32.49,32.47,32.94, 33.05,32.99,33.31,33.63,33.93,34.01,34.16,34.58,34.72,34.83, 35.13,35.57,35.61,35.66,35.87,36.13,36.32,36.41,36.79,37.11, 36.97,37.54,37.77,37.52,38.01,38.16,38.10,38.48,38.88,39.00, 39.32,39.45,39.79,39.72,39.86,40.42,40.63,40.51,41.00,40.79, 41.02,41.42,41.66,41.76,42.30,42.47,42.48,42.86,42.91,43.13, 43.47,43.61,43.79,43.97,43.86,44.12,44.86,44.70,44.82,45.25, 45.26,45.38,45.62,45.61,46.12,46.28,46.66,46.46,47.07,47.11, 47.57,47.32,47.80,48.23,48.34,48.16,48.34,48.77,49.18,49.35, 49.25,49.63,49.86,49.86,49.92,50.18,50.67,50.65,51.53,51.70, 51.71,51.65,51.82,52.05,52.34,52.34,52.41,52.76,52.99,53.34, 53.40,53.79,54.04,54.33,54.30,54.54,55.01,54.97,55.28,55.48, 55.64,55.68,56.24,56.18,56.72,56.91,56.96,56.87,57.33,57.56, 57.54,57.75,58.07,58.55,58.37,59.04,59.10,58.99,59.38,59.51, 59.94,59.88,60.07,60.55,60.26,60.88,61.20,61.34,61.58,61.72, 1.74,1.92,2.09,2.25,2.40,2.58,2.79,2.89,3.05,3.28, 3.37,3.54,3.68,3.93,4.14,4.16,4.38,4.50,4.68,4.87, 5.03,5.25,5.40,5.47,5.87,5.82,6.21,6.23,6.49,6.56, 6.78,6.86,7.11,7.31,7.29,7.52,7.76,7.85,8.14,8.23, 8.31,8.46,8.64,8.78,9.08,9.17,9.39,9.62,9.82,9.88, 10.14,10.15,10.45,10.65,10.89,10.97,11.19,11.16,11.30,11.62, 11.88,11.96,11.91,12.25,12.37,12.72,12.87,12.83,13.05,13.20, 13.35,13.62,13.77,13.94,13.91,14.25,14.21,14.38,14.67,14.96, 15.18,15.11,15.64,15.35,15.72,15.94,16.07,16.06,16.35,16.41, 16.94,16.79,17.21,17.34,17.39,17.42,17.80,17.77,18.07,18.25, 18.42,18.32,18.63,18.89,19.13,19.27,19.41,19.57,19.91,19.96, 19.82,20.25,20.37,20.72,20.77,20.75,21.04,21.25,21.54,21.49, 21.43,21.98,22.06,22.45,22.47,22.62,22.57,22.92,23.02,23.28, 23.40,23.39,23.61,23.96,23.95,24.32,24.16,24.26,24.86,25.13, 25.31,24.98,25.26,25.54,25.71,25.74,26.09,26.29,26.39,26.64, 26.97,27.06,27.05,27.31,27.45,27.64,27.46,27.97,28.03,28.20, 28.51,28.47,28.89,28.79,29.23,29.00,29.45,29.44,29.57,29.77, 30.23,30.31,30.50,30.63,30.88,30.72,31.06,31.21,31.56,31.63, 31.77,31.73,32.06,32.31,32.08,32.49,32.83,33.16,33.03,33.29, 33.35,33.87,33.93,33.98,33.89,34.25,34.38,34.44,34.64,35.15, 35.08,35.24,35.47,35.62,35.55,35.83,35.99,36.26,36.53,36.55, 36.73,36.85,37.02,37.10,37.37,37.51,37.90,37.44,38.18,38.41, 38.34,38.42,38.92,38.59,39.21,39.31,39.10,39.53,39.59,39.75, 40.19,40.30,40.07,40.08,40.93,40.67,41.11,41.07,41.76,41.80, 41.86,41.67,42.18,42.20,42.32,42.62,42.52,43.16,43.00,43.02, 43.31,43.47,43.72,44.06,44.30,44.16,44.41,44.49,44.55,44.81, 45.20,44.86,45.58,45.61,45.90,45.97,46.18,46.37,46.38,46.61, 46.79,46.80,47.11,47.29,47.44,47.63,47.82,48.05,47.94,48.12, 48.48,48.74,48.78,49.34,49.18,49.53,49.39,49.75,49.57,50.08, 1.43,1.55,1.72,1.89,1.95,2.14,2.23,2.40,2.49,2.58, 2.73,2.95,3.09,3.26,3.38,3.37,3.48,3.61,3.77,3.96, 4.10,4.27,4.42,4.49,4.77,4.73,4.94,5.05,5.19,5.35, 5.50,5.57,5.76,5.86,5.98,6.19,6.31,6.39,6.49,6.66, 6.78,6.89,7.01,7.10,7.30,7.47,7.64,7.63,7.88,8.02, 8.18,8.29,8.46,8.70,8.70,8.93,8.82,9.20,9.21,9.29, 9.52,9.65,9.74,10.05,10.09,10.34,10.36,10.38,10.58,10.79, 10.91,11.01,11.14,11.38,11.35,11.55,11.67,11.68,11.82,11.98, 12.27,12.42,12.52,12.69,12.69,12.88,13.05,13.08,13.29,13.29, 13.43,13.77,13.93,13.88,14.03,14.33,14.39,14.49,14.63,14.73, 14.90,15.22,15.40,15.30,15.31,15.55,15.69,15.79,15.74,16.21, 16.28,16.36,16.59,16.59,16.61,16.96,17.18,17.09,17.33,17.33, 17.45,17.82,18.00,18.12,18.04,18.37,18.52,18.50,18.59,18.88, 18.71,18.98,19.23,19.45,19.60,19.57,19.66,19.79,20.30,20.08, 20.25,20.41,20.52,20.71,20.47,20.90,21.19,21.23,21.61,21.59, 21.72,21.47,21.93,22.24,22.11,22.22,22.52,22.57,22.73,22.84, 23.18,23.39,23.21,23.47,23.68,23.82,23.82,24.00,24.21,24.38, 24.19,24.55,24.89,24.75,24.75,25.04,25.35,25.35,25.41,25.69, 25.67,25.91,25.95,26.23,26.17,26.33,26.56,26.69,26.68,26.89, 26.87,27.20,27.49,27.27,27.44,27.66,28.06,27.73,28.20,28.35, 28.57,28.47,28.71,28.80,28.93,29.04,29.23,29.45,29.51,29.53, 29.75,29.71,30.05,29.98,30.46,30.45,30.67,30.72,30.49,30.78, 31.13,31.52,31.66,31.61,31.86,31.82,32.20,32.29,32.19,32.62, 32.47,32.59,32.92,32.99,32.82,33.03,33.42,33.22,33.51,33.39, 33.94,34.15,34.23,34.06,34.40,34.34,34.62,35.21,34.89,34.86, 35.11,35.31,35.19,35.40,35.86,35.64,35.83,36.14,36.14,36.36, 36.59,36.67,36.92,36.89,36.79,37.17,37.02,37.11,37.35,37.71, 37.68,37.72,38.23,38.38,38.26,38.48,38.73,38.99,38.85,39.16, 38.88,39.58,39.74,39.51,39.65,39.95,40.20,40.07,39.98,40.50, 1.07,1.32,1.39,1.46,1.54,1.70,1.78,1.85,1.97,2.11, 2.17,2.37,2.44,2.61,2.69,2.76,2.87,3.01,3.04,3.14, 3.31,3.38,3.55,3.72,3.77,3.81,3.98,4.02,4.13,4.34, 4.40,4.46,4.62,4.78,4.86,5.02,5.18,5.10,5.39,5.38, 5.52,5.62,5.68,5.87,5.94,5.93,6.12,6.36,6.40,6.46, 6.69,6.79,6.78,6.96,7.07,7.23,7.28,7.31,7.44,7.64, 7.60,7.83,7.89,8.04,8.15,8.31,8.42,8.61,8.61,8.71, 8.76,9.02,8.97,9.12,9.36,9.43,9.37,9.61,9.61,9.75, 9.85,10.10,10.21,10.15,10.40,10.39,10.60,10.76,10.70,10.88, 11.00,11.07,11.17,11.36,11.46,11.91,11.65,11.87,11.79,12.00, 12.24,12.17,12.26,12.27,12.56,12.69,12.73,12.85,13.12,13.02, 13.08,13.38,13.53,13.59,13.51,13.53,13.93,14.00,14.11,14.14, 14.36,14.45,14.54,14.70,14.71,14.91,15.06,14.90,15.07,15.30, 15.34,15.40,15.60,15.44,15.74,15.92,15.93,15.90,16.18,16.37, 16.50,16.44,16.51,16.58,16.85,17.14,17.09,17.34,17.18,17.48, 17.40,17.65,17.66,17.77,17.96,17.91,18.25,18.36,18.18,18.64, 18.57,18.62,19.22,18.94,18.99,19.08,19.45,19.33,19.61,19.64, 19.73,20.03,20.06,20.16,20.21,20.25,20.23,20.48,20.43,20.92, 20.90,20.78,20.87,21.33,21.22,21.23,21.32,21.46,21.79,21.72, 21.89,22.07,21.84,22.28,22.53,22.52,22.65,22.50,22.85,22.98, 22.85,23.12,23.14,23.27,23.22,23.63,23.75,23.58,23.84,23.93, 24.09,24.30,24.37,24.51,24.32,24.65,24.82,24.80,25.07,24.88, 25.20,25.15,25.50,25.73,25.43,25.77,25.85,25.83,26.06,26.18, 25.99,26.18,26.63,26.63,26.81,26.95,26.79,26.97,27.15,27.30, 27.37,27.59,27.70,27.91,28.02,28.04,28.13,28.14,28.10,28.33, 28.48,28.73,28.86,28.98,28.91,29.07,29.07,29.34,29.22,29.57, 29.55,29.73,29.87,29.98,30.33,30.01,30.35,30.44,30.50,30.58, 30.53,30.85,30.84,31.21,31.16,31.18,31.00,31.43,31.34,31.82, 31.84,31.88,31.92,32.14,32.25,32.47,32.51,32.55,32.74,32.71, 0.90,1.03,1.08,1.15,1.30,1.38,1.45,1.55,1.58,1.70, 1.75,1.97,2.01,2.11,2.15,2.28,2.36,2.40,2.48,2.65, 2.68,2.80,2.88,2.95,3.08,3.19,3.26,3.27,3.39,3.44, 3.57,3.65,3.80,3.92,3.93,4.01,4.09,4.36,4.29,4.33, 4.45,4.53,4.60,4.75,4.84,4.84,5.01,5.05,5.17,5.25, 5.26,5.48,5.50,5.73,5.73,5.80,5.94,5.94,6.07,6.26, 6.08,6.25,6.42,6.49,6.55,6.68,6.70,6.89,6.96,7.17, 7.03,7.22,7.33,7.41,7.50,7.41,7.54,7.72,7.83,7.88, 8.07,8.01,8.31,8.46,8.22,8.55,8.39,8.66,8.74,8.90, 8.88,8.97,9.21,9.16,9.26,9.28,9.36,9.55,9.55,9.57, 9.74,9.88,10.01,10.01,10.18,10.06,10.36,10.43,10.34,10.47, 10.60,10.64,10.83,11.04,10.95,11.07,11.18,11.26,11.31,11.60, 11.51,11.66,11.57,11.90,11.87,11.91,12.08,12.18,12.14,12.43, 12.48,12.57,12.52,12.72,12.88,12.89,12.80,13.22,13.20,13.40, 13.33,13.49,13.65,13.57,13.65,13.77,13.74,14.00,14.04,14.35, 14.08,14.38,14.40,14.48,14.62,14.64,14.75,14.88,14.96,15.06, 15.14,15.16,15.09,15.28,15.42,15.47,15.77,15.79,15.79,15.76, 15.87,15.95,16.17,16.27,16.18,16.41,16.49,16.57,16.78,16.72, 16.83,17.09,17.15,17.02,17.32,17.34,17.41,17.41,17.64,17.84, 17.71,17.90,18.02,18.01,18.10,17.95,18.27,18.31,18.62,18.80, 18.75,18.69,18.86,18.90,19.01,18.94,19.33,19.19,19.36,19.30, 19.64,19.45,19.58,19.83,19.87,19.86,20.01,20.17,20.23,20.09, 20.32,20.46,20.67,20.71,20.70,20.83,21.15,20.90,21.12,21.18, 21.09,21.60,21.36,21.44,21.42,21.76,21.83,21.66,22.04,22.10, 22.52,22.07,22.39,22.35,22.71,22.50,22.81,22.73,22.95,23.03, 23.15,23.04,23.18,23.29,23.47,23.49,23.65,23.52,23.83,23.83, 23.77,23.82,24.16,24.24,24.05,24.52,24.26,24.78,24.57,24.80, 24.90,24.84,24.97,25.05,25.24,25.11,25.39,25.25,25.68,25.47, 25.62,25.57,25.85,26.07,26.04,26.42,26.23,26.26,26.50,26.60, 0.76,0.85,0.86,0.98,0.99,1.12,1.20,1.26,1.28,1.40, 1.53,1.56,1.55,1.75,1.78,1.76,1.96,1.95,1.98,2.09, 2.15,2.21,2.33,2.44,2.50,2.57,2.66,2.69,2.80,2.88, 2.90,3.08,3.06,3.10,3.20,3.22,3.42,3.40,3.55,3.58, 3.57,3.74,3.74,3.81,3.84,4.01,4.00,4.12,4.23,4.28, 4.31,4.45,4.48,4.51,4.56,4.77,4.75,4.93,4.97,5.02, 5.09,5.20,5.13,5.36,5.25,5.43,5.52,5.53,5.55,5.63, 5.79,5.78,5.84,6.00,6.00,6.08,6.29,6.27,6.32,6.37, 6.45,6.59,6.70,6.75,6.77,6.77,6.82,7.05,6.95,7.12, 7.00,7.23,7.28,7.35,7.42,7.53,7.72,7.75,7.81,7.83, 7.95,8.04,7.94,8.00,8.16,8.23,8.35,8.43,8.52,8.67, 8.70,8.69,8.86,9.00,8.90,8.97,9.06,9.10,9.22,9.29, 9.18,9.33,9.56,9.69,9.72,9.64,9.70,9.84,9.96,9.93, 10.15,10.28,10.16,10.21,10.22,10.36,10.49,10.59,10.81,10.59, 10.80,11.06,10.96,10.98,11.01,11.17,11.27,11.22,11.32,11.40, 11.59,11.56,11.68,11.77,11.67,11.94,12.11,11.85,11.99,12.21, 12.34,12.18,12.29,12.51,12.63,12.80,12.82,12.91,12.59,12.96, 13.00,12.91,13.12,13.27,13.27,13.13,13.29,13.33,13.50,13.44, 13.52,13.92,13.68,14.03,14.02,14.01,14.23,14.06,14.28,14.27, 14.40,14.34,14.33,14.59,14.78,14.86,14.95,14.82,14.97,15.06, 14.97,14.92,15.21,15.24,15.18,15.41,15.53,15.56,15.79,15.56, 15.96,15.76,15.97,15.88,16.25,16.07,16.30,16.35,16.56,16.50, 16.50,16.69,16.45,16.61,16.74,16.83,16.84,17.25,17.18,17.13, 17.12,17.35,17.43,17.28,17.65,17.77,17.93,17.57,17.73,18.00, 18.16,18.06,18.16,18.25,18.18,18.08,18.31,18.48,18.48,18.61, 18.67,18.91,18.73,18.62,19.02,18.83,19.29,19.11,19.20,19.34, 19.45,19.57,19.70,19.48,19.62,19.95,19.80,19.92,20.08,20.16, 19.96,19.92,20.15,20.39,20.37,20.42,20.62,20.45,20.72,20.78, 20.84,21.01,21.06,20.92,21.11,21.24,21.36,21.42,21.50,21.43, 0.61,0.65,0.70,0.76,0.81,0.90,0.95,0.99,1.11,1.15, 1.21,1.27,1.33,1.40,1.44,1.47,1.56,1.56,1.60,1.65, 1.80,1.87,1.89,1.90,2.00,2.06,2.15,2.16,2.25,2.29, 2.31,2.40,2.46,2.38,2.64,2.67,2.69,2.79,2.88,2.82, 2.95,3.00,3.02,3.16,3.23,3.24,3.30,3.39,3.34,3.44, 3.52,3.51,3.58,3.74,3.73,3.81,3.90,3.93,4.02,4.07, 4.08,4.15,4.21,4.32,4.32,4.38,4.47,4.41,4.59,4.73, 4.74,4.71,4.84,4.85,4.84,4.96,5.04,5.01,4.98,5.21, 5.17,5.36,5.43,5.42,5.45,5.42,5.73,5.73,5.69,5.78, 5.86,5.83,6.00,6.05,6.05,6.09,6.32,6.28,6.35,6.33, 6.36,6.35,6.66,6.58,6.65,6.72,6.85,6.79,6.98,6.97, 6.99,7.03,7.13,7.11,7.18,7.29,7.39,7.32,7.60,7.59, 7.51,7.62,7.59,7.67,7.87,7.81,7.94,8.04,8.21,7.99, 8.15,8.20,8.44,8.59,8.35,8.63,8.54,8.61,8.74,8.75, 8.65,8.91,9.01,8.98,8.92,9.05,9.05,9.08,9.07,9.22, 9.29,9.37,9.35,9.37,9.46,9.63,9.70,9.65,9.75,9.85, 9.94,10.08,9.96,10.02,10.15,10.25,10.24,10.28,10.44,10.38, 10.53,10.50,10.57,10.83,10.71,10.89,11.04,10.90,10.99,11.02, 11.15,11.29,11.22,11.05,11.19,11.28,11.31,11.59,11.65,11.60, 11.75,11.66,11.71,11.84,11.88,11.88,12.14,12.12,12.22,12.15, 12.33,12.27,12.31,12.34,12.39,12.62,12.57,12.62,12.59,12.72, 12.96,12.88,13.17,12.96,12.99,13.04,13.07,13.22,13.21,13.18, 13.20,13.49,13.51,13.46,13.65,13.70,13.61,13.75,13.94,13.86, 13.99,13.93,13.96,14.20,14.31,14.22,14.32,14.51,14.42,14.41, 14.66,14.58,14.60,14.56,14.84,14.74,14.86,14.96,14.85,14.82, 15.24,15.11,15.20,15.34,15.52,15.20,15.48,15.54,15.45,15.78, 15.75,15.94,15.83,15.74,15.94,16.07,16.05,15.85,16.42,16.07, 16.27,16.57,16.28,16.40,16.43,16.58,16.53,16.67,16.71,16.84, 16.89,17.00,16.95,16.93,17.16,17.24,17.21,17.03,17.46,17.35, 0.50,0.52,0.62,0.59,0.67,0.73,0.76,0.83,0.85,0.90, 0.95,1.02,1.05,1.15,1.18,1.14,1.24,1.28,1.32,1.41, 1.50,1.46,1.56,1.58,1.59,1.70,1.78,1.75,1.82,1.82, 1.89,1.97,2.05,2.02,2.02,2.18,2.21,2.20,2.25,2.25, 2.35,2.39,2.43,2.59,2.56,2.61,2.67,2.74,2.74,2.71, 2.77,2.84,2.95,2.96,2.94,3.03,3.14,3.16,3.24,3.29, 3.35,3.38,3.56,3.47,3.48,3.51,3.55,3.73,3.58,3.82, 3.92,3.89,3.88,3.90,3.98,4.01,4.11,4.11,4.11,4.18, 4.23,4.24,4.30,4.38,4.38,4.54,4.49,4.67,4.70,4.66, 4.72,4.82,4.76,4.83,4.89,4.93,5.00,5.04,5.07,5.19, 5.17,5.24,5.25,5.26,5.30,5.36,5.53,5.40,5.55,5.55, 5.73,5.62,5.84,5.90,5.89,5.91,5.94,6.03,6.14,6.09, 6.04,6.28,6.11,6.30,6.26,6.41,6.38,6.47,6.50,6.67, 6.61,6.67,6.67,6.86,6.78,6.78,6.98,7.02,7.07,7.02, 7.12,7.16,7.14,7.29,7.26,7.46,7.32,7.41,7.46,7.53, 7.45,7.62,7.67,7.51,7.67,7.91,7.82,7.80,8.07,7.97, 8.11,8.18,8.05,8.16,8.17,8.27,8.31,8.30,8.43,8.46, 8.41,8.48,8.57,8.59,8.66,8.83,8.72,8.64,8.80,8.91, 8.86,9.06,9.12,9.27,9.13,9.19,9.31,9.39,9.43,9.46, 9.58,9.52,9.39,9.48,9.69,9.73,9.81,9.79,9.75,9.84, 9.97,9.98,9.88,10.10,10.19,10.11,10.21,10.21,10.22,10.36, 10.34,10.32,10.45,10.48,10.57,10.64,10.56,10.70,10.73,10.94, 10.84,10.77,11.00,11.05,11.11,11.17,11.22,11.22,11.17,11.24, 11.50,11.48,11.27,11.57,11.50,11.56,11.62,11.53,11.53,11.57, 11.76,12.07,12.00,11.80,11.93,12.24,12.17,12.14,12.30,12.17, 12.16,12.45,12.43,12.39,12.46,12.42,12.42,12.63,12.58,12.54, 12.72,12.75,12.71,12.81,13.07,12.75,13.12,13.27,13.06,13.33, 13.16,13.07,13.49,13.36,13.50,13.39,13.36,13.51,13.60,13.66, 13.71,13.94,13.73,13.61,14.06,14.04,14.02,13.87,14.06,14.14, 0.44,0.42,0.48,0.50,0.55,0.59,0.64,0.68,0.73,0.76, 0.74,0.80,0.89,0.90,0.94,0.94,1.05,1.06,1.12,1.16, 1.19,1.19,1.22,1.23,1.31,1.38,1.33,1.41,1.48,1.50, 1.57,1.54,1.64,1.62,1.66,1.72,1.79,1.87,1.84,1.88, 1.89,2.00,1.95,2.07,2.01,2.12,2.10,2.19,2.27,2.23, 2.31,2.31,2.35,2.32,2.46,2.53,2.58,2.59,2.69,2.61, 2.74,2.58,2.74,2.79,2.81,2.90,2.92,2.92,2.99,2.98, 3.11,3.15,3.16,3.14,3.19,3.33,3.25,3.30,3.44,3.42, 3.39,3.48,3.52,3.49,3.54,3.64,3.69,3.73,3.67,3.78, 3.85,3.90,3.97,3.99,3.98,4.05,4.01,4.06,4.14,4.06, 4.24,4.25,4.28,4.36,4.38,4.40,4.43,4.43,4.45,4.61, 4.61,4.66,4.61,4.61,4.75,4.76,4.80,4.94,4.94,5.05, 5.05,5.09,5.15,5.04,5.09,5.16,5.11,5.27,5.06,5.27, 5.39,5.38,5.50,5.51,5.48,5.59,5.54,5.63,5.70,5.86, 5.76,5.87,5.80,5.92,6.03,5.99,6.01,6.07,5.87,6.02, 6.23,5.98,6.27,6.36,6.25,6.32,6.42,6.45,6.41,6.41, 6.42,6.48,6.56,6.64,6.63,6.67,6.68,6.83,6.76,6.76, 7.01,6.92,7.01,6.98,7.01,7.08,7.13,7.09,7.21,7.13, 7.29,7.30,7.38,7.36,7.38,7.41,7.38,7.41,7.54,7.54, 7.68,7.76,7.71,7.55,7.65,7.78,7.91,7.93,7.82,8.00, 7.92,7.88,8.00,8.02,8.26,8.20,8.11,8.37,8.40,8.42, 8.32,8.57,8.68,8.56,8.61,8.74,8.50,8.53,8.66,8.74, 8.81,8.90,8.84,8.93,8.79,9.04,9.02,9.07,9.09,9.12, 9.25,9.26,9.26,9.29,9.28,9.35,9.29,9.41,9.47,9.45, 9.62,9.42,9.55,9.69,9.66,9.79,9.88,9.97,9.76,9.77, 9.77,10.11,10.12,10.04,10.27,10.23,10.07,10.21,10.07,10.38, 10.41,10.41,10.34,10.33,10.38,10.53,10.66,10.70,10.56,10.73, 10.68,10.65,10.53,10.65,10.64,10.97,10.98,10.70,11.09,11.14, 11.09,11.09,11.04,11.17,11.39,11.34,11.26,11.14,11.47,11.45, 0.33,0.37,0.41,0.42,0.47,0.49,0.51,0.55,0.56,0.61, 0.67,0.65,0.71,0.73,0.77,0.81,0.83,0.90,0.90,0.93, 0.93,0.98,1.02,1.02,1.08,1.07,1.16,1.21,1.21,1.23, 1.24,1.27,1.34,1.35,1.40,1.47,1.42,1.42,1.50,1.50, 1.59,1.58,1.61,1.64,1.57,1.69,1.78,1.73,1.82,1.81, 1.86,1.89,1.93,1.96,1.97,2.00,2.04,2.10,2.10,2.10, 2.16,2.15,2.10,2.28,2.25,2.27,2.36,2.45,2.42,2.40, 2.49,2.56,2.60,2.60,2.57,2.64,2.68,2.69,2.68,2.75, 2.76,2.84,2.83,2.78,2.94,3.03,2.97,3.02,3.05,2.95, 3.13,3.17,3.20,3.03,3.21,3.26,3.26,3.42,3.41,3.41, 3.40,3.46,3.52,3.48,3.54,3.60,3.57,3.63,3.68,3.63, 3.73,3.69,3.73,3.88,3.86,3.77,4.01,3.83,3.96,4.01, 4.02,4.09,4.10,4.14,4.14,4.13,4.32,4.30,4.17,4.34, 4.37,4.39,4.34,4.35,4.44,4.51,4.45,4.52,4.67,4.68, 4.65,4.63,4.74,4.65,4.84,4.78,4.81,4.88,4.99,5.07, 4.95,5.01,4.80,5.02,5.01,5.12,5.03,5.22,5.15,5.32, 5.18,5.37,5.36,5.34,5.39,5.43,5.36,5.52,5.48,5.51, 5.54,5.58,5.66,5.57,5.76,5.74,5.69,5.75,5.79,5.99, 5.96,5.86,5.96,5.85,5.98,6.11,6.10,6.27,6.12,6.09, 6.17,6.31,6.29,6.35,6.33,6.24,6.37,6.39,6.45,6.44, 6.56,6.57,6.69,6.49,6.66,6.51,6.62,6.76,6.62,6.74, 6.82,6.77,6.87,6.92,6.91,6.96,6.99,6.98,6.98,7.09, 7.11,6.97,7.21,7.20,7.21,7.30,7.33,7.45,7.37,7.28, 7.39,7.41,7.50,7.59,7.66,7.57,7.45,7.81,7.76,7.68, 7.68,7.75,7.99,7.84,7.81,7.92,7.99,7.91,8.03,8.07, 8.02,8.09,8.20,8.18,8.23,8.27,8.22,8.14,8.23,8.34, 8.29,8.34,8.48,8.48,8.38,8.53,8.57,8.59,8.65,8.63, 8.65,8.63,8.94,8.87,8.66,8.79,8.83,8.96,8.91,8.95, 8.92,9.05,8.96,9.01,9.20,9.20,9.03,9.15,9.23,9.15, 0.26,0.28,0.33,0.35,0.33,0.39,0.40,0.46,0.47,0.49, 0.53,0.53,0.58,0.61,0.63,0.63,0.61,0.70,0.70,0.69, 0.78,0.76,0.81,0.85,0.89,0.84,0.94,0.91,0.95,0.95, 0.99,1.11,1.16,1.09,1.16,1.06,1.16,1.22,1.18,1.26, 1.25,1.27,1.27,1.36,1.32,1.36,1.45,1.44,1.51,1.54, 1.54,1.60,1.62,1.59,1.64,1.64,1.69,1.64,1.75,1.72, 1.74,1.86,1.76,1.80,1.85,1.84,1.94,1.90,1.95,1.96, 1.97,2.07,2.07,2.11,2.12,2.10,2.14,2.24,2.20,2.19, 2.24,2.19,2.34,2.38,2.43,2.40,2.41,2.45,2.37,2.48, 2.48,2.70,2.53,2.57,2.60,2.55,2.65,2.61,2.64,2.78, 2.83,2.73,2.84,2.78,2.90,3.02,2.95,2.82,3.03,3.05, 3.03,3.06,3.11,3.13,3.17,3.17,3.18,3.18,3.29,3.26, 3.28,3.32,3.34,3.40,3.31,3.30,3.30,3.45,3.38,3.47, 3.46,3.40,3.61,3.53,3.73,3.65,3.62,3.67,3.71,3.68, 3.69,3.80,3.85,3.79,3.90,3.81,3.96,3.97,4.00,4.01, 4.01,4.09,4.00,4.22,4.22,4.15,4.25,4.17,4.19,4.13, 4.35,4.35,4.33,4.36,4.44,4.36,4.33,4.46,4.38,4.54, 4.54,4.64,4.48,4.46,4.54,4.55,4.70,4.81,4.70,4.67, 4.83,4.85,4.88,4.85,4.88,4.88,4.98,4.91,4.95,4.94, 4.95,5.05,5.00,5.23,5.15,5.03,5.18,5.20,5.29,5.35, 5.32,5.34,5.28,5.26,5.34,5.38,5.46,5.35,5.39,5.56, 5.42,5.53,5.58,5.61,5.57,5.70,5.74,5.68,5.62,5.66, 5.86,5.75,5.79,5.87,6.00,5.84,5.90,5.90,5.89,5.97, 6.01,6.14,6.05,6.05,6.13,6.08,6.23,6.17,6.38,6.31, 6.18,6.35,6.32,6.30,6.52,6.39,6.37,6.49,6.49,6.55, 6.55,6.38,6.50,6.57,6.59,6.54,6.57,6.67,6.63,6.82, 6.77,6.78,6.99,6.82,6.94,6.99,6.96,7.01,7.03,7.05, 6.96,6.94,7.10,7.03,7.19,7.15,7.20,7.13,7.23,7.14, 7.32,7.32,7.33,7.44,7.40,7.29,7.30,7.49,7.59,7.57, 0.21,0.22,0.25,0.28,0.31,0.30,0.34,0.31,0.38,0.42, 0.40,0.45,0.47,0.48,0.52,0.53,0.55,0.57,0.57,0.59, 0.58,0.66,0.67,0.63,0.67,0.71,0.73,0.74,0.77,0.77, 0.83,0.84,0.88,0.87,0.92,0.92,0.96,0.91,0.92,1.03, 1.01,1.05,1.09,1.08,1.09,1.17,1.14,1.18,1.22,1.22, 1.25,1.26,1.25,1.23,1.30,1.32,1.41,1.35,1.37,1.37, 1.39,1.44,1.47,1.46,1.52,1.53,1.49,1.54,1.62,1.60, 1.65,1.64,1.70,1.70,1.73,1.73,1.83,1.80,1.76,1.78, 1.83,1.86,1.87,1.89,1.95,1.80,1.87,1.92,2.03,2.05, 2.01,2.04,2.07,2.14,2.13,2.12,2.17,2.15,2.20,2.24, 2.25,2.26,2.32,2.29,2.32,2.32,2.40,2.34,2.41,2.39, 2.42,2.40,2.58,2.50,2.47,2.58,2.56,2.56,2.60,2.59, 2.67,2.67,2.75,2.59,2.70,2.77,2.77,2.78,2.82,2.90, 2.96,2.80,2.88,2.90,3.02,2.95,2.94,2.94,3.08,2.96, 3.06,3.12,3.14,3.04,2.98,3.14,3.13,3.33,3.22,3.27, 3.35,3.33,3.11,3.23,3.30,3.34,3.32,3.46,3.58,3.48, 3.38,3.57,3.53,3.56,3.53,3.61,3.60,3.54,3.59,3.63, 3.70,3.77,3.71,3.68,3.83,3.66,3.74,3.85,3.90,3.89, 3.89,3.80,3.92,3.80,4.00,4.04,4.00,4.04,4.04,3.96, 3.94,4.09,4.24,4.21,4.20,4.15,4.28,4.22,4.15,4.27, 4.20,4.27,4.39,4.29,4.35,4.32,4.31,4.45,4.56,4.46, 4.52,4.42,4.59,4.46,4.44,4.57,4.49,4.59,4.50,4.66, 4.69,4.64,4.70,4.76,4.73,4.78,4.72,4.89,4.95,4.88, 4.96,4.82,4.88,4.91,4.86,4.84,5.07,4.98,4.93,5.14, 4.97,5.03,5.10,5.02,5.11,5.23,5.19,5.26,5.30,5.18, 5.40,5.35,5.37,5.27,5.35,5.32,5.45,5.44,5.33,5.42, 5.48,5.63,5.53,5.63,5.52,5.69,5.51,5.65,5.59,5.50, 5.80,5.69,5.72,5.67,5.84,5.87,5.76,5.77,5.82,5.90, 5.92,5.92,5.76,5.96,6.04,5.93,5.99,5.82,5.92,5.95, 0.18,0.19,0.21,0.23,0.24,0.26,0.24,0.28,0.27,0.33, 0.33,0.36,0.37,0.39,0.40,0.44,0.45,0.45,0.47,0.45, 0.52,0.52,0.54,0.60,0.59,0.58,0.59,0.66,0.65,0.68, 0.68,0.67,0.64,0.69,0.80,0.73,0.75,0.81,0.72,0.79, 0.83,0.86,0.83,0.89,0.93,0.96,0.93,0.91,0.96,0.95, 0.98,1.05,1.04,1.02,1.00,1.07,1.07,1.14,1.09,1.08, 1.16,1.19,1.22,1.21,1.23,1.24,1.21,1.39,1.29,1.30, 1.30,1.33,1.26,1.29,1.45,1.46,1.35,1.50,1.47,1.47, 1.49,1.49,1.58,1.58,1.53,1.60,1.63,1.66,1.61,1.61, 1.60,1.60,1.68,1.72,1.65,1.71,1.74,1.75,1.84,1.81, 1.84,1.76,1.83,1.89,1.82,1.87,1.86,1.96,1.89,1.95, 1.99,2.08,2.01,1.99,2.09,2.07,2.09,2.03,2.21,2.15, 2.17,2.13,2.07,2.20,2.12,2.31,2.20,2.17,2.27,2.28, 2.32,2.30,2.37,2.40,2.36,2.42,2.41,2.44,2.42,2.43, 2.54,2.52,2.58,2.59,2.59,2.62,2.58,2.56,2.50,2.60, 2.61,2.57,2.72,2.64,2.66,2.73,2.77,2.74,2.73,2.70, 2.81,2.78,2.81,2.87,2.87,2.89,2.99,2.89,2.93,2.96, 2.97,2.86,3.02,3.10,3.00,2.92,2.97,3.09,3.12,3.13, 3.13,3.13,3.02,3.29,3.27,3.13,3.21,3.19,3.28,3.25, 3.30,3.23,3.33,3.35,3.51,3.38,3.43,3.46,3.35,3.43, 3.50,3.57,3.53,3.47,3.55,3.52,3.56,3.56,3.55,3.60, 3.63,3.60,3.76,3.73,3.63,3.73,3.88,3.72,3.63,3.70, 3.96,3.85,3.76,3.77,3.82,3.83,3.84,3.89,3.97,3.91, 3.92,4.07,3.95,4.01,3.93,4.02,4.04,4.14,4.08,4.23, 4.17,4.10,4.13,4.25,4.16,4.14,4.06,4.18,4.24,4.18, 4.22,4.38,4.38,4.28,4.30,4.33,4.54,4.42,4.41,4.40, 4.40,4.46,4.45,4.43,4.51,4.47,4.57,4.55,4.57,4.63, 4.63,4.58,4.67,4.69,4.55,4.52,4.65,4.70,4.68,4.75, 4.77,4.71,4.73,4.87,4.76,4.83,4.86,4.91,4.92,4.89, 0.15,0.15,0.14,0.18,0.19,0.21,0.22,0.25,0.25,0.23, 0.27,0.28,0.29,0.32,0.33,0.35,0.35,0.39,0.40,0.38, 0.41,0.44,0.42,0.44,0.47,0.48,0.47,0.48,0.49,0.54, 0.53,0.59,0.55,0.55,0.61,0.57,0.61,0.66,0.65,0.65, 0.68,0.68,0.71,0.71,0.73,0.70,0.76,0.78,0.79,0.87, 0.75,0.88,0.79,0.79,0.94,0.85,0.91,0.90,0.94,0.90, 0.96,0.90,0.97,0.95,0.98,1.03,1.02,1.02,1.02,1.08, 1.02,1.07,1.10,1.10,1.12,1.08,1.13,1.16,1.19,1.18, 1.18,1.31,1.18,1.21,1.29,1.31,1.23,1.30,1.33,1.30, 1.32,1.37,1.40,1.35,1.40,1.40,1.42,1.48,1.50,1.52, 1.49,1.47,1.52,1.52,1.57,1.62,1.56,1.48,1.57,1.54, 1.60,1.63,1.62,1.69,1.70,1.66,1.67,1.69,1.70,1.67, 1.70,1.79,1.75,1.77,1.84,1.79,1.73,1.89,1.83,1.89, 1.89,1.89,1.91,1.90,1.91,2.01,1.96,2.05,1.92,1.99, 1.98,2.04,2.02,2.01,2.13,2.04,2.19,2.08,2.14,2.12, 2.14,2.14,2.12,2.06,2.19,2.15,2.15,2.29,2.26,2.17, 2.22,2.24,2.29,2.29,2.35,2.30,2.33,2.39,2.31,2.41, 2.39,2.35,2.46,2.47,2.48,2.39,2.56,2.58,2.51,2.54, 2.47,2.48,2.59,2.60,2.56,2.58,2.54,2.67,2.72,2.62, 2.65,2.66,2.69,2.66,2.73,2.87,2.71,2.79,2.81,2.85, 2.70,2.79,2.77,2.75,2.77,2.87,2.95,2.82,2.84,2.93, 2.82,2.84,2.96,2.88,3.05,3.07,3.03,3.10,3.05,3.12, 3.00,3.18,3.02,3.03,3.05,3.20,3.18,3.19,3.15,3.16, 3.14,3.23,3.22,3.14,3.26,3.24,3.24,3.27,3.25,3.29, 3.23,3.35,3.37,3.36,3.32,3.45,3.33,3.40,3.48,3.51, 3.48,3.46,3.45,3.51,3.52,3.58,3.58,3.54,3.63,3.62, 3.59,3.64,3.68,3.69,3.60,3.63,3.65,3.63,3.71,3.77, 3.69,3.75,3.75,3.83,3.71,3.74,3.88,3.74,3.75,3.90, 3.78,3.95,3.90,3.85,3.90,3.97,4.04,3.91,3.94,3.98, 2.83,3.11,3.33,3.74,3.90,4.17,4.50,4.90,5.06,5.28, 5.61,5.71,6.18,6.33,6.75,6.93,7.27,7.39,7.71,7.94, 8.40,8.57,8.86,9.08,9.46,9.71,9.88,10.30,10.44,10.90, 10.92,11.17,11.72,11.75,12.22,12.43,12.69,12.96,13.28,13.53, 13.75,13.98,14.21,14.52,14.91,15.12,15.33,15.61,16.05,16.15, 16.36,16.73,16.99,17.48,17.61,17.81,18.16,18.46,18.56,19.08, 19.20,19.36,19.72,20.09,20.36,20.68,20.75,21.16,21.36,21.66, 22.03,22.38,22.56,22.64,22.95,23.35,23.28,24.00,24.27,24.45, 24.71,24.87,25.18,25.39,25.78,25.91,26.31,26.70,26.75,27.01, 27.34,27.74,27.74,27.99,28.48,28.84,29.28,29.30,29.59,29.99, 30.06,30.24,30.55,30.90,31.35,31.46,31.84,32.05,32.39,32.59, 32.80,33.27,33.17,33.60,33.76,34.22,34.48,35.14,35.14,35.33, 35.55,35.96,36.11,36.28,36.59,36.87,37.26,37.59,37.83,37.94, 38.38,38.66,38.95,39.02,39.16,39.61,40.02,40.34,40.64,40.78, 40.75,41.43,41.57,41.92,42.02,42.49,42.61,42.81,43.16,43.53, 43.77,43.91,44.26,44.58,44.90,45.05,45.62,45.53,45.99,46.04, 46.60,46.85,47.04,47.28,47.41,47.98,48.19,48.46,48.77,49.04, 48.87,49.41,50.00,50.07,50.64,50.91,50.64,51.00,51.20,51.55, 52.04,52.12,52.35,52.54,53.00,53.09,53.51,53.51,54.03,54.66, 54.60,54.99,55.09,55.29,55.97,56.37,56.15,56.66,56.71,56.98, 57.67,57.51,58.22,58.13,58.65,58.90,58.86,59.05,59.21,59.90, 60.01,60.02,60.75,61.13,61.35,61.66,61.99,61.90,62.23,62.20, 62.68,63.16,63.13,63.85,64.08,64.01,64.61,64.63,65.01,65.27, 65.64,65.76,66.34,66.34,66.53,66.76,67.40,67.30,67.70,68.12, 68.23,68.70,68.75,68.88,69.32,69.57,70.10,70.22,70.46,70.35, 70.93,71.42,71.36,71.92,71.88,72.42,73.06,72.55,73.21,73.55, 73.71,73.76,74.35,74.53,74.82,75.20,75.46,76.46,75.85,76.23, 76.38,76.78,77.02,77.33,77.48,78.15,78.15,78.17,78.80,78.72, 79.33,79.71,79.58,79.92,80.29,80.44,80.76,81.09,81.48,81.89, 2.35,2.63,2.77,3.03,3.19,3.42,3.65,3.89,4.06,4.26, 4.49,4.82,4.95,5.25,5.51,5.64,5.90,6.16,6.36,6.62, 6.80,7.12,7.26,7.44,7.72,7.95,8.14,8.36,8.53,8.85, 9.04,9.29,9.50,9.66,10.00,10.24,10.38,10.46,10.84,11.02, 11.20,11.55,11.77,11.93,12.21,12.53,12.64,12.73,12.99,13.25, 13.67,13.80,14.01,14.31,14.48,14.69,14.84,15.18,15.50,15.47, 15.89,15.91,16.29,16.52,16.50,16.85,17.06,17.25,17.58,17.68, 17.94,18.20,18.40,18.68,18.80,19.11,19.31,19.55,19.75,20.18, 20.16,20.60,20.74,20.76,21.06,21.27,21.68,21.77,22.05,22.11, 22.64,22.48,22.91,22.95,23.35,23.59,23.88,23.81,24.33,24.56, 24.71,25.00,24.96,25.28,25.53,25.88,25.96,26.32,26.14,26.78, 27.07,27.23,27.48,27.59,27.87,28.20,28.20,28.47,28.71,28.72, 29.31,29.35,29.60,29.95,30.10,30.23,30.30,30.66,30.76,31.34, 31.32,31.55,31.64,31.93,32.51,32.36,32.76,32.85,33.13,33.57, 33.83,33.74,34.05,34.40,34.30,34.64,34.90,35.20,35.40,35.61, 36.07,35.97,36.30,36.45,36.55,36.68,37.02,37.46,37.74,37.53, 38.25,38.38,38.68,38.78,38.86,39.19,39.30,39.75,40.05,40.41, 40.25,40.47,40.62,40.96,41.25,41.63,41.77,41.86,42.16,42.32, 42.74,43.07,43.15,43.22,43.36,43.69,44.02,44.01,44.40,44.39, 44.86,45.04,45.00,45.42,45.73,45.98,46.18,46.45,46.58,46.67, 47.09,47.32,47.31,47.59,48.00,48.06,48.65,48.23,48.82,49.20, 49.13,49.25,49.63,49.74,50.05,50.43,50.77,50.92,50.90,51.20, 51.64,51.74,51.81,52.20,52.60,52.57,52.85,53.27,53.11,53.38, 53.71,54.03,53.70,54.37,54.71,55.05,55.26,55.14,55.40,55.67, 56.16,56.18,56.58,56.76,56.97,56.77,57.36,57.50,57.88,57.99, 58.30,58.36,58.58,58.90,59.31,59.38,59.59,59.69,60.26,60.12, 60.62,60.43,60.85,60.96,61.40,61.54,61.79,62.00,61.93,62.51, 62.44,62.74,63.30,63.32,63.68,64.14,63.90,64.33,64.29,64.68, 65.19,65.12,65.41,65.52,65.86,66.42,66.38,66.47,66.69,66.67, 1.93,2.06,2.28,2.48,2.58,2.88,3.04,3.09,3.37,3.57, 3.78,3.91,4.12,4.28,4.47,4.58,4.84,5.01,5.18,5.41, 5.54,5.88,6.05,6.18,6.42,6.60,6.73,6.80,7.09,7.22, 7.46,7.71,7.70,8.00,8.18,8.28,8.38,8.71,8.86,9.04, 9.27,9.35,9.69,9.73,9.91,10.16,10.35,10.55,10.64,11.00, 10.96,11.21,11.34,11.63,11.76,12.00,12.09,12.41,12.56,12.63, 12.85,13.18,13.27,13.39,13.83,13.76,13.94,14.11,14.46,14.48, 14.75,14.72,15.25,15.29,15.59,15.80,15.78,15.99,16.02,16.36, 16.51,16.98,16.73,17.09,17.32,17.54,17.61,17.70,18.03,18.30, 18.35,18.75,18.91,18.82,19.11,19.27,19.43,19.72,20.01,19.97, 20.29,20.43,20.43,20.96,21.08,21.23,21.31,21.49,21.82,21.86, 21.98,22.22,22.41,22.49,22.94,23.01,23.18,23.51,23.67,23.64, 23.84,23.97,24.26,24.50,24.73,24.70,25.14,25.18,25.39,25.59, 25.70,25.84,26.09,26.23,26.52,26.72,26.94,27.07,27.09,27.58, 27.45,27.58,27.98,28.23,28.26,28.43,28.66,28.73,28.87,29.44, 29.31,29.69,29.61,29.89,30.03,30.30,30.66,30.65,30.75,30.98, 31.24,31.56,31.66,31.71,32.02,31.88,32.53,32.54,32.57,32.75, 32.99,32.81,33.39,33.62,33.67,33.95,34.56,34.43,34.56,34.75, 35.16,35.27,35.15,35.46,35.91,35.62,35.98,36.25,36.55,36.34, 36.87,36.85,36.89,37.23,37.04,37.58,37.85,38.05,38.33,38.53, 38.39,38.71,38.94,39.24,39.01,39.36,39.58,39.69,40.05,40.24, 40.25,40.38,41.17,41.31,41.20,41.60,41.50,41.61,41.67,41.93, 42.23,42.30,42.60,42.64,42.96,42.96,43.23,43.72,43.77,44.26, 44.14,43.94,44.67,44.51,44.74,44.99,45.19,45.61,45.66,45.35, 45.69,46.00,46.33,46.38,46.43,46.99,47.04,47.25,47.24,47.51, 47.61,48.00,48.33,48.30,48.19,48.86,48.61,49.23,48.93,49.38, 49.84,49.66,50.22,50.07,50.15,50.43,50.56,51.09,50.85,51.46, 51.65,51.49,51.86,51.90,52.05,52.45,52.65,52.56,52.89,53.07, 52.94,53.46,53.44,53.88,53.77,54.05,54.64,54.41,54.68,54.97, 1.55,1.80,1.85,2.02,2.21,2.32,2.43,2.56,2.73,2.96, 3.04,3.22,3.34,3.45,3.62,3.76,4.02,4.03,4.26,4.40, 4.63,4.71,4.84,5.06,5.12,5.37,5.40,5.58,5.78,6.02, 6.20,6.21,6.44,6.51,6.71,6.85,6.97,7.13,7.43,7.44, 7.63,7.73,7.88,8.17,8.31,8.27,8.46,8.64,8.90,8.97, 9.08,9.36,9.39,9.69,9.71,9.76,10.04,10.16,10.36,10.34, 10.62,10.75,10.81,11.05,11.27,11.32,11.48,11.64,11.77,12.14, 12.15,12.18,12.40,12.58,12.90,12.80,13.05,13.05,13.26,13.36, 13.46,13.69,13.79,14.16,14.20,14.44,14.55,14.73,14.65,15.08, 15.15,15.21,15.32,15.62,15.48,15.88,15.89,16.07,16.34,16.62, 16.54,17.03,16.91,16.93,17.30,17.26,17.26,17.74,17.81,18.04, 18.05,18.13,18.47,18.45,18.82,18.91,19.03,19.31,19.51,19.16, 19.64,19.90,19.83,19.86,20.10,20.63,20.41,20.59,20.77,20.84, 21.15,21.21,21.28,21.32,21.51,21.76,21.89,22.40,22.39,22.56, 22.57,22.77,22.87,23.05,23.28,23.37,23.51,23.51,23.72,23.93, 24.27,24.07,24.43,24.59,24.69,24.97,25.25,25.11,25.32,25.30, 25.45,25.64,26.01,25.94,26.32,26.43,26.40,26.75,26.75,27.09, 27.32,27.34,27.29,27.24,27.74,27.76,28.17,28.28,28.38,28.38, 29.01,28.74,28.90,29.10,29.18,29.33,29.41,29.77,29.72,29.97, 30.15,29.98,30.63,30.57,30.49,30.96,30.91,31.42,31.52,31.50, 31.56,31.87,31.93,31.86,32.27,32.11,32.64,32.62,32.86,33.02, 33.34,33.51,33.33,33.80,33.83,33.74,34.31,34.34,34.46,34.69, 34.58,34.83,34.81,35.03,35.10,35.32,35.46,35.43,35.74,36.16, 36.48,36.26,36.48,36.69,36.64,36.90,36.97,37.12,37.33,37.39, 37.70,37.72,37.82,38.05,38.31,38.74,38.47,38.50,38.52,39.01, 39.17,39.29,39.47,39.45,39.83,39.85,39.60,40.48,40.27,40.62, 40.80,40.62,40.71,41.20,41.44,41.18,41.50,41.89,41.68,42.11, 41.99,42.24,42.26,42.75,42.82,42.83,42.87,43.33,43.37,43.53, 43.73,43.91,44.09,44.16,44.20,44.57,44.39,44.84,45.02,44.99, 1.26,1.42,1.48,1.63,1.78,1.90,2.05,2.13,2.22,2.34, 2.53,2.66,2.80,2.85,2.99,3.10,3.21,3.46,3.48,3.73, 3.65,3.94,4.01,4.11,4.25,4.38,4.48,4.56,4.68,4.93, 4.97,5.04,5.17,5.36,5.47,5.67,5.63,5.87,6.07,6.23, 6.28,6.31,6.47,6.56,6.78,6.92,6.97,7.07,7.06,7.30, 7.51,7.59,7.69,7.78,7.89,8.06,8.16,8.32,8.36,8.56, 8.76,8.73,8.84,8.88,9.05,9.15,9.36,9.62,9.71,9.74, 9.87,10.13,10.23,10.22,10.41,10.52,10.63,10.72,10.99,11.03, 11.13,11.13,11.26,11.42,11.66,11.86,11.90,11.90,12.03,12.19, 12.40,12.54,12.56,12.88,12.91,12.95,13.10,13.37,13.41,13.51, 13.45,13.53,13.85,13.88,14.14,14.29,14.37,14.44,14.71,14.73, 14.93,14.92,15.14,15.07,15.32,15.28,15.71,15.69,15.68,15.77, 16.23,16.39,16.18,16.39,16.79,16.66,17.07,16.90,17.05,17.27, 17.37,17.43,17.47,17.67,17.84,18.02,18.00,18.32,18.45,18.35, 18.52,18.68,18.73,18.81,19.06,18.98,19.13,19.42,19.47,19.72, 19.81,20.07,20.00,20.40,20.23,20.39,20.57,20.84,20.84,20.83, 21.24,21.15,21.24,21.09,21.46,21.35,21.72,21.93,22.12,22.17, 22.24,22.39,22.39,22.51,22.74,22.77,23.07,23.14,23.26,23.27, 23.67,23.48,23.65,23.78,24.33,24.23,24.08,24.17,24.63,24.43, 24.71,24.72,24.96,25.23,25.20,25.15,25.46,25.66,25.52,26.00, 25.87,26.15,26.20,26.15,26.48,26.31,26.60,26.87,26.98,27.30, 27.04,27.45,27.60,27.72,27.77,27.83,27.74,28.25,28.30,28.08, 28.53,28.48,28.61,28.91,28.84,29.14,29.26,29.65,29.32,29.35, 29.83,29.84,30.12,30.11,29.99,30.26,30.21,30.46,30.73,30.79, 31.07,31.21,31.10,31.42,31.41,31.74,31.64,31.80,31.80,32.01, 32.11,31.91,32.41,32.60,32.81,32.30,32.74,32.84,33.13,33.12, 33.32,33.38,33.59,33.54,33.58,34.05,34.33,34.22,34.33,34.49, 34.55,34.58,34.81,35.01,34.82,35.26,35.19,35.38,35.50,35.69, 35.81,35.88,36.07,36.04,36.45,36.43,36.80,36.38,36.84,36.73, 1.05,1.15,1.22,1.38,1.43,1.55,1.68,1.74,1.91,2.01, 2.07,2.21,2.28,2.30,2.43,2.58,2.65,2.84,2.89,2.94, 3.11,3.02,3.28,3.30,3.55,3.62,3.73,3.83,3.83,4.03, 4.05,4.20,4.34,4.35,4.62,4.60,4.71,4.82,4.94,4.95, 5.10,5.19,5.27,5.42,5.59,5.53,5.71,5.85,5.95,5.95, 6.18,6.26,6.33,6.44,6.55,6.57,6.79,6.86,6.91,6.96, 7.03,7.27,7.28,7.40,7.50,7.48,7.72,7.82,7.93,8.06, 8.13,8.15,8.27,8.42,8.63,8.68,8.81,8.94,8.94,8.93, 9.12,9.29,9.31,9.42,9.47,9.57,9.92,9.78,10.04,9.97, 10.18,10.13,10.35,10.37,10.58,10.62,10.92,10.75,11.04,11.16, 11.05,11.39,11.37,11.51,11.59,11.64,11.79,12.17,11.98,12.00, 12.18,12.28,12.39,12.52,12.51,12.67,12.75,13.00,12.87,12.96, 13.18,13.35,13.39,13.44,13.69,13.59,13.74,14.07,14.07,14.16, 14.09,14.31,14.48,14.52,14.57,14.65,14.78,14.73,15.21,15.15, 15.14,15.26,15.42,15.46,15.42,15.58,15.57,15.71,16.11,16.00, 16.22,16.33,16.24,16.48,16.61,16.73,16.86,16.78,17.13,17.16, 17.25,17.41,17.24,17.75,17.70,17.88,17.72,17.91,17.98,18.26, 18.32,18.49,18.39,18.55,18.48,18.53,18.95,18.89,18.84,19.39, 19.28,19.14,19.29,19.61,19.79,19.62,20.03,19.90,20.09,20.44, 20.19,20.37,20.59,20.72,20.76,20.78,20.98,21.16,21.02,21.03, 21.33,21.18,21.51,21.57,21.52,21.83,21.80,21.86,22.09,22.42, 22.19,22.27,22.25,22.48,22.48,22.94,23.00,22.84,22.96,23.32, 23.09,23.45,23.51,23.54,23.65,23.84,23.93,24.12,24.36,24.18, 24.33,24.38,24.43,24.45,24.79,24.55,25.00,25.11,25.11,25.22, 25.50,25.49,25.41,25.64,25.79,25.82,25.94,25.86,26.21,26.34, 26.35,26.36,26.49,26.84,26.70,26.72,26.73,27.21,27.18,27.27, 27.40,27.76,27.43,27.81,27.65,27.86,27.86,28.18,28.26,28.24, 28.36,28.24,28.58,28.79,28.71,28.86,29.21,29.06,28.94,29.04, 29.48,29.45,29.54,29.78,29.98,29.78,30.01,30.02,30.19,30.19, 0.87,0.97,1.07,1.09,1.14,1.29,1.34,1.41,1.56,1.55, 1.70,1.77,1.85,1.97,2.04,2.05,2.22,2.28,2.32,2.49, 2.60,2.60,2.68,2.83,2.87,2.86,3.05,3.12,3.20,3.30, 3.35,3.49,3.52,3.52,3.68,3.76,3.94,3.94,4.04,4.05, 4.23,4.23,4.39,4.30,4.47,4.50,4.67,4.71,4.86,4.88, 4.99,5.04,5.24,5.28,5.36,5.46,5.51,5.60,5.67,5.77, 5.87,5.99,6.01,6.23,6.14,6.19,6.40,6.37,6.46,6.60, 6.59,6.71,6.91,6.88,7.05,7.10,7.10,7.29,7.46,7.34, 7.48,7.63,7.74,7.66,7.84,7.95,8.01,8.01,8.01,8.34, 8.24,8.35,8.55,8.68,8.71,8.62,8.86,8.77,9.01,9.16, 9.19,9.24,9.23,9.31,9.71,9.51,9.76,9.64,9.92,9.84, 9.96,10.06,10.29,10.16,10.34,10.41,10.27,10.59,10.52,10.82, 10.79,10.93,10.92,10.98,11.18,11.34,11.21,11.44,11.41,11.53, 11.69,11.61,11.80,11.89,11.93,12.20,12.42,12.46,12.36,12.55, 12.32,12.64,12.67,12.54,12.83,12.96,12.90,13.09,13.09,13.17, 13.39,13.34,13.50,13.58,13.55,13.61,13.69,13.92,13.88,14.09, 14.23,14.16,14.31,14.50,14.50,14.61,14.69,14.88,14.83,14.77, 14.89,15.10,14.94,15.23,15.48,15.38,15.64,15.44,15.63,15.70, 15.81,15.79,15.99,15.98,16.26,16.41,16.40,16.43,16.24,16.49, 16.45,16.84,16.73,16.81,16.94,16.89,17.15,17.20,17.52,17.38, 17.56,17.39,17.52,17.61,17.81,17.72,18.12,18.22,18.11,18.07, 18.20,18.37,18.37,18.60,18.52,18.73,18.75,18.79,18.97,19.39, 19.03,19.37,19.39,19.35,19.48,19.61,19.68,19.65,19.93,19.71, 20.06,19.85,20.06,20.23,20.41,20.10,20.62,20.45,20.50,20.55, 20.77,20.71,21.00,21.08,21.18,21.10,21.24,21.45,21.36,21.42, 21.46,21.69,21.85,21.89,21.82,22.25,21.93,22.09,22.23,22.20, 22.35,22.42,22.74,22.72,22.93,22.87,22.98,23.15,23.08,23.27, 23.19,23.26,23.48,23.48,23.56,23.48,23.54,23.94,23.98,23.86, 24.41,24.15,24.12,24.40,24.32,24.58,24.40,24.62,24.73,24.70, 0.71,0.80,0.87,0.94,0.95,1.08,1.08,1.24,1.31,1.31, 1.37,1.42,1.52,1.60,1.64,1.71,1.86,1.86,1.96,1.98, 2.05,2.17,2.19,2.27,2.36,2.31,2.46,2.57,2.65,2.60, 2.66,2.88,2.84,2.91,3.05,3.11,3.18,3.23,3.30,3.31, 3.40,3.51,3.53,3.69,3.66,3.79,3.89,4.01,3.98,3.96, 4.10,4.22,4.21,4.31,4.31,4.42,4.56,4.55,4.61,4.74, 4.68,4.83,5.01,5.00,5.10,5.18,5.20,5.29,5.23,5.43, 5.53,5.58,5.53,5.71,5.71,5.74,5.80,5.98,6.03,6.01, 6.12,6.27,6.22,6.36,6.46,6.41,6.57,6.62,6.73,6.83, 6.83,6.73,6.90,7.09,7.16,7.06,7.19,7.38,7.30,7.35, 7.60,7.55,7.71,7.64,7.74,7.88,7.89,8.00,7.93,8.14, 8.09,8.26,8.27,8.42,8.56,8.63,8.63,8.65,8.85,8.73, 8.87,8.90,8.91,9.21,9.21,9.20,9.35,9.44,9.50,9.28, 9.47,9.45,9.82,9.70,10.01,10.00,9.97,10.01,10.09,10.14, 10.31,10.29,10.41,10.59,10.66,10.60,10.64,10.63,10.74,10.95, 10.86,11.02,11.13,11.26,11.01,11.29,11.44,11.41,11.46,11.59, 11.85,11.85,11.77,11.89,11.84,11.87,11.97,11.92,12.18,12.11, 12.30,12.32,12.51,12.43,12.40,12.61,12.64,12.61,12.90,13.01, 12.84,13.00,13.12,13.24,13.14,13.17,13.49,13.43,13.38,13.51, 13.45,13.72,13.77,13.78,13.87,13.92,13.98,14.02,14.21,14.17, 14.12,14.43,14.32,14.67,14.46,14.90,14.66,14.77,14.85,14.81, 15.05,15.01,14.98,15.30,15.24,15.12,15.42,15.56,15.47,15.54, 15.48,15.84,15.70,15.99,15.82,16.02,16.05,15.98,16.07,16.28, 16.48,16.38,16.41,16.45,16.66,16.79,16.69,16.86,16.82,16.92, 17.06,17.07,17.19,17.12,17.41,17.52,17.56,17.57,17.63,17.56, 17.82,17.90,17.84,17.73,18.17,18.06,18.14,18.33,18.17,18.26, 18.55,18.47,18.61,18.73,18.66,18.80,18.80,18.64,18.82,18.96, 18.99,18.99,19.25,19.13,19.34,19.31,19.45,19.46,19.74,19.60, 19.67,19.86,19.91,19.93,20.20,20.21,19.99,20.20,20.36,20.35, 0.56,0.65,0.71,0.73,0.81,0.86,0.95,0.98,1.02,1.10, 1.20,1.25,1.28,1.32,1.35,1.37,1.48,1.49,1.59,1.69, 1.70,1.72,1.83,1.84,1.92,1.93,1.98,2.07,2.19,2.21, 2.27,2.28,2.38,2.43,2.45,2.53,2.73,2.65,2.72,2.81, 2.81,2.99,2.86,3.05,3.09,3.12,3.13,3.20,3.21,3.31, 3.40,3.42,3.54,3.49,3.59,3.68,3.68,3.74,3.77,3.91, 3.88,3.92,4.06,4.11,4.16,4.22,4.28,4.39,4.46,4.49, 4.39,4.45,4.67,4.53,4.70,4.73,4.86,4.84,4.91,5.06, 5.08,5.14,5.17,5.17,5.34,5.36,5.34,5.43,5.55,5.53, 5.58,5.59,5.68,5.75,5.75,5.86,6.06,5.94,6.03,6.22, 5.97,6.18,6.25,6.43,6.42,6.60,6.48,6.50,6.55,6.60, 6.56,6.74,6.80,6.87,7.01,7.14,6.91,7.13,7.17,7.32, 7.01,7.31,7.32,7.46,7.38,7.66,7.66,7.63,7.76,7.76, 7.90,7.75,7.95,7.91,7.96,7.99,8.21,8.05,8.26,8.52, 8.37,8.33,8.38,8.68,8.57,8.56,8.67,8.84,8.88,8.91, 9.01,8.92,9.00,9.14,8.93,9.30,9.40,9.33,9.43,9.39, 9.60,9.57,9.58,9.64,9.71,9.80,9.79,9.87,9.93,9.89, 10.00,10.26,10.19,10.37,10.34,10.27,10.46,10.54,10.41,10.57, 10.55,10.65,10.59,10.76,10.84,10.79,11.04,11.03,11.09,11.14, 11.24,11.27,11.37,11.52,11.39,11.43,11.53,11.56,11.84,11.48, 11.69,11.77,11.88,11.80,11.84,11.92,12.04,12.18,12.04,12.22, 12.29,12.38,12.38,12.41,12.67,12.55,12.46,12.77,12.67,12.84, 13.12,12.78,13.00,13.09,13.07,13.03,13.21,13.18,13.41,13.30, 13.46,13.29,13.45,13.40,13.74,13.62,13.50,13.80,13.63,13.79, 13.86,14.09,14.02,14.22,14.20,14.22,14.11,14.34,14.43,14.25, 14.54,14.55,14.62,14.48,14.66,14.87,14.87,14.98,14.98,14.88, 15.08,15.00,15.11,15.26,15.39,15.46,15.53,15.43,15.39,15.69, 15.70,15.93,15.69,15.69,16.10,15.89,15.86,16.08,16.05,16.09, 16.18,16.26,16.31,16.29,16.35,16.48,16.57,16.62,16.71,16.65, 0.49,0.51,0.58,0.65,0.69,0.71,0.73,0.83,0.88,0.92, 0.93,0.97,1.03,1.11,1.13,1.21,1.18,1.25,1.28,1.33, 1.37,1.42,1.46,1.55,1.52,1.61,1.71,1.78,1.82,1.83, 1.85,1.85,1.90,2.03,2.08,2.12,2.12,2.17,2.27,2.33, 2.26,2.32,2.37,2.45,2.53,2.54,2.49,2.63,2.65,2.60, 2.69,2.83,2.81,2.85,2.98,3.00,3.09,3.13,3.08,3.14, 3.09,3.26,3.26,3.31,3.44,3.54,3.54,3.66,3.61,3.68, 3.70,3.74,3.68,3.70,3.73,3.93,3.93,3.97,3.96,4.06, 4.17,4.11,4.25,4.35,4.39,4.33,4.43,4.41,4.48,4.60, 4.53,4.67,4.71,4.75,4.83,4.89,4.84,4.88,4.94,4.98, 4.99,5.11,5.17,5.13,5.25,5.32,5.22,5.39,5.37,5.48, 5.60,5.51,5.65,5.67,5.76,5.77,5.84,5.79,5.83,5.82, 5.97,6.05,6.09,6.06,6.18,6.17,6.21,6.21,6.31,6.18, 6.46,6.50,6.64,6.61,6.57,6.64,6.72,6.77,6.71,6.82, 6.85,6.96,6.81,7.15,6.99,7.03,7.16,7.23,7.29,7.38, 7.36,7.28,7.38,7.11,7.51,7.63,7.66,7.55,7.68,7.73, 7.76,7.77,7.94,8.07,7.95,8.13,8.14,7.98,8.25,8.35, 8.20,8.24,8.50,8.20,8.37,8.57,8.41,8.70,8.48,8.63, 8.68,8.78,8.71,8.96,8.86,8.97,8.96,9.06,9.03,9.06, 9.08,9.28,9.17,9.24,9.36,9.47,9.44,9.43,9.58,9.57, 9.55,9.77,9.64,9.83,9.67,9.99,9.80,9.97,9.95,10.10, 10.22,10.19,10.21,10.17,10.21,10.32,10.44,10.52,10.42,10.46, 10.50,10.61,10.66,10.49,10.84,10.65,10.95,10.85,10.84,11.02, 11.01,10.97,11.24,11.26,11.15,11.43,11.33,11.38,11.31,11.30, 11.61,11.61,11.58,11.53,11.70,11.78,11.66,11.72,11.79,11.98, 11.86,12.01,12.04,11.99,11.99,12.01,12.11,12.24,12.26,12.38, 12.18,12.27,12.35,12.36,12.40,12.56,12.64,12.54,12.81,12.67, 12.76,12.91,12.88,12.74,12.95,13.00,12.99,13.06,13.25,13.08, 13.06,13.41,13.48,13.51,13.69,13.61,13.57,13.51,13.52,13.55, 0.39,0.42,0.45,0.53,0.53,0.58,0.61,0.68,0.66,0.75, 0.77,0.81,0.87,0.87,0.88,0.94,0.96,1.04,1.07,1.11, 1.14,1.21,1.21,1.26,1.31,1.34,1.39,1.39,1.46,1.56, 1.57,1.61,1.62,1.68,1.65,1.75,1.73,1.83,1.86,1.89, 1.88,1.88,1.91,2.04,2.08,2.06,2.14,2.15,2.16,2.23, 2.22,2.32,2.38,2.41,2.37,2.41,2.56,2.53,2.56,2.68, 2.68,2.60,2.76,2.78,2.74,2.92,2.77,2.97,2.89,2.95, 3.04,3.04,3.15,3.20,3.13,3.12,3.26,3.32,3.20,3.42, 3.42,3.38,3.48,3.50,3.50,3.59,3.52,3.73,3.74,3.70, 3.80,3.83,3.85,3.90,3.89,3.95,4.01,4.14,4.10,3.96, 4.19,4.09,4.26,4.21,4.35,4.44,4.31,4.41,4.46,4.54, 4.53,4.53,4.66,4.69,4.67,4.71,4.73,4.78,4.83,4.87, 4.78,4.92,4.87,5.06,5.01,5.13,5.16,5.24,5.10,5.28, 5.43,5.26,5.31,5.41,5.49,5.53,5.67,5.42,5.71,5.64, 5.55,5.65,5.75,5.80,5.83,5.87,5.82,5.92,5.88,6.04, 6.10,6.01,6.02,6.10,6.07,6.17,6.17,6.32,6.32,6.35, 6.38,6.45,6.61,6.41,6.46,6.61,6.55,6.61,6.69,6.69, 6.71,6.73,6.73,6.84,6.88,6.88,6.97,7.12,6.93,7.12, 7.08,7.01,7.18,7.38,7.37,7.20,7.29,7.22,7.35,7.43, 7.44,7.56,7.53,7.72,7.61,7.64,7.63,7.75,7.68,7.96, 7.82,7.81,8.04,8.12,8.01,8.10,8.04,8.10,8.18,8.29, 8.36,8.22,8.41,8.41,8.41,8.36,8.37,8.51,8.61,8.71, 8.65,8.56,8.71,8.60,8.74,9.02,9.08,8.79,8.85,8.82, 8.94,8.95,8.98,9.07,9.04,9.16,9.31,9.10,9.23,9.41, 9.36,9.60,9.35,9.49,9.74,9.49,9.60,9.70,9.81,9.77, 9.67,9.77,10.03,9.87,9.83,9.98,9.91,10.08,9.95,10.15, 10.06,10.15,10.25,10.21,10.26,10.29,10.28,10.42,10.54,10.19, 10.51,10.66,10.51,10.66,10.60,10.80,10.78,10.94,10.67,10.92, 10.96,11.03,11.02,11.02,11.03,11.24,11.11,11.22,11.38,11.20, 0.32,0.34,0.39,0.44,0.43,0.45,0.50,0.54,0.60,0.60, 0.62,0.68,0.73,0.71,0.80,0.76,0.85,0.85,0.89,0.91, 0.93,0.97,1.00,1.04,1.04,1.08,1.12,1.15,1.23,1.22, 1.28,1.28,1.29,1.33,1.34,1.43,1.49,1.49,1.49,1.53, 1.55,1.63,1.61,1.65,1.66,1.72,1.71,1.74,1.78,1.76, 1.90,1.79,1.94,1.93,1.92,2.03,2.01,1.98,2.08,2.13, 2.14,2.31,2.25,2.27,2.28,2.27,2.29,2.45,2.34,2.46, 2.38,2.57,2.53,2.51,2.58,2.59,2.60,2.71,2.68,2.78, 2.83,2.79,2.92,2.91,2.86,2.90,2.93,2.95,3.07,3.02, 3.07,3.07,3.14,3.18,3.13,3.20,3.32,3.35,3.32,3.42, 3.35,3.45,3.45,3.47,3.52,3.54,3.54,3.69,3.62,3.74, 3.73,3.82,3.70,3.87,3.87,3.78,3.89,3.90,4.00,3.94, 4.01,3.95,4.10,4.21,4.04,4.25,4.21,4.20,4.27,4.33, 4.29,4.33,4.35,4.50,4.39,4.43,4.43,4.51,4.72,4.50, 4.55,4.65,4.80,4.68,4.65,4.80,4.84,4.82,4.86,4.81, 5.01,5.16,4.84,5.08,4.96,5.11,5.15,5.04,5.24,5.25, 5.24,5.21,5.39,5.31,5.48,5.48,5.42,5.45,5.53,5.45, 5.44,5.56,5.64,5.58,5.68,5.77,5.67,5.74,5.75,5.88, 5.75,5.89,6.05,5.90,5.81,6.12,5.95,6.09,6.14,6.04, 6.26,6.16,6.21,6.30,6.20,6.32,6.31,6.45,6.40,6.33, 6.47,6.43,6.45,6.59,6.67,6.62,6.66,6.63,6.63,6.75, 6.85,6.89,6.64,6.88,6.81,6.96,6.92,6.94,6.95,7.00, 7.03,7.11,7.09,7.09,7.13,7.35,7.08,7.43,7.40,7.38, 7.34,7.48,7.47,7.43,7.60,7.51,7.61,7.58,7.79,7.83, 7.83,7.69,7.66,7.96,7.91,7.90,8.00,7.89,8.05,8.07, 8.05,8.03,8.14,8.22,8.15,8.28,8.16,8.14,8.23,8.33, 8.38,8.53,8.34,8.41,8.47,8.57,8.45,8.47,8.51,8.76, 8.66,8.68,8.73,8.79,8.80,8.76,8.75,8.93,8.74,8.95, 8.84,9.02,9.01,8.98,9.28,9.14,9.01,9.10,9.09,9.08, 0.24,0.29,0.35,0.35,0.36,0.40,0.41,0.46,0.46,0.49, 0.54,0.55,0.56,0.57,0.65,0.67,0.67,0.71,0.74,0.71, 0.75,0.82,0.83,0.84,0.90,0.92,0.90,0.93,0.96,0.98, 1.01,1.05,1.13,1.13,1.11,1.16,1.16,1.15,1.15,1.21, 1.29,1.27,1.31,1.24,1.39,1.37,1.42,1.47,1.47,1.45, 1.49,1.56,1.57,1.59,1.68,1.70,1.62,1.70,1.74,1.75, 1.74,1.75,1.90,1.92,1.91,1.96,1.89,1.96,1.94,1.96, 2.03,2.00,2.11,2.12,2.12,2.18,2.08,2.24,2.19,2.17, 2.26,2.28,2.31,2.37,2.40,2.41,2.46,2.49,2.39,2.46, 2.55,2.52,2.63,2.58,2.59,2.58,2.61,2.73,2.64,2.75, 2.75,2.90,2.81,2.83,2.84,2.88,2.93,3.05,3.05,3.10, 3.00,3.15,3.08,3.08,3.16,3.21,3.08,3.23,3.19,3.31, 3.31,3.35,3.33,3.41,3.44,3.50,3.50,3.42,3.48,3.54, 3.61,3.64,3.68,3.50,3.75,3.61,3.63,3.71,3.70,3.83, 3.77,3.88,3.86,3.95,3.85,3.91,3.89,4.01,4.00,3.93, 4.04,3.96,4.06,4.20,4.24,4.19,4.23,4.25,4.21,4.33, 4.30,4.25,4.34,4.44,4.34,4.29,4.43,4.41,4.58,4.60, 4.56,4.57,4.71,4.60,4.65,4.62,4.61,4.68,4.89,4.72, 4.84,4.80,4.86,4.82,4.88,4.95,4.97,5.00,5.10,5.10, 5.08,5.08,5.03,5.25,5.17,5.27,5.28,5.19,5.12,5.28, 5.38,5.32,5.24,5.36,5.30,5.30,5.44,5.51,5.48,5.50, 5.60,5.55,5.65,5.45,5.67,5.59,5.67,5.68,5.77,5.92, 5.95,5.59,5.79,5.73,5.87,5.94,5.96,5.94,6.09,6.08, 6.03,6.11,6.05,6.21,6.10,6.21,6.13,6.38,6.31,6.39, 6.37,6.28,6.33,6.37,6.45,6.36,6.49,6.57,6.62,6.44, 6.60,6.62,6.59,6.55,6.60,6.71,6.80,6.74,6.84,6.79, 6.93,6.81,6.90,6.77,6.82,6.80,6.91,6.97,7.07,7.06, 7.13,7.02,7.18,7.22,7.03,7.20,7.19,7.24,7.17,7.26, 7.52,7.40,7.47,7.35,7.47,7.52,7.49,7.68,7.59,7.50, 0.23,0.25,0.24,0.28,0.28,0.33,0.32,0.39,0.39,0.40, 0.40,0.47,0.49,0.52,0.47,0.54,0.54,0.56,0.58,0.60, 0.63,0.63,0.63,0.66,0.73,0.70,0.73,0.77,0.78,0.81, 0.82,0.83,0.81,0.90,0.89,0.99,0.98,1.00,0.99,0.99, 1.07,1.06,1.08,1.13,1.17,1.12,1.19,1.18,1.21,1.22, 1.28,1.29,1.27,1.30,1.31,1.34,1.43,1.44,1.43,1.47, 1.46,1.47,1.47,1.50,1.57,1.59,1.54,1.61,1.66,1.66, 1.67,1.70,1.74,1.77,1.72,1.73,1.78,1.74,1.83,1.85, 1.83,1.90,1.94,1.95,1.99,2.00,1.99,2.04,2.05,2.06, 2.15,2.01,2.03,2.21,2.18,2.24,2.24,2.26,2.27,2.16, 2.31,2.29,2.30,2.27,2.29,2.44,2.44,2.36,2.52,2.50, 2.49,2.53,2.47,2.55,2.52,2.61,2.66,2.61,2.64,2.67, 2.70,2.68,2.72,2.68,2.78,2.78,2.87,2.81,2.92,2.84, 2.93,2.93,2.96,3.00,2.98,3.00,3.11,3.06,3.12,3.04, 3.15,3.08,3.09,3.21,3.21,3.12,3.18,3.28,3.21,3.27, 3.26,3.27,3.39,3.43,3.41,3.45,3.37,3.56,3.48,3.54, 3.50,3.56,3.52,3.53,3.64,3.59,3.59,3.59,3.71,3.70, 3.73,3.74,3.84,3.76,3.90,3.79,3.85,3.94,3.90,3.99, 4.03,3.86,3.98,4.01,4.00,4.17,4.20,4.11,4.02,4.13, 4.08,4.05,4.26,4.25,4.26,4.31,4.34,4.33,4.28,4.34, 4.32,4.42,4.40,4.41,4.42,4.51,4.47,4.53,4.41,4.57, 4.51,4.52,4.63,4.70,4.53,4.62,4.65,4.62,4.77,4.86, 4.71,4.71,4.73,4.81,4.88,4.79,4.76,4.86,4.94,4.89, 5.00,5.02,5.03,5.02,4.85,5.11,5.09,5.20,5.20,5.13, 5.21,5.14,5.20,5.32,5.24,5.21,5.34,5.40,5.32,5.24, 5.40,5.38,5.44,5.60,5.45,5.52,5.49,5.58,5.57,5.49, 5.52,5.66,5.62,5.66,5.60,5.79,5.81,5.76,5.67,5.79, 5.86,5.93,5.98,5.90,5.86,5.79,5.87,6.07,5.95,6.03, 5.90,6.14,6.03,6.09,6.03,6.22,6.17,6.06,6.16,6.15, 0.19,0.19,0.20,0.22,0.28,0.29,0.30,0.28,0.31,0.34, 0.35,0.36,0.36,0.41,0.40,0.47,0.43,0.44,0.46,0.50, 0.51,0.55,0.51,0.56,0.56,0.57,0.64,0.65,0.69,0.63, 0.67,0.69,0.74,0.74,0.79,0.77,0.83,0.84,0.80,0.79, 0.85,0.85,0.86,0.91,0.89,0.97,0.99,0.96,0.99,1.03, 0.99,1.04,1.04,1.10,1.10,1.07,1.11,1.10,1.18,1.21, 1.21,1.20,1.26,1.24,1.26,1.29,1.31,1.29,1.33,1.29, 1.29,1.32,1.37,1.41,1.38,1.42,1.48,1.49,1.50,1.56, 1.51,1.58,1.54,1.52,1.53,1.65,1.72,1.64,1.68,1.71, 1.67,1.67,1.67,1.74,1.72,1.74,1.77,1.77,1.80,1.78, 1.83,1.89,1.90,1.98,1.94,1.98,1.92,1.92,1.95,2.05, 2.01,2.04,2.09,2.10,2.07,2.15,2.21,2.19,2.23,2.18, 2.20,2.26,2.25,2.32,2.11,2.33,2.39,2.32,2.35,2.44, 2.38,2.49,2.36,2.42,2.42,2.46,2.53,2.48,2.56,2.50, 2.61,2.62,2.75,2.62,2.63,2.61,2.65,2.66,2.70,2.69, 2.69,2.75,2.82,2.76,2.78,2.80,2.82,2.88,2.85,2.91, 2.94,2.84,2.93,3.00,3.03,2.89,2.93,3.01,3.03,3.01, 3.08,3.07,3.15,3.04,3.05,3.06,3.17,3.21,3.21,3.23, 3.21,3.34,3.34,3.31,3.27,3.34,3.41,3.25,3.31,3.45, 3.36,3.40,3.41,3.51,3.51,3.53,3.41,3.43,3.58,3.59, 3.68,3.60,3.50,3.66,3.69,3.69,3.67,3.61,3.71,3.77, 3.72,3.75,3.76,3.86,3.81,3.82,3.80,3.97,3.84,3.88, 3.80,3.92,3.92,4.04,3.89,3.98,3.98,4.01,4.01,4.09, 4.07,4.15,4.15,4.21,4.22,4.19,4.16,4.11,4.25,4.30, 4.26,4.30,4.29,4.22,4.42,4.42,4.44,4.26,4.39,4.39, 4.49,4.42,4.39,4.46,4.40,4.51,4.55,4.49,4.62,4.58, 4.65,4.49,4.62,4.62,4.61,4.51,4.67,4.70,4.65,4.76, 4.78,4.73,4.77,4.69,4.83,4.91,4.79,4.90,4.97,5.04, 4.91,4.90,5.09,4.99,5.11,5.05,4.96,5.15,5.00,5.02, 3.08,3.34,3.66,3.92,4.25,4.45,4.88,5.05,5.38,5.69, 5.98,6.23,6.48,6.88,7.13,7.43,7.64,8.01,8.26,8.53, 8.91,9.14,9.39,9.80,9.92,10.39,10.56,10.97,11.15,11.43, 11.85,12.05,12.36,12.64,12.78,13.20,13.46,13.78,14.02,14.33, 14.77,14.96,15.23,15.55,15.88,16.18,16.52,16.91,17.14,17.46, 17.72,17.82,18.16,18.52,18.61,19.17,19.23,19.48,19.82,20.13, 20.51,20.97,21.07,21.50,21.75,22.06,22.28,22.45,22.95,23.11, 23.40,23.77,23.93,24.34,24.59,24.96,25.22,25.44,25.73,25.99, 26.25,26.66,26.98,27.05,27.32,27.88,28.16,28.33,28.71,29.12, 29.37,29.71,29.96,30.16,30.14,30.56,30.87,31.28,31.40,31.84, 32.27,32.62,32.88,33.00,33.43,33.58,33.99,34.24,34.50,34.98, 35.18,35.47,35.51,36.01,36.13,36.44,36.91,37.35,37.21,37.58, 37.78,38.28,38.48,39.00,39.08,39.23,39.87,40.32,40.23,40.58, 40.76,41.25,41.72,41.54,42.06,42.37,42.68,43.06,43.25,43.54, 43.70,43.90,44.41,44.75,44.64,45.14,45.35,45.85,46.07,46.21, 46.91,46.98,47.41,47.52,47.58,47.95,48.43,48.88,49.37,49.41, 49.65,49.62,50.37,50.40,50.71,50.99,51.12,51.81,52.05,52.04, 52.29,52.79,52.86,53.51,53.67,53.66,54.27,54.73,54.83,55.01, 55.45,55.71,55.93,56.70,56.62,56.84,57.36,57.71,58.00,58.04, 58.49,58.54,59.08,59.08,59.37,59.76,60.10,60.51,60.81,60.85, 61.36,61.50,62.04,61.95,62.47,62.59,63.12,63.63,63.55,63.70, 64.51,64.64,64.84,65.14,65.00,65.56,66.18,66.42,66.21,66.83, 66.76,67.10,67.44,67.81,68.22,68.39,68.92,69.06,69.30,69.79, 70.15,70.19,70.25,70.73,71.19,71.19,71.59,71.95,72.17,72.87, 73.08,72.90,73.26,73.67,74.44,74.37,74.83,74.82,75.13,75.69, 75.81,76.16,76.41,76.76,77.23,77.06,77.96,77.68,77.89,78.54, 78.70,79.15,79.33,79.94,79.91,80.40,80.50,80.85,81.00,81.29, 81.58,82.04,82.34,82.43,82.77,83.08,83.69,83.50,84.00,84.07, 84.47,84.45,84.66,85.34,85.65,85.84,86.40,86.71,86.99,87.08, 2.54,2.76,3.06,3.21,3.56,3.66,3.96,4.15,4.48,4.65, 5.02,5.13,5.44,5.64,5.90,6.14,6.45,6.53,6.83,7.13, 7.44,7.71,7.81,8.04,8.30,8.65,8.79,9.07,9.23,9.59, 9.81,9.98,10.16,10.66,10.82,10.82,11.22,11.49,11.68,11.97, 12.19,12.33,12.73,12.83,13.16,13.41,13.71,13.87,14.03,14.27, 14.44,14.82,15.23,15.23,15.68,15.84,16.00,16.30,16.57,16.95, 17.03,17.27,17.43,17.68,18.16,18.21,18.29,18.78,18.87,19.14, 19.53,19.70,19.91,20.12,20.52,20.49,20.98,21.17,21.34,21.61, 21.87,22.21,22.52,22.55,22.99,22.90,23.37,23.57,24.04,24.33, 24.16,24.48,24.78,24.86,25.01,25.45,25.67,25.93,26.24,26.46, 26.73,26.88,27.07,27.17,27.57,27.87,28.18,28.60,28.53,29.00, 29.12,29.36,29.35,29.86,29.99,30.48,30.65,30.68,30.96,31.41, 31.46,31.62,32.07,32.23,32.42,32.63,32.96,33.11,33.35,33.67, 33.88,34.18,34.32,34.66,35.08,35.37,35.40,35.58,35.89,36.06, 36.30,36.50,36.76,37.11,37.31,37.53,37.95,37.93,38.28,38.42, 38.98,38.89,39.21,39.43,39.75,39.71,40.29,40.58,40.46,41.03, 41.19,41.25,41.41,42.01,42.49,42.23,42.53,42.74,43.24,43.30, 43.54,43.98,43.94,44.20,44.52,44.84,45.16,45.44,45.30,45.86, 46.07,46.54,46.52,46.63,46.67,47.31,47.48,47.54,48.12,48.29, 48.28,48.59,48.81,48.73,49.22,49.87,50.07,50.15,50.05,50.65, 51.03,51.11,51.39,51.81,51.65,51.94,52.21,52.78,52.84,52.89, 53.17,53.89,53.52,53.89,54.30,54.83,54.82,55.02,55.10,55.34, 55.73,55.69,56.17,56.24,56.37,56.80,57.14,57.43,57.72,57.64, 58.04,58.31,58.57,58.73,59.16,59.37,59.59,59.95,59.87,60.34, 60.34,60.91,60.88,61.19,61.14,61.70,62.38,62.26,62.42,62.86, 62.58,63.23,63.42,63.89,63.62,63.93,64.22,64.69,64.61,64.96, 65.28,65.91,65.63,66.23,66.33,66.68,66.58,67.00,67.63,67.54, 68.01,67.86,68.14,68.63,68.58,68.88,68.60,69.36,69.81,69.76, 70.48,70.57,70.65,70.80,71.15,71.50,71.64,71.75,71.98,72.29, 2.05,2.38,2.45,2.67,2.89,3.04,3.27,3.52,3.69,3.98, 4.09,4.38,4.51,4.72,4.89,5.11,5.24,5.44,5.70,5.88, 6.16,6.25,6.52,6.75,6.90,7.04,7.22,7.54,7.76,8.03, 8.10,8.37,8.58,8.79,9.00,9.12,9.34,9.57,9.82,9.87, 10.21,10.31,10.55,10.77,10.98,11.05,11.30,11.51,11.53,11.90, 12.13,12.32,12.44,12.61,12.95,13.00,13.32,13.56,13.62,13.89, 14.13,14.45,14.62,14.65,14.91,15.03,15.28,15.52,15.74,16.14, 16.13,16.36,16.72,16.53,16.76,17.06,17.17,17.59,17.79,17.95, 18.04,18.36,18.57,18.69,19.06,19.07,19.23,19.34,19.70,19.89, 20.18,20.29,20.52,20.75,21.08,21.40,21.29,21.62,21.82,21.84, 22.11,22.41,22.60,22.62,22.99,23.17,23.39,23.40,23.70,23.80, 24.32,24.28,24.73,24.39,24.94,25.23,25.33,25.65,25.82,25.91, 26.25,26.31,26.37,26.72,26.96,27.19,27.23,27.53,27.78,27.73, 28.16,28.17,28.39,28.63,29.05,29.00,29.58,29.61,29.87,29.85, 30.25,30.52,30.54,30.62,30.62,31.26,31.28,31.49,31.82,31.89, 32.00,32.48,32.56,32.88,33.16,33.12,33.57,33.63,33.64,34.31, 34.18,34.48,34.27,34.92,34.91,34.96,35.24,35.62,35.85,35.96, 36.17,36.45,36.72,36.87,36.87,36.91,37.38,37.65,37.93,37.79, 38.29,38.41,38.67,38.73,39.19,39.26,39.22,39.33,39.81,39.77, 40.14,40.53,40.64,40.94,40.88,41.09,41.28,41.66,42.00,41.98, 42.17,42.53,42.69,42.59,43.24,43.41,43.34,43.44,43.74,44.07, 44.23,44.34,44.49,44.58,44.98,45.35,45.55,45.71,45.62,46.02, 46.29,46.71,46.41,46.71,47.05,46.90,47.71,47.83,47.80,48.08, 48.29,48.73,48.74,48.72,48.91,49.17,49.46,49.42,50.38,50.21, 50.10,50.67,50.75,50.90,50.87,51.31,51.34,51.43,51.65,52.00, 52.58,52.49,52.76,52.66,53.01,53.27,53.28,53.19,53.81,53.67, 54.35,54.47,54.73,54.75,54.93,54.91,55.75,55.69,55.89,56.19, 56.14,56.62,56.52,56.83,57.32,57.19,57.30,57.57,57.72,57.88, 58.17,58.44,58.63,58.67,58.62,59.23,59.44,59.78,60.00,60.24, 1.72,1.89,2.06,2.25,2.42,2.62,2.72,2.98,3.11,3.19, 3.41,3.58,3.70,3.97,4.10,4.24,4.31,4.57,4.65,4.90, 5.12,5.28,5.39,5.61,5.74,5.94,6.04,6.27,6.34,6.51, 6.64,6.95,7.05,7.25,7.36,7.53,7.65,7.86,8.04,8.18, 8.34,8.44,8.61,8.90,9.02,9.23,9.43,9.65,9.72,9.81, 10.06,10.20,10.35,10.58,10.74,10.96,11.06,11.30,11.35,11.48, 11.86,11.86,12.19,12.24,12.44,12.48,12.85,12.96,13.14,13.17, 13.30,13.65,13.62,13.97,13.95,14.32,14.31,14.68,14.72,14.80, 15.02,15.25,15.48,15.58,15.79,15.87,16.15,16.29,16.32,16.50, 16.82,16.95,17.06,17.15,17.39,17.48,17.66,17.98,17.98,18.17, 18.54,18.72,18.72,18.74,19.19,19.21,19.39,19.64,19.66,19.72, 19.94,20.24,20.34,20.43,20.76,20.88,20.95,21.07,21.34,21.53, 21.82,22.02,22.00,22.22,22.38,22.49,22.62,22.69,23.09,23.13, 23.19,23.60,23.66,23.91,24.00,24.43,24.37,24.35,24.76,24.88, 25.02,25.02,25.31,25.73,25.82,25.90,25.96,26.25,26.04,26.41, 26.71,26.96,27.13,27.22,27.00,27.68,27.83,27.88,27.97,28.09, 28.33,28.50,28.65,28.71,28.88,29.05,29.26,29.50,29.83,29.90, 30.15,30.15,30.42,30.68,30.36,31.05,31.03,31.24,31.42,31.41, 31.81,31.77,31.77,31.95,32.30,32.64,32.61,32.87,32.98,33.25, 33.48,33.60,33.52,33.94,33.97,34.19,34.30,34.52,34.61,34.74, 34.92,35.19,35.42,35.52,35.67,35.97,36.02,35.96,36.52,36.58, 36.95,36.83,37.18,37.32,37.35,37.45,37.63,37.74,37.92,38.32, 38.40,38.72,38.72,38.99,39.15,39.43,39.11,39.51,39.73,39.79, 39.76,39.98,40.33,40.52,40.61,40.72,40.83,41.11,41.18,41.47, 41.58,41.75,41.93,42.15,42.15,42.74,42.87,42.90,43.06,42.96, 43.51,43.70,43.47,43.72,43.99,44.12,44.19,44.59,44.67,44.66, 44.78,45.02,45.44,45.14,45.57,45.89,46.05,46.09,46.11,46.37, 46.84,46.83,46.69,47.01,47.35,47.27,47.60,48.12,47.89,48.07, 48.41,48.45,48.65,48.91,48.73,49.12,48.88,49.45,50.09,50.03, 1.40,1.59,1.72,1.88,2.00,2.15,2.26,2.40,2.60,2.68, 2.84,3.01,3.08,3.24,3.31,3.54,3.68,3.77,3.98,4.14, 4.27,4.29,4.53,4.58,4.71,4.98,4.98,5.24,5.24,5.41, 5.58,5.62,5.84,6.11,6.15,6.26,6.31,6.48,6.62,6.85, 7.00,7.06,7.14,7.36,7.45,7.61,7.88,7.88,8.03,8.25, 8.28,8.59,8.70,8.77,8.95,8.97,9.27,9.43,9.45,9.64, 9.79,9.87,9.98,10.11,10.27,10.35,10.55,10.59,10.97,11.03, 11.17,11.19,11.45,11.58,11.72,11.76,11.83,12.09,12.15,12.40, 12.53,12.68,12.68,12.86,13.02,13.18,13.32,13.46,13.59,13.81, 13.94,13.87,14.19,14.27,14.60,14.55,14.66,14.86,14.95,15.19, 15.26,15.30,15.65,15.79,15.86,15.88,15.92,16.27,16.22,16.43, 16.56,16.75,16.71,17.23,17.13,17.32,17.40,17.64,17.69,18.00, 17.95,18.18,18.25,18.55,18.49,18.79,18.89,18.97,19.21,19.46, 19.55,19.63,19.57,19.75,19.77,19.91,20.32,20.40,20.55,20.56, 20.87,20.57,21.06,21.04,21.07,21.38,21.21,21.91,21.93,21.92, 22.34,22.34,22.63,22.57,22.72,22.92,22.88,23.09,23.27,23.30, 23.64,23.63,23.91,23.84,24.02,24.18,24.36,24.82,24.55,24.86, 25.14,25.25,25.26,25.12,25.52,25.62,25.51,25.82,25.96,26.23, 26.25,26.49,26.55,26.82,26.86,26.95,27.16,27.10,27.34,27.39, 27.56,27.96,27.77,28.12,28.13,28.40,28.34,28.51,28.97,29.04, 29.02,29.11,29.56,29.45,29.54,29.77,29.89,30.02,30.23,30.25, 30.35,30.68,30.97,30.87,31.01,31.03,31.25,31.47,31.43,31.93, 31.98,31.66,32.08,31.96,32.20,32.62,32.50,32.64,33.02,33.00, 33.49,33.43,33.51,33.43,33.57,34.02,34.03,34.17,34.30,34.92, 34.46,34.44,34.90,34.98,34.95,35.34,35.30,35.47,35.83,36.00, 35.90,36.27,36.20,36.04,36.49,36.65,36.61,36.94,37.22,37.06, 37.41,37.35,37.77,37.54,37.87,37.82,38.22,38.12,38.41,38.36, 38.83,38.98,38.81,38.98,39.21,39.23,39.60,39.44,39.75,40.20, 40.15,39.78,40.38,40.75,40.92,40.92,40.59,41.14,41.24,41.63, 1.17,1.31,1.47,1.52,1.69,1.80,1.92,2.04,2.12,2.16, 2.38,2.43,2.55,2.73,2.76,2.99,3.04,3.19,3.30,3.39, 3.48,3.66,3.70,3.89,3.90,4.13,4.19,4.30,4.48,4.59, 4.66,4.83,4.88,4.98,5.04,5.23,5.28,5.39,5.52,5.69, 5.86,5.84,5.95,6.13,6.25,6.30,6.34,6.56,6.57,6.82, 6.98,7.11,7.21,7.28,7.44,7.46,7.65,7.69,7.82,8.03, 8.06,8.17,8.31,8.46,8.53,8.61,8.83,8.69,9.07,9.19, 9.22,9.27,9.53,9.64,9.71,9.85,9.98,9.98,10.10,10.18, 10.28,10.35,10.56,10.61,10.76,10.93,11.07,11.09,11.24,11.43, 11.40,11.62,11.76,11.71,11.98,12.06,12.20,12.39,12.33,12.64, 12.58,12.78,12.89,12.84,12.96,13.34,13.46,13.50,13.64,13.79, 13.76,13.87,14.16,14.49,14.10,14.55,14.68,14.64,14.65,14.96, 14.79,15.10,15.24,15.38,15.27,15.65,15.56,15.91,15.98,15.97, 16.02,16.29,16.22,16.47,16.59,16.77,16.91,16.87,17.01,16.98, 17.32,17.64,17.56,17.63,17.60,17.82,18.00,18.09,18.20,18.32, 18.38,18.57,18.64,18.65,18.88,18.87,19.01,19.22,19.13,19.43, 19.45,19.62,19.90,19.98,19.86,20.18,20.22,20.09,20.36,20.77, 20.70,20.89,20.91,20.98,21.15,21.06,21.11,21.50,21.63,21.66, 21.76,22.21,22.08,22.29,22.32,22.43,22.49,22.76,22.78,23.00, 23.20,22.88,23.06,23.40,23.45,23.55,23.58,23.82,23.71,23.98, 24.29,24.13,24.34,24.40,24.70,24.82,24.71,24.93,25.06,25.03, 25.34,25.23,25.30,25.64,25.81,25.93,25.91,25.88,26.28,26.14, 26.39,26.64,26.68,26.66,26.92,27.16,27.13,27.19,27.41,27.52, 27.70,27.82,27.73,28.03,28.04,28.09,28.36,28.28,28.36,28.59, 28.70,28.73,28.88,28.83,29.26,29.24,29.53,29.23,29.44,29.86, 29.77,29.71,30.14,30.22,30.08,30.23,30.53,30.50,30.72,30.78, 30.88,31.26,31.20,31.18,31.33,31.42,31.81,31.72,32.04,31.70, 32.25,32.15,32.47,32.34,32.58,32.78,32.81,32.97,33.10,33.32, 32.96,33.07,33.45,33.59,33.77,33.99,34.17,34.23,34.59,34.35, 1.05,1.11,1.18,1.30,1.42,1.51,1.64,1.69,1.83,1.87, 1.95,2.07,2.14,2.21,2.28,2.45,2.54,2.60,2.78,2.83, 2.87,3.04,3.07,3.19,3.34,3.42,3.51,3.49,3.62,3.69, 3.81,3.88,4.14,4.12,4.20,4.37,4.42,4.42,4.57,4.67, 4.80,4.94,4.93,5.10,5.11,5.30,5.43,5.37,5.61,5.70, 5.79,5.82,6.03,6.07,6.16,6.23,6.33,6.41,6.46,6.67, 6.62,6.64,6.78,7.08,7.10,7.20,7.32,7.42,7.49,7.49, 7.52,7.72,7.84,8.00,8.14,8.18,8.35,8.33,8.33,8.53, 8.45,8.62,9.01,8.86,8.93,9.07,9.31,9.32,9.45,9.37, 9.64,9.69,9.84,9.88,9.94,10.05,10.25,10.25,10.30,10.47, 10.54,10.65,10.73,10.78,11.05,11.08,10.90,11.15,11.40,11.34, 11.44,11.59,11.63,11.78,11.83,11.83,12.10,12.12,12.33,12.33, 12.51,12.53,12.65,12.54,12.61,12.85,12.76,13.24,13.32,13.29, 13.32,13.46,13.41,13.50,13.57,13.84,13.93,13.95,14.25,14.21, 14.45,14.35,14.40,14.48,14.59,14.75,14.88,14.79,15.08,15.12, 15.16,15.46,15.41,15.54,15.68,15.89,15.84,15.87,16.00,16.15, 16.26,16.45,16.24,16.57,16.61,16.84,16.90,16.93,16.76,16.85, 17.07,17.24,17.21,17.44,17.64,17.54,17.63,18.02,17.95,18.05, 18.17,18.37,18.50,18.35,18.30,18.51,18.46,18.74,18.99,18.89, 19.19,19.11,19.29,19.16,19.52,19.38,19.64,19.63,19.94,19.85, 20.01,20.22,20.16,20.26,20.46,20.42,20.72,20.76,20.80,20.93, 21.01,21.08,21.17,21.24,21.45,21.65,21.56,21.53,21.76,21.99, 21.82,21.94,22.03,22.31,22.14,22.47,22.54,22.61,22.69,22.70, 22.66,22.87,23.22,23.40,23.29,23.27,23.39,23.66,23.65,23.77, 23.59,23.93,24.15,24.13,24.18,24.30,24.36,24.30,24.56,24.58, 24.74,24.85,24.90,24.91,25.08,25.21,25.37,25.40,25.52,25.67, 25.70,25.81,25.83,26.11,26.08,26.27,26.16,26.38,26.31,26.55, 26.73,26.82,26.81,26.84,26.91,27.29,27.34,27.29,27.45,27.56, 27.67,27.66,27.69,27.72,28.27,28.08,28.08,28.40,28.25,28.44, 0.82,0.91,1.04,1.07,1.12,1.18,1.27,1.38,1.42,1.56, 1.53,1.74,1.84,1.88,1.90,1.95,1.97,2.26,2.26,2.31, 2.34,2.49,2.59,2.64,2.80,2.80,2.98,3.04,2.96,3.16, 3.23,3.26,3.40,3.46,3.50,3.57,3.62,3.72,3.90,3.98, 3.99,4.10,4.07,4.28,4.32,4.42,4.44,4.45,4.69,4.80, 4.79,4.86,5.07,5.05,5.22,5.20,5.19,5.17,5.47,5.51, 5.51,5.62,5.70,5.81,5.86,5.90,6.01,6.16,6.14,6.31, 6.34,6.37,6.49,6.57,6.72,6.70,6.62,6.95,6.88,7.20, 7.08,7.29,7.38,7.24,7.55,7.47,7.68,7.81,7.85,7.81, 7.93,8.10,8.22,8.19,8.24,8.30,8.42,8.48,8.76,8.57, 8.65,8.68,8.86,8.95,9.01,8.97,9.24,9.25,9.45,9.50, 9.56,9.81,9.72,9.86,9.72,9.94,10.17,10.14,10.20,10.20, 10.38,10.44,10.47,10.57,10.78,10.52,10.68,10.95,10.88,11.05, 11.12,11.09,11.32,11.25,11.49,11.51,11.56,11.76,11.79,11.76, 11.73,11.97,12.09,12.11,12.15,12.41,12.37,12.57,12.43,12.71, 12.65,12.71,12.84,12.89,12.87,12.98,13.15,13.27,13.39,13.37, 13.44,13.73,13.68,13.62,13.93,13.93,14.05,13.94,14.20,14.37, 14.16,14.27,14.47,14.44,14.55,14.76,14.65,14.78,14.91,15.03, 15.27,15.11,15.20,15.51,15.22,15.35,15.67,15.55,15.67,15.81, 15.71,15.93,15.84,16.14,16.12,16.11,16.43,16.32,16.30,16.59, 16.58,16.79,16.68,17.18,16.82,17.00,17.03,17.24,17.34,17.44, 17.63,17.38,17.65,17.52,17.81,17.84,18.01,17.82,17.76,18.16, 18.07,18.14,18.43,18.63,18.46,18.69,18.79,18.98,18.77,18.93, 18.94,19.06,19.21,19.18,19.32,19.40,19.60,19.58,19.39,19.67, 19.75,19.82,19.86,20.13,20.03,20.24,20.25,20.21,20.46,20.55, 20.41,20.43,20.66,20.89,21.07,20.89,20.88,21.23,21.22,21.17, 21.20,21.46,21.60,21.53,21.57,22.01,21.53,22.07,21.97,22.01, 22.01,22.29,22.33,22.25,22.34,22.58,22.46,22.75,22.64,23.11, 22.88,22.96,23.11,23.07,23.31,23.25,23.45,23.46,23.44,23.64, 0.70,0.76,0.82,0.86,0.93,1.05,1.09,1.11,1.21,1.26, 1.34,1.43,1.41,1.56,1.63,1.71,1.75,1.76,1.82,1.94, 2.04,2.07,2.17,2.16,2.22,2.35,2.39,2.41,2.54,2.53, 2.68,2.84,2.81,2.86,2.90,2.96,3.00,3.15,3.29,3.37, 3.29,3.39,3.37,3.67,3.49,3.62,3.66,3.71,3.79,3.93, 4.00,3.98,4.04,4.30,4.20,4.21,4.29,4.49,4.56,4.60, 4.56,4.63,4.74,4.74,4.98,4.94,5.02,5.07,5.09,5.21, 5.33,5.28,5.37,5.43,5.49,5.50,5.64,5.77,5.82,5.88, 5.94,5.90,6.01,6.08,6.14,6.22,6.41,6.39,6.54,6.54, 6.68,6.75,6.61,6.66,6.85,6.84,6.93,6.98,7.23,7.23, 7.13,7.24,7.24,7.47,7.37,7.56,7.66,7.77,7.76,8.07, 7.79,7.99,8.07,8.11,8.12,8.31,8.20,8.30,8.37,8.38, 8.51,8.52,8.68,8.84,8.81,8.88,9.12,8.91,8.97,9.21, 9.22,9.29,9.31,9.49,9.58,9.59,9.62,9.69,9.62,9.82, 9.82,9.87,9.90,10.06,10.14,10.31,10.35,10.54,10.29,10.38, 10.67,10.50,10.73,10.59,10.90,10.98,10.93,10.98,10.94,11.15, 11.14,11.23,11.40,11.31,11.51,11.57,11.63,11.72,11.79,11.70, 11.83,12.03,11.92,12.07,12.10,12.14,12.26,12.28,12.22,12.46, 12.40,12.46,12.64,12.79,12.79,12.72,12.69,12.95,13.01,13.07, 13.14,13.17,13.38,13.34,13.43,13.27,13.43,13.56,13.63,13.56, 13.75,13.96,13.90,14.02,13.91,14.11,14.35,14.24,14.29,14.26, 14.42,14.35,14.64,14.69,14.55,14.71,14.94,14.68,14.77,14.99, 15.35,15.17,15.41,15.30,15.40,15.34,15.50,15.53,15.35,15.68, 15.70,15.79,15.87,15.98,16.08,16.03,16.23,16.25,16.24,16.27, 16.32,16.45,16.58,16.69,16.63,16.91,16.90,16.88,16.78,17.00, 17.10,17.16,17.07,17.07,17.32,17.30,17.48,17.58,17.63,17.56, 17.75,17.70,17.81,17.89,18.03,18.01,17.92,18.31,18.36,18.28, 18.37,18.50,18.55,18.44,18.56,18.47,18.88,18.71,18.78,19.02, 19.10,19.11,19.08,19.47,19.04,19.45,19.35,19.38,19.45,19.62, 0.55,0.61,0.70,0.73,0.78,0.85,0.94,0.97,1.05,1.04, 1.15,1.14,1.26,1.27,1.36,1.25,1.44,1.48,1.57,1.62, 1.69,1.74,1.81,1.78,1.84,1.94,2.02,2.05,2.08,2.14, 2.24,2.19,2.30,2.43,2.42,2.49,2.47,2.55,2.59,2.72, 2.73,2.84,2.81,2.87,2.92,3.02,3.04,3.14,3.24,3.10, 3.30,3.35,3.29,3.41,3.46,3.55,3.59,3.62,3.91,3.76, 3.93,3.99,4.05,3.94,4.09,4.14,4.18,4.22,4.33,4.36, 4.35,4.36,4.38,4.47,4.58,4.59,4.72,4.72,4.88,4.87, 5.03,4.97,5.01,5.03,5.25,5.18,5.24,5.36,5.32,5.38, 5.55,5.50,5.63,5.69,5.67,5.66,5.87,5.86,6.00,5.86, 6.11,6.04,6.27,6.07,6.13,6.34,6.30,6.39,6.52,6.53, 6.48,6.50,6.68,6.69,6.79,6.89,7.01,6.90,6.89,7.05, 7.04,7.27,7.19,7.32,7.20,7.37,7.23,7.41,7.59,7.66, 7.60,7.74,7.64,7.81,7.88,7.91,8.10,8.12,8.12,8.17, 8.26,8.31,8.33,8.30,8.39,8.43,8.51,8.68,8.72,8.65, 8.68,8.85,8.91,8.82,8.88,8.96,9.00,9.10,9.05,9.29, 9.21,9.28,9.48,9.22,9.47,9.71,9.73,9.71,9.71,9.77, 9.76,9.76,9.94,9.96,9.94,10.08,10.21,10.23,10.39,10.21, 10.41,10.37,10.47,10.48,10.53,10.56,10.74,10.77,10.78,10.89, 10.91,10.92,11.05,10.97,11.21,11.02,11.20,11.43,11.17,11.49, 11.50,11.47,11.39,11.58,11.61,11.67,11.83,11.79,11.89,11.91, 12.08,12.09,12.21,12.21,12.11,12.25,12.37,12.26,12.34,12.53, 12.58,12.57,12.59,12.54,12.80,12.88,12.84,12.78,13.06,13.11, 13.28,13.06,13.17,13.24,13.38,13.35,13.49,13.34,13.59,13.56, 13.53,13.54,13.81,13.63,13.79,13.97,14.02,14.07,14.12,13.94, 14.14,14.33,14.35,14.52,14.40,14.40,14.64,14.70,14.64,14.53, 14.59,14.69,14.78,14.71,14.94,14.94,15.08,15.19,15.21,15.05, 15.37,15.16,15.33,15.34,15.44,15.60,15.60,15.57,15.71,15.72, 15.96,15.96,15.87,15.95,15.99,15.93,16.17,16.07,16.15,16.36, 0.50,0.52,0.59,0.65,0.66,0.67,0.76,0.77,0.86,0.90, 0.94,1.01,0.95,1.07,1.07,1.19,1.18,1.27,1.30,1.34, 1.36,1.41,1.48,1.46,1.56,1.62,1.64,1.74,1.69,1.80, 1.92,1.89,1.98,2.03,1.98,2.09,2.09,2.11,2.18,2.21, 2.38,2.34,2.33,2.48,2.41,2.52,2.55,2.56,2.60,2.68, 2.68,2.83,2.84,2.84,2.90,2.88,3.00,3.04,3.14,3.06, 3.22,3.19,3.22,3.30,3.37,3.43,3.52,3.50,3.62,3.70, 3.53,3.62,3.69,3.69,3.84,3.73,3.92,4.03,4.04,4.04, 4.03,4.12,4.25,4.24,4.31,4.29,4.46,4.49,4.46,4.42, 4.51,4.59,4.62,4.76,4.72,4.81,4.92,4.88,5.05,4.86, 4.98,5.05,5.02,5.16,5.27,5.18,5.25,5.37,5.38,5.37, 5.43,5.45,5.47,5.53,5.46,5.62,5.70,5.67,5.79,5.81, 5.91,6.10,6.16,6.07,6.02,6.17,6.21,6.08,6.15,6.27, 6.26,6.45,6.54,6.49,6.46,6.61,6.59,6.78,6.74,6.80, 6.72,6.98,6.96,6.96,6.99,7.00,7.21,7.07,7.00,7.26, 7.24,7.33,7.38,7.28,7.33,7.50,7.40,7.63,7.69,7.55, 7.84,7.60,7.68,7.86,7.88,7.92,7.96,8.21,7.90,8.27, 8.09,8.13,8.34,8.32,8.39,8.43,8.39,8.42,8.55,8.60, 8.64,8.56,8.65,8.75,8.73,8.78,8.79,9.03,8.95,8.98, 9.06,9.08,9.20,9.28,9.25,9.23,9.53,9.35,9.33,9.39, 9.68,9.65,9.76,9.61,9.49,9.59,9.83,9.68,9.94,9.96, 10.05,10.07,10.02,10.20,10.08,10.05,10.19,10.09,10.34,10.33, 10.26,10.38,10.41,10.44,10.54,10.70,10.56,10.65,10.81,10.85, 10.90,10.94,10.96,10.94,10.95,11.01,11.25,11.09,11.10,11.35, 11.29,11.25,11.47,11.46,11.48,11.67,11.60,11.69,11.80,11.66, 11.66,11.90,11.87,11.84,11.81,12.01,11.93,12.30,12.03,12.12, 12.01,12.35,12.47,12.27,12.24,12.50,12.41,12.39,12.58,12.62, 12.80,12.49,13.04,12.70,13.05,12.83,12.90,12.89,13.10,13.12, 13.20,13.16,13.32,13.06,13.12,13.42,13.46,13.37,13.47,13.45, 0.41,0.46,0.47,0.54,0.53,0.56,0.63,0.65,0.71,0.76, 0.75,0.78,0.83,0.86,0.93,0.97,1.00,1.00,1.09,1.09, 1.13,1.15,1.24,1.21,1.30,1.32,1.35,1.38,1.46,1.49, 1.51,1.58,1.54,1.60,1.68,1.70,1.72,1.76,1.87,1.90, 1.84,1.92,1.94,2.03,2.02,2.07,2.11,2.08,2.18,2.22, 2.32,2.33,2.30,2.35,2.40,2.48,2.48,2.48,2.55,2.67, 2.59,2.69,2.68,2.75,2.85,2.84,2.86,2.91,3.05,2.88, 2.98,3.09,3.17,3.13,3.21,3.24,3.31,3.31,3.28,3.37, 3.39,3.33,3.44,3.42,3.48,3.57,3.64,3.64,3.65,3.75, 3.84,3.83,3.91,3.89,4.01,4.06,4.05,4.09,4.18,4.14, 4.10,4.09,4.21,4.42,4.29,4.37,4.36,4.42,4.44,4.38, 4.50,4.51,4.72,4.72,4.66,4.71,4.74,4.73,4.83,4.85, 4.96,4.93,5.00,4.93,5.09,5.05,5.11,5.15,5.26,5.18, 5.28,5.21,5.29,5.36,5.47,5.33,5.48,5.51,5.50,5.50, 5.68,5.67,5.70,5.76,5.76,5.88,5.68,5.76,5.95,5.95, 5.91,5.98,6.03,6.15,6.13,6.30,6.26,6.17,6.39,6.33, 6.29,6.34,6.44,6.52,6.54,6.58,6.51,6.58,6.64,6.74, 6.73,6.66,6.82,6.76,7.00,6.95,6.91,7.14,7.08,7.08, 7.11,7.13,7.08,7.26,7.22,7.32,7.50,7.43,7.40,7.60, 7.54,7.55,7.55,7.78,7.81,7.71,7.75,7.65,7.69,7.88, 7.93,7.90,7.95,7.97,8.06,8.05,7.98,8.24,8.20,8.19, 8.34,8.40,8.46,8.29,8.35,8.42,8.54,8.41,8.44,8.70, 8.77,8.63,8.71,8.96,8.78,8.65,8.80,8.85,9.01,9.14, 8.94,8.92,9.07,9.09,9.26,9.27,9.22,9.30,9.19,9.26, 9.48,9.43,9.49,9.36,9.44,9.46,9.76,9.64,9.56,9.71, 9.80,9.83,9.73,9.93,9.82,9.94,10.06,10.07,10.10,10.13, 10.04,10.22,10.27,10.43,10.30,10.45,10.46,10.30,10.48,10.57, 10.56,10.48,10.45,10.47,10.58,10.77,10.77,10.82,10.71,10.78, 11.07,10.99,11.06,10.91,11.12,10.92,11.00,11.19,11.26,11.18, 0.33,0.38,0.40,0.41,0.47,0.49,0.52,0.53,0.53,0.62, 0.64,0.63,0.68,0.77,0.78,0.82,0.83,0.88,0.89,0.97, 0.93,1.05,1.05,1.04,1.08,1.10,1.18,1.13,1.17,1.20, 1.23,1.26,1.28,1.35,1.40,1.39,1.43,1.41,1.49,1.54, 1.55,1.57,1.56,1.65,1.73,1.69,1.73,1.79,1.78,1.77, 1.84,1.90,1.93,1.99,2.03,2.09,2.09,2.08,2.04,2.19, 2.21,2.17,2.24,2.35,2.29,2.42,2.31,2.45,2.41,2.48, 2.58,2.48,2.60,2.56,2.57,2.65,2.71,2.72,2.74,2.75, 2.80,2.88,2.86,2.90,2.98,2.97,2.94,3.11,3.10,3.18, 3.15,3.09,3.19,3.27,3.20,3.34,3.33,3.37,3.43,3.46, 3.42,3.43,3.48,3.53,3.55,3.63,3.67,3.65,3.71,3.77, 3.82,3.76,3.80,3.84,3.79,3.89,4.01,3.91,3.93,4.02, 4.12,4.08,4.08,4.16,4.21,4.15,4.27,4.31,4.38,4.37, 4.42,4.34,4.37,4.54,4.59,4.46,4.47,4.49,4.69,4.61, 4.73,4.60,4.83,4.70,4.82,4.96,4.75,4.92,4.90,4.98, 4.99,5.06,5.07,5.16,5.18,5.05,5.17,5.21,5.32,5.30, 5.17,5.34,5.34,5.31,5.28,5.48,5.52,5.42,5.57,5.67, 5.67,5.42,5.82,5.63,5.75,5.75,5.94,5.82,5.91,5.83, 5.98,5.87,5.90,6.05,6.04,6.27,6.02,6.01,5.98,6.19, 6.23,6.35,6.29,6.35,6.43,6.35,6.47,6.45,6.38,6.55, 6.42,6.55,6.52,6.63,6.64,6.75,6.80,6.72,6.80,6.89, 6.91,6.88,6.96,6.99,6.98,7.06,6.99,6.92,7.10,7.08, 7.23,7.17,7.20,7.26,7.26,7.29,7.33,7.43,7.37,7.44, 7.54,7.46,7.61,7.72,7.56,7.54,7.78,7.74,7.64,7.81, 7.78,7.85,7.81,7.85,7.69,8.00,7.84,7.94,8.10,8.23, 8.07,8.13,8.25,8.12,8.26,7.99,8.17,8.41,8.37,8.48, 8.38,8.42,8.45,8.60,8.46,8.65,8.62,8.64,8.73,8.72, 8.81,8.81,8.80,8.85,8.88,8.79,8.90,9.02,8.89,9.01, 8.96,8.97,9.11,8.95,9.10,9.11,9.21,9.29,9.28,9.46, 0.27,0.32,0.33,0.34,0.36,0.39,0.42,0.45,0.50,0.49, 0.55,0.54,0.55,0.60,0.55,0.64,0.64,0.72,0.72,0.76, 0.79,0.77,0.89,0.89,0.87,0.90,0.96,0.95,1.02,1.03, 1.04,1.04,1.16,1.14,1.10,1.22,1.20,1.20,1.19,1.24, 1.30,1.32,1.29,1.43,1.47,1.45,1.49,1.48,1.50,1.56, 1.53,1.59,1.59,1.60,1.68,1.71,1.62,1.79,1.75,1.75, 1.81,1.88,1.79,1.90,1.99,1.95,2.06,1.96,1.93,2.01, 2.10,2.10,2.10,2.07,2.17,2.25,2.20,2.34,2.32,2.33, 2.31,2.33,2.37,2.36,2.46,2.44,2.53,2.44,2.57,2.55, 2.46,2.65,2.62,2.61,2.69,2.78,2.62,2.76,2.82,2.79, 2.86,2.86,2.98,2.88,2.99,2.93,3.06,2.97,3.05,3.02, 3.10,3.11,3.10,3.17,3.19,3.29,3.25,3.22,3.25,3.45, 3.37,3.52,3.51,3.45,3.56,3.47,3.53,3.49,3.63,3.77, 3.58,3.50,3.64,3.69,3.80,3.74,3.83,3.87,3.84,3.86, 3.92,3.88,3.96,3.97,3.96,3.93,4.03,4.12,4.10,4.18, 4.08,4.14,4.23,4.22,4.23,4.16,4.30,4.40,4.27,4.36, 4.28,4.36,4.44,4.54,4.58,4.58,4.55,4.58,4.61,4.68, 4.70,4.64,4.67,4.88,4.80,4.71,4.72,4.81,4.89,4.81, 4.81,4.95,5.06,4.93,4.96,5.04,5.07,5.25,5.16,5.13, 5.27,5.20,5.25,5.18,5.34,5.36,5.34,5.36,5.44,5.42, 5.46,5.43,5.56,5.56,5.59,5.46,5.54,5.60,5.62,5.70, 5.71,5.63,5.80,5.82,5.78,5.80,5.88,5.84,5.88,5.97, 5.97,5.88,6.11,6.00,6.05,5.88,6.25,6.18,6.06,6.30, 6.10,6.29,6.29,6.33,6.29,6.33,6.46,6.27,6.34,6.25, 6.35,6.43,6.54,6.48,6.65,6.58,6.60,6.54,6.57,6.71, 6.57,6.67,6.83,6.83,6.84,6.78,6.85,6.90,6.84,6.98, 7.01,7.06,6.90,7.00,7.00,7.13,7.17,7.11,7.22,7.29, 7.22,7.26,7.28,7.42,7.24,7.38,7.44,7.53,7.44,7.47, 7.57,7.63,7.56,7.63,7.67,7.67,7.77,7.56,7.72,7.97, 0.22,0.25,0.24,0.29,0.31,0.35,0.36,0.38,0.39,0.41, 0.46,0.44,0.51,0.53,0.50,0.54,0.60,0.58,0.59,0.62, 0.63,0.63,0.71,0.72,0.75,0.76,0.78,0.83,0.84,0.87, 0.81,0.92,0.92,0.90,0.98,0.96,0.95,0.97,1.10,1.04, 1.10,1.12,1.16,1.12,1.15,1.14,1.23,1.25,1.25,1.31, 1.31,1.30,1.36,1.34,1.35,1.41,1.48,1.43,1.48,1.50, 1.51,1.53,1.53,1.55,1.58,1.64,1.63,1.68,1.62,1.71, 1.66,1.77,1.81,1.81,1.78,1.90,1.84,1.89,1.87,1.93, 1.92,1.95,1.92,2.05,2.02,2.10,2.14,2.09,2.15,2.12, 2.15,2.23,2.12,2.26,2.29,2.30,2.30,2.26,2.34,2.27, 2.33,2.31,2.44,2.41,2.41,2.47,2.46,2.53,2.70,2.57, 2.50,2.65,2.61,2.59,2.58,2.67,2.77,2.70,2.73,2.73, 2.81,2.83,2.81,2.85,2.93,2.90,2.93,2.91,3.00,2.97, 2.96,3.01,3.10,3.09,3.02,3.05,3.08,3.17,3.23,3.17, 3.29,3.25,3.30,3.31,3.47,3.40,3.35,3.36,3.35,3.43, 3.39,3.40,3.51,3.48,3.49,3.57,3.52,3.50,3.58,3.56, 3.60,3.70,3.67,3.68,3.69,3.76,3.76,3.86,3.78,3.81, 3.93,3.89,3.80,3.92,3.96,3.94,3.96,4.05,4.14,4.08, 4.03,4.06,4.13,4.05,4.14,4.19,4.21,4.14,4.24,4.17, 4.28,4.29,4.37,4.38,4.34,4.45,4.42,4.42,4.48,4.55, 4.49,4.49,4.54,4.54,4.64,4.65,4.61,4.62,4.62,4.72, 4.74,4.82,4.72,4.84,4.80,4.89,4.78,4.89,4.95,5.00, 4.97,4.91,5.00,4.95,4.99,5.17,5.11,5.06,5.17,5.12, 5.29,5.19,5.16,5.29,5.26,5.26,5.40,5.31,5.33,5.28, 5.37,5.30,5.40,5.54,5.41,5.53,5.52,5.42,5.55,5.54, 5.45,5.55,5.57,5.72,5.71,5.67,5.73,5.73,5.81,5.80, 5.89,5.75,5.72,5.87,5.85,5.88,5.79,5.91,5.97,5.85, 6.00,6.08,5.96,6.05,6.01,6.26,5.99,6.10,6.12,6.05, 6.25,6.18,6.34,6.17,6.37,6.37,6.49,6.44,6.42,6.37, 3.30,3.61,3.82,4.14,4.40,4.82,5.09,5.49,5.71,6.06, 6.28,6.75,6.97,7.18,7.59,7.87,8.14,8.56,8.85,9.12, 9.37,9.69,10.05,10.25,10.67,10.92,11.27,11.68,11.87,12.20, 12.61,12.85,13.28,13.47,13.83,14.10,14.33,14.71,15.00,15.37, 15.66,15.89,16.29,16.57,16.87,17.07,17.37,17.83,18.18,18.27, 18.69,19.09,19.18,19.59,19.90,20.27,20.49,20.87,21.01,21.40, 21.82,22.09,22.11,22.61,23.00,23.42,23.66,23.97,24.11,24.48, 24.74,25.01,25.32,25.93,26.16,26.39,26.72,26.86,27.32,27.61, 28.01,28.26,28.45,28.86,29.22,29.47,29.77,30.24,30.46,30.66, 31.11,31.34,31.68,31.92,32.29,32.76,33.00,32.94,33.51,33.74, 33.92,34.56,34.66,35.22,35.13,35.61,36.06,36.39,36.52,36.89, 37.33,37.42,37.78,38.11,38.34,38.73,38.78,39.49,39.50,39.89, 40.25,40.76,40.81,41.10,41.41,41.73,41.95,42.19,42.90,42.87, 43.48,43.81,43.91,44.05,44.66,44.84,44.91,45.63,45.93,46.31, 46.75,46.84,47.10,47.31,48.00,48.11,48.15,48.44,48.67,49.16, 49.39,49.84,50.17,50.87,50.81,50.99,51.31,51.81,51.89,52.39, 52.48,52.81,53.12,53.53,53.56,54.13,54.26,54.85,55.16,55.41, 55.31,55.99,56.29,56.54,56.95,57.33,57.45,57.92,58.04,58.50, 58.78,59.05,59.07,59.66,60.26,60.27,60.60,61.06,61.66,61.33, 61.81,62.16,62.48,62.73,62.80,63.32,63.87,64.07,64.33,64.75, 65.12,65.50,65.39,65.76,66.48,66.63,66.41,67.43,66.84,67.67, 68.28,68.54,68.66,69.06,69.53,69.63,69.98,70.35,70.34,70.80, 70.81,71.35,71.56,72.03,72.46,72.81,72.82,73.19,73.98,73.74, 73.63,74.55,74.80,75.18,75.09,75.92,75.78,76.31,76.55,76.73, 77.50,77.66,78.07,78.07,78.46,78.88,79.32,79.29,79.82,80.15, 80.22,80.73,81.23,81.63,81.72,82.04,82.23,82.42,82.99,83.26, 83.17,83.90,83.77,84.35,84.59,85.03,85.18,85.55,85.85,86.56, 86.83,86.97,87.03,87.63,87.42,87.76,88.42,88.62,88.89,89.39, 89.67,90.25,90.33,90.78,91.03,91.23,91.41,91.76,92.07,92.39, 2.72,2.95,3.27,3.53,3.85,4.08,4.29,4.60,4.89,5.04, 5.34,5.56,5.74,6.14,6.32,6.58,6.82,7.03,7.41,7.69, 7.92,8.13,8.42,8.78,8.97,9.23,9.52,9.79,9.93,10.08, 10.47,10.67,11.00,11.23,11.55,11.75,12.14,12.33,12.69,12.87, 13.13,13.40,13.69,13.91,14.26,14.44,14.48,14.96,15.05,15.50, 15.64,15.90,16.19,16.43,16.83,17.07,17.20,17.53,17.85,18.05, 18.27,18.63,18.72,19.04,19.33,19.58,19.83,20.09,20.48,20.62, 20.90,21.12,21.35,21.73,21.88,22.11,22.38,22.68,22.99,23.05, 23.45,23.61,24.00,24.30,24.48,24.76,25.05,25.48,25.46,25.80, 26.13,26.31,26.54,27.07,27.03,27.27,27.76,27.74,27.98,28.53, 28.65,28.83,29.21,29.55,29.71,29.81,30.22,30.51,30.69,30.85, 31.26,31.61,31.65,32.04,32.29,32.52,32.84,32.88,33.44,33.71, 34.03,34.15,34.42,34.62,35.04,35.04,35.36,35.66,35.91,36.17, 36.35,36.69,36.90,36.94,37.51,37.74,38.25,38.24,38.59,38.91, 38.98,39.39,39.80,39.95,40.11,40.33,40.50,40.95,41.07,41.48, 41.55,41.89,42.02,42.43,42.63,42.69,43.35,43.46,43.84,44.08, 44.12,44.35,44.72,45.05,45.44,45.50,45.98,46.11,46.32,46.81, 47.01,47.25,47.08,47.62,47.89,48.28,48.41,48.62,48.96,49.20, 49.33,49.62,49.98,50.13,50.39,50.62,50.74,51.19,51.22,51.81, 52.02,52.01,52.68,52.60,52.88,53.37,53.41,53.65,53.99,54.36, 54.82,54.95,55.29,55.33,55.92,55.85,56.07,56.31,56.74,56.93, 57.06,57.60,57.67,58.05,57.85,58.29,58.52,58.92,59.01,59.63, 59.63,60.01,60.32,60.64,60.58,61.10,61.34,61.44,61.73,62.06, 62.37,62.44,62.95,63.00,63.29,63.87,63.95,64.01,64.28,64.98, 65.00,65.04,65.31,65.73,66.04,65.93,66.61,66.60,66.97,67.41, 67.54,67.70,68.25,68.32,68.59,68.68,69.34,69.31,69.61,70.03, 70.18,70.39,70.71,71.43,70.97,71.93,71.80,71.74,72.37,72.32, 72.92,72.92,73.53,73.10,73.86,73.76,74.42,74.60,75.19,74.79, 75.08,75.49,75.97,75.73,76.56,76.61,77.25,77.46,77.20,77.58, 2.29,2.55,2.73,2.95,3.18,3.36,3.54,3.84,4.04,4.24, 4.47,4.67,4.92,5.11,5.38,5.53,5.73,6.05,6.13,6.41, 6.58,6.81,7.00,7.25,7.58,7.67,7.92,8.21,8.44,8.63, 8.86,8.90,9.23,9.34,9.71,9.82,10.19,10.28,10.57,10.88, 11.05,11.28,11.43,11.80,11.87,12.14,12.41,12.60,12.76,13.08, 13.16,13.51,13.57,13.76,14.05,14.25,14.61,14.65,15.06,15.21, 15.53,15.69,15.93,16.09,16.24,16.43,16.77,16.74,17.10,17.26, 17.49,17.69,18.03,18.24,18.49,18.42,19.11,19.08,19.36,19.63, 19.77,20.07,20.12,20.55,20.71,20.78,20.83,21.31,21.36,21.78, 21.88,22.06,22.25,22.49,22.82,23.00,23.34,23.31,23.63,23.68, 24.10,24.30,24.32,24.80,24.91,25.15,25.50,25.81,25.80,26.30, 26.34,26.59,26.51,26.95,27.16,27.11,27.45,27.84,28.24,28.02, 28.44,28.79,28.79,28.97,29.39,29.35,29.82,29.81,29.95,30.25, 30.70,30.93,31.13,31.34,31.45,31.70,31.87,32.28,32.23,32.42, 32.67,33.06,33.51,33.34,33.65,33.72,34.30,34.26,34.65,34.91, 34.91,35.03,35.42,35.41,35.97,35.86,36.32,36.39,36.72,37.00, 36.99,37.36,37.51,37.83,37.97,38.07,38.46,38.72,38.97,39.19, 39.27,39.57,39.77,40.02,40.29,40.39,40.74,40.73,40.92,41.33, 41.49,41.62,41.99,42.28,42.40,42.31,42.64,42.73,43.25,43.42, 43.92,43.89,44.16,44.22,44.36,44.74,44.99,45.13,45.44,45.56, 45.76,46.03,46.52,46.23,46.50,47.04,47.34,47.71,47.86,47.75, 47.98,48.20,48.57,48.58,48.86,49.27,49.36,49.69,50.00,49.91, 50.32,50.13,50.66,50.38,51.08,51.43,51.26,51.81,51.97,51.97, 52.23,52.43,53.11,52.91,53.06,53.68,53.69,53.96,54.21,54.45, 54.53,54.99,55.12,54.94,55.62,55.93,55.84,56.00,56.16,56.56, 57.00,56.93,57.35,57.40,57.50,57.69,58.19,58.21,58.37,58.37, 58.84,59.20,59.23,59.32,59.68,60.00,60.29,60.62,60.84,60.76, 61.01,61.19,61.31,61.74,61.95,62.40,62.59,62.78,62.88,63.21, 63.29,63.15,63.66,63.85,64.60,64.36,64.72,64.64,65.00,64.86, 1.97,2.08,2.26,2.49,2.71,2.87,2.96,3.28,3.35,3.49, 3.74,3.98,4.10,4.32,4.49,4.77,4.89,4.99,5.13,5.36, 5.53,5.89,5.95,6.04,6.23,6.44,6.68,6.93,7.04,7.26, 7.49,7.63,7.78,7.89,8.08,8.32,8.53,8.74,8.76,9.06, 9.25,9.61,9.60,9.78,9.91,10.22,10.30,10.61,10.74,10.96, 11.10,11.27,11.42,11.57,11.64,12.01,12.07,12.35,12.56,12.53, 12.85,13.06,13.39,13.62,13.52,13.89,13.97,14.16,14.33,14.52, 14.61,14.87,15.20,15.29,15.47,15.74,15.83,16.07,16.13,16.49, 16.48,16.64,16.93,17.14,17.18,17.46,17.72,17.73,18.14,18.06, 18.46,18.44,18.77,18.95,19.21,19.25,19.43,19.70,19.91,20.05, 20.41,20.52,20.48,20.84,20.91,21.13,21.26,21.69,21.68,21.83, 22.10,22.31,22.49,22.50,22.83,23.17,23.16,23.23,23.39,23.73, 23.90,24.05,24.54,24.21,24.49,24.78,24.82,25.03,25.43,25.31, 25.64,25.88,25.96,26.32,26.49,26.44,26.80,26.90,27.23,27.29, 27.29,27.65,27.87,27.97,28.30,28.47,28.73,28.87,28.91,29.27, 29.27,29.39,29.69,29.81,30.15,30.34,30.67,30.59,30.85,31.26, 31.31,31.24,31.77,31.71,32.08,32.21,32.21,32.55,32.70,32.85, 32.72,33.28,33.26,33.61,33.82,33.85,34.17,34.48,34.53,34.78, 34.85,34.85,35.10,35.29,35.62,35.51,35.91,36.02,36.25,36.68, 36.89,36.74,37.09,37.43,37.41,37.64,37.65,38.01,38.22,38.25, 38.51,38.94,39.06,39.22,38.94,39.29,39.66,39.78,39.98,40.10, 40.11,40.88,40.46,40.71,41.06,41.19,41.32,41.50,41.70,42.08, 42.15,42.36,42.54,42.56,42.98,43.20,43.23,43.38,43.57,44.03, 43.99,44.34,44.41,44.78,45.04,44.89,45.02,45.41,45.54,45.68, 45.57,46.05,46.48,46.33,46.44,46.82,46.84,47.01,47.52,47.65, 47.66,47.76,48.08,48.33,48.20,48.62,48.79,48.96,49.36,49.06, 49.68,49.80,50.17,49.77,50.46,50.23,50.17,50.98,51.00,51.24, 51.52,51.38,51.59,51.82,51.91,52.35,52.38,52.74,52.96,53.13, 53.36,53.64,53.86,53.89,53.90,54.08,54.26,54.32,54.66,54.74, 1.63,1.76,1.88,2.12,2.23,2.37,2.50,2.68,2.83,2.93, 3.02,3.29,3.46,3.60,3.72,3.85,4.09,4.33,4.36,4.55, 4.58,4.78,4.97,5.09,5.38,5.50,5.58,5.77,5.91,6.04, 6.22,6.38,6.54,6.57,6.87,7.00,7.21,7.31,7.47,7.64, 7.76,8.01,8.14,8.35,8.27,8.37,8.72,8.82,9.09,9.20, 9.39,9.56,9.57,9.84,10.03,10.17,10.22,10.53,10.47,10.56, 10.77,10.85,11.01,11.26,11.43,11.58,11.88,11.98,12.12,12.27, 12.27,12.55,12.75,12.76,13.03,13.11,13.44,13.56,13.58,13.76, 14.02,14.07,14.26,14.34,14.68,14.57,14.81,15.07,15.21,15.39, 15.42,15.60,15.75,15.75,16.03,16.33,16.27,16.54,16.63,16.72, 16.88,17.05,17.39,17.34,17.55,17.68,17.78,18.07,18.00,18.45, 18.41,18.59,19.00,18.86,19.19,19.44,19.33,19.59,19.82,19.85, 20.11,20.46,20.31,20.26,20.57,20.98,20.93,21.33,21.56,21.53, 21.46,21.81,21.70,22.03,22.26,22.61,22.55,22.61,22.64,22.69, 23.09,23.41,23.54,23.54,23.83,23.66,24.25,24.23,24.44,24.50, 24.52,24.84,24.93,25.25,25.25,25.46,25.55,25.78,26.09,26.14, 26.13,26.30,26.52,26.68,26.65,26.90,27.21,27.05,27.50,27.89, 27.81,27.82,28.06,28.03,28.34,28.31,28.51,28.70,29.17,28.94, 29.29,29.51,29.53,29.64,29.96,29.98,30.02,30.34,30.57,30.57, 30.92,30.93,31.20,31.34,31.44,31.55,31.79,32.15,31.98,32.20, 32.28,32.41,32.43,32.80,33.14,33.15,33.28,33.37,33.58,33.78, 33.76,33.99,34.15,34.63,34.61,34.54,34.70,35.04,35.00,35.55, 35.57,35.61,35.89,35.68,36.13,36.47,36.27,36.26,36.65,36.92, 37.39,37.02,37.07,37.43,37.30,37.79,37.80,38.16,38.45,38.31, 38.45,38.84,38.75,39.11,39.22,38.94,39.30,39.69,39.56,40.07, 39.98,39.85,40.58,40.70,40.87,40.95,40.83,41.35,41.17,41.18, 41.85,41.77,41.97,42.00,42.21,42.42,42.70,42.77,42.87,42.81, 43.08,43.10,43.38,43.73,43.53,43.88,44.20,44.15,44.40,44.81, 44.63,44.89,44.97,45.14,45.57,45.43,45.86,46.02,45.83,45.63, 1.38,1.45,1.58,1.74,1.86,2.07,2.16,2.25,2.36,2.53, 2.58,2.79,2.90,3.04,3.19,3.22,3.50,3.58,3.60,3.85, 3.86,4.07,4.26,4.24,4.44,4.61,4.74,4.90,5.00,5.06, 5.25,5.43,5.47,5.55,5.79,5.88,5.97,6.10,6.33,6.43, 6.49,6.76,6.74,6.98,7.08,7.20,7.34,7.44,7.64,7.69, 7.80,7.76,8.07,8.18,8.42,8.55,8.49,8.67,8.80,8.98, 9.01,9.31,9.36,9.37,9.57,9.73,9.88,10.22,10.06,10.26, 10.57,10.42,10.62,10.78,10.81,10.94,11.14,11.33,11.41,11.50, 11.55,11.86,11.98,12.21,12.32,12.25,12.44,12.47,12.79,12.77, 12.91,13.16,13.15,13.14,13.79,13.71,13.64,13.98,14.01,14.23, 14.33,14.38,14.62,14.66,14.84,14.86,14.91,15.10,15.18,15.35, 15.59,15.68,15.83,15.93,16.18,16.23,16.43,16.52,16.62,16.85, 16.61,16.88,17.19,17.28,17.13,17.31,17.57,17.82,17.88,17.86, 18.17,18.40,18.36,18.53,18.51,18.74,18.98,19.10,19.39,19.34, 19.45,19.62,19.77,19.86,19.89,19.88,20.19,20.24,20.45,20.68, 20.75,20.90,20.91,21.16,21.23,21.50,21.31,21.64,21.74,21.83, 22.11,21.96,22.14,22.53,22.70,22.64,22.87,22.82,23.13,23.20, 23.32,23.46,23.62,23.78,23.56,24.00,24.02,24.23,24.23,24.43, 24.72,24.79,24.90,24.94,25.04,25.23,25.21,25.59,25.69,25.65, 25.84,26.11,26.27,26.17,26.35,26.67,26.82,26.77,27.13,26.84, 26.87,27.54,27.45,27.56,27.51,27.77,27.77,28.24,28.14,28.32, 28.27,28.45,28.67,28.72,28.86,28.83,29.39,29.43,29.40,29.58, 29.92,29.82,30.16,30.22,30.27,30.53,30.58,30.32,30.70,30.87, 31.01,31.17,31.30,31.48,31.82,31.68,31.84,31.86,32.22,32.47, 32.30,32.43,32.65,32.75,32.92,32.66,33.03,33.49,33.46,33.66, 33.75,33.90,33.86,33.77,34.38,34.49,34.35,34.43,34.83,34.74, 35.15,35.13,35.34,35.55,35.39,35.53,35.76,35.74,35.81,35.70, 36.04,36.57,36.45,36.55,36.62,36.83,36.74,37.20,37.20,37.55, 37.58,37.67,37.89,37.88,38.16,38.28,38.33,38.24,38.54,38.92, 1.18,1.22,1.36,1.48,1.61,1.66,1.72,1.92,2.03,2.11, 2.31,2.36,2.35,2.55,2.63,2.78,2.91,2.93,3.12,3.26, 3.40,3.41,3.62,3.64,3.81,3.93,3.90,4.09,4.15,4.26, 4.28,4.54,4.65,4.65,4.74,4.98,5.03,5.10,5.29,5.40, 5.42,5.50,5.75,5.81,5.91,6.08,6.16,6.35,6.41,6.62, 6.61,6.68,6.84,6.89,7.00,7.03,7.29,7.27,7.39,7.57, 7.63,7.75,7.86,7.99,7.88,8.17,8.35,8.45,8.45,8.66, 8.67,8.87,9.02,9.07,9.02,9.39,9.48,9.53,9.67,9.60, 9.84,9.95,10.08,10.16,10.15,10.40,10.58,10.50,10.67,10.91, 10.90,10.98,11.06,11.24,11.35,11.46,11.57,11.70,11.80,11.80, 12.00,12.17,12.08,12.36,12.54,12.50,12.67,12.77,12.68,12.90, 12.97,13.14,13.36,13.47,13.35,13.69,13.85,13.72,13.88,13.99, 13.97,14.25,14.52,14.56,14.57,14.69,14.86,14.92,15.04,15.31, 15.35,15.18,15.34,15.75,15.54,15.84,15.89,15.89,16.02,16.26, 16.19,16.40,16.68,16.61,16.63,16.86,17.00,16.98,17.07,17.31, 17.38,17.56,17.65,17.65,17.78,18.04,18.12,18.22,18.44,18.25, 18.41,18.60,18.48,18.91,19.05,19.14,19.00,19.11,19.48,19.57, 19.58,19.61,19.79,19.54,20.07,20.24,20.33,20.44,20.45,20.45, 20.79,20.73,20.78,20.96,21.00,21.25,21.12,21.54,21.56,21.59, 21.52,21.87,21.97,22.02,22.24,22.20,22.20,22.64,22.47,22.70, 22.86,22.82,22.86,23.05,23.36,23.46,23.60,23.73,23.49,24.04, 23.85,23.91,24.00,24.18,24.27,24.62,24.39,24.81,24.69,24.92, 25.31,25.13,25.26,25.32,25.25,25.31,25.55,25.88,25.79,25.92, 25.84,26.34,26.04,26.47,26.47,26.68,26.57,26.75,27.02,26.96, 27.30,27.19,27.30,27.58,27.64,27.67,27.81,27.83,28.03,28.11, 28.21,28.60,28.46,28.63,28.88,28.84,28.92,28.87,29.04,29.23, 29.27,29.23,29.45,29.78,29.75,29.93,29.98,30.16,30.16,30.40, 30.56,30.34,30.67,31.09,30.92,31.04,30.93,31.09,31.18,31.30, 31.59,31.79,31.74,31.78,32.02,32.02,32.20,32.06,32.52,32.66, 0.95,1.06,1.11,1.24,1.37,1.42,1.46,1.62,1.72,1.78, 1.83,1.97,1.99,2.13,2.17,2.32,2.37,2.58,2.64,2.75, 2.77,2.94,2.99,3.04,3.15,3.22,3.28,3.39,3.44,3.55, 3.77,3.71,3.90,3.96,4.14,4.18,4.21,4.32,4.45,4.49, 4.64,4.73,4.71,4.88,4.92,5.07,5.17,5.20,5.28,5.44, 5.47,5.61,5.73,5.75,5.89,5.94,6.08,6.12,6.28,6.24, 6.36,6.46,6.67,6.62,6.82,6.92,7.04,7.12,7.13,7.18, 7.40,7.36,7.50,7.58,7.78,7.86,7.73,7.87,8.12,8.12, 8.36,8.21,8.39,8.58,8.58,8.74,8.82,8.98,8.87,9.13, 9.11,9.32,9.46,9.37,9.49,9.65,9.74,9.86,9.89,9.89, 10.27,10.12,10.11,10.36,10.41,10.53,10.64,10.62,10.85,10.84, 11.06,10.96,11.14,11.19,11.40,11.41,11.52,11.64,11.80,11.62, 11.89,11.96,12.05,12.08,12.24,12.29,12.39,12.69,12.63,12.64, 12.73,12.77,13.02,13.13,13.28,13.29,13.45,13.51,13.53,13.52, 13.71,13.63,13.87,13.98,14.21,14.09,14.13,14.26,14.50,14.45, 14.46,14.45,15.02,14.77,14.65,15.00,15.12,15.31,15.43,15.47, 15.57,15.66,15.71,15.77,15.87,15.96,16.11,15.98,16.18,16.41, 16.53,16.55,16.73,16.68,16.89,16.75,17.20,17.06,17.06,17.27, 17.34,17.57,17.51,17.77,17.63,17.75,17.92,17.93,18.20,18.09, 18.28,18.24,18.45,18.86,18.48,18.90,18.77,18.98,19.28,19.01, 19.17,19.24,19.27,19.63,19.61,19.76,19.97,20.00,19.81,20.01, 20.01,19.78,20.58,20.45,20.29,20.43,20.69,20.76,21.02,20.98, 21.12,20.93,21.15,21.34,21.25,21.32,21.56,21.77,21.68,21.85, 22.05,21.91,22.29,22.25,22.28,22.42,22.44,22.55,22.58,22.84, 22.85,22.88,22.85,22.88,23.26,23.21,23.33,23.59,23.63,23.48, 23.52,23.81,23.98,23.98,23.96,24.02,24.35,24.36,24.34,24.46, 24.65,24.66,24.82,25.04,24.96,25.17,25.23,25.19,25.36,25.32, 25.47,25.88,25.87,25.77,25.89,25.81,26.10,26.10,26.30,26.41, 26.36,26.85,26.43,26.55,26.93,26.95,26.84,27.17,27.00,27.08, 0.82,0.85,0.99,1.04,1.10,1.20,1.29,1.28,1.39,1.50, 1.58,1.58,1.67,1.71,1.94,2.06,2.04,2.14,2.16,2.30, 2.40,2.44,2.48,2.56,2.68,2.79,2.77,2.88,2.94,2.96, 3.05,3.18,3.22,3.35,3.42,3.49,3.67,3.66,3.73,3.83, 3.88,3.94,3.93,4.10,4.12,4.22,4.26,4.29,4.45,4.59, 4.57,4.77,4.79,4.85,4.98,5.01,5.01,5.24,5.24,5.43, 5.38,5.48,5.49,5.73,5.67,5.70,5.95,5.92,5.93,6.17, 6.16,6.22,6.35,6.26,6.44,6.66,6.51,6.78,6.85,6.82, 7.07,7.11,7.08,7.20,7.22,7.18,7.35,7.47,7.55,7.52, 7.70,7.76,7.70,7.91,8.03,8.21,8.22,8.21,8.26,8.41, 8.41,8.46,8.62,8.71,8.69,8.82,8.81,9.00,9.04,9.04, 9.13,9.32,9.31,9.47,9.53,9.67,9.57,9.66,9.91,9.96, 10.02,10.15,10.17,10.14,10.29,10.37,10.64,10.44,10.53,10.71, 10.73,10.87,10.89,10.91,11.11,11.20,11.15,11.20,11.51,11.45, 11.43,11.42,11.61,11.88,11.74,11.84,11.90,12.02,12.13,12.17, 12.54,12.38,12.48,12.47,12.66,12.52,12.69,12.90,12.94,12.95, 13.06,13.13,13.10,13.15,13.30,13.47,13.69,13.68,13.67,13.62, 13.98,14.08,14.08,14.14,14.14,14.27,14.23,14.24,14.42,14.58, 14.77,14.86,14.64,14.70,14.95,14.91,15.18,15.08,15.25,15.22, 15.36,15.38,15.27,15.62,15.57,15.72,15.62,15.93,16.11,16.14, 16.12,16.13,16.27,16.32,16.39,16.40,16.62,16.89,16.69,16.86, 16.58,17.07,16.82,16.84,17.11,17.22,17.28,17.39,17.47,17.38, 17.64,17.62,17.59,17.62,18.10,17.98,18.39,18.11,18.22,18.28, 18.39,18.51,18.59,18.49,18.64,18.93,18.85,19.02,18.90,19.34, 19.33,19.44,19.45,19.33,19.54,19.23,19.64,19.52,19.94,19.79, 19.91,20.07,19.80,20.00,20.32,20.47,20.41,20.70,20.46,20.60, 20.86,20.95,20.88,20.81,20.76,21.08,21.33,21.35,21.24,21.21, 21.48,21.62,21.36,21.64,21.67,22.10,21.96,22.11,22.07,22.02, 22.05,22.24,22.47,22.41,22.56,22.82,22.60,22.75,22.89,22.97, 0.68,0.75,0.84,0.87,0.97,1.02,1.09,1.16,1.20,1.28, 1.27,1.36,1.47,1.48,1.62,1.64,1.64,1.78,1.86,1.88, 1.90,1.97,2.07,2.12,2.25,2.34,2.38,2.41,2.55,2.52, 2.60,2.62,2.75,2.84,2.92,2.93,2.97,3.03,3.11,3.15, 3.21,3.32,3.35,3.41,3.51,3.52,3.51,3.69,3.76,3.86, 3.90,3.89,4.03,4.10,4.07,4.21,4.23,4.33,4.41,4.51, 4.53,4.66,4.63,4.78,4.80,4.76,4.86,4.83,5.02,5.14, 5.15,5.24,5.23,5.37,5.33,5.51,5.55,5.63,5.60,5.78, 5.90,5.96,5.97,5.91,6.05,6.20,6.13,6.21,6.28,6.29, 6.47,6.48,6.64,6.73,6.74,6.78,6.86,6.79,6.97,7.11, 7.13,7.19,7.23,7.35,7.36,7.28,7.46,7.63,7.60,7.68, 7.83,7.82,7.81,7.94,8.07,8.08,8.06,8.17,8.23,8.27, 8.37,8.44,8.59,8.63,8.76,8.72,8.74,8.85,8.95,8.99, 9.11,9.04,9.23,9.13,9.28,9.49,9.30,9.53,9.49,9.57, 9.80,9.72,9.62,9.89,9.91,10.04,10.08,10.20,10.23,10.29, 10.33,10.44,10.52,10.39,10.59,10.54,10.53,10.88,10.81,10.84, 11.11,10.97,11.16,11.13,11.33,11.31,11.32,11.44,11.47,11.58, 11.55,11.71,11.87,11.64,11.71,11.89,12.03,12.15,12.21,12.10, 12.11,12.25,12.26,12.35,12.40,12.46,12.84,12.82,12.70,12.92, 12.91,12.94,13.10,13.18,13.05,13.24,13.36,13.43,13.55,13.43, 13.50,13.58,13.58,13.78,13.93,13.62,13.89,14.03,14.19,13.94, 14.06,14.22,14.28,14.45,14.51,14.61,14.54,14.58,14.82,14.70, 14.67,14.86,15.15,14.87,15.18,15.28,15.19,15.37,15.41,15.18, 15.50,15.44,15.54,15.59,15.66,15.75,15.79,15.86,15.82,16.03, 16.25,15.95,16.12,16.43,16.30,16.60,16.51,16.52,16.64,16.58, 16.86,16.65,16.81,17.07,17.00,17.11,17.30,17.44,17.31,17.20, 17.32,17.63,17.41,17.82,17.68,17.62,17.75,17.84,17.97,17.84, 18.39,17.93,18.12,18.03,18.34,18.39,18.54,18.21,18.67,18.52, 18.77,18.92,18.79,18.95,18.90,18.95,19.09,19.09,19.21,19.38, 0.57,0.61,0.72,0.75,0.83,0.85,0.91,0.99,1.01,1.05, 1.12,1.16,1.26,1.30,1.31,1.36,1.47,1.40,1.51,1.58, 1.63,1.68,1.80,1.82,1.92,1.89,1.96,1.98,2.08,2.14, 2.19,2.22,2.32,2.33,2.43,2.46,2.52,2.49,2.59,2.69, 2.74,2.72,2.85,2.94,2.98,2.96,3.04,3.07,3.10,3.28, 3.22,3.33,3.29,3.52,3.47,3.59,3.50,3.62,3.69,3.74, 3.75,3.85,3.88,3.99,4.01,4.06,4.10,4.20,4.18,4.29, 4.29,4.36,4.52,4.40,4.49,4.62,4.63,4.83,4.78,4.96, 4.98,4.92,4.81,5.03,5.22,5.08,5.27,5.26,5.29,5.36, 5.44,5.52,5.62,5.59,5.65,5.63,5.78,5.80,5.79,6.09, 5.98,5.94,6.07,6.07,6.16,6.32,6.33,6.28,6.43,6.43, 6.42,6.60,6.51,6.62,6.67,6.86,6.88,6.75,6.92,6.96, 6.91,7.08,7.05,7.10,7.20,7.27,7.35,7.48,7.41,7.61, 7.62,7.79,7.59,7.80,7.62,7.82,8.01,7.96,8.04,8.23, 8.21,8.32,8.25,8.32,8.46,8.37,8.44,8.56,8.50,8.68, 8.68,8.71,8.87,8.84,8.69,8.93,9.03,9.12,9.04,9.16, 9.28,9.21,9.29,9.46,9.37,9.57,9.45,9.60,9.66,9.82, 9.79,9.92,9.81,9.89,10.03,10.00,10.05,10.16,10.26,10.23, 10.27,10.41,10.47,10.40,10.39,10.54,10.65,10.60,10.77,10.72, 10.75,10.88,11.02,10.90,10.90,11.09,11.14,11.09,11.29,11.42, 11.45,11.31,11.53,11.47,11.48,11.77,11.87,11.70,11.73,11.78, 12.05,12.07,12.07,12.02,12.12,12.18,12.31,12.12,12.46,12.49, 12.24,12.60,12.48,12.59,12.78,12.67,12.90,12.96,12.78,12.93, 13.00,13.09,13.10,13.24,13.24,13.11,13.22,13.33,13.56,13.26, 13.52,13.51,13.54,13.60,13.79,13.95,13.82,13.90,13.76,13.88, 14.05,14.08,14.15,14.15,14.35,14.41,14.23,14.45,14.53,14.70, 14.52,14.72,14.58,14.81,14.68,14.75,15.05,14.91,14.89,14.93, 15.10,15.12,15.07,15.23,15.35,15.58,15.37,15.48,15.74,15.62, 15.64,15.76,15.91,16.07,15.87,15.92,16.00,16.03,15.92,16.14, 0.51,0.56,0.59,0.64,0.65,0.71,0.74,0.83,0.84,0.90, 0.97,0.99,0.99,1.08,1.15,1.17,1.21,1.25,1.30,1.32, 1.42,1.43,1.47,1.53,1.59,1.53,1.62,1.73,1.74,1.81, 1.89,1.89,1.97,2.02,1.99,2.04,2.12,2.13,2.14,2.24, 2.28,2.38,2.35,2.40,2.48,2.50,2.54,2.60,2.64,2.70, 2.72,2.82,2.83,2.84,2.89,3.00,3.04,3.02,3.22,3.17, 3.19,3.35,3.25,3.31,3.32,3.37,3.52,3.46,3.57,3.55, 3.64,3.73,3.74,3.62,3.90,3.85,3.98,3.88,4.02,4.06, 4.17,4.05,4.15,4.26,4.39,4.28,4.38,4.49,4.49,4.48, 4.54,4.62,4.73,4.81,4.77,4.89,4.85,4.84,4.89,4.87, 4.94,5.04,5.08,5.10,5.16,5.16,5.27,5.42,5.42,5.42, 5.49,5.46,5.63,5.54,5.65,5.71,5.66,5.70,5.71,5.73, 5.85,5.94,6.08,6.10,6.12,6.16,6.30,6.22,6.26,6.41, 6.31,6.42,6.49,6.57,6.42,6.52,6.52,6.72,6.79,6.78, 6.74,6.94,6.84,6.88,7.03,7.03,7.13,7.17,7.24,7.41, 7.32,7.37,7.29,7.38,7.34,7.48,7.80,7.64,7.73,7.75, 7.72,7.76,7.83,7.77,8.01,7.99,8.02,8.15,7.99,8.12, 8.11,8.19,8.46,8.31,8.26,8.45,8.40,8.38,8.60,8.56, 8.67,8.57,8.65,8.79,8.74,8.79,8.94,9.09,9.09,9.06, 9.09,9.22,9.29,9.18,9.42,9.32,9.39,9.31,9.51,9.43, 9.57,9.51,9.80,9.64,9.67,9.61,9.77,9.77,10.04,10.02, 9.93,10.21,10.03,10.13,10.02,10.16,10.26,10.43,10.40,10.40, 10.34,10.48,10.54,10.35,10.57,10.57,10.81,10.65,10.66,10.94, 10.89,11.10,10.89,11.02,11.04,11.02,11.16,11.29,11.20,11.30, 11.25,11.38,11.53,11.52,11.59,11.71,11.65,11.75,11.87,11.78, 11.73,11.60,12.03,11.85,11.98,12.08,12.10,12.15,12.09,12.07, 12.39,12.17,12.30,12.58,12.44,12.53,12.39,12.68,12.72,12.83, 12.64,12.81,12.78,12.86,12.93,12.95,13.07,13.13,13.07,13.00, 13.24,13.11,13.25,13.34,13.51,13.39,13.37,13.35,13.41,13.63, 0.42,0.45,0.48,0.54,0.55,0.60,0.63,0.69,0.75,0.73, 0.83,0.87,0.85,0.85,0.87,1.02,1.05,1.07,1.08,1.16, 1.16,1.18,1.24,1.24,1.29,1.38,1.40,1.39,1.47,1.46, 1.48,1.58,1.61,1.64,1.71,1.74,1.75,1.80,1.84,1.89, 1.91,1.91,2.12,2.03,2.08,2.11,2.10,2.17,2.22,2.33, 2.28,2.32,2.40,2.43,2.36,2.50,2.61,2.58,2.61,2.65, 2.71,2.73,2.74,2.79,2.92,2.84,2.95,2.92,3.00,3.07, 2.97,3.12,3.13,3.19,3.21,3.24,3.24,3.38,3.34,3.41, 3.49,3.52,3.51,3.53,3.57,3.66,3.69,3.66,3.76,3.79, 3.75,3.88,3.81,3.82,3.92,4.10,4.08,4.11,4.20,4.20, 4.20,4.19,4.27,4.37,4.32,4.41,4.38,4.45,4.40,4.49, 4.46,4.61,4.58,4.71,4.72,4.73,4.83,4.91,4.96,4.94, 5.01,5.05,5.12,5.12,5.02,5.18,5.15,5.22,5.35,5.26, 5.31,5.35,5.43,5.46,5.39,5.45,5.49,5.57,5.63,5.63, 5.70,5.94,5.91,5.84,5.91,6.00,6.00,6.01,6.10,6.02, 6.08,6.21,6.08,6.24,6.22,6.27,6.29,6.42,6.42,6.51, 6.54,6.53,6.47,6.54,6.66,6.74,6.63,6.87,6.79,6.87, 6.85,6.75,6.94,7.09,7.04,7.09,7.05,7.20,7.12,7.28, 7.30,7.39,7.35,7.31,7.39,7.38,7.44,7.53,7.55,7.55, 7.67,7.75,7.79,7.49,7.77,7.90,8.05,7.84,7.86,8.02, 8.03,8.14,8.14,8.04,8.07,8.33,8.22,8.39,8.37,8.18, 8.44,8.44,8.70,8.57,8.61,8.57,8.67,8.66,8.69,8.77, 8.76,8.72,8.77,8.87,9.01,8.94,9.04,8.91,9.10,9.02, 9.09,9.31,9.22,9.31,9.26,9.42,9.41,9.26,9.37,9.33, 9.66,9.60,9.63,9.56,9.64,9.65,9.84,9.79,9.82,9.90, 9.95,9.94,9.94,10.23,9.95,10.31,10.22,10.17,10.02,10.41, 10.19,10.24,10.32,10.41,10.44,10.59,10.64,10.54,10.58,10.75, 10.68,10.43,10.76,10.86,10.89,10.95,10.94,10.86,11.00,11.06, 11.18,11.20,11.01,11.15,11.17,11.49,11.12,11.21,11.26,11.39, 0.32,0.37,0.39,0.43,0.47,0.50,0.51,0.55,0.57,0.61, 0.67,0.69,0.71,0.71,0.81,0.83,0.78,0.88,0.92,0.99, 0.97,0.97,1.02,1.05,1.08,1.19,1.15,1.20,1.25,1.31, 1.27,1.29,1.36,1.38,1.47,1.54,1.46,1.51,1.56,1.53, 1.59,1.60,1.71,1.74,1.71,1.74,1.78,1.85,1.94,1.96, 1.93,1.93,2.03,2.02,2.11,2.10,2.18,2.23,2.11,2.21, 2.26,2.36,2.26,2.40,2.41,2.37,2.43,2.48,2.57,2.57, 2.56,2.51,2.56,2.63,2.73,2.83,2.87,2.85,2.87,2.86, 2.78,2.84,2.92,2.98,2.97,3.02,3.18,3.09,3.16,3.12, 3.21,3.35,3.31,3.26,3.32,3.35,3.41,3.50,3.47,3.41, 3.60,3.53,3.55,3.74,3.69,3.69,3.82,3.77,3.83,3.83, 3.76,3.89,3.85,3.97,4.02,4.07,4.07,4.14,4.19,4.18, 4.11,4.22,4.09,4.25,4.33,4.30,4.34,4.36,4.54,4.41, 4.57,4.51,4.59,4.66,4.67,4.61,4.74,4.66,4.73,4.68, 4.75,4.86,4.92,4.92,5.05,5.00,5.05,4.94,5.09,4.97, 5.05,5.06,5.25,5.28,5.38,5.34,5.30,5.32,5.46,5.49, 5.40,5.44,5.52,5.50,5.60,5.62,5.68,5.62,5.78,5.76, 5.73,5.77,5.80,5.81,5.91,5.92,5.95,6.11,6.05,6.02, 6.07,5.98,6.08,6.13,6.30,6.13,6.31,6.42,6.38,6.29, 6.34,6.45,6.37,6.57,6.58,6.66,6.68,6.67,6.60,6.70, 6.82,6.68,6.86,6.80,6.88,6.93,6.98,7.02,7.04,6.98, 7.15,7.20,7.22,7.27,7.21,7.34,7.23,7.47,7.33,7.29, 7.41,7.44,7.43,7.49,7.51,7.37,7.58,7.62,7.70,7.72, 7.51,7.71,7.76,7.76,7.86,7.87,7.83,8.07,7.93,7.96, 7.87,8.02,8.16,8.25,8.07,8.13,8.00,8.25,8.26,8.25, 8.20,8.49,8.41,8.38,8.37,8.40,8.58,8.59,8.66,8.68, 8.81,8.51,8.73,8.76,8.77,8.73,8.75,8.99,8.87,8.89, 9.04,8.86,8.95,9.22,9.08,9.04,9.10,9.02,9.15,9.21, 9.21,9.33,9.34,9.37,9.38,9.47,9.38,9.41,9.37,9.61, 0.27,0.32,0.32,0.39,0.39,0.41,0.45,0.49,0.47,0.55, 0.54,0.55,0.60,0.63,0.69,0.71,0.76,0.77,0.79,0.83, 0.83,0.84,0.86,0.95,0.94,0.94,0.98,1.02,1.03,1.05, 1.08,1.11,1.15,1.18,1.22,1.22,1.20,1.31,1.32,1.35, 1.34,1.40,1.42,1.46,1.46,1.48,1.55,1.63,1.60,1.60, 1.62,1.71,1.65,1.65,1.70,1.83,1.75,1.85,1.78,1.79, 1.90,1.92,1.95,1.99,2.03,2.07,2.02,2.17,2.13,2.17, 2.12,2.20,2.20,2.25,2.30,2.39,2.29,2.28,2.36,2.32, 2.40,2.47,2.49,2.49,2.67,2.53,2.60,2.60,2.67,2.76, 2.75,2.66,2.66,2.78,2.77,2.88,2.87,2.85,2.95,2.94, 3.00,2.99,3.07,3.09,3.16,3.11,3.11,3.17,3.19,3.19, 3.23,3.19,3.20,3.28,3.38,3.35,3.43,3.39,3.48,3.44, 3.58,3.44,3.59,3.62,3.54,3.68,3.62,3.79,3.69,3.78, 3.77,3.66,3.76,3.84,3.89,3.84,3.89,3.90,3.99,3.88, 4.12,4.00,4.18,4.18,4.18,4.04,4.29,4.28,4.24,4.36, 4.25,4.32,4.32,4.43,4.39,4.43,4.35,4.44,4.54,4.53, 4.56,4.66,4.55,4.52,4.70,4.57,4.74,4.68,4.77,4.92, 4.73,4.91,4.97,4.96,5.10,4.95,4.99,5.14,5.13,5.11, 5.07,5.20,5.18,5.25,5.20,5.29,5.32,5.30,5.28,5.34, 5.20,5.45,5.32,5.50,5.55,5.52,5.51,5.53,5.54,5.80, 5.74,5.83,5.77,5.75,5.90,5.75,5.80,5.86,6.02,5.83, 5.88,5.82,6.08,5.94,6.03,6.05,5.99,6.11,6.06,6.10, 6.19,6.22,6.31,6.17,6.33,6.53,6.30,6.33,6.49,6.31, 6.49,6.35,6.49,6.61,6.67,6.68,6.60,6.67,6.65,6.71, 6.68,6.67,6.74,6.79,6.78,6.72,7.00,6.96,6.89,7.05, 6.94,6.82,7.12,7.10,6.92,7.15,7.21,7.14,7.26,7.31, 7.27,7.24,7.26,7.34,7.36,7.45,7.38,7.46,7.51,7.37, 7.52,7.69,7.65,7.57,7.67,7.62,7.69,7.67,8.03,7.91, 7.81,7.70,7.99,7.87,7.86,7.76,8.05,8.03,8.08,8.10, 3.45,3.82,4.06,4.42,4.74,5.09,5.36,5.81,6.02,6.42, 6.73,7.01,7.38,7.64,8.00,8.28,8.67,9.04,9.40,9.71, 9.99,10.23,10.63,11.01,11.21,11.54,11.93,12.23,12.60,12.88, 13.40,13.50,13.83,14.16,14.42,14.86,15.16,15.50,15.85,16.27, 16.52,16.94,17.18,17.38,17.84,17.93,18.60,18.92,19.14,19.45, 19.73,20.08,20.44,20.75,20.92,21.23,21.52,21.79,22.33,22.76, 22.95,23.23,23.77,24.00,24.39,24.79,24.93,25.29,25.72,25.87, 26.20,26.50,26.83,27.24,27.45,27.90,28.04,28.68,28.91,29.33, 29.43,29.83,30.09,30.64,30.70,31.03,31.35,31.73,32.00,32.42, 32.86,32.99,33.58,33.80,33.85,34.45,34.79,35.11,35.40,35.73, 36.10,36.32,36.66,36.77,37.33,37.70,37.94,38.12,38.62,38.97, 39.54,39.45,40.09,40.32,40.50,40.72,41.26,41.55,41.95,42.40, 42.44,42.86,43.08,43.42,43.63,44.17,44.44,45.05,45.09,45.40, 45.73,45.87,46.42,46.53,47.07,47.28,47.66,48.10,48.22,48.59, 48.82,49.35,49.70,50.23,50.58,50.67,50.92,51.41,51.61,51.90, 52.12,52.47,52.80,53.07,53.53,53.68,54.33,54.68,54.78,55.12, 55.72,55.86,56.23,56.43,57.18,57.25,57.42,57.87,58.12,58.37, 58.65,59.01,59.49,59.55,60.17,60.42,60.84,61.15,61.64,61.70, 62.14,62.52,62.56,62.96,63.19,63.57,64.11,64.47,64.65,64.87, 65.18,65.56,65.76,66.24,66.45,66.94,67.16,67.29,67.91,68.39, 68.78,68.84,69.30,69.43,69.80,70.08,70.49,70.70,70.87,71.20, 71.53,72.06,72.36,72.60,73.04,73.43,73.94,73.95,74.40,74.76, 75.16,75.26,75.40,75.73,76.26,76.52,76.86,77.17,77.83,77.82, 78.39,78.71,78.94,79.02,79.88,79.88,80.03,80.54,80.94,81.16, 81.68,82.14,82.16,82.68,82.89,82.81,83.51,83.84,84.02,84.59, 84.57,85.19,85.52,86.02,86.07,86.46,86.84,87.01,87.28,87.92, 88.19,88.82,88.45,89.17,89.47,89.81,90.12,90.23,90.76,90.46, 91.02,91.67,91.82,92.21,92.71,93.41,93.06,93.46,93.91,93.92, 94.56,94.98,95.09,95.47,95.58,95.95,96.56,96.70,97.03,97.49, 2.94,3.17,3.50,3.72,4.09,4.30,4.58,4.87,5.06,5.34, 5.71,5.97,6.31,6.57,6.72,7.02,7.43,7.58,7.87,8.13, 8.48,8.74,8.96,9.27,9.54,9.78,10.07,10.55,10.71,10.99, 11.27,11.51,11.90,12.03,12.47,12.49,12.90,13.22,13.48,13.63, 13.97,14.23,14.45,14.77,15.16,15.39,15.68,15.79,16.12,16.44, 16.79,16.83,17.25,17.54,17.94,18.05,18.52,18.68,18.84,19.30, 19.55,19.81,20.13,20.39,20.48,20.75,21.11,21.51,21.82,21.95, 22.34,22.62,22.86,23.18,23.29,23.57,23.87,24.17,24.49,24.82, 24.92,25.21,25.55,25.81,26.39,26.36,26.61,27.10,27.17,27.40, 27.93,28.04,28.51,28.54,29.00,29.39,29.55,29.69,29.96,30.25, 30.45,30.73,31.36,31.31,31.70,31.84,32.26,32.24,32.87,33.22, 33.17,33.43,33.68,34.10,34.60,34.73,34.94,35.17,35.33,35.85, 35.98,36.27,36.65,36.91,37.22,37.55,38.04,38.29,38.37,38.56, 39.10,39.08,39.56,39.67,39.82,40.13,40.54,40.78,41.17,41.38, 41.62,42.05,42.25,42.51,42.91,43.16,43.21,43.60,43.69,44.18, 44.42,44.81,45.08,44.95,45.20,45.69,45.79,46.51,46.62,47.27, 47.19,47.49,47.56,47.87,48.27,48.38,48.93,49.23,49.29,49.65, 50.01,50.16,50.39,50.97,50.77,51.58,51.57,51.96,52.06,52.20, 52.72,53.10,53.36,53.56,53.68,54.05,54.20,54.56,55.15,55.12, 55.35,55.82,56.06,56.16,56.29,56.80,57.16,57.48,57.66,58.09, 58.15,58.45,58.52,59.26,59.35,59.61,59.97,60.53,60.53,60.73, 61.00,61.53,61.51,61.97,62.20,62.53,62.84,62.80,63.05,63.54, 63.55,63.65,63.99,64.74,65.14,65.15,65.25,65.63,65.88,66.38, 66.50,66.65,67.22,67.14,67.44,67.86,68.39,68.52,68.72,69.05, 69.21,69.89,69.89,70.00,70.64,70.99,71.03,71.01,71.20,71.83, 71.93,72.33,72.71,72.94,73.35,73.53,73.58,73.90,74.08,74.67, 75.08,75.23,75.39,75.75,75.86,76.56,76.47,76.72,77.36,77.13, 77.69,77.45,78.12,78.67,78.78,78.62,78.89,79.57,79.77,80.13, 80.19,80.67,80.83,81.03,81.58,81.65,82.17,82.47,82.46,82.74, 2.48,2.74,2.92,3.18,3.37,3.65,3.92,4.13,4.39,4.58, 4.82,4.98,5.31,5.51,5.72,6.03,6.20,6.54,6.68,6.94, 7.22,7.50,7.58,7.79,8.25,8.28,8.55,8.70,9.14,9.26, 9.72,9.71,10.00,10.25,10.28,10.71,11.04,11.20,11.42,11.70, 11.86,12.21,12.21,12.64,12.86,13.00,13.38,13.43,13.75,14.12, 14.08,14.40,14.67,14.92,15.23,15.38,15.56,15.92,16.21,16.37, 16.64,16.88,17.01,17.20,17.47,17.91,18.00,18.20,18.54,18.63, 19.03,19.20,19.37,19.47,19.78,20.31,20.25,20.55,20.79,21.05, 21.22,21.50,21.80,21.91,22.48,22.35,22.70,22.95,23.20,23.37, 23.56,24.02,24.38,24.42,24.59,24.73,25.14,25.23,25.48,25.55, 26.15,26.20,26.47,26.75,26.89,27.20,27.38,27.81,27.82,28.09, 28.42,28.54,28.93,29.00,29.43,29.56,30.01,29.93,30.23,30.29, 30.78,30.77,30.98,31.53,31.59,32.04,32.12,32.56,32.51,32.86, 32.88,33.37,33.49,33.83,33.93,34.08,34.39,34.63,35.01,35.20, 35.43,35.70,35.84,36.05,36.44,36.59,36.93,37.20,37.38,37.65, 37.57,37.92,38.10,38.42,38.71,39.04,39.07,39.51,39.69,39.72, 40.16,40.53,40.59,40.69,40.87,40.81,41.72,41.65,41.60,42.27, 42.47,42.61,42.94,43.25,43.14,43.66,43.94,44.03,44.14,44.23, 44.80,44.97,45.31,45.56,45.79,46.01,46.19,46.35,46.79,46.60, 47.13,47.67,47.51,47.73,48.48,48.34,48.55,48.87,49.11,49.29, 49.42,49.64,50.01,50.45,50.40,51.05,50.81,51.09,51.25,51.65, 51.81,52.12,52.44,52.63,52.86,53.03,53.27,53.57,53.95,54.15, 54.14,54.33,54.63,54.91,55.25,55.47,55.95,55.84,56.36,56.47, 56.45,56.79,56.89,57.38,57.54,57.78,57.99,58.22,58.37,58.57, 58.98,59.17,59.16,59.58,59.68,60.06,60.15,60.31,60.79,61.09, 61.22,61.24,61.45,61.95,62.26,62.73,62.28,62.89,63.14,63.43, 63.76,64.02,64.11,64.30,64.58,64.39,64.61,65.18,65.62,65.81, 66.00,66.04,66.42,66.72,67.02,66.95,67.53,67.74,67.90,68.15, 68.43,68.35,68.78,69.00,69.06,69.27,69.66,69.60,70.05,69.91, 2.17,2.29,2.48,2.73,2.94,3.11,3.30,3.46,3.66,3.89, 4.14,4.33,4.55,4.69,4.83,5.07,5.31,5.51,5.78,5.98, 6.17,6.35,6.45,6.67,6.98,7.20,7.26,7.49,7.73,7.84, 8.07,8.30,8.55,8.67,8.81,8.97,9.32,9.44,9.68,9.94, 10.14,10.20,10.53,10.74,10.97,11.27,11.31,11.41,11.55,11.98, 12.12,12.27,12.41,12.68,13.10,13.08,13.32,13.71,13.77,13.94, 14.12,14.32,14.59,14.65,14.77,14.98,15.30,15.51,15.76,15.91, 16.00,16.27,16.40,16.54,16.80,17.13,17.20,17.39,17.82,17.80, 18.13,18.23,18.62,18.63,18.99,19.29,19.18,19.57,19.61,19.93, 20.08,20.31,20.49,20.82,20.99,21.08,21.23,21.70,21.94,21.80, 22.02,22.32,22.43,22.77,22.90,23.13,23.16,23.51,23.65,23.78, 24.27,24.27,24.58,24.80,24.97,25.21,25.27,25.56,25.62,25.75, 26.14,26.16,26.47,26.74,26.84,26.91,27.41,27.21,27.85,27.93, 27.98,28.21,28.40,28.60,28.91,29.28,29.39,29.45,29.74,30.02, 30.12,30.42,30.51,30.83,30.73,31.09,31.57,31.52,31.67,31.77, 32.04,32.08,32.49,32.77,32.87,32.94,33.19,33.38,33.83,33.89, 34.07,34.11,34.46,34.60,34.94,35.29,35.26,35.28,35.74,35.58, 36.03,36.37,36.65,36.78,37.09,37.10,37.43,37.55,37.78,38.02, 38.16,38.52,38.47,38.72,39.01,39.10,39.45,39.53,39.65,39.89, 40.00,40.17,40.64,40.45,40.78,41.19,41.38,41.45,41.71,41.79, 41.97,42.30,42.52,42.75,42.69,43.02,43.36,43.34,43.76,43.85, 43.91,44.51,44.57,44.91,45.03,44.96,45.34,45.41,45.61,46.22, 46.18,46.30,46.36,46.72,46.88,47.11,47.09,47.35,47.77,47.70, 47.75,48.25,48.50,48.86,48.76,49.14,49.60,49.66,49.49,49.93, 50.00,50.24,50.55,50.47,50.53,51.10,51.14,51.56,51.85,51.78, 51.94,52.15,52.42,52.73,52.53,52.82,53.26,53.37,53.67,53.99, 54.08,54.32,54.55,54.74,54.79,54.97,55.36,55.32,55.50,55.57, 56.62,56.49,56.39,56.50,56.86,57.17,57.15,57.24,57.53,57.82, 58.16,58.51,58.69,58.69,59.03,59.03,59.12,59.37,59.79,59.97, 1.77,1.95,2.09,2.32,2.53,2.65,2.81,3.02,3.15,3.30, 3.48,3.69,3.85,4.01,4.13,4.41,4.55,4.65,4.81,5.03, 5.25,5.35,5.50,5.78,5.85,6.10,6.29,6.32,6.46,6.69, 6.92,7.00,7.27,7.45,7.58,7.65,7.93,8.12,8.25,8.47, 8.70,8.61,8.91,9.14,9.22,9.37,9.60,9.77,9.98,10.07, 10.28,10.41,10.55,10.81,11.02,11.13,11.35,11.45,11.69,11.94, 11.95,12.20,12.22,12.47,12.61,12.96,13.07,13.19,13.34,13.60, 13.77,13.83,13.94,14.20,14.25,14.44,14.58,14.83,14.97,15.10, 15.32,15.57,15.71,15.90,16.05,16.21,16.42,16.72,16.71,16.89, 17.07,17.26,17.45,17.55,17.68,17.86,18.01,18.18,18.59,18.75, 18.65,18.94,19.04,19.27,19.39,19.86,19.83,19.90,20.11,20.27, 20.46,20.52,20.84,20.94,21.16,21.47,21.59,21.64,21.86,21.99, 22.24,22.35,22.54,22.75,22.69,23.16,23.05,23.51,23.52,23.55, 23.95,23.84,24.30,24.42,24.54,24.44,24.90,25.17,25.40,25.39, 25.61,25.62,25.84,26.04,26.17,26.45,26.56,26.92,26.77,27.29, 27.21,27.60,27.53,27.64,28.15,28.45,27.99,28.27,28.71,28.87, 28.98,29.01,29.49,29.64,29.64,29.74,29.87,30.16,30.15,30.45, 30.51,30.88,30.96,31.29,31.51,31.57,31.51,31.88,32.16,32.27, 32.44,32.29,32.83,32.78,33.12,33.16,33.44,33.45,33.85,34.02, 33.98,34.19,34.40,34.80,35.13,34.80,35.31,35.21,35.30,35.42, 35.64,36.03,36.07,36.22,36.19,36.68,36.77,37.14,37.14,37.25, 37.52,37.49,37.74,37.96,38.00,38.26,38.16,38.67,39.01,39.01, 39.31,39.18,39.66,39.44,39.95,40.10,40.19,40.38,40.76,40.72, 41.08,40.87,41.25,41.22,41.58,41.77,42.10,42.01,42.32,42.12, 42.34,42.86,42.99,43.42,43.39,43.35,43.55,43.66,44.05,44.12, 44.36,44.35,44.41,44.66,44.82,45.02,45.58,45.10,45.80,45.80, 45.93,46.31,46.33,46.27,46.69,46.79,47.06,47.55,47.59,47.28, 47.68,48.15,47.86,48.04,48.52,48.49,48.46,48.88,49.22,49.13, 49.18,49.57,49.96,50.13,50.17,50.12,50.33,50.41,50.33,51.01, 1.50,1.65,1.81,1.97,2.17,2.35,2.36,2.56,2.71,2.81, 2.97,3.09,3.29,3.46,3.60,3.71,3.81,3.96,4.11,4.35, 4.38,4.52,4.70,4.77,4.96,5.17,5.31,5.40,5.54,5.68, 5.76,6.08,6.11,6.33,6.39,6.55,6.67,6.79,7.06,7.16, 7.34,7.55,7.60,7.67,7.90,8.11,8.23,8.31,8.34,8.54, 8.74,8.74,9.06,9.23,9.43,9.41,9.68,9.70,9.92,10.10, 10.05,10.29,10.36,10.57,10.76,10.96,11.00,11.27,11.30,11.54, 11.82,11.73,11.84,12.04,12.14,12.37,12.66,12.62,12.85,12.93, 12.92,13.28,13.41,13.66,13.57,13.78,13.80,14.18,14.32,14.36, 14.68,14.76,14.70,15.04,15.23,15.36,15.13,15.47,15.68,15.74, 15.91,16.23,16.18,16.23,16.71,16.59,16.94,17.17,17.31,17.17, 17.59,17.60,17.71,17.87,17.65,18.26,18.28,18.28,18.53,18.81, 18.77,19.04,19.05,19.29,19.47,19.50,19.57,19.96,19.83,20.08, 20.25,20.45,20.53,20.81,20.66,21.02,21.07,21.23,21.44,21.67, 21.54,21.97,22.00,22.24,22.26,22.44,22.67,22.75,22.90,23.00, 23.32,23.45,23.58,23.73,23.90,23.87,24.05,23.98,24.55,24.50, 24.65,24.81,24.98,24.99,25.10,25.32,25.46,25.42,25.95,25.91, 26.11,26.19,26.55,26.52,26.63,26.95,26.94,27.10,27.18,27.59, 27.42,27.62,27.88,28.09,28.04,28.51,28.45,28.42,28.47,28.81, 28.86,29.14,29.02,29.39,29.75,29.83,30.03,30.19,30.09,30.06, 30.52,30.49,30.56,30.80,31.14,31.18,31.30,31.41,31.61,31.73, 31.77,32.24,32.00,32.20,32.48,32.37,32.66,33.20,32.86,32.97, 33.33,33.22,33.49,33.63,33.84,33.83,33.89,34.17,34.56,34.49, 34.84,34.79,34.94,35.03,35.15,35.26,35.51,35.77,36.06,35.72, 36.23,36.43,36.44,36.39,36.77,36.96,37.01,37.00,37.14,37.48, 37.71,37.85,37.85,38.15,37.98,38.33,38.25,38.62,38.94,38.92, 38.88,39.33,39.38,39.91,39.74,39.52,39.97,40.37,40.05,40.41, 40.69,40.63,40.79,40.89,41.34,41.46,41.57,41.34,41.61,41.62, 41.73,42.05,41.96,42.52,42.31,42.79,42.92,42.90,43.11,43.41, 1.28,1.48,1.56,1.70,1.79,1.87,1.97,2.14,2.33,2.38, 2.52,2.68,2.70,2.96,3.05,3.10,3.22,3.43,3.55,3.67, 3.78,3.82,4.01,4.10,4.25,4.28,4.41,4.54,4.77,4.88, 5.01,5.19,5.22,5.34,5.53,5.53,5.74,5.84,5.88,6.07, 6.21,6.42,6.44,6.59,6.58,6.87,7.06,7.12,7.19,7.47, 7.32,7.54,7.61,7.80,7.96,7.92,8.18,8.31,8.45,8.52, 8.56,8.65,8.98,9.00,9.19,9.33,9.32,9.38,9.56,9.84, 9.89,9.95,10.05,10.39,10.44,10.44,10.66,10.81,10.93,10.84, 11.26,11.27,11.42,11.45,11.56,11.66,11.85,11.98,12.04,12.19, 12.37,12.41,12.75,12.71,12.92,12.87,13.19,13.24,13.44,13.52, 13.50,13.75,13.95,14.08,13.96,14.14,14.37,14.51,14.65,14.78, 14.86,14.87,15.01,15.22,15.23,15.51,15.48,15.61,16.08,15.95, 16.05,16.04,16.28,16.55,16.63,16.50,16.84,16.82,16.99,17.02, 17.10,17.46,17.44,17.56,17.84,17.78,18.10,18.15,18.38,18.34, 18.51,18.68,18.75,18.95,19.07,19.02,19.09,19.31,19.45,19.57, 19.63,19.75,19.78,20.21,20.22,20.33,20.57,20.51,20.65,20.79, 20.96,21.24,21.38,21.33,21.48,21.45,21.80,21.84,21.94,22.00, 22.14,22.32,22.09,22.36,22.52,22.76,22.92,23.04,22.97,23.55, 23.39,23.57,23.63,23.67,23.84,23.84,24.13,24.14,24.42,24.45, 24.55,24.80,24.83,24.79,25.29,25.16,25.25,25.41,25.76,25.77, 25.60,25.85,26.06,26.27,26.35,26.39,26.54,26.75,26.66,26.53, 27.06,27.08,27.02,27.55,27.60,27.66,27.55,27.98,28.10,28.34, 28.53,28.35,28.64,28.56,28.56,29.05,28.84,29.34,29.07,29.18, 29.70,29.46,29.90,30.11,30.30,30.02,30.14,30.30,30.56,30.61, 30.71,30.91,31.15,31.02,31.07,31.24,31.25,31.52,31.71,31.87, 31.75,32.16,32.21,32.38,32.60,32.72,32.58,32.76,32.91,33.21, 33.11,33.05,33.40,33.50,33.73,33.87,33.88,33.95,34.24,34.33, 34.46,34.33,34.70,34.73,34.97,35.20,35.35,35.43,35.34,35.22, 35.64,35.71,35.86,35.97,36.30,35.99,36.36,36.53,36.58,36.80, 1.13,1.26,1.30,1.37,1.51,1.65,1.75,1.84,2.01,2.04, 2.14,2.25,2.37,2.41,2.59,2.64,2.68,2.86,2.99,3.08, 3.15,3.35,3.41,3.51,3.50,3.83,3.84,3.85,4.00,4.16, 4.23,4.29,4.46,4.51,4.55,4.69,4.84,4.98,4.89,5.14, 5.28,5.39,5.51,5.59,5.66,5.86,5.86,6.10,6.08,6.21, 6.30,6.41,6.54,6.64,6.73,6.80,6.95,7.11,7.28,7.37, 7.30,7.43,7.59,7.77,7.75,7.98,7.92,8.17,8.23,8.19, 8.48,8.33,8.59,8.72,8.70,8.75,8.98,9.19,9.20,9.23, 9.41,9.43,9.48,9.69,9.89,10.04,10.02,10.11,10.19,10.37, 10.62,10.58,10.71,10.81,11.06,11.12,11.02,11.34,11.39,11.46, 11.59,11.63,11.66,11.78,12.07,11.91,12.16,12.29,12.41,12.33, 12.57,12.66,12.82,12.93,12.95,13.10,13.11,13.31,13.62,13.39, 13.66,13.79,13.98,13.83,14.08,14.08,14.25,14.38,14.49,14.62, 14.74,14.74,14.97,14.88,15.00,15.32,15.32,15.15,15.38,15.60, 15.69,15.88,16.05,16.02,16.09,16.17,16.33,16.48,16.50,16.56, 16.64,16.64,16.94,17.13,17.04,17.26,17.40,17.34,17.52,17.54, 17.84,17.92,18.13,18.16,18.25,18.35,18.41,18.66,18.50,18.67, 18.86,19.06,18.85,19.17,19.27,19.42,19.52,19.79,19.77,19.76, 19.80,20.03,20.09,20.12,20.43,20.38,20.61,20.70,20.71,20.80, 20.91,21.02,21.03,21.32,21.21,21.32,21.35,21.67,21.88,21.86, 22.06,22.15,22.18,22.21,22.45,22.54,22.75,22.76,22.98,23.02, 22.80,23.05,23.25,22.98,23.35,23.71,23.73,23.83,23.84,24.00, 24.07,24.22,24.04,24.60,24.81,24.71,24.68,24.89,24.61,25.07, 25.10,25.47,25.28,25.42,25.26,25.45,25.91,25.76,25.93,26.15, 26.16,26.36,26.30,26.67,26.50,26.84,26.70,26.78,26.75,27.18, 27.23,27.04,27.31,27.46,27.45,27.80,27.84,28.04,27.94,28.08, 28.29,28.36,28.52,28.53,28.52,28.89,28.72,28.85,29.21,29.17, 29.22,29.51,29.51,29.53,29.69,29.76,29.85,29.87,30.02,30.15, 30.42,30.34,30.63,30.66,30.76,30.71,31.11,31.06,31.20,31.41, 0.94,1.04,1.11,1.22,1.26,1.40,1.52,1.60,1.61,1.76, 1.82,1.87,2.02,2.10,2.18,2.32,2.35,2.45,2.53,2.63, 2.77,2.79,2.92,3.10,3.06,3.12,3.21,3.25,3.49,3.51, 3.62,3.60,3.79,3.82,3.95,4.03,4.13,4.15,4.31,4.33, 4.53,4.54,4.62,4.79,4.86,4.96,5.07,5.05,5.22,5.25, 5.39,5.49,5.48,5.72,5.75,5.83,5.86,5.92,6.11,6.25, 6.22,6.25,6.32,6.54,6.58,6.61,6.87,6.96,7.17,7.03, 7.04,7.17,7.29,7.38,7.40,7.55,7.59,7.83,7.95,8.07, 8.00,8.14,8.26,8.20,8.35,8.38,8.55,8.54,8.81,8.82, 8.86,8.91,9.12,9.14,9.25,9.42,9.43,9.53,9.62,9.60, 9.78,9.75,9.89,10.10,10.02,10.22,10.27,10.35,10.51,10.71, 10.79,10.68,10.88,11.03,11.04,11.13,11.08,11.33,11.50,11.63, 11.56,11.60,11.84,11.80,11.91,12.15,12.15,12.22,12.27,12.39, 12.39,12.54,12.59,12.69,12.96,12.89,12.88,13.09,13.29,13.12, 13.44,13.31,13.53,13.55,13.74,13.84,13.88,14.13,14.06,14.40, 14.04,14.32,14.50,14.57,14.64,14.61,14.88,14.86,15.02,14.91, 15.00,15.32,15.30,15.32,15.42,15.68,15.85,15.58,15.79,15.89, 15.89,15.95,16.14,16.25,16.27,16.47,16.58,16.70,16.55,16.59, 16.83,16.95,17.04,16.98,17.13,17.26,17.37,17.45,17.49,17.73, 17.84,17.89,17.79,17.96,17.98,18.38,18.57,18.32,18.65,18.66, 18.82,18.81,18.88,18.93,19.24,19.10,19.27,19.22,19.17,19.67, 19.49,19.86,19.96,19.79,19.95,20.10,20.04,20.10,20.35,20.57, 20.49,20.67,20.53,20.80,20.70,20.94,20.78,21.23,21.12,21.43, 21.43,21.46,21.43,21.73,21.73,21.67,21.71,22.01,22.08,21.91, 22.28,22.29,22.27,22.42,22.32,22.77,22.99,22.89,22.86,22.98, 22.98,23.21,23.30,23.44,23.27,23.43,23.76,23.79,23.94,23.74, 24.00,24.09,24.08,24.30,24.33,24.36,24.50,24.65,24.62,24.80, 24.70,25.04,24.94,25.22,25.36,25.33,25.41,25.37,25.45,25.65, 25.86,26.04,25.61,26.22,26.21,26.20,26.25,26.53,26.41,26.47, 0.80,0.88,0.93,0.94,1.09,1.13,1.22,1.29,1.42,1.50, 1.56,1.62,1.69,1.83,1.90,1.99,1.97,2.05,2.13,2.13, 2.31,2.42,2.41,2.54,2.58,2.63,2.75,2.76,2.92,3.07, 3.10,3.19,3.17,3.29,3.43,3.38,3.51,3.65,3.66,3.77, 3.96,3.91,3.98,4.16,4.11,4.18,4.27,4.34,4.33,4.45, 4.55,4.62,4.77,4.77,4.86,4.93,5.04,5.11,5.19,5.23, 5.38,5.42,5.39,5.56,5.71,5.88,5.80,5.89,5.81,6.05, 6.15,6.29,6.31,6.27,6.33,6.53,6.54,6.71,6.66,6.67, 6.86,6.90,6.95,6.98,7.04,7.17,7.32,7.43,7.33,7.58, 7.53,7.51,7.77,7.82,7.90,8.13,7.97,8.03,8.20,8.16, 8.43,8.44,8.47,8.55,8.73,8.67,8.65,8.93,9.09,8.96, 9.04,9.25,9.27,9.30,9.36,9.40,9.56,9.60,9.60,9.66, 9.97,9.82,9.90,10.12,10.11,10.22,10.25,10.20,10.49,10.43, 10.47,10.56,10.64,10.86,10.97,11.04,11.05,11.31,11.39,11.23, 11.23,11.46,11.45,11.60,11.79,11.69,11.83,11.86,11.89,12.18, 12.10,12.19,12.29,12.30,12.29,12.56,12.54,12.63,12.59,12.82, 12.77,12.78,13.08,13.06,13.25,13.20,13.32,13.43,13.40,13.45, 13.63,13.55,13.64,13.86,13.69,14.10,13.99,13.96,14.23,14.27, 14.45,14.37,14.72,14.70,14.41,14.78,14.91,14.85,14.95,15.07, 15.01,15.16,15.38,15.28,15.59,15.48,15.48,15.77,15.74,15.76, 15.78,15.81,15.88,16.04,16.00,16.26,16.26,16.43,16.32,16.51, 16.49,16.77,16.68,16.77,16.88,17.02,17.08,17.08,17.15,17.47, 16.98,17.51,17.57,17.45,17.80,17.55,17.84,17.77,17.98,17.93, 18.21,18.07,18.31,18.63,18.29,18.34,18.45,18.61,18.77,18.99, 18.81,19.07,19.02,19.04,19.16,19.09,19.50,19.45,19.47,19.57, 19.66,19.56,19.69,19.66,19.77,20.02,20.36,20.24,20.27,20.36, 20.33,20.62,20.78,20.46,20.87,20.76,20.78,20.78,21.00,21.31, 21.08,21.24,21.32,21.37,21.24,21.58,21.57,21.75,21.82,21.84, 21.96,22.05,22.30,22.19,22.29,22.32,22.33,22.24,22.44,22.56, 0.66,0.73,0.82,0.89,0.99,0.97,1.03,1.12,1.19,1.26, 1.35,1.38,1.44,1.45,1.64,1.57,1.71,1.80,1.76,1.92, 2.00,2.06,2.04,2.14,2.31,2.28,2.37,2.37,2.46,2.50, 2.59,2.68,2.75,2.83,2.79,3.00,2.97,3.09,3.13,3.17, 3.26,3.29,3.31,3.49,3.46,3.45,3.58,3.67,3.69,3.84, 3.79,3.88,4.01,4.00,4.12,4.19,4.34,4.27,4.42,4.47, 4.47,4.53,4.72,4.74,4.69,4.83,4.93,4.83,4.87,5.14, 5.18,5.21,5.25,5.45,5.40,5.47,5.59,5.72,5.69,5.81, 5.79,5.91,5.98,5.96,6.06,6.15,6.18,6.07,6.37,6.47, 6.33,6.49,6.60,6.58,6.62,6.88,6.83,6.78,6.95,7.17, 7.09,7.13,7.11,7.33,7.20,7.42,7.53,7.41,7.67,7.61, 7.72,7.81,7.74,7.91,8.06,8.05,8.04,8.21,8.26,8.30, 8.52,8.28,8.36,8.62,8.55,8.55,8.78,8.94,8.81,8.91, 9.11,9.14,8.93,9.18,9.27,9.47,9.27,9.57,9.54,9.49, 9.61,9.72,9.85,9.81,9.79,9.78,10.08,10.16,10.18,10.23, 10.25,10.43,10.42,10.39,10.60,10.65,10.63,10.74,10.80,10.86, 10.77,10.96,11.01,11.17,11.24,11.30,11.28,11.38,11.48,11.55, 11.62,11.48,11.74,11.77,11.76,11.96,12.21,11.98,12.02,12.27, 12.25,12.20,12.34,12.52,12.58,12.66,12.64,12.75,12.62,12.99, 12.77,12.86,12.65,13.01,13.26,13.21,13.20,13.35,13.39,13.43, 13.31,13.52,13.55,13.71,13.75,13.67,13.82,13.84,13.99,14.15, 14.22,14.17,14.13,14.20,14.24,14.53,14.51,14.54,14.58,14.51, 14.93,14.80,14.95,14.92,15.00,14.96,15.16,15.27,15.16,15.30, 15.48,15.53,15.63,15.58,15.69,15.82,15.77,15.96,15.78,16.18, 15.97,16.07,16.05,16.23,16.35,16.10,16.61,16.43,16.41,16.70, 16.81,16.71,16.76,16.85,17.05,17.10,17.18,17.15,17.20,17.24, 17.23,17.37,17.42,17.61,17.75,17.43,17.79,17.88,17.79,18.09, 17.92,18.17,18.11,18.41,18.11,18.68,18.48,18.36,18.34,18.55, 18.54,18.51,18.63,18.91,19.05,19.16,19.00,19.04,19.27,19.21, 0.63,0.66,0.70,0.73,0.77,0.83,0.92,0.96,1.05,1.10, 1.17,1.14,1.27,1.28,1.41,1.37,1.46,1.49,1.50,1.60, 1.69,1.73,1.80,1.83,1.88,2.01,2.00,2.02,2.11,2.15, 2.28,2.32,2.28,2.35,2.44,2.49,2.50,2.56,2.67,2.74, 2.76,2.85,2.85,2.94,3.06,3.08,3.09,3.20,3.24,3.22, 3.38,3.31,3.39,3.49,3.49,3.61,3.67,3.79,3.78,3.79, 3.90,3.94,3.94,4.01,3.95,4.13,4.22,4.11,4.24,4.45, 4.50,4.43,4.53,4.53,4.56,4.71,4.80,4.71,4.85,4.78, 4.97,5.06,5.08,5.10,5.19,5.20,5.15,5.23,5.34,5.54, 5.46,5.51,5.53,5.56,5.55,5.74,5.88,5.86,5.85,6.00, 6.04,6.10,6.05,6.29,6.23,6.39,6.29,6.35,6.37,6.54, 6.58,6.66,6.72,6.76,6.71,6.68,6.96,6.84,7.00,7.11, 7.01,7.14,7.23,7.33,7.37,7.34,7.52,7.57,7.60,7.62, 7.58,7.55,7.77,7.72,7.83,7.94,7.97,7.97,8.08,8.11, 8.15,8.28,8.40,8.44,8.35,8.38,8.44,8.58,8.63,8.79, 8.70,8.71,9.00,8.86,8.94,9.05,9.12,9.09,9.23,9.31, 9.33,9.28,9.34,9.44,9.53,9.64,9.59,9.52,9.70,9.78, 9.88,9.73,10.00,9.83,10.12,10.07,10.12,10.19,10.27,10.38, 10.51,10.27,10.57,10.41,10.74,10.52,10.82,10.70,10.92,10.92, 10.94,11.28,11.07,10.99,11.20,11.29,11.13,11.32,11.58,11.46, 11.40,11.58,11.54,11.59,11.64,11.85,11.73,11.93,11.96,11.93, 12.27,12.10,12.04,12.23,12.17,12.41,12.42,12.38,12.31,12.59, 12.58,12.57,12.73,12.88,12.76,12.79,12.92,12.69,13.24,12.86, 13.21,13.27,13.42,13.37,13.35,13.41,13.50,13.70,13.32,13.55, 13.74,13.67,13.77,13.77,13.90,13.85,13.99,13.99,14.09,14.00, 14.22,14.12,14.27,14.38,14.37,14.31,14.58,14.62,14.76,14.90, 14.76,14.64,14.97,14.95,14.87,15.09,15.08,15.16,15.38,15.20, 15.13,15.47,15.54,15.54,15.47,15.75,15.53,15.64,15.62,15.73, 15.94,15.90,15.82,15.93,16.13,16.25,16.24,16.22,16.27,16.30, 0.50,0.54,0.55,0.67,0.66,0.72,0.75,0.87,0.85,0.93, 0.93,0.97,1.04,1.09,1.11,1.22,1.28,1.23,1.32,1.33, 1.41,1.42,1.50,1.57,1.62,1.61,1.66,1.70,1.75,1.87, 1.89,1.95,2.01,2.03,2.10,2.15,2.21,2.21,2.34,2.31, 2.31,2.37,2.48,2.47,2.44,2.61,2.67,2.63,2.76,2.81, 2.78,2.86,2.86,2.96,3.03,3.00,3.13,3.08,3.14,3.19, 3.25,3.40,3.37,3.45,3.44,3.49,3.55,3.58,3.60,3.69, 3.66,3.84,3.85,3.87,3.86,3.84,4.00,4.15,4.20,4.08, 4.13,4.22,4.17,4.35,4.36,4.45,4.50,4.60,4.64,4.54, 4.57,4.54,4.68,4.76,4.82,4.93,4.98,4.94,5.03,5.13, 5.18,5.03,5.19,5.18,5.21,5.41,5.45,5.38,5.56,5.57, 5.60,5.73,5.65,5.67,5.75,5.68,5.80,5.92,5.88,6.01, 6.17,6.03,6.12,6.18,6.21,6.21,6.21,6.42,6.36,6.36, 6.49,6.54,6.70,6.70,6.71,6.83,6.79,6.83,6.92,6.90, 7.03,6.97,7.08,7.11,7.20,7.25,7.34,7.26,7.21,7.39, 7.46,7.52,7.46,7.60,7.58,7.63,7.64,7.72,7.77,7.76, 7.71,7.93,7.99,8.03,8.08,8.09,8.20,8.16,8.16,8.23, 8.27,8.53,8.37,8.45,8.55,8.58,8.59,8.73,8.88,8.79, 8.69,8.85,8.92,8.97,9.00,9.12,9.09,9.13,9.16,9.34, 9.18,9.35,9.26,9.50,9.49,9.54,9.48,9.65,9.58,9.72, 9.77,9.75,10.03,9.85,9.88,9.96,10.28,9.95,10.14,10.33, 10.22,10.24,10.33,10.38,10.40,10.40,10.40,10.49,10.53,10.65, 10.68,10.67,10.56,10.78,10.95,10.84,10.98,11.03,10.95,11.08, 11.05,11.17,11.13,11.32,11.30,11.26,11.45,11.35,11.39,11.55, 11.53,11.68,11.80,11.79,11.75,11.78,11.89,11.92,11.99,11.87, 12.12,12.24,12.23,12.23,12.36,12.31,12.40,12.25,12.38,12.56, 12.40,12.51,12.66,12.68,12.65,12.64,12.67,12.93,12.82,13.07, 12.99,13.05,13.06,13.09,13.15,13.02,13.16,13.44,13.48,13.26, 13.46,13.55,13.62,13.49,13.48,13.58,13.67,13.89,13.93,13.81, 0.37,0.48,0.49,0.54,0.57,0.60,0.65,0.71,0.69,0.79, 0.83,0.84,0.94,0.89,0.93,1.01,1.05,1.05,1.10,1.13, 1.16,1.22,1.29,1.31,1.36,1.40,1.46,1.51,1.47,1.54, 1.57,1.62,1.62,1.68,1.80,1.76,1.80,1.92,1.87,1.92, 1.95,1.98,2.05,2.10,2.09,2.26,2.27,2.27,2.28,2.39, 2.37,2.46,2.54,2.55,2.50,2.55,2.62,2.67,2.74,2.73, 2.74,2.74,2.81,2.92,2.88,2.96,3.02,3.16,3.04,3.14, 3.13,3.24,3.23,3.30,3.42,3.29,3.44,3.39,3.50,3.47, 3.53,3.67,3.55,3.75,3.78,3.68,3.79,3.75,3.90,4.01, 3.98,4.14,3.92,4.06,4.20,4.20,4.23,4.19,4.30,4.33, 4.33,4.28,4.48,4.50,4.49,4.62,4.56,4.67,4.62,4.66, 4.71,4.77,4.70,4.78,4.84,4.98,4.99,5.06,4.99,5.17, 5.12,5.21,5.25,5.47,5.22,5.41,5.36,5.44,5.46,5.46, 5.63,5.55,5.56,5.71,5.69,5.70,5.75,5.94,5.77,5.84, 5.91,5.91,5.94,6.04,6.14,6.00,6.01,6.19,6.18,6.26, 6.41,6.25,6.33,6.44,6.47,6.60,6.59,6.62,6.70,6.68, 6.56,6.66,6.87,6.76,6.95,6.83,6.94,6.93,7.07,7.03, 7.00,7.12,7.21,7.18,7.35,7.32,7.46,7.40,7.47,7.36, 7.49,7.54,7.51,7.57,7.74,7.77,7.74,7.88,7.78,7.73, 7.88,7.88,7.93,8.07,8.04,8.03,8.19,8.12,8.28,8.25, 8.31,8.33,8.35,8.35,8.40,8.40,8.44,8.54,8.66,8.60, 8.70,8.77,8.69,8.73,8.81,8.85,8.89,8.80,8.75,8.99, 9.01,9.15,9.08,9.22,9.29,9.14,9.14,9.27,9.46,9.39, 9.35,9.41,9.60,9.69,9.80,9.75,9.84,9.77,9.78,9.78, 9.92,9.98,9.79,9.84,10.02,9.97,10.32,10.19,10.22,10.14, 10.15,10.22,10.41,10.30,10.37,10.44,10.51,10.49,10.55,10.55, 10.73,10.84,10.60,10.84,10.68,10.85,10.98,10.81,10.95,10.95, 11.02,11.16,11.01,11.22,11.27,11.15,11.33,11.29,11.40,11.32, 11.33,11.28,11.48,11.48,11.56,11.65,11.59,11.80,11.81,11.87, 0.34,0.39,0.39,0.47,0.47,0.51,0.54,0.56,0.62,0.64, 0.67,0.69,0.76,0.82,0.84,0.83,0.96,0.89,0.94,0.97, 1.01,1.06,1.10,1.15,1.18,1.22,1.22,1.22,1.29,1.34, 1.29,1.38,1.46,1.43,1.45,1.47,1.59,1.65,1.52,1.66, 1.76,1.66,1.77,1.78,1.79,1.87,1.94,1.96,1.92,2.00, 2.05,2.04,2.11,2.14,2.16,2.25,2.18,2.33,2.25,2.26, 2.37,2.35,2.44,2.54,2.47,2.52,2.59,2.61,2.57,2.69, 2.62,2.70,2.83,2.72,2.77,2.84,2.88,2.84,3.04,2.99, 2.98,3.04,3.11,3.17,3.25,3.19,3.25,3.24,3.20,3.34, 3.29,3.34,3.47,3.47,3.58,3.64,3.57,3.61,3.74,3.66, 3.78,3.65,3.72,3.78,3.92,3.87,3.90,4.01,3.98,3.97, 4.00,3.96,4.24,4.13,4.18,4.28,4.20,4.23,4.27,4.35, 4.37,4.35,4.40,4.46,4.49,4.48,4.58,4.63,4.74,4.67, 4.71,4.75,4.72,4.73,4.80,5.00,4.87,4.85,5.00,4.96, 5.06,5.05,5.02,5.20,5.06,5.06,5.21,5.32,5.31,5.32, 5.37,5.35,5.46,5.47,5.49,5.44,5.63,5.67,5.60,5.66, 5.70,5.77,5.63,5.88,5.94,5.78,5.91,5.91,6.01,6.07, 5.87,6.04,6.17,6.13,6.15,6.30,6.31,6.31,6.48,6.36, 6.40,6.48,6.36,6.52,6.58,6.47,6.60,6.60,6.56,6.62, 6.73,6.74,6.91,6.74,6.74,6.88,7.05,6.91,7.00,6.98, 7.05,7.05,7.07,7.21,7.24,7.35,7.22,7.25,7.35,7.34, 7.45,7.37,7.43,7.44,7.49,7.52,7.60,7.54,7.79,7.72, 7.76,7.84,7.97,7.78,7.96,7.92,7.81,8.02,7.89,7.99, 8.14,8.06,8.10,8.08,8.21,8.29,8.29,8.38,8.20,8.39, 8.37,8.46,8.43,8.53,8.26,8.50,8.58,8.59,8.62,8.66, 8.83,8.75,8.74,8.80,8.82,8.77,8.91,8.83,8.91,8.99, 9.07,9.10,9.11,9.14,9.22,9.29,9.23,9.29,9.13,9.32, 9.42,9.33,9.57,9.44,9.63,9.51,9.54,9.53,9.75,9.71, 9.72,9.80,9.78,9.82,9.80,9.87,9.92,9.98,9.70,10.03, 3.65,3.96,4.28,4.63,4.98,5.32,5.63,5.98,6.30,6.71, 7.00,7.40,7.71,8.10,8.44,8.76,8.98,9.30,9.74,10.02, 10.39,10.77,11.07,11.45,11.76,12.06,12.54,12.80,13.10,13.57, 13.86,14.17,14.33,15.06,15.21,15.42,15.84,16.23,16.67,16.99, 17.09,17.62,17.86,18.30,18.59,18.99,19.29,19.61,20.09,20.37, 20.64,20.97,21.45,21.55,21.98,22.34,22.71,23.03,23.36,23.69, 23.96,24.37,24.82,25.14,25.54,25.89,25.97,26.56,26.79,27.15, 27.53,27.79,28.18,28.58,28.75,29.30,29.50,29.89,30.30,30.48, 30.88,31.24,31.75,31.68,32.19,32.36,32.93,33.27,33.62,33.89, 34.11,34.56,34.84,35.21,35.66,36.12,36.43,36.59,36.85,37.29, 37.73,37.81,38.25,38.67,39.10,39.39,39.79,40.00,40.29,40.69, 41.07,41.55,41.87,42.14,42.51,42.78,43.12,43.58,43.97,44.29, 44.38,44.74,45.15,45.64,45.82,46.23,46.57,46.82,47.25,47.57, 47.94,48.43,48.66,48.85,49.38,49.50,49.92,50.02,50.53,50.82, 51.30,51.43,52.03,52.28,52.84,53.27,53.18,53.72,53.88,54.34, 54.51,54.89,55.09,55.73,56.05,56.25,56.64,56.85,57.44,57.90, 58.15,58.44,58.73,59.04,59.44,59.80,60.28,60.29,60.86,61.12, 61.63,61.94,62.05,62.42,62.86,63.01,63.44,64.00,64.56,64.69, 65.06,65.09,65.41,66.03,66.19,66.68,67.06,67.27,67.62,68.00, 68.20,68.53,69.16,69.37,69.75,69.93,70.42,70.90,70.90,71.33, 71.73,72.08,72.33,72.76,73.14,73.53,73.78,74.05,74.48,74.84, 75.43,75.33,75.88,76.05,76.67,76.74,77.24,77.38,78.11,78.32, 78.47,78.96,79.16,79.66,79.95,80.50,80.34,81.01,81.30,81.36, 81.87,82.23,82.46,82.75,83.27,83.71,84.30,84.57,84.36,84.95, 85.32,85.83,85.78,86.57,86.71,87.38,87.71,87.50,88.05,88.61, 88.77,89.12,89.47,89.81,89.79,90.22,91.08,91.28,91.43,92.07, 92.27,92.54,92.82,93.63,93.89,93.88,94.16,94.28,94.89,95.33, 95.54,96.37,96.29,96.48,96.75,97.31,97.98,98.38,98.39,98.57, 98.99,99.46,99.91,100.19,100.79,100.76,101.09,101.62,101.78,102.31, 3.13,3.40,3.64,4.00,4.30,4.53,4.84,5.17,5.50,5.77, 6.00,6.34,6.60,6.90,7.23,7.45,7.72,8.12,8.36,8.70, 9.04,9.21,9.59,9.84,10.09,10.38,10.79,10.94,11.24,11.71, 11.92,12.15,12.43,12.82,13.02,13.37,13.59,13.87,14.14,14.61, 14.90,15.14,15.41,15.68,15.90,16.27,16.53,16.88,17.36,17.42, 17.81,18.06,18.43,18.60,18.91,19.18,19.49,19.84,20.10,20.39, 20.81,20.95,21.27,21.64,21.85,22.12,22.40,22.64,23.01,23.23, 23.58,23.80,24.34,24.67,24.77,25.09,25.40,25.56,25.95,26.13, 26.68,26.75,27.16,27.42,27.65,27.91,28.31,28.65,28.80,29.08, 29.40,29.79,30.30,30.43,30.56,30.99,31.23,31.84,31.85,32.02, 32.42,32.87,33.05,33.35,33.66,33.89,34.25,34.60,34.72,34.82, 35.50,35.56,35.97,36.19,36.66,36.77,37.29,37.63,37.65,37.95, 38.38,38.67,38.84,39.25,39.48,39.85,40.09,40.46,40.83,40.96, 41.38,41.58,41.67,42.09,42.35,42.71,43.17,43.21,43.38,44.02, 44.13,44.35,44.91,44.84,45.46,45.44,45.73,46.38,46.74,46.68, 47.11,47.22,47.63,47.86,48.17,48.62,48.82,49.26,49.48,49.76, 50.00,50.29,50.63,51.04,51.37,51.26,51.78,52.01,52.18,52.60, 52.91,53.07,53.47,53.89,54.18,54.31,54.66,54.93,55.23,55.87, 55.74,55.92,56.51,56.69,57.21,57.11,57.61,57.80,58.20,58.61, 58.74,59.11,59.35,59.84,59.81,60.32,60.60,61.05,61.17,61.47, 61.72,61.95,62.32,62.41,62.76,63.36,63.50,63.78,64.11,64.37, 64.72,64.71,65.21,65.58,66.11,66.18,66.38,66.69,67.18,67.22, 67.59,67.80,68.02,68.28,68.88,69.15,69.14,69.62,69.76,70.34, 70.66,70.49,71.07,71.18,71.59,72.10,72.10,72.80,72.80,73.06, 73.50,73.81,74.26,74.10,74.57,74.95,75.57,75.59,75.81,76.34, 76.47,76.65,76.84,77.30,77.56,77.96,78.03,78.62,78.84,79.07, 79.35,79.64,79.73,80.42,80.68,80.78,80.98,81.42,81.82,81.76, 82.59,82.61,82.62,83.25,83.62,83.45,84.03,84.38,85.02,85.03, 84.99,85.36,85.79,86.14,86.12,86.78,86.99,87.24,87.56,87.52, 2.67,2.89,3.16,3.41,3.67,3.93,4.20,4.41,4.67,4.93, 5.15,5.53,5.71,6.03,6.20,6.51,6.74,6.99,7.29,7.47, 7.62,7.99,8.16,8.49,8.78,9.09,9.14,9.59,9.79,9.99, 10.26,10.41,10.70,11.07,11.24,11.59,11.78,12.03,12.22,12.60, 12.54,13.06,13.21,13.67,13.82,13.99,14.34,14.53,14.75,14.95, 15.36,15.51,15.74,16.05,16.38,16.36,16.79,16.90,17.30,17.49, 17.87,18.07,18.33,18.46,18.78,19.06,19.38,19.58,19.82,20.05, 20.21,20.58,20.94,21.11,21.35,21.60,21.79,22.22,22.23,22.52, 22.73,23.16,23.24,23.55,23.75,24.09,24.24,24.62,24.86,25.17, 25.51,25.66,25.73,26.04,26.34,26.63,26.89,27.23,27.52,27.80, 27.87,28.10,28.39,28.59,28.95,29.33,29.45,29.78,29.90,30.30, 30.35,30.51,30.87,31.08,31.31,31.75,31.84,32.19,32.26,32.70, 32.91,33.18,33.43,33.91,33.96,34.19,34.48,34.83,34.91,35.27, 35.11,35.52,36.03,36.15,36.47,36.93,36.93,37.16,37.57,37.61, 38.18,38.19,38.49,38.77,39.04,38.93,39.76,39.89,40.12,40.34, 40.37,40.61,41.40,41.17,41.53,42.09,42.13,42.52,42.30,42.54, 43.15,43.18,43.35,43.77,43.99,44.42,44.62,44.95,45.08,45.51, 45.52,45.89,46.07,46.23,46.50,46.88,46.83,47.27,47.45,47.81, 48.01,48.45,48.55,48.90,49.12,49.50,49.31,49.82,50.15,50.56, 50.57,50.87,51.05,51.08,51.33,51.48,51.99,52.48,52.71,52.70, 52.97,53.14,53.60,53.91,53.93,54.12,54.59,55.03,55.07,55.67, 55.45,55.77,55.99,56.33,56.39,56.65,57.20,57.50,57.57,57.69, 58.29,58.35,58.49,58.48,59.20,59.65,59.44,59.94,60.28,60.45, 60.52,60.94,61.18,61.34,61.44,61.42,62.22,62.38,62.88,62.74, 63.23,63.43,63.44,63.89,64.09,64.48,64.53,64.93,65.50,65.42, 65.97,65.85,66.00,66.27,66.92,66.91,67.12,67.61,67.65,67.72, 68.08,68.60,68.62,69.08,69.06,69.47,69.75,69.91,70.49,70.90, 70.57,70.89,71.32,71.44,72.00,72.07,72.17,72.34,72.31,73.30, 73.37,73.53,73.47,73.84,74.35,74.77,74.64,75.06,75.41,75.58, 2.34,2.50,2.78,2.97,3.18,3.35,3.69,3.84,3.99,4.23, 4.52,4.68,4.93,5.06,5.35,5.54,5.73,6.02,6.25,6.46, 6.69,6.86,7.05,7.22,7.42,7.72,7.90,8.22,8.32,8.58, 8.66,9.00,9.26,9.53,9.57,9.77,10.12,10.27,10.44,10.71, 10.97,11.09,11.39,11.70,11.91,12.14,12.34,12.57,12.82,12.88, 13.17,13.34,13.61,13.83,13.99,14.27,14.47,14.65,14.94,15.04, 15.36,15.46,15.81,15.99,16.22,16.41,16.62,16.79,17.15,17.15, 17.46,17.81,17.80,18.30,18.28,18.61,18.68,19.05,19.40,19.36, 19.45,19.86,20.12,20.47,20.53,20.90,21.11,21.12,21.39,21.67, 21.70,22.09,22.35,22.43,22.75,22.83,23.05,23.25,23.60,23.62, 23.95,24.18,24.59,24.57,24.91,25.00,25.10,25.59,25.60,25.75, 26.23,26.16,26.47,26.75,26.96,27.22,27.30,27.56,27.92,28.09, 28.27,28.54,28.70,28.94,29.26,29.42,29.62,29.87,30.11,30.15, 30.59,30.69,30.87,31.27,30.93,31.55,31.72,31.96,32.17,32.51, 32.57,33.07,33.16,33.32,33.55,33.90,34.16,34.08,34.38,34.45, 34.92,35.16,35.27,35.33,35.86,35.88,36.07,36.30,36.61,36.78, 36.79,37.29,37.42,37.62,37.91,38.09,38.19,38.38,38.49,39.05, 39.17,39.39,39.42,39.89,40.28,40.27,40.42,40.70,40.82,41.13, 41.35,41.70,41.78,41.98,42.19,42.21,42.81,42.83,43.03,43.10, 43.58,43.87,44.05,44.15,44.35,44.61,44.66,44.67,45.14,45.86, 45.80,45.80,46.25,46.34,46.48,46.77,46.88,47.23,47.83,47.77, 47.79,48.06,48.21,48.23,48.55,48.63,49.22,49.43,49.47,49.78, 49.80,50.00,50.27,50.48,50.90,50.94,51.14,51.45,51.67,51.83, 52.14,52.45,52.59,52.63,53.26,53.13,53.59,53.66,53.70,54.29, 54.31,54.58,54.64,54.99,55.21,55.21,55.75,55.67,55.80,56.30, 56.48,56.58,56.86,57.13,57.36,57.67,57.79,58.26,58.28,58.20, 58.58,58.65,59.24,59.65,59.59,59.69,59.95,60.03,60.47,60.45, 60.69,61.43,60.85,61.36,61.94,62.20,62.21,62.32,62.59,62.56, 62.98,63.35,63.57,63.93,63.64,64.27,64.26,64.56,64.98,65.15, 2.00,2.23,2.35,2.52,2.70,2.85,3.15,3.27,3.44,3.70, 3.93,4.03,4.17,4.36,4.60,4.76,5.01,5.11,5.30,5.58, 5.68,5.93,6.12,6.25,6.37,6.72,6.89,7.16,7.31,7.41, 7.63,7.71,7.89,8.15,8.30,8.54,8.67,8.96,9.11,9.30, 9.44,9.59,9.90,10.01,10.18,10.31,10.60,10.85,10.87,11.07, 11.40,11.52,11.71,11.79,12.03,12.16,12.44,12.54,12.81,12.98, 13.23,13.22,13.55,13.80,13.96,14.11,14.30,14.51,14.81,14.83, 15.04,15.32,15.47,15.65,15.82,15.93,15.91,16.33,16.70,16.77, 16.88,16.99,17.34,17.40,17.84,17.92,17.96,18.11,18.32,18.48, 18.83,18.83,19.11,19.32,19.58,19.53,19.82,19.98,20.23,20.32, 20.68,20.71,21.10,21.15,21.20,21.39,21.86,21.77,21.85,22.17, 22.65,22.74,22.84,23.14,23.27,23.58,23.47,23.77,23.89,24.18, 24.37,24.59,24.72,25.07,25.26,25.31,25.38,25.77,25.98,26.06, 26.16,26.37,26.58,26.79,26.94,26.95,27.30,27.54,27.67,27.95, 27.97,28.09,28.58,28.57,28.79,29.13,29.32,29.17,29.66,29.66, 29.89,30.16,30.31,30.57,30.76,30.93,31.14,31.37,31.43,31.55, 31.80,31.94,32.24,32.41,32.48,32.60,32.83,33.21,33.34,33.55, 33.57,33.96,33.95,34.34,34.40,34.48,35.01,34.92,35.24,35.57, 35.56,35.66,35.82,36.17,36.34,36.55,36.46,36.76,37.04,37.25, 37.50,37.59,37.56,38.01,38.17,38.39,38.57,38.60,39.00,39.24, 39.08,39.29,39.61,39.73,40.17,40.26,40.18,40.60,40.69,40.75, 40.91,41.18,41.42,41.79,42.18,42.16,42.19,42.79,42.53,42.91, 42.96,42.89,43.49,43.68,43.68,44.27,44.20,44.44,44.54,44.62, 44.91,45.28,45.18,45.58,45.30,45.83,46.06,45.95,46.40,46.72, 46.69,47.13,47.14,47.38,47.51,47.65,47.71,48.29,48.13,48.51, 48.50,48.88,48.85,48.95,49.30,49.36,49.87,49.82,50.34,50.17, 50.44,50.54,50.78,51.03,51.05,51.48,51.38,51.76,52.11,52.01, 52.54,52.58,52.71,52.88,52.83,53.18,52.98,53.89,53.63,53.47, 54.15,54.53,54.78,54.62,54.92,54.85,55.19,55.31,55.49,55.85, 1.74,1.87,2.06,2.17,2.31,2.50,2.62,2.89,2.95,3.12, 3.25,3.38,3.61,3.78,3.99,4.14,4.28,4.40,4.59,4.83, 4.90,5.05,5.12,5.42,5.44,5.72,5.90,5.94,6.28,6.38, 6.51,6.68,6.88,6.96,7.21,7.29,7.47,7.61,7.89,8.00, 8.21,8.33,8.39,8.71,8.76,8.94,9.01,9.20,9.40,9.69, 9.69,9.76,10.15,10.19,10.36,10.35,10.73,10.78,11.02,11.22, 11.53,11.59,11.70,11.71,12.07,12.03,12.30,12.32,12.63,12.67, 12.85,12.88,13.16,13.42,13.71,13.69,13.95,14.10,14.14,14.22, 14.43,14.62,14.79,14.97,15.23,15.50,15.40,15.72,15.79,16.05, 16.10,16.16,16.38,16.63,16.92,16.97,17.10,17.03,17.16,17.47, 17.80,17.83,18.08,18.20,18.50,18.62,18.77,18.68,18.94,19.30, 19.48,19.76,19.82,19.98,20.10,20.09,20.43,20.59,20.55,20.93, 20.84,21.06,21.34,21.52,21.58,21.66,21.87,22.12,22.21,22.42, 22.75,22.64,22.76,23.11,22.98,23.35,23.66,23.62,23.82,23.77, 24.08,24.05,24.60,24.65,24.69,24.81,25.25,25.10,25.51,25.61, 25.64,25.94,26.15,26.26,26.30,26.58,26.77,26.94,27.03,27.27, 27.33,27.56,27.59,27.96,27.94,28.14,28.59,28.40,28.75,28.72, 29.08,29.30,29.23,29.41,29.70,29.73,30.02,29.84,30.30,30.36, 30.70,30.78,30.83,31.09,31.15,31.52,31.41,31.63,31.75,31.86, 32.28,32.40,32.39,32.54,32.80,32.95,33.05,33.30,33.45,33.49, 33.77,33.85,33.83,34.21,34.24,34.47,34.49,34.93,34.84,35.12, 35.37,35.66,35.52,35.93,36.16,36.42,36.15,36.53,36.78,36.74, 36.91,36.85,37.23,37.37,37.48,37.75,37.80,38.23,38.30,38.15, 38.91,38.86,38.92,38.96,38.96,39.33,39.67,39.91,39.83,40.34, 40.31,40.49,40.34,40.60,40.81,40.93,41.11,41.44,41.52,41.57, 41.85,41.94,42.02,42.34,42.54,42.74,42.79,43.01,43.26,43.09, 43.42,43.28,43.30,43.75,44.40,44.15,44.41,44.58,44.84,44.83, 44.80,45.30,45.35,45.41,45.81,45.92,46.02,46.03,46.24,46.52, 46.44,46.92,47.02,47.30,46.97,47.32,47.34,47.76,48.00,47.98, 1.47,1.58,1.75,1.88,1.98,2.15,2.29,2.49,2.57,2.65, 2.83,2.98,3.10,3.26,3.43,3.50,3.60,3.83,3.95,3.98, 4.27,4.34,4.55,4.69,4.78,4.90,5.04,5.15,5.36,5.42, 5.67,5.80,5.77,5.97,6.25,6.36,6.51,6.50,6.71,6.80, 6.89,7.11,7.31,7.36,7.62,7.69,7.77,7.91,8.11,8.35, 8.45,8.42,8.66,8.73,8.95,9.04,9.28,9.41,9.56,9.48, 9.78,9.93,9.98,10.20,10.21,10.40,10.62,10.61,10.78,10.98, 11.22,11.27,11.26,11.55,11.61,11.86,11.98,12.22,12.15,12.34, 12.35,12.77,12.83,12.89,12.96,13.14,13.41,13.46,13.43,13.67, 13.69,13.95,14.22,14.35,14.54,14.41,14.78,14.86,15.15,15.29, 15.20,15.39,15.49,15.72,15.69,16.11,15.94,16.16,16.26,16.48, 16.73,16.82,17.01,16.91,17.34,17.26,17.42,17.53,17.63,17.89, 17.95,18.13,18.22,18.28,18.55,18.64,18.73,18.98,19.00,19.29, 19.36,19.39,19.63,19.88,19.75,20.07,20.19,20.23,20.44,20.62, 20.92,20.78,20.89,21.25,21.39,21.38,21.89,21.79,22.00,22.05, 22.23,22.12,22.36,22.45,22.56,23.01,22.84,23.24,23.32,23.37, 23.47,23.53,23.86,24.10,24.13,24.22,24.42,24.75,24.64,24.80, 24.84,24.98,25.23,25.39,25.50,25.74,25.69,25.82,26.04,26.00, 26.30,26.48,26.51,26.53,26.85,27.16,27.02,27.33,27.39,27.50, 27.71,28.18,27.91,28.15,28.38,28.32,28.79,28.61,28.88,28.86, 28.95,29.00,29.56,29.67,29.50,29.75,29.54,29.83,30.20,30.37, 30.25,30.38,30.97,30.79,30.89,31.02,31.28,31.48,31.34,31.60, 31.71,32.11,32.12,32.13,31.86,32.38,32.66,32.77,33.01,33.02, 33.29,33.38,33.52,33.55,33.72,34.01,33.89,34.04,34.26,34.50, 34.27,34.64,34.68,34.94,35.20,35.09,35.21,35.38,35.59,35.58, 35.94,36.19,36.12,36.13,36.56,36.44,36.52,37.24,36.87,37.03, 37.37,37.35,37.61,38.10,37.72,38.07,38.27,38.28,38.26,38.47, 38.82,38.68,38.87,39.04,39.05,39.47,39.44,39.83,39.75,40.05, 39.95,39.99,39.94,40.44,40.77,41.10,40.84,40.99,41.10,41.42, 1.26,1.39,1.48,1.65,1.75,1.86,1.92,2.16,2.17,2.34, 2.43,2.56,2.69,2.75,2.89,2.97,3.13,3.30,3.41,3.49, 3.54,3.74,3.97,3.96,4.10,4.21,4.29,4.46,4.66,4.71, 4.73,4.93,5.01,5.16,5.36,5.37,5.51,5.76,5.77,5.88, 5.99,6.15,6.24,6.48,6.55,6.67,6.74,6.88,6.93,7.07, 7.16,7.27,7.48,7.59,7.61,7.80,7.89,7.90,8.22,8.20, 8.41,8.42,8.59,8.77,8.76,9.08,9.18,9.22,9.46,9.32, 9.52,9.70,9.92,9.87,10.10,10.28,10.05,10.40,10.63,10.55, 10.69,10.96,10.86,11.10,11.19,11.33,11.48,11.52,11.47,11.73, 11.88,12.06,12.09,12.30,12.31,12.53,12.60,12.82,12.91,13.01, 13.08,13.12,13.27,13.61,13.50,13.63,13.84,13.95,14.11,14.20, 14.29,14.43,14.53,14.60,14.64,15.06,15.12,15.30,15.26,15.41, 15.38,15.58,15.76,15.89,16.01,16.04,16.15,16.40,16.40,16.34, 16.71,16.88,17.05,17.12,17.36,17.32,17.25,17.56,17.73,17.80, 17.94,18.10,17.98,18.10,18.49,18.52,18.70,18.70,18.70,19.03, 19.01,19.10,19.26,19.51,19.48,19.48,19.67,19.88,19.84,20.02, 20.30,20.09,20.34,20.46,20.62,20.69,20.95,21.06,21.23,21.32, 21.37,21.55,21.70,21.61,21.90,21.83,22.34,22.16,22.32,22.70, 22.45,22.76,22.81,22.98,23.08,23.26,23.26,23.84,23.50,23.71, 23.93,23.93,23.92,24.15,24.37,24.35,24.56,24.79,24.80,24.68, 24.97,25.04,25.25,25.44,25.39,25.45,25.75,25.72,25.81,25.95, 26.14,26.02,26.58,26.38,26.70,26.75,26.78,26.83,26.98,27.40, 27.29,27.65,27.45,27.63,27.91,27.97,27.76,28.12,28.31,28.44, 28.56,28.43,28.59,28.77,29.09,29.35,29.34,29.33,29.62,29.71, 29.84,29.48,30.00,30.24,30.27,30.32,30.40,30.57,30.66,30.85, 30.75,31.07,30.93,31.19,31.63,31.59,31.67,31.57,31.86,32.00, 31.99,32.17,32.17,32.45,32.59,32.63,32.73,32.83,33.18,33.40, 33.11,33.26,33.86,33.25,33.69,34.15,34.15,34.00,34.24,34.38, 34.49,34.66,34.59,34.88,35.03,34.85,35.30,35.33,35.32,35.49, 1.13,1.13,1.30,1.44,1.42,1.56,1.67,1.75,1.94,1.96, 2.11,2.19,2.33,2.42,2.48,2.57,2.72,2.79,2.92,3.04, 3.14,3.18,3.28,3.42,3.56,3.61,3.71,3.81,3.95,4.03, 4.07,4.19,4.32,4.52,4.65,4.66,4.67,4.83,4.89,5.08, 5.16,5.24,5.37,5.46,5.47,5.62,5.79,5.90,5.88,6.20, 6.17,6.32,6.43,6.53,6.59,6.63,6.80,6.88,7.00,7.14, 7.26,7.39,7.40,7.50,7.59,7.65,7.87,7.89,7.95,8.20, 8.26,8.31,8.33,8.51,8.68,8.78,8.95,9.02,9.04,9.20, 9.38,9.31,9.43,9.44,9.71,9.78,9.78,10.04,10.11,10.02, 10.26,10.38,10.37,10.62,10.78,10.57,10.86,11.04,11.13,11.36, 11.17,11.47,11.38,11.57,11.77,11.90,11.76,12.12,12.16,12.19, 12.41,12.45,12.56,12.50,12.62,12.75,12.82,13.12,12.99,13.27, 13.49,13.35,13.58,13.68,13.58,13.93,14.06,13.93,14.15,14.07, 14.33,14.33,14.54,14.50,14.59,14.73,14.90,14.84,14.82,15.28, 15.33,15.46,15.66,15.73,15.76,15.76,16.05,16.12,16.04,16.24, 16.34,16.48,16.45,16.82,16.89,17.04,17.04,16.98,17.30,17.37, 17.29,17.56,17.74,17.43,17.61,17.80,18.09,17.97,18.37,18.33, 18.36,18.59,18.55,18.76,18.82,18.95,19.08,19.18,19.10,19.40, 19.40,19.51,19.69,19.92,19.89,19.97,20.06,20.16,20.47,20.28, 20.44,20.61,20.74,20.77,20.91,20.79,20.81,21.05,21.02,21.28, 21.16,21.57,21.66,21.82,21.65,21.88,22.16,22.26,22.31,22.52, 22.49,22.48,22.60,22.99,22.89,23.15,23.02,23.16,23.43,23.44, 23.38,23.57,23.72,24.08,24.03,24.11,24.21,24.18,24.13,24.55, 24.56,24.58,24.78,24.76,24.84,25.21,25.39,25.19,25.36,25.32, 25.85,25.42,25.76,25.66,25.90,25.95,26.26,26.25,26.40,26.41, 26.45,26.84,26.71,26.98,26.94,27.17,27.02,27.19,27.44,27.51, 27.77,27.72,27.93,27.77,28.10,28.12,28.38,28.40,28.27,28.60, 28.61,28.71,28.93,29.09,28.95,29.18,29.22,29.17,29.51,29.34, 29.69,30.00,29.94,29.97,29.88,29.98,29.89,29.99,30.61,30.76, 0.91,1.05,1.11,1.23,1.32,1.35,1.44,1.55,1.65,1.76, 1.88,1.83,1.97,2.10,2.12,2.22,2.33,2.41,2.48,2.62, 2.74,2.74,2.91,2.98,3.02,3.10,3.20,3.21,3.46,3.43, 3.52,3.57,3.76,3.73,3.98,4.00,4.09,4.12,4.26,4.30, 4.46,4.43,4.59,4.65,4.67,4.79,4.95,5.08,5.15,5.25, 5.36,5.45,5.47,5.55,5.66,5.88,5.86,5.88,6.02,6.18, 6.24,6.21,6.30,6.39,6.65,6.55,6.81,6.63,6.92,6.97, 7.10,7.09,7.27,7.52,7.57,7.48,7.59,7.72,7.63,7.96, 8.06,8.13,8.18,8.20,8.42,8.51,8.49,8.59,8.72,8.92, 8.84,8.84,8.94,8.94,9.15,9.36,9.32,9.39,9.45,9.39, 9.71,9.70,9.86,10.03,10.00,10.13,10.25,10.29,10.29,10.55, 10.54,10.60,10.76,10.79,11.01,11.04,11.29,11.28,11.12,11.43, 11.37,11.58,11.61,11.86,11.79,11.99,11.94,12.03,12.16,12.09, 12.27,12.44,12.56,12.51,12.50,12.87,12.90,12.99,13.07,13.13, 13.23,13.29,13.56,13.55,13.49,13.63,13.63,13.87,13.91,14.03, 13.89,14.20,14.20,14.21,14.38,14.39,14.67,14.76,14.68,14.96, 14.88,14.90,15.23,15.27,15.44,15.33,15.48,15.74,15.66,15.68, 16.10,15.84,16.04,16.17,16.09,16.19,16.38,16.46,16.64,16.84, 16.81,16.63,16.64,16.99,16.98,17.22,17.28,17.42,17.31,17.57, 17.55,17.66,17.63,17.77,17.74,17.94,18.26,18.35,18.20,18.35, 18.46,18.48,18.56,18.54,18.96,18.84,18.86,19.12,19.35,19.35, 19.26,19.39,19.53,19.87,19.66,19.88,19.83,19.97,20.06,20.04, 20.28,20.31,20.25,20.36,20.58,20.57,21.00,20.74,21.04,21.08, 21.14,21.20,21.25,21.21,21.49,21.40,21.69,21.69,21.72,21.93, 22.02,21.96,22.21,22.32,22.09,22.26,22.70,22.61,22.93,22.94, 22.71,22.78,23.09,23.23,23.07,23.26,23.20,23.49,23.75,23.70, 23.63,23.70,24.08,24.08,23.99,23.93,24.35,24.18,24.35,24.52, 24.56,24.64,24.86,24.66,25.02,25.29,25.12,25.18,25.33,25.37, 25.72,25.82,25.82,25.70,26.16,26.03,26.12,25.77,26.34,26.03, 0.81,0.82,0.91,1.05,1.08,1.17,1.27,1.29,1.36,1.49, 1.57,1.65,1.67,1.75,1.79,1.96,1.98,2.09,2.18,2.18, 2.36,2.40,2.42,2.55,2.56,2.66,2.72,2.88,2.88,2.92, 3.04,3.11,3.14,3.33,3.36,3.48,3.57,3.59,3.66,3.69, 3.73,3.93,3.97,4.05,4.16,4.31,4.21,4.42,4.53,4.48, 4.54,4.67,4.72,4.76,4.92,4.91,5.06,5.08,5.15,5.26, 5.31,5.29,5.43,5.53,5.62,5.72,5.79,5.79,6.01,6.04, 5.99,6.04,6.32,6.36,6.39,6.48,6.53,6.61,6.59,6.77, 6.75,7.00,7.04,7.08,7.13,7.15,7.29,7.49,7.32,7.52, 7.55,7.62,7.71,7.84,7.92,7.95,8.01,8.19,8.22,8.22, 8.39,8.57,8.41,8.53,8.67,8.77,8.76,9.06,8.98,9.16, 9.10,9.11,9.36,9.48,9.31,9.46,9.52,9.69,9.68,9.83, 9.85,9.96,9.99,10.20,10.27,10.20,10.33,10.50,10.52,10.61, 10.68,10.61,10.88,10.99,10.99,10.95,11.23,11.09,11.09,11.26, 11.44,11.39,11.41,11.55,11.65,11.87,11.73,11.90,12.04,11.84, 12.24,12.21,12.29,12.42,12.38,12.53,12.67,12.67,12.74,12.82, 12.87,12.98,13.13,13.14,13.20,13.28,13.17,13.47,13.47,13.60, 13.51,13.79,13.74,13.82,13.95,13.89,14.13,14.20,14.13,14.40, 14.39,14.39,14.30,14.51,14.65,14.59,14.87,14.98,15.02,14.92, 15.26,15.11,15.42,15.35,15.46,15.57,15.45,15.74,15.75,15.73, 15.74,15.80,15.84,16.22,15.96,16.40,16.43,16.37,16.43,16.43, 16.61,16.73,16.82,16.70,16.85,17.12,16.99,17.33,17.28,17.31, 17.43,17.23,17.29,17.68,17.70,17.79,17.90,17.92,18.20,18.18, 18.15,18.18,18.22,18.38,18.54,18.39,18.70,18.82,18.75,18.92, 18.74,18.94,19.10,19.18,19.23,19.13,19.42,19.53,19.31,19.57, 19.68,19.72,19.91,19.81,19.96,20.12,20.34,20.04,20.43,20.51, 20.31,20.50,20.44,20.62,20.91,20.92,20.74,20.93,21.11,21.14, 21.06,21.27,21.40,21.31,21.46,21.54,21.63,21.61,21.78,21.76, 21.89,21.96,22.08,22.16,22.27,22.16,22.56,22.34,22.33,22.66, 0.68,0.74,0.79,0.89,0.97,0.99,1.10,1.18,1.21,1.27, 1.32,1.46,1.46,1.47,1.61,1.67,1.73,1.80,1.85,1.99, 1.93,2.00,2.13,2.21,2.27,2.35,2.42,2.30,2.46,2.54, 2.57,2.73,2.76,2.83,2.90,2.96,3.01,3.12,3.18,3.19, 3.21,3.38,3.34,3.56,3.47,3.58,3.68,3.81,3.78,3.90, 3.90,3.90,3.94,4.12,4.08,4.22,4.17,4.44,4.36,4.43, 4.68,4.74,4.71,4.77,4.88,4.92,4.85,4.96,5.11,5.30, 5.20,5.28,5.43,5.32,5.60,5.60,5.54,5.68,5.74,5.82, 5.81,5.92,6.07,6.10,6.28,6.28,6.37,6.30,6.36,6.50, 6.56,6.55,6.69,6.67,6.94,6.92,7.00,6.96,7.04,7.18, 7.33,7.16,7.26,7.36,7.48,7.69,7.50,7.63,7.61,7.75, 7.88,7.75,8.00,7.96,8.24,8.14,8.14,8.29,8.32,8.37, 8.33,8.45,8.63,8.75,8.70,8.78,8.85,8.96,8.97,9.19, 9.02,9.18,9.37,9.34,9.40,9.53,9.53,9.59,9.61,9.64, 9.75,9.71,9.83,10.02,10.06,10.30,10.18,10.22,10.40,10.27, 10.27,10.40,10.64,10.66,10.71,10.70,10.74,10.88,10.99,10.89, 11.00,10.99,11.21,11.36,11.42,11.31,11.40,11.51,11.58,11.59, 11.76,11.69,11.77,11.93,11.97,12.03,12.11,12.13,12.15,12.28, 12.27,12.44,12.38,12.69,12.44,12.58,12.85,12.83,12.98,12.77, 13.06,13.24,13.08,13.32,13.28,13.47,13.22,13.48,13.62,13.58, 13.70,13.57,13.74,13.82,13.84,14.04,13.95,14.19,14.12,14.35, 14.24,14.51,14.44,14.48,14.46,14.69,14.74,14.74,14.73,14.82, 14.91,15.11,15.16,15.26,15.35,15.04,15.40,15.55,15.48,15.54, 15.75,15.50,15.82,15.87,15.95,15.95,16.00,15.85,16.10,16.30, 16.01,16.35,16.23,16.64,16.52,16.50,16.83,16.87,16.71,16.78, 16.70,16.89,17.05,17.22,17.12,17.39,17.32,17.25,17.48,17.44, 17.54,17.65,17.59,17.69,17.69,17.84,18.00,18.20,18.20,18.29, 18.07,18.25,18.18,18.14,18.43,18.41,18.47,18.57,18.92,18.74, 18.92,18.95,18.88,18.81,19.07,19.04,19.20,19.23,19.56,19.38, 0.60,0.69,0.69,0.76,0.78,0.86,0.92,0.94,1.05,1.07, 1.12,1.25,1.24,1.28,1.35,1.41,1.49,1.61,1.62,1.68, 1.64,1.71,1.78,1.89,1.95,1.97,2.12,2.07,2.15,2.15, 2.29,2.36,2.41,2.46,2.52,2.53,2.57,2.65,2.71,2.81, 2.87,2.93,2.97,3.00,3.06,3.04,3.15,3.21,3.27,3.24, 3.34,3.43,3.53,3.54,3.71,3.66,3.58,3.74,3.92,3.84, 3.93,4.00,4.20,4.10,4.17,4.22,4.24,4.28,4.39,4.42, 4.53,4.58,4.62,4.63,4.76,4.77,4.72,4.83,5.01,5.01, 5.03,5.00,5.19,5.30,5.25,5.29,5.34,5.34,5.52,5.55, 5.62,5.63,5.72,5.66,5.81,5.80,6.00,5.90,5.98,6.03, 6.14,6.10,6.37,6.27,6.39,6.41,6.67,6.67,6.67,6.71, 6.76,6.83,6.90,6.95,6.93,7.09,7.17,7.08,7.19,7.20, 7.28,7.24,7.36,7.40,7.48,7.50,7.55,7.71,7.66,7.83, 7.90,8.05,7.94,7.96,8.21,8.10,8.18,8.42,8.24,8.40, 8.32,8.44,8.57,8.52,8.56,8.58,8.71,8.71,8.79,8.89, 8.79,9.15,8.93,8.97,9.27,9.33,9.19,9.39,9.50,9.59, 9.58,9.54,9.69,9.84,9.76,9.70,9.85,9.81,10.12,9.97, 9.99,9.98,10.25,10.40,10.30,10.38,10.40,10.52,10.62,10.49, 10.68,10.78,10.73,10.57,11.09,10.94,10.96,10.89,11.14,11.22, 11.14,11.17,11.38,11.43,11.47,11.52,11.49,11.73,11.50,11.55, 11.69,11.85,11.93,12.15,12.13,11.93,12.05,12.34,12.15,12.27, 12.37,12.44,12.46,12.65,12.45,12.60,12.46,12.59,12.80,12.81, 12.87,12.76,12.92,13.07,13.10,13.24,13.39,13.19,13.38,13.42, 13.29,13.62,13.61,13.57,13.77,13.60,13.78,13.70,13.89,14.02, 13.98,13.82,14.14,14.07,14.03,14.34,14.63,14.46,14.36,14.40, 14.48,14.67,14.77,14.64,14.64,14.78,14.71,15.06,15.04,14.98, 15.09,15.28,15.37,15.29,15.14,15.49,15.23,15.48,15.52,15.61, 15.78,15.86,15.81,15.77,15.80,15.98,16.16,16.21,15.97,16.23, 16.28,16.37,16.19,16.39,16.31,16.45,16.50,16.49,16.77,16.58, 0.49,0.58,0.60,0.67,0.73,0.72,0.81,0.81,0.90,0.96, 1.02,1.07,1.07,1.12,1.17,1.18,1.31,1.32,1.34,1.45, 1.45,1.51,1.57,1.60,1.58,1.67,1.74,1.80,1.82,1.85, 1.90,2.03,2.08,2.15,2.03,2.21,2.18,2.29,2.26,2.40, 2.44,2.42,2.61,2.58,2.61,2.70,2.71,2.71,2.79,2.84, 2.96,2.92,3.06,3.10,3.08,3.10,3.23,3.24,3.34,3.28, 3.42,3.40,3.48,3.50,3.64,3.62,3.67,3.61,3.84,3.81, 3.80,3.88,3.95,4.02,4.10,4.12,4.04,4.28,4.25,4.30, 4.30,4.42,4.36,4.53,4.62,4.56,4.69,4.72,4.60,4.81, 4.87,4.81,4.88,4.94,5.05,5.14,5.03,5.10,5.18,5.24, 5.35,5.34,5.34,5.46,5.38,5.50,5.63,5.70,5.71,5.85, 5.69,5.86,6.04,5.89,6.01,6.07,5.93,6.14,6.20,6.18, 6.42,6.29,6.38,6.40,6.55,6.53,6.68,6.52,6.54,6.70, 6.66,6.77,6.71,6.99,6.87,6.94,7.08,7.10,7.12,7.09, 7.29,7.23,7.33,7.46,7.35,7.51,7.56,7.58,7.51,7.70, 7.74,7.78,7.84,7.85,7.79,7.91,7.92,7.85,8.04,7.94, 8.27,8.15,8.37,8.33,8.26,8.36,8.50,8.57,8.55,8.71, 8.65,8.83,8.91,8.78,8.94,8.87,8.98,8.92,9.08,8.98, 9.12,9.17,9.30,9.23,9.34,9.33,9.48,9.46,9.59,9.57, 9.46,9.75,9.83,9.72,9.73,9.86,9.92,10.01,10.11,9.99, 10.02,10.20,10.08,10.29,10.37,10.23,10.42,10.48,10.43,10.41, 10.56,10.57,10.65,10.58,10.71,10.73,11.02,10.95,10.93,11.01, 10.92,11.13,11.10,11.27,11.25,11.36,11.49,11.47,11.35,11.42, 11.71,11.47,11.75,11.78,11.69,11.80,11.88,11.83,11.80,11.93, 12.09,12.00,12.00,12.12,12.19,12.34,12.30,12.47,12.49,12.36, 12.69,12.52,12.51,12.32,12.72,12.85,12.69,12.83,12.78,12.99, 13.00,13.12,13.06,13.08,13.02,13.23,13.27,13.37,13.40,13.31, 13.51,13.51,13.57,13.49,13.70,13.45,13.87,13.90,13.89,14.06, 13.78,13.99,14.09,14.20,14.15,14.18,14.12,14.27,14.17,14.57, 0.43,0.48,0.53,0.57,0.62,0.66,0.63,0.69,0.76,0.81, 0.83,0.88,0.94,1.01,1.08,1.08,1.10,1.11,1.14,1.25, 1.24,1.31,1.40,1.40,1.38,1.50,1.53,1.58,1.62,1.61, 1.72,1.75,1.67,1.82,1.84,1.93,1.93,1.98,1.98,2.07, 2.06,2.13,2.17,2.21,2.29,2.31,2.31,2.40,2.47,2.40, 2.40,2.58,2.54,2.57,2.67,2.67,2.76,2.80,2.88,2.91, 2.83,2.96,3.02,3.02,3.07,3.10,3.19,3.19,3.26,3.35, 3.35,3.37,3.44,3.53,3.44,3.56,3.62,3.64,3.66,3.73, 3.73,3.83,3.79,3.82,3.87,4.03,3.94,4.16,4.06,4.18, 4.17,4.17,4.22,4.22,4.33,4.29,4.31,4.36,4.46,4.39, 4.62,4.67,4.66,4.75,4.67,4.79,4.89,4.82,4.78,4.80, 5.00,5.08,5.11,5.10,5.06,5.14,5.10,5.14,5.37,5.40, 5.41,5.46,5.49,5.49,5.67,5.49,5.64,5.70,5.62,5.82, 5.77,5.85,5.86,6.05,6.10,6.07,6.08,6.11,6.14,6.15, 6.15,6.24,6.33,6.25,6.38,6.49,6.40,6.62,6.51,6.54, 6.55,6.64,6.72,6.75,6.66,6.79,6.90,7.00,6.96,6.99, 7.06,7.01,7.19,7.10,7.32,7.16,7.32,7.42,7.46,7.47, 7.51,7.62,7.45,7.53,7.58,7.59,7.74,7.66,7.78,7.81, 7.81,7.95,7.85,7.87,8.17,8.07,8.11,8.21,8.11,8.34, 8.13,8.31,8.26,8.41,8.35,8.48,8.52,8.55,8.74,8.69, 8.68,8.75,8.77,8.76,8.79,8.85,8.95,8.89,9.09,9.16, 8.97,9.20,9.21,9.17,9.35,9.28,9.41,9.40,9.46,9.43, 9.61,9.51,9.49,9.71,9.71,9.69,9.56,9.81,9.91,10.04, 9.94,9.99,10.12,10.00,10.11,10.07,10.05,10.41,10.26,10.28, 10.42,10.41,10.40,10.71,10.47,10.68,10.70,10.48,10.71,10.72, 10.59,10.89,10.83,10.96,11.01,10.95,11.03,11.07,10.98,11.29, 10.97,11.08,11.27,11.22,11.42,11.40,11.40,11.55,11.45,11.50, 11.59,11.66,11.66,11.78,11.92,11.56,11.79,11.75,11.82,11.91, 11.95,12.16,12.09,12.08,12.21,12.30,12.23,12.03,12.36,12.32, 3.77,4.12,4.53,4.88,5.27,5.59,5.89,6.20,6.67,7.02, 7.33,7.59,8.13,8.38,8.72,9.07,9.50,9.87,10.18,10.42, 10.85,11.29,11.57,11.92,12.20,12.62,13.06,13.32,13.65,14.17, 14.35,14.74,15.13,15.55,15.83,16.14,16.55,16.82,17.26,17.52, 18.09,18.47,18.71,18.91,19.19,19.70,20.07,20.37,20.85,21.26, 21.34,21.87,22.18,22.64,22.87,23.35,23.64,23.87,24.30,24.63, 25.00,25.27,25.62,26.16,26.45,26.70,27.04,27.55,28.08,28.24, 28.43,28.91,29.30,29.66,30.03,30.39,30.60,31.07,31.33,31.93, 32.20,32.44,32.96,33.34,33.27,33.90,34.18,34.40,34.80,35.28, 35.59,36.12,36.53,36.86,37.15,37.35,37.63,38.20,38.60,38.92, 38.97,39.53,40.02,40.36,40.84,41.08,41.62,41.72,42.23,42.59, 42.60,43.06,43.38,43.81,44.24,44.62,44.96,45.27,45.67,46.00, 46.35,46.42,47.14,47.47,47.59,48.07,48.31,48.70,48.95,49.38, 49.79,50.15,50.45,50.62,50.99,51.67,51.98,52.28,52.81,52.91, 53.36,53.83,54.16,54.47,54.93,54.97,55.74,55.70,55.82,56.54, 57.04,57.33,57.70,57.89,58.33,58.83,59.12,59.84,59.87,60.11, 60.41,61.05,61.26,61.59,61.93,61.97,62.54,62.95,63.31,63.77, 63.67,64.41,64.82,65.21,65.48,66.25,66.09,66.43,66.72,67.07, 67.31,67.60,67.95,68.76,68.82,69.31,69.64,70.40,70.45,70.74, 71.24,71.45,71.97,71.95,72.44,73.05,73.12,73.65,73.78,74.09, 74.67,74.86,75.55,75.70,76.19,76.05,76.63,77.27,77.20,77.49, 78.13,78.44,78.80,79.61,79.53,79.66,80.19,80.65,80.82,81.31, 81.52,82.07,82.70,82.77,83.27,83.50,83.86,84.20,84.71,84.92, 85.24,85.49,85.98,86.16,86.82,86.96,87.33,87.59,88.11,88.16, 88.89,89.30,89.45,89.84,90.48,90.63,90.89,91.18,91.76,91.98, 92.21,92.74,93.12,93.57,94.11,94.00,94.44,94.71,95.19,95.85, 95.81,96.25,96.63,96.90,97.60,97.80,98.15,98.41,98.80,99.00, 99.58,100.05,100.14,100.66,101.07,101.11,101.29,101.81,102.13,102.44, 102.97,103.30,103.54,103.97,104.15,104.86,105.10,105.36,105.60,106.29, 3.30,3.64,3.90,4.27,4.47,4.80,5.03,5.43,5.75,6.10, 6.34,6.65,6.96,7.28,7.53,7.83,8.26,8.55,8.80,9.09, 9.45,9.79,10.04,10.44,10.72,10.98,11.31,11.60,11.90,12.32, 12.45,12.86,13.15,13.46,13.73,14.06,14.45,14.69,14.98,15.23, 15.52,15.91,16.25,16.59,16.85,17.14,17.57,17.79,18.02,18.30, 18.71,18.93,19.42,19.52,19.81,20.16,20.44,20.85,21.10,21.51, 21.85,22.22,22.46,22.76,22.91,23.17,23.74,24.02,24.24,24.66, 24.90,25.09,25.47,25.83,26.09,26.47,26.55,26.94,27.29,27.70, 27.73,28.26,28.62,28.89,29.12,29.62,29.91,30.17,30.33,31.00, 31.04,31.30,31.65,31.95,32.19,32.44,32.95,33.25,33.51,33.59, 34.10,34.45,34.77,35.05,35.23,35.38,35.94,36.08,36.75,36.78, 37.05,37.38,37.65,38.01,38.44,38.77,39.09,39.35,39.71,39.87, 40.40,40.50,41.03,41.31,41.60,41.94,42.28,42.49,42.79,42.99, 43.38,43.51,43.94,44.18,44.64,44.68,45.24,45.47,45.80,46.13, 46.43,46.67,47.06,47.40,47.88,48.01,48.41,48.60,49.05,48.99, 49.45,49.89,50.16,50.42,50.77,51.11,51.47,51.81,51.76,52.40, 52.72,52.75,53.20,53.53,53.87,54.11,54.54,54.79,55.12,55.34, 55.94,56.15,56.26,56.48,56.82,57.32,57.53,57.88,58.26,58.48, 58.66,58.74,59.52,59.65,59.94,60.45,60.57,60.79,61.29,61.41, 61.92,62.13,62.43,62.49,63.21,63.30,63.63,63.91,64.37,64.76, 64.92,65.13,65.44,65.81,66.27,66.39,66.67,67.33,67.38,67.61, 68.16,67.96,68.73,69.16,69.14,69.62,69.86,69.94,70.78,70.69, 71.14,71.35,71.46,71.95,72.37,72.67,72.79,73.31,73.59,74.12, 73.97,74.59,74.94,75.00,75.51,75.40,76.21,76.06,76.39,76.94, 77.08,77.51,77.72,78.24,78.50,78.89,79.27,79.72,79.93,80.05, 80.51,80.70,80.93,81.16,81.84,82.01,82.20,82.49,82.80,83.12, 83.64,83.45,84.19,84.58,85.05,85.01,85.36,85.68,85.66,86.31, 86.34,86.65,86.74,87.14,87.75,87.92,88.36,88.53,88.91,89.21, 89.78,90.09,90.05,90.17,90.98,91.07,91.41,91.76,92.07,92.25, 2.96,3.15,3.41,3.68,3.99,4.26,4.47,4.74,5.10,5.29, 5.53,5.75,6.07,6.26,6.57,6.81,7.07,7.39,7.65,7.90, 8.25,8.43,8.86,8.94,9.28,9.56,9.73,10.11,10.44,10.66, 10.84,11.28,11.44,11.72,11.99,12.22,12.56,12.93,13.10,13.35, 13.53,13.81,14.19,14.41,14.65,14.94,15.36,15.49,15.72,15.88, 16.34,16.44,16.71,16.90,17.38,17.58,17.86,18.23,18.40,18.80, 18.89,19.23,19.38,19.72,20.06,20.24,20.51,20.73,21.05,21.39, 21.67,22.00,22.17,22.41,22.86,22.84,23.27,23.32,23.84,23.82, 24.25,24.61,24.76,25.19,25.18,25.50,26.05,26.22,26.40,26.60, 27.06,27.24,27.53,27.86,28.09,28.48,28.71,28.87,29.10,29.41, 29.64,29.97,30.25,30.43,30.77,30.94,31.18,31.39,31.84,32.12, 32.40,32.65,32.52,33.32,33.48,33.78,33.80,34.56,34.64,34.84, 35.07,35.43,35.44,35.97,36.24,36.37,36.72,37.01,37.17,37.58, 37.77,38.26,38.33,38.76,38.70,38.91,39.45,39.57,39.93,40.02, 40.36,40.60,41.09,41.23,41.51,41.73,42.16,42.10,42.59,42.91, 43.29,43.64,43.46,43.86,44.03,44.57,44.75,44.85,45.14,45.32, 45.93,45.91,46.15,46.42,47.15,46.95,47.16,47.67,48.17,48.11, 48.41,48.62,48.79,49.31,49.61,49.72,50.24,50.25,50.55,50.83, 51.04,51.43,51.48,51.96,52.17,52.39,52.64,52.91,53.20,53.86, 53.95,54.19,54.04,54.60,54.84,55.24,55.52,55.58,55.59,56.09, 56.46,56.86,56.73,57.31,57.28,57.64,58.05,58.48,58.62,59.06, 59.28,59.33,59.62,60.07,60.30,60.51,60.76,60.97,61.06,61.58, 61.97,62.11,62.48,62.65,62.90,63.32,63.45,63.76,63.93,64.36, 64.35,64.78,65.25,65.38,65.33,65.80,66.24,66.19,66.59,67.08, 67.12,67.43,67.81,67.78,68.36,68.52,68.80,69.05,69.78,69.64, 69.69,69.99,70.26,70.75,70.92,71.22,71.60,71.92,72.16,72.16, 72.64,72.88,73.35,73.48,73.82,74.01,74.11,74.11,74.93,74.97, 75.32,75.78,75.62,76.25,76.48,76.56,76.73,77.27,77.65,77.70, 78.04,78.23,78.64,78.73,79.34,79.08,79.62,79.63,79.61,80.32, 2.54,2.72,3.02,3.16,3.42,3.64,3.98,4.16,4.36,4.52, 4.82,5.10,5.25,5.57,5.74,5.89,6.22,6.49,6.74,7.00, 7.22,7.53,7.58,7.86,8.19,8.42,8.52,8.74,9.03,9.22, 9.40,9.67,9.96,10.12,10.42,10.68,10.88,11.07,11.33,11.51, 11.81,12.07,12.29,12.60,12.71,13.01,13.21,13.48,13.65,13.98, 14.15,14.33,14.66,14.86,15.08,15.22,15.57,15.84,16.00,16.24, 16.44,16.85,17.04,17.11,17.46,17.61,18.05,18.15,18.53,18.53, 18.72,19.05,19.30,19.42,19.82,19.86,20.28,20.43,20.64,20.95, 21.11,21.46,21.66,21.86,22.15,22.17,22.60,22.95,23.02,22.97, 23.55,23.68,24.05,24.31,24.47,24.47,24.91,25.19,25.43,25.68, 25.65,26.07,26.34,26.50,26.69,27.02,27.12,27.70,27.67,27.87, 28.12,28.21,28.68,29.05,29.36,29.34,29.47,29.79,30.05,30.33, 30.54,30.81,30.67,31.25,31.47,31.54,31.83,32.07,32.44,32.59, 33.05,33.02,33.26,33.64,33.77,33.84,34.19,34.41,34.75,35.00, 35.07,35.15,35.67,35.81,36.19,36.48,36.60,36.94,37.24,37.17, 37.56,37.92,37.90,38.44,38.33,38.58,38.91,39.28,39.35,39.62, 39.82,40.08,40.08,40.48,40.62,40.97,41.26,41.31,41.78,41.82, 42.05,42.16,42.62,42.90,42.92,43.15,43.42,43.63,43.78,44.50, 44.35,44.91,45.13,45.31,45.49,45.89,45.76,46.18,46.53,46.68, 46.93,46.97,47.18,47.59,47.70,47.76,48.12,48.33,48.75,49.15, 49.28,49.40,49.45,49.85,50.25,50.53,50.63,50.73,50.94,51.32, 51.71,51.70,52.03,52.08,52.20,52.56,52.73,53.03,53.66,53.44, 53.62,54.08,53.97,54.40,54.80,55.17,55.05,55.20,55.59,56.12, 56.01,56.09,56.45,56.86,57.20,57.15,57.41,57.48,57.98,58.17, 58.32,58.75,58.97,58.98,59.52,59.58,60.10,59.94,60.44,60.52, 60.71,61.09,61.24,61.53,61.74,62.01,62.20,62.24,62.61,62.88, 63.36,63.19,63.57,63.87,64.18,64.36,64.75,64.75,65.04,65.10, 65.40,65.68,65.85,66.49,66.41,66.54,67.07,66.61,67.27,67.54, 67.84,67.90,68.44,68.12,68.88,69.08,68.91,69.62,69.64,69.66, 2.18,2.39,2.54,2.79,2.99,3.16,3.37,3.56,3.72,4.03, 4.14,4.40,4.63,4.80,5.10,5.22,5.47,5.56,5.87,5.99, 6.33,6.47,6.57,6.88,7.03,7.18,7.41,7.62,7.84,8.00, 8.21,8.55,8.68,8.86,9.05,9.32,9.38,9.66,9.92,10.11, 10.28,10.33,10.68,11.02,11.10,11.34,11.52,11.71,11.85,12.14, 12.36,12.57,12.59,12.96,13.09,13.25,13.49,13.72,13.97,14.11, 14.28,14.54,14.76,15.02,15.07,15.34,15.69,15.75,15.97,16.30, 16.35,16.71,16.82,16.72,17.31,17.50,17.53,17.95,18.14,18.16, 18.38,18.52,18.95,18.88,19.21,19.57,19.67,19.79,20.30,20.23, 20.24,20.70,20.82,20.76,21.30,21.31,21.73,21.77,22.26,22.26, 22.43,22.73,22.82,23.16,23.22,23.43,23.72,23.95,23.97,24.35, 24.40,24.74,24.90,25.14,25.35,25.49,25.82,25.93,26.07,26.41, 26.39,26.73,26.82,27.23,27.27,27.65,27.76,27.77,28.07,28.34, 28.47,28.79,28.94,29.26,29.32,29.59,29.71,29.88,30.03,30.53, 30.62,30.62,31.26,31.15,31.55,31.38,31.91,32.03,32.33,32.58, 32.62,32.73,33.02,33.11,33.49,33.60,33.94,34.02,34.34,34.62, 34.71,35.01,34.94,35.23,35.42,35.53,35.83,36.31,36.13,36.42, 36.70,36.69,37.23,37.44,37.51,37.77,38.15,38.01,38.23,38.62, 38.27,38.89,38.97,39.19,39.56,39.76,39.78,40.22,40.45,40.60, 40.70,40.97,41.19,41.25,41.44,41.97,41.81,42.12,42.20,42.55, 42.74,42.92,43.22,43.24,43.52,43.73,43.83,44.37,44.47,44.61, 44.95,44.99,45.10,45.43,45.83,46.00,45.76,45.91,46.51,46.84, 46.89,47.15,47.15,47.29,47.73,47.76,48.07,48.27,48.42,48.86, 48.74,49.13,49.19,49.47,49.55,49.80,50.26,50.08,50.48,50.53, 50.74,51.25,51.13,51.35,51.74,51.72,52.12,52.55,52.72,52.78, 52.92,53.28,53.21,53.48,53.89,54.10,54.04,54.00,54.41,54.82, 54.91,55.24,55.38,55.57,55.80,55.74,56.07,56.38,56.36,56.81, 57.03,57.17,57.46,57.58,57.92,57.69,58.50,58.40,58.49,58.80, 58.95,58.96,59.29,59.67,59.79,60.17,60.22,60.42,60.86,60.92, 1.92,2.08,2.27,2.43,2.53,2.78,2.96,3.11,3.26,3.40, 3.61,3.79,3.98,4.19,4.41,4.54,4.73,4.96,4.95,5.30, 5.48,5.57,5.72,6.00,6.13,6.32,6.47,6.70,6.80,6.97, 7.22,7.41,7.47,7.80,7.91,8.01,8.17,8.44,8.65,8.66, 8.98,9.24,9.33,9.40,9.67,9.89,9.91,10.12,10.47,10.58, 10.72,10.84,11.09,11.14,11.40,11.64,11.82,12.02,12.24,12.22, 12.43,12.67,12.71,12.94,13.10,13.39,13.50,13.59,13.96,13.97, 14.27,14.38,14.56,14.82,14.96,15.24,15.23,15.44,15.61,16.01, 16.05,16.14,16.28,16.49,16.70,16.85,17.00,17.34,17.32,17.73, 17.67,17.81,18.10,18.17,18.34,18.70,18.89,19.09,18.96,19.34, 19.38,19.57,19.86,20.04,20.19,20.34,20.65,20.82,21.02,21.23, 21.28,21.62,21.67,21.68,21.95,22.22,22.47,22.62,22.67,22.82, 23.14,23.17,23.52,23.59,23.91,23.94,24.24,24.32,24.51,24.63, 24.96,25.12,25.31,25.22,25.64,25.68,25.98,25.97,26.29,26.57, 26.63,26.76,27.02,27.14,27.37,27.65,27.52,27.88,28.11,28.44, 28.41,28.51,28.73,28.93,29.19,29.11,29.44,29.56,29.75,29.98, 30.32,30.37,30.35,30.53,30.70,30.89,31.21,31.55,31.60,31.45, 32.04,31.82,32.27,32.54,32.43,32.68,32.94,32.96,33.29,33.42, 33.81,33.75,33.92,34.35,34.31,34.59,34.68,35.21,35.05,35.17, 35.37,35.69,35.93,36.10,36.20,36.40,36.28,36.79,36.60,37.25, 37.10,37.27,37.65,37.80,37.83,38.01,38.21,38.62,38.70,38.77, 38.99,39.17,39.35,39.43,39.71,39.87,39.95,40.32,40.68,40.43, 40.82,40.88,41.16,41.21,41.34,41.73,41.79,41.88,42.07,42.34, 42.61,42.69,43.00,42.88,43.23,43.29,43.29,43.82,43.79,44.33, 44.35,44.58,44.66,44.74,44.81,45.13,45.31,45.73,45.83,46.06, 46.21,46.45,46.34,46.89,46.54,47.05,46.86,47.45,47.46,47.47, 47.98,48.00,48.09,48.44,48.69,48.47,48.94,48.91,49.12,49.41, 49.68,49.79,49.89,49.88,50.06,50.21,50.69,50.47,50.69,51.31, 51.32,51.43,51.39,51.97,51.88,52.06,52.21,52.21,52.78,53.09, 1.67,1.82,1.94,2.10,2.23,2.49,2.54,2.77,2.85,2.98, 3.17,3.39,3.47,3.62,3.78,3.90,4.18,4.22,4.43,4.64, 4.67,4.81,5.01,5.16,5.27,5.52,5.59,5.90,5.88,6.11, 6.20,6.43,6.55,6.75,7.00,6.98,7.18,7.37,7.60,7.59, 7.84,7.91,8.18,8.25,8.36,8.63,8.72,9.04,9.06,9.09, 9.41,9.44,9.62,9.69,10.03,9.98,10.24,10.54,10.57,10.71, 10.90,10.90,11.18,11.38,11.50,11.79,11.84,12.13,12.13,12.42, 12.36,12.47,12.76,12.85,12.94,13.19,13.21,13.33,13.48,13.81, 14.02,14.06,14.22,14.31,14.55,14.71,14.85,15.14,15.18,15.27, 15.49,15.54,15.78,16.05,16.15,16.25,16.35,16.50,16.91,16.87, 16.96,17.26,17.28,17.38,17.57,17.74,17.87,18.07,18.09,18.38, 18.56,18.84,18.76,18.94,19.34,19.34,19.68,19.66,19.91,19.89, 19.89,20.19,20.29,20.50,20.43,20.78,21.11,21.21,21.40,21.36, 21.56,21.78,21.87,21.87,22.20,22.46,22.37,22.47,23.03,22.97, 23.07,23.37,23.44,23.52,23.77,23.70,24.05,24.18,24.45,24.76, 24.77,24.88,25.24,25.13,25.18,25.53,25.64,25.67,26.07,26.12, 26.23,26.32,26.51,26.80,26.89,26.90,27.13,27.29,27.45,27.57, 27.80,27.87,28.18,28.26,28.27,28.51,28.91,28.63,28.90,29.02, 29.28,29.40,29.57,29.72,29.79,30.07,30.08,30.34,30.48,30.72, 30.66,30.97,31.30,31.24,31.48,31.71,31.92,31.84,32.19,32.07, 32.25,32.64,32.80,32.69,33.14,33.22,33.34,33.36,33.47,33.78, 33.83,34.15,34.30,34.34,34.33,34.65,34.76,34.95,35.03,35.20, 35.36,35.72,35.96,36.19,35.83,36.34,36.01,36.36,36.43,36.85, 36.86,36.98,37.18,37.55,37.62,37.75,37.90,38.04,38.08,38.49, 38.33,38.81,38.70,38.91,39.45,39.26,39.35,39.55,39.64,39.91, 40.19,40.00,40.48,40.35,40.60,40.55,40.78,41.10,41.25,41.45, 41.59,41.67,42.03,42.12,42.03,42.41,42.53,42.52,42.75,42.94, 42.96,43.29,43.45,43.52,43.48,43.79,44.10,44.08,44.45,44.43, 44.59,45.02,44.90,45.18,44.95,45.41,45.47,45.75,45.74,46.00, 1.47,1.53,1.70,1.78,1.95,2.09,2.19,2.32,2.49,2.62, 2.76,2.94,3.00,3.11,3.35,3.46,3.56,3.69,3.90,3.94, 4.05,4.23,4.34,4.48,4.71,4.79,4.79,5.06,5.12,5.33, 5.46,5.53,5.71,5.83,5.92,6.11,6.33,6.41,6.51,6.59, 6.81,7.09,7.14,7.10,7.36,7.37,7.59,7.67,7.72,7.98, 8.12,8.25,8.27,8.46,8.64,8.73,9.02,8.92,9.16,9.25, 9.46,9.59,9.75,9.94,9.93,10.07,10.16,10.46,10.41,10.62, 10.91,10.88,11.16,11.08,11.32,11.56,11.63,11.68,11.87,11.85, 12.08,12.14,12.41,12.61,12.61,12.77,12.90,13.02,13.11,13.31, 13.68,13.55,13.82,13.82,14.03,14.04,14.37,14.32,14.53,14.73, 14.64,15.05,15.07,15.19,15.35,15.35,15.67,15.84,15.83,16.01, 16.14,16.20,16.27,16.65,16.53,16.81,16.86,17.24,17.11,17.33, 17.36,17.38,17.78,17.76,17.95,18.11,18.18,18.27,18.57,18.67, 18.79,18.84,19.08,19.29,19.52,19.45,19.42,19.98,19.85,19.89, 20.12,20.21,20.49,20.34,20.74,20.58,20.96,20.94,21.24,21.50, 21.48,21.74,21.69,22.12,21.97,22.16,22.27,22.33,22.56,22.65, 22.77,22.88,22.97,23.10,23.47,23.59,23.64,23.74,23.87,24.30, 23.99,24.21,24.51,24.36,24.51,24.74,25.06,25.14,25.08,25.20, 25.55,25.62,25.77,26.00,25.91,26.20,26.19,26.41,26.36,26.74, 26.96,26.76,27.06,27.38,27.11,27.60,27.65,27.71,27.86,28.04, 28.08,28.42,28.40,28.83,28.51,28.93,28.91,29.06,29.12,29.76, 29.53,29.52,29.59,29.86,30.16,30.42,30.22,30.62,30.45,30.78, 30.85,30.70,31.08,31.18,31.30,31.64,31.72,31.69,31.88,31.99, 32.20,32.31,32.50,32.66,32.67,32.88,32.86,33.19,33.13,33.25, 33.53,33.72,33.59,33.82,33.95,34.13,34.06,34.43,34.70,34.68, 34.86,35.12,34.95,35.06,35.47,35.56,35.68,35.77,36.04,36.13, 36.16,36.31,36.40,36.38,36.64,36.86,36.97,37.34,37.29,37.20, 37.56,37.75,37.74,38.12,38.01,38.25,38.18,38.40,38.46,38.84, 38.72,38.70,38.94,38.95,39.32,39.68,39.43,39.60,39.84,40.13, 1.24,1.32,1.46,1.58,1.72,1.83,1.87,2.02,2.18,2.31, 2.38,2.48,2.59,2.75,2.90,3.00,3.10,3.18,3.31,3.44, 3.61,3.63,3.83,3.86,4.04,4.15,4.30,4.42,4.50,4.69, 4.72,4.84,4.87,5.06,5.13,5.28,5.52,5.57,5.71,5.91, 5.92,6.03,6.16,6.16,6.34,6.46,6.47,6.62,6.88,6.91, 7.09,7.05,7.23,7.38,7.45,7.68,7.73,7.79,7.91,8.05, 8.25,8.20,8.43,8.59,8.68,8.97,9.01,9.05,9.08,9.34, 9.43,9.59,9.63,9.79,9.86,10.02,9.98,10.41,10.43,10.53, 10.49,10.60,10.86,10.96,11.04,11.22,11.27,11.37,11.38,11.62, 11.82,11.82,11.89,12.00,12.13,12.32,12.56,12.58,12.79,12.77, 12.80,12.98,13.00,13.15,13.33,13.38,13.50,13.68,13.83,13.97, 14.06,13.95,14.37,14.44,14.62,14.45,14.78,14.86,15.00,14.98, 15.11,15.29,15.35,15.53,15.85,15.78,15.74,15.94,16.23,16.21, 16.33,16.50,16.54,16.59,16.74,16.94,16.95,17.08,17.30,17.33, 17.41,17.68,17.74,17.84,17.99,18.09,18.20,18.35,18.34,18.54, 18.79,18.96,19.01,19.04,19.28,19.23,19.45,19.33,19.62,19.77, 19.80,19.97,20.19,20.32,20.30,20.47,20.49,20.67,20.71,21.06, 21.15,21.16,21.12,21.32,21.48,21.68,21.68,21.69,21.75,22.02, 22.32,22.34,22.54,22.51,22.70,22.75,22.82,23.07,23.12,23.23, 23.09,23.45,23.49,23.59,23.69,23.90,24.22,24.18,24.00,24.45, 24.66,24.57,24.86,24.62,24.90,25.00,25.18,25.41,25.57,25.28, 25.70,25.87,25.92,26.13,26.30,26.41,26.30,26.28,26.58,26.46, 26.75,27.07,27.14,27.08,27.29,27.34,27.53,27.51,27.91,28.00, 27.90,28.25,28.20,28.36,28.38,28.46,28.89,28.65,29.03,28.91, 28.96,29.53,29.24,29.30,29.80,29.45,29.90,29.94,30.06,30.22, 30.23,30.50,30.62,30.48,30.57,30.85,30.89,31.13,31.10,31.38, 31.28,31.61,31.49,31.50,32.04,32.31,32.08,32.46,32.57,32.40, 32.54,32.72,32.83,33.09,33.13,33.04,33.22,33.46,33.39,33.58, 33.81,34.02,34.07,34.05,34.36,34.42,34.60,34.52,34.51,34.85, 1.07,1.20,1.32,1.39,1.51,1.51,1.68,1.82,1.91,2.02, 2.04,2.16,2.31,2.44,2.53,2.51,2.65,2.79,2.88,2.96, 3.05,3.19,3.32,3.42,3.60,3.65,3.67,3.74,3.88,4.06, 4.11,4.22,4.37,4.34,4.55,4.61,4.64,4.80,4.81,5.06, 5.18,5.14,5.30,5.54,5.61,5.53,5.70,5.89,6.02,6.00, 6.14,6.30,6.27,6.38,6.42,6.57,6.69,6.87,6.92,7.13, 7.17,7.25,7.28,7.45,7.56,7.60,7.60,7.87,7.97,8.12, 8.03,8.19,8.35,8.52,8.53,8.72,8.80,8.94,8.79,9.18, 9.17,9.24,9.37,9.44,9.71,9.66,9.67,9.81,9.85,9.99, 10.12,10.29,10.36,10.43,10.45,10.70,10.70,10.92,11.06,11.12, 11.18,11.28,11.26,11.53,11.55,11.71,11.86,11.93,12.00,12.18, 12.37,12.31,12.54,12.52,12.71,12.70,12.76,12.93,12.96,13.09, 13.22,13.19,13.52,13.44,13.83,13.69,13.85,14.04,14.07,14.19, 14.36,14.28,14.38,14.63,14.70,14.71,14.87,14.88,14.99,15.24, 15.28,15.36,15.36,15.63,15.58,15.66,15.94,16.31,16.05,16.14, 16.46,16.41,16.50,16.63,16.56,16.74,16.81,16.95,16.74,17.09, 17.41,17.41,17.49,17.93,17.75,17.74,17.77,17.93,18.07,18.31, 18.19,18.32,18.48,18.49,18.68,18.81,18.80,19.18,19.17,19.09, 19.34,19.38,19.50,19.41,19.65,19.93,20.02,19.92,20.09,20.05, 20.24,20.43,20.45,20.75,20.74,20.70,20.70,21.07,20.97,21.17, 21.39,21.61,21.67,21.83,21.67,21.67,21.73,22.01,22.05,22.25, 22.33,22.28,22.37,22.61,22.70,22.82,22.95,22.86,23.27,23.21, 23.36,23.57,23.61,23.74,23.85,23.83,24.00,23.89,24.22,24.23, 24.36,24.42,24.60,24.68,24.80,24.69,24.76,25.16,25.03,25.30, 25.01,25.56,25.55,25.78,25.79,25.98,25.82,26.00,26.25,26.22, 26.18,26.72,26.46,26.99,26.77,26.79,26.99,27.03,27.22,27.45, 27.52,27.77,27.58,27.56,27.86,27.94,27.89,28.15,28.15,28.30, 28.36,28.53,28.71,28.67,28.85,29.09,28.93,28.93,29.08,29.07, 29.51,29.40,29.76,29.78,29.40,29.79,30.03,30.14,30.08,30.20, 0.98,1.04,1.10,1.16,1.33,1.41,1.44,1.57,1.60,1.71, 1.83,1.93,2.00,2.10,2.17,2.30,2.38,2.55,2.52,2.64, 2.68,2.74,2.87,3.02,3.02,3.21,3.29,3.36,3.45,3.54, 3.57,3.60,3.81,3.84,3.91,4.00,4.12,4.21,4.30,4.40, 4.49,4.62,4.69,4.63,4.80,4.97,4.94,5.06,5.13,5.28, 5.23,5.35,5.48,5.70,5.68,5.78,5.78,5.96,6.07,6.11, 6.21,6.31,6.35,6.49,6.57,6.64,6.67,6.86,6.91,7.04, 7.10,7.16,7.24,7.43,7.33,7.49,7.51,7.74,7.74,7.89, 7.96,8.02,8.12,8.32,8.32,8.36,8.38,8.55,8.66,8.80, 8.86,8.93,9.05,9.11,9.13,9.29,9.37,9.47,9.59,9.72, 9.80,9.73,9.94,9.93,10.18,10.20,10.16,10.47,10.65,10.44, 10.45,10.77,10.91,10.72,10.98,10.90,11.10,11.05,11.22,11.49, 11.52,11.47,11.68,11.60,11.87,11.98,12.13,12.04,11.91,12.20, 12.37,12.36,12.70,12.69,12.65,12.79,12.91,13.04,13.20,13.20, 13.14,13.12,13.31,13.48,13.59,13.71,13.82,13.90,14.03,13.95, 14.23,14.32,14.41,14.58,14.52,14.60,14.51,14.74,14.90,14.76, 14.98,15.08,15.13,15.25,15.27,15.50,15.32,15.58,15.69,15.71, 15.78,15.98,15.93,16.21,16.24,16.45,16.55,16.50,16.71,16.92, 16.84,16.77,16.89,16.92,17.01,17.14,17.27,17.47,17.39,17.65, 17.43,17.66,17.89,18.01,18.21,18.20,18.18,18.25,18.38,18.30, 18.70,18.69,18.69,18.75,18.83,19.10,19.01,19.20,19.34,19.24, 19.40,19.36,19.51,19.70,19.65,20.01,19.98,19.83,20.13,20.19, 20.23,20.54,20.21,20.83,20.49,20.74,20.89,21.03,20.75,20.99, 21.20,21.13,21.20,21.64,21.54,21.59,21.57,21.61,22.05,22.10, 22.14,22.03,22.28,22.17,22.41,22.55,22.62,22.79,22.84,22.82, 22.93,23.09,23.33,23.41,23.24,23.64,23.39,23.75,23.53,23.76, 23.75,23.86,24.27,24.10,24.22,24.19,24.45,24.55,24.45,24.47, 24.73,24.64,24.87,24.86,24.91,25.17,25.27,25.30,25.38,25.32, 25.57,25.67,25.87,25.92,25.67,25.97,26.42,26.22,26.21,26.27, 0.81,0.90,0.94,1.04,1.11,1.20,1.29,1.35,1.45,1.54, 1.58,1.70,1.74,1.83,1.91,2.06,2.06,2.10,2.23,2.27, 2.37,2.36,2.58,2.59,2.65,2.71,2.85,2.89,3.01,3.02, 3.04,3.22,3.19,3.34,3.35,3.56,3.54,3.67,3.67,3.77, 3.89,3.91,4.07,4.10,4.20,4.22,4.47,4.36,4.50,4.59, 4.76,4.70,4.82,4.94,4.83,5.06,4.99,5.22,5.22,5.42, 5.44,5.53,5.53,5.52,5.83,5.77,5.92,6.00,5.98,6.06, 6.17,6.21,6.20,6.51,6.49,6.52,6.64,6.76,6.72,6.76, 6.91,7.07,7.14,7.19,7.26,7.32,7.33,7.62,7.48,7.64, 7.80,7.76,7.83,7.92,8.02,8.08,8.22,8.31,8.36,8.49, 8.60,8.60,8.49,8.73,8.75,8.81,8.88,8.97,9.02,9.13, 9.22,9.20,9.50,9.39,9.53,9.47,9.74,9.63,9.72,9.95, 10.13,9.88,10.13,10.26,10.40,10.37,10.38,10.49,10.46,10.71, 10.86,10.99,10.97,10.98,10.97,11.09,11.20,11.18,11.28,11.44, 11.46,11.71,11.61,11.76,11.97,11.95,12.04,12.15,12.17,12.21, 12.34,12.26,12.62,12.52,12.58,12.71,12.78,12.84,12.76,12.81, 13.24,12.99,13.26,13.39,13.20,13.48,13.55,13.46,13.59,13.69, 13.87,13.80,14.02,13.97,14.12,14.25,14.29,14.44,14.41,14.55, 14.64,14.71,14.80,14.72,15.07,15.03,15.06,15.07,15.26,15.39, 15.24,15.44,15.40,15.43,15.65,15.71,15.73,15.95,15.91,16.10, 16.04,16.12,16.21,16.34,16.54,16.45,16.38,16.79,16.79,16.80, 16.88,16.92,17.08,16.98,17.41,17.34,17.43,17.51,17.74,17.72, 17.64,17.63,17.82,17.95,17.96,17.98,18.33,18.19,18.21,18.40, 18.23,18.29,18.57,18.74,18.62,18.66,19.19,18.85,19.03,18.87, 19.23,19.08,19.27,19.40,19.44,19.51,19.57,19.64,19.75,19.97, 19.85,19.96,20.08,20.22,20.35,20.55,20.24,20.54,20.45,20.57, 20.61,20.73,20.84,21.00,21.03,21.18,21.08,21.31,21.18,21.47, 21.54,21.31,21.77,21.80,21.75,21.82,21.81,22.15,22.20,22.01, 22.37,22.43,22.35,22.54,22.49,22.50,22.76,22.97,22.95,22.76, 0.73,0.76,0.86,0.95,0.93,1.05,1.14,1.19,1.22,1.32, 1.46,1.45,1.50,1.60,1.65,1.64,1.75,1.83,1.89,1.98, 2.08,2.05,2.19,2.24,2.31,2.37,2.40,2.54,2.54,2.65, 2.72,2.79,2.81,2.95,2.96,3.01,3.17,3.17,3.24,3.35, 3.42,3.39,3.54,3.54,3.69,3.68,3.65,3.84,3.95,3.93, 4.12,4.14,4.13,4.33,4.33,4.45,4.48,4.49,4.54,4.71, 4.64,4.83,4.80,4.93,4.96,5.05,5.04,5.16,5.17,5.35, 5.42,5.43,5.38,5.55,5.61,5.67,5.78,5.93,5.89,6.08, 5.90,6.00,6.20,6.34,6.29,6.34,6.48,6.54,6.59,6.54, 6.77,6.78,6.81,6.91,6.88,7.12,6.99,7.25,7.27,7.19, 7.33,7.50,7.54,7.52,7.60,7.71,7.85,7.91,7.87,8.05, 8.10,8.09,8.30,8.20,8.41,8.36,8.38,8.62,8.61,8.60, 8.68,8.72,8.96,8.86,8.93,8.98,8.96,9.13,9.11,9.39, 9.41,9.37,9.54,9.48,9.70,9.59,9.73,9.76,10.10,9.90, 10.07,10.10,10.27,10.08,10.40,10.36,10.32,10.51,10.43,10.50, 10.77,10.84,10.88,11.05,11.08,11.06,11.08,11.20,11.30,11.32, 11.30,11.47,11.38,11.51,11.66,11.60,11.84,11.67,11.89,11.96, 11.80,12.28,12.13,12.20,12.22,12.39,12.40,12.46,12.46,12.56, 12.74,12.72,12.90,12.87,12.98,13.02,13.11,13.16,13.07,13.18, 13.31,13.47,13.67,13.65,13.59,13.74,13.76,13.92,13.95,14.10, 13.93,13.95,14.19,14.28,14.19,14.52,14.48,14.55,14.45,14.71, 14.66,14.71,14.75,14.76,14.96,15.03,14.99,15.22,15.34,15.59, 15.39,15.37,15.52,15.36,15.37,15.67,15.78,15.93,15.95,15.89, 15.87,16.09,16.26,16.22,16.50,16.42,16.54,16.35,16.59,16.70, 16.62,16.99,16.97,16.68,16.97,16.98,16.92,17.40,17.25,17.40, 17.37,17.47,17.51,17.68,17.60,17.75,17.83,17.80,17.91,18.08, 18.09,17.92,17.96,18.45,18.29,18.36,18.22,18.40,18.62,18.71, 18.71,18.64,18.92,19.01,19.03,19.09,19.12,19.23,19.21,19.20, 19.31,19.38,19.61,19.42,19.53,19.68,19.66,19.74,19.76,20.05, 0.65,0.63,0.71,0.82,0.89,0.91,0.97,1.06,1.11,1.15, 1.16,1.26,1.32,1.36,1.51,1.47,1.55,1.60,1.63,1.71, 1.79,1.85,1.84,1.90,2.03,2.13,2.04,2.16,2.25,2.30, 2.36,2.46,2.49,2.58,2.55,2.73,2.70,2.79,2.87,2.87, 2.97,2.90,2.98,3.12,3.13,3.26,3.30,3.33,3.44,3.48, 3.54,3.51,3.54,3.63,3.71,3.72,3.78,4.01,3.90,4.03, 4.13,4.16,4.18,4.38,4.35,4.47,4.31,4.49,4.49,4.60, 4.77,4.87,4.79,4.87,4.92,4.95,5.05,5.01,5.04,5.10, 5.29,5.31,5.52,5.43,5.51,5.63,5.49,5.63,5.73,5.82, 5.91,5.88,5.93,5.88,6.17,6.17,6.25,6.19,6.23,6.30, 6.44,6.46,6.54,6.67,6.62,6.81,6.74,6.85,6.89,6.88, 6.99,7.05,7.17,7.03,7.25,7.27,7.51,7.29,7.37,7.48, 7.61,7.59,7.63,7.84,7.95,7.93,7.94,8.10,8.10,8.17, 8.29,8.06,8.19,8.14,8.41,8.35,8.51,8.48,8.65,8.81, 8.71,8.75,8.79,8.84,8.86,8.90,8.93,9.25,9.27,9.22, 9.37,9.37,9.49,9.54,9.47,9.48,9.78,9.81,9.84,9.77, 9.79,9.92,9.98,10.20,10.12,10.13,10.26,10.45,10.37,10.28, 10.52,10.43,10.56,10.56,10.76,10.71,10.83,10.96,10.95,10.97, 11.19,11.13,11.06,11.20,11.37,11.34,11.25,11.25,11.45,11.59, 11.71,11.71,11.62,11.86,11.82,11.95,11.90,12.01,12.25,12.26, 12.12,12.35,12.34,12.50,12.49,12.51,12.62,12.69,12.51,12.66, 12.77,12.98,12.76,12.88,13.01,13.00,13.13,13.32,13.41,13.27, 13.36,13.36,13.53,13.50,13.53,13.60,13.73,13.71,13.96,14.05, 14.05,14.22,14.19,14.08,14.15,14.48,14.06,14.30,14.27,14.61, 14.51,14.51,14.60,14.66,14.84,14.82,14.94,14.90,15.04,14.97, 15.10,15.22,15.22,15.23,15.36,15.37,15.31,15.48,15.54,15.51, 15.90,15.79,15.74,15.75,15.89,15.85,16.07,16.00,16.25,16.19, 16.28,16.44,16.35,16.38,16.59,16.52,16.73,16.80,16.64,16.75, 16.76,17.00,16.95,16.96,17.09,17.36,17.04,17.43,17.06,17.17, 0.54,0.61,0.69,0.69,0.76,0.81,0.79,0.93,0.98,0.97, 1.08,1.09,1.09,1.23,1.28,1.31,1.33,1.43,1.49,1.53, 1.56,1.61,1.66,1.70,1.80,1.80,1.88,1.93,1.94,2.00, 2.03,2.10,2.23,2.19,2.24,2.30,2.40,2.37,2.43,2.47, 2.63,2.63,2.66,2.72,2.71,2.83,2.83,2.89,3.03,3.05, 3.10,3.09,3.18,3.25,3.25,3.34,3.33,3.36,3.42,3.53, 3.63,3.60,3.69,3.81,3.87,3.79,3.93,3.86,3.95,3.98, 3.98,4.17,4.20,4.21,4.25,4.27,4.39,4.42,4.52,4.57, 4.50,4.56,4.66,4.75,4.76,4.85,4.85,4.93,5.05,4.99, 4.99,5.10,5.12,5.15,5.24,5.41,5.39,5.37,5.47,5.51, 5.55,5.59,5.57,5.72,5.73,5.86,5.76,5.80,5.96,5.98, 5.95,6.10,6.23,6.22,6.37,6.51,6.37,6.40,6.49,6.62, 6.64,6.71,6.81,6.84,6.73,6.71,6.97,6.85,6.92,6.99, 7.08,7.11,7.17,7.21,7.30,7.32,7.40,7.49,7.51,7.61, 7.61,7.73,7.76,7.91,7.91,7.92,7.93,7.88,8.10,8.01, 8.13,8.04,8.30,8.27,8.31,8.38,8.30,8.40,8.40,8.51, 8.55,8.62,8.71,8.84,8.86,8.84,9.04,9.06,9.04,9.05, 9.11,9.15,9.22,9.40,9.29,9.36,9.39,9.63,9.62,9.58, 9.59,9.68,9.66,9.96,9.85,9.88,9.94,10.03,9.96,10.20, 10.05,10.24,10.19,10.29,10.29,10.44,10.34,10.50,10.46,10.56, 10.64,10.76,10.84,10.85,10.89,10.93,10.89,10.79,10.92,11.35, 11.22,11.14,11.15,11.41,11.21,11.41,11.42,11.39,11.36,11.48, 11.62,11.78,11.79,11.95,12.01,11.74,12.02,11.83,12.03,12.03, 12.17,12.26,12.02,12.26,12.43,12.27,12.49,12.49,12.37,12.53, 12.62,12.67,12.58,12.75,12.75,12.64,13.01,13.13,13.04,13.33, 13.15,13.24,13.11,13.59,13.26,13.34,13.36,13.50,13.80,13.60, 13.70,13.56,13.67,13.77,13.64,13.98,13.90,14.00,13.98,14.23, 14.30,14.20,14.07,14.33,14.33,14.35,14.51,14.51,14.68,14.57, 14.81,14.87,14.77,14.84,14.93,14.79,14.83,14.97,14.95,15.04, 3.94,4.30,4.67,4.99,5.40,5.76,6.06,6.53,6.81,7.20, 7.65,7.89,8.26,8.69,8.96,9.37,9.74,10.20,10.48,10.81, 11.29,11.71,11.97,12.31,12.80,13.06,13.38,13.81,14.15,14.56, 14.92,15.37,15.56,15.97,16.43,16.51,17.07,17.36,17.72,18.20, 18.41,18.87,19.21,19.67,19.90,20.50,20.67,21.31,21.43,21.80, 22.20,22.41,22.94,23.20,23.61,24.28,24.36,24.83,25.05,25.47, 25.83,26.11,26.51,26.91,27.37,27.61,28.10,28.33,28.73,28.95, 29.56,29.80,30.15,30.55,30.96,31.36,31.79,32.12,32.48,32.84, 33.10,33.48,33.91,34.06,34.54,35.17,35.23,35.76,36.18,36.40, 36.76,37.19,37.62,37.78,38.39,38.73,38.93,39.26,39.87,40.16, 40.41,40.84,41.31,41.51,41.84,42.28,42.65,42.92,43.37,43.65, 44.06,44.35,44.78,45.07,45.57,45.99,46.15,46.67,46.92,47.10, 47.81,48.23,48.48,48.82,49.30,49.47,50.12,50.49,50.84,51.19, 51.37,51.96,52.42,52.56,52.93,53.21,53.48,53.88,54.48,54.58, 55.08,55.58,55.92,56.05,56.55,57.10,57.17,57.44,57.87,58.51, 58.83,59.11,59.32,59.89,60.03,60.72,60.94,61.41,61.38,62.10, 62.32,62.70,63.25,63.66,63.74,64.34,64.49,64.96,65.36,65.58, 65.87,66.44,66.66,67.48,67.58,67.92,68.46,68.58,68.92,69.74, 69.59,70.02,70.16,70.86,71.11,71.54,71.52,72.38,72.89,73.20, 72.89,73.47,74.03,74.30,74.58,75.03,75.50,75.66,76.03,76.74, 77.06,77.18,77.70,78.19,78.36,78.72,79.38,79.48,80.11,80.44, 80.73,80.81,81.27,81.69,81.95,82.21,82.82,82.86,83.66,83.94, 84.33,84.69,85.06,85.19,85.77,86.08,86.24,86.89,87.26,87.50, 88.23,87.85,88.76,88.97,89.44,89.70,90.20,90.59,90.76,91.10, 91.72,92.08,92.33,92.65,93.05,93.62,93.77,93.92,94.21,94.96, 95.13,95.39,95.96,96.40,96.89,97.32,97.23,98.05,97.84,98.56, 98.86,99.30,99.67,99.97,100.27,100.84,100.88,101.25,101.51,101.88, 102.59,102.85,103.61,103.53,103.88,104.32,104.99,104.97,105.32,105.53, 106.26,106.45,106.92,107.33,107.92,108.02,108.34,108.49,109.05,109.70, 3.49,3.79,4.11,4.39,4.70,5.00,5.42,5.58,5.98,6.35, 6.68,6.94,7.31,7.67,7.98,8.31,8.56,8.94,9.14,9.59, 9.84,10.27,10.50,10.80,11.21,11.48,11.78,12.17,12.34,12.69, 13.01,13.40,13.60,14.11,14.46,14.66,14.98,15.26,15.62,15.96, 16.34,16.59,17.15,17.25,17.75,17.90,18.31,18.64,18.82,19.08, 19.51,19.99,20.21,20.44,20.83,21.22,21.24,21.71,22.28,22.50, 22.67,23.20,23.28,23.65,24.10,24.56,24.61,25.09,25.25,25.49, 25.95,26.26,26.55,26.90,27.32,27.64,27.81,28.19,28.52,28.88, 29.25,29.40,29.83,30.33,30.52,30.68,31.04,31.33,31.76,32.41, 32.36,32.65,33.08,33.26,33.62,33.81,34.18,34.65,34.88,35.38, 35.77,35.95,36.14,36.64,36.75,37.16,37.55,37.86,38.12,38.56, 38.79,39.01,39.28,39.79,40.16,40.40,40.66,41.05,41.33,41.77, 41.96,42.18,42.73,43.09,43.37,43.63,43.96,44.26,44.38,44.97, 45.21,45.59,45.89,46.23,46.45,46.98,47.14,47.47,47.63,48.22, 48.37,48.67,49.07,49.47,49.73,50.10,50.35,50.97,51.34,51.43, 51.87,52.01,52.38,52.62,52.90,53.23,53.54,54.13,54.04,54.68, 54.69,55.03,55.67,55.76,56.28,56.54,56.82,57.24,57.23,57.80, 58.27,58.36,58.81,59.12,59.43,59.66,60.31,60.41,60.61,61.31, 61.48,61.57,61.80,62.30,62.51,62.65,63.27,63.38,64.01,64.34, 64.58,64.86,65.26,65.55,65.62,66.23,66.48,66.82,66.88,67.23, 67.85,67.97,68.25,68.41,68.97,69.31,69.69,69.99,70.36,70.79, 70.79,71.22,71.61,71.80,72.16,72.66,73.03,73.28,73.52,73.63, 74.13,74.42,75.16,75.04,75.58,75.53,76.44,76.26,76.51,77.37, 77.36,77.84,77.89,78.36,78.46,79.12,79.11,79.99,79.95,79.96, 80.92,80.94,81.31,81.41,81.67,82.31,82.73,82.86,83.35,83.34, 83.66,84.04,84.64,84.77,85.26,85.30,85.96,86.25,86.39,86.70, 87.05,87.55,87.70,87.71,88.62,88.45,88.98,89.34,89.66,89.99, 90.24,90.44,90.81,91.03,91.45,91.95,92.07,92.51,92.89,93.45, 93.34,93.72,94.19,94.44,94.76,95.16,95.54,95.02,95.96,96.45, 3.03,3.32,3.66,3.95,4.14,4.39,4.79,4.96,5.28,5.68, 5.89,6.16,6.41,6.70,6.98,7.25,7.64,7.80,8.14,8.48, 8.73,8.94,9.38,9.53,9.93,10.16,10.27,10.71,11.01,11.27, 11.52,11.74,12.14,12.45,12.64,12.91,13.30,13.53,13.85,14.11, 14.32,14.75,14.94,15.19,15.53,15.81,16.17,16.31,16.72,16.68, 17.18,17.34,17.84,18.03,18.33,18.59,18.83,19.11,19.45,19.67, 20.03,20.33,20.74,20.75,21.05,21.50,21.72,21.98,22.27,22.54, 22.84,23.11,23.48,23.71,23.89,24.06,24.61,24.90,24.93,25.42, 25.40,25.75,26.22,26.54,26.82,26.97,27.49,27.63,28.05,28.18, 28.51,28.86,29.01,29.24,29.62,29.97,30.43,30.48,30.72,30.91, 31.40,31.52,31.86,32.31,32.40,32.77,32.96,33.25,33.52,33.71, 34.15,34.59,34.85,34.95,35.14,35.62,35.82,36.30,36.43,36.69, 37.14,37.32,37.49,37.83,38.30,38.37,38.76,39.00,39.09,39.57, 39.76,40.03,40.31,40.49,40.95,41.06,41.48,41.92,41.86,42.21, 42.67,43.09,43.37,43.65,43.96,43.88,44.18,44.60,44.98,45.12, 45.41,45.82,46.03,46.35,46.66,46.65,47.33,47.39,47.87,47.96, 48.30,48.42,49.03,49.20,49.30,49.62,50.03,50.34,50.49,50.79, 51.15,51.46,51.79,51.85,52.56,52.39,52.77,53.25,53.43,53.77, 54.03,54.15,54.85,54.67,55.19,55.26,55.57,56.21,56.26,56.75, 56.59,57.12,57.27,57.41,58.26,58.43,58.59,58.57,59.10,59.39, 59.43,59.99,60.45,60.30,60.65,61.32,61.03,61.58,61.79,62.11, 62.46,62.54,62.94,63.38,63.93,64.16,64.23,64.53,64.86,65.04, 65.45,65.49,65.55,66.00,66.35,66.80,66.78,67.17,67.84,67.95, 68.15,68.34,68.54,69.07,69.02,69.55,69.63,70.13,70.38,70.23, 70.76,70.99,71.29,71.55,72.23,72.61,72.55,73.16,73.47,73.25, 73.59,73.95,74.44,74.44,74.78,74.97,75.37,75.79,75.76,76.09, 76.62,76.79,77.02,77.28,77.84,78.10,78.11,78.52,78.85,79.14, 79.21,79.63,80.03,80.16,80.56,80.87,80.97,81.47,81.67,82.04, 82.26,82.57,83.06,83.14,83.41,84.00,83.87,84.34,84.55,85.02, 2.63,2.93,3.16,3.48,3.74,3.92,4.12,4.35,4.69,4.93, 5.19,5.39,5.66,5.89,6.19,6.44,6.65,6.84,7.18,7.33, 7.74,7.92,8.11,8.44,8.64,8.85,9.21,9.35,9.67,9.79, 10.02,10.42,10.72,10.91,11.24,11.47,11.52,11.88,12.24,12.30, 12.61,12.87,13.05,13.40,13.59,14.00,14.19,14.30,14.61,14.83, 15.21,15.42,15.59,15.85,16.23,16.43,16.75,16.97,17.21,17.51, 17.49,17.86,18.14,18.36,18.54,18.94,19.14,19.33,19.60,19.86, 20.13,20.37,20.78,20.89,20.97,21.28,21.52,21.92,21.88,22.27, 22.48,22.82,23.07,23.29,23.65,23.99,23.99,24.40,24.73,24.72, 24.94,25.33,25.46,25.88,26.27,26.36,26.68,26.84,27.03,27.33, 27.59,27.82,27.92,28.28,28.48,28.79,29.03,29.04,29.59,29.89, 30.01,30.05,30.52,30.95,31.06,31.42,31.50,31.80,31.98,32.36, 32.58,32.74,32.87,33.31,33.51,33.99,34.18,34.25,34.50,34.71, 35.07,35.53,35.36,35.68,36.17,36.25,36.51,36.83,37.08,37.26, 37.72,37.76,38.15,38.11,38.70,38.84,39.11,39.20,39.40,39.81, 39.77,40.03,40.52,40.62,41.00,41.20,41.38,41.73,41.99,42.48, 42.62,42.74,43.01,43.10,43.54,43.44,44.17,44.10,44.52,44.81, 45.08,45.28,45.77,45.61,46.01,46.05,46.44,46.90,46.91,47.30, 47.43,47.71,47.93,48.39,48.27,48.61,49.05,49.11,49.23,49.66, 50.13,50.23,50.31,50.77,50.87,51.10,51.24,51.55,51.90,52.15, 52.47,52.58,52.81,53.46,53.40,53.77,53.83,54.19,54.47,54.82, 55.07,55.19,55.53,55.81,55.89,55.99,56.27,56.63,56.91,57.33, 57.63,57.91,57.76,58.11,58.46,58.73,58.84,59.37,59.48,59.94, 59.94,60.42,60.18,60.84,60.57,61.01,61.26,61.84,61.69,62.17, 62.01,62.89,62.70,63.28,63.13,63.54,63.84,64.14,64.30,64.67, 64.61,65.10,65.33,66.04,65.77,66.17,66.45,66.38,66.91,67.15, 67.75,67.75,67.87,68.33,68.53,68.66,68.75,68.97,69.30,69.68, 69.85,69.94,70.89,70.36,71.01,70.92,71.25,71.86,71.88,72.21, 72.42,72.70,72.63,73.38,73.06,73.94,74.25,73.96,74.44,74.76, 2.39,2.62,2.80,2.98,3.25,3.38,3.71,3.85,4.06,4.32, 4.58,4.76,4.97,5.15,5.43,5.65,5.88,6.16,6.32,6.52, 6.73,7.05,7.08,7.45,7.58,7.85,7.98,8.26,8.53,8.76, 8.99,9.03,9.37,9.57,9.83,10.05,10.28,10.49,10.60,10.79, 10.98,11.27,11.62,11.80,12.05,12.12,12.38,12.66,12.78,13.12, 13.25,13.52,13.68,13.95,14.27,14.28,14.63,14.87,15.00,15.41, 15.43,15.65,15.83,16.10,16.50,16.62,16.74,16.99,17.26,17.51, 17.73,17.80,18.29,18.40,18.59,18.86,18.90,19.30,19.42,19.78, 19.92,20.08,20.34,20.64,20.69,21.04,21.16,21.41,21.64,21.73, 21.79,22.34,22.48,22.61,23.11,23.14,23.42,23.71,23.87,23.98, 24.29,24.46,24.82,24.85,24.95,25.59,25.54,25.94,25.98,26.26, 26.53,26.65,27.01,27.05,27.39,27.60,27.74,27.98,28.07,28.54, 28.66,28.82,29.18,29.29,29.62,29.68,29.82,30.21,30.37,30.56, 30.79,31.10,31.14,31.41,31.78,31.95,32.12,32.35,32.41,32.77, 33.06,32.98,33.48,33.71,33.92,34.15,34.34,34.48,34.90,34.95, 35.21,35.39,35.60,35.83,36.15,36.18,36.66,36.70,36.90,37.27, 37.58,37.76,37.84,38.11,38.38,38.72,38.66,38.94,39.17,39.17, 39.66,40.04,40.10,40.24,40.98,40.90,40.95,41.02,41.40,41.60, 41.85,42.18,42.23,42.49,42.56,42.75,43.11,43.11,43.64,43.69, 43.98,44.16,44.18,44.72,44.65,45.17,45.51,45.18,45.72,45.97, 46.18,46.39,46.52,46.71,46.77,47.33,47.57,47.62,48.13,48.17, 48.26,48.62,48.87,48.99,49.29,49.61,49.65,49.96,49.97,50.42, 50.72,50.65,50.94,51.60,51.46,51.58,51.99,52.08,52.01,52.73, 52.34,52.85,52.93,53.30,53.57,53.91,54.07,54.18,54.53,54.68, 55.04,55.14,55.42,55.31,55.73,55.96,56.09,56.56,56.62,57.03, 56.96,57.41,57.67,57.89,57.83,58.26,58.53,58.78,58.99,59.44, 59.41,59.69,59.90,60.12,59.96,60.45,60.60,60.71,61.26,61.19, 61.44,61.74,61.67,62.17,62.42,62.62,62.66,63.29,63.30,63.47, 63.86,63.86,64.33,64.50,64.47,64.94,64.93,64.97,65.59,65.83, 2.09,2.25,2.46,2.67,2.85,2.97,3.29,3.45,3.60,3.77, 4.03,4.23,4.36,4.60,4.73,4.97,5.18,5.33,5.63,5.65, 5.92,6.14,6.30,6.48,6.73,6.90,7.01,7.32,7.58,7.65, 7.81,8.02,8.21,8.45,8.71,8.74,8.91,9.19,9.44,9.59, 9.78,9.90,10.12,10.37,10.45,10.80,11.06,11.08,11.25,11.50, 11.76,11.98,12.28,12.19,12.58,12.63,12.80,13.02,13.38,13.46, 13.57,13.83,14.07,14.23,14.38,14.57,14.77,14.84,15.06,15.32, 15.66,15.73,15.97,16.18,16.35,16.49,16.67,17.05,17.14,17.50, 17.42,17.83,17.89,17.99,18.32,18.37,18.68,18.96,19.07,19.10, 19.32,19.55,19.79,20.12,20.16,20.43,20.60,20.77,20.96,21.26, 21.38,21.46,21.70,22.05,22.11,22.18,22.69,22.75,23.01,22.97, 23.35,23.51,23.71,23.85,24.25,24.11,24.36,24.58,24.64,25.03, 25.29,25.32,25.58,25.75,26.00,26.32,26.39,26.61,26.60,26.82, 26.99,27.43,27.57,27.80,28.02,28.19,28.40,28.55,28.90,28.98, 28.97,29.31,29.47,29.71,29.66,29.84,30.22,30.59,30.81,30.97, 31.14,31.12,31.54,31.66,31.73,32.06,32.15,32.16,32.59,32.66, 32.86,33.20,33.09,33.58,33.58,34.02,34.05,34.36,34.41,34.73, 34.87,35.06,35.24,35.40,35.63,36.01,36.07,36.19,36.15,36.66, 36.71,36.75,37.20,37.34,37.72,37.86,37.89,37.83,38.46,38.44, 38.80,38.85,39.20,39.31,39.35,39.84,39.87,39.96,40.26,40.64, 40.75,40.78,40.92,41.22,41.46,41.73,41.80,42.01,42.06,42.55, 42.52,42.56,42.88,43.23,43.23,43.60,43.62,44.02,43.87,44.30, 44.57,44.81,44.73,45.03,45.27,45.56,45.60,45.71,45.97,46.30, 46.37,46.58,47.05,47.06,47.25,47.42,47.92,47.64,47.96,47.98, 48.35,48.95,48.77,49.14,49.19,49.33,49.32,49.57,49.97,49.98, 50.31,50.57,50.71,50.83,50.79,51.10,51.32,51.41,51.99,52.17, 52.01,52.28,52.11,52.64,52.87,52.93,53.31,53.63,53.71,53.75, 53.92,54.31,54.49,54.56,54.95,55.00,55.17,55.46,55.79,55.70, 56.14,56.31,56.36,56.67,56.97,57.06,57.26,57.76,57.66,57.45, 1.76,2.00,2.21,2.36,2.53,2.66,2.79,3.06,3.21,3.31, 3.47,3.74,3.83,3.96,4.18,4.37,4.54,4.75,4.92,5.04, 5.29,5.34,5.59,5.76,5.81,6.04,6.29,6.34,6.67,6.64, 6.94,7.07,7.30,7.43,7.67,7.67,8.02,8.14,8.22,8.54, 8.68,8.81,8.93,9.14,9.29,9.47,9.57,9.79,9.91,10.12, 10.39,10.39,10.72,10.79,10.99,11.38,11.35,11.51,11.64,11.73, 12.06,12.19,12.44,12.43,12.76,12.71,13.03,13.26,13.46,13.49, 13.62,13.90,14.24,14.15,14.32,14.45,14.73,14.92,14.92,15.20, 15.35,15.58,15.65,15.93,16.03,16.17,16.30,16.63,16.75,16.84, 16.97,17.35,17.41,17.67,17.86,17.93,18.18,18.29,18.57,18.55, 18.83,19.05,19.18,19.32,19.41,19.63,19.82,19.89,20.16,20.11, 20.46,20.66,20.95,21.23,21.15,21.14,21.55,21.60,21.89,22.03, 22.11,22.34,22.37,22.64,22.76,23.11,23.31,23.28,23.72,23.78, 23.84,24.01,24.29,24.40,24.58,24.86,24.96,25.19,25.33,25.44, 25.58,25.89,25.68,26.06,26.51,26.33,26.50,26.76,26.86,27.16, 27.07,27.48,27.48,27.77,28.05,28.13,28.29,28.52,28.66,28.86, 28.99,29.10,29.35,29.47,29.46,29.78,30.03,30.16,30.42,30.45, 30.81,30.86,31.07,31.11,31.38,31.48,31.72,31.58,32.21,32.29, 32.25,32.41,32.62,32.79,32.82,33.11,33.33,33.50,33.81,33.75, 33.93,34.12,34.39,34.76,34.69,34.98,35.08,35.27,35.63,35.43, 35.65,36.02,36.13,36.16,36.29,36.43,36.72,37.02,37.16,37.18, 37.36,37.51,37.73,38.13,37.78,38.35,38.45,38.65,38.82,38.94, 39.15,39.27,39.41,39.72,39.67,39.99,40.34,40.30,40.35,40.68, 40.91,40.79,41.19,41.45,41.46,41.73,41.66,42.20,42.05,42.28, 42.45,42.50,42.76,43.09,43.06,43.35,43.77,43.78,44.08,44.00, 44.26,44.27,44.57,44.52,44.82,44.85,45.31,45.18,45.69,45.83, 45.92,46.10,46.05,46.40,46.59,46.62,47.10,46.85,47.29,47.12, 47.55,47.83,47.87,47.96,48.43,48.52,48.59,48.56,48.85,48.94, 49.44,49.32,49.61,49.81,50.31,50.31,50.25,50.68,50.77,50.88, 1.58,1.76,1.95,2.01,2.21,2.38,2.53,2.69,2.86,2.97, 3.12,3.23,3.35,3.56,3.75,3.88,3.97,4.21,4.29,4.41, 4.60,4.64,4.89,5.10,5.21,5.33,5.49,5.70,5.74,5.93, 6.09,6.19,6.35,6.56,6.69,6.82,6.93,7.04,7.24,7.33, 7.57,7.73,7.91,7.97,8.19,8.27,8.55,8.68,8.75,8.96, 9.06,9.17,9.27,9.54,9.60,9.80,10.04,10.15,10.13,10.53, 10.48,10.54,10.76,10.92,11.03,11.46,11.34,11.54,11.84,11.88, 12.07,12.24,12.27,12.55,12.74,12.86,13.06,13.21,13.19,13.34, 13.64,13.84,13.77,14.09,14.00,14.26,14.57,14.49,14.74,14.85, 15.10,15.21,15.36,15.43,15.65,15.72,16.02,16.23,16.32,16.42, 16.64,16.70,16.81,16.91,17.07,17.33,17.34,17.67,17.70,17.74, 17.91,18.09,18.28,18.51,18.69,18.78,19.00,19.02,19.35,19.32, 19.64,19.56,19.91,19.68,20.39,20.22,20.48,20.73,20.76,20.88, 20.95,21.00,21.30,21.42,21.46,21.74,21.83,21.94,22.24,22.52, 22.54,22.60,22.74,22.97,23.06,23.18,23.41,23.53,23.70,23.82, 23.84,24.21,24.48,24.41,24.68,24.87,24.78,24.96,25.26,25.42, 25.50,25.74,25.68,26.07,26.12,26.21,26.35,26.61,26.54,26.92, 27.08,27.01,27.33,27.35,27.52,27.61,27.83,28.18,28.08,28.48, 28.62,28.54,28.57,28.87,29.04,29.18,29.23,29.58,29.83,29.79, 30.04,30.08,30.14,30.63,30.47,30.70,30.90,30.96,31.38,31.45, 31.53,31.68,31.63,31.85,32.03,31.98,32.23,32.22,32.52,32.59, 32.87,32.92,33.29,33.33,33.62,33.83,33.86,33.96,34.12,34.25, 34.55,34.55,34.47,34.76,35.02,34.92,35.50,35.35,35.61,35.63, 35.80,36.05,36.26,36.44,36.41,36.57,36.72,36.91,37.04,37.23, 37.42,37.90,37.70,37.74,38.07,38.09,38.29,38.70,38.63,38.71, 38.94,39.04,39.22,39.31,39.46,39.99,40.25,39.66,40.13,40.16, 40.50,40.47,40.54,40.96,40.91,41.25,41.42,41.78,41.68,41.90, 41.85,42.10,42.10,42.38,42.38,42.84,42.46,42.80,43.16,43.15, 43.36,43.55,43.49,44.14,43.81,44.25,44.35,44.21,44.35,44.70, 1.37,1.53,1.71,1.80,1.94,2.06,2.23,2.33,2.46,2.58, 2.75,2.87,3.00,3.10,3.28,3.34,3.47,3.58,3.72,3.84, 4.04,4.18,4.29,4.40,4.49,4.76,4.83,4.87,5.08,5.19, 5.28,5.51,5.62,5.78,5.92,6.01,6.20,6.21,6.43,6.55, 6.69,6.77,6.87,6.99,7.29,7.26,7.46,7.59,7.68,7.71, 7.98,8.03,8.14,8.36,8.52,8.60,8.73,8.93,9.00,9.13, 9.23,9.50,9.55,9.72,9.78,9.96,10.06,10.12,10.29,10.50, 10.55,10.85,10.90,11.07,11.26,11.12,11.25,11.48,11.66,11.96, 11.81,12.12,12.23,12.37,12.39,12.49,12.49,12.74,13.00,13.08, 13.36,13.40,13.46,13.66,13.79,13.77,14.01,14.14,14.32,14.37, 14.45,14.68,14.81,15.04,15.05,15.11,15.37,15.44,15.49,15.69, 15.91,16.06,16.12,16.29,16.44,16.43,16.69,16.77,16.93,17.02, 17.33,17.36,17.52,17.43,17.66,17.88,17.99,18.03,18.26,18.28, 18.40,18.53,18.73,18.90,18.94,19.08,19.32,19.37,19.66,19.73, 19.76,19.97,19.89,20.02,20.24,20.56,20.38,20.69,20.90,20.99, 21.23,21.21,21.43,21.54,21.80,21.81,21.92,22.05,22.17,22.44, 22.49,22.50,22.76,22.78,23.02,23.24,23.13,23.34,23.59,23.43, 23.92,23.82,23.94,24.07,24.22,24.53,24.57,24.74,24.75,24.88, 25.18,25.09,25.29,25.33,25.74,25.83,25.86,25.83,26.09,26.23, 26.36,26.55,26.50,26.77,26.71,26.91,27.27,27.23,27.50,27.42, 27.72,27.77,28.08,28.01,28.26,28.31,28.24,28.47,28.95,28.87, 28.82,29.01,29.23,29.26,29.59,29.68,29.80,29.85,30.19,30.19, 30.47,30.15,30.40,30.81,30.81,30.91,31.16,31.16,31.60,31.45, 31.63,31.66,31.63,32.12,32.00,32.29,32.46,32.45,32.69,32.64, 32.97,33.15,33.06,33.21,33.39,33.56,33.75,33.98,33.99,34.08, 34.17,34.76,34.47,34.57,34.89,34.85,34.88,35.26,35.33,35.16, 35.43,35.36,35.53,35.82,36.13,36.27,36.50,36.44,36.69,36.83, 37.06,36.99,37.18,37.19,37.29,37.67,37.82,37.79,37.80,37.97, 38.39,38.47,38.22,38.79,38.89,39.04,38.95,38.95,39.47,39.25, 1.22,1.37,1.48,1.57,1.68,1.84,1.84,2.07,2.12,2.27, 2.34,2.51,2.64,2.68,2.90,3.03,3.06,3.20,3.36,3.43, 3.56,3.68,3.78,3.79,3.94,4.15,4.29,4.42,4.44,4.64, 4.75,4.85,4.94,5.05,5.10,5.26,5.42,5.57,5.56,5.75, 5.92,5.99,6.07,6.21,6.23,6.47,6.57,6.82,6.86,6.85, 7.04,7.12,7.33,7.49,7.51,7.61,7.72,7.80,7.94,8.05, 8.28,8.36,8.44,8.48,8.69,8.73,8.92,8.99,9.21,9.26, 9.38,9.40,9.48,9.65,9.68,9.87,10.15,10.26,10.32,10.52, 10.50,10.67,10.72,10.79,10.91,10.99,11.25,11.34,11.41,11.41, 11.78,11.69,11.87,11.92,12.01,12.21,12.31,12.48,12.68,12.77, 12.74,12.82,13.02,13.20,13.14,13.30,13.55,13.61,13.80,13.78, 13.82,14.13,14.16,14.33,14.37,14.58,14.68,14.74,14.84,14.88, 15.16,15.29,15.45,15.34,15.64,15.71,15.73,16.03,15.88,16.13, 16.28,16.33,16.53,16.73,16.74,16.76,16.98,17.00,17.32,17.23, 17.29,17.58,17.52,17.81,17.96,17.99,18.24,18.22,18.27,18.35, 18.55,18.60,18.79,19.02,19.00,19.11,19.16,19.40,19.51,19.67, 19.68,19.70,19.94,20.12,20.10,20.37,20.46,20.55,20.57,20.87, 20.93,21.05,20.89,21.32,21.41,21.55,21.61,21.67,21.86,21.93, 22.28,22.20,22.34,22.56,22.61,22.67,22.61,23.07,22.88,23.01, 23.14,23.43,23.43,23.54,23.54,23.81,23.99,24.04,23.96,24.41, 24.31,24.58,24.53,24.75,24.78,24.95,25.08,25.11,25.09,25.50, 25.52,25.88,25.69,25.96,25.70,26.13,26.20,26.17,26.46,26.27, 26.69,26.90,26.80,26.94,26.94,27.22,27.39,27.39,27.57,27.68, 27.60,27.81,28.05,28.06,28.27,28.46,28.38,28.68,28.50,28.96, 28.98,29.31,29.16,29.32,29.37,29.33,29.66,29.53,29.99,29.97, 30.41,30.47,30.28,30.41,30.74,30.69,30.86,30.98,31.27,31.20, 31.27,31.50,31.65,31.52,31.64,31.72,31.92,32.15,32.30,32.54, 32.27,32.49,32.73,32.99,32.90,32.92,33.28,33.16,33.29,33.59, 33.63,33.61,33.63,34.02,34.09,33.99,34.38,34.30,34.72,34.68, 1.12,1.19,1.28,1.40,1.55,1.59,1.69,1.83,1.89,1.99, 2.17,2.21,2.30,2.41,2.54,2.70,2.74,2.86,2.89,3.05, 3.08,3.23,3.32,3.46,3.52,3.65,3.78,3.88,4.00,4.08, 4.13,4.23,4.32,4.44,4.53,4.64,4.70,4.88,4.96,5.03, 5.17,5.26,5.45,5.52,5.50,5.71,5.70,5.83,5.90,6.12, 6.11,6.25,6.32,6.41,6.56,6.75,6.77,6.88,6.98,7.09, 7.13,7.40,7.33,7.45,7.53,7.73,7.75,7.96,7.99,8.03, 8.27,8.29,8.25,8.48,8.49,8.71,8.80,8.93,8.98,9.15, 9.23,9.19,9.43,9.50,9.66,9.64,9.86,9.88,10.09,10.08, 10.36,10.30,10.56,10.56,10.55,10.70,10.86,10.81,11.24,11.21, 11.20,11.29,11.52,11.66,11.67,11.71,11.90,11.97,12.00,12.32, 12.12,12.39,12.50,12.56,12.71,12.83,12.94,13.00,13.37,13.02, 13.25,13.63,13.61,13.59,13.74,13.93,13.83,14.07,14.07,14.38, 14.17,14.37,14.49,14.63,14.90,14.89,14.98,14.90,14.98,15.11, 15.27,15.38,15.60,15.79,15.82,15.87,15.90,16.07,16.19,16.18, 16.43,16.46,16.65,16.71,16.79,16.83,16.94,17.12,17.24,17.13, 17.50,17.42,17.61,17.82,17.73,17.75,18.08,18.03,18.12,18.12, 18.44,18.55,18.57,18.73,18.93,18.99,18.94,19.08,19.27,19.26, 19.44,19.54,19.48,19.74,19.68,20.07,20.03,20.10,20.10,20.35, 20.48,20.45,20.83,20.56,20.69,20.91,21.06,21.18,21.07,21.16, 21.43,21.63,21.53,21.72,21.78,21.94,22.10,22.24,22.33,22.47, 22.53,22.52,22.43,22.73,22.67,22.75,23.16,23.04,23.42,23.18, 23.64,23.51,23.63,23.82,23.98,23.89,23.95,24.13,24.24,24.40, 24.31,24.73,24.95,24.82,24.81,25.05,25.20,25.37,25.45,25.58, 25.34,25.76,25.95,25.68,25.80,26.11,26.13,26.31,26.23,26.55, 26.44,26.65,26.75,26.78,26.85,27.03,27.06,27.33,27.05,27.51, 27.50,27.59,27.75,27.78,27.85,28.22,27.93,28.17,28.43,28.60, 28.59,28.59,28.66,28.88,29.16,29.08,29.06,29.26,29.39,29.59, 29.59,30.00,29.83,29.94,30.05,29.98,30.09,30.13,30.29,30.80, 0.96,1.09,1.15,1.20,1.32,1.46,1.47,1.60,1.66,1.75, 1.88,1.95,1.99,2.07,2.22,2.31,2.42,2.44,2.56,2.68, 2.80,2.85,2.88,3.06,3.12,3.23,3.26,3.29,3.43,3.53, 3.62,3.81,3.85,3.97,3.99,4.16,4.18,4.27,4.39,4.50, 4.62,4.63,4.69,4.91,4.84,4.99,5.13,5.17,5.32,5.38, 5.35,5.51,5.71,5.75,5.85,5.87,6.07,6.15,6.19,6.25, 6.39,6.45,6.63,6.59,6.70,6.78,6.94,7.03,7.09,7.12, 7.21,7.30,7.34,7.50,7.55,7.62,7.70,7.83,7.99,8.06, 7.96,8.21,8.38,8.29,8.42,8.51,8.69,8.69,8.79,8.82, 9.00,9.11,9.26,9.16,9.41,9.33,9.53,9.54,9.66,9.73, 9.93,10.11,10.18,10.32,10.22,10.30,10.46,10.56,10.73,10.93, 10.77,10.81,11.00,11.24,11.07,11.21,11.34,11.40,11.55,11.63, 11.71,11.95,11.70,12.06,12.19,12.20,12.37,12.46,12.38,12.29, 12.66,12.85,12.83,12.89,13.02,12.97,13.21,13.15,13.09,13.33, 13.47,13.58,13.54,13.80,13.72,14.00,14.08,14.18,14.21,14.35, 14.42,14.60,14.71,14.57,14.79,14.86,14.67,15.03,15.06,15.22, 15.33,15.31,15.58,15.56,15.60,15.66,15.84,15.99,16.01,15.99, 16.16,16.21,16.31,16.54,16.60,16.76,16.90,16.69,16.86,16.95, 17.02,17.01,17.03,17.36,17.32,17.58,17.52,17.57,18.03,17.92, 17.89,17.92,18.09,18.16,18.34,18.56,18.61,18.50,18.91,18.74, 18.93,18.86,19.11,18.91,19.20,19.37,19.29,19.57,19.78,19.71, 19.57,19.88,19.87,20.00,20.14,20.07,20.47,20.18,20.57,20.58, 20.74,20.86,20.86,21.09,20.83,21.01,21.10,21.31,21.26,21.65, 21.51,21.54,21.46,21.75,21.84,21.79,22.12,22.13,22.34,22.41, 22.44,22.56,22.70,22.59,22.79,22.88,22.89,22.90,23.15,23.43, 23.39,23.34,23.73,23.76,23.86,24.00,23.98,24.09,23.86,24.18, 24.08,24.30,24.52,24.39,24.71,24.77,24.55,24.94,24.96,25.16, 25.35,25.43,25.31,25.32,25.57,25.54,25.57,25.77,26.08,25.89, 26.06,26.10,26.10,26.34,26.53,26.65,26.59,26.68,26.75,26.96, 0.89,0.96,1.01,1.06,1.18,1.27,1.28,1.37,1.52,1.60, 1.59,1.76,1.80,1.88,1.98,2.04,2.08,2.17,2.27,2.31, 2.44,2.60,2.58,2.64,2.70,2.81,2.83,2.96,3.04,3.12, 3.19,3.35,3.38,3.42,3.44,3.61,3.69,3.81,3.82,3.86, 4.07,4.07,4.13,4.19,4.27,4.51,4.44,4.60,4.56,4.70, 4.74,4.83,4.90,5.08,5.24,5.13,5.34,5.41,5.31,5.49, 5.60,5.63,5.70,5.83,5.91,6.05,6.00,6.14,6.34,6.22, 6.34,6.43,6.62,6.56,6.80,6.80,6.84,6.90,6.97,7.12, 7.11,7.25,7.36,7.58,7.55,7.57,7.56,7.83,7.78,7.88, 8.07,8.10,8.02,8.03,8.27,8.41,8.43,8.53,8.65,8.68, 8.84,8.79,8.91,8.98,9.23,9.14,9.22,9.16,9.31,9.31, 9.48,9.52,9.65,9.65,9.88,9.95,10.00,10.03,10.08,10.28, 10.28,10.42,10.48,10.56,10.60,10.58,10.74,10.92,10.82,10.92, 11.04,11.22,11.20,11.25,11.43,11.59,11.51,11.69,11.77,11.92, 11.94,11.97,12.10,12.23,12.07,12.27,12.43,12.27,12.34,12.68, 12.68,12.77,12.77,12.76,12.90,13.02,13.14,13.20,13.29,13.35, 13.40,13.54,13.64,13.77,13.89,13.81,13.95,13.76,14.03,14.21, 14.38,14.29,14.47,14.59,14.53,14.64,14.72,14.94,14.90,14.94, 15.10,15.10,15.26,15.38,15.21,15.48,15.57,15.58,15.71,15.61, 15.95,16.04,15.93,16.02,16.11,16.22,16.40,16.16,16.63,16.53, 16.45,16.66,16.84,16.83,16.74,16.92,16.93,17.16,17.17,17.37, 17.44,17.54,17.58,17.86,17.76,17.83,17.84,17.78,17.87,18.27, 17.94,18.07,18.32,18.44,18.57,18.66,18.65,18.73,18.74,18.90, 18.89,19.08,19.02,19.37,19.15,19.37,19.41,19.50,19.37,19.66, 19.68,19.72,20.01,20.05,20.00,20.14,20.09,20.25,20.54,20.33, 20.46,20.67,20.68,20.69,20.95,20.69,21.02,21.07,21.20,21.39, 21.40,21.27,21.52,21.64,21.69,21.76,22.07,21.98,22.00,22.05, 22.04,22.42,22.43,22.36,22.45,22.38,22.55,22.63,22.74,22.60, 22.84,22.67,23.13,23.05,23.20,23.39,23.34,23.37,23.40,23.55, 0.72,0.80,0.91,0.96,1.00,1.10,1.15,1.24,1.27,1.32, 1.46,1.47,1.52,1.63,1.70,1.79,1.90,1.96,2.03,2.16, 2.12,2.25,2.28,2.37,2.36,2.46,2.55,2.62,2.68,2.83, 2.75,2.87,3.00,3.04,3.06,3.15,3.20,3.35,3.39,3.40, 3.48,3.62,3.77,3.74,3.82,3.77,3.91,4.04,4.18,4.00, 4.27,4.26,4.38,4.42,4.45,4.53,4.67,4.70,4.69,4.74, 4.97,5.01,5.01,5.09,5.27,5.21,5.26,5.38,5.43,5.50, 5.62,5.72,5.73,5.76,5.85,5.88,5.91,6.05,6.11,6.28, 6.42,6.37,6.41,6.57,6.56,6.63,6.67,6.85,6.88,7.05, 7.03,6.97,7.16,7.13,7.32,7.25,7.53,7.45,7.58,7.59, 7.69,7.84,7.84,7.86,7.97,8.11,8.00,8.16,8.37,8.22, 8.39,8.45,8.53,8.59,8.47,8.72,8.77,8.84,9.09,9.03, 9.10,9.21,9.23,9.31,9.33,9.31,9.54,9.54,9.58,9.69, 9.77,9.86,9.96,10.07,10.26,10.17,10.17,10.20,10.32,10.21, 10.34,10.48,10.69,10.71,10.79,10.68,10.85,10.77,11.02,11.12, 10.98,11.13,11.38,11.29,11.42,11.50,11.61,11.76,11.71,11.74, 11.87,11.96,12.13,11.98,12.10,12.22,12.13,12.36,12.34,12.39, 12.46,12.55,12.66,12.69,12.99,12.80,12.76,13.11,13.17,13.12, 13.07,13.24,13.42,13.39,13.55,13.68,13.57,13.59,13.95,13.66, 13.69,13.93,14.13,14.00,14.01,14.11,14.39,14.38,14.45,14.62, 14.64,14.61,14.76,14.90,14.94,14.98,15.18,15.05,14.97,15.26, 15.23,15.19,15.49,15.63,15.49,15.58,15.64,15.84,15.79,16.05, 16.05,16.09,16.03,16.22,16.39,16.28,16.45,16.46,16.51,16.66, 16.74,16.56,16.90,16.86,17.05,17.01,17.04,17.17,17.17,17.42, 17.48,17.49,17.35,17.53,17.70,17.68,17.84,17.93,17.81,17.84, 18.00,18.20,18.17,18.32,18.41,18.32,18.37,18.73,18.67,18.63, 18.75,18.80,18.90,18.83,19.13,19.18,19.27,19.43,19.45,19.25, 19.49,19.57,19.75,19.62,19.75,19.82,20.08,20.20,19.84,20.16, 20.25,20.14,20.44,20.29,20.34,20.56,20.51,20.80,20.52,20.88, 0.60,0.72,0.79,0.87,0.89,0.99,1.04,1.11,1.13,1.21, 1.24,1.34,1.47,1.43,1.49,1.60,1.67,1.75,1.73,1.82, 1.95,1.97,2.03,2.00,2.12,2.25,2.23,2.32,2.35,2.42, 2.52,2.52,2.57,2.66,2.75,2.85,2.82,2.94,2.99,3.03, 3.13,3.10,3.17,3.32,3.29,3.42,3.50,3.49,3.62,3.67, 3.68,3.84,3.83,3.88,3.99,4.04,4.22,4.09,4.17,4.25, 4.37,4.50,4.46,4.56,4.54,4.54,4.55,4.73,4.77,4.92, 5.04,4.92,5.04,5.03,5.12,5.24,5.33,5.28,5.45,5.43, 5.44,5.52,5.63,5.82,5.74,5.88,5.84,5.94,6.06,6.01, 6.06,6.33,6.15,6.29,6.44,6.40,6.47,6.49,6.67,6.74, 6.87,6.87,6.88,6.90,7.04,6.94,7.12,7.06,7.36,7.27, 7.38,7.58,7.64,7.69,7.58,7.78,7.70,7.79,7.96,7.97, 8.14,8.01,8.13,8.13,8.20,8.30,8.36,8.46,8.43,8.57, 8.60,8.72,8.73,8.72,9.04,8.72,8.97,9.10,9.00,9.02, 9.23,9.21,9.28,9.25,9.52,9.61,9.52,9.59,9.62,9.61, 9.69,9.73,9.99,9.99,10.05,10.21,10.23,10.26,10.36,10.24, 10.39,10.53,10.64,10.62,10.59,10.55,10.64,10.79,11.04,11.03, 11.12,11.08,11.12,11.24,11.29,11.33,11.27,11.60,11.28,11.65, 11.84,11.71,11.69,11.68,11.81,12.08,12.02,12.02,12.20,12.21, 12.36,12.21,12.28,12.41,12.42,12.56,12.69,12.72,12.74,12.90, 12.76,12.88,12.94,13.05,13.29,13.29,13.20,13.56,13.37,13.46, 13.45,13.37,13.55,13.77,13.57,13.76,13.79,13.80,14.04,14.27, 13.96,14.27,14.19,14.38,14.45,14.38,14.46,14.36,14.47,14.49, 14.60,14.81,14.76,14.96,14.80,15.01,14.96,15.09,15.19,15.11, 15.37,15.31,15.40,15.48,15.61,15.58,15.59,15.72,15.76,15.88, 15.98,16.08,15.90,16.12,16.02,16.03,16.17,16.20,16.28,16.28, 16.49,16.49,16.70,16.93,16.83,16.82,16.98,17.02,17.05,17.03, 17.15,17.24,17.33,17.17,17.38,17.45,17.35,17.41,17.45,17.72, 17.71,17.72,17.82,17.96,17.93,17.91,18.21,18.09,18.33,18.44, 3.97,4.46,4.79,5.06,5.55,5.94,6.26,6.67,7.03,7.40, 7.80,8.17,8.43,8.86,9.22,9.55,9.98,10.40,10.70,11.04, 11.55,11.94,12.18,12.59,12.94,13.45,13.77,14.10,14.48,14.75, 15.13,15.70,15.90,16.29,16.72,17.07,17.49,17.93,18.20,18.67, 18.84,19.36,19.59,20.00,20.50,20.76,21.17,21.57,21.88,22.29, 22.75,23.01,23.50,23.83,24.09,24.52,24.87,25.27,25.45,26.00, 26.46,26.78,27.34,27.61,27.95,28.43,28.61,28.96,29.54,29.76, 30.21,30.64,31.09,31.25,31.76,32.04,32.22,32.80,33.07,33.53, 33.81,34.31,34.48,34.98,35.39,35.82,36.17,36.36,36.93,37.20, 37.53,37.99,38.23,38.77,39.08,39.41,39.80,40.06,40.61,41.11, 41.37,41.92,42.11,42.58,42.74,43.17,43.83,44.03,44.28,44.72, 44.94,45.37,45.78,46.08,46.67,47.08,47.38,47.73,48.15,48.36, 48.77,48.98,49.48,49.97,50.59,50.69,51.00,51.48,51.88,51.90, 52.61,52.85,53.30,53.95,54.12,54.64,54.72,55.14,55.57,56.03, 56.33,56.83,56.97,57.27,57.76,58.24,58.49,58.77,59.46,59.73, 60.16,60.33,60.84,61.21,61.51,62.08,62.41,62.31,63.02,63.20, 63.73,63.98,64.28,64.95,65.42,65.57,66.11,66.35,66.79,67.16, 67.45,68.05,68.42,68.48,68.75,69.17,69.45,69.98,70.54,70.81, 71.21,71.63,71.89,72.19,72.57,73.12,73.67,73.89,74.25,74.43, 74.99,75.42,75.44,76.14,76.19,76.92,77.32,77.52,77.89,78.27, 78.31,78.96,79.54,80.03,80.07,80.45,80.93,81.39,81.55,82.18, 82.33,82.83,83.09,83.55,83.85,84.47,84.51,85.25,85.31,85.98, 86.19,86.59,86.83,87.31,87.77,87.91,88.71,88.71,89.29,89.64, 90.11,90.39,90.42,91.08,91.70,91.97,92.05,92.26,93.04,93.24, 93.58,93.95,94.45,94.99,94.99,95.62,95.76,96.38,96.59,96.74, 97.31,97.89,98.01,98.75,98.87,99.20,99.38,100.07,100.40,100.76, 101.17,101.47,101.97,102.23,102.78,103.06,103.23,103.39,103.94,104.59, 104.59,105.29,105.80,105.63,106.39,106.43,107.47,107.34,107.80,108.14, 108.57,108.92,109.32,109.11,110.03,110.51,111.02,111.18,111.47,111.81, 3.62,3.89,4.24,4.63,4.86,5.24,5.62,5.93,6.28,6.60, 6.87,7.26,7.55,7.95,8.25,8.60,8.84,9.37,9.45,9.99, 10.17,10.66,10.92,11.12,11.64,11.89,12.26,12.51,12.88,13.19, 13.63,13.88,14.23,14.62,14.93,15.13,15.43,15.80,16.24,16.49, 16.91,17.30,17.55,17.86,18.07,18.54,18.89,19.21,19.71,19.85, 20.25,20.63,20.81,21.05,21.53,21.88,22.20,22.53,22.88,23.24, 23.43,23.84,24.16,24.53,24.85,25.27,25.63,25.87,26.33,26.60, 26.76,27.20,27.61,27.76,28.18,28.46,28.63,29.14,29.32,29.85, 30.08,30.49,30.81,31.17,31.36,31.84,32.24,32.52,32.77,33.19, 33.64,33.95,34.16,34.58,34.75,35.11,35.49,35.73,36.13,36.55, 36.80,37.22,37.61,37.67,37.87,38.48,38.75,39.12,39.53,39.96, 40.05,40.59,40.61,41.08,41.41,41.77,42.28,42.55,42.80,43.12, 43.45,44.14,44.19,44.37,44.80,45.09,45.40,45.62,46.10,46.63, 46.95,47.19,47.35,47.76,48.06,48.36,48.70,49.39,49.56,49.72, 49.94,50.43,50.79,50.93,51.74,51.63,52.06,52.39,52.78,52.94, 53.63,53.76,54.06,54.37,54.67,55.08,55.24,56.20,56.12,56.45, 56.87,57.13,57.37,57.66,58.03,58.28,58.64,59.00,59.41,59.78, 60.18,60.55,60.52,61.12,61.02,61.83,61.95,62.19,62.79,62.93, 63.37,63.70,64.13,64.40,64.83,65.32,65.42,65.71,65.98,66.27, 66.78,67.30,67.51,67.81,68.10,68.16,68.71,69.24,69.40,69.82, 70.26,70.50,70.53,71.10,71.43,71.46,71.99,72.22,72.92,72.91, 73.37,73.55,73.88,74.63,74.60,74.74,75.70,75.54,76.09,76.65, 76.71,77.08,77.46,77.58,77.92,78.48,78.62,79.03,79.50,79.57, 80.09,80.56,80.85,80.90,81.19,81.66,82.06,82.27,82.50,83.04, 83.37,83.62,84.08,84.05,84.58,85.02,85.30,85.63,85.97,86.37, 86.59,87.00,87.56,87.58,88.06,88.32,88.37,89.07,89.46,89.62, 90.12,90.17,90.96,91.22,91.11,91.65,92.12,92.34,92.60,92.98, 93.30,93.54,93.90,94.43,94.52,95.19,95.34,95.47,96.01,96.35, 96.42,96.82,97.27,97.49,97.84,98.36,98.67,98.82,99.34,99.40, 3.16,3.52,3.74,4.04,4.41,4.64,4.93,5.28,5.58,5.89, 6.21,6.49,6.71,7.00,7.37,7.58,8.06,8.22,8.53,8.77, 9.16,9.35,9.69,10.08,10.37,10.57,10.75,11.11,11.49,11.87, 12.09,12.43,12.62,12.93,13.16,13.57,13.76,14.10,14.33,14.74, 15.11,15.37,15.69,16.01,16.21,16.46,16.77,17.17,17.46,17.67, 18.04,18.30,18.45,18.72,19.08,19.49,19.80,19.96,20.27,20.68, 20.99,21.35,21.34,21.79,22.12,22.49,22.59,22.93,23.29,23.63, 23.91,24.20,24.60,24.71,25.21,25.39,25.80,25.98,26.15,26.55, 26.85,26.98,27.31,27.94,27.98,28.34,28.64,28.94,29.17,29.57, 29.93,30.04,30.53,30.66,30.95,31.32,31.77,31.99,32.34,32.32, 32.73,33.09,33.30,33.55,33.95,34.11,34.74,34.88,35.16,35.38, 35.70,36.04,36.26,36.65,36.87,37.20,37.54,37.83,38.05,38.34, 38.64,39.11,39.40,39.64,39.92,40.15,40.39,40.53,40.97,41.44, 41.53,41.89,42.23,42.76,42.86,43.16,43.37,43.91,44.12,44.27, 44.40,44.84,45.21,45.54,45.80,45.92,46.24,46.78,46.97,47.35, 47.44,47.86,48.19,48.44,48.74,49.15,49.18,49.61,49.76,50.06, 50.44,50.62,51.02,51.42,51.68,51.78,52.54,52.53,52.89,52.99, 53.54,53.70,54.19,54.28,54.70,54.67,55.36,55.55,55.75,56.18, 56.40,56.71,57.17,57.49,57.64,57.77,58.22,58.81,58.65,59.26, 59.31,59.68,59.83,60.17,60.70,61.00,61.21,61.65,61.85,62.09, 62.36,62.68,63.19,63.31,63.49,63.93,64.29,64.74,64.77,65.11, 65.35,65.30,65.85,65.97,66.67,66.91,67.16,67.45,67.56,68.08, 68.22,68.33,69.10,69.08,69.58,69.72,70.10,70.11,70.60,70.88, 71.18,71.49,71.88,71.98,72.37,72.81,72.94,72.98,73.43,73.89, 74.11,74.54,74.81,75.08,75.22,75.62,75.84,76.50,76.46,76.83, 77.03,77.41,77.74,77.81,78.62,78.66,78.79,79.21,79.30,79.83, 79.89,80.31,80.48,80.88,81.31,81.54,81.94,82.22,82.28,82.81, 83.17,83.55,83.37,84.08,84.06,84.38,84.80,85.06,85.37,85.40, 85.86,86.30,86.75,87.06,87.03,87.36,87.85,88.28,88.52,88.43, 2.81,3.09,3.41,3.62,3.85,4.15,4.41,4.72,4.96,5.22, 5.40,5.73,6.11,6.24,6.56,6.79,7.11,7.33,7.65,7.82, 8.09,8.36,8.66,8.98,9.12,9.49,9.76,9.88,10.28,10.36, 10.68,11.04,11.23,11.56,11.85,11.95,12.31,12.66,12.85,13.10, 13.43,13.69,13.84,14.16,14.39,14.55,15.02,15.24,15.47,15.72, 16.01,16.23,16.46,16.74,17.08,17.36,17.55,17.89,18.29,18.39, 18.61,18.95,19.22,19.25,19.61,19.98,20.19,20.56,20.82,20.97, 21.26,21.51,21.80,22.07,22.32,22.65,22.86,23.01,23.29,23.78, 24.04,24.15,24.48,24.54,24.99,25.11,25.39,25.79,26.04,26.28, 26.59,26.70,27.16,27.32,27.57,27.89,27.96,28.32,28.66,28.84, 29.23,29.38,29.68,29.85,30.34,30.38,30.75,30.97,31.33,31.52, 31.88,32.03,32.46,32.60,33.10,33.10,33.58,33.63,33.99,34.23, 34.55,34.60,34.96,35.13,35.47,35.89,36.04,36.40,36.47,36.73, 37.08,37.22,37.52,37.88,38.18,38.30,38.55,38.61,39.32,39.36, 39.79,40.12,40.22,40.43,40.68,40.99,41.34,41.44,41.60,42.15, 42.41,42.62,42.90,43.18,43.61,43.59,43.82,44.25,44.58,44.74, 45.08,45.32,45.45,45.64,46.25,46.29,46.48,46.87,47.32,47.35, 47.71,47.87,48.03,48.40,48.61,49.08,49.29,49.47,49.54,49.78, 50.27,50.35,50.90,51.10,51.08,51.59,51.60,51.74,52.14,52.33, 52.65,53.17,53.20,53.36,53.91,54.07,54.44,54.59,55.13,55.39, 55.55,55.60,56.12,56.41,56.50,56.89,57.17,57.20,57.72,57.85, 58.24,58.16,58.78,58.69,59.44,59.46,59.80,59.80,60.16,60.55, 60.71,61.15,61.43,61.44,61.91,61.93,62.38,62.75,62.77,63.00, 63.53,63.60,63.87,64.14,64.40,64.70,64.84,65.44,65.60,65.71, 65.98,66.29,66.51,66.68,67.22,67.64,67.53,67.89,67.90,68.10, 68.58,69.07,69.15,69.51,69.69,69.98,69.98,70.36,71.02,70.93, 71.20,71.63,71.65,72.06,72.37,72.40,73.04,73.08,73.47,73.77, 73.49,74.39,74.44,74.84,75.05,75.12,75.72,75.54,76.03,76.04, 76.52,76.95,77.21,77.17,77.64,77.90,78.11,78.93,78.76,78.84, 2.56,2.76,3.05,3.22,3.48,3.67,3.98,4.18,4.31,4.73, 4.88,5.09,5.34,5.62,5.89,6.08,6.30,6.53,6.70,7.01, 7.25,7.30,7.63,7.87,8.22,8.29,8.58,8.79,9.12,9.16, 9.59,9.77,10.05,10.29,10.59,10.70,10.97,11.09,11.48,11.66, 11.90,12.08,12.33,12.64,12.80,13.03,13.32,13.62,13.77,14.01, 14.30,14.46,14.71,14.88,15.23,15.37,15.73,15.89,16.15,16.43, 16.62,16.82,17.05,17.43,17.52,17.81,17.98,18.04,18.49,18.70, 18.81,19.18,19.28,19.74,19.74,20.14,20.43,20.53,20.73,21.10, 21.20,21.58,21.75,21.94,22.18,22.50,22.66,22.77,23.13,23.50, 23.56,23.83,24.03,24.13,24.46,24.75,25.05,25.17,25.30,25.73, 25.88,26.34,26.36,26.79,26.78,27.28,27.50,27.61,27.79,28.12, 28.32,28.61,28.64,28.91,29.14,29.59,29.75,29.95,30.11,30.43, 30.59,30.71,31.12,31.39,31.62,32.00,32.19,32.26,32.54,32.82, 33.04,33.20,33.45,33.65,34.00,34.01,34.27,34.60,34.84,35.03, 35.31,35.61,35.77,36.07,36.09,36.54,36.63,36.71,37.15,37.24, 37.74,37.99,38.15,38.20,38.57,38.84,39.09,39.49,39.40,39.86, 40.00,40.32,40.27,40.72,40.75,41.22,41.54,41.41,41.82,42.08, 42.39,42.56,42.69,43.18,43.41,43.42,43.83,43.90,44.12,44.38, 44.77,44.88,45.23,45.51,45.59,45.89,46.30,46.28,46.44,46.99, 47.16,47.15,47.59,47.70,48.05,48.06,48.48,48.68,48.66,49.19, 49.38,49.54,49.55,50.05,50.34,50.82,50.74,51.07,51.37,51.58, 51.73,51.70,52.25,52.33,52.70,52.97,53.13,53.58,53.71,53.99, 53.80,54.13,54.51,54.77,55.10,55.11,55.36,55.85,56.00,56.12, 56.19,56.68,56.63,57.18,57.42,57.52,57.78,57.86,58.20,58.63, 58.63,58.82,59.32,59.42,59.58,59.83,59.91,60.38,60.59,60.77, 61.12,61.04,61.22,61.81,61.90,62.34,62.36,62.91,63.08,63.25, 63.34,63.66,63.99,64.32,64.40,64.57,64.49,65.39,65.06,65.66, 65.73,66.08,66.19,66.52,66.75,66.86,67.03,67.64,67.46,67.92, 68.35,68.68,68.63,69.12,68.73,69.21,69.59,69.89,70.18,70.01, 2.27,2.43,2.74,2.89,3.04,3.29,3.56,3.75,3.95,4.13, 4.37,4.60,4.85,4.97,5.15,5.38,5.67,5.78,6.01,6.22, 6.45,6.66,6.83,7.10,7.30,7.42,7.73,7.77,7.98,8.21, 8.59,8.61,8.97,9.12,9.32,9.54,9.91,9.95,10.15,10.41, 10.60,10.79,11.04,11.30,11.39,11.77,11.88,12.05,12.18,12.54, 12.71,12.85,13.05,13.41,13.38,13.73,13.98,14.14,14.39,14.57, 14.83,14.93,15.25,15.22,15.53,15.84,16.07,16.23,16.49,16.58, 16.96,17.01,17.29,17.34,17.60,17.89,18.09,18.33,18.45,18.65, 19.08,19.11,19.40,19.64,19.74,20.05,20.16,20.42,20.51,20.80, 20.98,21.35,21.39,21.67,21.88,21.91,22.21,22.51,22.64,23.10, 23.03,23.36,23.40,23.76,24.04,24.25,24.46,24.53,24.73,24.81, 25.01,25.12,25.51,25.73,26.04,26.20,26.57,26.67,26.83,27.11, 27.16,27.48,27.51,27.68,27.95,28.37,28.50,28.49,28.84,29.24, 29.20,29.73,29.61,30.04,30.07,30.32,30.51,30.74,30.99,31.37, 31.42,31.82,31.85,32.17,32.11,32.42,32.70,33.05,33.09,33.27, 33.52,33.72,34.20,34.19,34.30,34.44,34.83,35.02,35.26,35.28, 35.75,35.72,35.97,36.25,36.56,36.67,36.92,37.20,37.10,37.53, 37.53,37.74,38.13,38.60,38.59,38.58,39.11,39.20,39.32,39.67, 39.89,40.10,40.13,40.60,40.55,40.87,41.03,41.33,41.33,41.91, 41.91,42.09,41.91,42.53,42.78,42.96,42.97,43.26,43.37,43.75, 44.22,43.98,44.44,44.47,44.87,44.97,44.98,45.38,45.51,45.69, 46.04,46.17,46.26,46.56,46.95,47.01,47.43,47.61,47.63,48.00, 48.02,48.21,48.26,48.84,49.07,49.16,49.35,49.35,49.89,49.94, 50.24,50.41,50.80,50.96,50.89,51.41,51.68,51.65,51.92,51.96, 52.26,52.67,52.77,52.89,53.31,53.41,53.56,53.81,53.84,54.16, 54.23,54.39,54.87,55.05,55.01,55.55,55.58,55.72,56.04,56.14, 56.45,56.80,56.96,57.39,57.09,57.38,57.55,58.00,58.13,58.20, 58.71,58.75,59.01,59.06,59.53,59.64,59.39,59.74,60.19,60.41, 60.68,60.64,60.75,61.30,61.33,61.69,62.00,62.07,62.30,62.43, 2.01,2.21,2.38,2.60,2.76,2.90,3.18,3.34,3.44,3.68, 3.86,4.05,4.27,4.42,4.64,4.72,5.07,5.20,5.34,5.56, 5.71,5.95,6.08,6.21,6.46,6.69,6.81,6.97,7.23,7.37, 7.57,7.75,8.00,8.06,8.37,8.53,8.77,8.86,8.99,9.19, 9.32,9.62,9.74,10.04,10.21,10.35,10.51,10.77,10.88,11.16, 11.28,11.44,11.54,11.87,12.05,12.34,12.26,12.61,12.78,12.88, 13.16,13.29,13.47,13.71,13.79,14.06,14.25,14.43,14.55,14.77, 14.85,15.30,15.39,15.52,15.65,15.91,16.18,16.21,16.52,16.84, 16.82,17.03,17.09,17.44,17.71,17.82,18.03,18.09,18.39,18.46, 18.70,18.92,18.95,19.45,19.24,19.50,19.91,20.00,20.14,20.33, 20.58,20.68,20.89,21.08,21.31,21.57,21.65,21.86,22.01,22.19, 22.29,22.75,22.88,23.05,23.22,23.28,23.60,23.77,23.93,23.96, 24.27,24.34,24.83,24.79,24.97,25.22,25.40,25.69,25.94,25.92, 26.18,26.23,26.62,26.86,27.11,27.12,27.13,27.30,27.35,27.82, 28.05,28.37,28.42,28.47,28.64,29.08,29.13,29.39,29.54,29.73, 29.72,29.89,30.15,30.37,30.74,30.82,30.96,31.19,31.40,31.45, 31.86,31.81,32.16,32.22,32.39,32.69,32.81,33.17,33.00,33.11, 33.58,33.74,33.92,34.17,34.30,34.32,34.43,34.96,34.98,35.28, 35.56,35.61,35.79,35.89,36.11,36.52,36.39,36.69,36.76,37.08, 37.22,37.36,37.68,37.85,37.88,38.23,38.51,38.72,38.73,38.81, 39.08,39.34,39.32,39.61,39.85,40.09,40.37,40.49,40.56,40.70, 40.98,41.13,41.29,41.47,41.28,41.84,41.84,42.06,42.52,42.59, 42.60,42.78,43.23,43.50,43.55,43.75,43.82,44.28,43.87,44.50, 44.70,44.79,45.03,45.41,45.26,45.71,45.87,46.21,46.03,46.46, 46.50,46.49,46.99,46.98,47.31,47.53,47.53,47.76,48.25,48.07, 48.31,48.68,48.72,48.77,49.28,49.43,49.54,49.78,49.77,50.07, 50.08,50.42,50.78,50.69,51.04,51.25,51.52,51.54,51.68,51.73, 52.19,52.48,52.22,52.53,52.72,53.40,53.21,53.43,53.78,53.60, 54.11,53.99,54.48,54.50,54.63,54.70,55.15,55.41,55.48,55.30, 1.76,1.94,2.17,2.25,2.43,2.56,2.70,2.96,3.05,3.27, 3.47,3.61,3.72,4.00,4.06,4.30,4.35,4.56,4.78,4.89, 5.04,5.21,5.43,5.65,5.74,5.91,6.13,6.25,6.33,6.49, 6.75,6.91,7.14,7.12,7.47,7.49,7.81,7.92,8.07,8.20, 8.43,8.52,8.74,8.77,9.06,9.29,9.39,9.57,9.67,9.86, 10.01,10.11,10.34,10.38,10.68,10.83,10.92,11.26,11.44,11.55, 11.72,11.74,11.96,12.22,12.38,12.39,12.60,12.87,13.06,13.09, 13.26,13.67,13.77,13.58,14.17,14.19,14.24,14.43,14.69,14.76, 15.03,15.21,15.19,15.51,15.71,15.76,15.94,16.12,16.21,16.52, 16.56,16.84,17.05,17.18,17.36,17.51,17.66,17.91,17.91,18.17, 18.37,18.42,18.67,18.97,19.05,19.21,19.40,19.45,19.70,19.80, 19.92,20.18,20.26,20.49,20.63,20.50,20.79,20.96,21.15,21.21, 21.41,21.73,21.88,22.08,22.30,22.44,22.77,22.63,22.98,23.17, 23.30,23.40,23.78,23.66,23.96,24.20,24.25,24.47,24.45,24.77, 25.03,25.12,25.20,25.31,25.66,25.68,25.83,26.01,26.16,26.27, 26.65,26.85,26.89,27.08,27.17,27.23,27.52,27.72,27.82,28.04, 28.32,28.29,28.45,28.64,28.84,29.10,29.08,29.11,29.55,29.75, 29.94,30.03,30.36,30.23,30.54,30.65,30.95,31.12,31.28,31.48, 31.53,31.75,31.82,31.99,31.92,32.40,32.66,32.60,32.71,32.88, 33.24,33.48,33.41,33.55,33.80,33.97,34.02,34.36,34.42,34.63, 34.70,35.14,35.22,35.43,35.39,35.62,35.79,36.01,36.15,36.35, 36.56,36.60,36.79,37.20,37.06,37.19,37.70,37.49,37.71,37.94, 38.32,38.40,38.53,38.88,38.58,39.06,39.05,39.15,39.46,39.57, 39.61,39.99,40.17,40.21,40.21,40.58,40.80,40.71,41.12,41.35, 41.44,41.46,41.70,41.97,42.07,42.08,42.13,42.57,42.74,42.84, 43.06,43.12,43.20,43.53,43.60,43.98,44.24,44.18,44.43,44.59, 44.81,44.96,45.07,45.47,45.50,45.37,46.03,45.86,46.22,46.23, 46.32,46.58,46.54,46.72,47.09,47.02,47.27,47.58,47.51,47.99, 48.17,48.17,48.49,48.55,48.76,48.99,48.88,49.12,49.30,49.44, 1.58,1.75,1.84,2.02,2.14,2.30,2.47,2.63,2.70,2.89, 3.03,3.21,3.30,3.48,3.62,3.80,4.00,4.16,4.23,4.45, 4.54,4.59,4.80,4.99,5.12,5.22,5.38,5.63,5.72,5.83, 6.00,6.20,6.18,6.44,6.52,6.78,6.94,6.99,7.11,7.37, 7.52,7.67,7.75,7.85,8.06,8.33,8.35,8.46,8.56,8.86, 8.95,9.09,9.24,9.45,9.49,9.66,9.83,9.94,10.24,10.30, 10.42,10.63,10.85,10.80,10.96,11.11,11.32,11.44,11.70,11.65, 11.87,12.19,12.15,12.27,12.45,12.68,12.80,12.90,12.85,13.29, 13.36,13.57,13.60,13.82,13.89,14.21,14.16,14.52,14.48,14.77, 14.74,15.06,15.27,15.11,15.34,15.55,15.83,15.94,15.87,16.08, 16.45,16.51,16.59,16.65,16.93,16.85,17.08,17.27,17.44,17.73, 17.77,18.07,17.96,18.20,18.40,18.51,18.78,18.74,19.06,18.97, 19.33,19.44,19.51,19.62,19.95,19.96,20.21,20.32,20.38,20.57, 20.62,20.74,20.95,21.28,21.36,21.52,21.55,21.59,21.61,22.14, 22.19,22.14,22.52,22.71,22.87,22.72,23.02,23.23,23.38,23.39, 23.65,23.72,23.77,24.06,24.23,24.30,24.36,24.64,24.74,24.92, 25.06,25.36,25.33,25.53,25.74,25.90,26.08,26.08,26.14,26.50, 26.64,26.76,26.66,27.05,27.09,27.11,27.41,27.64,28.03,27.76, 28.10,28.41,28.36,28.32,28.62,28.89,28.97,29.18,29.22,29.40, 29.89,29.47,29.86,30.00,30.20,30.32,30.43,30.45,30.68,30.90, 31.14,31.05,31.23,31.44,31.46,31.77,31.93,32.06,32.18,31.94, 32.60,32.58,32.90,32.76,32.90,33.10,33.42,33.70,33.49,33.85, 33.88,34.26,34.07,34.42,34.62,34.55,34.75,34.90,35.05,35.25, 35.41,35.63,35.71,35.65,35.89,36.30,36.29,36.49,36.66,36.87, 36.72,36.88,37.24,37.28,37.54,37.55,37.72,38.13,38.11,38.14, 38.07,38.38,38.62,38.99,38.90,39.17,39.32,39.41,39.66,39.86, 39.81,39.81,40.30,40.03,40.59,40.71,40.67,40.86,40.60,41.29, 41.37,41.48,41.44,41.71,41.79,42.09,41.92,42.22,42.35,42.56, 42.65,43.08,43.08,43.34,43.24,43.42,43.49,43.53,43.82,43.91, 1.40,1.54,1.64,1.80,1.94,2.04,2.22,2.22,2.48,2.66, 2.81,2.87,2.98,3.18,3.26,3.35,3.49,3.57,3.78,3.92, 4.04,4.19,4.37,4.43,4.58,4.68,4.87,4.92,5.13,5.25, 5.30,5.50,5.63,5.72,5.83,6.11,6.21,6.33,6.38,6.46, 6.59,6.82,6.98,7.14,7.20,7.17,7.40,7.64,7.84,7.83, 7.82,8.16,8.17,8.38,8.53,8.57,8.73,8.79,9.03,9.25, 9.28,9.43,9.47,9.79,9.82,9.88,10.05,10.08,10.30,10.35, 10.65,10.77,10.83,10.93,11.11,11.18,11.27,11.53,11.58,11.66, 11.85,12.03,12.14,12.36,12.50,12.65,12.63,12.87,12.90,13.00, 13.17,13.27,13.42,13.48,13.73,13.73,14.12,14.02,14.30,14.41, 14.34,14.52,14.80,15.06,15.03,15.12,15.25,15.55,15.55,15.81, 15.97,15.99,16.00,16.21,16.26,16.41,16.62,16.64,16.77,17.00, 17.22,17.20,17.39,17.49,17.50,17.84,18.11,18.00,18.03,18.34, 18.43,18.51,18.70,18.88,18.92,19.05,19.26,19.35,19.34,19.75, 19.76,19.83,19.97,20.17,20.12,20.57,20.59,20.68,20.71,20.77, 20.99,21.15,21.41,21.29,21.67,21.70,21.85,21.92,22.06,22.24, 22.26,22.50,22.44,22.62,23.14,22.89,22.97,23.17,23.60,23.65, 23.63,23.56,23.76,24.19,24.07,24.03,24.48,24.60,24.78,24.77, 24.94,25.07,25.30,25.41,25.55,25.66,25.77,25.86,25.97,26.35, 26.17,26.20,26.38,26.62,26.94,27.13,27.16,27.43,27.27,27.31, 27.70,27.59,27.79,27.93,28.17,28.11,28.26,28.63,28.74,28.65, 28.77,28.85,29.24,29.46,29.29,29.81,29.58,29.67,29.89,30.10, 30.23,30.33,30.58,30.55,30.86,30.95,30.94,31.16,31.23,31.31, 31.51,31.50,31.66,31.67,31.95,32.16,32.22,32.38,32.36,32.79, 32.71,32.94,33.14,33.17,33.21,33.27,33.64,33.80,34.02,34.02, 34.03,34.40,34.34,34.57,34.48,34.59,34.67,35.12,35.34,35.12, 35.39,35.54,35.77,35.84,36.06,36.17,36.30,36.25,36.50,36.45, 36.69,36.64,36.91,37.10,37.01,37.45,37.47,37.37,37.76,37.64, 38.03,38.02,38.26,38.53,38.35,38.66,38.63,38.81,39.23,39.28, 1.24,1.45,1.48,1.58,1.76,1.82,1.97,2.07,2.21,2.28, 2.40,2.54,2.65,2.76,2.88,3.01,3.11,3.20,3.36,3.50, 3.57,3.76,3.83,3.84,3.97,4.24,4.13,4.40,4.52,4.63, 4.68,4.83,5.05,5.05,5.20,5.36,5.38,5.50,5.77,5.71, 5.90,5.99,6.16,6.22,6.40,6.62,6.52,6.72,6.98,6.99, 7.05,7.23,7.30,7.39,7.61,7.60,7.71,7.90,8.01,7.97, 8.23,8.45,8.36,8.56,8.68,8.93,8.98,9.22,9.15,9.23, 9.41,9.51,9.63,9.70,10.02,10.02,10.09,10.25,10.32,10.46, 10.43,10.62,10.76,10.89,11.12,11.10,11.26,11.44,11.54,11.68, 11.76,11.97,11.82,12.07,12.10,12.40,12.33,12.57,12.69,12.87, 12.82,13.12,13.29,13.23,13.45,13.53,13.79,13.64,13.79,14.01, 13.94,14.14,14.38,14.44,14.46,14.64,14.79,14.92,15.07,15.15, 15.23,15.32,15.61,15.63,15.73,15.85,16.06,16.05,16.20,16.24, 16.27,16.52,16.75,16.68,16.84,16.93,17.08,17.12,17.42,17.60, 17.54,17.59,17.75,17.93,17.87,18.12,18.28,18.56,18.45,18.55, 18.75,18.91,18.97,19.07,19.16,19.21,19.41,19.52,19.62,19.74, 19.83,19.86,20.07,20.27,20.36,20.63,20.56,20.92,20.90,20.91, 21.03,21.07,21.12,21.43,21.56,21.58,21.82,21.59,21.95,22.15, 22.20,22.02,22.54,22.56,22.68,22.72,22.75,23.00,23.12,23.33, 23.34,23.47,23.62,23.98,23.96,23.98,23.95,24.24,24.32,24.29, 24.40,24.80,24.93,24.99,24.96,25.12,25.25,25.30,25.14,25.80, 25.70,25.76,25.79,26.16,26.08,26.32,26.81,26.61,26.64,26.77, 26.83,26.96,26.85,27.11,27.54,27.50,27.55,27.58,27.79,27.75, 28.05,27.99,28.27,28.50,28.62,28.42,28.68,28.72,28.98,29.33, 29.40,29.43,29.29,29.59,29.48,29.73,30.03,30.05,30.22,30.04, 30.19,30.47,30.50,30.63,30.87,30.92,31.23,31.18,31.26,31.40, 31.66,31.52,31.70,31.88,31.88,32.17,32.29,32.41,32.10,32.83, 32.74,32.81,32.99,33.03,33.23,33.28,33.53,33.38,33.50,33.94, 33.88,34.03,34.43,34.15,34.29,34.28,34.58,34.43,34.76,34.83, 1.15,1.22,1.38,1.38,1.57,1.58,1.78,1.81,1.93,2.01, 2.15,2.29,2.31,2.48,2.55,2.67,2.68,2.92,3.02,3.04, 3.15,3.28,3.38,3.49,3.60,3.62,3.88,3.94,4.00,4.11, 4.13,4.32,4.44,4.53,4.56,4.80,4.87,4.99,4.96,5.16, 5.29,5.34,5.48,5.56,5.74,5.75,5.98,6.01,6.12,6.13, 6.29,6.41,6.47,6.52,6.62,6.78,6.93,6.97,7.21,7.19, 7.29,7.53,7.51,7.63,7.91,7.92,7.85,8.12,8.12,8.28, 8.35,8.48,8.56,8.69,8.77,8.96,8.99,9.07,9.29,9.29, 9.36,9.45,9.61,9.66,9.91,9.75,9.96,10.04,10.30,10.18, 10.56,10.60,10.50,10.80,10.94,10.97,11.00,11.11,11.14,11.40, 11.41,11.58,11.69,11.73,11.97,12.06,12.06,12.22,12.22,12.43, 12.55,12.63,12.60,12.80,12.98,12.98,13.08,13.31,13.22,13.65, 13.54,13.78,13.74,13.86,13.94,14.20,14.17,14.36,14.39,14.37, 14.78,14.74,14.86,14.87,14.85,15.11,15.31,15.29,15.42,15.50, 15.44,15.68,15.99,15.99,16.05,16.06,16.29,16.22,16.41,16.75, 16.50,16.75,16.79,16.91,17.15,17.14,17.35,17.42,17.45,17.74, 17.82,17.91,18.01,17.96,17.94,18.35,18.35,18.62,18.68,18.70, 18.90,18.73,18.97,19.06,19.21,19.15,19.33,19.54,19.41,19.80, 19.74,19.82,20.09,19.95,20.08,20.35,20.42,20.69,20.52,20.59, 20.69,21.10,21.04,21.08,21.17,21.31,21.37,21.38,21.71,21.85, 21.78,22.11,22.12,22.35,22.34,22.52,22.71,22.64,22.40,22.94, 22.82,22.95,23.10,23.16,23.29,23.21,23.57,23.61,23.62,23.76, 23.94,23.93,24.12,24.12,24.10,24.43,24.49,24.65,24.80,24.75, 24.90,25.01,25.04,25.12,25.39,25.23,25.71,25.79,25.67,26.08, 25.91,26.06,26.33,26.36,26.39,26.53,26.62,26.79,26.77,27.00, 27.12,27.03,27.31,27.30,27.44,27.46,27.80,27.76,27.91,27.89, 27.99,28.12,28.37,28.39,28.33,28.61,28.83,28.68,28.86,29.02, 29.10,29.12,29.28,29.47,29.45,29.62,29.52,29.66,29.93,30.06, 30.04,30.05,30.47,30.21,30.61,30.68,30.60,30.81,31.24,30.91, 1.00,1.09,1.20,1.24,1.40,1.43,1.50,1.64,1.67,1.84, 2.01,1.98,2.08,2.12,2.24,2.31,2.50,2.54,2.64,2.69, 2.85,2.98,2.98,3.10,3.10,3.22,3.38,3.53,3.60,3.70, 3.73,3.97,3.93,3.99,4.12,4.31,4.39,4.49,4.46,4.55, 4.68,4.80,4.83,5.00,5.12,5.17,5.32,5.29,5.46,5.47, 5.61,5.72,5.88,5.85,5.97,6.10,6.27,6.22,6.28,6.44, 6.48,6.57,6.69,6.79,6.81,7.00,7.07,7.16,7.37,7.30, 7.43,7.61,7.71,7.74,7.79,7.94,8.01,8.11,8.17,8.13, 8.41,8.47,8.56,8.69,8.75,8.72,8.92,9.13,9.12,9.06, 9.26,9.37,9.46,9.58,9.54,9.80,9.92,9.81,10.09,10.19, 10.19,10.39,10.34,10.33,10.46,10.73,10.81,10.81,11.04,11.10, 11.10,11.18,11.38,11.47,11.39,11.71,11.62,11.79,12.02,11.92, 12.12,12.08,12.32,12.23,12.44,12.44,12.53,12.77,12.71,12.71, 12.97,13.11,13.19,13.05,13.44,13.53,13.68,13.55,13.66,13.77, 13.99,14.08,14.07,13.95,14.10,14.41,14.48,14.49,14.64,14.73, 14.78,14.74,15.04,15.21,15.28,15.19,15.34,15.32,15.64,15.78, 15.70,15.92,15.96,15.94,16.12,16.18,16.48,16.49,16.57,16.44, 16.87,16.68,16.93,16.91,16.88,17.21,17.16,17.26,17.47,17.60, 17.53,17.76,17.48,17.93,17.98,17.96,18.04,18.29,18.36,18.51, 18.65,18.75,18.70,18.90,18.92,18.91,19.21,19.28,19.39,19.41, 19.43,19.51,19.64,19.82,19.88,19.86,19.92,20.00,20.26,20.24, 20.37,20.43,20.61,20.54,20.69,20.75,20.88,21.06,21.23,21.20, 21.23,21.36,21.59,21.60,21.45,21.83,21.82,21.84,21.96,22.04, 22.29,22.10,22.34,22.50,22.65,22.66,22.75,22.81,22.97,23.07, 23.16,23.25,23.12,23.37,23.42,23.56,23.64,23.83,23.75,24.18, 24.07,23.95,24.32,24.48,24.35,24.64,24.41,24.63,24.60,24.85, 25.09,24.97,25.17,25.47,25.34,25.48,25.53,25.47,25.59,25.62, 25.85,25.87,26.15,26.06,26.12,26.24,26.64,26.37,26.68,26.73, 26.75,26.87,26.93,27.12,27.12,27.41,27.45,27.45,27.48,27.57, 0.91,0.98,1.05,1.14,1.18,1.33,1.39,1.47,1.58,1.66, 1.73,1.82,1.90,2.00,2.01,2.09,2.24,2.27,2.30,2.48, 2.49,2.59,2.69,2.74,2.87,3.03,3.14,3.09,3.21,3.29, 3.32,3.35,3.46,3.67,3.68,3.75,3.82,3.90,4.06,4.17, 4.19,4.32,4.35,4.46,4.40,4.52,4.70,4.67,4.87,4.94, 5.00,4.99,5.18,5.21,5.33,5.36,5.49,5.64,5.63,5.63, 5.83,5.81,5.88,5.97,6.26,6.25,6.38,6.39,6.43,6.57, 6.68,6.77,6.96,6.84,6.96,7.00,7.10,7.28,7.26,7.34, 7.61,7.52,7.43,7.60,7.73,7.78,8.05,7.92,8.13,8.27, 8.30,8.33,8.45,8.48,8.71,8.70,8.77,8.83,8.97,8.97, 9.00,9.10,9.30,9.15,9.33,9.46,9.61,9.69,9.88,9.71, 9.98,9.82,10.06,10.16,10.33,10.37,10.39,10.61,10.61,10.71, 10.74,10.86,10.93,10.89,11.01,11.24,11.22,11.36,11.42,11.52, 11.43,11.58,11.76,11.85,11.97,11.79,12.05,12.13,12.45,12.40, 12.20,12.46,12.56,12.77,12.71,12.72,12.90,12.90,12.97,13.06, 13.20,13.13,13.27,13.41,13.60,13.49,13.61,13.69,14.08,13.80, 14.20,14.09,14.32,14.32,14.29,14.28,14.50,14.50,14.59,14.80, 15.03,15.02,14.95,14.95,15.26,15.39,15.36,15.57,15.37,15.49, 15.46,15.70,15.74,15.65,15.94,15.91,16.08,16.37,16.22,16.45, 16.50,16.69,16.59,16.65,16.74,16.86,16.96,17.28,17.39,17.30, 17.41,17.38,17.45,17.54,17.61,17.67,17.86,18.01,17.96,18.10, 18.04,18.17,18.38,18.57,18.50,18.46,18.74,18.70,18.68,18.75, 18.79,19.01,19.03,19.16,19.36,19.42,19.39,19.61,19.57,19.56, 19.77,19.82,19.89,20.02,20.29,20.30,20.19,20.42,20.57,20.47, 20.75,20.52,20.77,20.88,21.00,21.06,21.09,21.30,21.14,21.38, 21.31,21.56,21.49,21.65,21.80,21.94,21.80,21.98,22.33,22.25, 22.14,22.31,22.32,22.45,22.71,22.75,22.85,22.62,22.88,22.73, 23.12,23.10,23.33,23.15,23.70,23.62,23.52,23.41,23.83,23.72, 23.93,23.99,23.84,24.24,24.08,24.16,24.11,24.38,24.46,24.75, 0.84,0.83,0.93,1.02,1.13,1.13,1.23,1.25,1.42,1.48, 1.50,1.62,1.70,1.76,1.86,1.85,1.99,1.97,2.09,2.15, 2.23,2.26,2.44,2.53,2.64,2.63,2.73,2.66,2.83,2.89, 3.01,3.09,3.16,3.17,3.25,3.34,3.36,3.53,3.51,3.69, 3.71,3.74,3.92,3.99,4.01,4.04,4.16,4.20,4.28,4.38, 4.47,4.53,4.55,4.62,4.71,4.73,4.83,4.99,5.02,5.06, 5.23,5.26,5.29,5.48,5.51,5.53,5.73,5.78,5.70,5.76, 5.88,5.92,5.96,6.10,6.21,6.23,6.36,6.48,6.60,6.69, 6.61,6.59,6.82,6.84,6.90,6.85,7.09,7.10,7.17,7.29, 7.35,7.47,7.35,7.66,7.68,7.56,7.81,7.88,7.97,7.97, 8.01,8.12,8.38,8.33,8.38,8.42,8.49,8.57,8.66,8.92, 8.87,8.94,9.03,9.04,9.10,9.09,9.26,9.28,9.34,9.58, 9.45,9.56,9.90,9.88,9.89,9.95,9.83,10.08,9.94,10.23, 10.35,10.35,10.38,10.47,10.66,10.60,10.61,10.92,10.80,10.86, 10.89,11.05,11.18,11.35,11.18,11.34,11.39,11.54,11.69,11.80, 11.60,11.60,11.97,12.06,12.02,12.09,12.04,12.19,12.29,12.34, 12.44,12.51,12.59,12.54,12.61,12.88,12.84,13.01,13.01,13.24, 13.05,13.36,13.34,13.40,13.46,13.65,13.66,13.74,13.79,13.74, 13.95,14.05,14.03,14.16,14.34,14.34,14.48,14.37,14.59,14.59, 14.55,14.73,14.88,14.77,14.99,15.14,14.94,14.99,15.33,15.31, 15.36,15.37,15.67,15.57,15.60,15.67,15.74,16.15,15.96,16.13, 16.26,16.26,16.24,16.10,16.42,16.44,16.52,16.73,16.65,16.83, 16.98,16.89,16.74,16.85,17.37,17.19,17.32,17.27,17.36,17.36, 17.57,17.59,17.56,17.80,17.95,17.94,18.09,18.07,18.18,18.14, 18.39,18.33,18.35,18.65,18.77,18.70,18.94,18.94,18.82,19.08, 19.11,19.15,19.15,19.06,19.24,19.39,19.34,19.56,19.89,20.02, 19.88,19.82,20.12,20.07,20.11,20.13,20.29,20.31,20.43,20.70, 20.50,20.50,20.59,20.85,20.96,20.82,21.03,21.02,21.16,21.00, 21.27,21.66,21.35,21.50,21.42,21.66,21.71,21.65,21.79,21.85, 4.12,4.46,4.97,5.23,5.62,6.08,6.33,6.72,7.09,7.54, 7.91,8.28,8.64,9.00,9.48,9.78,10.15,10.52,10.88,11.27, 11.70,12.01,12.57,12.78,13.14,13.60,13.98,14.32,14.62,15.08, 15.45,15.87,16.13,16.72,17.00,17.36,17.68,18.02,18.46,18.98, 19.27,19.61,20.01,20.37,20.82,21.16,21.52,21.95,22.23,22.85, 23.10,23.39,23.82,23.98,24.43,24.92,25.09,25.57,26.10,26.30, 26.88,27.12,27.46,27.99,28.28,28.64,28.93,29.41,29.70,30.10, 30.68,30.89,31.57,31.65,32.19,32.48,32.80,33.23,33.77,33.99, 34.21,34.74,35.17,35.36,35.95,36.27,36.80,36.89,37.23,37.70, 38.28,38.44,38.94,39.26,39.60,39.95,40.37,40.69,41.16,41.38, 41.93,42.11,42.67,42.90,43.37,43.74,44.11,44.50,44.98,45.21, 45.69,45.99,46.47,46.76,47.25,47.56,47.89,48.26,48.72,49.00, 49.43,49.69,50.31,50.63,50.91,51.40,51.85,52.31,52.49,52.88, 53.30,53.78,54.02,54.22,54.55,54.99,55.56,55.80,56.27,56.93, 56.88,57.29,57.80,58.17,58.62,58.91,59.32,59.65,60.13,60.23, 60.81,60.98,61.33,61.79,62.29,62.77,63.10,63.42,63.76,64.09, 64.62,65.01,65.32,65.67,65.98,66.47,66.74,67.11,67.51,68.07, 68.28,68.64,68.98,69.47,69.79,70.01,70.69,70.72,71.37,71.49, 72.15,72.65,72.84,73.35,73.73,73.84,74.34,74.80,75.11,75.25, 75.98,76.43,76.62,77.13,77.30,77.87,78.01,78.49,78.88,79.64, 79.63,79.94,80.64,80.77,80.99,81.60,81.89,82.32,82.54,83.05, 83.33,83.60,84.24,84.51,84.75,85.32,85.53,86.08,86.69,86.84, 87.23,87.72,87.84,88.44,88.42,88.85,89.37,89.43,90.20,90.88, 90.77,91.42,91.68,92.31,92.38,92.95,93.38,93.49,93.89,94.30, 94.80,95.19,95.25,95.93,96.27,96.25,96.92,97.47,98.02,98.16, 98.70,98.96,99.25,99.64,100.01,100.33,100.64,101.05,101.36,101.62, 102.06,102.50,103.13,103.33,103.61,103.89,104.67,105.01,105.53,105.73, 105.98,106.66,106.61,107.17,107.53,108.23,108.61,108.97,109.22,109.42, 109.95,110.23,110.39,110.64,111.31,111.72,112.07,112.21,112.89,113.16, 3.73,4.11,4.39,4.74,5.04,5.37,5.76,6.14,6.46,6.73, 7.14,7.49,7.76,8.11,8.38,8.77,9.06,9.50,9.76,10.18, 10.46,10.84,11.10,11.54,11.81,12.20,12.44,12.85,13.11,13.57, 13.87,14.25,14.48,14.88,15.23,15.71,16.06,16.31,16.55,16.89, 17.21,17.69,18.05,18.28,18.64,19.11,19.38,19.56,20.03,20.36, 20.74,20.97,21.43,21.91,22.09,22.37,22.75,23.16,23.30,23.67, 23.95,24.45,24.76,25.14,25.50,25.94,26.04,26.40,26.74,27.23, 27.36,27.67,28.12,28.49,28.72,29.13,29.46,29.93,30.24,30.50, 31.17,31.22,31.43,32.04,32.24,32.67,32.98,33.42,33.62,33.87, 34.56,34.64,34.92,35.11,35.49,35.77,36.40,36.64,37.01,37.39, 37.58,38.05,38.44,38.68,39.04,39.42,39.70,40.08,40.44,40.61, 41.22,41.37,41.74,42.20,42.61,42.71,43.10,43.35,43.91,43.83, 44.39,44.81,45.02,45.38,45.98,46.25,46.60,47.06,47.23,47.57, 47.77,48.20,48.54,48.76,49.26,49.77,50.02,50.33,50.72,51.08, 51.46,51.73,51.73,52.03,52.58,52.93,53.35,53.77,54.11,54.52, 54.83,54.86,55.40,55.83,56.05,56.49,56.88,57.02,57.51,57.82, 58.11,58.34,58.82,58.87,59.27,59.74,60.22,60.35,60.83,60.96, 61.38,61.95,61.91,62.38,62.96,63.29,63.52,63.81,64.31,64.29, 64.88,65.21,65.60,65.96,66.27,66.79,66.79,67.30,67.55,67.82, 68.15,68.52,68.74,69.31,69.58,69.91,70.09,70.64,70.55,71.29, 71.59,72.05,72.58,72.69,72.90,73.52,73.70,74.17,74.36,75.04, 75.12,75.40,75.84,76.16,76.39,76.66,77.07,77.57,77.90,78.23, 78.57,78.82,79.18,79.59,80.10,80.09,80.39,81.02,81.36,81.42, 82.02,82.28,82.40,82.89,83.16,83.66,84.33,83.97,84.53,84.86, 85.25,85.55,86.14,86.30,86.76,86.88,87.22,87.61,88.14,88.47, 88.71,89.11,89.42,89.64,89.78,90.37,90.90,91.23,91.08,91.71, 92.22,92.31,92.61,93.20,93.41,93.71,94.28,94.60,94.86,95.35, 95.72,95.92,96.32,96.49,97.07,97.07,97.55,98.14,98.05,98.66, 99.12,99.41,99.35,100.04,100.17,100.39,100.96,101.31,101.48,101.78, 3.34,3.67,3.94,4.30,4.57,4.83,5.22,5.45,5.79,6.12, 6.41,6.74,7.00,7.27,7.55,7.94,8.27,8.42,8.81,9.06, 9.44,9.65,10.07,10.35,10.65,11.02,11.35,11.42,11.90,12.25, 12.48,12.73,13.08,13.43,13.62,14.04,14.35,14.57,14.82,15.22, 15.55,16.02,16.23,16.60,16.77,17.24,17.49,17.72,18.12,18.29, 18.55,18.86,19.17,19.55,20.04,20.07,20.50,20.86,21.08,21.29, 21.54,21.95,22.22,22.63,22.86,23.27,23.54,23.98,24.01,24.33, 24.73,25.18,25.38,25.77,25.95,26.31,26.59,26.70,27.25,27.46, 27.84,28.00,28.46,28.76,29.15,29.21,29.59,30.05,30.06,30.69, 30.90,31.20,31.51,31.78,32.20,32.44,32.63,33.01,33.31,33.71, 33.80,34.26,34.59,34.97,35.14,35.34,35.79,36.05,36.19,36.73, 36.89,37.37,37.55,37.92,38.37,38.37,38.87,39.09,39.56,39.88, 40.08,40.20,40.62,41.18,41.25,41.51,41.77,42.25,42.67,42.68, 43.27,43.40,43.84,43.99,44.36,44.41,44.93,45.20,45.63,45.90, 46.07,46.49,46.58,47.27,47.34,47.59,47.90,48.36,48.48,49.06, 49.09,49.40,50.06,49.92,50.46,50.91,51.08,51.26,51.73,51.87, 52.23,52.39,52.87,53.24,53.19,53.82,54.00,54.49,54.53,55.04, 55.24,55.50,55.77,56.45,56.60,57.01,57.19,57.44,57.84,58.16, 58.48,58.55,58.96,59.32,59.66,59.88,60.25,60.60,61.04,61.05, 61.57,61.59,61.88,62.44,62.53,63.16,63.14,63.60,64.09,64.11, 64.45,64.97,65.01,65.26,65.93,66.13,66.28,66.53,67.06,67.23, 67.61,67.83,68.07,68.43,68.80,69.36,69.44,69.77,70.19,70.28, 70.86,70.79,71.22,71.61,71.66,72.32,72.34,72.76,72.92,73.53, 73.67,73.93,74.24,74.40,74.72,75.28,75.70,75.89,76.08,76.68, 76.65,76.86,77.11,77.87,77.79,78.58,78.64,79.12,79.41,79.42, 79.89,80.11,80.26,80.65,80.88,81.15,81.50,81.96,82.21,82.35, 83.04,82.96,83.12,83.83,83.98,84.24,84.81,84.86,84.88,85.35, 85.95,86.41,86.45,86.73,87.13,87.41,87.84,87.87,88.31,88.62, 89.00,89.30,89.56,90.05,90.29,90.42,90.88,90.94,91.82,91.88, 3.04,3.24,3.55,3.84,4.04,4.37,4.67,4.92,5.21,5.50, 5.75,6.02,6.34,6.61,6.83,7.09,7.44,7.66,8.04,8.26, 8.44,8.69,9.03,9.26,9.59,9.85,10.16,10.38,10.68,10.88, 11.18,11.64,11.77,12.10,12.37,12.76,12.91,13.11,13.40,13.72, 13.97,14.36,14.51,14.86,15.15,15.33,15.81,16.01,16.26,16.41, 16.81,17.04,17.28,17.58,17.78,18.20,18.41,18.71,18.98,19.23, 19.64,19.83,20.09,20.30,20.72,20.92,21.08,21.29,21.71,21.62, 22.14,22.50,22.92,23.21,23.32,23.74,24.03,24.09,24.50,24.80, 25.00,25.32,25.61,25.92,26.23,26.28,26.63,27.02,27.22,27.57, 27.80,28.14,28.08,28.49,28.77,29.20,29.37,29.82,30.04,30.25, 30.73,30.88,31.09,31.43,31.48,32.02,32.23,32.39,32.66,32.82, 33.36,33.43,33.91,34.02,34.45,34.61,34.83,35.18,35.42,35.78, 36.05,36.42,36.68,36.91,37.23,37.48,37.76,37.87,38.23,38.50, 38.92,38.99,39.36,39.55,39.76,40.14,40.37,40.69,40.87,41.22, 41.63,41.73,42.12,42.19,42.77,43.02,43.33,43.60,43.98,43.92, 44.10,44.56,44.86,45.38,45.44,45.96,46.13,46.33,46.58,46.78, 47.05,47.30,47.51,47.91,47.83,48.33,48.75,48.90,49.31,49.48, 49.66,49.84,50.27,50.77,50.93,51.15,51.28,51.70,52.16,52.30, 52.51,52.78,53.01,53.10,53.63,54.06,54.45,54.81,54.76,55.16, 55.27,55.40,55.86,56.19,56.41,56.68,57.04,57.40,57.25,57.70, 58.08,58.43,58.45,58.98,59.15,59.47,59.69,59.91,60.25,60.52, 60.71,61.09,61.41,61.66,62.06,62.21,62.67,62.98,62.99,63.67, 63.47,63.95,64.18,64.44,64.56,65.11,65.32,65.46,65.78,65.98, 66.47,66.60,66.82,67.37,67.41,67.58,67.92,68.21,68.33,69.09, 69.13,69.47,69.57,69.67,70.11,70.31,70.77,71.21,71.35,71.50, 71.86,72.16,72.29,72.81,73.02,73.34,73.44,73.68,73.89,74.64, 74.65,74.72,75.14,75.24,75.72,75.76,76.27,76.80,76.77,76.96, 77.40,77.65,77.89,77.98,78.66,78.91,78.92,79.15,79.34,79.80, 80.11,80.32,80.66,80.82,81.26,81.79,81.46,82.42,82.25,82.69, 2.76,2.98,3.18,3.43,3.72,3.96,4.21,4.33,4.67,4.90, 5.15,5.44,5.62,5.95,6.21,6.30,6.66,6.94,7.12,7.37, 7.60,7.91,8.10,8.46,8.58,8.89,9.17,9.42,9.53,9.83, 10.11,10.28,10.48,10.92,11.07,11.45,11.63,11.87,12.08,12.34, 12.62,12.92,13.01,13.28,13.53,13.89,14.03,14.30,14.67,14.74, 15.08,15.48,15.52,15.69,15.95,16.48,16.68,16.78,17.13,17.19, 17.61,17.80,17.99,18.27,18.51,18.77,18.94,19.33,19.52,19.89, 20.01,20.16,20.39,20.70,21.04,21.27,21.64,21.68,22.14,22.32, 22.60,22.76,23.12,23.15,23.43,23.66,24.04,24.25,24.38,24.67, 24.89,25.29,25.45,25.84,25.99,26.34,26.50,26.78,26.90,27.12, 27.41,27.72,28.12,28.15,28.37,28.56,28.97,29.22,29.42,29.62, 29.93,30.05,30.33,30.62,31.07,31.21,31.36,31.71,31.86,32.12, 32.39,32.76,33.03,33.31,33.51,33.59,33.95,34.18,34.44,34.93, 35.02,35.10,35.29,35.65,35.88,36.33,36.20,36.71,36.95,37.40, 37.37,37.40,37.81,38.23,38.27,38.58,38.77,38.99,39.51,39.71, 39.86,40.13,40.31,40.47,40.73,41.13,41.40,41.41,42.00,42.12, 42.37,42.47,42.87,43.09,43.42,43.56,44.00,44.10,44.38,44.48, 44.69,45.21,45.30,45.40,45.89,46.13,46.23,46.62,46.76,47.09, 47.17,47.51,47.71,47.76,48.24,48.52,48.86,49.13,49.38,49.59, 49.74,49.93,50.19,50.58,50.66,51.18,51.54,51.25,51.81,51.90, 52.25,52.52,52.82,53.09,53.33,53.36,53.64,54.05,54.31,54.47, 54.91,55.15,55.17,55.60,55.92,55.99,56.17,56.55,56.76,57.16, 57.07,57.29,57.81,58.06,58.06,58.23,58.65,58.69,58.78,59.45, 59.70,60.07,60.29,60.24,60.61,60.98,61.27,61.42,61.61,61.92, 62.16,62.58,62.65,62.98,63.04,63.25,63.59,63.75,63.94,64.34, 64.67,64.91,65.31,65.38,65.76,65.78,66.06,66.56,66.65,66.90, 67.03,67.50,67.80,68.05,68.20,68.32,68.54,69.06,69.36,69.24, 69.55,69.67,70.11,70.31,70.57,71.06,70.92,71.51,71.42,71.67, 72.30,72.28,72.30,72.71,72.92,73.23,73.70,73.63,74.01,74.17, 2.44,2.66,2.86,3.11,3.34,3.56,3.72,3.98,4.28,4.41, 4.66,4.93,5.08,5.32,5.58,5.79,5.97,6.32,6.47,6.69, 6.88,7.17,7.28,7.53,7.73,7.99,8.24,8.51,8.74,8.93, 9.05,9.38,9.57,9.76,10.04,10.20,10.42,10.69,10.87,11.13, 11.39,11.58,11.86,11.98,12.26,12.51,12.71,12.91,13.18,13.43, 13.66,13.88,13.99,14.14,14.49,14.78,15.01,15.16,15.35,15.68, 15.78,16.11,16.22,16.40,16.88,16.93,17.05,17.21,17.50,17.83, 18.07,18.21,18.50,18.75,18.80,19.09,19.31,19.59,19.84,20.00, 20.20,20.47,20.59,21.16,21.14,21.29,21.62,21.83,22.04,22.41, 22.63,22.59,22.94,23.20,23.30,23.60,23.87,24.09,24.38,24.50, 24.57,24.95,25.21,25.42,25.64,25.89,26.16,26.40,26.61,26.77, 26.91,27.19,27.37,27.54,27.85,28.20,28.45,28.40,28.65,28.93, 29.23,29.47,29.68,29.96,30.23,30.22,30.70,30.67,30.90,31.04, 31.36,31.53,32.04,32.05,32.27,32.63,32.71,32.96,33.12,33.45, 33.68,33.99,34.03,34.22,34.30,34.75,34.91,34.91,35.46,35.71, 35.95,36.03,36.50,36.56,36.81,37.00,37.16,37.51,37.70,37.86, 38.11,38.09,38.71,38.61,39.19,39.15,39.45,39.64,39.82,40.38, 40.48,40.42,40.68,40.89,41.09,41.28,41.79,41.78,42.18,42.35, 42.64,42.90,42.84,43.40,43.78,43.85,43.84,44.22,44.44,44.34, 44.69,44.91,45.12,45.42,45.44,45.89,46.38,46.28,46.51,46.74, 47.18,47.17,47.39,47.55,47.90,48.06,48.41,48.48,48.66,49.04, 49.33,49.35,49.70,50.19,50.12,50.17,50.53,50.84,51.09,51.25, 51.53,51.68,51.90,52.22,52.29,52.61,52.91,53.16,53.15,53.42, 53.84,54.03,54.18,54.32,54.49,54.77,54.79,55.20,55.50,55.90, 55.77,56.06,56.35,56.83,56.60,56.99,57.38,57.52,57.53,57.97, 58.21,58.54,58.72,58.62,59.15,58.99,59.63,59.92,59.98,60.29, 60.40,60.66,60.71,61.07,61.35,61.33,61.83,62.04,62.19,62.26, 62.49,62.62,63.12,63.37,63.61,63.78,64.19,64.00,64.50,64.28, 64.89,65.25,65.37,65.31,65.59,65.91,66.10,66.42,66.54,66.51, 2.16,2.39,2.64,2.74,3.01,3.23,3.45,3.55,3.83,3.98, 4.13,4.30,4.62,4.83,4.97,5.23,5.34,5.62,5.76,6.06, 6.17,6.42,6.63,6.88,7.02,7.26,7.39,7.63,7.79,8.01, 8.16,8.37,8.58,8.82,9.02,9.29,9.37,9.61,9.81,9.95, 10.29,10.55,10.67,10.84,10.92,11.22,11.40,11.68,11.79,11.93, 12.30,12.40,12.68,12.80,13.07,13.16,13.48,13.67,13.87,14.11, 14.21,14.44,14.68,14.79,15.06,15.24,15.46,15.69,15.88,16.06, 16.35,16.43,16.64,16.75,16.99,17.29,17.43,17.69,17.67,18.03, 18.32,18.43,18.60,18.93,18.92,19.38,19.66,19.79,19.79,20.11, 20.15,20.51,20.61,20.84,21.18,21.22,21.44,21.55,21.84,21.92, 22.15,22.39,22.70,22.96,23.09,23.26,23.46,23.64,24.04,24.10, 23.98,24.38,24.80,24.90,25.13,25.25,25.48,25.66,25.70,26.09, 26.34,26.42,26.60,26.77,27.02,27.32,27.38,27.71,27.85,28.04, 28.18,28.64,28.64,28.89,29.03,29.18,29.51,29.79,29.84,30.14, 30.27,30.50,30.60,30.83,31.24,31.19,31.41,31.57,31.93,32.19, 32.26,32.62,32.65,33.02,32.88,33.23,33.64,33.82,33.89,34.09, 34.36,34.73,34.79,34.92,35.07,35.25,35.55,35.73,35.77,36.13, 36.32,36.67,36.58,36.85,37.24,37.30,37.41,37.71,38.00,38.12, 38.45,38.49,38.80,39.17,39.08,39.46,39.39,39.66,40.00,40.00, 40.27,40.51,40.76,41.17,41.20,41.45,41.66,41.84,41.81,42.06, 42.29,42.42,42.82,43.08,43.04,43.37,43.44,43.90,44.13,43.84, 44.44,44.54,44.71,44.97,45.35,45.32,45.27,45.58,46.23,46.09, 46.12,46.59,46.59,47.00,47.16,47.49,47.46,47.75,47.79,47.98, 48.30,48.58,48.77,49.11,49.12,49.24,49.59,49.83,49.97,50.38, 50.27,50.59,50.82,50.83,51.17,51.08,51.46,51.75,52.05,52.37, 52.53,52.63,52.68,52.94,53.22,53.44,53.65,53.55,53.93,54.10, 54.38,54.57,54.58,55.04,55.17,55.28,55.61,55.50,56.22,56.28, 56.31,56.74,56.56,56.88,56.97,57.06,57.57,57.66,58.18,58.18, 58.41,58.33,58.87,59.24,59.09,59.59,59.33,59.46,59.94,59.79, 2.02,2.19,2.32,2.51,2.69,2.92,3.06,3.20,3.36,3.63, 3.82,3.90,4.18,4.28,4.55,4.72,4.85,5.02,5.33,5.44, 5.58,5.73,5.94,6.20,6.33,6.43,6.63,6.81,7.00,7.30, 7.36,7.62,7.76,7.83,8.10,8.33,8.48,8.69,8.85,8.97, 9.13,9.42,9.59,9.71,9.98,10.18,10.21,10.50,10.68,10.83, 10.97,11.15,11.32,11.69,11.66,11.90,12.07,12.29,12.58,12.72, 12.85,13.04,13.16,13.26,13.69,13.71,13.87,14.21,14.38,14.44, 14.57,14.70,14.94,14.98,15.44,15.52,15.73,15.91,16.16,16.33, 16.31,16.64,16.79,16.98,17.08,17.30,17.54,17.61,17.87,18.00, 18.14,18.24,18.71,18.80,18.87,19.10,19.28,19.36,19.77,19.83, 19.98,20.25,20.36,20.67,20.66,21.01,21.15,21.32,21.32,21.66, 21.87,22.04,22.26,22.37,22.50,22.69,22.98,23.27,23.30,23.57, 23.63,23.72,24.02,24.16,24.43,24.74,24.85,25.15,25.02,25.34, 25.39,25.64,25.77,26.05,26.32,26.62,26.66,26.74,26.65,27.00, 27.27,27.64,27.74,27.86,28.00,28.02,28.35,28.50,28.63,28.92, 29.10,29.39,29.52,29.46,29.85,30.01,30.15,30.23,30.48,30.61, 30.99,30.98,31.22,31.29,31.63,31.72,31.89,31.90,32.20,32.55, 32.61,32.94,33.30,33.07,33.46,33.48,33.74,34.09,34.07,34.33, 34.59,34.67,35.05,35.27,35.18,35.49,35.31,35.63,36.15,35.94, 36.38,36.42,36.65,36.90,36.97,37.15,37.35,37.58,37.59,37.70, 38.01,37.99,38.47,38.65,39.01,39.07,39.03,39.54,39.42,39.77, 39.81,39.98,40.10,40.38,40.52,40.90,40.99,41.10,41.09,41.65, 41.54,41.95,42.25,42.26,42.50,42.62,42.60,43.03,43.21,43.41, 43.85,43.70,43.98,44.27,44.26,44.50,44.66,44.95,45.04,45.34, 45.44,45.69,45.76,45.71,45.83,46.13,46.39,46.27,46.78,46.94, 47.18,47.21,47.64,47.90,47.73,48.19,48.18,48.45,48.19,48.66, 49.12,49.10,49.24,49.32,49.59,49.77,50.04,50.34,50.32,50.67, 50.93,51.01,51.32,51.27,51.42,51.59,52.09,51.97,52.26,52.45, 52.62,52.54,52.90,53.00,53.24,53.62,53.20,53.71,54.05,54.09, 1.81,1.88,2.03,2.24,2.41,2.59,2.77,2.90,3.04,3.22, 3.38,3.58,3.64,3.92,4.06,4.16,4.49,4.53,4.71,4.85, 4.92,5.14,5.38,5.60,5.62,5.83,5.93,6.13,6.38,6.49, 6.64,6.72,7.00,6.99,7.38,7.43,7.71,7.90,7.97,8.04, 8.35,8.44,8.61,8.69,8.87,9.16,9.20,9.38,9.55,9.82, 10.10,10.03,10.15,10.44,10.50,10.74,10.93,11.10,11.25,11.24, 11.46,11.74,11.88,12.01,12.15,12.25,12.58,12.78,12.77,12.98, 13.12,13.38,13.39,13.60,13.77,13.98,14.10,14.28,14.40,14.64, 14.93,14.93,14.97,15.20,15.45,15.50,15.74,15.83,16.07,16.30, 16.33,16.70,16.70,16.81,16.93,17.38,17.40,17.37,17.63,17.84, 17.93,18.24,18.38,18.52,18.73,18.80,18.91,18.94,19.50,19.53, 19.58,19.81,19.98,20.20,20.32,20.34,20.57,20.82,21.16,21.13, 21.24,21.43,21.76,21.73,21.90,22.10,22.30,22.27,22.62,22.68, 22.85,23.09,23.19,23.44,23.62,23.82,23.82,23.84,24.12,24.27, 24.56,24.64,24.81,24.83,24.96,25.33,25.37,25.75,25.77,26.09, 26.22,26.37,26.48,26.53,26.87,27.12,27.17,27.34,27.51,27.66, 27.68,28.20,28.06,28.18,28.26,28.59,28.90,28.81,29.08,29.16, 29.41,29.48,29.66,29.93,30.12,30.25,30.45,30.63,30.60,31.12, 31.02,31.07,31.19,31.23,31.89,31.99,32.08,32.36,32.26,32.61, 32.85,32.80,33.04,32.99,33.10,33.48,33.56,33.86,33.84,34.20, 34.31,34.51,34.72,34.97,35.10,34.92,35.22,35.45,35.73,35.35, 36.01,35.98,36.30,36.48,36.50,36.51,36.71,37.11,37.28,37.26, 37.41,37.59,37.85,37.72,38.16,38.28,38.77,38.96,38.86,39.21, 39.30,39.51,39.33,39.89,39.92,39.85,39.93,40.28,40.33,40.58, 40.68,41.07,40.97,41.18,41.54,41.52,41.79,42.04,42.11,42.48, 42.30,42.85,42.78,42.91,43.04,43.21,43.37,43.54,43.33,43.82, 43.93,44.00,44.45,44.36,44.85,44.92,44.93,45.09,45.21,45.53, 45.52,45.87,45.97,45.83,46.65,46.47,46.64,46.87,47.01,47.18, 47.36,47.34,47.78,47.83,47.80,48.01,48.16,48.17,48.63,48.88, 1.62,1.75,1.88,2.06,2.17,2.37,2.45,2.65,2.76,2.91, 3.02,3.16,3.35,3.52,3.61,3.80,3.90,4.10,4.25,4.33, 4.55,4.61,4.78,4.94,5.05,5.19,5.33,5.61,5.63,5.88, 5.95,6.06,6.21,6.40,6.60,6.71,6.86,6.90,7.11,7.27, 7.54,7.53,7.70,7.84,8.13,8.25,8.47,8.40,8.68,8.77, 9.00,9.11,9.25,9.39,9.59,9.67,9.83,9.89,10.02,10.24, 10.36,10.52,10.73,10.79,10.92,11.10,11.25,11.36,11.61,11.74, 11.90,11.99,12.19,12.27,12.33,12.51,12.67,12.91,13.03,13.13, 13.17,13.49,13.62,13.65,13.81,14.06,14.14,14.21,14.43,14.42, 14.71,14.92,14.94,15.19,15.50,15.49,15.62,15.70,16.06,16.04, 16.35,16.35,16.49,16.69,16.86,16.91,17.14,17.24,17.41,17.48, 17.51,17.93,18.10,18.18,18.38,18.47,18.58,18.86,19.00,19.06, 19.08,19.34,19.40,19.50,19.73,19.90,19.91,20.26,20.34,20.38, 20.50,20.80,20.75,21.00,21.16,21.38,21.57,21.55,21.91,21.82, 22.10,22.19,22.38,22.55,22.63,22.64,22.87,23.25,23.28,23.25, 23.72,23.83,23.83,23.94,24.11,24.17,24.44,24.63,24.80,24.80, 24.91,25.18,25.40,25.36,25.61,26.04,26.00,25.87,26.11,26.21, 26.45,26.64,26.72,26.81,26.93,27.09,27.24,27.30,27.42,27.82, 27.93,28.07,28.29,28.62,28.57,28.70,28.86,28.90,29.15,29.18, 29.47,29.51,29.59,29.67,29.96,30.16,30.21,30.41,30.34,30.71, 31.09,31.16,31.11,31.28,31.34,31.32,31.52,31.87,31.94,32.03, 32.27,32.49,32.69,32.62,32.99,33.07,33.00,33.24,33.40,33.69, 33.98,33.99,33.88,34.08,34.55,34.30,34.72,35.02,34.97,35.30, 35.31,35.25,35.32,35.88,35.83,35.75,36.11,36.31,36.43,36.64, 36.75,36.69,37.14,37.07,37.35,37.43,37.61,37.53,38.05,37.67, 38.07,38.33,38.60,38.81,38.77,38.94,39.09,39.31,39.30,39.56, 39.56,39.84,39.78,40.09,40.20,40.38,40.38,40.72,41.05,40.86, 41.21,41.40,41.50,41.35,41.70,41.63,41.93,42.30,42.39,42.41, 42.57,43.01,42.92,42.95,43.38,43.14,43.45,43.71,43.68,44.10, 1.43,1.51,1.66,1.85,1.98,2.14,2.19,2.31,2.47,2.63, 2.76,2.96,3.04,3.18,3.22,3.31,3.62,3.70,3.80,3.98, 4.06,4.24,4.32,4.44,4.55,4.77,4.92,5.01,5.19,5.20, 5.41,5.42,5.64,5.75,5.94,6.06,6.14,6.38,6.45,6.59, 6.70,6.87,6.86,7.16,7.26,7.32,7.53,7.59,7.76,7.88, 8.05,8.18,8.27,8.34,8.54,8.68,8.84,8.94,8.98,9.17, 9.35,9.46,9.59,9.77,9.88,9.95,10.17,10.21,10.46,10.58, 10.51,10.76,10.97,10.89,11.04,11.39,11.48,11.39,11.66,11.89, 12.02,12.13,12.20,12.40,12.44,12.78,12.93,12.83,12.93,13.24, 13.31,13.37,13.52,13.77,13.89,13.97,14.04,14.19,14.43,14.52, 14.56,14.69,14.92,14.96,15.11,15.29,15.47,15.38,15.70,15.83, 15.89,16.06,16.08,16.16,16.44,16.68,16.74,16.66,16.95,17.15, 17.20,17.34,17.64,17.64,17.77,17.88,17.96,18.28,18.40,18.39, 18.75,18.79,18.80,18.84,19.20,19.30,19.60,19.45,19.77,19.69, 19.77,20.09,20.31,20.39,20.45,20.41,20.68,20.89,20.99,21.17, 21.09,21.23,21.38,21.40,21.46,21.87,21.97,22.27,22.20,22.50, 22.33,22.55,22.70,22.79,23.05,23.09,23.22,23.45,23.71,23.75, 23.91,24.05,23.94,24.25,24.32,24.66,24.72,24.75,24.95,24.94, 25.18,25.16,25.59,25.49,25.66,25.90,25.93,26.09,26.22,26.36, 26.31,26.47,26.64,26.96,26.94,27.06,27.33,27.32,27.38,27.78, 27.76,27.58,27.95,28.38,28.37,28.37,28.31,28.54,28.92,28.91, 29.07,29.10,29.16,29.38,29.76,29.72,29.91,29.95,30.05,30.33, 30.38,30.52,30.40,30.57,30.67,31.02,31.24,30.99,31.46,31.50, 31.85,31.64,32.01,32.01,32.34,32.38,32.62,32.71,32.62,33.13, 33.37,32.95,33.33,33.22,33.68,33.87,33.81,33.93,34.09,34.22, 34.32,34.76,34.65,34.75,34.97,35.01,35.22,35.32,35.68,35.61, 35.61,35.73,35.94,36.14,36.23,36.30,36.49,36.46,37.20,36.82, 36.97,36.84,37.34,37.37,37.54,37.85,37.78,37.92,38.00,38.25, 38.31,38.29,38.59,38.37,38.84,38.85,38.99,39.22,39.45,39.83, 1.29,1.40,1.55,1.66,1.78,1.95,2.04,2.15,2.30,2.37, 2.45,2.64,2.71,2.85,2.95,3.07,3.31,3.32,3.45,3.56, 3.61,3.81,3.92,4.04,4.20,4.28,4.44,4.52,4.62,4.74, 4.85,4.99,4.99,5.22,5.31,5.41,5.61,5.67,5.79,6.09, 5.92,6.12,6.28,6.45,6.56,6.62,6.71,6.78,6.96,7.06, 7.31,7.41,7.51,7.59,7.77,7.88,7.84,7.96,8.18,8.28, 8.53,8.52,8.54,8.82,9.00,9.03,8.98,9.30,9.26,9.43, 9.54,9.63,9.78,9.85,10.10,10.16,10.27,10.39,10.55,10.59, 10.75,10.79,11.00,11.11,11.26,11.43,11.45,11.54,11.79,11.79, 11.89,12.00,12.28,12.43,12.42,12.55,12.74,12.74,12.85,12.93, 13.10,13.43,13.30,13.45,13.46,13.72,13.85,13.99,14.23,14.22, 14.33,14.49,14.53,14.76,14.73,14.90,15.00,15.08,15.24,15.35, 15.44,15.56,15.79,15.92,15.96,16.10,16.14,16.35,16.21,16.46, 16.63,16.80,16.93,17.10,17.33,17.29,17.34,17.46,17.70,17.89, 17.92,17.87,18.31,18.16,18.41,18.50,18.68,18.67,18.71,18.97, 19.11,19.21,19.45,19.58,19.50,19.55,19.59,19.75,20.12,20.29, 20.02,20.24,20.45,20.74,20.54,20.82,20.86,21.01,21.21,21.13, 21.34,21.64,21.69,21.79,21.86,22.12,22.05,22.08,22.30,22.57, 22.66,22.74,22.94,22.90,23.16,23.01,23.43,23.41,23.60,23.47, 23.77,23.96,24.04,24.33,24.38,24.34,24.39,24.55,24.71,24.74, 25.14,25.30,25.25,25.23,25.33,25.44,25.60,25.99,26.03,25.93, 26.24,26.37,26.46,26.57,26.62,26.75,26.97,26.97,27.26,27.34, 27.71,27.62,27.59,27.99,27.85,28.07,28.00,28.03,28.16,28.44, 28.44,28.62,28.70,28.89,29.09,29.20,29.38,29.42,29.41,29.62, 30.05,29.92,30.03,30.19,30.14,30.18,30.54,30.51,30.66,30.71, 31.03,30.99,31.08,31.38,31.37,31.56,31.70,31.82,31.82,31.87, 32.11,32.29,32.16,32.54,32.47,32.47,32.81,32.91,33.23,33.19, 33.49,33.57,33.60,33.56,33.64,34.00,34.09,34.36,34.10,34.55, 34.67,34.55,34.67,34.94,34.96,34.95,35.37,35.52,35.17,35.40, 1.19,1.29,1.42,1.49,1.59,1.72,1.76,1.89,2.01,2.08, 2.25,2.36,2.41,2.55,2.68,2.80,2.88,2.98,3.12,3.14, 3.35,3.45,3.60,3.62,3.79,3.83,3.88,4.09,4.11,4.20, 4.31,4.47,4.55,4.58,4.82,4.99,4.95,5.02,5.26,5.30, 5.48,5.51,5.75,5.84,5.88,5.93,5.99,6.13,6.27,6.39, 6.47,6.58,6.64,6.81,6.92,6.99,7.17,7.25,7.41,7.47, 7.53,7.69,7.84,7.91,7.95,8.13,8.15,8.31,8.44,8.50, 8.73,8.70,8.88,8.82,9.09,9.26,9.29,9.45,9.42,9.62, 9.73,9.69,9.94,9.97,10.15,10.08,10.24,10.46,10.61,10.63, 10.79,10.87,10.88,11.02,11.16,11.14,11.41,11.57,11.60,11.84, 11.90,11.93,12.03,12.04,12.07,12.15,12.36,12.65,12.67,12.79, 12.87,12.96,13.10,13.29,13.38,13.38,13.54,13.63,13.73,14.08, 13.95,14.04,14.19,14.32,14.28,14.53,14.53,14.72,14.97,14.96, 15.00,15.07,15.21,15.36,15.57,15.48,15.63,15.82,15.93,15.92, 16.02,16.25,16.44,16.43,16.55,16.66,16.64,16.85,16.85,17.10, 17.18,17.36,17.38,17.23,17.53,17.68,17.70,17.98,18.06,18.05, 18.18,18.28,18.30,18.56,18.74,18.67,18.95,19.02,19.07,19.14, 19.25,19.31,19.56,19.45,19.77,19.66,20.00,20.16,20.04,20.32, 20.34,20.53,20.66,20.66,20.65,20.83,20.87,21.14,21.24,21.32, 21.50,21.60,21.71,21.77,21.92,21.88,21.98,22.34,22.22,22.47, 22.46,22.48,22.49,22.77,22.81,23.13,23.18,23.30,23.56,23.38, 23.62,23.81,23.63,23.68,23.99,24.17,24.15,24.17,24.51,24.45, 24.71,24.73,24.80,24.76,25.03,25.06,25.31,25.09,25.55,25.57, 25.67,25.77,25.92,26.21,26.23,26.19,26.27,26.39,26.62,26.71, 26.65,26.89,26.99,27.07,27.07,27.30,27.50,27.50,27.57,27.65, 27.98,28.05,27.99,28.12,28.36,28.25,28.49,28.38,28.65,29.02, 28.70,28.90,29.06,29.03,29.22,29.56,29.56,29.66,29.65,29.63, 30.13,30.00,30.16,30.32,30.58,30.89,30.65,30.71,30.66,30.95, 31.12,31.05,31.41,31.23,31.25,31.67,31.59,31.90,31.65,32.02, 1.02,1.15,1.29,1.37,1.46,1.52,1.59,1.72,1.77,1.95, 1.99,2.11,2.23,2.31,2.41,2.47,2.57,2.70,2.77,2.85, 2.91,3.14,3.14,3.27,3.36,3.42,3.56,3.58,3.70,3.82, 3.90,4.01,4.07,4.13,4.38,4.45,4.46,4.64,4.68,4.82, 4.87,5.04,5.10,5.12,5.35,5.39,5.60,5.56,5.65,5.79, 5.86,5.96,5.99,6.19,6.28,6.27,6.33,6.60,6.56,6.70, 6.87,6.96,7.08,7.07,7.12,7.31,7.35,7.54,7.52,7.66, 7.71,7.93,7.93,7.90,8.04,8.21,8.30,8.56,8.46,8.55, 8.79,8.90,8.83,8.99,9.12,9.22,9.34,9.36,9.48,9.54, 9.70,9.73,9.86,9.91,10.19,10.22,10.26,10.33,10.41,10.54, 10.64,10.73,10.79,11.01,11.00,11.08,11.27,11.24,11.40,11.71, 11.58,11.61,11.78,12.07,11.99,12.14,12.33,12.30,12.36,12.37, 12.64,12.67,12.77,12.88,13.00,13.05,13.04,13.10,13.34,13.48, 13.50,13.53,13.64,13.71,13.93,13.94,14.05,14.27,14.19,14.41, 14.60,14.63,14.75,14.70,14.99,14.79,14.95,15.12,15.10,15.46, 15.52,15.45,15.56,15.75,15.93,16.12,16.10,16.02,16.24,16.38, 16.34,16.49,16.71,16.62,16.81,16.91,16.95,16.93,17.15,17.31, 17.37,17.45,17.42,17.69,17.48,17.81,17.95,18.14,18.13,18.27, 18.32,18.45,18.54,18.48,18.65,18.86,18.78,19.13,18.96,19.34, 19.20,19.24,19.50,19.53,19.88,19.77,19.87,19.93,20.12,20.36, 20.24,20.36,20.32,20.57,20.63,20.49,20.89,21.20,21.05,21.05, 21.22,21.13,21.38,21.59,21.62,21.58,21.79,21.94,21.83,22.05, 22.28,22.39,22.12,22.32,22.55,22.73,22.78,22.91,22.80,23.05, 23.23,23.22,23.62,23.47,23.52,23.57,23.64,23.73,23.86,24.04, 24.06,24.25,24.22,24.36,24.43,24.58,24.82,24.78,24.98,24.83, 25.00,24.99,25.30,25.37,25.28,25.53,25.53,25.74,25.74,25.82, 26.07,25.99,26.39,26.20,26.34,26.62,26.47,26.65,26.83,27.10, 27.07,27.17,27.34,27.16,27.42,27.37,27.85,27.67,27.57,27.81, 28.08,28.09,28.21,28.21,28.46,28.75,28.66,28.95,28.66,28.94, 0.92,1.00,1.14,1.18,1.31,1.34,1.41,1.53,1.71,1.67, 1.77,1.91,1.98,2.15,2.17,2.26,2.27,2.39,2.56,2.54, 2.71,2.74,2.86,2.89,3.00,3.17,3.15,3.30,3.32,3.40, 3.54,3.60,3.74,3.80,3.84,4.00,4.11,4.12,4.18,4.26, 4.39,4.48,4.54,4.71,4.74,4.90,4.95,4.98,5.02,5.10, 5.31,5.26,5.46,5.57,5.41,5.72,5.88,5.90,5.91,5.97, 6.07,6.16,6.29,6.36,6.44,6.65,6.54,6.69,6.91,6.85, 6.99,7.13,7.17,7.25,7.37,7.38,7.49,7.56,7.67,7.83, 7.78,7.97,8.08,8.04,8.23,8.29,8.46,8.52,8.58,8.63, 8.59,8.79,8.80,8.95,8.99,9.13,9.09,9.32,9.43,9.53, 9.48,9.63,9.84,9.79,9.84,9.92,10.08,10.06,10.36,10.42, 10.48,10.51,10.70,10.77,10.82,11.04,10.94,11.15,11.24,11.06, 11.40,11.53,11.54,11.47,11.57,11.95,11.88,12.06,11.96,12.20, 12.18,12.20,12.50,12.59,12.55,12.64,12.75,12.94,12.70,12.78, 12.77,13.07,13.23,13.30,13.31,13.32,13.67,13.48,13.81,13.91, 13.87,14.07,14.09,14.03,14.25,14.35,14.42,14.24,14.73,14.66, 14.82,14.71,14.80,15.16,15.00,15.34,15.15,15.43,15.48,15.56, 15.73,15.76,15.86,15.93,16.09,16.00,16.06,16.49,16.26,16.47, 16.50,16.60,16.76,16.76,16.73,17.00,17.10,17.11,17.13,17.37, 17.33,17.46,17.49,17.86,17.77,17.70,17.92,18.12,17.90,18.01, 18.14,18.25,18.44,18.35,18.71,18.77,18.70,18.86,18.85,19.06, 18.96,19.15,19.20,19.34,19.46,19.69,19.79,19.62,19.77,19.79, 19.89,19.90,20.18,20.13,20.07,20.53,20.45,20.39,20.58,21.04, 20.67,20.96,20.89,20.93,21.09,21.18,21.28,21.36,21.35,21.66, 21.80,21.68,21.62,21.98,22.02,22.10,22.03,22.40,22.25,22.64, 22.48,22.47,22.59,22.77,22.92,22.95,22.83,23.20,23.30,23.21, 23.36,23.41,23.54,23.82,23.88,24.03,23.84,24.18,24.00,24.19, 24.39,24.27,24.33,24.42,24.64,24.52,24.83,24.69,24.88,25.04, 25.24,25.17,25.14,25.50,25.62,25.45,25.61,25.86,25.93,25.94, 4.19,4.57,4.90,5.29,5.67,5.98,6.44,6.78,7.14,7.49, 7.98,8.28,8.70,9.03,9.51,9.86,10.11,10.50,10.95,11.35, 11.69,12.05,12.49,12.76,13.27,13.63,14.10,14.23,14.74,15.13, 15.58,15.83,16.16,16.64,16.99,17.33,17.69,18.20,18.45,19.01, 19.35,19.76,19.96,20.33,20.75,21.11,21.48,21.75,22.13,22.67, 22.89,23.39,23.68,24.12,24.51,25.06,25.26,25.59,25.93,26.51, 26.73,27.10,27.42,27.95,28.38,28.67,29.09,29.43,29.76,30.18, 30.52,31.06,31.19,31.70,31.97,32.56,32.79,33.11,33.48,33.89, 34.41,34.69,35.05,35.57,35.80,36.22,36.60,37.02,37.55,38.04, 38.19,38.38,38.89,39.32,39.88,40.21,40.27,40.87,41.20,41.28, 41.83,42.43,42.83,42.88,43.55,43.67,44.09,44.65,44.84,45.18, 45.75,45.97,46.41,46.82,46.98,47.53,47.98,48.31,48.70,49.34, 49.32,49.79,50.27,50.78,50.74,51.13,51.66,52.31,52.68,52.80, 53.12,53.60,53.88,54.60,54.48,55.08,55.55,55.85,56.33,56.69, 57.13,57.16,57.83,58.33,58.51,58.84,59.33,59.63,60.02,60.37, 60.81,61.25,61.35,61.80,62.07,62.70,63.13,63.18,63.81,64.00, 64.54,65.04,65.23,65.52,65.88,66.42,66.78,66.92,67.20,67.83, 68.37,68.69,69.25,69.38,69.92,70.34,70.61,71.09,71.36,71.77, 72.23,72.50,72.72,73.46,73.63,73.87,74.36,74.78,74.94,75.43, 75.82,76.44,76.56,76.92,77.49,77.75,78.27,78.23,78.85,79.24, 79.56,80.16,80.33,80.76,81.24,81.47,81.71,82.50,82.69,83.10, 83.34,83.91,84.37,84.76,85.17,85.48,85.62,86.17,86.20,86.84, 87.22,87.31,88.06,88.31,88.49,88.81,89.30,89.95,90.36,90.48, 90.97,91.30,91.53,92.14,92.24,92.79,93.27,93.79,93.78,94.31, 94.84,94.98,95.44,95.99,96.29,96.56,97.00,97.29,97.39,98.27, 98.56,98.81,99.09,99.72,99.76,100.40,100.83,100.96,101.89,101.96, 102.39,102.56,103.18,103.34,103.80,104.04,104.37,105.00,105.14,105.69, 105.80,106.14,107.07,107.32,107.51,107.77,108.25,108.47,109.12,109.53, 109.99,110.06,110.68,110.79,111.56,111.80,112.05,112.32,112.95,113.54, 3.77,4.11,4.47,4.78,5.21,5.50,5.79,6.09,6.55,6.90, 7.27,7.62,7.97,8.24,8.64,8.81,9.30,9.57,9.90,10.28, 10.58,10.97,11.31,11.70,12.04,12.40,12.65,13.13,13.44,13.73, 13.98,14.44,14.84,15.16,15.57,15.84,16.23,16.60,16.69,17.17, 17.45,17.75,18.22,18.45,18.82,19.29,19.50,19.82,20.34,20.72, 20.96,21.38,21.70,21.92,22.33,22.84,23.17,23.35,23.67,24.02, 24.38,24.72,25.05,25.30,25.79,26.14,26.54,26.76,27.14,27.46, 27.65,28.29,28.61,28.80,29.23,29.57,29.72,30.15,30.66,30.88, 31.28,31.52,31.93,32.29,32.62,32.94,33.36,33.64,34.06,34.28, 34.67,35.03,35.32,35.55,36.07,36.50,36.72,37.19,37.46,37.80, 38.16,38.63,38.90,39.25,39.41,39.73,40.16,40.59,40.83,41.32, 41.61,41.90,42.20,42.46,42.92,43.18,43.62,44.14,44.22,44.40, 44.97,45.24,45.61,45.91,46.47,46.73,47.11,47.54,47.62,48.02, 48.40,48.72,49.20,49.52,49.76,50.12,50.55,50.79,51.13,51.35, 51.91,52.36,52.52,52.89,53.16,53.77,53.81,54.32,54.41,54.87, 55.26,55.58,55.82,56.31,56.67,56.88,57.24,57.96,57.97,58.32, 58.64,58.95,59.18,59.75,60.14,60.45,60.96,61.10,61.24,61.80, 62.38,62.44,62.71,63.33,63.41,64.16,64.33,64.29,64.83,65.42, 65.76,65.92,66.25,66.35,66.87,67.33,67.60,68.08,68.40,68.77, 69.26,69.43,69.63,69.88,70.50,70.76,71.05,71.40,71.70,72.28, 72.44,72.80,73.30,73.41,73.87,74.31,74.61,74.89,75.09,75.40, 76.08,76.16,76.49,76.87,77.24,77.65,77.97,78.17,79.07,79.04, 79.38,79.80,79.79,80.35,80.67,80.99,81.42,81.79,82.12,82.28, 83.03,82.99,83.38,83.92,83.92,84.40,84.87,85.02,85.43,85.87, 86.19,86.43,86.89,87.16,87.60,87.99,88.27,88.56,88.83,89.29, 89.98,89.92,90.42,90.65,90.98,91.46,91.64,92.14,92.17,92.73, 93.06,93.38,93.56,94.23,94.64,94.87,95.50,95.33,95.89,96.19, 96.50,96.62,97.43,97.31,97.75,98.16,98.60,98.89,99.39,99.72, 100.25,100.10,100.40,100.89,101.17,101.92,101.72,102.43,102.64,103.14, 3.46,3.73,4.08,4.36,4.71,4.94,5.30,5.62,6.04,6.18, 6.51,6.84,7.12,7.50,7.80,8.12,8.50,8.79,9.12,9.38, 9.73,9.96,10.27,10.45,10.97,11.14,11.52,11.92,12.12,12.60, 12.67,13.18,13.46,13.75,14.10,14.42,14.70,15.10,15.41,15.62, 15.94,16.18,16.61,16.92,17.24,17.40,17.85,18.14,18.43,18.80, 19.06,19.47,19.64,20.14,20.38,20.56,20.89,21.16,21.65,21.85, 22.15,22.53,22.83,23.22,23.52,23.79,24.00,24.33,24.75,24.94, 25.35,25.54,25.98,26.22,26.61,26.79,27.27,27.50,27.86,28.10, 28.38,28.91,29.16,29.35,29.66,29.94,30.32,30.64,30.80,31.18, 31.46,31.84,32.05,32.49,32.87,33.06,33.53,33.84,34.27,34.36, 34.77,35.07,35.40,35.55,35.98,36.09,36.61,36.85,37.19,37.51, 37.91,38.11,38.66,38.66,38.97,39.58,39.65,39.79,40.34,40.62, 40.88,41.43,41.73,41.91,42.12,42.55,42.63,43.15,43.56,43.79, 44.00,44.40,44.62,45.06,45.41,45.65,46.02,46.18,46.81,46.94, 47.21,47.51,47.63,48.06,48.40,48.89,49.12,49.44,49.59,49.91, 50.38,50.58,51.06,51.26,51.75,51.85,52.28,52.47,52.80,53.25, 53.41,53.77,53.91,54.46,54.64,54.95,55.06,55.68,56.01,56.38, 56.48,57.17,57.28,57.35,57.95,58.06,58.53,58.63,59.05,59.40, 59.71,59.95,60.23,60.39,60.98,61.37,61.69,61.72,62.13,62.57, 62.90,63.27,63.25,63.69,64.20,64.45,64.77,64.92,65.20,65.65, 65.97,66.26,66.61,67.00,67.28,67.32,67.97,67.98,68.47,68.97, 68.92,69.43,69.65,69.82,70.36,70.71,71.01,71.12,71.96,72.24, 72.07,72.21,72.55,73.23,73.42,73.64,74.02,74.47,74.86,74.95, 75.39,75.70,75.85,76.29,76.65,77.11,77.13,77.37,77.78,78.03, 78.16,78.71,79.22,79.42,79.69,79.96,80.46,80.59,80.98,81.33, 81.39,82.04,82.01,82.74,82.93,83.13,83.67,83.55,84.10,84.40, 84.65,85.04,85.42,85.93,85.94,86.73,86.57,86.89,87.53,87.41, 87.66,88.04,88.27,88.80,89.11,89.45,89.65,89.86,90.07,90.58, 90.75,91.29,91.35,91.69,92.35,92.53,92.88,92.99,93.45,93.67, 3.16,3.44,3.68,3.95,4.24,4.55,4.84,5.11,5.40,5.71, 6.01,6.19,6.62,6.82,7.09,7.42,7.64,7.98,8.25,8.52, 8.80,9.16,9.33,9.61,9.87,10.17,10.54,10.82,11.13,11.37, 11.69,11.95,12.24,12.40,12.71,13.07,13.32,13.68,13.91,14.20, 14.44,14.81,15.09,15.45,15.71,15.97,16.15,16.49,16.78,17.07, 17.34,17.69,17.97,18.34,18.53,18.82,19.11,19.40,19.54,19.84, 20.16,20.50,20.74,20.97,21.31,21.70,22.03,22.30,22.43,22.78, 23.05,23.24,23.57,23.86,24.31,24.36,24.65,24.94,25.36,25.66, 26.00,25.99,26.54,26.75,27.07,27.22,27.65,27.86,28.16,28.27, 28.50,28.99,29.27,29.54,29.72,30.18,30.54,30.87,31.15,31.26, 31.77,31.89,32.13,32.58,32.55,33.01,33.38,33.53,33.71,34.03, 34.38,34.54,34.91,35.34,35.44,35.69,36.26,36.34,36.91,36.86, 37.35,37.66,37.79,38.17,38.25,38.65,38.89,39.42,39.51,39.78, 40.19,40.22,40.60,40.95,41.21,41.58,42.00,42.14,42.40,42.71, 42.87,43.27,43.35,43.81,44.01,44.50,44.61,44.88,45.13,45.41, 45.83,46.17,46.34,46.85,46.99,47.17,47.53,47.86,48.12,48.37, 48.72,48.99,49.10,49.32,49.63,50.03,50.56,50.55,50.80,51.17, 51.37,51.79,52.07,52.41,52.57,53.05,53.05,53.37,53.77,54.05, 54.39,54.55,54.87,54.94,55.44,55.85,56.06,56.28,56.45,56.83, 56.92,57.43,57.51,58.21,58.37,58.56,58.77,59.31,59.55,59.72, 60.24,60.36,60.43,60.84,61.19,61.38,61.38,62.20,62.42,62.52, 62.59,63.05,63.38,63.54,64.05,64.12,64.59,64.79,64.99,65.70, 65.79,65.85,66.36,66.66,66.87,67.21,67.47,67.86,67.79,68.36, 68.62,68.93,68.94,69.64,69.72,70.23,70.31,70.59,70.87,71.01, 71.16,71.57,71.88,72.41,72.57,72.54,72.98,73.45,73.96,73.90, 74.22,74.74,74.70,75.03,75.27,75.73,75.98,76.14,76.30,76.99, 76.72,77.41,77.67,78.02,78.10,78.27,78.89,79.05,79.70,79.56, 79.93,80.12,80.64,80.77,81.15,81.35,81.49,81.78,82.46,82.70, 82.75,83.07,83.19,83.64,84.06,84.00,84.60,84.86,84.79,85.43, 2.85,3.18,3.33,3.66,3.84,4.27,4.38,4.62,4.89,5.25, 5.49,5.72,5.98,6.21,6.46,6.67,6.94,7.19,7.52,7.69, 7.98,8.33,8.56,8.73,9.13,9.44,9.63,9.88,10.03,10.41, 10.56,10.91,11.14,11.43,11.62,11.90,12.22,12.41,12.71,13.01, 13.16,13.40,13.69,13.95,14.22,14.51,14.82,15.02,15.24,15.51, 15.69,16.15,16.28,16.56,16.91,17.07,17.27,17.44,17.78,18.14, 18.36,18.68,18.99,19.07,19.40,19.68,19.95,19.97,20.35,20.72, 21.05,21.18,21.49,21.73,21.99,22.22,22.56,22.71,23.05,23.30, 23.50,23.79,24.05,24.36,24.49,24.92,25.01,25.42,25.55,25.88, 25.96,26.16,26.64,26.89,27.19,27.35,27.74,28.03,28.19,28.50, 28.59,28.92,29.14,29.51,29.82,30.06,30.21,30.44,30.78,30.98, 31.55,31.54,31.90,31.99,32.46,32.53,32.74,33.24,33.38,33.65, 33.83,34.12,34.38,34.85,34.95,35.43,35.56,35.73,35.97,36.38, 36.40,36.65,36.85,37.23,37.61,37.66,37.97,38.33,38.49,38.84, 39.02,39.39,39.54,40.01,40.05,40.37,40.85,40.92,41.15,41.42, 41.48,41.80,42.23,42.53,42.69,43.26,43.35,43.27,43.72,44.10, 44.31,44.62,44.85,44.73,45.35,45.46,45.95,46.14,46.27,46.60, 46.79,47.08,47.50,47.57,47.78,48.18,48.17,48.99,49.09,49.23, 49.44,49.83,49.92,50.16,50.56,50.63,51.20,51.19,51.67,51.78, 51.83,52.22,52.48,52.89,52.93,53.25,53.76,53.91,53.97,54.41, 54.60,54.72,54.99,55.32,55.55,55.75,56.21,56.52,56.73,56.82, 57.15,57.28,57.71,57.87,58.09,58.58,58.70,58.95,59.31,59.58, 59.80,59.99,60.32,60.42,60.79,61.26,61.45,61.79,61.80,61.97, 62.12,62.71,62.83,63.01,63.43,63.82,63.88,64.07,64.45,64.47, 64.92,65.31,65.31,65.56,65.97,66.49,66.65,66.70,67.05,67.67, 67.61,67.76,68.23,68.31,68.64,68.54,69.15,69.56,69.53,69.69, 70.34,70.54,70.62,71.02,71.05,71.46,71.65,72.09,72.17,72.73, 73.00,73.04,73.31,73.64,73.64,74.15,74.28,74.61,74.78,75.01, 75.28,75.81,75.76,76.06,76.38,76.67,76.70,77.14,77.57,77.60, 2.57,2.83,3.02,3.36,3.56,3.76,4.07,4.16,4.49,4.69, 4.91,5.19,5.48,5.66,5.92,6.13,6.29,6.54,6.83,7.18, 7.31,7.59,7.72,7.98,8.26,8.34,8.78,8.93,9.09,9.40, 9.61,9.91,10.14,10.31,10.68,10.86,11.01,11.38,11.55,11.79, 12.03,12.28,12.53,12.69,12.90,13.17,13.50,13.62,13.88,14.12, 14.34,14.65,14.86,15.05,15.22,15.48,15.82,16.01,16.26,16.55, 16.67,17.08,17.12,17.45,17.81,17.82,18.10,18.44,18.66,18.77, 18.99,19.15,19.50,19.70,20.04,20.18,20.51,20.65,20.88,21.35, 21.53,21.68,21.89,22.11,22.30,22.60,22.90,22.99,23.12,23.51, 23.90,24.14,24.15,24.44,24.69,25.14,25.26,25.43,25.65,25.98, 26.19,26.43,26.69,26.95,27.14,27.31,27.83,27.78,28.14,28.38, 28.46,28.64,28.83,29.28,29.45,29.74,29.88,30.18,30.41,30.58, 30.80,31.12,31.32,31.69,31.79,32.00,32.21,32.42,32.86,33.16, 33.34,33.43,33.77,33.91,34.11,34.28,34.71,34.81,35.13,35.27, 35.50,35.90,36.19,36.24,36.62,36.84,36.91,37.12,37.41,37.84, 37.84,38.13,38.47,38.56,38.80,39.11,39.41,39.48,39.96,40.07, 40.18,40.55,40.79,41.23,41.40,41.64,41.63,41.97,42.01,42.46, 42.80,42.82,43.01,43.34,43.73,43.94,43.98,44.47,44.40,44.70, 44.99,45.31,45.35,45.72,45.96,46.40,46.31,46.90,46.88,47.10, 47.50,47.45,47.79,47.84,48.34,48.50,48.82,48.88,49.45,49.26, 49.73,49.82,50.06,50.32,50.53,50.62,51.25,51.21,51.59,51.83, 52.01,52.03,52.53,52.62,53.15,53.20,53.26,53.67,53.89,54.12, 54.43,54.71,54.76,55.08,55.20,55.55,55.87,56.03,56.25,56.60, 56.82,56.91,57.22,57.55,57.84,58.24,58.03,58.28,58.70,58.84, 59.02,59.43,59.43,59.90,59.86,60.17,60.36,60.76,61.08,61.28, 61.56,61.70,62.03,61.88,62.34,63.02,63.09,63.31,63.29,63.39, 63.94,64.08,64.35,64.89,64.56,65.11,65.35,65.43,65.76,66.08, 66.48,66.38,66.67,66.88,67.18,67.26,67.36,67.65,68.18,68.30, 68.49,68.58,69.14,69.23,69.22,69.79,69.95,70.07,70.42,70.51, 2.38,2.56,2.80,3.04,3.25,3.48,3.65,3.88,4.03,4.28, 4.52,4.74,4.93,5.16,5.28,5.55,5.71,5.98,6.18,6.38, 6.55,6.84,7.02,7.21,7.39,7.76,7.94,8.07,8.42,8.64, 8.85,8.94,9.17,9.41,9.71,9.99,10.15,10.19,10.58,10.66, 10.90,11.14,11.34,11.59,11.83,12.01,12.10,12.35,12.61,12.83, 13.17,13.26,13.51,13.76,13.85,14.24,14.34,14.52,14.75,15.08, 15.11,15.30,15.69,15.94,16.02,16.36,16.51,16.79,16.98,17.11, 17.45,17.52,17.76,18.10,18.22,18.48,18.63,18.94,19.08,19.18, 19.51,19.65,19.89,20.15,20.32,20.62,20.69,21.06,21.23,21.34, 21.53,21.84,22.31,22.27,22.51,22.68,23.05,23.16,23.41,23.62, 23.74,23.84,24.04,24.39,24.55,24.86,25.25,25.35,25.51,25.61, 25.90,26.08,26.27,26.57,26.85,27.02,27.21,27.52,27.67,27.96, 28.02,28.40,28.48,28.78,28.91,29.16,29.40,29.55,29.82,30.04, 30.18,30.24,30.80,30.84,30.99,31.26,31.36,31.83,31.72,32.09, 32.51,32.48,32.85,33.08,33.11,33.32,33.58,33.73,34.06,34.14, 34.36,34.86,34.86,35.38,35.40,35.53,35.86,36.03,36.07,36.45, 36.63,36.89,37.16,37.32,37.66,37.66,38.02,38.12,38.46,38.53, 38.71,39.16,39.38,39.51,39.64,39.70,40.23,40.32,40.46,40.84, 41.02,40.98,41.50,41.63,41.82,41.94,42.17,42.48,42.60,42.66, 43.20,43.28,43.38,43.92,43.68,44.21,44.47,44.71,44.79,44.97, 45.25,45.48,45.58,45.82,45.95,46.26,46.66,46.88,46.80,47.20, 47.15,47.48,48.01,47.92,48.37,48.45,48.65,48.70,49.00,49.40, 49.88,49.72,50.00,50.16,50.27,50.60,50.71,51.04,51.25,51.23, 51.73,52.02,52.01,52.33,52.54,52.81,52.88,53.20,53.46,53.36, 53.65,54.01,54.22,54.39,54.67,54.83,54.94,55.30,55.40,55.76, 56.14,56.16,56.04,56.65,56.77,56.95,57.15,57.32,57.54,57.51, 58.14,58.19,58.48,58.63,59.05,59.24,59.45,59.43,59.81,60.15, 60.45,60.52,60.83,60.79,61.01,61.27,61.54,61.82,61.84,62.12, 62.49,62.43,62.81,62.79,63.45,63.39,63.54,64.32,64.23,64.29, 2.12,2.34,2.55,2.78,3.02,3.12,3.29,3.44,3.69,3.90, 4.13,4.36,4.54,4.62,4.89,5.08,5.24,5.47,5.67,5.88, 6.11,6.31,6.47,6.62,6.83,6.93,7.20,7.54,7.62,7.80, 8.09,8.20,8.30,8.50,8.83,8.97,9.27,9.48,9.57,9.75, 9.96,10.10,10.32,10.54,10.74,10.86,11.10,11.42,11.49,11.76, 11.84,11.98,12.29,12.53,12.74,12.87,13.14,13.23,13.45,13.60, 13.75,14.01,14.26,14.49,14.53,14.88,14.91,15.23,15.36,15.74, 15.75,15.88,16.13,16.32,16.41,16.89,16.96,17.22,17.37,17.42, 17.68,18.00,18.02,18.37,18.52,18.70,18.76,19.12,19.31,19.41, 19.74,19.81,19.95,20.20,20.47,20.73,20.99,21.01,21.13,21.52, 21.74,21.84,22.08,22.17,22.33,22.60,22.88,23.09,23.22,23.48, 23.62,23.77,23.99,24.08,24.32,24.62,24.83,25.09,24.95,25.41, 25.48,25.71,25.77,26.23,26.46,26.58,26.67,26.89,27.01,27.42, 27.52,27.65,27.96,28.12,28.23,28.50,28.71,28.82,29.07,29.24, 29.40,29.60,30.05,30.15,30.12,30.36,30.68,30.80,30.89,31.31, 31.43,31.65,31.78,32.00,32.12,32.32,32.68,32.84,33.13,33.05, 33.40,33.51,33.74,33.71,33.93,34.44,34.50,34.73,34.91,35.17, 35.36,35.62,35.78,36.04,36.26,36.38,36.55,36.62,36.95,37.17, 37.18,37.39,37.68,37.91,38.37,38.35,38.35,38.52,38.83,38.89, 39.28,39.45,39.83,39.75,39.95,40.16,40.40,40.54,40.79,40.90, 41.21,41.28,41.57,41.79,41.84,41.94,42.22,42.66,42.93,43.12, 42.98,43.42,43.79,43.81,43.92,44.07,44.44,44.57,44.61,44.89, 45.03,45.37,45.37,45.55,45.81,45.91,46.17,46.21,46.60,46.70, 46.94,47.38,47.48,47.81,47.75,47.76,48.20,48.26,48.62,48.46, 49.02,49.24,49.27,49.54,49.92,49.91,50.03,50.40,50.34,50.74, 51.01,51.23,51.05,51.66,51.74,51.80,52.23,52.30,52.38,52.57, 52.63,53.00,53.45,53.61,53.47,54.05,53.92,53.92,54.47,54.68, 54.93,55.20,55.20,55.35,55.56,55.75,56.08,55.96,56.55,56.65, 56.80,57.06,57.30,57.46,57.33,57.60,57.97,58.17,58.31,58.41, 1.98,2.10,2.33,2.53,2.64,2.84,3.01,3.17,3.37,3.56, 3.75,3.87,4.12,4.25,4.42,4.68,4.78,5.00,5.12,5.39, 5.57,5.72,5.83,6.01,6.26,6.38,6.61,6.84,6.99,7.01, 7.29,7.45,7.65,7.74,8.00,8.11,8.35,8.48,8.73,8.77, 9.04,9.30,9.23,9.61,9.79,9.90,10.14,10.22,10.49,10.64, 10.85,11.05,11.21,11.40,11.63,11.71,11.93,12.09,12.29,12.36, 12.57,12.89,12.99,13.08,13.30,13.42,13.59,13.84,14.04,14.23, 14.38,14.54,14.85,14.91,15.05,15.31,15.54,15.71,15.77,15.92, 16.22,16.31,16.42,16.54,16.75,16.98,17.22,17.27,17.50,17.74, 17.91,18.24,18.41,18.61,18.63,18.79,18.96,19.17,19.24,19.51, 19.64,19.74,20.03,20.16,20.44,20.68,20.73,21.16,21.19,21.29, 21.55,21.69,21.84,21.97,22.14,22.36,22.59,22.79,23.13,22.97, 23.13,23.54,23.66,23.77,23.93,24.12,24.42,24.39,24.92,24.75, 24.95,25.10,25.30,25.59,25.48,26.03,26.05,26.15,26.39,26.59, 26.78,26.92,27.07,27.17,27.46,27.72,27.63,28.02,28.09,28.36, 28.78,28.76,28.96,28.94,29.41,29.26,29.73,29.73,29.90,30.46, 30.32,30.38,30.71,30.72,31.01,31.27,31.55,31.54,31.53,31.99, 32.07,32.08,32.72,32.66,32.73,33.02,33.10,33.25,33.53,33.63, 33.85,34.05,34.21,34.53,34.68,34.77,34.55,35.16,35.33,35.41, 35.68,35.73,36.00,35.91,36.22,36.68,36.98,36.99,37.34,37.10, 37.32,37.77,37.76,37.98,38.31,38.45,38.29,38.77,38.87,38.92, 39.46,39.19,39.53,39.62,40.00,40.02,40.45,40.37,40.85,40.80, 40.88,40.87,41.39,41.57,41.77,41.88,42.10,42.10,42.50,42.55, 42.94,42.99,43.39,43.33,43.61,43.50,43.61,44.10,44.24,44.20, 44.44,44.64,44.80,45.07,45.23,45.44,45.65,45.87,46.15,46.24, 46.50,46.52,46.73,46.93,47.06,47.14,47.54,47.49,47.76,47.95, 48.27,48.34,48.42,48.49,48.74,49.23,49.27,49.32,49.41,49.55, 50.01,49.98,50.40,50.57,50.59,50.85,50.88,51.00,51.22,51.42, 51.70,52.03,52.25,52.19,52.29,52.60,52.67,52.84,52.82,53.32, 1.80,2.00,2.07,2.26,2.45,2.58,2.79,2.96,3.02,3.19, 3.45,3.53,3.79,3.87,4.02,4.25,4.38,4.60,4.64,4.88, 5.02,5.16,5.34,5.54,5.63,5.72,5.97,6.17,6.37,6.55, 6.61,6.79,6.94,7.12,7.20,7.47,7.52,7.65,7.92,8.05, 8.20,8.46,8.57,8.70,8.91,9.01,9.21,9.45,9.54,9.71, 9.86,10.14,10.26,10.27,10.50,10.61,10.89,11.04,11.09,11.15, 11.35,11.69,11.74,11.96,12.09,12.31,12.43,12.66,12.68,12.90, 13.10,13.19,13.41,13.52,13.71,13.93,14.02,14.29,14.30,14.62, 14.65,14.92,14.98,15.10,15.25,15.51,15.65,15.74,15.90,16.18, 16.38,16.52,16.48,16.78,17.06,17.00,17.22,17.37,17.71,17.58, 17.96,18.10,18.28,18.55,18.73,18.68,19.02,18.99,19.35,19.41, 19.54,19.61,19.71,19.81,20.14,20.46,20.50,20.74,20.75,21.07, 21.27,21.39,21.58,21.57,21.67,22.05,22.17,22.25,22.43,22.54, 22.59,23.08,23.08,23.24,23.36,23.66,23.79,23.96,23.80,24.12, 24.51,24.57,24.61,24.62,24.88,25.06,25.21,25.60,25.83,25.74, 26.09,26.13,26.38,26.59,26.61,26.98,27.02,27.12,27.25,27.33, 27.46,27.66,27.81,28.27,28.16,28.34,28.61,28.80,28.90,29.18, 29.33,29.40,29.56,29.82,29.96,30.09,30.10,30.39,30.48,30.83, 30.92,31.01,31.14,31.07,31.59,31.76,31.76,31.99,32.29,32.37, 32.52,32.67,32.87,32.99,33.19,33.38,33.39,33.53,33.95,33.90, 34.14,34.20,34.53,34.59,34.81,34.72,35.20,35.11,35.48,35.48, 35.69,35.70,36.10,36.20,36.34,36.43,36.70,36.75,37.06,37.19, 37.13,37.44,37.41,37.72,37.67,37.92,38.21,38.49,38.54,38.73, 38.99,39.03,39.02,39.30,39.53,39.81,39.80,39.72,40.27,40.31, 40.54,40.90,40.95,40.98,41.23,41.36,41.55,41.65,41.75,41.99, 42.01,42.27,42.57,42.58,42.79,42.72,43.43,43.38,43.48,43.76, 43.85,44.23,44.21,44.10,44.22,44.56,45.10,44.98,45.04,45.42, 45.49,45.77,45.93,45.80,46.05,46.07,46.18,46.52,46.83,46.75, 47.02,47.21,47.42,47.44,47.63,47.87,48.10,48.15,48.16,48.49, 1.62,1.78,1.91,2.05,2.25,2.41,2.49,2.66,2.79,2.94, 3.03,3.23,3.36,3.51,3.64,3.76,4.01,4.09,4.36,4.46, 4.53,4.74,4.88,5.05,5.00,5.30,5.50,5.61,5.73,5.86, 6.02,6.18,6.29,6.49,6.66,6.68,6.87,7.06,7.15,7.37, 7.36,7.73,7.78,7.88,8.11,8.26,8.28,8.60,8.70,8.73, 9.02,9.18,9.28,9.31,9.55,9.74,9.74,9.99,10.13,10.34, 10.44,10.66,10.62,10.87,10.95,11.19,11.40,11.46,11.61,11.71, 11.96,12.02,12.20,12.44,12.46,12.70,12.88,12.86,13.15,13.29, 13.46,13.70,13.73,13.78,14.12,14.22,14.28,14.45,14.44,14.69, 14.86,15.06,15.28,15.22,15.36,15.51,15.96,15.92,16.00,16.26, 16.46,16.57,16.69,16.92,16.83,17.06,17.14,17.43,17.63,17.72, 17.65,17.95,18.11,18.07,18.33,18.52,18.69,18.70,18.84,18.94, 19.13,19.39,19.65,19.66,19.72,20.06,20.15,20.32,20.46,20.59, 20.71,20.78,20.97,21.18,21.25,21.35,21.67,21.73,21.93,22.06, 22.14,22.27,22.57,22.71,22.91,22.96,23.33,23.19,23.19,23.34, 23.62,23.75,23.93,24.38,24.15,24.38,24.62,24.77,24.91,24.77, 25.24,25.28,25.47,25.63,25.81,26.16,25.97,26.05,26.17,26.52, 26.54,27.00,26.77,27.04,27.02,27.26,27.48,27.60,27.88,27.86, 28.20,28.24,28.27,28.61,28.48,28.75,28.75,29.05,29.33,29.31, 29.56,29.70,29.61,29.96,30.28,30.14,30.51,30.45,30.49,30.97, 30.92,31.00,31.04,31.64,31.88,31.70,31.95,32.14,32.16,32.35, 32.51,32.62,32.78,32.95,32.97,33.28,33.27,33.68,33.57,33.75, 33.96,34.03,34.28,34.41,34.47,34.95,34.80,34.88,35.02,35.32, 35.38,35.79,35.62,35.86,36.02,36.23,36.15,36.47,36.32,36.89, 36.87,36.97,37.55,37.33,37.70,37.56,37.75,38.28,38.07,38.26, 38.37,38.44,38.81,38.78,38.84,39.18,39.36,39.35,39.64,39.57, 39.86,39.91,40.05,40.21,40.31,40.76,40.60,40.80,41.02,41.26, 41.25,41.53,41.54,41.65,41.77,41.90,42.02,42.07,42.38,42.63, 42.86,42.91,43.19,42.94,43.17,43.49,43.76,43.86,43.66,44.02, 1.46,1.62,1.76,1.91,2.03,2.10,2.29,2.35,2.54,2.74, 2.84,2.91,3.09,3.28,3.30,3.46,3.68,3.71,3.87,4.01, 4.10,4.28,4.44,4.58,4.67,4.75,4.90,5.02,5.31,5.32, 5.54,5.62,5.73,6.04,6.06,6.20,6.32,6.43,6.58,6.66, 6.76,6.97,7.07,7.22,7.33,7.46,7.61,7.81,7.86,8.00, 8.13,8.36,8.38,8.47,8.78,8.72,8.93,9.16,9.09,9.41, 9.46,9.71,9.68,9.91,10.04,10.16,10.22,10.44,10.56,10.63, 10.80,10.93,11.18,11.22,11.53,11.55,11.54,11.85,11.93,12.03, 12.18,12.18,12.38,12.57,12.72,12.65,13.00,13.10,13.21,13.44, 13.64,13.58,13.82,13.87,14.12,14.22,14.20,14.31,14.44,14.71, 14.79,14.91,15.11,15.18,15.49,15.49,15.75,15.73,15.97,16.00, 16.20,16.40,16.28,16.58,16.51,16.81,17.09,17.20,17.37,17.48, 17.38,17.65,17.70,17.94,18.12,18.10,18.25,18.46,18.51,18.73, 18.79,19.05,19.21,19.32,19.32,19.69,19.73,19.87,19.95,20.18, 20.03,20.42,20.32,20.66,20.80,21.04,21.00,21.25,21.38,21.59, 21.63,21.68,21.86,21.85,22.14,22.18,22.45,22.46,22.63,22.88, 22.92,22.91,23.32,23.36,23.54,23.58,23.68,23.68,24.01,24.16, 24.28,24.40,24.52,24.63,24.84,24.83,24.93,25.14,25.25,25.39, 25.45,25.60,25.82,26.09,26.25,26.32,26.29,26.69,26.73,26.71, 26.70,26.98,27.11,27.13,27.65,27.47,27.57,27.79,27.80,27.95, 28.20,28.31,28.43,28.41,28.63,28.85,29.02,29.08,29.19,29.48, 29.53,29.86,29.79,30.10,30.13,30.16,30.34,30.38,30.68,30.81, 30.86,31.00,31.16,31.34,31.43,31.61,31.86,31.77,32.06,32.14, 32.13,32.44,32.64,32.67,32.91,32.92,33.19,33.03,33.19,33.08, 33.45,33.73,33.66,33.78,34.09,34.15,34.40,34.33,34.60,34.54, 34.84,34.89,35.13,35.34,35.46,35.44,35.65,35.81,35.93,36.31, 36.05,36.45,36.49,36.67,36.74,36.87,37.05,37.27,37.16,37.60, 37.52,37.82,37.51,37.98,37.94,38.17,38.32,38.46,38.71,38.82, 39.02,39.20,39.28,39.53,39.30,39.46,39.88,39.79,40.22,40.08, 1.32,1.46,1.61,1.69,1.80,1.96,2.09,2.25,2.34,2.40, 2.59,2.69,2.78,2.85,3.02,3.16,3.22,3.32,3.51,3.67, 3.71,3.85,4.02,4.11,4.23,4.39,4.45,4.64,4.68,4.92, 4.97,5.20,5.28,5.39,5.44,5.57,5.70,5.80,5.91,5.93, 6.23,6.42,6.44,6.54,6.72,6.85,6.97,7.09,7.21,7.27, 7.36,7.52,7.66,7.80,7.84,8.09,8.19,8.12,8.37,8.54, 8.70,8.75,8.83,9.02,9.10,9.21,9.36,9.53,9.60,9.71, 9.87,9.91,10.14,10.23,10.40,10.38,10.56,10.76,10.85,11.02, 11.04,11.27,11.25,11.46,11.43,11.67,11.78,11.91,12.21,12.16, 12.30,12.47,12.64,12.67,12.78,12.94,12.88,13.13,13.25,13.34, 13.52,13.55,13.79,13.84,14.10,14.26,14.31,14.29,14.38,14.59, 14.68,14.84,14.94,15.07,15.17,15.39,15.43,15.53,15.63,15.85, 15.92,15.99,16.18,16.44,16.41,16.58,16.91,16.78,16.86,17.06, 17.17,17.38,17.48,17.62,17.77,17.70,17.81,18.05,17.98,18.19, 18.41,18.48,18.51,18.56,18.90,18.91,19.02,19.18,19.26,19.53, 19.44,19.77,19.73,19.95,19.91,20.15,20.44,20.43,20.58,20.53, 20.80,20.95,21.07,21.11,21.26,21.44,21.45,21.56,21.70,21.78, 22.03,22.14,22.29,22.57,22.45,22.62,22.83,22.74,23.07,23.29, 23.30,23.33,23.44,23.69,23.79,23.90,24.05,24.09,24.21,24.13, 24.48,24.57,24.80,24.83,24.87,25.14,25.12,25.29,25.34,25.53, 25.93,25.90,25.85,25.97,26.34,26.32,26.35,26.75,26.55,26.82, 26.86,26.97,27.25,27.34,27.28,27.69,27.68,27.88,27.91,28.16, 27.92,28.10,28.34,28.56,28.85,28.68,28.69,28.91,28.92,29.00, 29.38,29.47,29.46,29.76,29.88,29.95,30.11,30.06,30.36,30.22, 30.57,30.36,30.96,30.80,31.06,31.26,31.25,31.53,31.50,31.69, 31.86,31.81,32.04,32.16,32.18,32.49,32.60,32.62,32.86,32.63, 32.99,33.26,33.35,33.29,33.25,33.71,33.52,33.99,33.96,34.15, 34.11,34.21,34.49,34.36,34.66,34.62,34.95,34.96,35.08,35.26, 35.39,35.55,35.76,35.71,35.81,36.06,36.15,36.21,36.61,36.61, 1.20,1.36,1.47,1.60,1.67,1.75,1.92,2.00,2.09,2.24, 2.35,2.46,2.53,2.63,2.80,2.83,3.04,3.06,3.13,3.29, 3.45,3.54,3.66,3.74,3.91,3.93,4.15,4.27,4.33,4.36, 4.55,4.74,4.69,4.86,4.95,5.14,5.31,5.25,5.42,5.61, 5.69,5.80,5.96,6.04,6.06,6.10,6.34,6.45,6.44,6.73, 6.81,6.89,6.97,7.08,7.26,7.31,7.46,7.60,7.59,7.78, 7.77,7.91,8.12,8.18,8.34,8.59,8.41,8.60,8.79,8.89, 8.88,9.14,9.21,9.17,9.38,9.51,9.49,9.74,9.82,10.00, 10.06,10.22,10.32,10.51,10.57,10.65,10.66,10.72,10.91,11.04, 11.33,11.34,11.54,11.50,11.66,11.65,11.81,11.93,12.15,12.09, 12.18,12.26,12.62,12.72,12.74,12.83,12.95,13.18,13.11,13.28, 13.31,13.54,13.56,13.72,13.96,13.99,14.13,14.23,14.35,14.45, 14.59,14.51,14.88,14.94,14.89,15.23,15.17,15.22,15.52,15.55, 15.57,15.63,15.78,15.98,16.11,16.27,16.46,16.27,16.54,16.70, 16.70,16.69,17.05,17.19,17.04,17.28,17.30,17.50,17.68,17.77, 17.88,18.01,18.07,18.23,18.05,18.55,18.47,18.61,18.70,18.72, 18.92,18.98,19.04,19.26,19.60,19.61,19.64,19.65,20.04,19.78, 20.01,20.16,20.33,20.34,20.56,20.54,20.65,20.92,20.95,21.20, 21.14,21.36,21.34,21.43,21.84,21.70,21.68,21.89,21.98,22.03, 22.13,22.51,22.40,22.54,22.64,22.90,22.78,23.08,23.09,23.15, 23.39,23.45,23.64,23.74,23.79,23.75,24.14,24.00,24.28,24.36, 24.53,24.58,24.62,24.79,24.90,25.02,25.11,25.34,25.52,25.67, 25.55,25.65,25.92,26.01,26.08,26.15,26.36,26.27,26.59,26.48, 26.73,26.66,26.65,27.18,27.15,26.94,27.65,27.58,27.54,27.68, 27.82,28.03,28.09,28.14,28.33,28.33,28.42,28.70,28.93,29.02, 28.91,29.12,29.06,29.37,29.27,29.53,29.57,29.80,29.70,30.03, 30.06,30.23,30.20,30.57,30.64,30.49,30.63,30.76,30.92,31.18, 30.96,31.21,31.29,31.52,31.57,31.67,31.76,31.84,32.00,31.92, 32.36,32.22,32.53,32.51,32.52,32.70,32.65,32.94,32.94,33.38, 1.12,1.21,1.33,1.38,1.46,1.61,1.67,1.83,1.90,2.01, 2.10,2.19,2.37,2.45,2.51,2.61,2.73,2.80,2.93,2.99, 3.12,3.25,3.36,3.42,3.53,3.54,3.63,3.74,3.88,4.07, 4.14,4.23,4.29,4.41,4.57,4.61,4.75,4.83,4.99,5.08, 5.15,5.25,5.34,5.49,5.48,5.67,5.68,5.82,6.09,6.07, 6.08,6.16,6.30,6.50,6.51,6.67,6.72,6.86,6.93,7.13, 7.24,7.33,7.41,7.43,7.57,7.70,7.70,7.85,7.88,8.00, 8.03,8.29,8.25,8.53,8.58,8.60,8.67,8.87,8.98,9.06, 9.17,9.26,9.36,9.42,9.52,9.69,9.73,9.99,10.08,10.07, 10.20,10.40,10.37,10.57,10.64,10.64,10.84,10.88,10.87,11.07, 11.18,11.19,11.38,11.57,11.72,11.84,11.78,11.98,11.97,12.04, 12.13,12.39,12.35,12.61,12.63,12.63,12.80,12.95,13.07,12.95, 13.14,13.40,13.33,13.47,13.77,13.84,13.79,13.84,14.03,13.99, 14.02,14.30,14.35,14.54,14.62,14.82,14.85,14.96,15.07,15.19, 15.19,15.38,15.44,15.54,15.53,15.77,15.83,15.99,16.03,16.14, 16.22,16.41,16.42,16.60,16.55,16.68,16.77,16.85,17.07,17.13, 17.31,17.39,17.43,17.63,17.69,17.70,17.81,17.91,18.07,18.22, 18.19,18.46,18.41,18.56,18.67,18.76,18.91,18.99,19.11,19.15, 19.35,19.35,19.44,19.54,19.70,19.81,19.75,19.81,19.91,20.06, 20.10,20.36,20.44,20.59,20.64,20.64,20.92,21.15,21.07,21.10, 21.12,21.35,21.40,21.52,21.63,21.65,21.70,22.07,22.15,21.91, 22.27,22.42,22.53,22.57,22.56,23.01,22.81,23.03,23.08,23.38, 23.26,23.20,23.73,23.60,23.71,23.96,24.07,23.90,24.14,24.10, 24.44,24.48,24.54,24.51,24.68,24.68,24.83,24.93,25.20,25.35, 25.13,25.60,25.50,25.44,25.71,25.90,26.07,26.00,25.93,26.28, 26.25,26.55,26.34,26.64,26.59,26.64,26.82,26.75,27.02,27.46, 27.27,27.44,27.46,27.69,27.68,27.71,27.79,28.23,28.14,28.36, 28.21,28.76,28.27,28.47,28.88,28.96,28.95,28.94,29.10,29.04, 29.48,29.53,29.70,29.58,29.48,29.86,29.82,30.11,30.24,30.15, 4.15,4.46,4.87,5.29,5.62,6.08,6.41,6.73,7.15,7.56, 7.86,8.22,8.53,8.98,9.44,9.68,10.17,10.51,10.84,11.22, 11.52,12.01,12.27,12.60,13.04,13.46,13.71,14.22,14.55,14.97, 15.28,15.75,16.03,16.50,16.76,17.20,17.50,17.86,18.33,18.73, 19.04,19.42,19.68,20.14,20.55,20.85,21.32,21.58,21.95,22.24, 22.77,23.04,23.68,23.84,24.14,24.53,25.02,25.32,25.89,26.02, 26.57,26.80,27.09,27.52,28.06,28.41,28.87,29.03,29.30,29.91, 30.19,30.53,30.82,31.38,31.56,32.04,32.49,32.74,33.03,33.73, 34.02,34.20,34.60,35.02,35.46,35.82,35.97,36.53,36.97,37.35, 37.65,38.00,38.40,38.67,39.02,39.82,39.77,40.25,40.69,40.98, 41.24,41.88,42.04,42.51,42.60,43.18,43.69,43.91,44.18,44.72, 44.95,45.26,46.04,46.02,46.31,46.85,47.40,47.60,48.01,48.52, 48.79,49.05,49.44,49.78,50.33,50.51,51.01,51.37,51.88,52.29, 52.54,52.83,53.29,53.74,53.92,54.19,54.47,55.00,55.27,55.67, 56.48,56.58,56.81,57.31,57.69,58.06,58.57,58.78,58.95,59.57, 60.07,60.12,60.62,61.10,61.53,61.74,62.47,62.52,62.84,62.90, 63.91,63.99,64.34,64.78,65.03,65.54,66.00,66.20,66.56,66.89, 67.27,67.61,68.32,68.39,68.84,69.20,69.50,69.92,70.29,70.73, 71.09,71.64,71.90,72.04,72.53,73.03,73.26,73.66,74.18,74.26, 74.77,75.25,75.71,75.58,76.30,76.68,77.11,77.42,77.90,78.31, 78.56,78.80,79.31,79.75,80.00,80.45,80.79,81.14,81.39,81.65, 82.41,82.54,83.06,83.20,83.92,84.10,84.38,84.81,85.50,85.70, 86.09,86.36,86.70,87.09,87.42,87.91,88.29,88.42,88.95,89.52, 89.67,89.94,90.18,90.71,91.33,91.68,91.73,92.34,92.49,92.73, 93.15,94.04,94.41,94.58,94.91,95.30,95.38,96.03,96.45,96.70, 96.90,97.80,97.68,98.06,98.85,99.28,99.35,99.62,100.23,100.12, 100.90,101.20,101.46,102.01,102.59,102.64,102.94,103.51,103.63,104.08, 104.41,105.01,105.40,105.73,106.14,106.57,106.91,106.76,107.44,107.79, 108.51,108.61,109.23,109.14,109.54,110.11,110.66,111.19,111.60,111.73, 3.80,4.17,4.47,4.83,5.12,5.48,5.92,6.24,6.50,6.91, 7.21,7.51,7.88,8.32,8.51,8.91,9.30,9.62,9.92,10.24, 10.63,11.06,11.28,11.58,12.14,12.34,12.71,13.05,13.29,13.75, 14.12,14.48,14.75,15.17,15.41,15.82,16.21,16.42,16.87,17.24, 17.59,17.83,18.22,18.47,18.88,19.15,19.53,19.90,20.11,20.54, 20.89,21.26,21.62,21.96,22.20,22.55,22.80,23.44,23.60,24.08, 24.18,24.67,24.95,25.49,25.64,26.05,26.32,26.73,27.00,27.45, 27.73,28.26,28.61,28.67,28.95,29.57,29.92,30.05,30.45,30.81, 31.17,31.71,32.00,32.15,32.63,32.92,33.01,33.63,34.10,34.31, 34.58,34.90,35.44,35.77,36.04,36.41,36.57,37.14,37.26,37.66, 38.04,38.41,38.46,38.98,39.43,39.63,40.07,40.56,40.83,41.12, 41.22,41.60,41.99,42.43,42.79,43.16,43.38,43.81,44.49,44.55, 44.64,45.38,45.68,45.99,46.21,46.60,46.97,47.16,47.74,47.72, 48.34,48.47,48.90,49.39,49.70,50.02,50.19,50.70,50.88,51.30, 51.81,52.18,52.27,52.71,53.04,53.34,53.91,53.97,54.65,54.63, 55.17,55.45,55.66,56.26,56.65,56.85,57.02,57.35,57.82,58.32, 58.64,58.87,59.27,59.55,60.16,60.06,60.65,61.01,61.16,61.88, 62.00,62.03,62.56,62.93,63.00,63.71,64.14,64.25,64.81,65.15, 65.46,65.98,66.28,66.41,66.59,66.96,67.13,67.65,67.95,68.54, 68.83,69.26,69.49,69.91,70.00,70.83,70.83,71.05,71.60,72.01, 72.16,72.50,72.89,73.20,73.71,73.97,74.40,74.75,74.98,75.27, 75.65,75.90,76.40,76.64,76.94,77.27,77.70,78.10,78.31,79.06, 79.36,79.39,80.02,80.45,80.55,81.05,81.16,81.42,81.74,82.42, 82.57,82.80,83.16,83.57,83.80,84.05,84.41,84.51,85.11,85.67, 86.13,86.32,86.25,86.97,87.31,87.59,87.92,88.56,88.42,89.11, 89.30,89.59,89.93,90.33,90.56,90.94,91.66,91.77,92.30,92.12, 93.04,92.93,93.31,94.19,94.27,94.22,95.24,95.31,95.47,95.62, 96.03,96.62,96.64,97.19,97.65,97.70,98.02,98.54,98.83,99.49, 99.91,99.95,100.35,100.82,101.08,101.38,101.79,101.92,102.00,102.56, 3.49,3.88,4.17,4.45,4.81,5.05,5.39,5.65,5.98,6.32, 6.64,6.96,7.28,7.61,7.95,8.20,8.46,8.84,9.19,9.56, 9.83,10.22,10.44,10.77,11.06,11.44,11.67,12.05,12.24,12.67, 13.01,13.16,13.50,13.88,14.26,14.57,14.86,15.10,15.42,15.77, 16.08,16.36,16.81,16.99,17.35,17.82,17.80,18.37,18.75,18.87, 19.37,19.62,19.88,20.27,20.47,20.91,21.29,21.42,21.65,22.18, 22.38,22.77,22.92,23.25,23.74,23.98,24.26,24.57,24.93,25.11, 25.48,25.89,26.01,26.31,26.75,27.16,27.56,27.77,27.95,28.50, 28.69,28.98,29.44,29.61,29.99,30.30,30.57,30.92,31.18,31.50, 31.82,32.04,32.42,32.77,33.20,33.46,33.80,34.04,34.23,34.60, 35.04,35.32,35.65,36.03,36.17,36.54,36.85,37.25,37.56,37.96, 38.08,38.48,38.55,39.11,39.42,39.60,39.88,40.35,40.54,41.07, 41.37,41.65,41.87,42.37,42.62,43.02,43.26,43.60,43.84,43.99, 44.46,44.84,44.84,45.39,45.73,46.33,46.29,46.61,47.03,47.29, 47.51,47.97,48.19,48.63,48.66,49.20,49.61,49.64,49.91,50.44, 50.54,50.85,51.23,51.57,52.04,52.13,52.70,52.83,53.13,53.62, 53.85,54.02,54.35,54.73,55.15,55.32,55.70,55.82,56.53,56.85, 57.21,57.00,57.77,58.10,58.31,58.58,58.86,59.17,59.56,59.77, 60.08,60.40,60.78,61.35,61.57,61.74,62.09,62.54,62.55,62.85, 63.14,63.64,63.99,64.24,64.57,64.92,65.17,65.48,65.87,66.10, 66.52,66.71,67.11,67.53,67.70,68.01,68.54,69.00,69.01,69.53, 69.39,69.96,70.21,70.33,70.89,71.09,71.82,71.68,71.88,72.59, 72.87,73.07,73.39,73.91,73.97,74.48,74.71,75.22,75.23,75.63, 75.88,75.97,76.52,77.04,76.86,77.50,77.47,78.26,78.39,78.80, 78.97,79.24,79.56,80.07,80.20,80.44,80.91,81.32,81.71,81.90, 82.27,82.56,82.78,83.22,83.53,83.73,84.45,84.32,84.46,85.16, 85.36,85.85,85.92,86.27,86.62,86.97,86.93,87.59,87.90,88.37, 88.31,88.72,89.22,89.11,89.71,90.05,90.26,90.53,90.94,91.06, 91.54,91.97,92.46,92.64,92.79,92.95,93.49,93.46,94.22,94.36, 3.24,3.49,3.83,4.03,4.38,4.63,4.92,5.29,5.57,5.87, 6.12,6.45,6.72,6.97,7.31,7.58,7.82,8.21,8.44,8.70, 9.03,9.25,9.59,9.87,10.21,10.52,10.74,11.08,11.41,11.70, 11.79,12.18,12.48,12.71,13.20,13.29,13.70,13.97,14.16,14.44, 14.81,15.05,15.35,15.71,15.96,16.28,16.48,16.98,17.05,17.43, 17.69,18.09,18.21,18.55,18.82,19.27,19.51,19.78,20.11,20.31, 20.66,20.90,21.13,21.50,21.67,21.97,22.34,22.57,22.86,23.16, 23.59,23.72,24.21,24.38,24.78,25.00,25.12,25.58,25.70,26.09, 26.47,26.56,26.97,27.18,27.58,27.91,28.15,28.39,28.63,28.93, 29.36,29.47,29.94,30.38,30.43,30.71,30.98,31.41,31.58,31.89, 32.30,32.45,32.86,33.04,33.26,33.47,33.92,34.11,34.60,34.90, 35.24,35.29,35.70,35.78,36.27,36.57,36.92,37.06,37.43,37.76, 37.90,38.28,38.39,38.73,39.21,39.52,39.57,39.96,40.31,40.51, 41.02,41.14,41.36,41.90,42.02,42.27,42.59,42.82,43.10,43.46, 43.85,44.05,44.39,44.73,44.85,45.18,45.57,45.78,46.03,46.48, 46.85,46.80,47.30,47.47,47.84,48.05,48.53,48.84,49.06,49.33, 49.53,49.89,50.19,50.47,50.63,50.97,51.25,51.52,51.80,52.25, 52.27,52.69,53.17,53.49,53.34,53.77,54.13,54.51,54.90,54.90, 55.36,55.32,55.79,56.05,56.46,56.86,57.02,57.41,57.55,58.13, 58.49,58.65,58.89,59.16,59.26,59.81,60.01,60.32,60.37,60.76, 61.05,61.39,61.82,62.06,62.41,62.41,62.71,63.06,63.54,63.74, 64.29,64.47,64.58,64.78,65.28,65.41,66.02,66.20,66.47,66.70, 66.90,67.05,67.48,67.59,67.99,68.39,68.60,68.89,69.47,69.61, 69.78,70.16,70.60,70.78,70.97,71.29,71.56,71.86,72.15,72.62, 72.67,72.99,73.36,73.64,74.00,74.38,74.42,74.81,75.17,75.39, 75.26,75.88,76.05,76.39,76.79,77.19,77.28,77.74,78.01,78.21, 78.54,78.95,78.97,79.43,79.72,79.81,79.96,80.65,80.65,81.35, 81.29,81.53,82.00,82.11,82.59,82.74,83.40,83.60,83.50,84.05, 84.36,84.56,85.04,85.14,85.44,85.40,85.89,86.38,86.39,87.02, 2.98,3.28,3.46,3.81,4.03,4.37,4.62,4.85,5.06,5.38, 5.63,5.85,6.12,6.34,6.65,6.99,7.16,7.54,7.75,8.05, 8.27,8.59,8.93,9.00,9.34,9.65,9.87,10.16,10.43,10.71, 10.96,11.09,11.52,11.71,12.09,12.24,12.50,12.75,13.08,13.40, 13.67,13.90,14.19,14.44,14.62,14.89,15.16,15.53,15.69,16.02, 16.23,16.69,16.88,17.06,17.29,17.51,17.93,18.15,18.34,18.69, 18.96,19.25,19.53,19.60,19.94,20.32,20.49,20.75,21.16,21.43, 21.58,21.86,22.14,22.47,22.66,23.00,23.33,23.51,23.89,23.94, 24.09,24.66,24.77,24.99,25.34,25.68,25.82,26.34,26.30,26.62, 26.82,27.23,27.42,27.59,28.02,28.17,28.50,28.69,29.09,29.26, 29.65,29.75,30.28,30.36,30.72,30.87,31.15,31.43,31.66,32.03, 32.33,32.55,32.82,33.18,33.19,33.51,33.95,34.24,34.38,34.54, 34.95,35.34,35.48,35.68,35.98,36.17,36.50,36.85,36.95,37.23, 37.54,38.00,38.05,38.43,38.52,38.90,39.30,39.39,39.81,40.23, 40.15,40.59,40.83,41.04,41.43,41.64,41.90,42.28,42.54,42.73, 42.72,43.09,43.58,43.55,43.92,44.26,44.66,44.92,45.27,45.50, 45.69,45.88,46.03,46.28,46.73,46.95,47.23,47.39,47.62,47.95, 48.24,48.58,48.80,49.06,49.53,49.59,49.80,49.93,50.23,50.60, 50.93,51.11,51.34,51.56,52.21,52.07,52.51,52.63,53.02,53.21, 53.38,53.92,54.06,54.30,54.67,54.92,55.04,55.62,55.69,55.85, 56.32,56.43,56.85,56.87,57.36,57.63,57.90,58.24,58.43,58.37, 58.82,59.14,59.44,59.69,59.96,60.25,60.50,60.67,61.01,61.30, 61.53,61.78,62.25,62.23,62.60,63.11,63.27,63.32,63.86,64.06, 64.36,64.45,64.78,65.13,65.03,65.60,66.03,66.04,66.29,66.59, 66.94,66.95,67.42,67.60,68.04,68.32,68.41,68.66,69.31,69.08, 69.82,69.69,70.18,70.05,70.39,70.91,71.08,71.59,71.77,72.13, 72.35,72.61,72.58,73.18,73.26,73.73,73.92,73.75,74.34,74.40, 75.08,75.22,75.42,75.73,75.88,76.22,76.55,76.52,77.00,77.55, 77.39,77.90,78.07,78.12,78.67,79.07,79.48,79.23,79.71,80.08, 2.73,2.96,3.19,3.44,3.74,3.96,4.20,4.43,4.78,4.94, 5.24,5.35,5.78,5.94,6.15,6.34,6.64,6.89,7.12,7.33, 7.64,7.89,8.02,8.44,8.60,8.91,9.10,9.38,9.62,9.79, 10.16,10.32,10.60,10.78,11.02,11.25,11.52,11.69,12.02,12.30, 12.63,12.82,13.05,13.15,13.46,13.71,14.02,14.22,14.55,14.67, 15.07,15.31,15.47,15.82,15.82,16.23,16.43,16.69,16.93,17.16, 17.30,17.75,17.99,18.20,18.45,18.75,18.92,19.03,19.29,19.60, 19.87,19.99,20.44,20.73,20.95,21.22,21.23,21.46,21.85,22.11, 22.31,22.67,22.92,23.05,23.54,23.61,23.86,24.07,24.27,24.45, 24.87,25.05,25.26,25.48,25.67,26.09,26.31,26.65,26.71,26.97, 27.29,27.51,27.79,27.83,28.29,28.36,28.63,29.07,29.23,29.46, 29.80,29.92,30.29,30.40,30.69,30.86,31.01,31.29,31.67,32.02, 32.37,32.53,32.67,32.79,33.15,33.36,33.56,33.75,34.15,34.31, 34.62,34.75,35.22,35.61,35.67,35.90,36.05,36.33,36.55,36.86, 37.16,37.27,37.54,37.90,38.04,38.24,38.50,38.77,38.98,39.31, 39.59,39.73,39.83,40.26,40.34,40.65,41.01,41.10,41.52,41.93, 42.07,42.23,42.41,42.78,42.94,43.26,43.45,43.75,44.05,43.85, 44.32,44.68,44.78,45.24,45.37,45.63,45.71,46.09,46.47,46.62, 47.03,46.89,47.36,47.71,47.88,48.20,48.46,48.58,48.74,49.40, 49.29,49.70,49.92,50.15,50.45,50.29,50.67,50.93,51.25,51.72, 51.92,52.15,52.23,52.40,52.62,52.98,53.23,53.47,53.74,53.98, 54.14,54.55,54.81,54.75,55.19,55.24,55.52,56.06,56.15,56.40, 56.88,56.96,57.18,57.27,57.72,57.90,58.20,58.39,58.31,58.93, 59.17,59.30,59.52,59.76,59.91,60.24,60.72,60.77,61.14,61.66, 61.64,61.83,62.01,62.08,62.20,62.72,63.11,63.29,63.58,63.76, 63.97,64.26,64.55,64.70,64.93,65.20,65.31,65.99,65.91,66.22, 66.40,66.55,66.89,67.18,67.42,67.73,67.99,67.98,68.36,68.92, 68.92,69.19,69.61,69.46,69.79,69.94,70.43,70.71,70.76,71.09, 71.43,71.66,71.81,72.05,72.25,72.52,72.74,73.12,73.56,73.39, 2.51,2.71,2.99,3.18,3.41,3.62,3.81,4.14,4.29,4.53, 4.80,5.05,5.21,5.50,5.62,5.88,6.16,6.33,6.61,6.79, 7.04,7.26,7.46,7.68,7.91,8.09,8.38,8.56,8.87,9.08, 9.21,9.56,9.73,9.96,10.17,10.44,10.58,10.78,11.07,11.33, 11.63,11.84,12.02,12.20,12.45,12.61,12.82,13.13,13.29,13.65, 13.75,13.96,14.17,14.41,14.76,14.95,15.21,15.43,15.48,15.83, 16.11,16.25,16.59,16.78,16.98,17.21,17.44,17.64,17.71,18.05, 18.27,18.66,18.73,18.92,19.24,19.51,19.50,19.95,20.05,20.36, 20.56,20.64,21.07,21.21,21.38,21.80,21.81,22.14,22.42,22.51, 22.92,23.23,23.44,23.67,23.69,24.03,24.23,24.51,24.66,24.86, 25.10,25.37,25.56,25.62,26.00,26.28,26.44,26.60,26.93,27.17, 27.47,27.56,27.86,27.92,28.11,28.54,28.52,28.87,29.11,29.28, 29.51,29.93,30.08,30.23,30.41,30.66,31.09,31.16,31.37,31.61, 31.56,32.13,32.41,32.48,32.85,32.90,33.08,33.41,33.61,33.73, 34.11,34.29,34.45,34.73,34.83,35.20,35.20,35.68,35.87,36.38, 36.28,36.48,37.01,37.01,37.29,37.45,37.78,37.97,38.20,38.38, 38.63,39.00,39.09,39.24,39.43,39.83,40.18,40.03,40.36,40.73, 40.94,40.96,41.36,41.53,41.67,42.05,42.05,42.48,42.59,42.91, 43.23,43.47,43.47,43.99,44.12,44.23,44.28,44.46,44.92,45.09, 45.32,45.42,45.78,46.01,46.22,46.39,46.53,47.06,47.21,47.25, 47.74,47.84,48.02,48.20,48.45,48.80,48.94,49.22,49.34,49.35, 49.84,50.13,50.46,50.53,50.62,51.11,51.27,51.26,51.80,51.83, 52.12,52.65,52.56,52.84,53.08,53.17,53.41,53.59,54.01,54.08, 54.28,54.51,54.88,55.07,55.38,55.60,55.75,55.73,56.19,56.45, 56.41,56.94,56.95,57.60,57.41,57.70,57.99,58.25,58.17,58.59, 59.15,59.11,59.25,59.35,59.94,59.86,60.20,60.43,60.77,60.82, 61.18,61.39,61.73,61.75,61.75,62.23,62.67,63.01,62.93,63.23, 63.37,63.59,63.93,64.06,64.27,64.49,64.52,65.09,65.13,65.44, 65.70,66.00,66.20,66.35,66.50,66.76,67.10,67.24,67.56,67.54, 2.33,2.49,2.71,2.91,3.12,3.37,3.51,3.72,3.93,4.16, 4.39,4.63,4.80,4.94,5.21,5.44,5.58,5.84,6.08,6.28, 6.45,6.69,6.90,7.12,7.38,7.54,7.80,7.94,8.16,8.34, 8.50,8.72,8.93,9.14,9.43,9.64,9.82,9.94,10.29,10.40, 10.54,11.00,11.01,11.23,11.34,11.68,12.00,12.05,12.35,12.55, 12.70,12.95,13.17,13.16,13.50,13.60,13.95,14.14,14.40,14.62, 14.85,15.04,15.16,15.35,15.67,15.70,16.01,16.33,16.33,16.53, 16.77,17.03,17.18,17.47,17.79,17.87,17.91,18.20,18.53,18.63, 18.90,19.23,19.18,19.60,19.73,20.07,20.08,20.30,20.58,20.71, 21.07,21.22,21.32,21.73,21.83,22.00,22.08,22.37,22.63,22.92, 23.15,23.31,23.52,23.66,23.92,24.22,24.33,24.60,24.60,24.84, 25.26,25.35,25.51,25.79,25.89,26.26,26.44,26.72,26.86,27.13, 27.19,27.31,27.72,27.82,27.85,28.23,28.65,28.70,28.75,29.07, 29.30,29.39,29.72,29.88,30.09,30.42,30.45,30.76,30.95,30.97, 31.36,31.46,31.72,31.83,32.21,32.34,32.69,32.77,32.91,33.26, 33.45,33.78,33.92,34.00,34.18,34.52,34.76,34.81,34.94,35.39, 35.53,35.78,35.99,36.05,36.50,36.58,36.85,37.03,37.24,37.36, 37.67,37.88,37.98,38.05,38.28,38.55,38.83,39.07,39.20,39.41, 39.62,39.82,40.30,40.30,40.46,40.90,40.99,41.06,41.26,41.47, 41.69,41.85,41.99,42.10,42.51,42.66,43.05,43.17,43.34,43.80, 43.80,43.87,44.39,44.33,44.47,44.88,44.96,45.19,45.45,45.90, 46.08,46.16,46.61,46.62,46.55,47.06,47.12,47.19,47.39,47.52, 47.71,48.05,48.27,48.75,49.13,49.14,49.06,49.32,49.65,49.71, 50.03,50.00,50.57,50.76,50.92,50.90,51.26,51.39,51.63,51.55, 52.21,52.32,52.74,52.72,52.94,53.15,53.16,53.96,53.68,54.17, 54.17,54.57,54.52,54.95,54.92,55.31,55.52,55.56,55.87,56.09, 56.44,56.67,56.97,56.82,56.83,57.13,57.71,57.77,57.93,58.11, 58.23,58.61,58.91,59.15,59.31,59.38,59.44,59.82,59.85,60.23, 60.62,60.65,60.80,61.07,61.06,61.27,61.81,61.68,62.00,62.10, 2.11,2.33,2.47,2.73,2.88,3.11,3.27,3.47,3.67,3.83, 4.02,4.21,4.35,4.64,4.81,5.00,5.13,5.37,5.55,5.74, 5.94,6.15,6.38,6.50,6.69,6.91,7.10,7.31,7.52,7.67, 7.84,8.02,8.15,8.53,8.53,8.81,9.02,9.25,9.38,9.57, 9.76,9.95,10.17,10.25,10.54,10.58,10.92,11.06,11.32,11.44, 11.62,11.87,11.96,12.20,12.37,12.69,12.82,13.00,13.23,13.47, 13.58,13.85,13.99,14.14,14.22,14.48,14.80,14.94,15.10,15.32, 15.53,15.64,15.84,15.93,16.21,16.53,16.68,16.83,16.95,17.16, 17.28,17.57,17.89,17.95,18.06,18.35,18.45,18.88,18.86,19.30, 19.21,19.48,19.76,20.07,19.91,20.20,20.44,20.44,21.06,20.99, 21.22,21.44,21.53,21.77,22.10,22.31,22.36,22.58,22.82,22.90, 23.13,23.30,23.53,23.70,23.90,24.28,24.21,24.33,24.61,24.83, 24.99,25.14,25.45,25.47,25.80,26.16,26.35,26.46,26.55,26.83, 26.89,27.24,27.47,27.73,27.82,27.88,28.10,28.34,28.30,28.83, 28.77,28.96,29.22,29.50,29.69,29.95,30.05,30.11,30.40,30.62, 30.70,30.83,31.17,31.36,31.69,31.63,31.97,31.89,32.43,32.63, 32.51,32.64,32.99,33.12,33.52,33.71,33.87,33.86,34.18,34.33, 34.38,34.99,35.04,35.15,35.53,35.44,35.62,35.98,36.12,36.23, 36.41,36.75,36.82,36.95,37.28,37.49,37.72,37.81,37.84,38.05, 38.40,38.58,38.70,38.89,39.18,39.26,39.61,39.64,39.78,40.11, 40.40,40.66,40.84,40.73,41.12,41.22,41.41,41.33,41.77,41.95, 42.33,42.27,42.70,42.77,43.01,43.03,43.58,43.52,43.66,44.02, 44.25,44.43,44.47,44.54,45.11,44.92,45.27,45.18,45.59,45.58, 46.02,46.28,46.58,46.56,46.67,46.94,47.11,47.17,47.60,47.78, 47.67,48.29,48.36,48.48,48.81,48.71,49.17,49.17,49.47,49.56, 49.80,50.04,50.36,50.52,50.72,50.87,51.00,51.44,51.38,51.48, 51.75,52.06,51.87,52.31,52.45,52.60,52.94,53.23,53.14,53.40, 53.51,53.71,54.21,54.42,54.54,54.62,54.95,55.05,55.09,55.22, 55.40,55.76,55.84,55.92,56.46,56.50,56.68,57.03,57.02,57.45, 1.94,2.11,2.31,2.47,2.53,2.87,2.99,3.23,3.43,3.48, 3.71,3.89,4.00,4.26,4.41,4.61,4.75,4.91,5.16,5.31, 5.48,5.68,5.86,5.99,6.16,6.26,6.42,6.72,6.92,7.03, 7.20,7.40,7.57,7.75,7.92,8.01,8.28,8.39,8.54,8.72, 9.03,9.16,9.31,9.43,9.63,9.84,10.12,10.21,10.39,10.52, 10.77,10.89,11.09,11.29,11.51,11.64,11.83,12.05,12.13,12.29, 12.43,12.64,12.80,13.09,13.12,13.28,13.65,13.66,13.81,14.09, 14.30,14.46,14.69,14.83,15.00,14.99,15.36,15.42,15.67,15.81, 16.07,16.32,16.54,16.57,16.68,16.94,17.09,17.24,17.41,17.57, 17.70,18.02,18.20,18.27,18.49,18.70,18.72,19.21,19.18,19.39, 19.54,19.63,19.91,20.10,20.20,20.37,20.66,20.63,20.98,21.07, 21.44,21.23,21.60,21.77,22.01,22.01,22.37,22.46,22.73,22.75, 22.96,23.27,23.35,23.47,23.73,24.08,24.12,24.21,24.37,24.51, 24.69,24.77,25.18,25.32,25.41,25.60,25.98,26.10,26.01,26.35, 26.53,26.84,26.96,26.98,27.16,27.45,27.67,27.82,27.77,28.04, 28.15,28.59,28.70,28.68,28.99,29.34,29.33,29.49,29.79,29.88, 30.02,30.17,30.58,30.45,30.75,30.83,31.07,31.24,31.40,31.50, 31.69,31.97,32.08,32.39,32.46,32.70,32.80,33.11,33.24,33.44, 33.41,33.67,33.69,34.21,34.15,34.38,34.65,34.82,34.96,35.22, 35.43,35.41,35.68,35.89,36.00,36.25,36.42,36.57,36.68,36.75, 37.21,37.18,37.41,37.72,37.70,37.81,38.19,38.43,38.34,38.74, 38.67,39.00,39.25,39.43,39.59,39.54,39.81,40.11,40.05,40.39, 40.74,40.85,41.22,41.26,41.39,41.37,41.80,41.74,41.88,42.38, 42.46,42.59,42.73,43.10,43.18,43.33,43.51,43.55,43.85,43.85, 44.27,44.41,44.57,44.62,44.64,45.01,45.21,45.68,45.58,45.47, 46.03,46.27,46.36,46.52,46.63,46.43,46.88,47.17,47.49,47.57, 47.66,47.74,48.16,48.23,48.56,48.63,48.57,48.99,49.09,49.23, 49.40,49.57,49.85,49.71,50.19,50.38,50.62,50.62,50.91,51.01, 51.09,51.46,51.56,51.76,51.65,51.87,52.10,52.35,52.53,52.48, 1.82,1.94,2.12,2.28,2.49,2.62,2.73,2.91,3.03,3.28, 3.35,3.57,3.69,3.87,4.04,4.21,4.34,4.53,4.74,4.80, 4.97,5.23,5.36,5.48,5.72,5.79,6.01,6.14,6.39,6.49, 6.66,6.86,6.90,7.18,7.24,7.43,7.65,7.72,7.90,8.07, 8.20,8.44,8.58,8.73,8.97,9.03,9.18,9.24,9.56,9.73, 9.91,10.04,10.16,10.37,10.44,10.72,10.82,10.97,11.12,11.23, 11.59,11.68,11.73,11.93,12.08,12.25,12.47,12.65,12.90,12.86, 13.07,13.29,13.52,13.69,13.71,13.93,14.10,14.21,14.41,14.59, 14.62,14.91,15.18,15.22,15.37,15.69,15.71,15.94,16.03,16.16, 16.42,16.59,16.59,16.77,17.02,17.06,17.36,17.48,17.70,17.90, 17.98,18.01,18.33,18.33,18.64,18.89,19.02,18.94,19.18,19.34, 19.64,19.70,19.89,20.11,20.00,20.37,20.48,20.71,20.83,20.89, 21.08,21.17,21.47,21.69,21.81,22.05,22.33,22.25,22.39,22.62, 22.73,22.97,23.20,23.22,23.32,23.71,23.75,23.91,24.04,24.18, 24.46,24.44,24.64,24.84,25.20,25.13,25.36,25.53,25.66,25.89, 26.18,26.28,26.31,26.59,26.82,26.87,27.03,27.21,27.20,27.51, 27.64,27.80,28.00,28.18,28.14,28.49,28.79,28.91,29.11,29.08, 29.14,29.34,29.66,29.85,29.84,30.25,30.38,30.59,30.49,30.79, 30.62,30.97,31.15,31.30,31.41,31.77,31.83,31.92,32.21,32.33, 32.62,32.59,32.89,32.86,33.00,33.34,33.45,33.77,33.78,33.92, 34.08,34.46,34.47,34.55,34.72,34.85,35.12,35.25,35.38,35.49, 35.70,35.87,36.08,36.00,36.44,36.63,36.63,36.86,37.12,37.18, 37.39,37.42,37.60,37.91,37.88,38.11,38.47,38.47,38.56,39.05, 38.98,39.07,39.31,39.27,39.50,39.74,40.02,39.95,40.32,40.42, 40.41,40.64,40.90,41.02,41.35,41.33,41.85,41.67,41.78,42.11, 42.21,42.27,42.73,42.69,43.12,42.92,43.21,43.29,43.41,43.61, 43.72,43.63,44.05,44.15,44.55,44.64,44.86,44.99,45.12,45.47, 45.34,45.51,45.71,45.83,46.00,46.33,46.48,46.34,46.71,46.97, 46.98,47.17,47.21,47.37,47.76,47.91,47.87,48.05,48.27,48.38, 1.66,1.85,1.96,2.08,2.24,2.32,2.56,2.71,2.80,2.93, 3.16,3.33,3.48,3.57,3.65,3.89,3.98,4.18,4.33,4.44, 4.63,4.76,4.93,5.07,5.25,5.37,5.46,5.66,5.81,6.03, 6.16,6.29,6.43,6.45,6.58,6.86,7.01,7.21,7.27,7.46, 7.63,7.71,7.84,8.06,8.22,8.35,8.46,8.67,8.86,8.93, 9.26,9.30,9.35,9.50,9.63,9.89,9.98,10.25,10.17,10.34, 10.53,10.80,10.85,11.13,11.10,11.30,11.51,11.67,11.80,11.95, 12.05,12.29,12.45,12.53,12.79,12.90,12.87,13.19,13.24,13.58, 13.59,13.54,13.80,14.07,14.08,14.34,14.44,14.61,14.68,14.86, 14.94,15.17,15.38,15.51,15.63,15.81,15.93,16.19,16.28,16.56, 16.55,16.56,16.83,17.08,17.12,17.27,17.53,17.58,17.65,17.95, 18.06,18.20,18.27,18.45,18.64,18.76,18.82,19.06,19.22,19.31, 19.44,19.59,19.78,20.09,20.14,20.27,20.46,20.57,20.80,20.98, 21.02,21.05,21.34,21.41,21.39,21.69,21.94,22.15,22.19,22.29, 22.55,22.62,22.72,22.84,23.00,23.32,23.38,23.78,23.77,23.85, 24.04,23.93,24.22,24.41,24.67,24.68,24.88,24.85,25.20,25.19, 25.46,25.58,25.84,25.97,25.98,26.14,26.41,26.34,26.53,26.90, 26.98,26.98,27.14,27.41,27.46,27.62,27.89,28.03,28.11,28.10, 28.39,28.63,28.71,28.98,28.77,29.12,29.22,29.43,29.57,29.76, 29.79,30.02,30.17,30.21,30.48,30.48,30.71,30.96,31.10,31.36, 31.47,31.56,31.59,31.68,32.08,32.12,32.24,32.31,32.54,32.77, 32.91,33.10,33.07,33.39,33.59,33.67,33.66,33.87,34.16,34.26, 34.38,34.58,34.81,34.76,34.93,35.16,35.28,35.25,35.74,35.74, 35.85,36.03,35.99,36.23,36.45,36.52,36.77,36.92,37.08,37.09, 37.36,37.48,37.60,37.71,37.71,38.08,38.18,38.32,38.57,38.70, 38.56,38.96,39.07,39.12,39.37,39.93,39.67,39.91,39.96,40.03, 40.35,40.55,40.57,40.91,41.01,41.13,41.15,41.26,41.59,41.74, 41.70,41.95,42.16,42.48,42.61,42.49,42.77,42.95,43.02,43.08, 43.29,43.36,43.55,43.64,43.95,44.09,44.03,44.32,44.42,44.52, 1.57,1.62,1.80,1.92,2.03,2.24,2.30,2.47,2.61,2.74, 2.87,3.03,3.17,3.27,3.44,3.59,3.77,3.88,3.95,4.10, 4.29,4.37,4.51,4.67,4.83,4.89,5.08,5.16,5.45,5.57, 5.53,5.75,5.98,5.99,6.18,6.29,6.44,6.55,6.70,6.86, 7.07,7.06,7.28,7.37,7.52,7.68,7.85,7.94,8.15,8.27, 8.33,8.53,8.62,8.78,8.88,9.09,9.16,9.44,9.52,9.60, 9.66,9.90,9.94,10.19,10.24,10.27,10.57,10.66,10.79,11.01, 11.09,11.33,11.45,11.60,11.63,11.70,11.83,11.99,12.38,12.37, 12.43,12.60,12.64,12.91,13.03,13.16,13.34,13.54,13.41,13.60, 13.76,13.89,14.07,14.22,14.42,14.44,14.78,14.71,14.90,15.16, 15.11,15.29,15.34,15.54,15.73,15.84,16.10,16.23,16.54,16.41, 16.50,16.73,16.83,16.99,17.07,17.22,17.34,17.61,17.65,17.81, 17.96,18.14,18.09,18.42,18.48,18.59,18.91,18.75,18.95,19.09, 19.29,19.54,19.54,19.68,19.76,20.10,20.01,20.21,20.42,20.56, 20.63,20.82,20.73,21.22,21.06,21.24,21.62,21.63,21.64,21.78, 22.08,22.20,22.31,22.43,22.64,22.78,22.90,23.00,23.21,23.09, 23.32,23.44,23.61,23.72,23.83,24.05,24.15,24.32,24.61,24.56, 24.68,24.83,24.90,25.14,25.25,25.34,25.62,25.77,25.98,26.11, 26.02,26.10,26.32,26.74,26.74,26.86,26.88,27.09,27.28,27.53, 27.55,27.61,27.98,27.79,28.06,28.16,28.15,28.54,28.70,28.75, 28.82,29.23,29.11,29.50,29.30,29.47,29.72,29.65,30.05,30.05, 30.29,30.52,30.61,30.55,30.90,30.94,31.04,31.07,31.32,31.55, 31.67,31.88,31.88,32.03,32.21,32.22,32.50,32.25,32.51,32.82, 33.02,33.01,33.33,33.40,33.74,33.73,33.71,34.15,33.98,34.18, 34.36,34.39,34.66,34.98,34.97,34.86,35.38,35.23,35.20,35.47, 35.80,36.03,35.92,36.08,36.30,36.18,36.44,36.75,36.86,36.76, 37.18,37.16,37.26,37.27,37.66,37.81,37.66,38.06,38.24,38.31, 38.52,38.53,38.91,38.73,39.07,38.81,39.40,39.30,39.57,39.58, 39.70,39.91,40.38,40.20,40.11,40.44,40.60,40.94,40.74,41.09, 1.44,1.56,1.60,1.77,1.95,2.02,2.14,2.26,2.40,2.51, 2.66,2.77,2.88,3.04,3.21,3.31,3.44,3.50,3.72,3.80, 3.95,4.06,4.16,4.33,4.47,4.58,4.70,4.68,4.88,4.99, 5.16,5.24,5.39,5.55,5.72,5.76,5.92,6.14,6.25,6.39, 6.39,6.47,6.68,6.83,6.88,7.00,7.05,7.30,7.39,7.55, 7.52,7.88,7.83,8.02,8.20,8.26,8.39,8.63,8.55,8.82, 8.99,9.05,9.26,9.35,9.52,9.49,9.87,9.80,9.90,10.17, 10.05,10.27,10.40,10.62,10.57,10.79,10.96,11.04,11.27,11.29, 11.45,11.59,11.79,11.87,11.89,12.03,12.09,12.38,12.47,12.50, 12.74,12.87,12.86,13.19,13.26,13.51,13.46,13.55,13.68,13.70, 13.92,14.03,14.16,14.30,14.47,14.58,14.68,14.97,14.92,15.13, 15.30,15.38,15.57,15.67,15.76,15.80,15.98,16.11,16.23,16.46, 16.50,16.62,16.76,16.77,16.94,17.28,17.16,17.41,17.44,17.48, 17.68,18.01,18.02,18.11,18.23,18.42,18.42,18.73,18.73,18.84, 18.83,19.02,19.20,19.39,19.54,19.59,19.84,20.04,19.99,20.14, 20.15,20.31,20.50,20.66,21.05,20.95,20.97,21.00,21.34,21.42, 21.55,21.60,21.82,21.95,21.98,22.16,22.46,22.34,22.68,22.70, 22.74,22.84,23.13,23.16,23.32,23.42,23.57,23.56,23.70,23.77, 24.09,24.15,24.14,24.16,24.37,24.85,24.88,24.90,24.96,24.97, 25.46,25.63,25.66,25.58,25.75,26.05,26.00,26.18,26.37,26.39, 26.60,26.52,26.85,26.67,27.06,27.09,27.36,27.42,27.73,27.78, 27.75,27.82,27.84,28.34,28.58,28.48,28.48,28.65,28.53,28.86, 29.23,29.22,29.22,29.54,29.68,29.59,29.85,29.98,29.75,30.45, 30.20,30.38,30.43,30.71,30.80,31.15,31.18,31.15,31.38,31.54, 31.42,31.83,31.81,31.76,32.23,32.27,32.24,32.31,32.74,32.65, 32.91,33.02,33.23,33.31,33.27,33.44,33.39,33.56,33.78,34.01, 33.92,34.17,34.27,34.55,34.67,34.61,35.08,35.03,35.13,35.05, 35.30,35.39,35.83,35.84,35.94,35.97,36.42,36.24,36.40,36.45, 36.73,36.57,36.96,37.10,37.35,37.15,37.27,37.44,37.70,37.72, 1.31,1.45,1.56,1.67,1.79,1.86,1.99,2.15,2.21,2.30, 2.41,2.58,2.67,2.77,2.87,3.00,3.14,3.29,3.42,3.50, 3.58,3.72,3.82,3.93,4.05,4.18,4.24,4.42,4.53,4.67, 4.78,4.85,5.03,5.10,5.32,5.31,5.42,5.66,5.64,5.83, 5.94,6.09,6.25,6.14,6.40,6.42,6.58,6.71,6.79,6.90, 7.05,7.25,7.42,7.39,7.53,7.68,7.78,7.77,8.01,8.11, 8.18,8.34,8.46,8.66,8.65,8.85,8.91,9.10,9.16,9.19, 9.43,9.55,9.67,9.69,9.81,9.96,10.15,10.19,10.33,10.47, 10.52,10.62,10.69,10.87,10.94,11.17,11.29,11.27,11.58,11.53, 11.70,11.78,11.75,12.08,12.27,12.30,12.24,12.67,12.70,12.77, 12.90,12.89,13.12,13.23,13.21,13.53,13.63,13.80,13.95,13.94, 14.06,13.99,14.28,14.51,14.46,14.52,14.73,14.83,15.00,15.09, 15.20,15.31,15.47,15.66,15.59,15.85,15.90,15.98,16.20,16.31, 16.31,16.43,16.49,16.63,16.83,16.88,17.06,17.06,17.28,17.43, 17.55,17.54,17.83,17.76,18.12,17.89,18.39,18.28,18.55,18.57, 18.63,18.87,19.01,19.00,19.07,19.20,19.25,19.46,19.53,19.54, 19.76,20.00,20.05,20.21,20.34,20.41,20.54,20.70,20.68,21.02, 20.85,21.01,21.29,21.45,21.40,21.61,21.75,21.79,21.82,22.19, 22.18,22.28,22.42,22.37,22.61,22.51,22.66,22.85,22.97,23.00, 23.08,23.47,23.59,23.72,23.91,23.85,24.05,24.16,24.36,24.34, 24.12,24.50,24.67,24.81,24.89,25.21,25.11,25.24,25.52,25.33, 25.55,25.73,25.89,25.80,25.91,26.13,26.39,26.33,26.53,26.68, 26.56,27.13,26.98,27.01,27.14,27.23,27.30,27.44,27.61,27.70, 27.68,28.23,28.13,28.49,28.55,28.43,28.56,28.52,28.71,29.01, 29.24,29.20,29.36,29.59,29.28,29.64,29.85,29.67,30.12,30.03, 30.34,30.37,30.52,30.36,30.69,31.07,30.90,31.01,31.01,31.31, 31.24,31.48,31.71,31.62,31.87,32.16,32.22,32.27,32.46,32.56, 32.41,32.58,32.82,32.87,32.86,33.15,33.29,33.34,33.36,33.50, 33.68,33.80,33.87,33.90,34.05,34.32,34.39,34.48,34.44,34.61, 4.08,4.42,4.74,5.17,5.48,5.92,6.20,6.63,6.94,7.33, 7.61,8.05,8.44,8.76,9.03,9.41,9.85,10.23,10.54,10.84, 11.21,11.60,12.07,12.40,12.79,13.08,13.54,13.73,14.20,14.48, 14.90,15.20,15.55,15.85,16.31,16.75,17.10,17.55,17.80,18.22, 18.53,18.71,19.21,19.62,20.04,20.17,20.68,21.03,21.35,21.71, 22.14,22.57,22.84,23.03,23.47,24.07,24.22,24.56,25.00,25.27, 25.86,26.12,26.34,26.91,27.10,27.53,27.84,28.13,28.66,28.83, 29.19,29.72,29.81,30.43,30.70,31.12,31.48,31.98,32.10,32.63, 32.77,33.29,33.72,33.95,34.14,34.63,35.16,35.33,35.80,36.21, 36.49,36.93,37.12,37.54,37.74,38.20,38.66,39.07,39.30,39.56, 40.14,40.60,40.97,41.32,41.44,41.84,42.34,42.72,43.09,43.14, 43.67,43.93,44.60,44.77,45.03,45.56,45.80,46.12,46.67,47.04, 47.11,47.36,47.99,48.18,48.74,49.16,49.41,49.78,50.11,50.61, 50.87,51.18,51.47,51.90,52.27,52.54,52.97,53.49,53.82,54.15, 54.74,54.71,55.08,55.51,55.94,56.24,56.48,57.29,57.24,57.84, 58.22,58.47,58.94,59.27,59.56,59.85,60.18,60.80,60.91,61.33, 61.71,61.98,62.54,62.70,62.94,63.15,63.78,64.22,64.50,65.00, 65.19,65.48,66.16,66.48,66.87,67.17,67.36,67.66,68.07,68.50, 68.73,69.36,69.46,70.09,70.34,70.66,70.94,71.37,71.69,72.12, 72.64,72.92,73.16,73.66,73.93,74.15,74.63,75.18,75.40,75.83, 76.08,76.56,76.75,77.36,77.49,78.17,78.28,78.66,78.70,79.37, 79.63,79.92,80.77,80.86,81.05,81.66,81.91,82.39,82.78,82.83, 83.45,83.70,83.81,84.48,84.87,85.21,85.31,85.63,86.16,86.33, 86.99,86.85,87.68,87.99,88.15,88.69,88.88,89.57,89.64,90.14, 90.42,90.77,91.20,91.52,91.85,92.39,92.67,92.72,93.30,93.67, 94.07,94.36,94.73,95.29,95.39,95.95,96.29,96.51,96.64,97.73, 97.61,98.17,98.59,98.55,98.74,99.70,99.84,100.16,100.38,100.61, 101.54,101.57,102.31,102.20,102.68,102.96,103.43,103.71,104.05,104.53, 105.07,105.02,105.73,105.80,106.50,106.20,107.17,107.73,107.71,107.97, 3.76,4.11,4.52,4.88,5.12,5.47,5.75,6.13,6.51,6.81, 7.13,7.55,7.76,8.10,8.44,8.84,9.12,9.46,9.88,10.16, 10.38,10.85,11.21,11.52,11.87,12.11,12.52,12.88,13.19,13.46, 13.88,14.16,14.47,14.83,15.20,15.53,15.81,16.22,16.57,16.91, 17.10,17.68,17.87,18.18,18.43,18.71,19.10,19.58,19.88,20.19, 20.68,20.92,21.05,21.55,21.88,22.09,22.61,22.85,23.36,23.67, 23.81,24.25,24.46,24.72,25.19,25.58,25.88,26.23,26.46,26.88, 27.22,27.64,27.89,28.38,28.47,29.07,29.26,29.54,29.79,30.29, 30.64,30.93,31.18,31.67,31.84,32.41,32.83,32.78,33.36,33.66, 33.82,34.36,34.60,35.00,35.23,35.48,35.77,36.40,36.65,36.85, 37.06,37.54,37.75,38.37,38.47,39.10,39.28,39.77,39.93,40.09, 40.60,40.95,41.30,41.44,41.98,42.28,42.64,42.83,43.34,43.70, 44.06,44.40,44.53,44.82,45.41,45.42,45.96,46.25,46.83,46.84, 47.49,47.58,48.12,48.40,48.48,49.13,49.40,49.74,50.19,50.25, 50.79,51.23,51.50,51.70,51.86,52.36,52.73,53.02,53.16,53.72, 53.89,54.36,54.70,55.12,55.43,55.57,56.12,56.35,56.69,56.92, 57.37,57.84,58.16,58.38,58.83,59.19,59.64,59.64,60.21,60.13, 60.56,61.03,61.36,61.70,62.07,62.29,62.80,63.14,63.45,63.76, 64.16,64.36,64.84,65.21,65.42,65.75,66.18,66.53,66.72,66.76, 67.65,67.88,68.09,68.39,68.44,69.21,69.39,69.61,70.37,70.29, 70.75,71.34,71.64,71.85,72.09,72.24,72.74,73.19,73.39,73.48, 74.27,74.30,74.63,75.22,75.66,75.83,76.05,76.56,76.70,77.31, 77.49,77.79,78.30,78.50,78.61,78.97,79.55,79.83,80.13,80.40, 80.67,81.04,81.32,81.52,82.06,82.50,82.85,83.28,83.74,83.50, 84.11,84.53,84.68,85.04,85.47,85.82,86.13,86.48,86.76,87.23, 87.47,87.77,88.15,88.48,88.77,89.35,89.28,89.79,90.22,90.68, 90.89,91.16,91.60,91.97,92.15,92.51,92.71,93.12,93.53,94.25, 94.08,94.70,94.75,95.12,95.49,95.91,96.16,96.83,97.04,97.30, 97.54,97.60,98.09,98.31,98.47,99.15,99.63,99.76,100.41,100.57, 3.48,3.84,4.09,4.51,4.82,5.08,5.37,5.66,6.06,6.27, 6.65,6.95,7.32,7.54,7.95,8.17,8.58,8.82,9.11,9.42, 9.65,10.15,10.25,10.63,11.00,11.20,11.61,11.98,12.26,12.54, 12.93,13.18,13.44,13.70,14.11,14.40,14.79,15.13,15.36,15.67, 16.08,16.35,16.65,16.82,17.20,17.60,17.76,18.17,18.66,18.78, 19.10,19.47,19.64,20.14,20.38,20.78,20.95,21.26,21.61,21.99, 22.32,22.53,22.86,23.05,23.31,23.69,24.17,24.45,24.77,24.97, 25.09,25.72,25.84,26.15,26.45,26.75,27.22,27.57,27.87,28.26, 28.45,28.81,29.16,29.27,29.64,29.98,30.34,30.51,30.93,31.21, 31.58,31.71,32.31,32.38,32.74,33.07,33.39,33.77,34.16,34.29, 34.84,34.98,35.31,35.60,35.95,36.20,36.54,37.13,37.17,37.36, 37.84,38.13,38.49,38.82,39.02,39.33,39.72,39.94,40.22,40.61, 40.87,40.85,41.48,41.82,42.03,42.48,42.66,42.94,43.45,43.70, 44.10,44.46,44.86,44.85,45.38,45.50,45.81,46.19,46.61,46.87, 47.20,47.62,47.77,47.99,48.19,48.99,49.24,49.28,49.51,50.05, 50.07,50.66,50.78,51.03,51.62,51.92,52.17,52.54,52.76,53.02, 53.51,53.72,54.00,54.33,54.72,54.83,55.32,55.41,55.79,56.07, 56.46,56.66,57.09,57.28,57.78,58.08,58.27,58.74,59.18,59.18, 59.72,60.06,60.07,60.57,60.89,61.17,61.37,61.60,62.16,62.13, 62.79,63.28,63.34,63.74,63.84,64.26,64.57,64.88,65.32,65.54, 65.68,65.85,66.47,66.75,67.00,67.61,67.86,67.88,68.23,68.55, 68.97,69.39,69.44,69.76,70.33,70.56,70.84,71.19,71.18,71.58, 72.20,72.34,72.48,72.95,73.09,73.29,73.81,74.25,74.72,75.25, 75.31,75.20,75.54,76.00,76.31,76.93,77.02,77.33,77.48,77.76, 78.31,78.44,78.70,79.12,79.44,79.74,80.26,80.27,80.70,80.88, 81.46,81.62,81.91,82.16,82.65,83.22,83.03,83.43,83.80,84.46, 84.53,84.70,84.96,85.28,85.88,86.24,86.20,86.83,87.06,87.19, 87.19,87.58,88.49,88.69,88.95,89.17,89.20,89.72,90.15,90.66, 90.60,91.12,91.32,91.64,92.00,92.26,92.33,92.64,93.30,93.43, 3.31,3.56,3.87,4.13,4.40,4.72,5.03,5.37,5.54,5.91, 6.20,6.43,6.71,7.01,7.38,7.56,7.95,8.14,8.45,8.83, 9.07,9.43,9.57,9.90,10.22,10.55,10.87,11.11,11.42,11.73, 11.98,12.27,12.49,12.74,13.06,13.47,13.78,13.99,14.18,14.63, 14.88,15.08,15.47,15.75,16.08,16.34,16.63,16.90,17.19,17.53, 17.82,18.03,18.42,18.76,19.02,19.11,19.63,19.74,20.10,20.38, 20.69,21.03,21.28,21.46,21.79,22.14,22.32,22.83,23.03,23.20, 23.50,23.88,24.15,24.34,24.66,25.05,25.34,25.60,25.88,26.15, 26.35,26.61,26.94,27.42,27.45,27.96,28.15,28.57,28.70,29.13, 29.36,29.59,29.79,30.16,30.45,30.83,31.20,31.49,31.78,31.80, 32.12,32.51,32.94,33.10,33.32,33.53,34.23,34.41,34.52,35.01, 35.19,35.35,35.81,36.04,36.36,36.59,36.87,37.17,37.45,37.71, 38.07,38.22,38.58,38.80,39.18,39.44,39.82,40.08,40.41,40.55, 40.61,41.24,41.51,41.82,42.19,42.49,42.66,43.00,43.19,43.41, 43.87,44.10,44.27,44.96,44.97,45.31,45.76,45.85,46.42,46.25, 46.69,47.08,47.24,47.63,47.91,48.10,48.52,48.76,49.12,49.27, 49.38,49.92,50.22,50.41,50.84,51.21,51.41,51.70,51.86,52.25, 52.49,52.63,53.12,53.34,53.58,54.19,54.53,54.49,54.73,55.14, 55.58,55.58,55.89,56.34,56.39,56.93,57.34,57.38,57.69,57.97, 58.22,58.79,58.87,59.32,59.46,59.89,59.94,60.38,60.55,61.00, 60.98,61.46,61.99,62.26,62.41,62.51,62.81,63.21,63.53,63.69, 64.08,64.32,64.89,65.07,65.26,65.74,65.84,65.92,66.44,66.79, 67.04,67.34,67.61,67.94,68.21,68.32,68.62,69.22,69.40,69.58, 69.96,70.31,70.52,70.61,71.15,71.44,71.86,71.87,72.35,72.48, 72.84,73.19,73.15,73.69,73.93,74.29,74.37,74.61,74.99,75.54, 75.90,76.14,76.26,76.45,76.94,77.14,77.28,77.54,77.74,78.14, 78.55,78.96,79.18,79.36,79.66,80.25,80.46,80.69,80.88,80.99, 81.31,81.70,82.00,82.55,82.69,82.94,83.33,83.34,83.83,84.10, 84.53,84.55,85.28,85.17,85.58,85.88,85.87,86.35,86.78,87.01, 3.09,3.29,3.61,3.88,4.17,4.43,4.68,4.95,5.18,5.42, 5.72,5.98,6.30,6.52,6.82,7.12,7.42,7.65,7.99,8.08, 8.47,8.64,8.94,9.20,9.40,9.74,10.10,10.31,10.62,10.88, 11.10,11.40,11.68,11.92,12.17,12.46,12.72,13.12,13.41,13.63, 13.81,14.06,14.41,14.61,14.95,15.12,15.51,15.65,15.96,16.29, 16.54,16.84,17.09,17.31,17.55,17.83,17.99,18.37,18.65,19.04, 19.16,19.31,19.77,19.93,20.30,20.67,20.77,21.09,21.44,21.64, 21.96,22.09,22.51,22.66,23.06,23.18,23.49,23.82,24.07,24.36, 24.56,24.72,25.15,25.36,25.67,25.91,26.21,26.62,26.59,27.03, 27.39,27.64,27.92,28.15,28.41,28.66,28.87,29.17,29.28,29.74, 30.19,30.35,30.68,30.73,30.97,31.29,31.64,31.94,32.17,32.13, 32.58,32.89,33.20,33.32,33.70,34.12,34.27,34.58,34.93,35.16, 35.40,35.70,35.97,36.11,36.15,36.57,36.80,37.21,37.52,37.75, 38.10,38.31,38.56,38.80,39.12,39.55,39.68,40.11,40.16,40.56, 40.73,41.11,41.27,41.42,41.89,42.02,42.31,42.70,42.89,43.00, 43.69,43.85,44.09,44.17,44.50,44.69,44.90,45.41,45.43,45.75, 46.24,46.37,46.68,46.80,47.11,47.49,47.34,48.18,48.30,48.51, 49.05,49.22,49.29,49.68,49.90,50.17,50.45,50.70,51.12,51.38, 51.51,51.82,51.94,52.39,52.62,52.80,53.27,53.54,53.82,54.01, 54.35,54.47,54.95,55.07,55.40,55.84,55.76,56.00,56.38,56.65, 56.84,57.13,57.50,57.75,57.90,58.19,58.65,58.72,59.26,59.37, 59.76,59.90,59.98,60.14,60.74,61.10,61.21,61.51,61.88,62.13, 62.35,62.60,62.81,62.88,63.53,63.53,64.04,64.12,64.42,64.58, 64.96,65.19,65.41,65.82,66.05,66.35,66.64,66.92,67.23,67.15, 67.51,68.04,68.37,68.48,68.65,68.89,69.45,69.62,69.62,69.88, 70.58,70.78,70.95,71.19,71.89,71.59,71.97,72.14,72.63,72.76, 73.10,73.38,73.66,73.79,74.52,74.42,74.79,75.03,75.11,75.70, 75.67,75.87,76.27,76.89,76.78,77.12,77.40,77.74,77.86,78.46, 78.45,78.97,79.10,79.30,79.78,79.72,80.24,80.34,80.53,81.07, 2.80,3.10,3.33,3.65,3.85,4.06,4.36,4.59,4.81,5.15, 5.33,5.56,5.82,6.09,6.32,6.58,6.82,7.09,7.27,7.57, 7.86,8.08,8.36,8.57,8.81,9.09,9.39,9.59,9.90,10.17, 10.42,10.66,10.82,11.15,11.24,11.53,11.87,12.06,12.33,12.66, 12.91,13.11,13.30,13.51,13.98,14.12,14.35,14.54,14.87,14.99, 15.35,15.64,15.83,16.09,16.45,16.62,16.82,17.26,17.30,17.59, 17.90,18.10,18.29,18.51,18.83,19.21,19.33,19.77,19.89,20.13, 20.35,20.66,20.89,21.07,21.36,21.69,21.85,22.04,22.36,22.64, 22.86,23.15,23.50,23.64,23.87,24.01,24.25,24.68,24.86,25.14, 25.47,25.65,25.80,26.02,26.45,26.60,26.80,27.12,27.42,27.55, 27.91,27.94,28.43,28.49,28.88,29.22,29.54,29.80,29.77,30.00, 30.38,30.73,30.67,31.10,31.45,31.66,31.77,32.01,32.48,32.84, 33.01,33.27,33.43,33.67,33.95,34.34,34.44,34.63,34.87,35.03, 35.42,35.83,35.88,36.21,36.40,36.60,36.84,37.34,37.37,37.70, 38.04,38.14,38.43,38.79,38.88,39.19,39.50,39.63,39.98,40.18, 40.41,40.51,41.16,41.25,41.34,41.60,41.89,42.13,42.32,42.63, 42.87,43.08,43.44,43.72,43.80,44.28,44.37,44.40,45.01,45.12, 45.41,45.59,46.05,46.08,46.50,46.71,46.98,47.19,47.48,47.70, 47.92,48.23,48.62,48.66,48.84,49.28,49.54,49.94,50.03,50.14, 50.40,50.73,50.93,51.28,51.42,51.71,51.91,52.14,52.45,52.42, 52.85,53.06,53.22,53.57,53.95,54.22,54.48,54.66,55.08,55.33, 55.45,55.69,55.97,56.24,56.36,56.63,56.77,57.22,57.54,57.76, 57.77,58.35,58.58,58.45,59.01,59.13,59.25,59.89,59.82,60.06, 60.43,60.74,60.86,61.16,61.29,61.71,62.06,61.95,62.45,62.68, 62.86,63.32,63.26,63.89,64.06,64.34,64.19,64.81,65.04,65.11, 65.63,65.91,65.95,66.14,66.68,66.74,66.93,67.23,67.46,67.56, 68.02,68.30,68.20,68.54,68.95,69.34,69.46,69.76,69.89,70.16, 70.47,70.58,71.18,71.12,71.73,71.54,71.91,72.10,72.34,72.77, 73.04,73.44,73.38,73.61,73.90,74.12,74.14,74.63,74.94,75.19, 2.65,2.85,3.09,3.33,3.54,3.83,4.04,4.34,4.53,4.70, 4.94,5.16,5.41,5.73,5.88,6.16,6.41,6.60,6.84,7.05, 7.26,7.51,7.75,8.03,8.23,8.50,8.68,8.99,9.22,9.42, 9.66,9.84,10.01,10.38,10.56,10.74,10.91,11.34,11.56,11.60, 11.83,12.22,12.39,12.69,12.84,13.13,13.42,13.61,13.82,14.11, 14.28,14.59,14.62,14.97,15.19,15.46,15.71,15.87,16.16,16.42, 16.71,16.76,17.07,17.36,17.59,17.71,17.96,18.14,18.55,18.61, 19.05,19.23,19.39,19.57,19.83,20.12,20.29,20.43,20.82,21.12, 21.26,21.39,21.71,21.94,22.26,22.61,22.68,22.95,23.11,23.39, 23.50,23.94,23.90,24.45,24.64,24.76,25.14,25.29,25.45,25.73, 25.93,26.10,26.48,26.54,26.87,27.16,27.42,27.62,27.83,28.03, 28.21,28.61,28.62,28.91,29.07,29.50,29.72,29.87,30.26,30.30, 30.47,30.73,31.12,31.30,31.59,31.68,31.97,32.25,32.42,32.73, 33.18,33.15,33.48,33.37,33.80,34.16,34.31,34.52,34.83,35.06, 35.16,35.55,35.78,35.73,36.35,36.57,36.79,36.82,36.97,37.11, 37.47,37.84,37.90,38.32,38.61,38.77,38.97,39.32,39.39,39.81, 39.81,39.99,40.46,40.39,41.09,40.88,41.23,41.57,41.89,41.92, 42.12,42.34,42.73,42.79,43.30,43.27,43.83,43.97,44.19,44.46, 44.66,44.76,45.16,45.20,45.66,45.92,46.01,46.17,46.44,46.78, 47.04,47.37,47.26,47.74,47.93,47.97,48.30,48.51,48.90,49.02, 49.27,49.35,49.67,49.90,50.22,50.37,50.59,51.05,51.05,51.35, 51.63,51.68,51.80,52.17,52.59,52.86,52.87,53.14,53.47,53.65, 53.84,54.24,54.23,54.59,54.73,54.87,55.37,55.51,55.60,56.03, 56.23,56.56,56.78,56.95,57.12,57.46,57.45,58.02,58.14,58.30, 58.61,58.65,59.02,59.37,59.49,59.73,59.66,60.27,60.30,60.55, 60.90,60.77,61.29,61.43,61.78,61.92,61.87,62.42,62.88,62.87, 63.10,63.45,63.65,63.94,64.03,64.52,64.87,64.85,65.05,64.97, 65.72,65.97,66.12,65.95,66.60,66.45,66.88,67.22,67.22,67.62, 68.04,67.87,68.35,68.56,68.94,69.07,69.45,69.65,69.68,69.95, 2.48,2.65,2.88,3.08,3.32,3.54,3.74,3.97,4.18,4.50, 4.64,4.82,5.08,5.31,5.44,5.69,5.89,6.06,6.39,6.58, 6.79,7.08,7.20,7.44,7.77,7.80,8.01,8.33,8.50,8.71, 8.96,9.20,9.41,9.55,9.82,9.97,10.30,10.54,10.58,10.89, 11.16,11.32,11.66,11.72,12.01,12.36,12.43,12.62,12.85,12.93, 13.35,13.51,13.71,13.90,14.17,14.45,14.58,14.81,15.04,15.26, 15.43,15.57,15.92,16.21,16.27,16.53,16.77,17.06,17.15,17.31, 17.54,17.93,18.00,18.19,18.49,18.74,18.91,19.20,19.33,19.59, 19.70,20.04,20.17,20.49,20.64,20.91,21.14,21.46,21.51,21.66, 22.02,22.24,22.36,22.59,22.62,23.14,23.29,23.58,23.60,23.92, 24.16,24.26,24.60,24.76,24.83,25.20,25.25,25.63,25.76,26.36, 26.30,26.52,26.80,26.83,27.05,27.35,27.59,27.82,28.05,28.32, 28.46,28.73,28.90,29.22,29.35,29.50,29.81,29.88,30.10,30.37, 30.58,30.88,31.20,31.26,31.60,31.56,31.98,32.10,32.35,32.60, 32.94,32.95,33.14,33.29,33.61,33.86,34.16,34.40,34.53,34.69, 34.90,35.20,35.28,35.76,35.87,35.91,36.17,36.26,36.96,37.02, 37.11,37.26,37.58,37.56,37.93,38.26,38.23,38.75,38.86,39.04, 39.36,39.66,39.63,40.14,40.04,40.33,40.47,40.63,41.05,41.31, 41.50,41.64,41.97,42.14,42.36,42.45,42.86,43.00,43.30,43.40, 43.60,43.95,43.81,44.17,44.47,44.83,44.89,45.12,45.43,45.55, 45.55,45.93,46.07,46.50,46.64,47.03,47.13,47.25,47.25,47.84, 48.01,48.28,48.37,48.84,48.87,48.97,49.09,49.47,49.54,49.79, 49.99,50.32,50.73,50.83,51.01,51.12,51.52,51.57,51.67,52.15, 52.44,52.58,52.52,52.79,53.17,53.53,53.81,53.82,54.07,54.28, 54.45,54.66,54.79,55.10,55.41,55.60,56.10,55.88,56.15,56.40, 56.66,57.05,57.11,57.14,57.45,57.60,57.97,58.15,58.46,58.63, 58.83,58.91,59.25,59.64,59.69,60.13,60.17,60.52,60.64,60.74, 60.90,61.09,61.42,61.79,61.90,62.12,62.17,62.37,62.54,62.99, 63.01,63.32,63.64,63.89,63.89,63.99,64.34,64.62,64.89,65.11, 2.25,2.50,2.70,2.88,3.07,3.35,3.49,3.69,3.85,4.07, 4.29,4.53,4.71,4.92,5.13,5.26,5.49,5.72,5.91,6.12, 6.26,6.53,6.71,6.93,7.14,7.25,7.55,7.66,7.95,8.18, 8.34,8.49,8.75,8.91,9.13,9.38,9.48,9.71,9.86,10.14, 10.32,10.49,10.76,11.07,11.15,11.24,11.55,11.80,11.90,12.20, 12.46,12.53,12.78,13.04,13.14,13.28,13.54,13.81,14.01,14.15, 14.33,14.58,14.85,14.95,15.26,15.39,15.61,15.86,15.98,16.20, 16.38,16.64,16.74,16.96,17.16,17.27,17.60,17.77,18.07,18.11, 18.40,18.69,18.86,19.01,19.24,19.59,19.64,19.73,19.97,20.21, 20.44,20.55,20.94,21.12,21.30,21.44,21.57,21.85,22.17,22.35, 22.46,22.51,22.90,22.96,23.22,23.38,23.48,23.78,23.99,24.35, 24.48,24.64,24.85,24.91,25.28,25.49,25.63,25.82,25.93,26.22, 26.40,26.72,26.90,27.00,27.26,27.32,27.63,27.81,28.14,28.13, 28.52,28.69,28.82,29.20,29.29,29.59,29.60,29.86,29.98,30.26, 30.51,30.76,30.85,30.95,31.43,31.62,31.79,31.74,31.93,32.40, 32.35,32.63,32.98,33.14,33.35,33.54,33.69,33.99,34.01,34.34, 34.34,34.83,35.02,35.32,35.33,35.44,35.58,35.95,36.04,36.28, 36.46,36.88,36.87,37.14,37.26,37.58,37.76,37.91,38.08,38.41, 38.65,38.68,39.03,39.19,39.34,39.77,39.64,39.91,40.13,40.27, 40.70,40.81,40.91,41.13,41.27,41.84,41.72,41.97,42.09,42.37, 42.61,42.60,42.89,43.10,43.46,43.64,43.77,43.99,44.14,44.29, 44.53,44.78,44.75,45.41,45.48,45.70,45.88,45.87,46.22,46.41, 46.56,46.78,46.90,47.30,47.33,47.69,47.83,48.13,48.31,48.40, 48.52,48.97,48.97,49.13,49.46,49.79,49.71,49.80,50.19,50.39, 50.52,50.84,51.13,51.43,51.45,51.78,51.87,51.96,52.48,52.75, 52.61,52.82,53.06,53.25,53.60,53.56,53.88,54.02,54.36,54.42, 54.71,54.89,55.16,55.26,55.63,55.55,55.80,55.96,56.43,56.60, 56.58,57.01,57.20,57.37,57.54,57.73,57.87,57.92,58.19,58.47, 58.67,58.79,59.03,59.45,59.62,59.54,60.09,60.12,60.26,60.46, 2.12,2.29,2.49,2.68,2.91,3.08,3.23,3.49,3.61,3.81, 4.04,4.15,4.40,4.53,4.74,4.92,5.11,5.30,5.53,5.66, 5.84,6.05,6.27,6.48,6.64,6.79,6.96,7.14,7.38,7.49, 7.70,7.95,8.11,8.31,8.61,8.59,8.79,9.06,9.20,9.42, 9.64,9.80,10.08,10.17,10.36,10.63,10.76,10.86,11.06,11.38, 11.47,11.68,12.01,12.02,12.25,12.50,12.75,12.77,12.95,13.20, 13.36,13.53,13.73,13.90,14.07,14.39,14.47,14.76,14.79,15.00, 15.28,15.44,15.72,15.73,15.83,16.20,16.38,16.50,16.70,17.02, 17.08,17.31,17.48,17.68,17.82,18.11,18.29,18.43,18.68,18.71, 18.94,19.23,19.28,19.56,19.60,19.86,20.05,20.32,20.72,20.53, 20.82,20.89,21.43,21.42,21.72,21.79,21.86,22.20,22.28,22.53, 22.69,22.89,23.13,23.28,23.53,23.80,23.96,24.09,24.21,24.37, 24.54,24.67,25.04,25.05,25.28,25.56,25.85,25.93,26.29,26.13, 26.61,26.61,26.94,26.92,27.43,27.44,27.53,27.81,28.02,28.16, 28.22,28.55,28.84,29.16,29.12,29.20,29.47,29.65,29.73,30.07, 30.25,30.58,30.67,30.84,31.09,31.08,31.32,31.40,31.78,31.93, 32.19,32.38,32.47,32.62,32.78,32.90,33.25,33.19,33.50,33.73, 34.03,34.23,34.22,34.52,34.80,34.73,35.07,35.17,35.64,35.62, 35.97,36.20,36.33,36.37,36.64,36.77,36.86,37.06,37.34,37.56, 37.81,37.88,38.00,38.39,38.42,38.52,38.90,39.04,39.21,39.41, 39.57,39.82,39.82,40.07,40.37,40.56,40.75,40.97,41.16,41.34, 41.48,41.74,41.97,42.00,42.22,42.46,42.63,42.80,43.13,43.27, 43.25,43.44,43.74,43.73,44.07,44.14,44.49,44.82,44.79,45.00, 45.38,45.51,45.60,45.76,45.95,46.05,46.48,46.51,46.55,46.84, 47.29,47.28,47.53,47.84,47.94,47.94,48.25,48.43,48.54,48.73, 48.96,49.25,49.25,49.40,49.53,50.05,50.39,50.21,50.59,50.62, 50.83,51.05,51.30,51.70,51.54,51.82,52.10,52.22,52.61,52.47, 52.77,52.91,53.25,53.30,53.34,53.75,53.92,53.97,54.53,54.04, 54.33,54.79,55.14,55.28,55.34,55.45,55.95,55.81,56.13,56.10, 1.96,2.18,2.31,2.44,2.75,2.85,3.06,3.17,3.40,3.66, 3.76,3.89,4.01,4.15,4.43,4.63,4.77,5.00,5.09,5.26, 5.48,5.57,5.80,6.05,6.12,6.30,6.48,6.61,6.93,7.01, 7.24,7.39,7.50,7.75,7.90,8.05,8.21,8.45,8.55,8.81, 8.93,9.05,9.32,9.50,9.63,9.90,9.98,10.20,10.29,10.43, 10.75,10.76,10.98,11.28,11.38,11.57,11.70,11.79,12.12,12.26, 12.43,12.63,12.86,13.11,13.17,13.24,13.30,13.73,13.86,14.20, 14.15,14.49,14.54,14.71,14.82,15.04,15.28,15.36,15.68,15.71, 15.96,16.18,16.15,16.44,16.65,16.69,16.86,17.14,17.31,17.44, 17.71,17.82,18.09,18.15,18.34,18.58,18.61,18.81,19.03,19.23, 19.34,19.58,19.78,19.92,20.14,20.33,20.45,20.65,20.74,21.02, 21.21,21.27,21.39,21.58,21.76,21.98,22.12,22.34,22.65,22.76, 22.76,23.14,23.26,23.41,23.50,23.63,23.95,24.02,24.22,24.50, 24.67,24.97,24.83,25.19,25.39,25.51,25.62,25.71,26.14,26.30, 26.35,26.53,26.69,26.89,26.95,27.36,27.34,27.57,27.68,27.97, 28.21,28.34,28.31,28.51,28.77,28.88,29.13,29.25,29.54,29.69, 29.86,30.04,30.16,30.38,30.46,30.60,30.88,31.24,31.32,31.40, 31.52,31.66,31.94,32.13,32.40,32.47,32.57,33.00,33.09,33.26, 33.51,33.44,33.68,33.86,33.99,34.22,34.32,34.27,34.60,34.87, 35.13,35.13,35.38,35.56,35.90,36.12,36.24,36.30,36.49,36.59, 36.78,37.04,37.15,37.52,37.59,37.64,37.99,38.06,38.27,38.44, 38.49,38.75,38.85,39.22,39.12,39.46,39.44,39.72,39.80,40.01, 40.31,40.46,40.64,40.72,41.02,41.09,41.33,41.52,41.84,41.59, 42.00,42.25,42.45,42.84,42.78,43.14,43.18,43.22,43.37,43.60, 43.66,43.91,44.08,44.37,44.35,44.64,44.88,45.13,45.04,45.35, 45.51,45.64,46.03,46.12,46.35,46.52,46.46,46.97,47.10,47.20, 47.46,47.51,47.48,47.91,48.13,47.94,48.30,48.50,48.53,48.87, 49.20,49.23,49.44,49.52,49.72,50.03,49.84,50.41,50.65,50.64, 50.71,50.80,51.18,51.22,51.47,51.64,51.71,52.03,52.25,52.26, 1.85,1.98,2.20,2.29,2.48,2.64,2.79,2.99,3.14,3.28, 3.46,3.65,3.79,3.89,4.13,4.27,4.44,4.64,4.73,4.92, 5.09,5.25,5.42,5.67,5.76,5.89,6.00,6.21,6.45,6.54, 6.65,6.80,7.08,7.19,7.42,7.48,7.60,7.71,8.03,8.11, 8.27,8.43,8.73,8.87,8.81,9.18,9.26,9.33,9.60,9.78, 9.86,10.11,10.17,10.42,10.56,10.84,10.88,11.04,11.24,11.37, 11.58,11.80,11.89,11.97,12.19,12.28,12.48,12.66,12.84,13.07, 13.16,13.36,13.64,13.79,13.89,14.08,14.17,14.24,14.40,14.55, 14.79,15.02,15.24,15.29,15.44,15.54,15.86,15.95,16.10,16.38, 16.59,16.53,16.63,16.87,17.13,17.12,17.27,17.67,17.82,17.94, 17.94,18.14,18.33,18.47,18.76,18.95,18.99,19.15,19.44,19.38, 19.71,19.72,20.00,20.10,20.48,20.46,20.54,20.65,20.94,21.28, 21.20,21.50,21.61,21.75,21.88,22.12,22.43,22.53,22.60,22.77, 22.91,23.03,23.23,23.45,23.61,23.66,23.99,23.87,24.20,24.33, 24.65,24.75,24.92,24.77,25.04,25.39,25.52,25.62,25.88,25.90, 26.12,26.28,26.53,26.53,26.65,27.05,27.05,27.30,27.42,27.85, 27.85,27.85,28.02,28.32,28.48,28.63,28.82,28.89,28.95,29.21, 29.56,29.56,29.55,29.95,30.19,30.11,30.25,30.53,30.58,30.63, 31.30,31.07,31.29,31.50,31.58,31.84,31.93,32.07,32.40,32.45, 32.62,32.86,32.91,33.08,33.31,33.42,33.69,33.76,33.77,34.08, 34.25,34.32,34.60,34.61,35.15,34.94,35.36,35.54,35.41,35.77, 36.01,35.96,36.27,36.22,36.59,36.79,36.83,36.83,37.44,37.44, 37.36,37.59,37.88,37.96,37.95,38.04,38.32,38.53,38.76,38.88, 39.10,39.35,39.50,39.58,39.84,39.88,39.95,40.29,40.27,40.44, 40.56,40.84,41.03,41.27,41.36,41.59,41.74,42.08,42.00,42.18, 42.34,42.35,42.62,42.71,43.06,42.97,43.13,43.54,43.54,44.15, 43.89,44.10,44.23,44.30,44.59,44.76,45.11,45.20,45.24,45.47, 45.74,45.92,46.01,46.22,46.21,46.79,46.57,46.79,47.08,47.02, 47.38,47.38,47.67,47.67,47.99,47.97,48.14,48.39,48.68,48.68, 1.65,1.84,2.01,2.13,2.27,2.45,2.54,2.75,2.88,3.03, 3.25,3.27,3.46,3.70,3.84,3.96,4.18,4.22,4.47,4.59, 4.80,4.88,4.95,5.17,5.31,5.42,5.56,5.78,5.96,6.09, 6.18,6.37,6.66,6.67,6.85,6.95,7.13,7.23,7.47,7.61, 7.74,7.92,8.08,8.20,8.37,8.48,8.65,8.78,9.00,9.10, 9.28,9.37,9.46,9.64,9.83,9.91,10.14,10.21,10.41,10.67, 10.81,10.86,11.04,11.23,11.36,11.52,11.71,11.80,11.94,12.11, 12.25,12.40,12.52,12.73,12.93,12.98,13.18,13.32,13.62,13.57, 13.80,13.89,14.03,14.27,14.45,14.47,14.52,14.88,14.88,15.13, 15.32,15.43,15.64,15.78,15.91,16.00,16.26,16.40,16.53,16.71, 16.74,16.90,17.13,17.22,17.35,17.52,17.59,17.77,18.07,18.05, 18.26,18.36,18.51,18.59,18.83,18.95,19.21,19.34,19.35,19.61, 19.80,19.93,19.99,20.10,20.49,20.59,20.62,20.90,21.05,21.05, 21.30,21.48,21.77,21.83,21.85,22.02,22.20,22.33,22.53,22.58, 22.80,22.94,23.17,23.18,23.47,23.47,23.61,23.83,23.89,23.99, 24.27,24.45,24.62,24.83,24.85,25.05,25.22,25.30,25.55,25.67, 25.77,25.92,26.20,26.50,26.32,26.55,26.77,27.02,26.96,27.23, 27.23,27.53,27.52,27.87,27.89,28.19,28.32,28.35,28.58,28.72, 28.85,28.92,29.19,29.00,29.42,29.54,29.65,29.94,29.91,30.14, 30.41,30.61,30.53,30.66,30.96,31.06,31.30,31.36,31.54,31.66, 31.85,32.11,32.20,32.54,32.46,32.62,32.64,32.89,32.98,33.08, 33.30,33.62,33.47,33.76,34.05,33.87,34.36,34.23,34.46,34.74, 34.85,34.97,35.12,35.45,35.62,35.40,35.68,35.96,36.00,36.17, 36.28,36.72,36.55,36.94,37.11,37.12,37.44,37.48,37.76,37.59, 37.90,37.96,38.24,38.07,38.53,38.79,38.65,38.81,39.05,39.35, 39.51,39.45,39.61,39.74,39.72,40.31,40.15,40.44,40.64,40.91, 40.96,41.24,41.24,41.35,41.69,41.67,41.80,41.91,41.90,42.16, 42.22,42.55,42.53,43.08,43.08,43.23,43.45,43.71,43.76,43.83, 44.03,44.02,44.11,44.33,44.50,44.73,44.80,44.98,45.29,45.26, 1.59,1.76,1.87,1.98,2.19,2.30,2.43,2.59,2.69,2.86, 3.01,3.16,3.26,3.33,3.52,3.68,3.82,3.98,4.11,4.19, 4.39,4.51,4.55,4.80,4.99,5.09,5.20,5.41,5.63,5.58, 5.76,5.84,6.11,6.15,6.35,6.50,6.56,6.83,6.97,7.12, 7.16,7.31,7.51,7.66,7.79,8.00,8.10,8.20,8.20,8.60, 8.68,8.70,8.93,9.03,9.21,9.27,9.42,9.64,9.72,9.84, 10.04,10.12,10.35,10.43,10.47,10.75,10.88,10.96,11.23,11.18, 11.33,11.52,11.70,11.80,12.06,12.09,12.21,12.38,12.49,12.63, 12.78,12.94,13.03,13.23,13.40,13.43,13.52,13.87,13.80,14.05, 14.26,14.34,14.57,14.59,14.68,14.74,15.02,15.12,15.31,15.48, 15.58,15.84,15.73,16.07,16.21,16.29,16.40,16.60,16.82,16.88, 17.05,17.13,17.28,17.46,17.59,17.68,17.78,17.92,18.13,18.23, 18.46,18.62,18.64,18.75,18.95,19.05,19.24,19.17,19.54,19.62, 19.80,20.03,20.02,20.18,20.46,20.49,20.58,20.69,20.95,21.04, 21.12,21.36,21.47,21.46,21.74,21.83,22.07,22.13,22.48,22.66, 22.76,22.71,22.87,22.99,23.14,23.27,23.45,23.64,23.80,23.70, 24.12,24.21,24.29,24.68,24.65,24.80,24.78,25.04,25.05,25.21, 25.53,25.66,25.63,25.72,26.03,26.15,26.07,26.05,26.44,26.89, 26.81,26.82,27.12,27.16,27.32,27.60,27.67,27.99,27.90,28.03, 28.03,28.34,28.49,28.55,28.93,28.97,29.17,29.06,29.12,29.49, 29.68,29.78,29.84,29.98,30.24,30.15,30.39,30.55,30.66,31.03, 30.95,30.98,31.28,31.67,31.55,31.64,31.98,32.11,32.14,32.27, 32.42,32.60,32.83,32.83,32.91,33.10,33.31,33.30,33.40,33.77, 33.84,34.05,34.22,34.18,34.54,34.62,34.66,34.78,34.90,35.05, 35.30,35.49,35.40,35.66,35.96,35.76,36.19,36.49,36.26,36.60, 36.70,37.00,36.76,37.12,37.15,37.20,37.45,37.56,37.67,38.06, 38.12,38.10,38.14,38.46,38.41,38.76,38.70,38.89,39.32,39.22, 39.68,39.43,39.85,39.95,39.96,40.21,40.38,40.20,40.58,40.68, 41.05,40.91,41.23,41.36,41.42,41.60,41.53,41.91,41.98,42.28, 1.47,1.62,1.76,1.83,1.96,2.07,2.26,2.42,2.52,2.57, 2.79,2.97,3.08,3.14,3.27,3.38,3.53,3.70,3.83,3.94, 4.07,4.16,4.36,4.44,4.61,4.71,4.83,5.00,5.17,5.25, 5.36,5.44,5.62,5.76,6.02,6.01,6.13,6.29,6.37,6.54, 6.76,6.83,6.88,7.04,7.19,7.30,7.36,7.67,7.75,7.88, 7.98,8.05,8.18,8.37,8.46,8.67,8.78,8.99,9.11,9.11, 9.29,9.44,9.58,9.61,9.82,9.97,10.04,10.25,10.17,10.54, 10.61,10.80,10.95,11.03,11.13,11.25,11.36,11.51,11.64,11.87, 11.83,11.96,12.21,12.29,12.45,12.56,12.83,12.84,12.94,13.00, 13.31,13.27,13.55,13.64,13.71,13.91,13.95,14.14,14.21,14.36, 14.54,14.80,14.62,14.85,15.01,15.06,15.23,15.53,15.38,15.67, 15.94,15.99,16.13,16.21,16.43,16.48,16.69,16.78,16.84,17.08, 17.26,17.20,17.37,17.42,17.71,17.78,17.84,17.98,18.20,18.12, 18.26,18.61,18.75,18.87,19.13,19.20,19.28,19.31,19.39,19.53, 19.70,19.86,19.83,20.02,20.34,20.40,20.46,20.70,20.81,20.85, 21.08,21.09,21.32,21.59,21.57,21.62,21.95,21.99,22.09,22.07, 22.22,22.53,22.70,22.58,22.78,22.89,23.14,23.37,23.36,23.47, 23.67,23.67,23.84,24.03,24.30,24.31,24.51,24.52,24.71,24.75, 24.98,25.00,25.12,25.39,25.51,25.68,25.81,25.91,26.04,26.00, 26.26,26.48,26.52,26.82,26.69,26.88,27.13,27.23,27.23,27.44, 27.55,27.80,27.84,28.09,28.03,28.19,28.27,28.30,28.51,28.93, 28.96,29.09,29.10,29.04,29.33,29.67,29.69,29.71,29.77,30.08, 30.06,30.34,30.38,30.64,30.48,30.84,31.04,31.17,31.30,31.27, 31.44,31.56,31.46,31.78,32.00,32.04,32.14,32.33,32.57,32.57, 32.85,32.93,33.08,33.17,33.10,33.34,33.40,33.83,33.87,34.04, 34.12,34.28,34.38,34.49,34.65,34.80,34.88,35.09,35.19,35.43, 35.45,35.47,35.66,35.80,35.89,36.09,36.21,36.32,36.45,36.69, 36.84,36.94,36.96,36.90,37.17,37.16,37.44,37.48,37.70,37.82, 37.98,38.17,38.36,38.33,38.34,38.71,38.95,38.92,38.99,39.08, 3.97,4.34,4.68,4.96,5.41,5.64,5.97,6.31,6.71,7.03, 7.41,7.66,8.05,8.38,8.72,8.97,9.46,9.74,9.99,10.38, 10.81,11.06,11.50,11.79,12.11,12.42,12.87,13.12,13.40,13.93, 14.04,14.57,14.79,15.18,15.58,15.79,16.12,16.57,16.89,17.22, 17.60,17.95,18.31,18.59,18.84,19.41,19.77,19.93,20.34,20.64, 21.03,21.35,21.64,21.95,22.22,22.52,22.97,23.19,23.66,24.09, 24.35,24.77,24.97,25.46,25.83,26.06,26.35,26.74,27.22,27.39, 27.77,28.20,28.23,28.94,29.18,29.60,29.86,30.32,30.52,30.84, 31.23,31.76,32.23,32.28,32.75,33.08,33.17,33.75,33.82,34.22, 34.75,34.83,35.26,35.84,36.09,36.50,36.72,36.92,37.28,37.72, 37.98,38.56,38.81,39.04,39.51,39.83,40.00,40.43,40.78,41.22, 41.32,41.74,42.03,42.41,42.56,43.32,43.52,43.75,43.96,44.47, 45.00,45.19,45.41,45.96,46.21,46.39,47.03,47.33,47.62,47.50, 47.90,48.77,48.80,49.30,49.80,49.95,50.14,50.62,51.20,51.42, 51.86,52.03,52.28,52.74,53.11,53.48,53.71,54.21,54.56,54.83, 55.20,55.26,55.72,56.19,56.53,56.70,56.88,57.59,57.76,57.89, 58.74,58.67,59.14,59.44,60.16,60.31,60.62,60.67,61.31,61.24, 61.82,62.12,62.47,62.95,63.18,63.58,64.10,64.05,64.68,64.82, 65.18,65.69,65.77,66.31,66.58,66.97,67.00,67.62,67.98,68.55, 68.84,69.10,69.34,69.74,70.08,70.41,70.73,70.73,71.55,71.82, 71.86,72.49,72.81,73.15,73.31,74.01,74.19,74.20,74.90,75.28, 75.47,75.95,76.15,76.70,76.55,77.23,77.51,78.16,78.00,78.30, 79.03,79.26,79.69,80.19,80.09,80.56,81.11,81.74,81.63,82.19, 82.04,82.78,82.98,83.22,83.61,83.89,84.29,84.76,84.87,85.69, 85.72,86.25,86.44,86.72,86.93,87.60,87.83,88.12,88.59,88.78, 89.47,89.19,90.16,90.22,90.53,91.00,91.44,91.40,91.87,92.01, 92.72,92.95,93.27,93.62,94.05,93.96,94.50,95.21,95.13,95.46, 96.04,96.08,96.38,97.45,97.50,97.69,97.72,98.27,98.91,99.42, 99.41,99.27,100.42,100.37,100.69,101.15,101.60,101.83,102.13,102.61, 3.74,4.07,4.42,4.68,5.06,5.34,5.60,5.98,6.27,6.60, 6.97,7.27,7.48,7.87,8.09,8.53,8.79,9.21,9.52,9.83, 10.15,10.54,10.89,11.04,11.34,11.67,12.05,12.38,12.55,12.93, 13.22,13.69,13.97,14.22,14.62,14.89,15.06,15.47,15.98,16.30, 16.50,16.87,17.16,17.48,17.88,18.11,18.30,18.75,19.03,19.38, 19.82,19.97,20.37,20.70,21.09,21.20,21.76,21.95,22.32,22.69, 22.92,23.40,23.62,23.90,24.19,24.31,24.84,25.01,25.50,26.00, 26.10,26.40,26.70,27.08,27.61,27.71,28.14,28.41,28.79,29.17, 29.51,29.80,29.84,30.36,30.65,31.09,31.32,31.49,31.92,32.23, 32.53,32.94,33.23,33.49,33.88,34.09,34.35,34.83,35.16,35.43, 35.67,36.10,36.39,36.48,36.98,37.48,37.59,38.00,38.26,38.69, 39.11,39.31,39.74,39.96,40.05,40.64,41.03,41.14,41.56,41.89, 42.34,42.43,42.86,42.81,43.56,43.64,44.12,44.26,44.56,45.21, 45.37,45.74,46.14,46.39,46.64,47.12,47.26,47.57,47.98,48.34, 48.68,48.82,49.33,49.30,49.89,50.33,50.47,50.63,51.16,51.44, 51.81,51.85,52.37,52.80,53.28,53.11,53.81,53.95,54.46,54.86, 54.93,55.08,55.73,55.73,56.18,56.70,56.82,57.17,57.74,58.11, 58.02,58.70,58.96,59.14,59.55,59.82,60.33,60.20,60.72,61.12, 61.13,61.43,62.19,62.54,62.48,62.81,63.17,63.40,63.47,64.28, 64.55,64.97,65.12,65.59,65.83,66.38,66.59,66.73,67.12,67.48, 67.78,68.27,68.34,68.84,69.19,69.57,69.54,69.80,70.48,70.84, 70.77,71.44,71.53,71.99,72.15,72.85,72.69,73.13,73.70,73.68, 74.42,74.47,74.81,75.17,75.65,75.96,76.11,76.42,76.73,77.12, 77.41,77.86,78.28,78.27,78.67,78.73,79.38,79.55,80.08,80.55, 80.56,80.80,81.37,81.55,81.83,82.24,82.38,82.86,82.95,83.65, 83.69,84.16,84.06,84.86,85.40,85.55,85.80,85.93,86.40,86.61, 86.99,87.53,87.89,88.16,88.03,88.50,89.32,89.30,89.28,89.83, 90.18,90.50,90.62,91.59,91.49,91.54,92.05,92.71,92.95,92.78, 93.26,93.74,94.18,94.28,94.94,95.03,95.05,95.69,95.59,96.35, 3.46,3.78,4.07,4.43,4.69,5.01,5.37,5.59,5.90,6.22, 6.51,6.80,7.19,7.38,7.67,7.98,8.31,8.62,8.91,9.25, 9.52,9.81,10.08,10.43,10.68,11.01,11.33,11.64,11.95,12.31, 12.53,12.92,13.13,13.45,13.73,14.02,14.29,14.68,14.99,15.15, 15.46,15.85,16.17,16.42,16.68,16.99,17.19,17.67,17.81,18.42, 18.57,18.88,19.21,19.46,19.83,20.06,20.38,20.67,20.98,21.20, 21.58,21.99,22.07,22.48,22.83,23.14,23.38,23.73,23.92,24.41, 24.52,24.79,25.20,25.35,25.68,26.17,26.54,26.66,27.04,27.11, 27.71,27.82,28.03,28.58,28.80,29.07,29.39,29.64,30.07,30.27, 30.34,30.90,31.20,31.45,31.88,32.24,32.41,32.63,32.91,33.25, 33.52,33.92,34.23,34.45,34.80,35.03,35.36,35.58,35.93,36.23, 36.60,36.94,37.31,37.42,37.62,38.29,38.32,38.70,38.84,39.54, 39.60,39.96,40.20,40.71,40.86,41.21,41.43,41.81,42.02,42.42, 42.64,42.84,43.31,43.48,44.20,44.14,44.53,44.74,45.27,45.27, 45.49,45.76,46.15,46.66,46.74,47.14,47.68,47.69,48.13,48.29, 48.70,48.87,49.15,49.60,49.85,50.30,50.33,50.69,51.02,51.32, 51.68,52.03,52.16,52.79,52.89,53.20,53.35,53.86,53.92,54.41, 54.73,55.23,55.49,55.69,55.72,55.88,56.55,56.60,57.05,57.34, 57.83,57.73,58.36,58.74,59.08,59.15,59.48,59.71,60.26,60.12, 60.62,60.96,61.35,61.73,61.86,62.07,62.46,62.72,63.23,63.37, 63.73,64.03,64.36,64.81,65.06,65.22,65.67,65.92,65.83,66.68, 66.72,67.04,67.16,67.72,68.06,68.36,68.30,68.72,69.12,69.68, 69.68,70.16,70.54,70.91,70.94,71.28,71.46,71.83,72.38,72.50, 72.94,73.19,73.53,73.44,74.13,73.99,74.85,74.81,75.22,75.68, 75.76,75.86,76.32,76.60,77.14,77.46,77.40,77.85,78.31,78.52, 78.95,78.94,79.22,79.77,80.18,80.41,80.78,80.66,81.05,81.22, 81.72,82.43,82.49,82.73,82.98,83.46,83.60,84.18,84.21,84.78, 84.64,84.88,85.62,86.07,85.85,86.16,86.48,86.72,87.44,87.44, 87.81,88.08,88.44,89.08,89.08,89.49,89.45,89.94,90.13,90.73, 3.25,3.58,3.85,4.08,4.42,4.72,4.93,5.24,5.54,5.90, 6.09,6.35,6.70,6.91,7.26,7.48,7.81,8.14,8.35,8.65, 9.00,9.17,9.54,9.78,10.04,10.37,10.61,10.98,11.29,11.48, 11.77,12.10,12.33,12.60,12.99,13.25,13.56,13.74,13.99,14.22, 14.64,14.87,15.17,15.50,15.79,15.96,16.43,16.59,16.87,17.18, 17.38,17.81,18.02,18.40,18.62,18.80,19.23,19.42,19.66,19.91, 20.31,20.55,20.79,21.15,21.28,21.62,21.92,22.34,22.55,22.67, 23.17,23.35,23.75,23.89,24.07,24.61,24.95,25.01,25.54,25.73, 25.88,26.25,26.41,26.80,27.07,27.35,27.70,27.81,28.19,28.56, 28.76,29.07,29.33,29.64,29.87,30.14,30.42,30.73,31.02,31.36, 31.61,31.89,32.18,32.31,32.75,32.93,33.42,33.41,33.73,34.08, 34.45,34.80,35.16,35.14,35.62,35.86,36.16,36.35,36.64,36.98, 37.24,37.53,37.96,38.06,38.49,38.79,39.04,39.18,39.53,39.88, 39.99,40.37,40.98,40.95,41.17,41.23,41.93,42.00,42.31,42.53, 42.81,43.15,43.49,43.85,44.03,44.22,44.48,44.90,45.29,45.46, 45.80,45.95,46.30,46.43,46.89,47.15,47.41,47.85,48.08,48.40, 48.57,48.98,49.27,49.49,49.71,49.81,50.41,50.48,50.88,51.01, 51.41,51.82,51.99,52.35,52.70,52.73,53.33,53.18,53.55,53.89, 54.21,54.48,55.02,55.14,55.42,55.74,55.84,56.24,56.62,56.68, 57.10,57.07,57.62,57.97,58.42,58.58,58.79,59.08,59.21,59.59, 59.78,60.10,60.38,60.76,61.20,61.33,61.71,61.82,61.95,62.52, 62.57,63.00,63.25,63.48,63.72,64.08,64.54,64.81,65.08,65.52, 65.51,65.91,66.19,66.63,66.91,67.15,67.27,67.49,67.94,67.98, 68.39,68.76,68.71,69.40,69.65,69.74,69.88,70.16,70.61,71.15, 71.53,71.22,71.71,72.23,72.47,72.74,72.71,73.26,73.52,73.61, 74.22,74.32,74.76,74.97,75.20,75.63,75.84,76.17,76.39,76.57, 76.94,77.05,77.50,77.65,77.81,78.23,78.81,78.84,79.39,79.26, 79.66,79.83,80.49,80.46,80.71,81.19,81.44,81.75,82.09,82.03, 82.67,82.90,83.26,83.35,83.44,83.60,84.17,84.54,85.03,85.24, 3.09,3.33,3.67,3.90,4.17,4.43,4.63,4.89,5.20,5.43, 5.75,6.02,6.35,6.49,6.86,7.14,7.26,7.58,7.83,8.16, 8.35,8.74,9.02,9.22,9.43,9.71,10.02,10.20,10.54,10.77, 11.01,11.32,11.66,11.87,12.05,12.46,12.67,12.77,13.20,13.45, 13.71,14.01,14.22,14.49,14.80,15.08,15.29,15.50,15.75,16.09, 16.36,16.70,16.80,17.18,17.46,17.68,17.97,18.24,18.49,18.84, 19.00,19.26,19.54,19.82,20.10,20.50,20.56,21.06,21.18,21.41, 21.65,22.02,22.25,22.62,22.79,23.19,23.28,23.48,23.84,24.19, 24.30,24.79,24.87,25.25,25.30,25.72,25.95,26.18,26.51,26.84, 26.86,27.14,27.64,27.67,28.01,28.34,28.68,28.88,29.10,29.51, 29.60,29.91,30.40,30.40,30.76,31.12,31.28,31.62,31.77,32.06, 32.25,32.71,32.82,33.12,33.45,33.92,34.06,34.38,34.51,34.88, 35.09,35.25,35.69,35.99,36.10,36.32,36.71,36.97,37.02,37.35, 37.60,38.08,38.15,38.34,38.80,38.89,39.29,39.59,39.81,39.90, 40.30,40.41,40.86,41.04,41.58,41.68,42.01,42.13,42.59,42.78, 43.07,43.10,43.61,43.69,44.09,44.45,44.67,45.12,45.03,45.51, 45.76,45.53,46.22,46.34,46.77,46.85,47.04,47.49,48.02,48.13, 48.23,48.66,48.81,48.96,49.45,49.91,49.94,50.09,50.44,50.61, 51.05,51.29,51.70,51.82,52.05,52.48,52.32,52.86,53.12,53.55, 53.67,53.86,54.10,54.37,54.84,55.02,55.35,55.48,55.74,56.19, 56.18,56.47,56.67,57.07,57.31,57.55,57.96,58.10,58.44,58.72, 59.04,59.20,59.52,59.71,59.97,60.22,60.41,60.92,61.08,61.30, 61.70,61.99,62.26,62.30,62.70,63.00,63.40,63.44,63.93,64.08, 64.35,64.68,64.72,65.07,65.28,65.64,65.81,66.08,66.39,66.80, 66.91,67.12,67.57,67.99,68.14,68.31,68.71,68.65,69.12,69.40, 69.64,69.60,70.30,70.55,70.76,70.87,71.27,71.52,71.95,72.25, 72.18,72.47,72.90,73.33,73.50,73.71,73.79,74.26,74.64,74.93, 74.86,75.17,75.59,76.00,76.08,76.46,76.49,76.87,77.11,77.23, 77.92,77.74,78.11,78.36,78.85,79.07,79.06,79.48,79.92,79.91, 2.93,3.14,3.38,3.64,3.92,4.19,4.41,4.60,4.89,5.14, 5.41,5.71,5.93,6.17,6.37,6.57,6.88,7.16,7.41,7.65, 7.82,8.16,8.45,8.64,8.92,9.21,9.46,9.63,9.88,10.20, 10.51,10.62,10.88,11.20,11.34,11.73,11.87,12.13,12.38,12.65, 12.92,13.24,13.41,13.65,13.90,14.20,14.43,14.52,14.86,15.12, 15.48,15.66,15.85,16.27,16.30,16.55,16.94,17.25,17.41,17.74, 17.91,18.24,18.46,18.53,18.88,19.11,19.45,19.77,19.89,20.16, 20.43,20.61,20.87,21.10,21.42,21.61,21.92,22.20,22.46,22.63, 22.98,23.17,23.38,23.65,23.86,24.10,24.31,24.54,24.91,25.17, 25.36,25.57,26.01,26.16,26.35,26.71,26.98,27.20,27.40,27.80, 27.92,28.16,28.36,28.64,28.84,29.09,29.50,29.66,30.10,30.29, 30.46,30.63,30.88,31.29,31.37,31.51,31.94,32.33,32.41,32.52, 32.95,33.15,33.36,33.78,33.98,34.05,34.62,34.74,34.82,35.21, 35.54,35.71,35.89,36.06,36.45,36.65,36.91,36.97,37.40,37.55, 37.94,38.17,38.45,38.69,38.92,39.18,39.40,39.73,39.97,40.35, 40.44,40.74,41.05,41.07,41.33,41.59,41.95,42.22,42.41,42.61, 42.91,43.23,43.33,43.64,43.95,44.20,44.44,44.77,44.75,45.22, 45.40,45.69,46.08,46.08,46.58,46.73,46.88,47.41,47.59,47.72, 47.79,48.03,48.47,48.57,48.90,49.00,49.32,49.58,50.17,50.01, 50.52,50.92,50.95,51.30,51.42,51.58,51.86,52.18,52.49,52.55, 52.84,53.02,53.41,53.66,53.74,53.96,54.50,54.76,54.94,55.23, 55.48,55.72,55.92,56.23,56.32,56.56,56.71,57.23,57.48,57.77, 57.80,57.92,58.39,58.75,58.90,59.12,59.44,59.41,60.05,60.34, 60.31,60.47,60.96,61.13,61.51,61.69,62.05,62.12,62.40,62.77, 62.99,63.24,63.35,63.73,63.91,64.00,64.70,64.76,64.81,65.01, 65.54,65.55,66.13,66.17,66.59,66.86,66.81,67.22,67.45,67.48, 67.99,68.15,68.62,68.61,68.93,69.43,69.44,69.92,69.83,70.25, 70.47,70.62,70.76,71.08,71.53,71.71,71.92,72.18,72.44,72.65, 73.26,73.34,73.22,73.77,74.06,74.31,74.34,74.76,75.10,75.26, 2.73,3.04,3.17,3.41,3.65,3.91,4.13,4.38,4.53,4.85, 5.13,5.27,5.63,5.79,6.02,6.19,6.47,6.69,6.94,7.18, 7.43,7.68,7.87,8.08,8.41,8.58,8.82,9.08,9.31,9.57, 9.81,10.09,10.24,10.60,10.65,10.92,11.13,11.46,11.67,11.98, 12.17,12.36,12.65,12.76,13.08,13.28,13.55,13.76,14.01,14.14, 14.49,14.71,14.95,15.22,15.47,15.74,15.90,16.08,16.35,16.62, 16.83,17.08,17.30,17.43,17.73,18.07,18.29,18.38,18.71,18.84, 19.18,19.40,19.70,20.00,20.11,20.35,20.56,20.89,21.12,21.23, 21.53,21.79,21.99,22.23,22.51,22.82,22.93,23.21,23.34,23.67, 24.00,23.95,24.29,24.72,24.93,25.12,25.35,25.57,25.70,26.06, 26.20,26.31,26.60,26.89,27.28,27.32,27.67,28.00,28.14,28.34, 28.61,28.80,28.97,29.26,29.50,29.90,29.98,30.16,30.39,30.82, 31.00,31.24,31.45,31.72,31.99,32.24,32.42,32.62,32.98,33.21, 33.40,33.55,33.82,33.97,34.13,34.66,34.55,34.99,35.27,35.35, 35.72,35.89,36.05,36.13,36.72,36.95,36.73,37.18,37.60,37.83, 38.00,38.51,38.45,38.60,38.92,39.09,39.48,39.70,39.88,39.90, 40.46,40.46,40.86,41.03,41.29,41.73,41.77,42.01,42.36,42.55, 42.68,42.93,43.41,43.44,43.53,44.05,44.03,44.34,44.71,44.68, 44.91,45.30,45.74,45.75,46.11,46.28,46.32,46.79,46.94,47.04, 47.46,47.62,47.97,48.03,48.16,48.61,48.76,48.94,49.22,49.45, 49.60,50.05,50.30,50.17,50.97,50.80,51.02,51.62,51.68,51.69, 52.20,52.35,52.67,52.86,53.02,53.36,53.39,53.77,53.90,54.21, 54.41,54.76,54.89,55.20,55.26,55.57,56.06,56.11,56.23,56.62, 56.95,57.06,57.39,57.34,57.60,58.07,58.38,58.45,58.88,58.97, 59.08,59.46,60.02,59.90,59.86,60.26,60.54,60.99,60.95,61.55, 61.65,61.71,62.07,62.06,62.52,62.44,63.15,63.06,63.40,63.64, 64.02,63.95,64.44,64.52,64.65,65.10,65.32,65.66,65.75,65.98, 66.06,66.29,66.85,66.91,67.21,67.32,67.45,68.09,68.01,68.35, 68.59,68.61,69.00,69.11,69.79,69.77,69.96,70.45,70.25,70.75, 2.56,2.76,3.01,3.20,3.45,3.65,3.89,4.12,4.37,4.55, 4.82,5.03,5.27,5.42,5.64,5.88,6.15,6.34,6.52,6.78, 6.96,7.19,7.35,7.67,7.85,8.03,8.27,8.55,8.78,8.88, 9.28,9.43,9.57,9.92,10.10,10.25,10.56,10.75,11.03,11.12, 11.41,11.57,11.84,12.11,12.17,12.55,12.86,13.02,13.15,13.40, 13.68,13.86,13.97,14.29,14.50,14.74,14.94,15.07,15.47,15.66, 15.84,16.07,16.38,16.59,16.66,16.93,17.11,17.27,17.68,17.81, 18.06,18.24,18.37,18.65,18.91,19.01,19.34,19.62,19.79,20.00, 20.26,20.46,20.82,20.96,21.12,21.34,21.65,21.79,21.97,22.24, 22.53,22.79,22.94,23.16,23.38,23.67,23.84,24.01,24.25,24.55, 24.76,24.86,25.17,25.41,25.59,25.83,26.07,26.14,26.42,26.54, 26.88,27.06,27.46,27.55,27.75,27.87,28.15,28.42,28.69,28.90, 29.03,29.23,29.57,29.66,30.13,30.21,30.41,30.79,30.78,31.07, 31.26,31.49,31.82,31.75,32.28,32.26,32.67,32.80,33.15,33.29, 33.53,33.69,33.77,34.11,34.31,34.78,34.80,35.07,35.25,35.58, 35.67,35.89,36.10,36.46,36.63,36.93,36.98,37.13,37.55,37.76, 37.89,38.09,38.32,38.70,38.99,39.05,39.33,39.54,39.77,40.12, 40.04,40.57,40.53,40.87,40.96,41.27,41.48,41.59,41.97,42.23, 42.38,42.60,42.73,43.10,43.19,43.36,43.67,43.91,44.06,44.40, 44.41,44.69,44.91,45.19,45.34,45.70,45.84,46.12,46.37,46.46, 46.96,47.16,47.15,47.41,47.82,47.93,48.00,48.48,48.39,48.92, 48.94,49.22,49.34,49.76,49.78,50.04,50.56,50.47,50.70,51.05, 51.10,51.21,51.49,51.81,52.10,52.36,52.60,52.68,53.02,53.01, 53.47,53.48,54.05,54.11,54.24,54.36,54.77,54.87,55.09,55.58, 55.42,55.83,55.97,56.35,56.63,56.53,56.97,57.17,57.35,57.54, 57.98,57.93,58.40,58.77,58.67,58.74,59.13,59.47,59.59,59.69, 59.91,60.35,60.58,60.88,60.91,61.20,61.42,61.72,61.84,62.12, 62.24,62.33,62.67,62.88,63.02,63.24,63.62,63.76,63.97,64.02, 64.68,64.59,64.98,65.03,65.46,65.58,65.70,65.96,66.22,66.37, 2.40,2.63,2.84,3.03,3.16,3.44,3.67,3.86,4.04,4.29, 4.45,4.73,4.90,5.11,5.37,5.49,5.78,5.93,6.08,6.31, 6.52,6.80,6.96,7.18,7.39,7.59,7.84,7.98,8.21,8.43, 8.62,8.86,9.08,9.25,9.51,9.61,9.73,10.21,10.37,10.55, 10.73,10.94,11.23,11.31,11.61,11.78,11.88,12.24,12.30,12.65, 12.70,12.90,13.17,13.37,13.69,13.83,13.99,14.32,14.52,14.66, 14.96,15.08,15.39,15.64,15.75,15.95,16.11,16.28,16.64,16.76, 16.94,17.18,17.49,17.56,17.69,18.03,18.13,18.41,18.51,18.94, 19.03,19.14,19.38,19.69,19.75,20.09,20.19,20.59,20.70,20.75, 21.07,21.31,21.51,21.84,21.91,22.04,22.38,22.46,22.81,22.86, 23.07,23.36,23.50,23.79,24.01,24.22,24.45,24.78,24.90,25.06, 25.13,25.52,25.80,25.93,25.95,26.39,26.55,26.81,26.80,27.17, 27.29,27.65,27.74,27.88,28.15,28.41,28.71,28.93,29.02,29.27, 29.42,29.53,29.84,30.00,30.33,30.43,30.51,30.77,30.93,31.36, 31.56,31.46,32.02,32.21,32.28,32.42,32.70,32.82,33.09,33.52, 33.66,33.66,33.97,34.01,34.43,34.82,34.78,35.09,34.92,35.41, 35.60,35.85,36.15,36.43,36.55,36.68,36.98,37.12,37.34,37.74, 37.66,37.94,38.15,38.36,38.60,38.75,38.90,39.30,39.49,39.49, 39.77,40.10,40.25,40.58,40.52,40.78,41.08,41.29,41.63,41.84, 41.86,42.10,42.31,42.47,42.68,43.00,43.31,43.40,43.55,43.83, 43.82,44.02,44.42,44.66,44.67,45.09,45.10,45.35,45.51,46.00, 46.09,46.14,46.21,46.61,46.99,47.02,47.43,47.61,47.68,47.81, 48.21,48.49,48.40,48.92,48.95,49.19,49.26,49.45,49.73,49.97, 50.26,50.36,50.65,50.96,50.93,51.12,51.20,51.65,51.71,52.26, 52.39,52.47,52.67,53.00,53.10,53.14,53.37,53.76,53.91,54.08, 54.48,54.54,54.88,55.05,55.13,55.37,55.66,55.69,55.78,56.20, 56.42,56.70,56.58,56.99,57.27,57.53,57.85,57.98,58.15,58.37, 58.50,58.48,58.64,59.48,59.41,59.73,59.51,59.93,60.05,60.30, 60.52,60.70,60.94,61.41,61.29,61.67,61.77,61.92,62.51,62.51, 2.27,2.45,2.65,2.85,3.08,3.23,3.45,3.65,3.79,4.02, 4.19,4.40,4.58,4.82,5.04,5.15,5.40,5.58,5.74,6.02, 6.16,6.33,6.58,6.75,6.92,7.13,7.38,7.53,7.67,8.00, 8.03,8.22,8.54,8.62,8.94,9.07,9.25,9.63,9.63,9.80, 10.07,10.27,10.53,10.65,10.95,11.11,11.27,11.38,11.59,11.82, 12.11,12.27,12.41,12.64,12.79,13.10,13.29,13.30,13.56,13.81, 13.99,14.20,14.32,14.57,14.68,14.85,15.16,15.35,15.48,15.76, 16.01,16.02,16.32,16.53,16.77,16.90,17.11,17.21,17.47,17.80, 17.90,18.08,18.30,18.48,18.77,18.95,19.05,19.41,19.51,19.59, 19.85,20.03,19.94,20.43,20.57,20.81,21.10,21.32,21.36,21.54, 21.71,22.05,22.28,22.43,22.49,22.77,23.16,23.11,23.38,23.59, 23.70,23.83,24.09,24.32,24.48,24.73,24.93,25.20,25.32,25.53, 25.72,25.95,26.02,26.37,26.62,26.63,26.84,27.23,27.38,27.43, 27.59,27.86,28.08,28.22,28.50,28.43,28.82,28.93,29.22,29.37, 29.69,29.72,29.94,30.22,30.33,30.53,30.92,30.96,31.20,31.40, 31.49,31.95,32.03,32.05,32.29,32.35,32.68,33.03,33.13,33.32, 33.44,33.77,33.93,34.13,34.25,34.45,34.67,34.94,35.18,35.32, 35.59,35.59,35.88,36.13,36.38,36.51,36.58,36.92,37.15,37.31, 37.46,37.50,37.79,38.02,38.13,38.46,38.47,38.84,39.17,39.07, 39.39,39.58,39.78,39.94,40.06,40.60,40.56,40.82,40.88,41.08, 41.40,41.62,41.72,41.93,42.33,42.34,42.52,42.64,42.88,43.12, 43.24,43.31,43.77,43.85,43.97,44.01,44.45,44.60,45.02,45.18, 45.10,45.38,45.66,45.88,46.13,46.15,46.41,46.53,47.05,47.06, 47.38,47.48,47.51,47.73,48.22,48.21,48.25,48.42,48.61,48.99, 49.15,49.36,49.52,49.69,49.91,50.19,50.24,50.39,50.85,50.91, 51.11,51.31,51.46,51.54,51.93,52.04,52.33,52.61,52.56,52.99, 53.12,53.37,53.36,54.01,54.04,53.91,54.09,54.53,54.61,54.68, 55.09,55.35,55.31,55.61,55.80,55.88,55.97,56.22,56.47,56.58, 57.09,57.37,57.28,57.63,57.54,57.71,58.12,58.28,58.35,58.64, 2.16,2.28,2.47,2.73,2.84,3.05,3.23,3.44,3.56,3.75, 3.95,4.17,4.35,4.46,4.78,4.93,5.08,5.23,5.45,5.58, 5.71,5.94,6.16,6.35,6.58,6.68,6.94,7.00,7.23,7.48, 7.69,7.76,8.01,8.16,8.31,8.59,8.77,8.93,9.13,9.33, 9.50,9.65,9.84,10.01,10.20,10.37,10.56,10.74,11.02,11.15, 11.34,11.50,11.70,11.83,12.15,12.22,12.29,12.52,12.79,12.98, 13.14,13.28,13.52,13.59,13.82,14.07,14.22,14.35,14.65,14.83, 15.01,15.08,15.43,15.59,15.75,15.87,16.05,16.23,16.31,16.70, 16.87,16.94,17.16,17.34,17.63,17.69,17.91,18.10,18.29,18.48, 18.56,18.80,19.03,19.24,19.53,19.52,19.79,19.85,20.04,20.28, 20.47,20.60,20.91,21.09,21.18,21.44,21.55,21.79,21.98,22.09, 22.34,22.55,22.57,22.88,23.16,23.28,23.40,23.61,23.78,23.99, 24.22,24.22,24.59,24.61,24.99,25.07,25.29,25.34,25.61,26.03, 25.89,26.12,26.34,26.48,26.81,27.01,27.18,27.27,27.51,27.77, 27.69,27.95,28.19,28.42,28.54,28.86,28.93,28.93,29.24,29.47, 29.66,29.82,29.92,30.21,30.37,30.63,30.79,30.83,31.41,31.10, 31.56,31.66,31.92,32.14,32.15,32.54,32.71,32.69,33.09,33.36, 33.48,33.43,33.93,33.92,34.12,34.32,34.54,34.64,34.79,34.94, 35.21,35.24,35.65,35.66,35.85,36.10,36.33,36.39,36.79,36.89, 36.97,37.15,37.25,37.58,37.78,38.02,38.09,38.59,38.66,38.61, 38.71,39.16,39.35,39.39,39.55,39.83,39.98,40.32,40.28,40.54, 40.62,40.71,41.15,41.23,41.19,41.60,41.85,41.98,42.09,42.35, 42.52,42.43,42.87,43.19,43.30,43.35,43.64,43.74,43.65,44.30, 44.29,44.58,44.77,44.73,45.17,45.28,45.63,45.68,45.83,46.11, 46.44,46.37,46.48,46.81,46.90,47.32,47.40,47.36,47.62,47.93, 47.90,48.15,48.41,48.58,48.77,48.93,49.11,49.32,49.56,49.59, 49.94,50.17,50.11,50.29,50.63,50.61,51.05,51.01,51.30,51.67, 51.77,51.91,52.05,52.18,52.35,52.60,52.93,52.83,53.22,53.48, 53.68,53.72,53.82,54.10,54.18,54.38,54.84,54.76,54.99,55.38, 1.94,2.12,2.37,2.53,2.72,2.84,3.01,3.14,3.38,3.52, 3.69,3.87,4.04,4.19,4.47,4.58,4.79,4.92,5.10,5.24, 5.46,5.70,5.73,5.98,6.12,6.21,6.51,6.71,6.83,7.08, 7.17,7.26,7.55,7.67,7.79,8.04,8.19,8.38,8.54,8.78, 8.90,9.09,9.32,9.42,9.61,9.78,9.97,10.10,10.32,10.43, 10.74,10.75,10.95,11.16,11.32,11.54,11.64,11.90,11.91,12.22, 12.46,12.40,12.70,12.79,13.09,13.19,13.39,13.59,13.69,13.89, 14.14,14.23,14.30,14.69,14.76,14.94,15.06,15.38,15.46,15.59, 15.75,16.05,16.22,16.26,16.45,16.77,16.89,17.04,17.20,17.29, 17.64,17.74,17.98,18.06,18.26,18.37,18.57,18.71,18.81,19.13, 19.46,19.47,19.49,19.78,20.02,20.06,20.18,20.45,20.59,20.83, 21.12,21.18,21.40,21.50,21.65,21.76,22.05,22.31,22.38,22.62, 22.72,22.92,23.01,23.08,23.45,23.56,23.70,23.84,24.17,24.35, 24.39,24.50,24.90,24.88,25.28,25.29,25.57,25.79,25.77,26.03, 26.33,26.33,26.51,26.69,27.02,27.08,27.06,27.35,27.55,27.58, 27.93,28.14,28.11,28.48,28.47,28.76,28.93,29.25,29.33,29.39, 29.55,29.89,29.95,30.04,30.27,30.38,30.81,30.86,30.86,31.16, 31.44,31.53,31.69,31.81,32.19,32.15,32.38,32.47,32.70,32.84, 33.20,33.32,33.42,33.55,33.77,34.03,34.05,34.36,34.61,34.56, 34.78,34.87,35.17,35.33,35.50,35.64,35.80,35.78,36.00,36.27, 36.58,36.66,37.02,37.13,37.19,37.56,37.70,37.59,37.86,38.25, 38.25,38.34,38.42,38.79,39.08,39.13,39.24,39.39,39.46,39.67, 39.97,40.17,40.16,40.50,40.67,40.93,41.03,41.13,41.35,41.66, 41.72,41.72,42.05,42.13,42.35,42.39,42.56,43.04,43.26,43.30, 43.27,43.74,43.73,43.80,44.11,44.41,44.44,44.56,44.71,45.21, 45.26,45.44,45.61,45.56,45.61,46.01,46.18,46.19,46.41,46.70, 46.81,47.16,47.28,47.58,47.59,47.66,47.87,48.25,48.40,48.39, 48.61,48.70,49.06,49.26,49.37,49.63,49.66,49.74,50.10,50.20, 50.49,50.69,50.50,50.79,50.92,51.10,51.37,51.55,51.76,51.77, 1.87,2.06,2.22,2.39,2.57,2.68,2.87,3.01,3.20,3.29, 3.50,3.65,3.79,4.00,4.18,4.30,4.48,4.69,4.77,4.91, 5.08,5.33,5.45,5.53,5.76,6.04,6.09,6.27,6.38,6.63, 6.72,6.96,7.08,7.32,7.35,7.67,7.72,7.92,8.09,8.17, 8.35,8.53,8.75,8.95,9.07,9.20,9.32,9.43,9.78,9.82, 10.02,10.09,10.35,10.49,10.60,10.79,10.94,11.15,11.28,11.46, 11.65,11.82,11.95,12.10,12.20,12.37,12.58,12.77,12.93,13.06, 13.20,13.44,13.53,13.71,13.97,14.09,14.17,14.46,14.73,14.76, 14.86,15.05,15.18,15.24,15.54,15.68,15.82,15.96,16.17,16.27, 16.51,16.75,16.85,16.78,17.15,17.39,17.41,17.66,17.76,17.97, 18.11,18.41,18.60,18.62,18.82,18.97,19.00,19.27,19.39,19.61, 19.72,19.72,20.00,20.21,20.54,20.50,20.53,20.87,21.02,21.05, 21.22,21.51,21.63,21.93,22.10,22.22,22.40,22.48,22.71,22.83, 22.96,23.21,23.38,23.48,23.59,23.80,24.02,24.11,24.39,24.34, 24.72,24.69,24.94,25.20,25.29,25.38,25.62,25.72,25.91,25.95, 26.12,26.46,26.52,26.74,26.90,26.89,27.19,27.40,27.65,27.62, 27.77,28.03,28.14,28.19,28.71,28.62,28.77,28.90,29.15,29.53, 29.66,29.56,29.71,30.04,30.07,30.20,30.45,30.68,31.02,31.12, 31.14,31.24,31.41,31.55,31.86,31.86,32.05,32.28,32.47,32.49, 32.70,32.83,32.87,33.06,33.48,33.41,33.71,33.89,34.02,34.22, 34.30,34.27,34.58,34.67,34.90,35.20,35.24,35.39,35.65,35.88, 36.08,36.10,36.30,36.29,36.62,36.69,36.99,36.95,37.17,37.56, 37.53,37.59,37.88,37.98,38.20,38.31,38.54,38.56,38.98,38.91, 39.19,39.31,39.57,39.63,39.88,40.23,40.12,40.43,40.39,40.73, 40.60,40.99,41.07,41.46,41.60,41.66,41.87,41.93,42.16,42.25, 42.43,42.63,42.97,43.04,43.10,43.19,43.56,43.63,43.60,43.93, 43.90,44.23,44.30,44.58,44.62,44.76,45.06,45.09,45.45,45.60, 45.63,45.98,46.05,46.23,46.47,46.55,46.88,46.69,47.13,46.92, 47.48,47.48,47.63,47.47,47.86,47.95,48.11,48.45,48.30,48.82, 1.77,1.91,2.11,2.22,2.35,2.56,2.63,2.85,3.00,3.16, 3.32,3.43,3.60,3.74,3.95,4.00,4.18,4.40,4.54,4.72, 4.78,4.98,5.10,5.30,5.42,5.59,5.74,5.86,6.07,6.15, 6.30,6.47,6.67,6.80,6.90,7.13,7.16,7.40,7.55,7.78, 7.91,7.95,8.11,8.44,8.53,8.64,8.76,8.97,9.05,9.23, 9.43,9.51,9.71,9.86,10.05,10.19,10.29,10.53,10.57,10.72, 10.99,11.03,11.15,11.43,11.59,11.58,11.79,11.92,12.16,12.46, 12.48,12.51,12.73,12.90,13.06,13.16,13.47,13.50,13.76,13.85, 13.90,14.16,14.21,14.44,14.69,14.76,14.85,15.13,15.15,15.21, 15.56,15.64,15.90,15.96,16.09,16.28,16.53,16.62,16.71,16.87, 17.02,17.20,17.38,17.47,17.56,17.76,17.83,18.16,18.15,18.33, 18.47,18.83,18.79,19.00,19.26,19.26,19.50,19.64,19.86,19.95, 20.03,20.15,20.44,20.53,20.63,20.86,20.94,21.19,21.26,21.38, 21.70,21.66,21.93,22.12,22.20,22.28,22.50,22.77,22.70,22.80, 23.25,23.21,23.24,23.54,23.71,23.87,24.05,24.31,24.25,24.63, 24.47,24.84,25.01,25.01,25.48,25.49,25.43,25.77,25.92,25.97, 26.20,26.33,26.41,26.49,26.84,26.83,26.95,27.30,27.40,27.56, 27.80,27.93,28.13,28.05,28.18,28.69,28.45,28.69,28.96,29.02, 29.08,29.34,29.40,29.73,29.62,29.88,30.19,30.03,30.26,30.43, 30.88,30.97,31.06,31.25,31.44,31.58,31.63,31.84,32.08,32.15, 32.35,32.41,32.63,32.75,32.94,33.10,33.15,33.35,33.38,33.44, 33.92,34.08,34.14,34.19,34.32,34.47,34.72,34.87,35.15,35.15, 35.42,35.36,35.68,35.65,35.98,36.12,36.28,36.37,36.59,36.69, 36.87,37.00,37.14,37.30,37.72,37.71,37.79,37.80,38.07,38.25, 38.34,38.39,38.78,38.84,38.98,39.06,38.96,39.36,39.56,39.74, 40.01,40.04,40.40,40.47,40.50,40.71,40.71,40.93,41.09,41.18, 41.44,41.57,41.83,41.98,41.92,42.25,42.30,42.44,42.58,42.89, 42.83,43.01,43.21,43.41,43.50,43.54,43.76,44.12,44.36,44.09, 44.40,44.67,44.73,44.83,45.12,45.20,45.59,45.59,45.85,45.94, 1.66,1.78,1.93,2.13,2.22,2.36,2.47,2.67,2.79,3.02, 3.02,3.23,3.40,3.53,3.65,3.88,3.94,4.13,4.21,4.33, 4.49,4.70,4.79,4.95,5.12,5.22,5.42,5.56,5.62,5.85, 6.03,6.16,6.30,6.39,6.55,6.66,6.89,6.94,7.15,7.25, 7.41,7.51,7.69,7.81,7.93,8.11,8.20,8.44,8.52,8.66, 8.84,8.89,9.13,9.18,9.36,9.54,9.71,9.88,10.00,10.02, 10.25,10.32,10.58,10.69,10.88,10.94,11.17,11.25,11.40,11.59, 11.65,11.86,11.92,12.17,12.40,12.36,12.59,12.68,12.85,13.02, 13.16,13.27,13.38,13.66,13.72,13.81,13.99,14.15,14.16,14.33, 14.53,14.58,14.90,14.97,15.09,15.47,15.44,15.63,15.66,15.73, 16.06,16.13,16.32,16.42,16.46,16.78,16.82,16.86,17.12,17.23, 17.45,17.52,17.75,17.96,17.88,18.24,18.17,18.43,18.64,18.60, 18.88,19.02,19.27,19.30,19.57,19.53,19.81,19.67,19.93,20.18, 20.21,20.31,20.57,20.78,20.72,21.10,21.08,21.33,21.40,21.61, 21.77,21.98,22.12,22.07,22.19,22.38,22.51,22.84,22.90,22.93, 23.27,23.19,23.39,23.68,23.79,23.77,24.09,24.00,24.31,24.51, 24.59,24.67,24.87,25.07,25.14,25.33,25.47,25.66,25.75,26.07, 25.89,26.24,26.21,26.53,26.55,26.75,27.02,27.03,27.25,27.55, 27.52,27.70,27.79,27.83,28.02,27.95,28.40,28.61,28.62,28.74, 28.92,29.15,29.15,29.45,29.48,29.56,29.79,29.66,30.23,30.34, 30.30,30.56,30.66,30.54,30.90,30.98,31.18,31.46,31.54,31.72, 31.64,31.98,31.99,32.04,32.36,32.64,32.70,32.78,33.07,32.94, 33.31,33.34,33.38,33.54,33.86,33.73,33.93,34.23,34.47,34.59, 34.68,34.64,34.85,35.06,35.16,35.39,35.59,35.60,35.78,35.83, 36.18,36.36,36.36,36.28,36.48,36.83,37.00,37.02,37.22,37.24, 37.70,37.60,37.81,37.83,37.99,38.27,38.45,38.51,38.55,38.72, 38.80,39.09,39.01,39.34,39.61,39.68,39.66,39.88,40.20,40.24, 40.34,40.53,40.64,40.80,40.88,41.08,41.25,41.42,41.45,41.68, 41.80,42.02,42.01,42.13,42.54,42.53,42.72,42.60,43.03,43.10 }; static float sdNumAnchors[] = { 0.82,0.86,0.94,0.98,0.98,1.02,1.10,1.11,1.12,1.12, 1.16,1.25,1.26,1.24,1.32,1.36,1.32,1.34,1.44,1.41, 1.47,1.50,1.48,1.54,1.53,1.60,1.62,1.62,1.61,1.72, 1.67,1.69,1.74,1.73,1.72,1.74,1.71,1.79,1.85,1.79, 1.93,2.01,1.98,1.98,1.97,1.91,1.93,2.03,1.95,2.06, 2.14,2.05,2.00,2.12,2.14,2.15,2.14,2.15,2.20,2.23, 2.27,2.26,2.26,2.26,2.30,2.26,2.22,2.27,2.38,2.32, 2.30,2.40,2.39,2.41,2.40,2.48,2.53,2.52,2.42,2.45, 2.49,2.57,2.48,2.48,2.60,2.54,2.65,2.67,2.61,2.63, 2.78,2.79,2.70,2.67,2.69,2.68,2.75,2.64,2.70,2.80, 2.83,2.80,2.73,2.71,2.83,2.92,2.93,2.80,2.83,2.93, 2.81,3.00,2.93,2.87,2.92,2.92,3.01,2.87,2.91,3.08, 3.07,3.18,3.02,3.04,3.09,3.15,3.09,3.08,3.14,3.05, 3.07,3.18,3.10,3.17,3.17,3.08,3.16,3.22,3.30,3.24, 3.23,3.31,3.35,3.39,3.34,3.31,3.41,3.23,3.34,3.37, 3.38,3.38,3.29,3.47,3.44,3.41,3.35,3.52,3.45,3.57, 3.51,3.45,3.46,3.30,3.47,3.54,3.45,3.45,3.53,3.53, 3.58,3.50,3.53,3.61,3.56,3.54,3.64,3.64,3.53,3.64, 3.78,3.69,3.70,3.69,3.78,3.74,3.71,3.86,3.68,3.62, 3.76,3.63,3.79,3.69,3.80,3.70,3.76,3.87,3.88,3.88, 3.95,4.02,3.75,3.87,3.88,3.92,3.88,3.92,3.94,3.92, 3.92,4.01,4.01,4.12,3.93,4.07,3.95,4.10,3.98,3.88, 4.04,4.09,3.96,4.12,4.10,4.23,4.10,4.12,4.26,4.08, 4.37,4.16,4.30,4.12,4.31,4.23,4.27,4.11,4.30,4.08, 4.17,4.08,4.16,4.13,4.22,4.23,4.39,4.26,4.22,4.16, 4.31,4.08,4.23,4.11,4.23,4.15,4.22,4.23,4.31,4.26, 4.37,4.42,4.42,4.36,4.50,4.40,4.28,4.27,4.51,4.37, 4.36,4.45,4.52,4.51,4.41,4.56,4.47,4.58,4.45,4.58, 4.48,4.53,4.68,4.61,4.70,4.54,4.76,4.55,4.74,4.58, 0.72,0.75,0.81,0.84,0.84,0.84,0.92,0.93,1.00,0.99, 1.04,1.01,1.06,1.07,1.15,1.14,1.18,1.19,1.19,1.22, 1.28,1.27,1.33,1.32,1.31,1.38,1.35,1.39,1.40,1.43, 1.42,1.47,1.41,1.48,1.53,1.54,1.58,1.59,1.55,1.55, 1.58,1.65,1.68,1.62,1.66,1.67,1.64,1.68,1.81,1.71, 1.72,1.79,1.72,1.80,1.86,1.74,1.90,1.84,1.92,1.88, 1.84,1.94,1.98,1.89,1.91,1.98,1.96,1.95,1.96,1.99, 2.02,2.09,2.08,2.10,2.08,2.02,2.08,2.13,2.19,2.14, 2.19,2.17,2.16,2.22,2.23,2.16,2.25,2.33,2.23,2.34, 2.28,2.29,2.36,2.29,2.22,2.41,2.27,2.36,2.34,2.39, 2.43,2.41,2.49,2.44,2.51,2.48,2.43,2.39,2.54,2.40, 2.47,2.42,2.56,2.58,2.53,2.49,2.47,2.62,2.57,2.64, 2.61,2.63,2.69,2.65,2.61,2.83,2.69,2.58,2.77,2.73, 2.67,2.67,2.75,2.78,2.67,2.65,2.73,2.75,2.78,2.79, 2.86,2.81,2.77,2.74,2.86,2.75,2.90,2.76,2.86,2.76, 2.90,2.88,2.85,2.78,2.90,2.92,2.89,2.84,3.11,2.99, 3.02,2.97,2.92,2.99,2.99,3.09,2.88,2.94,3.08,3.02, 3.02,3.08,3.15,3.10,3.14,3.12,3.15,3.11,3.08,3.16, 3.27,3.26,3.14,3.01,3.17,3.21,3.34,3.02,3.23,3.14, 3.23,3.25,3.23,3.07,3.20,3.25,3.30,3.23,3.24,3.37, 3.24,3.22,3.24,3.29,3.39,3.25,3.31,3.45,3.38,3.33, 3.27,3.45,3.41,3.30,3.41,3.36,3.46,3.40,3.40,3.30, 3.39,3.27,3.39,3.45,3.54,3.43,3.37,3.52,3.48,3.50, 3.48,3.49,3.43,3.63,3.47,3.47,3.59,3.49,3.63,3.60, 3.61,3.59,3.53,3.47,3.59,3.59,3.60,3.55,3.54,3.73, 3.71,3.49,3.66,3.69,3.69,3.71,3.83,3.78,3.75,3.84, 3.69,3.74,3.66,3.78,3.71,3.87,3.84,3.72,3.80,3.80, 3.72,3.69,3.80,3.83,3.86,3.91,3.74,3.94,3.95,3.88, 3.78,3.94,3.86,3.97,4.07,3.82,3.97,3.96,4.08,3.91, 0.61,0.64,0.67,0.71,0.71,0.73,0.76,0.83,0.84,0.84, 0.85,0.90,0.88,0.88,0.96,1.00,0.96,1.00,1.02,1.02, 1.05,1.03,1.13,1.04,1.14,1.12,1.14,1.17,1.17,1.23, 1.20,1.22,1.21,1.26,1.30,1.31,1.32,1.37,1.36,1.34, 1.41,1.38,1.41,1.41,1.44,1.42,1.42,1.40,1.50,1.39, 1.50,1.46,1.49,1.48,1.57,1.55,1.52,1.53,1.57,1.58, 1.65,1.67,1.66,1.59,1.68,1.65,1.65,1.67,1.74,1.79, 1.71,1.73,1.76,1.81,1.72,1.78,1.81,1.77,1.81,1.82, 1.84,1.79,1.80,1.90,1.94,1.87,1.97,1.93,1.85,1.93, 1.93,1.93,1.93,1.95,1.98,2.02,1.98,2.00,2.00,2.00, 2.02,2.04,1.97,2.12,2.02,1.99,2.10,2.05,2.06,2.05, 2.12,2.17,2.15,2.18,2.21,2.21,2.31,2.25,2.21,2.25, 2.15,2.27,2.30,2.23,2.30,2.29,2.19,2.35,2.24,2.33, 2.19,2.38,2.21,2.25,2.41,2.25,2.37,2.42,2.31,2.43, 2.36,2.47,2.37,2.30,2.36,2.44,2.42,2.49,2.41,2.48, 2.44,2.45,2.52,2.43,2.47,2.43,2.52,2.46,2.55,2.45, 2.48,2.50,2.42,2.54,2.42,2.59,2.53,2.49,2.70,2.60, 2.58,2.59,2.61,2.59,2.57,2.74,2.58,2.66,2.59,2.67, 2.63,2.66,2.63,2.63,2.64,2.70,2.64,2.79,2.53,2.67, 2.68,2.72,2.79,2.79,2.73,2.74,2.73,2.80,2.82,2.75, 2.73,2.76,2.77,2.87,2.76,2.89,2.79,2.77,2.77,2.78, 2.89,2.83,2.97,2.92,2.85,2.97,2.86,2.93,2.86,2.85, 2.84,2.94,2.87,2.98,2.85,3.01,2.94,2.96,3.09,3.06, 3.01,2.94,2.92,2.91,3.07,3.06,3.08,2.98,3.01,3.01, 3.06,3.05,3.12,3.15,3.07,2.93,3.12,3.11,3.03,3.12, 3.13,3.15,3.16,3.08,3.11,3.22,3.11,3.12,3.17,3.16, 3.10,3.25,3.19,3.12,3.16,3.17,3.33,3.06,3.16,3.13, 3.34,3.31,3.35,3.19,3.30,3.22,3.39,3.26,3.28,3.25, 3.21,3.33,3.38,3.27,3.29,3.28,3.36,3.26,3.36,3.37, 0.51,0.56,0.58,0.60,0.61,0.66,0.68,0.66,0.69,0.71, 0.76,0.75,0.77,0.74,0.82,0.79,0.77,0.85,0.88,0.90, 0.90,0.93,0.95,0.92,0.98,0.96,1.03,0.96,1.02,1.10, 1.04,1.04,1.00,1.05,1.07,1.12,1.12,1.13,1.15,1.15, 1.20,1.15,1.18,1.16,1.21,1.18,1.26,1.21,1.25,1.20, 1.24,1.26,1.29,1.29,1.33,1.32,1.34,1.31,1.29,1.33, 1.39,1.36,1.36,1.42,1.43,1.46,1.43,1.46,1.51,1.46, 1.41,1.48,1.45,1.43,1.50,1.46,1.52,1.53,1.57,1.56, 1.57,1.54,1.68,1.61,1.59,1.58,1.63,1.61,1.58,1.60, 1.68,1.64,1.69,1.67,1.74,1.62,1.75,1.67,1.71,1.66, 1.75,1.75,1.77,1.70,1.72,1.82,1.77,1.77,1.77,1.78, 1.77,1.79,1.89,1.88,1.82,1.76,1.80,1.91,1.84,1.84, 1.79,1.89,1.90,1.90,1.91,1.86,1.93,1.91,1.90,1.88, 1.97,1.98,1.92,1.93,2.07,2.01,1.99,1.95,1.97,1.94, 2.06,2.03,2.07,2.06,2.07,2.09,2.01,2.01,2.03,2.06, 2.02,2.07,2.17,2.09,2.15,2.00,2.09,2.07,2.09,2.08, 2.16,2.16,2.19,2.10,2.23,2.13,2.14,2.18,2.05,2.31, 2.20,2.20,2.22,2.26,2.19,2.17,2.16,2.30,2.15,2.11, 2.20,2.34,2.23,2.28,2.28,2.28,2.24,2.25,2.32,2.29, 2.23,2.35,2.43,2.32,2.32,2.34,2.24,2.30,2.32,2.32, 2.36,2.34,2.41,2.46,2.43,2.38,2.39,2.43,2.37,2.40, 2.44,2.33,2.29,2.55,2.49,2.45,2.40,2.44,2.43,2.45, 2.53,2.55,2.48,2.46,2.58,2.53,2.51,2.54,2.50,2.44, 2.61,2.53,2.62,2.55,2.48,2.50,2.56,2.56,2.54,2.49, 2.55,2.58,2.67,2.62,2.58,2.55,2.66,2.60,2.46,2.51, 2.57,2.53,2.66,2.75,2.68,2.63,2.69,2.68,2.68,2.66, 2.63,2.57,2.71,2.78,2.77,2.74,2.79,2.76,2.63,2.70, 2.64,2.57,2.74,2.72,2.63,2.69,2.90,2.77,2.78,2.79, 2.75,2.74,2.76,2.78,2.74,2.74,2.88,2.80,2.78,2.78, 0.44,0.46,0.46,0.50,0.51,0.54,0.59,0.58,0.62,0.64, 0.64,0.63,0.66,0.66,0.69,0.68,0.71,0.71,0.74,0.75, 0.77,0.73,0.80,0.81,0.84,0.76,0.89,0.87,0.91,0.87, 0.83,0.92,0.91,0.90,0.97,0.91,0.95,0.94,0.96,1.00, 0.98,0.96,0.99,1.01,1.00,1.01,1.01,1.01,1.05,1.07, 1.11,1.08,1.11,1.07,1.12,1.13,1.11,1.16,1.13,1.19, 1.12,1.15,1.14,1.17,1.17,1.18,1.19,1.21,1.22,1.18, 1.25,1.19,1.27,1.22,1.26,1.28,1.33,1.31,1.26,1.30, 1.31,1.27,1.32,1.29,1.34,1.38,1.35,1.36,1.38,1.37, 1.37,1.41,1.33,1.41,1.41,1.44,1.37,1.41,1.44,1.41, 1.45,1.44,1.45,1.47,1.44,1.42,1.43,1.48,1.50,1.55, 1.48,1.48,1.53,1.58,1.53,1.56,1.55,1.58,1.60,1.62, 1.60,1.52,1.55,1.60,1.63,1.61,1.55,1.60,1.62,1.67, 1.61,1.60,1.68,1.62,1.67,1.69,1.65,1.66,1.68,1.64, 1.71,1.69,1.68,1.79,1.74,1.71,1.79,1.73,1.70,1.77, 1.76,1.80,1.78,1.74,1.78,1.77,1.82,1.78,1.78,1.73, 1.83,1.85,1.80,1.83,1.91,1.82,1.81,1.78,1.77,1.93, 1.88,1.80,1.88,1.79,1.88,1.81,1.85,1.89,1.82,1.84, 1.90,1.91,1.93,1.84,1.89,1.97,1.92,1.94,1.91,1.94, 1.94,1.94,1.96,2.09,1.91,2.00,1.97,2.06,2.02,2.01, 2.07,2.04,2.03,1.94,2.01,1.94,2.13,2.02,2.09,2.07, 2.09,2.03,1.97,1.99,1.94,1.99,2.04,2.04,2.03,2.10, 2.10,2.03,2.03,2.19,2.10,2.03,2.05,2.09,2.04,2.11, 2.08,2.11,2.15,2.17,2.10,2.20,2.16,2.20,2.10,2.28, 2.24,2.18,2.22,2.30,2.20,2.21,2.30,2.20,2.26,2.25, 2.21,2.22,2.18,2.23,2.31,2.16,2.28,2.23,2.25,2.37, 2.25,2.31,2.24,2.32,2.26,2.34,2.24,2.26,2.28,2.40, 2.34,2.30,2.23,2.31,2.33,2.24,2.23,2.34,2.34,2.41, 2.37,2.36,2.35,2.37,2.34,2.51,2.36,2.32,2.33,2.49, 0.36,0.38,0.39,0.43,0.42,0.46,0.47,0.48,0.48,0.54, 0.54,0.52,0.51,0.57,0.58,0.61,0.58,0.62,0.61,0.64, 0.64,0.65,0.65,0.66,0.67,0.69,0.70,0.70,0.69,0.72, 0.71,0.75,0.73,0.83,0.78,0.80,0.79,0.79,0.82,0.79, 0.81,0.80,0.84,0.81,0.83,0.87,0.87,0.84,0.88,0.85, 0.89,0.92,0.93,0.94,0.89,0.92,0.96,0.98,0.97,0.97, 0.96,0.99,0.99,1.03,0.98,0.97,1.05,1.05,1.00,1.03, 1.05,1.02,1.05,1.04,1.10,1.09,1.04,1.08,1.03,1.10, 1.12,1.10,1.12,1.07,1.12,1.14,1.15,1.19,1.12,1.18, 1.18,1.16,1.21,1.21,1.17,1.24,1.22,1.18,1.23,1.22, 1.23,1.21,1.22,1.26,1.25,1.21,1.25,1.35,1.27,1.22, 1.26,1.23,1.25,1.31,1.31,1.30,1.21,1.29,1.32,1.30, 1.31,1.35,1.37,1.38,1.34,1.33,1.32,1.34,1.37,1.40, 1.41,1.41,1.37,1.46,1.48,1.41,1.39,1.44,1.43,1.40, 1.41,1.43,1.46,1.51,1.42,1.51,1.46,1.41,1.49,1.51, 1.48,1.44,1.46,1.48,1.48,1.53,1.50,1.44,1.46,1.49, 1.49,1.61,1.52,1.57,1.53,1.52,1.59,1.56,1.60,1.58, 1.49,1.55,1.53,1.51,1.58,1.52,1.61,1.59,1.59,1.60, 1.59,1.62,1.60,1.59,1.65,1.61,1.65,1.61,1.60,1.69, 1.63,1.67,1.64,1.70,1.66,1.66,1.66,1.67,1.63,1.66, 1.69,1.67,1.68,1.75,1.71,1.64,1.75,1.70,1.67,1.71, 1.74,1.73,1.75,1.79,1.74,1.70,1.79,1.76,1.78,1.73, 1.77,1.75,1.78,1.71,1.82,1.80,1.74,1.82,1.79,1.83, 1.79,1.83,1.82,1.72,1.75,1.81,1.81,1.82,1.85,1.75, 1.87,1.84,1.78,1.87,1.83,1.81,1.80,1.87,1.83,1.87, 1.82,1.87,1.86,1.85,1.99,1.84,1.85,1.80,1.89,1.94, 1.90,1.87,1.89,1.90,1.95,1.99,1.92,1.94,1.96,1.87, 1.95,1.97,1.95,1.88,2.00,1.92,2.03,2.01,1.97,2.00, 2.01,1.94,1.99,2.03,2.02,2.01,1.92,2.04,2.00,2.09, 0.28,0.33,0.34,0.37,0.37,0.36,0.39,0.41,0.43,0.43, 0.43,0.44,0.47,0.48,0.49,0.47,0.49,0.51,0.50,0.54, 0.52,0.53,0.58,0.55,0.57,0.57,0.54,0.62,0.56,0.62, 0.58,0.63,0.67,0.63,0.62,0.65,0.68,0.69,0.69,0.64, 0.67,0.69,0.70,0.75,0.71,0.72,0.73,0.77,0.74,0.75, 0.75,0.72,0.78,0.75,0.82,0.83,0.79,0.81,0.82,0.80, 0.85,0.82,0.81,0.84,0.81,0.83,0.83,0.85,0.84,0.85, 0.87,0.90,0.88,0.88,0.87,0.85,0.91,0.89,0.91,0.90, 0.91,0.94,0.93,0.90,0.96,0.95,0.96,0.95,0.98,0.91, 0.97,1.02,0.97,0.94,0.99,1.01,0.99,0.99,1.01,0.94, 1.05,1.07,1.02,1.02,1.08,1.08,1.08,1.03,1.10,1.04, 1.09,1.09,1.06,1.08,1.12,1.08,1.12,1.07,1.16,1.13, 1.13,1.11,1.12,1.10,1.10,1.12,1.14,1.12,1.19,1.10, 1.19,1.11,1.17,1.18,1.14,1.18,1.21,1.18,1.22,1.21, 1.19,1.20,1.20,1.19,1.22,1.20,1.21,1.20,1.27,1.19, 1.25,1.25,1.24,1.21,1.30,1.26,1.27,1.27,1.30,1.28, 1.24,1.25,1.28,1.27,1.31,1.29,1.26,1.34,1.28,1.36, 1.26,1.29,1.32,1.31,1.31,1.37,1.35,1.36,1.31,1.36, 1.31,1.37,1.31,1.36,1.37,1.32,1.41,1.39,1.32,1.31, 1.44,1.40,1.45,1.32,1.44,1.42,1.39,1.39,1.38,1.46, 1.40,1.43,1.47,1.38,1.44,1.44,1.45,1.49,1.44,1.55, 1.47,1.45,1.49,1.46,1.45,1.53,1.47,1.49,1.48,1.53, 1.47,1.54,1.53,1.44,1.51,1.46,1.58,1.46,1.58,1.51, 1.50,1.51,1.47,1.53,1.49,1.49,1.56,1.58,1.54,1.53, 1.56,1.57,1.60,1.55,1.54,1.54,1.53,1.61,1.65,1.49, 1.59,1.55,1.63,1.56,1.67,1.60,1.55,1.64,1.59,1.57, 1.59,1.57,1.52,1.62,1.58,1.58,1.61,1.56,1.64,1.57, 1.63,1.66,1.60,1.61,1.68,1.62,1.64,1.66,1.59,1.68, 1.69,1.75,1.62,1.59,1.61,1.71,1.67,1.72,1.70,1.76, 0.25,0.28,0.27,0.30,0.31,0.34,0.36,0.31,0.34,0.38, 0.41,0.41,0.36,0.40,0.39,0.40,0.44,0.41,0.45,0.45, 0.47,0.46,0.48,0.48,0.48,0.49,0.47,0.50,0.52,0.51, 0.56,0.47,0.52,0.54,0.50,0.57,0.57,0.55,0.56,0.58, 0.57,0.62,0.61,0.59,0.56,0.63,0.65,0.63,0.65,0.62, 0.64,0.64,0.63,0.66,0.68,0.69,0.68,0.70,0.71,0.65, 0.69,0.71,0.72,0.68,0.70,0.69,0.74,0.76,0.74,0.70, 0.75,0.75,0.71,0.74,0.72,0.79,0.78,0.74,0.77,0.77, 0.77,0.79,0.78,0.77,0.83,0.79,0.80,0.79,0.81,0.83, 0.81,0.83,0.82,0.85,0.85,0.81,0.87,0.85,0.86,0.83, 0.87,0.88,0.87,0.88,0.88,0.84,0.88,0.95,0.95,0.91, 0.90,0.90,0.91,0.94,0.88,0.94,0.94,0.95,0.91,0.91, 0.95,0.93,0.92,0.97,0.98,0.95,0.94,1.04,0.90,0.98, 0.99,0.98,0.96,1.01,1.02,1.00,0.98,0.99,1.04,1.06, 0.98,1.01,0.97,0.97,1.07,1.05,0.98,0.98,1.01,1.05, 1.02,1.01,1.07,1.09,1.00,1.03,1.08,1.06,1.07,1.03, 1.09,1.08,1.08,1.06,1.08,1.05,1.14,1.12,1.06,1.13, 1.10,1.14,1.08,1.12,1.14,1.15,1.16,1.09,1.07,1.16, 1.12,1.10,1.07,1.13,1.15,1.20,1.17,1.19,1.17,1.18, 1.13,1.17,1.16,1.15,1.24,1.19,1.18,1.15,1.22,1.21, 1.18,1.24,1.20,1.17,1.18,1.23,1.16,1.20,1.23,1.20, 1.19,1.26,1.21,1.23,1.26,1.26,1.23,1.25,1.32,1.25, 1.27,1.27,1.28,1.24,1.21,1.29,1.26,1.27,1.22,1.23, 1.27,1.24,1.30,1.26,1.27,1.29,1.35,1.29,1.29,1.32, 1.31,1.31,1.31,1.31,1.30,1.35,1.29,1.29,1.31,1.32, 1.31,1.35,1.31,1.27,1.31,1.38,1.35,1.39,1.32,1.33, 1.33,1.38,1.30,1.39,1.34,1.33,1.37,1.38,1.32,1.33, 1.35,1.37,1.41,1.33,1.43,1.38,1.40,1.38,1.42,1.39, 1.39,1.43,1.46,1.46,1.43,1.48,1.42,1.44,1.42,1.46, 0.21,0.21,0.25,0.24,0.28,0.29,0.30,0.26,0.29,0.33, 0.30,0.30,0.32,0.32,0.35,0.33,0.37,0.35,0.34,0.39, 0.39,0.37,0.38,0.40,0.44,0.40,0.41,0.40,0.40,0.42, 0.45,0.45,0.47,0.44,0.46,0.45,0.45,0.49,0.49,0.47, 0.47,0.51,0.50,0.53,0.54,0.50,0.55,0.53,0.52,0.55, 0.53,0.52,0.56,0.55,0.54,0.51,0.54,0.55,0.55,0.57, 0.59,0.57,0.57,0.58,0.57,0.58,0.61,0.63,0.61,0.61, 0.62,0.64,0.62,0.60,0.62,0.66,0.65,0.64,0.66,0.66, 0.68,0.65,0.66,0.65,0.62,0.70,0.70,0.67,0.69,0.69, 0.66,0.73,0.72,0.71,0.72,0.72,0.68,0.69,0.70,0.75, 0.71,0.74,0.71,0.73,0.71,0.74,0.79,0.77,0.78,0.75, 0.72,0.74,0.78,0.73,0.76,0.74,0.81,0.76,0.79,0.76, 0.83,0.82,0.76,0.81,0.79,0.81,0.75,0.84,0.83,0.80, 0.82,0.80,0.79,0.84,0.85,0.85,0.79,0.83,0.87,0.84, 0.87,0.84,0.84,0.86,0.85,0.86,0.89,0.83,0.84,0.88, 0.87,0.86,0.87,0.84,0.88,0.87,0.93,0.93,0.91,0.85, 0.89,0.89,0.89,0.93,0.93,0.94,0.92,0.95,0.95,0.96, 0.91,0.95,0.96,0.97,0.88,0.97,0.98,0.94,0.94,0.95, 0.94,0.97,0.93,1.01,0.93,1.00,0.92,0.93,0.91,0.94, 0.95,0.98,0.96,1.00,0.99,0.98,1.02,1.04,1.01,1.03, 1.02,0.99,1.01,1.04,1.01,0.98,0.95,1.01,1.01,1.05, 1.03,1.07,0.99,1.00,0.98,1.04,1.04,1.04,1.04,0.97, 1.04,1.04,1.07,1.03,1.02,1.03,0.98,1.01,1.12,1.09, 1.11,1.04,1.05,1.07,1.07,1.08,1.06,1.08,1.06,1.08, 1.08,1.15,1.09,1.05,1.08,1.09,1.14,1.13,1.13,1.10, 1.07,1.15,1.09,1.11,1.08,1.09,1.11,1.14,1.14,1.12, 1.16,1.18,1.13,1.14,1.14,1.14,1.15,1.15,1.15,1.18, 1.15,1.16,1.13,1.19,1.20,1.19,1.16,1.15,1.21,1.18, 1.12,1.19,1.20,1.19,1.24,1.24,1.18,1.14,1.20,1.19, 0.19,0.21,0.20,0.20,0.22,0.23,0.24,0.22,0.21,0.24, 0.25,0.28,0.28,0.25,0.28,0.26,0.29,0.28,0.30,0.33, 0.34,0.32,0.32,0.36,0.37,0.34,0.36,0.36,0.38,0.38, 0.38,0.36,0.37,0.38,0.40,0.41,0.39,0.39,0.40,0.40, 0.40,0.42,0.42,0.44,0.44,0.41,0.44,0.45,0.41,0.43, 0.44,0.47,0.48,0.46,0.48,0.46,0.45,0.46,0.52,0.46, 0.46,0.50,0.52,0.51,0.49,0.53,0.48,0.49,0.56,0.49, 0.54,0.53,0.51,0.52,0.50,0.54,0.55,0.56,0.53,0.52, 0.59,0.55,0.58,0.58,0.58,0.54,0.59,0.56,0.56,0.60, 0.60,0.59,0.58,0.58,0.59,0.60,0.59,0.62,0.58,0.61, 0.63,0.61,0.58,0.59,0.64,0.63,0.62,0.61,0.63,0.60, 0.61,0.64,0.59,0.63,0.63,0.66,0.69,0.64,0.64,0.65, 0.67,0.68,0.63,0.66,0.65,0.70,0.69,0.69,0.64,0.66, 0.66,0.70,0.66,0.68,0.69,0.69,0.71,0.70,0.68,0.69, 0.72,0.72,0.74,0.68,0.72,0.74,0.72,0.73,0.71,0.68, 0.76,0.74,0.75,0.72,0.73,0.73,0.75,0.72,0.71,0.74, 0.74,0.80,0.77,0.76,0.77,0.79,0.78,0.79,0.77,0.75, 0.82,0.77,0.73,0.75,0.76,0.76,0.81,0.79,0.82,0.81, 0.77,0.78,0.81,0.81,0.83,0.79,0.79,0.81,0.83,0.79, 0.80,0.78,0.84,0.80,0.81,0.80,0.79,0.82,0.87,0.85, 0.82,0.85,0.87,0.86,0.86,0.84,0.86,0.88,0.86,0.87, 0.91,0.87,0.85,0.85,0.83,0.85,0.86,0.88,0.87,0.84, 0.83,0.87,0.84,0.88,0.89,0.89,0.89,0.89,0.90,0.94, 0.86,0.90,0.90,0.91,0.91,0.87,0.90,0.90,0.96,0.88, 0.94,0.91,0.94,0.92,0.90,0.88,0.94,0.92,0.96,0.91, 0.90,0.95,0.92,0.92,0.92,0.95,0.95,0.95,0.95,0.95, 0.90,0.92,0.93,0.93,0.95,0.97,0.98,0.92,0.98,0.98, 0.99,0.97,0.97,0.98,1.03,0.97,0.95,1.02,1.00,0.95, 0.99,1.00,0.96,1.01,1.04,1.02,0.96,1.01,1.01,0.99, 0.15,0.18,0.16,0.17,0.19,0.17,0.21,0.19,0.22,0.23, 0.23,0.21,0.25,0.22,0.24,0.24,0.24,0.27,0.26,0.23, 0.27,0.27,0.27,0.29,0.26,0.29,0.27,0.30,0.29,0.28, 0.31,0.33,0.31,0.31,0.32,0.31,0.32,0.33,0.33,0.34, 0.35,0.33,0.35,0.39,0.39,0.36,0.33,0.38,0.40,0.38, 0.37,0.41,0.38,0.40,0.42,0.37,0.39,0.38,0.40,0.37, 0.39,0.40,0.41,0.43,0.42,0.44,0.41,0.39,0.42,0.47, 0.43,0.42,0.43,0.45,0.42,0.46,0.48,0.46,0.45,0.46, 0.47,0.49,0.47,0.48,0.46,0.47,0.43,0.48,0.50,0.46, 0.50,0.50,0.47,0.47,0.46,0.49,0.51,0.48,0.48,0.51, 0.48,0.52,0.51,0.50,0.53,0.51,0.54,0.53,0.53,0.51, 0.52,0.54,0.53,0.52,0.54,0.56,0.52,0.55,0.54,0.54, 0.57,0.57,0.56,0.56,0.54,0.57,0.56,0.57,0.58,0.57, 0.57,0.55,0.58,0.59,0.57,0.57,0.59,0.57,0.63,0.57, 0.56,0.62,0.59,0.63,0.61,0.62,0.65,0.65,0.61,0.63, 0.61,0.60,0.62,0.61,0.62,0.61,0.64,0.64,0.59,0.64, 0.63,0.60,0.65,0.62,0.67,0.61,0.66,0.62,0.64,0.68, 0.68,0.66,0.64,0.68,0.69,0.65,0.68,0.66,0.69,0.69, 0.68,0.68,0.64,0.69,0.66,0.67,0.67,0.68,0.67,0.69, 0.71,0.69,0.66,0.72,0.70,0.65,0.69,0.71,0.70,0.69, 0.72,0.70,0.67,0.70,0.70,0.73,0.72,0.72,0.75,0.73, 0.75,0.71,0.70,0.71,0.75,0.73,0.72,0.74,0.74,0.70, 0.72,0.75,0.75,0.72,0.72,0.70,0.74,0.76,0.74,0.72, 0.75,0.77,0.77,0.80,0.74,0.72,0.73,0.78,0.75,0.74, 0.74,0.74,0.78,0.76,0.75,0.78,0.77,0.77,0.79,0.78, 0.79,0.78,0.77,0.83,0.78,0.79,0.76,0.79,0.80,0.81, 0.85,0.84,0.77,0.80,0.82,0.82,0.78,0.79,0.82,0.74, 0.77,0.76,0.84,0.85,0.79,0.78,0.82,0.78,0.81,0.80, 0.84,0.83,0.88,0.87,0.82,0.79,0.85,0.83,0.83,0.82, 0.12,0.16,0.13,0.15,0.16,0.17,0.18,0.17,0.17,0.17, 0.21,0.19,0.18,0.19,0.22,0.19,0.18,0.21,0.21,0.20, 0.24,0.22,0.22,0.20,0.24,0.26,0.28,0.24,0.22,0.23, 0.24,0.25,0.26,0.28,0.27,0.28,0.30,0.29,0.29,0.28, 0.27,0.30,0.29,0.30,0.30,0.30,0.29,0.33,0.31,0.31, 0.31,0.32,0.33,0.31,0.31,0.33,0.32,0.33,0.33,0.33, 0.34,0.36,0.34,0.36,0.35,0.35,0.35,0.35,0.34,0.35, 0.37,0.36,0.39,0.38,0.37,0.39,0.39,0.38,0.39,0.39, 0.40,0.38,0.40,0.39,0.40,0.40,0.41,0.39,0.41,0.39, 0.42,0.41,0.43,0.40,0.40,0.40,0.42,0.41,0.40,0.42, 0.43,0.43,0.42,0.45,0.43,0.43,0.46,0.45,0.45,0.43, 0.44,0.45,0.45,0.44,0.45,0.46,0.46,0.44,0.46,0.46, 0.45,0.48,0.46,0.46,0.47,0.45,0.47,0.46,0.51,0.49, 0.48,0.50,0.46,0.49,0.45,0.47,0.48,0.46,0.49,0.50, 0.48,0.48,0.48,0.49,0.51,0.50,0.47,0.54,0.50,0.51, 0.52,0.53,0.52,0.54,0.55,0.55,0.49,0.51,0.51,0.53, 0.53,0.53,0.55,0.52,0.52,0.56,0.56,0.58,0.57,0.56, 0.53,0.54,0.55,0.54,0.53,0.53,0.56,0.57,0.53,0.56, 0.57,0.56,0.58,0.53,0.55,0.57,0.56,0.54,0.57,0.57, 0.56,0.58,0.56,0.58,0.62,0.57,0.57,0.56,0.60,0.57, 0.59,0.57,0.57,0.57,0.58,0.61,0.59,0.59,0.61,0.59, 0.55,0.63,0.64,0.61,0.59,0.60,0.59,0.60,0.62,0.60, 0.63,0.64,0.61,0.60,0.62,0.63,0.63,0.62,0.60,0.63, 0.63,0.62,0.65,0.61,0.60,0.64,0.61,0.63,0.70,0.67, 0.67,0.63,0.60,0.63,0.65,0.67,0.67,0.65,0.68,0.62, 0.65,0.62,0.66,0.70,0.72,0.70,0.68,0.65,0.66,0.66, 0.69,0.69,0.68,0.65,0.68,0.67,0.63,0.69,0.68,0.67, 0.65,0.69,0.63,0.66,0.68,0.68,0.68,0.64,0.68,0.69, 0.70,0.74,0.71,0.68,0.70,0.69,0.69,0.71,0.69,0.69, 0.14,0.12,0.12,0.11,0.12,0.15,0.09,0.15,0.15,0.15, 0.14,0.15,0.18,0.17,0.16,0.21,0.16,0.17,0.19,0.15, 0.20,0.22,0.21,0.21,0.20,0.22,0.22,0.27,0.21,0.22, 0.20,0.25,0.23,0.21,0.21,0.23,0.23,0.24,0.26,0.23, 0.27,0.26,0.28,0.27,0.26,0.21,0.27,0.28,0.24,0.26, 0.25,0.31,0.27,0.26,0.27,0.29,0.28,0.32,0.29,0.31, 0.27,0.28,0.30,0.29,0.28,0.27,0.28,0.28,0.31,0.30, 0.31,0.31,0.28,0.31,0.29,0.34,0.34,0.29,0.27,0.32, 0.31,0.31,0.35,0.30,0.34,0.35,0.34,0.33,0.32,0.34, 0.35,0.32,0.36,0.32,0.37,0.36,0.34,0.34,0.37,0.35, 0.36,0.34,0.35,0.35,0.35,0.34,0.37,0.36,0.35,0.37, 0.36,0.35,0.38,0.40,0.36,0.38,0.36,0.36,0.39,0.38, 0.42,0.38,0.41,0.39,0.42,0.38,0.39,0.40,0.41,0.40, 0.42,0.41,0.38,0.42,0.44,0.41,0.40,0.39,0.38,0.42, 0.43,0.41,0.42,0.41,0.41,0.44,0.44,0.41,0.44,0.46, 0.43,0.45,0.42,0.41,0.43,0.42,0.44,0.43,0.43,0.45, 0.48,0.43,0.44,0.44,0.47,0.48,0.50,0.46,0.45,0.45, 0.47,0.46,0.47,0.46,0.48,0.46,0.46,0.46,0.49,0.47, 0.47,0.47,0.45,0.47,0.47,0.48,0.45,0.50,0.50,0.48, 0.50,0.49,0.50,0.50,0.52,0.51,0.48,0.48,0.47,0.47, 0.48,0.51,0.48,0.48,0.49,0.52,0.49,0.49,0.53,0.50, 0.51,0.53,0.54,0.50,0.52,0.52,0.55,0.52,0.53,0.55, 0.50,0.53,0.49,0.53,0.53,0.57,0.52,0.53,0.56,0.54, 0.53,0.53,0.56,0.54,0.53,0.52,0.56,0.56,0.55,0.50, 0.58,0.56,0.51,0.54,0.51,0.52,0.52,0.53,0.53,0.59, 0.52,0.60,0.52,0.56,0.55,0.54,0.54,0.53,0.56,0.54, 0.53,0.56,0.57,0.53,0.59,0.58,0.58,0.59,0.59,0.57, 0.56,0.59,0.59,0.56,0.58,0.60,0.56,0.57,0.61,0.61, 0.60,0.60,0.57,0.60,0.56,0.57,0.63,0.61,0.57,0.61, 0.09,0.09,0.12,0.08,0.10,0.11,0.08,0.10,0.12,0.11, 0.15,0.12,0.10,0.11,0.13,0.15,0.16,0.16,0.15,0.14, 0.15,0.18,0.18,0.17,0.17,0.17,0.19,0.18,0.16,0.18, 0.19,0.18,0.20,0.19,0.18,0.16,0.21,0.19,0.24,0.15, 0.20,0.21,0.19,0.22,0.19,0.21,0.21,0.23,0.21,0.25, 0.18,0.23,0.27,0.25,0.24,0.23,0.21,0.22,0.26,0.24, 0.25,0.23,0.28,0.24,0.23,0.22,0.25,0.24,0.25,0.28, 0.27,0.22,0.28,0.27,0.29,0.27,0.26,0.28,0.28,0.25, 0.28,0.31,0.26,0.28,0.27,0.25,0.29,0.27,0.27,0.27, 0.30,0.29,0.32,0.27,0.29,0.30,0.30,0.29,0.30,0.27, 0.28,0.31,0.29,0.31,0.32,0.35,0.29,0.31,0.30,0.29, 0.32,0.31,0.30,0.31,0.35,0.31,0.34,0.33,0.31,0.34, 0.31,0.33,0.31,0.33,0.35,0.32,0.31,0.34,0.33,0.36, 0.36,0.35,0.31,0.34,0.34,0.37,0.37,0.33,0.34,0.35, 0.35,0.34,0.36,0.36,0.34,0.37,0.33,0.34,0.32,0.34, 0.36,0.36,0.38,0.34,0.36,0.36,0.39,0.39,0.36,0.36, 0.37,0.35,0.37,0.37,0.38,0.39,0.36,0.37,0.39,0.41, 0.39,0.39,0.35,0.39,0.40,0.37,0.39,0.40,0.42,0.40, 0.41,0.42,0.38,0.40,0.39,0.40,0.41,0.42,0.44,0.41, 0.43,0.40,0.41,0.41,0.42,0.40,0.38,0.41,0.38,0.42, 0.42,0.41,0.41,0.41,0.41,0.44,0.42,0.40,0.43,0.42, 0.44,0.39,0.46,0.43,0.42,0.40,0.44,0.43,0.45,0.44, 0.42,0.45,0.44,0.44,0.45,0.46,0.45,0.43,0.43,0.44, 0.44,0.47,0.44,0.44,0.42,0.48,0.43,0.43,0.48,0.44, 0.43,0.44,0.43,0.47,0.48,0.46,0.44,0.47,0.46,0.47, 0.45,0.47,0.46,0.45,0.48,0.47,0.47,0.46,0.44,0.45, 0.46,0.44,0.44,0.48,0.48,0.48,0.47,0.43,0.51,0.48, 0.48,0.50,0.45,0.47,0.44,0.50,0.45,0.51,0.46,0.45, 0.47,0.48,0.48,0.48,0.51,0.46,0.48,0.51,0.47,0.50, 0.05,0.10,0.08,0.05,0.09,0.09,0.09,0.10,0.10,0.12, 0.10,0.10,0.10,0.10,0.11,0.09,0.14,0.13,0.13,0.11, 0.14,0.15,0.13,0.12,0.11,0.18,0.12,0.14,0.14,0.14, 0.11,0.18,0.14,0.14,0.16,0.19,0.16,0.18,0.21,0.16, 0.18,0.16,0.17,0.17,0.18,0.16,0.16,0.19,0.19,0.19, 0.18,0.16,0.19,0.18,0.18,0.19,0.18,0.19,0.18,0.18, 0.20,0.20,0.19,0.22,0.23,0.21,0.19,0.21,0.22,0.22, 0.21,0.22,0.22,0.23,0.21,0.21,0.23,0.21,0.23,0.25, 0.21,0.18,0.23,0.22,0.22,0.23,0.23,0.24,0.22,0.23, 0.22,0.25,0.23,0.26,0.24,0.22,0.26,0.23,0.23,0.25, 0.26,0.26,0.27,0.23,0.26,0.25,0.28,0.26,0.27,0.24, 0.25,0.24,0.29,0.27,0.25,0.25,0.26,0.26,0.26,0.28, 0.27,0.27,0.26,0.30,0.28,0.27,0.26,0.32,0.26,0.28, 0.25,0.31,0.28,0.29,0.29,0.28,0.30,0.29,0.30,0.28, 0.28,0.29,0.29,0.31,0.29,0.28,0.31,0.29,0.28,0.29, 0.29,0.31,0.31,0.32,0.30,0.30,0.32,0.33,0.28,0.30, 0.33,0.33,0.30,0.31,0.34,0.31,0.29,0.31,0.34,0.33, 0.32,0.31,0.31,0.32,0.32,0.33,0.32,0.34,0.30,0.31, 0.31,0.35,0.33,0.36,0.34,0.30,0.35,0.35,0.34,0.35, 0.37,0.31,0.33,0.32,0.34,0.32,0.33,0.32,0.37,0.35, 0.34,0.33,0.37,0.36,0.36,0.35,0.35,0.37,0.35,0.37, 0.34,0.37,0.32,0.35,0.35,0.33,0.35,0.36,0.33,0.35, 0.35,0.37,0.35,0.34,0.35,0.35,0.34,0.35,0.36,0.38, 0.38,0.34,0.36,0.39,0.34,0.38,0.38,0.39,0.37,0.36, 0.37,0.37,0.34,0.34,0.36,0.40,0.36,0.39,0.37,0.37, 0.38,0.38,0.36,0.38,0.38,0.38,0.37,0.41,0.38,0.36, 0.38,0.40,0.41,0.40,0.40,0.41,0.39,0.40,0.43,0.40, 0.39,0.42,0.42,0.41,0.38,0.39,0.40,0.38,0.41,0.38, 0.37,0.44,0.41,0.41,0.43,0.46,0.42,0.40,0.42,0.42, 0.89,0.93,0.98,1.01,1.08,1.09,1.11,1.15,1.19,1.19, 1.22,1.26,1.25,1.32,1.37,1.41,1.40,1.40,1.51,1.49, 1.53,1.56,1.64,1.63,1.68,1.72,1.70,1.71,1.68,1.74, 1.80,1.79,1.78,1.85,1.89,1.85,1.91,2.01,2.00,2.00, 2.01,1.87,2.07,2.01,2.01,2.12,2.13,2.13,2.14,2.14, 2.12,2.19,2.15,2.27,2.22,2.29,2.26,2.25,2.34,2.30, 2.32,2.30,2.46,2.38,2.33,2.37,2.38,2.61,2.44,2.51, 2.47,2.46,2.44,2.62,2.45,2.59,2.60,2.69,2.53,2.60, 2.59,2.57,2.70,2.68,2.68,2.80,2.70,2.59,2.71,2.68, 2.75,2.72,2.78,2.97,2.82,2.89,2.77,2.82,2.84,2.85, 2.78,2.89,2.95,3.07,2.93,2.92,2.93,3.11,2.91,2.99, 3.06,2.93,3.20,3.09,3.23,3.20,3.02,3.03,3.20,3.27, 3.14,3.14,3.17,3.24,3.14,3.37,3.28,3.19,3.35,3.26, 3.22,3.36,3.26,3.37,3.44,3.31,3.38,3.30,3.42,3.39, 3.37,3.39,3.46,3.58,3.50,3.50,3.46,3.52,3.46,3.54, 3.58,3.55,3.43,3.50,3.51,3.67,3.60,3.70,3.68,3.63, 3.58,3.77,3.61,3.97,3.77,3.58,3.86,3.60,3.63,3.69, 3.74,3.74,3.67,3.81,3.76,3.72,3.60,3.75,3.86,3.69, 3.97,4.00,3.82,3.93,3.92,4.12,3.83,3.92,4.21,3.71, 3.95,3.90,3.99,4.07,4.00,4.06,3.85,4.00,3.81,4.13, 4.05,3.99,4.07,4.01,4.10,4.09,4.02,4.01,4.18,4.16, 4.00,4.02,4.07,4.24,4.20,4.11,4.38,4.25,4.18,4.19, 4.14,4.25,4.18,4.33,4.23,4.23,4.32,4.40,4.19,4.37, 4.28,4.28,4.32,4.34,4.24,4.31,4.38,4.41,4.43,4.42, 4.25,4.24,4.33,4.47,4.42,4.30,4.44,4.44,4.78,4.50, 4.53,4.45,4.47,4.48,4.59,4.67,4.43,4.49,4.42,4.52, 4.78,4.55,4.57,4.56,4.68,4.71,4.70,4.36,4.72,4.60, 4.66,4.74,4.64,4.56,4.71,4.63,4.78,4.60,4.82,4.80, 4.69,4.91,4.67,4.67,4.65,4.79,4.89,4.92,4.79,4.70, 0.77,0.83,0.83,0.87,0.91,0.92,0.94,1.00,1.06,1.04, 1.09,1.08,1.13,1.12,1.12,1.20,1.20,1.24,1.31,1.35, 1.32,1.33,1.30,1.37,1.40,1.44,1.50,1.49,1.48,1.49, 1.50,1.54,1.55,1.64,1.61,1.66,1.63,1.62,1.67,1.66, 1.68,1.75,1.69,1.68,1.78,1.79,1.73,1.83,1.80,1.86, 1.79,1.74,1.95,1.95,1.83,1.91,2.05,2.03,1.98,1.88, 2.06,2.00,2.05,2.05,2.03,2.07,2.20,2.11,2.17,2.11, 2.18,2.16,2.18,2.22,2.20,2.10,2.15,2.24,2.17,2.22, 2.27,2.31,2.28,2.37,2.36,2.26,2.39,2.36,2.42,2.42, 2.31,2.43,2.46,2.46,2.48,2.47,2.46,2.49,2.54,2.53, 2.56,2.51,2.54,2.62,2.59,2.62,2.53,2.67,2.68,2.66, 2.67,2.64,2.66,2.61,2.82,2.68,2.63,2.69,2.76,2.77, 2.70,2.77,2.81,2.89,2.83,2.78,2.77,2.89,2.72,2.80, 2.85,2.82,2.81,2.84,2.93,2.83,2.77,2.99,2.97,2.86, 2.98,2.97,2.92,2.95,2.98,3.05,2.90,3.03,3.04,3.07, 2.98,3.14,3.03,3.00,3.13,3.08,3.13,3.19,3.11,3.14, 3.13,3.19,3.12,3.21,3.22,3.12,3.16,3.13,3.18,3.24, 3.25,3.14,3.22,3.22,3.24,3.34,3.31,3.20,3.38,3.41, 3.37,3.28,3.40,3.41,3.31,3.25,3.30,3.36,3.41,3.47, 3.37,3.40,3.62,3.52,3.46,3.57,3.47,3.56,3.39,3.47, 3.47,3.48,3.47,3.46,3.43,3.46,3.48,3.70,3.65,3.62, 3.53,3.61,3.55,3.57,3.73,3.57,3.70,3.54,3.60,3.78, 3.69,3.66,3.70,3.74,3.62,3.76,3.63,3.77,3.74,3.63, 3.74,3.64,3.64,3.79,3.71,3.72,3.74,3.73,3.98,3.79, 3.81,4.00,4.02,3.80,3.84,3.79,3.75,3.99,3.80,4.04, 3.85,3.91,3.72,4.02,3.83,3.98,3.93,3.85,3.88,3.94, 3.92,4.02,3.97,4.00,4.02,3.80,3.97,4.12,3.87,4.04, 3.91,4.02,4.04,3.99,3.98,3.96,4.12,4.02,4.15,4.08, 3.96,4.19,4.12,4.02,4.16,4.08,4.11,4.19,3.98,4.13, 0.72,0.69,0.75,0.76,0.81,0.81,0.87,0.88,0.90,0.88, 0.90,0.96,0.98,1.01,0.99,1.04,1.08,1.09,1.17,1.12, 1.15,1.18,1.19,1.21,1.20,1.17,1.24,1.26,1.25,1.29, 1.32,1.35,1.35,1.33,1.37,1.35,1.41,1.39,1.39,1.45, 1.46,1.45,1.46,1.47,1.57,1.47,1.57,1.57,1.58,1.49, 1.57,1.55,1.67,1.57,1.59,1.68,1.65,1.61,1.72,1.65, 1.72,1.76,1.82,1.79,1.77,1.81,1.81,1.78,1.87,1.88, 1.89,1.77,1.86,1.83,1.85,1.92,1.94,1.93,1.86,1.94, 1.94,2.04,1.96,1.95,1.97,2.02,2.00,2.00,2.08,1.97, 2.04,2.10,2.14,2.08,2.10,2.14,2.18,2.12,2.06,2.19, 2.20,2.16,2.16,2.16,2.21,2.17,2.31,2.25,2.31,2.34, 2.28,2.25,2.18,2.22,2.36,2.26,2.24,2.32,2.31,2.34, 2.27,2.40,2.36,2.38,2.38,2.38,2.35,2.36,2.43,2.43, 2.48,2.48,2.46,2.54,2.44,2.43,2.52,2.51,2.51,2.50, 2.66,2.50,2.47,2.50,2.55,2.67,2.58,2.53,2.56,2.53, 2.60,2.75,2.64,2.64,2.61,2.63,2.59,2.73,2.63,2.65, 2.78,2.61,2.64,2.70,2.77,2.76,2.72,2.84,2.80,2.75, 2.78,2.78,2.73,2.65,2.79,2.85,2.94,2.85,2.80,2.75, 2.89,2.93,2.78,2.89,2.79,2.83,2.81,2.87,3.03,2.98, 2.83,2.92,2.80,3.03,2.90,2.89,2.87,3.03,3.08,2.95, 2.92,3.09,2.99,2.95,2.94,2.87,3.05,3.09,3.17,3.01, 3.11,3.05,3.07,3.13,3.15,3.18,3.14,3.13,3.10,3.10, 3.12,3.06,3.16,3.17,3.05,3.14,3.30,3.17,3.25,3.26, 3.22,3.21,3.14,3.20,3.16,3.39,3.31,3.32,3.04,3.20, 3.28,3.22,3.44,3.30,3.27,3.24,3.38,3.25,3.26,3.37, 3.33,3.36,3.35,3.43,3.33,3.29,3.42,3.39,3.43,3.42, 3.32,3.39,3.52,3.34,3.38,3.38,3.31,3.41,3.37,3.47, 3.32,3.47,3.44,3.45,3.37,3.37,3.62,3.50,3.51,3.56, 3.47,3.61,3.43,3.30,3.54,3.69,3.64,3.66,3.51,3.54, 0.54,0.60,0.64,0.61,0.67,0.69,0.75,0.71,0.72,0.79, 0.81,0.82,0.79,0.85,0.86,0.88,0.89,0.88,0.96,1.01, 0.98,0.98,1.01,0.99,1.03,1.06,1.06,1.08,1.06,1.11, 1.10,1.11,1.16,1.16,1.21,1.20,1.23,1.17,1.13,1.25, 1.24,1.31,1.25,1.25,1.29,1.33,1.37,1.31,1.36,1.36, 1.33,1.34,1.35,1.39,1.47,1.42,1.37,1.47,1.45,1.49, 1.45,1.52,1.49,1.53,1.47,1.48,1.48,1.50,1.52,1.64, 1.57,1.64,1.57,1.60,1.65,1.64,1.64,1.63,1.65,1.67, 1.67,1.67,1.67,1.68,1.67,1.78,1.73,1.67,1.78,1.75, 1.81,1.71,1.75,1.82,1.76,1.84,1.82,1.91,1.79,1.86, 1.81,1.88,1.86,1.81,1.90,1.89,1.90,1.94,1.93,1.94, 1.88,1.94,1.89,2.01,1.98,1.93,1.93,1.98,2.10,1.94, 1.98,2.04,2.01,2.03,2.02,2.05,2.13,2.04,2.10,2.14, 2.15,2.08,2.08,2.08,2.14,2.12,2.10,2.22,2.17,2.15, 2.15,2.16,2.22,2.13,2.15,2.14,2.21,2.20,2.23,2.26, 2.23,2.11,2.15,2.19,2.23,2.29,2.22,2.34,2.26,2.28, 2.19,2.28,2.26,2.31,2.38,2.27,2.37,2.31,2.33,2.34, 2.38,2.34,2.23,2.41,2.40,2.43,2.43,2.50,2.43,2.51, 2.45,2.45,2.41,2.35,2.62,2.48,2.43,2.45,2.49,2.46, 2.49,2.45,2.42,2.54,2.56,2.48,2.54,2.63,2.56,2.48, 2.55,2.52,2.59,2.46,2.67,2.67,2.69,2.55,2.65,2.66, 2.63,2.69,2.63,2.59,2.64,2.63,2.72,2.69,2.59,2.65, 2.63,2.66,2.70,2.68,2.65,2.69,2.69,2.66,2.67,2.73, 2.78,2.68,2.78,2.71,2.83,2.86,2.93,2.76,2.76,2.73, 2.84,2.73,2.79,2.80,2.74,2.77,2.85,2.88,2.77,2.83, 2.79,2.81,2.83,2.76,2.91,2.86,2.90,2.83,2.83,2.80, 2.84,2.85,2.85,3.05,3.00,2.91,3.00,3.01,2.96,3.11, 2.82,3.03,3.02,2.99,2.81,2.96,3.01,3.03,3.05,2.96, 2.91,2.96,2.92,2.92,3.02,2.96,3.12,3.00,2.97,2.93, 0.45,0.47,0.52,0.53,0.58,0.55,0.59,0.64,0.62,0.69, 0.70,0.66,0.70,0.72,0.72,0.75,0.78,0.78,0.78,0.79, 0.88,0.86,0.86,0.87,0.91,0.86,0.94,0.92,0.95,0.95, 0.99,0.95,0.97,0.99,1.00,0.99,1.03,0.99,1.02,1.04, 1.07,1.07,1.08,1.15,1.11,1.14,1.18,1.13,1.14,1.12, 1.20,1.23,1.15,1.18,1.21,1.21,1.20,1.21,1.23,1.26, 1.25,1.27,1.23,1.30,1.26,1.29,1.37,1.34,1.28,1.33, 1.34,1.43,1.35,1.34,1.37,1.44,1.37,1.46,1.37,1.39, 1.41,1.46,1.47,1.39,1.43,1.47,1.48,1.48,1.49,1.48, 1.53,1.55,1.56,1.49,1.57,1.54,1.49,1.57,1.57,1.60, 1.60,1.53,1.54,1.63,1.65,1.63,1.64,1.59,1.64,1.69, 1.69,1.68,1.65,1.68,1.67,1.65,1.59,1.67,1.64,1.74, 1.71,1.78,1.67,1.77,1.75,1.78,1.72,1.78,1.88,1.72, 1.84,1.80,1.79,1.83,1.81,1.76,1.78,1.82,1.80,1.79, 1.82,1.88,1.80,1.90,1.91,1.92,1.91,1.89,1.89,1.88, 1.92,1.92,1.96,1.92,1.94,1.92,1.91,1.89,1.98,1.87, 1.92,1.90,1.95,1.99,1.94,1.96,2.04,1.99,2.01,2.06, 2.07,2.01,2.08,2.09,2.01,2.08,2.03,2.10,1.97,2.07, 2.02,2.13,2.02,2.03,2.01,2.15,2.11,2.05,2.07,2.12, 2.06,2.18,2.17,2.07,2.19,2.12,2.16,2.20,2.18,2.16, 2.18,2.16,2.13,2.12,2.20,2.16,2.19,2.24,2.14,2.17, 2.18,2.36,2.33,2.27,2.40,2.20,2.30,2.35,2.22,2.35, 2.14,2.29,2.26,2.30,2.34,2.30,2.22,2.35,2.33,2.29, 2.32,2.36,2.28,2.40,2.35,2.33,2.28,2.40,2.41,2.33, 2.27,2.34,2.33,2.32,2.32,2.50,2.35,2.36,2.41,2.31, 2.43,2.36,2.39,2.46,2.38,2.46,2.40,2.39,2.46,2.49, 2.40,2.44,2.33,2.36,2.49,2.41,2.55,2.47,2.51,2.53, 2.49,2.52,2.55,2.43,2.55,2.50,2.56,2.45,2.55,2.58, 2.49,2.62,2.53,2.55,2.55,2.51,2.58,2.63,2.62,2.61, 0.38,0.43,0.43,0.48,0.48,0.51,0.48,0.53,0.54,0.55, 0.57,0.55,0.58,0.61,0.65,0.64,0.69,0.66,0.70,0.68, 0.70,0.74,0.73,0.75,0.75,0.74,0.76,0.77,0.79,0.82, 0.75,0.82,0.84,0.83,0.85,0.93,0.85,0.91,0.83,0.92, 0.90,0.93,0.92,0.93,0.91,0.91,0.95,0.99,0.96,1.00, 0.99,0.97,0.96,1.00,1.02,1.02,1.04,1.10,1.03,1.00, 1.11,1.10,1.10,1.05,1.10,1.11,1.10,1.11,1.08,1.16, 1.18,1.13,1.14,1.11,1.12,1.15,1.19,1.16,1.17,1.21, 1.20,1.20,1.20,1.20,1.27,1.24,1.23,1.29,1.23,1.29, 1.28,1.21,1.31,1.29,1.29,1.28,1.33,1.33,1.30,1.34, 1.36,1.34,1.29,1.33,1.37,1.38,1.39,1.35,1.34,1.36, 1.38,1.44,1.49,1.40,1.37,1.41,1.42,1.45,1.44,1.45, 1.46,1.47,1.40,1.52,1.52,1.40,1.43,1.53,1.54,1.54, 1.53,1.44,1.50,1.56,1.60,1.57,1.60,1.57,1.54,1.58, 1.61,1.51,1.59,1.62,1.55,1.58,1.62,1.59,1.64,1.60, 1.61,1.65,1.61,1.66,1.63,1.71,1.60,1.62,1.64,1.67, 1.62,1.63,1.72,1.71,1.65,1.63,1.67,1.66,1.70,1.71, 1.67,1.73,1.72,1.73,1.79,1.75,1.66,1.73,1.77,1.83, 1.81,1.74,1.72,1.81,1.88,1.71,1.77,1.77,1.70,1.69, 1.72,1.87,1.82,1.82,1.86,1.80,1.89,1.83,1.78,1.80, 1.79,1.98,1.83,1.85,1.83,1.85,1.92,1.89,1.96,1.83, 1.84,1.89,1.89,1.90,1.90,1.85,1.97,1.93,1.95,1.90, 1.88,1.97,1.98,1.95,1.93,1.95,2.01,1.94,2.00,1.99, 2.00,1.96,1.98,2.08,1.96,2.02,2.00,1.97,2.08,2.03, 1.98,2.03,1.99,2.09,2.02,2.08,2.01,2.02,1.96,2.01, 2.04,2.03,2.06,2.09,2.11,2.09,2.10,2.08,2.10,2.13, 2.14,2.05,2.09,2.16,2.14,2.19,2.18,2.17,2.18,2.08, 2.08,2.18,2.13,2.12,2.09,2.21,2.07,2.18,2.24,2.21, 2.24,2.10,2.20,2.22,2.11,2.25,2.21,2.14,2.23,2.21, 0.33,0.34,0.36,0.39,0.41,0.42,0.43,0.45,0.46,0.46, 0.48,0.50,0.51,0.52,0.54,0.56,0.56,0.58,0.59,0.56, 0.61,0.59,0.64,0.65,0.61,0.67,0.62,0.68,0.66,0.68, 0.69,0.72,0.74,0.71,0.71,0.75,0.71,0.77,0.77,0.73, 0.74,0.76,0.76,0.81,0.80,0.81,0.82,0.79,0.85,0.80, 0.83,0.87,0.81,0.86,0.84,0.89,0.89,0.91,0.89,0.93, 0.88,0.93,0.89,0.90,0.89,0.98,0.94,0.97,0.98,0.96, 0.96,0.98,1.01,1.05,1.00,0.96,0.97,1.07,1.02,1.03, 1.03,1.00,1.10,1.04,1.09,1.00,1.08,1.06,1.06,1.09, 1.06,1.05,1.05,1.08,1.07,1.08,1.13,1.11,1.15,1.09, 1.09,1.09,1.19,1.14,1.19,1.13,1.16,1.18,1.16,1.14, 1.11,1.19,1.17,1.21,1.20,1.19,1.26,1.25,1.26,1.22, 1.21,1.25,1.27,1.26,1.29,1.27,1.28,1.25,1.29,1.23, 1.30,1.28,1.31,1.31,1.33,1.30,1.29,1.30,1.25,1.33, 1.32,1.31,1.28,1.37,1.34,1.34,1.38,1.33,1.42,1.43, 1.36,1.36,1.38,1.38,1.40,1.37,1.41,1.41,1.29,1.38, 1.34,1.43,1.40,1.44,1.39,1.48,1.45,1.44,1.45,1.44, 1.50,1.42,1.50,1.50,1.42,1.46,1.47,1.52,1.50,1.51, 1.53,1.49,1.47,1.43,1.57,1.47,1.53,1.51,1.52,1.53, 1.53,1.54,1.52,1.51,1.53,1.53,1.49,1.55,1.58,1.51, 1.63,1.66,1.59,1.56,1.59,1.64,1.61,1.64,1.62,1.60, 1.64,1.62,1.61,1.58,1.61,1.59,1.59,1.62,1.65,1.63, 1.60,1.72,1.60,1.62,1.55,1.67,1.64,1.66,1.68,1.66, 1.68,1.75,1.70,1.74,1.68,1.77,1.72,1.66,1.75,1.71, 1.70,1.71,1.71,1.69,1.74,1.67,1.75,1.70,1.77,1.75, 1.80,1.72,1.75,1.78,1.78,1.74,1.70,1.78,1.78,1.74, 1.72,1.85,1.77,1.71,1.84,1.74,1.81,1.82,1.80,1.77, 1.85,1.89,1.88,1.79,1.81,1.73,1.78,1.84,1.84,1.81, 1.85,1.86,1.86,1.84,1.82,1.86,1.91,1.88,1.83,1.82, 0.26,0.27,0.32,0.31,0.37,0.38,0.37,0.38,0.40,0.37, 0.43,0.43,0.44,0.45,0.44,0.45,0.46,0.48,0.45,0.50, 0.55,0.50,0.50,0.54,0.54,0.58,0.55,0.53,0.56,0.57, 0.61,0.58,0.57,0.58,0.61,0.57,0.57,0.63,0.66,0.60, 0.64,0.65,0.66,0.66,0.67,0.69,0.67,0.71,0.70,0.72, 0.74,0.71,0.72,0.75,0.71,0.71,0.74,0.79,0.73,0.77, 0.78,0.72,0.80,0.82,0.78,0.79,0.80,0.77,0.81,0.79, 0.79,0.82,0.83,0.79,0.83,0.82,0.84,0.84,0.86,0.84, 0.85,0.91,0.90,0.92,0.90,0.85,0.88,0.92,0.92,0.93, 0.90,0.87,0.89,0.90,0.90,0.92,0.96,0.96,0.92,0.98, 0.95,0.99,0.97,1.01,0.97,0.98,1.05,0.97,1.00,1.03, 1.02,1.01,1.03,1.01,1.04,0.99,1.02,1.01,1.01,1.06, 1.10,1.06,1.06,1.07,1.14,1.04,1.04,1.06,1.08,1.07, 1.09,1.07,1.09,1.04,1.10,1.13,1.13,1.13,1.12,1.11, 1.12,1.12,1.10,1.11,1.15,1.15,1.19,1.15,1.18,1.10, 1.18,1.15,1.16,1.18,1.17,1.16,1.18,1.19,1.23,1.17, 1.21,1.24,1.22,1.22,1.21,1.21,1.16,1.20,1.23,1.20, 1.27,1.20,1.21,1.24,1.22,1.23,1.23,1.22,1.23,1.26, 1.23,1.23,1.26,1.30,1.33,1.28,1.26,1.27,1.31,1.30, 1.24,1.28,1.29,1.36,1.33,1.27,1.31,1.32,1.33,1.29, 1.29,1.30,1.31,1.33,1.36,1.30,1.32,1.39,1.37,1.26, 1.39,1.35,1.33,1.36,1.40,1.36,1.35,1.42,1.36,1.37, 1.37,1.41,1.41,1.45,1.38,1.39,1.45,1.38,1.42,1.39, 1.43,1.47,1.38,1.45,1.46,1.46,1.39,1.44,1.41,1.44, 1.43,1.46,1.47,1.47,1.44,1.43,1.51,1.49,1.38,1.47, 1.48,1.46,1.45,1.48,1.47,1.52,1.54,1.46,1.45,1.52, 1.46,1.52,1.44,1.52,1.52,1.49,1.46,1.54,1.54,1.53, 1.55,1.54,1.57,1.52,1.56,1.50,1.53,1.51,1.54,1.55, 1.59,1.61,1.53,1.54,1.57,1.53,1.59,1.57,1.56,1.58, 0.27,0.24,0.28,0.28,0.30,0.32,0.31,0.33,0.31,0.33, 0.37,0.32,0.36,0.36,0.37,0.38,0.39,0.40,0.40,0.43, 0.42,0.45,0.47,0.45,0.46,0.48,0.46,0.47,0.45,0.49, 0.46,0.52,0.46,0.49,0.55,0.53,0.52,0.52,0.54,0.54, 0.57,0.54,0.53,0.57,0.57,0.56,0.59,0.63,0.64,0.59, 0.59,0.60,0.62,0.63,0.64,0.61,0.65,0.67,0.62,0.63, 0.67,0.65,0.63,0.66,0.70,0.70,0.68,0.70,0.67,0.73, 0.72,0.68,0.72,0.71,0.71,0.71,0.73,0.70,0.74,0.69, 0.71,0.72,0.74,0.72,0.75,0.78,0.79,0.79,0.83,0.76, 0.76,0.81,0.78,0.78,0.76,0.77,0.76,0.81,0.83,0.85, 0.80,0.79,0.78,0.78,0.80,0.81,0.77,0.88,0.81,0.81, 0.81,0.83,0.84,0.89,0.86,0.88,0.85,0.86,0.88,0.83, 0.88,0.88,0.85,0.88,0.88,0.87,0.91,0.93,0.90,0.83, 0.87,0.92,0.91,0.91,0.96,0.92,0.91,0.97,0.94,0.94, 0.95,0.95,0.98,0.97,0.95,0.95,0.94,0.91,0.96,0.96, 0.94,0.97,0.94,0.95,0.99,1.01,1.00,0.97,0.96,1.01, 1.02,1.02,0.98,1.01,1.02,0.96,1.04,1.02,1.05,1.07, 1.04,1.07,1.01,0.97,1.02,1.03,1.06,1.08,1.04,1.04, 1.07,1.08,1.11,1.07,1.03,1.08,1.12,1.05,1.09,1.04, 1.01,1.09,1.09,1.13,1.07,1.11,1.11,1.15,1.16,1.06, 1.13,1.17,1.14,1.12,1.20,1.16,1.11,1.11,1.17,1.13, 1.14,1.18,1.15,1.18,1.17,1.12,1.15,1.17,1.21,1.18, 1.14,1.17,1.20,1.15,1.20,1.19,1.18,1.23,1.26,1.23, 1.11,1.17,1.18,1.21,1.19,1.23,1.20,1.23,1.23,1.22, 1.22,1.24,1.20,1.23,1.20,1.21,1.21,1.26,1.20,1.27, 1.25,1.24,1.21,1.21,1.26,1.23,1.29,1.25,1.31,1.29, 1.29,1.30,1.33,1.31,1.26,1.26,1.29,1.27,1.32,1.28, 1.33,1.31,1.30,1.29,1.31,1.31,1.26,1.36,1.31,1.38, 1.30,1.32,1.29,1.31,1.35,1.30,1.30,1.34,1.35,1.29, 0.21,0.19,0.24,0.25,0.28,0.26,0.26,0.28,0.31,0.30, 0.29,0.31,0.28,0.32,0.31,0.36,0.33,0.35,0.35,0.34, 0.34,0.39,0.39,0.38,0.36,0.34,0.39,0.41,0.39,0.41, 0.38,0.44,0.41,0.41,0.44,0.45,0.45,0.46,0.47,0.48, 0.45,0.48,0.48,0.49,0.49,0.51,0.51,0.50,0.50,0.49, 0.52,0.55,0.52,0.52,0.54,0.53,0.52,0.57,0.57,0.53, 0.55,0.53,0.56,0.56,0.60,0.58,0.56,0.61,0.54,0.59, 0.58,0.59,0.62,0.59,0.61,0.58,0.61,0.61,0.62,0.62, 0.58,0.60,0.65,0.61,0.66,0.64,0.60,0.63,0.67,0.62, 0.68,0.65,0.68,0.68,0.61,0.67,0.68,0.65,0.67,0.69, 0.70,0.74,0.70,0.71,0.69,0.70,0.71,0.70,0.70,0.73, 0.68,0.73,0.75,0.74,0.70,0.69,0.73,0.71,0.73,0.74, 0.72,0.72,0.72,0.73,0.73,0.79,0.76,0.79,0.76,0.77, 0.76,0.77,0.79,0.80,0.77,0.80,0.83,0.80,0.80,0.81, 0.78,0.82,0.81,0.79,0.75,0.80,0.81,0.82,0.85,0.85, 0.78,0.82,0.85,0.83,0.84,0.85,0.85,0.83,0.85,0.87, 0.85,0.86,0.86,0.87,0.87,0.86,0.89,0.87,0.86,0.90, 0.86,0.91,0.85,0.92,0.89,0.89,0.88,0.91,0.90,0.92, 0.90,0.90,0.93,0.90,0.92,0.93,0.92,0.92,0.91,0.93, 0.88,0.93,0.97,0.97,0.93,0.91,0.95,0.95,0.95,0.94, 0.90,0.96,0.98,1.01,0.94,0.97,0.98,1.04,0.95,1.00, 0.98,0.97,1.02,0.98,1.03,1.03,0.95,0.98,1.01,0.99, 1.00,1.04,0.97,0.99,0.96,1.02,1.02,0.96,0.96,1.03, 1.00,1.01,1.10,1.00,1.00,1.06,1.02,1.02,1.08,1.03, 1.02,1.04,1.07,1.03,1.07,1.07,1.03,1.06,1.05,1.07, 1.09,1.07,1.05,1.06,1.09,1.05,1.05,1.05,1.07,1.04, 1.12,1.10,1.03,1.05,1.04,1.06,1.04,1.06,1.05,1.10, 1.08,1.09,1.08,1.04,1.06,1.08,1.12,1.13,1.08,1.09, 1.11,1.18,1.14,1.11,1.11,1.09,1.12,1.13,1.11,1.15, 0.21,0.19,0.22,0.18,0.23,0.22,0.23,0.21,0.26,0.25, 0.28,0.28,0.24,0.26,0.27,0.27,0.29,0.28,0.30,0.32, 0.30,0.31,0.32,0.30,0.32,0.31,0.32,0.38,0.37,0.35, 0.34,0.36,0.36,0.34,0.35,0.39,0.39,0.39,0.41,0.41, 0.40,0.41,0.37,0.42,0.45,0.42,0.42,0.46,0.42,0.41, 0.42,0.48,0.46,0.43,0.46,0.45,0.45,0.49,0.45,0.50, 0.47,0.46,0.51,0.46,0.46,0.46,0.47,0.52,0.50,0.48, 0.50,0.49,0.53,0.50,0.52,0.49,0.49,0.51,0.49,0.51, 0.52,0.53,0.52,0.52,0.52,0.54,0.54,0.54,0.55,0.56, 0.55,0.56,0.61,0.56,0.53,0.58,0.53,0.56,0.57,0.58, 0.59,0.59,0.57,0.62,0.63,0.59,0.61,0.59,0.57,0.59, 0.56,0.64,0.58,0.62,0.63,0.63,0.61,0.62,0.61,0.64, 0.64,0.64,0.63,0.62,0.66,0.63,0.63,0.71,0.66,0.66, 0.68,0.67,0.63,0.66,0.70,0.66,0.66,0.67,0.68,0.70, 0.68,0.68,0.67,0.68,0.70,0.68,0.65,0.70,0.67,0.70, 0.72,0.71,0.68,0.69,0.67,0.72,0.71,0.70,0.75,0.69, 0.73,0.74,0.72,0.71,0.67,0.73,0.71,0.74,0.70,0.72, 0.74,0.75,0.75,0.76,0.79,0.73,0.72,0.75,0.78,0.78, 0.77,0.76,0.76,0.74,0.76,0.78,0.81,0.80,0.77,0.74, 0.79,0.77,0.77,0.82,0.77,0.77,0.78,0.77,0.80,0.77, 0.81,0.84,0.82,0.80,0.83,0.80,0.82,0.86,0.79,0.80, 0.80,0.83,0.84,0.80,0.86,0.84,0.86,0.80,0.81,0.86, 0.84,0.84,0.85,0.85,0.82,0.85,0.85,0.86,0.89,0.85, 0.86,0.92,0.84,0.86,0.79,0.88,0.86,0.84,0.90,0.88, 0.85,0.88,0.84,0.91,0.88,0.88,0.87,0.88,0.86,0.88, 0.88,0.89,0.90,0.91,0.92,0.96,0.96,0.88,0.93,0.89, 0.92,0.92,0.90,0.82,0.89,0.90,0.96,0.92,0.90,0.90, 0.91,0.94,0.90,0.93,0.93,0.98,0.92,0.99,0.99,0.88, 0.94,0.92,0.93,0.97,0.93,0.92,0.94,0.92,0.91,0.96, 0.16,0.16,0.16,0.16,0.20,0.19,0.21,0.21,0.20,0.19, 0.22,0.22,0.21,0.23,0.24,0.24,0.20,0.24,0.23,0.25, 0.24,0.24,0.26,0.29,0.25,0.28,0.27,0.30,0.28,0.29, 0.33,0.31,0.34,0.30,0.32,0.30,0.34,0.31,0.32,0.33, 0.33,0.31,0.33,0.34,0.36,0.34,0.34,0.34,0.32,0.33, 0.34,0.39,0.38,0.36,0.37,0.39,0.38,0.38,0.40,0.39, 0.40,0.39,0.36,0.41,0.39,0.40,0.42,0.39,0.44,0.40, 0.40,0.40,0.44,0.42,0.45,0.43,0.42,0.38,0.43,0.43, 0.46,0.45,0.45,0.46,0.45,0.46,0.48,0.48,0.46,0.47, 0.46,0.46,0.48,0.48,0.50,0.47,0.48,0.50,0.48,0.52, 0.48,0.52,0.49,0.53,0.49,0.49,0.54,0.51,0.52,0.51, 0.49,0.51,0.51,0.50,0.49,0.51,0.53,0.52,0.52,0.53, 0.53,0.53,0.55,0.56,0.53,0.51,0.53,0.53,0.58,0.55, 0.55,0.53,0.59,0.54,0.56,0.55,0.58,0.59,0.56,0.59, 0.58,0.55,0.55,0.57,0.58,0.57,0.55,0.61,0.60,0.57, 0.59,0.60,0.60,0.57,0.58,0.61,0.61,0.61,0.63,0.61, 0.62,0.60,0.66,0.58,0.62,0.61,0.60,0.63,0.65,0.64, 0.64,0.65,0.62,0.66,0.63,0.65,0.63,0.65,0.68,0.63, 0.63,0.67,0.66,0.63,0.66,0.63,0.62,0.63,0.65,0.69, 0.63,0.64,0.68,0.71,0.66,0.67,0.64,0.67,0.67,0.69, 0.70,0.69,0.67,0.66,0.68,0.68,0.65,0.66,0.68,0.70, 0.69,0.72,0.65,0.72,0.76,0.70,0.69,0.69,0.71,0.69, 0.71,0.75,0.71,0.69,0.71,0.71,0.69,0.74,0.74,0.73, 0.75,0.72,0.76,0.73,0.71,0.72,0.74,0.75,0.75,0.75, 0.77,0.74,0.78,0.74,0.76,0.71,0.76,0.74,0.73,0.74, 0.76,0.75,0.78,0.79,0.72,0.74,0.76,0.75,0.74,0.74, 0.79,0.77,0.77,0.74,0.77,0.76,0.79,0.76,0.70,0.80, 0.77,0.80,0.80,0.74,0.80,0.74,0.77,0.81,0.81,0.75, 0.78,0.82,0.78,0.78,0.80,0.78,0.83,0.81,0.83,0.85, 0.11,0.16,0.16,0.16,0.16,0.15,0.16,0.16,0.18,0.18, 0.17,0.20,0.15,0.18,0.19,0.18,0.20,0.23,0.20,0.21, 0.22,0.21,0.24,0.21,0.24,0.25,0.23,0.24,0.24,0.27, 0.24,0.24,0.29,0.26,0.29,0.22,0.29,0.25,0.30,0.26, 0.26,0.31,0.29,0.28,0.32,0.28,0.31,0.27,0.29,0.29, 0.34,0.32,0.30,0.31,0.33,0.31,0.32,0.33,0.33,0.35, 0.31,0.32,0.36,0.34,0.33,0.33,0.33,0.36,0.34,0.37, 0.37,0.35,0.34,0.36,0.35,0.36,0.38,0.34,0.37,0.38, 0.38,0.40,0.35,0.41,0.40,0.36,0.38,0.42,0.43,0.39, 0.41,0.40,0.38,0.39,0.43,0.39,0.40,0.38,0.42,0.39, 0.40,0.41,0.39,0.41,0.42,0.43,0.44,0.40,0.39,0.43, 0.44,0.43,0.44,0.41,0.43,0.43,0.46,0.42,0.45,0.42, 0.46,0.46,0.44,0.45,0.46,0.46,0.48,0.45,0.46,0.44, 0.45,0.46,0.47,0.45,0.47,0.46,0.48,0.43,0.47,0.50, 0.47,0.49,0.49,0.46,0.49,0.46,0.49,0.50,0.50,0.52, 0.49,0.49,0.51,0.48,0.53,0.50,0.52,0.49,0.51,0.48, 0.50,0.54,0.50,0.52,0.54,0.54,0.53,0.54,0.53,0.53, 0.57,0.51,0.52,0.50,0.53,0.53,0.52,0.53,0.54,0.52, 0.51,0.56,0.56,0.56,0.53,0.54,0.52,0.58,0.54,0.54, 0.55,0.58,0.57,0.52,0.55,0.54,0.59,0.59,0.55,0.57, 0.55,0.59,0.56,0.59,0.56,0.53,0.58,0.56,0.57,0.56, 0.61,0.60,0.56,0.57,0.61,0.60,0.59,0.59,0.59,0.61, 0.61,0.59,0.60,0.61,0.60,0.63,0.58,0.64,0.60,0.63, 0.60,0.62,0.61,0.61,0.63,0.61,0.63,0.61,0.64,0.65, 0.59,0.61,0.63,0.63,0.64,0.61,0.63,0.64,0.62,0.61, 0.62,0.60,0.68,0.63,0.63,0.64,0.67,0.59,0.62,0.61, 0.67,0.63,0.65,0.67,0.62,0.64,0.68,0.68,0.67,0.69, 0.64,0.68,0.63,0.67,0.66,0.70,0.65,0.69,0.67,0.65, 0.68,0.68,0.65,0.69,0.67,0.67,0.65,0.67,0.67,0.70, 0.12,0.10,0.12,0.13,0.11,0.15,0.12,0.12,0.12,0.13, 0.13,0.16,0.15,0.15,0.13,0.15,0.15,0.18,0.17,0.17, 0.20,0.18,0.18,0.23,0.20,0.18,0.22,0.19,0.19,0.22, 0.22,0.21,0.22,0.22,0.21,0.21,0.23,0.24,0.20,0.23, 0.22,0.25,0.23,0.22,0.26,0.23,0.26,0.26,0.22,0.26, 0.25,0.29,0.27,0.26,0.25,0.25,0.28,0.28,0.28,0.26, 0.28,0.28,0.30,0.29,0.28,0.31,0.29,0.29,0.29,0.31, 0.30,0.28,0.31,0.28,0.30,0.32,0.29,0.33,0.32,0.31, 0.31,0.32,0.31,0.30,0.34,0.30,0.33,0.33,0.31,0.34, 0.32,0.33,0.31,0.32,0.36,0.35,0.35,0.32,0.34,0.33, 0.36,0.35,0.35,0.38,0.34,0.37,0.36,0.33,0.31,0.35, 0.34,0.37,0.37,0.35,0.37,0.38,0.38,0.37,0.38,0.39, 0.36,0.39,0.42,0.39,0.41,0.39,0.41,0.36,0.40,0.39, 0.41,0.40,0.37,0.41,0.37,0.39,0.38,0.39,0.42,0.39, 0.42,0.41,0.40,0.40,0.42,0.39,0.41,0.42,0.43,0.39, 0.42,0.40,0.40,0.41,0.41,0.42,0.40,0.43,0.44,0.44, 0.44,0.45,0.43,0.45,0.44,0.45,0.45,0.48,0.44,0.44, 0.42,0.44,0.44,0.49,0.47,0.42,0.48,0.43,0.47,0.48, 0.46,0.45,0.43,0.50,0.44,0.46,0.47,0.49,0.46,0.50, 0.45,0.45,0.49,0.49,0.46,0.47,0.47,0.47,0.47,0.48, 0.48,0.46,0.47,0.49,0.50,0.48,0.47,0.51,0.49,0.48, 0.49,0.52,0.49,0.49,0.51,0.51,0.50,0.52,0.53,0.47, 0.48,0.47,0.50,0.51,0.51,0.48,0.51,0.46,0.51,0.46, 0.51,0.48,0.52,0.51,0.54,0.53,0.57,0.52,0.51,0.49, 0.53,0.49,0.52,0.52,0.49,0.53,0.54,0.53,0.53,0.56, 0.55,0.49,0.53,0.58,0.55,0.54,0.58,0.50,0.58,0.55, 0.56,0.57,0.53,0.55,0.52,0.51,0.54,0.57,0.52,0.58, 0.56,0.56,0.52,0.57,0.58,0.58,0.54,0.54,0.53,0.53, 0.58,0.57,0.55,0.57,0.58,0.57,0.57,0.55,0.58,0.59, 0.08,0.09,0.11,0.10,0.09,0.11,0.14,0.12,0.11,0.14, 0.13,0.12,0.11,0.10,0.14,0.13,0.13,0.16,0.16,0.15, 0.16,0.14,0.13,0.15,0.19,0.19,0.15,0.18,0.16,0.18, 0.17,0.15,0.16,0.18,0.18,0.19,0.20,0.20,0.21,0.21, 0.20,0.18,0.21,0.21,0.21,0.19,0.22,0.20,0.22,0.23, 0.22,0.20,0.21,0.22,0.24,0.20,0.23,0.21,0.25,0.21, 0.23,0.22,0.23,0.27,0.25,0.25,0.24,0.23,0.22,0.23, 0.26,0.26,0.26,0.27,0.28,0.25,0.24,0.25,0.25,0.28, 0.25,0.24,0.28,0.26,0.28,0.26,0.25,0.27,0.28,0.25, 0.28,0.27,0.29,0.30,0.30,0.30,0.29,0.28,0.31,0.30, 0.28,0.32,0.30,0.29,0.28,0.30,0.28,0.30,0.30,0.32, 0.33,0.30,0.33,0.33,0.34,0.34,0.29,0.29,0.30,0.30, 0.32,0.27,0.33,0.31,0.32,0.30,0.34,0.35,0.31,0.36, 0.36,0.31,0.36,0.36,0.35,0.37,0.36,0.35,0.32,0.34, 0.36,0.35,0.32,0.39,0.36,0.35,0.31,0.38,0.35,0.36, 0.37,0.36,0.35,0.35,0.32,0.36,0.36,0.37,0.32,0.36, 0.35,0.35,0.35,0.36,0.37,0.37,0.35,0.36,0.39,0.35, 0.36,0.39,0.37,0.43,0.37,0.39,0.36,0.38,0.40,0.39, 0.38,0.40,0.41,0.40,0.35,0.37,0.39,0.40,0.38,0.40, 0.38,0.41,0.40,0.38,0.41,0.42,0.42,0.43,0.39,0.40, 0.43,0.41,0.42,0.41,0.41,0.40,0.44,0.42,0.40,0.43, 0.43,0.41,0.37,0.40,0.44,0.43,0.41,0.44,0.40,0.47, 0.45,0.40,0.45,0.44,0.44,0.44,0.43,0.44,0.44,0.45, 0.42,0.42,0.45,0.44,0.44,0.42,0.44,0.43,0.43,0.44, 0.44,0.44,0.44,0.42,0.45,0.44,0.45,0.44,0.47,0.45, 0.42,0.43,0.45,0.44,0.44,0.45,0.46,0.43,0.48,0.42, 0.50,0.44,0.46,0.46,0.50,0.47,0.47,0.49,0.47,0.46, 0.47,0.46,0.50,0.48,0.48,0.47,0.51,0.46,0.49,0.48, 0.48,0.50,0.48,0.48,0.46,0.47,0.50,0.51,0.47,0.49, 0.91,0.94,0.97,1.10,1.13,1.11,1.16,1.20,1.26,1.29, 1.28,1.36,1.38,1.44,1.44,1.45,1.50,1.47,1.51,1.57, 1.50,1.65,1.66,1.75,1.62,1.71,1.69,1.80,1.78,1.86, 1.87,1.86,1.86,1.89,1.89,1.97,1.91,2.01,1.98,2.02, 2.04,2.11,2.06,2.12,2.11,2.19,2.11,2.19,2.23,2.26, 2.33,2.22,2.26,2.24,2.34,2.23,2.36,2.36,2.40,2.45, 2.47,2.39,2.40,2.44,2.50,2.56,2.43,2.59,2.55,2.59, 2.63,2.68,2.69,2.68,2.64,2.65,2.72,2.67,2.71,2.79, 2.86,2.72,2.65,2.83,2.82,2.92,2.89,2.88,2.88,2.81, 3.01,3.05,2.95,2.90,2.95,3.11,2.89,3.04,3.04,3.12, 3.05,2.93,3.10,3.09,3.13,3.17,3.17,3.29,3.10,3.21, 3.04,3.18,3.22,3.19,3.34,3.39,3.37,3.24,3.26,3.22, 3.43,3.36,3.40,3.34,3.25,3.42,3.44,3.39,3.35,3.28, 3.29,3.39,3.51,3.50,3.48,3.53,3.41,3.51,3.51,3.62, 3.57,3.48,3.80,3.55,3.68,3.57,3.66,3.69,3.74,3.68, 3.70,3.64,3.81,3.71,3.73,3.72,3.67,3.76,3.75,3.84, 3.89,3.85,3.72,3.85,3.82,3.83,4.00,3.92,3.86,3.82, 3.99,3.80,3.80,3.77,3.94,3.92,4.02,4.02,3.89,4.02, 3.94,3.94,4.11,4.01,4.11,4.10,4.29,4.08,3.96,4.24, 4.08,4.10,4.09,4.18,4.00,4.12,4.18,4.11,4.16,4.28, 4.16,4.10,4.24,4.31,4.17,4.23,4.06,4.25,4.28,4.33, 4.51,4.28,4.39,4.28,4.39,4.41,4.41,4.27,4.33,4.31, 4.37,4.41,4.25,4.29,4.36,4.42,4.62,4.30,4.42,4.34, 4.58,4.26,4.44,4.45,4.53,4.60,4.44,4.55,4.60,4.53, 4.54,4.59,4.58,4.56,4.80,4.57,4.67,4.57,4.58,4.64, 4.65,4.70,4.76,4.78,4.66,4.62,4.81,4.77,4.62,4.70, 4.89,4.63,4.65,4.95,4.75,4.72,4.91,4.62,4.69,4.70, 4.66,4.88,4.86,4.99,5.14,5.03,4.85,4.74,4.91,5.06, 4.95,4.85,4.87,4.99,4.95,4.90,5.10,5.00,5.02,5.17, 0.77,0.88,0.89,0.97,0.98,0.95,1.00,1.04,1.11,1.12, 1.14,1.16,1.16,1.19,1.22,1.29,1.29,1.38,1.34,1.36, 1.35,1.43,1.44,1.45,1.46,1.51,1.59,1.54,1.52,1.61, 1.54,1.62,1.67,1.73,1.70,1.69,1.77,1.75,1.76,1.72, 1.76,1.75,1.82,1.83,1.84,1.94,1.88,1.94,1.93,1.99, 2.09,2.02,2.01,2.01,2.05,1.93,2.07,2.04,2.01,2.14, 2.12,2.10,2.16,2.20,2.24,2.31,2.17,2.22,2.23,2.25, 2.22,2.27,2.20,2.32,2.40,2.42,2.32,2.33,2.38,2.35, 2.48,2.51,2.44,2.46,2.47,2.41,2.47,2.48,2.59,2.51, 2.49,2.61,2.55,2.62,2.61,2.50,2.70,2.59,2.59,2.61, 2.63,2.59,2.64,2.60,2.68,2.74,2.77,2.67,2.80,2.69, 2.72,2.83,2.77,2.83,2.73,2.95,2.81,3.01,2.96,2.88, 2.86,2.85,2.95,2.90,2.90,3.00,3.02,2.90,3.04,3.09, 2.98,3.00,2.96,2.99,3.13,3.13,3.13,3.18,3.16,3.13, 3.05,3.02,3.13,3.09,3.07,3.17,3.03,3.21,3.29,3.29, 3.03,3.25,3.18,3.23,3.13,3.33,3.23,3.28,3.15,3.42, 3.45,3.30,3.42,3.42,3.48,3.37,3.35,3.40,3.36,3.43, 3.36,3.25,3.49,3.45,3.45,3.43,3.38,3.39,3.35,3.48, 3.51,3.40,3.51,3.44,3.51,3.54,3.59,3.66,3.62,3.59, 3.57,3.56,3.54,3.72,3.56,3.73,3.86,3.72,3.52,3.47, 3.60,3.66,3.66,3.63,3.83,3.83,3.59,3.80,3.69,3.95, 3.73,3.71,3.83,3.71,3.77,3.81,3.73,3.77,3.86,3.83, 3.98,3.83,4.00,3.83,4.02,3.90,4.03,3.83,4.03,3.91, 4.04,3.86,3.89,4.11,3.97,3.91,3.87,3.76,3.93,4.07, 3.85,3.94,4.05,4.14,3.98,4.03,4.03,4.17,4.04,4.03, 3.98,4.15,4.31,4.18,4.09,4.22,4.12,4.25,4.14,4.06, 4.08,4.22,4.14,4.05,4.41,4.24,4.24,4.22,4.21,4.20, 4.30,4.16,4.38,4.18,4.16,4.30,4.25,4.41,4.34,4.40, 4.24,4.34,4.29,4.27,4.28,4.36,4.27,4.31,4.40,4.55, 0.70,0.76,0.77,0.78,0.82,0.87,0.92,0.94,0.94,0.94, 0.98,1.04,1.00,1.06,1.06,1.05,1.12,1.11,1.20,1.16, 1.19,1.27,1.24,1.32,1.24,1.32,1.29,1.28,1.37,1.36, 1.42,1.47,1.45,1.50,1.39,1.45,1.50,1.54,1.53,1.54, 1.60,1.57,1.58,1.64,1.61,1.66,1.60,1.59,1.70,1.65, 1.66,1.71,1.79,1.77,1.83,1.85,1.76,1.81,1.83,1.86, 1.84,1.94,1.88,1.84,1.86,1.88,1.92,1.99,1.95,1.92, 1.91,2.03,1.98,2.01,1.97,2.13,2.05,2.01,2.03,2.07, 2.06,2.04,2.06,2.06,2.14,2.23,2.11,2.16,2.15,2.22, 2.18,2.21,2.19,2.30,2.20,2.22,2.33,2.31,2.25,2.28, 2.31,2.41,2.31,2.32,2.41,2.32,2.28,2.41,2.36,2.48, 2.58,2.45,2.50,2.46,2.50,2.49,2.51,2.43,2.55,2.47, 2.51,2.54,2.50,2.54,2.56,2.64,2.51,2.60,2.58,2.52, 2.60,2.56,2.58,2.60,2.66,2.62,2.62,2.55,2.70,2.75, 2.64,2.70,2.76,2.78,2.72,2.63,2.70,2.77,2.83,2.83, 2.75,2.87,2.82,2.76,2.72,2.88,2.76,2.79,2.80,2.76, 2.83,2.86,2.92,2.98,2.79,2.95,2.84,2.97,2.82,3.02, 2.87,2.90,2.97,2.99,3.03,2.99,2.87,3.05,2.96,3.05, 3.07,2.98,3.03,3.01,3.01,3.10,3.02,3.15,3.12,3.13, 3.13,3.15,3.07,3.04,3.09,3.07,3.13,3.15,3.13,3.12, 3.14,3.19,3.16,3.24,3.16,3.24,3.17,3.25,3.18,3.25, 3.33,3.12,3.27,3.26,3.27,3.39,3.37,3.24,3.37,3.28, 3.23,3.30,3.33,3.31,3.36,3.38,3.39,3.38,3.38,3.44, 3.37,3.52,3.54,3.36,3.21,3.39,3.48,3.51,3.37,3.38, 3.40,3.55,3.51,3.48,3.49,3.58,3.57,3.54,3.49,3.48, 3.73,3.49,3.56,3.50,3.55,3.64,3.47,3.73,3.52,3.70, 3.62,3.69,3.59,3.61,3.70,3.54,3.76,3.62,3.78,3.62, 3.55,3.74,3.59,3.85,3.74,3.70,3.78,3.71,3.67,3.70, 3.71,3.57,3.80,3.95,3.83,3.75,3.77,3.93,3.86,3.90, 0.58,0.64,0.66,0.68,0.72,0.79,0.76,0.82,0.81,0.84, 0.88,0.87,0.85,0.85,0.90,0.95,0.97,1.03,1.04,1.01, 1.05,1.05,1.06,1.08,1.17,1.12,1.14,1.12,1.16,1.14, 1.26,1.17,1.21,1.23,1.24,1.22,1.28,1.30,1.31,1.36, 1.30,1.41,1.34,1.36,1.34,1.38,1.40,1.44,1.43,1.45, 1.45,1.51,1.49,1.42,1.51,1.51,1.60,1.53,1.56,1.52, 1.58,1.71,1.62,1.64,1.66,1.65,1.67,1.73,1.65,1.66, 1.65,1.66,1.74,1.73,1.73,1.71,1.74,1.76,1.76,1.74, 1.79,1.77,1.84,1.80,1.86,1.84,1.80,1.81,1.88,1.97, 1.97,1.91,1.85,1.93,1.94,1.94,2.02,1.96,2.00,1.97, 1.96,2.02,1.98,1.97,2.00,2.06,2.00,2.11,2.07,2.05, 2.17,2.06,1.94,2.14,2.10,2.10,2.15,2.17,2.18,2.19, 2.13,2.23,2.22,2.20,2.29,2.23,2.27,2.24,2.23,2.20, 2.34,2.27,2.26,2.31,2.26,2.31,2.35,2.28,2.35,2.30, 2.39,2.22,2.38,2.22,2.35,2.41,2.41,2.40,2.36,2.34, 2.46,2.51,2.47,2.50,2.48,2.43,2.57,2.46,2.44,2.52, 2.46,2.46,2.48,2.52,2.55,2.54,2.51,2.48,2.44,2.57, 2.46,2.56,2.59,2.63,2.66,2.58,2.60,2.58,2.66,2.58, 2.58,2.64,2.73,2.65,2.69,2.66,2.58,2.74,2.74,2.65, 2.65,2.70,2.64,2.57,2.69,2.65,2.75,2.80,2.68,2.66, 2.69,2.79,2.77,2.66,2.81,2.78,2.74,2.66,2.82,2.80, 2.84,2.83,2.79,2.89,2.92,2.78,2.90,2.84,2.83,2.80, 2.84,2.87,2.90,2.85,2.81,2.85,2.83,2.85,2.93,2.99, 2.86,2.83,2.95,2.80,3.00,2.88,2.91,2.94,3.08,3.05, 3.00,3.02,3.02,3.06,2.98,2.97,3.09,2.95,3.03,2.99, 2.98,3.04,3.01,2.99,3.09,3.09,2.97,3.11,3.15,3.13, 3.18,3.12,3.11,3.28,3.16,3.12,3.15,3.18,3.15,3.08, 3.07,3.27,3.05,3.28,3.17,3.23,3.27,3.25,3.19,3.19, 3.24,3.24,3.20,3.19,3.27,3.27,3.27,3.32,3.15,3.41, 0.54,0.54,0.53,0.62,0.62,0.66,0.61,0.69,0.67,0.73, 0.76,0.74,0.78,0.78,0.80,0.84,0.84,0.83,0.88,0.90, 0.89,0.92,0.92,0.89,0.96,0.95,0.98,1.00,1.03,0.99, 1.03,1.03,1.09,1.07,1.09,1.11,1.10,1.10,1.13,1.11, 1.11,1.18,1.15,1.16,1.20,1.19,1.23,1.21,1.26,1.24, 1.28,1.28,1.28,1.32,1.32,1.31,1.30,1.32,1.33,1.29, 1.35,1.34,1.38,1.41,1.37,1.38,1.46,1.40,1.38,1.42, 1.47,1.49,1.48,1.53,1.48,1.46,1.50,1.45,1.54,1.51, 1.58,1.64,1.51,1.58,1.54,1.51,1.55,1.58,1.56,1.66, 1.63,1.63,1.52,1.61,1.73,1.68,1.75,1.71,1.70,1.64, 1.72,1.63,1.72,1.67,1.72,1.65,1.77,1.78,1.73,1.81, 1.75,1.76,1.78,1.84,1.73,1.83,1.77,1.80,1.88,1.84, 1.84,1.85,1.89,1.89,1.83,1.94,1.86,1.94,1.92,1.98, 1.90,1.86,1.96,1.89,1.95,1.85,1.97,2.04,1.92,1.92, 1.96,2.04,2.05,2.01,1.96,2.01,2.07,1.97,2.06,2.02, 1.98,2.06,2.11,2.04,2.19,2.08,2.00,2.11,2.10,2.07, 2.12,2.02,2.15,2.15,2.05,2.11,2.20,2.17,2.21,2.21, 2.22,2.19,2.19,2.17,2.26,2.12,2.28,2.18,2.20,2.22, 2.14,2.14,2.21,2.30,2.35,2.32,2.32,2.22,2.35,2.37, 2.32,2.31,2.35,2.26,2.35,2.32,2.28,2.34,2.33,2.25, 2.29,2.36,2.34,2.36,2.37,2.36,2.38,2.51,2.30,2.43, 2.46,2.38,2.45,2.53,2.53,2.41,2.38,2.46,2.44,2.53, 2.43,2.39,2.54,2.37,2.65,2.44,2.49,2.51,2.59,2.53, 2.49,2.54,2.54,2.52,2.49,2.56,2.53,2.50,2.58,2.50, 2.57,2.52,2.52,2.49,2.60,2.54,2.67,2.61,2.61,2.53, 2.62,2.62,2.58,2.61,2.62,2.72,2.58,2.60,2.62,2.63, 2.64,2.58,2.73,2.64,2.70,2.55,2.74,2.62,2.69,2.70, 2.74,2.77,2.64,2.79,2.79,2.76,2.79,2.71,2.83,2.80, 2.77,2.81,2.75,2.68,2.72,2.80,2.79,2.90,2.81,2.87, 0.47,0.44,0.46,0.51,0.55,0.55,0.57,0.61,0.59,0.62, 0.63,0.65,0.66,0.67,0.68,0.70,0.69,0.73,0.75,0.74, 0.83,0.81,0.77,0.81,0.80,0.85,0.84,0.86,0.85,0.89, 0.91,0.90,0.91,0.88,0.94,0.95,0.94,0.99,0.97,0.95, 0.97,1.02,0.95,1.04,1.06,1.01,1.07,1.06,1.07,1.13, 1.07,1.07,1.06,1.13,1.10,1.14,1.14,1.15,1.15,1.20, 1.10,1.14,1.22,1.18,1.26,1.16,1.23,1.24,1.17,1.24, 1.25,1.25,1.26,1.26,1.25,1.25,1.31,1.32,1.34,1.21, 1.38,1.44,1.39,1.31,1.34,1.38,1.38,1.39,1.33,1.33, 1.45,1.40,1.43,1.42,1.40,1.36,1.43,1.43,1.46,1.47, 1.46,1.47,1.52,1.57,1.47,1.48,1.45,1.57,1.58,1.50, 1.56,1.52,1.46,1.57,1.62,1.56,1.61,1.55,1.63,1.54, 1.60,1.57,1.60,1.69,1.62,1.64,1.65,1.61,1.65,1.73, 1.68,1.70,1.63,1.66,1.67,1.68,1.67,1.63,1.69,1.77, 1.65,1.72,1.75,1.75,1.75,1.73,1.72,1.78,1.79,1.76, 1.76,1.79,1.80,1.79,1.78,1.81,1.84,1.83,1.76,1.88, 1.76,1.84,1.83,1.80,1.81,1.87,1.81,1.79,1.84,1.87, 1.88,1.91,1.81,1.98,1.89,1.90,1.83,1.81,1.92,1.91, 1.91,1.91,1.97,1.95,1.92,1.96,1.91,1.95,2.02,1.97, 2.00,1.95,2.08,1.96,2.05,1.98,2.05,2.01,2.02,2.01, 2.02,2.07,2.04,2.05,2.02,2.02,2.12,2.01,2.09,2.07, 2.05,2.09,2.08,2.09,2.05,1.99,2.08,2.14,2.07,2.09, 2.18,2.10,2.13,2.05,2.14,2.20,2.12,2.13,2.11,2.17, 2.14,2.17,2.11,2.10,2.12,2.16,2.15,2.25,2.19,2.17, 2.25,2.25,2.19,2.30,2.27,2.32,2.08,2.19,2.22,2.23, 2.28,2.24,2.26,2.26,2.21,2.29,2.29,2.26,2.25,2.33, 2.33,2.23,2.39,2.30,2.27,2.28,2.29,2.34,2.43,2.39, 2.35,2.27,2.34,2.23,2.41,2.28,2.34,2.36,2.40,2.37, 2.38,2.42,2.33,2.36,2.37,2.26,2.46,2.44,2.40,2.39, 0.38,0.41,0.43,0.44,0.45,0.47,0.47,0.49,0.52,0.53, 0.51,0.56,0.55,0.56,0.57,0.59,0.61,0.63,0.64,0.60, 0.65,0.65,0.67,0.67,0.70,0.72,0.71,0.72,0.76,0.73, 0.79,0.77,0.78,0.78,0.76,0.82,0.84,0.83,0.87,0.84, 0.86,0.86,0.89,0.83,0.87,0.86,0.88,0.88,0.93,0.96, 0.89,0.91,0.93,0.93,0.92,0.93,0.97,0.97,1.05,0.99, 1.02,1.01,1.02,1.04,1.02,1.01,1.00,1.06,1.04,1.04, 1.06,1.10,1.05,1.09,1.13,1.07,1.12,1.17,1.11,1.12, 1.14,1.14,1.14,1.10,1.16,1.16,1.19,1.19,1.19,1.14, 1.17,1.14,1.22,1.18,1.18,1.27,1.26,1.25,1.21,1.20, 1.22,1.25,1.28,1.35,1.25,1.26,1.27,1.31,1.29,1.31, 1.30,1.31,1.33,1.29,1.34,1.40,1.34,1.34,1.37,1.36, 1.34,1.45,1.38,1.37,1.36,1.39,1.39,1.36,1.38,1.39, 1.38,1.45,1.42,1.42,1.43,1.42,1.45,1.42,1.46,1.55, 1.48,1.45,1.43,1.47,1.53,1.57,1.50,1.48,1.48,1.47, 1.53,1.50,1.54,1.57,1.51,1.50,1.55,1.59,1.57,1.54, 1.54,1.60,1.58,1.59,1.55,1.64,1.59,1.54,1.56,1.59, 1.68,1.65,1.62,1.61,1.63,1.63,1.73,1.66,1.59,1.67, 1.60,1.66,1.70,1.75,1.67,1.70,1.74,1.70,1.74,1.64, 1.61,1.76,1.67,1.64,1.73,1.68,1.80,1.68,1.71,1.66, 1.71,1.72,1.74,1.72,1.75,1.72,1.72,1.73,1.73,1.75, 1.78,1.79,1.77,1.79,1.81,1.81,1.79,1.86,1.89,1.81, 1.75,1.87,1.78,1.87,1.94,1.79,1.88,1.85,1.90,1.82, 1.86,1.88,1.96,1.84,1.95,1.88,1.80,1.86,1.89,1.91, 1.95,1.81,1.84,1.85,1.85,1.91,1.87,1.97,1.95,1.93, 1.99,1.89,1.91,1.90,1.92,1.90,1.91,2.00,1.94,1.94, 1.95,1.96,1.91,1.90,1.98,1.90,1.97,1.98,2.02,2.02, 1.97,2.06,2.06,2.00,1.91,2.04,2.05,2.02,2.06,2.09, 2.01,2.00,2.09,2.09,2.01,2.17,2.05,1.99,2.10,1.97, 0.34,0.33,0.37,0.40,0.38,0.42,0.42,0.41,0.48,0.45, 0.47,0.44,0.51,0.49,0.49,0.55,0.50,0.51,0.55,0.53, 0.56,0.54,0.55,0.60,0.58,0.63,0.61,0.66,0.64,0.62, 0.63,0.69,0.65,0.65,0.69,0.69,0.71,0.68,0.71,0.70, 0.70,0.74,0.71,0.74,0.75,0.72,0.81,0.76,0.77,0.76, 0.77,0.80,0.78,0.78,0.81,0.78,0.87,0.86,0.84,0.84, 0.85,0.85,0.87,0.83,0.84,0.86,0.91,0.87,0.93,0.87, 0.89,0.88,0.94,0.93,0.95,0.91,0.91,0.93,0.98,0.90, 0.98,0.93,0.97,0.98,1.00,0.99,0.99,0.97,1.01,1.00, 1.08,1.03,1.02,1.05,1.05,1.05,1.00,1.05,1.05,1.06, 1.10,1.05,1.06,1.09,1.06,1.12,1.09,1.08,1.08,1.10, 1.12,1.08,1.12,1.17,1.17,1.14,1.14,1.15,1.16,1.15, 1.17,1.13,1.15,1.11,1.15,1.22,1.17,1.20,1.16,1.19, 1.23,1.15,1.21,1.22,1.18,1.23,1.19,1.23,1.24,1.22, 1.19,1.23,1.21,1.30,1.19,1.22,1.30,1.26,1.24,1.31, 1.27,1.31,1.36,1.26,1.31,1.28,1.26,1.32,1.33,1.30, 1.34,1.33,1.38,1.31,1.30,1.38,1.41,1.33,1.36,1.39, 1.36,1.31,1.34,1.38,1.41,1.39,1.36,1.38,1.40,1.39, 1.37,1.41,1.38,1.42,1.44,1.45,1.39,1.48,1.45,1.43, 1.43,1.50,1.46,1.44,1.46,1.47,1.44,1.48,1.44,1.48, 1.46,1.37,1.51,1.46,1.55,1.52,1.52,1.54,1.53,1.51, 1.50,1.52,1.50,1.58,1.50,1.54,1.54,1.55,1.54,1.52, 1.57,1.67,1.60,1.60,1.49,1.61,1.59,1.50,1.57,1.61, 1.58,1.53,1.62,1.59,1.56,1.60,1.65,1.56,1.60,1.58, 1.59,1.62,1.65,1.65,1.63,1.64,1.65,1.59,1.69,1.60, 1.60,1.72,1.66,1.62,1.72,1.62,1.67,1.66,1.69,1.66, 1.65,1.73,1.67,1.73,1.76,1.65,1.67,1.70,1.72,1.68, 1.71,1.68,1.75,1.68,1.67,1.71,1.74,1.79,1.77,1.73, 1.70,1.75,1.77,1.80,1.73,1.69,1.78,1.69,1.74,1.77, 0.28,0.28,0.29,0.30,0.36,0.31,0.36,0.34,0.36,0.41, 0.40,0.40,0.39,0.41,0.44,0.43,0.43,0.45,0.47,0.47, 0.47,0.49,0.50,0.52,0.51,0.50,0.49,0.53,0.53,0.57, 0.56,0.54,0.54,0.59,0.58,0.59,0.59,0.58,0.57,0.61, 0.60,0.63,0.60,0.62,0.63,0.66,0.65,0.67,0.64,0.66, 0.69,0.69,0.65,0.70,0.70,0.72,0.73,0.72,0.70,0.73, 0.73,0.76,0.70,0.77,0.70,0.72,0.72,0.76,0.79,0.76, 0.75,0.78,0.78,0.81,0.82,0.77,0.78,0.82,0.83,0.83, 0.80,0.82,0.87,0.79,0.80,0.83,0.88,0.85,0.84,0.89, 0.85,0.88,0.91,0.89,0.87,0.86,0.91,0.90,0.94,0.96, 0.91,0.94,0.91,0.92,0.93,0.92,0.98,0.92,0.92,0.93, 0.95,0.85,0.94,0.93,0.97,1.00,0.97,0.98,0.94,1.00, 0.98,0.98,1.00,0.96,0.99,1.01,1.05,0.97,1.01,1.05, 1.00,1.01,1.00,0.99,1.07,0.97,1.05,1.02,1.08,1.03, 1.09,1.03,1.04,1.06,1.06,1.08,1.12,1.06,1.07,1.10, 1.16,1.13,1.11,1.11,1.07,1.17,1.15,1.06,1.13,1.15, 1.13,1.09,1.07,1.12,1.11,1.15,1.13,1.16,1.15,1.13, 1.18,1.15,1.14,1.21,1.18,1.19,1.16,1.21,1.16,1.21, 1.16,1.19,1.19,1.18,1.20,1.25,1.20,1.26,1.23,1.18, 1.22,1.24,1.25,1.27,1.22,1.27,1.23,1.21,1.20,1.15, 1.29,1.26,1.23,1.26,1.24,1.23,1.29,1.30,1.28,1.28, 1.32,1.30,1.27,1.32,1.30,1.33,1.26,1.27,1.32,1.30, 1.34,1.27,1.30,1.33,1.30,1.38,1.36,1.32,1.43,1.31, 1.29,1.41,1.33,1.32,1.32,1.34,1.33,1.44,1.34,1.38, 1.38,1.36,1.39,1.38,1.39,1.34,1.36,1.43,1.38,1.41, 1.43,1.40,1.35,1.39,1.44,1.43,1.39,1.39,1.47,1.43, 1.44,1.50,1.38,1.52,1.42,1.43,1.48,1.45,1.39,1.44, 1.47,1.48,1.41,1.49,1.43,1.41,1.48,1.47,1.38,1.40, 1.47,1.54,1.45,1.48,1.47,1.49,1.48,1.53,1.47,1.49, 0.24,0.25,0.26,0.30,0.26,0.30,0.28,0.31,0.33,0.33, 0.32,0.35,0.36,0.32,0.37,0.40,0.41,0.39,0.36,0.41, 0.40,0.43,0.43,0.42,0.43,0.45,0.42,0.45,0.45,0.47, 0.46,0.45,0.47,0.48,0.48,0.52,0.50,0.52,0.50,0.52, 0.48,0.53,0.53,0.53,0.53,0.56,0.54,0.54,0.55,0.60, 0.57,0.54,0.62,0.59,0.60,0.59,0.61,0.63,0.62,0.63, 0.63,0.65,0.61,0.62,0.65,0.66,0.64,0.65,0.63,0.64, 0.62,0.68,0.68,0.67,0.68,0.72,0.63,0.68,0.70,0.72, 0.69,0.73,0.70,0.72,0.75,0.69,0.75,0.72,0.78,0.74, 0.75,0.74,0.74,0.74,0.78,0.78,0.80,0.73,0.79,0.79, 0.77,0.79,0.79,0.79,0.82,0.76,0.78,0.76,0.80,0.78, 0.78,0.81,0.82,0.83,0.82,0.85,0.85,0.85,0.83,0.89, 0.81,0.83,0.83,0.82,0.87,0.89,0.84,0.86,0.91,0.89, 0.87,0.88,0.91,0.89,0.90,0.89,0.89,0.89,0.90,0.90, 0.88,0.92,0.88,0.90,0.89,0.89,0.88,0.90,0.90,0.96, 0.92,0.94,0.96,0.93,0.92,0.93,0.96,0.87,0.98,0.97, 0.99,0.98,0.95,0.99,0.98,1.00,0.97,1.00,1.01,1.00, 1.00,0.99,0.99,1.01,1.00,1.02,0.99,0.99,0.96,1.06, 1.02,1.03,1.01,1.03,1.06,1.04,1.00,1.05,1.01,1.02, 1.07,0.98,1.07,1.06,1.05,1.04,1.09,1.05,1.07,1.02, 1.09,1.12,1.09,1.08,1.07,1.06,1.10,1.10,1.05,1.12, 1.13,1.10,1.12,1.09,1.05,1.13,1.12,1.10,1.08,1.10, 1.10,1.18,1.14,1.11,1.12,1.16,1.12,1.15,1.11,1.16, 1.14,1.15,1.19,1.17,1.18,1.15,1.18,1.15,1.15,1.16, 1.15,1.15,1.18,1.12,1.20,1.11,1.17,1.17,1.17,1.21, 1.22,1.22,1.26,1.22,1.30,1.24,1.23,1.19,1.27,1.20, 1.21,1.19,1.18,1.24,1.21,1.20,1.27,1.19,1.25,1.23, 1.24,1.31,1.21,1.27,1.26,1.29,1.27,1.25,1.24,1.19, 1.27,1.31,1.30,1.25,1.30,1.30,1.24,1.30,1.27,1.32, 0.21,0.20,0.22,0.23,0.24,0.26,0.25,0.25,0.29,0.25, 0.29,0.30,0.26,0.31,0.32,0.30,0.31,0.32,0.32,0.33, 0.35,0.33,0.37,0.35,0.39,0.37,0.37,0.37,0.40,0.39, 0.43,0.41,0.40,0.40,0.48,0.42,0.43,0.40,0.43,0.45, 0.46,0.45,0.45,0.46,0.46,0.43,0.50,0.44,0.48,0.49, 0.49,0.48,0.47,0.52,0.49,0.53,0.50,0.49,0.50,0.49, 0.51,0.51,0.51,0.55,0.52,0.55,0.56,0.56,0.53,0.55, 0.54,0.53,0.57,0.55,0.56,0.53,0.58,0.56,0.63,0.58, 0.58,0.61,0.62,0.61,0.64,0.61,0.61,0.59,0.64,0.57, 0.58,0.60,0.62,0.63,0.65,0.66,0.63,0.68,0.65,0.68, 0.67,0.66,0.65,0.70,0.62,0.69,0.66,0.68,0.72,0.70, 0.70,0.70,0.72,0.70,0.71,0.69,0.72,0.75,0.70,0.71, 0.70,0.70,0.71,0.74,0.75,0.72,0.75,0.72,0.74,0.74, 0.72,0.75,0.76,0.74,0.76,0.73,0.73,0.76,0.75,0.76, 0.77,0.74,0.79,0.77,0.76,0.74,0.80,0.81,0.86,0.76, 0.79,0.82,0.78,0.81,0.79,0.81,0.82,0.77,0.81,0.79, 0.83,0.77,0.78,0.83,0.84,0.86,0.80,0.84,0.86,0.85, 0.83,0.86,0.84,0.84,0.88,0.83,0.83,0.83,0.84,0.89, 0.86,0.84,0.84,0.89,0.89,0.87,0.90,0.89,0.87,0.91, 0.87,0.89,0.94,0.85,0.94,0.91,0.87,0.89,0.92,0.96, 0.86,0.93,0.96,0.88,0.94,0.92,0.91,0.93,0.87,0.89, 0.94,0.91,0.93,0.98,0.94,0.99,0.91,0.95,0.95,0.98, 0.97,0.96,0.94,0.94,0.95,0.94,0.95,0.94,0.91,1.01, 0.99,0.94,0.96,0.95,1.01,0.94,0.99,0.96,0.98,1.05, 0.96,0.98,0.97,0.97,0.99,1.02,1.02,1.04,1.00,0.98, 1.01,0.97,1.04,1.05,1.02,0.99,1.02,1.07,1.08,1.07, 1.03,1.04,1.04,1.04,1.02,1.01,1.03,1.06,1.02,1.01, 1.07,1.03,1.02,1.10,1.07,1.03,1.08,1.07,1.05,1.07, 1.08,1.01,1.08,1.11,1.10,1.09,1.06,1.03,1.08,1.10, 0.15,0.13,0.17,0.18,0.21,0.24,0.21,0.22,0.22,0.26, 0.21,0.24,0.24,0.25,0.27,0.28,0.28,0.26,0.26,0.26, 0.30,0.30,0.31,0.32,0.31,0.31,0.32,0.32,0.34,0.35, 0.34,0.33,0.35,0.33,0.35,0.32,0.35,0.35,0.36,0.34, 0.41,0.40,0.40,0.38,0.38,0.37,0.40,0.38,0.40,0.42, 0.41,0.41,0.43,0.43,0.40,0.43,0.43,0.44,0.44,0.42, 0.46,0.43,0.45,0.45,0.50,0.47,0.44,0.43,0.46,0.50, 0.47,0.46,0.51,0.51,0.48,0.50,0.48,0.51,0.52,0.48, 0.51,0.53,0.52,0.52,0.50,0.53,0.50,0.52,0.52,0.52, 0.54,0.54,0.54,0.54,0.55,0.54,0.59,0.61,0.55,0.56, 0.55,0.54,0.57,0.55,0.60,0.56,0.61,0.60,0.58,0.60, 0.55,0.59,0.60,0.61,0.62,0.59,0.63,0.59,0.62,0.62, 0.60,0.58,0.63,0.60,0.60,0.66,0.64,0.63,0.61,0.66, 0.66,0.63,0.64,0.64,0.62,0.65,0.61,0.65,0.66,0.65, 0.67,0.63,0.62,0.68,0.65,0.65,0.65,0.64,0.64,0.67, 0.70,0.66,0.64,0.73,0.69,0.68,0.65,0.69,0.70,0.67, 0.70,0.70,0.69,0.70,0.69,0.69,0.69,0.69,0.69,0.76, 0.72,0.75,0.73,0.72,0.72,0.70,0.73,0.71,0.73,0.76, 0.75,0.72,0.74,0.80,0.74,0.76,0.75,0.77,0.76,0.77, 0.76,0.77,0.79,0.76,0.78,0.80,0.78,0.83,0.81,0.79, 0.76,0.79,0.78,0.77,0.79,0.82,0.81,0.82,0.82,0.76, 0.78,0.80,0.78,0.83,0.78,0.78,0.79,0.76,0.80,0.78, 0.77,0.83,0.83,0.80,0.78,0.83,0.81,0.83,0.83,0.83, 0.88,0.86,0.89,0.83,0.82,0.84,0.85,0.82,0.81,0.84, 0.88,0.85,0.84,0.88,0.91,0.89,0.85,0.86,0.84,0.88, 0.83,0.87,0.88,0.94,0.87,0.89,0.88,0.84,0.86,0.87, 0.92,0.87,0.85,0.87,0.91,0.88,0.88,0.91,0.91,0.89, 0.91,0.89,0.86,0.90,0.87,0.91,0.92,0.92,0.97,0.90, 0.92,0.90,0.88,0.93,0.89,0.95,0.86,0.92,0.94,0.95, 0.16,0.15,0.18,0.16,0.18,0.20,0.20,0.20,0.21,0.18, 0.20,0.21,0.18,0.22,0.20,0.23,0.21,0.25,0.22,0.26, 0.27,0.24,0.27,0.29,0.26,0.28,0.30,0.29,0.31,0.27, 0.29,0.30,0.28,0.30,0.31,0.32,0.34,0.33,0.30,0.31, 0.31,0.34,0.34,0.34,0.30,0.35,0.32,0.32,0.34,0.35, 0.34,0.37,0.32,0.37,0.34,0.39,0.38,0.40,0.40,0.36, 0.36,0.39,0.39,0.41,0.38,0.41,0.41,0.38,0.45,0.40, 0.39,0.40,0.41,0.43,0.39,0.40,0.40,0.44,0.46,0.43, 0.42,0.42,0.41,0.40,0.43,0.45,0.41,0.42,0.45,0.48, 0.46,0.47,0.44,0.48,0.48,0.45,0.49,0.46,0.41,0.48, 0.45,0.47,0.46,0.47,0.49,0.52,0.47,0.48,0.49,0.49, 0.50,0.49,0.51,0.48,0.51,0.49,0.50,0.51,0.53,0.54, 0.49,0.49,0.53,0.56,0.56,0.50,0.51,0.55,0.57,0.56, 0.54,0.54,0.56,0.52,0.55,0.56,0.59,0.55,0.58,0.55, 0.52,0.57,0.56,0.56,0.56,0.56,0.54,0.56,0.55,0.56, 0.58,0.55,0.57,0.57,0.59,0.59,0.60,0.58,0.58,0.58, 0.60,0.58,0.61,0.60,0.61,0.60,0.61,0.58,0.59,0.62, 0.61,0.61,0.62,0.63,0.64,0.62,0.62,0.62,0.62,0.61, 0.60,0.64,0.60,0.69,0.64,0.64,0.66,0.60,0.60,0.58, 0.68,0.63,0.66,0.65,0.66,0.66,0.69,0.61,0.64,0.62, 0.68,0.68,0.64,0.67,0.70,0.66,0.67,0.69,0.64,0.68, 0.64,0.70,0.67,0.69,0.72,0.68,0.68,0.70,0.68,0.70, 0.68,0.71,0.68,0.69,0.71,0.72,0.73,0.71,0.68,0.72, 0.69,0.72,0.71,0.70,0.70,0.70,0.70,0.75,0.69,0.73, 0.74,0.72,0.72,0.72,0.72,0.72,0.77,0.74,0.75,0.73, 0.74,0.70,0.74,0.74,0.70,0.70,0.75,0.70,0.70,0.73, 0.71,0.79,0.76,0.74,0.77,0.75,0.77,0.74,0.74,0.75, 0.77,0.74,0.78,0.78,0.79,0.75,0.76,0.80,0.74,0.76, 0.78,0.75,0.77,0.75,0.76,0.81,0.78,0.80,0.85,0.81, 0.09,0.12,0.13,0.14,0.14,0.17,0.13,0.12,0.20,0.18, 0.17,0.19,0.17,0.19,0.18,0.19,0.22,0.22,0.18,0.21, 0.21,0.22,0.22,0.25,0.23,0.21,0.24,0.23,0.24,0.25, 0.23,0.25,0.27,0.29,0.26,0.25,0.26,0.28,0.26,0.23, 0.27,0.30,0.27,0.27,0.28,0.27,0.28,0.28,0.28,0.28, 0.31,0.32,0.29,0.27,0.31,0.31,0.33,0.30,0.33,0.34, 0.32,0.31,0.33,0.32,0.33,0.34,0.34,0.35,0.33,0.35, 0.33,0.35,0.35,0.37,0.37,0.37,0.36,0.36,0.38,0.37, 0.42,0.36,0.34,0.39,0.38,0.40,0.38,0.38,0.37,0.38, 0.40,0.39,0.41,0.38,0.38,0.38,0.40,0.42,0.41,0.40, 0.38,0.40,0.44,0.40,0.40,0.40,0.40,0.43,0.42,0.45, 0.44,0.43,0.42,0.43,0.47,0.44,0.43,0.41,0.43,0.46, 0.46,0.43,0.46,0.46,0.44,0.46,0.46,0.43,0.45,0.47, 0.46,0.49,0.46,0.48,0.47,0.49,0.46,0.49,0.51,0.47, 0.48,0.46,0.48,0.50,0.49,0.50,0.47,0.52,0.47,0.48, 0.48,0.49,0.49,0.52,0.48,0.47,0.54,0.51,0.46,0.49, 0.48,0.53,0.52,0.52,0.50,0.52,0.50,0.53,0.50,0.51, 0.50,0.55,0.50,0.52,0.52,0.54,0.52,0.51,0.56,0.50, 0.51,0.54,0.52,0.52,0.55,0.54,0.55,0.55,0.52,0.58, 0.54,0.49,0.55,0.55,0.54,0.57,0.60,0.53,0.55,0.54, 0.57,0.56,0.54,0.56,0.55,0.59,0.54,0.60,0.58,0.57, 0.59,0.56,0.57,0.60,0.61,0.60,0.60,0.60,0.60,0.60, 0.58,0.58,0.60,0.59,0.56,0.60,0.59,0.59,0.61,0.58, 0.60,0.56,0.60,0.61,0.60,0.61,0.60,0.62,0.60,0.60, 0.60,0.64,0.62,0.63,0.61,0.60,0.59,0.62,0.58,0.63, 0.60,0.63,0.63,0.60,0.64,0.59,0.65,0.64,0.60,0.60, 0.63,0.61,0.62,0.64,0.62,0.64,0.68,0.63,0.59,0.64, 0.64,0.64,0.67,0.65,0.65,0.66,0.64,0.64,0.67,0.68, 0.67,0.63,0.67,0.67,0.68,0.66,0.64,0.62,0.67,0.63, 0.09,0.12,0.11,0.13,0.11,0.09,0.14,0.14,0.14,0.13, 0.14,0.13,0.17,0.14,0.15,0.14,0.16,0.16,0.15,0.17, 0.18,0.19,0.20,0.21,0.19,0.20,0.21,0.19,0.19,0.25, 0.21,0.20,0.19,0.22,0.23,0.19,0.22,0.21,0.23,0.23, 0.22,0.28,0.23,0.27,0.25,0.22,0.23,0.25,0.26,0.26, 0.26,0.27,0.27,0.24,0.28,0.27,0.24,0.26,0.30,0.28, 0.25,0.29,0.27,0.27,0.31,0.30,0.30,0.33,0.30,0.28, 0.28,0.29,0.29,0.30,0.31,0.29,0.29,0.31,0.29,0.28, 0.34,0.32,0.28,0.34,0.32,0.35,0.30,0.30,0.33,0.31, 0.32,0.32,0.31,0.33,0.32,0.30,0.35,0.32,0.34,0.33, 0.36,0.35,0.33,0.34,0.35,0.35,0.37,0.35,0.35,0.37, 0.35,0.37,0.36,0.37,0.38,0.35,0.36,0.36,0.36,0.40, 0.39,0.36,0.36,0.40,0.38,0.39,0.37,0.37,0.39,0.39, 0.39,0.40,0.40,0.38,0.39,0.40,0.37,0.42,0.43,0.39, 0.43,0.41,0.41,0.37,0.43,0.40,0.42,0.42,0.41,0.48, 0.40,0.41,0.40,0.43,0.46,0.42,0.42,0.44,0.41,0.45, 0.41,0.40,0.43,0.46,0.43,0.42,0.45,0.42,0.44,0.43, 0.43,0.46,0.44,0.43,0.43,0.41,0.48,0.45,0.45,0.43, 0.44,0.46,0.45,0.47,0.47,0.47,0.44,0.45,0.47,0.50, 0.45,0.44,0.46,0.50,0.46,0.46,0.45,0.48,0.48,0.44, 0.50,0.47,0.49,0.50,0.51,0.49,0.49,0.49,0.47,0.46, 0.48,0.49,0.49,0.52,0.46,0.48,0.46,0.50,0.50,0.49, 0.50,0.47,0.49,0.49,0.46,0.47,0.51,0.53,0.51,0.53, 0.50,0.51,0.52,0.53,0.51,0.55,0.47,0.48,0.50,0.53, 0.54,0.52,0.51,0.55,0.54,0.56,0.53,0.50,0.52,0.48, 0.51,0.49,0.53,0.54,0.54,0.54,0.59,0.56,0.54,0.55, 0.57,0.53,0.55,0.51,0.55,0.54,0.55,0.55,0.55,0.57, 0.60,0.54,0.53,0.56,0.57,0.54,0.56,0.54,0.57,0.57, 0.55,0.56,0.58,0.55,0.57,0.57,0.55,0.53,0.55,0.55, 0.99,1.02,1.11,1.13,1.18,1.24,1.28,1.27,1.33,1.33, 1.41,1.48,1.38,1.49,1.44,1.54,1.57,1.54,1.54,1.61, 1.64,1.64,1.68,1.74,1.73,1.82,1.84,1.91,1.84,1.96, 1.86,1.94,1.98,2.01,2.01,2.02,2.03,2.15,2.20,2.08, 2.19,2.13,2.23,2.24,2.25,2.26,2.31,2.38,2.23,2.34, 2.37,2.37,2.42,2.46,2.56,2.39,2.43,2.52,2.53,2.54, 2.51,2.58,2.47,2.67,2.67,2.55,2.67,2.62,2.66,2.77, 2.69,2.71,2.72,2.71,2.71,2.75,2.77,2.77,2.86,2.96, 2.80,2.97,2.88,2.80,2.92,2.95,2.97,2.96,3.00,3.16, 2.93,2.98,3.03,3.09,3.09,2.99,3.18,3.04,3.23,3.22, 3.18,3.22,3.18,3.26,3.18,3.36,3.18,3.33,3.25,3.26, 3.40,3.28,3.34,3.44,3.48,3.44,3.44,3.39,3.31,3.35, 3.51,3.46,3.43,3.35,3.49,3.53,3.59,3.64,3.48,3.38, 3.46,3.72,3.73,3.70,3.69,3.77,3.79,3.78,3.70,3.61, 3.74,3.74,3.70,3.94,3.80,3.78,3.83,3.88,3.69,3.83, 3.77,3.83,3.81,3.74,3.99,3.83,3.92,4.10,3.76,3.78, 3.86,4.01,4.06,4.09,3.83,3.99,4.07,4.18,4.06,3.99, 4.08,4.06,3.99,4.13,4.05,3.89,4.05,4.11,3.96,4.22, 4.25,4.23,4.06,4.06,4.09,4.35,4.26,4.23,4.27,4.14, 4.32,4.38,4.43,4.37,4.36,4.42,4.21,4.46,4.32,4.54, 4.46,4.49,4.63,4.45,4.41,4.55,4.34,4.40,4.52,4.38, 4.39,4.55,4.55,4.64,4.69,4.54,4.51,4.61,4.50,4.59, 4.58,4.39,4.61,4.43,4.58,4.58,4.74,4.63,4.59,4.83, 4.41,4.85,4.55,4.68,4.72,4.96,4.64,4.86,4.77,4.74, 4.97,4.95,4.67,4.95,4.87,4.75,4.98,4.75,5.02,5.17, 4.84,4.82,4.89,4.99,4.99,5.05,4.82,4.82,4.88,4.86, 4.99,4.80,5.19,4.89,5.09,5.04,5.01,5.13,5.17,5.15, 5.05,4.88,5.04,5.09,4.89,5.23,4.94,5.21,5.03,5.27, 5.04,5.25,5.21,5.09,5.19,5.03,5.30,5.30,5.21,5.24, 0.83,0.87,0.96,0.99,1.00,1.04,1.04,1.11,1.15,1.19, 1.19,1.27,1.29,1.33,1.29,1.33,1.34,1.40,1.44,1.46, 1.48,1.47,1.47,1.52,1.55,1.59,1.62,1.64,1.66,1.73, 1.63,1.67,1.72,1.73,1.82,1.84,1.73,1.89,1.95,1.90, 1.88,1.81,1.97,1.91,1.95,2.02,2.02,1.98,1.99,1.99, 2.02,2.09,2.13,2.07,2.13,2.18,2.16,2.08,2.25,2.24, 2.24,2.33,2.30,2.29,2.26,2.33,2.32,2.38,2.49,2.32, 2.37,2.49,2.37,2.47,2.49,2.40,2.44,2.56,2.47,2.55, 2.54,2.46,2.43,2.56,2.54,2.59,2.64,2.65,2.71,2.66, 2.71,2.61,2.73,2.67,2.75,2.74,2.72,2.67,2.75,2.80, 2.76,2.88,2.80,2.79,2.81,2.91,2.88,2.89,2.84,2.88, 2.84,2.91,3.00,3.03,2.91,3.14,3.00,2.93,3.12,3.07, 3.10,2.90,3.09,3.08,3.16,3.01,3.02,3.09,3.12,3.12, 3.05,3.14,3.14,3.09,3.30,3.14,3.10,3.19,3.27,3.35, 3.32,3.11,3.25,3.23,3.30,3.22,3.26,3.30,3.33,3.41, 3.49,3.45,3.29,3.47,3.37,3.53,3.36,3.40,3.47,3.46, 3.57,3.56,3.42,3.67,3.58,3.51,3.52,3.60,3.45,3.55, 3.49,3.58,3.65,3.47,3.71,3.73,3.64,3.70,3.56,3.69, 3.73,3.60,3.51,3.67,3.69,3.66,3.85,3.77,3.76,3.81, 3.88,3.69,3.86,3.67,3.80,3.60,3.84,3.80,4.04,3.88, 3.93,3.80,3.93,3.85,4.00,3.98,3.95,3.90,3.98,4.06, 4.06,3.85,3.93,3.88,4.04,3.92,3.94,3.98,3.99,3.97, 4.21,4.00,3.90,3.96,3.98,4.06,4.31,4.05,4.16,4.18, 4.08,4.10,4.11,4.10,4.35,4.11,4.32,4.11,4.23,4.16, 4.12,4.28,4.23,4.26,4.15,4.31,4.37,4.25,4.41,4.07, 4.40,4.36,4.39,4.35,4.40,4.44,4.39,4.33,4.33,4.29, 4.37,4.31,4.36,4.37,4.40,4.48,4.33,4.57,4.41,4.39, 4.55,4.44,4.56,4.22,4.43,4.50,4.35,4.61,4.55,4.45, 4.64,4.49,4.44,4.55,4.57,4.51,4.71,4.52,4.65,4.68, 0.75,0.81,0.79,0.84,0.89,0.90,0.94,0.92,1.04,1.03, 1.05,1.05,1.07,1.12,1.14,1.19,1.21,1.22,1.27,1.26, 1.31,1.30,1.34,1.34,1.35,1.41,1.44,1.37,1.43,1.45, 1.51,1.48,1.49,1.55,1.56,1.60,1.58,1.63,1.58,1.60, 1.67,1.64,1.68,1.72,1.74,1.69,1.75,1.80,1.77,1.76, 1.84,1.77,1.84,1.84,1.89,1.82,1.89,1.90,1.94,1.89, 2.03,1.98,1.97,2.00,2.01,1.98,2.00,1.97,2.12,1.98, 2.09,2.14,2.15,2.15,2.16,2.14,2.18,2.11,2.09,2.27, 2.28,2.19,2.33,2.15,2.25,2.20,2.24,2.20,2.38,2.28, 2.24,2.33,2.43,2.32,2.42,2.36,2.37,2.40,2.43,2.38, 2.48,2.43,2.45,2.46,2.52,2.59,2.63,2.61,2.55,2.63, 2.53,2.47,2.50,2.57,2.56,2.59,2.66,2.66,2.58,2.66, 2.69,2.68,2.71,2.62,2.72,2.73,2.70,2.74,2.74,2.74, 2.74,2.75,2.83,2.73,2.83,2.78,2.86,2.66,2.83,2.85, 2.80,2.86,2.78,2.80,2.96,2.89,2.93,2.88,2.88,2.86, 2.89,2.92,3.06,3.04,3.01,3.01,2.99,2.99,3.06,3.09, 3.02,2.99,2.96,3.11,3.08,2.95,3.03,3.08,3.09,3.10, 3.19,3.09,3.23,3.17,3.29,3.14,3.32,3.25,3.22,3.15, 3.25,3.16,3.33,3.36,3.28,3.45,3.21,3.30,3.29,3.25, 3.19,3.41,3.20,3.37,3.42,3.36,3.50,3.27,3.37,3.39, 3.36,3.45,3.31,3.45,3.43,3.46,3.43,3.62,3.41,3.34, 3.41,3.50,3.50,3.46,3.56,3.40,3.45,3.40,3.56,3.57, 3.55,3.48,3.45,3.46,3.51,3.68,3.73,3.67,3.66,3.59, 3.66,3.64,3.70,3.65,3.49,3.67,3.67,3.66,3.65,3.62, 3.72,3.60,3.60,3.75,3.68,3.74,3.81,3.68,3.73,3.80, 3.76,3.70,3.92,3.81,3.72,3.73,3.79,3.79,3.82,3.94, 3.93,3.70,3.71,3.83,3.85,3.83,3.93,3.96,3.91,3.91, 4.00,3.82,3.85,3.87,3.85,3.91,3.97,3.91,3.72,4.02, 4.02,3.98,4.00,3.97,4.05,3.94,4.12,3.72,4.19,3.95, 0.64,0.70,0.71,0.73,0.80,0.80,0.81,0.85,0.87,0.90, 0.93,0.98,0.97,1.00,0.98,1.00,1.05,1.07,1.06,1.09, 1.14,1.09,1.17,1.15,1.18,1.19,1.22,1.27,1.26,1.30, 1.28,1.28,1.29,1.37,1.29,1.33,1.41,1.41,1.39,1.40, 1.39,1.43,1.46,1.50,1.43,1.52,1.46,1.48,1.55,1.54, 1.58,1.56,1.53,1.59,1.65,1.61,1.70,1.65,1.64,1.68, 1.69,1.72,1.62,1.81,1.68,1.78,1.71,1.86,1.76,1.84, 1.84,1.85,1.94,1.85,1.89,1.82,1.88,1.97,1.93,1.90, 1.89,1.94,2.00,1.99,1.93,2.03,1.99,2.03,1.91,2.11, 2.02,2.04,2.02,2.04,2.06,2.12,2.06,2.06,2.05,2.09, 2.13,2.12,2.21,2.17,2.10,2.14,2.19,2.19,2.20,2.20, 2.18,2.25,2.16,2.24,2.28,2.31,2.22,2.30,2.20,2.24, 2.30,2.34,2.30,2.40,2.41,2.46,2.34,2.35,2.38,2.27, 2.38,2.42,2.37,2.39,2.49,2.46,2.35,2.60,2.39,2.45, 2.56,2.58,2.50,2.47,2.52,2.45,2.55,2.45,2.58,2.62, 2.71,2.62,2.48,2.67,2.58,2.64,2.57,2.64,2.70,2.72, 2.68,2.57,2.65,2.68,2.77,2.72,2.70,2.67,2.62,2.69, 2.71,2.73,2.71,2.75,2.76,2.78,2.68,2.66,2.80,2.81, 2.83,2.81,2.94,2.75,2.80,2.73,2.87,2.89,2.84,2.85, 2.98,2.87,2.81,2.91,3.06,2.99,2.94,3.02,2.84,2.89, 2.95,2.89,2.96,2.97,2.98,2.99,2.99,2.87,2.97,2.99, 2.99,2.97,3.13,2.95,3.05,3.13,3.04,3.05,3.09,3.01, 3.00,3.07,2.95,3.09,3.11,3.13,3.17,3.18,3.23,3.05, 3.12,3.11,3.12,3.13,3.07,3.10,3.34,3.20,3.24,3.17, 3.20,3.33,3.22,3.28,3.30,3.21,3.25,3.30,3.31,3.40, 3.24,3.26,3.32,3.42,3.50,3.21,3.38,3.28,3.18,3.33, 3.28,3.29,3.28,3.30,3.52,3.26,3.33,3.47,3.38,3.36, 3.29,3.49,3.36,3.26,3.32,3.49,3.47,3.43,3.37,3.45, 3.51,3.38,3.60,3.51,3.55,3.36,3.59,3.36,3.58,3.59, 0.57,0.61,0.63,0.63,0.66,0.74,0.74,0.73,0.75,0.79, 0.79,0.83,0.84,0.84,0.86,0.86,0.92,0.90,0.95,0.93, 0.98,0.97,0.96,1.05,1.04,1.05,1.10,1.07,1.08,1.13, 1.11,1.10,1.11,1.16,1.16,1.15,1.23,1.18,1.21,1.29, 1.25,1.28,1.26,1.24,1.30,1.27,1.29,1.31,1.34,1.33, 1.36,1.37,1.43,1.39,1.45,1.38,1.42,1.45,1.46,1.49, 1.41,1.53,1.43,1.54,1.53,1.52,1.52,1.54,1.53,1.73, 1.54,1.55,1.60,1.59,1.61,1.56,1.62,1.64,1.66,1.67, 1.59,1.68,1.79,1.69,1.77,1.71,1.69,1.67,1.75,1.75, 1.74,1.85,1.84,1.85,1.79,1.79,1.77,1.84,1.89,1.83, 1.85,1.79,1.85,1.91,1.91,1.90,1.84,1.91,1.78,1.93, 1.98,1.96,1.94,1.97,2.01,1.93,1.92,1.99,1.97,1.97, 2.00,2.08,2.01,1.98,2.14,2.05,2.02,2.05,2.05,2.03, 2.09,2.06,2.03,2.11,2.13,2.12,2.09,2.16,2.14,2.18, 2.21,2.03,2.17,2.18,2.11,2.12,2.15,2.25,2.26,2.18, 2.17,2.26,2.23,2.22,2.19,2.16,2.23,2.23,2.36,2.17, 2.32,2.34,2.27,2.31,2.25,2.35,2.37,2.40,2.37,2.29, 2.31,2.39,2.40,2.32,2.30,2.35,2.40,2.39,2.37,2.42, 2.37,2.49,2.45,2.40,2.39,2.36,2.43,2.58,2.53,2.43, 2.49,2.51,2.45,2.47,2.39,2.45,2.62,2.57,2.57,2.69, 2.49,2.59,2.51,2.48,2.48,2.52,2.47,2.58,2.61,2.59, 2.49,2.65,2.66,2.63,2.77,2.60,2.62,2.67,2.60,2.63, 2.70,2.66,2.68,2.68,2.64,2.74,2.70,2.82,2.69,2.76, 2.74,2.81,2.81,2.77,2.70,2.80,2.75,2.84,2.71,2.77, 2.94,2.79,2.71,2.95,2.76,2.78,2.80,2.89,2.96,2.85, 2.85,2.88,2.82,2.90,2.87,2.91,2.87,2.91,2.85,2.88, 2.90,2.96,2.76,2.86,2.85,2.83,2.86,3.00,3.00,2.89, 2.96,2.92,2.86,3.00,2.99,2.97,2.89,3.01,2.83,3.03, 2.91,2.96,3.00,3.01,3.05,2.95,3.02,3.01,3.11,3.00, 0.50,0.51,0.49,0.55,0.57,0.61,0.61,0.62,0.64,0.63, 0.67,0.72,0.72,0.77,0.76,0.78,0.79,0.79,0.80,0.81, 0.84,0.86,0.86,0.87,0.91,0.90,0.92,0.92,0.96,0.95, 0.95,1.00,1.01,1.01,1.01,1.04,1.10,1.03,1.05,1.09, 1.07,1.10,1.12,1.11,1.14,1.15,1.14,1.11,1.11,1.18, 1.19,1.22,1.19,1.18,1.19,1.27,1.22,1.26,1.25,1.25, 1.26,1.23,1.32,1.26,1.33,1.32,1.35,1.32,1.35,1.39, 1.35,1.31,1.32,1.40,1.36,1.40,1.40,1.44,1.42,1.44, 1.46,1.44,1.46,1.49,1.54,1.43,1.43,1.52,1.45,1.51, 1.52,1.58,1.51,1.52,1.59,1.53,1.57,1.61,1.57,1.59, 1.61,1.59,1.63,1.65,1.60,1.67,1.58,1.70,1.68,1.71, 1.69,1.70,1.70,1.65,1.68,1.66,1.68,1.68,1.70,1.71, 1.68,1.73,1.73,1.77,1.75,1.77,1.75,1.72,1.87,1.78, 1.81,1.76,1.86,1.76,1.84,1.83,1.83,1.80,1.81,1.90, 1.74,1.88,1.80,1.86,1.84,1.88,1.90,1.86,1.95,1.98, 1.91,1.94,1.92,1.87,1.96,2.01,1.98,1.89,1.87,1.91, 1.90,1.94,2.02,2.01,1.95,2.01,2.01,1.99,2.07,2.02, 2.05,1.98,2.00,2.16,2.06,2.06,2.05,2.08,2.05,2.08, 2.14,2.06,2.08,2.15,2.05,2.12,2.10,2.17,2.15,2.19, 2.13,2.12,2.25,2.16,2.15,2.14,2.05,2.12,2.19,2.16, 2.18,2.30,2.16,2.28,2.14,2.32,2.33,2.25,2.24,2.27, 2.27,2.30,2.33,2.33,2.22,2.36,2.22,2.28,2.36,2.30, 2.40,2.35,2.36,2.34,2.34,2.31,2.26,2.33,2.36,2.37, 2.43,2.39,2.38,2.39,2.31,2.33,2.33,2.33,2.43,2.35, 2.30,2.38,2.33,2.37,2.46,2.52,2.43,2.43,2.44,2.54, 2.40,2.60,2.45,2.43,2.46,2.51,2.38,2.54,2.44,2.51, 2.55,2.50,2.40,2.54,2.52,2.43,2.50,2.47,2.48,2.55, 2.49,2.56,2.56,2.61,2.56,2.59,2.60,2.52,2.56,2.63, 2.56,2.48,2.65,2.63,2.56,2.58,2.63,2.62,2.75,2.68, 0.41,0.45,0.47,0.48,0.46,0.51,0.52,0.53,0.59,0.56, 0.59,0.62,0.63,0.68,0.63,0.67,0.70,0.68,0.71,0.72, 0.74,0.76,0.74,0.74,0.76,0.76,0.80,0.76,0.81,0.78, 0.80,0.81,0.89,0.86,0.89,0.90,0.85,0.89,0.94,0.97, 0.96,0.91,0.97,0.93,0.98,0.96,0.96,0.99,0.98,0.99, 1.03,1.08,1.05,1.04,1.03,1.04,1.06,1.08,1.05,1.16, 1.13,1.12,1.12,1.09,1.11,1.15,1.19,1.12,1.15,1.13, 1.18,1.14,1.14,1.21,1.18,1.15,1.25,1.23,1.25,1.25, 1.25,1.24,1.26,1.34,1.24,1.29,1.27,1.30,1.27,1.30, 1.39,1.34,1.32,1.32,1.38,1.32,1.35,1.33,1.35,1.36, 1.39,1.37,1.40,1.33,1.40,1.41,1.34,1.44,1.37,1.45, 1.38,1.45,1.47,1.44,1.45,1.44,1.50,1.48,1.53,1.48, 1.48,1.52,1.51,1.43,1.50,1.56,1.56,1.58,1.56,1.47, 1.56,1.56,1.54,1.55,1.64,1.62,1.55,1.58,1.64,1.63, 1.58,1.64,1.49,1.62,1.66,1.58,1.62,1.63,1.68,1.62, 1.63,1.72,1.60,1.73,1.64,1.65,1.75,1.71,1.77,1.76, 1.74,1.73,1.71,1.79,1.75,1.75,1.70,1.79,1.70,1.81, 1.80,1.83,1.74,1.77,1.78,1.78,1.75,1.73,1.81,1.87, 1.76,1.83,1.81,1.75,1.76,1.79,1.86,1.80,1.85,1.85, 1.83,1.84,1.96,1.87,1.96,1.79,1.90,1.91,1.90,1.91, 1.86,1.90,1.89,1.85,1.90,1.98,1.90,1.84,1.83,1.91, 2.01,1.97,1.92,1.99,1.94,1.97,1.97,1.95,2.06,2.04, 2.01,1.91,2.04,2.02,2.02,2.06,2.00,1.98,1.94,1.98, 1.96,2.07,2.03,2.05,2.01,2.03,2.02,2.01,2.13,2.08, 2.02,2.07,2.19,2.07,2.10,2.05,2.11,2.11,2.05,2.13, 2.13,2.17,2.13,2.14,2.09,2.04,2.06,2.13,2.14,2.13, 2.11,2.18,2.16,2.25,2.22,2.20,2.14,2.09,2.18,2.23, 2.16,2.19,2.20,2.24,2.21,2.21,2.19,2.23,2.24,2.22, 2.24,2.29,2.22,2.23,2.27,2.25,2.23,2.27,2.34,2.28, 0.37,0.37,0.39,0.40,0.42,0.46,0.45,0.46,0.46,0.51, 0.51,0.52,0.50,0.53,0.57,0.57,0.59,0.57,0.56,0.64, 0.64,0.61,0.63,0.67,0.65,0.67,0.69,0.72,0.72,0.69, 0.72,0.71,0.75,0.75,0.73,0.73,0.76,0.77,0.75,0.82, 0.79,0.80,0.82,0.84,0.85,0.80,0.84,0.91,0.88,0.89, 0.91,0.86,0.94,0.91,0.94,0.91,0.94,0.87,0.92,0.94, 0.95,0.95,1.01,0.97,1.00,0.98,0.95,1.00,1.03,1.04, 1.02,1.02,1.01,1.00,1.06,0.99,1.01,1.03,1.08,1.10, 1.09,1.09,1.04,1.06,1.17,1.13,1.08,1.09,1.13,1.10, 1.14,1.14,1.16,1.08,1.15,1.18,1.18,1.16,1.19,1.22, 1.20,1.15,1.24,1.17,1.21,1.20,1.19,1.26,1.22,1.24, 1.26,1.29,1.26,1.28,1.28,1.30,1.22,1.27,1.27,1.30, 1.31,1.31,1.28,1.27,1.28,1.26,1.32,1.28,1.38,1.33, 1.35,1.30,1.36,1.39,1.37,1.39,1.41,1.33,1.36,1.41, 1.34,1.47,1.32,1.37,1.42,1.42,1.42,1.38,1.42,1.37, 1.44,1.41,1.44,1.43,1.42,1.47,1.40,1.49,1.52,1.47, 1.48,1.47,1.53,1.46,1.45,1.54,1.48,1.53,1.47,1.42, 1.47,1.50,1.53,1.48,1.56,1.59,1.49,1.54,1.52,1.55, 1.60,1.56,1.62,1.52,1.62,1.52,1.58,1.56,1.66,1.64, 1.55,1.58,1.70,1.58,1.66,1.58,1.63,1.66,1.55,1.63, 1.59,1.66,1.54,1.63,1.62,1.61,1.60,1.58,1.66,1.72, 1.60,1.65,1.70,1.69,1.68,1.73,1.68,1.64,1.68,1.64, 1.72,1.71,1.67,1.71,1.77,1.75,1.73,1.77,1.70,1.77, 1.73,1.70,1.79,1.78,1.76,1.78,1.79,1.84,1.81,1.76, 1.80,1.69,1.82,1.70,1.85,1.81,1.76,1.87,1.75,1.83, 1.84,1.78,1.82,1.79,1.78,1.84,1.81,1.77,1.80,1.86, 1.87,1.84,1.81,1.92,1.79,1.89,1.83,1.79,1.92,1.86, 1.93,1.90,1.90,1.84,1.89,1.90,1.88,1.99,1.99,1.89, 1.85,1.88,1.96,2.00,1.93,1.89,2.01,1.95,1.94,1.86, 0.29,0.33,0.32,0.37,0.35,0.37,0.38,0.40,0.39,0.45, 0.43,0.46,0.43,0.48,0.47,0.51,0.51,0.50,0.53,0.51, 0.54,0.54,0.56,0.57,0.53,0.59,0.58,0.56,0.61,0.59, 0.61,0.60,0.66,0.63,0.63,0.65,0.64,0.67,0.67,0.67, 0.70,0.68,0.69,0.72,0.70,0.73,0.73,0.76,0.74,0.74, 0.75,0.72,0.78,0.78,0.76,0.81,0.79,0.81,0.81,0.82, 0.84,0.82,0.84,0.82,0.81,0.85,0.83,0.87,0.91,0.86, 0.86,0.88,0.87,0.87,0.90,0.91,0.91,0.90,0.92,0.93, 0.88,0.93,0.92,0.96,0.95,0.95,0.93,0.99,0.93,1.00, 0.96,0.98,0.96,0.95,0.95,0.99,1.01,1.01,1.04,0.97, 1.04,1.02,1.03,0.99,1.02,1.05,1.07,1.10,1.05,1.08, 1.04,1.02,1.09,1.15,1.07,1.06,1.07,1.10,1.03,1.08, 1.11,1.14,1.09,1.09,1.14,1.12,1.16,1.13,1.15,1.14, 1.16,1.12,1.16,1.14,1.21,1.20,1.21,1.16,1.20,1.14, 1.24,1.19,1.17,1.21,1.16,1.16,1.21,1.24,1.19,1.26, 1.21,1.22,1.18,1.28,1.26,1.23,1.24,1.30,1.24,1.26, 1.29,1.28,1.35,1.19,1.28,1.32,1.25,1.30,1.34,1.29, 1.32,1.26,1.32,1.30,1.37,1.29,1.26,1.40,1.29,1.38, 1.31,1.32,1.35,1.34,1.32,1.34,1.35,1.42,1.37,1.46, 1.36,1.42,1.37,1.39,1.32,1.38,1.41,1.39,1.33,1.41, 1.44,1.41,1.36,1.48,1.43,1.44,1.36,1.45,1.38,1.43, 1.42,1.41,1.43,1.48,1.42,1.47,1.40,1.43,1.53,1.47, 1.45,1.46,1.43,1.40,1.49,1.44,1.54,1.44,1.46,1.47, 1.50,1.47,1.45,1.53,1.58,1.48,1.52,1.51,1.54,1.55, 1.53,1.55,1.51,1.55,1.58,1.54,1.55,1.54,1.55,1.61, 1.58,1.54,1.58,1.57,1.56,1.51,1.53,1.54,1.63,1.58, 1.59,1.62,1.55,1.68,1.60,1.65,1.66,1.60,1.58,1.61, 1.57,1.61,1.64,1.60,1.69,1.63,1.61,1.62,1.68,1.60, 1.62,1.63,1.76,1.65,1.62,1.61,1.65,1.67,1.64,1.68, 0.25,0.30,0.30,0.31,0.29,0.31,0.32,0.32,0.36,0.36, 0.37,0.36,0.39,0.39,0.43,0.43,0.43,0.41,0.47,0.41, 0.42,0.44,0.47,0.46,0.46,0.51,0.46,0.52,0.54,0.54, 0.52,0.55,0.54,0.57,0.54,0.54,0.57,0.59,0.59,0.58, 0.59,0.57,0.60,0.61,0.62,0.59,0.61,0.59,0.63,0.66, 0.65,0.64,0.66,0.66,0.66,0.67,0.68,0.67,0.66,0.73, 0.68,0.69,0.72,0.69,0.70,0.70,0.72,0.71,0.75,0.76, 0.72,0.73,0.74,0.79,0.78,0.78,0.78,0.76,0.74,0.79, 0.81,0.79,0.82,0.81,0.77,0.82,0.86,0.77,0.84,0.82, 0.81,0.82,0.89,0.86,0.81,0.84,0.83,0.87,0.82,0.88, 0.88,0.86,0.89,0.92,0.88,0.88,0.92,0.93,0.90,0.92, 0.88,0.88,0.91,0.93,0.95,0.85,0.95,0.93,0.96,0.97, 0.92,0.97,0.96,0.94,0.97,0.93,0.95,0.93,0.93,1.00, 0.96,0.94,1.02,1.02,0.99,0.97,1.00,0.98,1.00,1.02, 0.99,1.02,1.02,1.03,1.02,1.03,1.07,1.06,1.02,1.07, 1.10,1.04,1.06,1.08,1.07,1.06,1.07,1.08,1.08,1.06, 1.10,1.11,1.12,1.09,1.09,1.07,1.11,1.16,1.06,1.09, 1.16,1.08,1.08,1.10,1.19,1.13,1.15,1.15,1.11,1.13, 1.12,1.10,1.18,1.18,1.16,1.14,1.13,1.18,1.17,1.20, 1.14,1.20,1.15,1.16,1.23,1.17,1.17,1.23,1.21,1.22, 1.20,1.18,1.26,1.21,1.24,1.23,1.22,1.22,1.25,1.26, 1.16,1.24,1.25,1.22,1.32,1.28,1.26,1.24,1.26,1.24, 1.20,1.24,1.28,1.27,1.28,1.25,1.32,1.29,1.27,1.31, 1.31,1.29,1.30,1.29,1.33,1.32,1.32,1.30,1.31,1.31, 1.36,1.35,1.33,1.33,1.35,1.38,1.32,1.26,1.29,1.34, 1.32,1.36,1.34,1.33,1.31,1.31,1.35,1.35,1.37,1.35, 1.36,1.43,1.34,1.32,1.37,1.34,1.38,1.30,1.37,1.40, 1.43,1.39,1.41,1.40,1.42,1.38,1.41,1.38,1.38,1.43, 1.41,1.40,1.36,1.39,1.42,1.39,1.45,1.43,1.40,1.50, 0.22,0.25,0.23,0.24,0.27,0.28,0.31,0.31,0.27,0.30, 0.30,0.33,0.30,0.34,0.38,0.37,0.38,0.36,0.39,0.39, 0.40,0.41,0.44,0.40,0.41,0.42,0.43,0.42,0.48,0.43, 0.46,0.44,0.48,0.48,0.46,0.46,0.48,0.48,0.49,0.47, 0.49,0.53,0.49,0.52,0.49,0.52,0.53,0.54,0.56,0.54, 0.53,0.57,0.58,0.55,0.53,0.61,0.60,0.58,0.57,0.60, 0.62,0.60,0.57,0.60,0.58,0.61,0.64,0.64,0.65,0.61, 0.66,0.63,0.62,0.64,0.64,0.63,0.65,0.67,0.66,0.68, 0.67,0.72,0.64,0.70,0.71,0.67,0.74,0.68,0.70,0.69, 0.71,0.75,0.71,0.70,0.71,0.75,0.73,0.75,0.79,0.74, 0.75,0.75,0.78,0.77,0.73,0.75,0.77,0.76,0.77,0.76, 0.78,0.81,0.79,0.81,0.79,0.77,0.81,0.78,0.83,0.80, 0.86,0.82,0.83,0.83,0.84,0.83,0.82,0.86,0.86,0.86, 0.86,0.85,0.87,0.84,0.82,0.86,0.92,0.84,0.90,0.84, 0.90,0.88,0.88,0.87,0.87,0.87,0.90,0.85,0.90,0.93, 0.88,0.89,0.90,0.87,0.92,0.93,0.91,0.90,0.89,0.97, 0.97,0.91,0.93,0.96,0.92,0.96,0.97,0.91,0.91,0.95, 0.98,0.97,0.96,0.95,0.94,1.00,0.94,0.95,0.98,0.96, 1.03,0.98,0.93,1.03,1.00,0.97,0.96,1.02,1.02,1.00, 1.00,1.03,0.98,1.01,1.03,1.00,1.05,1.05,0.96,1.04, 1.03,1.02,1.05,1.06,1.06,1.03,1.07,1.06,1.02,1.07, 1.03,1.06,1.06,1.03,1.06,1.10,1.09,1.06,1.05,1.04, 1.05,1.09,1.06,1.08,1.11,1.05,1.19,1.09,1.10,1.10, 1.14,1.04,1.14,1.09,1.11,1.13,1.10,1.14,1.11,1.10, 1.12,1.17,1.11,1.13,1.13,1.12,1.13,1.17,1.15,1.20, 1.13,1.10,1.17,1.12,1.18,1.19,1.13,1.22,1.17,1.14, 1.12,1.15,1.15,1.14,1.16,1.15,1.15,1.18,1.16,1.24, 1.18,1.15,1.17,1.15,1.24,1.24,1.21,1.23,1.19,1.19, 1.18,1.20,1.26,1.21,1.23,1.22,1.24,1.20,1.24,1.19, 0.20,0.19,0.24,0.21,0.24,0.23,0.25,0.21,0.21,0.28, 0.28,0.30,0.29,0.31,0.28,0.33,0.29,0.34,0.33,0.36, 0.35,0.34,0.35,0.33,0.35,0.39,0.38,0.35,0.37,0.37, 0.39,0.41,0.38,0.41,0.38,0.42,0.41,0.40,0.40,0.41, 0.42,0.44,0.43,0.44,0.44,0.46,0.45,0.47,0.49,0.46, 0.45,0.49,0.48,0.46,0.49,0.50,0.49,0.47,0.52,0.53, 0.50,0.52,0.53,0.51,0.52,0.54,0.52,0.52,0.53,0.54, 0.53,0.55,0.57,0.59,0.55,0.55,0.56,0.59,0.57,0.59, 0.54,0.58,0.56,0.61,0.57,0.61,0.62,0.58,0.58,0.62, 0.61,0.61,0.63,0.63,0.68,0.62,0.63,0.64,0.64,0.68, 0.61,0.63,0.64,0.65,0.63,0.65,0.65,0.65,0.68,0.69, 0.63,0.68,0.64,0.68,0.65,0.66,0.68,0.66,0.69,0.66, 0.65,0.70,0.69,0.69,0.72,0.69,0.74,0.74,0.74,0.69, 0.70,0.74,0.71,0.69,0.71,0.71,0.74,0.75,0.76,0.75, 0.72,0.77,0.76,0.74,0.74,0.78,0.74,0.76,0.79,0.79, 0.78,0.78,0.73,0.72,0.80,0.78,0.76,0.79,0.80,0.80, 0.80,0.78,0.80,0.80,0.81,0.76,0.79,0.80,0.79,0.83, 0.84,0.83,0.83,0.83,0.83,0.80,0.84,0.86,0.81,0.84, 0.87,0.83,0.84,0.83,0.85,0.86,0.84,0.85,0.92,0.85, 0.83,0.86,0.84,0.85,0.86,0.89,0.89,0.88,0.88,0.87, 0.84,0.87,0.92,0.89,0.88,0.92,0.95,0.91,0.89,0.92, 0.89,0.96,0.87,0.95,0.97,0.87,0.90,0.92,0.90,0.92, 0.93,0.92,0.94,0.91,0.93,0.90,0.91,0.88,0.96,0.91, 0.95,0.95,0.89,0.94,0.97,0.96,0.94,0.91,0.96,0.95, 0.90,0.94,0.97,0.97,1.00,0.94,0.99,0.96,1.01,0.94, 0.97,0.99,1.03,1.02,0.95,1.02,1.01,0.94,0.98,0.96, 1.00,1.01,0.99,1.00,1.03,1.02,1.02,0.98,1.01,0.98, 0.99,1.02,1.03,1.07,1.05,1.02,1.04,1.03,1.08,1.00, 1.02,1.07,1.07,1.05,1.03,1.06,1.04,1.05,1.05,1.05, 0.18,0.16,0.18,0.15,0.19,0.18,0.21,0.20,0.22,0.22, 0.24,0.23,0.26,0.26,0.24,0.26,0.25,0.27,0.26,0.28, 0.26,0.27,0.30,0.30,0.29,0.28,0.31,0.32,0.35,0.35, 0.32,0.35,0.32,0.34,0.33,0.33,0.35,0.39,0.37,0.38, 0.37,0.37,0.33,0.37,0.35,0.34,0.38,0.40,0.40,0.38, 0.40,0.39,0.42,0.41,0.44,0.41,0.44,0.42,0.42,0.46, 0.41,0.46,0.46,0.45,0.45,0.44,0.47,0.48,0.47,0.46, 0.47,0.46,0.47,0.47,0.46,0.50,0.47,0.48,0.51,0.51, 0.56,0.48,0.50,0.51,0.50,0.53,0.49,0.48,0.52,0.53, 0.52,0.53,0.52,0.53,0.51,0.55,0.54,0.51,0.58,0.54, 0.54,0.56,0.56,0.55,0.57,0.59,0.56,0.55,0.55,0.56, 0.56,0.56,0.56,0.58,0.59,0.58,0.58,0.58,0.57,0.62, 0.61,0.61,0.60,0.57,0.58,0.61,0.61,0.61,0.61,0.61, 0.60,0.67,0.59,0.64,0.60,0.62,0.61,0.65,0.62,0.61, 0.64,0.67,0.66,0.66,0.64,0.63,0.63,0.68,0.66,0.68, 0.66,0.68,0.62,0.71,0.68,0.65,0.70,0.66,0.70,0.69, 0.71,0.71,0.72,0.66,0.68,0.66,0.67,0.70,0.71,0.74, 0.68,0.71,0.72,0.69,0.68,0.69,0.69,0.70,0.70,0.74, 0.69,0.73,0.75,0.74,0.71,0.72,0.73,0.74,0.77,0.76, 0.73,0.75,0.75,0.73,0.77,0.73,0.75,0.71,0.76,0.77, 0.77,0.75,0.79,0.77,0.78,0.74,0.75,0.75,0.81,0.75, 0.79,0.81,0.77,0.77,0.79,0.75,0.84,0.82,0.79,0.79, 0.77,0.75,0.79,0.79,0.75,0.81,0.81,0.78,0.83,0.79, 0.80,0.85,0.84,0.80,0.83,0.78,0.84,0.82,0.84,0.80, 0.86,0.84,0.83,0.86,0.81,0.84,0.84,0.81,0.82,0.85, 0.84,0.83,0.86,0.88,0.84,0.85,0.82,0.84,0.84,0.85, 0.85,0.88,0.88,0.91,0.86,0.86,0.86,0.87,0.87,0.92, 0.88,0.91,0.86,0.83,0.87,0.87,0.91,0.89,0.89,0.89, 0.87,0.89,0.85,0.90,0.96,0.90,0.90,0.88,0.91,0.88, 0.11,0.15,0.16,0.17,0.15,0.16,0.16,0.20,0.20,0.17, 0.21,0.19,0.21,0.23,0.24,0.18,0.24,0.23,0.24,0.23, 0.24,0.26,0.27,0.28,0.26,0.26,0.28,0.29,0.24,0.29, 0.30,0.28,0.29,0.27,0.29,0.29,0.31,0.30,0.31,0.29, 0.32,0.33,0.31,0.32,0.34,0.30,0.33,0.33,0.33,0.32, 0.34,0.33,0.35,0.36,0.36,0.33,0.36,0.37,0.40,0.36, 0.35,0.37,0.42,0.39,0.39,0.39,0.42,0.39,0.40,0.41, 0.38,0.38,0.39,0.41,0.43,0.39,0.41,0.40,0.40,0.41, 0.45,0.41,0.43,0.43,0.42,0.44,0.43,0.40,0.43,0.46, 0.43,0.45,0.42,0.46,0.46,0.44,0.49,0.48,0.46,0.48, 0.48,0.49,0.46,0.51,0.50,0.47,0.47,0.48,0.47,0.49, 0.49,0.46,0.46,0.48,0.49,0.53,0.52,0.48,0.51,0.49, 0.48,0.49,0.49,0.52,0.51,0.52,0.53,0.56,0.51,0.54, 0.53,0.51,0.53,0.53,0.54,0.53,0.55,0.54,0.56,0.57, 0.58,0.53,0.57,0.54,0.51,0.54,0.57,0.56,0.59,0.56, 0.56,0.57,0.54,0.56,0.62,0.59,0.57,0.62,0.58,0.58, 0.59,0.59,0.60,0.58,0.58,0.59,0.57,0.57,0.58,0.60, 0.57,0.58,0.62,0.60,0.60,0.60,0.63,0.58,0.62,0.65, 0.58,0.60,0.59,0.67,0.65,0.61,0.60,0.65,0.66,0.64, 0.61,0.66,0.62,0.65,0.68,0.65,0.60,0.64,0.61,0.66, 0.63,0.64,0.64,0.67,0.66,0.62,0.66,0.66,0.68,0.65, 0.67,0.69,0.66,0.66,0.66,0.71,0.66,0.70,0.67,0.70, 0.68,0.65,0.70,0.71,0.69,0.66,0.71,0.66,0.72,0.70, 0.68,0.65,0.68,0.65,0.69,0.70,0.70,0.65,0.65,0.71, 0.70,0.70,0.71,0.72,0.75,0.71,0.69,0.71,0.73,0.72, 0.70,0.72,0.73,0.70,0.75,0.69,0.73,0.71,0.75,0.73, 0.73,0.70,0.73,0.74,0.70,0.72,0.75,0.73,0.74,0.73, 0.73,0.75,0.76,0.81,0.77,0.76,0.71,0.79,0.73,0.76, 0.74,0.77,0.75,0.79,0.75,0.76,0.79,0.75,0.75,0.79, 0.11,0.11,0.11,0.13,0.15,0.16,0.16,0.16,0.16,0.19, 0.19,0.19,0.18,0.15,0.18,0.21,0.18,0.20,0.22,0.21, 0.20,0.22,0.19,0.21,0.21,0.22,0.26,0.23,0.24,0.23, 0.25,0.25,0.26,0.25,0.25,0.25,0.25,0.25,0.26,0.28, 0.24,0.25,0.29,0.25,0.27,0.30,0.29,0.29,0.27,0.29, 0.30,0.31,0.30,0.31,0.30,0.28,0.28,0.33,0.30,0.30, 0.32,0.32,0.33,0.30,0.35,0.32,0.31,0.33,0.30,0.37, 0.37,0.31,0.32,0.36,0.34,0.36,0.30,0.32,0.36,0.34, 0.37,0.38,0.36,0.36,0.38,0.39,0.38,0.36,0.38,0.39, 0.37,0.42,0.39,0.36,0.39,0.37,0.37,0.36,0.40,0.40, 0.38,0.38,0.43,0.40,0.39,0.41,0.40,0.42,0.41,0.38, 0.43,0.39,0.45,0.44,0.44,0.42,0.43,0.44,0.46,0.42, 0.43,0.46,0.42,0.47,0.43,0.44,0.43,0.45,0.42,0.46, 0.47,0.46,0.47,0.48,0.46,0.44,0.50,0.45,0.47,0.48, 0.43,0.45,0.44,0.46,0.48,0.48,0.47,0.50,0.48,0.47, 0.50,0.52,0.50,0.51,0.48,0.50,0.50,0.52,0.54,0.47, 0.48,0.50,0.52,0.50,0.52,0.49,0.49,0.49,0.52,0.49, 0.49,0.49,0.52,0.53,0.50,0.54,0.52,0.53,0.54,0.52, 0.50,0.52,0.51,0.52,0.53,0.55,0.54,0.56,0.54,0.54, 0.51,0.53,0.56,0.58,0.59,0.57,0.56,0.53,0.57,0.55, 0.55,0.55,0.58,0.59,0.53,0.57,0.55,0.57,0.58,0.55, 0.57,0.58,0.61,0.57,0.54,0.58,0.60,0.56,0.60,0.54, 0.57,0.58,0.60,0.63,0.58,0.59,0.56,0.56,0.60,0.58, 0.59,0.61,0.56,0.61,0.61,0.59,0.61,0.61,0.60,0.64, 0.55,0.61,0.60,0.61,0.61,0.58,0.63,0.59,0.57,0.61, 0.63,0.60,0.63,0.61,0.60,0.61,0.61,0.62,0.66,0.64, 0.66,0.63,0.62,0.63,0.62,0.63,0.59,0.64,0.63,0.62, 0.67,0.64,0.60,0.63,0.67,0.62,0.66,0.67,0.63,0.64, 0.66,0.65,0.63,0.66,0.64,0.66,0.67,0.66,0.65,0.69, 1.02,1.06,1.08,1.15,1.23,1.24,1.24,1.32,1.31,1.36, 1.45,1.41,1.51,1.56,1.62,1.59,1.64,1.72,1.69,1.73, 1.74,1.71,1.75,1.81,1.90,1.81,1.91,1.95,1.97,1.97, 1.99,2.02,2.01,2.07,2.05,2.11,2.06,2.21,2.18,2.15, 2.33,2.21,2.19,2.23,2.32,2.43,2.34,2.42,2.46,2.53, 2.46,2.51,2.44,2.52,2.52,2.57,2.46,2.52,2.68,2.65, 2.64,2.56,2.72,2.75,2.69,2.69,2.78,2.75,2.80,2.74, 2.89,2.66,2.81,2.89,2.83,2.85,2.92,2.94,2.99,2.95, 3.03,2.99,2.98,3.01,3.08,3.04,3.13,3.16,3.15,3.12, 3.16,3.09,3.25,3.12,3.30,3.10,3.15,3.24,3.30,3.36, 3.41,3.28,3.28,3.48,3.29,3.35,3.38,3.52,3.29,3.36, 3.41,3.42,3.55,3.41,3.45,3.37,3.56,3.71,3.54,3.49, 3.45,3.48,3.72,3.57,3.65,3.49,3.62,3.68,3.57,3.68, 3.64,3.83,3.80,3.76,3.71,3.75,3.79,3.80,3.99,3.78, 3.84,3.77,3.83,3.72,3.95,3.89,3.97,3.92,3.93,4.19, 4.04,3.95,4.09,4.11,3.98,3.99,4.05,3.97,4.11,4.07, 4.09,3.99,4.02,4.10,4.15,4.34,4.10,4.35,4.13,4.25, 4.35,4.23,4.14,4.18,4.46,4.24,4.27,4.46,4.12,4.48, 4.32,4.44,4.15,4.33,4.31,4.25,4.44,4.32,4.42,4.46, 4.34,4.25,4.32,4.44,4.47,4.38,4.41,4.60,4.50,4.48, 4.43,4.66,4.48,4.67,4.51,4.59,4.63,4.76,4.66,4.57, 4.76,4.78,4.77,4.62,4.75,4.97,4.85,4.75,4.55,4.66, 4.85,4.77,4.60,4.64,4.65,4.85,4.80,4.79,4.77,4.85, 4.82,4.83,4.80,4.96,4.83,5.06,4.93,4.85,5.08,4.81, 4.95,4.90,4.97,4.99,4.88,4.91,5.12,5.11,5.11,5.02, 5.20,5.02,5.08,4.91,4.98,5.18,5.15,5.07,5.16,5.17, 5.06,5.17,5.23,5.33,5.24,5.06,5.31,5.06,5.29,5.37, 5.14,5.46,5.14,5.39,5.23,5.35,5.60,5.28,5.41,5.35, 5.37,5.40,5.29,5.49,5.57,5.19,5.48,5.47,5.24,5.65, 0.90,0.88,0.93,1.01,1.05,1.10,1.14,1.22,1.15,1.22, 1.25,1.26,1.34,1.38,1.39,1.41,1.47,1.50,1.51,1.48, 1.61,1.59,1.59,1.59,1.62,1.68,1.67,1.79,1.72,1.77, 1.83,1.75,1.79,1.91,1.81,1.93,1.90,1.96,1.90,1.95, 2.02,2.05,1.99,2.05,2.03,2.15,2.17,2.15,2.13,2.20, 2.12,2.18,2.23,2.20,2.17,2.22,2.32,2.29,2.22,2.33, 2.31,2.39,2.47,2.33,2.44,2.40,2.36,2.45,2.59,2.58, 2.49,2.52,2.49,2.50,2.60,2.67,2.61,2.68,2.56,2.61, 2.61,2.74,2.73,2.80,2.68,2.67,2.81,2.68,2.86,2.64, 2.81,2.93,2.83,2.89,2.87,2.90,2.89,2.84,2.94,2.81, 2.95,2.99,2.78,3.04,2.95,2.97,3.04,2.94,3.06,3.18, 3.21,3.14,3.01,3.09,3.20,3.07,3.12,3.07,3.21,3.26, 3.21,3.21,3.12,3.31,3.16,3.28,3.26,3.34,3.39,3.35, 3.37,3.40,3.41,3.30,3.36,3.41,3.35,3.38,3.39,3.43, 3.41,3.39,3.56,3.49,3.45,3.48,3.61,3.28,3.39,3.43, 3.50,3.44,3.55,3.43,3.55,3.66,3.56,3.60,3.81,3.66, 3.69,3.70,3.52,3.55,3.61,3.83,3.55,3.72,3.75,3.67, 3.63,3.89,3.82,3.79,3.70,3.81,3.65,3.88,3.86,3.83, 3.85,3.79,3.84,3.83,3.72,3.82,4.13,3.87,3.91,3.97, 4.06,3.91,4.00,3.92,4.07,3.95,4.01,3.92,4.08,3.90, 4.05,3.98,4.29,4.00,4.08,4.09,4.15,4.01,4.09,4.17, 4.18,4.16,4.19,4.25,4.21,4.27,4.15,4.26,4.17,4.14, 4.38,4.36,4.13,4.23,4.22,4.24,4.55,4.27,4.32,4.18, 4.35,4.33,4.36,4.39,4.35,4.46,4.52,4.35,4.48,4.46, 4.45,4.64,4.36,4.39,4.40,4.44,4.55,4.34,4.43,4.61, 4.30,4.50,4.50,4.62,4.54,4.34,4.67,4.48,4.75,4.48, 4.68,4.75,4.54,4.64,4.61,4.56,4.68,4.56,4.49,4.74, 4.67,4.68,4.66,4.60,4.48,4.62,4.74,4.85,4.68,4.74, 4.57,4.61,4.73,4.71,4.79,4.66,4.79,4.71,4.70,4.74, 0.80,0.85,0.84,0.91,0.92,0.96,0.97,1.02,1.11,1.06, 1.16,1.10,1.18,1.13,1.22,1.28,1.24,1.27,1.30,1.34, 1.36,1.38,1.38,1.43,1.41,1.43,1.50,1.53,1.49,1.55, 1.56,1.57,1.68,1.64,1.64,1.62,1.67,1.68,1.74,1.68, 1.77,1.81,1.74,1.83,1.78,1.75,1.83,1.87,1.90,1.89, 1.94,1.95,1.90,1.95,1.98,2.00,2.02,2.01,2.01,2.11, 2.12,2.10,2.07,2.18,2.12,2.22,2.21,2.21,2.25,2.15, 2.16,2.20,2.22,2.31,2.27,2.25,2.34,2.21,2.35,2.40, 2.30,2.31,2.47,2.35,2.43,2.42,2.40,2.45,2.60,2.47, 2.51,2.38,2.46,2.46,2.41,2.54,2.58,2.48,2.55,2.58, 2.56,2.62,2.62,2.58,2.64,2.58,2.67,2.79,2.71,2.75, 2.78,2.76,2.70,2.68,2.76,2.63,2.64,2.73,2.66,2.77, 2.72,2.77,2.83,2.82,2.85,2.88,2.88,2.94,2.89,2.99, 2.84,2.91,2.93,2.93,2.92,3.06,2.91,2.99,2.96,3.02, 3.03,3.05,3.01,3.17,3.10,2.99,3.03,3.15,3.09,3.16, 3.11,3.18,3.06,3.10,3.37,3.27,3.30,3.18,3.18,3.20, 3.28,3.18,3.17,3.31,3.41,3.28,3.24,3.30,3.20,3.33, 3.20,3.33,3.15,3.34,3.45,3.35,3.29,3.32,3.38,3.64, 3.44,3.40,3.43,3.36,3.42,3.43,3.53,3.38,3.37,3.53, 3.56,3.52,3.52,3.52,3.60,3.61,3.60,3.53,3.51,3.56, 3.49,3.59,3.51,3.58,3.58,3.62,3.47,3.53,3.56,3.67, 3.66,3.75,3.55,3.61,3.59,3.74,3.74,3.78,3.80,3.72, 3.68,3.83,3.88,3.81,3.72,3.71,3.83,3.61,3.92,3.78, 3.81,3.67,3.81,3.88,3.84,3.92,3.95,3.92,3.85,3.93, 3.78,3.93,3.91,3.89,4.00,4.10,3.91,3.91,3.99,3.86, 3.99,3.93,4.02,4.01,3.98,4.02,3.97,4.00,3.94,3.93, 4.01,3.97,4.04,4.30,4.04,4.03,4.12,4.01,4.32,4.31, 4.12,4.15,4.25,4.22,4.03,3.98,4.13,4.19,4.25,4.05, 4.20,4.31,4.22,4.29,4.17,4.13,4.22,4.22,4.27,4.40, 0.71,0.74,0.77,0.82,0.85,0.88,0.88,0.91,0.92,0.95, 0.97,0.96,1.04,0.99,1.05,1.09,1.08,1.15,1.15,1.18, 1.21,1.20,1.26,1.26,1.29,1.28,1.34,1.33,1.32,1.37, 1.31,1.44,1.39,1.43,1.45,1.45,1.48,1.46,1.52,1.53, 1.52,1.51,1.54,1.65,1.63,1.54,1.66,1.71,1.64,1.77, 1.70,1.68,1.67,1.72,1.70,1.79,1.86,1.78,1.78,1.84, 1.86,1.82,1.80,1.84,1.85,1.85,1.90,1.90,1.90,1.86, 1.90,1.98,1.96,1.99,1.93,1.91,2.04,2.05,2.01,2.02, 2.09,2.03,2.07,2.10,2.16,2.02,2.14,2.09,2.09,2.13, 2.22,2.16,2.16,2.16,2.22,2.29,2.21,2.34,2.32,2.13, 2.24,2.31,2.31,2.32,2.33,2.31,2.35,2.41,2.37,2.35, 2.39,2.48,2.38,2.38,2.43,2.41,2.35,2.48,2.46,2.45, 2.42,2.56,2.40,2.40,2.52,2.61,2.45,2.52,2.47,2.65, 2.47,2.57,2.60,2.57,2.57,2.62,2.66,2.71,2.65,2.67, 2.65,2.76,2.78,2.62,2.65,2.70,2.74,2.71,2.73,2.80, 2.76,2.62,2.83,2.78,2.75,2.83,2.79,2.72,2.80,2.71, 2.82,2.83,2.83,3.00,2.85,2.86,2.88,2.97,2.90,2.92, 2.89,3.04,2.97,2.99,2.81,2.83,2.92,3.04,2.97,2.96, 3.06,3.02,2.92,2.99,3.22,3.06,3.06,3.01,3.10,3.01, 3.12,3.21,3.15,3.02,2.98,3.18,3.10,3.05,3.01,3.16, 3.19,3.18,3.15,3.16,3.29,3.25,3.06,3.16,3.25,3.13, 3.29,3.14,3.12,3.17,3.19,3.30,3.19,3.26,3.19,3.21, 3.30,3.29,3.24,3.39,3.31,3.55,3.36,3.25,3.36,3.35, 3.41,3.34,3.34,3.46,3.51,3.42,3.49,3.52,3.38,3.42, 3.30,3.38,3.44,3.37,3.43,3.63,3.47,3.56,3.66,3.56, 3.58,3.52,3.60,3.52,3.53,3.51,3.60,3.53,3.57,3.50, 3.55,3.49,3.49,3.46,3.45,3.51,3.51,3.66,3.64,3.56, 3.59,3.59,3.57,3.55,3.67,3.58,3.77,3.67,3.56,3.66, 3.72,3.66,3.66,3.85,3.53,3.82,3.79,3.90,3.82,3.68, 0.59,0.64,0.69,0.69,0.74,0.74,0.77,0.80,0.80,0.83, 0.88,0.89,0.89,0.92,0.95,0.97,0.99,1.00,0.98,1.09, 1.03,1.04,1.05,1.12,1.13,1.09,1.13,1.21,1.23,1.15, 1.19,1.27,1.22,1.24,1.21,1.27,1.25,1.34,1.29,1.27, 1.35,1.41,1.39,1.40,1.43,1.33,1.43,1.43,1.45,1.51, 1.40,1.43,1.44,1.48,1.50,1.55,1.56,1.52,1.55,1.63, 1.59,1.58,1.63,1.62,1.67,1.59,1.63,1.66,1.69,1.61, 1.66,1.74,1.67,1.79,1.73,1.71,1.81,1.83,1.79,1.83, 1.76,1.84,1.73,1.78,1.83,1.89,1.89,1.81,1.85,1.89, 1.88,1.81,1.89,1.93,1.95,1.91,1.93,1.92,1.97,2.02, 2.03,2.04,2.00,2.11,2.05,2.04,2.09,2.07,2.05,2.09, 2.06,2.10,2.17,2.14,2.24,2.14,2.10,2.16,2.11,2.14, 2.13,2.22,2.20,2.15,2.21,2.27,2.29,2.22,2.26,2.22, 2.13,2.27,2.24,2.23,2.25,2.31,2.37,2.32,2.33,2.34, 2.34,2.31,2.31,2.31,2.28,2.41,2.30,2.42,2.44,2.35, 2.46,2.45,2.43,2.34,2.50,2.52,2.51,2.45,2.47,2.35, 2.51,2.53,2.48,2.51,2.41,2.61,2.57,2.49,2.56,2.54, 2.64,2.45,2.60,2.50,2.55,2.56,2.60,2.47,2.65,2.54, 2.61,2.77,2.66,2.64,2.69,2.72,2.73,2.66,2.76,2.71, 2.61,2.59,2.63,2.90,2.76,2.66,2.91,2.72,2.68,2.72, 2.68,2.72,2.73,2.77,2.71,2.80,2.82,2.81,2.84,2.72, 2.76,2.99,2.88,2.66,2.93,2.86,2.88,2.81,2.94,2.90, 2.96,2.98,2.91,2.82,3.02,3.00,2.86,2.91,2.86,2.97, 3.04,2.98,2.87,3.04,3.00,3.03,3.04,3.01,2.97,2.96, 3.00,3.00,3.02,3.18,2.97,3.00,3.07,2.95,2.95,2.97, 3.02,3.01,3.12,3.20,3.15,3.02,2.96,3.17,3.12,3.08, 3.01,3.07,2.91,3.08,3.16,3.21,3.03,3.16,3.19,3.14, 3.02,3.26,3.25,3.17,3.17,3.24,3.24,3.17,3.33,3.22, 3.39,3.30,3.27,3.30,3.21,3.22,3.24,3.24,2.99,3.29, 0.52,0.54,0.59,0.60,0.63,0.66,0.71,0.69,0.71,0.72, 0.77,0.77,0.74,0.79,0.78,0.83,0.86,0.87,0.83,0.87, 0.90,0.96,1.00,0.93,0.95,0.95,0.96,1.01,1.00,1.03, 1.02,1.00,1.01,1.07,1.11,1.12,1.13,1.11,1.15,1.16, 1.19,1.19,1.20,1.20,1.18,1.21,1.22,1.20,1.24,1.21, 1.25,1.20,1.26,1.37,1.35,1.36,1.32,1.32,1.40,1.34, 1.43,1.41,1.41,1.40,1.41,1.46,1.49,1.45,1.43,1.48, 1.49,1.49,1.50,1.52,1.58,1.49,1.54,1.60,1.54,1.64, 1.55,1.56,1.57,1.64,1.60,1.64,1.67,1.64,1.62,1.61, 1.64,1.62,1.67,1.67,1.70,1.62,1.75,1.70,1.64,1.64, 1.74,1.67,1.75,1.72,1.75,1.80,1.79,1.73,1.80,1.78, 1.73,1.78,1.85,1.85,1.85,1.84,1.91,1.89,1.87,1.79, 1.90,1.93,1.85,1.91,1.95,1.95,1.94,1.88,1.98,1.92, 1.97,2.01,2.05,1.94,1.94,2.05,1.95,2.04,2.07,1.98, 2.06,1.98,2.07,2.02,2.07,2.02,2.02,2.06,2.12,2.08, 2.03,2.05,2.11,2.19,2.17,2.13,2.08,2.06,2.19,2.16, 2.20,2.13,2.16,2.17,2.09,2.17,2.17,2.18,2.13,2.16, 2.27,2.21,2.20,2.18,2.20,2.22,2.19,2.22,2.26,2.32, 2.17,2.24,2.21,2.31,2.24,2.39,2.26,2.23,2.42,2.16, 2.40,2.44,2.24,2.32,2.39,2.46,2.30,2.30,2.40,2.41, 2.45,2.47,2.43,2.33,2.38,2.42,2.41,2.50,2.43,2.55, 2.41,2.46,2.45,2.43,2.45,2.55,2.45,2.48,2.43,2.47, 2.49,2.46,2.57,2.67,2.57,2.58,2.49,2.63,2.65,2.46, 2.48,2.58,2.38,2.50,2.60,2.63,2.57,2.63,2.64,2.63, 2.66,2.59,2.81,2.53,2.58,2.64,2.64,2.61,2.68,2.60, 2.55,2.69,2.60,2.79,2.81,2.67,2.67,2.71,2.76,2.71, 2.79,2.70,2.64,2.82,2.75,2.60,2.84,2.73,2.84,2.74, 2.71,2.67,2.80,2.83,2.73,2.89,2.73,2.68,2.80,2.74, 2.77,2.85,2.82,2.82,2.78,2.92,2.77,2.79,2.96,2.77, 0.47,0.49,0.50,0.54,0.49,0.56,0.60,0.61,0.62,0.62, 0.63,0.67,0.68,0.64,0.68,0.70,0.74,0.76,0.81,0.75, 0.78,0.79,0.80,0.85,0.83,0.85,0.90,0.88,0.88,0.90, 0.88,0.93,0.97,0.93,0.91,0.96,0.98,1.00,0.98,1.00, 0.99,1.02,1.05,1.06,1.06,1.08,1.06,1.13,1.14,1.12, 1.07,1.14,1.15,1.15,1.13,1.21,1.10,1.17,1.22,1.22, 1.17,1.21,1.24,1.17,1.28,1.26,1.24,1.26,1.29,1.30, 1.29,1.33,1.27,1.27,1.33,1.28,1.31,1.31,1.33,1.37, 1.38,1.35,1.39,1.37,1.42,1.33,1.43,1.42,1.41,1.44, 1.44,1.46,1.47,1.51,1.45,1.48,1.48,1.46,1.52,1.50, 1.46,1.52,1.46,1.52,1.63,1.49,1.57,1.53,1.55,1.57, 1.53,1.53,1.52,1.61,1.61,1.55,1.66,1.58,1.68,1.60, 1.63,1.71,1.68,1.61,1.64,1.65,1.69,1.65,1.70,1.68, 1.67,1.72,1.74,1.66,1.66,1.75,1.72,1.66,1.80,1.73, 1.73,1.68,1.77,1.80,1.72,1.71,1.82,1.86,1.75,1.86, 1.78,1.91,1.77,1.88,1.85,1.81,1.83,1.80,1.82,1.87, 1.85,1.89,1.90,1.93,1.89,1.93,1.86,1.86,1.96,1.93, 1.82,1.89,1.89,1.87,2.03,1.91,1.99,1.99,2.01,1.97, 1.97,1.95,2.02,1.96,1.96,2.03,2.03,2.02,1.99,2.06, 2.00,2.13,2.08,2.09,2.14,2.05,2.06,2.11,2.12,2.12, 1.99,2.07,2.11,2.04,2.09,2.03,2.06,2.08,2.11,2.13, 2.09,2.15,2.12,2.15,2.19,2.14,2.18,2.24,2.07,2.10, 2.22,2.25,2.24,2.16,2.19,2.24,2.28,2.22,2.21,2.15, 2.30,2.22,2.18,2.24,2.18,2.29,2.19,2.24,2.29,2.19, 2.23,2.32,2.30,2.29,2.28,2.31,2.24,2.33,2.25,2.35, 2.24,2.33,2.35,2.27,2.31,2.34,2.32,2.38,2.40,2.38, 2.36,2.42,2.38,2.38,2.38,2.33,2.37,2.36,2.44,2.41, 2.39,2.38,2.31,2.39,2.33,2.53,2.35,2.36,2.47,2.49, 2.45,2.49,2.47,2.45,2.50,2.48,2.49,2.37,2.46,2.50, 0.41,0.43,0.44,0.48,0.44,0.50,0.47,0.54,0.54,0.52, 0.55,0.56,0.60,0.57,0.59,0.60,0.65,0.66,0.68,0.66, 0.67,0.71,0.69,0.68,0.71,0.76,0.73,0.76,0.74,0.76, 0.80,0.82,0.82,0.84,0.81,0.81,0.87,0.89,0.88,0.86, 0.91,0.91,0.91,0.90,0.91,0.88,0.94,0.96,0.95,0.97, 0.95,0.97,0.99,0.99,1.05,1.01,1.00,1.08,1.06,1.04, 1.05,1.06,1.04,1.07,1.06,1.04,1.07,1.08,1.03,1.08, 1.12,1.12,1.16,1.15,1.12,1.16,1.15,1.13,1.14,1.18, 1.17,1.14,1.20,1.26,1.21,1.21,1.25,1.19,1.29,1.24, 1.25,1.25,1.26,1.26,1.26,1.28,1.29,1.26,1.31,1.31, 1.31,1.30,1.28,1.27,1.33,1.29,1.38,1.43,1.31,1.28, 1.35,1.32,1.33,1.33,1.37,1.36,1.39,1.41,1.36,1.40, 1.43,1.35,1.39,1.47,1.45,1.42,1.44,1.40,1.43,1.45, 1.43,1.47,1.48,1.45,1.45,1.57,1.54,1.53,1.53,1.55, 1.44,1.51,1.50,1.52,1.47,1.52,1.54,1.55,1.50,1.53, 1.56,1.52,1.57,1.59,1.57,1.60,1.59,1.57,1.64,1.67, 1.67,1.61,1.61,1.57,1.64,1.65,1.57,1.66,1.67,1.64, 1.65,1.65,1.70,1.71,1.63,1.70,1.71,1.65,1.65,1.64, 1.71,1.74,1.74,1.76,1.69,1.74,1.74,1.69,1.74,1.73, 1.74,1.67,1.74,1.72,1.79,1.80,1.75,1.81,1.82,1.78, 1.75,1.83,1.80,1.81,1.88,1.86,1.85,1.82,1.88,1.77, 1.84,1.84,1.84,1.80,1.84,1.91,1.81,1.84,1.86,1.85, 1.92,1.92,1.89,1.92,1.90,1.86,1.98,1.96,1.85,1.87, 1.90,2.00,1.95,1.95,1.98,1.92,1.87,1.96,1.93,1.92, 1.98,1.99,2.05,1.95,1.96,1.97,2.05,1.96,1.98,2.02, 2.05,2.01,2.01,1.96,1.92,1.98,2.04,2.00,2.03,2.10, 2.04,1.97,2.04,2.05,2.01,2.06,2.06,2.08,2.06,2.09, 2.09,2.04,2.13,2.10,1.99,1.99,2.07,2.13,2.10,2.15, 2.20,2.10,2.13,2.09,2.07,2.05,2.14,2.12,2.21,2.17, 0.34,0.37,0.37,0.39,0.40,0.43,0.43,0.46,0.46,0.44, 0.49,0.50,0.52,0.48,0.49,0.55,0.57,0.57,0.57,0.58, 0.61,0.63,0.61,0.62,0.62,0.66,0.65,0.67,0.65,0.65, 0.69,0.70,0.70,0.69,0.68,0.73,0.73,0.74,0.76,0.75, 0.75,0.74,0.81,0.84,0.79,0.82,0.80,0.82,0.82,0.82, 0.81,0.82,0.81,0.86,0.85,0.86,0.88,0.88,0.89,0.88, 0.87,0.90,0.87,0.93,0.95,0.90,0.93,0.97,0.93,0.93, 0.92,0.93,0.98,0.98,0.95,1.00,1.05,0.98,0.99,1.01, 1.03,1.04,1.08,1.04,1.04,1.05,1.06,1.00,1.10,1.07, 1.07,1.09,1.12,1.08,1.09,1.11,1.08,1.10,1.14,1.01, 1.12,1.15,1.20,1.16,1.11,1.16,1.18,1.19,1.18,1.17, 1.14,1.20,1.20,1.26,1.24,1.21,1.27,1.22,1.26,1.27, 1.20,1.22,1.24,1.32,1.22,1.24,1.21,1.15,1.24,1.29, 1.27,1.30,1.26,1.33,1.32,1.31,1.29,1.20,1.31,1.31, 1.33,1.37,1.35,1.35,1.33,1.31,1.34,1.33,1.38,1.37, 1.33,1.28,1.35,1.37,1.41,1.39,1.32,1.40,1.33,1.40, 1.36,1.39,1.45,1.47,1.43,1.45,1.44,1.43,1.41,1.48, 1.38,1.41,1.48,1.42,1.44,1.53,1.45,1.50,1.50,1.44, 1.49,1.49,1.51,1.53,1.58,1.55,1.49,1.53,1.48,1.55, 1.58,1.51,1.53,1.55,1.56,1.50,1.61,1.56,1.53,1.54, 1.52,1.63,1.60,1.54,1.57,1.62,1.61,1.54,1.53,1.57, 1.55,1.60,1.65,1.56,1.58,1.52,1.62,1.62,1.59,1.65, 1.65,1.67,1.61,1.70,1.68,1.70,1.69,1.68,1.61,1.63, 1.70,1.63,1.64,1.66,1.64,1.80,1.72,1.69,1.70,1.69, 1.67,1.70,1.75,1.74,1.66,1.64,1.64,1.78,1.72,1.76, 1.69,1.72,1.81,1.74,1.72,1.68,1.78,1.70,1.82,1.76, 1.73,1.84,1.79,1.76,1.83,1.74,1.78,1.75,1.69,1.75, 1.73,1.77,1.83,1.91,1.81,1.91,1.77,1.83,1.79,1.81, 1.83,1.78,1.76,1.90,1.85,1.88,1.92,1.85,1.83,1.91, 0.29,0.31,0.34,0.28,0.34,0.37,0.37,0.39,0.38,0.42, 0.44,0.41,0.42,0.47,0.45,0.48,0.48,0.50,0.51,0.49, 0.50,0.51,0.53,0.53,0.54,0.56,0.55,0.57,0.59,0.61, 0.62,0.60,0.60,0.61,0.61,0.66,0.64,0.64,0.66,0.63, 0.66,0.65,0.67,0.70,0.73,0.72,0.68,0.69,0.68,0.69, 0.72,0.74,0.73,0.70,0.72,0.74,0.72,0.75,0.75,0.80, 0.81,0.79,0.79,0.81,0.77,0.80,0.81,0.82,0.82,0.81, 0.86,0.83,0.90,0.84,0.84,0.84,0.87,0.88,0.91,0.87, 0.92,0.86,0.92,0.91,0.89,0.87,0.94,0.88,0.95,0.93, 0.92,0.93,0.99,0.95,0.96,0.95,0.95,0.97,0.94,0.93, 0.98,1.02,0.97,0.99,1.03,1.01,1.00,1.00,1.03,1.03, 1.05,1.07,1.02,1.00,1.07,1.03,0.97,1.07,1.03,1.09, 1.10,1.06,1.07,1.10,1.11,1.09,1.09,1.13,1.03,1.12, 1.11,1.04,1.10,1.11,1.11,1.14,1.12,1.07,1.09,1.13, 1.16,1.16,1.15,1.11,1.16,1.21,1.10,1.16,1.21,1.16, 1.15,1.19,1.21,1.16,1.18,1.26,1.19,1.24,1.15,1.19, 1.24,1.19,1.25,1.21,1.20,1.28,1.26,1.21,1.23,1.27, 1.26,1.24,1.19,1.29,1.31,1.27,1.31,1.28,1.28,1.23, 1.28,1.26,1.19,1.28,1.35,1.33,1.30,1.25,1.30,1.32, 1.30,1.33,1.29,1.25,1.32,1.30,1.33,1.35,1.38,1.35, 1.34,1.36,1.38,1.35,1.40,1.38,1.36,1.32,1.41,1.36, 1.35,1.36,1.37,1.44,1.33,1.35,1.37,1.38,1.42,1.32, 1.37,1.45,1.44,1.47,1.43,1.38,1.45,1.39,1.41,1.40, 1.50,1.42,1.50,1.45,1.46,1.42,1.50,1.48,1.50,1.49, 1.44,1.47,1.51,1.49,1.47,1.48,1.45,1.49,1.48,1.49, 1.54,1.52,1.51,1.51,1.50,1.49,1.51,1.50,1.48,1.50, 1.50,1.50,1.53,1.50,1.57,1.51,1.53,1.50,1.51,1.57, 1.58,1.54,1.57,1.65,1.49,1.60,1.59,1.54,1.53,1.61, 1.60,1.55,1.59,1.58,1.59,1.59,1.56,1.59,1.61,1.63, 0.24,0.26,0.30,0.29,0.31,0.31,0.32,0.33,0.34,0.37, 0.36,0.37,0.38,0.39,0.40,0.42,0.39,0.41,0.42,0.45, 0.44,0.45,0.44,0.46,0.45,0.50,0.45,0.49,0.49,0.51, 0.47,0.51,0.52,0.54,0.52,0.53,0.55,0.56,0.56,0.56, 0.56,0.59,0.56,0.56,0.61,0.57,0.59,0.59,0.60,0.59, 0.58,0.66,0.67,0.65,0.61,0.65,0.69,0.67,0.68,0.68, 0.68,0.69,0.68,0.68,0.70,0.69,0.69,0.69,0.71,0.73, 0.75,0.72,0.73,0.72,0.75,0.75,0.75,0.73,0.73,0.75, 0.74,0.76,0.77,0.78,0.78,0.72,0.77,0.79,0.79,0.82, 0.79,0.81,0.84,0.86,0.85,0.89,0.85,0.80,0.84,0.85, 0.91,0.85,0.85,0.86,0.84,0.82,0.88,0.84,0.85,0.86, 0.95,0.88,0.85,0.84,0.87,0.93,0.88,0.90,0.93,0.85, 0.88,0.93,0.98,0.87,0.91,0.95,0.92,1.00,0.91,0.92, 0.99,0.93,0.90,0.97,0.95,0.99,0.95,0.96,0.99,0.96, 1.01,0.97,0.99,0.99,1.02,0.98,1.00,1.03,1.00,1.00, 1.00,1.02,1.05,1.00,1.06,1.04,1.05,1.09,1.03,1.03, 1.00,1.02,1.04,1.10,1.01,1.07,1.09,1.05,1.08,1.06, 1.07,1.11,1.06,1.11,1.14,1.09,1.10,1.07,1.10,1.11, 1.05,1.11,1.12,1.13,1.13,1.07,1.16,1.10,1.14,1.07, 1.11,1.16,1.15,1.19,1.24,1.14,1.21,1.19,1.14,1.21, 1.15,1.12,1.20,1.14,1.15,1.16,1.17,1.16,1.20,1.19, 1.16,1.14,1.20,1.20,1.22,1.24,1.18,1.20,1.24,1.17, 1.24,1.28,1.24,1.16,1.22,1.24,1.23,1.17,1.23,1.22, 1.21,1.24,1.18,1.21,1.23,1.27,1.32,1.34,1.26,1.29, 1.26,1.25,1.29,1.26,1.26,1.24,1.31,1.32,1.33,1.31, 1.27,1.29,1.33,1.37,1.28,1.31,1.33,1.36,1.29,1.26, 1.32,1.36,1.32,1.32,1.37,1.34,1.32,1.32,1.39,1.35, 1.28,1.33,1.38,1.33,1.33,1.34,1.29,1.37,1.41,1.33, 1.43,1.34,1.41,1.36,1.38,1.40,1.34,1.39,1.38,1.43, 0.20,0.26,0.27,0.24,0.28,0.27,0.25,0.27,0.31,0.31, 0.31,0.31,0.34,0.34,0.34,0.34,0.35,0.39,0.39,0.37, 0.38,0.38,0.40,0.41,0.39,0.42,0.43,0.40,0.44,0.46, 0.43,0.45,0.45,0.46,0.46,0.48,0.48,0.48,0.50,0.51, 0.52,0.47,0.48,0.52,0.49,0.50,0.49,0.49,0.53,0.55, 0.51,0.55,0.57,0.52,0.55,0.57,0.56,0.57,0.55,0.59, 0.59,0.59,0.56,0.61,0.58,0.59,0.61,0.61,0.58,0.62, 0.63,0.62,0.65,0.64,0.63,0.63,0.66,0.64,0.65,0.66, 0.66,0.68,0.64,0.67,0.69,0.69,0.70,0.61,0.69,0.67, 0.67,0.66,0.71,0.69,0.75,0.71,0.73,0.71,0.72,0.74, 0.72,0.68,0.74,0.73,0.76,0.73,0.77,0.75,0.75,0.74, 0.74,0.73,0.77,0.74,0.79,0.81,0.77,0.79,0.75,0.80, 0.81,0.82,0.77,0.81,0.77,0.83,0.80,0.82,0.83,0.83, 0.88,0.80,0.84,0.81,0.79,0.80,0.83,0.85,0.89,0.87, 0.90,0.82,0.83,0.86,0.87,0.90,0.89,0.80,0.90,0.92, 0.84,0.91,0.83,0.88,0.92,0.83,0.92,0.92,0.93,0.87, 0.87,0.90,0.87,0.87,0.89,0.94,0.91,0.91,0.87,0.91, 0.93,0.96,0.91,0.95,0.93,0.95,0.94,0.96,0.95,0.91, 0.99,0.95,0.97,0.94,0.99,0.96,0.97,1.01,0.97,1.02, 0.95,0.97,0.98,1.03,0.99,1.01,1.01,0.99,0.99,1.03, 0.98,0.99,0.99,1.00,0.99,0.97,1.00,1.02,1.02,1.06, 1.01,1.03,1.01,1.01,1.03,1.02,1.02,1.03,1.01,1.06, 1.03,1.05,1.06,1.08,1.05,1.08,1.07,1.06,1.04,1.10, 1.11,1.05,1.09,1.10,1.05,1.07,1.06,1.10,1.08,1.11, 1.10,1.13,1.10,1.11,1.09,1.10,1.08,1.09,1.11,1.08, 1.12,1.08,1.15,1.08,1.11,1.11,1.11,1.16,1.12,1.14, 1.15,1.15,1.14,1.17,1.13,1.21,1.14,1.09,1.16,1.14, 1.10,1.17,1.15,1.10,1.14,1.18,1.14,1.13,1.22,1.17, 1.18,1.16,1.26,1.14,1.16,1.19,1.15,1.22,1.20,1.17, 0.18,0.22,0.21,0.23,0.22,0.25,0.24,0.26,0.23,0.26, 0.26,0.30,0.29,0.29,0.27,0.29,0.31,0.33,0.32,0.34, 0.30,0.33,0.34,0.38,0.35,0.35,0.35,0.36,0.41,0.38, 0.38,0.39,0.37,0.40,0.39,0.40,0.39,0.40,0.41,0.44, 0.42,0.47,0.43,0.39,0.41,0.44,0.43,0.45,0.45,0.45, 0.45,0.46,0.47,0.49,0.47,0.48,0.49,0.48,0.52,0.47, 0.49,0.51,0.52,0.54,0.53,0.51,0.54,0.52,0.52,0.53, 0.52,0.55,0.49,0.55,0.57,0.53,0.56,0.54,0.53,0.56, 0.53,0.57,0.56,0.55,0.56,0.56,0.59,0.61,0.58,0.63, 0.61,0.60,0.61,0.59,0.58,0.61,0.62,0.66,0.63,0.57, 0.62,0.64,0.63,0.63,0.65,0.63,0.64,0.65,0.67,0.66, 0.62,0.65,0.66,0.67,0.68,0.67,0.68,0.70,0.71,0.65, 0.65,0.69,0.70,0.71,0.75,0.69,0.68,0.71,0.71,0.68, 0.71,0.74,0.72,0.70,0.73,0.69,0.70,0.76,0.73,0.75, 0.75,0.73,0.74,0.73,0.74,0.74,0.74,0.75,0.76,0.76, 0.76,0.73,0.73,0.74,0.76,0.78,0.76,0.75,0.80,0.81, 0.82,0.81,0.78,0.78,0.80,0.79,0.84,0.78,0.76,0.79, 0.83,0.80,0.79,0.82,0.83,0.82,0.81,0.83,0.79,0.82, 0.82,0.80,0.85,0.86,0.82,0.82,0.84,0.79,0.88,0.81, 0.83,0.83,0.81,0.85,0.84,0.84,0.85,0.86,0.85,0.81, 0.89,0.89,0.88,0.84,0.92,0.87,0.85,0.89,0.89,0.88, 0.87,0.89,0.94,0.85,0.86,0.85,0.87,0.88,0.87,0.90, 0.87,0.86,0.92,0.95,0.92,0.94,0.95,0.92,0.92,0.91, 0.94,0.98,0.93,0.91,0.97,0.93,0.92,0.99,0.94,0.94, 0.88,0.95,0.96,0.94,0.93,0.96,0.98,0.95,0.97,0.91, 0.94,0.97,0.97,1.00,0.96,1.03,0.96,0.96,0.96,1.01, 0.98,0.96,1.03,0.98,0.99,0.97,0.95,0.95,0.99,0.98, 1.01,0.98,1.01,1.05,1.00,1.01,1.00,1.02,1.01,0.99, 1.05,1.06,1.00,1.04,1.03,1.06,1.00,1.02,1.01,1.04, 0.16,0.17,0.18,0.21,0.20,0.20,0.22,0.20,0.24,0.21, 0.24,0.23,0.26,0.24,0.26,0.24,0.23,0.27,0.26,0.28, 0.28,0.31,0.28,0.30,0.31,0.32,0.30,0.33,0.33,0.34, 0.32,0.34,0.33,0.37,0.32,0.34,0.33,0.34,0.34,0.36, 0.37,0.37,0.37,0.38,0.39,0.36,0.39,0.40,0.40,0.39, 0.39,0.40,0.39,0.44,0.41,0.44,0.43,0.43,0.42,0.40, 0.43,0.42,0.43,0.46,0.45,0.45,0.46,0.46,0.42,0.44, 0.47,0.44,0.44,0.49,0.44,0.46,0.49,0.47,0.48,0.49, 0.53,0.50,0.50,0.51,0.52,0.47,0.50,0.48,0.54,0.49, 0.51,0.51,0.47,0.48,0.53,0.51,0.53,0.53,0.53,0.52, 0.52,0.51,0.53,0.56,0.56,0.55,0.58,0.54,0.56,0.60, 0.57,0.59,0.59,0.59,0.56,0.55,0.59,0.56,0.57,0.58, 0.58,0.55,0.58,0.60,0.59,0.62,0.60,0.60,0.61,0.62, 0.62,0.62,0.61,0.60,0.61,0.58,0.60,0.59,0.62,0.64, 0.61,0.65,0.63,0.64,0.62,0.61,0.63,0.64,0.70,0.63, 0.69,0.66,0.67,0.66,0.66,0.66,0.65,0.69,0.70,0.62, 0.65,0.70,0.69,0.64,0.72,0.65,0.68,0.74,0.69,0.67, 0.67,0.72,0.71,0.68,0.71,0.68,0.72,0.73,0.70,0.71, 0.68,0.71,0.70,0.72,0.69,0.74,0.74,0.72,0.69,0.68, 0.71,0.73,0.75,0.72,0.70,0.73,0.72,0.75,0.76,0.71, 0.71,0.74,0.73,0.73,0.73,0.75,0.78,0.70,0.76,0.75, 0.74,0.74,0.81,0.74,0.78,0.78,0.78,0.76,0.80,0.78, 0.74,0.78,0.79,0.77,0.79,0.78,0.82,0.83,0.77,0.84, 0.82,0.79,0.83,0.83,0.80,0.84,0.82,0.78,0.86,0.80, 0.83,0.81,0.83,0.82,0.80,0.82,0.83,0.80,0.82,0.80, 0.78,0.84,0.82,0.83,0.80,0.84,0.84,0.85,0.83,0.85, 0.81,0.81,0.85,0.86,0.85,0.80,0.84,0.85,0.82,0.82, 0.86,0.86,0.87,0.86,0.81,0.83,0.86,0.86,0.86,0.92, 0.89,0.86,0.88,0.88,0.93,0.88,0.90,0.87,0.88,0.89, 0.15,0.13,0.14,0.14,0.19,0.18,0.16,0.20,0.19,0.19, 0.20,0.20,0.23,0.19,0.18,0.23,0.22,0.25,0.24,0.24, 0.26,0.23,0.26,0.27,0.24,0.23,0.25,0.27,0.31,0.28, 0.30,0.29,0.27,0.27,0.26,0.29,0.31,0.28,0.33,0.32, 0.29,0.28,0.30,0.34,0.34,0.32,0.34,0.31,0.32,0.33, 0.35,0.37,0.32,0.37,0.31,0.32,0.35,0.37,0.36,0.37, 0.38,0.36,0.39,0.38,0.40,0.38,0.38,0.34,0.35,0.42, 0.41,0.41,0.42,0.45,0.41,0.41,0.44,0.43,0.41,0.42, 0.41,0.41,0.41,0.41,0.44,0.42,0.43,0.43,0.44,0.43, 0.44,0.44,0.46,0.42,0.43,0.48,0.44,0.42,0.46,0.51, 0.43,0.45,0.45,0.44,0.50,0.47,0.47,0.44,0.51,0.48, 0.49,0.49,0.51,0.48,0.50,0.48,0.50,0.51,0.49,0.51, 0.50,0.49,0.53,0.48,0.52,0.48,0.50,0.52,0.51,0.52, 0.48,0.48,0.55,0.52,0.53,0.52,0.54,0.54,0.54,0.51, 0.55,0.56,0.55,0.53,0.53,0.58,0.55,0.56,0.58,0.56, 0.55,0.56,0.52,0.57,0.57,0.55,0.60,0.59,0.56,0.62, 0.58,0.60,0.58,0.58,0.54,0.57,0.59,0.60,0.57,0.59, 0.61,0.57,0.59,0.58,0.60,0.60,0.64,0.61,0.58,0.62, 0.63,0.62,0.61,0.61,0.62,0.58,0.60,0.60,0.64,0.65, 0.65,0.62,0.63,0.65,0.66,0.64,0.60,0.61,0.63,0.65, 0.63,0.64,0.64,0.65,0.66,0.68,0.69,0.68,0.66,0.65, 0.68,0.66,0.64,0.65,0.63,0.68,0.67,0.68,0.67,0.66, 0.68,0.68,0.68,0.66,0.67,0.70,0.70,0.66,0.75,0.70, 0.71,0.65,0.66,0.66,0.67,0.69,0.67,0.69,0.73,0.70, 0.72,0.68,0.73,0.71,0.70,0.69,0.70,0.73,0.72,0.69, 0.75,0.72,0.69,0.71,0.69,0.72,0.73,0.72,0.72,0.71, 0.73,0.70,0.71,0.68,0.74,0.78,0.75,0.70,0.69,0.77, 0.76,0.75,0.72,0.73,0.71,0.75,0.78,0.78,0.77,0.73, 0.75,0.73,0.73,0.74,0.75,0.76,0.80,0.76,0.76,0.77, 1.04,1.06,1.13,1.19,1.24,1.26,1.26,1.36,1.40,1.46, 1.47,1.51,1.55,1.60,1.65,1.66,1.64,1.66,1.69,1.82, 1.78,1.81,1.84,1.92,1.93,1.92,1.96,1.96,1.98,2.06, 2.04,2.15,2.15,2.08,2.15,2.23,2.32,2.11,2.23,2.35, 2.34,2.29,2.23,2.36,2.40,2.37,2.39,2.46,2.46,2.40, 2.62,2.61,2.58,2.52,2.65,2.59,2.57,2.66,2.73,2.69, 2.76,2.68,2.77,2.78,2.97,2.80,2.86,2.83,2.89,2.96, 2.88,2.88,3.06,2.86,3.12,2.97,3.05,2.93,3.08,3.09, 3.10,3.10,3.06,3.03,3.12,3.08,3.14,3.38,3.23,3.23, 3.36,3.34,3.24,3.34,3.41,3.37,3.37,3.34,3.23,3.35, 3.44,3.43,3.57,3.44,3.44,3.49,3.53,3.53,3.58,3.43, 3.52,3.47,3.44,3.57,3.67,3.67,3.65,3.70,3.74,3.73, 3.70,3.70,3.77,3.84,3.86,3.91,3.86,3.69,3.92,3.88, 3.93,3.66,3.89,4.05,3.84,3.96,3.86,4.00,3.87,4.05, 4.01,4.15,4.00,3.95,4.11,4.02,4.07,4.01,4.11,3.92, 4.14,4.10,4.16,4.06,4.15,4.11,4.17,4.22,4.10,4.39, 4.07,4.19,4.35,4.24,4.27,4.28,4.15,4.34,4.25,4.25, 4.43,4.47,4.36,4.51,4.43,4.47,4.41,4.51,4.59,4.52, 4.41,4.38,4.60,4.33,4.47,4.48,4.59,4.46,4.41,4.46, 4.67,4.55,4.57,4.72,4.79,4.65,4.56,4.89,4.68,4.80, 4.75,4.93,4.61,4.61,4.67,4.67,4.80,4.94,4.94,4.92, 4.69,4.66,4.68,5.15,4.82,4.83,4.93,5.12,4.96,4.91, 5.07,5.11,5.06,4.91,5.00,4.96,5.08,4.85,5.05,5.33, 5.08,4.82,5.27,5.01,4.96,5.15,5.04,5.07,5.09,4.95, 5.15,5.04,5.19,5.02,5.20,5.43,5.20,5.39,5.10,5.35, 5.40,5.32,5.01,5.18,5.41,5.35,5.21,5.29,5.55,5.30, 5.20,5.38,5.36,5.34,5.37,5.20,5.34,5.16,5.36,5.53, 5.28,5.29,5.29,5.52,5.62,5.36,5.64,5.57,5.46,5.65, 5.24,5.74,5.37,5.73,5.70,5.40,5.50,5.56,5.73,5.67, 0.93,0.97,1.06,1.07,1.12,1.13,1.21,1.19,1.25,1.28, 1.28,1.33,1.42,1.41,1.41,1.41,1.46,1.59,1.57,1.55, 1.63,1.60,1.61,1.62,1.72,1.71,1.76,1.72,1.84,1.82, 1.90,1.95,1.92,1.90,1.93,2.08,1.91,2.01,2.06,2.05, 2.07,2.00,2.14,2.08,2.18,2.18,2.23,2.22,2.34,2.21, 2.29,2.33,2.30,2.30,2.34,2.43,2.43,2.21,2.31,2.43, 2.36,2.48,2.41,2.43,2.44,2.55,2.58,2.65,2.65,2.57, 2.58,2.61,2.59,2.50,2.62,2.71,2.81,2.80,2.65,2.76, 2.78,2.82,2.69,2.82,2.89,2.89,2.77,2.88,2.98,3.00, 2.86,3.07,2.94,2.92,2.94,3.06,3.04,3.08,2.92,2.99, 3.07,2.90,3.04,3.02,3.20,3.13,3.13,3.25,3.19,3.20, 3.12,3.32,3.31,3.12,3.20,3.25,3.23,3.26,3.33,3.24, 3.32,3.44,3.37,3.42,3.42,3.42,3.51,3.33,3.50,3.45, 3.45,3.47,3.32,3.51,3.54,3.54,3.59,3.44,3.68,3.59, 3.58,3.62,3.61,3.59,3.57,3.57,3.59,3.68,3.63,3.61, 3.73,3.72,3.73,3.57,3.70,3.81,3.81,3.72,3.69,3.69, 3.74,3.82,3.76,3.81,3.74,3.79,3.87,3.74,3.88,3.88, 4.08,3.94,3.90,3.86,4.10,3.92,4.02,4.13,3.93,4.00, 3.98,4.09,3.95,3.97,3.99,4.06,4.17,4.12,4.08,4.08, 4.18,4.02,4.09,4.23,4.33,4.26,4.15,4.25,4.23,4.32, 4.12,4.12,4.21,4.32,4.28,4.35,4.40,4.26,4.18,4.30, 4.31,4.28,4.28,4.34,4.44,4.47,4.33,4.32,4.40,4.48, 4.29,4.48,4.32,4.44,4.42,4.38,4.58,4.69,4.51,4.35, 4.34,4.58,4.44,4.41,4.57,4.57,4.51,4.55,4.62,4.65, 4.62,4.54,4.53,4.58,4.77,4.69,4.66,4.62,4.78,4.66, 4.71,4.53,4.75,4.93,4.66,4.74,4.60,4.77,4.79,4.83, 4.91,4.84,5.02,4.86,4.89,4.78,4.68,4.85,4.90,5.03, 4.83,5.06,4.94,4.94,4.87,4.87,4.98,5.03,5.08,5.06, 4.94,5.00,4.97,5.01,4.95,5.08,4.88,4.97,4.92,4.86, 0.84,0.87,0.92,0.95,0.97,0.98,1.01,1.08,1.14,1.15, 1.19,1.19,1.26,1.27,1.28,1.30,1.30,1.37,1.34,1.40, 1.46,1.43,1.53,1.50,1.50,1.56,1.52,1.59,1.66,1.64, 1.65,1.67,1.71,1.77,1.76,1.71,1.72,1.76,1.78,1.82, 1.83,1.84,1.89,1.86,1.91,1.90,1.99,1.97,2.03,1.97, 2.08,2.05,1.99,2.16,2.08,2.04,2.15,2.12,2.08,2.21, 2.15,2.26,2.22,2.21,2.21,2.24,2.30,2.28,2.28,2.34, 2.31,2.29,2.50,2.35,2.27,2.39,2.41,2.34,2.49,2.40, 2.47,2.35,2.44,2.47,2.47,2.59,2.63,2.58,2.64,2.57, 2.60,2.72,2.61,2.65,2.65,2.80,2.61,2.79,2.68,2.70, 2.70,2.64,2.78,2.63,2.79,2.85,2.92,2.79,2.79,2.77, 2.76,2.75,2.83,2.80,2.94,2.89,2.92,2.96,2.93,2.96, 2.94,3.01,3.09,3.03,3.04,3.02,3.11,3.10,3.00,2.95, 3.06,2.99,3.03,3.09,3.21,3.14,3.12,3.05,3.30,3.08, 3.05,3.16,3.26,3.22,3.23,3.20,3.27,3.34,3.28,3.20, 3.19,3.27,3.40,3.35,3.30,3.47,3.20,3.27,3.28,3.35, 3.42,3.21,3.26,3.41,3.30,3.32,3.42,3.41,3.44,3.51, 3.50,3.59,3.47,3.54,3.54,3.53,3.49,3.64,3.69,3.57, 3.64,3.55,3.70,3.57,3.58,3.53,3.66,3.66,3.67,3.76, 3.68,3.55,3.54,3.62,3.71,3.80,3.75,3.78,3.78,3.89, 3.63,3.67,3.63,3.72,3.80,3.76,3.85,3.87,3.61,3.85, 3.86,3.82,3.83,3.87,3.86,3.90,3.94,3.79,3.95,3.96, 3.97,3.88,4.24,3.94,3.99,4.01,3.81,3.87,4.06,3.88, 4.12,3.93,4.00,3.88,4.04,4.04,4.21,4.22,4.12,4.00, 4.11,4.08,4.08,4.02,4.19,4.27,4.15,4.11,4.32,4.26, 4.41,4.16,4.20,4.22,4.24,4.36,4.22,4.12,4.18,4.25, 4.29,4.44,4.41,4.28,4.34,4.12,4.32,4.27,4.41,4.47, 4.29,4.35,4.39,4.30,4.43,4.24,4.41,4.29,4.27,4.44, 4.50,4.61,4.20,4.41,4.34,4.37,4.54,4.55,4.50,4.54, 0.75,0.80,0.82,0.81,0.87,0.91,0.96,0.93,0.96,1.02, 1.05,1.06,1.09,1.07,1.15,1.23,1.16,1.21,1.24,1.26, 1.32,1.31,1.26,1.33,1.35,1.43,1.42,1.44,1.39,1.47, 1.45,1.52,1.50,1.57,1.52,1.53,1.58,1.61,1.59,1.59, 1.61,1.66,1.68,1.70,1.69,1.78,1.69,1.79,1.75,1.76, 1.78,1.82,1.82,1.87,1.83,1.89,1.91,1.94,1.92,1.95, 1.94,1.90,2.00,1.96,2.04,2.07,2.07,2.04,2.05,2.12, 2.06,2.07,2.06,2.09,2.13,2.17,2.24,2.20,2.19,2.15, 2.14,2.22,2.17,2.24,2.20,2.25,2.25,2.28,2.29,2.31, 2.33,2.34,2.31,2.37,2.36,2.29,2.32,2.34,2.41,2.43, 2.40,2.39,2.42,2.43,2.48,2.47,2.49,2.47,2.52,2.63, 2.52,2.63,2.60,2.48,2.57,2.62,2.50,2.58,2.57,2.56, 2.60,2.63,2.58,2.59,2.60,2.68,2.65,2.64,2.79,2.81, 2.86,2.83,2.76,2.72,2.71,2.68,2.82,2.75,2.80,2.85, 2.86,2.85,2.80,2.90,2.73,2.78,2.78,2.79,2.97,2.83, 2.80,2.86,2.91,2.79,2.95,2.97,2.96,2.88,2.91,3.04, 2.98,3.13,3.10,3.04,2.96,3.08,3.05,3.01,3.07,3.12, 3.03,3.08,2.96,3.18,3.17,3.13,3.13,3.15,3.10,3.14, 3.16,3.29,3.30,3.20,3.08,3.11,3.18,3.24,3.29,3.32, 3.37,3.20,3.31,3.41,3.16,3.28,3.42,3.38,3.29,3.34, 3.41,3.46,3.32,3.44,3.32,3.37,3.35,3.46,3.37,3.38, 3.41,3.39,3.35,3.50,3.34,3.40,3.56,3.37,3.40,3.42, 3.56,3.58,3.53,3.69,3.57,3.65,3.39,3.67,3.68,3.55, 3.37,3.49,3.63,3.50,3.40,3.68,3.58,3.58,3.61,3.62, 3.81,3.71,3.61,3.76,3.71,3.63,3.79,3.73,3.51,3.69, 3.66,3.85,3.92,3.66,3.57,3.86,3.85,3.84,3.69,3.77, 3.79,3.72,3.84,3.76,3.71,3.70,3.91,3.83,3.79,3.74, 3.91,3.85,3.91,4.07,3.88,3.89,3.91,3.87,3.94,3.93, 3.78,3.84,3.96,3.95,4.01,3.84,3.90,3.85,4.00,4.09, 0.66,0.67,0.70,0.74,0.81,0.79,0.78,0.84,0.86,0.91, 0.89,0.95,0.96,0.96,1.01,1.01,1.00,1.05,1.08,1.11, 1.12,1.14,1.19,1.20,1.16,1.24,1.21,1.23,1.29,1.22, 1.27,1.32,1.31,1.33,1.37,1.40,1.35,1.41,1.41,1.50, 1.45,1.47,1.52,1.50,1.53,1.53,1.59,1.55,1.54,1.57, 1.62,1.58,1.60,1.67,1.65,1.56,1.63,1.68,1.68,1.72, 1.68,1.66,1.76,1.76,1.77,1.72,1.80,1.70,1.76,1.83, 1.83,1.82,1.89,1.82,1.93,1.92,1.80,1.91,1.88,1.98, 1.88,1.95,1.92,2.00,1.90,1.96,2.04,2.02,2.03,1.99, 2.06,2.05,2.11,2.05,2.17,2.02,2.10,2.10,2.14,2.04, 2.09,2.12,2.19,2.12,2.17,2.26,2.28,2.16,2.24,2.28, 2.21,2.16,2.20,2.30,2.23,2.27,2.28,2.31,2.28,2.42, 2.32,2.39,2.34,2.30,2.33,2.28,2.30,2.41,2.42,2.41, 2.42,2.38,2.46,2.36,2.28,2.41,2.40,2.51,2.34,2.51, 2.46,2.53,2.58,2.50,2.53,2.58,2.53,2.60,2.45,2.57, 2.53,2.52,2.62,2.64,2.49,2.60,2.56,2.50,2.58,2.68, 2.49,2.59,2.47,2.72,2.76,2.69,2.59,2.68,2.71,2.56, 2.78,2.62,2.66,2.71,2.74,2.73,2.72,2.83,2.82,2.64, 2.77,2.82,2.88,2.79,2.77,2.79,2.85,2.83,2.87,2.84, 2.89,2.80,2.85,2.86,2.90,2.97,3.04,2.98,2.91,3.03, 2.92,2.94,3.06,3.02,2.91,2.99,2.99,2.96,2.97,2.91, 2.99,2.92,3.01,2.87,2.99,2.95,2.99,2.94,3.04,3.01, 3.11,3.08,3.16,3.11,3.21,2.91,3.26,3.19,3.10,3.17, 3.23,3.04,3.20,3.15,3.22,3.20,3.25,3.16,3.14,3.21, 3.23,3.10,3.19,3.32,3.18,3.35,3.27,3.19,3.20,3.15, 3.39,3.26,3.20,3.38,3.26,3.25,3.22,3.36,3.31,3.53, 3.37,3.23,3.28,3.44,3.42,3.30,3.37,3.46,3.40,3.39, 3.39,3.30,3.28,3.45,3.40,3.35,3.42,3.44,3.39,3.45, 3.35,3.40,3.25,3.45,3.41,3.49,3.53,3.53,3.51,3.75, 0.57,0.61,0.63,0.66,0.65,0.72,0.75,0.73,0.75,0.79, 0.83,0.82,0.85,0.86,0.85,0.88,0.86,0.95,0.93,1.00, 0.96,0.99,1.01,1.03,1.07,1.05,1.07,1.07,1.06,1.14, 1.17,1.20,1.15,1.20,1.17,1.23,1.21,1.20,1.20,1.25, 1.27,1.29,1.26,1.28,1.28,1.28,1.36,1.35,1.32,1.36, 1.39,1.41,1.45,1.40,1.44,1.44,1.46,1.38,1.48,1.49, 1.46,1.54,1.50,1.59,1.57,1.53,1.51,1.62,1.62,1.54, 1.53,1.52,1.59,1.56,1.66,1.68,1.60,1.72,1.66,1.70, 1.73,1.67,1.68,1.68,1.71,1.68,1.72,1.71,1.72,1.77, 1.78,1.71,1.78,1.82,1.80,1.79,1.81,1.85,1.77,1.84, 1.84,1.87,1.83,1.91,1.95,1.90,1.86,1.93,1.89,1.93, 1.95,1.96,2.01,1.98,1.96,1.99,2.02,1.99,2.02,2.03, 2.02,2.02,2.07,2.03,2.10,2.08,2.02,2.00,2.01,2.09, 2.10,2.13,2.10,2.12,2.13,2.18,2.14,2.17,2.19,2.21, 2.15,2.26,2.25,2.20,2.23,2.19,2.24,2.15,2.27,2.25, 2.18,2.25,2.17,2.24,2.33,2.30,2.28,2.24,2.31,2.38, 2.22,2.26,2.38,2.25,2.40,2.26,2.36,2.31,2.42,2.43, 2.27,2.41,2.37,2.43,2.44,2.44,2.41,2.46,2.42,2.47, 2.48,2.46,2.54,2.47,2.52,2.56,2.53,2.47,2.47,2.57, 2.53,2.57,2.60,2.50,2.48,2.54,2.55,2.62,2.58,2.50, 2.57,2.62,2.66,2.56,2.68,2.49,2.55,2.58,2.73,2.70, 2.64,2.64,2.74,2.67,2.64,2.70,2.68,2.76,2.71,2.60, 2.73,2.76,2.71,2.69,2.78,2.70,2.76,2.77,2.74,2.76, 2.86,2.83,2.82,2.85,2.63,2.70,2.73,2.92,2.84,2.85, 2.90,2.82,2.86,2.84,2.87,2.74,2.79,2.87,2.88,2.83, 2.90,2.82,2.97,2.97,2.89,3.01,2.90,2.89,2.90,2.93, 2.89,2.93,3.05,2.96,2.97,3.06,2.93,2.92,3.01,2.88, 2.92,2.91,2.89,3.03,2.98,2.98,2.97,3.14,2.91,2.84, 2.97,3.12,2.99,3.13,3.03,3.03,3.18,3.00,3.16,2.92, 0.49,0.51,0.57,0.55,0.63,0.64,0.61,0.68,0.66,0.69, 0.69,0.72,0.70,0.76,0.77,0.76,0.79,0.81,0.82,0.85, 0.81,0.89,0.90,0.82,0.94,0.96,0.95,0.95,0.97,1.00, 0.97,1.00,1.05,0.98,1.00,1.03,1.05,1.11,1.07,1.06, 1.11,1.13,1.08,1.16,1.11,1.13,1.16,1.18,1.13,1.16, 1.21,1.19,1.31,1.29,1.25,1.27,1.31,1.29,1.33,1.24, 1.33,1.25,1.37,1.31,1.40,1.35,1.37,1.35,1.37,1.40, 1.39,1.44,1.38,1.39,1.44,1.43,1.48,1.51,1.48,1.53, 1.49,1.44,1.52,1.53,1.56,1.50,1.55,1.59,1.52,1.56, 1.57,1.55,1.59,1.55,1.57,1.57,1.58,1.57,1.61,1.66, 1.64,1.61,1.63,1.62,1.66,1.73,1.67,1.79,1.65,1.71, 1.69,1.76,1.80,1.78,1.73,1.78,1.70,1.79,1.82,1.74, 1.84,1.81,1.82,1.78,1.82,1.78,1.78,1.76,1.83,1.85, 1.86,1.90,1.89,1.92,1.86,1.96,1.85,1.93,1.91,1.90, 1.87,1.94,1.98,1.92,1.95,1.92,1.94,1.92,1.93,2.08, 2.01,2.10,1.95,1.99,2.07,2.00,2.06,2.04,2.09,1.93, 2.06,2.11,2.06,2.04,2.07,2.06,2.07,2.09,2.05,2.09, 2.06,2.02,2.04,2.09,2.12,2.10,2.14,2.19,2.15,2.06, 2.14,2.08,2.13,2.15,2.21,2.06,2.20,2.24,2.13,2.19, 2.16,2.13,2.29,2.35,2.26,2.20,2.23,2.20,2.19,2.22, 2.27,2.30,2.20,2.26,2.37,2.24,2.31,2.34,2.11,2.20, 2.41,2.22,2.22,2.36,2.30,2.34,2.33,2.32,2.31,2.34, 2.46,2.31,2.47,2.34,2.35,2.43,2.36,2.38,2.32,2.50, 2.38,2.43,2.45,2.45,2.45,2.41,2.42,2.40,2.47,2.47, 2.43,2.61,2.51,2.40,2.53,2.47,2.48,2.49,2.53,2.57, 2.47,2.52,2.53,2.53,2.50,2.56,2.56,2.50,2.58,2.62, 2.55,2.57,2.54,2.54,2.60,2.62,2.56,2.53,2.55,2.62, 2.71,2.61,2.61,2.63,2.57,2.54,2.62,2.61,2.57,2.78, 2.59,2.74,2.72,2.61,2.72,2.69,2.65,2.74,2.62,2.71, 0.45,0.46,0.50,0.48,0.50,0.54,0.56,0.56,0.58,0.59, 0.65,0.66,0.61,0.64,0.65,0.70,0.71,0.74,0.74,0.74, 0.77,0.76,0.79,0.76,0.78,0.84,0.77,0.81,0.83,0.87, 0.89,0.86,0.91,0.89,0.86,0.87,0.88,0.95,0.91,0.96, 0.98,1.02,1.03,0.98,0.98,0.98,1.03,1.04,1.03,1.01, 1.08,1.03,1.04,1.09,1.08,1.12,1.12,1.14,1.11,1.19, 1.12,1.13,1.13,1.14,1.15,1.22,1.19,1.17,1.18,1.24, 1.19,1.24,1.22,1.30,1.21,1.27,1.25,1.25,1.29,1.30, 1.31,1.30,1.30,1.37,1.30,1.39,1.31,1.34,1.31,1.27, 1.37,1.37,1.39,1.42,1.37,1.35,1.37,1.40,1.41,1.43, 1.39,1.40,1.37,1.51,1.51,1.45,1.48,1.44,1.50,1.50, 1.49,1.49,1.54,1.52,1.55,1.52,1.53,1.57,1.56,1.52, 1.55,1.57,1.54,1.49,1.52,1.59,1.56,1.63,1.69,1.62, 1.69,1.66,1.63,1.61,1.61,1.72,1.67,1.64,1.62,1.61, 1.69,1.70,1.67,1.71,1.67,1.64,1.76,1.65,1.67,1.73, 1.71,1.73,1.68,1.73,1.81,1.77,1.77,1.79,1.83,1.74, 1.79,1.75,1.76,1.79,1.82,1.87,1.74,1.79,1.81,1.76, 1.82,1.90,1.82,1.82,1.85,1.85,1.81,1.88,1.86,1.88, 1.87,1.92,1.94,1.95,1.94,1.97,1.96,2.04,1.88,1.95, 1.90,1.90,1.92,1.93,1.97,1.92,1.92,1.97,1.93,1.93, 1.96,2.03,1.98,2.00,1.98,2.02,1.99,1.92,2.02,2.03, 2.03,1.96,2.00,2.06,2.03,2.06,2.02,2.12,2.06,2.03, 1.98,2.06,2.08,2.01,2.13,2.11,2.14,2.03,2.13,2.14, 2.08,2.21,2.13,2.18,2.22,2.17,2.11,2.10,2.09,2.16, 2.14,2.13,2.11,2.31,2.15,2.16,2.16,2.19,2.27,2.14, 2.23,2.18,2.21,2.28,2.24,2.15,2.12,2.19,2.19,2.17, 2.22,2.23,2.37,2.22,2.28,2.23,2.20,2.18,2.31,2.28, 2.14,2.19,2.34,2.30,2.32,2.34,2.30,2.32,2.30,2.32, 2.33,2.32,2.33,2.45,2.31,2.36,2.34,2.37,2.39,2.44, 0.39,0.40,0.42,0.46,0.46,0.47,0.51,0.50,0.53,0.51, 0.53,0.55,0.56,0.58,0.58,0.59,0.62,0.63,0.63,0.66, 0.67,0.71,0.69,0.65,0.65,0.73,0.71,0.71,0.75,0.74, 0.78,0.75,0.75,0.78,0.79,0.78,0.81,0.81,0.77,0.84, 0.83,0.89,0.85,0.86,0.95,0.81,0.91,0.87,0.94,0.95, 0.91,0.93,0.98,0.96,0.91,0.96,0.95,0.95,0.98,0.99, 0.98,1.02,0.99,0.99,1.00,1.06,1.04,1.04,1.04,1.04, 1.07,1.06,1.11,1.08,1.07,1.11,1.10,1.08,1.13,1.11, 1.15,1.13,1.19,1.18,1.15,1.19,1.17,1.22,1.18,1.15, 1.21,1.18,1.16,1.18,1.21,1.26,1.25,1.22,1.17,1.26, 1.23,1.24,1.28,1.29,1.27,1.22,1.22,1.27,1.28,1.22, 1.28,1.28,1.32,1.34,1.40,1.34,1.29,1.35,1.33,1.29, 1.34,1.32,1.42,1.43,1.32,1.38,1.42,1.42,1.40,1.42, 1.38,1.41,1.42,1.36,1.41,1.47,1.40,1.43,1.48,1.45, 1.45,1.49,1.42,1.48,1.44,1.49,1.50,1.53,1.56,1.52, 1.52,1.50,1.50,1.56,1.53,1.56,1.56,1.51,1.61,1.50, 1.51,1.54,1.57,1.55,1.59,1.60,1.58,1.51,1.67,1.62, 1.55,1.60,1.65,1.59,1.62,1.61,1.63,1.63,1.67,1.62, 1.65,1.64,1.65,1.62,1.70,1.61,1.62,1.61,1.70,1.71, 1.73,1.62,1.67,1.63,1.77,1.70,1.63,1.85,1.70,1.71, 1.67,1.78,1.75,1.72,1.82,1.72,1.83,1.75,1.80,1.79, 1.77,1.81,1.76,1.75,1.78,1.78,1.77,1.82,1.76,1.78, 1.79,1.85,1.83,1.81,1.88,1.84,1.82,1.84,1.82,1.85, 1.87,1.84,1.90,1.89,1.92,1.90,1.89,1.86,1.87,1.82, 1.92,1.84,1.93,1.91,1.87,1.95,1.92,1.88,1.80,1.94, 1.97,1.91,1.92,1.97,1.95,2.01,1.92,1.93,1.99,2.04, 1.93,1.93,1.95,1.94,2.00,1.99,2.01,2.00,1.99,1.94, 2.10,1.96,1.98,2.01,1.98,1.97,2.06,1.99,2.02,2.03, 2.02,2.01,2.05,2.00,1.99,2.07,2.05,1.96,1.96,2.09, 0.32,0.34,0.37,0.38,0.38,0.39,0.43,0.42,0.44,0.48, 0.48,0.48,0.46,0.50,0.52,0.52,0.54,0.53,0.56,0.56, 0.58,0.57,0.60,0.59,0.61,0.60,0.59,0.66,0.64,0.62, 0.68,0.68,0.67,0.72,0.72,0.71,0.72,0.70,0.73,0.71, 0.75,0.72,0.72,0.78,0.76,0.75,0.78,0.80,0.77,0.82, 0.84,0.82,0.78,0.84,0.80,0.84,0.85,0.86,0.86,0.84, 0.84,0.89,0.85,0.88,0.90,0.92,0.85,0.90,0.93,0.91, 0.93,0.94,0.97,0.95,0.96,0.94,0.94,0.99,0.98,0.97, 0.93,0.99,1.04,0.99,0.99,1.00,1.00,1.01,1.03,1.01, 1.02,1.07,1.04,1.08,1.07,1.09,1.07,1.08,1.12,1.12, 1.12,1.09,1.08,1.11,1.14,1.16,1.13,1.11,1.06,1.16, 1.13,1.15,1.16,1.13,1.16,1.14,1.13,1.20,1.22,1.19, 1.17,1.15,1.12,1.20,1.14,1.14,1.21,1.22,1.22,1.18, 1.22,1.24,1.25,1.26,1.25,1.24,1.27,1.24,1.31,1.25, 1.30,1.28,1.24,1.31,1.31,1.34,1.35,1.31,1.30,1.26, 1.33,1.34,1.28,1.31,1.27,1.32,1.37,1.36,1.35,1.39, 1.32,1.37,1.40,1.38,1.41,1.42,1.36,1.36,1.35,1.39, 1.42,1.44,1.40,1.44,1.39,1.40,1.39,1.44,1.38,1.42, 1.42,1.43,1.47,1.43,1.51,1.47,1.41,1.43,1.48,1.37, 1.50,1.40,1.45,1.48,1.47,1.48,1.48,1.49,1.53,1.54, 1.48,1.45,1.47,1.52,1.53,1.47,1.49,1.51,1.59,1.53, 1.51,1.47,1.52,1.50,1.53,1.53,1.49,1.53,1.68,1.55, 1.53,1.61,1.57,1.61,1.63,1.58,1.58,1.58,1.58,1.57, 1.60,1.64,1.61,1.65,1.66,1.64,1.58,1.65,1.59,1.69, 1.65,1.63,1.64,1.65,1.67,1.62,1.70,1.69,1.70,1.70, 1.63,1.65,1.69,1.73,1.66,1.70,1.67,1.74,1.73,1.72, 1.75,1.80,1.75,1.70,1.71,1.68,1.66,1.67,1.72,1.67, 1.76,1.75,1.77,1.76,1.75,1.84,1.74,1.69,1.72,1.79, 1.71,1.77,1.76,1.83,1.76,1.74,1.74,1.77,1.78,1.80, 0.28,0.30,0.31,0.33,0.35,0.35,0.39,0.35,0.38,0.42, 0.41,0.41,0.44,0.41,0.43,0.47,0.45,0.48,0.45,0.53, 0.52,0.50,0.51,0.51,0.49,0.55,0.52,0.56,0.55,0.54, 0.55,0.56,0.58,0.56,0.59,0.63,0.66,0.59,0.63,0.64, 0.61,0.62,0.66,0.61,0.67,0.61,0.67,0.69,0.68,0.68, 0.67,0.69,0.73,0.76,0.76,0.71,0.75,0.74,0.74,0.72, 0.79,0.74,0.73,0.79,0.75,0.76,0.78,0.81,0.80,0.82, 0.85,0.81,0.84,0.80,0.85,0.85,0.85,0.85,0.86,0.83, 0.88,0.85,0.84,0.84,0.90,0.88,0.86,0.91,0.89,0.89, 0.91,0.93,0.92,0.90,0.90,0.93,0.91,0.91,0.89,0.97, 0.90,0.92,1.00,0.94,1.00,1.04,0.94,1.00,1.00,0.99, 1.01,1.02,1.06,0.99,1.03,1.02,1.06,1.04,1.03,1.02, 1.03,1.03,1.02,1.04,1.03,1.07,1.03,1.07,1.05,1.05, 1.04,1.10,1.07,1.09,1.07,1.07,1.05,1.12,1.10,1.13, 1.07,1.12,1.09,1.13,1.14,1.10,1.08,1.14,1.13,1.11, 1.16,1.14,1.16,1.11,1.15,1.20,1.15,1.10,1.16,1.14, 1.19,1.23,1.16,1.17,1.24,1.19,1.22,1.25,1.23,1.21, 1.15,1.23,1.24,1.24,1.19,1.18,1.19,1.20,1.21,1.22, 1.20,1.23,1.22,1.18,1.21,1.25,1.25,1.22,1.27,1.29, 1.29,1.24,1.30,1.23,1.33,1.29,1.32,1.38,1.34,1.29, 1.33,1.31,1.32,1.37,1.34,1.29,1.35,1.33,1.34,1.39, 1.39,1.32,1.38,1.34,1.33,1.39,1.37,1.35,1.37,1.37, 1.30,1.41,1.36,1.35,1.38,1.34,1.39,1.37,1.40,1.39, 1.40,1.39,1.41,1.41,1.42,1.42,1.43,1.47,1.47,1.47, 1.39,1.39,1.42,1.41,1.41,1.44,1.43,1.45,1.47,1.47, 1.48,1.42,1.42,1.47,1.44,1.45,1.54,1.40,1.52,1.50, 1.47,1.45,1.53,1.44,1.51,1.49,1.48,1.48,1.52,1.43, 1.53,1.47,1.51,1.50,1.52,1.56,1.56,1.54,1.49,1.49, 1.54,1.47,1.57,1.62,1.47,1.58,1.53,1.58,1.51,1.56, 0.28,0.25,0.27,0.30,0.30,0.30,0.31,0.33,0.33,0.37, 0.35,0.35,0.36,0.38,0.36,0.41,0.39,0.40,0.41,0.43, 0.42,0.44,0.47,0.46,0.46,0.46,0.46,0.46,0.46,0.49, 0.47,0.50,0.51,0.55,0.55,0.54,0.51,0.53,0.52,0.54, 0.50,0.58,0.56,0.55,0.58,0.62,0.56,0.58,0.57,0.60, 0.59,0.58,0.63,0.64,0.66,0.64,0.65,0.66,0.66,0.65, 0.69,0.64,0.66,0.69,0.67,0.65,0.66,0.66,0.70,0.73, 0.71,0.74,0.75,0.72,0.75,0.73,0.71,0.74,0.71,0.76, 0.77,0.73,0.74,0.80,0.74,0.76,0.76,0.77,0.79,0.75, 0.77,0.78,0.83,0.81,0.78,0.82,0.80,0.80,0.85,0.79, 0.85,0.81,0.84,0.84,0.86,0.91,0.84,0.87,0.86,0.83, 0.84,0.89,0.91,0.85,0.90,0.86,0.91,0.86,0.87,0.87, 0.94,0.89,0.90,0.91,0.91,0.89,0.92,0.94,0.93,0.91, 0.92,0.91,0.90,0.93,0.90,0.94,0.95,0.99,0.99,0.92, 0.93,0.98,0.97,0.92,0.98,0.97,0.97,0.96,0.93,0.99, 0.99,0.97,0.97,0.96,1.04,0.97,0.98,0.94,1.02,1.00, 1.01,1.05,1.07,1.05,1.04,0.98,1.03,0.99,1.04,1.06, 1.03,1.07,1.02,1.01,1.11,1.05,1.07,1.04,1.07,1.10, 1.11,1.11,1.05,1.12,1.10,1.12,1.11,1.15,1.11,1.10, 1.17,1.13,1.07,1.11,1.11,1.14,1.13,1.11,1.11,1.14, 1.15,1.13,1.14,1.14,1.12,1.16,1.17,1.19,1.21,1.13, 1.13,1.25,1.19,1.15,1.15,1.18,1.17,1.23,1.17,1.16, 1.13,1.17,1.18,1.18,1.19,1.20,1.21,1.21,1.24,1.25, 1.22,1.25,1.19,1.25,1.15,1.27,1.24,1.21,1.25,1.26, 1.26,1.20,1.27,1.23,1.22,1.25,1.26,1.26,1.25,1.26, 1.27,1.26,1.35,1.29,1.26,1.24,1.25,1.26,1.26,1.29, 1.28,1.21,1.32,1.25,1.31,1.36,1.32,1.36,1.31,1.28, 1.33,1.26,1.36,1.30,1.30,1.32,1.29,1.34,1.36,1.29, 1.34,1.32,1.34,1.32,1.36,1.34,1.34,1.33,1.35,1.35, 0.22,0.22,0.25,0.23,0.25,0.29,0.30,0.27,0.25,0.31, 0.29,0.33,0.32,0.32,0.35,0.34,0.32,0.39,0.36,0.40, 0.41,0.37,0.39,0.36,0.37,0.39,0.41,0.45,0.39,0.43, 0.41,0.41,0.46,0.45,0.47,0.49,0.46,0.43,0.46,0.45, 0.44,0.47,0.50,0.49,0.49,0.52,0.54,0.50,0.54,0.51, 0.51,0.55,0.53,0.50,0.53,0.53,0.59,0.53,0.57,0.59, 0.59,0.55,0.56,0.60,0.61,0.59,0.57,0.62,0.63,0.64, 0.64,0.56,0.61,0.60,0.62,0.64,0.60,0.65,0.63,0.64, 0.65,0.62,0.65,0.66,0.69,0.69,0.68,0.65,0.68,0.64, 0.71,0.71,0.67,0.73,0.66,0.67,0.73,0.69,0.67,0.72, 0.72,0.73,0.71,0.73,0.73,0.75,0.71,0.69,0.72,0.76, 0.72,0.77,0.75,0.73,0.73,0.74,0.77,0.72,0.79,0.78, 0.76,0.79,0.78,0.85,0.79,0.80,0.78,0.74,0.82,0.77, 0.80,0.80,0.78,0.84,0.81,0.81,0.83,0.80,0.81,0.81, 0.79,0.83,0.85,0.83,0.83,0.86,0.85,0.87,0.85,0.87, 0.89,0.85,0.89,0.86,0.84,0.89,0.91,0.87,0.89,0.88, 0.87,0.88,0.88,0.92,0.90,0.91,0.89,0.91,0.89,0.93, 0.92,0.89,0.91,0.93,0.87,0.94,0.91,0.93,0.92,0.95, 0.93,0.91,0.98,0.97,0.96,0.95,0.93,0.95,0.99,0.98, 0.92,0.91,0.96,0.96,0.91,0.93,0.96,1.00,1.04,0.95, 1.01,0.97,1.02,1.00,1.02,1.01,1.00,1.01,0.98,0.99, 1.00,1.02,1.02,1.03,1.03,1.02,1.04,1.04,1.05,0.99, 1.03,1.05,1.07,1.05,1.05,1.07,1.03,1.08,1.05,1.00, 1.06,1.09,1.04,1.10,1.03,1.11,1.05,1.05,1.03,1.06, 1.05,1.10,1.02,1.09,1.02,1.10,1.12,1.11,1.08,1.05, 1.09,1.15,1.12,1.07,1.12,1.10,1.11,1.08,1.10,1.13, 1.12,1.12,1.12,1.11,1.12,1.13,1.18,1.17,1.12,1.11, 1.16,1.12,1.16,1.11,1.15,1.15,1.12,1.18,1.12,1.11, 1.15,1.18,1.13,1.17,1.12,1.15,1.17,1.17,1.20,1.24, 0.18,0.19,0.21,0.22,0.23,0.23,0.28,0.25,0.24,0.27, 0.27,0.27,0.30,0.29,0.26,0.32,0.29,0.32,0.31,0.30, 0.34,0.35,0.36,0.35,0.33,0.34,0.35,0.38,0.34,0.37, 0.37,0.38,0.37,0.36,0.39,0.36,0.42,0.42,0.40,0.41, 0.42,0.40,0.38,0.42,0.45,0.45,0.44,0.47,0.50,0.47, 0.47,0.47,0.46,0.47,0.46,0.50,0.47,0.50,0.52,0.51, 0.50,0.49,0.49,0.50,0.48,0.51,0.52,0.54,0.50,0.51, 0.53,0.53,0.55,0.52,0.55,0.52,0.58,0.55,0.54,0.54, 0.55,0.57,0.52,0.60,0.55,0.61,0.58,0.60,0.62,0.59, 0.61,0.56,0.59,0.62,0.60,0.61,0.62,0.60,0.60,0.63, 0.64,0.61,0.61,0.62,0.62,0.60,0.63,0.64,0.63,0.63, 0.66,0.63,0.64,0.63,0.68,0.63,0.64,0.64,0.65,0.64, 0.67,0.67,0.72,0.69,0.68,0.71,0.68,0.67,0.72,0.70, 0.70,0.73,0.73,0.71,0.71,0.73,0.74,0.72,0.74,0.73, 0.68,0.69,0.72,0.72,0.72,0.75,0.73,0.75,0.71,0.74, 0.74,0.77,0.76,0.73,0.76,0.78,0.81,0.75,0.78,0.80, 0.77,0.77,0.74,0.77,0.78,0.81,0.75,0.79,0.75,0.82, 0.78,0.77,0.81,0.80,0.79,0.78,0.83,0.81,0.82,0.82, 0.82,0.79,0.81,0.86,0.82,0.79,0.84,0.80,0.83,0.83, 0.84,0.85,0.87,0.82,0.81,0.82,0.84,0.84,0.85,0.88, 0.80,0.84,0.85,0.91,0.88,0.83,0.85,0.87,0.87,0.89, 0.91,0.89,0.84,0.84,0.89,0.91,0.90,0.84,0.90,0.91, 0.90,0.90,0.88,0.89,0.92,0.92,0.90,0.93,0.90,0.84, 0.89,0.93,0.90,0.93,0.90,0.94,0.97,0.95,0.92,0.95, 0.99,0.95,0.97,0.92,0.99,0.95,0.94,0.94,0.96,0.97, 0.97,0.95,0.97,0.97,0.96,0.98,0.96,0.97,0.92,0.96, 1.00,0.98,0.96,0.96,0.95,1.00,0.96,0.97,0.97,0.96, 1.00,1.00,0.95,1.02,1.00,1.00,1.02,0.99,1.00,1.02, 1.03,1.06,1.04,1.02,1.02,1.03,1.02,1.02,1.03,1.05, 0.16,0.16,0.18,0.18,0.21,0.24,0.21,0.24,0.22,0.25, 0.21,0.21,0.26,0.24,0.27,0.25,0.25,0.26,0.27,0.27, 0.27,0.26,0.28,0.28,0.32,0.33,0.32,0.31,0.30,0.30, 0.32,0.33,0.36,0.34,0.35,0.33,0.34,0.35,0.36,0.36, 0.35,0.37,0.39,0.38,0.37,0.39,0.39,0.37,0.42,0.41, 0.38,0.40,0.42,0.38,0.43,0.41,0.45,0.42,0.42,0.43, 0.40,0.43,0.43,0.44,0.44,0.45,0.47,0.47,0.44,0.47, 0.44,0.48,0.44,0.47,0.46,0.46,0.47,0.48,0.51,0.49, 0.47,0.52,0.48,0.49,0.50,0.49,0.53,0.51,0.49,0.52, 0.48,0.50,0.51,0.47,0.52,0.56,0.53,0.54,0.53,0.55, 0.56,0.54,0.52,0.50,0.51,0.53,0.56,0.56,0.56,0.58, 0.58,0.57,0.53,0.57,0.56,0.59,0.57,0.58,0.56,0.55, 0.61,0.60,0.58,0.57,0.60,0.61,0.65,0.57,0.60,0.59, 0.58,0.60,0.62,0.60,0.63,0.60,0.64,0.63,0.62,0.62, 0.64,0.62,0.65,0.63,0.64,0.66,0.65,0.63,0.65,0.66, 0.67,0.64,0.64,0.68,0.63,0.66,0.64,0.64,0.67,0.65, 0.68,0.73,0.66,0.68,0.68,0.70,0.69,0.65,0.67,0.69, 0.63,0.71,0.72,0.68,0.71,0.71,0.71,0.69,0.72,0.72, 0.71,0.71,0.68,0.73,0.72,0.72,0.76,0.73,0.75,0.72, 0.77,0.73,0.75,0.73,0.75,0.76,0.76,0.74,0.74,0.77, 0.75,0.71,0.75,0.74,0.80,0.75,0.75,0.78,0.74,0.74, 0.76,0.73,0.74,0.79,0.83,0.74,0.76,0.76,0.76,0.78, 0.77,0.82,0.83,0.80,0.79,0.81,0.76,0.78,0.79,0.80, 0.80,0.78,0.81,0.78,0.79,0.79,0.78,0.78,0.83,0.81, 0.83,0.80,0.81,0.84,0.78,0.85,0.85,0.81,0.81,0.83, 0.82,0.79,0.86,0.83,0.78,0.86,0.81,0.83,0.87,0.82, 0.86,0.84,0.81,0.87,0.86,0.89,0.88,0.90,0.89,0.86, 0.85,0.83,0.86,0.85,0.85,0.86,0.89,0.86,0.86,0.86, 0.85,0.90,0.90,0.83,0.91,0.83,0.86,0.86,0.92,0.89, 1.07,1.13,1.19,1.25,1.31,1.32,1.39,1.33,1.42,1.49, 1.50,1.51,1.64,1.60,1.69,1.65,1.72,1.81,1.79,1.84, 1.84,1.85,1.96,1.91,1.95,1.92,1.97,2.04,2.07,2.13, 2.10,2.18,2.18,2.15,2.25,2.33,2.31,2.37,2.31,2.32, 2.32,2.38,2.40,2.35,2.55,2.44,2.56,2.54,2.46,2.62, 2.61,2.60,2.71,2.66,2.66,2.75,2.89,2.53,2.76,2.77, 2.85,2.87,2.92,2.90,2.88,2.92,2.91,2.87,2.90,3.02, 2.98,2.91,2.93,3.14,2.93,3.01,3.11,3.12,3.09,3.14, 3.22,3.20,3.30,3.28,3.18,3.28,3.21,3.33,3.35,3.22, 3.25,3.37,3.36,3.36,3.41,3.50,3.42,3.46,3.47,3.33, 3.54,3.40,3.46,3.54,3.64,3.52,3.64,3.58,3.56,3.51, 3.68,3.69,3.65,3.75,3.74,3.63,3.82,3.92,3.80,3.80, 3.68,3.65,3.87,3.81,4.03,3.82,3.79,3.74,3.91,3.94, 3.93,3.78,4.02,3.90,4.04,4.06,4.14,4.17,4.07,4.05, 3.96,4.07,4.15,4.15,4.18,4.21,4.25,4.16,4.17,4.16, 4.13,4.23,4.18,4.25,4.31,4.31,4.19,4.32,4.38,4.53, 4.48,4.44,4.28,4.43,4.42,4.49,4.48,4.34,4.35,4.63, 4.71,4.72,4.54,4.36,4.67,4.56,4.62,4.65,4.57,4.42, 4.63,4.65,4.64,4.62,4.52,4.62,4.54,4.49,4.96,4.79, 4.63,4.91,4.65,4.81,4.73,4.61,4.73,4.78,4.86,4.54, 4.86,4.90,4.91,5.24,4.88,4.89,4.86,4.80,4.87,4.95, 5.07,5.02,4.92,5.04,4.90,5.07,5.08,5.12,4.96,5.07, 5.01,4.89,5.21,5.11,5.11,4.92,5.17,5.14,5.42,5.36, 5.12,5.25,5.11,5.34,5.26,5.15,5.08,5.51,5.16,5.18, 5.11,5.31,5.30,5.11,5.40,5.36,5.34,5.14,5.52,5.44, 5.14,5.36,5.45,5.48,5.41,5.57,5.50,5.51,5.61,5.27, 5.40,5.52,5.31,5.32,5.61,5.65,5.35,5.25,5.51,5.53, 5.42,5.56,5.48,5.65,5.51,5.65,5.60,5.88,5.70,5.54, 5.39,5.78,5.66,5.50,5.60,5.70,5.64,5.82,5.80,6.01, 0.96,1.01,1.07,1.12,1.15,1.19,1.22,1.25,1.33,1.33, 1.38,1.43,1.44,1.41,1.46,1.53,1.56,1.62,1.64,1.66, 1.69,1.70,1.80,1.76,1.78,1.82,1.81,1.81,1.88,1.93, 1.93,1.97,1.95,2.05,2.00,2.06,2.09,2.05,2.12,2.12, 2.14,2.08,2.15,2.24,2.22,2.23,2.20,2.26,2.33,2.31, 2.30,2.34,2.42,2.38,2.41,2.41,2.52,2.42,2.56,2.42, 2.58,2.55,2.65,2.56,2.55,2.56,2.62,2.73,2.63,2.70, 2.68,2.79,2.69,2.75,2.77,2.88,2.86,2.85,3.00,2.88, 2.78,3.00,2.83,2.87,2.82,2.98,2.91,2.95,2.82,3.01, 2.88,3.03,3.08,3.16,3.02,3.11,3.10,3.18,3.06,3.28, 3.19,3.18,3.22,3.33,3.19,3.28,3.25,3.48,3.39,3.31, 3.27,3.30,3.25,3.32,3.41,3.34,3.39,3.39,3.41,3.48, 3.50,3.59,3.53,3.53,3.55,3.43,3.70,3.51,3.47,3.57, 3.56,3.56,3.51,3.63,3.65,3.56,3.62,3.63,3.70,3.72, 3.55,3.80,3.64,3.63,3.61,3.66,3.78,3.74,3.94,4.03, 3.96,3.81,3.95,3.85,3.90,3.78,3.88,3.98,3.90,3.97, 4.02,3.92,3.85,4.10,3.88,3.78,4.03,4.12,3.96,3.97, 4.19,4.18,4.00,4.15,4.16,3.98,4.27,4.33,4.15,4.19, 4.30,4.15,4.17,4.12,4.35,4.14,4.29,4.23,4.41,4.43, 4.21,4.31,4.40,4.23,4.34,4.33,4.27,4.22,4.16,4.42, 4.43,4.42,4.32,4.51,4.41,4.57,4.44,4.61,4.43,4.49, 4.40,4.52,4.47,4.66,4.46,4.54,4.65,4.67,4.51,4.71, 4.79,4.73,4.56,4.63,4.56,4.69,4.77,4.68,4.59,4.56, 4.80,4.65,4.75,4.83,4.76,4.62,4.67,4.88,4.95,4.93, 4.60,4.87,4.92,4.87,4.96,5.08,4.83,4.69,4.67,5.11, 4.96,4.72,4.78,4.82,4.91,4.98,4.92,4.83,5.00,5.06, 5.10,5.07,4.94,4.94,4.97,5.05,4.93,5.04,5.06,5.02, 5.04,4.89,5.12,5.12,5.23,5.18,5.19,4.97,5.05,5.04, 5.22,5.19,5.05,5.12,5.32,5.26,5.15,5.29,5.11,5.34, 0.84,0.93,0.91,0.99,1.07,1.08,1.14,1.07,1.12,1.25, 1.19,1.26,1.37,1.30,1.29,1.33,1.40,1.41,1.47,1.49, 1.44,1.55,1.53,1.57,1.67,1.63,1.62,1.67,1.70,1.67, 1.74,1.79,1.85,1.85,1.82,1.82,1.80,1.85,1.86,1.89, 1.82,1.94,1.93,1.98,2.02,2.02,2.01,2.03,2.08,2.09, 2.09,2.04,2.21,2.22,2.19,2.27,2.26,2.22,2.33,2.23, 2.25,2.36,2.38,2.24,2.36,2.33,2.50,2.40,2.42,2.44, 2.40,2.48,2.50,2.51,2.49,2.52,2.52,2.63,2.55,2.34, 2.67,2.64,2.47,2.58,2.68,2.61,2.60,2.60,2.74,2.75, 2.81,2.66,2.83,2.79,2.73,2.78,2.77,2.83,2.88,2.89, 2.95,2.91,2.81,2.83,2.94,2.89,2.91,2.95,2.82,3.04, 3.07,2.88,3.06,2.96,2.92,2.94,2.98,3.05,3.08,3.06, 3.18,3.15,3.13,3.03,3.15,3.14,3.26,3.32,3.19,3.24, 3.24,3.17,3.28,3.25,3.36,3.18,3.29,3.40,3.24,3.46, 3.21,3.38,3.29,3.32,3.38,3.39,3.42,3.24,3.34,3.44, 3.45,3.36,3.42,3.44,3.59,3.55,3.51,3.56,3.51,3.52, 3.50,3.52,3.65,3.60,3.61,3.72,3.62,3.52,3.69,3.63, 3.76,3.61,3.58,3.67,3.67,3.55,3.63,3.76,3.68,3.77, 3.80,3.78,3.82,3.80,3.95,3.92,3.90,3.95,3.78,3.86, 3.80,3.93,3.93,3.98,3.83,3.83,4.08,4.04,3.80,3.84, 3.88,4.03,4.05,3.89,4.11,4.13,3.99,4.07,3.97,3.93, 3.91,4.15,3.98,4.17,4.05,4.15,4.23,4.20,3.93,4.19, 4.09,4.03,4.08,4.07,4.22,4.31,4.19,4.14,4.15,4.25, 4.22,4.36,4.11,4.24,4.13,4.24,3.98,4.13,4.17,4.32, 4.29,4.28,4.33,4.46,4.46,4.38,4.49,4.17,4.56,4.47, 4.35,4.50,4.55,4.35,4.47,4.39,4.32,4.26,4.36,4.56, 4.56,4.48,4.41,4.47,4.56,4.50,4.60,4.47,4.62,4.52, 4.50,4.56,4.67,4.54,4.76,4.43,4.67,4.58,4.60,4.70, 4.78,4.72,4.62,4.60,4.50,4.76,4.48,4.66,4.58,4.72, 0.80,0.83,0.85,0.84,0.93,0.93,0.98,0.99,1.01,1.05, 1.07,1.12,1.16,1.19,1.19,1.22,1.23,1.27,1.27,1.35, 1.38,1.41,1.39,1.39,1.40,1.43,1.44,1.54,1.49,1.59, 1.49,1.52,1.60,1.62,1.57,1.58,1.62,1.64,1.68,1.70, 1.75,1.72,1.77,1.73,1.77,1.78,1.80,1.83,1.81,1.86, 1.90,1.93,1.97,1.87,1.93,1.98,2.03,2.00,2.00,1.94, 2.03,2.03,2.04,2.06,2.12,2.22,2.19,2.12,2.18,2.18, 2.07,2.16,2.23,2.20,2.21,2.24,2.14,2.29,2.26,2.28, 2.25,2.33,2.28,2.36,2.39,2.42,2.35,2.43,2.40,2.44, 2.36,2.54,2.50,2.54,2.45,2.40,2.46,2.54,2.50,2.55, 2.45,2.56,2.63,2.62,2.49,2.60,2.55,2.64,2.70,2.68, 2.60,2.69,2.61,2.67,2.64,2.69,2.72,2.65,2.75,2.80, 2.62,2.78,2.75,2.75,2.97,2.94,2.84,2.86,2.93,2.85, 2.87,2.83,2.86,2.85,2.94,2.85,2.85,2.85,2.84,2.98, 2.95,2.89,3.04,3.05,2.93,2.96,3.04,2.95,3.04,3.08, 3.04,3.13,3.05,3.15,3.06,3.12,3.20,3.08,3.09,3.23, 3.10,3.15,3.15,3.07,3.18,3.20,3.28,3.18,3.26,3.31, 3.38,3.28,3.21,3.32,3.30,3.35,3.37,3.25,3.40,3.44, 3.23,3.26,3.34,3.45,3.38,3.36,3.49,3.50,3.47,3.46, 3.38,3.43,3.47,3.42,3.53,3.51,3.41,3.46,3.37,3.41, 3.55,3.36,3.52,3.62,3.65,3.48,3.62,3.56,3.60,3.50, 3.73,3.52,3.57,3.76,3.59,3.70,3.48,3.65,3.60,3.84, 3.52,3.62,3.78,3.83,3.75,3.69,3.86,3.68,3.74,3.78, 3.73,3.77,3.73,3.89,3.74,3.82,3.90,3.89,3.75,3.92, 3.79,3.92,3.59,4.04,3.75,3.89,3.88,3.85,3.88,3.85, 3.83,4.01,4.01,4.01,4.04,3.88,3.96,3.81,3.83,3.98, 3.87,3.86,4.14,4.07,3.90,4.14,4.08,4.12,4.07,4.03, 4.19,4.15,4.06,3.98,4.03,4.04,4.07,4.05,4.16,4.09, 4.09,4.20,4.34,4.01,4.16,4.23,4.17,4.23,4.46,4.13, 0.67,0.74,0.74,0.79,0.81,0.86,0.83,0.90,0.98,0.99, 0.93,1.05,1.01,1.01,1.07,1.07,1.09,1.12,1.13,1.15, 1.19,1.20,1.19,1.22,1.35,1.38,1.27,1.35,1.34,1.38, 1.32,1.36,1.45,1.45,1.45,1.49,1.46,1.48,1.49,1.53, 1.60,1.59,1.52,1.54,1.56,1.61,1.59,1.66,1.65,1.66, 1.63,1.70,1.72,1.66,1.78,1.81,1.71,1.78,1.82,1.79, 1.86,1.87,1.87,1.78,1.94,1.93,1.85,1.94,1.86,1.94, 1.89,1.94,1.96,1.91,2.02,2.06,1.99,2.07,2.09,2.11, 1.95,1.93,2.13,2.02,2.14,2.17,2.14,2.21,2.10,2.19, 2.14,2.23,2.18,2.14,2.27,2.25,2.18,2.21,2.25,2.24, 2.20,2.26,2.28,2.32,2.29,2.28,2.35,2.26,2.34,2.48, 2.35,2.32,2.32,2.41,2.33,2.42,2.47,2.45,2.48,2.34, 2.46,2.52,2.36,2.58,2.53,2.46,2.51,2.54,2.57,2.60, 2.56,2.45,2.58,2.75,2.66,2.78,2.61,2.67,2.51,2.67, 2.63,2.64,2.61,2.74,2.59,2.63,2.59,2.71,2.74,2.78, 2.65,2.63,2.68,2.85,2.77,2.80,2.82,2.78,2.80,2.89, 2.72,2.87,2.87,2.80,2.74,2.74,2.93,2.86,2.92,2.92, 2.96,2.85,2.91,2.93,3.09,3.03,2.90,2.89,3.01,3.06, 3.05,3.09,3.05,2.88,2.97,3.03,3.07,2.99,3.20,3.00, 2.95,2.98,3.19,3.18,3.06,3.14,3.08,3.08,3.10,3.06, 3.06,3.12,3.18,3.09,3.13,3.18,3.19,3.27,3.19,3.26, 3.16,3.05,3.28,3.30,3.13,3.28,3.26,3.34,3.12,3.19, 3.32,3.32,3.23,3.21,3.34,3.24,3.25,3.37,3.52,3.43, 3.27,3.45,3.37,3.31,3.33,3.46,3.29,3.52,3.33,3.40, 3.46,3.40,3.51,3.56,3.47,3.38,3.47,3.34,3.61,3.39, 3.39,3.50,3.65,3.43,3.62,3.41,3.54,3.49,3.47,3.45, 3.40,3.50,3.56,3.59,3.57,3.69,3.57,3.59,3.61,3.71, 3.64,3.72,3.68,3.52,3.65,3.72,3.68,3.64,3.54,3.51, 3.56,3.68,3.74,3.62,3.78,3.54,3.65,3.68,3.63,3.70, 0.62,0.61,0.67,0.72,0.76,0.77,0.79,0.80,0.83,0.88, 0.87,0.89,0.93,0.95,0.93,1.03,0.99,1.04,1.09,1.07, 1.02,1.08,1.11,1.16,1.10,1.11,1.15,1.12,1.18,1.17, 1.23,1.27,1.20,1.26,1.28,1.28,1.31,1.24,1.36,1.32, 1.36,1.36,1.34,1.44,1.40,1.44,1.49,1.48,1.47,1.50, 1.49,1.51,1.50,1.47,1.51,1.56,1.53,1.53,1.56,1.62, 1.65,1.65,1.62,1.59,1.66,1.66,1.66,1.63,1.65,1.74, 1.77,1.78,1.71,1.74,1.72,1.78,1.79,1.79,1.82,1.82, 1.80,1.81,1.80,1.86,1.89,1.82,1.90,1.88,1.80,1.91, 1.98,1.94,1.96,1.95,1.92,1.95,1.97,1.93,2.10,2.00, 2.05,2.05,1.97,2.04,2.05,2.08,2.11,2.17,2.06,2.00, 2.17,2.11,2.14,2.18,2.10,2.24,2.11,2.26,2.12,2.17, 2.23,2.20,2.29,2.08,2.20,2.19,2.24,2.28,2.19,2.22, 2.35,2.23,2.36,2.28,2.28,2.30,2.30,2.36,2.28,2.40, 2.26,2.38,2.33,2.30,2.32,2.35,2.46,2.44,2.38,2.44, 2.41,2.47,2.42,2.44,2.45,2.44,2.48,2.49,2.47,2.50, 2.50,2.49,2.56,2.54,2.49,2.61,2.55,2.50,2.55,2.53, 2.60,2.58,2.58,2.50,2.67,2.66,2.75,2.58,2.66,2.59, 2.71,2.64,2.67,2.58,2.75,2.75,2.67,2.72,2.68,2.69, 2.63,2.75,2.74,2.74,2.78,2.78,2.75,2.84,2.63,2.77, 2.82,2.86,2.77,2.93,2.76,2.80,2.85,2.79,2.78,2.79, 2.81,2.76,2.86,2.88,2.97,2.80,3.01,2.93,3.07,2.81, 3.00,2.90,2.97,2.88,2.97,2.84,2.81,2.93,2.99,2.99, 3.04,2.90,2.96,3.05,2.93,2.99,3.01,3.03,2.94,2.91, 2.96,2.99,3.06,3.04,3.07,2.97,3.08,3.06,3.09,3.07, 3.11,3.16,3.02,3.07,3.17,3.17,3.15,3.12,3.24,3.12, 3.22,3.20,3.05,3.11,3.19,3.36,3.16,3.27,3.20,3.16, 3.12,3.24,3.18,3.28,3.24,3.15,3.25,3.25,3.34,3.25, 3.27,3.15,3.23,3.27,3.40,3.24,3.30,3.48,3.45,3.37, 0.58,0.58,0.59,0.60,0.60,0.67,0.68,0.70,0.72,0.77, 0.77,0.76,0.84,0.81,0.84,0.82,0.89,0.90,0.91,0.91, 0.96,0.91,0.97,0.99,1.00,0.97,1.01,1.05,1.07,1.07, 1.08,1.06,1.13,1.11,1.07,1.09,1.12,1.14,1.09,1.19, 1.22,1.21,1.24,1.22,1.25,1.22,1.30,1.34,1.35,1.29, 1.33,1.29,1.29,1.33,1.37,1.37,1.39,1.39,1.43,1.42, 1.43,1.45,1.48,1.40,1.43,1.41,1.55,1.54,1.50,1.51, 1.49,1.55,1.49,1.56,1.54,1.54,1.57,1.57,1.58,1.58, 1.57,1.60,1.62,1.61,1.64,1.67,1.66,1.62,1.63,1.69, 1.72,1.81,1.70,1.68,1.68,1.74,1.73,1.77,1.76,1.81, 1.72,1.83,1.80,1.80,1.80,1.87,1.72,1.91,1.80,1.86, 1.92,1.90,1.89,1.81,1.83,1.91,1.91,1.86,1.94,1.94, 1.92,1.86,1.90,1.95,1.87,1.99,1.87,1.97,1.98,2.00, 2.05,2.01,2.03,2.03,1.92,2.01,2.04,2.04,2.01,2.03, 2.12,2.06,2.12,2.13,2.10,2.09,1.99,2.15,2.18,2.18, 2.12,2.15,2.19,2.14,2.22,2.28,2.11,2.29,2.18,2.20, 2.14,2.19,2.24,2.31,2.24,2.27,2.22,2.20,2.17,2.24, 2.23,2.23,2.32,2.23,2.35,2.32,2.26,2.29,2.38,2.37, 2.42,2.30,2.34,2.40,2.30,2.30,2.33,2.25,2.46,2.38, 2.36,2.37,2.30,2.43,2.32,2.35,2.35,2.35,2.38,2.47, 2.50,2.46,2.50,2.51,2.55,2.44,2.41,2.52,2.50,2.44, 2.43,2.44,2.48,2.58,2.56,2.58,2.64,2.58,2.49,2.51, 2.54,2.53,2.60,2.58,2.56,2.51,2.63,2.71,2.49,2.57, 2.65,2.65,2.60,2.69,2.72,2.48,2.56,2.60,2.72,2.75, 2.64,2.70,2.79,2.69,2.80,2.68,2.78,2.71,2.73,2.78, 2.63,2.77,2.70,2.76,2.81,2.65,2.79,2.91,2.75,2.80, 2.82,2.72,2.77,2.99,2.74,2.85,2.72,2.80,2.87,2.85, 2.88,2.79,2.77,3.00,2.80,2.76,2.93,2.83,2.87,2.72, 2.85,3.05,2.89,2.88,2.79,2.86,3.00,2.85,2.93,3.01, 0.48,0.49,0.55,0.59,0.56,0.58,0.63,0.61,0.63,0.64, 0.68,0.69,0.67,0.71,0.70,0.75,0.76,0.75,0.80,0.82, 0.83,0.87,0.84,0.86,0.89,0.84,0.91,0.88,0.96,0.93, 0.93,1.00,0.96,0.99,0.96,1.04,1.02,1.02,1.03,1.06, 1.03,1.08,1.07,1.15,1.09,1.10,1.13,1.15,1.15,1.10, 1.14,1.18,1.15,1.20,1.15,1.25,1.20,1.24,1.31,1.27, 1.31,1.22,1.33,1.30,1.26,1.32,1.28,1.26,1.29,1.29, 1.35,1.41,1.38,1.30,1.36,1.38,1.36,1.36,1.38,1.38, 1.42,1.43,1.44,1.41,1.34,1.46,1.48,1.51,1.52,1.42, 1.44,1.47,1.49,1.54,1.48,1.56,1.51,1.46,1.58,1.59, 1.50,1.56,1.55,1.53,1.61,1.54,1.56,1.62,1.58,1.64, 1.66,1.64,1.63,1.62,1.66,1.75,1.62,1.72,1.73,1.78, 1.71,1.69,1.70,1.72,1.77,1.77,1.71,1.73,1.71,1.70, 1.82,1.76,1.79,1.72,1.79,1.81,1.75,1.71,1.84,1.82, 1.85,1.80,1.82,1.87,1.86,1.85,1.90,1.87,1.86,1.84, 1.85,1.84,1.90,1.87,1.83,1.79,1.90,1.91,1.99,1.97, 1.97,1.91,1.92,1.87,1.93,2.03,1.96,1.92,2.00,1.93, 2.01,1.96,2.07,2.00,2.01,2.02,2.05,2.04,2.05,2.02, 2.00,2.13,2.06,2.07,2.13,2.04,2.06,2.13,2.11,2.17, 2.20,2.08,2.14,2.06,2.15,2.12,2.11,2.13,2.16,2.20, 2.13,2.14,2.19,2.24,2.16,2.18,2.10,2.29,2.20,2.16, 2.19,2.21,2.20,2.24,2.27,2.26,2.30,2.32,2.27,2.34, 2.28,2.23,2.23,2.24,2.30,2.27,2.22,2.28,2.30,2.30, 2.30,2.41,2.33,2.34,2.27,2.34,2.32,2.34,2.26,2.24, 2.35,2.37,2.29,2.42,2.30,2.43,2.41,2.45,2.36,2.41, 2.34,2.48,2.45,2.37,2.36,2.46,2.43,2.45,2.45,2.37, 2.44,2.34,2.42,2.48,2.44,2.46,2.55,2.38,2.57,2.55, 2.58,2.48,2.50,2.56,2.50,2.45,2.51,2.54,2.54,2.63, 2.54,2.57,2.55,2.57,2.55,2.52,2.49,2.61,2.55,2.63, 0.44,0.44,0.44,0.46,0.49,0.52,0.53,0.55,0.58,0.59, 0.58,0.63,0.64,0.63,0.65,0.65,0.67,0.69,0.70,0.69, 0.72,0.73,0.75,0.75,0.82,0.78,0.76,0.83,0.80,0.82, 0.83,0.86,0.85,0.89,0.89,0.88,0.93,0.94,0.92,0.91, 0.95,0.98,0.86,1.00,0.98,0.96,0.95,0.99,0.99,1.07, 1.01,1.06,1.00,1.07,1.07,1.06,1.01,1.11,1.06,1.07, 1.11,1.15,1.12,1.07,1.11,1.16,1.14,1.12,1.21,1.16, 1.23,1.19,1.22,1.20,1.20,1.26,1.20,1.20,1.19,1.25, 1.25,1.20,1.22,1.30,1.27,1.24,1.27,1.30,1.32,1.26, 1.27,1.26,1.31,1.27,1.34,1.36,1.34,1.37,1.41,1.39, 1.41,1.40,1.41,1.44,1.40,1.40,1.42,1.35,1.49,1.47, 1.43,1.45,1.43,1.42,1.54,1.44,1.44,1.46,1.49,1.49, 1.49,1.51,1.49,1.50,1.53,1.56,1.53,1.57,1.56,1.48, 1.52,1.58,1.50,1.54,1.57,1.59,1.55,1.58,1.55,1.60, 1.53,1.57,1.59,1.59,1.70,1.60,1.71,1.65,1.68,1.65, 1.61,1.62,1.72,1.70,1.68,1.72,1.64,1.68,1.69,1.69, 1.70,1.69,1.64,1.76,1.69,1.68,1.71,1.71,1.73,1.74, 1.69,1.75,1.76,1.81,1.77,1.75,1.78,1.80,1.82,1.85, 1.86,1.80,1.79,1.78,1.81,1.78,1.86,1.88,1.87,1.82, 1.86,1.86,1.73,1.85,1.86,1.86,1.89,1.90,1.97,1.87, 1.92,1.88,1.92,2.00,1.89,1.80,1.89,1.83,1.94,1.91, 1.93,2.00,1.93,1.92,1.97,1.97,1.87,2.01,1.97,1.88, 1.99,1.91,2.02,2.01,2.01,1.99,2.05,1.97,2.05,2.03, 2.05,2.08,2.02,2.04,2.12,2.01,2.05,2.02,2.04,2.06, 1.98,2.16,2.07,2.06,2.13,2.11,2.02,2.07,2.08,2.19, 2.13,2.16,2.09,2.09,2.10,2.18,2.15,2.24,2.10,2.14, 2.22,2.17,2.18,2.20,2.10,2.17,2.20,2.22,2.16,2.17, 2.21,2.19,2.17,2.22,2.25,2.23,2.19,2.20,2.25,2.24, 2.28,2.14,2.11,2.24,2.24,2.18,2.34,2.17,2.30,2.31, 0.36,0.39,0.39,0.43,0.43,0.46,0.44,0.45,0.49,0.53, 0.55,0.52,0.52,0.57,0.56,0.61,0.59,0.62,0.64,0.65, 0.62,0.68,0.65,0.69,0.65,0.69,0.69,0.72,0.69,0.73, 0.77,0.72,0.73,0.79,0.76,0.77,0.78,0.78,0.78,0.82, 0.81,0.86,0.83,0.83,0.84,0.85,0.85,0.90,0.88,0.90, 0.91,0.91,0.94,0.89,0.88,0.89,0.93,0.94,0.97,0.97, 0.92,1.01,0.98,1.01,0.96,1.00,1.02,1.00,1.03,1.05, 1.02,1.04,1.01,1.02,1.09,1.03,1.07,1.08,1.11,1.09, 1.07,1.13,1.10,1.15,1.16,1.12,1.15,1.13,1.16,1.17, 1.12,1.16,1.17,1.16,1.21,1.13,1.20,1.20,1.23,1.21, 1.22,1.17,1.24,1.25,1.26,1.21,1.20,1.22,1.21,1.21, 1.26,1.26,1.24,1.27,1.21,1.35,1.31,1.32,1.27,1.28, 1.34,1.34,1.32,1.30,1.34,1.26,1.35,1.29,1.35,1.38, 1.36,1.36,1.39,1.37,1.33,1.41,1.46,1.33,1.42,1.36, 1.41,1.45,1.39,1.40,1.47,1.40,1.43,1.51,1.45,1.45, 1.45,1.50,1.43,1.39,1.51,1.44,1.47,1.53,1.49,1.47, 1.51,1.46,1.49,1.50,1.51,1.52,1.54,1.47,1.52,1.55, 1.55,1.50,1.52,1.65,1.60,1.57,1.52,1.64,1.55,1.59, 1.68,1.65,1.68,1.52,1.59,1.60,1.60,1.63,1.63,1.63, 1.53,1.60,1.60,1.66,1.63,1.54,1.69,1.67,1.63,1.63, 1.67,1.69,1.75,1.68,1.75,1.66,1.75,1.67,1.69,1.64, 1.67,1.71,1.60,1.74,1.72,1.69,1.79,1.78,1.72,1.79, 1.74,1.76,1.81,1.70,1.69,1.67,1.82,1.82,1.74,1.83, 1.74,1.74,1.81,1.80,1.80,1.80,1.77,1.80,1.83,1.74, 1.82,1.85,1.76,1.77,1.86,1.86,1.80,1.80,1.92,1.93, 1.83,1.78,1.83,1.88,1.86,1.88,1.88,1.80,1.79,1.89, 1.85,1.93,1.84,1.89,1.77,1.90,1.95,1.85,1.91,1.89, 1.90,1.87,1.95,1.92,1.96,2.02,2.00,1.85,1.92,1.88, 1.94,1.92,1.95,1.94,2.02,1.94,1.91,2.02,1.95,2.04, 0.32,0.36,0.34,0.38,0.38,0.40,0.42,0.42,0.45,0.46, 0.47,0.47,0.48,0.50,0.52,0.49,0.51,0.53,0.53,0.54, 0.58,0.61,0.61,0.58,0.60,0.62,0.60,0.58,0.59,0.63, 0.63,0.63,0.66,0.66,0.65,0.71,0.68,0.69,0.71,0.69, 0.72,0.70,0.70,0.75,0.73,0.77,0.76,0.74,0.77,0.81, 0.79,0.83,0.81,0.80,0.79,0.80,0.83,0.83,0.80,0.86, 0.84,0.86,0.82,0.84,0.87,0.87,0.87,0.86,0.90,0.93, 0.87,0.91,0.90,0.93,0.86,0.96,0.95,0.89,0.95,0.95, 0.97,0.97,0.96,1.00,0.98,0.96,0.97,1.00,0.97,0.99, 1.03,1.03,1.00,1.03,1.02,1.05,1.09,1.05,1.06,1.06, 1.05,1.05,1.06,1.07,1.16,1.10,1.10,1.08,1.10,1.11, 1.07,1.09,1.11,1.10,1.13,1.06,1.15,1.14,1.11,1.16, 1.16,1.14,1.12,1.13,1.20,1.18,1.21,1.17,1.18,1.18, 1.17,1.21,1.20,1.26,1.20,1.22,1.20,1.19,1.25,1.22, 1.23,1.26,1.29,1.22,1.27,1.26,1.23,1.22,1.23,1.27, 1.25,1.30,1.31,1.25,1.24,1.35,1.33,1.34,1.32,1.28, 1.29,1.31,1.33,1.29,1.34,1.42,1.37,1.31,1.34,1.29, 1.32,1.30,1.37,1.41,1.34,1.41,1.34,1.43,1.41,1.39, 1.34,1.42,1.46,1.38,1.47,1.44,1.39,1.42,1.41,1.44, 1.42,1.46,1.47,1.47,1.42,1.42,1.43,1.46,1.51,1.44, 1.51,1.47,1.43,1.54,1.52,1.52,1.41,1.45,1.57,1.48, 1.50,1.48,1.59,1.50,1.50,1.59,1.59,1.45,1.52,1.42, 1.49,1.52,1.52,1.54,1.53,1.55,1.55,1.55,1.56,1.56, 1.57,1.55,1.56,1.62,1.55,1.55,1.63,1.58,1.56,1.58, 1.67,1.57,1.58,1.56,1.61,1.57,1.63,1.59,1.62,1.70, 1.60,1.69,1.57,1.58,1.65,1.62,1.65,1.67,1.66,1.59, 1.62,1.64,1.66,1.70,1.63,1.67,1.60,1.64,1.66,1.73, 1.70,1.66,1.67,1.72,1.74,1.75,1.67,1.68,1.72,1.71, 1.69,1.74,1.71,1.68,1.80,1.75,1.70,1.80,1.71,1.73, 0.28,0.28,0.28,0.33,0.32,0.33,0.35,0.39,0.36,0.40, 0.41,0.41,0.40,0.45,0.40,0.43,0.45,0.47,0.47,0.49, 0.45,0.51,0.52,0.49,0.50,0.53,0.53,0.54,0.55,0.55, 0.55,0.56,0.54,0.56,0.57,0.59,0.63,0.62,0.60,0.61, 0.64,0.62,0.67,0.62,0.62,0.66,0.64,0.64,0.67,0.68, 0.69,0.71,0.69,0.71,0.70,0.75,0.72,0.71,0.74,0.76, 0.79,0.78,0.72,0.75,0.80,0.78,0.78,0.78,0.79,0.78, 0.79,0.78,0.81,0.82,0.88,0.85,0.77,0.85,0.80,0.83, 0.88,0.84,0.86,0.88,0.86,0.93,0.80,0.88,0.90,0.89, 0.89,0.91,0.88,0.87,0.85,0.93,0.92,0.94,0.94,0.95, 0.94,0.94,0.95,0.97,0.97,0.91,0.96,0.94,0.95,0.94, 1.00,0.93,0.94,0.98,1.00,0.99,1.00,1.00,1.03,1.00, 1.00,1.05,1.02,1.04,1.03,1.05,1.01,1.02,1.01,1.10, 1.06,1.04,1.06,1.10,1.08,1.12,1.08,1.07,1.09,1.10, 1.01,1.08,1.14,1.14,1.11,1.12,1.08,1.13,1.10,1.10, 1.10,1.11,1.12,1.13,1.14,1.12,1.09,1.17,1.14,1.11, 1.11,1.18,1.16,1.19,1.19,1.20,1.13,1.21,1.19,1.19, 1.14,1.19,1.14,1.19,1.21,1.24,1.18,1.19,1.16,1.22, 1.21,1.22,1.20,1.22,1.29,1.19,1.31,1.24,1.30,1.21, 1.24,1.23,1.27,1.33,1.28,1.22,1.27,1.28,1.23,1.25, 1.30,1.26,1.25,1.29,1.31,1.29,1.36,1.31,1.30,1.33, 1.29,1.29,1.31,1.32,1.33,1.32,1.30,1.32,1.32,1.31, 1.35,1.31,1.37,1.32,1.38,1.36,1.37,1.45,1.32,1.38, 1.36,1.43,1.42,1.36,1.39,1.36,1.39,1.38,1.37,1.41, 1.39,1.44,1.46,1.43,1.44,1.41,1.42,1.46,1.44,1.42, 1.39,1.43,1.40,1.40,1.38,1.41,1.43,1.43,1.45,1.43, 1.44,1.42,1.38,1.43,1.45,1.46,1.44,1.49,1.43,1.46, 1.50,1.50,1.49,1.53,1.49,1.46,1.44,1.49,1.53,1.43, 1.51,1.52,1.43,1.50,1.51,1.57,1.54,1.52,1.59,1.54, 0.25,0.27,0.25,0.29,0.28,0.31,0.30,0.32,0.33,0.35, 0.37,0.34,0.40,0.39,0.36,0.37,0.41,0.40,0.48,0.43, 0.41,0.45,0.43,0.47,0.47,0.49,0.47,0.51,0.46,0.47, 0.48,0.51,0.52,0.51,0.54,0.50,0.53,0.51,0.55,0.55, 0.57,0.57,0.57,0.58,0.57,0.58,0.59,0.59,0.60,0.58, 0.59,0.61,0.62,0.63,0.58,0.66,0.62,0.63,0.63,0.64, 0.65,0.65,0.66,0.62,0.63,0.68,0.67,0.66,0.66,0.69, 0.68,0.68,0.68,0.69,0.68,0.69,0.72,0.73,0.73,0.76, 0.75,0.72,0.75,0.74,0.75,0.74,0.77,0.73,0.78,0.78, 0.79,0.75,0.77,0.81,0.75,0.79,0.82,0.84,0.82,0.80, 0.81,0.85,0.81,0.81,0.82,0.85,0.84,0.87,0.80,0.84, 0.86,0.86,0.85,0.87,0.88,0.86,0.90,0.85,0.88,0.88, 0.86,0.89,0.88,0.88,0.88,0.95,0.90,0.89,0.90,0.94, 0.97,0.92,0.91,0.94,0.92,0.94,0.89,0.91,0.93,0.97, 0.94,0.97,0.95,1.03,0.93,0.93,0.92,0.96,0.95,0.97, 0.95,0.99,0.96,0.99,1.00,0.99,1.01,0.95,1.06,0.96, 1.04,1.03,1.05,1.01,1.04,1.05,1.00,1.02,1.07,1.06, 1.02,1.06,1.00,1.02,1.04,1.03,1.04,1.01,1.07,1.07, 1.04,1.03,1.09,1.04,1.07,1.10,1.04,1.12,1.03,1.09, 1.13,1.11,1.12,1.11,1.08,1.09,1.13,1.06,1.11,1.10, 1.08,1.07,1.14,1.12,1.21,1.13,1.12,1.14,1.09,1.10, 1.14,1.16,1.17,1.18,1.16,1.15,1.15,1.20,1.13,1.19, 1.14,1.13,1.18,1.18,1.21,1.20,1.16,1.22,1.18,1.15, 1.22,1.21,1.21,1.19,1.19,1.24,1.24,1.23,1.23,1.27, 1.20,1.22,1.26,1.19,1.27,1.20,1.25,1.20,1.25,1.22, 1.22,1.27,1.27,1.26,1.22,1.22,1.26,1.31,1.27,1.30, 1.29,1.24,1.31,1.25,1.32,1.27,1.23,1.23,1.32,1.31, 1.27,1.25,1.29,1.30,1.32,1.33,1.26,1.33,1.32,1.28, 1.33,1.27,1.34,1.31,1.30,1.35,1.32,1.32,1.37,1.36, 0.23,0.22,0.24,0.25,0.25,0.26,0.25,0.29,0.28,0.30, 0.32,0.33,0.33,0.32,0.30,0.34,0.34,0.36,0.35,0.35, 0.35,0.37,0.38,0.36,0.39,0.38,0.41,0.43,0.38,0.41, 0.43,0.44,0.43,0.46,0.46,0.45,0.46,0.44,0.48,0.49, 0.48,0.44,0.50,0.49,0.48,0.51,0.49,0.49,0.53,0.53, 0.54,0.55,0.50,0.54,0.55,0.58,0.54,0.57,0.58,0.54, 0.55,0.59,0.59,0.57,0.58,0.57,0.55,0.58,0.58,0.63, 0.59,0.64,0.60,0.60,0.62,0.67,0.62,0.63,0.64,0.64, 0.67,0.67,0.66,0.63,0.67,0.67,0.70,0.68,0.67,0.71, 0.65,0.68,0.67,0.66,0.73,0.70,0.72,0.66,0.73,0.69, 0.68,0.71,0.77,0.72,0.69,0.74,0.71,0.73,0.74,0.73, 0.74,0.72,0.76,0.77,0.75,0.79,0.75,0.74,0.80,0.76, 0.77,0.76,0.72,0.78,0.75,0.77,0.83,0.81,0.85,0.83, 0.81,0.80,0.78,0.84,0.82,0.80,0.82,0.83,0.81,0.79, 0.84,0.83,0.86,0.85,0.87,0.84,0.85,0.84,0.88,0.86, 0.85,0.84,0.86,0.93,0.89,0.86,0.90,0.87,0.91,0.89, 0.93,0.88,0.85,0.89,0.91,0.91,0.88,0.92,0.87,0.93, 0.88,0.96,0.89,0.91,0.90,0.91,0.92,0.94,0.90,0.94, 0.95,0.97,0.95,0.98,0.94,0.95,0.94,0.95,0.95,0.91, 0.95,0.94,0.93,0.96,0.96,0.95,1.01,0.99,0.97,0.94, 0.98,1.00,0.94,1.02,0.99,0.95,1.00,1.02,0.97,0.95, 1.00,0.98,0.97,1.05,1.04,1.01,1.01,0.99,1.04,1.03, 1.02,1.00,1.09,1.00,0.99,1.02,1.02,1.02,1.04,1.01, 1.04,1.06,1.03,1.08,1.04,1.03,1.07,1.06,1.05,1.09, 1.11,1.07,1.08,1.03,1.11,1.06,1.08,1.06,1.09,1.10, 1.11,1.07,1.11,1.10,1.06,1.11,1.10,1.13,1.04,1.09, 1.10,1.10,1.11,1.10,1.10,1.18,1.09,1.09,1.10,1.12, 1.17,1.13,1.17,1.10,1.13,1.14,1.16,1.13,1.09,1.15, 1.15,1.20,1.15,1.14,1.17,1.17,1.15,1.19,1.15,1.20, 0.19,0.20,0.21,0.19,0.22,0.22,0.24,0.25,0.23,0.27, 0.26,0.27,0.28,0.28,0.28,0.29,0.29,0.34,0.30,0.32, 0.33,0.34,0.33,0.34,0.33,0.35,0.37,0.39,0.36,0.35, 0.38,0.34,0.37,0.39,0.38,0.40,0.39,0.42,0.43,0.42, 0.39,0.43,0.44,0.41,0.45,0.44,0.40,0.45,0.45,0.46, 0.44,0.44,0.47,0.47,0.46,0.49,0.49,0.49,0.51,0.46, 0.43,0.53,0.49,0.47,0.52,0.50,0.55,0.54,0.51,0.53, 0.52,0.53,0.54,0.53,0.52,0.54,0.54,0.53,0.54,0.58, 0.58,0.55,0.54,0.57,0.55,0.60,0.57,0.59,0.56,0.59, 0.57,0.56,0.55,0.62,0.58,0.58,0.61,0.60,0.65,0.60, 0.61,0.64,0.62,0.64,0.64,0.62,0.66,0.63,0.59,0.63, 0.64,0.67,0.64,0.64,0.66,0.65,0.67,0.68,0.69,0.65, 0.64,0.74,0.67,0.66,0.63,0.67,0.69,0.69,0.69,0.64, 0.71,0.73,0.67,0.72,0.72,0.67,0.72,0.73,0.71,0.71, 0.69,0.73,0.77,0.73,0.73,0.72,0.75,0.71,0.75,0.72, 0.78,0.72,0.74,0.77,0.79,0.75,0.79,0.77,0.77,0.78, 0.79,0.76,0.76,0.77,0.76,0.77,0.79,0.83,0.78,0.78, 0.81,0.81,0.79,0.84,0.77,0.81,0.78,0.83,0.85,0.82, 0.79,0.83,0.81,0.80,0.80,0.87,0.85,0.88,0.83,0.84, 0.81,0.80,0.84,0.86,0.83,0.84,0.86,0.92,0.84,0.90, 0.80,0.83,0.87,0.85,0.84,0.84,0.93,0.89,0.87,0.88, 0.90,0.86,0.93,0.85,0.87,0.83,0.90,0.89,0.88,0.94, 0.89,0.94,0.90,0.90,0.92,0.91,0.91,0.89,0.95,0.94, 0.88,0.94,0.89,0.94,0.90,0.91,0.91,0.89,0.96,0.94, 0.96,0.98,0.92,0.93,0.93,0.96,1.00,0.95,0.95,0.94, 1.02,0.97,1.00,0.95,0.98,0.97,0.92,0.93,0.96,0.95, 0.97,0.94,0.97,0.98,0.96,0.97,0.98,0.99,0.99,1.02, 1.00,1.03,0.94,1.00,0.99,0.95,1.00,0.98,1.01,0.95, 0.98,0.98,0.99,0.98,0.99,1.05,0.98,1.02,1.03,1.02, 1.10,1.18,1.22,1.24,1.30,1.39,1.38,1.40,1.38,1.43, 1.57,1.53,1.63,1.65,1.63,1.75,1.78,1.78,1.85,1.87, 1.85,1.97,2.01,1.96,1.93,2.00,2.03,2.08,2.16,2.16, 2.21,2.20,2.21,2.20,2.34,2.31,2.28,2.42,2.33,2.39, 2.44,2.41,2.45,2.48,2.54,2.50,2.58,2.58,2.57,2.61, 2.60,2.67,2.71,2.79,2.73,2.81,2.83,2.82,2.84,2.78, 2.81,2.90,2.92,2.84,2.99,3.02,2.96,2.98,2.93,3.05, 3.02,3.17,3.08,3.22,3.07,3.14,3.12,3.20,3.26,3.19, 3.18,3.16,3.43,3.24,3.34,3.31,3.37,3.45,3.36,3.33, 3.53,3.43,3.49,3.65,3.42,3.55,3.71,3.43,3.63,3.61, 3.61,3.58,3.61,3.53,3.71,3.70,3.59,3.68,3.73,3.75, 3.59,3.64,3.84,3.80,3.73,3.95,3.87,3.77,3.76,3.95, 3.91,3.95,4.02,3.93,4.05,3.85,3.88,4.09,3.98,3.87, 4.09,3.94,4.05,4.13,4.01,4.09,4.10,4.24,4.13,4.24, 4.15,4.19,4.15,4.36,4.31,4.05,4.22,4.43,4.07,4.29, 4.31,4.37,4.42,4.38,4.41,4.35,4.48,4.54,4.47,4.33, 4.49,4.34,4.33,4.43,4.37,4.55,4.45,4.44,4.49,4.51, 4.66,4.59,4.63,4.63,4.66,4.79,4.58,4.54,4.69,4.69, 4.76,4.74,4.71,4.77,4.87,4.83,4.94,4.90,4.89,4.83, 4.89,4.96,4.79,4.99,4.84,4.89,5.05,4.79,4.95,5.11, 5.27,5.01,5.02,5.00,5.02,5.13,4.97,5.05,5.00,5.01, 5.01,5.16,5.02,5.12,5.28,5.14,5.06,5.09,5.08,5.20, 5.05,5.05,5.36,5.36,5.15,5.27,5.26,5.26,5.47,5.29, 5.47,5.26,5.27,5.29,5.42,5.26,5.51,5.39,5.29,5.40, 5.55,5.51,5.70,5.34,5.50,5.58,5.54,5.34,5.66,5.50, 5.57,5.43,5.48,5.55,5.70,5.55,5.44,5.42,5.58,5.65, 5.41,5.50,5.48,5.69,5.53,5.61,5.86,5.49,5.76,5.93, 5.54,5.51,5.83,5.84,5.89,5.69,5.66,5.61,5.90,5.74, 5.99,5.91,5.94,5.80,5.63,5.86,5.89,6.03,5.99,6.11, 0.98,1.08,1.07,1.16,1.15,1.23,1.28,1.31,1.34,1.43, 1.45,1.48,1.43,1.44,1.51,1.55,1.61,1.62,1.68,1.70, 1.71,1.76,1.78,1.85,1.89,1.83,1.91,1.88,1.93,1.93, 1.99,2.05,2.02,2.04,2.02,2.01,2.12,2.13,2.11,2.15, 2.21,2.26,2.28,2.20,2.29,2.31,2.36,2.42,2.39,2.42, 2.52,2.49,2.57,2.36,2.60,2.42,2.50,2.53,2.53,2.58, 2.53,2.66,2.68,2.65,2.75,2.83,2.74,2.73,2.74,2.81, 2.68,2.83,2.88,2.94,2.77,2.81,2.75,2.93,3.02,2.92, 2.96,2.96,2.93,2.99,3.17,3.03,3.16,3.21,3.16,3.26, 3.06,2.99,3.13,3.12,3.19,3.24,3.24,3.30,3.24,3.27, 3.28,3.26,3.25,3.30,3.27,3.40,3.38,3.39,3.38,3.49, 3.38,3.57,3.37,3.45,3.62,3.46,3.57,3.59,3.56,3.46, 3.47,3.63,3.57,3.66,3.57,3.60,3.68,3.62,3.53,3.69, 3.77,3.60,3.84,3.80,3.72,3.56,3.79,3.91,3.74,3.67, 3.94,3.87,3.97,3.78,3.94,3.95,3.80,3.82,4.05,3.84, 3.88,4.07,3.87,3.88,3.97,4.24,4.01,4.07,4.01,3.91, 4.21,4.06,4.03,4.06,4.26,4.23,4.10,4.19,4.08,4.34, 4.17,4.24,4.19,4.00,4.23,4.32,4.16,4.22,4.09,4.24, 4.24,4.38,4.49,4.46,4.27,4.32,4.38,4.42,4.41,4.22, 4.38,4.44,4.58,4.51,4.36,4.42,4.44,4.64,4.53,4.57, 4.44,4.41,4.60,4.60,4.62,4.78,4.63,4.64,4.57,4.62, 4.69,4.74,4.63,4.83,4.57,4.66,4.67,4.50,4.76,4.68, 4.82,4.68,4.69,4.71,4.89,4.72,4.79,4.71,4.70,4.96, 4.85,4.81,4.81,4.93,5.07,4.75,4.81,5.07,4.84,4.72, 4.99,5.00,4.97,4.85,4.99,4.98,5.02,4.98,5.07,4.91, 5.01,5.15,5.08,5.10,5.19,5.33,5.13,5.10,5.29,5.19, 5.06,5.12,5.06,5.01,5.11,5.24,5.20,5.16,5.14,5.20, 5.39,5.55,5.04,5.24,5.23,5.20,5.35,5.09,5.31,5.34, 5.39,5.16,5.33,5.46,5.27,5.44,5.40,5.51,5.50,5.29, 0.95,0.94,0.97,1.04,1.08,1.12,1.18,1.16,1.23,1.22, 1.31,1.32,1.32,1.36,1.44,1.47,1.42,1.50,1.52,1.58, 1.54,1.56,1.64,1.65,1.72,1.62,1.71,1.73,1.78,1.75, 1.83,1.83,1.85,1.84,1.88,1.92,1.86,1.92,1.96,1.94, 2.03,2.09,2.10,1.98,2.14,2.10,2.15,2.17,2.21,2.18, 2.22,2.26,2.22,2.28,2.30,2.34,2.28,2.20,2.21,2.44, 2.27,2.43,2.38,2.40,2.41,2.48,2.47,2.37,2.61,2.49, 2.60,2.56,2.56,2.63,2.53,2.69,2.65,2.65,2.61,2.68, 2.75,2.65,2.69,2.74,2.82,2.77,2.66,2.80,2.72,2.76, 2.75,2.80,2.88,2.86,2.83,2.91,2.86,2.92,2.94,2.95, 2.96,3.10,3.09,3.12,3.01,2.89,3.08,3.00,3.01,3.12, 3.11,3.04,3.12,3.12,3.19,3.01,3.30,3.08,3.12,3.21, 3.23,3.19,3.27,3.18,3.27,3.25,3.28,3.38,3.29,3.32, 3.37,3.30,3.46,3.43,3.39,3.34,3.40,3.25,3.44,3.40, 3.47,3.48,3.51,3.41,3.48,3.48,3.65,3.60,3.53,3.55, 3.55,3.48,3.65,3.58,3.66,3.56,3.57,3.62,3.63,3.74, 3.67,3.79,3.67,3.58,3.68,3.72,3.91,3.76,3.88,3.74, 3.76,3.89,3.81,3.76,3.86,3.99,3.85,3.89,3.78,3.91, 3.86,3.85,3.94,3.87,4.11,3.93,3.96,3.89,3.94,3.85, 4.05,4.08,4.05,4.05,4.01,3.97,4.14,4.08,4.12,4.04, 4.14,4.08,4.38,3.91,4.18,4.12,4.22,4.21,4.34,4.36, 4.33,4.33,4.24,4.09,4.26,4.24,4.27,4.27,4.19,4.48, 4.42,4.21,4.48,4.39,4.20,4.32,4.49,4.32,4.66,4.25, 4.31,4.29,4.57,4.44,4.44,4.57,4.41,4.50,4.46,4.38, 4.45,4.46,4.38,4.50,4.53,4.63,4.60,4.59,4.58,4.64, 4.71,4.72,4.55,4.57,4.72,4.60,4.72,4.77,4.77,4.51, 4.62,4.68,4.59,4.79,4.48,4.65,4.50,4.63,4.59,4.64, 4.73,4.84,4.65,4.79,4.84,4.87,4.88,4.99,4.72,4.85, 4.77,4.95,4.86,4.90,4.76,4.92,4.94,4.73,4.90,4.85, 0.86,0.90,0.91,0.90,0.96,0.99,1.02,1.07,1.07,1.10, 1.16,1.21,1.20,1.19,1.25,1.31,1.30,1.30,1.35,1.36, 1.45,1.38,1.45,1.48,1.51,1.54,1.55,1.61,1.61,1.56, 1.63,1.61,1.68,1.72,1.71,1.76,1.71,1.80,1.83,1.79, 1.79,1.77,1.87,1.78,1.81,1.98,1.86,2.00,1.92,2.01, 2.03,1.90,2.07,2.10,2.07,2.15,2.02,2.03,2.02,2.04, 2.14,2.17,2.16,2.08,2.20,2.27,2.28,2.28,2.29,2.30, 2.33,2.31,2.31,2.37,2.44,2.31,2.40,2.40,2.50,2.35, 2.48,2.40,2.45,2.43,2.43,2.55,2.43,2.58,2.52,2.57, 2.56,2.62,2.57,2.49,2.72,2.63,2.62,2.69,2.68,2.61, 2.64,2.67,2.69,2.71,2.74,2.77,2.70,2.74,2.76,2.82, 2.85,2.84,2.82,2.86,2.88,2.91,2.87,2.81,2.91,2.79, 2.90,2.88,2.94,2.93,2.97,2.99,2.89,2.93,2.94,2.95, 3.08,2.98,3.09,3.10,2.88,3.15,3.11,3.19,3.15,3.15, 3.11,3.21,3.23,3.20,3.15,3.23,3.11,3.14,3.29,3.16, 3.35,3.21,3.21,3.36,3.28,3.36,3.29,3.30,3.29,3.41, 3.17,3.36,3.35,3.21,3.34,3.41,3.31,3.43,3.42,3.46, 3.43,3.52,3.51,3.35,3.48,3.47,3.43,3.54,3.47,3.43, 3.53,3.38,3.48,3.59,3.51,3.59,3.75,3.57,3.62,3.62, 3.60,3.61,3.53,3.60,3.62,3.68,3.55,3.62,3.66,3.54, 3.65,3.76,3.68,3.64,3.81,3.68,3.67,3.75,3.65,3.82, 3.84,3.89,3.85,3.64,3.93,3.88,3.93,3.90,3.74,3.83, 4.09,3.80,3.96,3.76,3.94,3.88,3.74,3.98,3.94,3.78, 3.89,3.92,3.96,3.99,3.94,4.06,3.99,4.12,4.12,4.15, 4.14,4.01,4.16,4.16,3.99,4.21,4.09,4.28,4.02,4.29, 4.07,4.28,4.25,4.09,4.18,4.19,4.14,4.22,4.15,4.35, 4.13,4.21,4.27,4.20,4.21,4.21,4.32,4.35,4.23,4.18, 4.27,4.31,4.13,4.32,4.26,4.34,4.25,4.30,4.13,4.36, 4.37,4.26,4.53,4.44,4.37,4.29,4.38,4.33,4.46,4.49, 0.75,0.78,0.84,0.83,0.88,0.91,0.91,0.97,0.97,1.00, 1.05,1.07,1.08,1.13,1.12,1.16,1.19,1.21,1.21,1.24, 1.30,1.27,1.27,1.39,1.41,1.41,1.35,1.39,1.46,1.48, 1.41,1.48,1.44,1.51,1.60,1.59,1.56,1.56,1.64,1.62, 1.58,1.60,1.66,1.75,1.67,1.72,1.75,1.66,1.83,1.73, 1.82,1.86,1.89,1.78,1.75,1.80,1.85,1.89,1.86,1.95, 1.92,1.96,1.96,1.97,1.89,2.08,2.02,2.04,2.02,2.03, 2.10,2.07,2.08,2.05,2.13,2.14,2.15,2.13,2.14,2.12, 2.20,2.27,2.23,2.16,2.25,2.26,2.22,2.22,2.17,2.32, 2.35,2.34,2.27,2.37,2.32,2.38,2.40,2.42,2.31,2.31, 2.45,2.42,2.40,2.40,2.56,2.54,2.48,2.47,2.56,2.55, 2.48,2.59,2.49,2.56,2.56,2.57,2.55,2.54,2.62,2.63, 2.60,2.63,2.59,2.53,2.68,2.68,2.63,2.65,2.55,2.70, 2.78,2.77,2.77,2.64,2.78,2.76,2.74,2.63,2.84,2.92, 2.77,2.82,2.91,2.89,2.85,2.86,2.81,2.83,2.94,3.02, 2.82,2.91,2.90,2.99,3.00,2.90,2.99,2.96,3.07,2.92, 3.05,3.07,3.01,3.11,3.12,3.06,3.05,3.00,3.03,3.07, 3.04,3.07,3.09,3.07,3.19,3.12,3.26,3.20,3.12,3.20, 3.08,3.22,3.26,3.21,3.20,3.18,3.10,3.28,3.17,3.29, 3.32,3.33,3.22,3.27,3.38,3.11,3.12,3.31,3.28,3.35, 3.39,3.40,3.32,3.27,3.36,3.39,3.21,3.45,3.38,3.33, 3.43,3.29,3.33,3.38,3.44,3.27,3.42,3.46,3.42,3.43, 3.42,3.53,3.44,3.40,3.44,3.43,3.47,3.52,3.61,3.34, 3.57,3.63,3.52,3.58,3.74,3.80,3.57,3.59,3.63,3.73, 3.68,3.70,3.53,3.64,3.58,3.73,3.77,3.75,3.66,3.73, 3.72,3.77,3.74,3.56,3.78,3.67,3.77,3.73,3.83,3.66, 3.87,3.94,3.76,3.90,3.78,3.54,3.76,3.94,3.81,3.79, 3.96,3.81,3.95,3.95,3.82,3.82,3.70,3.79,3.91,3.87, 3.81,3.86,3.84,4.30,3.87,3.98,3.95,3.93,3.89,3.83, 0.69,0.68,0.71,0.78,0.74,0.80,0.82,0.86,0.85,0.90, 0.90,0.99,0.97,1.02,1.00,1.03,1.03,1.05,1.08,1.13, 1.18,1.12,1.15,1.22,1.20,1.19,1.27,1.26,1.25,1.28, 1.30,1.33,1.35,1.34,1.35,1.40,1.38,1.41,1.43,1.42, 1.42,1.43,1.48,1.54,1.58,1.58,1.60,1.56,1.54,1.58, 1.59,1.61,1.63,1.63,1.61,1.60,1.72,1.65,1.72,1.69, 1.72,1.71,1.77,1.75,1.73,1.77,1.76,1.77,1.81,1.78, 1.84,1.85,1.90,1.94,1.92,1.87,1.85,1.95,1.96,1.93, 1.88,1.97,1.99,2.01,2.01,2.02,1.96,2.02,2.12,2.01, 2.06,2.05,2.06,2.16,2.16,2.14,1.97,2.05,2.12,2.19, 2.16,2.17,2.21,2.17,2.15,2.12,2.23,2.25,2.17,2.23, 2.27,2.25,2.22,2.16,2.21,2.26,2.27,2.35,2.34,2.34, 2.36,2.27,2.40,2.36,2.33,2.41,2.44,2.42,2.52,2.48, 2.45,2.39,2.41,2.36,2.46,2.51,2.44,2.58,2.51,2.48, 2.54,2.52,2.47,2.61,2.45,2.62,2.50,2.64,2.67,2.67, 2.58,2.59,2.69,2.63,2.58,2.61,2.56,2.64,2.62,2.63, 2.65,2.65,2.67,2.63,2.62,2.78,2.70,2.76,2.79,2.74, 2.74,2.74,2.83,2.85,2.68,2.74,2.69,2.77,2.82,2.84, 2.90,2.75,2.80,2.96,2.87,2.81,2.92,2.88,2.91,2.85, 2.87,2.92,3.01,2.90,2.89,2.95,2.87,2.97,2.93,3.03, 2.96,2.95,2.98,2.93,3.10,2.94,3.00,3.05,3.12,3.00, 3.14,3.06,3.02,3.05,2.99,3.05,3.05,3.13,3.16,3.05, 3.05,3.16,3.20,3.08,3.17,2.99,3.21,3.12,3.26,3.10, 3.29,3.18,3.15,3.10,3.22,3.10,3.26,3.31,3.19,3.23, 3.29,3.27,3.35,3.33,3.37,3.19,3.35,3.35,3.22,3.27, 3.27,3.34,3.27,3.31,3.23,3.41,3.36,3.39,3.30,3.45, 3.27,3.29,3.48,3.36,3.33,3.47,3.39,3.31,3.41,3.50, 3.34,3.53,3.43,3.40,3.30,3.33,3.29,3.39,3.52,3.53, 3.43,3.50,3.48,3.55,3.56,3.43,3.62,3.58,3.52,3.49, 0.57,0.60,0.65,0.64,0.69,0.73,0.75,0.76,0.78,0.82, 0.82,0.83,0.85,0.92,0.91,0.97,0.93,0.95,1.00,0.99, 1.05,1.01,1.00,1.09,1.11,1.11,1.11,1.10,1.12,1.16, 1.17,1.18,1.23,1.24,1.28,1.16,1.19,1.25,1.26,1.33, 1.30,1.30,1.39,1.38,1.37,1.35,1.34,1.34,1.45,1.38, 1.42,1.42,1.46,1.37,1.48,1.48,1.47,1.43,1.45,1.50, 1.44,1.59,1.48,1.61,1.60,1.58,1.66,1.62,1.63,1.62, 1.67,1.59,1.64,1.70,1.61,1.67,1.69,1.77,1.67,1.80, 1.74,1.80,1.71,1.71,1.75,1.78,1.70,1.81,1.84,1.78, 1.78,1.85,1.82,1.88,1.86,1.98,1.86,1.87,1.94,1.88, 1.84,1.94,1.86,1.90,1.89,1.95,1.99,2.02,2.03,1.97, 1.99,1.95,1.96,1.99,2.03,2.02,2.02,2.12,2.10,2.05, 2.11,2.13,2.11,2.05,2.17,2.16,2.09,2.13,2.13,2.11, 2.12,2.25,2.17,2.17,2.21,2.32,2.15,2.19,2.28,2.20, 2.13,2.22,2.24,2.25,2.22,2.26,2.21,2.37,2.37,2.35, 2.36,2.39,2.41,2.33,2.35,2.36,2.47,2.32,2.40,2.47, 2.39,2.32,2.43,2.47,2.38,2.41,2.35,2.40,2.46,2.53, 2.39,2.49,2.44,2.42,2.52,2.54,2.53,2.46,2.55,2.49, 2.58,2.53,2.56,2.47,2.55,2.43,2.47,2.54,2.62,2.56, 2.58,2.51,2.59,2.68,2.71,2.64,2.54,2.67,2.64,2.58, 2.59,2.67,2.63,2.62,2.75,2.65,2.63,2.77,2.72,2.86, 2.83,2.79,2.70,2.81,2.72,2.71,2.79,2.75,2.77,2.73, 2.80,2.69,2.78,2.82,2.86,2.85,2.83,2.86,2.92,2.74, 2.74,2.86,2.78,2.83,2.84,2.93,2.87,2.85,2.83,2.77, 2.99,2.88,2.86,2.76,2.89,3.02,2.79,2.97,3.00,2.96, 2.74,3.04,2.94,2.93,2.96,3.10,3.14,2.97,2.80,3.03, 2.92,2.91,3.05,3.07,3.02,2.93,2.95,3.02,3.23,3.18, 3.00,3.09,3.00,3.12,2.93,3.09,3.08,3.13,3.00,3.10, 3.16,3.18,3.16,2.99,3.15,3.16,3.13,3.12,3.20,3.21, 0.52,0.54,0.57,0.61,0.66,0.65,0.67,0.68,0.71,0.76, 0.78,0.77,0.76,0.79,0.81,0.83,0.82,0.85,0.86,0.84, 0.87,0.87,0.95,0.95,0.96,1.04,0.95,0.98,1.02,1.04, 1.00,1.00,1.08,1.06,1.06,1.08,1.09,1.12,1.17,1.18, 1.17,1.18,1.15,1.23,1.19,1.24,1.20,1.25,1.28,1.23, 1.29,1.28,1.23,1.32,1.34,1.29,1.30,1.38,1.35,1.37, 1.38,1.36,1.44,1.34,1.39,1.42,1.51,1.46,1.48,1.49, 1.45,1.43,1.44,1.47,1.53,1.49,1.49,1.50,1.49,1.47, 1.52,1.48,1.55,1.68,1.66,1.59,1.55,1.59,1.61,1.59, 1.66,1.66,1.63,1.62,1.71,1.67,1.78,1.74,1.70,1.71, 1.69,1.73,1.74,1.75,1.79,1.68,1.80,1.78,1.76,1.83, 1.81,1.80,1.77,1.81,1.78,1.77,1.81,1.77,1.86,1.92, 1.82,1.92,1.86,1.79,1.89,1.88,1.92,1.93,1.90,1.85, 1.94,1.90,1.93,2.01,1.98,1.97,1.97,1.96,1.95,1.93, 1.91,2.02,1.98,1.99,2.09,2.01,1.96,2.02,2.00,2.07, 2.08,2.10,2.08,2.05,2.09,2.16,2.06,2.13,2.10,2.07, 2.17,2.06,2.07,2.12,2.16,2.12,2.19,2.12,2.19,2.15, 2.12,2.24,2.18,2.16,2.17,2.22,2.13,2.26,2.19,2.21, 2.24,2.27,2.22,2.24,2.19,2.23,2.30,2.35,2.24,2.24, 2.29,2.37,2.40,2.37,2.19,2.27,2.32,2.39,2.28,2.20, 2.37,2.33,2.28,2.37,2.47,2.30,2.40,2.37,2.42,2.44, 2.34,2.48,2.38,2.38,2.44,2.41,2.49,2.40,2.46,2.43, 2.46,2.52,2.39,2.49,2.57,2.62,2.43,2.48,2.61,2.55, 2.51,2.48,2.51,2.37,2.52,2.52,2.52,2.46,2.66,2.64, 2.54,2.54,2.62,2.50,2.66,2.58,2.52,2.70,2.60,2.59, 2.62,2.63,2.71,2.59,2.70,2.72,2.65,2.67,2.59,2.67, 2.68,2.64,2.67,2.70,2.77,2.65,2.71,2.71,2.73,2.67, 2.59,2.76,2.69,2.73,2.69,2.78,2.84,2.75,2.67,2.64, 2.80,2.93,2.80,2.78,2.78,2.85,2.81,2.77,2.85,2.79, 0.45,0.45,0.49,0.52,0.54,0.56,0.57,0.60,0.60,0.65, 0.65,0.69,0.68,0.70,0.71,0.71,0.74,0.76,0.77,0.76, 0.81,0.82,0.82,0.80,0.85,0.87,0.92,0.86,0.91,0.86, 0.94,0.90,0.94,0.98,0.94,0.97,1.00,1.01,1.02,1.06, 1.01,1.01,1.04,1.07,1.06,1.08,1.08,1.15,1.06,1.14, 1.08,1.16,1.16,1.15,1.14,1.16,1.14,1.11,1.18,1.13, 1.19,1.21,1.21,1.25,1.25,1.22,1.24,1.27,1.30,1.28, 1.33,1.28,1.34,1.36,1.35,1.30,1.35,1.28,1.35,1.35, 1.38,1.36,1.40,1.39,1.40,1.45,1.39,1.42,1.43,1.44, 1.47,1.40,1.43,1.53,1.52,1.53,1.46,1.46,1.53,1.54, 1.52,1.60,1.56,1.53,1.56,1.54,1.58,1.63,1.48,1.56, 1.54,1.55,1.68,1.61,1.59,1.61,1.54,1.58,1.65,1.59, 1.64,1.68,1.68,1.62,1.71,1.67,1.69,1.65,1.70,1.62, 1.69,1.75,1.67,1.73,1.74,1.73,1.71,1.76,1.77,1.73, 1.74,1.72,1.75,1.82,1.81,1.78,1.82,1.85,1.79,1.84, 1.86,1.83,1.85,1.77,1.84,1.89,1.93,1.93,1.87,1.99, 1.94,1.90,1.96,1.94,1.87,1.86,1.86,1.89,1.88,1.89, 1.89,1.92,1.94,2.03,1.87,1.96,1.93,1.96,1.97,2.00, 2.01,2.00,1.98,2.03,1.95,2.02,1.95,2.01,2.00,2.00, 2.03,2.05,2.02,2.07,2.10,2.10,2.08,2.08,2.12,2.09, 2.15,2.04,2.08,2.16,2.12,2.01,2.10,2.09,2.12,2.18, 2.12,2.17,2.13,2.18,2.09,2.20,2.18,2.15,2.18,2.16, 2.25,2.18,2.26,2.24,2.25,2.12,2.18,2.28,2.23,2.27, 2.22,2.26,2.23,2.19,2.21,2.25,2.23,2.25,2.29,2.18, 2.34,2.26,2.31,2.19,2.19,2.30,2.36,2.21,2.31,2.25, 2.40,2.32,2.30,2.31,2.37,2.24,2.40,2.33,2.38,2.38, 2.48,2.53,2.30,2.38,2.46,2.37,2.32,2.42,2.46,2.37, 2.42,2.46,2.41,2.36,2.46,2.45,2.35,2.42,2.44,2.52, 2.49,2.39,2.48,2.38,2.47,2.41,2.46,2.61,2.47,2.50, 0.39,0.44,0.43,0.48,0.47,0.49,0.50,0.51,0.53,0.56, 0.55,0.60,0.60,0.61,0.65,0.65,0.66,0.66,0.67,0.70, 0.72,0.70,0.71,0.75,0.72,0.71,0.73,0.79,0.78,0.77, 0.77,0.80,0.83,0.81,0.84,0.84,0.88,0.88,0.89,0.89, 0.91,0.93,0.94,0.95,0.96,0.96,0.93,0.92,0.98,0.93, 1.02,0.99,1.03,1.02,1.02,1.03,0.98,1.03,1.03,1.04, 0.99,1.06,1.08,1.08,1.09,1.12,1.14,1.17,1.10,1.19, 1.14,1.13,1.15,1.15,1.15,1.17,1.15,1.16,1.19,1.17, 1.20,1.24,1.22,1.25,1.23,1.23,1.22,1.22,1.28,1.30, 1.28,1.27,1.17,1.30,1.29,1.32,1.31,1.38,1.30,1.30, 1.37,1.33,1.38,1.36,1.36,1.32,1.37,1.44,1.39,1.39, 1.37,1.43,1.37,1.43,1.43,1.39,1.44,1.39,1.51,1.54, 1.39,1.50,1.48,1.43,1.47,1.48,1.45,1.53,1.52,1.45, 1.44,1.49,1.52,1.50,1.56,1.54,1.56,1.53,1.61,1.54, 1.62,1.57,1.57,1.56,1.61,1.61,1.56,1.56,1.66,1.62, 1.57,1.62,1.62,1.58,1.59,1.59,1.63,1.65,1.63,1.70, 1.69,1.65,1.65,1.69,1.79,1.65,1.68,1.73,1.68,1.73, 1.67,1.72,1.73,1.66,1.75,1.75,1.73,1.72,1.77,1.77, 1.71,1.71,1.70,1.80,1.83,1.73,1.79,1.78,1.83,1.78, 1.79,1.85,1.79,1.74,1.77,1.75,1.82,1.80,1.80,1.79, 1.86,1.92,1.94,1.80,1.85,1.84,1.88,1.98,1.90,1.87, 1.85,1.97,1.91,1.84,1.79,1.82,1.92,1.89,1.92,1.85, 1.94,1.90,1.95,1.89,1.95,1.94,1.93,2.02,2.00,1.92, 1.96,1.93,1.96,1.94,1.91,1.95,2.01,1.95,2.02,2.04, 2.00,2.04,1.97,1.99,2.02,2.04,2.06,1.93,1.98,2.10, 2.08,2.07,2.10,2.03,2.05,2.04,2.17,2.09,2.04,2.09, 2.12,2.07,2.11,2.20,2.12,2.09,2.20,2.08,2.04,2.10, 2.06,2.08,2.09,2.14,2.11,2.16,2.23,2.18,2.22,2.08, 2.14,2.14,2.14,2.14,2.16,2.15,2.23,2.25,2.18,2.19, 0.36,0.39,0.40,0.43,0.44,0.44,0.46,0.49,0.48,0.51, 0.52,0.50,0.55,0.56,0.57,0.54,0.60,0.63,0.62,0.62, 0.62,0.62,0.64,0.67,0.67,0.69,0.66,0.73,0.69,0.68, 0.70,0.68,0.73,0.74,0.73,0.80,0.73,0.78,0.78,0.77, 0.79,0.84,0.81,0.83,0.85,0.87,0.84,0.82,0.81,0.86, 0.83,0.90,0.87,0.89,0.88,0.94,0.88,0.92,0.89,0.90, 0.94,0.97,0.94,0.97,0.95,0.98,0.99,1.03,1.01,1.00, 0.99,1.02,1.09,1.01,1.00,1.00,1.04,1.06,1.02,1.10, 1.08,1.12,1.07,1.07,1.09,1.12,1.10,1.09,1.14,1.14, 1.07,1.12,1.17,1.13,1.16,1.19,1.17,1.16,1.20,1.22, 1.19,1.24,1.23,1.22,1.25,1.18,1.21,1.23,1.23,1.23, 1.18,1.19,1.24,1.22,1.17,1.27,1.22,1.33,1.30,1.30, 1.28,1.31,1.30,1.28,1.26,1.34,1.31,1.22,1.31,1.31, 1.31,1.27,1.38,1.36,1.33,1.39,1.33,1.38,1.37,1.35, 1.40,1.41,1.40,1.47,1.47,1.39,1.45,1.43,1.41,1.43, 1.41,1.40,1.40,1.39,1.44,1.43,1.43,1.44,1.47,1.44, 1.45,1.47,1.47,1.44,1.48,1.52,1.44,1.52,1.52,1.53, 1.48,1.51,1.51,1.52,1.48,1.54,1.48,1.53,1.50,1.58, 1.52,1.58,1.55,1.59,1.54,1.58,1.56,1.61,1.60,1.56, 1.63,1.59,1.64,1.63,1.55,1.64,1.58,1.65,1.57,1.56, 1.62,1.71,1.62,1.61,1.61,1.66,1.59,1.67,1.67,1.64, 1.67,1.74,1.66,1.68,1.69,1.63,1.68,1.64,1.63,1.71, 1.64,1.76,1.75,1.75,1.70,1.74,1.70,1.72,1.71,1.72, 1.71,1.72,1.78,1.80,1.73,1.72,1.80,1.84,1.82,1.75, 1.79,1.77,1.81,1.83,1.83,1.83,1.84,1.79,1.75,1.93, 1.81,1.79,1.84,1.78,1.86,1.86,1.87,1.83,1.93,1.82, 1.96,1.74,1.83,1.85,1.93,1.94,1.83,1.91,1.83,1.82, 1.85,1.93,1.89,1.91,1.97,1.88,1.87,1.88,1.81,1.94, 1.93,1.87,1.99,1.90,1.95,1.99,1.98,1.97,1.94,1.99, 0.35,0.31,0.35,0.35,0.39,0.42,0.41,0.40,0.41,0.45, 0.45,0.45,0.47,0.49,0.49,0.48,0.50,0.53,0.54,0.57, 0.50,0.54,0.57,0.56,0.62,0.59,0.56,0.61,0.63,0.65, 0.63,0.65,0.65,0.64,0.64,0.66,0.68,0.66,0.65,0.70, 0.70,0.70,0.74,0.70,0.72,0.70,0.75,0.76,0.79,0.77, 0.79,0.78,0.74,0.82,0.78,0.81,0.78,0.83,0.83,0.82, 0.85,0.85,0.85,0.83,0.88,0.85,0.85,0.88,0.85,0.90, 0.84,0.92,0.91,0.91,0.91,0.91,0.91,0.95,0.87,0.95, 0.94,0.94,0.99,0.98,0.95,0.97,0.93,0.97,0.98,0.99, 0.96,1.01,0.98,1.00,1.03,1.10,1.01,1.01,1.04,1.01, 1.03,1.06,1.02,1.03,1.02,1.06,1.08,1.06,1.06,1.13, 1.08,1.05,1.08,1.10,1.13,1.11,1.13,1.09,1.09,1.11, 1.17,1.17,1.15,1.15,1.17,1.16,1.12,1.21,1.18,1.19, 1.12,1.19,1.15,1.18,1.21,1.23,1.18,1.17,1.20,1.23, 1.26,1.22,1.20,1.20,1.20,1.27,1.24,1.28,1.26,1.16, 1.26,1.34,1.27,1.22,1.31,1.24,1.29,1.26,1.35,1.31, 1.26,1.35,1.28,1.24,1.31,1.25,1.33,1.31,1.38,1.27, 1.34,1.35,1.29,1.30,1.34,1.38,1.35,1.38,1.40,1.34, 1.40,1.37,1.36,1.39,1.35,1.45,1.40,1.39,1.41,1.39, 1.43,1.44,1.39,1.51,1.39,1.42,1.38,1.43,1.40,1.43, 1.47,1.48,1.44,1.46,1.46,1.43,1.47,1.46,1.50,1.47, 1.44,1.53,1.43,1.50,1.46,1.55,1.49,1.53,1.48,1.42, 1.53,1.52,1.45,1.52,1.59,1.51,1.54,1.51,1.48,1.55, 1.53,1.51,1.58,1.50,1.56,1.52,1.57,1.52,1.57,1.55, 1.55,1.57,1.63,1.59,1.48,1.57,1.58,1.52,1.59,1.61, 1.62,1.65,1.64,1.63,1.70,1.62,1.58,1.61,1.61,1.58, 1.63,1.61,1.65,1.60,1.65,1.64,1.61,1.65,1.65,1.62, 1.65,1.67,1.68,1.64,1.67,1.61,1.71,1.68,1.68,1.71, 1.72,1.75,1.74,1.60,1.63,1.75,1.63,1.70,1.74,1.70, 0.28,0.28,0.28,0.31,0.30,0.33,0.37,0.35,0.39,0.37, 0.41,0.40,0.42,0.43,0.46,0.43,0.48,0.49,0.47,0.46, 0.48,0.46,0.49,0.54,0.52,0.53,0.55,0.54,0.52,0.53, 0.58,0.56,0.54,0.60,0.61,0.57,0.58,0.59,0.61,0.60, 0.64,0.63,0.62,0.61,0.61,0.64,0.69,0.65,0.65,0.69, 0.65,0.68,0.70,0.72,0.67,0.67,0.72,0.71,0.75,0.75, 0.72,0.74,0.73,0.75,0.72,0.77,0.73,0.73,0.75,0.73, 0.76,0.80,0.83,0.78,0.81,0.80,0.82,0.85,0.83,0.82, 0.83,0.85,0.85,0.86,0.85,0.81,0.83,0.85,0.86,0.85, 0.86,0.87,0.89,0.91,0.90,0.91,0.92,0.89,0.91,0.88, 0.91,0.91,0.89,0.93,0.93,0.93,0.92,0.93,0.97,0.95, 0.96,0.98,0.98,1.02,0.95,0.99,0.96,1.01,0.99,1.02, 1.01,1.03,0.98,1.03,1.01,1.03,1.06,1.08,1.04,1.05, 1.02,1.09,1.09,1.05,1.07,1.04,1.03,1.06,1.08,1.06, 1.12,1.05,1.06,1.12,1.15,1.09,1.11,1.11,1.07,1.05, 1.08,1.15,1.08,1.15,1.13,1.14,1.11,1.09,1.15,1.12, 1.15,1.17,1.21,1.16,1.17,1.18,1.14,1.16,1.24,1.21, 1.16,1.18,1.20,1.18,1.18,1.17,1.17,1.16,1.19,1.21, 1.24,1.12,1.20,1.23,1.22,1.19,1.22,1.25,1.24,1.21, 1.32,1.24,1.28,1.24,1.25,1.25,1.26,1.23,1.32,1.28, 1.28,1.28,1.24,1.30,1.26,1.29,1.30,1.31,1.33,1.34, 1.29,1.32,1.30,1.29,1.29,1.29,1.31,1.37,1.33,1.30, 1.33,1.35,1.33,1.38,1.34,1.38,1.31,1.35,1.39,1.29, 1.34,1.31,1.36,1.35,1.40,1.35,1.37,1.37,1.35,1.34, 1.40,1.38,1.37,1.36,1.38,1.36,1.44,1.43,1.43,1.40, 1.39,1.37,1.44,1.44,1.46,1.43,1.40,1.44,1.46,1.44, 1.44,1.44,1.43,1.49,1.44,1.43,1.49,1.39,1.50,1.47, 1.47,1.49,1.47,1.52,1.44,1.50,1.47,1.49,1.51,1.48, 1.47,1.57,1.47,1.50,1.53,1.53,1.54,1.52,1.44,1.55, 0.25,0.26,0.29,0.28,0.28,0.30,0.29,0.30,0.31,0.34, 0.34,0.37,0.33,0.37,0.41,0.42,0.35,0.41,0.43,0.39, 0.42,0.45,0.44,0.44,0.45,0.50,0.44,0.46,0.49,0.46, 0.46,0.51,0.51,0.52,0.50,0.50,0.53,0.54,0.53,0.55, 0.54,0.56,0.55,0.55,0.57,0.61,0.57,0.56,0.60,0.60, 0.59,0.59,0.59,0.64,0.61,0.64,0.63,0.65,0.65,0.64, 0.67,0.66,0.67,0.64,0.67,0.67,0.65,0.69,0.66,0.71, 0.65,0.71,0.71,0.70,0.69,0.72,0.75,0.74,0.72,0.73, 0.74,0.74,0.73,0.74,0.75,0.75,0.72,0.72,0.78,0.80, 0.79,0.79,0.80,0.82,0.77,0.77,0.82,0.79,0.81,0.86, 0.82,0.81,0.80,0.84,0.83,0.83,0.83,0.85,0.83,0.84, 0.84,0.85,0.86,0.79,0.82,0.89,0.90,0.93,0.87,0.89, 0.89,0.84,0.86,0.87,0.89,0.88,0.92,0.93,0.89,0.92, 0.90,0.93,0.86,0.95,0.93,0.92,0.92,0.92,0.97,0.98, 0.91,0.93,0.91,0.97,0.98,0.92,0.96,0.99,0.98,0.97, 1.02,1.02,1.00,0.99,0.99,0.99,0.95,1.00,0.99,0.98, 1.02,1.01,1.02,1.01,1.02,1.04,1.05,1.05,1.01,1.07, 1.00,1.00,1.04,1.02,1.04,1.06,1.04,1.03,1.04,1.06, 1.09,1.01,1.09,1.05,1.08,1.08,1.07,1.09,1.08,1.09, 1.07,1.12,1.12,1.05,1.10,1.05,1.07,1.15,1.13,1.12, 1.11,1.15,1.11,1.12,1.12,1.14,1.13,1.15,1.14,1.13, 1.11,1.08,1.19,1.18,1.12,1.19,1.18,1.18,1.18,1.14, 1.16,1.18,1.17,1.16,1.20,1.17,1.17,1.13,1.19,1.25, 1.18,1.18,1.23,1.26,1.25,1.23,1.19,1.24,1.19,1.21, 1.18,1.19,1.19,1.22,1.19,1.23,1.16,1.26,1.27,1.23, 1.22,1.22,1.26,1.24,1.25,1.28,1.24,1.28,1.17,1.24, 1.19,1.26,1.25,1.32,1.25,1.29,1.27,1.24,1.26,1.30, 1.29,1.24,1.31,1.30,1.24,1.29,1.20,1.24,1.22,1.26, 1.25,1.25,1.32,1.34,1.25,1.33,1.32,1.32,1.36,1.34, 0.21,0.25,0.25,0.24,0.27,0.24,0.27,0.27,0.29,0.30, 0.30,0.30,0.32,0.32,0.34,0.34,0.32,0.37,0.36,0.36, 0.35,0.38,0.41,0.41,0.39,0.37,0.40,0.43,0.43,0.41, 0.40,0.40,0.46,0.44,0.45,0.46,0.49,0.44,0.46,0.45, 0.49,0.52,0.50,0.50,0.49,0.51,0.51,0.52,0.54,0.52, 0.53,0.54,0.54,0.52,0.52,0.55,0.54,0.52,0.57,0.59, 0.57,0.59,0.58,0.55,0.60,0.59,0.61,0.58,0.62,0.62, 0.63,0.56,0.61,0.61,0.65,0.61,0.62,0.63,0.62,0.66, 0.63,0.64,0.64,0.62,0.67,0.65,0.67,0.68,0.68,0.70, 0.65,0.68,0.72,0.71,0.67,0.70,0.69,0.69,0.71,0.69, 0.72,0.68,0.75,0.75,0.76,0.73,0.73,0.74,0.73,0.70, 0.71,0.71,0.76,0.76,0.76,0.75,0.78,0.79,0.80,0.78, 0.77,0.73,0.80,0.76,0.75,0.83,0.76,0.80,0.79,0.81, 0.79,0.80,0.80,0.82,0.81,0.80,0.84,0.82,0.83,0.84, 0.83,0.83,0.83,0.82,0.86,0.84,0.86,0.82,0.84,0.83, 0.86,0.86,0.87,0.89,0.87,0.86,0.85,0.89,0.88,0.85, 0.85,0.89,0.88,0.89,0.91,0.86,0.89,0.88,0.88,0.94, 0.89,0.88,0.91,0.89,0.91,0.91,0.93,0.89,0.91,0.89, 0.91,0.93,0.97,0.93,0.96,0.95,1.02,0.90,0.92,0.95, 0.93,0.93,0.95,0.99,0.95,1.00,0.97,0.94,0.94,1.03, 1.00,0.99,0.97,0.95,1.03,0.98,0.96,0.96,1.01,1.01, 1.03,1.03,1.04,1.03,1.02,1.09,0.97,1.05,1.01,1.02, 0.99,1.01,1.03,1.01,1.05,1.04,1.00,1.06,1.08,1.08, 0.99,1.06,1.07,1.06,1.05,1.06,1.08,1.05,1.11,0.99, 1.07,1.05,1.10,1.10,1.07,1.09,1.11,1.08,1.11,1.11, 1.08,1.06,1.07,1.10,1.08,1.08,1.06,1.08,1.10,1.08, 1.10,1.07,1.12,1.11,1.16,1.09,1.11,1.16,1.08,1.13, 1.11,1.08,1.14,1.11,1.11,1.13,1.16,1.13,1.16,1.17, 1.13,1.19,1.15,1.17,1.16,1.20,1.19,1.12,1.17,1.21, 1.15,1.17,1.24,1.28,1.36,1.39,1.42,1.50,1.48,1.50, 1.60,1.65,1.71,1.73,1.72,1.79,1.80,1.84,1.88,1.89, 1.86,1.95,2.03,2.03,2.11,2.03,2.10,2.13,2.19,2.16, 2.23,2.23,2.22,2.36,2.41,2.40,2.37,2.35,2.36,2.43, 2.49,2.57,2.55,2.54,2.69,2.61,2.73,2.54,2.66,2.58, 2.65,2.70,2.74,2.81,2.81,2.90,2.95,2.80,2.79,2.96, 2.88,3.10,2.90,3.03,3.03,3.04,3.02,3.12,3.03,3.19, 3.22,3.21,3.21,3.21,3.15,3.25,3.19,3.16,3.34,3.38, 3.16,3.32,3.23,3.27,3.36,3.35,3.33,3.40,3.27,3.51, 3.55,3.40,3.57,3.61,3.53,3.65,3.70,3.77,3.44,3.68, 3.60,3.59,3.56,3.72,3.64,3.84,3.63,3.63,3.88,3.82, 3.71,3.84,3.86,4.08,3.89,3.97,3.95,3.85,3.91,3.83, 3.85,4.00,3.80,3.93,3.91,3.94,3.99,4.14,4.21,4.09, 4.06,4.04,4.00,4.14,4.12,4.20,4.31,4.06,4.40,4.34, 4.09,4.11,4.22,4.29,4.35,4.46,4.34,4.56,4.26,4.39, 4.30,4.42,4.37,4.42,4.43,4.45,4.47,4.49,4.62,4.62, 4.55,4.42,4.62,4.39,4.55,4.60,4.69,4.64,4.50,4.62, 4.81,4.75,4.52,4.62,4.63,4.73,4.61,4.84,4.77,4.90, 4.84,4.82,4.92,4.72,4.84,4.80,4.75,4.80,4.65,4.96, 5.12,4.97,4.93,4.98,5.05,5.08,4.87,4.84,5.10,4.93, 5.02,5.16,5.12,5.05,5.08,5.03,5.25,5.06,5.18,5.02, 5.30,5.30,5.06,5.35,5.11,5.43,5.25,5.19,5.36,5.26, 5.40,5.28,5.19,5.22,5.40,5.45,5.50,5.33,5.31,5.33, 5.56,5.39,5.43,5.37,5.52,5.50,5.40,5.37,5.49,5.32, 5.57,5.62,5.32,5.47,5.66,5.42,5.56,5.57,5.53,5.47, 5.67,5.57,5.46,5.47,5.51,5.50,5.58,5.75,5.69,5.64, 5.67,5.73,5.88,5.73,5.89,5.85,5.69,5.43,5.92,5.81, 5.76,5.68,6.08,5.93,5.95,5.77,5.85,5.82,5.80,6.06, 6.00,5.91,5.99,5.92,6.14,6.12,6.09,5.90,5.98,5.70, 1.04,1.09,1.06,1.14,1.22,1.23,1.30,1.40,1.36,1.43, 1.45,1.49,1.50,1.62,1.58,1.66,1.68,1.69,1.77,1.74, 1.73,1.84,1.86,1.81,1.90,1.86,1.96,2.00,1.96,2.12, 2.03,2.01,2.21,2.12,2.14,2.17,2.14,2.19,2.17,2.29, 2.27,2.22,2.37,2.40,2.36,2.41,2.46,2.48,2.54,2.53, 2.54,2.49,2.53,2.62,2.60,2.50,2.62,2.67,2.70,2.61, 2.72,2.64,2.73,2.65,2.75,2.83,2.75,2.89,2.81,2.83, 2.88,2.90,2.71,2.90,2.99,2.85,2.92,3.08,2.95,3.08, 3.15,3.02,3.12,3.00,3.04,3.11,3.19,3.15,3.31,3.18, 3.15,3.32,3.27,3.27,3.12,3.26,3.29,3.29,3.48,3.26, 3.37,3.39,3.51,3.49,3.42,3.46,3.40,3.30,3.48,3.53, 3.52,3.47,3.51,3.56,3.54,3.57,3.63,3.60,3.66,3.71, 3.70,3.62,3.64,3.70,3.76,3.59,3.66,3.73,3.81,3.78, 3.74,3.88,3.70,3.87,3.90,3.97,3.75,3.86,3.88,3.99, 3.87,4.00,3.87,3.84,3.93,3.90,4.04,4.16,3.90,4.04, 4.15,4.15,3.94,4.15,4.12,4.08,4.17,4.13,4.22,4.17, 4.14,4.19,4.28,4.30,4.22,4.41,4.05,4.23,4.17,4.33, 4.35,4.29,4.28,4.29,4.19,4.34,4.57,4.32,4.28,4.38, 4.23,4.64,4.53,4.45,4.44,4.30,4.75,4.45,4.32,4.64, 4.42,4.76,4.63,4.35,4.64,4.75,4.80,4.71,4.52,4.71, 4.61,4.51,4.65,4.79,4.72,4.80,4.64,4.66,4.81,4.76, 4.70,4.74,4.65,4.83,4.90,4.70,4.73,4.74,4.76,4.80, 4.91,4.83,4.81,4.83,4.97,4.91,4.99,5.22,4.84,4.85, 4.93,4.84,5.20,4.93,5.07,5.05,5.03,5.08,5.15,5.17, 5.15,5.18,5.26,5.00,5.04,5.08,5.17,4.82,5.26,5.05, 5.36,5.07,5.07,5.15,5.16,5.10,5.21,5.06,5.26,5.23, 5.23,5.32,5.48,5.16,5.41,5.30,5.39,5.64,5.41,5.39, 5.31,5.33,5.25,5.52,5.64,5.44,5.33,5.21,5.52,5.37, 5.50,5.59,5.49,5.53,5.48,5.38,5.50,5.53,5.65,5.59, 0.97,0.97,1.03,1.09,1.11,1.15,1.21,1.23,1.24,1.29, 1.40,1.42,1.43,1.48,1.45,1.56,1.52,1.49,1.58,1.61, 1.66,1.65,1.74,1.73,1.78,1.81,1.80,1.78,1.73,1.85, 1.82,1.83,1.90,2.02,2.00,1.97,2.04,2.07,2.08,2.02, 2.07,2.15,2.07,2.12,2.16,2.14,2.23,2.22,2.22,2.25, 2.29,2.39,2.37,2.35,2.37,2.39,2.43,2.53,2.44,2.43, 2.43,2.46,2.46,2.55,2.42,2.50,2.56,2.68,2.60,2.54, 2.68,2.71,2.64,2.69,2.67,2.68,2.71,2.72,2.79,2.75, 2.67,2.72,2.73,2.80,2.90,2.91,2.88,2.92,2.92,3.00, 3.02,2.95,3.01,2.98,2.98,2.91,2.94,3.06,3.11,3.00, 3.12,3.21,3.12,3.02,3.09,3.18,3.26,3.28,3.30,3.16, 3.16,3.14,3.14,3.32,3.35,3.23,3.26,3.14,3.29,3.29, 3.37,3.32,3.54,3.31,3.58,3.48,3.46,3.38,3.47,3.56, 3.46,3.52,3.53,3.58,3.43,3.50,3.56,3.65,3.53,3.49, 3.58,3.59,3.47,3.60,3.64,3.66,3.64,3.61,3.76,3.67, 3.81,3.70,3.82,3.74,3.73,3.74,3.83,3.87,3.80,3.75, 3.89,3.77,3.73,3.99,3.83,3.71,3.96,3.95,3.88,3.81, 3.87,3.76,3.92,4.05,4.03,4.13,3.98,3.92,4.05,3.97, 4.05,4.22,3.98,4.15,4.27,4.12,4.18,4.21,4.15,4.09, 4.29,4.04,4.12,4.31,4.23,4.45,4.36,4.24,4.21,4.15, 4.37,4.17,4.25,4.14,4.26,4.29,4.38,4.29,4.34,4.35, 4.40,4.32,4.35,4.49,4.41,4.35,4.64,4.53,4.46,4.31, 4.62,4.54,4.42,4.64,4.65,4.44,4.68,4.55,4.62,4.59, 4.43,4.54,4.63,4.47,4.64,4.44,4.75,4.66,4.45,4.66, 4.60,4.55,4.89,4.78,4.78,4.59,4.68,4.64,4.61,4.78, 4.74,4.75,4.68,4.63,4.76,4.78,4.85,4.89,4.55,4.94, 4.93,4.71,4.74,4.73,4.87,4.86,4.87,4.74,4.84,4.87, 4.78,4.99,5.03,5.03,4.98,5.02,5.05,4.94,4.97,4.82, 5.01,4.92,5.01,4.87,5.04,5.03,5.23,5.04,5.14,5.24, 0.88,0.92,0.95,0.98,1.07,1.04,1.08,1.14,1.13,1.20, 1.20,1.23,1.25,1.29,1.35,1.40,1.35,1.39,1.46,1.46, 1.45,1.52,1.55,1.55,1.59,1.59,1.64,1.57,1.61,1.77, 1.68,1.70,1.68,1.79,1.77,1.76,1.76,1.88,1.83,1.89, 1.92,1.94,1.91,1.96,1.96,1.98,1.99,2.02,2.07,1.98, 2.11,2.06,2.07,2.05,2.23,2.23,2.18,2.12,2.17,2.20, 2.18,2.27,2.35,2.31,2.29,2.32,2.31,2.33,2.40,2.42, 2.41,2.46,2.37,2.42,2.41,2.34,2.51,2.46,2.50,2.51, 2.54,2.53,2.56,2.57,2.82,2.63,2.64,2.73,2.64,2.67, 2.72,2.66,2.73,2.61,2.77,2.65,2.80,2.77,2.78,2.77, 2.86,2.83,2.87,2.86,2.97,2.92,2.96,2.92,2.75,2.85, 2.97,2.89,2.94,2.93,2.90,2.96,2.94,3.09,3.12,3.13, 3.00,3.02,3.02,3.11,3.12,3.14,3.23,3.28,3.19,3.11, 3.22,3.12,3.21,3.18,3.27,3.22,3.18,3.31,3.28,3.31, 3.30,3.17,3.18,3.32,3.41,3.22,3.37,3.37,3.49,3.36, 3.44,3.34,3.31,3.26,3.33,3.57,3.40,3.48,3.45,3.54, 3.50,3.59,3.45,3.48,3.42,3.68,3.46,3.59,3.51,3.72, 3.62,3.52,3.59,3.66,3.71,3.60,3.56,3.58,3.77,3.69, 3.78,3.75,3.69,3.77,3.78,3.76,3.61,3.67,3.93,3.89, 3.76,3.86,3.86,3.79,3.74,3.76,3.79,3.98,3.92,3.90, 3.79,3.86,4.07,3.81,3.81,3.99,3.83,3.86,4.03,4.04, 3.85,4.01,4.01,4.06,4.02,4.07,4.14,3.98,4.01,4.00, 3.98,4.03,4.19,4.00,4.06,4.23,3.98,4.17,3.95,4.12, 4.19,4.21,4.29,4.05,4.04,4.14,4.13,4.07,4.19,4.24, 4.04,4.22,4.17,4.29,4.23,4.40,4.25,4.24,4.20,4.46, 4.27,4.53,4.26,4.37,4.20,4.13,4.30,4.36,4.34,4.42, 4.43,4.46,4.29,4.49,4.40,4.37,4.48,4.51,4.54,4.53, 4.48,4.60,4.56,4.69,4.69,4.42,4.53,4.53,4.56,4.55, 4.60,4.83,4.61,4.71,4.31,4.67,4.56,4.69,4.77,4.77, 0.77,0.81,0.86,0.91,0.92,0.98,0.98,1.06,1.06,1.03, 1.06,1.10,1.16,1.19,1.16,1.19,1.30,1.28,1.27,1.33, 1.34,1.36,1.37,1.41,1.37,1.51,1.40,1.44,1.50,1.47, 1.57,1.58,1.55,1.63,1.62,1.59,1.59,1.71,1.67,1.70, 1.69,1.69,1.72,1.75,1.83,1.83,1.83,1.85,1.83,1.86, 1.85,1.84,1.95,2.02,1.95,1.87,1.95,1.99,1.98,1.97, 1.97,2.04,2.11,2.07,2.08,2.08,2.08,2.19,2.12,2.13, 2.15,2.13,2.23,2.18,2.35,2.23,2.26,2.26,2.27,2.31, 2.32,2.26,2.28,2.33,2.33,2.49,2.36,2.40,2.35,2.47, 2.52,2.41,2.44,2.46,2.46,2.41,2.45,2.56,2.60,2.39, 2.50,2.65,2.62,2.50,2.56,2.65,2.56,2.55,2.70,2.66, 2.63,2.66,2.64,2.68,2.71,2.66,2.83,2.88,2.78,2.64, 2.92,2.73,2.82,2.85,2.81,2.80,2.91,2.84,2.84,2.86, 2.87,3.01,2.86,2.90,2.91,2.99,2.95,2.91,3.02,2.85, 3.04,2.90,3.06,2.98,2.90,3.03,2.99,2.92,3.05,3.12, 2.94,3.14,3.15,3.09,3.00,3.21,3.11,3.20,3.23,3.07, 3.28,3.27,3.18,3.13,3.27,3.22,3.00,3.12,3.22,3.36, 3.30,3.37,3.31,3.31,3.35,3.11,3.39,3.27,3.31,3.37, 3.32,3.27,3.23,3.31,3.41,3.41,3.40,3.55,3.30,3.55, 3.41,3.41,3.45,3.42,3.44,3.47,3.42,3.55,3.54,3.43, 3.52,3.52,3.46,3.46,3.54,3.64,3.59,3.56,3.55,3.70, 3.67,3.77,3.69,3.47,3.60,3.82,3.66,3.60,3.69,3.73, 3.67,3.67,3.67,3.68,3.67,3.70,3.74,3.81,3.84,3.69, 3.92,3.70,3.59,3.74,3.75,3.76,3.73,3.88,3.90,3.88, 3.77,3.83,3.82,3.82,3.91,3.84,3.76,4.02,4.01,3.91, 4.17,4.03,4.01,3.83,4.14,3.93,4.11,3.89,4.01,4.04, 3.93,4.07,3.91,3.94,3.93,4.00,4.13,4.07,4.06,4.18, 4.00,4.07,4.13,4.03,3.97,4.02,4.17,4.00,4.18,4.18, 4.15,4.16,4.18,4.21,4.16,4.09,4.11,4.18,4.16,4.48, 0.73,0.72,0.75,0.81,0.85,0.83,0.89,0.91,0.92,0.97, 1.05,1.02,1.03,1.08,1.09,1.09,1.10,1.16,1.18,1.17, 1.23,1.21,1.25,1.26,1.33,1.31,1.33,1.34,1.36,1.33, 1.32,1.42,1.44,1.48,1.45,1.45,1.50,1.46,1.50,1.55, 1.56,1.55,1.52,1.64,1.65,1.60,1.65,1.76,1.70,1.63, 1.71,1.71,1.72,1.75,1.75,1.76,1.82,1.77,1.79,1.79, 1.80,1.85,1.85,1.85,1.81,1.87,1.95,1.88,2.04,1.93, 1.93,1.93,1.99,2.02,1.94,2.02,2.11,2.08,2.09,2.10, 2.07,2.04,2.09,2.02,2.19,2.17,2.14,2.16,2.20,2.15, 2.13,2.24,2.21,2.30,2.24,2.21,2.20,2.25,2.32,2.37, 2.35,2.34,2.31,2.26,2.34,2.31,2.42,2.35,2.30,2.39, 2.42,2.47,2.53,2.31,2.46,2.49,2.34,2.47,2.51,2.43, 2.51,2.59,2.36,2.55,2.57,2.62,2.60,2.55,2.52,2.65, 2.63,2.68,2.59,2.65,2.55,2.52,2.63,2.70,2.67,2.56, 2.80,2.74,2.81,2.78,2.72,2.80,2.75,2.66,2.69,2.75, 2.79,2.76,2.81,2.81,2.75,2.79,2.79,2.69,2.90,2.86, 2.77,2.79,2.95,2.84,2.90,2.88,2.96,2.88,3.00,2.93, 2.81,2.91,2.96,2.97,3.10,3.04,2.98,3.02,3.06,2.96, 2.98,3.12,3.03,3.04,3.11,3.14,3.07,3.09,3.16,3.05, 3.12,3.02,3.20,3.23,3.21,3.12,3.29,3.15,3.18,3.28, 3.19,3.22,3.16,3.13,3.21,3.14,3.23,3.23,3.27,3.26, 3.31,3.28,3.22,3.29,3.32,3.26,3.33,3.24,3.31,3.44, 3.31,3.26,3.36,3.33,3.29,3.32,3.52,3.48,3.44,3.35, 3.34,3.40,3.50,3.41,3.53,3.47,3.31,3.51,3.49,3.59, 3.31,3.45,3.35,3.42,3.47,3.53,3.53,3.55,3.49,3.57, 3.60,3.57,3.47,3.42,3.45,3.36,3.56,3.64,3.41,3.54, 3.53,3.62,3.58,3.64,3.50,3.63,3.64,3.60,3.60,3.85, 3.75,3.63,3.71,3.66,3.75,3.77,3.69,3.67,3.62,3.70, 3.73,3.69,3.82,3.91,3.66,3.76,3.78,3.73,3.83,3.79, 0.64,0.67,0.70,0.75,0.75,0.74,0.79,0.78,0.84,0.86, 0.92,0.90,0.92,0.94,0.97,1.01,1.03,1.04,1.03,1.09, 1.09,1.09,1.11,1.16,1.21,1.15,1.16,1.18,1.22,1.17, 1.24,1.26,1.26,1.34,1.32,1.32,1.31,1.33,1.42,1.39, 1.44,1.42,1.40,1.46,1.48,1.46,1.44,1.48,1.48,1.46, 1.55,1.54,1.58,1.53,1.57,1.60,1.62,1.64,1.68,1.69, 1.71,1.63,1.64,1.71,1.67,1.64,1.72,1.77,1.78,1.74, 1.73,1.74,1.83,1.74,1.79,1.76,1.81,1.79,1.89,1.81, 1.88,1.87,1.90,1.95,1.93,1.92,1.85,1.91,1.89,1.98, 1.98,1.90,1.95,2.00,1.98,1.97,1.99,2.07,1.98,2.02, 2.01,2.07,2.07,2.05,2.09,2.07,2.10,2.11,2.12,2.12, 2.13,2.17,2.17,2.25,2.28,2.16,2.20,2.21,2.16,2.27, 2.23,2.26,2.25,2.27,2.33,2.28,2.24,2.25,2.23,2.41, 2.36,2.30,2.36,2.33,2.26,2.39,2.28,2.33,2.31,2.36, 2.37,2.54,2.40,2.43,2.46,2.39,2.43,2.45,2.53,2.47, 2.54,2.53,2.43,2.44,2.58,2.46,2.51,2.49,2.47,2.47, 2.67,2.57,2.58,2.58,2.65,2.63,2.60,2.66,2.56,2.61, 2.66,2.63,2.65,2.69,2.66,2.68,2.60,2.71,2.74,2.74, 2.60,2.84,2.61,2.72,2.68,2.85,2.75,2.88,2.74,2.78, 2.70,2.77,2.69,2.90,2.89,2.87,2.71,2.85,2.79,2.86, 2.84,2.82,2.75,2.82,2.94,2.92,2.92,2.84,2.87,2.89, 2.87,2.93,2.94,2.92,2.95,3.05,3.04,3.03,2.99,2.93, 3.01,3.00,2.95,3.16,2.95,2.99,2.97,3.03,3.01,3.05, 3.11,3.01,3.08,3.01,3.02,3.02,3.12,3.10,3.18,3.13, 3.21,3.03,3.13,3.18,3.10,3.11,3.15,3.12,3.07,3.16, 3.12,3.21,3.20,3.27,3.20,3.24,3.26,3.13,3.19,3.34, 3.32,3.33,3.27,3.20,3.31,3.11,3.31,3.34,3.23,3.26, 3.29,3.31,3.45,3.35,3.13,3.27,3.32,3.32,3.35,3.33, 3.20,3.29,3.29,3.46,3.29,3.43,3.32,3.33,3.47,3.42, 0.54,0.58,0.60,0.66,0.69,0.70,0.73,0.72,0.76,0.80, 0.79,0.81,0.81,0.84,0.86,0.91,0.94,0.92,0.95,0.92, 1.02,0.95,0.99,1.05,1.01,1.03,1.09,1.13,1.08,1.09, 1.14,1.12,1.15,1.13,1.17,1.16,1.22,1.23,1.17,1.21, 1.30,1.26,1.24,1.28,1.32,1.34,1.31,1.37,1.43,1.37, 1.37,1.32,1.39,1.34,1.42,1.42,1.46,1.44,1.45,1.49, 1.53,1.47,1.49,1.51,1.47,1.53,1.50,1.54,1.54,1.55, 1.58,1.60,1.67,1.63,1.66,1.66,1.65,1.58,1.66,1.72, 1.65,1.71,1.59,1.69,1.68,1.71,1.78,1.80,1.73,1.74, 1.79,1.73,1.78,1.82,1.79,1.81,1.81,1.86,1.84,1.81, 1.74,1.86,1.94,1.86,1.89,1.89,1.92,1.91,1.94,1.88, 1.92,1.97,1.97,1.92,2.03,2.02,2.02,2.02,2.00,2.02, 1.95,1.91,1.99,1.99,2.10,2.18,2.06,2.10,2.10,2.18, 2.13,2.10,2.15,2.08,2.08,2.19,2.12,2.16,2.16,2.14, 2.12,2.16,2.12,2.20,2.14,2.10,2.16,2.25,2.28,2.21, 2.19,2.20,2.24,2.15,2.23,2.28,2.20,2.24,2.33,2.24, 2.34,2.35,2.44,2.37,2.27,2.29,2.32,2.36,2.35,2.32, 2.39,2.38,2.37,2.36,2.45,2.39,2.45,2.35,2.43,2.41, 2.36,2.33,2.47,2.35,2.38,2.52,2.43,2.56,2.34,2.50, 2.58,2.49,2.48,2.53,2.45,2.54,2.46,2.53,2.50,2.45, 2.67,2.53,2.61,2.60,2.47,2.63,2.55,2.64,2.63,2.65, 2.60,2.69,2.65,2.54,2.64,2.62,2.64,2.69,2.66,2.62, 2.63,2.79,2.62,2.70,2.65,2.63,2.75,2.61,2.68,2.68, 2.79,2.64,2.73,2.85,2.82,2.60,2.77,2.67,2.82,2.66, 2.74,2.91,2.78,2.77,2.67,2.83,2.89,2.79,2.86,2.88, 2.93,2.84,2.84,2.87,2.83,2.91,2.93,2.83,2.88,2.81, 2.80,2.86,2.85,2.98,2.99,3.02,3.06,2.87,2.91,2.96, 2.94,2.96,2.93,2.90,3.01,3.00,2.92,2.97,3.02,3.04, 3.03,2.96,3.00,2.96,3.03,2.95,3.05,3.06,3.00,3.21, 0.49,0.52,0.53,0.59,0.62,0.61,0.62,0.65,0.68,0.69, 0.71,0.72,0.72,0.75,0.76,0.80,0.80,0.86,0.80,0.86, 0.84,0.87,0.89,0.90,0.88,0.95,0.95,0.97,0.98,0.98, 1.02,1.02,1.04,1.07,1.03,1.07,1.05,1.09,1.10,1.09, 1.06,1.12,1.13,1.11,1.11,1.19,1.15,1.14,1.20,1.19, 1.19,1.27,1.26,1.26,1.28,1.24,1.25,1.25,1.26,1.33, 1.35,1.31,1.32,1.31,1.36,1.32,1.38,1.37,1.36,1.37, 1.38,1.42,1.34,1.48,1.42,1.49,1.41,1.49,1.44,1.50, 1.48,1.42,1.56,1.60,1.52,1.48,1.55,1.67,1.57,1.51, 1.62,1.53,1.61,1.53,1.62,1.65,1.64,1.60,1.56,1.65, 1.52,1.65,1.73,1.70,1.68,1.68,1.74,1.69,1.67,1.64, 1.70,1.77,1.75,1.75,1.76,1.80,1.74,1.76,1.74,1.82, 1.75,1.78,1.82,1.78,1.84,1.91,1.87,1.90,1.89,1.89, 1.93,1.86,1.88,1.91,1.97,1.91,1.91,1.85,1.87,1.84, 1.87,1.90,1.97,1.99,1.91,1.92,1.86,1.99,1.92,1.96, 1.92,1.98,1.94,1.97,2.04,2.03,2.07,1.98,2.05,2.05, 2.05,1.98,2.03,2.05,2.09,2.02,2.05,2.11,2.05,2.12, 2.11,2.12,2.02,2.10,2.11,2.08,2.09,2.11,2.27,2.18, 2.12,2.29,2.09,2.18,2.16,2.22,2.22,2.26,2.27,2.24, 2.24,2.15,2.16,2.24,2.18,2.29,2.27,2.29,2.29,2.24, 2.32,2.23,2.32,2.24,2.35,2.36,2.30,2.27,2.38,2.28, 2.31,2.35,2.38,2.42,2.36,2.32,2.35,2.42,2.34,2.28, 2.26,2.37,2.34,2.40,2.47,2.36,2.29,2.43,2.42,2.46, 2.53,2.36,2.48,2.39,2.41,2.40,2.37,2.36,2.44,2.42, 2.42,2.54,2.49,2.46,2.50,2.52,2.47,2.56,2.46,2.66, 2.54,2.53,2.52,2.65,2.54,2.53,2.62,2.54,2.60,2.65, 2.58,2.60,2.57,2.59,2.46,2.63,2.61,2.53,2.59,2.69, 2.58,2.50,2.72,2.70,2.61,2.69,2.62,2.58,2.73,2.62, 2.65,2.72,2.74,2.78,2.72,2.73,2.73,2.58,2.74,2.79, 0.46,0.46,0.49,0.53,0.51,0.57,0.56,0.58,0.63,0.59, 0.62,0.64,0.67,0.71,0.70,0.70,0.73,0.73,0.75,0.71, 0.77,0.74,0.77,0.80,0.84,0.84,0.85,0.86,0.89,0.84, 0.90,0.91,0.87,0.92,0.98,0.96,0.94,0.99,0.96,0.94, 1.00,1.00,1.03,0.97,1.02,1.01,1.03,1.07,1.08,1.05, 1.06,1.12,1.17,1.09,1.11,1.13,1.14,1.14,1.14,1.16, 1.19,1.23,1.16,1.21,1.31,1.23,1.21,1.18,1.25,1.26, 1.23,1.25,1.26,1.27,1.28,1.30,1.28,1.33,1.31,1.31, 1.36,1.33,1.40,1.32,1.40,1.35,1.40,1.40,1.41,1.37, 1.37,1.39,1.41,1.45,1.43,1.40,1.43,1.47,1.53,1.45, 1.38,1.47,1.49,1.44,1.46,1.48,1.44,1.47,1.52,1.44, 1.57,1.60,1.50,1.55,1.56,1.52,1.56,1.57,1.56,1.52, 1.62,1.62,1.60,1.58,1.66,1.69,1.68,1.68,1.67,1.55, 1.68,1.61,1.66,1.73,1.61,1.71,1.65,1.58,1.70,1.70, 1.66,1.76,1.72,1.66,1.76,1.75,1.67,1.75,1.71,1.77, 1.78,1.82,1.78,1.72,1.83,1.76,1.84,1.76,1.78,1.85, 1.80,1.91,1.86,1.88,1.85,1.85,1.83,1.84,1.92,1.88, 1.92,1.80,1.89,1.89,1.92,1.98,1.90,1.94,1.99,1.95, 1.95,1.95,1.91,2.02,1.96,2.00,1.93,1.94,2.03,1.93, 1.95,1.91,2.05,1.99,1.93,1.99,2.03,2.00,2.09,2.01, 2.11,2.07,2.00,2.08,1.96,2.07,2.05,2.03,2.07,2.11, 2.04,2.09,2.05,1.99,2.12,2.09,2.05,2.08,2.09,2.07, 2.12,2.15,2.11,2.14,2.14,2.08,2.16,2.11,2.16,2.08, 2.10,2.14,2.21,2.11,2.20,2.21,2.23,2.18,2.30,2.16, 2.14,2.24,2.26,2.24,2.25,2.19,2.21,2.28,2.26,2.25, 2.19,2.27,2.20,2.28,2.22,2.30,2.29,2.31,2.22,2.33, 2.32,2.41,2.36,2.26,2.24,2.31,2.34,2.30,2.27,2.34, 2.25,2.28,2.30,2.29,2.32,2.37,2.41,2.39,2.49,2.43, 2.34,2.33,2.40,2.46,2.49,2.42,2.36,2.31,2.38,2.36, 0.37,0.44,0.44,0.48,0.44,0.51,0.48,0.51,0.51,0.53, 0.59,0.61,0.60,0.61,0.58,0.62,0.66,0.64,0.69,0.69, 0.71,0.69,0.70,0.72,0.71,0.72,0.76,0.77,0.81,0.75, 0.81,0.82,0.79,0.84,0.80,0.85,0.87,0.87,0.92,0.86, 0.85,0.91,0.87,0.90,0.89,0.95,0.96,0.99,0.94,0.96, 0.98,0.91,0.98,1.00,1.02,1.04,1.04,1.03,1.02,1.05, 1.08,1.08,1.07,1.08,1.09,1.12,1.15,1.07,1.09,1.10, 1.12,1.12,1.12,1.19,1.17,1.19,1.13,1.17,1.15,1.17, 1.22,1.21,1.20,1.23,1.20,1.24,1.16,1.22,1.20,1.26, 1.27,1.22,1.27,1.25,1.24,1.23,1.26,1.36,1.35,1.33, 1.32,1.25,1.33,1.33,1.31,1.34,1.30,1.36,1.34,1.34, 1.39,1.31,1.40,1.38,1.36,1.48,1.43,1.42,1.39,1.37, 1.41,1.45,1.36,1.42,1.42,1.46,1.47,1.51,1.49,1.49, 1.52,1.49,1.45,1.38,1.49,1.50,1.52,1.52,1.50,1.52, 1.56,1.48,1.48,1.62,1.56,1.58,1.60,1.60,1.60,1.52, 1.54,1.59,1.62,1.55,1.61,1.51,1.56,1.64,1.60,1.66, 1.61,1.64,1.62,1.65,1.73,1.58,1.67,1.67,1.58,1.68, 1.62,1.71,1.64,1.70,1.73,1.65,1.63,1.69,1.65,1.67, 1.71,1.63,1.69,1.74,1.79,1.71,1.80,1.74,1.69,1.77, 1.72,1.82,1.85,1.74,1.78,1.81,1.81,1.70,1.75,1.81, 1.80,1.80,1.78,1.75,1.82,1.82,1.81,1.92,1.86,1.89, 1.85,1.92,1.79,1.88,1.93,1.89,1.86,1.86,1.90,1.77, 1.88,1.88,1.87,1.97,1.83,1.93,1.86,1.87,1.94,1.93, 1.97,1.88,1.89,1.90,1.96,1.94,1.88,1.93,1.95,1.98, 1.92,1.96,2.00,1.97,1.93,1.96,1.96,2.05,2.03,2.03, 1.99,2.01,1.97,2.04,2.01,1.97,2.04,2.00,2.06,2.06, 2.07,2.16,1.96,2.05,2.10,2.13,2.11,2.06,2.07,2.09, 2.11,2.14,2.06,2.14,2.06,2.08,2.05,2.18,2.00,2.10, 2.11,2.14,2.14,2.14,2.09,2.08,2.09,2.10,2.17,2.19, 0.33,0.39,0.38,0.41,0.43,0.43,0.44,0.42,0.49,0.47, 0.50,0.50,0.55,0.53,0.52,0.57,0.56,0.60,0.60,0.59, 0.60,0.60,0.60,0.64,0.69,0.65,0.67,0.67,0.66,0.68, 0.67,0.71,0.71,0.74,0.75,0.71,0.76,0.74,0.78,0.80, 0.76,0.81,0.80,0.76,0.79,0.84,0.85,0.86,0.83,0.86, 0.83,0.85,0.88,0.87,0.88,0.86,0.91,0.92,0.91,0.94, 0.95,0.92,0.98,0.93,0.93,1.00,0.97,1.00,1.00,1.00, 0.99,1.00,0.99,0.97,0.99,1.02,1.02,1.01,1.08,1.12, 1.09,1.09,1.08,1.06,1.07,1.08,1.07,1.09,1.06,1.05, 1.09,1.08,1.18,1.16,1.08,1.07,1.12,1.16,1.12,1.16, 1.17,1.16,1.11,1.18,1.18,1.17,1.18,1.14,1.17,1.22, 1.23,1.25,1.23,1.25,1.27,1.20,1.25,1.23,1.24,1.28, 1.23,1.25,1.26,1.32,1.25,1.25,1.25,1.33,1.27,1.30, 1.26,1.32,1.34,1.35,1.35,1.29,1.34,1.37,1.31,1.31, 1.38,1.40,1.41,1.33,1.37,1.36,1.37,1.44,1.43,1.34, 1.43,1.34,1.45,1.36,1.44,1.44,1.46,1.47,1.40,1.50, 1.40,1.50,1.49,1.49,1.51,1.49,1.44,1.42,1.48,1.49, 1.49,1.44,1.44,1.52,1.51,1.46,1.49,1.49,1.54,1.54, 1.49,1.51,1.54,1.59,1.55,1.50,1.59,1.56,1.53,1.50, 1.57,1.56,1.63,1.59,1.56,1.58,1.59,1.60,1.58,1.67, 1.65,1.55,1.63,1.66,1.63,1.71,1.60,1.64,1.60,1.62, 1.62,1.65,1.69,1.57,1.65,1.66,1.68,1.69,1.66,1.65, 1.63,1.68,1.73,1.67,1.67,1.65,1.68,1.73,1.63,1.66, 1.72,1.72,1.73,1.74,1.74,1.80,1.70,1.71,1.70,1.73, 1.82,1.71,1.76,1.79,1.72,1.80,1.78,1.77,1.75,1.73, 1.78,1.77,1.79,1.75,1.87,1.77,1.84,1.77,1.75,1.83, 1.83,1.77,1.73,1.89,1.83,1.79,1.83,1.89,1.78,1.86, 1.82,1.78,1.88,1.89,1.78,1.85,1.93,1.85,1.89,1.82, 1.89,1.86,1.91,1.90,1.95,1.91,1.94,1.95,1.97,1.82, 0.31,0.30,0.36,0.37,0.36,0.39,0.39,0.43,0.42,0.43, 0.46,0.48,0.47,0.49,0.48,0.49,0.51,0.51,0.52,0.53, 0.57,0.56,0.59,0.57,0.57,0.58,0.60,0.58,0.59,0.63, 0.62,0.62,0.59,0.66,0.63,0.65,0.67,0.63,0.71,0.69, 0.68,0.70,0.70,0.72,0.77,0.75,0.75,0.75,0.74,0.79, 0.76,0.80,0.78,0.75,0.82,0.81,0.80,0.82,0.78,0.77, 0.80,0.82,0.89,0.85,0.82,0.82,0.82,0.89,0.90,0.84, 0.91,0.85,0.88,0.91,0.89,0.91,0.91,0.91,0.94,1.00, 0.90,0.97,0.96,1.00,0.98,0.94,0.95,0.97,0.95,0.96, 1.00,0.98,0.99,0.99,1.01,0.99,1.02,1.01,1.00,1.03, 0.99,1.01,1.09,1.03,1.06,1.08,1.03,1.09,1.06,1.12, 1.08,1.06,1.09,1.13,1.05,1.08,1.08,1.10,1.13,1.12, 1.09,1.10,1.14,1.19,1.13,1.16,1.17,1.14,1.18,1.08, 1.19,1.21,1.14,1.16,1.16,1.17,1.24,1.16,1.23,1.22, 1.23,1.19,1.20,1.23,1.22,1.22,1.22,1.23,1.26,1.21, 1.22,1.25,1.22,1.27,1.26,1.23,1.27,1.23,1.22,1.27, 1.26,1.25,1.28,1.33,1.29,1.28,1.34,1.29,1.32,1.31, 1.29,1.28,1.34,1.29,1.34,1.39,1.36,1.33,1.34,1.37, 1.40,1.44,1.35,1.37,1.40,1.36,1.37,1.36,1.36,1.36, 1.36,1.39,1.35,1.41,1.37,1.39,1.43,1.41,1.39,1.42, 1.39,1.39,1.42,1.44,1.41,1.44,1.48,1.45,1.45,1.43, 1.44,1.42,1.46,1.44,1.49,1.53,1.46,1.48,1.48,1.45, 1.47,1.47,1.43,1.50,1.60,1.42,1.52,1.48,1.49,1.53, 1.59,1.51,1.53,1.52,1.55,1.56,1.59,1.58,1.53,1.56, 1.55,1.54,1.56,1.57,1.54,1.57,1.51,1.58,1.57,1.56, 1.61,1.58,1.53,1.62,1.62,1.54,1.62,1.55,1.55,1.58, 1.63,1.62,1.56,1.64,1.61,1.63,1.62,1.63,1.63,1.67, 1.67,1.66,1.68,1.65,1.68,1.71,1.68,1.66,1.72,1.61, 1.64,1.66,1.62,1.71,1.68,1.62,1.71,1.76,1.72,1.71, 0.28,0.31,0.32,0.32,0.31,0.34,0.34,0.38,0.39,0.36, 0.40,0.41,0.41,0.42,0.44,0.43,0.44,0.46,0.50,0.45, 0.49,0.42,0.49,0.49,0.51,0.53,0.49,0.54,0.54,0.57, 0.59,0.59,0.54,0.59,0.58,0.61,0.57,0.59,0.59,0.61, 0.63,0.63,0.61,0.63,0.63,0.63,0.66,0.66,0.68,0.66, 0.65,0.68,0.68,0.67,0.68,0.63,0.70,0.73,0.74,0.67, 0.73,0.74,0.76,0.76,0.73,0.74,0.76,0.75,0.78,0.82, 0.76,0.76,0.82,0.79,0.78,0.76,0.79,0.82,0.82,0.82, 0.81,0.83,0.85,0.83,0.79,0.84,0.87,0.84,0.86,0.88, 0.91,0.92,0.86,0.89,0.91,0.87,0.92,0.85,0.89,0.90, 0.92,0.91,0.90,0.95,0.95,0.91,0.97,0.94,0.95,0.99, 0.94,0.96,0.90,0.99,0.98,1.00,1.05,0.96,0.92,1.02, 1.02,1.00,1.00,1.00,0.97,1.03,1.02,0.99,1.08,1.07, 1.04,1.01,1.06,1.05,1.04,1.03,1.02,1.09,1.06,1.09, 1.09,1.09,1.10,1.08,1.04,1.05,1.07,1.08,1.15,1.07, 1.08,1.16,1.14,1.10,1.12,1.12,1.13,1.11,1.09,1.14, 1.12,1.15,1.12,1.14,1.16,1.15,1.14,1.20,1.21,1.16, 1.16,1.16,1.15,1.24,1.14,1.17,1.19,1.16,1.21,1.20, 1.20,1.20,1.23,1.22,1.24,1.19,1.23,1.18,1.29,1.20, 1.21,1.31,1.23,1.23,1.30,1.21,1.29,1.27,1.24,1.24, 1.32,1.26,1.28,1.26,1.28,1.24,1.30,1.29,1.29,1.31, 1.27,1.27,1.32,1.29,1.32,1.26,1.30,1.33,1.31,1.28, 1.33,1.35,1.31,1.34,1.33,1.40,1.35,1.30,1.41,1.33, 1.36,1.36,1.31,1.31,1.36,1.36,1.39,1.40,1.44,1.43, 1.37,1.37,1.32,1.45,1.38,1.39,1.40,1.42,1.43,1.34, 1.40,1.40,1.38,1.39,1.47,1.46,1.51,1.47,1.42,1.44, 1.44,1.41,1.41,1.45,1.44,1.37,1.43,1.41,1.45,1.46, 1.34,1.51,1.53,1.48,1.47,1.49,1.50,1.51,1.43,1.49, 1.46,1.52,1.49,1.53,1.57,1.44,1.53,1.49,1.48,1.53, 0.24,0.26,0.27,0.29,0.31,0.32,0.30,0.30,0.33,0.32, 0.34,0.36,0.40,0.39,0.40,0.40,0.40,0.40,0.41,0.39, 0.45,0.40,0.47,0.43,0.47,0.47,0.49,0.43,0.47,0.46, 0.50,0.49,0.47,0.47,0.49,0.53,0.52,0.54,0.51,0.54, 0.56,0.52,0.54,0.60,0.59,0.60,0.60,0.57,0.57,0.57, 0.62,0.63,0.58,0.63,0.64,0.64,0.65,0.63,0.63,0.65, 0.61,0.65,0.62,0.68,0.68,0.66,0.67,0.69,0.71,0.63, 0.69,0.68,0.72,0.70,0.74,0.70,0.73,0.70,0.74,0.75, 0.73,0.74,0.71,0.73,0.72,0.80,0.75,0.77,0.77,0.75, 0.76,0.82,0.79,0.78,0.77,0.80,0.80,0.79,0.81,0.82, 0.81,0.85,0.79,0.84,0.82,0.85,0.84,0.85,0.82,0.83, 0.91,0.85,0.86,0.86,0.85,0.89,0.90,0.84,0.84,0.84, 0.90,0.88,0.88,0.88,0.88,0.87,0.88,0.91,0.89,0.93, 0.93,0.96,0.91,0.93,0.93,0.93,0.92,0.94,0.97,0.96, 0.97,0.95,0.98,0.97,0.97,0.96,0.96,1.00,0.91,0.98, 1.02,0.95,0.99,0.99,1.02,0.99,1.03,0.98,1.05,0.98, 0.99,1.02,0.99,1.03,1.07,1.06,1.02,1.04,1.04,1.03, 1.03,1.07,1.06,1.03,1.02,1.08,1.11,1.06,1.04,1.04, 1.07,1.05,1.06,1.09,1.13,1.11,1.10,1.11,1.07,1.11, 1.04,1.06,1.10,1.09,1.15,1.14,1.09,1.09,1.09,1.09, 1.10,1.11,1.10,1.11,1.14,1.15,1.15,1.16,1.14,1.13, 1.12,1.16,1.15,1.13,1.16,1.21,1.15,1.16,1.14,1.21, 1.16,1.26,1.14,1.17,1.20,1.18,1.18,1.19,1.16,1.16, 1.16,1.21,1.16,1.18,1.27,1.21,1.22,1.22,1.18,1.24, 1.23,1.25,1.23,1.20,1.24,1.23,1.25,1.23,1.22,1.27, 1.27,1.26,1.21,1.27,1.29,1.25,1.22,1.21,1.34,1.24, 1.26,1.29,1.30,1.34,1.26,1.28,1.29,1.28,1.27,1.27, 1.26,1.24,1.31,1.24,1.30,1.32,1.32,1.32,1.30,1.30, 1.31,1.30,1.35,1.34,1.35,1.34,1.32,1.34,1.32,1.33, 1.15,1.21,1.26,1.35,1.33,1.42,1.46,1.48,1.49,1.58, 1.59,1.61,1.67,1.71,1.68,1.68,1.80,1.92,1.85,1.90, 1.97,1.98,1.99,2.02,2.10,2.14,2.10,2.13,2.17,2.24, 2.30,2.31,2.31,2.40,2.37,2.35,2.34,2.47,2.33,2.42, 2.53,2.58,2.53,2.57,2.68,2.53,2.66,2.70,2.65,2.72, 2.67,2.66,2.72,2.83,2.73,2.90,2.85,3.04,2.79,2.92, 3.03,2.97,3.00,3.10,3.18,3.05,3.07,3.05,3.12,3.22, 3.13,3.10,3.12,3.06,3.13,3.32,3.29,3.29,3.44,3.34, 3.36,3.43,3.30,3.46,3.40,3.46,3.48,3.55,3.54,3.55, 3.53,3.63,3.52,3.54,3.66,3.73,3.76,3.66,3.73,3.43, 3.58,3.88,3.64,3.61,3.74,3.76,3.82,3.90,3.86,3.97, 3.89,4.03,4.18,3.95,3.74,3.99,3.82,4.13,4.00,4.05, 3.93,4.16,4.07,4.13,4.12,4.12,4.23,4.09,4.23,4.28, 4.09,4.19,4.11,4.28,4.11,4.21,4.14,4.23,4.39,4.29, 4.19,4.16,4.38,4.18,4.35,4.39,4.37,4.48,4.46,4.29, 4.58,4.29,4.27,4.43,4.60,4.68,4.57,4.64,4.74,4.73, 4.50,4.53,4.69,4.64,4.81,4.67,4.53,4.67,4.65,4.89, 4.68,4.71,4.78,4.68,4.81,4.77,4.76,4.76,4.67,4.74, 4.81,4.82,4.92,4.70,4.81,5.11,4.83,4.83,5.03,4.92, 5.05,5.07,5.04,5.11,5.04,5.07,4.88,5.22,5.15,4.94, 5.30,4.97,5.13,5.14,5.38,5.20,5.10,5.06,5.18,5.30, 5.17,5.13,5.29,5.26,5.26,5.24,5.07,5.26,5.30,5.42, 5.33,5.26,5.34,5.34,5.37,5.48,5.39,5.47,5.44,5.34, 5.37,5.51,5.55,5.47,5.50,5.56,5.56,5.66,5.61,5.54, 5.98,5.60,5.62,5.63,5.78,5.57,5.66,5.67,5.62,5.63, 5.79,5.89,5.52,5.69,5.81,5.69,5.62,5.91,5.67,5.90, 5.80,6.12,5.73,6.01,5.87,5.61,5.90,5.94,5.64,5.86, 5.86,5.93,5.90,6.01,5.67,5.78,5.97,5.79,6.19,6.11, 6.16,6.41,6.13,5.84,6.24,5.94,6.07,6.13,6.17,6.13, 1.07,1.12,1.17,1.18,1.27,1.29,1.38,1.41,1.48,1.47, 1.45,1.56,1.53,1.57,1.63,1.63,1.71,1.66,1.71,1.68, 1.73,1.79,1.91,1.94,1.91,1.97,2.04,2.03,2.02,2.02, 2.14,2.12,2.09,2.16,2.21,2.20,2.25,2.26,2.29,2.35, 2.39,2.40,2.39,2.36,2.50,2.49,2.43,2.63,2.49,2.61, 2.50,2.59,2.56,2.60,2.60,2.70,2.61,2.66,2.71,2.81, 2.70,2.80,2.77,2.79,2.84,2.80,2.82,2.87,2.90,2.97, 2.95,3.04,3.01,3.05,2.99,3.10,3.05,3.06,3.16,3.23, 3.12,3.13,3.11,2.99,3.26,3.22,3.19,3.23,3.10,3.27, 3.25,3.37,3.27,3.46,3.34,3.37,3.35,3.33,3.40,3.43, 3.47,3.51,3.65,3.50,3.55,3.56,3.56,3.53,3.67,3.55, 3.55,3.68,3.54,3.74,3.46,3.60,3.72,3.66,3.85,3.74, 3.60,3.80,3.86,3.73,3.88,3.67,3.79,3.78,3.88,3.95, 3.82,3.88,3.74,3.83,3.93,3.95,3.93,4.10,4.21,4.02, 3.96,4.02,4.10,4.14,4.36,4.15,4.14,4.13,4.04,4.21, 4.03,4.19,4.16,4.20,4.06,4.42,4.35,4.11,4.24,4.34, 4.24,4.20,4.30,4.18,4.17,4.51,4.33,4.31,4.49,4.25, 4.29,4.29,4.26,4.31,4.55,4.64,4.56,4.45,4.65,4.65, 4.64,4.52,4.59,4.60,4.65,4.64,4.66,4.49,4.68,4.63, 4.76,4.54,4.72,4.60,4.81,4.79,4.61,4.65,4.65,4.57, 4.84,4.63,4.98,4.69,4.94,4.65,4.76,5.11,4.77,4.97, 4.70,4.87,4.81,5.04,5.05,4.78,4.85,4.83,4.73,4.90, 4.83,5.03,5.03,5.15,5.25,5.09,4.95,5.04,4.94,5.04, 5.03,5.20,5.09,5.10,5.01,5.40,5.09,5.19,5.32,5.19, 5.20,5.28,5.16,5.19,5.19,5.32,5.30,5.21,5.20,5.31, 5.27,5.42,5.04,5.32,5.06,5.15,5.37,5.19,5.42,5.39, 5.36,5.27,5.39,5.58,5.41,5.56,5.40,5.49,5.47,5.51, 5.68,5.44,5.59,5.57,5.63,5.68,5.57,5.50,5.57,5.44, 5.65,5.76,5.73,5.57,5.67,5.73,5.59,5.52,5.63,5.68, 1.03,1.06,1.04,1.11,1.18,1.17,1.26,1.32,1.32,1.33, 1.39,1.44,1.40,1.46,1.56,1.55,1.57,1.63,1.62,1.72, 1.71,1.69,1.73,1.78,1.80,1.87,1.90,1.89,1.83,1.93, 2.00,1.94,2.00,1.98,2.06,2.04,2.06,2.04,2.15,2.12, 2.19,2.18,2.16,2.18,2.24,2.29,2.25,2.29,2.45,2.32, 2.41,2.38,2.40,2.38,2.50,2.44,2.43,2.50,2.42,2.50, 2.55,2.65,2.65,2.48,2.58,2.65,2.68,2.60,2.63,2.59, 2.86,2.74,2.80,2.74,2.90,2.84,2.88,2.83,2.76,2.91, 2.84,2.81,2.97,2.95,2.93,2.93,2.90,3.02,3.07,3.08, 3.08,3.04,3.12,3.11,2.98,3.07,3.13,3.12,3.13,3.23, 3.17,3.25,3.26,3.38,3.18,3.27,3.48,3.29,3.28,3.50, 3.37,3.28,3.47,3.36,3.34,3.39,3.43,3.60,3.49,3.48, 3.43,3.46,3.41,3.48,3.64,3.43,3.70,3.54,3.49,3.71, 3.73,3.59,3.61,3.56,3.73,3.54,3.80,3.69,3.65,3.66, 3.70,3.81,3.89,3.65,3.86,3.69,3.73,3.84,3.92,3.79, 3.85,3.91,3.84,3.82,3.91,3.69,4.05,3.98,3.78,4.04, 3.75,4.02,3.91,4.07,3.89,4.07,4.14,4.01,4.13,3.97, 4.19,4.09,3.99,4.16,4.11,4.11,3.95,4.29,4.18,4.20, 4.25,4.06,4.17,4.27,4.23,4.17,4.35,4.26,4.32,4.25, 4.23,4.17,4.46,4.51,4.21,4.31,4.35,4.38,4.36,4.32, 4.57,4.44,4.48,4.40,4.42,4.69,4.52,4.43,4.44,4.40, 4.52,4.59,4.35,4.49,4.44,4.65,4.53,4.49,4.59,4.40, 4.76,4.67,4.64,4.59,4.58,4.71,4.60,4.72,4.88,4.58, 4.62,4.60,4.72,4.63,4.94,4.70,4.75,4.51,4.71,4.87, 4.89,5.00,4.95,4.83,4.94,4.82,4.81,5.00,4.87,4.89, 5.08,4.94,4.94,4.97,4.73,4.93,4.85,5.05,4.80,4.88, 5.19,4.98,4.91,4.88,4.96,5.21,5.04,4.99,4.92,5.10, 5.11,4.81,5.02,5.23,5.20,5.18,5.07,5.04,5.18,4.82, 5.09,5.26,5.04,5.05,5.19,5.24,5.28,5.24,5.08,5.12, 0.90,0.94,0.99,1.01,1.03,1.09,1.13,1.16,1.23,1.21, 1.25,1.32,1.33,1.32,1.36,1.39,1.42,1.43,1.53,1.51, 1.58,1.54,1.59,1.62,1.64,1.69,1.65,1.68,1.71,1.76, 1.76,1.83,1.80,1.86,1.85,1.87,1.92,1.94,1.86,1.93, 2.03,2.08,1.93,1.96,2.07,2.09,2.11,2.09,2.15,2.12, 2.19,2.17,2.22,2.23,2.20,2.20,2.21,2.28,2.37,2.34, 2.32,2.32,2.38,2.43,2.51,2.37,2.49,2.48,2.45,2.54, 2.59,2.59,2.53,2.58,2.52,2.63,2.64,2.57,2.56,2.57, 2.65,2.60,2.63,2.65,2.71,2.72,2.73,2.81,2.84,2.77, 2.76,2.80,2.81,2.94,2.74,2.73,2.90,2.99,2.77,2.98, 2.98,2.90,2.90,2.94,2.85,2.84,3.04,3.04,3.09,3.02, 3.02,3.11,3.06,2.87,3.16,3.24,3.16,3.21,3.15,3.17, 3.14,3.14,3.23,3.19,3.30,3.35,3.42,3.14,3.32,3.24, 3.34,3.30,3.44,3.41,3.30,3.35,3.37,3.49,3.41,3.41, 3.38,3.41,3.57,3.55,3.44,3.52,3.38,3.49,3.65,3.45, 3.41,3.62,3.59,3.47,3.55,3.62,3.54,3.52,3.46,3.53, 3.54,3.76,3.63,3.72,3.55,3.74,3.62,3.72,3.87,3.68, 3.74,3.76,3.71,3.80,3.69,3.79,3.80,3.80,4.00,3.84, 3.80,3.86,3.80,3.96,3.88,3.96,3.91,3.90,4.03,4.03, 4.01,3.93,4.08,3.96,3.94,4.03,4.08,3.90,4.11,4.00, 4.07,4.09,3.94,4.10,4.16,3.98,4.01,4.06,4.13,4.19, 4.15,4.00,4.14,4.13,4.19,4.01,4.27,4.21,4.17,4.25, 4.31,4.31,4.25,4.21,4.26,4.09,4.27,4.05,4.13,4.38, 4.15,4.38,4.27,4.34,4.49,4.21,4.39,4.30,4.47,4.31, 4.47,4.45,4.54,4.47,4.28,4.52,4.42,4.48,4.40,4.46, 4.53,4.50,4.61,4.51,4.62,4.54,4.56,4.67,4.47,4.69, 4.70,4.64,4.63,4.79,4.69,4.67,4.69,4.64,4.55,4.57, 4.59,4.71,4.70,4.58,4.79,4.67,4.64,4.69,4.69,4.76, 4.76,4.76,4.68,4.72,4.67,4.62,4.79,4.79,4.81,4.95, 0.86,0.87,0.84,0.93,0.95,0.96,1.03,1.04,1.11,1.13, 1.13,1.20,1.23,1.22,1.25,1.35,1.29,1.33,1.34,1.39, 1.41,1.42,1.47,1.44,1.55,1.53,1.54,1.55,1.64,1.61, 1.65,1.63,1.67,1.69,1.74,1.75,1.75,1.73,1.76,1.75, 1.78,1.80,1.81,1.91,1.87,1.82,1.94,2.00,1.99,1.94, 2.04,2.07,2.04,2.03,2.02,2.08,2.10,2.07,2.13,2.07, 2.13,2.23,2.11,2.14,2.20,2.18,2.22,2.30,2.28,2.21, 2.20,2.26,2.36,2.31,2.29,2.33,2.31,2.31,2.31,2.44, 2.49,2.51,2.47,2.46,2.47,2.47,2.49,2.59,2.46,2.61, 2.55,2.56,2.68,2.63,2.65,2.57,2.72,2.57,2.64,2.53, 2.59,2.72,2.77,2.77,2.74,2.80,2.76,2.75,2.68,2.81, 2.74,2.85,2.82,2.76,2.76,2.94,2.85,2.83,2.88,2.98, 2.86,2.88,2.89,3.06,2.93,2.88,3.06,3.06,2.90,3.03, 2.91,3.08,3.06,3.01,3.02,2.97,3.10,3.10,3.09,3.03, 3.09,3.18,3.11,3.07,3.26,3.23,3.25,3.33,3.30,3.14, 3.25,3.14,3.18,3.26,3.17,3.38,3.17,3.19,3.28,3.33, 3.28,3.45,3.30,3.34,3.40,3.38,3.25,3.40,3.33,3.39, 3.56,3.50,3.44,3.46,3.49,3.48,3.35,3.53,3.38,3.51, 3.56,3.51,3.70,3.49,3.67,3.61,3.52,3.52,3.55,3.51, 3.63,3.49,3.61,3.58,3.82,3.47,3.68,3.65,3.59,3.73, 3.70,3.64,3.71,3.55,3.75,3.81,3.85,3.76,3.69,3.66, 3.74,3.73,3.90,3.82,3.74,3.99,3.75,3.98,3.87,3.79, 3.86,4.05,3.93,3.92,3.91,3.92,3.95,3.92,3.83,4.02, 3.90,3.92,3.89,3.90,3.84,4.02,3.97,3.98,4.09,4.02, 3.93,3.95,4.00,3.99,4.08,4.12,4.02,4.23,4.19,4.05, 3.96,4.05,4.04,4.22,4.08,4.00,4.27,4.27,4.19,4.21, 4.11,4.19,4.15,4.28,4.21,4.23,4.18,4.16,4.35,4.27, 4.23,4.28,4.32,4.09,4.35,4.42,4.25,4.50,4.37,4.27, 4.52,4.42,4.23,4.41,4.43,4.27,4.42,4.52,4.24,4.35, 0.75,0.78,0.83,0.86,0.87,0.91,0.92,0.99,1.00,1.01, 1.05,1.06,1.09,1.14,1.15,1.15,1.25,1.22,1.21,1.24, 1.27,1.35,1.28,1.39,1.38,1.35,1.37,1.40,1.37,1.46, 1.47,1.46,1.53,1.57,1.58,1.52,1.60,1.59,1.67,1.58, 1.64,1.65,1.65,1.67,1.75,1.72,1.71,1.70,1.73,1.72, 1.78,1.77,1.81,1.89,1.91,1.95,1.89,1.93,1.96,1.97, 1.99,2.00,1.98,2.05,1.99,2.11,1.98,2.03,2.00,2.06, 2.04,2.13,2.02,2.17,2.14,2.06,2.21,2.09,2.29,2.22, 2.20,2.21,2.25,2.25,2.20,2.14,2.31,2.26,2.26,2.21, 2.34,2.33,2.29,2.37,2.24,2.40,2.30,2.40,2.43,2.54, 2.42,2.46,2.50,2.49,2.43,2.43,2.49,2.56,2.46,2.61, 2.49,2.59,2.53,2.55,2.61,2.64,2.56,2.69,2.63,2.58, 2.64,2.67,2.61,2.64,2.71,2.73,2.81,2.71,2.85,2.69, 2.84,2.79,2.80,2.73,2.79,2.83,2.77,2.77,2.83,2.93, 2.86,2.85,2.80,2.83,2.80,2.90,2.97,2.95,2.87,2.99, 2.99,3.06,2.98,3.08,2.95,3.02,2.95,3.06,3.00,3.03, 2.92,3.01,2.91,3.12,3.01,3.06,3.03,3.05,3.09,3.17, 3.06,3.11,3.19,3.08,3.17,3.10,3.10,3.19,3.22,3.10, 3.24,3.25,3.22,3.26,3.01,3.21,3.14,3.28,3.10,3.19, 3.19,3.15,3.26,3.34,3.27,3.28,3.42,3.32,3.31,3.28, 3.39,3.36,3.46,3.41,3.39,3.39,3.30,3.39,3.36,3.46, 3.50,3.48,3.40,3.48,3.38,3.52,3.52,3.43,3.49,3.48, 3.60,3.42,3.45,3.57,3.58,3.48,3.41,3.62,3.55,3.68, 3.66,3.61,3.66,3.69,3.67,3.60,3.55,3.64,3.60,3.51, 3.55,3.67,3.78,3.65,3.55,3.64,3.58,3.65,3.67,3.73, 3.69,3.72,3.89,3.74,3.89,3.81,3.64,3.78,3.73,3.82, 3.89,3.83,3.83,3.80,3.76,3.78,3.82,3.74,4.00,3.87, 3.80,4.01,3.89,3.75,3.97,3.99,3.92,3.98,3.94,3.97, 3.93,4.07,3.94,3.92,3.92,4.19,4.06,3.84,3.99,3.95, 0.69,0.70,0.72,0.75,0.79,0.85,0.84,0.86,0.87,0.92, 0.95,0.98,1.00,1.03,1.06,1.05,1.08,1.08,1.10,1.14, 1.22,1.16,1.26,1.17,1.24,1.22,1.32,1.32,1.28,1.29, 1.30,1.35,1.38,1.44,1.35,1.45,1.43,1.44,1.46,1.49, 1.48,1.45,1.48,1.53,1.51,1.52,1.56,1.57,1.60,1.62, 1.72,1.62,1.64,1.67,1.70,1.69,1.63,1.68,1.78,1.69, 1.71,1.76,1.75,1.81,1.86,1.75,1.79,1.90,1.89,1.87, 1.91,1.90,1.95,1.89,1.95,1.95,1.98,2.02,1.98,1.89, 2.01,1.96,2.02,2.02,1.91,2.07,2.08,2.03,2.09,2.05, 2.10,2.12,2.04,2.18,2.21,2.16,2.15,2.07,2.23,2.19, 2.08,2.26,2.18,2.26,2.22,2.16,2.27,2.23,2.20,2.19, 2.28,2.32,2.34,2.29,2.31,2.36,2.31,2.35,2.30,2.32, 2.40,2.37,2.46,2.44,2.48,2.43,2.48,2.37,2.45,2.56, 2.46,2.49,2.53,2.50,2.51,2.60,2.46,2.55,2.52,2.66, 2.54,2.47,2.51,2.58,2.57,2.60,2.61,2.57,2.61,2.70, 2.69,2.62,2.67,2.70,2.77,2.70,2.67,2.77,2.65,2.68, 2.80,2.69,2.72,2.72,2.74,2.63,2.80,2.79,2.82,2.82, 2.87,2.98,2.85,2.81,2.91,2.88,2.88,2.77,2.86,2.87, 2.91,2.85,2.84,2.93,2.86,2.97,2.91,3.06,3.00,2.99, 3.06,2.97,2.99,2.94,2.95,2.94,2.94,3.03,3.01,3.11, 2.98,3.14,3.26,3.06,3.01,3.11,3.09,3.01,3.13,3.10, 3.12,3.12,3.23,3.11,3.02,3.15,3.24,3.15,3.10,3.16, 3.11,3.29,3.13,3.28,3.16,3.22,3.20,3.22,3.23,3.24, 3.29,3.33,3.29,3.18,3.25,3.32,3.27,3.34,3.27,3.32, 3.29,3.34,3.34,3.37,3.40,3.45,3.28,3.50,3.29,3.46, 3.46,3.28,3.30,3.52,3.29,3.46,3.21,3.34,3.58,3.37, 3.57,3.48,3.46,3.55,3.50,3.57,3.56,3.63,3.45,3.47, 3.39,3.36,3.45,3.49,3.46,3.45,3.39,3.66,3.53,3.57, 3.47,3.51,3.61,3.61,3.51,3.65,3.53,3.61,3.43,3.58, 0.63,0.64,0.69,0.73,0.74,0.71,0.75,0.78,0.82,0.86, 0.83,0.89,0.89,0.95,0.97,0.90,1.01,0.99,1.02,1.06, 1.05,1.09,1.05,1.09,1.09,1.17,1.16,1.14,1.18,1.20, 1.22,1.20,1.28,1.22,1.26,1.33,1.26,1.29,1.33,1.30, 1.39,1.36,1.35,1.37,1.40,1.39,1.43,1.42,1.51,1.42, 1.45,1.48,1.52,1.49,1.50,1.47,1.50,1.59,1.54,1.59, 1.57,1.64,1.61,1.66,1.65,1.64,1.67,1.68,1.68,1.67, 1.71,1.67,1.78,1.67,1.68,1.73,1.75,1.82,1.72,1.78, 1.83,1.86,1.75,1.80,1.85,1.89,1.90,1.80,1.81,1.92, 1.88,1.88,1.97,1.98,1.83,1.90,2.00,1.94,1.90,1.96, 2.03,2.06,1.94,2.02,2.07,2.00,2.00,2.01,2.11,2.14, 2.09,2.11,2.09,2.09,2.14,2.21,2.17,2.15,2.14,2.10, 2.08,2.14,2.15,2.20,2.16,2.20,2.18,2.15,2.27,2.20, 2.35,2.22,2.24,2.20,2.27,2.31,2.20,2.30,2.27,2.37, 2.24,2.37,2.36,2.32,2.38,2.34,2.30,2.39,2.33,2.45, 2.32,2.38,2.38,2.51,2.42,2.48,2.45,2.44,2.54,2.49, 2.59,2.49,2.49,2.49,2.43,2.47,2.41,2.53,2.43,2.48, 2.49,2.49,2.61,2.55,2.51,2.59,2.53,2.59,2.59,2.61, 2.66,2.54,2.55,2.56,2.66,2.63,2.65,2.72,2.68,2.71, 2.70,2.66,2.69,2.80,2.78,2.82,2.72,2.71,2.74,2.76, 2.78,2.65,2.68,2.70,2.77,2.72,2.86,2.87,2.78,2.83, 2.79,2.72,2.85,2.85,2.91,2.82,2.91,2.76,2.90,2.88, 2.79,2.91,2.85,2.90,2.79,2.93,2.93,2.97,2.97,2.98, 2.83,2.91,2.91,2.99,2.86,2.79,3.05,3.02,3.00,2.98, 2.89,2.96,3.04,3.01,3.01,2.91,3.17,2.93,3.02,3.05, 3.15,3.01,2.99,3.04,3.09,3.04,3.13,2.95,3.14,2.98, 3.05,3.14,2.98,3.05,3.28,3.18,3.17,3.07,3.17,3.26, 3.13,3.11,3.23,3.08,3.07,3.07,3.17,3.30,3.13,3.25, 3.25,3.26,3.23,3.27,3.25,3.21,3.20,3.13,3.28,3.13, 0.56,0.59,0.62,0.63,0.66,0.67,0.67,0.71,0.74,0.78, 0.76,0.81,0.80,0.85,0.85,0.84,0.88,0.90,0.90,0.93, 0.96,0.92,0.96,0.99,0.94,0.99,1.04,1.05,1.09,1.07, 1.14,1.11,1.10,1.12,1.14,1.14,1.16,1.18,1.19,1.24, 1.22,1.20,1.21,1.22,1.25,1.28,1.33,1.32,1.26,1.30, 1.35,1.32,1.34,1.35,1.33,1.43,1.35,1.39,1.43,1.37, 1.39,1.50,1.51,1.42,1.43,1.48,1.51,1.53,1.50,1.53, 1.52,1.52,1.57,1.54,1.48,1.53,1.64,1.61,1.52,1.58, 1.59,1.69,1.65,1.69,1.65,1.76,1.69,1.68,1.71,1.69, 1.66,1.71,1.73,1.75,1.71,1.73,1.81,1.69,1.78,1.78, 1.80,1.81,1.79,1.84,1.86,1.81,1.80,1.80,1.85,1.86, 1.87,1.79,1.95,1.86,1.93,1.87,1.97,1.97,1.95,1.96, 1.93,1.95,1.89,1.94,1.98,1.99,1.97,2.04,2.03,2.09, 2.01,2.04,2.02,2.13,2.11,2.12,1.99,2.10,2.02,2.07, 2.15,2.15,2.03,2.02,2.16,2.06,2.21,2.12,2.09,2.14, 2.21,2.17,2.15,2.24,2.25,2.19,2.09,2.21,2.32,2.14, 2.24,2.28,2.25,2.20,2.28,2.20,2.33,2.20,2.27,2.31, 2.41,2.23,2.33,2.35,2.22,2.24,2.30,2.34,2.37,2.38, 2.45,2.26,2.32,2.43,2.37,2.33,2.42,2.46,2.38,2.34, 2.53,2.48,2.46,2.40,2.50,2.42,2.51,2.36,2.44,2.46, 2.55,2.52,2.47,2.51,2.45,2.50,2.46,2.55,2.55,2.57, 2.55,2.50,2.47,2.58,2.54,2.66,2.59,2.57,2.55,2.61, 2.50,2.57,2.56,2.65,2.62,2.62,2.65,2.60,2.79,2.60, 2.58,2.62,2.57,2.68,2.70,2.67,2.69,2.76,2.65,2.72, 2.72,2.65,2.64,2.68,2.78,2.74,2.87,2.85,2.89,2.71, 2.73,2.79,2.73,2.70,2.73,2.79,2.82,2.74,2.79,2.81, 2.77,2.88,2.81,2.79,2.81,2.81,2.97,2.73,2.78,2.91, 2.84,2.74,2.90,2.87,2.75,2.88,2.81,2.88,2.99,2.88, 2.83,2.97,2.87,2.97,2.92,2.99,3.00,2.97,2.80,3.07, 0.51,0.53,0.54,0.57,0.60,0.60,0.61,0.61,0.66,0.68, 0.73,0.73,0.71,0.80,0.74,0.78,0.77,0.80,0.81,0.82, 0.82,0.84,0.86,0.89,0.93,0.89,0.90,0.91,0.98,0.98, 0.96,1.01,0.99,1.00,0.96,1.01,1.07,1.03,1.06,1.04, 1.07,1.06,1.11,1.12,1.12,1.12,1.17,1.19,1.16,1.21, 1.15,1.21,1.23,1.22,1.23,1.28,1.26,1.20,1.27,1.30, 1.27,1.30,1.31,1.25,1.31,1.34,1.34,1.36,1.34,1.38, 1.39,1.39,1.38,1.46,1.40,1.46,1.43,1.49,1.46,1.44, 1.45,1.53,1.49,1.47,1.56,1.51,1.48,1.50,1.54,1.53, 1.52,1.55,1.53,1.61,1.58,1.50,1.60,1.53,1.56,1.59, 1.65,1.61,1.60,1.67,1.65,1.67,1.67,1.70,1.68,1.65, 1.64,1.72,1.74,1.68,1.71,1.69,1.72,1.75,1.79,1.71, 1.75,1.74,1.72,1.78,1.74,1.74,1.82,1.74,1.83,1.86, 1.78,1.84,1.80,1.85,1.81,1.94,1.92,1.95,1.87,1.89, 1.89,1.95,1.87,1.83,1.90,1.88,1.90,1.93,1.88,1.95, 1.97,2.00,2.02,2.02,1.91,1.95,2.01,1.95,1.94,2.01, 2.01,2.04,2.05,1.98,2.02,2.03,1.91,2.05,2.03,2.13, 2.02,2.08,1.93,2.13,2.14,2.19,2.04,2.06,2.17,2.09, 2.21,2.11,2.06,2.01,2.23,2.10,2.13,2.22,2.19,2.17, 2.15,2.19,2.23,2.17,2.18,2.19,2.10,2.24,2.23,2.18, 2.27,2.20,2.17,2.27,2.19,2.24,2.31,2.27,2.14,2.29, 2.39,2.30,2.22,2.31,2.33,2.30,2.32,2.30,2.32,2.38, 2.27,2.29,2.42,2.22,2.34,2.30,2.39,2.33,2.36,2.39, 2.42,2.32,2.35,2.33,2.46,2.36,2.42,2.41,2.40,2.43, 2.43,2.36,2.43,2.42,2.42,2.49,2.35,2.48,2.46,2.45, 2.51,2.39,2.56,2.43,2.47,2.47,2.42,2.45,2.52,2.56, 2.60,2.62,2.55,2.55,2.54,2.54,2.51,2.57,2.49,2.53, 2.60,2.61,2.62,2.53,2.74,2.59,2.58,2.68,2.56,2.56, 2.60,2.71,2.62,2.55,2.62,2.67,2.59,2.58,2.70,2.59, 0.44,0.49,0.47,0.49,0.51,0.51,0.53,0.58,0.61,0.60, 0.65,0.64,0.65,0.64,0.65,0.73,0.72,0.70,0.73,0.71, 0.79,0.80,0.75,0.82,0.79,0.83,0.79,0.84,0.86,0.88, 0.86,0.93,0.87,0.90,0.91,0.93,0.91,0.96,0.95,0.96, 0.98,1.01,0.99,1.05,1.01,1.01,1.05,1.03,1.03,1.05, 1.07,1.06,1.06,1.03,1.10,1.06,1.14,1.12,1.18,1.18, 1.13,1.13,1.18,1.13,1.17,1.23,1.25,1.19,1.25,1.26, 1.24,1.23,1.25,1.27,1.22,1.26,1.29,1.23,1.28,1.26, 1.26,1.29,1.32,1.32,1.35,1.32,1.38,1.41,1.36,1.33, 1.34,1.35,1.38,1.37,1.38,1.44,1.46,1.38,1.42,1.44, 1.37,1.46,1.41,1.46,1.51,1.44,1.49,1.47,1.50,1.52, 1.56,1.56,1.54,1.57,1.61,1.51,1.54,1.50,1.64,1.59, 1.60,1.49,1.56,1.57,1.66,1.64,1.61,1.56,1.64,1.64, 1.63,1.71,1.62,1.68,1.63,1.68,1.68,1.73,1.72,1.64, 1.67,1.68,1.71,1.74,1.66,1.66,1.68,1.77,1.70,1.70, 1.74,1.80,1.69,1.82,1.80,1.81,1.78,1.79,1.79,1.80, 1.72,1.80,1.81,1.83,1.79,1.82,1.76,1.78,1.83,1.83, 1.88,1.75,1.83,1.82,1.87,1.91,1.93,1.87,1.90,1.89, 1.89,1.87,1.94,1.93,1.93,1.91,1.92,1.90,2.05,1.85, 1.95,1.89,1.94,1.92,1.97,2.02,1.97,2.07,1.98,1.97, 1.95,1.95,1.94,2.04,2.11,2.08,2.05,1.97,2.00,2.05, 2.02,2.02,2.13,2.05,2.06,2.09,2.05,2.06,2.03,2.07, 2.03,2.04,2.10,2.11,2.15,2.03,2.09,2.05,2.20,2.16, 2.15,2.13,2.05,2.16,2.19,2.18,2.20,2.09,2.13,2.15, 2.09,2.19,2.14,2.16,2.25,2.15,2.21,2.11,2.17,2.26, 2.15,2.26,2.30,2.22,2.29,2.22,2.27,2.29,2.31,2.25, 2.26,2.22,2.27,2.27,2.25,2.22,2.28,2.30,2.36,2.34, 2.28,2.35,2.25,2.33,2.22,2.37,2.33,2.35,2.36,2.34, 2.33,2.26,2.32,2.33,2.38,2.44,2.37,2.41,2.31,2.32, 0.41,0.43,0.45,0.45,0.47,0.49,0.51,0.51,0.54,0.53, 0.61,0.59,0.57,0.60,0.60,0.59,0.60,0.67,0.66,0.68, 0.65,0.69,0.72,0.70,0.71,0.74,0.73,0.78,0.77,0.82, 0.78,0.79,0.81,0.80,0.83,0.82,0.83,0.87,0.86,0.90, 0.91,0.89,0.91,0.92,0.93,0.92,0.90,0.92,0.94,0.94, 0.91,0.95,0.95,0.95,0.97,0.99,1.01,0.99,1.06,1.00, 1.05,1.05,1.03,1.04,1.04,1.07,1.09,1.11,1.07,1.13, 1.09,1.14,1.14,1.14,1.07,1.19,1.17,1.15,1.18,1.18, 1.21,1.13,1.20,1.13,1.18,1.21,1.23,1.18,1.20,1.24, 1.24,1.24,1.27,1.28,1.30,1.23,1.23,1.30,1.24,1.28, 1.27,1.36,1.33,1.32,1.33,1.28,1.30,1.32,1.31,1.35, 1.33,1.34,1.40,1.33,1.39,1.34,1.38,1.30,1.40,1.42, 1.39,1.41,1.40,1.41,1.46,1.44,1.47,1.43,1.44,1.45, 1.44,1.50,1.46,1.44,1.44,1.48,1.47,1.48,1.46,1.53, 1.53,1.51,1.57,1.46,1.55,1.54,1.52,1.57,1.56,1.54, 1.55,1.55,1.58,1.61,1.58,1.59,1.56,1.62,1.54,1.62, 1.55,1.63,1.62,1.61,1.60,1.60,1.67,1.64,1.67,1.66, 1.69,1.53,1.69,1.67,1.63,1.59,1.63,1.62,1.68,1.70, 1.73,1.67,1.69,1.74,1.72,1.71,1.72,1.74,1.70,1.78, 1.73,1.76,1.74,1.67,1.78,1.72,1.74,1.69,1.82,1.83, 1.80,1.80,1.76,1.81,1.75,1.75,1.80,1.81,1.83,1.82, 1.89,1.87,1.83,1.77,1.81,1.84,1.84,1.84,1.81,1.87, 1.82,1.88,1.85,1.82,1.90,1.87,1.84,1.92,1.89,1.88, 1.91,1.89,1.93,1.92,2.01,1.96,1.92,1.85,1.91,1.98, 1.98,1.98,1.98,1.92,1.91,1.97,1.96,1.95,1.96,1.92, 2.05,2.02,1.96,1.99,2.12,2.01,1.89,2.01,1.99,2.07, 1.94,2.05,2.05,1.99,2.10,2.08,1.98,2.09,1.98,1.99, 2.02,2.06,2.05,2.03,2.15,2.10,2.16,2.15,2.14,2.06, 2.10,2.02,2.14,2.13,2.06,2.11,2.19,2.00,2.09,2.16, 0.33,0.38,0.41,0.45,0.39,0.42,0.43,0.45,0.47,0.52, 0.47,0.50,0.55,0.53,0.54,0.56,0.54,0.55,0.60,0.62, 0.60,0.60,0.62,0.63,0.63,0.66,0.65,0.68,0.72,0.68, 0.72,0.74,0.71,0.73,0.76,0.73,0.74,0.77,0.77,0.77, 0.77,0.76,0.78,0.82,0.88,0.82,0.79,0.82,0.89,0.80, 0.83,0.87,0.86,0.85,0.92,0.89,0.88,0.90,0.89,0.88, 0.87,0.97,0.95,0.94,0.95,0.96,0.96,0.94,1.00,0.96, 1.01,1.01,1.03,1.07,1.03,1.01,1.09,1.02,1.01,1.05, 1.00,1.03,1.07,1.05,1.09,1.11,1.04,1.08,1.09,1.12, 1.12,1.09,1.07,1.06,1.12,1.10,1.12,1.14,1.15,1.19, 1.17,1.15,1.17,1.19,1.20,1.14,1.22,1.12,1.17,1.18, 1.24,1.27,1.19,1.16,1.19,1.24,1.27,1.25,1.22,1.26, 1.25,1.21,1.28,1.33,1.32,1.28,1.31,1.26,1.26,1.31, 1.26,1.36,1.31,1.28,1.30,1.31,1.33,1.28,1.36,1.31, 1.36,1.34,1.37,1.32,1.39,1.28,1.42,1.37,1.41,1.39, 1.43,1.42,1.39,1.43,1.39,1.44,1.45,1.44,1.46,1.44, 1.46,1.49,1.48,1.44,1.41,1.41,1.46,1.44,1.51,1.45, 1.44,1.46,1.51,1.46,1.52,1.52,1.52,1.53,1.53,1.44, 1.51,1.60,1.52,1.51,1.53,1.54,1.53,1.55,1.52,1.59, 1.58,1.56,1.60,1.58,1.59,1.62,1.61,1.58,1.58,1.56, 1.59,1.56,1.59,1.55,1.59,1.63,1.57,1.61,1.68,1.60, 1.65,1.65,1.68,1.62,1.69,1.65,1.64,1.69,1.72,1.70, 1.68,1.69,1.61,1.66,1.70,1.76,1.73,1.68,1.68,1.75, 1.70,1.72,1.70,1.68,1.73,1.82,1.73,1.75,1.69,1.74, 1.78,1.77,1.75,1.78,1.77,1.80,1.70,1.72,1.71,1.76, 1.80,1.72,1.76,1.77,1.84,1.75,1.83,1.76,1.79,1.76, 1.75,1.78,1.79,1.78,1.84,1.77,1.88,1.78,1.85,1.80, 1.85,1.88,1.84,1.86,1.81,1.92,1.83,1.78,1.88,1.90, 1.95,1.86,1.87,1.87,1.93,1.95,1.91,1.95,1.93,1.95, 0.31,0.31,0.35,0.37,0.39,0.38,0.39,0.38,0.42,0.43, 0.44,0.46,0.47,0.52,0.50,0.49,0.54,0.51,0.51,0.55, 0.56,0.55,0.56,0.56,0.57,0.61,0.59,0.61,0.57,0.61, 0.61,0.68,0.67,0.60,0.67,0.67,0.69,0.68,0.66,0.66, 0.69,0.73,0.71,0.74,0.76,0.70,0.72,0.75,0.72,0.75, 0.79,0.79,0.79,0.75,0.81,0.82,0.82,0.85,0.86,0.84, 0.82,0.80,0.83,0.85,0.86,0.82,0.89,0.87,0.86,0.86, 0.88,0.85,0.90,0.90,0.92,0.89,0.89,0.91,0.94,0.94, 0.92,0.97,0.95,0.95,0.95,0.94,0.99,0.94,0.98,0.96, 1.02,1.01,0.97,1.02,1.01,1.05,1.00,1.02,1.01,1.03, 1.00,1.04,1.02,1.07,1.04,0.98,1.07,1.08,1.09,1.08, 1.06,1.06,1.05,1.14,1.12,1.09,1.05,1.12,1.18,1.17, 1.08,1.16,1.13,1.14,1.17,1.15,1.16,1.11,1.20,1.20, 1.22,1.16,1.22,1.16,1.20,1.16,1.20,1.19,1.18,1.21, 1.19,1.18,1.15,1.17,1.22,1.18,1.26,1.29,1.20,1.23, 1.26,1.19,1.24,1.29,1.19,1.33,1.29,1.28,1.24,1.26, 1.29,1.28,1.26,1.25,1.32,1.29,1.29,1.36,1.29,1.35, 1.33,1.31,1.33,1.36,1.34,1.34,1.34,1.31,1.33,1.37, 1.42,1.40,1.38,1.40,1.33,1.32,1.35,1.40,1.38,1.42, 1.30,1.46,1.42,1.35,1.44,1.36,1.44,1.42,1.37,1.43, 1.43,1.42,1.43,1.45,1.42,1.50,1.47,1.46,1.46,1.51, 1.42,1.47,1.43,1.46,1.43,1.44,1.50,1.45,1.51,1.54, 1.45,1.55,1.51,1.53,1.49,1.54,1.48,1.48,1.51,1.51, 1.52,1.50,1.49,1.53,1.56,1.53,1.57,1.55,1.58,1.51, 1.54,1.60,1.50,1.55,1.62,1.56,1.49,1.52,1.59,1.62, 1.61,1.57,1.58,1.59,1.60,1.63,1.66,1.61,1.57,1.61, 1.70,1.60,1.61,1.61,1.57,1.66,1.64,1.59,1.65,1.59, 1.57,1.60,1.72,1.61,1.69,1.59,1.63,1.67,1.70,1.62, 1.68,1.70,1.69,1.72,1.78,1.71,1.60,1.64,1.75,1.70, 0.27,0.30,0.29,0.35,0.33,0.37,0.34,0.36,0.39,0.37, 0.41,0.43,0.42,0.40,0.46,0.43,0.44,0.46,0.46,0.47, 0.46,0.47,0.50,0.50,0.50,0.52,0.54,0.51,0.53,0.53, 0.53,0.58,0.57,0.56,0.59,0.60,0.64,0.60,0.63,0.63, 0.60,0.61,0.68,0.67,0.65,0.65,0.68,0.66,0.67,0.66, 0.69,0.70,0.70,0.71,0.73,0.70,0.74,0.73,0.73,0.74, 0.75,0.78,0.78,0.75,0.76,0.78,0.76,0.79,0.78,0.80, 0.80,0.78,0.77,0.78,0.82,0.82,0.80,0.79,0.80,0.88, 0.83,0.86,0.85,0.84,0.79,0.86,0.87,0.85,0.88,0.87, 0.86,0.86,0.85,0.91,0.88,0.91,0.92,0.93,0.86,0.87, 0.92,0.94,0.96,0.93,0.95,0.91,0.96,0.97,0.96,0.92, 0.91,0.92,0.98,0.99,0.99,0.94,0.93,0.99,1.06,0.99, 0.99,1.01,0.98,1.04,1.03,1.05,1.04,1.04,1.03,1.02, 1.06,1.05,1.06,1.08,1.05,1.08,1.08,1.06,1.08,1.10, 1.09,1.09,1.09,1.09,1.03,1.06,1.04,1.13,1.11,1.07, 1.11,1.10,1.11,1.09,1.11,1.11,1.15,1.21,1.14,1.12, 1.17,1.13,1.16,1.15,1.16,1.16,1.15,1.17,1.14,1.21, 1.16,1.16,1.19,1.17,1.21,1.19,1.26,1.22,1.24,1.16, 1.22,1.19,1.22,1.24,1.20,1.25,1.21,1.20,1.22,1.26, 1.22,1.18,1.20,1.28,1.24,1.28,1.24,1.22,1.29,1.28, 1.25,1.25,1.26,1.25,1.30,1.27,1.24,1.28,1.32,1.30, 1.38,1.35,1.29,1.30,1.39,1.34,1.27,1.30,1.32,1.32, 1.33,1.34,1.34,1.33,1.37,1.37,1.32,1.35,1.34,1.36, 1.41,1.39,1.39,1.33,1.35,1.38,1.37,1.40,1.39,1.43, 1.32,1.37,1.32,1.49,1.39,1.37,1.43,1.41,1.42,1.43, 1.37,1.35,1.39,1.41,1.43,1.40,1.47,1.45,1.45,1.43, 1.45,1.43,1.50,1.50,1.45,1.46,1.46,1.49,1.51,1.49, 1.47,1.51,1.48,1.49,1.51,1.44,1.52,1.40,1.45,1.48, 1.50,1.57,1.52,1.49,1.50,1.51,1.52,1.53,1.50,1.54, 1.18,1.22,1.27,1.31,1.36,1.43,1.47,1.47,1.53,1.52, 1.66,1.65,1.69,1.69,1.78,1.80,1.80,1.86,1.97,1.95, 1.90,1.95,2.03,2.05,2.07,2.10,2.18,2.21,2.17,2.22, 2.22,2.29,2.46,2.38,2.37,2.44,2.42,2.44,2.44,2.50, 2.57,2.49,2.51,2.57,2.63,2.63,2.70,2.69,2.69,2.77, 2.82,2.73,2.84,2.86,2.84,2.82,2.87,2.85,2.93,3.01, 2.94,3.03,3.00,3.10,3.02,3.09,3.13,3.12,3.24,3.13, 3.30,3.21,3.24,3.28,3.41,3.25,3.37,3.23,3.33,3.35, 3.34,3.38,3.54,3.41,3.40,3.45,3.57,3.58,3.45,3.41, 3.57,3.43,3.59,3.73,3.52,3.59,3.64,3.50,3.74,3.68, 3.74,3.57,3.61,3.71,3.78,3.83,3.72,3.81,3.78,3.81, 3.67,3.80,3.87,3.96,3.96,4.03,4.12,3.97,3.99,4.10, 4.11,4.13,4.10,3.96,3.98,4.08,4.29,4.11,4.19,4.03, 4.22,4.08,4.38,4.24,4.23,4.19,4.41,4.31,4.30,4.34, 4.47,4.45,4.43,4.31,4.51,4.33,4.45,4.48,4.40,4.38, 4.48,4.42,4.58,4.52,4.57,4.65,4.43,4.47,4.60,4.49, 4.35,4.68,4.66,4.69,4.85,4.81,4.78,4.77,4.65,4.79, 4.90,4.76,4.73,4.88,4.90,4.89,4.61,4.85,4.97,4.98, 4.93,5.00,4.90,4.85,5.00,4.84,4.86,4.94,4.95,4.65, 4.87,5.01,5.17,5.11,5.02,4.82,5.15,5.13,5.15,5.13, 5.21,5.38,5.00,5.22,5.14,5.13,5.21,5.12,5.23,5.25, 5.09,5.14,5.39,5.50,5.27,5.25,5.33,5.29,5.44,5.49, 5.36,5.53,5.29,5.74,5.26,5.57,5.41,5.59,5.58,5.37, 5.41,5.39,5.66,5.59,5.45,5.61,5.67,5.60,5.61,5.85, 5.72,5.69,5.57,5.49,5.75,5.65,5.81,5.84,5.61,5.94, 5.74,5.72,5.90,5.80,5.64,5.90,5.72,5.67,6.14,5.62, 5.84,5.67,5.85,5.81,5.72,5.92,5.92,5.96,6.12,5.98, 5.90,5.88,5.88,5.96,6.06,6.26,6.09,6.02,5.85,6.15, 5.89,6.03,5.99,6.02,6.08,6.42,6.13,6.09,6.13,6.17, 1.09,1.12,1.20,1.24,1.27,1.34,1.35,1.40,1.46,1.46, 1.45,1.55,1.52,1.63,1.63,1.70,1.68,1.79,1.85,1.80, 1.79,1.94,1.98,1.94,1.92,2.01,2.01,2.10,1.98,2.21, 2.13,2.15,2.11,2.13,2.26,2.12,2.29,2.21,2.28,2.35, 2.32,2.32,2.31,2.47,2.42,2.53,2.53,2.58,2.62,2.59, 2.65,2.62,2.72,2.71,2.71,2.71,2.77,2.74,2.83,2.89, 2.67,2.82,2.80,2.84,2.91,2.96,2.87,2.94,2.96,3.02, 3.12,3.01,3.01,3.06,2.96,3.06,3.18,3.09,3.17,3.23, 3.27,3.22,3.29,3.16,3.20,3.33,3.28,3.21,3.32,3.30, 3.53,3.28,3.33,3.45,3.40,3.51,3.37,3.53,3.53,3.34, 3.55,3.43,3.57,3.59,3.48,3.50,3.59,3.47,3.67,3.47, 3.62,3.71,3.67,3.82,3.73,3.73,3.66,3.71,3.84,4.00, 3.69,3.87,3.74,3.74,3.98,3.89,3.96,3.92,3.89,3.89, 3.88,4.04,4.00,4.04,4.05,3.95,4.16,4.16,3.98,3.96, 4.12,4.08,4.08,4.16,4.28,4.09,4.24,4.02,4.14,4.18, 4.10,4.30,4.21,4.23,4.07,4.43,4.26,4.10,4.44,4.26, 4.19,4.29,4.31,4.36,4.51,4.49,4.53,4.42,4.40,4.54, 4.48,4.44,4.54,4.55,4.50,4.53,4.52,4.53,4.49,4.60, 4.78,4.53,4.60,4.49,4.75,4.57,4.88,4.75,4.75,4.79, 4.77,4.73,4.96,4.54,4.87,4.96,4.87,4.68,4.83,5.00, 4.79,4.69,4.86,4.88,4.99,4.83,5.03,4.93,4.82,5.11, 5.04,4.82,4.84,4.95,4.94,5.06,4.97,5.03,5.01,4.95, 5.21,5.09,5.12,5.10,5.12,5.11,5.22,5.27,5.33,5.32, 5.17,5.18,5.13,5.27,5.20,5.40,5.30,5.42,5.07,5.21, 5.31,5.22,5.39,5.07,5.30,5.24,5.28,5.26,5.36,5.18, 5.21,5.33,5.36,5.42,5.31,5.31,5.35,5.55,5.37,5.43, 5.53,5.28,5.38,5.50,5.60,5.48,5.57,5.58,5.51,5.52, 5.58,5.78,5.62,5.74,5.83,5.79,5.63,5.41,5.48,5.80, 5.81,5.74,5.50,5.83,5.64,5.84,5.84,5.97,5.77,5.77, 1.02,1.03,1.09,1.14,1.23,1.26,1.26,1.31,1.31,1.38, 1.43,1.43,1.50,1.50,1.62,1.60,1.65,1.68,1.68,1.69, 1.77,1.70,1.79,1.73,1.83,1.88,1.89,1.87,1.99,1.98, 1.96,2.03,2.00,2.10,2.04,2.14,2.18,2.14,2.17,2.27, 2.14,2.23,2.28,2.38,2.32,2.34,2.31,2.40,2.39,2.35, 2.45,2.43,2.53,2.51,2.49,2.57,2.52,2.58,2.56,2.62, 2.58,2.68,2.62,2.65,2.71,2.77,2.77,2.85,2.60,2.82, 2.73,2.91,2.82,2.87,2.87,2.96,2.98,2.91,2.92,2.84, 2.88,3.02,2.88,2.98,3.01,3.06,3.06,3.07,2.98,3.09, 3.21,3.27,3.14,3.06,3.20,3.22,3.26,3.17,3.21,3.17, 3.14,3.21,3.23,3.28,3.25,3.32,3.30,3.36,3.36,3.43, 3.35,3.50,3.37,3.49,3.38,3.48,3.51,3.50,3.46,3.47, 3.62,3.70,3.62,3.61,3.48,3.64,3.66,3.78,3.68,3.65, 3.68,3.56,3.47,3.87,3.72,3.86,3.72,3.57,3.76,3.73, 3.78,3.99,3.80,3.84,3.81,3.84,3.99,3.87,3.97,4.03, 3.88,3.95,4.00,4.07,3.90,3.87,4.03,3.94,4.03,3.99, 3.98,4.10,4.06,4.08,4.13,4.28,4.01,4.03,3.88,4.15, 4.08,4.07,4.43,4.20,4.30,4.28,4.26,4.22,4.24,4.39, 4.25,4.23,4.12,4.29,4.48,4.25,4.31,4.16,4.42,4.33, 4.53,4.38,4.54,4.58,4.39,4.38,4.48,4.52,4.56,4.27, 4.65,4.60,4.52,4.67,4.69,4.46,4.49,4.81,4.62,4.43, 4.62,4.67,4.89,4.52,4.55,4.68,4.72,4.56,4.68,4.61, 4.78,4.70,4.79,4.89,4.82,4.85,4.83,4.84,4.92,4.90, 4.66,4.57,5.13,4.86,4.86,4.79,4.93,4.74,4.98,5.19, 4.95,4.94,4.81,5.05,4.94,5.05,5.15,5.00,5.04,4.76, 5.13,5.06,5.05,4.93,5.13,4.95,5.14,5.01,5.08,5.13, 4.90,5.00,4.93,5.01,5.03,4.96,5.22,5.01,5.31,5.28, 5.19,5.25,5.32,5.35,5.36,5.37,5.46,5.39,5.27,5.40, 5.22,5.44,5.02,5.32,5.36,5.21,5.24,5.29,5.37,5.27, 0.91,1.01,1.02,1.05,1.11,1.12,1.18,1.16,1.22,1.24, 1.25,1.39,1.37,1.44,1.43,1.39,1.46,1.49,1.57,1.54, 1.54,1.59,1.68,1.70,1.71,1.70,1.77,1.76,1.71,1.84, 1.81,1.86,1.84,1.94,1.95,1.97,1.96,2.08,2.03,1.95, 2.16,2.06,2.00,2.08,2.12,2.15,2.22,2.15,2.16,2.26, 2.26,2.25,2.33,2.34,2.36,2.20,2.26,2.31,2.42,2.40, 2.28,2.34,2.47,2.45,2.50,2.54,2.42,2.51,2.62,2.55, 2.46,2.61,2.52,2.66,2.66,2.67,2.69,2.71,2.83,2.67, 2.72,2.74,2.67,2.88,2.75,2.82,2.92,2.82,2.91,2.86, 2.89,2.96,2.83,2.72,3.04,2.86,2.98,3.01,2.99,3.15, 3.01,3.13,2.97,2.96,3.15,3.06,3.26,3.03,3.15,3.18, 3.11,3.14,3.06,3.01,3.12,3.12,3.38,3.29,3.27,3.38, 3.22,3.40,3.28,3.39,3.16,3.27,3.28,3.52,3.53,3.48, 3.52,3.26,3.46,3.38,3.49,3.39,3.47,3.53,3.44,3.45, 3.43,3.46,3.41,3.67,3.58,3.61,3.71,3.69,3.59,3.51, 3.70,3.45,3.59,3.65,3.68,3.73,3.71,3.73,3.82,3.82, 3.73,3.86,3.80,3.90,3.78,3.91,3.78,3.98,3.76,3.84, 3.84,3.99,3.91,3.93,3.85,3.95,4.03,3.85,4.20,3.93, 3.94,3.96,3.89,3.86,3.90,4.15,3.98,3.99,4.11,4.04, 4.02,4.18,4.05,4.10,4.20,4.22,4.12,4.06,4.13,4.00, 4.09,4.11,4.15,4.20,4.39,4.17,4.27,4.08,4.51,4.43, 4.18,4.33,4.02,4.27,4.14,4.38,4.42,4.33,4.27,4.56, 4.43,4.64,4.22,4.40,4.32,4.61,4.38,4.37,4.46,4.48, 4.60,4.55,4.54,4.45,4.69,4.55,4.49,4.47,4.44,4.48, 4.71,4.44,4.38,4.49,4.45,4.49,4.69,4.58,4.64,4.77, 4.66,4.67,4.69,4.77,4.62,4.60,4.71,4.67,4.80,4.73, 4.56,4.69,4.83,4.78,4.64,4.71,4.70,4.80,4.69,4.98, 4.81,4.93,5.05,4.86,4.96,5.13,4.87,4.88,4.91,5.07, 5.08,5.11,5.05,4.93,4.92,4.90,4.97,5.04,4.98,4.89, 0.92,0.94,0.94,0.98,1.02,1.03,1.09,1.15,1.12,1.18, 1.17,1.23,1.28,1.28,1.31,1.38,1.36,1.42,1.39,1.44, 1.47,1.48,1.53,1.56,1.55,1.61,1.59,1.64,1.65,1.64, 1.63,1.75,1.74,1.77,1.72,1.87,1.85,1.79,1.79,1.88, 1.94,1.97,1.93,1.97,1.95,1.96,2.05,2.00,2.01,1.99, 2.06,2.08,2.11,2.02,2.12,2.19,2.29,2.19,2.18,2.22, 2.23,2.25,2.25,2.23,2.34,2.35,2.32,2.36,2.35,2.40, 2.37,2.42,2.44,2.53,2.45,2.45,2.49,2.43,2.48,2.38, 2.60,2.51,2.59,2.52,2.60,2.74,2.61,2.62,2.71,2.68, 2.55,2.74,2.75,2.71,2.66,2.77,2.77,2.64,2.77,2.70, 2.79,2.74,2.84,2.79,2.85,2.85,2.85,2.88,2.83,2.97, 2.96,2.88,2.97,3.01,3.11,3.14,2.91,3.09,2.96,2.95, 3.01,3.07,2.87,3.04,3.12,3.20,3.12,3.16,3.10,3.06, 3.11,3.13,3.17,3.13,3.19,3.24,3.15,3.22,3.11,3.26, 3.22,3.29,3.30,3.35,3.22,3.30,3.29,3.37,3.45,3.28, 3.46,3.35,3.33,3.41,3.29,3.33,3.44,3.38,3.38,3.51, 3.37,3.24,3.54,3.49,3.59,3.45,3.42,3.55,3.56,3.55, 3.49,3.68,3.62,3.67,3.67,3.53,3.53,3.64,3.60,3.60, 3.61,3.77,3.63,3.69,3.64,3.78,3.78,3.78,3.68,3.78, 3.77,3.78,3.84,3.77,3.73,3.67,3.86,3.88,3.86,3.88, 3.90,3.91,3.95,3.91,3.76,3.89,3.92,3.96,3.95,4.02, 3.85,3.94,4.00,3.84,3.74,3.98,4.15,3.97,4.04,4.22, 4.06,4.11,4.19,4.00,4.04,4.03,4.03,3.89,4.16,4.14, 4.17,4.27,4.08,4.19,3.99,4.32,4.28,4.18,4.01,4.15, 4.30,4.30,4.22,4.10,4.35,4.25,4.08,4.15,4.30,4.27, 4.29,4.17,4.40,4.36,4.44,4.48,4.34,4.42,4.22,4.36, 4.37,4.41,4.42,4.26,4.49,4.34,4.36,4.36,4.34,4.35, 4.53,4.71,4.50,4.65,4.63,4.46,4.48,4.51,4.50,4.63, 4.57,4.50,4.35,4.54,4.62,4.55,4.70,4.40,4.56,4.56, 0.75,0.81,0.88,0.89,0.93,0.93,0.99,1.01,1.07,1.07, 1.08,1.13,1.15,1.18,1.18,1.21,1.31,1.33,1.31,1.32, 1.40,1.40,1.42,1.43,1.37,1.46,1.47,1.53,1.49,1.57, 1.54,1.52,1.53,1.66,1.57,1.61,1.74,1.69,1.74,1.73, 1.72,1.75,1.77,1.85,1.84,1.83,1.83,1.89,1.87,1.88, 1.86,1.90,1.94,1.86,1.91,1.93,2.08,1.98,2.03,2.00, 2.08,2.07,2.10,2.05,2.08,2.11,2.09,2.11,2.09,2.15, 2.11,2.18,2.20,2.17,2.20,2.25,2.31,2.24,2.31,2.25, 2.27,2.33,2.38,2.37,2.38,2.37,2.51,2.39,2.30,2.37, 2.41,2.44,2.46,2.52,2.45,2.58,2.54,2.40,2.52,2.62, 2.56,2.59,2.56,2.67,2.59,2.45,2.72,2.76,2.63,2.58, 2.64,2.66,2.69,2.67,2.79,2.65,2.74,2.80,2.73,2.88, 2.79,2.80,2.82,2.84,2.75,2.86,2.95,2.86,2.94,2.88, 2.89,2.98,2.90,2.91,2.86,2.78,2.88,3.04,3.00,2.98, 2.95,2.92,3.03,2.95,3.06,2.95,3.14,3.02,3.12,3.06, 3.10,3.20,3.09,2.96,3.08,3.08,3.14,3.09,3.18,3.21, 3.18,3.18,3.32,3.24,3.24,3.21,3.18,3.20,3.17,3.32, 3.18,3.23,3.22,3.22,3.21,3.38,3.28,3.34,3.36,3.39, 3.34,3.40,3.31,3.28,3.29,3.48,3.56,3.34,3.61,3.36, 3.45,3.42,3.42,3.40,3.65,3.47,3.54,3.48,3.53,3.52, 3.45,3.58,3.45,3.47,3.56,3.65,3.61,3.60,3.56,3.67, 3.45,3.63,3.57,3.58,3.51,3.60,3.66,3.66,3.75,3.74, 3.57,3.58,3.62,3.72,3.67,3.75,3.72,3.79,3.74,3.78, 3.75,3.83,3.73,3.73,3.89,3.91,3.78,3.85,3.81,3.74, 3.91,3.93,3.83,3.93,3.94,3.66,3.81,3.87,4.02,4.03, 4.11,3.80,3.98,3.92,3.99,3.97,4.15,3.97,4.13,4.03, 4.03,4.03,3.97,4.03,4.04,4.10,4.00,3.84,3.89,3.92, 4.05,4.15,4.01,4.05,4.07,3.95,4.06,4.15,4.30,4.24, 4.06,4.16,4.32,4.05,4.15,4.28,4.04,4.07,4.04,4.35, 0.74,0.76,0.78,0.85,0.83,0.86,0.90,0.93,0.99,0.99, 1.05,1.05,1.06,1.10,1.10,1.13,1.15,1.11,1.18,1.16, 1.21,1.24,1.27,1.26,1.40,1.31,1.32,1.38,1.39,1.44, 1.45,1.45,1.45,1.45,1.44,1.58,1.42,1.56,1.53,1.60, 1.59,1.60,1.57,1.62,1.56,1.69,1.71,1.74,1.72,1.76, 1.73,1.76,1.75,1.77,1.79,1.77,1.86,1.85,1.85,1.83, 1.92,1.89,1.86,1.95,1.93,1.98,1.89,1.98,1.94,2.02, 2.04,1.97,1.96,1.99,2.07,2.02,2.17,2.13,2.05,2.05, 2.16,2.09,2.16,2.25,2.13,2.22,2.18,2.22,2.26,2.33, 2.24,2.26,2.28,2.15,2.30,2.34,2.29,2.30,2.44,2.28, 2.39,2.35,2.39,2.45,2.32,2.37,2.38,2.31,2.42,2.42, 2.41,2.42,2.54,2.57,2.45,2.45,2.52,2.52,2.38,2.53, 2.68,2.57,2.54,2.61,2.54,2.52,2.56,2.67,2.54,2.59, 2.61,2.63,2.62,2.63,2.68,2.62,2.77,2.60,2.69,2.71, 2.84,2.72,2.70,2.80,2.79,2.72,2.83,2.91,2.77,2.74, 2.81,2.85,2.75,2.78,2.97,2.87,2.88,2.77,2.84,2.84, 2.84,2.76,2.89,3.02,3.00,2.90,3.01,2.99,3.06,2.98, 2.98,3.10,3.08,2.95,3.12,3.09,3.06,3.09,2.96,3.23, 3.04,3.14,3.08,2.98,3.03,3.03,3.21,3.09,3.13,3.21, 3.16,3.17,3.14,3.19,3.02,3.29,3.25,3.25,3.28,3.19, 3.33,3.23,3.21,3.31,3.29,3.33,3.26,3.24,3.28,3.31, 3.46,3.31,3.15,3.25,3.45,3.36,3.32,3.26,3.43,3.34, 3.31,3.37,3.30,3.52,3.43,3.37,3.43,3.38,3.35,3.40, 3.54,3.48,3.54,3.55,3.54,3.60,3.42,3.53,3.51,3.44, 3.42,3.48,3.58,3.56,3.65,3.60,3.55,3.63,3.58,3.62, 3.59,3.52,3.60,3.60,3.55,3.53,3.75,3.62,3.74,3.76, 3.61,3.65,3.71,3.69,3.62,3.73,3.68,3.67,3.69,3.69, 3.76,3.66,3.69,3.71,3.80,3.71,3.78,3.75,3.73,3.81, 3.93,3.88,3.86,3.79,3.68,3.91,3.83,3.83,3.81,3.72, 0.67,0.70,0.71,0.73,0.79,0.82,0.83,0.84,0.86,0.90, 0.86,0.93,0.98,0.94,0.99,1.00,1.05,1.10,1.05,1.05, 1.09,1.17,1.16,1.16,1.18,1.23,1.21,1.22,1.28,1.30, 1.26,1.28,1.31,1.30,1.34,1.37,1.40,1.40,1.41,1.44, 1.43,1.42,1.49,1.44,1.47,1.48,1.50,1.55,1.56,1.55, 1.60,1.53,1.58,1.63,1.57,1.66,1.64,1.65,1.69,1.70, 1.67,1.65,1.78,1.80,1.82,1.72,1.81,1.82,1.80,1.80, 1.79,1.87,1.85,1.86,1.83,1.89,1.92,1.91,1.89,1.93, 1.91,2.04,1.96,1.87,1.96,1.96,2.00,2.04,2.01,1.97, 2.03,2.01,1.99,2.13,2.15,2.07,2.09,2.09,2.12,2.20, 2.15,2.05,2.12,2.08,2.21,2.19,2.22,2.16,2.17,2.24, 2.21,2.24,2.29,2.19,2.23,2.34,2.36,2.29,2.28,2.33, 2.30,2.38,2.32,2.25,2.32,2.36,2.39,2.37,2.31,2.39, 2.38,2.38,2.38,2.44,2.53,2.37,2.27,2.50,2.53,2.44, 2.56,2.51,2.38,2.43,2.42,2.52,2.46,2.54,2.48,2.42, 2.52,2.52,2.59,2.64,2.60,2.65,2.65,2.62,2.60,2.73, 2.60,2.48,2.72,2.58,2.70,2.69,2.59,2.75,2.72,2.84, 2.72,2.70,2.80,2.88,2.87,2.84,2.74,2.85,2.72,2.94, 2.76,2.82,2.91,2.70,2.89,2.82,2.88,2.78,2.92,2.92, 3.00,2.90,2.90,2.75,2.91,2.88,2.85,2.97,2.91,2.98, 2.86,2.97,2.92,3.06,2.99,3.04,2.80,2.99,2.90,3.03, 3.02,3.08,2.95,3.18,2.99,3.06,3.02,2.96,3.09,3.10, 3.02,3.00,3.00,3.14,3.21,3.16,3.11,3.23,3.25,3.07, 3.22,3.25,3.15,3.03,3.16,3.16,3.25,3.23,3.21,3.20, 3.21,3.19,3.20,3.18,3.17,3.27,3.24,3.15,3.32,3.32, 3.30,3.29,3.25,3.31,3.31,3.25,3.25,3.19,3.41,3.29, 3.29,3.35,3.27,3.36,3.51,3.25,3.37,3.24,3.39,3.28, 3.47,3.38,3.35,3.51,3.27,3.45,3.42,3.36,3.48,3.43, 3.35,3.41,3.60,3.47,3.46,3.55,3.54,3.68,3.45,3.48, 0.56,0.59,0.67,0.68,0.70,0.72,0.78,0.83,0.77,0.82, 0.86,0.83,0.92,0.86,0.88,0.92,0.96,0.98,1.01,1.02, 1.05,1.00,1.03,1.05,1.07,1.04,1.11,1.10,1.17,1.16, 1.21,1.20,1.19,1.24,1.24,1.19,1.27,1.27,1.29,1.26, 1.31,1.33,1.32,1.33,1.35,1.34,1.38,1.35,1.47,1.46, 1.41,1.48,1.43,1.45,1.47,1.51,1.47,1.54,1.51,1.51, 1.54,1.58,1.54,1.51,1.54,1.66,1.56,1.67,1.66,1.66, 1.67,1.68,1.66,1.68,1.69,1.67,1.64,1.77,1.73,1.72, 1.74,1.83,1.74,1.78,1.87,1.81,1.87,1.85,1.83,1.85, 1.79,1.82,1.89,1.84,1.90,1.88,1.90,1.90,1.91,1.81, 1.98,1.95,1.89,1.96,1.94,2.00,2.01,1.95,1.96,2.05, 1.96,2.04,2.17,2.01,2.03,2.03,2.03,2.08,2.10,2.17, 2.05,2.07,2.14,2.09,2.11,2.13,2.14,2.11,2.08,2.28, 2.12,2.22,2.18,2.17,2.19,2.29,2.10,2.24,2.26,2.34, 2.26,2.28,2.35,2.21,2.39,2.32,2.35,2.25,2.33,2.35, 2.29,2.29,2.25,2.35,2.28,2.41,2.53,2.43,2.40,2.41, 2.45,2.49,2.46,2.43,2.44,2.50,2.38,2.48,2.45,2.57, 2.53,2.50,2.55,2.51,2.46,2.56,2.48,2.39,2.43,2.58, 2.55,2.48,2.50,2.46,2.64,2.63,2.61,2.62,2.52,2.74, 2.64,2.59,2.66,2.64,2.61,2.75,2.74,2.73,2.63,2.64, 2.66,2.65,2.64,2.65,2.70,2.65,2.78,2.66,2.69,2.76, 2.73,2.82,2.65,2.76,2.73,2.69,2.82,2.70,2.78,2.85, 2.80,2.87,2.77,2.81,2.90,2.82,2.80,2.82,2.89,2.77, 2.83,2.77,2.91,3.05,2.88,2.98,2.96,3.04,2.83,2.79, 2.89,2.86,2.97,2.93,2.99,2.93,2.82,2.91,3.00,2.93, 2.99,2.91,2.98,2.77,3.11,2.95,2.99,3.01,2.96,2.97, 3.03,3.14,3.09,2.98,3.10,3.08,3.06,3.08,3.00,3.09, 3.03,3.13,3.11,3.23,3.03,3.13,3.18,3.17,3.11,3.14, 3.14,3.02,3.22,3.22,3.19,3.18,3.17,3.17,3.09,3.10, 0.53,0.54,0.59,0.61,0.65,0.67,0.66,0.70,0.76,0.73, 0.74,0.77,0.78,0.80,0.85,0.85,0.83,0.87,0.95,0.89, 0.92,0.96,0.95,0.95,0.96,1.03,0.98,1.08,1.02,1.06, 1.04,1.05,1.03,1.14,1.11,1.17,1.11,1.13,1.14,1.20, 1.19,1.16,1.18,1.25,1.23,1.20,1.25,1.21,1.28,1.28, 1.28,1.26,1.37,1.29,1.37,1.39,1.34,1.38,1.41,1.39, 1.34,1.43,1.41,1.40,1.48,1.43,1.48,1.48,1.52,1.45, 1.44,1.48,1.53,1.53,1.54,1.63,1.58,1.60,1.56,1.56, 1.57,1.58,1.57,1.61,1.56,1.63,1.66,1.66,1.65,1.65, 1.70,1.67,1.72,1.65,1.71,1.71,1.69,1.71,1.69,1.75, 1.75,1.70,1.72,1.83,1.85,1.77,1.78,1.78,1.80,1.83, 1.79,1.86,1.81,1.80,1.87,1.90,1.84,1.93,1.88,1.87, 1.87,1.92,1.95,1.90,1.98,1.95,1.92,1.93,1.99,1.98, 1.98,2.03,2.01,2.01,2.01,2.05,2.12,2.01,2.11,2.12, 2.05,2.06,2.12,1.99,1.99,2.06,2.07,2.08,2.07,2.09, 2.05,2.10,2.13,2.18,2.06,2.07,2.20,2.09,2.13,2.14, 2.16,2.17,2.21,2.15,2.16,2.31,2.17,2.21,2.22,2.27, 2.29,2.30,2.21,2.31,2.17,2.31,2.31,2.25,2.31,2.23, 2.26,2.30,2.38,2.26,2.30,2.30,2.35,2.37,2.34,2.41, 2.37,2.34,2.36,2.32,2.35,2.42,2.35,2.38,2.41,2.37, 2.39,2.36,2.46,2.42,2.52,2.45,2.57,2.48,2.49,2.50, 2.48,2.47,2.52,2.45,2.40,2.50,2.49,2.56,2.57,2.56, 2.50,2.64,2.57,2.65,2.57,2.56,2.57,2.65,2.52,2.54, 2.48,2.64,2.56,2.51,2.71,2.60,2.64,2.64,2.67,2.64, 2.66,2.61,2.66,2.64,2.67,2.75,2.64,2.65,2.76,2.77, 2.72,2.56,2.79,2.75,2.62,2.72,2.64,2.63,2.79,2.71, 2.75,2.67,2.76,2.76,2.78,2.67,2.86,2.76,2.72,2.78, 2.85,2.77,2.75,2.83,2.86,2.81,2.84,2.83,2.84,2.74, 2.81,2.83,2.83,2.74,2.86,2.98,2.88,2.91,2.92,2.79, 0.49,0.52,0.53,0.57,0.59,0.59,0.62,0.65,0.62,0.63, 0.69,0.70,0.74,0.74,0.75,0.78,0.76,0.79,0.78,0.80, 0.83,0.83,0.88,0.89,0.89,0.95,0.90,0.91,0.92,0.93, 0.95,0.96,1.01,0.97,1.00,1.03,1.03,1.01,1.13,1.08, 1.08,1.05,1.12,1.11,1.12,1.10,1.11,1.10,1.18,1.19, 1.21,1.18,1.21,1.21,1.22,1.19,1.25,1.20,1.23,1.29, 1.31,1.35,1.29,1.32,1.29,1.29,1.26,1.33,1.34,1.36, 1.30,1.35,1.33,1.32,1.42,1.40,1.44,1.44,1.42,1.39, 1.43,1.43,1.47,1.50,1.42,1.39,1.50,1.45,1.48,1.54, 1.53,1.52,1.56,1.55,1.57,1.65,1.59,1.53,1.59,1.60, 1.62,1.57,1.55,1.68,1.59,1.58,1.59,1.68,1.63,1.68, 1.69,1.60,1.68,1.59,1.65,1.71,1.74,1.75,1.72,1.66, 1.69,1.71,1.72,1.79,1.81,1.78,1.76,1.78,1.74,1.75, 1.84,1.71,1.78,1.81,1.77,1.87,1.87,1.86,1.81,1.84, 1.78,1.80,1.87,1.86,1.87,1.88,1.81,1.87,1.97,1.92, 1.84,1.94,1.99,1.90,1.88,1.92,1.92,1.98,1.96,1.95, 2.01,1.90,1.92,1.95,1.95,1.96,2.03,1.95,2.06,2.07, 1.96,2.09,2.01,1.97,2.08,2.12,2.09,2.01,2.11,2.09, 2.11,2.05,2.14,2.22,2.03,2.13,2.14,2.09,2.15,2.03, 2.10,2.17,2.21,2.13,2.21,2.19,2.17,2.18,2.10,2.29, 2.07,2.20,2.23,2.18,2.17,2.15,2.11,2.22,2.21,2.29, 2.30,2.28,2.21,2.22,2.27,2.24,2.33,2.19,2.27,2.32, 2.27,2.19,2.29,2.37,2.29,2.25,2.30,2.21,2.33,2.34, 2.35,2.41,2.32,2.33,2.27,2.32,2.40,2.33,2.35,2.48, 2.43,2.41,2.31,2.46,2.43,2.49,2.39,2.39,2.48,2.35, 2.40,2.43,2.39,2.50,2.51,2.51,2.52,2.51,2.43,2.52, 2.58,2.54,2.44,2.50,2.48,2.43,2.52,2.58,2.59,2.51, 2.51,2.47,2.60,2.50,2.57,2.52,2.60,2.50,2.63,2.61, 2.56,2.63,2.52,2.60,2.72,2.59,2.59,2.56,2.65,2.67, 0.42,0.49,0.47,0.48,0.52,0.52,0.56,0.58,0.61,0.59, 0.61,0.63,0.66,0.68,0.70,0.69,0.70,0.74,0.73,0.76, 0.76,0.73,0.77,0.77,0.79,0.81,0.81,0.80,0.84,0.83, 0.86,0.91,0.90,0.89,0.92,0.92,0.96,0.94,0.90,0.97, 0.98,0.99,0.95,0.98,1.01,1.02,1.03,1.03,0.99,1.05, 1.05,1.09,1.08,1.07,1.11,1.09,1.12,1.07,1.14,1.15, 1.14,1.17,1.16,1.14,1.20,1.16,1.19,1.18,1.20,1.20, 1.23,1.25,1.27,1.23,1.29,1.23,1.24,1.29,1.27,1.28, 1.33,1.32,1.42,1.28,1.35,1.36,1.35,1.35,1.36,1.36, 1.34,1.38,1.31,1.37,1.41,1.49,1.38,1.37,1.51,1.45, 1.43,1.44,1.47,1.43,1.33,1.44,1.49,1.52,1.50,1.52, 1.43,1.48,1.50,1.56,1.46,1.55,1.52,1.55,1.52,1.55, 1.56,1.60,1.56,1.59,1.51,1.53,1.57,1.70,1.58,1.66, 1.62,1.61,1.57,1.59,1.63,1.63,1.65,1.69,1.67,1.67, 1.73,1.64,1.66,1.67,1.74,1.68,1.69,1.64,1.73,1.67, 1.67,1.71,1.64,1.72,1.69,1.77,1.77,1.75,1.83,1.84, 1.72,1.78,1.83,1.82,1.89,1.82,1.78,1.76,1.77,1.87, 1.85,1.78,1.87,1.83,1.83,1.90,1.86,1.85,1.85,1.76, 1.86,1.91,1.91,2.03,1.94,1.93,1.96,1.92,1.96,1.92, 1.94,1.94,1.99,1.93,1.98,1.97,1.91,1.96,2.00,1.97, 1.98,1.97,2.07,2.00,1.99,2.04,1.99,1.97,1.95,1.99, 2.03,2.01,1.99,2.02,1.99,2.08,2.03,2.03,2.05,2.08, 2.12,2.09,2.10,2.13,2.10,2.14,2.10,2.09,2.11,2.15, 2.14,2.05,2.07,2.15,2.17,2.18,2.16,2.14,2.13,2.15, 2.24,2.16,2.17,2.19,2.14,2.26,2.22,2.21,2.24,2.21, 2.25,2.17,2.16,2.22,2.27,2.20,2.28,2.29,2.17,2.20, 2.25,2.31,2.41,2.31,2.30,2.30,2.26,2.24,2.22,2.28, 2.32,2.24,2.23,2.29,2.29,2.34,2.33,2.22,2.31,2.34, 2.26,2.38,2.28,2.26,2.28,2.28,2.28,2.36,2.39,2.40, 0.40,0.40,0.42,0.46,0.47,0.51,0.51,0.51,0.54,0.55, 0.57,0.56,0.60,0.61,0.58,0.60,0.63,0.65,0.68,0.70, 0.69,0.65,0.71,0.72,0.70,0.71,0.73,0.74,0.76,0.80, 0.79,0.81,0.79,0.80,0.86,0.87,0.83,0.84,0.88,0.90, 0.89,0.90,0.88,0.87,0.88,0.89,0.95,0.91,0.94,0.98, 0.92,0.94,0.97,0.97,1.05,0.98,1.03,1.07,1.00,1.02, 1.04,1.05,1.08,1.05,1.08,1.05,1.05,1.08,1.09,1.06, 1.09,1.12,1.06,1.09,1.15,1.15,1.14,1.16,1.19,1.22, 1.19,1.15,1.18,1.17,1.17,1.20,1.18,1.26,1.25,1.21, 1.22,1.20,1.21,1.25,1.29,1.27,1.24,1.28,1.29,1.27, 1.35,1.28,1.30,1.29,1.32,1.29,1.31,1.30,1.29,1.33, 1.35,1.28,1.36,1.36,1.41,1.37,1.45,1.41,1.41,1.43, 1.39,1.42,1.40,1.42,1.40,1.41,1.50,1.46,1.50,1.47, 1.46,1.50,1.43,1.49,1.47,1.51,1.48,1.51,1.46,1.49, 1.51,1.51,1.53,1.45,1.48,1.55,1.55,1.48,1.48,1.51, 1.54,1.54,1.50,1.64,1.62,1.61,1.59,1.61,1.57,1.60, 1.59,1.65,1.63,1.60,1.59,1.64,1.68,1.65,1.59,1.64, 1.71,1.66,1.69,1.63,1.67,1.75,1.72,1.60,1.72,1.71, 1.73,1.72,1.67,1.73,1.74,1.71,1.70,1.75,1.72,1.73, 1.74,1.65,1.72,1.74,1.75,1.80,1.75,1.80,1.75,1.77, 1.80,1.84,1.84,1.73,1.80,1.87,1.86,1.82,1.75,1.79, 1.76,1.81,1.86,1.77,1.85,1.89,1.87,1.92,1.79,1.72, 1.82,1.85,1.86,1.88,1.84,1.89,1.96,1.94,1.88,1.89, 1.87,1.91,1.92,1.92,1.87,1.91,1.90,1.93,2.01,1.97, 1.92,1.95,1.96,1.92,1.96,1.91,1.96,1.99,1.98,1.94, 1.93,2.05,2.01,2.01,1.97,1.93,1.98,1.97,2.01,2.02, 2.01,2.08,1.98,1.99,1.93,2.05,2.02,2.05,1.91,2.04, 2.03,2.03,1.96,2.03,1.97,2.06,2.01,2.07,2.03,2.12, 2.14,2.02,2.07,2.10,2.06,2.19,2.12,2.15,2.12,2.13, 0.35,0.37,0.43,0.40,0.40,0.45,0.46,0.46,0.50,0.47, 0.50,0.48,0.52,0.55,0.55,0.55,0.59,0.58,0.58,0.61, 0.62,0.63,0.60,0.68,0.66,0.65,0.72,0.66,0.69,0.71, 0.68,0.74,0.72,0.77,0.73,0.73,0.74,0.78,0.79,0.82, 0.76,0.78,0.81,0.79,0.79,0.78,0.85,0.78,0.87,0.86, 0.88,0.91,0.85,0.86,0.88,0.89,0.88,0.91,0.95,0.93, 0.91,0.95,0.92,0.93,0.97,0.98,0.91,0.96,1.02,0.98, 1.00,1.00,1.03,1.01,1.02,1.03,1.07,1.00,1.03,0.99, 1.08,1.02,1.02,1.05,1.02,1.08,1.07,1.05,1.10,1.15, 1.12,1.09,1.12,1.07,1.13,1.11,1.11,1.21,1.15,1.17, 1.12,1.16,1.18,1.22,1.19,1.23,1.19,1.22,1.22,1.17, 1.22,1.21,1.21,1.25,1.20,1.28,1.28,1.26,1.25,1.28, 1.23,1.25,1.30,1.25,1.27,1.30,1.32,1.24,1.30,1.32, 1.32,1.32,1.32,1.34,1.31,1.36,1.32,1.36,1.37,1.38, 1.35,1.37,1.36,1.37,1.35,1.35,1.39,1.35,1.36,1.45, 1.42,1.43,1.35,1.38,1.37,1.44,1.45,1.47,1.41,1.45, 1.42,1.50,1.45,1.43,1.46,1.46,1.46,1.47,1.50,1.44, 1.50,1.52,1.51,1.49,1.50,1.49,1.53,1.51,1.45,1.50, 1.56,1.58,1.50,1.53,1.54,1.50,1.52,1.58,1.55,1.52, 1.60,1.58,1.56,1.57,1.54,1.61,1.55,1.57,1.63,1.56, 1.60,1.53,1.55,1.57,1.65,1.63,1.61,1.57,1.69,1.64, 1.61,1.62,1.59,1.63,1.72,1.69,1.69,1.74,1.67,1.68, 1.64,1.71,1.65,1.72,1.76,1.75,1.69,1.75,1.75,1.70, 1.69,1.69,1.75,1.75,1.68,1.66,1.71,1.72,1.77,1.74, 1.72,1.71,1.76,1.76,1.78,1.78,1.79,1.77,1.86,1.81, 1.70,1.77,1.79,1.78,1.77,1.77,1.81,1.86,1.84,1.89, 1.82,1.79,1.87,1.90,1.90,1.84,1.81,1.78,1.85,1.81, 1.81,1.82,1.90,1.82,1.81,1.86,2.00,1.88,1.93,1.85, 1.89,1.88,1.89,1.95,1.88,1.92,1.90,1.95,1.86,1.91, 0.30,0.36,0.37,0.39,0.37,0.39,0.42,0.43,0.40,0.46, 0.43,0.44,0.47,0.48,0.47,0.51,0.52,0.49,0.53,0.55, 0.57,0.54,0.54,0.56,0.58,0.59,0.62,0.58,0.61,0.63, 0.61,0.64,0.65,0.69,0.62,0.68,0.70,0.68,0.71,0.67, 0.68,0.70,0.74,0.76,0.75,0.74,0.79,0.77,0.75,0.78, 0.79,0.79,0.78,0.77,0.76,0.78,0.83,0.81,0.85,0.84, 0.85,0.82,0.82,0.86,0.85,0.83,0.86,0.92,0.89,0.88, 0.87,0.90,0.89,0.89,0.95,0.94,0.92,0.94,0.90,0.95, 0.92,0.95,1.01,0.93,0.92,0.98,0.95,1.00,1.02,1.00, 0.99,0.97,1.00,0.98,1.02,1.01,1.00,1.07,1.07,1.06, 1.04,1.03,1.05,1.04,1.04,1.09,1.09,1.06,1.04,1.07, 1.10,1.11,1.12,1.11,1.13,1.18,1.14,1.10,1.13,1.12, 1.10,1.12,1.17,1.11,1.13,1.15,1.20,1.18,1.13,1.19, 1.21,1.14,1.21,1.19,1.23,1.21,1.17,1.19,1.21,1.23, 1.23,1.27,1.27,1.22,1.24,1.19,1.19,1.24,1.22,1.23, 1.25,1.28,1.31,1.27,1.30,1.28,1.22,1.29,1.28,1.30, 1.30,1.36,1.30,1.30,1.33,1.25,1.31,1.31,1.28,1.35, 1.34,1.29,1.33,1.35,1.32,1.35,1.39,1.35,1.33,1.31, 1.34,1.37,1.38,1.35,1.39,1.37,1.37,1.44,1.38,1.40, 1.35,1.42,1.41,1.48,1.37,1.39,1.47,1.34,1.46,1.50, 1.41,1.43,1.49,1.44,1.39,1.44,1.51,1.50,1.49,1.47, 1.45,1.52,1.47,1.49,1.46,1.49,1.49,1.50,1.53,1.51, 1.51,1.52,1.57,1.51,1.58,1.49,1.55,1.50,1.55,1.49, 1.52,1.56,1.55,1.54,1.51,1.53,1.54,1.56,1.55,1.55, 1.50,1.55,1.58,1.67,1.57,1.65,1.60,1.67,1.56,1.59, 1.57,1.64,1.60,1.62,1.60,1.67,1.61,1.66,1.64,1.61, 1.59,1.58,1.64,1.65,1.68,1.69,1.68,1.73,1.65,1.59, 1.75,1.69,1.64,1.69,1.71,1.69,1.66,1.68,1.73,1.65, 1.68,1.69,1.67,1.62,1.75,1.69,1.73,1.75,1.74,1.72, 1.17,1.22,1.24,1.32,1.35,1.43,1.51,1.54,1.53,1.67, 1.63,1.67,1.70,1.69,1.79,1.81,1.84,1.90,1.95,1.96, 1.94,2.01,1.99,2.15,2.07,2.16,2.19,2.15,2.19,2.24, 2.27,2.31,2.36,2.40,2.32,2.42,2.50,2.52,2.54,2.48, 2.48,2.52,2.54,2.66,2.70,2.73,2.64,2.58,2.76,2.81, 2.77,2.84,2.80,2.91,2.95,2.85,2.96,2.94,2.96,2.92, 2.92,3.09,2.91,3.11,3.10,3.08,3.18,3.10,3.15,3.26, 3.12,3.24,3.28,3.26,3.17,3.36,3.29,3.20,3.37,3.41, 3.50,3.45,3.15,3.47,3.54,3.48,3.61,3.59,3.59,3.62, 3.55,3.54,3.67,3.59,3.66,3.60,3.74,3.73,3.88,3.70, 3.69,3.83,3.69,3.58,3.86,3.80,3.67,3.93,3.81,3.83, 3.87,3.85,3.96,3.88,3.98,4.15,3.90,3.93,4.01,4.03, 4.01,4.20,4.10,4.17,4.25,4.13,4.18,4.15,4.33,4.18, 4.10,4.04,4.28,4.28,4.24,4.32,4.27,4.20,4.25,4.42, 4.27,4.43,4.30,4.39,4.42,4.51,4.41,4.45,4.61,4.45, 4.56,4.60,4.56,4.55,4.76,4.51,4.73,4.73,4.61,4.70, 4.72,4.87,4.80,4.68,4.58,4.55,4.78,4.70,4.74,4.84, 4.99,4.80,4.69,4.75,4.91,4.81,4.69,4.71,4.84,5.00, 5.08,4.93,5.05,4.81,4.91,5.06,4.87,5.09,5.05,5.08, 4.92,5.10,5.02,5.04,5.15,5.09,5.22,5.04,5.36,5.34, 5.25,5.03,5.24,5.05,5.19,5.32,5.23,5.36,5.34,5.19, 5.26,5.36,5.25,5.35,5.14,5.27,5.34,5.33,5.43,5.47, 5.58,5.46,5.34,5.42,5.48,5.33,5.39,5.21,5.48,5.65, 5.67,5.47,5.46,5.48,5.47,5.49,5.45,5.63,5.68,5.79, 5.55,5.61,5.70,5.73,5.71,5.61,5.72,5.63,5.73,5.60, 6.03,5.87,5.67,5.75,5.83,5.94,5.59,5.84,5.84,5.81, 5.84,5.72,5.62,5.58,6.05,5.91,5.84,6.00,6.16,5.97, 5.99,6.10,5.69,5.94,6.22,6.08,6.00,6.07,5.95,6.30, 5.81,5.99,6.09,6.30,6.06,6.10,6.23,6.09,6.29,6.37, 1.12,1.12,1.21,1.23,1.29,1.37,1.32,1.41,1.46,1.51, 1.55,1.58,1.61,1.55,1.66,1.72,1.71,1.80,1.81,1.86, 1.85,1.86,1.98,1.88,1.97,1.98,1.98,2.02,2.15,2.09, 2.11,2.20,2.20,2.26,2.28,2.35,2.24,2.37,2.29,2.39, 2.41,2.36,2.37,2.48,2.43,2.54,2.57,2.49,2.62,2.62, 2.73,2.61,2.59,2.70,2.78,2.64,2.77,2.72,2.74,2.85, 2.85,2.95,2.97,2.80,2.91,3.03,2.88,2.89,2.92,3.00, 3.01,3.03,2.94,3.00,3.26,3.14,3.16,3.12,3.17,3.18, 3.23,3.22,3.22,3.37,3.01,3.27,3.42,3.30,3.28,3.53, 3.56,3.39,3.35,3.56,3.45,3.50,3.52,3.57,3.66,3.48, 3.55,3.62,3.63,3.52,3.78,3.58,3.73,3.79,3.73,3.65, 3.71,3.57,3.75,3.71,3.85,3.74,3.78,3.83,3.64,3.83, 3.85,3.77,3.90,3.83,3.83,3.93,4.03,3.95,4.03,4.08, 4.13,3.94,4.02,4.24,4.01,4.18,4.01,4.13,4.06,4.05, 4.30,4.18,4.09,4.14,4.02,4.33,4.09,4.34,4.27,4.24, 4.21,4.39,4.14,4.31,4.36,4.54,4.24,4.38,4.28,4.32, 4.42,4.36,4.53,4.44,4.57,4.56,4.61,4.37,4.61,4.39, 4.46,4.56,4.47,4.51,4.34,4.74,4.68,4.56,4.53,4.78, 4.70,4.91,4.79,4.79,4.62,4.71,4.68,4.56,4.82,4.72, 4.56,4.74,4.88,4.66,4.80,4.77,4.66,4.69,4.93,4.82, 4.71,4.92,5.14,5.09,4.82,4.94,5.27,5.00,4.93,5.03, 4.96,5.12,5.13,4.98,5.13,4.84,4.98,5.30,5.17,5.04, 5.16,5.18,5.13,5.23,5.11,5.44,5.07,5.16,5.23,5.38, 5.35,5.10,5.09,5.41,5.39,5.43,5.57,5.44,5.32,5.32, 5.22,5.42,5.48,5.31,5.33,5.36,5.46,5.45,5.56,5.47, 5.38,5.56,5.43,5.57,5.35,5.41,5.33,5.36,5.27,5.53, 5.60,5.51,5.69,5.52,5.66,5.86,5.48,5.66,5.37,5.37, 5.52,5.68,5.81,5.68,5.60,5.62,5.84,5.74,5.90,5.77, 5.80,5.75,5.62,5.95,5.71,5.75,5.95,5.75,5.75,5.77, 1.06,1.05,1.11,1.21,1.21,1.23,1.32,1.31,1.36,1.44, 1.43,1.46,1.45,1.51,1.61,1.55,1.58,1.68,1.66,1.64, 1.69,1.79,1.80,1.84,1.92,1.93,1.97,1.97,1.97,2.03, 2.10,2.07,2.09,2.07,2.07,2.04,2.16,2.19,2.28,2.28, 2.29,2.28,2.24,2.32,2.34,2.38,2.43,2.40,2.39,2.38, 2.45,2.51,2.57,2.59,2.54,2.62,2.64,2.58,2.74,2.63, 2.70,2.76,2.76,2.79,2.65,2.89,2.84,2.80,2.84,2.94, 2.79,2.93,2.93,2.92,2.89,2.93,3.05,2.96,3.11,3.04, 2.97,3.14,3.16,2.94,3.09,3.15,3.04,3.17,3.21,3.20, 3.24,3.11,3.29,3.10,3.25,3.27,3.27,3.21,3.30,3.25, 3.31,3.23,3.35,3.28,3.45,3.48,3.51,3.51,3.31,3.40, 3.50,3.51,3.52,3.47,3.53,3.53,3.50,3.68,3.42,3.59, 3.61,3.59,3.68,3.58,3.71,3.76,3.67,3.57,3.56,3.79, 3.77,3.81,3.81,3.74,3.79,3.93,3.82,3.95,3.94,4.03, 3.90,3.95,3.97,3.89,4.00,3.97,3.84,4.03,3.87,4.00, 4.04,4.15,4.16,4.07,3.97,3.97,4.14,4.01,4.19,4.08, 4.10,4.26,4.14,4.03,4.21,4.25,4.36,4.17,4.28,4.15, 4.29,4.24,4.35,4.47,4.34,4.26,4.38,4.34,4.38,4.21, 4.36,4.48,4.36,4.52,4.39,4.36,4.38,4.51,4.47,4.48, 4.54,4.52,4.69,4.60,4.56,4.55,4.42,4.40,4.60,4.56, 4.52,4.38,4.69,4.86,4.64,4.63,4.64,4.79,4.82,4.76, 4.69,4.66,4.62,4.93,4.63,4.85,4.76,4.97,4.97,4.72, 4.76,4.84,4.92,4.82,4.85,4.99,4.86,4.89,4.90,4.83, 4.98,4.97,4.92,4.96,4.85,5.07,4.97,5.20,4.93,5.02, 4.92,5.24,4.92,4.92,4.96,5.01,5.33,5.18,5.02,5.17, 5.07,5.18,5.23,5.12,5.02,5.46,5.12,5.24,5.14,5.24, 5.23,5.26,5.25,5.13,5.19,5.31,5.17,5.24,5.38,5.29, 5.28,5.43,5.49,5.23,5.29,5.24,5.50,5.25,5.36,5.38, 5.35,5.50,5.40,5.48,5.40,5.81,5.63,5.56,5.39,5.59, 0.98,1.00,1.05,1.15,1.10,1.19,1.26,1.25,1.29,1.31, 1.40,1.38,1.37,1.43,1.47,1.52,1.52,1.55,1.58,1.58, 1.64,1.67,1.70,1.75,1.79,1.69,1.81,1.84,1.77,1.86, 1.90,1.90,1.89,1.95,1.89,2.02,2.00,2.04,2.04,2.15, 2.12,2.16,2.24,2.10,2.19,2.28,2.21,2.25,2.30,2.31, 2.32,2.33,2.33,2.42,2.42,2.45,2.34,2.42,2.57,2.46, 2.48,2.48,2.63,2.62,2.52,2.61,2.58,2.53,2.60,2.65, 2.63,2.72,2.70,2.64,2.78,2.74,2.83,2.83,2.91,2.83, 2.79,2.84,2.67,2.83,2.91,2.93,2.86,2.81,2.95,3.01, 3.07,3.00,3.07,3.02,3.09,3.14,3.03,3.01,3.09,3.06, 3.22,3.10,3.21,3.20,3.26,3.18,3.18,3.06,3.18,3.21, 3.37,3.27,3.31,3.25,3.24,3.29,3.34,3.32,3.45,3.33, 3.29,3.37,3.54,3.38,3.44,3.37,3.46,3.38,3.38,3.42, 3.54,3.48,3.55,3.55,3.64,3.60,3.53,3.57,3.74,3.42, 3.62,3.45,3.66,3.79,3.79,3.63,3.90,3.74,3.64,3.66, 3.84,3.73,3.77,3.84,3.83,3.90,3.78,3.87,4.00,3.85, 3.96,4.03,3.81,3.99,3.86,3.90,3.92,3.79,4.03,3.95, 4.07,4.02,4.11,4.02,4.05,4.11,4.04,4.00,4.17,4.08, 4.08,4.22,4.09,3.92,4.13,4.22,4.23,4.13,4.23,4.15, 4.15,4.11,4.28,4.14,4.33,4.27,4.29,4.05,4.33,4.44, 4.20,4.22,4.16,4.25,4.31,4.30,4.41,4.36,4.46,4.49, 4.41,4.20,4.52,4.40,4.44,4.41,4.56,4.53,4.55,4.34, 4.44,4.55,4.48,4.49,4.42,4.62,4.66,4.41,4.65,4.74, 4.54,4.71,4.68,4.60,4.64,4.64,4.65,4.58,4.57,4.52, 4.59,4.62,4.76,4.74,5.03,4.73,4.60,4.84,4.78,4.78, 4.66,4.98,4.64,4.78,4.72,4.87,4.89,4.97,4.92,4.89, 4.77,4.75,4.70,4.79,4.92,4.92,4.96,5.02,4.98,4.78, 4.89,5.09,4.86,4.86,5.04,4.90,4.96,5.05,5.01,5.05, 5.17,5.17,5.09,5.04,5.01,5.17,5.23,5.06,5.26,5.04, 0.86,0.94,0.99,1.01,1.02,1.11,1.13,1.14,1.19,1.23, 1.23,1.28,1.33,1.38,1.37,1.37,1.45,1.50,1.47,1.52, 1.50,1.50,1.55,1.66,1.66,1.65,1.65,1.66,1.70,1.71, 1.71,1.79,1.73,1.89,1.86,1.94,1.89,1.89,1.87,1.96, 1.88,1.95,2.07,2.03,2.03,2.05,2.06,2.08,2.08,2.10, 2.15,2.22,2.18,2.21,2.21,2.28,2.33,2.21,2.22,2.35, 2.33,2.31,2.38,2.33,2.38,2.49,2.38,2.38,2.52,2.46, 2.38,2.48,2.56,2.57,2.63,2.53,2.55,2.61,2.55,2.59, 2.73,2.65,2.78,2.64,2.63,2.77,2.74,2.71,2.79,2.81, 2.65,2.91,2.80,2.79,2.81,2.76,2.80,2.93,2.92,2.83, 2.91,3.02,3.04,2.89,2.93,3.00,3.02,2.98,2.98,3.10, 2.98,3.14,3.04,3.12,3.20,3.15,3.27,3.11,3.26,3.22, 3.08,3.07,3.15,3.25,3.16,3.23,3.20,3.24,3.28,3.31, 3.35,3.35,3.42,3.31,3.21,3.24,3.33,3.23,3.53,3.52, 3.45,3.44,3.44,3.34,3.39,3.43,3.35,3.35,3.38,3.53, 3.36,3.53,3.40,3.60,3.64,3.53,3.47,3.46,3.57,3.60, 3.72,3.56,3.68,3.64,3.63,3.56,3.76,3.64,3.52,3.59, 3.64,3.50,3.85,3.79,3.74,3.72,3.62,3.80,3.90,3.70, 3.83,3.91,3.89,3.72,3.73,3.80,3.82,3.88,3.91,3.85, 3.82,3.91,3.81,4.00,3.94,3.99,3.92,4.00,4.16,3.97, 4.08,4.02,4.09,4.02,3.95,3.99,4.24,4.09,4.03,4.22, 4.25,4.28,4.08,4.08,4.07,4.17,3.98,4.15,4.25,4.13, 4.07,4.06,4.21,4.25,4.37,4.42,4.28,4.31,4.22,4.41, 4.26,4.12,4.27,4.42,4.42,4.25,4.21,4.47,4.37,4.25, 4.41,4.26,4.49,4.35,4.36,4.50,4.55,4.50,4.51,4.54, 4.57,4.49,4.36,4.49,4.58,4.51,4.58,4.43,4.68,4.48, 4.54,4.63,4.68,4.54,4.50,4.59,4.53,4.54,4.71,4.61, 4.58,4.65,4.72,4.76,4.79,4.73,4.57,4.62,4.87,4.57, 4.86,4.73,4.85,4.72,4.68,4.71,4.88,4.75,4.58,4.90, 0.84,0.86,0.92,0.91,0.99,1.01,1.06,1.05,1.13,1.09, 1.15,1.23,1.15,1.25,1.24,1.27,1.30,1.32,1.33,1.42, 1.41,1.43,1.49,1.45,1.56,1.53,1.55,1.56,1.52,1.60, 1.57,1.65,1.70,1.67,1.73,1.76,1.72,1.77,1.79,1.75, 1.79,1.84,1.91,1.89,1.91,1.91,1.92,1.87,1.99,1.94, 1.97,2.05,2.02,1.94,2.13,2.08,2.16,2.07,2.08,2.08, 2.20,2.14,2.18,2.17,2.10,2.21,2.20,2.22,2.24,2.30, 2.24,2.27,2.29,2.24,2.42,2.35,2.32,2.41,2.41,2.32, 2.51,2.43,2.48,2.52,2.45,2.56,2.50,2.56,2.61,2.47, 2.59,2.76,2.66,2.65,2.56,2.68,2.56,2.59,2.62,2.63, 2.76,2.74,2.76,2.72,2.70,2.71,2.77,2.84,2.79,2.76, 2.76,2.84,2.78,2.82,2.81,2.90,2.95,2.89,2.89,2.87, 2.94,2.79,2.91,2.91,2.92,2.87,2.92,2.93,3.02,3.26, 3.07,3.15,2.92,3.07,3.04,3.08,3.21,3.10,3.13,3.14, 3.12,3.08,3.17,3.25,3.08,3.05,3.33,3.20,3.16,3.21, 3.15,3.25,3.30,3.21,3.28,3.36,3.12,3.23,3.42,3.29, 3.39,3.52,3.29,3.43,3.46,3.44,3.36,3.40,3.30,3.37, 3.48,3.44,3.35,3.47,3.57,3.31,3.54,3.40,3.47,3.40, 3.49,3.38,3.63,3.52,3.49,3.54,3.57,3.59,3.54,3.56, 3.57,3.65,3.59,3.63,3.47,3.73,3.66,3.62,3.65,3.64, 3.82,3.75,3.56,3.71,3.68,3.62,3.77,3.74,3.81,3.78, 3.80,3.70,3.76,3.80,3.78,3.91,3.79,3.88,3.86,3.79, 3.88,3.90,3.89,3.93,3.98,3.88,3.87,4.01,3.87,3.89, 3.92,3.85,4.02,3.85,3.99,3.89,4.04,4.04,4.07,3.84, 4.08,4.00,4.02,4.20,4.14,4.06,4.11,4.13,4.20,4.25, 4.23,4.14,4.21,4.13,4.21,4.17,4.09,4.04,4.17,4.15, 4.13,4.05,4.14,4.19,4.09,4.19,4.26,4.25,4.24,4.34, 4.29,4.33,4.27,4.38,4.19,4.32,4.37,4.36,4.23,4.46, 4.37,4.24,4.16,4.56,4.43,4.49,4.32,4.44,4.51,4.34, 0.79,0.81,0.87,0.88,0.91,0.92,0.98,0.96,1.01,1.05, 1.07,1.05,1.11,1.17,1.16,1.17,1.25,1.24,1.23,1.27, 1.32,1.36,1.33,1.35,1.39,1.45,1.38,1.44,1.50,1.58, 1.49,1.52,1.57,1.58,1.59,1.49,1.62,1.63,1.64,1.64, 1.71,1.74,1.76,1.77,1.79,1.78,1.72,1.75,1.77,1.85, 1.90,1.83,1.82,1.94,1.88,1.83,1.94,1.99,1.96,1.98, 2.06,2.00,2.04,1.99,1.97,2.05,2.03,2.13,2.11,1.98, 2.17,2.12,2.16,2.05,2.18,2.19,2.19,2.10,2.23,2.22, 2.20,2.30,2.30,2.27,2.23,2.36,2.27,2.38,2.30,2.37, 2.43,2.34,2.42,2.44,2.37,2.38,2.46,2.47,2.43,2.43, 2.35,2.44,2.42,2.50,2.45,2.58,2.48,2.53,2.54,2.63, 2.67,2.63,2.61,2.65,2.65,2.59,2.74,2.70,2.69,2.61, 2.59,2.78,2.83,2.60,2.76,2.74,2.74,2.76,2.81,2.75, 2.79,2.73,2.86,2.76,2.80,2.81,2.84,3.00,2.89,2.88, 2.95,2.92,2.86,2.95,2.85,3.03,2.93,3.06,2.94,3.07, 3.00,3.04,2.99,3.01,3.03,3.04,3.06,3.04,2.98,2.89, 3.06,3.08,3.10,3.10,3.06,3.17,3.20,3.20,3.08,3.15, 3.26,3.13,3.26,3.19,3.06,3.12,3.12,3.19,3.25,3.05, 3.20,3.44,3.27,3.29,3.28,3.20,3.35,3.29,3.31,3.35, 3.23,3.29,3.31,3.37,3.44,3.33,3.38,3.50,3.55,3.42, 3.40,3.51,3.44,3.46,3.40,3.33,3.60,3.57,3.45,3.59, 3.62,3.44,3.63,3.47,3.67,3.47,3.63,3.58,3.73,3.52, 3.72,3.66,3.63,3.50,3.65,3.58,3.76,3.70,3.54,3.52, 3.57,3.57,3.73,3.58,3.44,3.69,3.59,3.60,3.71,3.61, 3.74,3.72,3.75,3.75,3.64,3.70,3.75,3.77,3.75,3.76, 3.83,3.80,3.93,3.75,3.74,3.84,3.72,3.86,3.83,3.75, 3.92,3.81,3.96,3.84,3.77,4.03,4.12,3.77,4.08,3.95, 3.98,3.94,3.95,3.95,3.92,4.14,3.94,3.75,3.79,3.88, 3.97,4.01,4.06,4.11,3.98,4.05,4.09,4.05,4.06,3.93, 0.71,0.72,0.78,0.81,0.79,0.82,0.87,0.88,0.93,0.99, 0.97,1.01,1.03,1.06,1.05,1.06,1.15,1.15,1.12,1.22, 1.22,1.21,1.21,1.25,1.31,1.31,1.29,1.32,1.35,1.39, 1.41,1.44,1.48,1.40,1.45,1.48,1.39,1.47,1.50,1.51, 1.57,1.53,1.58,1.55,1.63,1.58,1.61,1.74,1.67,1.72, 1.69,1.74,1.74,1.73,1.68,1.74,1.73,1.79,1.73,1.82, 1.82,1.81,1.81,1.81,1.90,1.95,1.92,1.85,1.95,1.95, 1.92,1.96,1.91,1.96,1.99,2.07,2.09,2.00,2.07,2.08, 2.05,2.08,2.09,2.07,2.05,2.04,2.08,2.16,2.07,2.09, 2.14,2.12,2.09,2.20,2.24,2.21,2.20,2.25,2.37,2.38, 2.21,2.37,2.26,2.29,2.33,2.42,2.33,2.33,2.28,2.39, 2.34,2.41,2.37,2.42,2.38,2.41,2.49,2.43,2.48,2.53, 2.50,2.50,2.39,2.55,2.47,2.58,2.65,2.47,2.59,2.62, 2.58,2.59,2.51,2.67,2.53,2.70,2.64,2.51,2.73,2.67, 2.57,2.78,2.63,2.72,2.75,2.72,2.68,2.69,2.68,2.68, 2.72,2.73,2.70,2.73,2.68,2.78,2.93,2.86,2.80,2.85, 2.83,2.66,2.74,2.88,2.91,2.95,2.87,2.92,2.83,2.90, 2.91,2.89,2.97,2.95,2.97,2.95,2.90,3.11,2.93,2.94, 3.06,2.88,2.96,3.10,3.19,2.94,3.20,3.01,3.08,3.03, 3.07,3.12,3.07,3.11,3.16,3.13,3.01,3.16,3.13,3.16, 3.07,3.17,3.21,3.22,3.14,3.32,3.08,3.10,3.22,3.24, 3.25,3.29,3.17,3.24,3.28,3.16,3.26,3.30,3.29,3.35, 3.21,3.15,3.32,3.30,3.15,3.30,3.24,3.36,3.45,3.34, 3.33,3.31,3.36,3.44,3.49,3.29,3.38,3.43,3.24,3.34, 3.35,3.38,3.50,3.45,3.51,3.49,3.42,3.52,3.50,3.50, 3.51,3.60,3.56,3.57,3.53,3.49,3.47,3.54,3.33,3.56, 3.57,3.46,3.59,3.48,3.57,3.64,3.39,3.68,3.59,3.55, 3.63,3.66,3.76,3.72,3.63,3.68,3.59,3.83,3.67,3.78, 3.78,3.86,3.67,3.83,3.78,3.86,3.84,3.72,3.81,3.74, 0.64,0.66,0.71,0.70,0.75,0.77,0.83,0.84,0.82,0.84, 0.87,0.92,0.92,0.98,0.99,0.98,1.02,1.04,1.01,1.07, 1.14,1.11,1.16,1.15,1.12,1.27,1.25,1.23,1.24,1.28, 1.25,1.26,1.30,1.34,1.31,1.40,1.34,1.42,1.42,1.42, 1.37,1.46,1.42,1.46,1.50,1.47,1.57,1.52,1.50,1.48, 1.49,1.52,1.55,1.66,1.59,1.56,1.65,1.56,1.68,1.64, 1.66,1.64,1.76,1.71,1.68,1.74,1.71,1.75,1.78,1.76, 1.80,1.75,1.78,1.85,1.89,1.80,1.90,1.88,1.91,1.85, 1.90,1.85,1.94,1.87,1.87,1.93,1.95,1.93,2.05,1.87, 2.03,2.06,1.95,1.95,2.07,1.98,2.03,2.08,2.08,2.04, 2.08,1.99,2.06,2.16,2.04,2.12,2.09,2.13,2.15,2.06, 2.15,2.17,2.19,2.19,2.23,2.22,2.28,2.33,2.27,2.18, 2.19,2.20,2.22,2.29,2.18,2.37,2.35,2.31,2.36,2.36, 2.28,2.40,2.26,2.34,2.34,2.38,2.54,2.44,2.36,2.57, 2.64,2.48,2.41,2.36,2.47,2.45,2.56,2.53,2.42,2.45, 2.53,2.57,2.45,2.53,2.50,2.63,2.61,2.59,2.54,2.51, 2.67,2.62,2.63,2.62,2.57,2.59,2.63,2.63,2.62,2.54, 2.68,2.69,2.72,2.74,2.77,2.77,2.69,2.67,2.68,2.58, 2.67,2.87,2.72,2.80,2.73,2.77,2.66,2.72,2.85,2.86, 2.75,2.77,2.77,2.79,2.84,2.90,2.92,2.84,2.99,2.91, 2.85,2.96,2.87,2.95,2.93,2.85,2.93,2.80,2.84,2.89, 2.96,2.92,2.97,2.90,2.88,3.02,2.97,2.94,2.78,2.91, 2.87,2.90,3.08,3.09,3.01,2.96,2.99,3.08,2.98,2.93, 3.17,3.08,3.12,3.10,3.18,3.26,3.18,3.13,3.03,3.12, 3.14,3.14,3.14,3.21,3.03,3.20,3.09,3.23,3.13,3.17, 3.31,3.31,3.16,3.21,3.22,3.09,3.24,3.29,3.22,3.18, 3.22,3.26,3.10,3.26,3.31,3.29,3.29,3.33,3.38,3.36, 3.32,3.29,3.24,3.38,3.42,3.28,3.34,3.39,3.41,3.35, 3.40,3.43,3.38,3.46,3.42,3.57,3.36,3.31,3.47,3.42, 0.60,0.61,0.65,0.65,0.69,0.74,0.74,0.77,0.81,0.81, 0.79,0.80,0.86,0.88,0.88,0.91,0.93,0.94,0.96,0.99, 1.03,1.03,1.05,1.06,1.08,1.08,1.06,1.13,1.13,1.14, 1.16,1.17,1.17,1.16,1.17,1.22,1.25,1.29,1.25,1.22, 1.24,1.31,1.25,1.37,1.31,1.33,1.34,1.37,1.40,1.37, 1.41,1.38,1.43,1.41,1.44,1.42,1.46,1.50,1.54,1.54, 1.50,1.46,1.52,1.61,1.60,1.56,1.58,1.62,1.60,1.54, 1.66,1.62,1.64,1.64,1.61,1.72,1.62,1.70,1.73,1.79, 1.79,1.69,1.72,1.79,1.61,1.78,1.73,1.79,1.75,1.85, 1.85,1.88,1.84,1.88,1.89,2.00,1.81,1.87,1.86,1.85, 1.81,1.83,1.88,1.93,1.94,1.99,1.99,1.94,2.00,2.06, 2.00,2.05,1.94,1.99,1.97,2.06,2.04,2.00,2.03,2.07, 2.07,2.14,2.10,2.10,2.10,2.15,2.11,2.10,2.08,2.11, 2.17,2.13,2.14,2.15,2.15,2.13,2.22,2.25,2.20,2.28, 2.20,2.24,2.16,2.28,2.23,2.29,2.27,2.19,2.25,2.29, 2.31,2.29,2.34,2.36,2.35,2.39,2.33,2.29,2.35,2.28, 2.26,2.45,2.27,2.31,2.40,2.37,2.41,2.37,2.34,2.41, 2.43,2.39,2.54,2.41,2.47,2.44,2.44,2.42,2.50,2.47, 2.43,2.49,2.48,2.48,2.50,2.47,2.52,2.60,2.46,2.58, 2.55,2.57,2.51,2.60,2.53,2.57,2.64,2.62,2.59,2.60, 2.64,2.65,2.61,2.61,2.63,2.79,2.68,2.71,2.66,2.71, 2.65,2.72,2.73,2.68,2.59,2.75,2.70,2.80,2.72,2.72, 2.72,2.69,2.74,2.80,2.72,2.75,2.84,2.71,2.84,2.76, 2.86,2.86,2.80,2.83,2.75,2.84,2.77,2.84,2.72,2.79, 2.83,2.78,2.88,2.92,2.92,2.90,2.93,2.88,2.81,2.94, 2.82,3.03,2.96,3.09,3.01,2.96,3.02,3.02,2.91,2.98, 3.02,2.96,2.99,2.86,3.01,3.04,2.95,2.96,3.10,2.99, 3.01,3.01,2.86,2.97,2.97,3.07,3.12,3.10,3.15,3.10, 3.09,3.08,3.03,3.15,3.17,3.14,3.07,3.07,3.09,3.15, 0.53,0.58,0.59,0.60,0.64,0.67,0.68,0.68,0.71,0.72, 0.76,0.75,0.78,0.79,0.84,0.84,0.86,0.88,0.88,0.91, 0.93,0.91,0.97,0.96,0.97,0.96,1.01,1.05,1.05,1.03, 1.06,1.07,1.07,1.10,1.11,1.13,1.14,1.13,1.12,1.18, 1.16,1.16,1.15,1.15,1.16,1.17,1.28,1.21,1.25,1.23, 1.30,1.33,1.29,1.30,1.31,1.30,1.30,1.32,1.32,1.39, 1.35,1.35,1.34,1.41,1.36,1.41,1.41,1.46,1.42,1.45, 1.46,1.56,1.54,1.50,1.52,1.58,1.50,1.53,1.54,1.57, 1.51,1.57,1.64,1.53,1.64,1.60,1.58,1.65,1.54,1.61, 1.63,1.76,1.67,1.62,1.61,1.69,1.71,1.67,1.79,1.65, 1.68,1.70,1.71,1.78,1.80,1.77,1.81,1.74,1.82,1.77, 1.82,1.78,1.80,1.89,1.88,1.82,1.81,1.83,1.85,1.88, 1.94,1.88,1.98,1.93,1.92,1.92,1.96,1.97,1.87,1.90, 1.90,1.96,2.01,1.92,1.96,1.98,1.98,2.01,2.01,2.11, 2.03,2.10,2.09,2.02,2.07,1.96,2.01,2.06,2.06,2.15, 2.06,2.09,2.05,2.11,2.13,2.07,2.04,2.12,2.17,2.17, 2.09,2.09,2.17,2.23,2.12,2.20,2.09,2.16,2.22,2.13, 2.16,2.25,2.16,2.29,2.21,2.23,2.22,2.25,2.20,2.26, 2.26,2.26,2.34,2.22,2.25,2.29,2.34,2.36,2.23,2.27, 2.35,2.35,2.41,2.31,2.32,2.30,2.34,2.38,2.42,2.33, 2.46,2.40,2.36,2.39,2.42,2.42,2.45,2.44,2.43,2.44, 2.48,2.40,2.52,2.32,2.42,2.47,2.47,2.44,2.56,2.46, 2.56,2.47,2.58,2.52,2.53,2.53,2.59,2.66,2.56,2.51, 2.56,2.60,2.56,2.68,2.54,2.55,2.57,2.63,2.61,2.57, 2.58,2.62,2.70,2.66,2.65,2.54,2.64,2.59,2.66,2.66, 2.63,2.66,2.62,2.73,2.68,2.75,2.66,2.73,2.67,2.71, 2.74,2.69,2.69,2.77,2.68,2.78,2.69,2.70,2.82,2.74, 2.79,2.58,2.85,2.76,2.71,2.65,2.79,2.74,2.83,2.85, 2.75,2.89,2.93,2.86,2.80,2.85,2.80,2.88,2.88,2.81, 0.49,0.51,0.54,0.56,0.55,0.59,0.62,0.64,0.67,0.68, 0.69,0.69,0.72,0.73,0.71,0.74,0.76,0.76,0.78,0.77, 0.82,0.81,0.88,0.89,0.91,0.89,0.93,0.90,0.87,0.92, 0.93,1.00,1.01,1.00,1.01,0.99,0.98,1.05,1.02,1.10, 1.05,1.03,1.07,1.10,1.11,1.13,1.12,1.11,1.18,1.19, 1.18,1.19,1.19,1.17,1.20,1.26,1.24,1.21,1.30,1.24, 1.23,1.30,1.27,1.27,1.30,1.30,1.35,1.37,1.33,1.34, 1.26,1.35,1.34,1.42,1.42,1.38,1.38,1.41,1.47,1.40, 1.43,1.45,1.46,1.47,1.52,1.49,1.44,1.44,1.47,1.46, 1.48,1.54,1.55,1.53,1.50,1.48,1.55,1.53,1.53,1.54, 1.64,1.51,1.60,1.60,1.54,1.64,1.62,1.55,1.65,1.64, 1.64,1.68,1.66,1.64,1.70,1.70,1.64,1.66,1.62,1.69, 1.74,1.74,1.74,1.73,1.71,1.76,1.72,1.75,1.72,1.77, 1.79,1.72,1.78,1.74,1.85,1.84,1.82,1.73,1.88,1.85, 1.85,1.82,1.80,1.82,1.92,1.85,1.89,1.88,1.94,1.86, 1.95,1.83,1.86,1.94,1.97,1.91,1.99,1.86,2.04,1.91, 1.99,1.93,1.99,1.96,1.97,2.01,1.95,1.94,2.01,2.09, 1.98,2.06,2.04,1.98,2.05,1.99,2.10,2.02,2.09,2.05, 2.03,2.15,2.04,2.04,2.11,2.07,2.20,2.08,2.09,2.11, 2.13,2.12,2.12,2.06,2.22,2.15,2.11,2.14,2.11,2.26, 2.21,2.11,2.19,2.17,2.15,2.26,2.16,2.25,2.20,2.18, 2.17,2.22,2.16,2.28,2.17,2.21,2.19,2.26,2.25,2.29, 2.37,2.21,2.19,2.33,2.22,2.27,2.31,2.30,2.37,2.38, 2.33,2.23,2.35,2.37,2.29,2.25,2.40,2.31,2.43,2.40, 2.42,2.32,2.28,2.37,2.43,2.36,2.38,2.44,2.52,2.34, 2.52,2.27,2.29,2.41,2.40,2.43,2.49,2.56,2.43,2.56, 2.45,2.53,2.54,2.38,2.52,2.48,2.45,2.45,2.55,2.53, 2.58,2.41,2.50,2.51,2.61,2.57,2.55,2.52,2.50,2.57, 2.60,2.55,2.56,2.54,2.54,2.49,2.59,2.68,2.62,2.59, 0.43,0.44,0.50,0.50,0.53,0.52,0.57,0.53,0.60,0.62, 0.60,0.64,0.65,0.66,0.65,0.69,0.69,0.72,0.75,0.73, 0.71,0.76,0.77,0.77,0.77,0.80,0.80,0.86,0.83,0.83, 0.86,0.91,0.91,0.88,0.91,0.91,0.94,0.90,0.92,0.95, 0.95,0.96,0.99,0.98,0.99,1.02,1.06,1.06,1.05,1.03, 1.09,1.03,1.05,1.11,1.05,1.09,1.13,1.11,1.11,1.15, 1.10,1.15,1.20,1.14,1.19,1.20,1.12,1.20,1.27,1.22, 1.25,1.20,1.25,1.25,1.24,1.26,1.30,1.26,1.33,1.28, 1.33,1.32,1.26,1.31,1.37,1.26,1.32,1.33,1.30,1.35, 1.31,1.37,1.43,1.37,1.45,1.40,1.45,1.44,1.40,1.44, 1.41,1.40,1.43,1.40,1.44,1.44,1.50,1.48,1.48,1.44, 1.52,1.50,1.52,1.49,1.51,1.57,1.52,1.48,1.52,1.57, 1.58,1.57,1.56,1.58,1.61,1.57,1.62,1.65,1.66,1.60, 1.62,1.58,1.60,1.61,1.71,1.69,1.62,1.63,1.65,1.58, 1.65,1.61,1.71,1.68,1.62,1.69,1.71,1.68,1.65,1.76, 1.74,1.71,1.69,1.66,1.77,1.75,1.74,1.72,1.82,1.75, 1.77,1.80,1.72,1.79,1.82,1.83,1.83,1.84,1.84,1.82, 1.78,1.84,1.81,1.84,1.87,1.89,1.80,1.86,1.86,1.91, 1.91,1.86,1.81,1.84,1.96,1.97,1.84,1.96,1.84,1.86, 1.93,2.01,1.97,1.96,1.90,1.93,2.00,1.95,1.88,1.98, 1.99,1.92,2.04,1.92,2.00,2.01,1.99,2.10,2.01,1.90, 2.01,2.04,1.99,2.01,1.98,2.07,1.98,2.03,1.98,2.12, 2.05,2.05,2.06,2.12,2.11,2.07,2.00,2.07,2.13,2.13, 2.14,2.12,2.10,2.01,2.09,2.08,2.13,2.08,2.08,2.20, 2.07,2.07,2.16,2.11,2.11,2.11,2.12,2.12,2.24,2.18, 2.18,2.23,2.23,2.25,2.15,2.05,2.28,2.27,2.27,2.17, 2.28,2.22,2.25,2.19,2.34,2.29,2.32,2.31,2.16,2.28, 2.30,2.27,2.25,2.35,2.32,2.29,2.26,2.32,2.28,2.31, 2.30,2.39,2.21,2.39,2.31,2.24,2.35,2.25,2.34,2.26, 0.41,0.41,0.44,0.46,0.47,0.48,0.47,0.51,0.50,0.55, 0.56,0.57,0.59,0.59,0.60,0.63,0.64,0.64,0.66,0.65, 0.67,0.70,0.72,0.76,0.71,0.73,0.73,0.80,0.78,0.77, 0.78,0.79,0.78,0.80,0.84,0.85,0.83,0.84,0.81,0.87, 0.91,0.91,0.87,0.92,0.93,0.91,0.90,0.92,0.96,0.92, 0.95,1.05,1.00,1.00,0.96,0.98,1.01,1.00,1.01,1.01, 1.04,1.09,1.08,1.08,1.07,1.09,1.04,1.14,1.06,1.12, 1.08,1.12,1.09,1.08,1.19,1.16,1.10,1.15,1.15,1.18, 1.16,1.14,1.21,1.19,1.20,1.21,1.21,1.25,1.24,1.20, 1.20,1.20,1.26,1.31,1.23,1.26,1.25,1.27,1.34,1.28, 1.23,1.26,1.32,1.29,1.28,1.33,1.32,1.34,1.38,1.37, 1.38,1.34,1.37,1.36,1.38,1.37,1.41,1.36,1.43,1.38, 1.44,1.40,1.39,1.44,1.38,1.44,1.47,1.42,1.41,1.48, 1.51,1.47,1.47,1.52,1.49,1.53,1.51,1.47,1.49,1.46, 1.55,1.50,1.53,1.57,1.57,1.57,1.46,1.56,1.53,1.54, 1.51,1.58,1.54,1.51,1.58,1.50,1.53,1.66,1.58,1.58, 1.60,1.60,1.61,1.59,1.62,1.68,1.65,1.67,1.66,1.65, 1.70,1.65,1.66,1.66,1.64,1.66,1.70,1.73,1.75,1.69, 1.66,1.69,1.69,1.70,1.71,1.65,1.76,1.70,1.64,1.74, 1.77,1.73,1.77,1.77,1.76,1.79,1.79,1.82,1.75,1.83, 1.74,1.79,1.81,1.82,1.77,1.86,1.84,1.87,1.84,1.81, 1.85,1.85,1.85,1.86,1.81,1.85,1.93,1.91,1.84,1.77, 1.93,1.87,1.88,1.87,1.91,1.81,1.91,1.86,1.94,1.94, 1.94,1.91,1.90,1.93,1.92,1.85,1.89,2.01,1.92,2.00, 2.04,2.03,1.94,1.96,2.03,1.86,1.94,1.96,1.98,1.95, 2.00,2.06,1.92,1.95,1.98,2.05,2.07,2.04,2.00,2.06, 2.08,2.11,2.00,2.07,2.08,2.02,2.08,2.09,2.09,2.10, 2.07,2.08,1.99,2.03,2.09,2.01,2.07,2.07,2.09,2.09, 2.11,2.05,2.06,2.03,2.06,2.12,2.13,2.15,2.14,2.20, 0.37,0.38,0.36,0.40,0.43,0.45,0.46,0.49,0.49,0.47, 0.49,0.52,0.53,0.55,0.56,0.58,0.57,0.59,0.60,0.60, 0.64,0.64,0.62,0.63,0.64,0.69,0.65,0.68,0.68,0.71, 0.72,0.75,0.70,0.72,0.78,0.71,0.76,0.82,0.83,0.77, 0.76,0.84,0.81,0.82,0.83,0.81,0.84,0.88,0.86,0.91, 0.85,0.90,0.83,0.85,0.93,0.85,0.93,0.94,0.92,0.91, 0.99,0.89,0.93,0.94,0.96,1.00,0.98,0.99,0.96,0.98, 0.95,0.97,1.00,0.95,1.04,0.99,1.03,1.01,1.07,1.06, 1.08,1.09,1.01,1.05,1.06,1.09,1.09,1.08,1.11,1.12, 1.12,1.12,1.13,1.13,1.14,1.17,1.19,1.16,1.20,1.20, 1.14,1.18,1.21,1.18,1.21,1.27,1.22,1.17,1.17,1.16, 1.26,1.24,1.21,1.29,1.25,1.28,1.26,1.24,1.24,1.23, 1.31,1.30,1.33,1.29,1.30,1.30,1.30,1.33,1.32,1.36, 1.36,1.33,1.33,1.37,1.32,1.38,1.35,1.39,1.34,1.35, 1.38,1.39,1.36,1.34,1.47,1.42,1.46,1.42,1.39,1.34, 1.42,1.41,1.47,1.44,1.47,1.45,1.37,1.46,1.44,1.46, 1.46,1.40,1.54,1.43,1.49,1.50,1.46,1.50,1.50,1.46, 1.45,1.47,1.50,1.53,1.48,1.53,1.50,1.54,1.58,1.49, 1.51,1.51,1.54,1.56,1.58,1.53,1.58,1.59,1.56,1.57, 1.54,1.60,1.57,1.60,1.62,1.64,1.55,1.60,1.64,1.59, 1.59,1.62,1.57,1.65,1.64,1.61,1.66,1.62,1.67,1.70, 1.61,1.60,1.64,1.68,1.67,1.68,1.69,1.74,1.62,1.66, 1.69,1.71,1.69,1.70,1.63,1.75,1.81,1.76,1.74,1.70, 1.77,1.73,1.71,1.71,1.74,1.76,1.69,1.73,1.81,1.84, 1.70,1.80,1.82,1.77,1.84,1.79,1.83,1.76,1.81,1.84, 1.82,1.86,1.82,1.81,1.84,1.89,1.89,1.78,1.81,1.81, 1.91,1.84,1.87,1.86,1.82,1.87,1.90,1.86,1.81,1.88, 1.81,1.81,1.88,1.83,1.86,1.91,1.83,1.97,1.94,1.87, 1.86,1.98,1.98,1.89,1.97,1.97,1.95,1.95,1.89,1.91, 1.14,1.25,1.26,1.33,1.40,1.34,1.45,1.46,1.54,1.61, 1.62,1.61,1.68,1.78,1.70,1.80,1.79,1.87,1.82,1.96, 1.92,1.99,2.03,2.11,2.09,2.06,2.17,2.15,2.17,2.26, 2.26,2.33,2.36,2.37,2.35,2.47,2.43,2.38,2.45,2.51, 2.50,2.58,2.61,2.64,2.65,2.67,2.57,2.66,2.66,2.70, 2.74,2.77,2.82,2.85,2.87,2.89,3.00,2.99,2.83,3.02, 3.05,3.03,3.08,3.00,3.12,3.05,3.14,3.09,3.06,3.21, 3.27,3.11,3.25,3.25,3.34,3.32,3.35,3.27,3.34,3.25, 3.39,3.46,3.52,3.53,3.58,3.43,3.69,3.53,3.62,3.59, 3.60,3.67,3.77,3.53,3.55,3.61,3.69,3.54,3.66,3.63, 3.84,3.76,3.65,3.91,3.94,3.89,3.82,3.80,3.89,4.05, 3.98,3.96,3.97,4.05,3.96,3.94,3.92,3.99,4.18,4.11, 4.03,4.03,4.19,4.22,4.15,4.11,4.12,4.15,4.18,4.29, 4.22,4.12,4.25,4.17,4.27,4.18,4.30,4.38,4.26,4.33, 4.24,4.43,4.47,4.33,4.35,4.49,4.49,4.38,4.40,4.48, 4.29,4.59,4.62,4.54,4.48,4.55,4.47,4.59,4.53,4.50, 4.61,4.74,4.62,4.88,4.69,4.65,4.58,4.58,4.76,4.58, 4.87,4.87,4.83,4.68,4.86,5.00,4.74,4.74,4.73,4.87, 4.98,4.77,5.20,5.04,4.99,4.99,5.10,4.85,4.98,4.90, 5.11,5.01,4.95,5.02,4.97,5.22,5.18,5.03,5.08,4.97, 5.23,5.08,5.31,5.20,5.16,5.21,5.27,5.16,5.03,5.43, 5.31,5.34,5.26,5.64,5.12,5.11,5.31,5.38,5.33,5.31, 5.41,5.19,5.40,5.34,5.61,5.48,5.60,5.51,5.40,5.60, 5.45,5.66,5.69,5.73,5.48,5.58,5.40,5.61,5.53,5.76, 5.69,5.62,5.57,5.54,5.73,5.77,5.93,5.60,5.68,5.59, 5.70,5.92,5.83,5.77,5.88,5.66,5.85,5.78,5.94,5.89, 5.91,5.77,5.72,5.85,5.68,5.87,5.89,6.00,5.85,6.07, 5.97,6.16,6.13,5.89,6.19,6.00,6.04,6.24,6.14,6.16, 6.12,6.04,6.02,6.29,6.09,6.09,6.22,6.38,6.38,6.14, 1.12,1.20,1.21,1.28,1.29,1.42,1.40,1.47,1.50,1.54, 1.54,1.56,1.63,1.61,1.69,1.77,1.75,1.84,1.85,1.93, 1.85,1.92,2.03,1.97,1.95,2.02,2.03,2.01,2.14,2.14, 2.28,2.13,2.24,2.33,2.29,2.32,2.35,2.36,2.43,2.40, 2.37,2.40,2.32,2.41,2.48,2.61,2.55,2.54,2.55,2.51, 2.68,2.68,2.78,2.70,2.72,2.77,2.69,2.83,2.85,2.77, 2.87,2.92,2.91,2.87,2.91,2.94,2.98,2.95,3.02,2.94, 3.01,3.06,2.99,3.14,3.07,3.11,3.09,3.21,3.23,3.21, 3.24,3.20,3.26,3.35,3.31,3.17,3.39,3.32,3.42,3.44, 3.32,3.52,3.43,3.43,3.46,3.40,3.58,3.49,3.51,3.64, 3.65,3.57,3.70,3.77,3.65,3.47,3.77,3.63,3.53,3.59, 3.72,3.91,3.75,3.71,3.77,3.78,3.75,3.93,3.80,3.86, 3.83,4.02,3.87,3.91,3.97,3.90,3.95,4.02,4.21,4.04, 4.07,4.02,3.90,4.03,4.17,4.17,4.04,4.20,4.16,4.11, 4.33,4.21,4.18,4.19,4.09,4.20,4.12,4.34,4.27,4.29, 4.47,4.42,4.33,4.55,4.39,4.43,4.44,4.43,4.52,4.53, 4.43,4.32,4.34,4.57,4.59,4.39,4.47,4.42,4.66,4.56, 4.60,4.70,4.59,4.64,4.65,4.70,4.68,4.71,4.83,4.85, 4.61,4.76,4.41,4.68,4.44,4.69,4.78,4.84,4.93,4.66, 4.75,4.84,4.80,4.93,4.70,4.78,5.02,4.90,4.97,4.77, 5.05,5.00,4.95,5.03,5.03,5.06,4.97,5.01,4.94,5.04, 5.20,5.15,5.19,5.05,4.99,5.05,5.19,5.02,4.95,5.14, 5.10,5.12,4.90,5.25,5.29,5.29,5.19,5.52,5.24,5.19, 5.36,5.41,5.15,5.37,5.19,5.36,5.41,5.40,5.37,5.30, 5.35,5.27,5.43,5.63,5.32,5.57,5.60,5.40,5.61,5.58, 5.49,5.32,5.44,5.48,5.50,5.71,5.59,5.56,5.61,5.50, 5.62,5.54,5.74,5.76,5.50,5.53,5.69,5.72,5.59,5.55, 5.79,5.63,5.52,5.71,5.65,5.64,5.71,5.75,5.85,5.80, 5.85,5.62,6.07,5.55,5.85,5.84,5.77,5.89,5.71,5.88, 1.07,1.11,1.13,1.21,1.20,1.29,1.32,1.34,1.41,1.42, 1.52,1.52,1.55,1.56,1.61,1.64,1.64,1.63,1.77,1.75, 1.73,1.88,1.88,1.96,1.85,1.93,1.98,1.94,1.93,2.03, 2.06,2.12,2.17,2.10,2.16,2.16,2.25,2.19,2.20,2.32, 2.36,2.38,2.38,2.34,2.44,2.44,2.40,2.43,2.45,2.43, 2.48,2.52,2.49,2.59,2.64,2.64,2.60,2.73,2.65,2.74, 2.68,2.66,2.76,2.72,2.84,2.68,2.79,2.89,2.79,2.80, 2.77,2.93,2.82,2.92,2.95,3.01,2.96,2.84,3.02,2.95, 2.93,3.02,3.09,3.20,3.17,3.14,3.08,3.29,3.19,3.22, 3.25,3.24,3.25,3.33,3.23,3.39,3.31,3.24,3.41,3.39, 3.44,3.25,3.41,3.41,3.49,3.49,3.42,3.38,3.55,3.50, 3.65,3.50,3.37,3.55,3.63,3.54,3.51,3.73,3.63,3.72, 3.70,3.73,3.66,3.70,3.80,3.82,3.71,3.88,3.73,3.79, 3.89,3.87,3.83,3.90,3.83,3.81,3.81,3.98,3.79,3.95, 3.90,4.13,4.07,3.86,4.04,3.90,3.91,4.18,3.95,4.15, 4.05,4.16,4.10,4.20,4.05,4.07,4.09,4.13,4.16,4.22, 4.18,4.07,4.20,4.30,4.31,4.26,4.35,4.21,4.19,4.21, 4.37,4.21,4.27,4.44,4.30,4.36,4.48,4.59,4.53,4.56, 4.38,4.45,4.31,4.54,4.41,4.69,4.50,4.56,4.39,4.49, 4.75,4.59,4.61,4.51,4.65,4.49,4.64,4.63,4.59,4.74, 4.67,4.66,4.52,4.58,4.67,4.65,4.68,4.81,4.62,4.85, 4.64,4.51,4.77,4.55,4.96,4.85,4.83,4.98,4.89,4.67, 4.90,4.80,4.75,4.85,4.87,5.04,5.20,4.87,4.94,4.87, 5.26,5.12,5.08,5.00,5.16,5.13,4.83,5.02,5.08,5.08, 4.80,5.15,5.04,5.02,4.91,5.28,5.06,5.25,5.04,5.18, 5.24,5.28,5.09,5.20,5.14,5.12,5.18,5.22,5.12,5.41, 5.34,5.14,5.14,5.51,5.15,5.31,5.46,5.28,5.43,5.50, 5.44,5.41,5.53,5.43,5.69,5.31,5.42,5.48,5.57,5.52, 5.36,5.46,5.62,5.47,5.33,5.47,5.63,5.68,5.38,5.62, 1.01,1.06,1.05,1.12,1.15,1.18,1.19,1.25,1.31,1.34, 1.42,1.41,1.40,1.44,1.47,1.55,1.57,1.57,1.59,1.66, 1.69,1.66,1.77,1.80,1.84,1.78,1.86,1.88,1.85,1.95, 2.00,2.04,1.94,2.02,2.12,2.04,2.04,2.06,2.12,2.15, 2.19,2.15,2.20,2.32,2.31,2.31,2.24,2.25,2.43,2.32, 2.43,2.42,2.29,2.51,2.39,2.45,2.50,2.34,2.52,2.54, 2.70,2.65,2.67,2.64,2.53,2.58,2.57,2.65,2.77,2.74, 2.70,2.87,2.86,2.80,2.91,2.90,2.88,2.75,2.77,2.96, 2.98,2.89,2.86,2.83,2.92,2.99,2.94,3.14,3.03,3.04, 3.03,3.06,3.05,3.06,3.17,3.14,3.06,3.04,3.12,3.31, 3.16,3.24,3.27,3.18,3.21,3.28,3.24,3.32,3.25,3.35, 3.33,3.23,3.43,3.31,3.48,3.34,3.29,3.48,3.40,3.43, 3.46,3.45,3.51,3.48,3.61,3.43,3.55,3.55,3.61,3.65, 3.45,3.61,3.53,3.50,3.61,3.64,3.82,3.69,3.73,3.72, 3.84,3.85,3.77,3.63,3.94,3.89,3.75,3.99,3.90,3.82, 3.82,3.82,3.62,4.00,3.91,4.00,3.96,3.77,3.89,4.03, 3.84,4.01,4.11,4.06,3.96,4.03,4.08,3.95,3.94,4.12, 4.07,4.27,4.19,4.20,4.15,4.20,4.17,4.11,4.27,4.14, 4.24,4.08,4.09,4.11,4.26,4.35,4.37,4.17,4.38,4.30, 4.19,4.20,4.26,4.35,4.20,4.32,4.30,4.45,4.55,4.20, 4.45,4.42,4.29,4.49,4.50,4.41,4.57,4.61,4.54,4.33, 4.50,4.60,4.43,4.59,4.60,4.51,4.56,4.60,4.38,4.68, 4.68,4.70,4.78,4.48,4.74,4.56,4.72,4.50,4.59,4.83, 4.76,4.72,4.73,4.82,4.73,4.77,4.68,4.79,4.79,4.87, 4.72,4.71,4.96,4.72,4.71,4.83,4.78,4.72,4.91,4.95, 4.93,5.10,4.91,4.91,4.93,5.13,5.01,4.80,5.22,5.17, 5.02,5.16,4.90,4.85,5.07,5.17,5.20,4.95,4.99,5.11, 5.10,5.24,5.14,4.96,4.84,5.22,5.14,4.84,4.98,5.07, 5.34,5.02,5.34,5.00,5.12,5.16,5.22,5.12,5.35,5.07, 0.94,0.98,1.01,1.06,1.11,1.13,1.15,1.26,1.22,1.26, 1.36,1.35,1.36,1.40,1.36,1.43,1.46,1.43,1.54,1.56, 1.59,1.63,1.65,1.63,1.72,1.70,1.72,1.75,1.67,1.86, 1.86,1.81,1.83,1.96,1.92,2.01,1.94,1.94,2.02,1.95, 2.02,2.09,2.02,2.06,2.07,2.13,2.16,2.18,2.17,2.36, 2.33,2.19,2.24,2.36,2.25,2.25,2.35,2.39,2.47,2.34, 2.40,2.46,2.45,2.42,2.51,2.54,2.48,2.44,2.64,2.57, 2.55,2.44,2.59,2.60,2.55,2.61,2.77,2.69,2.78,2.77, 2.74,2.69,2.72,2.74,2.73,2.68,2.80,2.94,2.70,2.90, 2.76,2.96,2.79,2.79,2.94,3.03,2.89,2.99,2.89,3.01, 2.97,3.09,3.13,3.13,3.12,3.06,2.96,3.04,3.07,3.14, 3.17,3.09,3.20,3.17,3.18,3.18,3.30,3.10,3.26,3.28, 3.36,3.29,3.25,3.32,3.41,3.30,3.45,3.24,3.28,3.18, 3.44,3.35,3.29,3.39,3.51,3.39,3.55,3.45,3.43,3.46, 3.47,3.70,3.55,3.58,3.41,3.55,3.48,3.54,3.63,3.59, 3.75,3.67,3.62,3.48,3.64,3.73,3.76,3.72,3.78,3.68, 3.72,3.83,3.69,3.76,3.71,3.90,3.78,3.83,3.75,3.87, 3.79,3.82,3.92,3.72,3.87,3.93,3.96,3.81,3.94,3.91, 3.96,3.80,4.00,3.91,3.90,4.00,3.97,3.93,3.94,4.00, 4.14,4.00,4.14,4.14,4.17,4.28,4.21,4.00,4.14,4.19, 4.12,4.15,4.12,4.03,4.09,4.29,4.32,4.32,4.47,4.16, 4.18,4.61,4.15,4.19,4.34,4.15,4.39,4.29,4.28,4.19, 4.32,4.57,4.27,4.25,4.32,4.31,4.18,4.46,4.50,4.51, 4.44,4.33,4.31,4.46,4.29,4.37,4.40,4.43,4.31,4.49, 4.50,4.45,4.51,4.50,4.51,4.64,4.41,4.57,4.56,4.56, 4.34,4.46,4.61,4.64,4.65,4.77,4.45,4.54,4.56,4.60, 4.84,4.68,4.79,4.58,4.74,4.71,4.72,4.58,4.80,4.77, 4.53,4.78,4.80,4.82,4.88,4.95,4.91,4.78,4.88,4.76, 4.77,5.10,4.80,4.74,4.82,4.82,4.86,4.77,4.93,5.03, 0.83,0.88,0.95,1.02,0.98,1.01,1.08,1.12,1.13,1.19, 1.24,1.23,1.24,1.25,1.29,1.35,1.35,1.38,1.46,1.44, 1.55,1.44,1.50,1.52,1.57,1.64,1.67,1.67,1.69,1.67, 1.70,1.67,1.77,1.70,1.82,1.86,1.87,1.88,1.86,1.88, 1.87,1.96,1.89,1.94,2.01,2.02,1.93,2.06,2.06,2.02, 2.10,2.03,2.14,2.11,2.19,2.20,2.17,2.17,2.12,2.21, 2.22,2.21,2.17,2.28,2.40,2.34,2.30,2.32,2.36,2.34, 2.39,2.38,2.40,2.41,2.39,2.45,2.56,2.43,2.43,2.44, 2.56,2.49,2.61,2.60,2.57,2.49,2.59,2.61,2.61,2.56, 2.66,2.69,2.72,2.80,2.79,2.67,2.75,2.71,2.79,2.83, 2.74,2.79,2.89,2.87,2.80,2.80,2.78,2.93,2.95,2.91, 2.99,2.96,2.97,2.97,2.86,3.05,3.01,3.09,2.94,3.06, 3.15,2.92,3.05,2.95,3.16,3.08,3.09,2.99,3.12,3.24, 3.14,3.07,3.15,3.19,3.27,3.15,3.12,3.06,3.19,3.38, 3.36,3.23,3.24,3.38,3.27,3.36,3.32,3.25,3.48,3.33, 3.39,3.40,3.33,3.32,3.42,3.47,3.53,3.53,3.40,3.41, 3.50,3.41,3.38,3.50,3.66,3.55,3.38,3.56,3.47,3.50, 3.66,3.53,3.54,3.51,3.64,3.61,3.62,3.62,3.77,3.63, 3.69,3.63,3.71,3.54,3.76,3.65,3.69,3.73,3.68,3.64, 3.61,3.77,3.76,3.93,3.68,3.78,3.84,3.88,3.89,3.73, 3.85,3.84,3.80,3.93,3.93,4.02,3.86,3.79,3.80,4.00, 3.89,3.95,3.96,4.02,3.82,3.73,3.95,4.07,3.81,3.97, 4.00,4.16,4.15,4.22,4.06,4.16,4.18,4.06,4.00,4.15, 4.20,4.16,4.30,4.08,4.16,4.11,4.23,4.21,4.26,4.18, 4.32,4.07,4.19,4.13,4.11,4.15,4.38,4.13,4.28,4.41, 4.28,4.34,4.38,4.29,4.23,4.27,4.34,4.38,4.29,4.25, 4.46,4.27,4.46,4.46,4.38,4.37,4.39,4.36,4.45,4.46, 4.56,4.48,4.47,4.52,4.68,4.52,4.55,4.45,4.52,4.43, 4.49,4.62,4.67,4.56,4.66,4.72,4.69,4.54,4.53,4.55, 0.84,0.85,0.89,0.94,0.92,0.98,1.00,1.05,1.10,1.06, 1.17,1.17,1.21,1.21,1.18,1.26,1.21,1.33,1.34,1.37, 1.40,1.43,1.43,1.48,1.45,1.47,1.51,1.57,1.58,1.57, 1.60,1.66,1.64,1.58,1.60,1.67,1.71,1.79,1.70,1.77, 1.78,1.84,1.83,1.82,1.81,1.80,1.82,1.89,1.93,1.86, 1.88,1.99,1.91,2.00,1.97,1.98,2.05,2.05,2.08,2.10, 2.15,2.09,2.07,2.19,2.12,2.16,2.11,2.23,2.21,2.21, 2.22,2.13,2.20,2.31,2.18,2.18,2.19,2.30,2.33,2.32, 2.39,2.39,2.27,2.38,2.39,2.48,2.45,2.34,2.41,2.44, 2.52,2.46,2.43,2.48,2.59,2.44,2.47,2.62,2.52,2.58, 2.64,2.64,2.65,2.64,2.64,2.64,2.77,2.67,2.66,2.69, 2.62,2.70,2.82,2.68,2.89,2.80,2.91,2.79,2.80,2.82, 2.70,2.91,2.82,2.94,2.70,2.91,3.02,3.00,2.97,2.84, 2.91,2.98,2.84,3.17,2.94,2.89,3.10,3.02,3.00,3.09, 3.03,3.06,3.03,2.99,3.09,3.02,3.09,3.19,3.14,3.11, 3.25,3.22,3.21,3.21,3.21,3.26,3.12,3.00,3.18,3.17, 3.30,3.14,3.20,3.22,3.08,3.20,3.22,3.26,3.27,3.30, 3.22,3.34,3.32,3.32,3.47,3.20,3.41,3.31,3.46,3.44, 3.62,3.58,3.39,3.30,3.53,3.56,3.54,3.52,3.36,3.50, 3.58,3.57,3.53,3.62,3.60,3.64,3.60,3.56,3.56,3.55, 3.51,3.51,3.69,3.80,3.48,3.69,3.79,3.53,3.62,3.63, 3.68,3.72,3.61,3.75,3.66,3.70,3.79,3.74,3.77,3.67, 3.75,3.85,3.73,3.75,3.86,3.74,3.89,3.70,3.79,3.79, 3.92,3.92,3.73,3.86,3.78,3.69,3.93,3.81,3.79,3.77, 3.81,3.99,3.92,3.84,4.05,3.81,3.89,3.97,4.02,3.98, 3.93,4.18,4.02,3.95,3.86,3.94,3.85,3.91,4.18,4.03, 4.12,3.97,4.22,4.25,4.02,4.16,4.19,4.06,4.10,4.05, 4.22,4.16,4.04,4.00,4.15,4.19,4.13,4.11,4.10,4.40, 4.27,4.13,4.07,4.12,4.23,4.33,4.08,4.21,4.23,4.32, 0.75,0.78,0.82,0.85,0.84,0.94,0.90,0.98,0.97,1.02, 1.04,1.09,1.08,1.12,1.12,1.18,1.21,1.19,1.20,1.25, 1.29,1.28,1.31,1.29,1.30,1.33,1.38,1.40,1.43,1.45, 1.46,1.41,1.47,1.48,1.51,1.55,1.59,1.56,1.53,1.64, 1.58,1.66,1.65,1.69,1.73,1.72,1.76,1.72,1.74,1.79, 1.80,1.87,1.80,1.82,1.80,1.86,1.93,1.87,1.88,1.91, 1.91,1.92,2.01,1.97,1.95,2.01,2.04,2.05,2.03,2.05, 2.02,2.06,2.02,2.13,2.12,2.15,2.14,2.14,2.12,2.07, 2.21,2.20,2.25,2.13,2.18,2.20,2.22,2.23,2.29,2.24, 2.31,2.28,2.22,2.33,2.41,2.31,2.36,2.55,2.39,2.39, 2.41,2.38,2.38,2.43,2.49,2.58,2.53,2.46,2.49,2.50, 2.46,2.39,2.57,2.56,2.54,2.59,2.57,2.68,2.53,2.50, 2.63,2.55,2.58,2.63,2.54,2.79,2.67,2.74,2.66,2.65, 2.75,2.76,2.75,2.66,2.78,2.87,2.75,2.85,2.66,2.75, 2.79,2.79,2.85,2.99,2.73,2.87,2.77,2.89,2.97,2.86, 2.95,2.96,2.93,2.92,2.91,2.85,2.87,2.94,3.01,2.97, 3.14,3.15,2.97,2.91,2.84,2.99,3.00,2.97,3.06,3.12, 3.08,3.11,3.24,3.02,3.05,3.20,3.24,3.13,3.16,3.10, 3.22,3.28,3.27,3.23,3.18,3.16,3.24,3.19,3.28,3.04, 3.24,3.32,3.18,3.29,3.26,3.33,3.35,3.20,3.20,3.36, 3.26,3.34,3.40,3.47,3.41,3.23,3.45,3.30,3.35,3.43, 3.32,3.28,3.34,3.39,3.40,3.46,3.59,3.49,3.46,3.44, 3.53,3.46,3.47,3.55,3.56,3.44,3.60,3.52,3.47,3.48, 3.53,3.54,3.48,3.55,3.52,3.67,3.69,3.68,3.58,3.64, 3.70,3.64,3.82,3.62,3.64,3.72,3.59,3.67,3.56,3.69, 3.66,3.82,3.71,3.62,3.64,3.87,3.69,3.75,3.87,3.62, 3.73,4.00,3.84,3.70,3.77,3.82,3.84,3.78,3.81,3.70, 3.80,3.90,3.96,3.83,3.80,3.83,3.94,3.69,4.04,3.72, 4.07,3.85,3.83,4.00,3.77,4.04,4.01,3.87,3.72,3.91, 0.68,0.72,0.74,0.79,0.81,0.82,0.87,0.90,0.92,0.93, 0.96,1.02,1.03,1.04,1.06,1.09,1.08,1.06,1.15,1.15, 1.13,1.17,1.23,1.19,1.23,1.27,1.21,1.29,1.32,1.33, 1.35,1.33,1.39,1.38,1.44,1.45,1.45,1.46,1.42,1.47, 1.52,1.55,1.50,1.49,1.56,1.56,1.53,1.62,1.58,1.60, 1.68,1.70,1.71,1.58,1.69,1.72,1.75,1.76,1.69,1.82, 1.86,1.80,1.73,1.80,1.91,1.87,1.87,1.86,1.90,1.95, 1.81,1.83,1.99,1.92,1.95,1.94,1.93,1.95,1.95,1.97, 2.00,2.00,2.01,2.05,2.01,2.06,2.11,2.10,2.14,2.03, 2.04,2.15,2.17,2.14,2.23,2.14,2.19,2.18,2.18,2.31, 2.19,2.17,2.26,2.31,2.36,2.35,2.23,2.35,2.32,2.26, 2.30,2.33,2.37,2.36,2.28,2.28,2.38,2.41,2.38,2.44, 2.42,2.58,2.32,2.53,2.51,2.43,2.43,2.49,2.46,2.41, 2.50,2.43,2.49,2.54,2.48,2.53,2.56,2.52,2.59,2.63, 2.61,2.58,2.63,2.66,2.56,2.66,2.65,2.70,2.70,2.69, 2.63,2.62,2.73,2.76,2.68,2.83,2.75,2.74,2.80,2.80, 2.70,2.69,2.82,2.89,2.81,2.75,2.82,2.90,2.84,2.79, 2.86,2.91,2.95,2.93,2.92,2.97,2.88,3.04,2.96,2.94, 3.05,3.05,2.92,2.99,2.91,2.90,2.94,2.93,3.08,2.98, 2.98,2.95,3.04,3.16,2.97,3.08,2.89,3.08,3.17,3.04, 3.07,3.00,3.21,3.10,3.17,3.10,3.09,3.07,3.03,3.12, 3.10,3.22,3.09,3.16,3.26,3.16,3.11,3.23,3.14,3.22, 3.32,3.21,3.18,3.23,3.22,3.13,3.26,3.26,3.27,3.28, 3.26,3.30,3.37,3.22,3.39,3.28,3.29,3.45,3.15,3.32, 3.34,3.41,3.59,3.42,3.31,3.44,3.34,3.42,3.35,3.51, 3.32,3.46,3.19,3.35,3.36,3.50,3.36,3.48,3.37,3.40, 3.54,3.46,3.63,3.55,3.48,3.54,3.59,3.46,3.52,3.54, 3.40,3.65,3.52,3.57,3.52,3.54,3.48,3.51,3.65,3.62, 3.58,3.75,3.61,3.67,3.62,3.77,3.53,3.60,3.69,3.68, 0.62,0.66,0.68,0.74,0.76,0.80,0.79,0.84,0.89,0.86, 0.86,0.89,0.92,0.94,0.98,1.00,1.00,0.98,1.05,1.06, 1.07,1.08,1.09,1.13,1.09,1.16,1.20,1.23,1.21,1.22, 1.25,1.21,1.26,1.34,1.31,1.37,1.34,1.35,1.37,1.42, 1.41,1.37,1.40,1.42,1.49,1.45,1.44,1.45,1.49,1.46, 1.50,1.54,1.49,1.57,1.55,1.63,1.67,1.50,1.65,1.64, 1.58,1.61,1.59,1.67,1.74,1.73,1.73,1.75,1.70,1.78, 1.71,1.73,1.73,1.79,1.69,1.81,1.80,1.82,1.80,1.89, 1.85,1.86,1.87,1.86,1.83,1.93,1.90,1.89,1.91,1.96, 1.99,1.95,1.95,1.97,1.94,1.96,2.01,2.01,2.05,2.02, 2.05,2.08,2.11,2.07,2.05,2.06,2.09,2.14,2.03,2.09, 2.12,2.17,2.07,2.16,2.19,2.07,2.17,2.15,2.17,2.21, 2.28,2.21,2.26,2.23,2.23,2.27,2.30,2.16,2.29,2.33, 2.27,2.31,2.41,2.25,2.31,2.35,2.40,2.46,2.33,2.36, 2.31,2.47,2.42,2.34,2.27,2.43,2.46,2.39,2.42,2.45, 2.51,2.51,2.43,2.34,2.51,2.49,2.47,2.59,2.46,2.54, 2.50,2.58,2.60,2.55,2.59,2.69,2.61,2.56,2.66,2.65, 2.62,2.62,2.56,2.58,2.69,2.66,2.63,2.59,2.74,2.55, 2.69,2.69,2.72,2.64,2.71,2.75,2.79,2.78,2.79,2.77, 2.68,2.64,2.71,2.66,2.69,2.82,2.81,2.70,2.86,2.77, 2.81,2.87,2.85,2.76,2.85,2.90,2.80,2.85,2.89,2.88, 3.06,2.91,2.95,3.07,2.92,2.96,2.95,2.92,2.82,2.88, 2.90,2.87,3.06,3.12,3.03,2.94,3.06,3.05,2.96,2.97, 3.16,2.97,3.03,3.01,2.96,3.19,2.90,3.04,2.98,2.98, 3.03,3.13,3.19,3.25,3.20,3.09,2.98,3.08,3.24,3.09, 3.09,3.20,3.10,3.08,3.09,3.19,3.05,3.18,3.17,3.16, 3.26,3.20,3.10,3.14,3.27,3.22,3.23,3.27,3.18,3.30, 3.42,3.19,3.28,3.21,3.32,3.29,3.29,3.28,3.37,3.26, 3.24,3.29,3.41,3.33,3.42,3.27,3.30,3.32,3.29,3.29, 0.57,0.60,0.63,0.70,0.66,0.73,0.73,0.74,0.77,0.82, 0.81,0.85,0.85,0.87,0.89,0.89,0.88,0.91,0.93,0.98, 1.01,0.99,1.01,1.05,1.08,1.03,1.07,1.10,1.09,1.15, 1.14,1.19,1.18,1.21,1.19,1.24,1.19,1.22,1.32,1.24, 1.28,1.28,1.27,1.30,1.33,1.33,1.34,1.35,1.35,1.39, 1.34,1.47,1.41,1.38,1.40,1.44,1.45,1.48,1.51,1.48, 1.54,1.62,1.54,1.57,1.56,1.57,1.49,1.59,1.59,1.60, 1.64,1.56,1.67,1.68,1.57,1.64,1.62,1.69,1.65,1.70, 1.69,1.67,1.72,1.73,1.74,1.72,1.73,1.78,1.81,1.69, 1.87,1.82,1.77,1.88,1.83,1.79,1.82,1.85,1.87,1.80, 1.94,1.85,1.85,1.85,1.91,1.94,1.91,1.90,1.93,2.00, 1.92,1.97,2.01,1.89,2.00,1.98,2.03,2.02,2.08,2.08, 2.03,2.09,2.08,2.06,2.08,2.11,2.09,2.08,2.13,2.12, 2.09,2.17,2.17,2.14,2.11,2.17,2.09,2.09,2.19,2.21, 2.13,2.24,2.28,2.26,2.20,2.21,2.12,2.19,2.16,2.32, 2.20,2.29,2.26,2.34,2.20,2.23,2.30,2.25,2.26,2.31, 2.32,2.28,2.29,2.42,2.37,2.46,2.35,2.25,2.34,2.45, 2.47,2.41,2.35,2.34,2.37,2.41,2.51,2.46,2.39,2.45, 2.43,2.52,2.48,2.45,2.52,2.47,2.45,2.40,2.47,2.61, 2.43,2.56,2.53,2.56,2.52,2.47,2.59,2.56,2.57,2.52, 2.61,2.51,2.66,2.59,2.66,2.65,2.62,2.63,2.68,2.70, 2.63,2.57,2.74,2.65,2.72,2.73,2.69,2.75,2.75,2.62, 2.64,2.66,2.75,2.66,2.74,2.74,2.73,2.68,2.71,2.83, 2.83,2.79,2.79,2.71,2.87,2.70,2.86,2.77,2.90,2.78, 2.95,2.87,2.92,3.01,2.77,2.94,2.83,2.98,2.98,2.97, 2.83,2.90,2.97,2.86,2.86,2.92,2.95,2.88,2.90,2.87, 2.86,2.95,2.87,2.91,2.99,3.00,3.02,2.93,3.02,2.89, 3.03,3.08,2.99,3.02,3.08,2.88,3.05,2.97,2.92,3.07, 3.16,3.05,2.99,3.07,3.10,3.17,3.18,3.03,3.16,3.14, 0.54,0.57,0.59,0.61,0.62,0.64,0.69,0.69,0.74,0.70, 0.74,0.77,0.81,0.81,0.82,0.81,0.86,0.89,0.88,0.89, 0.90,0.93,0.94,0.94,0.96,0.97,1.01,1.02,1.06,1.04, 1.08,1.07,1.07,1.09,1.11,1.14,1.13,1.15,1.17,1.16, 1.18,1.23,1.20,1.20,1.23,1.20,1.22,1.26,1.26,1.19, 1.36,1.27,1.30,1.29,1.30,1.34,1.28,1.33,1.40,1.39, 1.29,1.42,1.46,1.37,1.46,1.46,1.41,1.51,1.38,1.45, 1.45,1.48,1.51,1.51,1.53,1.50,1.58,1.58,1.49,1.51, 1.56,1.59,1.63,1.58,1.57,1.53,1.61,1.58,1.62,1.64, 1.65,1.61,1.65,1.73,1.67,1.66,1.68,1.72,1.67,1.74, 1.74,1.79,1.71,1.76,1.75,1.69,1.69,1.75,1.82,1.77, 1.80,1.81,1.85,1.81,1.80,1.79,1.81,1.87,1.88,1.86, 1.85,1.83,1.87,1.89,1.92,1.91,1.91,2.04,1.93,1.93, 1.97,2.03,1.91,1.98,1.92,1.90,1.97,2.03,2.03,1.94, 1.94,2.02,2.09,1.96,2.05,2.04,1.98,2.08,2.07,2.08, 2.04,2.11,2.03,2.12,2.08,2.06,2.11,2.07,2.02,2.15, 2.15,2.11,2.10,2.20,2.14,2.14,2.14,2.21,2.18,2.18, 2.13,2.17,2.34,2.21,2.22,2.31,2.19,2.27,2.21,2.23, 2.30,2.26,2.30,2.29,2.28,2.31,2.23,2.22,2.36,2.27, 2.37,2.23,2.39,2.33,2.34,2.32,2.35,2.38,2.28,2.41, 2.29,2.46,2.40,2.30,2.44,2.31,2.39,2.47,2.41,2.38, 2.45,2.46,2.44,2.47,2.47,2.39,2.49,2.53,2.45,2.41, 2.54,2.53,2.41,2.48,2.54,2.51,2.51,2.56,2.51,2.66, 2.38,2.55,2.59,2.51,2.69,2.58,2.60,2.58,2.64,2.58, 2.65,2.66,2.61,2.67,2.68,2.66,2.66,2.57,2.73,2.59, 2.61,2.75,2.60,2.63,2.71,2.59,2.65,2.64,2.63,2.66, 2.68,2.75,2.72,2.81,2.73,2.82,2.69,2.65,2.77,2.78, 2.77,2.90,2.85,2.77,2.72,2.75,2.68,2.82,2.84,2.82, 2.70,2.97,2.74,2.80,2.85,2.84,2.83,2.93,2.77,2.79, 0.45,0.51,0.55,0.58,0.55,0.59,0.60,0.65,0.62,0.66, 0.67,0.69,0.71,0.71,0.77,0.79,0.75,0.78,0.85,0.82, 0.80,0.83,0.86,0.85,0.90,0.91,0.94,0.94,0.92,0.95, 0.98,0.97,0.99,1.01,0.94,1.02,1.00,1.03,1.00,1.02, 1.08,1.06,1.11,1.08,1.08,1.11,1.13,1.17,1.13,1.13, 1.18,1.18,1.14,1.23,1.23,1.23,1.25,1.21,1.25,1.25, 1.25,1.25,1.30,1.30,1.27,1.29,1.27,1.33,1.26,1.34, 1.33,1.36,1.35,1.38,1.37,1.42,1.37,1.41,1.38,1.44, 1.42,1.45,1.51,1.49,1.49,1.44,1.56,1.48,1.52,1.44, 1.44,1.55,1.57,1.52,1.54,1.49,1.57,1.60,1.56,1.58, 1.62,1.59,1.57,1.59,1.61,1.69,1.57,1.58,1.59,1.64, 1.67,1.68,1.63,1.67,1.70,1.71,1.67,1.73,1.62,1.69, 1.76,1.66,1.69,1.71,1.79,1.77,1.80,1.71,1.79,1.78, 1.76,1.77,1.89,1.70,1.83,1.78,1.82,1.81,1.85,1.82, 1.81,1.90,1.86,1.90,1.85,1.87,1.86,1.90,1.87,1.87, 1.89,1.82,1.89,1.93,1.97,1.96,1.93,1.92,1.95,2.00, 2.02,1.97,1.97,1.97,1.92,1.97,1.98,1.96,2.02,2.03, 2.01,1.97,2.07,2.10,2.04,2.00,2.00,2.10,2.04,2.04, 2.04,2.06,2.00,2.08,2.08,2.07,2.00,2.12,2.08,2.11, 2.08,2.16,2.16,2.16,2.20,2.06,2.17,2.17,2.12,2.21, 2.13,2.27,2.17,2.19,2.20,2.19,2.24,2.26,2.14,2.24, 2.25,2.32,2.26,2.14,2.22,2.27,2.18,2.21,2.26,2.30, 2.35,2.13,2.34,2.27,2.28,2.34,2.37,2.29,2.38,2.32, 2.29,2.31,2.34,2.39,2.28,2.37,2.25,2.44,2.32,2.40, 2.25,2.43,2.42,2.45,2.47,2.35,2.39,2.40,2.30,2.36, 2.52,2.45,2.44,2.43,2.42,2.54,2.31,2.47,2.42,2.46, 2.44,2.30,2.46,2.41,2.56,2.49,2.50,2.52,2.43,2.41, 2.54,2.58,2.57,2.51,2.48,2.56,2.49,2.56,2.46,2.59, 2.55,2.59,2.51,2.56,2.54,2.54,2.57,2.68,2.67,2.64, 0.44,0.47,0.48,0.49,0.51,0.55,0.56,0.57,0.60,0.60, 0.61,0.68,0.68,0.69,0.66,0.69,0.71,0.71,0.74,0.75, 0.76,0.75,0.77,0.78,0.83,0.79,0.79,0.85,0.86,0.84, 0.84,0.91,0.86,0.90,0.89,0.95,0.98,0.95,0.93,0.99, 0.93,1.00,0.98,1.03,1.02,0.98,1.06,1.08,1.03,1.08, 1.08,1.08,1.06,1.12,1.10,1.14,1.10,1.15,1.16,1.14, 1.14,1.16,1.11,1.16,1.19,1.22,1.20,1.18,1.19,1.25, 1.21,1.21,1.26,1.25,1.24,1.24,1.29,1.23,1.34,1.32, 1.31,1.32,1.36,1.30,1.33,1.30,1.31,1.32,1.39,1.36, 1.40,1.32,1.33,1.39,1.40,1.41,1.44,1.38,1.44,1.38, 1.43,1.42,1.47,1.36,1.40,1.51,1.49,1.48,1.45,1.49, 1.46,1.55,1.51,1.57,1.50,1.49,1.58,1.54,1.60,1.55, 1.50,1.56,1.59,1.55,1.63,1.60,1.64,1.59,1.66,1.57, 1.65,1.64,1.62,1.66,1.61,1.68,1.66,1.70,1.66,1.59, 1.73,1.61,1.63,1.71,1.63,1.69,1.69,1.69,1.67,1.79, 1.72,1.65,1.79,1.77,1.75,1.76,1.75,1.79,1.76,1.74, 1.76,1.80,1.74,1.82,1.78,1.76,1.92,1.77,1.80,1.90, 1.83,1.79,1.92,1.88,1.88,1.82,1.84,1.86,1.89,1.87, 1.84,1.93,1.96,2.00,2.00,2.02,1.93,1.98,1.84,1.87, 1.95,1.92,1.91,1.91,1.99,2.04,2.00,2.04,2.02,2.05, 2.01,1.95,2.01,2.03,2.03,1.98,2.02,1.98,2.02,2.06, 1.99,2.09,2.03,2.09,2.06,2.05,2.09,2.07,2.02,1.92, 2.01,1.97,2.07,2.08,2.05,2.05,2.03,2.11,2.15,2.11, 2.14,2.11,2.14,2.16,2.14,2.16,2.21,2.17,2.14,2.15, 2.10,2.19,2.25,2.26,2.14,2.24,2.22,2.18,2.20,2.17, 2.19,2.15,2.24,2.36,2.26,2.31,2.20,2.24,2.29,2.18, 2.35,2.28,2.18,2.24,2.27,2.38,2.32,2.20,2.30,2.21, 2.37,2.34,2.37,2.36,2.35,2.34,2.35,2.29,2.37,2.28, 2.37,2.27,2.34,2.39,2.29,2.35,2.28,2.33,2.38,2.31, 0.42,0.41,0.44,0.46,0.50,0.50,0.51,0.52,0.55,0.56, 0.54,0.57,0.58,0.62,0.61,0.64,0.63,0.63,0.65,0.70, 0.69,0.70,0.70,0.70,0.72,0.72,0.76,0.76,0.80,0.78, 0.79,0.81,0.82,0.83,0.83,0.83,0.86,0.86,0.89,0.82, 0.87,0.92,0.89,0.92,0.90,0.94,0.93,0.94,0.95,0.96, 0.92,0.95,0.97,1.00,1.01,1.00,1.00,1.01,1.03,1.06, 1.07,1.10,1.06,1.09,1.09,1.05,1.12,1.08,1.09,1.10, 1.09,1.05,1.11,1.12,1.10,1.15,1.17,1.12,1.14,1.16, 1.18,1.25,1.22,1.18,1.17,1.20,1.25,1.25,1.26,1.27, 1.25,1.22,1.25,1.23,1.31,1.33,1.29,1.31,1.28,1.30, 1.28,1.33,1.31,1.38,1.35,1.38,1.35,1.41,1.34,1.39, 1.36,1.36,1.44,1.41,1.44,1.40,1.39,1.46,1.43,1.40, 1.42,1.38,1.41,1.50,1.38,1.46,1.44,1.44,1.46,1.55, 1.46,1.55,1.48,1.50,1.46,1.51,1.43,1.56,1.49,1.51, 1.55,1.51,1.59,1.53,1.59,1.59,1.61,1.55,1.59,1.54, 1.58,1.58,1.57,1.57,1.63,1.56,1.57,1.60,1.63,1.67, 1.68,1.65,1.64,1.62,1.67,1.62,1.64,1.71,1.68,1.63, 1.64,1.61,1.67,1.64,1.69,1.68,1.75,1.72,1.71,1.74, 1.74,1.81,1.74,1.71,1.75,1.77,1.73,1.70,1.73,1.74, 1.76,1.67,1.79,1.78,1.78,1.83,1.80,1.76,1.77,1.79, 1.81,1.79,1.75,1.84,1.91,1.85,1.84,1.81,1.86,1.85, 1.89,1.87,1.83,1.81,1.81,1.86,1.83,1.92,1.91,1.87, 1.80,1.87,1.86,1.87,1.92,1.90,1.90,1.88,1.95,2.00, 2.03,1.95,2.02,1.97,1.91,2.04,1.95,1.88,2.01,2.01, 2.05,1.95,2.04,1.95,2.05,2.14,2.12,2.05,2.00,1.97, 1.97,1.99,1.97,2.09,2.05,2.02,2.03,2.02,2.01,2.06, 2.05,2.01,2.06,2.02,1.95,2.01,2.12,2.08,2.05,2.10, 2.03,2.08,2.18,2.08,2.07,2.14,2.17,2.10,2.06,2.17, 2.14,2.09,2.20,2.13,2.18,2.16,2.13,2.20,2.16,2.08, 1.23,1.25,1.28,1.33,1.36,1.39,1.45,1.45,1.54,1.63, 1.62,1.65,1.74,1.72,1.78,1.75,1.87,1.90,1.88,1.84, 1.97,2.01,1.98,2.06,2.09,2.15,2.22,2.12,2.23,2.17, 2.28,2.36,2.32,2.39,2.32,2.39,2.44,2.59,2.43,2.43, 2.54,2.51,2.62,2.60,2.59,2.57,2.71,2.66,2.67,2.72, 2.81,2.68,2.74,2.79,2.79,2.88,2.95,2.96,2.92,2.93, 2.91,3.04,2.94,3.00,3.12,3.07,3.12,3.14,3.25,3.19, 3.18,3.29,3.21,3.19,3.26,3.32,3.34,3.47,3.33,3.30, 3.35,3.42,3.46,3.36,3.39,3.38,3.44,3.47,3.52,3.55, 3.55,3.46,3.54,3.66,3.64,3.66,3.65,3.78,3.62,3.81, 3.79,3.87,3.62,3.72,3.81,3.76,3.79,3.83,3.74,3.79, 3.88,3.71,4.03,3.84,3.86,4.06,4.00,4.11,4.00,3.96, 4.00,4.02,4.09,3.99,4.15,4.02,4.17,4.07,4.25,4.14, 4.22,4.30,4.27,4.22,4.36,4.24,4.21,4.24,4.41,4.34, 4.38,4.20,4.19,4.38,4.23,4.56,4.44,4.47,4.47,4.47, 4.38,4.59,4.49,4.39,4.51,4.46,4.44,4.82,4.57,4.52, 4.61,4.81,4.73,4.85,4.54,4.63,4.67,4.55,4.59,4.73, 4.62,4.61,4.82,4.73,4.91,4.98,4.63,4.94,4.79,4.91, 4.91,4.78,4.89,4.74,4.84,4.85,4.81,5.14,5.17,4.95, 4.88,5.03,5.06,5.17,4.93,5.04,5.16,4.84,5.27,5.09, 4.99,5.19,5.12,5.23,5.11,5.49,5.34,5.15,5.31,5.29, 5.31,5.22,5.36,5.22,5.26,5.30,5.23,5.29,5.48,5.43, 5.33,5.34,5.38,5.19,5.43,5.47,5.40,5.59,5.53,5.66, 5.47,5.71,5.64,5.34,5.60,5.61,5.47,5.72,5.54,5.54, 5.32,5.70,5.46,5.60,5.71,5.46,5.76,5.83,5.63,5.63, 5.50,5.60,5.71,5.50,5.70,5.88,5.81,5.71,5.88,5.72, 5.80,6.05,5.67,5.99,5.99,5.81,5.82,5.77,5.90,5.82, 5.80,5.89,5.87,6.01,6.09,5.76,6.27,5.88,5.93,5.78, 5.85,6.04,6.05,5.97,6.09,5.94,6.04,6.16,5.86,6.16, 1.08,1.13,1.16,1.26,1.35,1.36,1.38,1.45,1.55,1.50, 1.55,1.59,1.57,1.61,1.74,1.69,1.74,1.77,1.80,1.76, 1.89,1.92,1.99,1.97,2.00,2.09,2.08,2.05,2.11,2.18, 2.10,2.17,2.23,2.20,2.29,2.39,2.41,2.27,2.37,2.22, 2.47,2.47,2.47,2.44,2.56,2.52,2.47,2.54,2.57,2.57, 2.55,2.64,2.79,2.85,2.65,2.67,2.78,2.76,2.76,2.88, 2.85,2.89,2.91,2.90,2.83,2.90,3.02,3.12,3.06,2.94, 3.06,3.04,3.01,3.11,3.14,3.12,3.21,3.22,3.19,3.16, 3.22,3.31,3.26,3.32,3.34,3.44,3.31,3.41,3.36,3.38, 3.46,3.39,3.36,3.33,3.52,3.55,3.56,3.52,3.56,3.43, 3.64,3.51,3.71,3.60,3.65,3.56,3.68,3.63,3.70,3.73, 3.79,3.76,3.75,3.96,3.93,3.76,3.84,3.81,3.79,3.93, 3.88,3.88,3.91,3.97,3.89,3.91,3.88,3.95,3.99,3.95, 4.22,4.09,4.09,4.03,3.99,4.09,4.32,4.13,4.07,4.19, 4.17,4.10,4.43,4.31,4.14,4.27,4.32,4.21,4.36,4.26, 4.19,4.38,4.34,4.25,4.27,4.34,4.43,4.36,4.46,4.46, 4.46,4.58,4.43,4.42,4.53,4.32,4.38,4.42,4.47,4.45, 4.55,4.46,4.62,4.65,4.80,4.41,4.39,4.61,4.69,4.68, 4.77,4.68,4.53,4.86,4.77,4.62,4.81,4.86,4.68,4.72, 5.02,4.84,4.84,4.73,4.78,4.92,5.03,5.01,4.70,4.92, 4.86,4.97,4.71,4.90,5.01,5.08,5.34,4.92,5.00,5.21, 4.88,5.09,4.83,5.16,5.07,5.07,5.15,5.00,5.27,5.17, 5.29,5.27,5.45,5.21,5.13,5.18,5.27,5.23,5.27,5.33, 5.22,5.27,5.23,5.24,5.30,5.59,5.17,5.21,5.21,5.43, 5.25,5.38,5.57,5.45,5.31,5.50,5.42,5.48,5.61,5.25, 5.55,5.47,5.50,5.62,5.58,5.52,5.66,5.37,5.49,5.69, 5.61,5.71,5.60,5.67,5.80,5.76,5.66,5.49,5.45,5.86, 5.68,5.73,5.91,5.68,5.76,5.73,5.90,5.87,5.61,5.73, 6.12,5.95,5.51,5.96,5.89,5.68,5.84,5.86,5.62,5.84, 1.03,1.16,1.21,1.21,1.22,1.34,1.38,1.40,1.44,1.49, 1.43,1.52,1.57,1.58,1.59,1.71,1.73,1.69,1.75,1.74, 1.79,1.78,1.91,1.87,1.94,1.92,1.96,2.03,2.03,2.07, 2.07,2.19,2.14,2.17,2.30,2.12,2.21,2.24,2.26,2.36, 2.27,2.37,2.33,2.37,2.43,2.36,2.48,2.44,2.49,2.47, 2.47,2.48,2.53,2.64,2.61,2.67,2.64,2.66,2.60,2.66, 2.80,2.68,2.77,2.74,2.75,2.79,2.85,2.91,2.89,2.91, 2.79,2.97,2.90,2.96,2.99,2.99,3.06,2.98,3.00,3.03, 3.08,3.05,3.10,3.06,3.21,3.22,3.24,3.18,3.17,3.22, 3.26,3.29,3.21,3.20,3.29,3.21,3.43,3.45,3.37,3.55, 3.50,3.42,3.45,3.42,3.45,3.57,3.55,3.58,3.46,3.61, 3.55,3.64,3.67,3.49,3.64,3.49,3.72,3.66,3.68,3.68, 3.67,3.83,3.69,3.77,3.82,3.75,3.93,3.79,3.73,3.74, 3.78,3.92,3.83,3.76,3.95,3.94,3.89,4.00,3.88,3.84, 3.94,3.86,3.93,3.95,4.01,4.07,4.03,4.03,3.95,4.22, 4.15,4.24,4.22,4.00,4.28,4.17,4.23,4.07,4.23,4.15, 4.22,4.26,4.25,4.28,4.22,4.33,4.48,4.41,4.43,4.42, 4.50,4.31,4.37,4.42,4.41,4.46,4.31,4.58,4.54,4.57, 4.66,4.55,4.39,4.57,4.59,4.66,4.51,4.60,4.48,4.56, 4.55,4.69,4.74,4.43,4.71,4.65,4.73,4.77,4.73,4.86, 4.70,4.87,4.58,4.64,4.73,4.65,4.71,4.63,4.69,4.59, 4.76,4.75,4.91,4.85,4.78,4.75,4.87,4.78,4.87,4.78, 5.11,4.90,4.82,5.00,4.94,4.98,4.92,5.00,4.95,5.08, 4.99,4.88,5.01,5.03,5.20,5.05,5.17,5.18,5.10,4.96, 4.96,5.05,5.12,4.97,5.35,5.15,5.09,5.22,5.18,5.28, 5.02,5.07,5.42,5.28,5.23,5.40,5.09,5.17,5.40,5.45, 5.39,5.60,5.30,5.40,5.43,5.42,5.25,5.20,5.57,5.59, 5.31,5.41,5.35,5.34,5.45,5.33,5.38,5.72,5.35,5.70, 5.54,5.71,5.46,5.52,5.57,5.46,5.71,5.35,5.60,5.88, 1.04,1.09,1.09,1.15,1.18,1.23,1.26,1.30,1.42,1.35, 1.39,1.46,1.50,1.50,1.51,1.58,1.60,1.65,1.66,1.76, 1.78,1.77,1.78,1.86,1.83,1.82,1.84,1.96,1.84,2.00, 1.91,2.01,1.96,1.98,2.03,2.07,2.18,2.07,2.18,2.15, 2.06,2.25,2.25,2.21,2.29,2.36,2.36,2.25,2.40,2.27, 2.38,2.45,2.43,2.50,2.47,2.62,2.61,2.51,2.59,2.48, 2.63,2.71,2.65,2.69,2.73,2.63,2.75,2.84,2.82,2.72, 2.72,2.75,2.87,2.80,2.86,3.02,2.91,2.87,2.97,3.13, 2.91,2.85,3.08,3.05,3.14,2.98,3.04,3.01,3.03,3.05, 3.07,3.20,3.08,3.13,3.25,3.10,3.21,3.12,3.17,3.30, 3.31,3.14,3.27,3.26,3.13,3.36,3.27,3.40,3.47,3.32, 3.38,3.33,3.37,3.41,3.52,3.43,3.45,3.56,3.60,3.59, 3.56,3.52,3.69,3.53,3.56,3.70,3.50,3.60,3.53,3.72, 3.56,3.61,3.64,3.75,3.77,3.72,3.73,3.72,3.83,3.80, 3.90,3.93,3.84,3.84,3.86,3.91,3.90,4.09,3.97,3.90, 3.99,3.86,3.99,3.95,3.95,4.06,3.99,3.93,4.13,4.02, 4.03,4.14,4.15,4.24,4.21,4.12,4.06,4.06,4.09,4.04, 4.29,4.13,4.35,4.35,4.11,4.05,4.12,4.16,4.29,4.15, 4.23,4.28,4.27,4.47,4.27,4.22,4.31,4.34,4.14,4.38, 4.36,4.14,4.25,4.34,4.46,4.40,4.35,4.32,4.54,4.42, 4.32,4.42,4.58,4.41,4.61,4.56,4.50,4.62,4.52,4.67, 4.63,4.64,4.62,4.48,4.80,4.58,4.79,4.58,4.56,4.60, 4.84,4.63,4.70,4.84,5.00,4.69,4.67,4.72,4.90,4.79, 4.79,4.72,5.02,4.80,4.80,4.78,4.83,4.91,4.85,4.95, 4.85,4.88,4.92,4.83,5.05,4.80,4.95,4.92,4.94,5.02, 5.13,4.98,5.07,5.07,5.11,5.08,5.05,4.87,5.04,5.30, 5.19,5.23,4.98,5.09,4.94,5.28,5.14,5.27,5.16,5.07, 5.19,5.37,5.11,5.38,5.33,5.46,5.25,5.32,5.27,5.19, 5.26,5.52,4.93,5.24,5.49,5.29,5.58,5.32,5.16,5.37, 0.92,1.00,1.06,1.09,1.16,1.15,1.19,1.24,1.30,1.27, 1.34,1.34,1.39,1.48,1.42,1.49,1.53,1.55,1.54,1.69, 1.62,1.67,1.72,1.66,1.75,1.75,1.80,1.84,1.82,1.82, 1.79,1.88,1.85,1.92,1.97,1.97,2.02,2.03,2.00,2.02, 2.05,2.06,2.11,2.08,2.16,2.09,2.20,2.23,2.29,2.14, 2.27,2.31,2.27,2.26,2.31,2.35,2.29,2.46,2.48,2.45, 2.49,2.46,2.58,2.47,2.60,2.56,2.51,2.46,2.53,2.57, 2.58,2.59,2.70,2.68,2.79,2.66,2.61,2.79,2.70,2.79, 2.75,2.79,2.75,2.83,2.85,2.83,2.96,2.78,3.00,2.84, 2.86,2.92,3.03,3.02,3.00,3.03,2.95,2.99,2.97,2.95, 2.98,3.05,3.04,3.16,3.08,3.18,3.26,3.22,3.13,3.16, 3.21,3.20,3.14,3.10,3.16,3.25,3.25,3.43,3.28,3.41, 3.18,3.57,3.21,3.32,3.48,3.51,3.49,3.55,3.50,3.37, 3.43,3.36,3.46,3.49,3.52,3.36,3.51,3.50,3.41,3.64, 3.70,3.50,3.68,3.70,3.63,3.59,3.74,3.48,3.61,3.78, 3.75,3.78,3.66,3.84,3.65,3.84,3.56,3.94,3.82,3.81, 3.76,3.87,3.82,3.65,3.67,3.73,3.85,4.04,4.18,3.91, 3.94,3.82,4.01,3.97,3.90,4.01,4.03,3.85,3.87,4.06, 4.04,4.01,3.94,4.06,4.06,4.02,4.02,3.95,4.31,4.14, 4.19,4.29,4.01,4.19,4.17,4.29,4.23,4.22,4.18,4.24, 4.28,4.25,4.30,4.43,4.14,4.33,4.19,4.49,4.47,4.30, 4.36,4.42,4.34,4.30,4.29,4.19,4.41,4.38,4.33,4.50, 4.50,4.44,4.53,4.51,4.27,4.64,4.62,4.53,4.59,4.43, 4.48,4.63,4.56,4.50,4.57,4.39,4.67,4.62,4.50,4.71, 4.54,4.58,4.74,4.77,4.49,4.62,4.67,4.59,4.53,4.83, 4.62,4.72,4.74,4.65,4.69,4.93,4.95,4.82,4.80,4.83, 4.92,4.91,4.77,4.79,4.65,4.84,4.91,4.81,4.69,4.93, 5.05,4.85,4.97,4.94,4.86,4.97,5.03,4.89,4.90,5.09, 4.81,5.04,5.16,5.05,4.86,5.02,5.07,5.19,4.72,4.99, 0.90,0.95,0.96,1.00,1.05,1.10,1.14,1.17,1.21,1.19, 1.26,1.26,1.35,1.32,1.33,1.41,1.40,1.43,1.45,1.51, 1.53,1.57,1.59,1.63,1.61,1.67,1.67,1.63,1.78,1.78, 1.72,1.76,1.79,1.90,1.86,1.89,1.87,1.88,1.92,1.92, 1.96,1.96,2.00,2.06,2.01,1.97,2.08,2.11,2.10,2.20, 2.13,2.12,2.21,2.23,2.18,2.18,2.26,2.27,2.32,2.27, 2.30,2.27,2.25,2.45,2.41,2.37,2.40,2.44,2.45,2.40, 2.52,2.44,2.58,2.50,2.49,2.55,2.53,2.54,2.63,2.56, 2.60,2.56,2.70,2.58,2.67,2.64,2.71,2.74,2.79,2.73, 2.77,2.58,2.86,2.86,2.81,2.88,2.80,2.91,2.87,2.85, 2.88,2.93,2.83,3.04,2.90,2.93,3.06,3.02,2.98,2.89, 3.01,3.02,3.01,3.05,3.13,2.98,3.02,3.04,3.14,3.15, 3.20,3.19,3.18,3.09,3.20,3.24,3.23,3.26,3.22,3.25, 3.23,3.39,3.24,3.40,3.30,3.34,3.33,3.45,3.19,3.28, 3.31,3.39,3.39,3.39,3.48,3.45,3.42,3.50,3.51,3.38, 3.49,3.53,3.47,3.45,3.49,3.36,3.52,3.64,3.55,3.59, 3.67,3.57,3.71,3.61,3.72,3.73,3.62,3.57,3.68,3.70, 3.72,3.72,3.66,3.71,3.95,3.76,3.84,3.85,3.71,3.78, 3.79,3.78,3.75,3.83,3.84,3.79,3.84,3.90,3.84,3.91, 3.82,3.85,3.96,3.77,3.93,3.80,3.98,4.00,3.93,3.92, 3.98,4.09,3.90,3.94,4.16,4.13,3.85,4.05,4.28,4.00, 4.07,4.02,4.11,4.21,4.15,4.21,4.23,4.14,4.06,4.27, 4.04,4.27,4.14,4.20,4.18,4.23,4.30,4.37,4.24,4.46, 4.42,4.23,4.20,4.19,4.31,4.16,4.50,4.40,4.33,4.24, 4.38,4.40,4.31,4.26,4.42,4.56,4.25,4.47,4.33,4.45, 4.44,4.35,4.41,4.52,4.59,4.62,4.44,4.77,4.45,4.51, 4.40,4.59,4.54,4.55,4.49,4.55,4.59,4.57,4.42,4.54, 4.62,4.55,4.51,4.57,4.70,4.65,4.69,4.87,4.61,4.73, 4.66,4.96,4.77,4.80,4.78,4.62,4.65,4.47,4.87,4.84, 0.87,0.91,0.91,0.97,0.96,1.01,1.05,1.11,1.11,1.12, 1.16,1.16,1.20,1.27,1.27,1.35,1.28,1.37,1.35,1.43, 1.45,1.44,1.51,1.56,1.58,1.56,1.60,1.52,1.64,1.56, 1.62,1.73,1.67,1.68,1.74,1.76,1.73,1.76,1.78,1.85, 1.83,1.83,1.87,1.94,1.88,1.88,1.92,1.92,1.95,2.06, 1.94,2.07,2.07,1.99,2.00,2.11,2.14,2.07,2.20,2.20, 2.20,2.23,2.24,2.15,2.18,2.19,2.23,2.35,2.24,2.29, 2.28,2.36,2.36,2.39,2.31,2.26,2.41,2.38,2.40,2.44, 2.57,2.49,2.50,2.52,2.62,2.66,2.59,2.47,2.58,2.50, 2.56,2.57,2.69,2.58,2.61,2.57,2.70,2.62,2.68,2.80, 2.69,2.71,2.78,2.72,2.82,2.78,2.75,2.76,2.72,2.81, 2.71,2.77,2.94,2.86,2.91,2.98,2.92,2.90,2.87,2.97, 2.93,2.97,3.07,3.06,2.99,3.02,2.99,3.01,3.09,3.11, 3.04,3.13,3.01,2.98,3.06,3.08,3.13,3.15,3.14,3.13, 3.15,3.22,3.25,3.12,3.17,3.23,3.22,3.17,3.36,3.27, 3.21,3.45,3.38,3.21,3.25,3.37,3.38,3.43,3.30,3.42, 3.42,3.51,3.37,3.46,3.45,3.44,3.29,3.41,3.45,3.44, 3.57,3.53,3.50,3.51,3.39,3.61,3.48,3.55,3.49,3.47, 3.57,3.64,3.49,3.60,3.55,3.72,3.54,3.61,3.62,3.57, 3.72,3.51,3.55,3.77,3.83,3.61,3.73,3.69,3.78,3.68, 3.71,3.81,3.69,3.74,3.83,3.74,3.75,3.88,3.93,3.98, 3.97,3.86,3.89,3.89,3.90,3.91,3.81,3.96,3.79,3.94, 3.92,3.93,3.86,3.96,3.91,3.72,3.92,4.10,3.91,4.08, 3.92,3.96,4.09,4.11,3.94,3.93,4.04,4.01,4.03,3.89, 4.16,4.05,4.23,3.98,3.92,4.19,4.25,4.20,4.26,4.19, 4.30,4.22,4.18,4.24,4.24,4.41,4.18,4.41,4.17,4.24, 4.34,4.17,4.38,4.17,4.37,4.49,4.28,4.32,4.29,4.32, 4.27,4.37,4.26,4.34,4.31,4.23,4.39,4.22,4.43,4.38, 4.37,4.40,4.41,4.36,4.76,4.47,4.60,4.46,4.61,4.56, 0.78,0.83,0.85,0.88,0.89,0.96,0.97,1.04,1.05,1.08, 1.08,1.09,1.15,1.16,1.19,1.22,1.21,1.28,1.28,1.32, 1.30,1.33,1.37,1.42,1.44,1.48,1.53,1.52,1.50,1.54, 1.56,1.57,1.50,1.65,1.65,1.56,1.60,1.64,1.70,1.75, 1.75,1.76,1.78,1.80,1.76,1.77,1.83,1.84,1.82,1.87, 1.86,1.92,2.00,1.92,1.97,1.92,1.95,2.00,1.99,1.98, 1.93,2.03,2.10,2.06,2.11,2.13,2.12,2.09,2.13,2.23, 2.12,2.10,2.22,2.19,2.30,2.11,2.29,2.29,2.25,2.24, 2.34,2.30,2.27,2.36,2.35,2.35,2.47,2.33,2.34,2.35, 2.40,2.45,2.51,2.34,2.46,2.37,2.42,2.44,2.55,2.45, 2.59,2.65,2.53,2.59,2.70,2.60,2.55,2.59,2.71,2.61, 2.74,2.71,2.70,2.78,2.62,2.61,2.67,2.63,2.68,2.77, 2.71,2.79,2.81,2.84,2.76,2.68,2.77,2.87,2.93,2.77, 2.85,2.94,2.86,2.97,2.94,2.94,2.99,2.91,2.96,3.05, 2.82,2.97,2.99,2.96,2.85,3.00,2.93,3.06,3.00,2.99, 2.96,3.01,3.12,3.11,3.16,3.07,3.22,3.09,3.22,3.06, 3.17,3.22,3.20,3.24,3.25,3.21,3.05,3.29,3.26,3.20, 3.21,3.14,3.45,3.29,3.22,3.09,3.39,3.33,3.29,3.32, 3.40,3.29,3.29,3.25,3.33,3.40,3.42,3.44,3.30,3.30, 3.34,3.45,3.43,3.46,3.44,3.36,3.46,3.52,3.43,3.33, 3.51,3.48,3.55,3.62,3.41,3.41,3.51,3.46,3.58,3.66, 3.57,3.62,3.49,3.46,3.62,3.54,3.63,3.62,3.53,3.61, 3.59,3.56,3.72,3.65,3.63,3.66,3.78,3.61,3.81,3.89, 3.74,3.82,3.69,3.83,3.84,3.77,3.78,3.87,3.81,3.66, 3.82,3.84,3.83,3.86,3.86,3.93,3.83,3.89,3.89,3.79, 3.81,3.85,3.87,3.81,3.86,3.93,3.94,3.83,4.07,3.86, 3.95,3.91,3.93,3.98,4.02,4.14,3.89,4.11,4.00,4.03, 4.06,4.06,4.07,4.09,4.11,3.94,4.14,4.18,4.11,4.06, 4.18,4.11,4.02,3.92,4.26,3.95,4.13,4.04,4.03,4.11, 0.74,0.77,0.77,0.82,0.84,0.90,0.91,0.94,0.98,1.02, 1.01,1.08,1.08,1.09,1.15,1.17,1.18,1.18,1.19,1.20, 1.29,1.23,1.29,1.26,1.33,1.36,1.37,1.37,1.41,1.34, 1.44,1.50,1.47,1.46,1.45,1.51,1.56,1.56,1.63,1.65, 1.61,1.57,1.57,1.61,1.64,1.60,1.63,1.69,1.70,1.76, 1.80,1.76,1.74,1.79,1.83,1.84,1.79,1.86,1.85,1.93, 1.84,1.86,1.90,1.97,1.95,1.94,1.94,2.00,2.01,1.97, 2.03,1.97,2.02,2.05,2.07,2.08,2.12,2.05,2.10,2.05, 2.15,2.11,2.09,2.09,2.20,2.18,2.17,2.27,2.23,2.20, 2.21,2.25,2.21,2.27,2.34,2.34,2.26,2.28,2.32,2.30, 2.32,2.38,2.43,2.37,2.43,2.50,2.44,2.36,2.35,2.42, 2.53,2.43,2.46,2.44,2.52,2.58,2.54,2.47,2.48,2.54, 2.52,2.48,2.70,2.56,2.62,2.69,2.43,2.62,2.68,2.58, 2.64,2.66,2.75,2.66,2.77,2.75,2.73,2.69,2.74,2.65, 2.86,2.73,2.76,2.74,2.87,2.83,2.90,2.84,2.79,2.83, 3.01,2.82,2.84,2.87,2.75,2.86,2.86,2.79,2.84,2.93, 2.82,2.87,2.88,2.98,2.96,2.99,2.87,3.01,2.96,2.93, 2.92,3.02,2.97,3.14,2.92,3.04,3.08,3.04,3.04,3.06, 3.13,3.05,3.06,3.18,3.20,3.04,3.27,3.03,3.12,3.12, 3.17,3.22,3.31,3.12,3.26,3.16,3.24,3.19,3.24,3.17, 3.13,3.38,3.48,3.34,3.21,3.30,3.31,3.21,3.30,3.32, 3.42,3.36,3.35,3.28,3.38,3.24,3.45,3.46,3.42,3.39, 3.49,3.36,3.30,3.49,3.48,3.36,3.39,3.53,3.41,3.51, 3.50,3.46,3.32,3.43,3.42,3.30,3.50,3.40,3.64,3.56, 3.60,3.70,3.58,3.54,3.42,3.56,3.50,3.47,3.55,3.48, 3.68,3.76,3.60,3.63,3.59,3.57,3.50,3.67,3.68,3.71, 3.88,3.57,3.81,3.58,3.75,3.69,3.73,3.86,3.76,3.60, 3.87,3.71,3.81,3.84,3.76,3.89,3.70,3.84,3.91,3.96, 3.78,3.86,4.02,3.93,4.02,3.92,3.71,3.86,3.90,3.89, 0.68,0.71,0.76,0.76,0.79,0.84,0.88,0.89,0.92,0.93, 0.97,0.97,1.02,1.03,1.00,1.02,1.08,1.10,1.09,1.16, 1.17,1.18,1.21,1.21,1.23,1.22,1.31,1.29,1.26,1.33, 1.33,1.33,1.35,1.43,1.37,1.37,1.42,1.41,1.45,1.45, 1.47,1.54,1.47,1.49,1.55,1.57,1.58,1.57,1.59,1.59, 1.62,1.57,1.67,1.64,1.63,1.64,1.66,1.77,1.76,1.71, 1.72,1.82,1.83,1.79,1.90,1.84,1.82,1.82,1.82,1.89, 1.83,1.90,1.85,1.88,1.93,1.91,1.92,1.86,1.95,2.04, 2.04,2.08,2.00,1.97,2.04,2.03,1.99,2.08,2.03,2.03, 2.06,2.09,2.15,2.16,2.09,2.10,2.09,2.15,2.18,2.19, 2.24,2.19,2.23,2.19,2.19,2.16,2.25,2.34,2.17,2.22, 2.32,2.29,2.16,2.37,2.42,2.26,2.38,2.35,2.45,2.36, 2.35,2.40,2.39,2.40,2.32,2.36,2.43,2.43,2.49,2.48, 2.47,2.47,2.49,2.51,2.55,2.48,2.67,2.50,2.55,2.51, 2.47,2.57,2.55,2.50,2.58,2.66,2.58,2.75,2.57,2.58, 2.55,2.53,2.60,2.64,2.72,2.65,2.58,2.73,2.68,2.78, 2.59,2.68,2.73,2.70,2.72,2.76,2.79,2.81,2.68,2.83, 2.78,2.85,2.73,2.71,2.75,2.83,2.94,2.78,2.87,2.83, 2.92,2.82,2.88,2.93,2.99,2.79,2.84,2.97,2.89,2.86, 2.89,3.02,2.98,3.01,2.93,2.97,2.87,3.13,3.05,3.11, 3.02,2.98,3.01,3.17,3.10,2.89,2.93,3.21,3.13,3.09, 2.98,3.17,3.09,3.10,3.05,3.23,3.08,3.12,3.17,3.06, 3.13,3.06,3.10,3.14,3.09,3.01,3.22,3.24,3.27,3.24, 3.30,3.32,3.15,3.17,3.21,3.25,3.35,3.25,3.35,3.19, 3.24,3.33,3.22,3.32,3.29,3.36,3.37,3.39,3.40,3.29, 3.43,3.37,3.43,3.33,3.27,3.31,3.40,3.53,3.32,3.31, 3.36,3.39,3.45,3.48,3.49,3.33,3.49,3.50,3.53,3.35, 3.41,3.50,3.58,3.41,3.55,3.56,3.46,3.47,3.53,3.54, 3.66,3.48,3.58,3.61,3.61,3.58,3.61,3.55,3.49,3.62, 0.64,0.65,0.70,0.73,0.73,0.75,0.78,0.83,0.88,0.84, 0.84,0.94,0.90,0.93,0.95,0.99,1.01,1.04,1.03,1.04, 1.08,1.08,1.07,1.08,1.15,1.16,1.12,1.19,1.18,1.21, 1.25,1.26,1.23,1.30,1.28,1.32,1.30,1.32,1.34,1.39, 1.39,1.31,1.36,1.44,1.45,1.48,1.46,1.49,1.49,1.51, 1.45,1.46,1.47,1.46,1.55,1.58,1.59,1.59,1.57,1.52, 1.65,1.65,1.63,1.63,1.60,1.72,1.71,1.63,1.65,1.72, 1.67,1.72,1.78,1.78,1.81,1.79,1.85,1.79,1.85,1.79, 1.90,1.78,1.83,1.87,1.88,1.86,1.95,1.95,1.90,1.88, 1.94,1.96,1.93,2.01,2.02,1.95,2.01,2.03,2.14,2.05, 2.01,2.07,2.06,2.12,2.05,2.09,2.09,2.12,2.19,2.13, 2.19,2.09,2.06,2.16,2.10,2.16,2.14,2.15,2.19,2.21, 2.22,2.19,2.23,2.28,2.18,2.19,2.22,2.20,2.30,2.35, 2.21,2.22,2.26,2.33,2.29,2.39,2.41,2.36,2.35,2.33, 2.29,2.44,2.39,2.32,2.52,2.46,2.44,2.47,2.41,2.45, 2.51,2.48,2.36,2.49,2.45,2.48,2.40,2.52,2.50,2.49, 2.48,2.46,2.54,2.50,2.53,2.52,2.52,2.65,2.56,2.68, 2.56,2.56,2.61,2.59,2.62,2.61,2.58,2.65,2.63,2.61, 2.67,2.83,2.68,2.80,2.59,2.62,2.57,2.75,2.60,2.79, 2.71,2.80,2.77,2.78,2.77,2.74,2.75,2.80,2.83,2.85, 2.72,2.82,2.78,2.82,2.66,2.73,2.73,2.98,2.74,2.86, 2.82,2.86,2.82,2.90,3.05,2.87,2.90,2.98,2.96,2.96, 2.95,2.82,2.80,2.89,2.90,3.00,3.00,2.97,3.02,2.81, 3.03,2.94,3.06,3.07,3.05,3.02,3.09,3.04,2.95,3.15, 3.09,2.93,3.15,3.00,3.03,3.13,3.04,3.01,3.07,3.22, 3.11,3.16,3.16,3.10,3.02,3.13,3.19,3.19,3.07,3.06, 3.28,3.16,3.15,3.22,3.03,3.14,3.20,3.23,3.19,3.16, 3.21,3.23,3.29,3.08,3.16,3.23,3.16,3.28,3.23,3.25, 3.44,3.37,3.37,3.28,3.28,3.47,3.16,3.35,3.41,3.24, 0.60,0.64,0.63,0.69,0.68,0.71,0.74,0.74,0.78,0.80, 0.78,0.80,0.86,0.85,0.84,0.92,0.89,0.94,0.96,0.97, 1.02,0.98,1.03,1.01,1.08,1.05,1.06,1.04,1.12,1.13, 1.12,1.14,1.18,1.15,1.17,1.22,1.20,1.27,1.25,1.24, 1.27,1.24,1.30,1.28,1.25,1.31,1.34,1.36,1.35,1.34, 1.41,1.38,1.42,1.39,1.40,1.49,1.45,1.46,1.49,1.50, 1.53,1.49,1.50,1.51,1.53,1.60,1.56,1.55,1.61,1.55, 1.59,1.60,1.73,1.67,1.64,1.61,1.67,1.64,1.72,1.78, 1.66,1.73,1.72,1.65,1.77,1.74,1.74,1.71,1.78,1.81, 1.76,1.77,1.83,1.76,1.84,1.84,1.82,1.93,1.87,1.91, 1.87,1.92,1.92,1.86,1.93,1.88,1.93,1.97,1.96,1.93, 1.90,1.97,1.89,2.02,2.00,2.03,1.99,1.97,2.09,2.06, 2.03,2.07,2.04,2.02,2.06,2.01,2.13,2.14,2.18,2.18, 2.15,2.09,2.06,2.16,2.09,2.21,2.13,2.16,2.18,2.17, 2.25,2.22,2.25,2.17,2.23,2.23,2.23,2.24,2.25,2.22, 2.16,2.32,2.15,2.30,2.31,2.22,2.36,2.31,2.24,2.31, 2.33,2.29,2.32,2.34,2.28,2.34,2.35,2.34,2.42,2.42, 2.37,2.44,2.31,2.23,2.43,2.42,2.49,2.49,2.50,2.43, 2.39,2.40,2.41,2.52,2.56,2.47,2.54,2.39,2.44,2.63, 2.50,2.49,2.43,2.53,2.67,2.51,2.62,2.56,2.52,2.49, 2.59,2.61,2.66,2.52,2.49,2.56,2.55,2.62,2.65,2.63, 2.61,2.62,2.74,2.73,2.75,2.69,2.67,2.66,2.71,2.58, 2.70,2.79,2.73,2.66,2.66,2.73,2.74,2.81,2.81,2.69, 2.86,2.75,2.74,2.73,2.77,2.74,2.92,2.85,2.71,2.67, 2.80,2.81,2.81,2.88,2.83,2.83,2.82,2.85,2.81,2.94, 2.81,2.90,2.78,2.88,2.83,2.91,2.96,2.96,2.79,2.92, 2.90,2.81,2.91,3.04,2.97,2.94,2.97,2.91,2.93,3.03, 3.00,3.09,2.83,2.90,3.07,2.96,3.01,3.02,3.02,3.01, 3.13,3.02,3.00,2.94,3.13,2.94,2.91,3.11,3.23,3.05, 0.55,0.56,0.60,0.61,0.64,0.66,0.67,0.64,0.67,0.73, 0.78,0.71,0.79,0.80,0.78,0.82,0.84,0.86,0.87,0.92, 0.89,0.93,0.92,0.94,0.97,1.01,1.03,0.98,1.01,1.04, 1.09,1.04,1.03,1.07,1.10,1.08,1.08,1.09,1.15,1.13, 1.17,1.19,1.20,1.15,1.25,1.26,1.20,1.23,1.25,1.21, 1.21,1.30,1.30,1.29,1.33,1.33,1.35,1.35,1.36,1.39, 1.43,1.40,1.35,1.41,1.38,1.44,1.43,1.43,1.45,1.45, 1.49,1.51,1.49,1.46,1.49,1.50,1.47,1.51,1.56,1.47, 1.54,1.59,1.56,1.59,1.59,1.65,1.64,1.61,1.64,1.63, 1.58,1.65,1.62,1.73,1.65,1.69,1.63,1.78,1.76,1.73, 1.70,1.73,1.74,1.78,1.76,1.78,1.80,1.72,1.86,1.76, 1.76,1.79,1.85,1.81,1.81,1.89,1.83,1.86,1.85,1.89, 1.97,1.85,1.83,1.82,1.92,1.88,1.87,1.98,1.96,1.95, 1.95,1.98,1.96,1.98,1.99,1.89,1.99,1.97,1.96,2.04, 2.08,1.95,2.02,2.03,2.01,2.09,2.12,2.06,2.09,2.12, 2.09,2.08,2.13,2.15,2.22,2.09,2.06,2.17,2.18,2.14, 2.20,2.22,2.15,2.14,2.10,2.15,2.16,2.17,2.21,2.23, 2.16,2.25,2.17,2.13,2.25,2.19,2.21,2.21,2.24,2.28, 2.23,2.28,2.23,2.27,2.33,2.28,2.30,2.27,2.32,2.28, 2.36,2.36,2.42,2.28,2.30,2.38,2.48,2.39,2.32,2.41, 2.32,2.30,2.47,2.42,2.25,2.47,2.41,2.40,2.46,2.44, 2.56,2.40,2.52,2.47,2.49,2.52,2.45,2.38,2.54,2.40, 2.43,2.45,2.56,2.56,2.47,2.50,2.54,2.52,2.57,2.53, 2.50,2.55,2.60,2.64,2.51,2.50,2.68,2.53,2.57,2.69, 2.55,2.68,2.45,2.67,2.59,2.67,2.54,2.54,2.67,2.58, 2.60,2.74,2.66,2.73,2.62,2.58,2.71,2.60,2.76,2.76, 2.61,2.71,2.76,2.74,2.61,2.75,2.60,2.77,2.87,2.69, 2.73,2.70,2.67,2.74,2.79,2.82,2.89,2.80,2.70,2.71, 2.76,2.74,2.69,2.86,2.84,2.84,2.89,2.87,2.83,2.97, 0.48,0.52,0.55,0.56,0.58,0.58,0.62,0.63,0.64,0.66, 0.70,0.68,0.72,0.73,0.68,0.73,0.77,0.82,0.82,0.82, 0.85,0.82,0.88,0.88,0.88,0.90,0.93,0.96,0.97,0.97, 0.97,0.97,1.03,1.02,1.00,0.97,1.04,1.06,1.08,1.05, 1.05,1.10,1.10,1.14,1.14,1.13,1.12,1.14,1.13,1.14, 1.17,1.19,1.16,1.15,1.24,1.26,1.19,1.27,1.21,1.25, 1.26,1.31,1.27,1.28,1.31,1.27,1.35,1.31,1.33,1.36, 1.41,1.38,1.37,1.34,1.37,1.37,1.37,1.43,1.45,1.40, 1.49,1.41,1.41,1.38,1.46,1.44,1.52,1.49,1.50,1.46, 1.53,1.53,1.57,1.51,1.55,1.59,1.47,1.55,1.58,1.57, 1.55,1.56,1.61,1.59,1.57,1.65,1.62,1.67,1.60,1.67, 1.62,1.68,1.66,1.61,1.68,1.75,1.62,1.66,1.67,1.81, 1.70,1.77,1.80,1.74,1.82,1.72,1.73,1.69,1.73,1.84, 1.77,1.76,1.73,1.83,1.89,1.82,1.81,1.83,1.86,1.71, 1.77,1.76,1.90,1.88,1.86,1.95,1.85,1.93,1.93,1.87, 1.86,1.92,1.96,1.97,1.97,1.88,1.95,1.97,1.96,1.97, 1.94,1.90,2.07,1.94,1.92,2.00,1.99,2.03,1.99,2.08, 2.03,2.00,1.98,2.00,2.01,1.97,2.01,2.10,2.10,2.02, 2.00,2.08,2.04,2.13,2.06,2.10,2.10,2.11,2.11,2.23, 2.16,2.22,2.20,2.15,2.17,2.19,2.18,2.07,2.15,2.16, 2.22,2.14,2.19,2.20,2.27,2.28,2.27,2.20,2.26,2.22, 2.22,2.32,2.20,2.25,2.29,2.32,2.25,2.34,2.39,2.33, 2.25,2.26,2.32,2.29,2.29,2.27,2.35,2.46,2.24,2.32, 2.33,2.42,2.38,2.34,2.30,2.45,2.44,2.32,2.47,2.30, 2.37,2.36,2.45,2.43,2.34,2.29,2.44,2.43,2.38,2.42, 2.46,2.45,2.39,2.35,2.36,2.33,2.48,2.46,2.47,2.50, 2.48,2.46,2.29,2.57,2.54,2.55,2.53,2.55,2.45,2.61, 2.47,2.48,2.49,2.51,2.51,2.48,2.59,2.67,2.54,2.61, 2.70,2.50,2.55,2.59,2.52,2.56,2.72,2.60,2.54,2.63, 0.44,0.48,0.46,0.53,0.52,0.56,0.55,0.59,0.60,0.61, 0.64,0.65,0.69,0.71,0.67,0.69,0.74,0.73,0.75,0.74, 0.74,0.77,0.79,0.78,0.81,0.83,0.81,0.88,0.90,0.89, 0.85,0.89,0.90,0.86,0.88,0.95,0.95,0.95,0.98,0.91, 0.99,0.96,1.05,1.02,1.03,1.00,1.07,1.05,1.06,1.07, 1.05,1.05,1.10,1.06,1.08,1.12,1.12,1.13,1.13,1.14, 1.24,1.16,1.18,1.22,1.21,1.23,1.18,1.19,1.21,1.21, 1.23,1.27,1.26,1.23,1.27,1.35,1.30,1.32,1.27,1.37, 1.31,1.32,1.35,1.40,1.33,1.36,1.42,1.36,1.34,1.32, 1.43,1.39,1.38,1.43,1.44,1.47,1.46,1.38,1.40,1.40, 1.41,1.41,1.46,1.43,1.47,1.45,1.48,1.47,1.51,1.57, 1.49,1.59,1.57,1.46,1.51,1.54,1.58,1.59,1.61,1.56, 1.62,1.59,1.61,1.58,1.66,1.63,1.66,1.59,1.67,1.63, 1.70,1.61,1.68,1.63,1.66,1.67,1.69,1.69,1.73,1.63, 1.73,1.70,1.71,1.64,1.77,1.79,1.66,1.72,1.73,1.72, 1.73,1.84,1.78,1.72,1.78,1.74,1.80,1.71,1.82,1.82, 1.77,1.79,1.87,1.77,1.85,1.87,1.86,1.86,1.87,1.89, 1.83,1.84,1.84,1.93,1.80,1.87,1.86,1.89,1.94,1.92, 1.95,1.91,2.01,1.99,2.00,1.89,1.90,1.95,1.96,1.95, 1.95,1.92,2.04,1.94,2.05,2.05,1.99,1.98,1.98,2.04, 2.00,1.98,2.04,2.00,2.03,2.04,2.03,2.01,2.01,2.01, 2.04,2.07,2.07,2.06,2.04,2.04,2.05,2.10,2.11,2.04, 2.04,2.05,2.11,2.07,2.05,2.18,2.17,2.13,2.18,2.10, 2.18,2.13,2.10,2.21,2.03,2.19,2.19,2.09,2.14,2.22, 2.14,2.22,2.19,2.23,2.12,2.23,2.28,2.30,2.24,2.28, 2.17,2.26,2.19,2.25,2.33,2.23,2.19,2.27,2.24,2.23, 2.35,2.27,2.25,2.24,2.28,2.39,2.32,2.25,2.35,2.24, 2.29,2.34,2.37,2.36,2.35,2.33,2.31,2.43,2.31,2.35, 2.39,2.29,2.50,2.43,2.43,2.45,2.38,2.39,2.45,2.39, 1.16,1.22,1.28,1.33,1.31,1.38,1.43,1.44,1.54,1.54, 1.57,1.67,1.73,1.71,1.68,1.80,1.75,1.86,1.90,1.86, 1.96,1.93,2.05,2.08,2.05,2.07,2.02,2.18,2.22,2.20, 2.18,2.33,2.27,2.34,2.35,2.39,2.40,2.45,2.51,2.43, 2.52,2.55,2.53,2.54,2.62,2.53,2.71,2.56,2.80,2.67, 2.63,2.76,2.81,2.75,2.83,2.84,2.83,3.00,3.00,2.95, 3.01,2.90,2.90,2.98,3.04,3.01,3.03,3.00,3.05,3.16, 2.97,3.01,3.22,3.16,3.28,3.23,3.34,3.37,3.30,3.21, 3.29,3.37,3.33,3.39,3.53,3.44,3.57,3.49,3.48,3.59, 3.46,3.55,3.57,3.56,3.62,3.64,3.62,3.59,3.68,3.67, 3.65,3.55,3.85,3.91,3.64,3.67,3.81,3.80,3.85,3.72, 3.98,3.89,3.88,3.88,4.00,3.74,3.97,3.92,4.00,4.03, 4.02,4.10,4.07,4.05,3.97,4.05,4.17,3.99,4.05,3.96, 4.05,4.16,4.22,4.19,4.35,4.23,4.07,4.18,4.23,4.24, 4.22,4.37,4.21,4.35,4.35,4.47,4.33,4.22,4.45,4.48, 4.41,4.35,4.44,4.36,4.47,4.50,4.64,4.55,4.67,4.56, 4.51,4.65,4.72,4.69,4.44,4.61,4.60,4.58,4.81,4.75, 4.76,4.67,4.69,4.62,4.92,4.85,4.60,4.83,4.71,4.82, 5.06,4.71,4.71,4.48,4.77,4.75,4.89,5.00,5.03,4.94, 5.05,5.09,4.90,5.02,5.07,4.92,4.90,4.96,5.20,4.88, 5.11,5.05,5.10,5.07,5.04,5.32,5.09,5.25,4.93,5.28, 5.23,5.20,5.13,5.17,5.35,5.18,5.09,5.17,5.47,5.39, 5.54,5.24,5.42,5.25,5.32,5.30,5.27,5.37,5.50,5.10, 5.37,5.53,5.40,5.49,5.49,5.64,5.48,5.49,5.48,5.57, 5.54,5.57,5.54,5.62,5.42,5.62,5.85,5.42,5.50,5.54, 5.33,5.69,5.72,5.44,5.67,5.62,5.89,5.81,5.70,5.94, 5.66,5.94,5.78,5.68,5.80,5.67,5.86,5.63,6.04,6.03, 5.95,5.75,5.85,6.07,5.88,5.86,5.80,5.92,5.94,5.84, 6.02,6.35,5.97,5.81,5.99,6.11,5.94,6.05,5.98,6.02, 1.13,1.12,1.20,1.28,1.31,1.35,1.40,1.46,1.52,1.55, 1.56,1.59,1.59,1.69,1.71,1.73,1.72,1.77,1.81,1.89, 1.88,1.96,1.99,1.98,2.00,2.01,2.03,2.11,2.03,2.10, 2.16,2.18,2.23,2.18,2.26,2.32,2.34,2.26,2.39,2.40, 2.46,2.40,2.39,2.49,2.53,2.54,2.56,2.52,2.56,2.68, 2.71,2.72,2.59,2.68,2.70,2.75,2.78,2.68,2.87,2.86, 2.84,2.80,2.87,2.84,2.85,2.88,2.84,2.91,2.91,2.97, 3.04,3.03,3.19,3.12,3.04,3.20,3.15,3.11,3.14,3.29, 3.19,3.21,3.28,3.31,3.35,3.20,3.27,3.27,3.39,3.32, 3.40,3.45,3.48,3.40,3.60,3.49,3.43,3.51,3.62,3.54, 3.26,3.72,3.57,3.56,3.69,3.65,3.68,3.75,3.76,3.65, 3.80,3.70,3.71,3.69,3.87,3.78,3.84,3.76,3.86,3.76, 3.95,3.75,3.93,3.98,3.93,4.02,4.03,4.23,3.78,3.98, 3.87,3.94,4.11,4.04,3.98,3.97,3.89,4.01,4.01,4.18, 3.95,4.01,4.14,4.23,4.32,4.08,4.30,4.21,4.22,4.37, 4.13,4.33,4.39,4.28,4.24,4.23,4.16,4.49,4.44,4.35, 4.42,4.49,4.40,4.39,4.54,4.54,4.46,4.66,4.70,4.47, 4.60,4.34,4.58,4.50,4.53,4.68,4.66,4.52,4.76,4.66, 4.53,4.91,4.58,4.69,4.63,4.65,4.76,4.60,4.83,4.96, 4.68,4.89,4.90,4.75,4.68,4.81,4.90,5.06,4.86,5.15, 4.86,4.87,4.97,4.95,4.79,5.00,4.86,5.09,5.11,5.18, 5.01,5.00,4.99,5.06,5.11,5.07,5.16,5.13,5.35,5.07, 5.21,5.09,5.19,5.11,5.20,5.04,5.08,5.35,5.35,5.34, 5.05,4.96,5.27,5.23,5.11,5.40,5.14,5.42,5.18,5.36, 5.36,5.36,5.41,5.29,5.32,5.26,5.36,5.39,5.43,5.70, 5.44,5.43,5.49,5.48,5.49,5.50,5.40,5.71,5.63,5.39, 5.70,5.52,5.64,5.75,5.55,5.44,5.53,5.84,5.75,5.70, 5.85,5.73,5.50,5.52,5.84,5.69,5.61,5.68,5.70,5.68, 5.83,5.80,5.70,5.86,5.58,5.96,5.71,5.76,5.83,5.85, 1.10,1.13,1.21,1.22,1.24,1.24,1.36,1.39,1.40,1.50, 1.54,1.51,1.53,1.61,1.60,1.70,1.78,1.68,1.72,1.79, 1.89,1.84,1.83,1.87,1.91,1.96,2.07,2.01,1.97,2.08, 2.06,2.10,2.04,2.14,2.22,2.17,2.23,2.21,2.41,2.29, 2.32,2.39,2.32,2.41,2.36,2.40,2.50,2.45,2.52,2.49, 2.59,2.52,2.54,2.47,2.74,2.57,2.55,2.54,2.84,2.75, 2.70,2.68,2.74,2.82,2.81,2.87,2.73,2.93,2.95,2.94, 2.97,2.90,3.03,3.00,3.06,2.91,3.05,3.16,3.05,3.01, 3.16,3.13,3.10,3.12,3.25,3.16,3.02,3.26,3.23,3.29, 3.27,3.29,3.38,3.42,3.33,3.47,3.37,3.31,3.31,3.51, 3.48,3.51,3.46,3.46,3.45,3.51,3.29,3.45,3.54,3.35, 3.54,3.49,3.64,3.81,3.56,3.65,3.76,3.68,3.79,3.74, 3.73,3.69,3.84,3.72,3.53,3.83,3.68,3.68,3.81,3.83, 3.90,3.78,3.97,3.97,3.91,3.94,4.03,3.86,3.96,4.03, 4.00,3.91,4.08,4.12,4.04,3.98,4.00,4.11,4.28,4.10, 4.15,4.08,4.08,3.89,4.10,4.19,4.06,4.31,4.21,4.25, 4.29,4.29,4.30,4.11,4.17,4.11,4.42,4.33,4.44,4.45, 4.32,4.53,4.53,4.35,4.27,4.53,4.48,4.44,4.39,4.59, 4.47,4.47,4.52,4.60,4.58,4.40,4.55,4.46,4.81,4.82, 4.63,4.43,4.67,4.60,4.55,4.78,4.75,4.75,4.71,4.79, 4.88,4.69,4.81,4.59,4.78,4.81,4.79,4.84,4.70,5.06, 4.85,4.79,4.80,4.93,4.75,4.92,4.93,4.88,4.93,5.13, 4.97,4.95,4.80,4.88,4.85,4.94,5.21,5.05,5.26,5.05, 5.10,4.97,4.97,5.20,5.02,5.10,5.21,4.93,5.22,5.14, 5.18,5.08,5.06,5.30,5.18,5.38,5.30,5.48,5.14,5.22, 5.10,5.41,5.28,5.23,5.45,5.47,5.53,5.32,5.31,5.25, 5.36,5.34,5.44,5.17,5.48,5.40,5.43,5.42,5.53,5.33, 5.30,5.38,5.35,5.84,5.56,5.26,5.32,5.62,5.38,5.48, 5.41,5.48,5.42,5.60,5.44,5.49,5.71,5.73,5.51,5.55, 1.03,1.08,1.09,1.16,1.23,1.27,1.26,1.29,1.32,1.41, 1.38,1.41,1.52,1.51,1.56,1.53,1.61,1.58,1.67,1.64, 1.71,1.73,1.77,1.82,1.80,1.92,1.91,1.91,1.96,1.97, 2.00,2.01,2.02,2.13,2.15,2.11,2.23,2.20,2.13,2.20, 2.19,2.29,2.27,2.31,2.31,2.34,2.42,2.27,2.35,2.46, 2.44,2.46,2.38,2.54,2.45,2.55,2.47,2.52,2.63,2.64, 2.69,2.62,2.69,2.66,2.64,2.67,2.74,2.81,2.81,2.89, 2.87,2.83,2.72,2.89,2.90,2.81,2.76,2.96,2.99,2.90, 3.03,2.89,2.91,3.06,3.07,3.07,3.06,3.04,3.18,3.11, 3.22,3.10,3.15,3.14,3.03,3.13,3.26,3.24,3.31,3.27, 3.39,3.30,3.29,3.38,3.34,3.42,3.31,3.38,3.26,3.47, 3.46,3.39,3.50,3.44,3.44,3.62,3.60,3.59,3.49,3.54, 3.62,3.65,3.52,3.54,3.77,3.66,3.61,3.79,3.72,3.54, 3.77,3.69,3.72,3.83,3.68,3.73,3.80,3.81,3.91,3.87, 3.72,3.79,3.70,3.85,3.98,3.81,3.77,4.02,3.94,3.90, 3.86,3.86,3.94,3.93,4.05,3.81,4.16,4.01,4.06,4.28, 4.13,4.09,4.12,3.99,4.31,4.12,4.22,4.20,4.17,4.34, 4.37,4.05,4.25,4.17,4.19,4.24,4.26,4.29,4.14,4.31, 4.34,4.32,4.29,4.39,4.22,4.42,4.36,4.43,4.33,4.38, 4.39,4.44,4.46,4.53,4.50,4.45,4.60,4.36,4.55,4.71, 4.45,4.58,4.53,4.60,4.60,4.49,4.58,4.71,4.46,4.70, 4.77,4.81,4.70,4.66,4.64,4.62,4.78,4.57,4.75,4.67, 4.45,4.69,4.91,4.78,4.63,4.51,4.92,4.81,4.68,4.95, 4.93,4.78,4.86,4.85,4.77,4.98,4.82,4.95,5.11,4.82, 5.04,5.08,4.92,5.04,5.03,5.15,4.82,5.04,5.02,4.94, 4.88,4.88,5.26,4.99,5.08,5.17,5.05,5.21,5.22,5.23, 5.07,5.25,5.18,4.95,5.17,5.09,4.97,5.24,5.23,5.26, 5.22,5.27,5.38,5.10,5.28,5.33,4.97,5.09,5.26,5.22, 5.40,5.45,5.44,5.46,5.40,5.34,5.16,5.15,5.37,5.44, 0.96,1.04,1.05,1.11,1.21,1.17,1.24,1.29,1.28,1.32, 1.35,1.41,1.39,1.38,1.47,1.48,1.61,1.58,1.66,1.64, 1.70,1.72,1.69,1.72,1.78,1.80,1.79,1.80,1.82,1.90, 1.87,1.94,1.94,1.97,2.00,2.09,2.03,2.05,2.01,2.16, 2.08,2.17,2.15,2.22,2.25,2.20,2.22,2.29,2.27,2.31, 2.38,2.33,2.31,2.43,2.44,2.39,2.46,2.38,2.50,2.46, 2.49,2.52,2.46,2.57,2.51,2.59,2.48,2.68,2.61,2.66, 2.60,2.67,2.69,2.75,2.77,2.70,2.83,2.83,2.75,2.81, 2.83,2.79,2.87,2.82,2.83,3.04,2.89,2.83,2.88,3.03, 3.09,3.04,2.99,2.95,2.91,3.07,3.00,3.03,3.23,3.21, 3.10,3.14,3.14,3.14,3.21,3.21,3.10,3.18,3.39,3.30, 3.31,3.26,3.21,3.41,3.20,3.31,3.28,3.37,3.41,3.42, 3.48,3.30,3.47,3.43,3.37,3.37,3.56,3.56,3.50,3.54, 3.52,3.48,3.54,3.58,3.61,3.41,3.47,3.60,3.65,3.60, 3.54,3.67,3.59,3.58,3.56,3.75,3.77,3.76,3.63,3.74, 3.76,3.84,3.71,3.77,3.64,3.78,3.94,3.91,3.91,3.90, 3.97,3.91,3.86,3.81,3.89,3.92,3.91,3.96,3.93,4.17, 3.91,3.98,4.07,4.15,4.11,4.06,4.22,4.08,4.05,4.12, 4.06,4.14,4.18,4.38,4.12,4.11,4.19,4.16,4.26,4.39, 4.12,4.39,4.33,4.16,4.35,4.18,4.15,4.23,4.05,4.22, 4.13,4.41,4.43,4.32,4.37,4.46,4.32,4.39,4.37,4.42, 4.44,4.52,4.37,4.68,4.47,4.45,4.39,4.45,4.51,4.41, 4.54,4.41,4.76,4.52,4.75,4.54,4.61,4.78,4.64,4.80, 4.46,4.58,4.74,4.68,4.70,4.57,4.67,4.65,4.63,4.72, 4.74,4.53,4.51,4.85,4.76,4.79,4.73,4.76,4.70,4.80, 4.92,4.81,4.79,4.68,4.91,4.73,4.84,5.05,4.80,4.85, 5.02,4.96,4.96,4.89,4.99,4.94,4.99,5.07,4.87,4.85, 4.81,5.01,5.14,5.02,5.03,5.02,5.03,4.97,4.95,4.75, 5.15,4.94,5.02,5.02,5.32,5.24,5.07,5.13,5.06,5.18, 0.95,0.94,1.00,1.02,1.11,1.12,1.17,1.20,1.24,1.27, 1.23,1.33,1.33,1.37,1.42,1.41,1.44,1.50,1.52,1.56, 1.61,1.57,1.57,1.65,1.64,1.68,1.75,1.77,1.77,1.75, 1.76,1.81,1.85,1.88,1.88,1.98,1.90,1.91,2.02,2.06, 1.97,2.06,2.06,2.11,2.14,2.13,2.07,2.23,2.20,2.15, 2.19,2.25,2.34,2.30,2.29,2.23,2.34,2.25,2.39,2.35, 2.35,2.39,2.43,2.39,2.41,2.52,2.50,2.49,2.58,2.46, 2.51,2.51,2.54,2.61,2.72,2.62,2.67,2.73,2.73,2.63, 2.71,2.64,2.71,2.74,2.76,2.78,2.82,2.63,2.81,2.86, 2.88,2.88,2.87,2.92,2.89,2.94,2.91,2.90,2.89,3.00, 2.94,3.02,3.11,3.07,2.99,2.89,3.06,3.11,3.13,3.18, 3.09,3.14,3.10,3.23,3.15,3.27,3.20,3.19,3.15,3.29, 3.22,3.20,3.31,3.26,3.19,3.25,3.34,3.29,3.29,3.42, 3.30,3.31,3.49,3.28,3.41,3.43,3.42,3.37,3.36,3.49, 3.61,3.51,3.42,3.40,3.48,3.55,3.54,3.61,3.61,3.52, 3.63,3.53,3.57,3.69,3.54,3.64,3.66,3.66,3.58,3.62, 3.52,3.71,3.70,3.67,3.87,3.77,3.77,3.69,3.85,3.63, 3.83,3.90,3.84,3.79,3.72,3.97,3.80,3.82,4.07,3.86, 3.96,3.98,4.00,4.02,4.05,3.84,4.03,3.99,3.99,3.97, 4.06,4.00,4.05,3.93,3.97,4.10,4.05,4.11,4.09,4.12, 4.02,3.90,4.19,4.03,4.18,4.17,4.12,4.24,4.39,3.96, 4.13,4.11,4.16,4.09,4.03,4.34,4.04,4.32,4.35,4.13, 4.30,4.26,4.23,4.36,4.46,4.38,4.35,4.38,4.16,4.39, 4.33,4.37,4.45,4.63,4.39,4.38,4.61,4.36,4.50,4.48, 4.50,4.48,4.48,4.27,4.47,4.58,4.50,4.51,4.54,4.52, 4.47,4.43,4.51,4.53,4.58,4.55,4.60,4.82,4.49,4.71, 4.33,4.61,4.58,4.72,4.75,4.47,4.73,4.69,4.59,4.77, 4.61,4.86,4.97,4.88,4.60,4.65,4.79,4.85,4.74,4.95, 4.71,4.85,4.98,4.89,4.97,4.73,4.92,4.90,4.75,4.85, 0.89,0.94,0.97,1.04,1.03,1.09,1.07,1.13,1.16,1.18, 1.23,1.28,1.27,1.29,1.33,1.35,1.38,1.43,1.42,1.45, 1.47,1.54,1.59,1.57,1.54,1.61,1.57,1.67,1.64,1.60, 1.70,1.71,1.73,1.84,1.78,1.88,1.86,1.78,1.88,1.86, 1.90,1.87,2.03,2.02,1.98,1.99,1.97,2.05,2.02,2.10, 2.05,2.14,2.13,2.11,2.14,2.20,2.19,2.17,2.15,2.29, 2.33,2.29,2.25,2.27,2.14,2.30,2.32,2.36,2.37,2.34, 2.42,2.41,2.45,2.47,2.53,2.48,2.42,2.61,2.41,2.58, 2.48,2.57,2.54,2.58,2.56,2.59,2.55,2.68,2.74,2.80, 2.64,2.72,2.70,2.76,2.67,2.83,2.76,2.77,2.77,2.83, 2.82,2.78,2.81,2.89,2.91,2.84,2.99,2.89,2.89,2.95, 2.84,2.98,2.98,2.99,3.03,3.00,3.08,3.02,3.08,3.11, 3.04,3.01,2.92,3.00,3.19,3.22,3.25,3.18,3.14,3.17, 3.25,3.19,3.07,3.11,3.15,3.23,3.22,3.24,3.25,3.19, 3.29,3.23,3.43,3.36,3.32,3.26,3.42,3.48,3.37,3.24, 3.46,3.47,3.45,3.43,3.47,3.63,3.58,3.43,3.52,3.42, 3.44,3.60,3.48,3.65,3.70,3.49,3.54,3.43,3.69,3.65, 3.64,3.44,3.60,3.41,3.61,3.58,3.62,3.60,3.58,3.68, 3.71,3.63,3.75,3.82,3.63,3.59,3.64,3.63,3.80,3.67, 3.83,3.81,3.66,3.79,3.76,3.82,3.72,3.81,3.83,3.72, 3.87,3.93,3.80,4.05,4.04,3.82,3.97,4.11,3.88,4.05, 4.01,3.91,3.95,4.05,3.85,3.91,4.14,4.08,3.97,3.95, 3.93,3.97,4.22,4.05,4.01,3.99,4.19,4.19,4.13,4.11, 4.19,4.06,4.28,4.22,4.05,4.07,4.10,4.20,4.03,4.28, 4.36,4.40,4.11,4.21,4.23,4.35,4.27,4.28,4.49,4.12, 4.20,4.19,4.25,4.25,4.27,4.33,4.29,4.35,4.30,4.29, 4.45,4.39,4.42,4.44,4.43,4.35,4.26,4.42,4.36,4.49, 4.57,4.45,4.43,4.64,4.34,4.66,4.69,4.58,4.67,4.38, 4.53,4.71,4.61,4.50,4.62,4.49,4.70,4.69,4.67,4.67, 0.83,0.88,0.89,0.93,0.97,1.00,1.02,1.03,1.11,1.13, 1.13,1.22,1.15,1.20,1.25,1.28,1.27,1.35,1.41,1.40, 1.41,1.40,1.39,1.47,1.51,1.46,1.61,1.52,1.59,1.54, 1.57,1.60,1.66,1.63,1.69,1.71,1.68,1.74,1.73,1.76, 1.75,1.80,1.83,1.80,1.81,1.87,1.87,1.93,1.97,1.95, 1.86,2.02,2.01,2.03,2.02,1.96,2.10,2.00,2.09,2.04, 2.05,2.16,2.16,2.19,2.12,2.20,2.19,2.23,2.21,2.21, 2.24,2.20,2.27,2.21,2.39,2.32,2.35,2.43,2.36,2.41, 2.46,2.49,2.45,2.48,2.46,2.51,2.53,2.48,2.52,2.49, 2.58,2.58,2.48,2.64,2.59,2.58,2.51,2.61,2.64,2.46, 2.61,2.66,2.81,2.70,2.61,2.71,2.70,2.71,2.74,2.72, 2.71,2.78,2.69,2.92,2.81,2.90,2.84,2.73,2.90,2.88, 2.81,2.93,2.94,2.96,2.94,2.97,2.90,2.96,3.05,2.95, 3.03,2.95,3.09,3.03,3.09,3.03,3.02,3.03,2.98,3.20, 3.10,3.03,3.03,3.17,3.15,3.06,3.07,3.21,3.33,3.18, 3.19,3.11,3.28,3.17,3.11,3.14,3.27,3.17,3.27,3.40, 3.27,3.27,3.47,3.24,3.39,3.24,3.32,3.31,3.39,3.39, 3.32,3.41,3.45,3.39,3.47,3.43,3.51,3.47,3.35,3.64, 3.58,3.55,3.38,3.47,3.47,3.54,3.60,3.42,3.69,3.50, 3.61,3.44,3.52,3.71,3.47,3.74,3.54,3.60,3.66,3.57, 3.50,3.54,3.57,3.70,3.65,3.59,3.62,3.74,3.95,3.77, 3.65,3.55,3.72,3.72,3.68,3.66,3.80,3.93,3.89,3.79, 3.86,3.78,3.91,3.86,3.86,3.86,3.81,3.90,3.86,3.80, 4.09,3.90,3.91,3.82,4.01,3.80,3.91,4.03,3.93,3.98, 4.00,4.09,4.06,4.05,4.08,4.04,4.01,4.15,4.02,4.10, 3.97,4.00,4.22,4.14,4.12,4.08,4.15,4.00,4.18,4.13, 4.14,4.10,4.22,4.32,4.37,4.27,4.23,4.18,4.41,4.14, 4.28,4.16,4.30,4.24,4.32,4.19,4.23,4.18,4.22,4.40, 4.30,4.35,4.33,4.17,4.44,4.44,4.40,4.40,4.27,4.38, 0.77,0.80,0.86,0.87,0.91,0.94,0.98,0.95,1.00,1.07, 1.08,1.07,1.11,1.13,1.22,1.21,1.22,1.31,1.25,1.30, 1.30,1.33,1.36,1.37,1.34,1.46,1.47,1.51,1.43,1.49, 1.49,1.56,1.52,1.57,1.61,1.54,1.65,1.58,1.59,1.66, 1.70,1.74,1.75,1.75,1.66,1.77,1.75,1.84,1.76,1.82, 1.85,1.92,1.87,1.84,1.81,1.92,1.82,1.97,1.95,1.94, 1.93,2.03,2.01,2.10,2.00,2.07,2.04,2.03,2.06,2.13, 2.12,2.03,2.13,2.20,2.14,2.19,2.13,2.26,2.29,2.26, 2.17,2.33,2.29,2.22,2.23,2.28,2.46,2.36,2.39,2.32, 2.35,2.45,2.41,2.45,2.52,2.46,2.45,2.53,2.54,2.53, 2.43,2.49,2.45,2.54,2.53,2.60,2.48,2.56,2.62,2.47, 2.57,2.53,2.63,2.63,2.72,2.65,2.65,2.61,2.71,2.72, 2.71,2.71,2.78,2.71,2.75,2.72,2.73,2.74,2.78,2.68, 2.84,2.87,2.84,2.75,2.77,2.87,3.01,2.77,2.86,2.93, 2.82,2.93,2.82,2.94,2.94,3.00,2.92,2.91,2.95,2.95, 3.03,3.05,3.06,2.99,3.02,3.09,2.96,3.11,3.04,3.01, 3.04,3.03,3.07,3.08,3.17,3.18,3.21,3.18,3.04,3.24, 3.24,3.34,3.09,3.28,3.30,3.22,3.19,3.17,3.29,3.35, 3.29,3.26,3.12,3.31,3.25,3.36,3.31,3.35,3.13,3.28, 3.31,3.39,3.48,3.38,3.25,3.44,3.39,3.33,3.45,3.50, 3.53,3.42,3.52,3.53,3.56,3.39,3.53,3.44,3.38,3.56, 3.50,3.61,3.59,3.43,3.51,3.57,3.53,3.49,3.56,3.46, 3.55,3.58,3.63,3.62,3.53,3.71,3.67,3.62,3.75,3.72, 3.67,3.66,3.51,3.75,3.79,3.69,3.52,3.80,3.67,3.73, 3.77,3.74,3.90,3.64,3.89,3.68,3.81,3.66,3.75,3.83, 3.73,3.64,3.75,3.80,3.75,3.83,3.77,3.92,3.77,3.87, 3.86,3.83,4.05,3.73,3.81,3.76,3.90,3.81,3.89,4.02, 3.94,4.13,3.83,3.94,3.90,3.87,3.80,4.00,3.92,3.92, 4.10,4.18,4.00,4.00,4.08,4.12,4.09,4.04,4.08,4.11, 0.73,0.78,0.80,0.81,0.85,0.88,0.94,0.94,0.94,1.00, 0.99,1.01,0.99,1.07,1.08,1.12,1.16,1.18,1.23,1.16, 1.19,1.25,1.25,1.26,1.28,1.31,1.34,1.40,1.36,1.36, 1.39,1.40,1.42,1.48,1.51,1.52,1.48,1.50,1.55,1.57, 1.61,1.59,1.64,1.65,1.64,1.61,1.67,1.58,1.66,1.69, 1.74,1.67,1.75,1.80,1.81,1.76,1.78,1.77,1.84,1.84, 1.83,1.87,1.83,1.88,1.93,1.91,1.95,1.94,1.87,1.89, 2.06,1.99,2.01,1.98,2.06,2.01,2.03,1.98,2.04,2.12, 2.11,2.14,2.16,2.04,2.18,2.11,2.19,2.21,2.18,2.22, 2.21,2.22,2.29,2.30,2.31,2.31,2.32,2.28,2.29,2.34, 2.33,2.29,2.41,2.46,2.35,2.39,2.27,2.39,2.37,2.42, 2.43,2.39,2.43,2.38,2.41,2.48,2.60,2.38,2.52,2.49, 2.57,2.40,2.54,2.61,2.49,2.57,2.48,2.55,2.70,2.52, 2.69,2.55,2.66,2.63,2.61,2.75,2.64,2.77,2.70,2.77, 2.67,2.69,2.72,2.74,2.82,2.79,2.67,2.70,2.76,2.71, 2.79,2.78,2.73,2.77,2.77,2.89,2.74,2.79,2.86,3.04, 2.94,2.98,3.11,3.03,2.87,2.88,2.98,2.98,2.93,3.06, 2.93,2.98,3.06,2.97,3.12,3.03,3.10,2.98,2.94,3.00, 3.10,3.11,3.18,3.01,3.09,3.04,3.10,3.13,3.14,3.25, 3.13,3.22,3.17,3.18,3.16,3.25,3.31,3.23,3.23,3.13, 3.29,3.19,3.21,3.22,3.36,3.16,3.12,3.24,3.25,3.15, 3.36,3.46,3.35,3.23,3.29,3.18,3.34,3.26,3.42,3.28, 3.48,3.52,3.40,3.27,3.29,3.43,3.42,3.27,3.53,3.56, 3.39,3.42,3.48,3.44,3.43,3.38,3.40,3.40,3.52,3.40, 3.58,3.43,3.55,3.58,3.60,3.54,3.45,3.60,3.60,3.51, 3.49,3.55,3.46,3.65,3.52,3.72,3.79,3.67,3.55,3.56, 3.72,3.66,3.70,3.59,3.65,3.76,3.64,3.64,3.58,3.79, 3.67,3.70,3.68,3.67,3.71,3.69,3.52,3.52,3.80,3.87, 3.85,3.82,3.63,3.70,3.68,3.74,3.70,3.85,3.88,3.79, 0.67,0.71,0.78,0.78,0.82,0.81,0.82,0.87,0.90,0.92, 0.97,0.96,0.98,0.99,1.00,1.05,1.09,1.04,1.14,1.14, 1.17,1.20,1.18,1.17,1.23,1.24,1.21,1.26,1.28,1.26, 1.32,1.34,1.40,1.31,1.37,1.37,1.40,1.41,1.45,1.45, 1.53,1.52,1.50,1.54,1.52,1.53,1.54,1.57,1.51,1.62, 1.59,1.63,1.63,1.68,1.64,1.65,1.63,1.69,1.70,1.75, 1.67,1.74,1.72,1.82,1.84,1.79,1.77,1.79,1.80,1.87, 1.84,1.85,1.98,1.91,1.82,1.94,1.96,1.92,1.99,1.99, 1.94,1.96,1.94,1.98,2.02,2.01,2.05,2.08,2.06,2.03, 2.06,2.11,2.10,2.03,2.18,2.14,2.13,2.17,2.13,2.24, 2.12,2.19,2.22,2.18,2.27,2.23,2.26,2.23,2.29,2.35, 2.21,2.23,2.27,2.32,2.30,2.30,2.32,2.37,2.35,2.31, 2.26,2.38,2.30,2.34,2.31,2.42,2.38,2.43,2.42,2.42, 2.36,2.53,2.49,2.48,2.44,2.43,2.61,2.48,2.46,2.59, 2.50,2.55,2.44,2.58,2.63,2.57,2.62,2.59,2.61,2.51, 2.70,2.73,2.67,2.75,2.55,2.62,2.68,2.70,2.72,2.67, 2.70,2.80,2.66,2.63,2.75,2.69,2.63,2.80,2.77,2.81, 2.78,2.75,2.71,2.80,2.81,2.84,2.90,2.77,2.76,2.84, 2.88,2.84,2.91,2.88,2.95,2.91,2.78,2.92,2.95,2.88, 2.88,2.90,2.90,3.07,2.91,3.01,2.95,2.85,3.01,2.95, 3.00,2.93,2.90,3.11,3.02,3.07,3.07,3.08,3.03,3.10, 3.00,3.03,3.13,2.99,3.21,3.09,3.09,3.11,3.12,3.10, 3.05,3.16,3.20,3.17,3.14,3.15,3.17,3.08,3.11,3.25, 3.22,3.22,3.24,3.16,3.18,3.29,3.27,3.21,3.25,3.26, 3.33,3.18,3.23,3.29,3.29,3.21,3.28,3.20,3.32,3.40, 3.28,3.35,3.26,3.24,3.47,3.30,3.28,3.39,3.29,3.36, 3.40,3.39,3.41,3.37,3.34,3.40,3.45,3.30,3.61,3.48, 3.33,3.40,3.38,3.43,3.34,3.51,3.54,3.55,3.55,3.58, 3.51,3.54,3.49,3.76,3.48,3.56,3.62,3.59,3.51,3.60, 0.64,0.69,0.70,0.72,0.72,0.78,0.81,0.83,0.85,0.89, 0.89,0.91,0.90,0.93,0.94,0.98,0.99,0.99,1.04,1.03, 1.08,1.07,1.08,1.11,1.15,1.13,1.16,1.16,1.21,1.23, 1.26,1.27,1.24,1.35,1.32,1.28,1.37,1.33,1.32,1.35, 1.32,1.42,1.41,1.37,1.42,1.44,1.47,1.45,1.45,1.53, 1.52,1.55,1.57,1.56,1.56,1.55,1.54,1.57,1.66,1.62, 1.65,1.60,1.57,1.64,1.62,1.70,1.69,1.68,1.72,1.71, 1.71,1.82,1.66,1.76,1.83,1.80,1.83,1.73,1.81,1.83, 1.84,1.79,1.82,1.86,1.82,1.88,1.89,1.91,1.81,1.86, 1.96,1.92,1.99,2.04,1.91,1.97,1.93,1.94,1.99,2.04, 2.03,2.00,2.07,2.02,2.01,2.04,2.01,2.07,2.11,2.16, 2.08,2.10,2.11,2.13,2.03,2.12,2.14,2.19,2.26,2.10, 2.06,2.12,2.23,2.21,2.21,2.21,2.28,2.30,2.23,2.23, 2.34,2.26,2.41,2.32,2.37,2.30,2.37,2.32,2.37,2.23, 2.40,2.35,2.16,2.35,2.41,2.35,2.44,2.51,2.40,2.39, 2.51,2.54,2.44,2.44,2.43,2.47,2.63,2.50,2.56,2.48, 2.52,2.57,2.53,2.50,2.48,2.47,2.55,2.53,2.54,2.55, 2.55,2.55,2.64,2.59,2.53,2.58,2.66,2.55,2.53,2.49, 2.74,2.63,2.79,2.73,2.64,2.60,2.74,2.68,2.70,2.76, 2.67,2.69,2.70,2.67,2.63,2.72,2.78,2.72,2.71,2.87, 2.75,2.74,2.80,2.73,2.84,2.74,2.81,2.87,2.75,2.85, 2.81,2.93,2.70,2.77,2.90,2.85,2.78,2.89,2.82,2.97, 2.84,2.90,2.92,2.91,3.00,2.86,2.92,2.93,3.04,2.99, 2.82,3.06,2.94,3.01,2.99,3.07,3.13,3.07,3.00,3.06, 3.01,3.13,3.02,3.05,3.02,3.04,3.14,3.01,3.05,3.15, 3.05,2.93,3.03,3.09,3.19,3.03,3.24,3.11,3.10,3.05, 3.22,3.23,3.14,3.15,3.24,3.21,3.15,3.23,3.14,3.23, 3.37,3.31,3.13,3.16,3.09,3.21,3.29,3.30,3.22,3.35, 3.16,3.15,3.35,3.15,3.27,3.34,3.20,3.32,3.29,3.30, 0.58,0.61,0.64,0.67,0.67,0.68,0.73,0.75,0.79,0.77, 0.83,0.82,0.86,0.85,0.84,0.94,0.92,0.94,0.96,0.99, 0.97,0.97,0.99,1.02,1.04,1.06,1.08,1.09,1.10,1.15, 1.09,1.17,1.17,1.14,1.16,1.18,1.20,1.19,1.23,1.27, 1.27,1.24,1.35,1.28,1.29,1.31,1.33,1.33,1.39,1.35, 1.39,1.41,1.43,1.39,1.41,1.48,1.54,1.44,1.50,1.44, 1.44,1.51,1.51,1.61,1.56,1.56,1.56,1.55,1.61,1.66, 1.49,1.64,1.59,1.58,1.65,1.69,1.64,1.66,1.71,1.66, 1.78,1.78,1.68,1.70,1.70,1.77,1.72,1.73,1.82,1.78, 1.72,1.78,1.74,1.85,1.79,1.84,1.92,1.78,1.90,1.92, 1.90,1.90,1.85,1.84,1.91,1.93,1.93,1.93,1.86,1.90, 1.91,1.99,2.07,2.00,2.04,2.01,1.97,2.01,2.05,2.07, 2.04,2.07,1.95,2.01,2.03,2.14,2.10,2.07,2.13,2.17, 2.13,2.06,2.10,2.14,2.12,2.17,2.12,2.16,2.20,2.17, 2.19,2.19,2.26,2.26,2.25,2.25,2.27,2.33,2.21,2.31, 2.19,2.31,2.23,2.29,2.27,2.33,2.26,2.26,2.36,2.31, 2.33,2.30,2.41,2.32,2.24,2.38,2.35,2.30,2.48,2.41, 2.38,2.46,2.36,2.44,2.31,2.41,2.46,2.50,2.37,2.43, 2.45,2.48,2.51,2.51,2.51,2.49,2.53,2.45,2.51,2.44, 2.56,2.60,2.60,2.50,2.50,2.57,2.68,2.51,2.51,2.47, 2.60,2.65,2.59,2.68,2.56,2.60,2.61,2.68,2.59,2.69, 2.67,2.74,2.61,2.70,2.58,2.61,2.74,2.65,2.77,2.69, 2.72,2.70,2.59,2.67,2.68,2.72,2.72,2.77,2.77,2.79, 2.80,2.86,2.74,2.74,2.77,2.76,2.87,2.57,2.87,2.71, 2.84,2.85,2.85,2.71,2.83,2.80,2.81,2.87,2.76,2.90, 2.89,2.87,2.92,2.92,2.92,2.82,2.86,2.87,3.02,2.95, 2.87,2.95,2.81,2.91,2.89,3.00,2.85,2.91,2.97,3.04, 2.89,2.86,2.97,3.03,2.99,2.94,3.05,2.95,3.15,2.98, 3.16,3.18,3.09,3.05,3.20,3.24,3.07,2.98,3.06,3.08, 0.51,0.58,0.57,0.63,0.64,0.63,0.64,0.69,0.71,0.73, 0.76,0.78,0.76,0.77,0.88,0.82,0.80,0.86,0.88,0.91, 0.89,0.90,0.92,0.98,0.96,1.02,0.99,1.02,1.03,1.07, 1.07,1.05,1.09,1.12,1.10,1.13,1.10,1.11,1.19,1.17, 1.16,1.19,1.23,1.20,1.22,1.20,1.27,1.25,1.28,1.28, 1.33,1.31,1.30,1.31,1.33,1.31,1.38,1.38,1.27,1.41, 1.31,1.43,1.38,1.46,1.40,1.41,1.43,1.49,1.53,1.48, 1.52,1.44,1.44,1.52,1.47,1.60,1.55,1.55,1.53,1.61, 1.55,1.57,1.60,1.66,1.62,1.61,1.60,1.64,1.66,1.58, 1.71,1.67,1.68,1.74,1.71,1.68,1.76,1.75,1.72,1.69, 1.71,1.76,1.65,1.79,1.79,1.75,1.88,1.74,1.81,1.85, 1.77,1.83,1.87,1.91,1.86,1.83,1.87,1.81,1.89,2.00, 1.90,1.90,1.83,1.92,1.89,2.05,1.95,1.91,1.99,1.88, 1.94,2.01,1.98,2.03,1.97,1.96,1.96,1.98,2.09,1.95, 2.03,2.08,2.03,2.08,1.96,2.06,2.08,2.01,2.13,2.13, 2.11,2.14,2.11,2.13,2.10,2.11,2.14,2.17,2.08,2.19, 2.12,2.16,2.24,2.23,2.15,2.18,2.17,2.19,2.30,2.30, 2.22,2.29,2.09,2.34,2.22,2.18,2.31,2.26,2.35,2.24, 2.20,2.15,2.31,2.28,2.32,2.29,2.38,2.28,2.30,2.39, 2.34,2.39,2.38,2.35,2.32,2.31,2.43,2.41,2.44,2.40, 2.53,2.29,2.43,2.39,2.38,2.45,2.48,2.41,2.48,2.34, 2.45,2.33,2.52,2.50,2.57,2.51,2.52,2.47,2.46,2.48, 2.53,2.53,2.39,2.58,2.57,2.54,2.51,2.59,2.62,2.53, 2.50,2.62,2.58,2.51,2.55,2.56,2.55,2.56,2.63,2.72, 2.52,2.66,2.64,2.66,2.61,2.56,2.70,2.62,2.61,2.57, 2.61,2.66,2.69,2.75,2.70,2.59,2.77,2.64,2.70,2.75, 2.78,2.66,2.64,2.73,2.78,2.72,2.73,2.94,2.70,2.69, 2.79,2.65,2.79,2.80,2.78,2.70,2.78,2.84,2.73,2.77, 2.75,2.89,2.85,2.72,2.69,3.00,2.89,2.87,2.94,2.85, 0.49,0.52,0.53,0.58,0.59,0.60,0.61,0.65,0.63,0.68, 0.71,0.70,0.73,0.75,0.77,0.83,0.82,0.82,0.84,0.85, 0.85,0.85,0.86,0.92,0.89,0.92,0.94,0.93,0.94,0.95, 0.97,0.99,1.02,1.02,1.05,1.00,1.02,1.07,1.05,1.09, 1.12,1.12,1.09,1.09,1.16,1.17,1.20,1.16,1.18,1.18, 1.21,1.18,1.17,1.21,1.21,1.27,1.23,1.28,1.23,1.27, 1.26,1.31,1.31,1.31,1.32,1.39,1.31,1.38,1.38,1.38, 1.40,1.38,1.43,1.41,1.44,1.40,1.45,1.40,1.40,1.40, 1.47,1.43,1.48,1.44,1.48,1.45,1.49,1.47,1.50,1.49, 1.59,1.50,1.56,1.53,1.52,1.63,1.57,1.59,1.59,1.59, 1.58,1.57,1.65,1.64,1.64,1.61,1.61,1.68,1.68,1.65, 1.69,1.69,1.70,1.66,1.68,1.70,1.78,1.71,1.76,1.67, 1.77,1.75,1.79,1.81,1.77,1.77,1.79,1.83,1.78,1.78, 1.79,1.83,1.80,1.79,1.85,1.82,1.86,1.85,1.91,1.88, 1.91,1.89,1.88,1.95,1.86,1.87,1.97,1.96,1.99,1.96, 1.91,1.87,1.89,2.00,1.98,1.95,1.89,1.99,2.00,1.96, 2.04,1.94,1.97,1.96,1.99,1.95,2.04,2.05,2.03,2.07, 2.06,2.13,2.11,2.08,2.08,2.06,2.11,2.15,2.13,2.09, 2.04,2.15,2.09,2.17,2.14,2.09,2.13,2.23,2.20,2.27, 2.08,2.16,2.16,2.18,2.18,2.19,2.14,2.20,2.18,2.28, 2.27,2.22,2.22,2.31,2.28,2.24,2.25,2.27,2.24,2.20, 2.19,2.30,2.26,2.39,2.18,2.25,2.19,2.33,2.35,2.22, 2.31,2.43,2.41,2.36,2.38,2.37,2.38,2.33,2.48,2.34, 2.41,2.40,2.44,2.44,2.41,2.32,2.37,2.49,2.38,2.31, 2.52,2.42,2.43,2.48,2.42,2.41,2.43,2.49,2.41,2.51, 2.43,2.53,2.47,2.50,2.42,2.52,2.56,2.36,2.58,2.66, 2.59,2.46,2.60,2.57,2.53,2.47,2.61,2.56,2.56,2.44, 2.51,2.64,2.59,2.62,2.53,2.68,2.57,2.53,2.59,2.67, 2.44,2.51,2.58,2.53,2.70,2.48,2.73,2.63,2.61,2.59, 1.15,1.19,1.24,1.28,1.36,1.45,1.44,1.48,1.53,1.59, 1.59,1.54,1.68,1.67,1.73,1.81,1.80,1.79,1.82,1.94, 1.98,1.93,2.00,2.01,2.15,2.07,2.10,2.07,2.13,2.14, 2.20,2.26,2.15,2.34,2.32,2.27,2.35,2.30,2.44,2.42, 2.57,2.50,2.54,2.53,2.56,2.60,2.61,2.69,2.60,2.64, 2.76,2.72,2.78,2.70,2.78,2.85,2.89,2.71,2.92,2.78, 2.84,2.97,2.92,3.04,2.97,2.89,2.96,3.15,3.07,3.08, 3.22,3.13,3.10,3.16,3.08,3.32,3.18,3.05,3.16,3.34, 3.22,3.38,3.35,3.32,3.28,3.38,3.47,3.35,3.42,3.27, 3.46,3.47,3.60,3.44,3.53,3.45,3.53,3.44,3.56,3.59, 3.75,3.62,3.61,3.70,3.72,3.73,3.74,3.76,3.78,3.71, 3.90,3.82,3.83,3.92,3.73,3.83,3.85,4.04,3.97,3.89, 3.82,3.97,4.02,3.86,3.93,4.01,4.10,3.89,4.07,4.11, 3.92,3.88,4.12,4.17,4.25,4.30,4.16,4.21,4.21,4.04, 4.23,4.15,4.29,4.27,4.13,4.24,4.39,4.19,4.14,4.52, 4.42,4.40,4.42,4.63,4.36,4.31,4.52,4.61,4.53,4.46, 4.56,4.66,4.53,4.50,4.34,4.35,4.53,4.44,4.73,4.80, 4.42,4.57,4.62,4.66,4.56,4.70,4.61,4.79,4.71,4.55, 4.66,4.93,4.84,4.68,4.89,4.52,4.86,4.67,4.78,4.77, 4.78,5.06,4.85,5.01,4.70,5.17,4.93,4.93,5.04,4.94, 5.20,5.10,4.84,5.16,5.17,5.10,5.15,5.04,4.98,5.22, 5.05,5.10,4.92,5.11,5.27,5.22,5.09,5.19,5.27,5.27, 5.15,5.00,5.09,5.21,5.24,5.38,5.34,5.34,5.39,5.33, 5.29,5.30,5.24,5.16,5.09,5.34,5.50,5.39,5.72,5.47, 5.49,5.43,5.34,5.22,5.28,5.50,5.58,5.46,5.61,5.52, 5.45,5.39,5.78,5.47,5.49,5.65,5.71,5.61,5.49,5.76, 5.82,5.57,5.50,5.73,5.70,5.59,5.51,5.78,5.65,5.43, 5.82,5.86,5.90,5.62,5.91,5.83,5.87,5.69,5.91,5.65, 5.83,5.81,5.93,5.93,5.94,5.80,5.91,5.84,5.84,6.01, 1.13,1.16,1.22,1.24,1.29,1.31,1.38,1.39,1.49,1.54, 1.55,1.55,1.58,1.65,1.64,1.72,1.74,1.68,1.71,1.78, 1.84,1.93,1.93,1.89,1.98,2.02,2.01,2.08,1.99,2.08, 2.09,2.12,2.25,2.16,2.29,2.28,2.25,2.30,2.47,2.35, 2.35,2.34,2.39,2.44,2.45,2.57,2.55,2.54,2.53,2.59, 2.68,2.65,2.63,2.59,2.68,2.70,2.74,2.72,2.81,2.78, 2.78,2.87,2.81,2.88,2.85,2.81,3.00,2.87,3.10,3.01, 2.94,3.06,3.00,3.10,3.01,3.18,3.22,3.23,3.18,3.22, 3.12,3.18,3.21,3.24,3.24,3.33,3.25,3.20,3.27,3.44, 3.27,3.37,3.48,3.47,3.44,3.65,3.45,3.54,3.48,3.51, 3.53,3.41,3.43,3.49,3.50,3.58,3.47,3.61,3.51,3.66, 3.50,3.66,3.64,3.72,3.76,3.78,3.76,3.76,3.74,3.75, 4.07,3.90,3.83,3.88,3.92,3.77,3.87,4.02,3.95,4.00, 3.96,3.97,4.10,4.00,4.07,3.89,4.14,3.93,3.98,4.11, 4.13,4.26,4.22,4.09,4.12,4.14,4.28,4.24,4.16,4.24, 4.18,4.15,4.37,4.31,4.31,4.30,4.25,4.22,4.36,4.39, 4.22,4.57,4.25,4.32,4.40,4.49,4.59,4.53,4.49,4.48, 4.32,4.41,4.63,4.50,4.50,4.67,4.61,4.56,4.49,4.55, 4.71,4.44,4.71,4.66,4.39,4.51,4.81,4.88,4.77,4.79, 4.83,4.62,4.95,4.81,4.56,4.63,4.88,4.79,4.77,4.78, 4.78,4.98,4.85,4.99,4.89,4.86,5.16,4.76,5.02,5.04, 4.99,4.94,4.97,5.13,5.04,4.92,5.07,4.97,5.06,4.86, 5.24,5.37,5.12,5.05,5.31,5.23,5.09,5.14,5.24,5.25, 5.31,5.37,5.09,5.16,5.33,5.24,5.33,5.19,5.64,5.29, 5.41,5.60,5.22,5.37,5.37,5.08,5.40,5.27,5.37,5.48, 5.22,5.48,5.56,5.34,5.45,5.31,5.14,5.50,5.56,5.45, 5.44,5.41,5.25,5.49,5.31,5.47,5.64,5.51,5.62,5.37, 5.74,5.58,5.65,5.62,5.88,5.82,5.65,5.61,6.01,5.55, 5.62,5.90,5.81,5.49,5.52,5.65,5.89,5.73,5.90,5.94, 1.06,1.11,1.14,1.21,1.26,1.31,1.37,1.34,1.39,1.43, 1.51,1.45,1.58,1.51,1.65,1.64,1.72,1.74,1.69,1.72, 1.82,1.86,1.92,1.87,1.98,1.97,2.03,1.91,1.97,2.03, 2.09,2.05,2.19,2.25,2.10,2.18,2.18,2.25,2.17,2.31, 2.37,2.36,2.31,2.35,2.48,2.42,2.41,2.45,2.51,2.56, 2.58,2.45,2.62,2.62,2.63,2.70,2.64,2.77,2.76,2.64, 2.72,2.64,2.78,2.76,2.90,2.78,2.91,2.93,2.90,2.88, 2.87,2.93,3.02,2.85,2.95,3.03,2.99,2.84,3.04,3.10, 3.09,3.07,3.17,3.14,3.14,3.16,3.09,3.22,3.30,3.20, 3.18,3.16,3.34,3.31,3.28,3.38,3.29,3.31,3.34,3.30, 3.42,3.53,3.44,3.43,3.42,3.49,3.57,3.55,3.48,3.41, 3.55,3.53,3.54,3.59,3.62,3.70,3.63,3.60,3.73,3.58, 3.58,3.58,3.71,3.65,3.76,3.82,3.69,3.78,3.65,3.84, 4.06,3.92,3.78,3.91,3.70,4.00,3.79,3.80,4.03,3.89, 4.00,4.07,4.04,3.98,3.97,3.93,4.08,4.01,3.93,4.16, 4.15,4.04,4.08,4.20,4.15,4.12,4.15,4.10,4.18,4.20, 4.36,4.33,4.18,4.21,4.34,4.19,4.19,4.15,4.45,4.33, 4.31,4.33,4.20,4.36,4.47,4.37,4.28,4.39,4.33,4.39, 4.48,4.61,4.41,4.67,4.60,4.47,4.55,4.74,4.61,4.35, 4.39,4.44,4.76,4.64,4.54,4.74,4.76,4.60,4.86,4.92, 4.76,4.71,4.45,4.67,4.96,4.73,4.85,4.89,4.76,4.49, 4.98,4.78,4.75,4.95,4.94,4.83,4.76,4.79,4.93,4.92, 4.79,4.89,4.90,4.97,4.90,4.92,4.96,5.06,4.95,5.04, 4.97,5.14,4.93,5.25,5.18,5.26,5.00,5.21,4.90,5.17, 5.14,5.21,5.01,5.04,5.12,5.14,5.14,5.19,5.26,5.24, 5.23,5.21,5.42,5.16,5.25,5.23,5.23,5.29,5.49,5.34, 5.29,5.22,5.48,5.28,5.40,5.27,5.70,5.55,5.31,5.57, 5.33,5.59,5.30,5.45,5.57,5.35,5.29,5.27,5.35,5.52, 5.45,5.52,5.51,5.50,5.63,5.73,5.47,5.92,5.55,5.45, 1.05,1.07,1.14,1.18,1.22,1.24,1.28,1.30,1.40,1.39, 1.43,1.51,1.48,1.46,1.56,1.58,1.67,1.69,1.72,1.67, 1.73,1.78,1.77,1.83,1.83,1.83,1.94,1.92,2.02,1.92, 2.03,2.00,2.04,2.09,2.22,2.04,2.23,2.12,2.25,2.20, 2.29,2.33,2.27,2.24,2.23,2.32,2.38,2.40,2.37,2.40, 2.43,2.48,2.52,2.41,2.65,2.62,2.61,2.60,2.58,2.61, 2.68,2.66,2.63,2.72,2.63,2.64,2.69,2.71,2.78,2.89, 2.78,2.93,2.78,2.97,2.98,2.99,2.91,2.93,2.98,2.93, 2.95,3.13,3.01,3.07,3.06,2.98,2.98,3.16,3.15,3.10, 3.17,3.16,3.31,3.31,3.25,3.19,3.25,3.23,3.22,3.23, 3.25,3.23,3.34,3.22,3.43,3.35,3.36,3.43,3.39,3.43, 3.38,3.58,3.56,3.46,3.54,3.35,3.50,3.46,3.46,3.63, 3.56,3.56,3.61,3.66,3.55,3.67,3.68,3.75,3.76,3.71, 3.74,3.73,3.75,3.62,3.75,3.92,3.77,3.84,3.98,3.83, 3.86,3.93,3.84,3.81,3.84,3.96,3.74,3.98,3.93,4.14, 3.89,3.99,3.97,4.07,4.25,4.10,3.95,4.03,3.91,4.04, 4.08,4.08,4.06,4.23,4.21,4.31,3.94,4.14,4.15,4.19, 4.24,4.21,4.21,4.36,4.01,4.48,4.29,4.22,4.50,4.30, 4.27,4.39,4.41,4.51,4.26,4.30,4.49,4.33,4.43,4.62, 4.29,4.42,4.60,4.30,4.55,4.62,4.53,4.53,4.53,4.66, 4.55,4.44,4.53,4.59,4.62,4.45,4.69,4.60,4.47,4.64, 4.75,4.50,4.82,4.82,4.68,4.65,4.79,4.82,4.55,4.77, 4.45,4.78,4.66,4.72,4.75,4.70,4.85,4.57,4.85,4.94, 4.90,4.89,4.64,4.72,4.81,4.90,4.85,5.06,4.85,4.80, 5.07,4.97,5.08,5.12,4.88,5.07,5.01,4.98,4.90,5.21, 4.95,4.90,5.04,5.29,5.01,5.25,5.43,5.31,5.04,5.01, 5.27,5.43,5.04,5.25,5.15,5.12,5.07,5.15,5.14,5.14, 5.41,5.15,5.25,5.54,5.29,5.36,5.33,5.43,5.11,5.33, 5.29,5.27,5.39,5.22,5.33,5.12,5.40,5.40,5.56,5.28, 0.98,1.02,1.06,1.14,1.21,1.20,1.22,1.32,1.33,1.33, 1.39,1.40,1.46,1.45,1.50,1.56,1.60,1.62,1.61,1.65, 1.64,1.75,1.75,1.72,1.75,1.76,1.85,1.88,1.82,1.87, 1.96,1.95,1.97,1.98,1.97,2.05,2.07,2.05,2.06,2.14, 2.19,2.19,2.24,2.30,2.30,2.32,2.21,2.21,2.23,2.27, 2.32,2.33,2.44,2.33,2.40,2.31,2.54,2.46,2.48,2.47, 2.54,2.55,2.61,2.54,2.51,2.70,2.69,2.62,2.64,2.64, 2.72,2.77,2.72,2.67,2.69,2.80,2.89,2.84,2.82,2.80, 2.88,2.90,2.82,2.95,2.98,3.04,2.94,3.12,3.00,3.06, 3.01,3.05,3.03,3.02,3.11,3.04,3.11,3.13,3.13,3.19, 3.11,3.16,3.23,3.19,3.27,3.31,3.13,3.30,3.31,3.37, 3.18,3.40,3.36,3.22,3.39,3.31,3.51,3.40,3.31,3.42, 3.35,3.46,3.65,3.48,3.57,3.49,3.53,3.45,3.44,3.46, 3.43,3.47,3.62,3.68,3.55,3.66,3.63,3.72,3.61,3.63, 3.63,3.68,3.70,3.75,3.54,3.86,3.71,3.75,3.65,3.69, 3.94,3.66,3.86,3.78,3.80,3.81,4.04,3.90,3.89,3.82, 3.84,4.03,3.92,3.96,3.91,3.83,3.83,4.06,3.93,3.87, 4.14,3.95,4.24,4.10,4.19,4.20,4.29,4.08,4.04,4.26, 4.24,4.24,4.03,4.27,4.26,4.24,4.32,4.26,4.36,4.26, 4.26,4.41,4.36,4.22,4.35,4.25,4.35,4.20,4.36,4.20, 4.43,4.54,4.40,4.33,4.50,4.30,4.53,4.39,4.39,4.28, 4.56,4.50,4.60,4.53,4.59,4.54,4.41,4.64,4.58,4.62, 4.68,4.65,4.68,4.63,4.50,4.52,4.68,4.65,4.51,4.62, 4.58,4.69,4.70,4.79,4.76,4.88,4.69,4.63,4.72,4.74, 4.70,4.73,4.64,4.61,4.72,4.75,4.73,4.81,4.87,4.77, 4.89,4.78,4.65,4.69,4.93,5.01,4.82,4.85,4.99,4.94, 4.80,4.82,4.91,4.86,4.93,5.05,4.90,5.04,5.01,4.89, 5.00,5.10,4.86,5.03,5.09,5.05,5.14,5.03,4.99,5.01, 5.11,5.12,5.03,5.02,5.11,5.19,4.98,5.28,5.20,4.99, 0.92,0.94,1.02,1.08,1.10,1.18,1.16,1.22,1.26,1.31, 1.30,1.33,1.40,1.41,1.49,1.44,1.49,1.49,1.48,1.56, 1.57,1.65,1.64,1.71,1.67,1.71,1.77,1.75,1.79,1.84, 1.88,1.92,1.88,1.85,1.85,1.99,1.93,2.05,2.11,2.08, 2.02,2.03,2.14,2.13,2.17,2.23,2.20,2.20,2.18,2.17, 2.28,2.23,2.38,2.30,2.27,2.35,2.33,2.31,2.40,2.44, 2.40,2.48,2.48,2.55,2.46,2.44,2.60,2.44,2.63,2.55, 2.58,2.70,2.65,2.61,2.65,2.68,2.66,2.65,2.78,2.73, 2.79,2.76,2.80,2.75,2.77,2.72,2.83,2.78,2.93,2.99, 2.84,2.92,3.00,2.88,3.04,2.95,3.05,3.00,3.00,2.95, 3.02,3.15,3.14,3.05,3.04,3.17,3.16,2.95,3.13,3.07, 3.12,3.27,3.13,3.27,3.33,3.27,3.30,3.15,3.15,3.39, 3.24,3.20,3.26,3.47,3.36,3.35,3.39,3.51,3.37,3.41, 3.38,3.34,3.33,3.29,3.46,3.46,3.40,3.54,3.44,3.60, 3.55,3.57,3.48,3.61,3.59,3.55,3.61,3.54,3.51,3.64, 3.75,3.62,3.71,3.64,3.65,3.78,3.68,3.69,3.75,3.78, 3.72,3.77,3.91,3.79,3.92,3.81,3.85,3.65,3.89,3.96, 3.83,3.81,3.89,3.90,3.87,3.85,3.90,3.95,3.97,3.98, 3.90,3.81,4.06,3.85,4.24,4.04,4.12,4.05,3.96,4.15, 4.02,3.90,4.09,4.12,4.23,4.23,4.15,4.22,4.06,4.38, 4.18,4.37,4.20,4.32,4.22,4.32,4.19,4.13,4.18,4.16, 4.37,4.28,4.30,4.36,4.29,4.34,4.42,4.47,4.26,4.29, 4.50,4.29,4.32,4.34,4.27,4.52,4.40,4.39,4.50,4.48, 4.29,4.33,4.36,4.40,4.58,4.42,4.39,4.57,4.51,4.43, 4.49,4.62,4.60,4.70,4.64,4.58,4.62,4.75,4.77,4.46, 4.65,4.57,4.54,4.55,4.85,4.68,4.69,4.45,4.76,4.65, 4.73,4.79,4.63,4.96,4.92,4.90,4.72,4.79,4.93,4.92, 4.71,4.78,5.03,4.79,4.86,4.74,4.90,4.99,4.89,4.92, 4.92,4.85,4.96,5.01,4.66,5.01,4.95,5.05,5.09,4.92, 0.93,0.94,0.98,1.03,1.09,1.11,1.09,1.16,1.19,1.20, 1.31,1.31,1.35,1.35,1.38,1.40,1.40,1.50,1.44,1.47, 1.54,1.51,1.57,1.60,1.64,1.64,1.74,1.68,1.73,1.76, 1.77,1.79,1.83,1.81,1.81,1.84,1.97,1.95,1.95,1.92, 1.94,1.96,2.01,2.02,2.04,2.07,2.05,2.07,2.09,2.05, 2.21,2.23,2.17,2.21,2.15,2.25,2.18,2.20,2.22,2.36, 2.21,2.31,2.24,2.44,2.37,2.35,2.23,2.44,2.40,2.39, 2.49,2.46,2.42,2.47,2.57,2.47,2.67,2.55,2.60,2.56, 2.61,2.58,2.60,2.61,2.74,2.78,2.73,2.70,2.72,2.70, 2.79,2.73,2.85,2.79,2.81,2.80,2.78,2.96,2.83,2.79, 2.87,2.96,2.94,2.97,2.99,2.95,3.00,2.97,3.14,3.02, 3.10,3.17,2.91,3.01,2.96,3.13,3.26,3.09,2.99,3.11, 3.04,3.18,3.19,3.23,3.17,3.28,3.10,3.26,3.13,3.28, 3.38,3.27,3.26,3.30,3.22,3.39,3.19,3.39,3.34,3.34, 3.33,3.48,3.37,3.34,3.46,3.40,3.30,3.50,3.46,3.43, 3.39,3.45,3.46,3.56,3.54,3.39,3.61,3.41,3.46,3.61, 3.54,3.77,3.58,3.67,3.65,3.62,3.72,3.58,3.56,3.77, 3.78,3.59,3.87,3.73,3.72,3.70,3.71,3.65,3.87,3.79, 3.89,3.76,3.94,3.86,3.77,3.88,3.84,3.87,3.74,3.89, 3.80,3.81,3.83,3.89,3.97,4.02,3.96,3.98,4.06,3.98, 3.99,3.87,4.20,3.86,3.95,4.01,3.88,3.98,4.05,4.12, 4.07,4.09,4.12,4.10,4.26,4.18,4.12,4.03,4.04,4.14, 4.18,4.21,4.17,4.16,4.15,4.32,4.19,4.37,4.26,4.22, 4.27,4.29,4.35,4.33,4.31,4.10,4.09,4.41,4.33,4.39, 4.12,4.43,4.55,4.47,4.54,4.37,4.32,4.42,4.47,4.38, 4.40,4.41,4.45,4.37,4.53,4.34,4.38,4.46,4.62,4.51, 4.54,4.36,4.70,4.59,4.53,4.46,4.65,4.68,4.57,4.65, 4.50,4.36,4.54,4.73,4.62,4.55,4.59,4.73,4.77,4.91, 4.73,4.60,4.65,4.75,4.60,4.68,4.78,4.91,4.79,4.70, 0.87,0.96,0.91,0.93,0.99,1.04,1.09,1.14,1.17,1.19, 1.22,1.19,1.22,1.24,1.29,1.36,1.34,1.39,1.43,1.43, 1.43,1.41,1.51,1.55,1.50,1.59,1.66,1.67,1.61,1.58, 1.64,1.70,1.67,1.69,1.69,1.68,1.79,1.76,1.80,1.91, 1.84,2.01,1.99,1.94,1.87,1.95,1.95,1.92,2.04,1.99, 2.01,2.07,2.01,2.04,2.12,2.11,2.08,2.16,2.07,2.20, 2.28,2.20,2.15,2.24,2.28,2.38,2.36,2.32,2.25,2.30, 2.35,2.30,2.35,2.29,2.37,2.51,2.44,2.41,2.49,2.47, 2.40,2.42,2.48,2.51,2.60,2.44,2.54,2.59,2.59,2.58, 2.62,2.58,2.73,2.69,2.65,2.73,2.62,2.71,2.72,2.70, 2.67,2.72,2.71,2.85,2.79,2.71,2.66,2.84,2.81,2.88, 2.74,2.91,2.94,2.92,2.84,3.00,2.90,2.84,2.88,2.91, 2.98,3.03,3.08,3.12,3.02,2.99,3.04,3.09,3.13,3.04, 3.15,3.07,3.15,3.11,3.06,3.16,3.02,3.35,3.12,3.13, 3.11,3.26,3.17,3.27,3.18,3.31,3.24,3.24,3.25,3.24, 3.30,3.29,3.26,3.50,3.39,3.42,3.30,3.42,3.36,3.40, 3.41,3.51,3.45,3.50,3.38,3.34,3.54,3.59,3.55,3.40, 3.57,3.52,3.52,3.55,3.56,3.63,3.70,3.62,3.71,3.64, 3.48,3.55,3.69,3.74,3.69,3.57,3.61,3.56,3.47,3.66, 3.74,3.80,3.75,3.80,3.68,3.84,3.69,3.68,3.70,3.81, 3.64,3.77,3.92,3.89,3.84,3.87,3.97,3.84,3.95,3.91, 3.74,4.05,3.86,3.92,3.84,4.01,3.95,4.06,4.01,4.02, 3.92,4.06,4.03,3.91,3.99,3.90,3.86,4.05,3.91,4.17, 4.11,4.14,4.18,4.02,4.06,3.98,4.04,4.11,4.22,4.04, 4.12,4.12,4.07,4.19,4.09,4.28,4.28,4.16,3.94,4.16, 4.26,4.28,4.10,4.30,4.13,3.97,4.13,4.35,4.36,4.41, 4.13,4.42,4.30,4.29,4.21,4.36,4.29,4.27,4.45,4.24, 4.47,4.22,4.51,4.57,4.49,4.37,4.43,4.37,4.46,4.57, 4.40,4.33,4.48,4.34,4.39,4.52,4.35,4.51,4.59,4.49, 0.82,0.85,0.88,0.91,0.96,1.03,1.00,1.07,1.10,1.10, 1.14,1.13,1.19,1.18,1.28,1.28,1.26,1.32,1.39,1.38, 1.42,1.38,1.39,1.47,1.50,1.41,1.46,1.48,1.57,1.58, 1.56,1.56,1.67,1.63,1.70,1.62,1.63,1.75,1.69,1.73, 1.69,1.78,1.80,1.86,1.86,1.94,1.83,1.86,1.88,1.83, 1.91,1.94,1.96,1.92,2.05,2.01,1.97,2.07,1.96,2.04, 2.11,2.07,2.06,2.12,2.14,2.12,2.14,2.21,2.23,2.22, 2.24,2.24,2.18,2.21,2.19,2.33,2.26,2.38,2.31,2.34, 2.31,2.37,2.28,2.34,2.37,2.30,2.46,2.47,2.47,2.32, 2.55,2.46,2.50,2.55,2.47,2.49,2.52,2.46,2.53,2.62, 2.70,2.67,2.61,2.62,2.64,2.58,2.58,2.68,2.69,2.62, 2.79,2.69,2.69,2.72,2.87,2.77,2.77,2.81,2.78,2.76, 2.77,2.79,2.96,2.84,2.82,2.92,2.93,2.87,2.91,2.94, 2.89,2.92,2.99,2.84,2.85,2.97,3.10,2.85,3.09,2.92, 2.94,3.08,3.05,3.08,3.07,3.10,3.06,3.09,3.14,3.05, 3.06,3.12,3.13,3.11,3.00,3.28,3.16,3.21,3.27,3.16, 3.16,3.21,3.18,3.18,3.25,3.13,3.25,3.34,3.20,3.18, 3.38,3.45,3.45,3.32,3.27,3.36,3.31,3.39,3.36,3.32, 3.31,3.36,3.41,3.38,3.46,3.46,3.41,3.51,3.38,3.46, 3.53,3.48,3.44,3.55,3.62,3.55,3.67,3.44,3.50,3.63, 3.66,3.56,3.45,3.62,3.71,3.58,3.59,3.65,3.59,3.61, 3.65,3.60,3.62,3.73,3.65,3.67,3.60,3.67,3.83,3.65, 3.84,3.79,3.78,3.70,3.79,3.78,3.80,3.67,3.93,3.73, 3.92,3.72,3.72,3.78,3.82,3.79,4.05,3.93,3.92,3.91, 3.96,3.73,3.84,3.88,3.88,4.11,3.89,3.95,3.85,3.94, 4.06,3.98,3.99,4.04,4.16,4.04,4.07,4.05,4.04,3.92, 4.15,4.05,4.10,4.18,4.15,4.15,4.07,4.04,3.95,3.93, 4.07,4.13,4.02,4.14,4.14,4.20,4.15,4.37,4.11,4.17, 4.16,4.23,4.17,4.14,4.18,4.26,4.40,4.44,4.29,4.11, 0.74,0.81,0.83,0.85,0.89,0.90,0.92,0.98,1.01,1.07, 1.08,1.06,1.11,1.13,1.17,1.18,1.14,1.25,1.23,1.25, 1.31,1.34,1.33,1.35,1.36,1.36,1.42,1.43,1.41,1.48, 1.41,1.53,1.49,1.51,1.55,1.54,1.58,1.57,1.55,1.66, 1.65,1.65,1.70,1.68,1.71,1.74,1.72,1.76,1.73,1.77, 1.83,1.81,1.83,1.87,1.87,1.93,1.99,1.89,1.96,1.89, 1.96,1.97,1.98,2.01,1.99,2.04,2.05,2.08,2.03,2.07, 2.13,2.06,2.03,2.17,2.13,2.19,2.22,2.27,2.11,2.19, 2.24,2.29,2.22,2.23,2.17,2.24,2.22,2.26,2.31,2.34, 2.34,2.35,2.43,2.46,2.41,2.36,2.40,2.40,2.46,2.47, 2.46,2.44,2.51,2.47,2.50,2.45,2.51,2.46,2.52,2.52, 2.53,2.62,2.63,2.54,2.56,2.55,2.61,2.63,2.62,2.67, 2.65,2.70,2.78,2.66,2.64,2.69,2.67,2.70,2.71,2.78, 2.71,2.77,2.74,2.86,2.89,2.83,2.84,2.86,2.91,2.80, 3.03,2.74,3.06,2.90,2.97,2.89,3.05,2.97,3.07,2.83, 2.95,2.91,2.93,3.06,3.03,2.95,2.99,3.00,3.02,3.05, 3.00,2.88,3.04,2.95,3.08,3.11,3.05,3.07,3.03,3.04, 3.13,3.17,3.36,3.20,3.18,3.15,3.16,3.25,3.20,3.20, 3.11,3.32,3.31,3.27,3.13,3.16,3.23,3.47,3.22,3.23, 3.24,3.27,3.29,3.49,3.34,3.38,3.35,3.27,3.51,3.34, 3.45,3.28,3.37,3.40,3.35,3.30,3.42,3.36,3.44,3.30, 3.38,3.57,3.48,3.56,3.35,3.51,3.52,3.58,3.61,3.52, 3.49,3.47,3.52,3.46,3.61,3.51,3.62,3.66,3.72,3.74, 3.65,3.75,3.61,3.61,3.66,3.70,3.64,3.58,3.60,3.73, 3.69,3.67,3.80,3.64,3.79,3.67,3.71,3.83,3.92,3.70, 3.82,3.72,3.75,3.89,3.58,3.86,3.84,3.85,3.83,3.79, 3.90,3.83,3.72,3.83,3.75,3.69,3.83,3.75,4.01,3.88, 3.91,3.98,3.87,4.00,3.97,3.91,3.99,3.96,4.03,4.02, 3.87,3.84,4.08,3.99,3.89,4.03,3.87,3.97,4.06,3.90, 0.73,0.75,0.80,0.82,0.86,0.86,0.89,0.95,0.95,0.99, 1.02,1.00,1.02,1.07,1.09,1.11,1.14,1.16,1.13,1.20, 1.25,1.21,1.26,1.27,1.29,1.34,1.38,1.28,1.36,1.33, 1.44,1.44,1.45,1.41,1.43,1.47,1.46,1.52,1.49,1.56, 1.52,1.55,1.54,1.59,1.64,1.58,1.68,1.63,1.65,1.62, 1.77,1.74,1.76,1.70,1.74,1.75,1.84,1.83,1.76,1.83, 1.82,1.81,1.88,1.93,1.89,1.86,1.91,1.87,1.93,1.93, 2.01,1.93,2.03,1.93,1.95,2.04,1.99,2.04,2.02,2.04, 2.14,2.10,2.08,2.03,2.15,2.04,2.17,2.19,2.10,2.31, 2.23,2.20,2.20,2.23,2.28,2.34,2.29,2.30,2.32,2.20, 2.22,2.35,2.31,2.31,2.24,2.39,2.35,2.37,2.36,2.36, 2.42,2.41,2.45,2.43,2.45,2.51,2.48,2.45,2.44,2.53, 2.45,2.62,2.57,2.43,2.53,2.49,2.54,2.58,2.50,2.62, 2.58,2.70,2.57,2.53,2.65,2.64,2.67,2.66,2.69,2.73, 2.69,2.81,2.71,2.66,2.75,2.67,2.79,2.66,2.77,2.74, 2.77,2.79,2.80,2.81,2.76,2.84,2.81,2.89,2.74,2.87, 2.91,2.82,2.81,2.90,2.83,3.04,2.93,2.79,3.01,2.99, 3.01,2.96,2.97,2.95,2.96,2.90,3.06,2.98,2.90,2.93, 3.08,3.10,3.13,3.09,3.03,3.08,3.05,3.04,2.97,3.02, 3.06,3.11,3.12,3.27,3.11,3.16,3.30,3.15,3.13,3.17, 2.99,3.14,3.15,3.30,3.20,3.16,3.10,3.26,3.21,3.18, 3.24,3.21,3.32,3.34,3.20,3.27,3.21,3.27,3.31,3.25, 3.39,3.28,3.23,3.44,3.19,3.34,3.47,3.35,3.47,3.28, 3.53,3.29,3.34,3.31,3.53,3.37,3.37,3.35,3.41,3.43, 3.55,3.42,3.56,3.45,3.57,3.48,3.48,3.41,3.42,3.54, 3.49,3.52,3.59,3.47,3.63,3.57,3.62,3.63,3.54,3.76, 3.60,3.69,3.59,3.59,3.61,3.65,3.77,3.55,3.81,3.60, 3.68,3.69,3.74,3.75,3.79,3.64,3.76,3.75,3.83,3.64, 3.82,3.58,3.91,3.89,3.75,3.55,3.87,3.79,3.75,3.86, 0.71,0.72,0.75,0.76,0.79,0.77,0.86,0.88,0.89,0.91, 0.96,0.93,0.97,0.98,1.07,1.06,1.05,1.11,1.07,1.10, 1.13,1.19,1.22,1.24,1.20,1.24,1.30,1.23,1.33,1.26, 1.34,1.36,1.33,1.31,1.38,1.36,1.40,1.45,1.48,1.43, 1.43,1.50,1.50,1.53,1.53,1.50,1.55,1.59,1.58,1.61, 1.65,1.63,1.63,1.64,1.66,1.64,1.68,1.71,1.70,1.76, 1.73,1.73,1.73,1.72,1.74,1.72,1.80,1.81,1.74,1.87, 1.87,1.88,1.83,1.87,1.90,1.95,1.91,1.89,1.92,1.93, 1.95,2.01,1.90,1.96,1.93,1.92,2.03,2.04,2.06,2.09, 2.05,2.09,2.03,2.05,2.00,2.14,2.15,2.17,2.12,2.15, 2.22,2.26,2.19,2.18,2.20,2.17,2.26,2.20,2.28,2.24, 2.22,2.22,2.30,2.27,2.33,2.30,2.32,2.33,2.20,2.37, 2.26,2.37,2.42,2.37,2.40,2.37,2.39,2.34,2.45,2.42, 2.45,2.49,2.58,2.45,2.44,2.45,2.57,2.43,2.42,2.45, 2.45,2.51,2.51,2.48,2.59,2.52,2.54,2.62,2.56,2.61, 2.54,2.55,2.57,2.74,2.64,2.59,2.65,2.71,2.67,2.63, 2.68,2.63,2.71,2.62,2.74,2.78,2.80,2.74,2.66,2.73, 2.71,2.75,2.85,2.81,2.70,2.77,2.79,2.85,2.85,2.85, 2.80,2.86,2.84,2.82,2.87,2.79,2.86,2.71,2.92,3.00, 2.90,2.93,2.88,2.94,2.85,3.00,2.86,2.97,3.03,2.95, 2.92,2.98,2.97,2.95,2.99,3.07,2.93,3.05,2.90,3.08, 3.10,3.04,3.11,3.02,3.18,3.00,3.18,3.09,3.10,3.08, 3.16,3.23,3.16,3.26,3.17,3.22,3.20,3.06,3.27,3.12, 3.11,3.24,3.26,3.25,3.30,3.21,3.31,3.23,3.19,3.25, 3.18,3.26,3.36,3.18,3.19,3.23,3.31,3.37,3.23,3.30, 3.29,3.23,3.28,3.29,3.37,3.28,3.37,3.17,3.41,3.47, 3.32,3.36,3.40,3.43,3.40,3.38,3.24,3.47,3.54,3.50, 3.51,3.40,3.47,3.44,3.46,3.38,3.43,3.49,3.42,3.49, 3.55,3.54,3.55,3.63,3.51,3.64,3.52,3.69,3.46,3.50, 0.64,0.65,0.71,0.75,0.74,0.76,0.80,0.81,0.86,0.88, 0.85,0.89,0.90,0.94,0.96,0.98,1.01,1.00,1.04,1.02, 1.10,1.05,1.09,1.15,1.13,1.14,1.15,1.13,1.16,1.21, 1.25,1.28,1.30,1.28,1.32,1.33,1.35,1.35,1.36,1.35, 1.37,1.36,1.44,1.42,1.43,1.48,1.44,1.40,1.45,1.50, 1.48,1.49,1.51,1.52,1.59,1.47,1.59,1.61,1.63,1.60, 1.59,1.62,1.66,1.64,1.63,1.69,1.63,1.76,1.72,1.75, 1.74,1.74,1.80,1.80,1.78,1.76,1.79,1.82,1.83,1.82, 1.83,1.79,1.86,1.86,1.93,1.90,1.90,1.90,1.91,1.91, 1.90,1.90,1.92,1.97,1.91,1.99,2.02,1.91,1.93,1.98, 2.02,1.95,2.00,2.01,2.14,2.16,2.11,2.03,2.06,2.17, 2.10,2.14,2.08,2.08,2.16,2.15,2.20,2.17,2.13,2.22, 2.15,2.16,2.15,2.20,2.17,2.21,2.18,2.32,2.25,2.25, 2.23,2.32,2.28,2.33,2.21,2.33,2.31,2.34,2.30,2.43, 2.38,2.35,2.40,2.35,2.44,2.46,2.49,2.45,2.36,2.34, 2.42,2.58,2.40,2.49,2.47,2.38,2.56,2.42,2.49,2.41, 2.51,2.50,2.54,2.59,2.56,2.48,2.49,2.60,2.61,2.59, 2.60,2.64,2.63,2.63,2.60,2.61,2.62,2.56,2.60,2.74, 2.63,2.76,2.72,2.62,2.62,2.77,2.61,2.79,2.53,2.83, 2.67,2.78,2.69,2.77,2.77,2.70,2.84,2.76,2.70,2.75, 2.71,2.69,2.86,2.86,2.74,2.89,2.92,2.76,2.82,2.83, 2.80,2.85,2.87,2.95,2.94,2.90,2.89,2.83,2.81,2.83, 2.90,2.85,2.92,2.87,2.92,3.01,2.99,2.95,2.90,2.90, 2.95,2.91,3.04,2.98,3.05,2.98,2.95,3.05,3.10,2.96, 2.99,3.03,3.25,3.04,3.04,3.12,3.10,3.03,3.13,3.00, 3.03,3.14,3.17,3.25,3.01,3.20,3.10,3.19,3.19,3.15, 3.18,3.12,3.10,3.21,3.21,3.12,3.24,3.27,3.08,3.19, 3.25,3.30,3.21,3.31,3.25,3.20,3.32,3.31,3.30,3.25, 3.24,3.27,3.11,3.29,3.37,3.27,3.20,3.25,3.30,3.25, 0.56,0.64,0.62,0.65,0.69,0.70,0.73,0.77,0.76,0.79, 0.82,0.82,0.88,0.86,0.82,0.91,0.93,0.95,1.00,1.03, 1.00,0.97,1.00,1.06,1.07,1.08,1.05,1.10,1.12,1.10, 1.15,1.17,1.14,1.18,1.23,1.17,1.23,1.30,1.20,1.23, 1.21,1.29,1.30,1.32,1.31,1.35,1.37,1.36,1.36,1.30, 1.40,1.42,1.38,1.47,1.45,1.45,1.42,1.46,1.42,1.50, 1.52,1.45,1.51,1.59,1.53,1.50,1.52,1.61,1.60,1.62, 1.59,1.62,1.61,1.59,1.64,1.70,1.68,1.67,1.64,1.65, 1.73,1.77,1.68,1.71,1.71,1.78,1.76,1.75,1.74,1.81, 1.82,1.83,1.80,1.84,1.93,1.89,1.91,1.87,1.94,1.86, 1.90,1.86,2.03,1.96,1.89,1.90,1.92,1.94,2.05,1.95, 1.95,1.93,2.04,1.99,1.97,1.98,1.97,2.08,2.03,2.04, 2.11,2.02,2.11,2.05,2.04,2.15,2.09,2.13,2.13,2.10, 2.21,2.06,2.20,2.20,2.13,2.13,2.19,2.16,2.13,2.10, 2.22,2.22,2.17,2.26,2.19,2.26,2.24,2.26,2.24,2.30, 2.29,2.32,2.29,2.15,2.29,2.36,2.30,2.31,2.33,2.44, 2.38,2.32,2.39,2.32,2.43,2.36,2.53,2.38,2.48,2.42, 2.33,2.45,2.42,2.50,2.40,2.44,2.61,2.53,2.51,2.51, 2.47,2.49,2.44,2.49,2.63,2.56,2.52,2.45,2.52,2.53, 2.53,2.59,2.53,2.61,2.62,2.59,2.56,2.56,2.60,2.57, 2.66,2.63,2.56,2.64,2.49,2.64,2.70,2.71,2.61,2.62, 2.57,2.74,2.65,2.69,2.68,2.73,2.72,2.66,2.73,2.74, 2.87,2.71,2.67,2.74,2.64,2.68,2.72,2.72,2.84,2.65, 2.81,2.83,2.73,2.95,2.70,2.83,2.93,2.91,2.76,2.73, 2.81,2.81,2.83,2.71,2.82,2.88,2.81,2.90,2.86,2.89, 2.87,2.89,2.81,2.86,2.94,2.89,3.03,2.95,2.89,2.90, 2.95,3.01,2.97,2.95,2.99,2.96,3.02,3.06,2.98,2.97, 3.05,3.00,3.12,3.03,3.05,3.02,2.94,3.08,3.11,3.02, 3.07,3.09,3.08,2.98,3.08,3.02,3.03,3.11,3.20,3.12, 0.52,0.58,0.58,0.64,0.61,0.66,0.67,0.70,0.71,0.75, 0.75,0.77,0.82,0.82,0.84,0.83,0.93,0.87,0.88,0.90, 0.92,0.92,0.92,0.95,1.02,1.00,1.01,1.04,1.07,1.06, 1.07,1.03,1.11,1.09,1.08,1.10,1.16,1.14,1.11,1.21, 1.22,1.15,1.27,1.20,1.22,1.25,1.26,1.26,1.27,1.25, 1.30,1.23,1.32,1.34,1.33,1.36,1.38,1.40,1.37,1.43, 1.44,1.40,1.48,1.43,1.43,1.47,1.46,1.48,1.53,1.52, 1.48,1.52,1.50,1.49,1.54,1.52,1.55,1.59,1.56,1.58, 1.61,1.63,1.64,1.69,1.68,1.63,1.63,1.71,1.66,1.71, 1.72,1.73,1.74,1.71,1.78,1.71,1.78,1.80,1.73,1.75, 1.82,1.83,1.61,1.78,1.78,1.79,1.84,1.79,1.79,1.86, 1.77,1.82,1.87,1.81,1.91,1.79,1.86,1.90,1.90,1.91, 1.95,1.95,1.98,1.89,1.97,1.93,1.97,2.05,1.99,2.01, 1.98,2.01,1.99,2.02,2.01,2.00,2.08,2.06,2.01,2.10, 1.98,2.06,2.04,2.12,2.00,2.00,2.05,2.12,2.09,2.04, 2.15,2.11,2.16,2.16,2.16,2.09,2.11,2.21,2.26,2.08, 2.16,2.20,2.23,2.16,2.23,2.12,2.26,2.13,2.27,2.25, 2.30,2.28,2.33,2.29,2.23,2.31,2.29,2.36,2.38,2.37, 2.20,2.38,2.36,2.33,2.40,2.26,2.41,2.34,2.29,2.24, 2.33,2.46,2.32,2.39,2.35,2.41,2.33,2.43,2.39,2.44, 2.40,2.35,2.42,2.43,2.53,2.51,2.57,2.42,2.52,2.51, 2.64,2.55,2.54,2.36,2.44,2.56,2.51,2.54,2.44,2.47, 2.58,2.52,2.60,2.60,2.64,2.56,2.53,2.64,2.62,2.61, 2.56,2.58,2.66,2.60,2.63,2.66,2.58,2.66,2.62,2.63, 2.66,2.68,2.63,2.58,2.60,2.75,2.81,2.71,2.71,2.67, 2.65,2.74,2.70,2.78,2.76,2.63,2.70,2.73,2.73,2.78, 2.74,2.69,2.70,2.68,2.71,2.82,2.71,2.81,2.82,2.84, 2.85,2.81,2.74,2.85,2.80,2.75,2.84,2.89,2.83,2.74, 2.95,2.81,2.84,2.86,2.77,2.94,2.87,3.05,2.92,2.82, 1.15,1.21,1.18,1.32,1.31,1.31,1.43,1.44,1.42,1.57, 1.53,1.60,1.61,1.69,1.67,1.76,1.81,1.75,1.79,1.84, 1.80,1.91,1.94,2.01,2.00,1.94,1.95,2.12,2.02,2.10, 2.22,2.10,2.20,2.23,2.24,2.32,2.35,2.35,2.36,2.36, 2.49,2.45,2.46,2.52,2.47,2.46,2.57,2.52,2.59,2.51, 2.59,2.69,2.64,2.72,2.61,2.68,2.83,2.81,2.79,2.76, 2.95,2.95,2.75,3.01,2.89,2.90,2.88,3.08,3.08,3.09, 2.81,3.20,3.08,2.94,3.03,3.19,3.02,3.17,3.12,3.25, 3.15,3.23,3.28,3.36,3.20,3.37,3.37,3.46,3.33,3.33, 3.34,3.50,3.55,3.43,3.54,3.60,3.39,3.47,3.57,3.57, 3.63,3.50,3.45,3.68,3.56,3.74,3.66,3.69,3.73,3.81, 3.57,3.65,3.87,3.70,3.79,3.85,3.78,3.75,3.78,3.77, 3.74,3.85,3.80,3.80,4.12,4.17,3.84,4.10,4.04,4.06, 4.06,3.88,3.84,4.07,4.08,4.04,4.15,3.88,3.95,4.21, 4.06,4.03,4.11,4.09,4.21,4.25,4.16,4.15,4.19,4.25, 4.25,4.24,4.18,4.08,4.30,4.30,4.39,4.38,4.41,4.35, 4.44,4.24,4.43,4.35,4.48,4.53,4.28,4.65,4.53,4.46, 4.31,4.65,4.45,4.56,4.51,4.62,4.67,4.58,4.75,4.63, 4.58,4.80,4.57,4.58,4.87,4.70,4.62,4.79,4.74,4.84, 4.63,4.70,4.85,4.74,4.94,4.96,4.67,4.88,4.80,5.11, 4.95,4.92,4.98,4.98,4.71,5.18,4.82,4.89,5.09,5.01, 4.92,5.11,4.92,4.99,4.89,5.19,4.96,5.25,5.10,5.10, 4.96,5.09,5.28,5.14,5.15,5.00,5.11,5.28,5.13,4.94, 4.99,5.20,5.17,5.25,5.25,5.32,5.25,5.18,5.29,5.39, 5.45,5.25,5.37,5.44,5.45,5.53,5.35,5.42,5.42,5.50, 5.38,5.59,5.51,5.62,5.34,5.59,5.54,5.54,5.68,5.56, 5.30,5.80,5.72,5.64,5.69,5.55,5.54,5.42,5.78,5.44, 5.84,6.00,5.69,5.76,5.70,5.66,5.74,5.82,5.70,5.73, 5.77,5.61,5.55,5.98,5.87,5.82,5.56,5.84,5.77,5.74, 1.08,1.14,1.22,1.26,1.31,1.28,1.36,1.38,1.41,1.45, 1.49,1.57,1.54,1.58,1.74,1.69,1.69,1.70,1.76,1.80, 1.82,1.81,1.95,1.91,2.00,2.04,2.05,1.99,2.09,2.11, 2.20,2.11,2.11,2.24,2.21,2.19,2.31,2.31,2.26,2.31, 2.44,2.39,2.40,2.47,2.46,2.45,2.47,2.45,2.58,2.46, 2.54,2.58,2.62,2.68,2.75,2.70,2.82,2.67,2.67,2.65, 2.70,2.91,2.88,2.91,2.82,2.84,2.85,2.93,2.87,2.93, 3.04,2.98,3.01,2.93,3.02,3.07,3.16,2.99,3.01,3.15, 3.20,3.28,3.16,3.12,3.22,3.25,3.30,3.16,3.36,3.31, 3.37,3.28,3.29,3.45,3.35,3.30,3.36,3.31,3.38,3.42, 3.50,3.50,3.47,3.56,3.55,3.60,3.63,3.59,3.67,3.70, 3.62,3.59,3.66,3.62,3.79,3.74,3.56,3.62,3.68,3.89, 3.74,3.82,3.82,3.74,3.83,3.98,3.87,3.78,3.65,3.99, 3.95,3.99,3.81,3.93,3.82,3.96,4.10,3.86,3.99,4.06, 4.20,4.04,4.04,4.03,4.10,4.17,3.93,4.25,4.05,4.23, 4.12,4.20,4.21,4.12,4.13,4.30,4.29,4.28,4.23,4.39, 4.30,4.16,4.33,4.35,4.56,4.30,4.25,4.35,4.42,4.35, 4.46,4.29,4.35,4.52,4.39,4.40,4.50,4.54,4.56,4.61, 4.47,4.64,4.63,4.43,4.53,4.52,4.83,4.81,4.60,4.62, 4.58,4.73,4.74,4.61,4.63,4.60,4.61,4.78,4.72,4.69, 4.75,4.93,4.74,4.89,4.81,4.96,4.68,5.06,4.76,5.01, 4.71,4.87,4.93,4.91,4.92,4.86,5.15,4.92,5.03,4.92, 5.20,4.91,4.85,5.11,4.81,5.14,5.00,5.19,5.06,5.19, 5.14,5.15,4.97,5.03,5.12,5.09,5.25,5.24,5.15,5.37, 5.03,5.21,5.39,5.24,5.21,5.23,5.40,5.16,5.38,5.43, 5.41,5.10,5.10,5.11,5.35,5.18,5.24,5.39,5.48,5.34, 5.50,5.46,5.26,5.53,5.44,5.50,5.54,5.50,5.48,5.59, 5.52,5.48,5.54,5.65,5.60,5.41,5.78,5.64,5.73,5.78, 5.87,5.62,5.69,5.79,5.42,5.50,5.66,5.71,5.66,5.59, 1.04,1.09,1.14,1.19,1.24,1.31,1.34,1.41,1.42,1.45, 1.52,1.52,1.52,1.60,1.66,1.63,1.60,1.65,1.79,1.79, 1.76,1.79,1.85,1.86,1.85,1.84,2.04,1.99,2.05,2.03, 2.05,2.01,2.05,2.15,2.13,2.24,2.22,2.19,2.12,2.34, 2.27,2.29,2.45,2.37,2.37,2.38,2.45,2.37,2.46,2.53, 2.51,2.56,2.61,2.49,2.63,2.52,2.59,2.58,2.70,2.67, 2.78,2.62,2.68,2.67,2.77,2.72,2.94,2.84,2.85,2.85, 2.84,3.03,2.95,2.97,2.91,3.00,2.92,3.10,3.03,3.02, 3.10,3.11,3.08,3.03,3.10,3.25,3.14,3.11,3.14,3.22, 3.24,3.29,3.24,3.20,3.31,3.36,3.40,3.26,3.38,3.38, 3.40,3.47,3.35,3.46,3.54,3.25,3.53,3.36,3.58,3.58, 3.50,3.48,3.56,3.59,3.48,3.62,3.71,3.66,3.56,3.64, 3.78,3.56,3.66,3.69,3.70,3.76,3.82,3.68,3.95,3.84, 3.89,3.81,3.87,3.87,3.80,3.77,3.92,3.89,3.92,3.90, 4.01,4.00,3.99,3.90,3.91,3.89,4.00,4.08,3.95,4.02, 4.04,4.00,4.06,4.27,4.06,4.14,4.08,4.26,4.20,4.31, 4.07,4.31,4.36,4.19,4.19,4.12,4.20,4.35,4.28,4.19, 4.42,4.32,4.41,4.36,4.34,4.37,4.35,4.44,4.47,4.28, 4.41,4.26,4.60,4.36,4.49,4.47,4.62,4.50,4.35,4.59, 4.61,4.53,4.48,4.47,4.51,4.38,4.64,4.58,4.54,4.60, 4.79,4.58,4.71,4.73,4.68,4.45,4.69,4.76,4.61,4.96, 4.84,4.64,4.69,4.66,4.70,4.72,4.92,4.87,4.99,4.83, 4.99,4.79,4.93,4.89,4.62,4.68,4.91,5.08,5.14,5.06, 4.91,4.99,5.14,5.05,5.00,4.97,5.16,5.12,5.02,5.10, 5.23,4.84,5.00,5.10,5.15,4.98,5.17,5.15,5.20,5.05, 5.31,5.18,5.46,5.14,5.28,5.20,5.06,5.34,5.28,5.41, 5.03,5.08,5.27,5.41,5.19,5.40,5.35,5.18,5.32,5.32, 5.49,5.26,5.27,5.27,5.37,5.41,5.34,5.56,5.52,5.47, 5.41,5.68,5.53,5.35,5.63,5.54,5.54,5.34,5.52,5.35, 1.02,1.09,1.13,1.18,1.19,1.27,1.31,1.36,1.30,1.40, 1.45,1.50,1.49,1.55,1.51,1.52,1.64,1.61,1.71,1.77, 1.75,1.76,1.73,1.82,1.85,1.77,1.88,1.91,1.95,2.00, 1.97,2.00,1.99,2.13,2.07,2.09,2.14,2.20,2.26,2.15, 2.22,2.25,2.24,2.34,2.26,2.25,2.37,2.34,2.38,2.36, 2.48,2.44,2.47,2.49,2.41,2.50,2.63,2.56,2.66,2.62, 2.63,2.69,2.71,2.73,2.72,2.75,2.76,2.78,2.79,2.78, 2.87,2.77,2.73,2.75,2.88,2.85,2.87,2.93,2.99,2.99, 3.06,2.90,2.89,3.02,2.95,3.02,3.03,3.07,2.95,3.13, 3.06,3.12,3.25,3.24,3.12,3.15,3.24,3.14,3.17,3.19, 3.08,3.22,3.35,3.18,3.43,3.15,3.37,3.40,3.49,3.42, 3.46,3.64,3.34,3.41,3.33,3.52,3.48,3.56,3.28,3.67, 3.44,3.54,3.53,3.60,3.53,3.50,3.66,3.77,3.50,3.76, 3.75,3.67,3.72,3.62,3.74,3.82,3.76,3.82,3.95,3.94, 3.89,3.81,3.89,3.87,3.82,3.82,3.88,3.96,4.07,4.03, 3.95,3.95,4.02,4.16,3.86,3.92,4.04,3.91,4.08,3.95, 4.03,4.08,4.06,4.21,4.12,4.15,4.13,4.13,4.06,4.15, 4.18,4.27,4.19,4.25,4.24,4.24,4.44,4.32,4.31,4.31, 4.31,4.12,4.38,4.37,4.36,4.33,4.31,4.29,4.32,4.29, 4.36,4.46,4.41,4.44,4.70,4.59,4.53,4.21,4.55,4.61, 4.53,4.41,4.51,4.52,4.56,4.65,4.64,4.57,4.56,4.54, 4.42,4.62,4.69,4.75,4.69,4.69,4.73,4.64,4.86,4.59, 4.55,4.73,4.72,4.70,4.73,4.59,4.74,4.63,4.83,4.63, 4.78,4.85,4.97,4.59,4.75,4.91,4.81,4.92,4.97,4.87, 4.90,4.78,4.74,4.90,4.97,4.89,4.90,4.83,4.98,4.99, 4.89,5.00,4.80,5.04,5.15,5.32,5.12,5.13,4.91,5.02, 5.14,5.32,5.14,5.21,5.10,5.49,5.17,4.98,5.33,4.97, 5.07,5.22,5.20,5.19,5.18,5.28,5.31,5.08,5.26,5.08, 5.42,5.17,5.46,5.45,5.28,5.32,5.32,5.40,5.62,5.34, 1.04,1.03,1.11,1.12,1.14,1.19,1.26,1.30,1.26,1.40, 1.37,1.43,1.43,1.44,1.54,1.52,1.64,1.58,1.66,1.71, 1.66,1.64,1.75,1.80,1.81,1.83,1.77,1.83,1.88,1.90, 1.93,1.96,2.08,2.01,2.02,2.07,2.08,2.11,2.15,2.08, 2.10,2.17,2.24,2.24,2.24,2.31,2.32,2.22,2.26,2.26, 2.35,2.36,2.40,2.46,2.53,2.40,2.45,2.50,2.51,2.55, 2.51,2.58,2.69,2.54,2.58,2.64,2.66,2.67,2.62,2.69, 2.64,2.72,2.86,2.91,2.65,2.67,2.81,2.81,2.80,2.87, 2.93,2.86,2.89,2.95,2.92,2.99,2.84,2.97,3.05,3.04, 2.95,2.97,3.12,3.10,3.01,3.02,3.05,3.22,3.10,3.05, 3.12,3.19,3.14,3.27,3.15,3.31,3.13,3.14,3.16,3.33, 3.25,3.31,3.38,3.29,3.43,3.43,3.45,3.32,3.42,3.42, 3.44,3.50,3.41,3.53,3.49,3.45,3.59,3.58,3.53,3.65, 3.47,3.61,3.46,3.66,3.81,3.72,3.55,3.64,3.85,3.56, 3.60,3.62,3.76,3.78,3.86,3.75,3.86,3.74,3.52,3.95, 3.77,3.94,3.75,4.02,3.85,3.81,3.84,3.88,4.00,3.81, 3.81,4.01,3.98,3.91,4.05,4.04,3.97,3.97,3.88,4.02, 4.11,4.15,4.05,4.00,4.05,4.23,4.06,4.17,4.11,4.10, 4.21,4.05,4.14,4.15,4.15,4.15,4.29,4.34,4.24,4.23, 4.33,4.27,4.36,4.40,4.19,4.19,4.45,4.28,4.32,4.36, 4.37,4.38,4.24,4.37,4.44,4.54,4.20,4.54,4.42,4.54, 4.40,4.49,4.56,4.57,4.53,4.42,4.79,4.79,4.53,4.52, 4.62,4.48,4.64,4.58,4.66,4.72,4.65,4.65,4.68,4.83, 4.70,4.54,4.66,4.65,4.72,4.72,4.53,4.92,4.54,4.68, 4.74,4.53,4.83,4.82,4.90,4.65,4.63,4.93,4.83,4.92, 4.89,4.85,4.79,4.90,5.02,4.73,4.80,5.02,4.85,4.79, 4.96,4.82,4.84,4.94,5.06,5.05,4.81,5.08,5.00,4.85, 4.93,5.26,5.05,5.08,4.94,5.13,4.99,4.95,5.33,5.30, 5.06,5.15,5.15,5.04,4.90,5.01,5.23,5.22,5.10,5.26, 0.97,1.03,1.04,1.11,1.14,1.14,1.17,1.20,1.26,1.24, 1.31,1.35,1.40,1.43,1.46,1.50,1.56,1.56,1.52,1.59, 1.61,1.64,1.69,1.70,1.73,1.75,1.73,1.82,1.83,1.85, 1.90,1.83,1.92,1.87,1.98,1.94,2.01,1.98,2.02,2.01, 2.14,2.09,2.07,2.12,2.19,2.12,2.25,2.24,2.24,2.19, 2.23,2.22,2.35,2.38,2.24,2.47,2.43,2.31,2.40,2.51, 2.58,2.54,2.46,2.54,2.40,2.52,2.52,2.54,2.53,2.54, 2.58,2.53,2.61,2.78,2.56,2.64,2.67,2.74,2.73,2.82, 2.75,2.73,2.69,2.74,2.80,2.86,2.84,2.96,2.97,2.98, 2.94,2.99,3.00,2.91,3.07,3.00,3.01,3.09,2.87,2.98, 3.02,3.00,3.22,3.23,2.94,3.11,3.08,3.28,3.06,3.06, 3.06,3.18,3.24,3.23,3.27,3.19,3.30,3.14,3.42,3.35, 3.32,3.26,3.34,3.41,3.33,3.42,3.50,3.46,3.43,3.47, 3.38,3.34,3.48,3.47,3.62,3.31,3.39,3.50,3.55,3.54, 3.50,3.65,3.54,3.64,3.62,3.62,3.65,3.66,3.53,3.69, 3.66,3.67,3.75,3.56,3.75,3.70,3.80,3.69,3.60,3.60, 3.72,3.83,3.75,3.80,3.85,3.76,3.84,3.79,3.85,3.98, 3.79,3.96,3.94,3.98,3.81,3.92,4.10,3.96,3.91,3.88, 4.06,4.08,3.99,3.94,4.08,4.02,4.04,3.98,4.17,3.94, 4.08,4.16,4.25,4.10,4.03,4.13,4.21,4.09,4.11,4.07, 4.20,4.14,4.28,4.23,4.18,4.21,4.06,4.27,4.18,4.39, 4.33,4.05,4.40,4.58,4.20,4.34,4.44,4.50,4.31,4.41, 4.43,4.32,4.54,4.41,4.47,4.32,4.48,4.42,4.26,4.46, 4.62,4.55,4.54,4.68,4.56,4.62,4.42,4.67,4.74,4.51, 4.45,4.45,4.66,4.65,4.54,4.77,4.61,4.68,4.71,4.69, 4.77,4.65,4.80,4.80,4.69,4.76,4.79,4.77,4.72,5.06, 4.85,4.62,4.79,4.61,4.69,4.95,4.86,4.75,4.95,4.97, 4.85,4.81,4.84,5.02,4.84,4.94,4.77,5.00,4.97,5.01, 5.08,5.01,5.00,4.90,5.33,5.07,5.16,5.02,4.90,5.02, 0.92,0.97,0.99,1.03,1.14,1.06,1.16,1.17,1.23,1.27, 1.30,1.34,1.31,1.37,1.43,1.41,1.46,1.47,1.52,1.51, 1.56,1.56,1.64,1.63,1.62,1.63,1.70,1.75,1.69,1.69, 1.82,1.84,1.85,1.87,1.89,1.86,1.92,1.89,1.90,2.06, 1.99,2.00,2.13,1.99,2.02,2.12,2.07,2.11,2.15,2.15, 2.27,2.20,2.18,2.26,2.24,2.30,2.23,2.32,2.29,2.33, 2.24,2.42,2.26,2.33,2.36,2.33,2.55,2.49,2.58,2.41, 2.51,2.55,2.59,2.60,2.64,2.60,2.61,2.66,2.56,2.76, 2.60,2.71,2.76,2.70,2.77,2.80,2.80,2.73,2.75,2.81, 2.70,2.87,2.97,2.84,2.86,2.89,3.00,2.81,2.91,2.89, 2.96,2.94,3.03,3.02,2.88,2.99,2.99,3.11,2.94,2.91, 3.11,3.14,3.11,3.06,3.16,3.14,3.22,3.17,3.08,3.14, 3.21,3.26,3.21,3.20,3.28,3.12,3.18,3.27,3.27,3.30, 3.21,3.36,3.30,3.40,3.28,3.27,3.36,3.29,3.46,3.46, 3.33,3.47,3.41,3.40,3.54,3.37,3.43,3.47,3.57,3.51, 3.61,3.62,3.65,3.63,3.51,3.70,3.64,3.64,3.56,3.48, 3.61,3.78,3.69,3.85,3.58,3.65,3.70,3.72,3.82,3.83, 3.74,3.63,3.96,3.79,3.86,3.73,3.85,3.73,3.86,3.74, 3.80,3.68,3.97,3.97,3.84,3.98,4.01,3.83,4.01,3.97, 3.96,3.84,3.85,3.99,3.86,4.01,3.93,4.24,3.98,3.98, 4.08,4.04,4.05,3.97,4.23,4.28,4.09,4.12,4.25,4.22, 4.18,4.20,4.25,4.11,4.40,4.22,4.10,4.34,4.19,4.24, 4.31,4.06,4.19,4.30,4.30,4.41,4.15,4.26,4.31,4.41, 4.28,4.36,4.38,4.45,4.30,4.27,4.30,4.10,4.26,4.35, 4.41,4.32,4.37,4.49,4.47,4.47,4.37,4.53,4.42,4.65, 4.37,4.36,4.55,4.50,4.46,4.45,4.66,4.59,4.81,4.47, 4.55,4.46,4.57,4.77,4.58,4.63,4.66,4.73,4.83,4.61, 4.70,4.78,4.67,4.55,4.79,4.70,4.54,4.70,4.73,4.75, 4.76,4.79,4.68,4.79,4.96,4.93,4.63,4.91,4.81,4.73, 0.87,0.97,0.95,1.02,1.03,1.02,1.13,1.16,1.19,1.20, 1.26,1.25,1.28,1.28,1.34,1.32,1.38,1.43,1.46,1.47, 1.47,1.53,1.54,1.54,1.58,1.63,1.60,1.63,1.68,1.76, 1.73,1.69,1.79,1.83,1.81,1.79,1.88,1.81,1.89,1.96, 1.91,1.88,2.00,1.95,1.87,1.99,2.07,1.96,2.12,2.07, 2.09,2.05,2.15,2.14,2.10,2.11,2.20,2.22,2.30,2.19, 2.31,2.26,2.27,2.34,2.41,2.33,2.37,2.40,2.26,2.38, 2.42,2.47,2.45,2.55,2.42,2.44,2.55,2.57,2.48,2.43, 2.53,2.60,2.54,2.57,2.60,2.68,2.63,2.70,2.67,2.62, 2.67,2.78,2.68,2.77,2.77,2.64,2.79,2.72,2.70,2.89, 2.71,2.94,2.83,2.94,2.83,2.91,2.97,2.93,2.85,2.95, 2.84,2.87,3.05,3.02,2.90,2.98,2.94,2.98,2.92,3.10, 3.09,3.08,2.94,3.08,3.08,3.00,3.17,3.17,3.23,3.13, 3.20,3.02,3.20,3.22,3.24,3.16,3.12,3.22,3.36,3.19, 3.32,3.26,3.32,3.45,3.38,3.32,3.30,3.25,3.40,3.26, 3.38,3.41,3.44,3.47,3.36,3.39,3.49,3.49,3.50,3.52, 3.54,3.53,3.67,3.51,3.52,3.55,3.57,3.53,3.63,3.66, 3.60,3.61,3.62,3.63,3.58,3.70,3.59,3.59,3.86,3.78, 3.84,3.72,3.86,3.81,3.83,3.88,3.75,3.96,3.76,3.65, 3.83,3.75,3.91,3.68,3.72,3.76,3.84,3.82,3.64,3.81, 3.92,3.90,3.98,3.98,3.99,3.86,4.10,3.71,3.95,4.08, 3.91,3.99,4.00,4.14,4.10,4.19,3.91,4.08,3.93,4.00, 3.97,4.13,4.11,4.22,4.16,4.15,3.93,4.13,4.07,4.24, 4.23,4.07,4.17,4.04,4.28,4.25,4.22,4.08,4.16,4.10, 4.41,4.29,4.36,4.26,4.36,4.40,4.46,4.34,4.41,4.43, 4.22,4.34,4.39,4.32,4.33,4.28,4.32,4.37,4.29,4.25, 4.24,4.45,4.46,4.43,4.47,4.46,4.61,4.56,4.41,4.37, 4.57,4.39,4.37,4.46,4.48,4.51,4.52,4.55,4.44,4.44, 4.56,4.65,4.49,4.73,4.63,4.57,4.48,4.48,4.69,4.60, 0.85,0.88,0.98,0.97,0.96,1.00,1.03,1.07,1.10,1.16, 1.20,1.21,1.21,1.26,1.25,1.29,1.36,1.34,1.37,1.43, 1.43,1.47,1.49,1.49,1.47,1.52,1.61,1.53,1.58,1.64, 1.69,1.64,1.68,1.69,1.71,1.71,1.79,1.75,1.83,1.78, 1.85,1.85,1.87,1.90,1.89,1.91,2.00,2.03,1.93,2.07, 1.97,2.00,2.02,2.09,2.06,2.07,2.09,2.14,2.20,2.16, 2.27,2.04,2.13,2.18,2.17,2.24,2.27,2.24,2.28,2.33, 2.25,2.30,2.33,2.31,2.35,2.36,2.49,2.37,2.38,2.39, 2.54,2.50,2.47,2.52,2.46,2.40,2.52,2.53,2.48,2.48, 2.60,2.48,2.64,2.64,2.54,2.66,2.66,2.71,2.70,2.77, 2.74,2.68,2.71,2.70,2.80,2.69,2.66,2.75,2.63,2.78, 2.82,2.76,2.86,2.80,2.83,2.88,2.81,3.11,2.81,2.92, 2.90,2.84,2.91,3.00,2.84,2.99,2.87,3.11,3.07,3.03, 2.96,3.05,3.05,3.01,3.06,3.10,3.18,3.08,3.06,3.14, 3.15,3.19,3.05,3.15,3.22,3.02,3.13,3.17,3.22,3.14, 3.29,3.27,3.18,3.24,3.32,3.21,3.40,3.30,3.23,3.37, 3.28,3.39,3.33,3.37,3.36,3.37,3.51,3.30,3.24,3.39, 3.33,3.43,3.46,3.43,3.57,3.44,3.55,3.39,3.49,3.52, 3.63,3.67,3.67,3.58,3.56,3.60,3.64,3.64,3.67,3.59, 3.67,3.57,3.68,3.60,3.69,3.65,3.65,3.92,3.67,3.64, 3.74,3.81,3.59,3.75,3.76,3.83,3.66,3.65,3.63,3.63, 3.73,3.79,3.82,3.83,3.87,3.72,3.88,4.00,3.86,3.91, 3.91,3.77,3.74,3.87,3.98,3.86,3.88,3.91,4.04,4.08, 3.89,3.92,4.00,3.97,4.12,3.97,4.01,4.05,3.94,4.16, 3.83,4.08,4.13,4.25,4.07,3.97,4.11,4.15,4.28,4.02, 4.00,4.14,4.14,4.25,4.08,4.10,4.20,4.07,4.25,4.33, 4.20,4.33,4.30,4.13,4.11,4.23,4.25,4.22,4.24,4.18, 4.27,4.16,4.19,4.24,4.14,4.21,4.28,4.37,4.24,4.35, 4.46,4.39,4.49,4.26,4.40,4.41,4.31,4.32,4.44,4.57, 0.80,0.85,0.87,0.92,0.94,0.97,0.99,1.04,1.09,1.13, 1.08,1.07,1.12,1.18,1.16,1.24,1.27,1.28,1.26,1.33, 1.39,1.37,1.38,1.45,1.43,1.43,1.46,1.42,1.52,1.53, 1.60,1.52,1.63,1.60,1.62,1.64,1.64,1.67,1.70,1.75, 1.76,1.70,1.73,1.75,1.78,1.85,1.84,1.87,1.82,1.88, 1.88,1.85,1.89,1.95,1.99,2.05,1.96,1.96,2.07,2.08, 2.07,2.02,2.01,2.06,2.06,2.11,2.11,2.11,2.18,2.32, 2.19,2.22,2.27,2.22,2.23,2.31,2.31,2.18,2.29,2.36, 2.37,2.29,2.29,2.29,2.42,2.31,2.44,2.42,2.37,2.41, 2.45,2.47,2.45,2.42,2.43,2.54,2.51,2.63,2.54,2.60, 2.59,2.56,2.51,2.58,2.58,2.56,2.59,2.64,2.53,2.74, 2.65,2.63,2.69,2.63,2.80,2.70,2.69,2.78,2.81,2.96, 2.73,2.64,2.77,2.70,2.75,2.90,2.93,2.93,2.90,2.88, 2.89,2.90,2.89,2.94,2.99,2.86,2.81,2.97,3.01,3.03, 3.02,2.95,3.08,2.94,2.95,2.93,3.06,3.10,3.10,3.17, 3.06,3.08,3.01,3.08,3.20,2.97,3.17,3.08,3.21,3.17, 3.06,3.07,3.18,3.39,3.15,3.33,3.09,3.31,3.27,3.24, 3.35,3.29,3.18,3.41,3.29,3.37,3.28,3.35,3.31,3.42, 3.41,3.32,3.47,3.32,3.45,3.40,3.42,3.28,3.48,3.41, 3.64,3.45,3.47,3.43,3.44,3.49,3.50,3.38,3.42,3.71, 3.43,3.38,3.45,3.51,3.43,3.52,3.62,3.52,3.55,3.48, 3.61,3.48,3.58,3.72,3.75,3.81,3.55,3.58,3.76,3.70, 3.73,3.70,3.74,3.59,3.68,3.72,3.76,3.81,3.67,3.85, 3.78,3.82,3.80,3.77,3.96,3.78,3.87,3.83,3.80,3.91, 3.83,3.72,4.00,3.78,3.82,3.80,3.88,3.67,3.77,3.91, 3.81,3.93,4.05,4.16,3.94,4.07,4.03,4.20,4.01,4.07, 4.09,3.94,4.05,4.06,4.02,4.05,4.12,3.98,4.27,3.93, 4.10,4.03,4.05,4.08,4.07,3.99,4.15,4.23,4.12,4.11, 4.23,4.14,4.26,4.05,4.11,4.19,4.06,4.29,4.17,4.30, 0.76,0.77,0.80,0.86,0.91,0.91,0.96,0.93,0.97,1.04, 1.06,1.09,1.10,1.11,1.12,1.18,1.18,1.17,1.26,1.27, 1.28,1.34,1.30,1.36,1.36,1.36,1.38,1.42,1.40,1.46, 1.39,1.49,1.45,1.56,1.51,1.55,1.59,1.60,1.60,1.62, 1.62,1.70,1.67,1.71,1.69,1.76,1.68,1.74,1.71,1.72, 1.80,1.77,1.90,1.82,1.86,1.83,1.82,1.89,1.94,1.98, 1.95,2.01,1.98,1.96,1.99,2.02,2.06,1.95,2.08,2.04, 2.08,2.07,2.11,2.14,2.05,2.15,2.16,2.23,2.14,2.15, 2.14,2.23,2.18,2.16,2.24,2.22,2.32,2.31,2.27,2.35, 2.31,2.38,2.37,2.38,2.40,2.37,2.40,2.32,2.41,2.37, 2.44,2.54,2.45,2.41,2.44,2.46,2.57,2.59,2.49,2.59, 2.60,2.51,2.51,2.51,2.45,2.63,2.58,2.57,2.48,2.80, 2.58,2.71,2.64,2.71,2.70,2.61,2.61,2.78,2.89,2.62, 2.80,2.82,2.76,2.80,2.83,2.74,2.80,2.81,2.76,2.85, 2.79,2.87,2.82,2.86,2.76,2.89,2.88,3.00,3.02,2.98, 2.95,2.97,2.92,2.81,2.91,2.95,3.00,3.05,2.97,3.06, 2.99,2.97,3.01,3.01,2.94,3.18,3.08,3.01,3.00,3.08, 3.06,3.18,3.09,3.14,3.22,3.24,3.14,3.11,3.22,3.16, 3.24,3.24,3.00,3.35,3.21,3.18,3.24,3.29,3.34,3.16, 3.23,3.31,3.21,3.38,3.34,3.32,3.27,3.42,3.46,3.50, 3.32,3.26,3.38,3.27,3.35,3.55,3.28,3.40,3.52,3.47, 3.47,3.36,3.38,3.52,3.40,3.43,3.58,3.48,3.38,3.44, 3.28,3.48,3.39,3.44,3.52,3.47,3.48,3.64,3.56,3.63, 3.67,3.68,3.54,3.62,3.62,3.66,3.61,3.58,3.66,3.64, 3.62,3.51,3.61,3.63,3.69,3.66,3.75,3.80,3.68,3.73, 3.69,3.71,3.77,3.84,3.68,3.61,3.60,3.85,3.84,3.68, 3.80,3.86,3.78,3.78,3.82,3.85,3.96,3.81,3.97,3.84, 4.01,3.96,3.90,3.82,3.89,3.68,3.84,3.85,3.98,3.94, 4.02,3.93,3.94,3.98,3.95,4.10,3.93,4.09,3.94,3.99, 0.71,0.76,0.80,0.81,0.86,0.89,0.93,0.96,0.93,0.99, 0.99,1.09,1.05,1.02,1.07,1.12,1.14,1.18,1.21,1.23, 1.20,1.21,1.30,1.30,1.25,1.32,1.35,1.33,1.36,1.35, 1.41,1.39,1.42,1.42,1.47,1.49,1.54,1.51,1.49,1.56, 1.49,1.60,1.55,1.57,1.59,1.52,1.64,1.70,1.71,1.68, 1.74,1.71,1.68,1.68,1.77,1.74,1.72,1.81,1.83,1.86, 1.87,1.80,1.89,1.89,1.89,1.87,1.83,1.89,1.94,2.00, 2.00,1.92,1.94,2.07,2.08,1.98,2.01,2.03,2.00,2.08, 2.01,2.10,2.11,2.15,2.04,2.06,2.18,2.20,2.15,2.15, 2.19,2.21,2.24,2.23,2.17,2.19,2.28,2.25,2.19,2.31, 2.29,2.24,2.28,2.36,2.41,2.39,2.27,2.36,2.27,2.48, 2.51,2.42,2.41,2.34,2.47,2.44,2.39,2.36,2.49,2.44, 2.54,2.41,2.55,2.47,2.53,2.57,2.53,2.56,2.54,2.58, 2.58,2.52,2.64,2.66,2.65,2.66,2.57,2.64,2.62,2.66, 2.72,2.63,2.72,2.72,2.77,2.73,2.66,2.66,2.81,2.77, 2.62,2.72,2.82,2.71,2.82,2.75,2.80,2.77,2.88,2.92, 2.80,2.83,2.87,2.90,2.94,2.91,2.97,3.04,2.92,2.92, 2.81,2.91,2.94,3.00,2.95,2.94,2.98,3.01,3.00,2.91, 2.95,3.08,3.07,3.01,3.03,3.14,3.01,3.11,3.17,3.21, 3.15,3.07,3.04,3.35,3.07,3.10,3.09,3.18,3.15,3.01, 3.19,3.22,3.25,3.22,3.24,3.16,3.25,3.14,3.21,3.28, 3.23,3.27,3.33,3.21,3.33,3.22,3.31,3.22,3.26,3.20, 3.33,3.27,3.38,3.40,3.43,3.39,3.38,3.30,3.37,3.39, 3.31,3.23,3.51,3.39,3.35,3.43,3.49,3.45,3.42,3.41, 3.43,3.49,3.39,3.36,3.46,3.45,3.66,3.53,3.64,3.52, 3.54,3.50,3.56,3.64,3.44,3.68,3.48,3.57,3.55,3.73, 3.70,3.33,3.70,3.67,3.70,3.49,3.58,3.57,3.79,3.67, 3.53,3.82,3.47,3.77,3.65,3.71,3.57,3.79,3.66,3.64, 3.74,3.69,3.75,3.58,3.73,3.78,3.76,3.83,3.63,3.88, 0.68,0.76,0.73,0.76,0.76,0.81,0.85,0.86,0.90,0.93, 0.94,0.98,0.96,0.97,1.04,1.02,1.05,1.09,1.13,1.09, 1.11,1.13,1.16,1.22,1.18,1.20,1.25,1.26,1.26,1.29, 1.35,1.33,1.29,1.38,1.38,1.37,1.40,1.42,1.41,1.45, 1.51,1.45,1.52,1.55,1.51,1.50,1.63,1.58,1.54,1.54, 1.58,1.63,1.65,1.65,1.65,1.64,1.64,1.73,1.74,1.72, 1.74,1.74,1.76,1.75,1.81,1.76,1.84,1.81,1.85,1.84, 1.76,1.84,1.85,1.96,1.91,1.88,1.92,1.92,1.89,1.99, 1.93,2.01,1.95,1.95,2.05,1.98,2.00,2.03,2.00,2.02, 2.16,2.14,2.05,2.08,2.02,2.09,2.10,2.17,2.08,2.10, 2.21,2.14,2.27,2.23,2.27,2.25,2.10,2.22,2.19,2.22, 2.31,2.20,2.29,2.37,2.28,2.28,2.28,2.35,2.39,2.44, 2.37,2.31,2.33,2.47,2.37,2.33,2.51,2.51,2.46,2.39, 2.47,2.43,2.42,2.50,2.43,2.54,2.53,2.44,2.47,2.54, 2.60,2.59,2.55,2.49,2.54,2.47,2.66,2.57,2.60,2.62, 2.64,2.64,2.58,2.52,2.63,2.64,2.76,2.52,2.75,2.63, 2.68,2.64,2.76,2.88,2.55,2.69,2.77,2.70,2.79,2.78, 2.64,2.70,2.85,2.77,2.81,2.79,2.72,2.84,2.87,2.73, 2.84,2.99,2.81,2.79,2.75,3.02,2.93,2.89,2.93,2.91, 2.83,2.89,2.95,2.94,2.83,2.93,3.00,3.02,3.10,2.98, 3.01,3.03,3.15,2.98,3.05,2.95,2.97,2.86,3.03,3.02, 3.13,3.09,3.16,3.06,3.06,3.14,3.10,3.10,2.97,3.11, 3.18,3.05,3.26,3.37,3.19,3.02,3.07,3.27,3.12,3.17, 3.13,3.20,3.28,3.19,3.06,3.23,3.20,3.27,3.21,3.30, 3.28,3.27,3.20,3.40,3.18,3.34,3.34,3.17,3.32,3.31, 3.42,3.26,3.28,3.30,3.32,3.40,3.25,3.30,3.51,3.40, 3.29,3.42,3.50,3.41,3.47,3.40,3.40,3.46,3.46,3.39, 3.48,3.49,3.39,3.46,3.36,3.37,3.50,3.40,3.46,3.42, 3.48,3.37,3.53,3.58,3.49,3.55,3.47,3.54,3.58,3.38, 0.64,0.68,0.70,0.73,0.73,0.75,0.80,0.81,0.85,0.85, 0.90,0.93,0.91,0.94,0.95,0.94,1.02,1.05,1.00,1.06, 1.10,1.11,1.10,1.10,1.13,1.14,1.17,1.22,1.14,1.20, 1.17,1.30,1.30,1.29,1.30,1.30,1.31,1.36,1.33,1.36, 1.35,1.41,1.45,1.41,1.41,1.48,1.44,1.44,1.47,1.48, 1.46,1.51,1.56,1.60,1.55,1.58,1.61,1.61,1.64,1.62, 1.58,1.65,1.65,1.64,1.69,1.72,1.71,1.66,1.66,1.73, 1.68,1.79,1.79,1.78,1.85,1.79,1.81,1.80,1.83,1.83, 1.88,1.86,1.82,1.84,1.86,1.87,1.92,1.90,1.95,1.95, 1.88,1.94,1.98,1.95,2.06,2.04,1.91,2.09,2.06,2.02, 2.02,2.05,2.05,2.07,2.07,2.06,2.14,2.12,2.05,2.20, 2.14,2.04,2.12,2.21,2.06,2.21,2.11,2.17,2.21,2.21, 2.12,2.20,2.20,2.27,2.22,2.28,2.27,2.19,2.21,2.27, 2.30,2.20,2.33,2.35,2.34,2.37,2.28,2.35,2.35,2.36, 2.37,2.48,2.39,2.38,2.31,2.44,2.40,2.43,2.44,2.43, 2.41,2.34,2.45,2.47,2.43,2.49,2.47,2.37,2.41,2.49, 2.57,2.53,2.56,2.44,2.53,2.65,2.67,2.62,2.63,2.54, 2.57,2.67,2.70,2.59,2.62,2.66,2.65,2.66,2.70,2.60, 2.66,2.64,2.67,2.64,2.73,2.81,2.78,2.74,2.81,2.76, 2.73,2.85,2.71,2.78,2.71,2.80,2.69,2.73,2.89,2.64, 2.73,2.75,2.80,2.84,2.84,2.82,2.83,2.87,2.85,2.76, 2.88,2.77,2.95,2.83,2.97,2.89,2.92,2.97,2.90,3.01, 2.91,2.99,2.90,2.87,2.95,2.91,2.95,2.99,2.88,2.93, 3.02,3.05,3.05,2.94,3.07,3.05,3.12,3.09,3.04,3.05, 3.03,3.12,3.06,3.03,3.08,3.09,3.11,3.09,3.05,3.13, 3.09,3.22,3.17,3.13,3.09,3.21,3.23,3.19,3.19,3.10, 3.32,3.16,3.16,3.16,3.19,3.12,3.12,3.24,3.24,3.36, 3.06,3.41,3.25,3.25,3.39,3.25,3.13,3.42,3.24,3.36, 3.30,3.26,3.30,3.26,3.25,3.24,3.39,3.34,3.42,3.49, 0.58,0.62,0.65,0.70,0.70,0.75,0.72,0.74,0.79,0.84, 0.83,0.85,0.89,0.93,0.94,0.92,0.93,0.96,0.95,1.00, 1.01,1.06,1.06,1.07,1.02,1.06,1.14,1.12,1.15,1.14, 1.17,1.17,1.15,1.19,1.22,1.25,1.23,1.26,1.28,1.27, 1.30,1.29,1.34,1.34,1.35,1.39,1.38,1.40,1.38,1.42, 1.40,1.44,1.46,1.45,1.49,1.50,1.50,1.50,1.45,1.49, 1.55,1.57,1.56,1.53,1.59,1.52,1.61,1.64,1.62,1.62, 1.63,1.66,1.77,1.67,1.62,1.69,1.75,1.72,1.72,1.72, 1.72,1.74,1.73,1.77,1.74,1.83,1.82,1.85,1.81,1.79, 1.87,1.77,1.81,1.88,1.89,1.85,1.84,1.87,1.94,1.86, 1.95,1.87,1.97,2.01,1.94,1.89,1.97,1.93,1.98,1.97, 1.99,2.01,2.01,2.07,1.95,2.01,1.98,1.95,2.14,2.07, 2.04,2.10,2.17,2.13,2.14,2.05,2.10,2.10,2.15,2.12, 2.16,2.19,2.19,2.21,2.18,2.25,2.16,2.24,2.20,2.16, 2.22,2.23,2.30,2.26,2.30,2.33,2.22,2.34,2.30,2.27, 2.27,2.35,2.32,2.29,2.32,2.42,2.37,2.42,2.37,2.35, 2.42,2.45,2.40,2.38,2.52,2.38,2.39,2.38,2.47,2.43, 2.50,2.36,2.41,2.43,2.39,2.37,2.41,2.50,2.52,2.55, 2.46,2.51,2.58,2.58,2.54,2.63,2.52,2.51,2.56,2.60, 2.54,2.63,2.56,2.55,2.63,2.60,2.60,2.71,2.68,2.51, 2.55,2.64,2.69,2.63,2.66,2.57,2.72,2.70,2.74,2.75, 2.71,2.70,2.59,2.70,2.81,2.83,2.65,2.78,2.72,2.64, 2.79,2.72,2.76,2.76,2.72,2.72,2.72,2.77,2.84,2.84, 2.89,2.94,2.80,2.77,2.88,2.88,2.74,2.96,2.88,2.81, 2.97,2.78,2.89,3.02,2.94,2.94,2.96,2.93,2.94,2.95, 2.81,2.97,2.90,2.88,2.95,2.98,3.01,3.15,2.92,2.94, 2.94,2.99,3.05,3.12,3.04,3.04,3.03,2.95,2.93,3.08, 3.06,3.04,3.16,3.11,2.99,3.05,2.98,3.08,3.13,3.01, 3.03,3.11,3.03,3.02,3.17,3.02,3.19,3.12,3.20,3.13, 1.12,1.19,1.25,1.26,1.32,1.36,1.33,1.42,1.48,1.45, 1.47,1.58,1.59,1.60,1.62,1.76,1.71,1.76,1.80,1.80, 1.79,1.95,1.96,1.84,1.84,1.95,2.00,2.09,2.08,2.03, 2.11,2.10,2.12,2.17,2.19,2.26,2.29,2.25,2.27,2.34, 2.34,2.32,2.43,2.38,2.48,2.46,2.50,2.46,2.44,2.56, 2.68,2.66,2.66,2.62,2.75,2.57,2.77,2.80,2.74,2.71, 2.86,2.74,2.82,2.85,2.97,2.81,2.81,2.93,2.80,2.85, 2.89,2.93,2.96,2.99,3.05,2.89,3.08,3.17,3.10,3.13, 3.18,3.28,3.05,3.19,3.14,3.33,3.33,3.25,3.30,3.35, 3.31,3.38,3.34,3.31,3.40,3.30,3.62,3.49,3.47,3.50, 3.46,3.67,3.52,3.45,3.64,3.53,3.46,3.66,3.58,3.57, 3.54,3.64,3.70,3.67,3.69,3.70,3.76,3.79,3.79,4.06, 3.74,3.90,3.78,3.69,3.79,3.83,3.90,3.91,3.78,3.94, 3.82,4.05,3.84,3.98,3.99,3.93,3.91,4.02,4.12,3.92, 4.11,4.14,4.21,4.07,4.03,4.23,4.15,4.32,4.22,4.17, 4.28,4.19,4.16,4.17,4.25,4.39,4.18,4.17,4.13,4.35, 4.43,4.33,4.41,4.42,4.39,4.22,4.48,4.29,4.43,4.57, 4.33,4.32,4.43,4.54,4.67,4.41,4.51,4.44,4.42,4.59, 4.67,4.67,4.48,4.73,4.57,4.73,4.60,4.84,4.77,4.62, 4.66,4.61,4.74,4.87,4.88,4.67,4.92,4.75,4.60,4.91, 4.97,4.76,4.99,4.90,4.71,5.05,4.95,4.92,4.84,4.90, 4.70,4.87,4.81,4.90,4.97,4.96,4.99,5.01,4.96,5.03, 5.02,5.05,5.26,4.94,5.07,5.12,4.99,4.94,5.03,5.34, 5.03,5.10,5.20,5.31,4.98,5.22,5.31,5.25,5.21,5.11, 5.19,5.06,5.30,5.06,5.55,5.21,5.31,5.17,5.41,5.50, 5.47,5.36,5.38,5.54,5.36,5.40,5.40,5.45,5.37,5.42, 5.51,5.67,5.42,5.55,5.70,5.53,5.41,5.67,5.35,5.45, 5.41,5.59,5.46,5.52,5.49,5.71,5.69,5.38,5.60,5.60, 5.51,5.77,5.58,5.58,5.58,5.28,5.64,5.59,5.91,5.75, 1.06,1.10,1.16,1.20,1.24,1.28,1.30,1.31,1.42,1.46, 1.43,1.55,1.53,1.60,1.59,1.66,1.63,1.72,1.75,1.71, 1.85,1.81,1.78,1.94,1.89,1.91,1.94,1.97,1.97,2.00, 2.01,2.08,2.16,2.12,2.17,2.19,2.22,2.23,2.33,2.32, 2.29,2.37,2.31,2.34,2.43,2.41,2.46,2.43,2.55,2.49, 2.52,2.50,2.51,2.52,2.72,2.49,2.61,2.62,2.61,2.71, 2.73,2.62,2.75,2.72,2.76,2.91,2.83,2.86,2.88,2.79, 2.86,2.83,2.98,3.01,3.01,2.97,2.98,3.01,2.93,3.01, 3.10,3.08,3.24,3.19,3.08,3.25,3.17,3.25,3.24,3.15, 3.27,3.24,3.14,3.41,3.38,3.34,3.37,3.32,3.42,3.45, 3.45,3.38,3.38,3.43,3.48,3.39,3.57,3.54,3.43,3.46, 3.53,3.53,3.75,3.65,3.57,3.63,3.62,3.67,3.52,3.83, 3.77,3.66,3.78,3.77,3.74,3.72,3.80,3.71,3.76,3.78, 4.02,4.11,3.76,3.81,3.79,3.91,3.85,3.88,4.10,3.97, 3.83,3.88,3.76,4.06,3.98,4.00,4.10,4.04,3.97,3.99, 4.06,3.99,4.04,4.07,4.09,4.25,4.12,4.08,4.33,4.17, 4.20,4.21,4.24,4.11,4.06,4.22,4.37,4.41,4.28,4.37, 4.45,4.50,4.35,4.35,4.39,4.33,4.50,4.31,4.46,4.47, 4.50,4.49,4.51,4.36,4.50,4.40,4.57,4.56,4.49,4.69, 4.38,4.59,4.86,4.55,4.58,4.57,4.68,4.55,4.61,4.59, 4.75,4.65,4.66,4.71,4.59,4.53,4.62,4.72,4.65,4.61, 4.85,4.71,4.93,4.51,4.79,4.70,4.90,4.82,4.91,4.97, 4.76,4.82,4.88,4.93,5.12,5.05,4.96,5.09,4.90,4.95, 5.08,5.10,5.00,5.07,5.03,4.95,5.12,5.23,4.91,5.07, 5.09,4.88,5.24,5.11,5.02,5.21,5.04,5.11,5.17,5.03, 5.33,5.20,5.19,5.24,5.21,5.09,5.17,5.37,5.33,5.63, 5.25,5.19,5.43,5.37,5.31,5.46,5.39,5.33,5.46,5.34, 5.23,5.37,5.49,5.46,5.39,5.35,5.44,5.60,5.56,5.43, 5.37,5.48,5.53,5.44,5.44,5.60,5.49,5.59,5.47,5.40, 1.03,1.10,1.20,1.19,1.23,1.25,1.31,1.36,1.38,1.48, 1.45,1.49,1.56,1.49,1.53,1.62,1.68,1.66,1.71,1.70, 1.71,1.77,1.85,1.80,1.81,1.86,1.90,1.94,1.93,1.94, 2.03,1.99,2.02,2.10,2.08,2.15,2.14,2.16,2.23,2.29, 2.34,2.28,2.27,2.27,2.35,2.35,2.37,2.50,2.48,2.43, 2.34,2.44,2.48,2.53,2.47,2.51,2.68,2.57,2.63,2.62, 2.69,2.73,2.76,2.71,2.70,2.76,2.68,2.68,2.84,2.82, 2.79,2.86,2.88,2.89,2.83,2.89,2.97,2.92,2.98,2.90, 3.00,3.05,2.95,2.95,2.96,3.05,3.06,3.09,2.99,3.19, 3.24,3.09,3.26,3.30,3.15,3.19,3.23,3.20,3.29,3.43, 3.33,3.39,3.34,3.33,3.36,3.39,3.59,3.45,3.37,3.46, 3.37,3.48,3.58,3.54,3.53,3.50,3.55,3.60,3.62,3.52, 3.55,3.66,3.61,3.57,3.56,3.76,3.72,3.68,3.63,3.69, 3.73,3.77,3.65,3.82,3.71,3.82,3.80,3.75,3.88,3.88, 3.88,3.71,3.72,3.90,3.83,3.93,4.10,4.01,3.91,3.95, 4.08,4.10,4.10,3.91,4.04,4.00,4.23,3.96,3.97,4.06, 4.14,4.20,4.09,4.14,4.15,4.14,4.22,4.08,4.37,4.18, 4.31,4.35,4.35,4.11,4.38,4.23,4.21,4.27,4.30,4.41, 4.30,4.29,4.53,4.45,4.37,4.46,4.53,4.49,4.42,4.45, 4.47,4.47,4.40,4.51,4.34,4.62,4.58,4.48,4.52,4.51, 4.76,4.43,4.62,4.54,4.53,4.57,4.67,4.73,4.57,4.72, 4.68,4.71,4.63,4.71,4.58,4.80,4.67,4.72,4.74,4.76, 4.94,4.74,4.94,5.04,4.78,4.88,4.86,4.92,4.82,4.64, 4.93,4.76,4.89,5.02,4.94,4.84,5.06,4.87,4.74,4.99, 5.12,4.91,4.96,5.04,5.05,5.11,5.05,5.15,5.20,5.20, 4.99,5.12,5.07,5.21,5.16,5.21,5.46,5.32,5.09,5.05, 5.26,5.30,5.27,5.00,5.12,5.17,5.37,5.10,5.48,5.19, 4.95,5.53,5.27,5.43,5.40,5.45,5.17,5.46,5.37,5.36, 5.26,5.26,5.46,5.26,5.46,5.41,5.62,5.46,5.47,5.46, 1.05,1.06,1.10,1.16,1.19,1.28,1.31,1.30,1.38,1.30, 1.43,1.46,1.50,1.53,1.53,1.52,1.60,1.63,1.63,1.67, 1.69,1.72,1.74,1.79,1.83,1.83,1.90,1.91,1.98,1.92, 1.89,1.96,2.01,2.04,2.11,2.09,2.07,2.24,2.10,2.10, 2.28,2.20,2.21,2.26,2.32,2.35,2.29,2.45,2.30,2.44, 2.41,2.38,2.44,2.46,2.42,2.59,2.58,2.43,2.55,2.65, 2.55,2.70,2.57,2.59,2.65,2.60,2.58,2.73,2.71,2.74, 2.73,2.70,2.85,2.92,2.78,2.85,2.77,2.85,2.92,2.85, 3.02,2.94,2.94,3.09,3.07,2.98,2.99,3.13,3.09,3.11, 3.07,3.10,3.25,3.16,3.13,3.18,3.33,3.11,3.16,3.22, 3.33,3.27,3.43,3.27,3.35,3.31,3.26,3.31,3.36,3.29, 3.47,3.32,3.29,3.43,3.37,3.56,3.56,3.40,3.46,3.50, 3.55,3.47,3.46,3.49,3.69,3.64,3.60,3.63,3.60,3.73, 3.71,3.69,3.52,3.51,3.65,3.60,3.52,3.57,3.73,3.63, 3.67,3.82,3.71,3.78,4.00,3.79,3.81,3.98,3.77,3.83, 3.81,3.87,3.96,3.95,4.10,4.01,3.88,4.09,3.95,4.08, 3.96,3.92,4.05,4.14,4.09,4.14,4.28,4.28,4.15,4.07, 4.08,4.12,4.13,4.14,4.25,4.22,4.28,4.19,4.19,4.25, 4.40,4.27,4.55,4.22,4.07,4.28,4.30,4.26,4.25,4.40, 4.28,4.33,4.40,4.42,4.50,4.22,4.30,4.66,4.49,4.41, 4.27,4.38,4.61,4.62,4.54,4.29,4.51,4.65,4.75,4.57, 4.45,4.61,4.64,4.66,4.70,4.66,4.55,4.64,4.73,4.69, 4.66,4.73,4.71,4.77,4.83,4.72,4.71,4.67,4.82,4.54, 4.90,4.65,4.73,4.63,4.88,4.73,4.73,4.98,4.84,4.82, 4.95,4.64,4.81,4.95,4.81,4.85,5.07,4.82,4.96,5.03, 4.89,4.98,5.06,5.04,4.98,4.93,5.10,4.89,5.04,4.93, 4.80,5.23,5.04,5.17,5.18,5.15,5.25,5.11,5.04,4.97, 5.21,4.92,5.16,5.02,5.26,5.26,5.26,5.43,5.30,5.32, 5.25,5.36,5.15,5.31,5.35,5.17,5.36,5.36,5.30,5.35, 1.02,1.05,1.08,1.13,1.20,1.17,1.23,1.28,1.30,1.33, 1.36,1.41,1.46,1.51,1.52,1.53,1.60,1.59,1.64,1.67, 1.70,1.69,1.74,1.73,1.84,1.80,1.82,1.89,1.86,1.87, 1.89,1.98,1.94,1.98,2.02,2.09,2.06,2.04,2.06,2.17, 2.18,2.09,2.19,2.18,2.31,2.14,2.37,2.32,2.33,2.42, 2.36,2.41,2.44,2.45,2.54,2.32,2.44,2.50,2.59,2.49, 2.49,2.62,2.62,2.52,2.63,2.57,2.63,2.63,2.68,2.72, 2.80,2.70,2.87,2.64,2.78,2.78,2.87,2.81,2.88,2.96, 2.81,2.92,2.87,2.85,2.90,2.98,2.97,2.89,3.00,2.90, 2.98,3.08,2.94,3.06,3.12,3.11,3.06,3.09,3.07,3.13, 3.11,3.17,3.21,3.31,3.29,3.19,3.27,3.26,3.33,3.26, 3.37,3.30,3.39,3.29,3.19,3.39,3.44,3.38,3.45,3.45, 3.56,3.44,3.33,3.46,3.61,3.47,3.58,3.61,3.58,3.55, 3.39,3.51,3.59,3.51,3.72,3.63,3.61,3.59,3.74,3.63, 3.64,3.65,3.97,3.66,3.72,3.74,3.72,3.77,3.84,3.83, 3.67,3.88,3.83,3.88,3.81,3.86,3.84,3.87,4.01,3.78, 3.96,3.75,3.98,4.12,4.01,3.98,3.94,4.02,3.96,4.15, 3.92,4.02,4.09,4.21,4.04,4.12,3.99,4.08,3.99,4.28, 4.30,4.19,4.14,4.22,4.17,4.31,4.23,4.35,4.24,4.10, 4.29,4.16,4.14,4.20,4.16,4.45,4.39,4.26,4.20,4.53, 4.40,4.34,4.34,4.50,4.58,4.35,4.25,4.36,4.40,4.36, 4.48,4.35,4.41,4.41,4.42,4.57,4.57,4.42,4.39,4.57, 4.40,4.56,4.65,4.70,4.63,4.56,4.46,4.95,4.77,4.58, 4.64,4.43,4.73,4.55,4.91,4.68,4.61,4.86,4.73,4.96, 4.83,4.68,4.63,4.68,4.85,4.82,4.93,4.81,4.90,4.79, 4.80,4.73,4.88,4.99,4.77,5.08,4.87,5.15,4.89,4.89, 4.98,4.87,5.03,4.89,5.07,4.90,4.83,4.89,4.79,5.03, 5.12,4.95,5.19,4.98,4.78,5.27,5.16,5.14,5.13,5.24, 4.98,5.22,4.90,5.32,5.03,5.14,5.21,5.01,5.26,5.12, 0.96,1.03,1.06,1.10,1.12,1.16,1.21,1.20,1.27,1.31, 1.36,1.36,1.39,1.41,1.49,1.49,1.54,1.51,1.52,1.59, 1.63,1.67,1.67,1.70,1.74,1.75,1.78,1.75,1.82,1.77, 1.86,1.94,1.90,1.93,1.91,1.97,2.06,1.96,2.09,2.05, 2.02,2.13,2.15,2.12,2.09,2.22,2.21,2.30,2.25,2.30, 2.32,2.30,2.33,2.30,2.36,2.35,2.45,2.37,2.41,2.42, 2.44,2.36,2.61,2.43,2.52,2.61,2.49,2.54,2.66,2.64, 2.67,2.71,2.70,2.59,2.69,2.74,2.72,2.83,2.80,2.75, 2.91,2.81,2.83,2.83,2.83,2.90,2.98,3.01,2.74,3.04, 2.80,2.82,2.97,2.97,2.97,3.01,3.04,3.16,3.02,2.95, 3.06,3.08,3.12,3.01,3.05,3.14,3.16,3.18,3.06,3.30, 3.15,3.18,3.24,3.15,3.23,3.16,3.34,3.28,3.38,3.23, 3.49,3.35,3.35,3.36,3.42,3.39,3.41,3.42,3.47,3.45, 3.52,3.42,3.56,3.54,3.55,3.66,3.41,3.53,3.53,3.61, 3.67,3.55,3.61,3.66,3.50,3.59,3.76,3.59,3.77,3.67, 3.78,3.64,3.69,3.74,3.75,3.70,3.86,3.69,3.94,3.95, 3.87,3.88,3.76,3.89,3.94,3.83,3.90,3.94,3.88,3.89, 4.06,3.90,4.01,4.02,3.87,4.04,3.98,3.92,4.14,4.14, 4.12,4.07,3.95,3.87,4.05,3.91,4.06,4.00,4.21,4.11, 4.02,4.20,4.07,4.02,4.28,4.20,4.19,4.14,4.28,4.20, 4.09,4.35,4.15,4.24,4.17,4.29,4.25,4.27,4.37,4.18, 4.39,4.53,4.36,4.37,4.34,4.41,4.38,4.51,4.41,4.45, 4.51,4.40,4.47,4.46,4.36,4.48,4.52,4.42,4.51,4.40, 4.33,4.79,4.44,4.53,4.61,4.80,4.52,4.65,4.61,4.66, 4.46,4.79,4.75,4.73,4.69,4.80,4.50,4.86,4.78,4.52, 4.82,4.58,4.82,4.80,4.71,4.61,4.38,4.70,4.81,4.70, 4.85,4.69,4.95,4.73,4.74,4.60,4.76,4.96,4.77,4.78, 4.95,4.96,4.88,4.81,4.79,4.73,4.84,4.93,4.86,4.97, 4.84,4.92,4.77,5.11,4.96,4.95,5.13,5.11,5.25,4.94, 0.97,0.99,1.00,1.06,1.08,1.12,1.12,1.22,1.22,1.27, 1.34,1.32,1.38,1.45,1.44,1.46,1.43,1.57,1.63,1.55, 1.51,1.53,1.61,1.63,1.62,1.68,1.75,1.77,1.72,1.81, 1.81,1.83,1.84,1.88,1.86,1.90,2.00,1.90,1.95,2.04, 1.99,1.99,2.05,2.03,2.08,2.14,2.15,2.13,2.17,2.19, 2.23,2.23,2.17,2.27,2.29,2.27,2.37,2.37,2.33,2.45, 2.36,2.36,2.42,2.45,2.37,2.45,2.47,2.48,2.59,2.51, 2.54,2.47,2.58,2.61,2.64,2.58,2.62,2.61,2.55,2.63, 2.74,2.62,2.69,2.78,2.72,2.81,2.78,2.81,2.85,2.83, 2.78,2.88,2.90,2.88,2.80,2.96,2.97,2.92,2.95,2.96, 2.90,3.02,3.09,2.89,3.04,2.89,3.06,3.16,3.02,2.99, 3.07,3.17,2.93,3.11,3.21,3.17,3.23,3.18,3.13,3.15, 3.22,3.20,3.24,3.23,3.14,3.16,3.28,3.39,3.36,3.28, 3.19,3.40,3.38,3.46,3.42,3.45,3.44,3.33,3.50,3.42, 3.42,3.47,3.62,3.41,3.58,3.57,3.58,3.55,3.57,3.52, 3.55,3.61,3.57,3.61,3.63,3.74,3.77,3.62,3.72,3.71, 3.63,3.61,3.56,3.81,3.70,3.70,3.64,3.70,3.82,3.80, 3.71,3.70,3.96,3.77,3.68,3.86,3.85,3.75,3.86,3.89, 3.98,3.95,3.95,3.93,3.94,3.99,4.00,3.83,4.02,3.97, 4.02,4.10,4.08,4.08,4.09,3.98,3.97,4.10,3.90,4.15, 4.06,4.14,4.30,4.05,4.04,4.25,4.18,4.05,4.14,4.26, 4.12,4.18,4.10,4.17,4.15,4.13,4.20,4.42,4.17,4.26, 4.13,4.36,4.10,4.44,4.39,4.28,4.21,4.29,4.46,4.40, 4.35,4.39,4.31,4.27,4.43,4.40,4.45,4.49,4.62,4.30, 4.39,4.51,4.63,4.57,4.35,4.29,4.37,4.59,4.39,4.57, 4.62,4.63,4.52,4.65,4.55,4.52,4.52,4.47,4.68,4.58, 4.58,4.65,4.77,4.76,4.60,4.69,4.63,4.68,4.81,4.63, 4.83,4.91,4.79,4.72,4.71,4.78,4.67,4.53,4.71,4.77, 4.63,4.87,5.14,4.76,4.81,4.87,4.75,4.94,4.92,4.77, 0.91,0.91,0.99,1.04,1.04,1.10,1.14,1.16,1.21,1.23, 1.25,1.30,1.34,1.32,1.36,1.41,1.46,1.42,1.47,1.48, 1.50,1.55,1.59,1.58,1.55,1.67,1.69,1.65,1.75,1.77, 1.73,1.75,1.74,1.83,1.76,1.78,1.90,1.95,1.90,1.96, 2.01,1.96,2.04,1.97,1.99,2.07,2.13,2.01,2.00,2.11, 2.15,2.19,2.18,2.19,2.08,2.16,2.32,2.18,2.21,2.36, 2.25,2.27,2.35,2.32,2.28,2.45,2.46,2.45,2.37,2.43, 2.48,2.51,2.58,2.49,2.55,2.54,2.50,2.56,2.44,2.58, 2.60,2.64,2.63,2.63,2.63,2.62,2.66,2.74,2.75,2.66, 2.81,2.75,2.80,2.72,2.71,2.81,2.85,2.83,2.72,2.78, 2.92,2.93,2.78,2.92,2.94,3.00,2.85,2.90,2.90,3.03, 2.98,2.98,3.00,3.14,3.02,3.13,3.04,2.97,2.97,3.11, 2.99,3.17,3.10,3.02,3.28,3.19,3.10,3.23,3.16,3.09, 3.17,3.34,3.16,3.25,3.33,3.44,3.33,3.38,3.23,3.24, 3.28,3.53,3.36,3.27,3.40,3.25,3.48,3.26,3.47,3.46, 3.49,3.60,3.41,3.45,3.49,3.35,3.63,3.51,3.47,3.58, 3.56,3.57,3.66,3.64,3.45,3.63,3.59,3.53,3.58,3.76, 3.58,3.66,3.80,3.72,3.59,3.74,3.75,3.58,3.61,3.86, 3.74,3.67,3.84,3.83,3.75,3.83,3.83,3.85,3.98,3.78, 3.74,3.79,3.90,3.89,3.76,3.85,3.92,3.98,4.05,3.86, 4.02,3.94,3.86,4.05,3.91,3.90,3.95,4.19,4.08,3.91, 4.12,4.07,4.08,4.19,4.03,4.10,4.18,4.15,4.02,4.10, 4.01,4.08,4.10,4.13,4.13,4.03,4.19,4.07,4.16,4.27, 4.20,4.42,4.16,4.20,4.21,4.43,4.28,4.33,4.24,4.23, 4.25,4.18,4.21,4.28,4.28,4.47,4.47,4.38,4.40,4.43, 4.45,4.51,4.39,4.41,4.54,4.52,4.50,4.29,4.38,4.45, 4.56,4.57,4.51,4.54,4.37,4.39,4.58,4.56,4.67,4.65, 4.58,4.55,4.54,4.61,4.48,4.54,4.50,4.60,4.54,4.74, 4.71,4.82,4.49,4.49,4.47,4.84,4.67,4.59,4.79,4.98, 0.89,0.90,0.96,1.01,0.99,1.04,1.07,1.09,1.17,1.19, 1.21,1.22,1.28,1.25,1.28,1.31,1.35,1.32,1.38,1.44, 1.51,1.43,1.53,1.54,1.60,1.52,1.67,1.62,1.68,1.65, 1.67,1.70,1.73,1.69,1.69,1.76,1.79,1.74,1.87,1.76, 1.85,1.87,1.82,1.92,1.92,1.97,1.96,2.03,2.02,2.01, 2.05,2.09,2.03,2.09,2.09,2.15,2.07,2.24,2.13,2.23, 2.29,2.26,2.20,2.23,2.28,2.32,2.34,2.27,2.36,2.40, 2.40,2.33,2.39,2.50,2.44,2.41,2.39,2.32,2.40,2.52, 2.50,2.45,2.49,2.45,2.53,2.60,2.52,2.62,2.53,2.63, 2.63,2.66,2.78,2.76,2.67,2.80,2.69,2.67,2.80,2.67, 2.70,2.82,2.80,2.89,2.79,2.80,2.81,2.89,2.89,2.89, 2.86,2.92,2.92,2.87,2.99,2.88,2.80,3.02,3.03,3.01, 3.08,3.02,3.06,2.96,3.13,2.97,3.20,3.07,3.06,3.06, 3.22,3.22,3.04,3.16,3.15,3.15,3.13,3.27,3.14,3.41, 3.27,3.25,3.30,3.23,3.38,3.26,3.16,3.41,3.27,3.17, 3.39,3.49,3.36,3.23,3.30,3.34,3.42,3.25,3.41,3.41, 3.35,3.36,3.50,3.45,3.45,3.55,3.44,3.51,3.57,3.34, 3.45,3.56,3.47,3.54,3.53,3.51,3.58,3.66,3.58,3.43, 3.64,3.62,3.57,3.77,3.66,3.55,3.67,3.78,3.72,3.76, 3.64,3.76,3.72,3.63,3.79,3.65,3.77,3.76,3.68,3.72, 3.71,3.77,3.81,3.81,3.70,3.89,3.85,3.81,3.68,3.86, 3.73,3.78,3.89,4.09,3.89,3.85,4.03,3.96,3.99,3.95, 3.83,3.93,4.11,3.94,4.04,4.09,4.07,3.98,4.18,4.07, 4.14,3.98,4.20,4.05,4.22,3.99,4.14,4.09,4.17,4.13, 4.29,4.25,4.34,4.25,4.17,4.13,4.22,4.19,4.40,4.25, 4.18,4.39,4.20,4.17,4.22,4.35,4.16,4.34,4.31,4.21, 4.28,4.46,4.30,4.30,4.24,4.33,4.31,4.44,4.39,4.27, 4.49,4.32,4.40,4.35,4.47,4.48,4.46,4.53,4.30,4.54, 4.43,4.44,4.47,4.44,4.36,4.48,4.33,4.64,4.47,4.55, 0.83,0.86,0.93,0.94,0.95,0.98,1.06,1.05,1.14,1.16, 1.15,1.21,1.17,1.28,1.27,1.26,1.26,1.33,1.36,1.37, 1.38,1.43,1.39,1.51,1.48,1.49,1.49,1.49,1.58,1.61, 1.63,1.58,1.69,1.68,1.59,1.71,1.70,1.78,1.74,1.78, 1.80,1.78,1.83,1.79,1.87,1.83,1.82,1.91,1.94,1.94, 2.02,1.96,1.96,1.99,2.01,1.98,2.07,2.08,2.13,2.10, 2.15,2.12,2.17,2.10,2.12,2.14,2.22,2.27,2.24,2.29, 2.21,2.28,2.29,2.34,2.29,2.34,2.37,2.28,2.37,2.41, 2.45,2.37,2.44,2.42,2.43,2.41,2.43,2.48,2.48,2.43, 2.48,2.44,2.49,2.51,2.58,2.56,2.58,2.63,2.58,2.67, 2.55,2.66,2.69,2.67,2.75,2.75,2.70,2.73,2.80,2.64, 2.77,2.88,2.75,2.75,2.74,2.80,2.85,2.94,2.99,2.83, 2.94,2.82,2.92,2.74,2.88,3.01,2.82,3.02,3.02,2.94, 3.00,3.02,3.00,3.02,3.00,3.01,3.05,3.07,3.14,3.12, 3.13,3.11,3.04,3.12,3.12,3.09,3.05,3.20,3.12,3.22, 3.30,3.24,3.24,3.30,3.12,3.30,3.18,3.34,3.22,3.28, 3.29,3.33,3.29,3.51,3.30,3.29,3.29,3.23,3.40,3.23, 3.49,3.37,3.33,3.50,3.37,3.44,3.35,3.32,3.37,3.42, 3.44,3.55,3.44,3.38,3.51,3.47,3.42,3.58,3.58,3.64, 3.45,3.49,3.50,3.64,3.57,3.60,3.63,3.56,3.59,3.57, 3.70,3.66,3.56,3.63,3.52,3.81,3.84,3.70,3.72,3.68, 3.87,3.72,3.73,3.72,3.81,3.90,3.86,3.82,3.86,3.80, 3.77,3.86,3.74,3.84,3.81,3.85,3.85,4.09,3.95,3.92, 3.96,4.01,4.01,3.90,4.02,3.86,3.96,3.94,3.99,4.01, 4.04,3.80,3.99,4.25,3.92,4.20,4.27,4.02,4.06,4.07, 4.11,4.11,4.17,4.16,4.01,4.12,4.07,4.22,4.01,4.25, 4.00,4.23,4.34,4.14,4.14,4.22,4.08,4.08,4.12,4.22, 4.26,4.17,4.22,4.33,4.27,4.38,4.16,4.12,4.16,4.34, 4.24,4.29,4.37,4.29,4.37,4.18,4.26,4.39,4.22,4.38, 0.80,0.84,0.89,0.89,0.91,0.98,0.98,1.06,1.03,1.09, 1.10,1.15,1.12,1.16,1.17,1.26,1.20,1.29,1.30,1.29, 1.29,1.31,1.38,1.40,1.44,1.43,1.42,1.42,1.47,1.49, 1.51,1.50,1.60,1.60,1.54,1.60,1.69,1.63,1.65,1.63, 1.70,1.75,1.76,1.79,1.79,1.86,1.86,1.89,1.84,1.93, 1.85,1.81,1.88,1.86,1.86,1.96,2.00,1.96,2.03,2.00, 2.05,2.06,2.00,2.02,2.08,2.16,1.96,2.14,2.07,2.17, 2.20,2.12,2.20,2.15,2.23,2.19,2.26,2.27,2.22,2.29, 2.23,2.29,2.35,2.32,2.37,2.35,2.31,2.43,2.40,2.44, 2.44,2.36,2.46,2.37,2.51,2.49,2.48,2.50,2.56,2.54, 2.62,2.52,2.55,2.64,2.54,2.48,2.49,2.62,2.67,2.58, 2.66,2.71,2.62,2.71,2.60,2.67,2.70,2.75,2.70,2.75, 2.72,2.64,2.79,2.83,2.79,2.87,2.76,2.85,2.68,2.86, 2.81,2.80,2.87,2.79,2.85,2.88,2.90,2.96,3.06,2.88, 2.98,3.04,2.97,3.02,3.03,2.97,3.08,3.09,3.07,3.05, 3.08,3.04,2.96,3.07,3.20,3.11,3.03,3.12,3.14,3.06, 2.97,3.06,3.19,3.21,3.20,3.26,3.10,3.27,3.22,3.20, 3.25,3.20,3.38,3.24,3.26,3.26,3.40,3.41,3.30,3.28, 3.33,3.39,3.18,3.40,3.35,3.37,3.49,3.42,3.40,3.35, 3.43,3.46,3.40,3.42,3.41,3.49,3.54,3.49,3.38,3.44, 3.49,3.48,3.46,3.67,3.56,3.52,3.44,3.46,3.36,3.44, 3.56,3.39,3.72,3.53,3.59,3.66,3.69,3.61,3.66,3.55, 3.53,3.64,3.53,3.57,3.66,3.66,3.75,3.66,3.71,3.69, 3.72,3.73,3.64,3.67,3.71,3.84,3.74,3.68,3.72,3.72, 3.99,3.81,3.77,3.77,3.87,3.84,3.79,3.81,3.77,3.82, 3.97,3.85,3.89,3.95,3.97,3.87,3.91,4.05,3.95,3.88, 3.84,4.06,3.99,4.00,4.06,3.95,3.97,3.99,3.94,4.18, 4.04,4.09,3.89,4.06,4.05,4.17,4.14,4.10,4.15,3.98, 4.22,4.06,4.09,3.99,4.28,4.05,4.07,4.07,4.25,4.29, 0.77,0.80,0.81,0.87,0.87,0.94,0.96,0.97,1.00,1.04, 1.05,1.05,1.09,1.13,1.13,1.18,1.20,1.17,1.27,1.22, 1.28,1.30,1.25,1.35,1.28,1.36,1.40,1.47,1.40,1.41, 1.46,1.49,1.53,1.51,1.51,1.57,1.57,1.62,1.62,1.62, 1.63,1.65,1.61,1.74,1.67,1.73,1.75,1.67,1.74,1.84, 1.75,1.83,1.89,1.79,1.87,1.92,1.86,1.95,1.87,1.91, 1.97,1.91,1.94,2.00,2.05,2.03,1.97,2.00,2.02,2.00, 2.08,2.06,2.03,2.06,2.14,2.01,2.11,2.14,2.11,2.16, 2.13,2.17,2.27,2.29,2.22,2.26,2.18,2.24,2.35,2.21, 2.27,2.34,2.35,2.38,2.33,2.41,2.43,2.39,2.45,2.39, 2.37,2.35,2.37,2.46,2.40,2.45,2.44,2.45,2.48,2.51, 2.50,2.54,2.53,2.49,2.59,2.54,2.62,2.54,2.55,2.54, 2.61,2.62,2.54,2.68,2.62,2.64,2.71,2.74,2.70,2.67, 2.68,2.69,2.84,2.80,2.70,2.71,2.66,2.77,2.70,2.74, 2.75,2.83,2.84,2.85,2.85,2.95,2.81,2.94,2.90,2.99, 2.84,2.87,2.93,3.03,2.83,2.99,2.95,2.89,2.92,2.95, 3.04,2.93,2.94,2.86,3.02,3.20,3.01,3.06,3.07,2.97, 3.05,3.17,3.10,3.12,3.14,3.09,3.07,3.13,3.18,3.12, 3.13,3.22,3.17,3.11,3.13,3.26,3.20,3.25,3.26,3.32, 3.24,3.21,3.33,3.22,3.29,3.29,3.22,3.32,3.16,3.34, 3.30,3.30,3.22,3.39,3.34,3.31,3.41,3.28,3.34,3.33, 3.49,3.41,3.30,3.36,3.45,3.49,3.33,3.34,3.43,3.34, 3.53,3.42,3.36,3.53,3.36,3.55,3.52,3.54,3.34,3.62, 3.56,3.42,3.48,3.49,3.60,3.55,3.85,3.63,3.51,3.59, 3.58,3.61,3.61,3.62,3.62,3.54,3.60,3.59,3.75,3.77, 3.66,3.69,3.87,3.58,3.58,3.69,3.71,3.89,3.72,3.73, 3.67,3.74,3.81,3.83,3.72,3.64,3.86,3.72,3.61,3.84, 3.77,3.90,3.77,3.82,3.95,3.90,3.88,4.01,3.88,4.03, 4.00,3.93,4.03,3.88,3.75,3.88,4.16,4.00,3.94,3.93, 0.72,0.75,0.80,0.84,0.80,0.90,0.89,0.89,0.95,1.00, 0.99,1.04,1.05,1.03,1.08,1.13,1.11,1.15,1.16,1.21, 1.22,1.19,1.26,1.24,1.32,1.29,1.31,1.32,1.40,1.38, 1.39,1.42,1.42,1.44,1.43,1.52,1.51,1.49,1.53,1.49, 1.55,1.62,1.57,1.60,1.58,1.60,1.55,1.71,1.69,1.72, 1.74,1.74,1.68,1.73,1.81,1.79,1.79,1.83,1.79,1.75, 1.83,1.88,1.87,1.79,1.88,1.84,1.85,1.97,2.00,1.98, 1.93,2.12,1.97,1.97,2.03,1.98,2.03,2.08,2.01,2.10, 2.08,2.08,2.10,2.07,2.10,2.13,2.17,2.12,2.10,2.21, 2.17,2.16,2.28,2.24,2.26,2.28,2.15,2.26,2.28,2.25, 2.29,2.29,2.30,2.37,2.30,2.28,2.43,2.35,2.40,2.37, 2.36,2.42,2.44,2.44,2.42,2.37,2.40,2.48,2.55,2.40, 2.45,2.50,2.55,2.56,2.47,2.61,2.52,2.57,2.48,2.57, 2.67,2.51,2.61,2.54,2.62,2.51,2.62,2.62,2.58,2.55, 2.68,2.69,2.73,2.62,2.78,2.76,2.68,2.68,2.73,2.77, 2.74,2.84,2.74,2.75,2.83,2.85,2.83,2.76,2.85,2.77, 2.92,2.70,2.85,2.96,2.89,2.95,2.87,2.98,2.87,3.05, 2.92,3.01,2.96,2.91,2.88,3.07,3.05,2.90,2.94,3.15, 3.01,2.98,2.93,3.09,3.11,3.02,3.04,3.12,3.11,3.04, 2.93,3.07,3.19,3.07,3.05,3.08,3.07,3.06,3.09,3.04, 3.02,3.09,3.20,3.04,3.16,3.18,3.18,3.22,3.06,3.11, 3.18,3.34,3.29,3.05,3.23,3.26,3.29,3.25,3.35,3.35, 3.36,3.30,3.42,3.32,3.32,3.40,3.36,3.52,3.38,3.42, 3.41,3.34,3.36,3.39,3.43,3.42,3.36,3.35,3.26,3.55, 3.37,3.31,3.45,3.34,3.56,3.41,3.47,3.51,3.57,3.53, 3.65,3.51,3.45,3.55,3.46,3.50,3.58,3.54,3.63,3.65, 3.60,3.53,3.61,3.59,3.48,3.66,3.55,3.52,3.55,3.69, 3.71,3.62,3.71,3.63,3.53,3.75,3.65,3.74,3.74,3.64, 3.70,3.82,3.75,3.65,3.77,3.57,3.70,3.76,3.78,3.75, 0.70,0.70,0.73,0.78,0.80,0.83,0.80,0.89,0.89,0.93, 0.92,0.95,0.97,1.02,1.08,1.04,1.05,1.06,1.12,1.15, 1.12,1.19,1.16,1.22,1.25,1.24,1.26,1.27,1.31,1.31, 1.34,1.33,1.38,1.37,1.41,1.45,1.43,1.44,1.42,1.46, 1.52,1.53,1.50,1.44,1.52,1.48,1.54,1.55,1.54,1.68, 1.63,1.59,1.60,1.67,1.65,1.69,1.66,1.81,1.77,1.72, 1.67,1.75,1.74,1.73,1.73,1.82,1.84,1.85,1.86,1.84, 1.90,1.97,1.84,1.86,1.93,1.90,1.93,1.94,1.99,1.96, 1.95,1.97,1.95,1.94,1.99,2.00,2.05,2.05,2.01,2.04, 2.12,2.08,2.15,2.10,2.24,2.15,2.12,2.09,2.12,2.16, 2.15,2.20,2.15,2.23,2.28,2.27,2.22,2.28,2.21,2.19, 2.24,2.30,2.20,2.25,2.28,2.31,2.36,2.33,2.37,2.36, 2.31,2.22,2.32,2.41,2.48,2.46,2.42,2.49,2.53,2.54, 2.36,2.46,2.55,2.43,2.43,2.49,2.48,2.55,2.55,2.61, 2.60,2.62,2.56,2.68,2.54,2.50,2.57,2.64,2.56,2.65, 2.56,2.56,2.58,2.63,2.56,2.77,2.73,2.62,2.69,2.64, 2.63,2.83,2.76,2.82,2.79,2.77,2.83,2.83,2.79,2.78, 2.76,2.86,2.77,2.84,2.84,2.79,2.84,2.82,2.80,2.86, 2.80,2.93,2.80,2.89,2.90,2.99,2.93,2.91,2.92,2.91, 3.01,2.96,3.02,2.90,2.82,2.92,2.99,2.96,2.92,3.10, 3.03,2.98,3.11,2.92,3.06,3.07,2.96,3.07,3.03,3.05, 3.06,3.06,3.12,3.12,3.13,3.17,3.00,3.02,3.09,3.04, 3.14,3.19,3.22,3.14,3.19,3.26,3.25,3.24,3.18,3.08, 3.23,3.39,3.17,3.30,3.30,3.15,3.25,3.33,3.28,3.32, 3.23,3.28,3.33,3.32,3.31,3.21,3.37,3.31,3.38,3.35, 3.29,3.34,3.34,3.33,3.45,3.32,3.20,3.35,3.40,3.41, 3.48,3.33,3.49,3.38,3.39,3.51,3.32,3.36,3.40,3.36, 3.34,3.49,3.49,3.40,3.54,3.72,3.45,3.52,3.48,3.45, 3.56,3.48,3.50,3.69,3.61,3.59,3.50,3.57,3.65,3.57, 0.62,0.65,0.72,0.74,0.76,0.77,0.77,0.82,0.88,0.87, 0.88,0.92,0.93,0.95,1.00,1.05,1.01,1.05,1.11,1.05, 1.06,1.13,1.15,1.18,1.16,1.14,1.18,1.19,1.23,1.21, 1.22,1.31,1.29,1.31,1.29,1.32,1.35,1.41,1.34,1.32, 1.43,1.44,1.42,1.43,1.43,1.51,1.46,1.54,1.54,1.52, 1.52,1.52,1.51,1.60,1.51,1.60,1.59,1.60,1.63,1.60, 1.71,1.69,1.67,1.64,1.69,1.72,1.81,1.68,1.72,1.74, 1.75,1.78,1.81,1.81,1.87,1.77,1.75,1.81,1.76,1.77, 1.87,1.86,1.82,1.93,1.89,1.91,1.92,1.94,1.93,1.98, 1.93,1.93,1.97,1.95,2.02,2.02,1.99,2.00,2.04,2.03, 2.02,2.10,2.13,2.19,2.02,1.96,2.06,2.13,2.12,2.20, 2.18,2.10,2.26,2.23,2.24,2.14,2.18,2.23,2.26,2.25, 2.26,2.30,2.33,2.22,2.25,2.23,2.30,2.37,2.35,2.30, 2.26,2.34,2.29,2.31,2.41,2.36,2.34,2.31,2.38,2.43, 2.35,2.41,2.44,2.39,2.44,2.53,2.39,2.44,2.51,2.41, 2.49,2.46,2.50,2.50,2.51,2.53,2.46,2.54,2.52,2.48, 2.68,2.56,2.59,2.61,2.48,2.56,2.61,2.57,2.74,2.62, 2.61,2.59,2.64,2.58,2.68,2.65,2.71,2.79,2.73,2.66, 2.73,2.75,2.70,2.66,2.71,2.77,2.73,2.83,2.86,2.74, 2.82,2.72,2.84,2.82,2.79,2.92,2.83,2.81,2.78,2.85, 2.81,2.82,2.80,2.87,2.80,2.86,2.82,2.88,2.85,2.91, 2.90,2.99,3.02,2.90,2.87,2.91,2.92,3.04,2.91,3.05, 2.92,3.02,3.17,3.04,3.02,2.91,3.07,2.99,2.94,3.05, 2.92,3.06,3.06,2.90,3.07,3.04,3.22,3.11,3.06,3.13, 3.11,3.09,3.13,2.99,3.15,2.98,3.19,3.20,3.15,3.14, 3.27,3.07,3.21,3.21,3.29,3.20,3.27,3.17,3.17,3.23, 3.21,3.31,3.22,3.26,3.20,3.16,3.23,3.35,3.31,3.32, 3.31,3.33,3.28,3.25,3.23,3.31,3.25,3.39,3.28,3.35, 3.26,3.27,3.41,3.36,3.42,3.39,3.38,3.30,3.59,3.33, 1.06,1.12,1.18,1.26,1.25,1.33,1.33,1.38,1.37,1.49, 1.49,1.51,1.50,1.65,1.65,1.72,1.69,1.73,1.76,1.85, 1.80,1.85,1.84,1.83,2.02,1.93,1.90,2.03,2.04,2.04, 2.04,2.09,2.12,2.25,2.09,2.20,2.30,2.27,2.35,2.34, 2.37,2.28,2.41,2.37,2.42,2.42,2.45,2.55,2.44,2.48, 2.51,2.51,2.57,2.49,2.73,2.63,2.62,2.67,2.65,2.75, 2.56,2.83,2.80,2.76,2.83,2.77,2.90,2.86,2.83,2.92, 2.92,2.85,3.08,2.98,2.85,3.05,2.97,3.06,2.99,2.92, 3.09,3.10,3.19,3.30,3.16,3.36,3.27,3.21,3.21,3.14, 3.24,3.37,3.31,3.44,3.45,3.58,3.31,3.37,3.32,3.46, 3.44,3.41,3.59,3.40,3.52,3.55,3.62,3.55,3.55,3.51, 3.48,3.74,3.67,3.72,3.66,3.59,3.59,3.66,3.73,3.50, 3.77,3.68,3.64,3.65,3.72,3.76,3.87,3.83,3.85,3.73, 3.91,3.81,3.88,3.87,4.06,3.99,3.90,3.93,3.89,3.92, 3.92,4.04,3.99,4.01,4.07,4.13,4.07,4.11,4.15,4.23, 4.25,4.11,4.13,4.00,4.14,4.17,4.13,4.15,4.02,4.13, 4.17,4.19,4.41,4.12,4.27,4.42,4.44,4.45,4.27,4.28, 4.49,4.40,4.29,4.56,4.26,4.51,4.33,4.46,4.37,4.37, 4.62,4.53,4.65,4.49,4.55,4.42,4.55,4.65,4.57,4.55, 4.58,4.55,4.56,4.78,4.65,4.74,4.73,4.66,4.50,4.65, 4.65,4.83,4.69,4.77,4.68,4.83,4.71,4.80,4.84,4.57, 4.67,4.76,4.86,4.82,4.69,4.95,4.70,4.96,5.01,4.76, 4.95,5.02,4.79,4.86,4.82,4.91,5.20,4.95,5.00,5.06, 5.19,4.92,5.06,4.89,5.16,5.00,4.98,5.06,5.49,5.03, 5.26,5.14,5.26,5.31,5.25,5.12,5.49,5.24,5.39,5.32, 5.18,5.33,5.15,5.37,5.22,5.37,5.14,5.18,5.29,5.32, 5.29,5.48,5.33,5.37,5.18,5.29,5.49,5.32,5.20,5.59, 5.38,5.50,5.58,5.43,5.47,5.51,5.57,5.39,5.49,5.67, 5.56,5.24,5.45,5.49,5.48,5.49,5.69,5.44,5.49,5.59, 1.06,1.08,1.13,1.17,1.21,1.29,1.33,1.38,1.42,1.46, 1.45,1.45,1.51,1.46,1.59,1.58,1.66,1.69,1.71,1.84, 1.78,1.87,1.75,1.87,1.83,1.95,1.84,1.92,1.95,2.07, 1.99,2.02,2.13,2.08,2.07,2.10,2.22,2.22,2.30,2.26, 2.28,2.28,2.31,2.33,2.37,2.37,2.33,2.33,2.36,2.39, 2.46,2.49,2.48,2.50,2.56,2.55,2.65,2.54,2.65,2.71, 2.58,2.70,2.68,2.65,2.69,2.75,2.74,2.80,2.85,2.88, 2.73,2.83,2.93,2.80,2.98,2.93,2.98,2.87,3.01,3.10, 3.09,2.94,2.98,2.90,3.02,2.99,3.08,3.02,3.10,3.07, 3.26,3.18,3.16,3.20,3.19,3.25,3.30,3.29,3.26,3.32, 3.30,3.34,3.26,3.53,3.42,3.35,3.49,3.39,3.42,3.38, 3.55,3.40,3.49,3.41,3.50,3.51,3.51,3.62,3.52,3.53, 3.44,3.56,3.46,3.46,3.57,3.50,3.72,3.52,3.73,3.63, 3.62,3.59,3.73,3.90,3.74,3.75,3.72,3.70,3.99,3.81, 3.82,4.01,3.93,3.92,3.88,3.88,4.17,3.95,4.01,4.03, 4.01,4.16,4.09,4.05,4.08,4.01,4.02,4.06,4.03,4.17, 4.12,4.04,4.26,4.02,4.20,4.24,4.12,4.22,4.31,4.21, 4.39,4.22,4.32,4.08,4.33,4.25,4.42,4.14,4.44,4.17, 4.12,4.38,4.31,4.49,4.19,4.38,4.33,4.44,4.52,4.45, 4.58,4.54,4.54,4.36,4.60,4.56,4.59,4.52,4.40,4.85, 4.55,4.56,4.63,4.62,4.46,4.87,4.81,4.61,4.87,4.67, 4.66,4.58,4.45,4.78,4.77,4.80,4.85,4.73,5.08,4.98, 4.65,4.64,4.86,4.79,4.76,5.00,4.71,4.52,4.88,4.78, 4.94,4.89,4.92,4.97,4.89,5.06,4.90,5.07,5.03,4.80, 5.16,4.96,4.87,4.96,4.94,5.09,5.02,5.07,5.09,4.86, 5.05,4.87,5.03,5.09,4.92,5.07,5.26,5.10,5.11,5.02, 4.98,4.94,5.39,5.36,5.40,5.14,5.07,5.52,5.05,5.42, 5.32,5.06,5.27,5.35,5.34,5.38,5.32,5.50,5.24,5.31, 5.34,5.59,5.08,5.45,5.56,5.54,5.44,5.33,5.22,5.66, 1.01,1.08,1.19,1.13,1.21,1.29,1.29,1.30,1.31,1.38, 1.45,1.44,1.50,1.52,1.54,1.64,1.60,1.62,1.74,1.70, 1.72,1.72,1.85,1.75,1.78,1.91,1.90,1.85,1.83,1.94, 2.00,1.90,2.00,2.07,2.06,2.11,2.13,2.23,2.21,2.10, 2.21,2.30,2.32,2.31,2.39,2.31,2.38,2.27,2.45,2.29, 2.40,2.52,2.46,2.45,2.56,2.62,2.48,2.55,2.53,2.58, 2.54,2.68,2.59,2.64,2.72,2.59,2.61,2.71,2.78,2.76, 2.69,2.78,2.74,2.83,2.93,2.87,2.83,2.97,3.01,2.99, 2.96,2.95,2.86,3.06,2.95,3.04,3.05,3.12,3.02,3.03, 3.03,3.20,3.13,3.11,3.14,3.23,3.11,3.03,3.22,3.16, 3.23,3.27,3.37,3.30,3.28,3.33,3.31,3.31,3.24,3.28, 3.38,3.54,3.25,3.40,3.38,3.40,3.56,3.54,3.56,3.67, 3.66,3.41,3.51,3.72,3.60,3.54,3.52,3.56,3.54,3.69, 3.58,3.67,3.72,3.64,3.74,3.73,3.84,3.75,3.76,3.60, 3.70,3.72,4.01,3.90,3.75,3.95,3.91,3.77,3.77,3.94, 3.88,3.88,3.92,3.82,3.91,4.00,3.89,3.97,4.11,3.94, 3.92,4.17,3.95,3.79,4.06,3.94,3.93,4.18,4.06,3.96, 4.18,4.10,4.06,4.15,4.10,4.24,4.19,4.44,4.32,4.26, 4.21,4.30,4.20,4.29,4.25,4.32,4.31,4.23,4.41,4.27, 4.30,4.60,4.50,4.48,4.39,4.18,4.55,4.49,4.57,4.50, 4.56,4.46,4.51,4.51,4.57,4.52,4.55,4.56,4.35,4.42, 4.60,4.58,4.59,4.61,4.52,4.68,4.68,4.74,4.72,4.49, 4.74,4.67,4.51,4.71,4.73,4.69,4.79,4.69,4.72,4.77, 5.07,4.78,4.96,4.69,5.05,5.00,4.85,4.96,4.89,4.92, 5.00,4.99,4.80,4.89,4.92,4.80,4.95,4.94,4.84,4.81, 4.93,5.00,4.97,5.06,5.05,4.89,4.99,4.95,5.10,4.94, 5.04,5.23,5.12,4.95,5.08,5.22,5.04,5.23,5.15,5.03, 4.94,5.44,5.11,5.27,4.95,5.26,5.07,5.32,5.12,5.16, 5.37,5.30,5.43,5.36,5.20,5.20,5.20,5.32,5.43,5.29, 1.00,1.06,1.14,1.12,1.18,1.21,1.23,1.30,1.32,1.41, 1.46,1.43,1.46,1.48,1.54,1.58,1.57,1.57,1.68,1.61, 1.71,1.74,1.79,1.77,1.74,1.74,1.85,1.90,1.90,1.90, 1.89,1.93,2.00,2.02,2.03,2.11,2.06,2.12,2.13,2.11, 2.22,2.20,2.22,2.27,2.35,2.33,2.28,2.27,2.33,2.26, 2.38,2.36,2.48,2.39,2.43,2.40,2.49,2.56,2.44,2.55, 2.60,2.49,2.57,2.65,2.53,2.65,2.62,2.67,2.66,2.72, 2.68,2.76,2.70,2.74,2.81,2.89,2.74,2.89,2.82,2.83, 2.92,2.83,2.81,2.93,3.03,2.99,2.97,2.91,3.03,3.01, 3.10,3.12,3.13,3.06,3.09,3.17,3.10,3.07,3.23,3.15, 3.05,3.18,3.27,3.25,3.23,3.33,3.22,3.29,3.29,3.30, 3.38,3.29,3.50,3.26,3.50,3.49,3.46,3.42,3.38,3.44, 3.45,3.51,3.46,3.52,3.46,3.70,3.54,3.50,3.67,3.68, 3.57,3.49,3.52,3.64,3.45,3.52,3.74,3.50,3.71,3.72, 3.73,3.69,3.82,3.86,3.88,3.86,3.61,3.83,3.80,3.87, 3.87,3.76,3.76,3.87,3.89,4.00,3.90,3.96,3.86,4.00, 3.71,3.98,4.04,3.89,3.98,3.85,4.11,4.04,4.02,3.95, 3.99,4.08,4.06,4.00,4.08,3.97,4.14,4.19,4.12,4.14, 4.18,4.08,4.17,4.16,4.37,4.21,4.24,4.05,4.41,4.40, 4.10,4.15,4.29,4.39,4.26,4.38,4.31,4.30,4.33,4.38, 4.37,4.33,4.49,4.22,4.49,4.55,4.34,4.42,4.37,4.37, 4.31,4.40,4.53,4.40,4.68,4.73,4.40,4.53,4.52,4.50, 4.47,4.54,4.53,4.69,4.57,4.52,4.61,4.63,4.74,4.74, 4.45,4.60,4.69,4.64,4.70,4.74,4.82,4.67,4.70,4.87, 4.93,4.91,5.01,4.78,4.67,4.74,4.67,4.78,4.83,4.71, 4.77,4.83,4.80,4.99,5.19,4.75,5.04,5.09,4.98,5.00, 4.76,4.80,4.96,5.01,5.14,5.09,5.02,4.99,5.03,4.95, 5.07,5.12,5.09,5.24,5.19,5.59,5.09,5.09,5.12,5.06, 4.93,4.96,5.34,5.07,5.21,5.36,5.09,5.25,5.10,5.02, 1.00,1.05,1.11,1.08,1.19,1.15,1.22,1.26,1.40,1.33, 1.34,1.41,1.42,1.56,1.50,1.44,1.57,1.57,1.50,1.60, 1.64,1.68,1.66,1.73,1.78,1.76,1.80,1.94,1.90,1.85, 1.91,1.86,1.85,1.96,1.96,2.08,2.05,2.03,2.15,2.13, 2.16,2.10,2.13,2.11,2.10,2.21,2.19,2.21,2.30,2.29, 2.26,2.27,2.30,2.36,2.42,2.42,2.48,2.41,2.51,2.37, 2.55,2.51,2.46,2.55,2.69,2.53,2.50,2.67,2.63,2.64, 2.72,2.61,2.65,2.66,2.64,2.60,2.76,2.66,2.74,2.91, 2.73,2.91,2.84,2.85,2.81,2.88,2.76,2.88,2.98,3.02, 2.93,3.00,2.92,3.06,2.92,2.91,3.14,3.05,3.06,3.10, 3.08,3.11,3.26,3.20,3.16,3.14,3.14,3.22,3.28,3.29, 3.21,3.20,3.30,3.15,3.38,3.33,3.25,3.34,3.34,3.27, 3.30,3.41,3.43,3.38,3.46,3.29,3.46,3.50,3.45,3.47, 3.53,3.46,3.61,3.48,3.51,3.48,3.65,3.68,3.73,3.68, 3.63,3.70,3.63,3.52,3.70,3.56,3.63,3.56,3.66,3.87, 3.86,3.82,3.79,3.69,3.73,3.81,3.92,3.82,3.91,3.89, 3.83,3.89,3.89,4.08,3.92,4.00,3.92,3.90,4.00,3.88, 4.10,3.86,3.93,4.03,3.92,4.05,4.06,4.16,3.93,4.07, 4.06,4.02,4.12,4.23,4.17,4.20,3.90,4.13,4.12,4.28, 4.21,4.24,4.29,3.98,4.33,3.96,4.22,4.29,4.17,4.42, 4.31,4.28,4.35,4.22,4.26,4.37,4.42,4.30,4.34,4.30, 4.41,4.25,4.51,4.45,4.32,4.40,4.25,4.49,4.50,4.61, 4.55,4.56,4.44,4.64,4.22,4.48,4.57,4.66,4.53,4.53, 4.60,4.61,4.56,4.65,4.66,4.67,4.86,4.73,4.71,4.36, 4.71,4.64,4.50,4.77,4.74,4.71,4.73,4.81,4.73,4.90, 4.83,4.78,4.79,4.76,5.09,4.86,4.83,4.96,4.68,4.65, 4.93,4.98,4.94,4.90,4.83,4.79,4.93,4.87,4.97,5.13, 5.00,4.94,4.90,4.93,4.88,5.11,5.07,4.96,4.92,5.17, 5.05,4.99,5.16,5.16,4.97,5.03,4.96,5.09,5.21,5.22, 0.97,0.99,1.05,1.08,1.09,1.21,1.19,1.23,1.31,1.30, 1.33,1.37,1.40,1.47,1.52,1.52,1.42,1.53,1.61,1.58, 1.61,1.68,1.65,1.68,1.67,1.72,1.73,1.79,1.65,1.73, 1.89,1.90,1.86,1.90,1.94,1.95,1.98,1.93,2.02,2.04, 2.03,2.13,2.11,2.11,2.08,2.21,2.20,2.33,2.19,2.19, 2.23,2.33,2.33,2.31,2.36,2.29,2.32,2.44,2.32,2.47, 2.38,2.46,2.47,2.45,2.61,2.48,2.54,2.58,2.48,2.50, 2.74,2.74,2.61,2.68,2.71,2.73,2.62,2.63,2.70,2.73, 2.84,2.94,2.77,2.81,2.81,2.88,2.84,2.87,2.87,2.82, 2.84,3.06,2.90,2.92,3.01,2.89,2.93,2.84,2.94,3.03, 2.99,2.89,3.05,2.97,3.06,3.16,3.03,3.04,3.15,3.11, 3.18,3.12,3.07,3.17,3.20,3.27,3.23,3.24,3.38,3.33, 3.26,3.35,3.16,3.42,3.37,3.61,3.41,3.49,3.28,3.42, 3.47,3.51,3.36,3.46,3.54,3.40,3.54,3.53,3.45,3.46, 3.48,3.46,3.64,3.55,3.67,3.83,3.61,3.62,3.71,3.68, 3.75,3.68,3.68,3.70,3.67,3.66,3.69,3.71,3.74,3.68, 3.80,3.89,3.79,3.69,3.76,3.84,3.75,3.86,3.83,3.78, 3.88,3.91,3.96,3.91,3.95,3.93,4.06,4.08,3.94,3.95, 4.01,4.06,4.00,3.87,4.00,3.95,4.01,4.02,4.15,4.18, 4.04,4.08,4.16,4.31,4.25,4.09,3.98,4.09,4.22,4.21, 4.27,4.32,4.21,4.19,4.17,4.35,4.34,4.27,4.25,4.21, 4.35,4.17,4.45,4.19,4.23,4.28,4.45,4.30,4.31,4.33, 4.57,4.36,4.39,4.50,4.28,4.44,4.43,4.27,4.40,4.54, 4.50,4.53,4.49,4.41,4.58,4.39,4.60,4.59,4.62,4.54, 4.70,4.64,4.70,4.61,4.47,4.58,4.54,4.67,4.55,4.67, 4.63,4.88,4.63,4.58,4.95,4.93,4.59,4.84,4.75,4.92, 4.74,4.70,4.79,4.74,4.64,4.83,4.75,4.77,4.80,4.83, 4.66,4.68,4.95,4.79,4.60,4.85,4.91,5.02,4.92,4.76, 4.76,4.72,5.03,5.03,5.01,4.91,5.09,5.02,5.05,4.93, 0.92,0.99,1.01,1.05,1.07,1.13,1.16,1.24,1.29,1.23, 1.28,1.29,1.32,1.38,1.43,1.45,1.46,1.51,1.50,1.57, 1.55,1.56,1.61,1.65,1.62,1.74,1.78,1.74,1.76,1.82, 1.80,1.79,1.85,1.89,1.81,1.94,1.91,1.98,1.97,2.03, 2.07,1.97,2.09,2.05,2.10,2.04,2.13,2.03,2.10,2.18, 2.17,2.23,2.27,2.28,2.27,2.29,2.38,2.31,2.30,2.40, 2.30,2.41,2.35,2.42,2.43,2.40,2.49,2.50,2.53,2.56, 2.46,2.56,2.55,2.60,2.60,2.60,2.68,2.68,2.57,2.65, 2.62,2.72,2.68,2.80,2.69,2.71,2.71,2.79,2.79,2.85, 2.83,2.83,2.84,2.84,2.89,2.85,2.99,2.88,2.97,2.97, 2.97,2.87,3.08,3.01,2.99,3.03,3.13,3.03,3.05,3.13, 3.17,3.22,3.10,3.15,3.20,3.15,3.19,3.21,3.23,3.23, 3.19,3.23,3.25,3.33,3.30,3.33,3.37,3.29,3.19,3.35, 3.41,3.37,3.27,3.23,3.42,3.36,3.44,3.53,3.54,3.48, 3.46,3.50,3.47,3.52,3.42,3.47,3.57,3.50,3.55,3.57, 3.64,3.54,3.59,3.64,3.56,3.71,3.53,3.58,3.58,3.80, 3.62,3.62,3.72,3.85,3.80,3.75,3.71,3.73,3.81,3.75, 3.78,3.86,3.75,3.93,3.71,3.93,3.83,3.86,3.98,3.89, 3.90,3.92,3.97,4.01,3.83,4.19,3.89,3.95,3.88,4.05, 4.04,4.02,4.23,4.10,3.85,4.12,4.03,4.02,4.05,4.05, 4.05,4.10,4.10,4.19,4.19,4.14,4.04,4.12,4.23,4.16, 4.22,4.23,4.19,4.17,4.20,4.34,4.28,4.33,4.39,4.26, 4.22,4.08,4.31,4.32,4.39,4.21,4.10,4.51,4.19,4.27, 4.27,4.31,4.38,4.58,4.22,4.21,4.47,4.50,4.40,4.50, 4.37,4.43,4.24,4.47,4.50,4.38,4.59,4.57,4.31,4.54, 4.33,4.61,4.44,4.76,4.65,4.41,4.44,4.76,4.64,4.54, 4.76,4.64,4.44,4.59,4.76,4.60,4.81,4.77,4.76,4.60, 4.63,4.81,4.93,4.84,4.58,4.80,4.70,4.68,4.56,4.74, 4.93,4.88,4.92,4.79,4.85,4.72,5.04,4.89,4.81,4.99, 0.93,0.97,1.04,1.02,1.05,1.12,1.13,1.13,1.21,1.28, 1.28,1.29,1.28,1.34,1.35,1.42,1.44,1.45,1.48,1.48, 1.51,1.53,1.62,1.62,1.63,1.64,1.67,1.69,1.71,1.71, 1.74,1.80,1.79,1.77,1.94,1.82,1.88,1.92,1.93,1.99, 1.92,1.93,2.04,2.10,2.01,2.08,2.13,2.14,2.03,2.11, 2.14,2.25,2.08,2.11,2.19,2.19,2.27,2.29,2.22,2.27, 2.25,2.25,2.27,2.36,2.42,2.30,2.34,2.49,2.40,2.53, 2.51,2.48,2.61,2.49,2.50,2.52,2.50,2.59,2.66,2.47, 2.73,2.67,2.70,2.62,2.66,2.73,2.77,2.74,2.74,2.74, 2.80,2.79,2.81,2.85,2.83,2.73,2.76,2.82,2.90,2.90, 2.95,2.94,2.81,2.95,2.90,2.82,2.98,3.00,3.01,3.11, 3.05,3.12,3.02,3.07,3.05,3.05,3.08,3.17,3.16,3.03, 3.16,3.09,3.28,3.28,3.40,3.32,3.17,3.17,3.35,3.30, 3.18,3.30,3.33,3.13,3.28,3.33,3.18,3.26,3.34,3.32, 3.33,3.37,3.34,3.40,3.39,3.59,3.51,3.48,3.42,3.47, 3.55,3.57,3.49,3.55,3.50,3.53,3.50,3.49,3.49,3.59, 3.72,3.55,3.53,3.58,3.75,3.79,3.75,3.67,3.67,3.60, 3.72,3.67,3.75,3.71,3.79,3.79,3.66,3.81,3.88,3.76, 3.91,3.82,3.83,3.70,3.95,3.85,3.95,3.88,3.86,3.92, 3.76,3.89,4.06,3.91,4.09,3.82,3.95,3.93,3.75,3.95, 3.85,4.11,4.00,4.04,4.07,3.94,3.92,4.00,3.98,4.12, 4.12,3.96,4.14,4.04,3.97,4.23,4.14,4.20,4.08,4.21, 4.34,4.20,4.07,4.09,4.31,4.30,4.22,4.27,4.33,4.29, 4.21,4.17,4.19,4.22,4.22,4.22,4.36,4.39,4.28,4.38, 4.08,4.41,4.34,4.32,4.49,4.44,4.33,4.32,4.57,4.53, 4.46,4.40,4.24,4.38,4.42,4.39,4.22,4.51,4.54,4.65, 4.27,4.59,4.51,4.66,4.53,4.70,4.60,4.56,4.57,4.63, 4.57,4.65,4.72,4.54,4.32,4.60,4.60,4.70,4.52,4.78, 4.62,4.68,4.67,4.62,4.48,4.76,4.79,4.80,4.54,4.78, 0.89,0.96,0.99,1.03,1.02,1.07,1.09,1.13,1.13,1.23, 1.27,1.26,1.29,1.31,1.32,1.41,1.46,1.35,1.42,1.43, 1.49,1.48,1.57,1.61,1.56,1.58,1.64,1.66,1.66,1.66, 1.75,1.74,1.77,1.84,1.74,1.77,1.82,1.85,1.86,1.90, 1.94,1.89,2.00,1.99,2.00,1.97,1.96,1.99,2.01,2.02, 2.03,2.13,1.98,2.16,2.19,2.19,2.19,2.14,2.17,2.19, 2.24,2.17,2.34,2.21,2.38,2.28,2.40,2.36,2.22,2.36, 2.33,2.32,2.38,2.47,2.43,2.51,2.45,2.41,2.56,2.52, 2.47,2.52,2.57,2.49,2.56,2.62,2.70,2.60,2.51,2.68, 2.75,2.67,2.67,2.60,2.71,2.77,2.67,2.78,2.82,2.71, 2.94,2.77,2.83,2.84,2.73,2.94,2.88,2.89,2.96,2.83, 2.88,2.91,2.98,2.98,3.00,2.89,3.05,2.98,3.02,3.02, 2.90,3.05,3.00,3.15,3.10,3.13,3.10,3.14,3.27,3.09, 3.23,3.11,3.16,3.28,3.26,3.16,3.23,3.21,3.22,3.15, 3.10,3.23,3.28,3.26,3.39,3.51,3.30,3.39,3.38,3.42, 3.37,3.31,3.26,3.40,3.48,3.38,3.41,3.36,3.45,3.55, 3.45,3.41,3.55,3.52,3.52,3.57,3.64,3.62,3.63,3.51, 3.67,3.53,3.53,3.76,3.76,3.78,3.74,3.56,3.68,3.49, 3.65,3.80,3.63,3.82,3.76,3.64,3.63,3.71,3.75,3.85, 3.77,3.72,3.65,3.80,3.89,3.85,3.78,3.80,3.80,3.66, 3.81,3.84,3.73,3.93,3.87,3.83,3.90,3.94,3.97,3.88, 3.86,3.99,3.97,4.02,4.07,4.03,4.00,4.17,4.01,4.01, 4.17,3.91,4.05,4.06,4.08,4.11,4.18,4.26,4.10,4.05, 3.93,4.02,4.27,4.11,4.28,4.22,4.13,4.05,4.16,4.21, 4.24,4.17,4.22,4.34,4.22,4.19,4.24,4.33,4.30,4.40, 4.40,4.30,4.21,4.46,4.19,4.21,4.30,4.22,4.30,4.44, 4.34,4.47,4.29,4.34,4.47,4.47,4.49,4.43,4.43,4.37, 4.51,4.43,4.54,4.39,4.49,4.44,4.66,4.44,4.28,4.65, 4.59,4.72,4.66,4.45,4.53,4.54,4.43,4.68,4.70,4.54, 0.83,0.89,0.97,0.95,0.97,1.05,1.04,1.12,1.11,1.13, 1.20,1.20,1.23,1.28,1.26,1.31,1.34,1.36,1.39,1.42, 1.42,1.40,1.48,1.44,1.56,1.56,1.55,1.56,1.55,1.63, 1.64,1.71,1.67,1.72,1.74,1.72,1.79,1.70,1.78,1.76, 1.82,1.86,1.86,1.91,1.92,1.93,1.97,1.89,2.02,1.99, 2.03,1.99,2.04,2.11,2.04,2.08,2.09,2.12,2.16,2.17, 2.10,2.19,2.18,2.17,2.24,2.16,2.29,2.25,2.22,2.28, 2.22,2.26,2.37,2.39,2.33,2.34,2.36,2.50,2.48,2.50, 2.46,2.52,2.46,2.43,2.45,2.48,2.46,2.47,2.49,2.47, 2.61,2.58,2.60,2.68,2.72,2.58,2.58,2.56,2.68,2.70, 2.70,2.81,2.77,2.74,2.77,2.76,2.65,2.73,2.78,2.85, 2.80,2.74,2.83,2.89,2.89,2.87,2.88,2.97,2.99,2.86, 2.86,2.93,2.89,3.04,2.88,2.89,3.05,2.99,3.14,2.92, 2.98,2.95,3.13,3.16,3.06,3.06,3.16,3.14,3.21,3.03, 3.08,3.21,3.13,3.15,3.18,3.26,3.11,3.19,3.20,3.21, 3.22,3.17,3.25,3.27,3.31,3.34,3.39,3.37,3.33,3.25, 3.41,3.49,3.40,3.39,3.46,3.46,3.39,3.41,3.36,3.28, 3.47,3.55,3.42,3.39,3.46,3.50,3.49,3.67,3.50,3.57, 3.42,3.55,3.54,3.51,3.66,3.52,3.55,3.52,3.59,3.69, 3.57,3.65,3.75,3.62,3.65,3.63,3.85,3.74,3.67,3.68, 3.78,3.72,3.65,3.72,3.76,3.68,3.79,3.85,3.75,3.83, 3.86,3.89,3.81,3.98,3.81,3.77,3.71,3.99,3.72,3.91, 3.99,3.82,4.04,3.98,4.03,3.85,3.95,3.84,3.97,4.01, 3.73,3.95,3.95,3.89,3.84,4.09,3.89,3.98,3.96,4.05, 4.18,4.04,4.01,4.17,4.17,4.07,3.92,4.01,4.04,4.27, 4.09,4.07,4.21,4.02,4.22,4.09,4.18,4.22,4.16,4.14, 4.28,4.39,4.29,4.22,4.23,4.23,4.20,4.29,4.31,4.43, 4.39,4.39,4.42,4.24,4.16,4.34,4.35,4.45,4.37,4.31, 4.39,4.42,4.32,4.35,4.21,4.21,4.47,4.28,4.39,4.50, 0.83,0.86,0.89,0.93,0.98,1.01,1.06,1.05,1.06,1.11, 1.18,1.17,1.17,1.20,1.21,1.29,1.29,1.31,1.30,1.39, 1.41,1.37,1.39,1.51,1.44,1.48,1.56,1.52,1.54,1.63, 1.57,1.64,1.62,1.63,1.68,1.68,1.73,1.71,1.74,1.76, 1.75,1.75,1.75,1.74,1.81,1.76,1.88,1.86,1.89,1.86, 1.89,1.92,1.81,1.99,1.96,2.08,2.09,2.09,1.93,2.10, 2.07,2.14,2.19,2.08,2.20,2.15,2.22,2.19,2.18,2.27, 2.36,2.26,2.25,2.22,2.32,2.27,2.24,2.37,2.31,2.38, 2.35,2.24,2.47,2.37,2.47,2.44,2.52,2.43,2.50,2.51, 2.54,2.39,2.50,2.49,2.48,2.58,2.50,2.63,2.56,2.49, 2.67,2.63,2.70,2.54,2.66,2.63,2.66,2.61,2.61,2.67, 2.79,2.61,2.74,2.71,2.77,2.78,2.85,2.87,2.79,2.80, 2.78,2.78,2.79,2.79,2.89,2.92,2.88,2.95,2.86,2.91, 2.98,2.94,2.96,2.93,2.91,3.02,3.12,2.96,3.07,3.02, 3.02,3.03,3.01,3.09,3.02,3.01,3.04,3.08,2.96,3.21, 3.15,3.10,3.22,3.10,3.21,3.07,3.31,3.23,3.13,3.12, 3.20,3.22,3.23,3.21,3.23,3.33,3.22,3.35,3.30,3.21, 3.37,3.34,3.41,3.37,3.29,3.26,3.24,3.39,3.49,3.51, 3.52,3.28,3.50,3.43,3.55,3.37,3.42,3.57,3.44,3.47, 3.63,3.52,3.52,3.43,3.54,3.66,3.57,3.43,3.63,3.59, 3.64,3.69,3.63,3.62,3.66,3.68,3.59,3.65,3.64,3.68, 3.66,3.65,3.73,3.82,3.66,3.72,3.81,3.66,3.82,3.72, 3.73,3.72,3.81,3.77,3.67,3.73,3.78,3.80,3.68,3.79, 3.80,3.78,3.77,3.90,3.90,3.85,3.81,3.82,3.96,3.85, 3.83,4.07,4.13,3.91,3.93,3.96,3.96,3.94,4.08,4.07, 4.06,3.98,3.87,4.10,3.93,4.09,4.12,3.94,3.96,4.06, 4.05,3.96,4.14,4.01,4.01,4.02,4.11,4.06,4.05,4.17, 4.07,4.20,4.17,3.99,4.11,4.18,4.26,4.04,4.18,4.21, 4.21,4.17,4.28,4.28,4.14,4.32,4.32,4.34,4.28,4.19, 0.79,0.84,0.85,0.92,0.91,0.94,0.99,0.98,1.06,1.04, 1.11,1.12,1.12,1.16,1.23,1.18,1.27,1.27,1.26,1.29, 1.36,1.34,1.36,1.41,1.37,1.42,1.38,1.46,1.49,1.51, 1.51,1.51,1.51,1.57,1.56,1.65,1.64,1.63,1.60,1.63, 1.71,1.79,1.77,1.87,1.74,1.71,1.86,1.82,1.78,1.89, 1.82,1.86,1.78,1.82,1.88,1.92,1.98,1.96,1.94,2.06, 1.95,2.03,2.05,2.09,2.03,2.08,1.99,2.11,2.09,2.05, 2.12,2.14,2.20,2.12,2.17,2.21,2.20,2.36,2.36,2.34, 2.33,2.29,2.36,2.27,2.29,2.37,2.42,2.38,2.40,2.37, 2.44,2.42,2.39,2.47,2.41,2.42,2.49,2.39,2.58,2.42, 2.60,2.48,2.46,2.57,2.50,2.43,2.62,2.56,2.46,2.67, 2.68,2.45,2.64,2.55,2.69,2.71,2.64,2.71,2.62,2.72, 2.77,2.62,2.61,2.76,2.84,2.83,2.80,2.94,2.77,2.81, 2.73,2.85,2.89,2.99,2.92,2.77,2.82,2.84,2.94,2.81, 2.85,2.92,2.85,2.92,2.96,2.93,2.98,3.04,2.92,3.12, 3.04,2.99,3.11,3.10,3.08,2.94,3.09,3.10,3.10,3.07, 3.07,3.28,3.02,3.10,3.10,3.30,3.18,3.17,3.15,3.25, 3.25,3.27,3.14,3.26,3.32,3.27,3.29,3.27,3.34,3.31, 3.19,3.31,3.32,3.19,3.31,3.34,3.42,3.43,3.33,3.37, 3.35,3.34,3.36,3.37,3.40,3.43,3.35,3.48,3.46,3.40, 3.58,3.46,3.44,3.44,3.47,3.54,3.57,3.64,3.51,3.32, 3.37,3.58,3.41,3.42,3.62,3.65,3.56,3.69,3.64,3.59, 3.54,3.71,3.50,3.74,3.64,3.56,3.62,3.84,3.69,3.53, 3.66,3.66,3.68,3.62,3.67,3.69,3.83,3.73,3.88,3.89, 3.72,3.77,3.80,3.77,3.87,3.74,3.61,3.86,3.88,3.83, 3.88,3.67,3.83,3.86,3.92,3.99,3.89,3.86,3.66,3.97, 3.91,3.78,3.98,3.93,3.77,3.93,3.89,3.99,3.92,3.98, 3.93,3.98,3.88,3.90,4.07,3.94,4.06,4.00,3.95,3.98, 3.92,4.03,3.97,4.03,4.01,4.25,4.09,3.99,4.14,4.13, 0.77,0.79,0.80,0.84,0.87,0.91,0.95,0.98,0.99,1.03, 1.01,1.04,1.11,1.12,1.14,1.18,1.26,1.20,1.25,1.22, 1.26,1.29,1.32,1.36,1.30,1.32,1.43,1.37,1.48,1.46, 1.48,1.52,1.52,1.52,1.56,1.52,1.54,1.65,1.59,1.54, 1.65,1.64,1.67,1.71,1.68,1.77,1.69,1.69,1.78,1.74, 1.78,1.74,1.71,1.82,1.82,1.80,1.90,1.85,1.85,1.95, 2.00,1.96,2.00,1.87,2.03,2.02,1.99,2.08,2.05,2.04, 2.01,2.07,2.11,2.00,2.07,2.04,2.11,2.12,2.15,2.22, 2.18,2.23,2.15,2.26,2.19,2.24,2.31,2.35,2.28,2.38, 2.37,2.28,2.32,2.36,2.31,2.34,2.25,2.32,2.34,2.29, 2.32,2.47,2.41,2.48,2.46,2.51,2.48,2.51,2.40,2.44, 2.52,2.49,2.42,2.54,2.61,2.54,2.64,2.55,2.63,2.53, 2.55,2.49,2.59,2.70,2.60,2.52,2.62,2.67,2.69,2.79, 2.71,2.72,2.77,2.72,2.80,2.76,2.70,2.75,2.83,2.75, 2.85,2.84,2.78,2.69,2.85,2.78,2.99,2.73,2.97,2.89, 2.94,2.97,2.88,2.89,2.83,2.96,2.88,3.02,2.96,2.94, 3.06,2.92,2.96,3.08,2.91,3.03,2.90,3.05,2.96,3.08, 3.03,3.16,3.11,3.00,3.07,3.21,3.12,3.17,3.13,3.01, 3.11,3.16,3.14,3.04,3.17,3.10,3.29,3.15,3.15,3.02, 3.26,3.14,3.31,3.20,3.40,3.31,3.23,3.29,3.31,3.28, 3.37,3.23,3.19,3.17,3.32,3.31,3.36,3.31,3.36,3.36, 3.33,3.44,3.48,3.36,3.39,3.40,3.45,3.42,3.45,3.39, 3.47,3.40,3.46,3.53,3.50,3.47,3.51,3.55,3.57,3.37, 3.41,3.63,3.50,3.51,3.47,3.50,3.52,3.66,3.63,3.51, 3.55,3.71,3.63,3.59,3.65,3.65,3.63,3.63,3.67,3.51, 3.68,3.76,3.69,3.53,3.69,3.85,3.72,3.82,3.79,3.59, 3.83,3.70,3.74,3.81,3.85,3.78,3.76,3.70,3.81,3.83, 3.75,3.96,3.91,3.92,3.85,3.85,3.96,3.80,3.86,3.94, 3.78,3.84,3.93,3.76,3.91,3.79,3.91,3.80,4.02,4.01, 0.71,0.76,0.81,0.83,0.85,0.88,0.91,0.95,0.95,0.98, 1.00,1.03,1.03,1.05,1.07,1.09,1.15,1.16,1.18,1.26, 1.24,1.20,1.27,1.30,1.26,1.30,1.32,1.36,1.40,1.44, 1.36,1.43,1.44,1.48,1.45,1.47,1.47,1.53,1.49,1.56, 1.54,1.52,1.68,1.65,1.69,1.64,1.65,1.64,1.69,1.69, 1.66,1.78,1.75,1.78,1.74,1.78,1.80,1.80,1.83,1.88, 1.89,1.84,1.91,1.87,1.94,1.91,1.91,1.83,1.99,1.97, 1.91,2.00,2.03,1.98,2.02,2.02,1.97,2.03,2.02,2.12, 2.10,2.09,2.12,2.14,2.14,2.11,2.12,2.10,2.14,2.16, 2.18,2.19,2.23,2.33,2.23,2.22,2.25,2.34,2.37,2.28, 2.28,2.42,2.28,2.33,2.35,2.33,2.31,2.34,2.44,2.36, 2.31,2.41,2.46,2.43,2.42,2.44,2.36,2.42,2.48,2.48, 2.54,2.48,2.49,2.58,2.53,2.49,2.48,2.58,2.53,2.57, 2.57,2.56,2.63,2.56,2.53,2.66,2.66,2.67,2.80,2.63, 2.67,2.74,2.77,2.72,2.75,2.79,2.79,2.64,2.74,2.70, 2.82,2.76,2.77,2.78,2.77,2.82,2.91,2.83,2.76,2.83, 2.83,2.70,2.85,2.80,2.90,2.97,2.83,2.92,2.83,2.93, 2.90,2.99,2.91,2.93,2.90,2.99,2.92,3.10,3.08,3.06, 2.97,2.93,3.12,3.03,3.02,3.02,3.07,3.12,3.04,3.15, 3.10,3.02,3.12,3.18,3.06,3.21,3.14,3.15,3.28,3.22, 3.31,3.16,3.18,3.12,3.18,3.26,3.25,3.22,3.20,3.25, 3.13,3.24,3.22,3.19,3.25,3.38,3.17,3.22,3.34,3.40, 3.28,3.42,3.29,3.36,3.31,3.51,3.36,3.36,3.45,3.28, 3.47,3.40,3.43,3.39,3.42,3.38,3.45,3.53,3.40,3.43, 3.36,3.51,3.39,3.45,3.42,3.46,3.48,3.52,3.35,3.38, 3.57,3.62,3.63,3.57,3.49,3.52,3.49,3.53,3.57,3.73, 3.55,3.53,3.63,3.58,3.71,3.64,3.74,3.64,3.44,3.69, 3.51,3.58,3.76,3.72,3.56,3.63,3.71,3.62,3.81,3.79, 3.70,3.72,3.75,3.84,3.81,3.72,3.68,3.76,3.79,3.85, 0.67,0.75,0.77,0.79,0.82,0.83,0.88,0.88,0.87,0.95, 0.94,1.01,1.01,0.99,1.03,1.08,1.08,1.08,1.12,1.18, 1.18,1.17,1.19,1.18,1.23,1.30,1.26,1.29,1.31,1.29, 1.33,1.31,1.37,1.37,1.38,1.38,1.45,1.41,1.43,1.44, 1.48,1.53,1.55,1.55,1.54,1.51,1.55,1.56,1.54,1.56, 1.67,1.71,1.66,1.58,1.68,1.72,1.79,1.73,1.71,1.71, 1.79,1.77,1.77,1.74,1.77,1.85,1.80,1.83,1.86,1.87, 1.95,1.90,1.96,1.91,1.99,1.92,1.93,1.97,1.97,1.95, 1.97,2.00,2.00,2.02,1.98,2.14,2.04,2.11,2.14,2.14, 2.13,2.10,2.11,2.04,2.15,2.18,2.27,2.21,2.21,2.13, 2.16,2.18,2.18,2.21,2.26,2.23,2.17,2.27,2.29,2.35, 2.24,2.26,2.26,2.36,2.39,2.40,2.35,2.42,2.34,2.34, 2.31,2.38,2.39,2.42,2.44,2.35,2.51,2.46,2.43,2.46, 2.55,2.47,2.41,2.49,2.43,2.60,2.52,2.49,2.60,2.55, 2.56,2.54,2.54,2.50,2.59,2.62,2.65,2.64,2.63,2.70, 2.60,2.61,2.71,2.58,2.55,2.72,2.54,2.64,2.75,2.68, 2.74,2.72,2.76,2.61,2.74,2.75,2.66,2.76,2.80,2.88, 2.73,2.73,2.84,2.80,2.84,2.79,2.81,2.94,2.74,2.79, 2.92,2.91,2.91,2.85,2.87,2.93,2.97,2.85,2.91,3.05, 2.91,2.86,3.05,2.98,3.05,3.03,2.97,2.94,3.04,2.98, 3.07,2.98,3.10,3.17,3.11,3.11,3.04,3.09,3.16,3.01, 3.11,3.17,3.08,3.12,3.24,3.16,3.12,3.12,3.11,3.10, 3.06,3.05,3.06,3.12,3.23,3.17,3.28,3.19,3.19,3.20, 3.26,3.29,3.18,3.16,3.35,3.33,3.12,3.34,3.27,3.36, 3.27,3.27,3.32,3.28,3.34,3.36,3.28,3.34,3.40,3.36, 3.40,3.52,3.39,3.39,3.39,3.32,3.41,3.45,3.33,3.26, 3.51,3.47,3.47,3.48,3.47,3.47,3.59,3.43,3.48,3.38, 3.48,3.57,3.36,3.54,3.51,3.51,3.65,3.47,3.62,3.71, 3.52,3.73,3.54,3.54,3.58,3.56,3.57,3.49,3.63,3.53, 1.02,1.14,1.17,1.23,1.28,1.30,1.32,1.34,1.37,1.40, 1.44,1.52,1.55,1.56,1.52,1.61,1.65,1.69,1.69,1.79, 1.75,1.76,1.81,1.86,1.86,1.94,1.95,1.94,2.03,2.08, 2.01,2.06,2.07,2.07,2.22,2.15,2.23,2.27,2.23,2.21, 2.34,2.27,2.36,2.28,2.38,2.42,2.40,2.37,2.49,2.50, 2.50,2.45,2.44,2.57,2.61,2.58,2.70,2.65,2.62,2.67, 2.65,2.66,2.73,2.69,2.75,2.82,2.76,2.85,2.83,2.90, 2.98,2.90,2.95,2.94,2.93,3.03,2.97,3.13,2.88,3.08, 3.03,3.12,3.20,3.14,3.09,3.13,3.29,3.12,3.29,3.09, 3.21,3.29,3.13,3.12,3.31,3.26,3.32,3.22,3.36,3.27, 3.48,3.59,3.33,3.46,3.46,3.50,3.52,3.39,3.57,3.57, 3.54,3.50,3.55,3.54,3.49,3.44,3.64,3.58,3.61,3.60, 3.54,3.66,3.73,3.72,3.83,3.71,3.79,3.70,3.64,3.65, 3.90,3.85,3.99,3.93,3.80,3.77,3.92,3.77,3.99,3.98, 4.08,4.02,3.85,3.92,3.89,3.99,4.13,4.04,4.06,4.03, 3.94,4.16,4.15,4.06,4.02,4.21,4.08,4.17,4.30,4.12, 4.16,4.13,4.24,4.11,4.27,4.09,4.39,4.16,4.02,4.22, 4.45,4.35,4.27,4.34,4.44,4.46,4.33,4.38,4.48,4.34, 4.29,4.35,4.50,4.41,4.58,4.33,4.56,4.41,4.72,4.40, 4.50,4.63,4.68,4.68,4.41,4.70,4.51,4.48,4.65,4.60, 4.66,4.63,4.66,4.69,4.60,4.67,4.66,4.79,4.70,4.82, 4.58,4.77,4.82,4.73,4.81,4.72,4.80,4.95,4.77,4.78, 4.93,4.84,4.77,4.91,4.93,4.96,5.03,5.02,5.08,4.86, 5.07,4.96,4.82,4.98,4.93,4.94,5.21,4.97,5.05,5.10, 4.95,5.08,5.22,5.19,5.13,5.23,5.00,5.19,5.11,5.11, 5.16,5.18,5.15,5.42,5.26,5.28,5.04,5.11,5.29,5.27, 5.32,5.21,5.50,5.11,5.29,5.17,5.31,5.48,5.41,5.37, 5.46,5.38,5.10,5.52,5.27,5.30,5.31,5.50,5.08,5.63, 5.47,5.42,5.63,5.43,5.52,5.28,5.49,5.59,5.63,5.67, 1.01,1.10,1.14,1.16,1.20,1.27,1.26,1.34,1.35,1.36, 1.39,1.45,1.47,1.56,1.54,1.58,1.66,1.61,1.71,1.74, 1.80,1.72,1.75,1.81,1.81,1.88,1.89,1.88,1.90,1.94, 2.01,1.99,2.04,2.06,2.10,2.06,2.12,2.11,2.18,2.18, 2.18,2.27,2.25,2.18,2.24,2.20,2.39,2.36,2.34,2.40, 2.34,2.43,2.55,2.47,2.52,2.51,2.52,2.50,2.53,2.63, 2.56,2.66,2.73,2.57,2.65,2.72,2.70,2.69,2.76,2.84, 2.75,2.76,2.74,2.82,2.89,2.84,2.89,2.91,2.82,2.87, 3.01,2.88,3.01,3.00,3.02,2.91,3.04,3.08,3.09,3.17, 3.17,3.01,3.15,3.10,3.15,3.13,3.23,3.17,3.20,3.33, 3.23,3.16,3.18,3.39,3.16,3.31,3.39,3.36,3.32,3.42, 3.30,3.49,3.37,3.45,3.36,3.48,3.51,3.41,3.48,3.57, 3.50,3.47,3.45,3.65,3.58,3.63,3.71,3.68,3.69,3.57, 3.70,3.70,3.60,3.63,3.77,3.75,3.74,3.76,3.92,3.75, 3.67,3.76,3.68,3.66,3.87,3.83,3.91,3.85,3.99,3.95, 3.96,3.97,3.92,3.98,4.02,3.96,4.16,4.06,4.11,4.10, 3.93,4.19,4.28,4.10,4.00,4.08,4.26,4.18,4.15,4.22, 4.07,4.29,4.12,4.34,4.32,4.29,4.31,4.22,4.11,4.36, 4.57,4.12,4.45,4.41,4.19,4.23,4.23,4.34,4.48,4.19, 4.59,4.57,4.39,4.42,4.48,4.54,4.44,4.50,4.59,4.52, 4.65,4.35,4.44,4.61,4.51,4.36,4.63,4.58,4.50,4.65, 4.69,4.48,4.55,4.70,4.57,4.58,4.76,4.87,4.59,4.68, 4.61,4.58,4.70,4.87,5.03,4.73,4.79,4.83,4.50,4.84, 4.82,4.75,4.77,4.89,4.74,4.84,4.68,4.85,4.79,5.03, 4.95,5.01,4.81,4.89,4.94,4.92,4.88,4.92,5.04,4.90, 4.93,5.14,5.02,5.07,5.05,5.14,5.01,5.03,4.94,5.16, 5.13,5.07,5.01,5.13,5.08,4.95,5.05,5.15,5.17,5.25, 5.32,5.27,5.00,5.23,5.16,5.09,5.22,5.28,5.34,5.05, 5.31,5.32,5.16,5.48,5.26,5.32,5.22,5.36,5.18,5.25, 1.01,1.06,1.10,1.14,1.20,1.24,1.22,1.30,1.28,1.31, 1.39,1.41,1.53,1.53,1.52,1.63,1.53,1.60,1.64,1.64, 1.74,1.70,1.69,1.77,1.79,1.83,1.80,1.88,1.92,1.93, 1.99,1.98,1.97,2.03,2.07,2.10,2.12,2.10,2.08,2.13, 2.11,2.12,2.20,2.27,2.25,2.20,2.29,2.28,2.36,2.39, 2.32,2.42,2.44,2.42,2.44,2.32,2.53,2.42,2.55,2.49, 2.59,2.47,2.62,2.49,2.54,2.61,2.73,2.55,2.67,2.71, 2.77,2.68,2.67,2.81,2.79,2.93,2.76,2.86,2.96,2.89, 2.98,2.97,2.80,2.95,2.98,2.92,2.87,2.98,2.96,2.99, 3.07,3.06,3.00,3.13,3.12,3.07,3.20,3.21,3.36,3.19, 3.30,3.13,3.23,3.25,3.20,3.15,3.26,3.36,3.28,3.46, 3.39,3.47,3.23,3.48,3.42,3.48,3.44,3.28,3.34,3.58, 3.49,3.65,3.35,3.49,3.52,3.58,3.55,3.50,3.50,3.55, 3.53,3.71,3.54,3.53,3.55,3.50,3.65,3.59,3.57,3.64, 3.83,3.80,3.76,3.61,3.62,3.85,3.78,3.67,3.72,3.87, 3.80,3.87,3.95,3.85,3.92,3.79,3.81,3.92,3.99,3.93, 4.03,3.95,4.05,3.95,4.04,4.02,4.14,3.95,4.15,4.13, 3.91,4.15,3.89,4.11,4.03,4.14,4.36,4.02,4.12,4.17, 4.03,4.07,4.14,4.36,4.34,4.07,4.35,4.28,4.40,4.27, 4.28,4.40,4.32,4.33,4.34,4.34,4.30,4.26,4.43,4.43, 4.29,4.35,4.47,4.33,4.31,4.30,4.62,4.55,4.41,4.38, 4.32,4.58,4.50,4.39,4.57,4.49,4.74,4.36,4.70,4.55, 4.45,4.72,4.34,4.79,4.48,4.55,4.74,4.53,4.60,4.57, 4.57,4.82,4.85,4.62,4.72,4.60,4.69,4.67,4.83,4.68, 4.95,4.68,4.82,4.83,4.81,4.61,4.84,4.66,4.69,4.76, 4.80,4.86,4.85,4.82,5.10,4.96,4.87,4.64,4.96,4.96, 4.81,4.75,5.20,5.04,4.92,4.92,4.92,4.91,5.32,5.06, 4.89,4.85,5.11,5.13,5.13,5.05,5.11,4.99,5.12,5.21, 5.11,5.12,5.18,5.20,5.17,5.35,5.37,5.43,5.04,5.22, 0.97,1.07,1.10,1.08,1.16,1.17,1.21,1.20,1.28,1.35, 1.38,1.38,1.41,1.44,1.51,1.56,1.50,1.52,1.59,1.65, 1.59,1.65,1.70,1.73,1.74,1.81,1.79,1.79,1.90,1.84, 1.92,1.92,1.97,1.99,2.03,2.00,2.01,2.06,2.07,2.13, 2.09,2.09,2.15,2.18,2.20,2.31,2.32,2.23,2.35,2.31, 2.43,2.35,2.32,2.29,2.24,2.41,2.42,2.43,2.43,2.43, 2.52,2.56,2.44,2.58,2.52,2.61,2.64,2.59,2.61,2.66, 2.54,2.59,2.67,2.80,2.69,2.85,2.64,2.71,2.83,2.80, 2.75,2.78,2.68,2.81,2.98,2.85,2.90,2.91,2.93,2.97, 2.88,3.01,3.00,3.03,2.87,3.05,3.10,3.03,3.03,3.14, 3.08,3.14,3.28,3.07,3.13,3.18,2.96,3.27,3.21,3.17, 3.22,3.29,3.28,3.28,3.47,3.39,3.21,3.51,3.45,3.39, 3.23,3.45,3.31,3.17,3.33,3.35,3.39,3.30,3.43,3.49, 3.59,3.60,3.50,3.51,3.59,3.54,3.53,3.66,3.61,3.65, 3.60,3.63,3.71,3.52,3.75,3.86,3.65,3.71,3.84,3.55, 3.80,3.79,3.90,3.83,3.80,3.76,3.81,3.79,3.73,3.77, 3.96,3.79,3.97,3.83,3.76,3.91,4.15,4.07,4.10,4.09, 3.92,4.02,4.05,3.97,4.01,3.83,4.13,3.99,3.89,3.97, 3.89,4.12,4.15,4.13,4.07,4.19,4.09,4.07,4.13,4.25, 4.34,4.16,4.11,4.05,4.17,4.31,4.19,4.27,4.31,4.31, 4.22,4.27,4.29,4.16,4.19,4.42,4.37,4.42,4.31,4.34, 4.28,4.54,4.36,4.34,4.42,4.52,4.39,4.43,4.44,4.33, 4.24,4.44,4.38,4.50,4.57,4.46,4.41,4.56,4.61,4.53, 4.62,4.55,4.39,4.55,4.64,4.46,4.52,4.45,4.63,4.66, 4.55,4.71,4.56,4.67,4.59,4.78,4.72,4.74,4.88,4.70, 4.65,4.87,4.59,4.84,4.91,4.72,4.76,4.82,4.74,4.78, 4.98,4.85,4.95,4.81,4.95,4.76,4.98,4.94,5.10,5.03, 4.76,4.83,4.94,5.07,5.07,5.10,4.81,5.14,4.94,4.92, 4.93,5.25,4.95,4.90,5.20,5.04,5.20,4.99,5.08,5.10, 0.99,1.04,1.06,1.11,1.12,1.18,1.19,1.28,1.27,1.28, 1.42,1.36,1.36,1.45,1.43,1.48,1.55,1.58,1.51,1.55, 1.65,1.59,1.67,1.71,1.74,1.73,1.74,1.86,1.78,1.84, 1.89,1.87,1.86,1.97,1.90,1.98,1.98,1.97,2.07,2.01, 2.15,2.07,2.09,2.16,2.23,2.19,2.15,2.18,2.23,2.28, 2.24,2.25,2.24,2.29,2.33,2.34,2.46,2.39,2.36,2.41, 2.34,2.56,2.43,2.49,2.52,2.49,2.52,2.47,2.56,2.61, 2.64,2.68,2.72,2.65,2.67,2.77,2.70,2.61,2.73,2.86, 2.75,2.81,2.74,2.78,2.90,2.83,2.85,2.86,3.02,2.89, 2.94,2.95,2.89,2.84,2.97,2.92,3.02,3.14,2.94,2.95, 3.03,3.10,3.01,3.11,3.10,3.11,3.27,3.11,3.26,3.08, 3.31,3.24,3.20,3.20,3.28,3.23,3.22,3.28,3.31,3.31, 3.35,3.35,3.31,3.35,3.41,3.37,3.30,3.37,3.39,3.44, 3.46,3.47,3.36,3.28,3.56,3.39,3.47,3.50,3.61,3.58, 3.61,3.45,3.51,3.54,3.52,3.50,3.66,3.66,3.74,3.50, 3.65,3.59,3.66,3.79,3.47,3.76,3.84,3.63,3.90,3.85, 4.01,3.79,3.76,3.77,3.77,3.81,3.79,3.83,3.85,3.80, 3.78,3.88,3.86,3.85,3.82,3.95,3.92,3.94,3.75,3.89, 3.83,4.09,4.13,3.93,3.93,4.03,4.04,4.06,3.99,4.06, 3.92,4.39,4.24,4.12,4.15,4.17,4.23,4.18,4.24,4.33, 4.16,4.11,4.11,4.20,4.16,4.19,4.19,4.38,4.30,4.30, 4.27,4.22,4.24,4.38,4.33,4.34,4.37,4.32,4.31,4.49, 4.30,4.42,4.56,4.56,4.44,4.56,4.38,4.36,4.36,4.46, 4.41,4.39,4.45,4.62,4.46,4.58,4.71,4.60,4.55,4.62, 4.47,4.68,4.60,4.60,4.75,4.54,4.57,4.53,4.74,4.79, 4.58,4.70,4.87,4.87,4.76,4.84,4.61,4.78,4.75,4.75, 4.72,4.72,4.78,4.84,4.85,4.82,4.86,4.76,4.80,4.95, 4.79,4.84,4.86,5.01,4.99,4.87,4.93,4.94,4.91,5.04, 4.84,4.88,5.05,5.05,5.00,4.99,4.89,4.96,4.92,4.91, 0.96,1.01,1.06,1.09,1.12,1.17,1.17,1.21,1.24,1.25, 1.28,1.36,1.37,1.39,1.44,1.44,1.44,1.48,1.57,1.58, 1.59,1.59,1.66,1.61,1.67,1.66,1.69,1.76,1.74,1.76, 1.79,1.88,1.91,1.90,1.90,1.93,1.93,1.95,2.01,1.99, 2.09,2.08,2.12,2.15,2.09,2.17,2.15,2.24,2.19,2.18, 2.16,2.28,2.25,2.22,2.23,2.32,2.35,2.29,2.35,2.41, 2.32,2.39,2.44,2.47,2.50,2.55,2.56,2.56,2.57,2.54, 2.53,2.59,2.58,2.70,2.62,2.68,2.73,2.71,2.60,2.81, 2.66,2.80,2.67,2.80,2.77,2.86,2.89,2.88,2.75,2.95, 2.87,2.83,2.91,2.88,2.95,2.85,2.98,2.95,2.96,2.95, 2.98,3.01,3.08,2.88,3.01,3.06,3.21,3.05,3.04,3.18, 3.10,3.33,3.18,3.13,3.24,3.21,3.16,3.26,3.32,3.24, 3.27,3.22,3.31,3.19,3.23,3.32,3.41,3.45,3.32,3.33, 3.39,3.45,3.44,3.44,3.33,3.52,3.34,3.37,3.56,3.41, 3.48,3.61,3.54,3.38,3.47,3.41,3.43,3.55,3.70,3.60, 3.59,3.51,3.62,3.69,3.50,3.63,3.69,3.59,3.67,3.60, 3.63,3.71,3.70,3.86,3.79,3.77,3.95,3.75,3.80,3.78, 3.84,3.74,3.87,3.81,4.00,3.98,3.88,3.92,3.85,3.77, 3.90,3.87,3.89,3.97,4.05,4.29,4.06,3.99,3.99,4.07, 4.09,4.08,4.05,4.05,3.96,4.02,4.05,4.18,4.13,4.10, 4.13,4.09,4.00,4.23,4.25,4.13,4.11,4.10,4.24,4.18, 4.24,4.28,4.32,4.31,4.18,4.24,4.34,4.21,4.31,4.14, 4.47,4.36,4.40,4.21,4.42,4.40,4.25,4.36,4.38,4.43, 4.39,4.47,4.41,4.38,4.37,4.58,4.39,4.50,4.40,4.67, 4.34,4.63,4.49,4.47,4.54,4.52,4.42,4.49,4.58,4.54, 4.65,4.54,4.65,4.69,4.56,4.39,4.52,4.72,4.68,4.90, 4.68,4.80,4.68,4.61,4.80,4.73,4.88,4.64,4.80,4.70, 4.77,4.87,4.64,4.79,4.71,5.01,4.73,4.66,4.73,4.83, 5.05,4.88,4.83,4.88,4.97,4.68,4.88,4.77,4.89,4.95, 0.95,0.95,1.05,1.08,1.13,1.08,1.20,1.20,1.23,1.26, 1.28,1.29,1.30,1.37,1.41,1.47,1.42,1.49,1.49,1.58, 1.60,1.59,1.57,1.71,1.69,1.76,1.67,1.69,1.69,1.79, 1.82,1.82,1.83,1.89,1.87,1.92,1.89,1.97,1.98,1.91, 1.95,2.04,2.06,2.15,2.12,2.08,2.10,2.18,2.12,2.14, 2.08,2.17,2.19,2.19,2.24,2.22,2.22,2.24,2.27,2.25, 2.35,2.35,2.35,2.38,2.47,2.36,2.38,2.51,2.51,2.51, 2.46,2.50,2.55,2.48,2.62,2.56,2.52,2.62,2.73,2.66, 2.72,2.59,2.73,2.77,2.74,2.73,2.77,2.79,2.82,2.73, 2.75,2.73,2.86,2.85,2.81,2.90,2.94,2.82,2.90,2.88, 2.98,2.90,3.04,2.94,3.01,3.05,2.92,2.99,3.00,3.07, 3.10,3.06,3.11,3.07,3.19,3.11,3.08,3.28,3.25,3.19, 3.21,3.34,3.30,3.12,3.30,3.25,3.24,3.18,3.31,3.14, 3.26,3.19,3.18,3.41,3.38,3.30,3.45,3.41,3.44,3.31, 3.49,3.43,3.46,3.40,3.47,3.65,3.41,3.52,3.53,3.70, 3.54,3.60,3.50,3.58,3.59,3.45,3.69,3.65,3.54,3.57, 3.69,3.65,3.58,3.79,3.69,3.71,3.79,3.72,3.64,3.81, 3.49,3.76,3.66,3.84,3.76,3.70,3.87,3.96,3.93,3.82, 3.85,3.79,3.72,3.94,3.89,3.91,3.88,3.89,3.85,4.07, 3.91,4.05,4.07,4.04,3.96,4.13,3.98,4.05,4.03,4.06, 4.07,4.00,4.22,4.05,4.13,4.03,4.27,4.11,4.21,4.22, 4.09,4.31,4.04,4.17,4.17,4.12,4.25,4.15,4.19,4.18, 4.17,4.26,4.25,4.14,4.38,4.20,4.39,4.29,4.07,4.13, 4.36,4.32,4.37,4.22,4.48,4.40,4.45,4.40,4.41,4.24, 4.50,4.38,4.35,4.45,4.40,4.20,4.48,4.60,4.40,4.63, 4.31,4.47,4.44,4.61,4.59,4.57,4.66,4.48,4.67,4.61, 4.53,4.56,4.69,4.54,4.72,4.63,4.68,4.35,4.66,4.70, 4.58,4.62,4.67,4.71,4.68,4.82,4.63,4.75,4.93,4.67, 4.82,4.83,4.78,4.69,4.69,4.84,4.65,4.90,4.85,4.78, 0.89,0.96,0.99,1.02,1.05,1.09,1.15,1.12,1.21,1.24, 1.25,1.31,1.33,1.34,1.35,1.42,1.44,1.47,1.46,1.42, 1.53,1.60,1.55,1.55,1.64,1.64,1.69,1.67,1.66,1.75, 1.76,1.81,1.80,1.85,1.78,1.88,1.91,1.94,1.84,1.89, 1.98,2.00,1.99,2.00,1.94,2.04,2.13,2.10,2.07,2.12, 2.15,2.05,2.22,2.26,2.18,2.24,2.13,2.20,2.28,2.31, 2.38,2.26,2.26,2.39,2.48,2.32,2.44,2.37,2.36,2.35, 2.42,2.51,2.47,2.44,2.49,2.54,2.52,2.51,2.57,2.52, 2.61,2.59,2.65,2.74,2.48,2.76,2.64,2.76,2.71,2.68, 2.68,2.75,2.79,2.82,2.71,2.89,2.74,2.75,2.86,2.79, 2.79,2.89,2.96,3.03,2.88,2.99,3.00,3.02,2.95,3.06, 2.90,3.02,3.16,3.04,2.96,3.01,3.22,3.16,3.06,3.09, 3.12,3.12,3.17,3.09,3.21,3.25,3.12,3.24,3.16,3.09, 3.29,3.18,3.20,3.28,3.30,3.26,3.34,3.34,3.36,3.30, 3.47,3.41,3.48,3.40,3.40,3.46,3.33,3.54,3.46,3.52, 3.54,3.57,3.35,3.50,3.54,3.47,3.44,3.45,3.53,3.45, 3.51,3.45,3.56,3.60,3.50,3.60,3.58,3.69,3.71,3.62, 3.60,3.70,3.80,3.68,3.69,3.80,3.75,3.75,3.69,3.85, 3.87,3.75,3.85,3.75,3.89,3.68,3.80,3.81,3.86,3.99, 3.90,3.86,3.86,3.74,3.81,3.86,4.11,3.83,3.94,3.93, 3.95,4.12,4.12,3.92,3.95,4.04,4.06,4.06,4.06,4.08, 3.99,3.96,3.92,4.16,4.09,4.07,4.15,3.96,4.19,4.28, 4.14,4.08,4.23,4.20,4.31,4.35,4.30,4.11,4.23,4.06, 4.27,4.39,4.23,4.40,4.51,4.26,4.31,4.11,4.33,4.30, 4.36,4.27,4.22,4.35,4.28,4.41,4.35,4.62,4.51,4.28, 4.22,4.40,4.38,4.45,4.26,4.40,4.56,4.69,4.55,4.33, 4.52,4.43,4.42,4.61,4.51,4.47,4.37,4.59,4.66,4.68, 4.43,4.64,4.68,4.59,4.75,4.62,4.58,4.67,4.65,4.73, 4.69,4.57,4.55,4.87,4.52,4.76,4.64,4.67,4.80,4.51, 0.89,0.94,0.97,1.00,1.04,1.09,1.12,1.12,1.21,1.17, 1.24,1.23,1.28,1.32,1.38,1.33,1.39,1.38,1.39,1.40, 1.51,1.58,1.50,1.56,1.57,1.62,1.59,1.67,1.64,1.68, 1.67,1.71,1.71,1.76,1.77,1.83,1.84,1.92,1.87,1.98, 1.98,1.94,1.97,1.96,2.01,1.96,2.00,1.97,2.03,2.09, 2.05,2.09,2.13,2.23,2.17,2.25,2.17,2.14,2.26,2.28, 2.26,2.23,2.28,2.33,2.25,2.32,2.36,2.23,2.39,2.28, 2.43,2.47,2.39,2.42,2.43,2.59,2.50,2.57,2.57,2.50, 2.60,2.45,2.53,2.60,2.62,2.61,2.63,2.65,2.60,2.65, 2.66,2.66,2.71,2.67,2.76,2.69,2.72,2.79,2.76,2.77, 2.78,2.81,2.80,2.73,2.75,2.87,2.91,2.92,2.98,2.98, 2.88,2.94,3.01,3.00,2.84,3.08,3.04,3.01,3.11,3.21, 3.04,2.92,3.17,3.09,3.08,2.98,3.15,3.16,3.20,3.11, 3.13,3.11,3.10,3.25,3.16,3.15,3.06,3.30,3.21,3.19, 3.16,3.32,3.32,3.25,3.36,3.32,3.37,3.38,3.31,3.32, 3.32,3.42,3.35,3.34,3.35,3.34,3.31,3.35,3.49,3.51, 3.41,3.58,3.40,3.50,3.58,3.46,3.62,3.49,3.63,3.64, 3.59,3.63,3.66,3.67,3.51,3.61,3.70,3.74,3.54,3.73, 3.75,3.79,3.66,3.68,3.67,3.69,3.77,3.70,3.85,3.68, 3.67,3.62,3.81,3.81,3.88,3.89,3.80,3.80,3.82,3.97, 3.99,3.86,3.78,3.91,3.96,3.98,3.87,3.94,3.91,3.89, 3.86,3.88,3.93,3.93,3.94,3.98,3.89,3.97,4.14,4.00, 4.06,3.78,4.13,3.99,4.13,4.16,4.14,4.08,4.11,4.08, 4.16,4.12,4.22,4.06,4.17,3.96,4.14,4.21,4.26,4.13, 4.33,4.31,4.11,4.17,4.18,4.17,4.30,4.41,4.32,4.20, 4.22,4.23,4.36,4.44,4.24,4.32,4.47,4.23,4.32,4.40, 4.46,4.46,4.36,4.49,4.48,4.51,4.37,4.39,4.51,4.47, 4.42,4.63,4.30,4.53,4.47,4.44,4.53,4.63,4.61,4.58, 4.76,4.70,4.46,4.61,4.59,4.53,4.63,4.66,4.67,4.68, 0.87,0.92,0.97,1.00,0.99,1.05,1.06,1.15,1.17,1.15, 1.19,1.26,1.24,1.30,1.29,1.39,1.37,1.43,1.36,1.43, 1.48,1.47,1.50,1.51,1.54,1.55,1.56,1.70,1.66,1.63, 1.62,1.72,1.69,1.77,1.71,1.77,1.75,1.81,1.85,1.88, 1.87,1.92,1.89,1.83,1.87,1.89,1.96,1.99,1.96,1.98, 2.03,2.11,2.04,2.09,2.09,2.13,2.03,2.14,2.16,2.24, 2.25,2.22,2.11,2.26,2.21,2.22,2.27,2.26,2.29,2.30, 2.27,2.34,2.37,2.38,2.32,2.41,2.40,2.42,2.43,2.43, 2.38,2.54,2.40,2.46,2.49,2.47,2.55,2.51,2.54,2.72, 2.65,2.52,2.54,2.55,2.64,2.63,2.69,2.66,2.59,2.68, 2.68,2.68,2.70,2.79,2.80,2.78,2.78,2.77,2.85,2.73, 2.86,2.84,2.84,2.87,2.98,2.91,3.00,2.93,2.94,2.98, 3.05,2.84,3.03,3.02,3.08,2.94,2.93,2.98,3.06,3.05, 3.04,2.88,3.04,3.16,3.07,3.10,3.14,3.26,3.14,3.16, 3.08,3.10,3.21,3.05,3.22,3.14,3.11,3.39,3.37,3.25, 3.47,3.35,3.25,3.40,3.34,3.20,3.35,3.47,3.40,3.41, 3.35,3.35,3.37,3.31,3.48,3.46,3.31,3.53,3.37,3.50, 3.55,3.61,3.44,3.44,3.45,3.51,3.43,3.54,3.45,3.57, 3.61,3.54,3.56,3.58,3.65,3.61,3.50,3.66,3.71,3.55, 3.55,3.56,3.63,3.77,3.71,3.58,3.82,3.79,3.64,3.73, 3.79,3.65,3.77,3.82,3.89,3.81,3.78,3.79,3.69,3.91, 3.84,3.81,3.94,3.89,3.76,3.86,3.97,3.95,4.01,3.89, 4.03,3.75,3.95,4.02,3.86,4.04,4.08,4.03,4.04,4.19, 4.08,4.03,4.04,3.96,4.06,3.95,4.16,4.13,3.99,4.06, 4.09,4.12,4.09,4.20,4.30,4.12,4.21,4.09,4.20,4.26, 4.13,4.22,4.31,4.19,3.99,4.20,4.20,4.19,4.34,4.19, 4.21,4.21,4.12,4.32,4.28,4.33,4.35,4.23,4.34,4.18, 4.39,4.47,4.46,4.42,4.15,4.59,4.28,4.21,4.40,4.30, 4.23,4.21,4.36,4.36,4.37,4.46,4.54,4.40,4.47,4.54, 0.85,0.93,0.91,0.92,0.99,1.03,1.05,1.11,1.10,1.12, 1.15,1.19,1.22,1.29,1.27,1.30,1.32,1.31,1.38,1.41, 1.40,1.41,1.48,1.49,1.46,1.49,1.51,1.61,1.56,1.53, 1.64,1.63,1.65,1.68,1.71,1.67,1.69,1.71,1.72,1.79, 1.82,1.82,1.81,1.75,1.84,1.88,1.91,1.89,1.95,2.07, 1.97,2.03,1.94,1.94,2.05,2.05,2.04,2.12,2.02,2.11, 2.13,2.16,2.07,2.11,2.24,2.15,2.33,2.18,2.24,2.31, 2.28,2.29,2.25,2.32,2.31,2.38,2.35,2.35,2.38,2.41, 2.35,2.50,2.46,2.50,2.42,2.55,2.56,2.42,2.47,2.53, 2.47,2.52,2.55,2.64,2.49,2.53,2.57,2.57,2.50,2.65, 2.68,2.69,2.68,2.66,2.74,2.72,2.72,2.72,2.72,2.75, 2.76,2.79,2.80,2.81,2.82,2.85,2.84,2.95,2.77,2.90, 2.86,2.89,2.97,2.97,2.97,2.91,2.98,3.02,2.99,2.78, 2.99,3.07,3.05,3.01,3.10,2.88,2.93,3.03,3.07,3.01, 3.07,3.12,3.19,3.21,3.07,3.11,3.06,3.10,3.11,3.21, 3.21,3.21,3.22,3.25,3.20,3.19,3.30,3.17,3.27,3.21, 3.28,3.23,3.26,3.30,3.27,3.34,3.40,3.38,3.44,3.39, 3.33,3.25,3.29,3.40,3.44,3.38,3.30,3.57,3.48,3.41, 3.49,3.54,3.40,3.48,3.40,3.50,3.45,3.40,3.51,3.47, 3.50,3.54,3.54,3.62,3.59,3.71,3.65,3.73,3.67,3.45, 3.67,3.74,3.69,3.63,3.54,3.68,3.69,3.50,3.80,3.68, 3.71,3.67,3.80,3.83,3.77,3.92,3.71,3.67,3.94,3.86, 3.73,3.81,3.83,3.99,3.63,3.87,3.91,3.91,3.84,3.78, 3.84,4.02,3.84,3.85,3.94,3.91,3.77,3.94,4.11,4.03, 4.02,4.03,3.97,4.04,3.87,4.15,3.87,4.07,4.10,4.06, 4.05,4.06,3.99,4.10,3.99,3.97,3.94,4.04,4.03,4.00, 4.10,4.26,4.29,4.08,4.33,4.15,4.19,4.29,4.28,4.08, 4.26,4.16,4.31,4.17,4.24,4.21,4.23,4.32,4.41,4.14, 4.21,4.23,4.24,4.40,4.21,4.42,4.26,4.33,4.34,4.12, 0.82,0.84,0.87,0.93,0.97,0.99,1.02,1.03,1.05,1.07, 1.14,1.18,1.16,1.20,1.20,1.25,1.23,1.28,1.35,1.36, 1.36,1.37,1.37,1.43,1.46,1.50,1.51,1.51,1.56,1.49, 1.56,1.61,1.60,1.67,1.62,1.65,1.64,1.70,1.71,1.70, 1.80,1.72,1.75,1.68,1.83,1.88,1.82,1.88,1.83,1.92, 1.89,1.94,1.93,2.00,1.94,2.04,2.04,2.00,2.08,2.02, 2.09,2.22,2.09,2.14,2.11,2.21,2.10,2.07,2.08,2.13, 2.18,2.11,2.23,2.17,2.28,2.29,2.24,2.26,2.26,2.27, 2.32,2.33,2.17,2.46,2.30,2.44,2.53,2.36,2.43,2.33, 2.48,2.59,2.50,2.49,2.50,2.54,2.62,2.53,2.41,2.57, 2.60,2.50,2.63,2.52,2.55,2.48,2.69,2.68,2.62,2.59, 2.74,2.74,2.62,2.68,2.75,2.84,2.73,2.68,2.68,2.87, 2.71,2.84,2.85,2.78,2.78,2.86,2.74,3.03,2.85,2.85, 2.97,2.91,2.94,2.93,2.86,2.96,3.00,2.98,2.80,3.06, 3.03,2.98,3.12,3.06,3.05,3.14,3.03,3.03,2.95,3.22, 3.05,3.01,3.11,3.20,3.27,3.09,3.24,3.10,3.17,3.19, 3.23,3.14,3.16,3.29,3.17,3.37,3.28,3.22,3.31,3.28, 3.34,3.42,3.34,3.30,3.32,3.28,3.37,3.23,3.27,3.38, 3.42,3.42,3.37,3.45,3.54,3.44,3.38,3.55,3.33,3.42, 3.34,3.46,3.47,3.52,3.45,3.52,3.49,3.37,3.48,3.42, 3.53,3.65,3.56,3.65,3.42,3.62,3.54,3.75,3.77,3.64, 3.68,3.55,3.71,3.77,3.56,3.61,3.68,3.71,3.60,3.58, 3.69,3.63,3.59,3.62,3.77,3.73,3.76,3.67,3.73,3.78, 3.71,3.69,3.76,3.84,3.78,3.85,3.98,3.72,3.69,3.97, 3.78,3.89,3.76,3.80,3.88,3.80,3.84,3.82,3.93,3.98, 3.97,3.89,4.14,4.09,3.80,3.96,3.90,3.93,4.01,4.06, 3.99,4.01,3.96,4.08,3.96,4.14,4.09,4.15,4.11,4.02, 4.18,3.85,4.05,3.91,4.14,3.98,4.14,3.97,4.08,4.24, 4.12,4.11,4.23,4.23,4.14,4.17,4.24,4.37,4.21,4.07, 0.78,0.82,0.83,0.90,0.91,0.94,0.97,1.02,1.00,1.03, 1.11,1.11,1.16,1.12,1.20,1.21,1.22,1.31,1.28,1.27, 1.30,1.33,1.34,1.35,1.39,1.42,1.41,1.42,1.46,1.40, 1.54,1.53,1.51,1.64,1.55,1.62,1.61,1.66,1.70,1.59, 1.66,1.73,1.67,1.75,1.77,1.79,1.82,1.80,1.82,1.83, 1.87,1.86,1.83,1.88,1.91,1.98,1.93,1.95,1.94,2.01, 2.01,1.98,2.01,2.03,2.06,2.03,2.02,2.08,2.17,2.05, 2.12,2.17,2.22,2.15,2.14,2.22,2.13,2.20,2.24,2.13, 2.31,2.24,2.26,2.25,2.33,2.27,2.32,2.29,2.36,2.36, 2.33,2.36,2.38,2.41,2.37,2.36,2.33,2.45,2.51,2.50, 2.54,2.47,2.49,2.41,2.54,2.60,2.54,2.53,2.64,2.62, 2.59,2.51,2.62,2.62,2.64,2.71,2.68,2.65,2.76,2.59, 2.71,2.75,2.68,2.63,2.67,2.79,2.76,2.79,2.80,2.72, 2.77,2.63,2.78,2.82,2.81,2.79,2.92,2.86,2.84,2.84, 2.89,2.98,3.01,3.01,2.93,2.96,3.04,3.00,2.98,2.93, 3.01,2.99,2.94,2.94,3.03,3.04,3.05,3.13,2.95,3.05, 3.05,3.07,3.09,3.04,3.10,3.01,3.05,3.18,3.12,3.24, 3.09,3.12,3.11,3.08,3.19,3.09,3.26,3.24,3.19,3.36, 3.22,3.29,3.18,3.29,3.23,3.30,3.33,3.32,3.24,3.33, 3.37,3.36,3.33,3.22,3.29,3.42,3.36,3.47,3.48,3.36, 3.49,3.39,3.44,3.38,3.41,3.31,3.52,3.61,3.60,3.53, 3.39,3.46,3.59,3.51,3.51,3.51,3.36,3.50,3.46,3.55, 3.62,3.53,3.55,3.46,3.67,3.66,3.59,3.64,3.67,3.63, 3.65,3.63,3.65,3.67,3.59,3.65,3.80,3.73,3.75,3.80, 3.71,3.64,3.66,3.80,3.83,3.75,3.73,3.76,3.65,3.79, 3.89,3.85,3.78,3.80,3.82,3.69,4.02,3.90,4.10,3.93, 3.87,3.94,3.87,3.87,4.01,3.95,3.98,3.95,3.92,3.82, 3.97,4.02,3.69,3.98,3.89,3.97,4.06,4.01,4.07,3.97, 3.98,4.00,4.08,4.20,3.94,3.94,3.97,3.97,4.21,4.32, 0.75,0.82,0.82,0.86,0.87,0.91,0.95,1.00,1.01,1.06, 1.03,1.07,1.13,1.13,1.18,1.11,1.16,1.26,1.20,1.26, 1.28,1.29,1.32,1.31,1.32,1.40,1.44,1.41,1.42,1.43, 1.42,1.42,1.44,1.52,1.52,1.53,1.57,1.54,1.58,1.60, 1.63,1.67,1.63,1.63,1.71,1.69,1.70,1.77,1.75,1.66, 1.77,1.81,1.81,1.75,1.82,1.79,1.83,1.88,1.94,1.85, 1.90,1.96,1.94,1.87,1.99,1.93,1.95,2.02,2.10,2.10, 2.08,2.07,2.14,2.13,2.12,2.10,2.12,2.10,2.14,2.17, 2.22,2.15,2.19,2.23,2.18,2.27,2.27,2.19,2.28,2.26, 2.29,2.25,2.32,2.29,2.22,2.35,2.35,2.43,2.37,2.41, 2.35,2.34,2.42,2.37,2.33,2.35,2.38,2.47,2.45,2.45, 2.51,2.51,2.57,2.44,2.55,2.64,2.57,2.56,2.64,2.44, 2.60,2.58,2.64,2.59,2.71,2.67,2.67,2.70,2.72,2.75, 2.66,2.79,2.62,2.81,2.72,2.70,2.73,2.76,2.76,2.82, 2.79,2.73,2.72,2.89,2.79,2.86,2.89,2.88,2.97,2.85, 2.80,2.97,2.85,2.88,2.81,2.91,3.02,2.93,2.96,3.03, 3.00,3.03,3.04,3.13,2.79,3.07,3.01,3.04,2.96,3.04, 3.02,3.08,3.07,3.10,3.22,2.96,3.08,3.07,3.13,3.19, 3.00,3.06,3.31,3.07,3.19,3.15,3.10,3.19,3.09,3.16, 3.30,3.27,3.30,3.26,3.29,3.23,3.36,3.22,3.34,3.56, 3.31,3.25,3.35,3.44,3.25,3.35,3.51,3.28,3.37,3.38, 3.37,3.48,3.42,3.52,3.32,3.35,3.28,3.44,3.46,3.50, 3.48,3.42,3.40,3.55,3.36,3.52,3.51,3.54,3.59,3.55, 3.54,3.58,3.53,3.46,3.55,3.60,3.50,3.54,3.62,3.59, 3.59,3.61,3.63,3.60,3.68,3.68,3.64,3.67,3.74,3.68, 3.63,3.66,3.80,3.75,3.83,3.51,3.71,3.61,3.89,3.57, 3.78,3.72,3.64,3.70,3.83,3.79,3.84,3.76,3.75,3.75, 3.78,3.79,3.95,3.70,3.78,3.89,3.66,3.79,3.76,3.83, 3.91,3.79,4.00,3.87,3.94,3.87,3.93,3.89,3.84,3.95, 0.75,0.74,0.79,0.84,0.88,0.86,0.86,0.91,0.98,0.99, 1.02,1.02,1.06,1.08,1.11,1.09,1.16,1.14,1.17,1.18, 1.21,1.24,1.24,1.25,1.33,1.33,1.34,1.30,1.36,1.37, 1.39,1.45,1.45,1.45,1.47,1.52,1.46,1.53,1.52,1.55, 1.54,1.55,1.58,1.60,1.61,1.66,1.70,1.65,1.65,1.68, 1.73,1.76,1.71,1.76,1.79,1.77,1.79,1.86,1.76,1.83, 1.80,1.82,1.89,1.92,1.86,1.90,1.90,1.97,2.00,1.83, 1.98,1.94,2.03,2.00,1.99,1.97,2.05,1.98,2.03,2.13, 2.16,2.11,2.14,2.11,2.17,2.15,2.16,2.17,2.21,2.20, 2.17,2.17,2.15,2.21,2.23,2.21,2.20,2.27,2.36,2.28, 2.29,2.29,2.30,2.27,2.33,2.36,2.29,2.42,2.40,2.41, 2.37,2.41,2.36,2.46,2.45,2.52,2.52,2.51,2.55,2.41, 2.51,2.49,2.54,2.52,2.55,2.61,2.55,2.63,2.55,2.66, 2.62,2.55,2.60,2.61,2.63,2.63,2.61,2.65,2.63,2.73, 2.71,2.68,2.75,2.65,2.75,2.77,2.81,2.79,2.75,2.65, 2.72,2.88,2.84,2.81,2.89,2.81,2.75,2.83,2.86,2.76, 2.83,2.91,2.91,2.83,2.83,2.92,2.90,2.97,2.90,2.87, 2.80,2.99,2.93,2.96,2.88,3.03,2.95,3.03,2.98,3.02, 3.10,3.11,3.00,2.97,3.01,3.01,3.14,3.04,2.95,2.94, 3.01,3.15,3.04,3.10,3.05,3.16,3.15,3.13,3.12,3.07, 3.14,3.10,3.26,3.23,3.31,3.18,3.30,3.19,3.32,3.31, 3.35,3.23,3.23,3.34,3.29,3.22,3.23,3.22,3.33,3.35, 3.37,3.22,3.47,3.45,3.37,3.46,3.33,3.31,3.31,3.25, 3.27,3.42,3.36,3.24,3.46,3.42,3.37,3.42,3.56,3.43, 3.59,3.50,3.55,3.58,3.70,3.42,3.65,3.66,3.42,3.54, 3.55,3.56,3.53,3.49,3.57,3.51,3.48,3.56,3.56,3.49, 3.69,3.69,3.62,3.69,3.43,3.56,3.68,3.62,3.80,3.80, 3.71,3.70,3.71,3.65,3.73,3.67,3.73,3.98,3.70,3.68, 3.88,3.66,3.74,3.86,3.85,3.68,3.64,3.82,3.84,3.81, 1.05,1.10,1.14,1.17,1.24,1.23,1.27,1.40,1.41,1.45, 1.45,1.46,1.51,1.52,1.58,1.62,1.59,1.75,1.68,1.70, 1.82,1.77,1.83,1.87,1.89,1.92,1.89,1.93,1.97,2.03, 1.90,2.01,2.07,2.09,2.17,2.11,2.22,2.27,2.25,2.17, 2.35,2.41,2.34,2.26,2.30,2.41,2.36,2.35,2.42,2.49, 2.50,2.52,2.49,2.37,2.54,2.50,2.63,2.72,2.56,2.64, 2.72,2.61,2.67,2.83,2.77,2.80,2.84,2.90,2.86,2.91, 2.92,2.88,2.97,2.88,2.77,2.98,3.00,2.98,3.01,3.04, 3.00,2.90,3.11,3.06,3.05,3.09,3.17,3.07,3.19,3.16, 3.16,3.26,3.13,3.19,3.38,3.21,3.24,3.29,3.26,3.27, 3.25,3.27,3.37,3.21,3.25,3.33,3.35,3.38,3.47,3.41, 3.47,3.50,3.53,3.56,3.69,3.40,3.58,3.64,3.69,3.53, 3.65,3.59,3.68,3.63,3.61,3.74,3.66,3.72,3.88,3.75, 3.71,3.57,3.68,3.89,3.71,3.91,3.94,3.80,4.05,4.00, 3.90,3.89,3.92,4.07,4.04,4.03,3.90,3.94,3.93,3.86, 4.05,4.10,4.01,3.99,3.92,4.02,4.09,4.06,4.09,4.18, 4.12,4.07,4.26,4.14,4.39,4.28,4.24,4.18,4.27,4.17, 4.05,4.25,4.25,4.15,4.18,4.23,4.35,4.45,4.30,4.36, 4.27,4.27,4.32,4.51,4.46,4.44,4.42,4.46,4.38,4.53, 4.48,4.39,4.81,4.54,4.66,4.46,4.51,4.50,4.58,4.52, 4.57,4.58,4.76,4.61,4.84,4.73,4.53,4.86,4.64,4.70, 4.64,4.72,4.92,4.64,5.01,4.65,4.76,4.80,4.84,4.84, 4.77,4.82,4.84,4.74,4.73,5.08,4.73,4.73,4.92,4.95, 4.98,4.91,4.83,4.75,4.96,5.05,4.98,5.08,4.96,4.99, 5.06,5.18,5.13,5.03,5.22,5.12,5.30,5.25,5.26,5.26, 5.12,4.89,5.35,5.12,5.22,5.30,5.25,5.19,5.31,5.18, 5.10,5.21,5.25,5.13,5.29,5.39,5.31,5.34,5.16,5.09, 5.45,5.34,5.19,5.42,5.23,5.18,5.38,5.22,5.42,5.40, 5.29,5.54,5.50,5.22,5.40,5.48,5.39,5.66,5.52,5.48, 1.01,1.07,1.08,1.12,1.22,1.22,1.31,1.28,1.33,1.35, 1.41,1.42,1.47,1.50,1.51,1.57,1.58,1.65,1.63,1.69, 1.67,1.71,1.73,1.78,1.84,1.81,1.84,1.89,1.98,1.92, 1.96,2.02,1.96,2.07,2.06,2.04,2.11,2.04,2.10,2.14, 2.17,2.16,2.26,2.35,2.21,2.22,2.31,2.33,2.36,2.24, 2.38,2.45,2.50,2.37,2.36,2.45,2.51,2.63,2.51,2.63, 2.58,2.60,2.58,2.51,2.69,2.63,2.79,2.61,2.67,2.65, 2.64,2.82,2.74,2.90,2.76,2.71,2.80,2.91,2.78,2.87, 2.92,2.92,2.93,2.91,2.91,2.94,2.96,3.03,3.02,3.11, 3.11,3.13,2.96,3.09,3.08,3.14,3.12,3.22,3.09,3.19, 3.28,3.13,3.23,3.30,3.21,3.33,3.35,3.31,3.31,3.26, 3.29,3.38,3.51,3.35,3.30,3.45,3.51,3.43,3.50,3.36, 3.43,3.50,3.47,3.56,3.61,3.50,3.62,3.73,3.48,3.66, 3.54,3.61,3.65,3.70,3.66,3.83,3.71,3.73,3.76,3.66, 3.80,3.69,3.59,3.79,3.69,3.80,3.86,3.71,3.85,3.72, 3.88,3.86,3.82,3.88,3.87,4.04,3.95,4.04,3.95,3.95, 3.93,3.88,3.76,4.06,3.96,4.05,4.07,3.95,4.14,4.02, 4.03,4.28,4.14,4.02,4.21,4.01,4.20,4.23,4.07,4.12, 3.94,4.24,4.12,4.25,4.23,4.22,4.27,4.14,4.27,4.41, 4.18,4.45,4.39,4.14,4.38,4.38,4.36,4.44,4.39,4.20, 4.46,4.41,4.45,4.52,4.50,4.27,4.53,4.22,4.55,4.58, 4.71,4.67,4.53,4.63,4.57,4.55,4.55,4.51,4.68,4.55, 4.54,4.56,4.85,4.68,4.84,4.83,4.74,4.63,4.67,4.62, 4.61,4.69,4.81,4.79,4.82,4.93,4.73,4.74,4.90,4.95, 4.73,4.89,4.91,4.95,4.82,4.98,5.00,4.92,4.88,4.87, 4.90,5.00,4.95,4.99,4.95,4.88,5.12,4.94,5.09,5.00, 5.04,4.97,5.11,5.12,4.96,5.27,5.11,4.95,5.05,5.27, 5.09,5.23,5.04,5.06,5.17,5.06,5.04,5.05,5.11,5.26, 5.05,5.25,5.15,5.31,5.15,5.26,5.29,5.35,5.28,5.35, 0.96,1.00,1.08,1.13,1.14,1.16,1.21,1.24,1.27,1.34, 1.39,1.40,1.39,1.44,1.49,1.51,1.52,1.54,1.57,1.64, 1.66,1.67,1.68,1.74,1.74,1.79,1.78,1.82,1.88,1.89, 1.95,1.92,1.91,1.97,1.97,1.95,2.03,2.07,2.13,2.12, 2.16,2.15,2.22,2.16,2.16,2.27,2.24,2.30,2.24,2.23, 2.29,2.33,2.31,2.45,2.43,2.45,2.44,2.40,2.46,2.47, 2.57,2.49,2.50,2.50,2.48,2.56,2.56,2.59,2.59,2.66, 2.77,2.74,2.64,2.56,2.79,2.70,2.79,2.69,2.86,2.77, 2.71,2.77,2.81,2.79,2.71,2.85,2.90,2.89,2.91,2.90, 3.03,2.93,2.94,3.02,3.07,3.03,3.10,3.04,3.10,3.11, 3.12,3.11,2.89,3.24,3.10,3.22,3.21,3.14,3.24,3.21, 3.24,3.29,3.23,3.44,3.33,3.23,3.39,3.35,3.42,3.26, 3.30,3.49,3.47,3.35,3.37,3.41,3.37,3.40,3.38,3.45, 3.44,3.47,3.52,3.50,3.64,3.46,3.59,3.57,3.69,3.65, 3.58,3.60,3.61,3.86,3.64,3.57,3.77,3.77,3.58,3.66, 3.76,3.71,3.73,3.86,3.73,3.93,3.79,3.79,3.77,3.80, 3.84,3.93,3.80,3.82,3.84,3.84,3.91,4.14,3.83,4.09, 4.08,4.05,4.06,4.16,4.07,4.02,4.07,4.16,4.00,4.09, 4.00,4.09,4.14,4.11,4.26,4.09,4.24,4.09,4.04,4.20, 4.20,4.27,4.28,4.02,4.37,4.02,4.25,4.29,4.30,4.21, 4.26,4.27,4.32,4.29,4.20,4.38,4.33,4.40,4.46,4.45, 4.42,4.53,4.33,4.47,4.55,4.37,4.55,4.49,4.28,4.54, 4.54,4.29,4.45,4.51,4.48,4.60,4.35,4.55,4.49,4.43, 4.49,4.37,4.66,4.56,4.71,4.76,4.89,4.61,4.64,4.58, 4.68,4.57,4.61,4.55,4.68,4.86,4.74,4.77,4.72,4.76, 4.66,4.65,4.67,4.77,4.83,4.76,4.66,4.70,5.04,4.70, 4.85,4.80,4.96,4.67,4.97,4.90,4.77,4.89,4.76,4.85, 4.92,4.98,4.93,5.06,4.94,5.03,4.94,5.04,5.01,5.01, 4.97,4.91,5.12,4.93,5.00,5.05,5.03,4.91,5.07,5.11, 0.98,1.01,1.08,1.06,1.13,1.18,1.18,1.21,1.22,1.31, 1.35,1.36,1.39,1.42,1.46,1.47,1.55,1.59,1.52,1.59, 1.56,1.65,1.73,1.59,1.67,1.72,1.75,1.83,1.78,1.81, 1.89,1.87,1.90,1.93,1.97,1.99,1.94,2.08,2.02,2.00, 2.09,2.15,2.13,2.16,2.10,2.10,2.17,2.21,2.16,2.22, 2.30,2.27,2.28,2.20,2.33,2.42,2.42,2.31,2.38,2.36, 2.41,2.48,2.50,2.45,2.54,2.45,2.58,2.52,2.47,2.52, 2.60,2.56,2.56,2.70,2.55,2.74,2.68,2.76,2.84,2.78, 2.82,2.68,2.86,2.78,2.93,2.75,2.80,2.89,3.00,2.94, 2.94,2.92,3.00,2.98,3.02,2.99,2.96,2.94,3.06,2.92, 2.99,3.02,3.09,3.06,3.05,3.20,3.14,3.21,3.20,3.22, 3.15,3.23,3.17,3.10,3.27,3.18,3.19,3.22,3.16,3.24, 3.20,3.42,3.44,3.42,3.51,3.48,3.40,3.32,3.41,3.42, 3.53,3.47,3.43,3.48,3.53,3.40,3.44,3.39,3.57,3.62, 3.49,3.57,3.67,3.48,3.44,3.45,3.57,3.62,3.57,3.71, 3.60,3.69,3.62,3.76,3.65,3.84,3.73,3.63,3.78,3.73, 3.84,3.73,3.99,3.74,3.89,3.90,3.75,3.71,3.82,3.99, 3.84,3.77,3.92,4.00,3.83,3.91,3.93,3.92,3.78,4.06, 3.82,3.95,3.96,4.12,4.00,3.91,4.02,4.00,4.11,3.92, 4.14,4.17,3.92,4.08,4.08,4.08,4.04,4.07,4.07,4.07, 4.01,4.21,4.22,4.35,4.03,4.17,4.22,4.44,4.22,4.29, 4.30,4.28,4.29,4.23,4.48,4.44,4.29,4.39,4.45,4.23, 4.59,4.41,4.38,4.38,4.49,4.62,4.30,4.31,4.57,4.55, 4.55,4.34,4.52,4.67,4.47,4.49,4.49,4.53,4.45,4.52, 4.46,4.62,4.45,4.48,4.62,4.60,4.52,4.51,4.54,4.51, 4.79,4.72,4.68,4.76,4.72,4.73,4.62,4.86,4.71,4.64, 4.60,4.76,4.87,4.84,4.69,4.76,4.80,4.69,4.71,4.92, 4.84,4.96,4.75,4.90,4.75,4.76,5.01,4.86,4.87,4.93, 4.91,5.02,5.20,5.07,4.84,5.07,4.91,4.74,4.82,5.06, 1.04,0.99,1.04,1.08,1.13,1.14,1.11,1.23,1.22,1.30, 1.35,1.31,1.39,1.40,1.44,1.42,1.46,1.52,1.54,1.56, 1.60,1.66,1.61,1.62,1.66,1.67,1.74,1.78,1.76,1.78, 1.85,1.83,1.90,1.94,1.84,1.93,1.90,1.95,1.95,1.97, 2.03,2.00,2.05,2.03,2.09,2.06,2.13,2.11,2.28,2.24, 2.26,2.23,2.17,2.24,2.27,2.28,2.34,2.27,2.24,2.32, 2.42,2.38,2.38,2.34,2.48,2.44,2.48,2.52,2.61,2.51, 2.49,2.53,2.55,2.65,2.68,2.66,2.67,2.71,2.68,2.67, 2.67,2.68,2.75,2.68,2.78,2.71,2.86,2.87,2.84,2.80, 2.73,2.82,2.87,2.90,2.97,2.88,2.93,3.01,2.95,2.97, 3.02,2.81,2.94,3.01,3.09,3.07,3.00,2.98,3.09,3.12, 3.12,2.99,2.99,3.08,3.13,3.18,3.08,3.08,3.24,3.29, 3.26,3.36,3.23,3.19,3.46,3.33,3.24,3.28,3.39,3.31, 3.40,3.40,3.46,3.42,3.37,3.32,3.42,3.43,3.25,3.37, 3.53,3.53,3.57,3.61,3.55,3.52,3.60,3.43,3.54,3.49, 3.51,3.42,3.60,3.45,3.62,3.54,3.59,3.59,3.69,3.70, 3.58,3.63,3.75,3.63,3.64,3.78,3.77,3.80,3.88,3.75, 3.88,3.83,3.58,3.66,3.84,3.81,3.75,3.77,3.92,3.94, 3.94,3.97,3.97,3.99,3.82,3.90,3.91,4.07,4.10,3.75, 4.03,4.05,4.07,4.02,3.93,4.14,4.16,3.97,4.11,3.94, 3.94,4.17,4.04,4.09,4.08,4.35,4.06,4.11,4.22,4.06, 4.13,4.11,4.26,4.10,4.21,4.47,4.24,4.17,4.17,4.40, 4.36,4.46,4.38,4.35,4.32,4.17,4.33,4.50,4.30,4.40, 4.38,4.44,4.33,4.21,4.52,4.41,4.46,4.35,4.39,4.50, 4.40,4.43,4.47,4.58,4.57,4.34,4.56,4.57,4.61,4.61, 4.57,4.62,4.48,4.44,4.47,4.65,4.67,4.61,4.67,4.68, 4.67,4.50,4.80,4.71,4.57,4.59,4.80,4.72,4.66,4.83, 4.67,4.71,4.77,4.73,4.57,4.70,4.79,4.86,4.83,4.90, 4.94,4.85,4.84,4.92,4.99,4.93,4.83,5.01,4.98,4.84, 0.94,0.97,1.02,1.05,1.14,1.12,1.17,1.16,1.22,1.29, 1.27,1.34,1.34,1.38,1.36,1.36,1.42,1.56,1.56,1.57, 1.58,1.63,1.59,1.63,1.59,1.63,1.71,1.71,1.75,1.70, 1.72,1.78,1.82,1.86,1.90,1.88,1.89,1.92,1.99,1.99, 2.01,2.06,2.02,1.98,2.09,1.97,2.13,2.08,2.06,2.19, 2.15,2.25,2.27,2.25,2.29,2.18,2.32,2.27,2.31,2.45, 2.29,2.29,2.43,2.35,2.41,2.39,2.61,2.38,2.47,2.41, 2.61,2.54,2.51,2.57,2.59,2.57,2.50,2.60,2.60,2.68, 2.61,2.63,2.63,2.77,2.70,2.74,2.85,2.90,2.77,2.70, 2.83,2.80,2.89,2.74,2.93,2.94,2.83,2.94,2.94,2.91, 2.99,2.89,2.91,2.93,2.91,3.01,3.10,3.05,3.07,3.01, 2.99,2.99,3.10,3.14,3.00,3.10,3.10,3.09,3.00,3.21, 3.19,3.14,3.29,3.14,3.25,3.26,3.25,3.17,3.28,3.29, 3.21,3.32,3.39,3.44,3.43,3.36,3.31,3.46,3.37,3.21, 3.46,3.38,3.48,3.62,3.38,3.46,3.37,3.38,3.53,3.47, 3.58,3.46,3.56,3.62,3.53,3.55,3.54,3.54,3.65,3.55, 3.57,3.77,3.63,3.58,3.71,3.54,3.71,3.60,3.80,3.66, 3.68,3.80,3.68,3.79,3.73,3.81,3.71,3.82,3.72,3.88, 3.84,3.81,3.95,3.96,3.99,3.97,3.79,3.95,3.87,3.96, 3.95,4.04,3.89,3.99,3.92,3.96,4.07,4.15,4.02,4.02, 3.98,4.08,4.15,4.04,3.91,3.98,4.02,4.08,4.01,4.33, 4.16,4.32,4.26,4.26,4.11,4.15,4.16,4.26,4.22,4.21, 4.29,4.29,4.25,4.38,4.41,4.31,4.33,4.24,4.24,4.22, 4.08,4.40,4.55,4.42,4.24,4.47,4.52,4.33,4.37,4.54, 4.29,4.43,4.28,4.47,4.49,4.43,4.40,4.41,4.55,4.41, 4.55,4.42,4.44,4.48,4.44,4.56,4.52,4.57,4.40,4.56, 4.64,4.37,4.62,4.50,4.43,4.54,4.73,4.71,4.51,4.78, 4.73,4.69,4.80,4.67,4.71,4.69,4.79,4.43,4.74,4.69, 4.67,4.80,4.75,4.58,4.65,4.76,4.89,4.79,4.90,4.60, 0.92,0.99,0.99,1.06,1.06,1.14,1.17,1.12,1.22,1.26, 1.32,1.33,1.36,1.35,1.39,1.43,1.40,1.43,1.48,1.58, 1.52,1.47,1.59,1.62,1.70,1.59,1.70,1.71,1.65,1.72, 1.72,1.76,1.78,1.88,1.90,1.83,1.93,1.98,1.91,1.94, 1.93,1.90,1.97,1.99,1.99,2.01,2.11,2.08,2.05,2.06, 2.16,2.21,2.15,2.18,2.26,2.27,2.30,2.27,2.24,2.33, 2.31,2.30,2.33,2.34,2.37,2.34,2.32,2.48,2.47,2.47, 2.57,2.48,2.58,2.50,2.50,2.57,2.55,2.56,2.55,2.59, 2.61,2.66,2.63,2.65,2.59,2.81,2.77,2.77,2.66,2.66, 2.68,2.86,2.82,2.83,2.91,2.77,2.84,2.87,2.84,2.97, 2.80,2.79,2.86,3.02,2.95,2.99,2.90,3.02,2.97,2.95, 2.90,2.99,2.94,2.94,2.99,3.16,3.12,3.13,3.06,3.10, 3.14,3.10,3.06,3.24,3.34,3.19,3.08,3.26,3.22,3.22, 3.21,3.22,3.10,3.28,3.34,3.25,3.34,3.40,3.27,3.23, 3.28,3.32,3.44,3.35,3.45,3.45,3.41,3.49,3.40,3.49, 3.48,3.34,3.49,3.64,3.48,3.59,3.58,3.49,3.43,3.40, 3.57,3.71,3.57,3.64,3.64,3.64,3.61,3.72,3.76,3.47, 3.63,3.60,3.77,3.73,3.72,3.83,3.81,3.78,3.80,3.70, 3.84,3.81,3.77,3.94,3.82,3.67,3.89,3.92,3.84,4.00, 3.92,3.77,3.89,3.75,3.94,3.85,3.81,3.86,3.93,4.00, 4.08,3.98,3.98,4.03,3.95,4.02,4.09,3.99,3.92,3.90, 3.97,4.03,4.17,4.03,4.17,4.08,4.14,4.07,4.07,4.17, 4.13,4.21,4.18,4.20,4.29,4.30,4.28,4.19,4.26,4.15, 4.21,4.24,4.23,4.24,4.14,4.33,4.24,4.45,4.33,4.10, 4.44,4.23,4.34,4.44,4.36,4.37,4.29,4.30,4.35,4.12, 4.45,4.43,4.38,4.37,4.48,4.45,4.38,4.54,4.51,4.41, 4.55,4.41,4.55,4.44,4.59,4.36,4.71,4.50,4.66,4.44, 4.40,4.63,4.48,4.52,4.67,4.43,4.43,4.55,4.68,4.64, 4.68,4.79,4.80,4.67,4.82,4.64,4.63,4.62,4.55,4.72, 0.91,0.99,0.99,1.06,1.07,1.06,1.15,1.10,1.18,1.24, 1.24,1.27,1.32,1.37,1.35,1.33,1.43,1.46,1.44,1.55, 1.52,1.50,1.64,1.56,1.66,1.66,1.58,1.67,1.62,1.72, 1.71,1.77,1.77,1.76,1.92,1.80,1.87,1.84,1.86,1.92, 1.89,1.93,2.03,1.97,2.02,1.97,2.02,1.98,2.05,2.07, 2.07,2.10,2.23,2.21,2.17,2.16,2.25,2.20,2.19,2.21, 2.24,2.26,2.31,2.22,2.35,2.29,2.35,2.37,2.48,2.47, 2.33,2.44,2.42,2.50,2.44,2.50,2.68,2.50,2.50,2.57, 2.51,2.66,2.63,2.58,2.54,2.66,2.63,2.71,2.61,2.81, 2.79,2.67,2.68,2.56,2.76,2.66,2.74,2.71,2.71,2.74, 2.90,2.93,2.90,2.97,2.76,2.80,2.95,2.87,2.88,2.86, 2.81,3.12,2.90,2.96,3.07,3.05,3.04,3.01,2.99,3.09, 2.96,3.09,3.09,3.19,3.05,3.28,3.24,3.15,3.09,3.06, 3.19,3.17,3.19,3.25,3.32,3.19,3.20,3.21,3.26,3.29, 3.29,3.48,3.49,3.23,3.38,3.42,3.43,3.40,3.42,3.30, 3.35,3.34,3.45,3.58,3.55,3.44,3.29,3.44,3.52,3.55, 3.54,3.36,3.46,3.55,3.69,3.54,3.52,3.75,3.59,3.71, 3.69,3.61,3.64,3.75,3.40,3.58,3.65,3.53,3.59,3.70, 3.77,3.64,3.76,3.70,3.82,3.78,3.71,3.66,3.66,3.81, 3.76,3.82,3.90,3.73,3.90,3.89,4.05,3.77,4.03,3.87, 3.86,4.04,3.81,4.07,4.02,4.04,3.81,3.97,4.09,3.82, 4.02,4.09,3.99,3.92,3.97,4.11,3.89,4.07,4.02,4.03, 4.24,4.08,4.14,4.09,4.12,4.15,4.11,4.08,4.11,4.26, 4.19,4.16,4.14,4.22,4.22,4.19,4.23,4.16,4.28,4.12, 4.27,4.26,4.27,4.21,4.37,4.28,4.44,4.37,4.26,4.34, 4.24,4.29,4.41,4.27,4.48,4.37,4.42,4.36,4.27,4.44, 4.57,4.41,4.28,4.42,4.31,4.41,4.44,4.46,4.44,4.52, 4.38,4.53,4.30,4.66,4.60,4.46,4.60,4.58,4.60,4.50, 4.76,4.76,4.56,4.42,4.57,4.79,4.49,4.74,4.75,4.75, 0.89,0.91,0.99,1.00,1.05,1.07,1.12,1.15,1.15,1.19, 1.27,1.26,1.30,1.30,1.36,1.36,1.38,1.43,1.46,1.46, 1.49,1.50,1.57,1.55,1.57,1.59,1.63,1.67,1.72,1.66, 1.67,1.71,1.73,1.71,1.78,1.87,1.82,1.83,1.83,1.76, 1.79,1.92,1.92,1.99,1.97,1.91,1.91,1.98,2.05,2.05, 2.05,2.15,2.11,2.15,2.08,2.09,2.12,2.17,2.18,2.19, 2.19,2.28,2.16,2.26,2.21,2.26,2.29,2.23,2.30,2.36, 2.43,2.37,2.36,2.35,2.42,2.49,2.46,2.45,2.52,2.54, 2.48,2.47,2.45,2.61,2.63,2.53,2.61,2.54,2.56,2.64, 2.66,2.63,2.68,2.70,2.70,2.65,2.79,2.71,2.83,2.80, 2.67,2.77,2.81,2.82,2.82,2.80,2.95,2.87,2.92,2.91, 2.98,2.86,2.87,2.91,2.92,2.86,3.00,2.97,2.94,2.95, 3.13,3.01,3.01,3.01,3.09,3.15,3.05,3.09,3.14,3.11, 3.23,3.12,3.22,3.13,3.08,3.25,3.22,3.15,3.17,3.20, 3.21,3.23,3.30,3.19,3.30,3.16,3.44,3.18,3.34,3.25, 3.28,3.35,3.46,3.36,3.45,3.42,3.33,3.35,3.40,3.58, 3.51,3.42,3.54,3.41,3.46,3.44,3.50,3.58,3.34,3.54, 3.59,3.48,3.59,3.41,3.58,3.58,3.63,3.44,3.58,3.55, 3.73,3.52,3.66,3.66,3.47,3.58,3.70,3.68,3.67,3.70, 3.88,3.92,3.67,3.73,3.65,3.71,3.70,3.64,3.76,3.71, 3.76,3.93,3.82,3.74,3.86,3.80,3.94,3.80,3.94,3.84, 3.80,3.88,3.93,4.00,4.00,4.15,4.02,4.01,3.88,3.96, 3.92,3.87,4.07,4.10,4.13,3.97,4.09,4.05,4.17,4.25, 3.99,4.13,4.22,4.13,4.18,4.03,4.23,4.21,4.16,4.14, 4.13,4.18,4.27,4.28,4.18,4.14,4.30,4.04,4.12,4.43, 4.24,4.12,4.26,4.35,4.29,4.29,4.37,4.16,4.28,4.35, 4.35,4.38,4.19,4.56,4.29,4.22,4.31,4.49,4.54,4.41, 4.30,4.42,4.39,4.44,4.30,4.21,4.39,4.53,4.49,4.46, 4.53,4.48,4.48,4.61,4.55,4.39,4.50,4.34,4.68,4.60, 0.87,0.93,0.98,0.98,1.04,1.01,1.09,1.08,1.16,1.15, 1.24,1.24,1.25,1.30,1.31,1.31,1.39,1.33,1.37,1.46, 1.46,1.43,1.59,1.50,1.49,1.60,1.59,1.67,1.66,1.65, 1.62,1.70,1.71,1.69,1.75,1.79,1.78,1.72,1.84,1.82, 1.84,1.83,1.80,1.89,1.89,1.92,1.96,2.03,2.04,2.01, 1.92,1.95,2.03,2.05,2.11,2.11,2.18,2.09,2.18,2.06, 2.15,2.20,2.27,2.18,2.21,2.24,2.38,2.19,2.34,2.30, 2.31,2.38,2.40,2.27,2.32,2.46,2.31,2.44,2.52,2.44, 2.40,2.45,2.48,2.40,2.50,2.52,2.46,2.57,2.72,2.55, 2.57,2.61,2.58,2.59,2.63,2.62,2.66,2.64,2.65,2.66, 2.75,2.70,2.77,2.79,2.81,2.75,2.78,2.83,2.91,2.75, 2.85,2.72,2.84,2.90,2.89,2.86,2.73,2.96,3.01,2.96, 2.93,2.96,3.02,2.89,3.02,3.07,2.99,3.06,3.05,3.03, 3.01,3.13,3.00,3.13,3.22,3.16,3.14,3.15,3.12,3.10, 3.13,2.99,3.37,3.31,3.20,3.14,3.23,3.18,3.30,3.25, 3.16,3.40,3.35,3.39,3.18,3.32,3.29,3.34,3.43,3.37, 3.26,3.36,3.44,3.33,3.41,3.43,3.56,3.48,3.48,3.53, 3.34,3.47,3.39,3.48,3.29,3.47,3.55,3.66,3.56,3.58, 3.58,3.56,3.51,3.59,3.63,3.59,3.61,3.84,3.68,3.70, 3.70,3.72,3.81,3.70,3.80,3.62,3.79,3.76,3.76,3.80, 3.71,3.77,3.77,3.78,3.77,3.57,3.67,3.86,3.57,3.82, 3.94,3.84,3.80,3.86,3.85,4.02,3.70,3.79,4.05,3.88, 3.81,3.99,3.99,4.03,3.98,3.99,4.05,3.97,3.97,3.86, 3.96,4.24,4.03,4.19,3.98,4.03,3.99,4.00,4.09,4.02, 3.97,4.02,4.12,4.19,4.12,4.11,4.04,4.26,4.14,3.99, 4.17,4.12,4.30,4.17,4.10,4.17,4.35,4.23,4.10,4.18, 4.33,4.26,4.20,4.40,4.34,4.45,4.16,4.14,4.34,4.24, 4.38,4.46,4.19,4.36,4.49,4.48,4.27,4.37,4.37,4.45, 4.51,4.26,4.35,4.32,4.51,4.43,4.43,4.47,4.40,4.34, 0.88,0.88,0.93,0.96,1.00,1.02,1.08,1.10,1.09,1.14, 1.15,1.20,1.23,1.28,1.26,1.33,1.30,1.38,1.35,1.38, 1.39,1.46,1.51,1.54,1.47,1.55,1.50,1.59,1.60,1.59, 1.61,1.64,1.68,1.61,1.72,1.70,1.76,1.71,1.75,1.79, 1.82,1.82,1.79,1.80,1.89,1.86,1.96,1.87,1.91,1.94, 1.99,2.01,1.99,2.01,1.99,2.06,2.10,2.07,2.11,2.15, 2.13,2.19,2.04,2.17,2.28,2.22,2.19,2.30,2.22,2.30, 2.30,2.28,2.38,2.31,2.41,2.32,2.33,2.39,2.43,2.41, 2.44,2.40,2.47,2.44,2.50,2.47,2.40,2.41,2.44,2.54, 2.45,2.54,2.57,2.67,2.51,2.57,2.57,2.57,2.64,2.73, 2.67,2.66,2.61,2.72,2.76,2.73,2.78,2.76,2.81,2.90, 2.85,2.65,2.70,2.82,2.79,2.90,2.91,2.90,2.80,2.88, 2.92,2.87,2.88,2.90,2.79,2.99,2.95,3.00,3.05,3.05, 3.12,3.06,2.96,3.03,3.06,3.14,2.98,3.19,2.93,3.03, 2.99,3.10,3.16,3.07,3.13,3.20,3.18,3.12,3.30,3.13, 3.08,3.19,3.22,3.26,3.15,3.18,3.23,3.33,3.37,3.46, 3.26,3.35,3.39,3.36,3.46,3.35,3.46,3.43,3.35,3.45, 3.30,3.33,3.32,3.41,3.37,3.56,3.37,3.42,3.41,3.43, 3.60,3.48,3.60,3.53,3.49,3.53,3.50,3.57,3.53,3.55, 3.78,3.68,3.54,3.44,3.65,3.58,3.68,3.67,3.54,3.62, 3.58,3.69,3.64,3.82,3.61,3.78,3.80,3.74,3.83,3.79, 3.90,3.82,3.81,3.75,3.79,3.69,3.74,3.91,3.68,3.84, 3.87,3.94,3.89,3.91,3.84,4.08,4.00,3.87,3.87,4.06, 3.90,3.83,3.91,3.89,3.93,3.88,3.86,4.02,3.93,3.95, 4.12,3.91,3.88,3.99,4.04,4.19,4.05,4.25,4.09,4.14, 3.90,4.08,4.18,4.06,4.12,4.14,4.18,4.10,4.10,4.24, 4.11,4.25,4.30,4.32,4.13,4.22,4.31,4.13,4.36,4.32, 4.26,4.29,4.18,4.19,4.27,4.25,4.23,4.27,4.38,4.37, 4.38,4.23,4.45,4.39,4.31,4.31,4.23,4.28,4.39,4.21, 0.85,0.85,0.93,0.90,0.96,1.00,1.01,1.05,1.10,1.13, 1.14,1.18,1.21,1.22,1.25,1.25,1.33,1.38,1.30,1.33, 1.43,1.40,1.45,1.42,1.45,1.48,1.51,1.58,1.55,1.64, 1.58,1.61,1.60,1.63,1.69,1.70,1.71,1.72,1.69,1.81, 1.75,1.79,1.82,1.80,1.83,1.88,1.84,1.82,1.88,1.95, 1.93,2.04,2.03,2.00,2.02,2.06,2.00,2.00,2.06,2.01, 1.96,2.10,2.07,2.11,2.20,2.13,2.24,2.28,2.22,2.26, 2.22,2.17,2.17,2.33,2.30,2.29,2.29,2.31,2.31,2.30, 2.38,2.34,2.34,2.30,2.44,2.42,2.47,2.42,2.45,2.51, 2.43,2.52,2.43,2.59,2.53,2.62,2.53,2.57,2.47,2.61, 2.46,2.64,2.63,2.54,2.62,2.60,2.73,2.71,2.76,2.75, 2.78,2.77,2.70,2.80,2.75,2.69,2.85,2.82,2.76,2.82, 2.85,2.93,2.84,2.88,2.89,2.77,2.89,2.89,2.94,2.92, 2.97,2.98,2.97,2.98,3.00,2.97,3.05,3.01,3.03,3.16, 3.00,3.04,3.03,3.08,2.98,3.00,3.02,3.02,3.07,3.09, 3.02,3.15,3.20,3.17,3.10,3.16,3.19,3.18,3.24,3.22, 3.30,3.25,3.30,3.24,3.32,3.20,3.28,3.25,3.33,3.20, 3.28,3.36,3.31,3.34,3.32,3.35,3.47,3.37,3.39,3.45, 3.50,3.45,3.39,3.37,3.50,3.50,3.33,3.49,3.53,3.53, 3.53,3.36,3.46,3.74,3.60,3.63,3.45,3.49,3.54,3.44, 3.54,3.61,3.55,3.62,3.58,3.53,3.53,3.55,3.78,3.56, 3.73,3.64,3.73,3.83,3.56,3.78,3.84,3.72,3.77,3.71, 3.72,3.76,3.80,3.84,3.80,3.77,3.73,3.71,3.94,3.92, 3.76,3.83,3.75,3.84,3.87,3.88,3.83,3.90,3.94,3.85, 3.82,3.75,4.15,3.91,3.87,3.95,3.85,3.94,4.03,3.75, 3.98,4.05,4.02,3.90,4.04,4.16,4.11,4.00,4.17,4.06, 4.07,4.09,4.07,4.25,3.99,4.10,4.13,3.99,4.16,4.13, 4.04,4.09,4.29,4.08,4.11,4.07,4.25,4.11,4.26,4.07, 4.17,4.16,4.14,4.28,4.27,4.24,4.26,4.21,4.19,4.26, 0.84,0.86,0.89,0.90,0.96,0.97,1.00,1.06,1.02,1.08, 1.11,1.15,1.10,1.18,1.18,1.24,1.30,1.32,1.27,1.36, 1.37,1.40,1.41,1.43,1.42,1.46,1.43,1.48,1.55,1.50, 1.56,1.59,1.60,1.55,1.62,1.67,1.63,1.63,1.75,1.73, 1.74,1.75,1.73,1.77,1.73,1.77,1.78,1.82,1.82,1.89, 1.88,1.89,1.90,1.90,1.96,1.95,1.94,2.02,1.92,1.93, 1.94,2.04,2.06,2.04,2.03,2.07,2.12,2.11,2.03,2.13, 2.16,2.18,2.19,2.12,2.19,2.23,2.24,2.35,2.22,2.13, 2.34,2.24,2.32,2.38,2.43,2.42,2.37,2.36,2.45,2.34, 2.38,2.41,2.43,2.42,2.46,2.47,2.53,2.44,2.43,2.44, 2.45,2.58,2.50,2.54,2.59,2.56,2.61,2.68,2.62,2.64, 2.67,2.58,2.67,2.64,2.63,2.69,2.64,2.73,2.62,2.72, 2.71,2.78,2.95,2.78,2.67,2.84,2.86,2.76,2.86,2.87, 2.80,2.73,2.89,2.89,2.85,2.91,2.91,2.94,2.85,2.99, 2.95,3.01,2.96,2.95,3.00,3.02,2.97,3.11,3.08,3.08, 3.17,3.02,2.94,2.99,3.04,3.08,3.11,3.10,3.16,3.09, 3.11,3.19,3.16,3.30,3.22,3.13,3.05,3.21,3.21,3.25, 3.18,3.25,3.40,3.24,3.33,3.13,3.31,3.25,3.35,3.25, 3.26,3.28,3.36,3.31,3.30,3.50,3.51,3.38,3.31,3.33, 3.49,3.47,3.48,3.41,3.31,3.35,3.40,3.45,3.54,3.40, 3.48,3.54,3.50,3.45,3.49,3.43,3.56,3.57,3.58,3.58, 3.50,3.64,3.54,3.57,3.58,3.57,3.61,3.63,3.55,3.78, 3.46,3.58,3.73,3.66,3.60,3.52,3.70,3.68,3.66,3.90, 3.56,3.69,3.78,3.68,3.61,3.76,3.65,3.76,3.81,4.01, 3.68,3.92,3.79,3.84,3.84,3.77,3.97,3.91,3.87,3.93, 3.63,4.07,3.87,3.96,3.99,3.98,3.93,3.97,3.91,3.91, 3.94,3.88,3.85,3.83,4.02,3.99,3.89,3.95,4.04,4.02, 4.06,4.19,4.17,3.93,3.99,4.06,3.89,4.18,3.98,4.10, 4.06,4.05,4.06,4.27,4.15,4.18,4.15,4.04,4.22,4.13, 0.76,0.84,0.86,0.90,0.93,0.94,0.97,1.03,1.03,1.06, 1.05,1.09,1.12,1.15,1.22,1.19,1.21,1.26,1.23,1.33, 1.33,1.34,1.33,1.38,1.36,1.41,1.43,1.48,1.48,1.50, 1.44,1.56,1.50,1.57,1.63,1.60,1.58,1.71,1.60,1.65, 1.65,1.66,1.69,1.78,1.70,1.78,1.79,1.82,1.85,1.83, 1.81,1.88,1.83,1.87,1.89,1.89,1.81,1.80,1.97,1.94, 1.92,1.96,2.01,1.99,2.06,2.07,2.10,1.99,2.04,2.13, 2.11,2.13,2.17,2.15,2.18,2.20,2.17,2.22,2.17,2.24, 2.25,2.30,2.22,2.29,2.30,2.23,2.25,2.40,2.37,2.36, 2.30,2.35,2.37,2.43,2.46,2.43,2.38,2.48,2.44,2.48, 2.44,2.41,2.42,2.52,2.41,2.53,2.59,2.40,2.60,2.49, 2.51,2.61,2.58,2.52,2.61,2.51,2.54,2.68,2.66,2.50, 2.69,2.75,2.67,2.69,2.67,2.72,2.74,2.84,2.79,2.76, 2.79,2.85,2.77,2.75,2.87,2.86,2.91,2.84,2.83,2.76, 2.88,2.91,2.95,2.88,2.86,2.85,2.91,2.97,2.91,2.90, 2.81,2.96,2.99,2.98,2.89,3.05,3.00,2.97,2.96,2.99, 3.08,3.11,3.02,3.20,3.01,3.13,3.16,3.11,3.22,3.05, 3.17,3.17,3.05,3.17,3.11,3.09,3.14,3.21,3.30,3.26, 3.23,3.27,3.16,3.28,3.19,3.32,3.11,3.29,3.21,3.36, 3.36,3.28,3.12,3.42,3.38,3.39,3.35,3.40,3.44,3.34, 3.42,3.36,3.42,3.42,3.44,3.40,3.40,3.43,3.37,3.44, 3.54,3.52,3.60,3.61,3.43,3.55,3.55,3.52,3.37,3.58, 3.60,3.59,3.59,3.59,3.58,3.53,3.56,3.49,3.64,3.62, 3.70,3.59,3.62,3.57,3.59,3.71,3.75,3.87,3.77,3.70, 3.60,3.58,3.73,3.75,3.65,3.64,3.49,3.71,3.65,3.69, 3.69,3.70,3.73,3.71,3.71,3.80,3.88,3.82,3.90,3.81, 3.90,3.83,3.97,3.92,3.77,3.94,3.79,3.88,3.74,3.92, 3.95,3.88,3.90,3.90,3.98,3.73,3.80,3.90,3.81,4.05, 4.04,3.97,4.00,3.95,3.88,3.93,3.95,4.06,3.96,3.98, 0.76,0.78,0.86,0.84,0.87,0.89,0.96,0.97,1.02,1.02, 1.06,1.05,1.09,1.15,1.13,1.17,1.17,1.16,1.24,1.24, 1.25,1.26,1.30,1.34,1.37,1.38,1.46,1.40,1.46,1.42, 1.50,1.48,1.46,1.53,1.57,1.53,1.55,1.63,1.61,1.54, 1.66,1.63,1.67,1.75,1.77,1.71,1.71,1.73,1.76,1.77, 1.79,1.76,1.78,1.84,1.75,1.82,1.85,1.85,1.78,1.90, 1.89,1.86,1.92,1.99,2.01,1.92,1.93,2.03,2.05,2.06, 2.03,2.00,2.10,2.11,2.06,2.06,2.07,2.13,2.09,2.11, 2.26,2.13,2.22,2.17,2.24,2.30,2.25,2.23,2.19,2.26, 2.21,2.26,2.29,2.34,2.33,2.35,2.47,2.35,2.44,2.34, 2.49,2.47,2.50,2.40,2.54,2.37,2.53,2.47,2.53,2.48, 2.48,2.54,2.40,2.46,2.55,2.51,2.58,2.51,2.61,2.62, 2.59,2.57,2.55,2.68,2.66,2.70,2.64,2.76,2.66,2.63, 2.68,2.71,2.72,2.68,2.74,2.75,2.86,2.70,2.78,2.72, 2.74,2.73,2.90,2.79,2.80,2.87,2.92,2.71,2.80,2.94, 3.00,2.88,2.86,3.00,2.85,2.94,2.97,2.80,3.03,2.88, 2.90,2.94,3.02,3.07,2.99,2.93,2.90,2.97,2.95,3.00, 3.00,3.16,3.17,3.08,3.12,3.08,3.02,3.18,3.22,3.14, 3.08,3.07,3.23,3.19,3.15,3.21,3.24,3.18,3.00,3.27, 3.05,3.25,3.23,3.17,3.16,3.38,3.19,3.20,3.28,3.17, 3.31,3.35,3.38,3.30,3.24,3.25,3.31,3.30,3.42,3.42, 3.45,3.34,3.40,3.33,3.38,3.39,3.38,3.38,3.43,3.39, 3.53,3.38,3.30,3.46,3.45,3.54,3.54,3.42,3.44,3.45, 3.66,3.46,3.50,3.57,3.55,3.53,3.54,3.54,3.53,3.57, 3.70,3.63,3.64,3.68,3.57,3.62,3.64,3.55,3.58,3.61, 3.50,3.60,3.71,3.66,3.76,3.70,3.69,3.72,3.74,3.91, 3.66,3.69,3.54,3.64,3.71,3.71,3.72,3.63,3.81,3.79, 3.73,3.68,3.69,3.83,3.88,3.85,3.96,3.80,3.85,3.73, 3.86,3.91,3.79,4.04,3.86,3.77,3.93,3.92,3.96,3.93, 1.00,1.04,1.11,1.11,1.24,1.25,1.28,1.35,1.35,1.39, 1.46,1.50,1.53,1.51,1.59,1.64,1.62,1.73,1.72,1.74, 1.72,1.76,1.81,1.88,1.81,1.98,1.92,1.99,1.94,2.01, 2.05,2.10,2.19,2.17,2.19,2.12,2.26,2.20,2.24,2.28, 2.27,2.36,2.30,2.36,2.42,2.38,2.31,2.33,2.41,2.53, 2.47,2.51,2.60,2.44,2.54,2.55,2.56,2.61,2.72,2.78, 2.64,2.61,2.70,2.69,2.84,2.81,2.72,2.80,2.81,2.74, 2.83,2.93,2.92,2.98,3.06,3.01,2.96,2.99,2.77,3.14, 3.03,2.98,3.07,3.18,3.10,3.18,3.01,3.18,3.09,3.16, 3.15,3.08,3.12,3.29,3.30,3.33,3.35,3.26,3.47,3.34, 3.25,3.40,3.42,3.39,3.34,3.53,3.48,3.48,3.45,3.57, 3.46,3.47,3.64,3.45,3.64,3.47,3.52,3.53,3.51,3.66, 3.60,3.73,3.59,3.75,3.63,3.71,3.75,3.77,3.84,3.71, 3.73,3.84,3.98,3.87,3.82,4.07,3.67,3.92,3.84,4.03, 3.87,3.91,4.12,3.95,3.96,4.00,3.94,3.95,3.89,4.00, 4.02,3.93,4.05,3.95,4.20,4.10,4.04,4.27,4.10,4.19, 4.02,4.23,4.24,4.20,4.25,4.09,4.32,4.23,4.30,4.08, 4.35,4.25,4.42,4.39,4.33,4.23,4.16,4.27,4.31,4.34, 4.42,4.28,4.41,4.54,4.26,4.62,4.42,4.41,4.63,4.55, 4.51,4.52,4.64,4.54,4.45,4.63,4.63,4.54,4.58,4.69, 4.38,4.41,4.71,4.74,4.60,4.60,4.70,4.87,4.50,4.59, 4.81,4.78,4.90,4.77,4.64,4.79,4.75,4.80,4.89,4.56, 4.62,5.06,4.82,5.12,4.83,4.94,4.94,4.93,4.99,5.00, 4.95,5.11,4.97,4.89,4.83,4.91,5.04,5.05,4.91,4.97, 5.11,4.92,5.12,5.01,5.21,4.89,5.15,5.13,5.09,4.98, 5.08,5.14,5.09,5.39,5.38,5.27,5.09,5.32,5.33,5.24, 4.97,5.42,5.52,5.38,5.31,5.24,5.17,5.29,5.15,5.24, 5.19,5.19,5.47,5.26,5.41,5.32,5.31,5.45,5.31,5.38, 5.11,5.47,5.27,5.55,5.42,5.72,5.45,5.31,5.42,5.55, 1.04,1.05,1.12,1.14,1.16,1.20,1.24,1.27,1.31,1.35, 1.40,1.43,1.40,1.51,1.47,1.55,1.58,1.61,1.67,1.68, 1.67,1.70,1.81,1.73,1.78,1.83,1.82,1.85,1.86,1.91, 2.00,1.98,1.94,1.93,2.06,2.09,2.04,1.98,2.12,2.18, 2.22,2.24,2.12,2.17,2.15,2.29,2.28,2.37,2.52,2.27, 2.29,2.34,2.38,2.42,2.36,2.38,2.49,2.54,2.47,2.59, 2.60,2.51,2.58,2.62,2.67,2.67,2.63,2.63,2.66,2.61, 2.72,2.74,2.62,2.73,2.86,2.80,2.80,2.61,2.89,2.85, 2.78,2.94,2.94,2.86,2.99,2.94,3.01,3.13,2.98,3.06, 2.97,3.16,3.09,3.13,3.07,3.15,3.04,3.03,3.14,3.29, 3.14,3.29,3.18,3.23,3.17,3.28,3.16,3.33,3.36,3.22, 3.31,3.25,3.50,3.34,3.43,3.33,3.55,3.41,3.36,3.41, 3.43,3.44,3.54,3.49,3.49,3.41,3.66,3.73,3.58,3.52, 3.53,3.62,3.53,3.72,3.65,3.63,3.68,3.71,3.54,3.64, 3.67,3.67,3.85,3.77,3.71,3.68,3.80,3.97,3.66,3.83, 3.81,3.82,3.97,3.86,3.82,3.88,3.82,4.09,3.78,3.90, 3.99,3.93,3.78,3.98,4.00,3.86,3.91,3.97,4.06,4.23, 4.16,4.11,4.16,3.92,4.14,4.13,4.14,4.20,4.19,4.16, 4.14,4.13,4.19,4.19,4.29,4.22,4.42,4.18,4.38,4.37, 4.23,4.22,4.45,4.33,4.30,4.45,4.37,4.33,4.41,4.41, 4.34,4.36,4.34,4.55,4.49,4.53,4.40,4.19,4.49,4.51, 4.60,4.43,4.48,4.66,4.59,4.59,4.57,4.43,4.66,4.64, 4.56,4.64,4.74,4.80,4.69,4.67,4.55,4.66,4.74,4.68, 4.83,4.79,4.86,4.69,4.90,4.75,4.94,4.85,4.96,4.83, 4.73,4.86,4.83,4.84,5.23,4.79,5.12,4.98,4.66,4.79, 5.14,4.82,5.13,4.93,4.71,5.03,5.07,5.00,4.72,4.97, 4.99,4.94,5.14,5.02,5.03,5.07,4.94,4.99,5.08,5.13, 5.17,4.87,5.29,4.86,5.08,5.27,5.10,5.09,5.34,5.25, 5.19,5.17,5.20,5.22,5.08,5.40,5.12,4.98,5.18,5.21, 0.94,1.05,1.04,1.08,1.17,1.18,1.19,1.20,1.28,1.27, 1.34,1.39,1.35,1.42,1.47,1.50,1.51,1.51,1.58,1.62, 1.59,1.67,1.67,1.64,1.68,1.78,1.77,1.75,1.83,1.86, 1.86,1.86,1.94,1.97,1.97,1.95,2.06,1.99,1.92,2.11, 2.08,2.13,2.12,2.15,2.19,2.13,2.15,2.22,2.29,2.19, 2.41,2.18,2.22,2.30,2.31,2.34,2.31,2.33,2.48,2.44, 2.46,2.43,2.47,2.53,2.55,2.59,2.57,2.48,2.55,2.60, 2.60,2.52,2.70,2.71,2.64,2.70,2.76,2.71,2.65,2.78, 2.86,2.84,2.93,2.89,2.85,2.76,2.87,2.87,2.90,2.98, 3.04,3.10,2.95,2.87,2.96,2.98,2.94,3.01,3.06,3.00, 3.13,3.10,3.05,3.03,3.11,3.14,3.20,3.24,3.08,3.28, 3.22,3.31,3.33,3.28,3.15,3.30,3.23,3.33,3.29,3.26, 3.29,3.28,3.31,3.51,3.40,3.44,3.48,3.48,3.54,3.31, 3.46,3.45,3.55,3.45,3.56,3.59,3.57,3.56,3.65,3.54, 3.67,3.48,3.64,3.62,3.67,3.60,3.64,3.73,3.64,3.65, 3.77,3.64,3.69,3.79,3.65,3.65,3.73,3.86,3.73,3.73, 3.85,3.78,3.81,3.81,3.92,3.83,3.80,3.83,3.65,3.94, 3.87,3.91,4.05,3.99,3.99,3.75,3.87,4.00,4.10,4.14, 4.04,4.14,4.08,4.12,3.99,4.11,4.14,4.18,4.09,4.08, 4.06,4.02,4.11,4.19,4.16,4.08,4.11,4.33,4.16,4.21, 4.26,4.34,4.31,4.01,4.24,4.28,4.14,4.34,4.33,4.26, 4.23,4.39,4.39,4.22,4.25,4.35,4.34,4.35,4.42,4.34, 4.48,4.47,4.45,4.43,4.44,4.44,4.37,4.44,4.49,4.68, 4.47,4.52,4.54,4.55,4.50,4.53,4.62,4.35,4.57,4.64, 4.68,4.55,4.63,4.61,4.72,4.46,4.61,4.60,4.73,4.64, 4.88,4.58,4.65,4.70,4.80,4.88,4.66,4.98,4.69,4.54, 4.70,4.77,4.58,4.79,4.89,4.95,4.99,4.75,4.83,4.94, 4.82,4.77,4.92,4.77,4.96,4.87,4.96,4.92,5.22,5.11, 4.80,4.92,5.03,5.11,5.20,5.00,4.82,4.80,5.00,4.99, 0.96,1.01,1.05,1.07,1.06,1.12,1.21,1.26,1.21,1.25, 1.33,1.29,1.40,1.36,1.36,1.43,1.48,1.47,1.49,1.60, 1.63,1.55,1.56,1.63,1.72,1.70,1.73,1.64,1.77,1.82, 1.86,1.76,1.83,1.83,1.90,1.93,1.93,1.96,1.97,1.97, 2.07,2.00,1.99,2.08,2.10,2.14,2.15,2.23,2.07,2.10, 2.19,2.24,2.30,2.27,2.26,2.36,2.33,2.28,2.35,2.31, 2.26,2.50,2.36,2.36,2.49,2.43,2.35,2.56,2.45,2.40, 2.47,2.57,2.66,2.58,2.69,2.65,2.70,2.59,2.79,2.70, 2.69,2.71,2.79,2.74,2.72,2.82,2.71,2.88,2.83,2.80, 2.83,2.83,2.86,2.95,2.83,3.04,2.93,2.92,2.98,2.99, 2.96,3.08,3.04,3.10,3.02,3.06,3.00,2.96,3.01,3.11, 3.20,3.05,3.10,3.19,3.19,3.05,3.15,3.17,3.17,3.22, 3.30,3.14,3.22,3.21,3.35,3.25,3.17,3.28,3.26,3.31, 3.32,3.41,3.24,3.42,3.48,3.47,3.42,3.48,3.43,3.56, 3.35,3.49,3.44,3.53,3.50,3.41,3.44,3.63,3.52,3.56, 3.52,3.71,3.55,3.57,3.61,3.48,3.69,3.70,3.58,3.52, 3.71,3.58,3.61,3.67,3.64,3.67,3.65,3.85,3.63,3.86, 3.60,3.88,3.84,3.76,3.94,3.66,3.94,3.87,3.91,3.95, 4.04,3.82,4.08,4.07,3.88,3.88,3.91,3.88,3.84,4.09, 3.97,4.02,3.96,3.90,4.14,4.10,4.00,3.87,3.86,4.13, 4.16,4.13,4.07,3.93,4.24,4.20,4.28,4.22,4.04,4.17, 4.03,4.36,4.21,4.19,4.25,4.06,4.36,4.25,4.22,4.27, 4.21,4.17,4.16,4.25,4.27,4.45,4.33,4.22,4.32,4.42, 4.39,4.38,4.51,4.49,4.45,4.57,4.40,4.48,4.49,4.44, 4.46,4.42,4.44,4.39,4.49,4.48,4.47,4.61,4.61,4.49, 4.58,4.44,4.51,4.63,4.65,4.59,4.68,4.65,4.52,4.58, 4.61,4.71,4.67,4.55,4.69,4.61,4.51,5.05,4.75,4.81, 4.84,4.68,4.75,4.58,4.64,4.84,4.81,4.64,4.60,4.65, 4.95,4.85,4.95,4.75,4.87,4.92,4.91,4.87,4.89,4.89, 0.94,0.97,0.98,1.05,1.05,1.09,1.18,1.22,1.16,1.28, 1.25,1.34,1.35,1.34,1.41,1.43,1.44,1.44,1.55,1.54, 1.52,1.57,1.58,1.63,1.64,1.72,1.68,1.64,1.74,1.84, 1.78,1.79,1.82,1.87,1.85,1.95,1.91,2.02,1.95,1.97, 2.02,1.94,2.00,2.05,2.06,2.10,2.13,2.10,2.10,2.11, 2.15,2.19,2.14,2.18,2.21,2.25,2.37,2.29,2.37,2.37, 2.33,2.38,2.32,2.37,2.47,2.35,2.35,2.52,2.60,2.46, 2.47,2.51,2.40,2.57,2.51,2.54,2.62,2.68,2.50,2.52, 2.65,2.66,2.59,2.66,2.62,2.69,2.67,2.83,2.67,2.82, 2.72,2.77,2.89,2.86,2.77,2.88,2.87,2.78,2.90,2.88, 2.92,3.04,2.81,2.91,2.90,2.98,2.97,3.05,3.05,3.01, 3.12,3.04,3.23,3.11,2.99,3.05,3.11,3.02,3.14,3.18, 3.19,3.22,3.18,3.26,3.11,3.33,3.15,3.27,3.22,3.21, 3.32,3.25,3.44,3.17,3.26,3.39,3.24,3.40,3.44,3.25, 3.30,3.36,3.47,3.36,3.46,3.48,3.56,3.49,3.39,3.39, 3.60,3.62,3.53,3.46,3.60,3.52,3.68,3.49,3.46,3.56, 3.75,3.54,3.72,3.61,3.81,3.80,3.57,3.61,3.73,3.66, 3.77,3.64,3.70,3.62,3.63,3.84,3.78,3.72,3.80,3.74, 3.76,3.80,3.81,3.79,3.92,3.87,3.94,3.88,3.91,3.84, 3.74,4.09,3.78,4.03,3.99,3.89,3.91,4.05,4.14,3.92, 4.05,3.95,4.18,4.05,4.10,3.97,4.12,3.84,4.14,3.97, 4.09,4.13,4.04,4.09,4.16,4.32,4.14,4.10,4.10,4.11, 4.10,4.20,4.10,4.21,4.26,4.07,4.23,4.25,4.26,4.31, 4.27,4.25,4.42,4.43,4.27,4.55,4.38,4.30,4.52,4.22, 4.31,4.49,4.39,4.36,4.25,4.36,4.40,4.37,4.43,4.52, 4.50,4.40,4.36,4.41,4.63,4.67,4.43,4.44,4.50,4.71, 4.52,4.77,4.42,4.53,4.59,4.49,4.66,4.56,4.68,4.66, 4.79,4.46,4.67,4.68,4.69,4.70,4.43,4.70,4.67,4.51, 4.61,4.60,4.56,4.77,4.59,4.75,4.57,4.63,4.59,4.95, 0.94,0.92,0.99,1.01,1.06,1.05,1.12,1.17,1.19,1.30, 1.27,1.26,1.28,1.30,1.35,1.38,1.40,1.45,1.50,1.54, 1.45,1.54,1.53,1.66,1.60,1.58,1.69,1.63,1.66,1.70, 1.74,1.79,1.80,1.76,1.77,1.80,1.88,1.90,1.97,1.91, 1.93,1.94,1.96,2.00,2.01,2.01,2.09,2.08,2.14,2.12, 2.00,2.07,2.19,2.18,2.23,2.21,2.24,2.16,2.31,2.12, 2.34,2.26,2.35,2.25,2.21,2.36,2.45,2.40,2.40,2.46, 2.45,2.47,2.40,2.56,2.39,2.56,2.58,2.47,2.52,2.60, 2.55,2.58,2.69,2.61,2.62,2.57,2.66,2.66,2.71,2.66, 2.74,2.72,2.72,2.79,2.74,2.75,2.85,2.74,2.84,2.87, 2.92,2.78,2.86,2.80,2.86,2.85,2.84,2.88,2.99,2.95, 2.88,2.96,3.01,2.96,2.99,2.96,2.94,3.17,3.10,3.05, 3.05,3.23,3.12,3.09,3.14,3.21,3.19,3.08,3.17,3.20, 3.26,3.24,3.26,3.21,3.15,3.12,3.18,3.35,3.26,3.40, 3.21,3.26,3.36,3.35,3.29,3.36,3.37,3.51,3.45,3.39, 3.39,3.39,3.43,3.39,3.49,3.33,3.40,3.46,3.46,3.40, 3.59,3.54,3.63,3.57,3.56,3.63,3.58,3.52,3.57,3.62, 3.72,3.66,3.64,3.72,3.62,3.78,3.57,3.63,3.73,3.67, 3.71,3.74,3.66,3.73,3.85,3.70,3.75,3.89,3.79,3.69, 3.88,3.83,3.73,3.95,3.93,3.92,4.03,3.87,3.79,3.77, 4.09,3.90,3.84,3.96,3.95,4.01,4.08,3.99,3.86,3.94, 3.87,3.96,4.01,4.04,4.07,3.95,4.18,4.08,4.14,4.16, 4.17,4.18,4.33,4.10,4.05,4.16,4.21,4.13,4.12,4.21, 4.17,4.14,4.10,4.36,4.24,4.33,4.40,4.28,4.26,4.33, 4.18,4.22,4.20,4.44,4.33,4.29,4.34,4.32,4.36,4.38, 4.35,4.26,4.36,4.38,4.09,4.48,4.42,4.35,4.40,4.46, 4.49,4.49,4.42,4.56,4.31,4.41,4.51,4.46,4.41,4.43, 4.66,4.43,4.54,4.58,4.55,4.29,4.62,4.61,4.54,4.68, 4.60,4.78,4.58,4.53,4.58,4.52,4.86,4.65,4.64,4.74, 0.92,0.93,0.96,1.03,1.04,1.05,1.11,1.14,1.21,1.20, 1.24,1.26,1.29,1.34,1.32,1.37,1.41,1.43,1.42,1.44, 1.50,1.53,1.50,1.57,1.58,1.62,1.66,1.72,1.65,1.64, 1.71,1.66,1.76,1.79,1.76,1.78,1.84,1.89,1.80,1.87, 1.90,1.90,1.95,1.94,1.99,2.02,1.96,2.00,1.93,2.11, 2.07,2.09,2.15,2.10,2.09,2.15,2.16,2.13,2.19,2.18, 2.25,2.28,2.25,2.29,2.33,2.31,2.30,2.41,2.36,2.42, 2.37,2.36,2.44,2.41,2.38,2.43,2.57,2.47,2.48,2.44, 2.56,2.47,2.48,2.55,2.67,2.64,2.58,2.54,2.57,2.71, 2.73,2.70,2.67,2.65,2.73,2.73,2.71,2.83,2.82,2.64, 2.72,2.78,2.77,2.85,2.76,2.79,2.92,2.88,2.91,2.93, 2.89,2.90,2.96,2.91,3.06,3.07,2.91,2.90,3.00,3.07, 3.18,3.11,2.92,2.95,3.06,3.13,3.10,3.02,3.16,3.15, 3.16,3.03,3.06,3.15,3.18,3.19,3.26,3.37,3.37,3.34, 3.10,3.29,3.22,3.24,3.32,3.29,3.30,3.29,3.45,3.37, 3.27,3.36,3.41,3.46,3.30,3.40,3.58,3.44,3.47,3.49, 3.49,3.51,3.42,3.37,3.61,3.60,3.57,3.53,3.63,3.59, 3.51,3.50,3.54,3.63,3.78,3.62,3.63,3.64,3.53,3.47, 3.69,3.67,3.62,3.62,3.69,3.74,3.73,3.64,3.66,3.66, 3.72,3.68,3.75,3.68,3.73,3.62,3.91,3.92,3.83,3.85, 3.73,3.99,3.84,3.74,3.79,3.85,3.90,3.89,3.92,3.90, 3.98,4.07,3.88,3.88,3.96,3.79,4.21,3.94,4.10,3.92, 4.12,4.31,4.08,4.08,4.14,4.18,4.06,4.03,3.97,4.03, 4.18,4.20,4.16,4.15,4.18,4.28,4.02,4.00,4.21,4.01, 4.24,4.22,4.13,4.28,4.34,4.21,4.46,4.23,4.23,4.37, 4.45,4.20,4.41,4.44,4.41,4.20,4.27,4.32,4.17,4.45, 4.32,4.37,4.36,4.57,4.40,4.49,4.55,4.62,4.52,4.43, 4.48,4.35,4.43,4.45,4.44,4.59,4.55,4.54,4.42,4.63, 4.48,4.42,4.42,4.44,4.56,4.53,4.36,4.67,4.61,4.66, 0.91,0.93,0.96,1.03,1.04,1.10,1.08,1.20,1.15,1.17, 1.25,1.27,1.29,1.28,1.31,1.37,1.39,1.38,1.41,1.47, 1.48,1.50,1.54,1.56,1.57,1.56,1.63,1.64,1.67,1.70, 1.65,1.71,1.75,1.73,1.81,1.77,1.79,1.80,1.83,1.78, 1.84,1.93,1.92,1.97,1.87,1.94,2.03,1.95,1.94,1.97, 2.03,2.01,2.06,2.05,2.17,2.14,2.21,2.12,2.21,2.21, 2.19,2.26,2.26,2.25,2.25,2.24,2.37,2.29,2.39,2.30, 2.40,2.26,2.40,2.38,2.41,2.49,2.46,2.46,2.54,2.40, 2.49,2.49,2.54,2.58,2.59,2.62,2.55,2.61,2.61,2.65, 2.58,2.71,2.61,2.69,2.72,2.65,2.71,2.72,2.79,2.75, 2.68,2.77,2.74,2.68,2.79,2.83,2.96,3.02,2.82,2.80, 2.88,2.96,2.77,2.75,2.99,2.87,2.91,3.04,3.04,3.06, 3.09,2.94,3.03,3.01,3.03,3.00,3.08,2.99,3.07,3.12, 3.11,3.06,3.22,3.05,3.15,3.07,3.21,3.05,3.26,3.20, 3.25,3.25,3.20,3.18,3.22,3.26,3.23,3.34,3.25,3.29, 3.34,3.38,3.33,3.30,3.36,3.31,3.29,3.34,3.35,3.38, 3.48,3.30,3.38,3.47,3.49,3.61,3.55,3.52,3.51,3.46, 3.53,3.41,3.62,3.47,3.61,3.50,3.44,3.65,3.63,3.63, 3.71,3.70,3.75,3.54,3.66,3.52,3.64,3.57,3.64,3.76, 3.87,3.77,3.75,3.71,3.69,3.72,3.74,3.87,3.73,3.69, 3.85,3.72,3.92,3.86,3.73,3.80,3.76,3.81,3.93,3.95, 3.98,3.95,4.11,3.90,4.02,3.95,3.90,4.10,4.03,3.80, 3.90,3.91,3.85,3.89,4.13,4.05,3.94,3.98,4.03,4.05, 4.20,3.93,4.00,4.11,4.14,4.05,4.11,4.12,4.08,4.11, 4.06,4.03,4.22,4.23,4.00,4.27,4.29,4.13,4.26,4.40, 4.34,4.16,4.30,4.28,4.41,4.35,4.16,4.22,4.52,4.29, 4.51,4.41,4.35,4.26,4.28,4.41,4.31,4.16,4.44,4.15, 4.54,4.43,4.21,4.41,4.29,4.37,4.41,4.25,4.48,4.45, 4.64,4.60,4.52,4.67,4.38,4.37,4.47,4.56,4.39,4.50, 0.93,0.94,0.94,1.00,1.00,1.05,1.06,1.11,1.15,1.17, 1.16,1.25,1.24,1.28,1.35,1.33,1.40,1.45,1.45,1.44, 1.44,1.47,1.50,1.51,1.54,1.57,1.56,1.68,1.54,1.64, 1.69,1.75,1.73,1.71,1.73,1.77,1.74,1.77,1.79,1.86, 1.79,1.86,1.91,1.91,1.87,1.97,1.96,1.99,1.96,1.92, 2.00,2.11,2.05,2.10,2.12,2.18,2.16,2.11,2.18,2.16, 2.11,2.18,2.19,2.27,2.29,2.24,2.35,2.27,2.33,2.32, 2.37,2.29,2.34,2.47,2.30,2.31,2.46,2.44,2.42,2.44, 2.47,2.51,2.50,2.48,2.53,2.53,2.57,2.58,2.56,2.53, 2.59,2.57,2.66,2.60,2.61,2.67,2.67,2.82,2.73,2.63, 2.69,2.77,2.69,2.76,2.68,2.90,2.76,2.81,2.79,2.82, 2.85,2.82,2.90,2.77,2.98,3.10,2.85,2.93,2.97,2.94, 2.98,3.08,2.97,2.96,2.99,2.98,2.97,2.97,3.05,3.04, 3.16,3.17,3.13,3.04,3.15,3.15,3.13,3.11,3.10,3.16, 3.21,3.15,3.06,3.22,3.11,3.12,3.23,3.22,3.24,3.28, 3.37,3.30,3.34,3.33,3.31,3.22,3.43,3.32,3.35,3.28, 3.43,3.40,3.41,3.47,3.40,3.54,3.38,3.39,3.42,3.47, 3.55,3.54,3.45,3.61,3.51,3.49,3.56,3.74,3.58,3.60, 3.52,3.56,3.61,3.62,3.48,3.68,3.61,3.55,3.70,3.57, 3.43,3.73,3.67,3.83,3.70,3.66,3.81,3.62,3.64,3.65, 3.46,3.93,3.70,3.84,3.72,3.74,3.80,3.86,3.75,3.80, 3.92,3.97,3.94,3.91,3.91,3.75,3.86,3.88,3.89,3.81, 3.86,3.98,3.90,4.11,4.07,4.02,3.89,4.02,3.99,3.91, 4.02,4.07,4.01,4.16,4.14,3.96,4.00,4.06,4.15,4.06, 3.97,3.94,4.17,3.97,4.24,4.20,4.22,4.10,4.02,4.13, 4.27,4.14,4.32,4.24,4.15,4.24,4.25,4.37,4.14,4.24, 4.32,4.31,4.21,4.35,4.11,4.37,4.24,4.36,4.40,4.30, 4.39,4.32,4.37,4.29,4.52,4.52,4.40,4.28,4.48,4.39, 4.16,4.37,4.46,4.37,4.21,4.33,4.28,4.55,4.50,4.30, 0.88,0.90,0.96,0.95,0.98,1.07,1.05,1.14,1.14,1.20, 1.18,1.21,1.23,1.19,1.32,1.27,1.32,1.36,1.34,1.46, 1.41,1.41,1.47,1.43,1.54,1.55,1.60,1.63,1.60,1.60, 1.67,1.69,1.71,1.68,1.73,1.73,1.80,1.74,1.76,1.75, 1.85,1.81,1.90,1.94,1.86,1.87,2.00,1.94,1.95,1.96, 2.01,1.95,1.95,2.03,2.03,2.04,2.06,2.12,2.11,2.17, 2.05,2.23,2.15,2.20,2.20,2.24,2.16,2.23,2.28,2.25, 2.41,2.17,2.30,2.34,2.31,2.39,2.46,2.36,2.36,2.47, 2.35,2.35,2.53,2.41,2.52,2.55,2.53,2.57,2.53,2.59, 2.58,2.54,2.63,2.53,2.73,2.51,2.67,2.68,2.69,2.58, 2.76,2.71,2.66,2.68,2.66,2.83,2.67,2.67,2.90,2.78, 2.81,2.78,2.72,2.75,2.89,2.74,2.94,2.83,2.93,2.82, 2.94,2.93,2.91,2.95,2.96,2.92,3.04,2.87,3.02,3.03, 3.03,3.07,3.09,3.13,3.02,3.04,3.14,3.14,3.07,3.09, 3.09,3.12,3.16,3.11,3.05,3.10,3.13,3.14,3.23,3.09, 3.20,3.16,3.12,3.31,3.25,3.27,3.30,3.27,3.24,3.24, 3.45,3.28,3.34,3.41,3.30,3.27,3.29,3.30,3.41,3.49, 3.41,3.57,3.46,3.55,3.38,3.48,3.43,3.55,3.37,3.49, 3.48,3.51,3.46,3.57,3.47,3.51,3.58,3.50,3.44,3.79, 3.66,3.61,3.75,3.65,3.60,3.76,3.62,3.65,3.53,3.66, 3.75,3.90,3.67,3.76,3.83,3.86,3.75,3.80,3.78,3.74, 4.04,3.81,3.85,3.76,3.79,3.77,3.68,3.74,3.74,3.91, 3.79,3.91,3.82,3.88,3.78,3.91,3.84,3.86,3.88,3.96, 4.00,3.88,3.97,4.00,3.81,4.10,4.05,3.90,3.97,4.03, 3.93,4.01,3.90,3.95,3.97,3.96,4.14,4.03,4.13,4.15, 3.93,4.08,4.04,4.08,4.15,4.06,4.20,4.33,4.19,4.22, 4.12,4.34,4.19,4.11,4.21,4.37,4.16,4.28,4.19,4.24, 4.32,4.34,4.37,4.29,4.22,4.35,4.27,4.15,4.42,4.38, 4.37,4.38,4.39,4.28,4.39,4.47,4.24,4.36,4.20,4.35, 0.89,0.89,0.93,0.96,0.94,1.05,1.07,1.09,1.10,1.14, 1.13,1.23,1.23,1.23,1.26,1.29,1.29,1.43,1.40,1.35, 1.42,1.40,1.47,1.50,1.46,1.44,1.50,1.50,1.54,1.60, 1.65,1.59,1.58,1.71,1.68,1.63,1.76,1.75,1.74,1.77, 1.75,1.89,1.82,1.85,1.85,1.92,1.87,1.86,1.97,1.98, 1.94,2.04,1.97,1.98,2.00,1.99,2.04,2.02,2.08,2.04, 2.08,2.12,2.12,2.20,2.16,2.20,2.15,2.24,2.25,2.30, 2.22,2.30,2.31,2.15,2.27,2.29,2.33,2.30,2.30,2.35, 2.38,2.37,2.41,2.44,2.40,2.45,2.54,2.52,2.52,2.51, 2.61,2.56,2.51,2.49,2.60,2.63,2.63,2.66,2.63,2.58, 2.63,2.63,2.66,2.64,2.74,2.65,2.73,2.73,2.71,2.74, 2.77,2.70,2.74,2.72,2.77,2.87,2.81,2.73,2.83,2.87, 2.87,2.91,2.90,2.90,2.88,2.90,2.89,2.91,3.09,2.99, 3.01,2.95,2.92,2.83,2.93,3.02,2.99,3.11,3.16,3.04, 3.09,3.04,3.09,3.15,3.06,3.08,2.99,3.24,3.12,3.28, 3.17,3.21,3.16,3.17,3.19,3.19,3.30,3.18,3.33,3.32, 3.18,3.17,3.21,3.15,3.30,3.23,3.32,3.21,3.33,3.39, 3.20,3.41,3.38,3.43,3.38,3.46,3.47,3.36,3.57,3.39, 3.44,3.48,3.57,3.57,3.38,3.33,3.37,3.56,3.71,3.66, 3.61,3.59,3.63,3.50,3.46,3.59,3.52,3.59,3.69,3.60, 3.62,3.60,3.48,3.62,3.65,3.64,3.59,3.71,3.72,3.76, 3.72,3.83,3.72,3.85,3.79,3.71,3.72,3.82,3.89,3.70, 3.71,3.82,3.70,3.86,3.87,3.92,3.80,3.90,3.79,3.89, 3.72,3.96,3.87,4.06,3.77,3.79,3.89,3.79,3.84,3.90, 3.86,3.96,4.04,3.88,3.98,3.93,3.99,3.77,4.06,4.01, 4.13,3.96,4.11,4.03,3.99,4.15,4.01,4.14,4.16,3.88, 4.13,4.18,3.98,4.22,4.13,4.04,4.23,4.11,4.21,4.10, 4.24,4.15,4.23,4.10,4.13,4.05,4.26,4.21,4.26,4.17, 4.29,4.39,4.29,4.37,4.29,4.16,4.27,4.36,3.95,4.16, 0.86,0.88,0.92,0.92,0.97,1.02,1.05,1.07,1.11,1.11, 1.15,1.17,1.17,1.16,1.26,1.28,1.31,1.32,1.33,1.35, 1.41,1.42,1.45,1.45,1.50,1.44,1.44,1.50,1.58,1.53, 1.55,1.55,1.68,1.67,1.63,1.68,1.69,1.67,1.72,1.78, 1.73,1.86,1.74,1.75,1.83,1.84,1.89,1.92,1.93,1.87, 1.89,1.92,2.02,1.96,2.03,1.96,2.02,1.93,1.98,2.03, 2.13,2.10,2.06,2.15,2.09,2.15,2.15,2.24,2.23,2.15, 2.20,2.11,2.27,2.28,2.28,2.37,2.33,2.28,2.33,2.33, 2.32,2.36,2.46,2.29,2.38,2.37,2.52,2.39,2.48,2.45, 2.47,2.48,2.51,2.40,2.51,2.52,2.47,2.67,2.55,2.58, 2.67,2.57,2.61,2.59,2.64,2.66,2.57,2.68,2.63,2.75, 2.76,2.65,2.73,2.75,2.74,2.84,2.79,2.75,2.74,2.75, 2.83,2.79,2.86,2.87,2.87,2.76,2.86,2.99,2.88,2.86, 2.91,2.94,2.85,3.07,2.99,2.89,2.87,3.05,3.03,2.93, 3.07,3.02,3.04,2.96,3.08,3.24,3.08,3.12,3.02,3.05, 3.12,2.94,3.07,3.21,3.20,3.16,3.13,3.19,3.19,3.16, 3.13,3.30,3.27,3.21,3.28,3.36,3.08,3.33,3.21,3.24, 3.28,3.17,3.37,3.22,3.35,3.16,3.28,3.34,3.30,3.24, 3.34,3.25,3.35,3.35,3.57,3.38,3.43,3.46,3.42,3.38, 3.57,3.57,3.57,3.51,3.50,3.49,3.57,3.52,3.60,3.61, 3.48,3.54,3.46,3.76,3.65,3.57,3.52,3.58,3.60,3.55, 3.67,3.74,3.74,3.53,3.59,3.77,3.77,3.83,3.70,3.61, 3.70,3.76,3.64,3.76,3.70,3.70,3.78,3.84,3.78,3.74, 3.89,3.97,4.04,3.90,3.91,3.75,4.01,3.92,3.83,3.78, 3.90,3.88,3.93,3.68,3.78,3.84,3.90,3.78,3.99,3.91, 3.78,3.99,3.92,3.84,4.00,3.94,3.96,4.01,4.08,4.10, 4.02,3.93,4.06,4.16,4.02,4.12,4.11,4.09,4.08,4.08, 4.05,4.09,4.03,4.18,4.35,4.18,4.11,4.20,4.25,4.22, 4.09,4.13,4.05,4.15,4.13,4.17,4.33,4.21,4.13,4.14, 0.82,0.87,0.88,0.91,0.99,1.00,1.02,1.02,1.09,1.03, 1.16,1.14,1.19,1.16,1.21,1.26,1.27,1.27,1.31,1.28, 1.43,1.40,1.40,1.43,1.42,1.44,1.46,1.50,1.50,1.52, 1.54,1.61,1.59,1.60,1.66,1.64,1.68,1.70,1.65,1.72, 1.76,1.75,1.83,1.76,1.79,1.79,1.78,1.89,1.96,1.88, 1.89,1.87,1.99,1.94,1.94,2.03,1.93,2.01,2.00,1.99, 2.09,2.01,2.04,2.03,2.06,2.08,2.13,2.13,2.17,2.14, 2.27,2.27,2.19,2.23,2.16,2.29,2.23,2.28,2.30,2.27, 2.33,2.37,2.41,2.20,2.38,2.31,2.38,2.41,2.37,2.35, 2.36,2.51,2.35,2.41,2.42,2.54,2.51,2.57,2.56,2.56, 2.56,2.47,2.65,2.60,2.68,2.53,2.57,2.73,2.69,2.63, 2.67,2.72,2.68,2.69,2.73,2.85,2.74,2.67,2.78,2.74, 2.78,2.75,2.82,2.77,2.76,2.81,2.89,2.88,2.82,2.93, 2.73,2.79,2.77,2.89,2.97,2.83,2.99,3.03,2.84,2.98, 2.85,3.06,3.02,3.05,2.99,2.95,3.03,3.02,3.02,3.07, 3.18,3.07,3.21,3.06,3.07,3.10,3.03,3.11,3.15,3.28, 3.21,3.17,3.05,3.13,3.16,3.29,3.10,3.24,3.15,3.20, 3.42,3.18,3.19,3.26,3.31,3.35,3.22,3.21,3.35,3.29, 3.32,3.35,3.25,3.31,3.44,3.33,3.36,3.31,3.36,3.42, 3.34,3.35,3.26,3.34,3.45,3.48,3.52,3.45,3.37,3.47, 3.36,3.37,3.47,3.40,3.54,3.44,3.63,3.55,3.64,3.49, 3.56,3.62,3.54,3.59,3.60,3.67,3.59,3.68,3.61,3.57, 3.56,3.64,3.60,3.57,3.57,3.74,3.61,3.80,3.67,3.71, 3.82,3.75,3.65,3.82,3.69,3.66,3.73,3.73,3.74,3.68, 3.75,3.84,3.90,3.81,3.93,3.78,3.98,3.80,3.93,3.95, 3.99,4.15,3.89,3.86,3.95,3.92,3.84,3.97,4.12,3.93, 4.07,3.85,3.80,4.04,4.00,3.89,3.96,3.89,3.91,3.99, 3.97,4.00,4.04,3.80,4.08,3.86,4.04,3.96,3.98,4.18, 4.28,4.04,4.19,4.36,4.19,3.95,4.11,4.19,4.35,4.31, 0.78,0.84,0.90,0.88,0.89,0.94,0.99,1.04,1.03,1.12, 1.09,1.11,1.17,1.11,1.21,1.17,1.22,1.28,1.29,1.28, 1.33,1.34,1.32,1.36,1.39,1.47,1.41,1.44,1.55,1.58, 1.57,1.57,1.50,1.59,1.63,1.58,1.67,1.66,1.63,1.70, 1.67,1.74,1.70,1.78,1.75,1.80,1.77,1.84,1.80,1.80, 1.84,1.82,1.92,1.88,1.91,1.88,1.95,1.96,1.90,1.92, 2.07,2.01,2.00,2.04,2.08,2.04,2.05,2.06,2.14,2.12, 2.14,2.19,2.20,2.14,2.13,2.04,2.27,2.17,2.21,2.29, 2.21,2.24,2.29,2.28,2.39,2.22,2.32,2.26,2.31,2.33, 2.34,2.29,2.44,2.36,2.39,2.45,2.42,2.45,2.40,2.42, 2.55,2.43,2.52,2.57,2.50,2.57,2.56,2.59,2.47,2.54, 2.54,2.56,2.58,2.70,2.63,2.64,2.65,2.72,2.78,2.63, 2.64,2.68,2.72,2.79,2.75,2.70,2.78,2.81,2.71,2.78, 2.76,2.86,2.88,2.79,2.75,2.87,2.86,2.90,2.87,2.88, 2.97,3.02,2.97,2.87,3.07,3.01,2.96,2.83,2.99,2.82, 2.92,2.97,2.98,2.85,3.03,3.07,2.92,2.93,3.02,3.05, 2.96,3.22,3.15,2.96,3.05,2.97,3.10,3.17,3.10,3.10, 3.21,3.32,3.19,3.26,3.24,3.34,3.32,3.28,3.13,3.06, 3.24,3.24,3.18,3.22,3.39,3.14,3.34,3.17,3.29,3.36, 3.28,3.23,3.26,3.41,3.51,3.41,3.38,3.29,3.42,3.41, 3.39,3.30,3.41,3.48,3.50,3.47,3.34,3.48,3.45,3.37, 3.53,3.53,3.60,3.68,3.56,3.61,3.51,3.54,3.51,3.51, 3.64,3.61,3.56,3.50,3.55,3.68,3.52,3.74,3.72,3.80, 3.59,3.65,3.70,3.73,3.95,3.77,3.73,3.58,3.56,3.81, 3.74,3.94,3.67,3.77,3.73,3.86,3.74,3.72,3.85,3.98, 3.79,3.82,3.79,3.86,3.76,3.77,3.81,3.91,3.99,3.89, 3.78,3.86,3.78,3.89,3.82,3.89,3.91,3.99,3.89,3.91, 3.92,3.86,3.94,3.99,3.80,3.97,3.90,4.03,3.98,4.10, 3.96,4.04,4.02,3.90,3.94,4.11,4.00,4.04,4.05,4.13, 0.79,0.83,0.87,0.86,0.93,0.95,0.96,1.00,1.01,1.04, 1.07,1.11,1.11,1.11,1.14,1.22,1.19,1.14,1.22,1.30, 1.34,1.33,1.30,1.36,1.38,1.37,1.43,1.46,1.47,1.49, 1.50,1.51,1.54,1.54,1.55,1.60,1.62,1.59,1.64,1.61, 1.60,1.65,1.69,1.70,1.69,1.66,1.76,1.72,1.79,1.83, 1.84,1.85,1.79,1.91,1.89,1.87,1.88,1.94,1.90,1.93, 1.92,1.95,1.93,1.94,2.01,2.00,2.00,2.09,2.08,2.04, 2.09,2.06,2.08,2.08,2.15,2.11,2.05,2.14,2.16,2.16, 2.29,2.20,2.27,2.26,2.27,2.22,2.23,2.34,2.38,2.29, 2.36,2.41,2.46,2.29,2.39,2.41,2.44,2.42,2.44,2.41, 2.38,2.52,2.44,2.43,2.46,2.39,2.49,2.48,2.54,2.42, 2.53,2.66,2.59,2.51,2.67,2.62,2.49,2.61,2.61,2.59, 2.56,2.69,2.70,2.66,2.65,2.72,2.68,2.69,2.76,2.68, 2.73,2.68,2.81,2.80,2.71,2.75,2.74,2.85,2.75,2.73, 2.85,2.83,2.86,2.87,2.89,2.87,2.84,2.91,2.98,2.87, 2.92,2.91,2.93,2.89,2.98,2.95,2.87,2.97,3.04,2.99, 3.09,3.00,2.96,2.99,3.22,3.02,3.01,3.04,3.01,3.09, 3.12,3.11,3.18,2.98,3.17,3.16,3.14,3.21,3.17,3.23, 3.02,3.24,3.01,3.26,3.16,3.37,3.13,3.27,3.26,3.32, 3.31,3.25,3.14,3.24,3.33,3.08,3.23,3.37,3.32,3.44, 3.18,3.27,3.37,3.49,3.45,3.46,3.38,3.46,3.43,3.32, 3.40,3.35,3.37,3.29,3.51,3.55,3.37,3.39,3.49,3.48, 3.50,3.48,3.49,3.47,3.42,3.51,3.48,3.46,3.41,3.61, 3.54,3.66,3.46,3.55,3.55,3.73,3.61,3.52,3.66,3.65, 3.62,3.60,3.75,3.58,3.57,3.77,3.55,3.86,3.69,3.64, 3.64,3.67,3.77,3.81,3.82,3.91,3.76,3.57,3.70,3.82, 3.58,3.79,3.79,3.79,3.68,3.76,3.85,3.83,3.80,3.75, 3.72,3.83,3.84,3.95,3.74,3.72,3.85,3.84,3.94,3.92, 3.83,3.95,3.97,4.01,3.96,4.07,4.10,4.14,3.99,4.06, 1.06,1.08,1.13,1.18,1.23,1.26,1.33,1.32,1.39,1.38, 1.47,1.49,1.58,1.58,1.62,1.61,1.72,1.68,1.70,1.67, 1.80,1.86,1.84,1.89,1.90,1.99,1.96,2.00,2.04,2.06, 2.09,2.07,2.10,2.05,2.19,2.21,2.19,2.30,2.24,2.27, 2.27,2.37,2.37,2.42,2.49,2.44,2.46,2.32,2.33,2.48, 2.47,2.45,2.50,2.53,2.64,2.63,2.62,2.53,2.71,2.69, 2.63,2.79,2.64,2.74,2.98,2.81,2.78,2.93,2.81,2.96, 2.90,2.98,2.95,2.95,2.98,3.09,2.93,3.01,3.03,2.94, 3.14,3.08,3.18,3.09,3.06,3.11,3.20,3.14,3.23,3.24, 3.19,3.27,3.28,3.38,3.37,3.28,3.37,3.49,3.42,3.38, 3.38,3.31,3.32,3.48,3.43,3.44,3.42,3.44,3.36,3.52, 3.52,3.43,3.64,3.59,3.58,3.61,3.68,3.61,3.66,3.81, 3.68,3.71,3.64,3.79,3.68,3.71,3.72,3.71,3.95,3.76, 3.85,3.87,3.84,3.88,3.93,3.79,3.79,4.02,3.91,3.95, 3.92,4.12,4.07,3.99,3.89,4.03,3.93,4.00,3.98,4.02, 4.13,4.08,3.90,4.10,4.15,4.23,4.12,4.20,4.25,4.12, 4.36,4.31,4.15,4.27,4.22,4.15,4.35,4.24,4.30,4.43, 4.15,4.21,4.46,4.40,4.48,4.48,4.49,4.36,4.32,4.57, 4.39,4.21,4.41,4.36,4.41,4.65,4.47,4.59,4.66,4.51, 4.47,4.73,4.76,4.69,4.67,4.75,4.68,4.71,4.67,4.80, 4.48,4.67,4.78,4.68,4.87,4.74,4.63,4.79,4.91,4.82, 4.88,4.90,4.80,4.86,4.73,4.91,4.70,4.76,4.93,5.11, 4.74,4.90,4.87,4.96,4.78,5.07,4.95,5.01,4.93,5.12, 5.11,5.21,5.12,4.77,5.13,5.03,5.08,5.17,5.12,5.01, 5.07,5.07,5.11,5.11,5.27,5.10,5.08,5.17,5.08,5.19, 5.07,5.15,5.42,5.29,5.22,5.26,5.23,5.46,5.20,5.37, 5.35,5.39,5.33,5.37,5.40,5.35,5.40,5.47,5.08,5.34, 5.28,5.40,5.45,5.49,5.51,5.29,5.41,5.37,5.54,5.35, 5.42,5.86,5.40,5.31,5.78,5.69,5.67,5.58,5.54,5.64, 1.01,1.03,1.06,1.10,1.18,1.16,1.23,1.31,1.29,1.39, 1.36,1.47,1.44,1.49,1.58,1.48,1.57,1.59,1.59,1.65, 1.73,1.77,1.73,1.74,1.83,1.81,1.81,1.82,1.87,1.93, 1.93,1.96,1.94,2.02,2.09,2.09,2.11,2.08,2.10,2.16, 2.22,2.14,2.24,2.24,2.36,2.26,2.22,2.25,2.40,2.31, 2.38,2.41,2.47,2.35,2.51,2.54,2.47,2.51,2.65,2.57, 2.49,2.63,2.51,2.63,2.58,2.64,2.67,2.68,2.73,2.73, 2.77,2.72,2.85,2.65,2.84,2.86,2.78,2.83,2.88,2.84, 2.89,2.79,2.95,2.87,3.03,3.05,3.05,3.03,2.94,3.06, 2.98,3.09,3.03,3.21,3.07,3.11,3.14,3.16,3.17,3.11, 3.26,3.19,3.16,3.16,3.32,3.24,3.30,3.22,3.31,3.28, 3.25,3.23,3.42,3.30,3.33,3.46,3.49,3.50,3.46,3.47, 3.41,3.51,3.42,3.47,3.61,3.52,3.46,3.55,3.55,3.61, 3.54,3.67,3.63,3.68,3.64,3.51,3.76,3.78,3.58,3.70, 3.63,3.86,3.66,3.66,3.84,3.76,3.73,3.76,3.79,3.82, 3.79,3.77,3.94,3.97,3.99,3.96,3.75,3.90,3.94,4.06, 3.92,4.15,4.02,4.02,3.87,3.96,3.98,4.05,3.99,4.17, 3.96,3.95,4.19,3.97,4.07,4.24,4.29,4.11,4.02,4.21, 4.27,4.26,4.17,4.19,4.14,4.32,4.24,4.27,4.25,4.28, 4.30,4.38,4.43,4.27,4.52,4.19,4.21,4.63,4.34,4.39, 4.35,4.44,4.53,4.39,4.30,4.50,4.47,4.44,4.40,4.56, 4.47,4.47,4.44,4.45,4.47,4.47,4.54,4.67,4.61,4.65, 4.58,4.67,4.58,4.66,4.72,4.62,4.57,4.64,4.76,4.63, 4.88,4.61,4.60,4.74,4.90,4.74,4.53,4.86,4.88,4.83, 4.74,4.68,4.98,4.87,5.05,4.90,5.06,4.81,4.91,4.80, 5.05,4.94,4.75,5.14,4.88,4.96,5.08,4.91,5.10,5.12, 4.73,5.02,5.15,5.07,5.00,4.94,5.09,5.15,5.02,5.00, 5.02,5.09,5.02,5.03,5.28,5.36,5.08,5.44,5.20,5.42, 5.08,5.26,5.14,5.35,5.55,5.06,4.92,5.31,5.14,5.16, 1.01,1.02,1.04,1.07,1.08,1.17,1.20,1.23,1.27,1.27, 1.30,1.32,1.38,1.51,1.43,1.49,1.52,1.48,1.60,1.56, 1.63,1.69,1.66,1.70,1.66,1.67,1.74,1.77,1.77,1.87, 1.84,1.89,1.84,1.91,1.93,1.98,1.99,2.08,2.00,2.10, 2.00,2.09,2.11,2.18,2.18,2.17,2.16,2.18,2.18,2.34, 2.21,2.29,2.20,2.32,2.21,2.33,2.35,2.48,2.43,2.37, 2.39,2.44,2.38,2.46,2.50,2.56,2.50,2.61,2.55,2.54, 2.56,2.63,2.60,2.68,2.69,2.77,2.75,2.65,2.74,2.74, 2.70,2.77,2.69,2.95,2.80,2.72,2.85,2.92,2.90,2.83, 2.83,3.01,3.09,2.91,3.00,3.02,3.00,3.01,2.80,2.99, 3.04,3.08,3.12,3.08,3.14,3.05,3.20,3.14,3.16,3.14, 3.26,3.25,3.26,3.39,3.23,3.11,3.31,3.31,3.33,3.36, 3.33,3.41,3.39,3.44,3.26,3.45,3.26,3.34,3.42,3.54, 3.48,3.45,3.39,3.55,3.39,3.58,3.41,3.54,3.33,3.44, 3.71,3.65,3.68,3.45,3.67,3.69,3.64,3.71,3.72,3.79, 3.65,3.65,3.70,3.69,3.74,3.74,3.73,3.79,3.72,3.82, 3.71,3.71,3.88,3.90,3.77,3.90,4.08,3.79,3.87,4.02, 3.75,3.83,4.08,3.77,3.75,3.82,3.89,3.92,4.05,4.00, 3.88,3.92,3.91,3.84,4.01,3.87,3.89,4.06,4.04,4.15, 4.00,4.08,4.15,4.21,4.19,4.05,3.99,4.15,4.16,4.24, 4.26,4.09,4.22,4.14,4.17,4.18,4.16,4.33,4.24,4.32, 4.19,4.37,4.51,4.45,4.27,4.26,4.52,4.56,4.20,4.53, 4.43,4.39,4.48,4.68,4.42,4.40,4.48,4.50,4.46,4.29, 4.46,4.43,4.39,4.32,4.43,4.45,4.55,4.50,4.65,4.50, 4.57,4.59,4.46,4.63,4.68,4.72,4.87,4.65,4.69,4.51, 4.69,4.56,4.69,4.70,4.55,4.75,4.67,4.69,4.77,4.77, 4.89,4.86,4.70,4.64,4.72,4.76,4.79,4.83,4.75,4.91, 4.73,5.01,5.08,4.89,4.67,4.78,5.00,4.85,4.74,4.93, 4.80,4.91,5.07,4.91,4.94,4.91,5.11,4.96,5.07,5.15, 0.95,0.96,1.02,1.06,1.10,1.13,1.14,1.22,1.20,1.23, 1.25,1.32,1.32,1.40,1.38,1.43,1.43,1.46,1.45,1.52, 1.57,1.48,1.62,1.57,1.64,1.65,1.63,1.74,1.74,1.75, 1.79,1.75,1.81,1.86,1.84,1.94,1.95,1.90,1.82,2.00, 1.98,1.92,2.01,2.02,2.06,2.07,2.11,2.11,2.16,2.21, 2.12,2.15,2.25,2.28,2.12,2.30,2.35,2.39,2.35,2.28, 2.36,2.44,2.37,2.48,2.45,2.42,2.43,2.56,2.67,2.44, 2.53,2.46,2.53,2.58,2.55,2.53,2.59,2.63,2.61,2.71, 2.70,2.59,2.75,2.73,2.80,2.85,2.62,2.77,2.69,2.98, 2.71,2.79,2.87,2.69,2.80,2.88,3.03,2.88,2.97,2.97, 2.83,2.87,3.02,2.96,3.08,3.02,2.99,3.10,3.12,3.03, 3.18,3.07,3.07,3.07,3.17,3.06,3.17,3.13,3.20,3.18, 3.17,3.14,3.24,3.38,3.27,3.31,3.39,3.42,3.26,3.20, 3.33,3.29,3.39,3.35,3.22,3.40,3.42,3.36,3.42,3.40, 3.40,3.52,3.35,3.47,3.59,3.61,3.53,3.54,3.44,3.58, 3.45,3.41,3.40,3.66,3.72,3.73,3.55,3.64,3.55,3.53, 3.63,3.61,3.64,3.62,3.69,3.78,3.75,3.76,3.63,3.73, 3.79,3.80,3.93,3.84,3.85,3.71,3.69,3.78,3.85,3.85, 3.92,3.81,3.85,3.70,3.73,3.84,3.78,3.89,3.95,4.00, 3.99,3.97,4.07,3.87,3.96,3.89,3.96,4.08,3.98,4.06, 3.98,4.12,4.08,4.04,4.15,4.04,4.01,3.86,4.22,4.18, 4.21,4.20,4.25,4.36,4.38,4.37,4.13,4.13,4.21,4.11, 4.12,4.33,4.37,4.23,4.18,4.39,4.48,4.24,4.34,4.37, 4.49,4.44,4.32,4.38,4.44,4.54,4.42,4.23,4.30,4.49, 4.32,4.29,4.48,4.30,4.44,4.45,4.56,4.50,4.49,4.42, 4.38,4.58,4.38,4.50,4.52,4.45,4.61,4.52,4.64,4.69, 4.52,4.59,4.68,4.50,4.62,4.64,4.62,4.58,4.75,4.61, 4.72,4.58,4.80,4.64,4.72,4.68,4.66,4.74,4.57,4.88, 4.81,4.87,4.59,4.66,4.97,4.67,4.94,4.71,4.85,4.73, 0.93,0.89,1.01,1.06,1.11,1.09,1.13,1.16,1.20,1.21, 1.25,1.27,1.35,1.31,1.38,1.39,1.38,1.42,1.49,1.52, 1.52,1.55,1.61,1.56,1.62,1.65,1.63,1.67,1.67,1.69, 1.71,1.78,1.78,1.76,1.82,1.73,1.77,1.95,1.85,1.90, 1.94,2.04,1.90,1.93,1.96,2.07,2.12,2.12,2.09,2.12, 2.11,2.04,2.11,2.21,2.28,2.14,2.13,2.24,2.16,2.28, 2.28,2.32,2.35,2.21,2.36,2.37,2.35,2.44,2.41,2.49, 2.45,2.43,2.58,2.51,2.57,2.47,2.55,2.57,2.54,2.51, 2.57,2.58,2.66,2.71,2.65,2.53,2.56,2.66,2.66,2.69, 2.72,2.60,2.76,2.81,2.78,2.84,2.69,2.74,3.00,2.85, 2.79,2.83,2.76,2.96,2.94,2.94,2.98,2.98,3.08,2.95, 2.97,2.93,2.97,3.02,3.00,3.11,3.05,3.23,3.02,3.09, 3.11,3.15,3.12,3.11,3.09,3.04,3.13,3.14,3.25,3.16, 3.21,3.22,3.31,3.29,3.27,3.07,3.41,3.16,3.37,3.38, 3.27,3.32,3.28,3.41,3.30,3.31,3.29,3.42,3.32,3.42, 3.42,3.49,3.49,3.55,3.53,3.39,3.49,3.65,3.59,3.47, 3.49,3.51,3.49,3.66,3.53,3.62,3.62,3.55,3.56,3.72, 3.65,3.68,3.56,3.53,3.74,3.66,3.74,3.78,3.76,3.81, 3.62,3.75,3.74,3.75,3.77,3.74,3.82,3.82,3.91,3.96, 3.83,3.74,3.96,3.85,3.82,3.87,3.82,3.75,3.84,3.86, 3.80,3.86,4.00,3.89,3.99,3.83,3.89,4.06,3.78,4.02, 3.97,4.09,4.03,4.14,4.06,3.96,4.11,3.93,3.99,4.08, 4.17,3.98,4.14,4.25,3.90,4.04,4.33,4.06,4.26,4.20, 4.24,4.28,4.15,4.09,4.30,4.10,3.97,4.27,4.22,4.19, 4.35,4.16,4.17,4.29,4.32,4.38,4.32,4.32,4.22,4.21, 4.46,4.42,4.52,4.27,4.32,4.43,4.22,4.42,4.37,4.36, 4.36,4.31,4.48,4.35,4.55,4.70,4.55,4.48,4.61,4.38, 4.62,4.49,4.42,4.54,4.42,4.56,4.45,4.43,4.76,4.46, 4.66,4.47,4.61,4.47,4.67,4.68,4.57,4.44,4.71,4.50, 0.91,0.94,0.98,1.03,1.04,1.08,1.10,1.18,1.16,1.21, 1.23,1.23,1.33,1.31,1.37,1.37,1.30,1.41,1.45,1.39, 1.44,1.54,1.57,1.56,1.59,1.59,1.60,1.71,1.62,1.63, 1.71,1.71,1.69,1.77,1.76,1.81,1.81,1.84,1.83,1.92, 1.94,1.88,1.94,1.90,1.91,1.97,2.04,2.10,2.14,1.99, 2.09,2.12,2.11,2.13,2.09,2.17,2.12,2.21,2.21,2.20, 2.19,2.27,2.30,2.22,2.27,2.31,2.26,2.39,2.34,2.37, 2.29,2.42,2.44,2.46,2.35,2.46,2.42,2.56,2.40,2.59, 2.45,2.56,2.51,2.50,2.52,2.53,2.55,2.57,2.56,2.57, 2.63,2.71,2.68,2.65,2.71,2.72,2.71,2.67,2.76,2.84, 2.71,2.70,2.76,2.88,2.76,2.78,2.83,2.89,2.98,2.93, 2.79,2.81,3.02,2.97,2.96,2.91,3.06,2.93,3.01,3.05, 2.99,2.98,3.07,3.00,3.04,3.11,3.03,3.20,3.11,3.14, 3.21,3.09,3.22,3.21,3.25,3.18,3.26,3.26,3.28,3.26, 3.20,3.20,3.17,3.22,3.35,3.30,3.23,3.34,3.28,3.21, 3.38,3.38,3.32,3.26,3.37,3.41,3.26,3.29,3.43,3.59, 3.35,3.43,3.47,3.36,3.52,3.51,3.34,3.59,3.44,3.52, 3.59,3.54,3.51,3.50,3.59,3.54,3.63,3.58,3.59,3.55, 3.65,3.56,3.75,3.66,3.79,3.76,3.76,3.70,3.71,3.80, 3.74,3.73,3.63,3.85,3.76,3.76,3.83,3.97,3.74,3.78, 3.85,3.73,3.78,3.86,3.85,3.75,3.90,3.94,3.94,4.01, 3.77,4.01,3.90,3.99,3.82,3.88,3.97,3.97,3.98,4.00, 3.96,3.91,3.94,3.98,4.14,4.04,3.97,3.96,4.12,4.03, 4.05,4.19,3.96,4.25,4.11,4.08,4.13,4.32,4.19,4.31, 4.01,4.19,4.18,4.35,4.29,4.12,4.23,4.13,4.24,4.15, 4.19,4.28,4.42,4.20,4.11,4.31,4.29,4.30,4.27,4.56, 4.33,4.37,4.42,4.43,4.23,4.26,4.48,4.51,4.22,4.37, 4.46,4.41,4.33,4.45,4.48,4.43,4.41,4.46,4.57,4.50, 4.50,4.59,4.71,4.52,4.32,4.49,4.51,4.42,4.66,4.51, 0.90,0.92,0.97,0.98,1.06,1.04,1.13,1.16,1.19,1.22, 1.17,1.23,1.24,1.27,1.37,1.35,1.36,1.36,1.48,1.46, 1.43,1.53,1.51,1.52,1.59,1.59,1.60,1.65,1.59,1.60, 1.64,1.64,1.68,1.66,1.76,1.72,1.82,1.85,1.86,1.84, 1.86,1.83,1.86,1.88,1.89,1.91,1.93,2.03,1.98,1.97, 1.97,2.05,2.10,2.11,2.11,2.09,2.10,2.11,2.15,2.14, 2.16,2.23,2.34,2.09,2.32,2.22,2.23,2.34,2.29,2.24, 2.41,2.31,2.38,2.41,2.37,2.36,2.45,2.49,2.50,2.54, 2.40,2.47,2.41,2.49,2.40,2.47,2.55,2.62,2.60,2.54, 2.52,2.57,2.64,2.70,2.61,2.63,2.71,2.69,2.77,2.72, 2.67,2.73,2.70,2.78,2.75,2.92,2.76,2.83,2.88,2.88, 2.86,2.87,2.86,3.05,2.91,2.89,3.01,2.95,2.86,2.99, 2.89,3.00,2.98,2.86,3.12,3.11,2.99,3.01,2.98,2.95, 3.02,3.05,3.04,3.11,3.02,3.06,3.16,3.21,3.15,3.11, 3.28,3.21,3.11,3.23,3.19,3.18,3.27,2.92,3.18,3.24, 3.20,3.28,3.22,3.36,3.22,3.31,3.39,3.34,3.49,3.28, 3.34,3.32,3.46,3.31,3.36,3.46,3.42,3.43,3.49,3.40, 3.52,3.39,3.51,3.57,3.41,3.48,3.44,3.52,3.50,3.49, 3.60,3.68,3.69,3.56,3.64,3.64,3.60,3.67,3.52,3.65, 3.61,3.66,3.69,3.61,3.67,3.72,3.73,3.69,3.86,3.85, 3.77,3.72,3.89,3.67,3.86,3.50,3.70,3.87,3.74,3.85, 3.92,3.81,3.78,3.80,3.76,3.78,3.92,4.10,3.90,3.86, 3.96,3.93,3.98,4.01,4.04,3.92,3.93,3.98,3.98,3.97, 3.95,3.94,4.10,3.80,4.04,4.02,4.02,3.96,4.02,4.04, 4.03,4.00,4.06,4.21,4.14,4.20,4.28,4.24,4.09,4.15, 4.27,4.22,4.22,4.07,4.18,4.24,4.23,4.28,4.18,4.20, 4.27,4.13,4.24,4.33,4.07,4.21,4.26,4.27,4.44,4.22, 4.33,4.52,4.50,4.25,4.38,4.25,4.21,4.55,4.29,4.40, 4.36,4.36,4.39,4.42,4.32,4.42,4.36,4.36,4.46,4.39, 0.90,0.93,0.91,1.02,0.99,1.06,1.10,1.13,1.14,1.14, 1.17,1.23,1.24,1.26,1.28,1.36,1.36,1.34,1.35,1.37, 1.40,1.42,1.51,1.52,1.52,1.53,1.56,1.61,1.56,1.66, 1.61,1.66,1.70,1.69,1.69,1.69,1.76,1.70,1.80,1.75, 1.88,1.85,1.82,1.92,1.85,1.84,1.94,1.93,1.95,1.98, 2.02,2.02,2.02,2.08,1.99,2.03,2.08,2.11,2.11,2.13, 2.16,2.14,2.14,2.18,2.22,2.20,2.29,2.24,2.30,2.19, 2.33,2.33,2.32,2.42,2.34,2.26,2.37,2.39,2.48,2.41, 2.39,2.49,2.43,2.43,2.55,2.46,2.58,2.46,2.51,2.51, 2.58,2.59,2.55,2.59,2.62,2.57,2.60,2.64,2.64,2.59, 2.70,2.75,2.77,2.64,2.63,2.72,2.75,2.67,2.86,2.89, 2.82,2.80,2.82,2.86,2.99,2.87,2.86,2.83,2.99,2.96, 2.93,2.85,2.89,3.01,2.99,2.97,2.92,2.96,3.06,3.07, 3.11,2.94,2.89,3.12,2.91,3.14,2.99,2.96,3.02,3.08, 3.04,3.06,3.29,3.16,3.14,3.01,3.12,3.35,3.22,3.19, 3.24,3.26,3.37,3.22,3.26,3.21,3.26,3.23,3.28,3.28, 3.24,3.35,3.35,3.42,3.44,3.53,3.32,3.43,3.32,3.53, 3.39,3.54,3.48,3.25,3.37,3.43,3.41,3.42,3.46,3.48, 3.35,3.46,3.59,3.47,3.56,3.53,3.65,3.62,3.68,3.54, 3.51,3.62,3.52,3.54,3.55,3.59,3.81,3.63,3.63,3.63, 3.62,3.76,3.74,3.67,3.63,3.62,3.71,3.68,3.80,3.74, 3.82,3.72,3.60,3.72,3.82,3.79,3.65,3.73,3.77,3.89, 3.80,3.90,3.72,3.87,3.90,3.73,3.71,3.91,3.87,3.92, 3.95,3.93,3.96,4.04,4.12,3.83,4.02,3.94,3.86,3.98, 3.90,3.91,3.94,4.10,4.13,3.96,4.15,4.19,3.99,4.04, 4.03,4.18,4.04,4.01,4.09,4.14,4.21,4.16,4.24,4.17, 4.24,4.24,4.43,4.15,4.26,4.20,4.39,4.36,4.25,4.02, 4.25,4.19,4.03,4.24,4.24,4.35,4.27,4.29,4.24,4.34, 4.30,4.31,4.41,4.22,4.38,4.33,4.35,4.25,4.49,4.37, 0.86,0.91,0.94,1.00,1.03,1.04,1.06,1.09,1.07,1.18, 1.15,1.19,1.24,1.21,1.27,1.32,1.31,1.35,1.36,1.40, 1.44,1.44,1.46,1.47,1.56,1.50,1.49,1.61,1.57,1.57, 1.68,1.57,1.60,1.73,1.67,1.71,1.75,1.75,1.76,1.83, 1.85,1.75,1.84,1.85,1.78,1.82,1.87,2.01,2.04,1.93, 1.98,1.98,1.97,1.98,2.14,2.07,2.08,2.01,2.06,2.09, 2.10,2.11,2.16,2.14,2.22,2.20,2.19,2.20,2.24,2.17, 2.20,2.30,2.26,2.30,2.31,2.31,2.38,2.39,2.33,2.41, 2.40,2.33,2.47,2.42,2.39,2.52,2.51,2.55,2.55,2.43, 2.54,2.47,2.43,2.47,2.63,2.56,2.61,2.51,2.69,2.65, 2.52,2.67,2.64,2.65,2.72,2.61,2.69,2.76,2.66,2.76, 2.81,2.76,2.80,2.75,2.76,2.82,2.85,2.74,2.93,2.91, 2.95,2.96,2.78,2.95,2.89,2.87,2.85,2.84,2.86,3.02, 2.86,3.04,3.00,2.87,2.98,3.04,3.08,3.03,3.15,3.01, 2.99,3.05,3.01,2.97,3.05,3.10,3.07,3.14,3.13,3.15, 3.23,3.12,3.15,3.12,3.17,3.05,3.20,3.25,3.35,3.28, 3.33,3.39,3.34,3.33,3.34,3.53,3.34,3.39,3.40,3.38, 3.47,3.47,3.40,3.44,3.40,3.41,3.48,3.44,3.61,3.50, 3.47,3.40,3.53,3.49,3.35,3.54,3.46,3.59,3.52,3.42, 3.51,3.48,3.48,3.50,3.65,3.62,3.55,3.58,3.61,3.56, 3.64,3.65,3.59,3.76,3.61,3.72,3.75,3.71,3.71,3.74, 3.78,3.65,3.73,3.83,3.72,3.64,3.90,3.60,3.69,3.87, 3.79,3.78,3.88,3.75,3.83,3.81,3.79,3.80,3.89,3.98, 3.91,3.84,3.95,3.92,3.91,4.04,3.84,3.88,3.96,4.04, 3.90,3.96,3.87,4.02,4.03,4.07,4.02,3.95,4.02,3.98, 4.00,4.09,3.94,4.13,4.16,4.14,4.13,4.09,4.15,4.19, 4.00,4.09,3.99,4.18,4.35,4.25,4.18,4.22,4.08,4.27, 4.14,4.37,4.26,4.29,4.25,4.15,4.15,4.33,4.30,4.27, 4.16,4.29,4.16,4.24,4.29,4.41,4.19,4.41,4.31,4.38, 0.85,0.91,0.91,0.96,1.00,1.02,1.06,1.05,1.12,1.12, 1.20,1.16,1.17,1.26,1.30,1.32,1.27,1.34,1.37,1.40, 1.44,1.43,1.44,1.39,1.53,1.45,1.49,1.53,1.54,1.60, 1.60,1.59,1.63,1.67,1.63,1.72,1.78,1.65,1.76,1.77, 1.76,1.83,1.81,1.81,1.85,1.81,1.87,1.83,1.90,1.91, 1.92,1.90,1.97,1.93,1.97,2.01,2.04,2.00,2.01,2.14, 2.09,2.14,2.10,2.15,2.13,2.06,2.21,2.13,2.21,2.32, 2.23,2.21,2.24,2.15,2.27,2.23,2.29,2.38,2.30,2.33, 2.39,2.36,2.41,2.47,2.40,2.49,2.41,2.43,2.38,2.55, 2.42,2.41,2.50,2.51,2.58,2.68,2.52,2.55,2.57,2.51, 2.57,2.63,2.63,2.68,2.65,2.68,2.65,2.67,2.61,2.61, 2.78,2.76,2.71,2.72,2.76,2.79,2.85,2.78,2.72,2.87, 2.74,2.91,2.76,2.90,2.85,2.95,2.94,2.84,2.93,2.83, 2.93,3.03,2.93,2.96,3.02,3.09,3.04,2.99,3.00,2.92, 2.97,3.02,3.00,2.93,3.05,3.02,3.12,3.16,3.19,3.07, 3.14,3.09,3.10,3.11,3.19,3.26,3.18,3.26,3.27,3.24, 3.18,3.25,3.34,3.18,3.26,3.22,3.35,3.38,3.37,3.32, 3.33,3.50,3.35,3.19,3.36,3.47,3.48,3.43,3.41,3.17, 3.41,3.45,3.40,3.47,3.54,3.44,3.55,3.44,3.54,3.47, 3.39,3.60,3.49,3.59,3.60,3.51,3.57,3.47,3.56,3.53, 3.67,3.61,3.50,3.55,3.50,3.51,3.56,3.62,3.57,3.63, 3.72,3.72,3.59,3.53,3.79,3.86,3.67,3.73,3.72,3.77, 3.91,3.67,3.84,3.79,3.88,3.61,3.70,3.92,3.79,3.77, 3.90,3.87,3.88,3.75,3.84,3.82,3.76,3.98,3.84,3.74, 3.95,3.84,3.93,3.84,3.91,4.07,3.96,3.89,4.02,3.81, 3.98,4.01,4.12,3.98,3.96,3.97,4.14,3.95,4.05,4.00, 4.15,4.16,4.06,4.04,4.02,4.21,4.16,3.93,4.12,4.36, 3.98,4.17,4.12,4.07,4.08,4.13,4.02,3.98,4.10,4.12, 4.25,4.19,4.26,4.12,4.15,4.30,4.32,4.11,4.34,4.27, 0.87,0.90,0.91,0.93,0.98,0.97,1.07,1.07,1.08,1.13, 1.17,1.13,1.19,1.22,1.25,1.25,1.27,1.34,1.34,1.32, 1.35,1.40,1.40,1.43,1.47,1.49,1.48,1.52,1.52,1.54, 1.57,1.55,1.66,1.64,1.66,1.67,1.72,1.63,1.65,1.64, 1.69,1.77,1.86,1.84,1.84,1.85,1.79,1.86,1.86,2.04, 1.97,1.97,1.98,2.02,1.94,1.91,2.03,1.95,2.03,2.06, 1.98,2.12,2.21,2.22,2.27,2.06,2.17,2.20,2.09,2.19, 2.11,2.21,2.19,2.32,2.19,2.39,2.34,2.32,2.35,2.29, 2.44,2.33,2.27,2.29,2.37,2.38,2.48,2.45,2.41,2.44, 2.43,2.34,2.46,2.50,2.50,2.48,2.49,2.45,2.58,2.47, 2.51,2.61,2.60,2.46,2.60,2.63,2.66,2.70,2.73,2.76, 2.65,2.54,2.69,2.73,2.80,2.67,2.63,2.87,2.64,2.79, 2.59,2.72,2.80,2.85,2.81,2.90,2.87,2.88,2.79,2.81, 2.83,2.85,2.84,3.02,2.97,2.93,2.93,3.07,2.97,2.92, 2.94,3.12,2.97,3.11,2.93,3.11,2.96,3.09,3.09,3.01, 3.04,3.00,3.11,3.05,3.24,3.20,3.12,3.06,3.17,3.21, 3.17,3.25,3.21,3.31,3.26,3.31,3.11,3.26,3.35,3.32, 3.16,3.41,3.23,3.37,3.32,3.33,3.19,3.47,3.43,3.32, 3.32,3.30,3.48,3.38,3.31,3.41,3.44,3.43,3.45,3.42, 3.38,3.55,3.57,3.30,3.45,3.41,3.60,3.57,3.53,3.43, 3.44,3.48,3.38,3.60,3.51,3.67,3.54,3.63,3.71,3.54, 3.74,3.68,3.56,3.72,3.55,3.59,3.63,3.40,3.65,3.61, 3.69,3.85,3.69,3.83,3.84,3.71,3.72,3.63,3.87,3.73, 3.71,3.79,3.91,3.89,3.80,3.79,3.86,3.92,3.87,3.84, 3.82,3.80,3.82,3.82,3.94,3.76,3.81,3.96,3.73,3.99, 4.01,3.87,3.85,3.91,3.83,3.96,3.96,4.07,3.98,4.07, 3.79,3.97,3.96,4.13,4.13,3.89,4.08,4.00,4.19,4.04, 4.22,3.97,4.19,4.01,4.03,3.97,4.25,4.03,4.11,4.22, 4.12,4.16,4.15,4.04,4.13,4.11,4.17,4.10,4.31,4.03, 0.83,0.91,0.88,0.95,0.98,1.01,1.05,1.02,1.07,1.08, 1.12,1.15,1.20,1.24,1.30,1.25,1.29,1.34,1.32,1.33, 1.42,1.34,1.40,1.38,1.50,1.46,1.45,1.49,1.48,1.51, 1.53,1.54,1.56,1.57,1.69,1.70,1.71,1.61,1.70,1.79, 1.79,1.79,1.77,1.79,1.74,1.85,1.85,1.87,1.86,1.82, 1.88,1.87,1.93,1.92,2.00,1.99,1.99,2.14,1.97,1.98, 2.08,2.04,2.07,2.06,2.09,2.08,2.11,2.13,2.17,2.14, 2.17,2.23,2.23,2.22,2.26,2.22,2.23,2.36,2.31,2.21, 2.31,2.36,2.33,2.38,2.38,2.31,2.34,2.44,2.39,2.43, 2.42,2.50,2.53,2.51,2.51,2.51,2.42,2.56,2.48,2.48, 2.58,2.55,2.49,2.70,2.60,2.58,2.74,2.57,2.70,2.72, 2.75,2.67,2.63,2.76,2.69,2.67,2.77,2.63,2.67,2.64, 2.84,2.75,2.68,2.74,2.81,2.75,2.86,2.86,2.73,2.93, 3.02,2.82,2.89,2.97,2.86,3.00,3.00,2.88,2.93,2.98, 2.94,3.04,3.00,2.93,2.88,3.07,2.93,3.00,3.06,3.06, 3.10,3.09,3.07,3.00,3.15,3.14,3.27,3.03,3.14,3.21, 2.94,3.07,3.11,3.31,3.14,3.20,3.10,3.36,3.12,3.14, 3.14,3.30,3.31,3.25,3.27,3.16,3.22,3.32,3.25,3.40, 3.32,3.35,3.32,3.35,3.35,3.45,3.35,3.47,3.38,3.30, 3.40,3.38,3.35,3.37,3.59,3.43,3.35,3.43,3.56,3.45, 3.48,3.49,3.46,3.47,3.47,3.45,3.64,3.49,3.61,3.59, 3.71,3.55,3.52,3.53,3.58,3.60,3.59,3.41,3.77,3.50, 3.58,3.44,3.62,3.60,3.66,3.76,3.65,3.66,3.79,3.78, 3.70,3.65,3.84,3.71,3.72,3.68,3.60,3.81,3.62,3.86, 3.90,3.81,3.86,3.76,3.89,3.85,3.85,4.01,3.79,3.93, 3.90,3.94,3.94,3.69,3.92,3.92,3.95,3.89,4.03,3.79, 3.91,4.03,4.02,4.01,3.97,4.10,3.99,3.99,3.91,3.98, 3.90,4.05,4.00,4.18,4.11,4.08,4.03,4.15,4.09,3.91, 4.27,4.25,3.94,4.09,4.17,4.16,4.24,4.08,4.23,4.18, 0.84,0.86,0.92,0.95,0.98,0.99,1.03,1.03,1.10,1.09, 1.14,1.16,1.14,1.19,1.24,1.25,1.27,1.28,1.29,1.32, 1.34,1.38,1.39,1.34,1.42,1.44,1.47,1.46,1.55,1.48, 1.53,1.56,1.57,1.58,1.61,1.66,1.67,1.60,1.63,1.67, 1.64,1.75,1.72,1.68,1.78,1.78,1.77,1.86,1.79,1.87, 1.79,1.85,1.92,1.91,1.96,1.92,2.02,1.98,1.95,2.05, 2.01,2.06,1.97,2.03,1.99,2.07,2.11,2.18,2.11,2.18, 2.06,2.14,2.21,2.17,2.18,2.18,2.17,2.21,2.19,2.28, 2.22,2.28,2.35,2.36,2.27,2.44,2.30,2.39,2.42,2.34, 2.44,2.40,2.37,2.41,2.52,2.45,2.48,2.47,2.56,2.49, 2.40,2.46,2.48,2.57,2.52,2.56,2.53,2.64,2.53,2.55, 2.65,2.62,2.61,2.68,2.59,2.65,2.62,2.74,2.72,2.67, 2.64,2.74,2.77,2.76,2.74,2.72,2.84,2.73,2.66,2.85, 2.77,2.88,2.84,2.79,2.91,2.89,2.79,2.83,2.93,2.84, 2.94,2.88,2.84,2.98,2.93,2.92,3.06,2.94,2.95,2.99, 2.99,2.98,2.94,3.08,3.10,3.07,3.09,3.25,2.98,3.06, 3.03,3.18,3.21,3.13,3.21,3.16,3.19,3.24,3.10,3.05, 3.21,3.16,3.24,3.19,3.25,3.04,3.27,3.12,3.33,3.25, 3.15,3.23,3.36,3.20,3.32,3.36,3.42,3.39,3.34,3.25, 3.28,3.34,3.36,3.51,3.40,3.36,3.28,3.42,3.37,3.46, 3.50,3.51,3.56,3.50,3.33,3.44,3.39,3.50,3.47,3.59, 3.68,3.47,3.42,3.41,3.50,3.27,3.64,3.54,3.50,3.64, 3.55,3.56,3.51,3.53,3.69,3.68,3.69,3.58,3.73,3.64, 3.60,3.65,3.58,3.76,3.78,3.76,3.77,3.80,3.77,3.82, 3.84,3.66,4.01,3.96,3.80,3.75,3.83,3.66,4.01,3.82, 3.69,3.74,3.82,3.93,3.80,3.65,3.82,3.88,3.78,3.91, 4.06,4.02,3.81,4.08,3.85,3.85,3.85,3.90,4.01,3.94, 4.01,4.04,4.02,3.82,4.14,4.09,3.81,4.05,3.93,4.24, 4.00,4.19,4.13,4.25,4.07,3.91,4.03,3.96,3.99,4.13, 0.80,0.87,0.87,0.90,0.93,1.00,1.02,1.06,1.06,1.09, 1.08,1.11,1.12,1.17,1.19,1.21,1.23,1.27,1.30,1.32, 1.34,1.29,1.39,1.38,1.36,1.45,1.45,1.46,1.52,1.50, 1.52,1.47,1.54,1.60,1.54,1.60,1.60,1.70,1.61,1.70, 1.65,1.71,1.67,1.71,1.73,1.71,1.72,1.79,1.85,1.83, 1.82,1.82,1.80,1.88,1.82,1.90,2.00,1.91,1.97,1.94, 2.00,1.96,1.98,1.99,2.02,2.01,2.03,2.07,2.08,2.03, 2.12,2.03,2.10,2.13,2.17,2.24,2.25,2.17,2.20,2.14, 2.28,2.14,2.25,2.30,2.25,2.26,2.32,2.31,2.41,2.38, 2.36,2.34,2.34,2.33,2.27,2.50,2.48,2.40,2.44,2.46, 2.44,2.54,2.46,2.61,2.49,2.60,2.55,2.44,2.49,2.48, 2.60,2.67,2.63,2.66,2.73,2.62,2.61,2.67,2.67,2.67, 2.60,2.67,2.64,2.68,2.63,2.79,2.83,2.72,2.61,2.76, 2.83,2.81,2.68,2.85,2.81,2.72,2.73,2.90,2.88,2.81, 2.80,2.88,2.88,2.76,2.92,2.92,2.90,2.90,2.85,2.93, 3.02,3.00,2.86,3.02,3.01,2.89,3.01,3.09,3.07,3.09, 3.02,3.04,3.04,3.01,3.17,3.09,3.28,3.14,3.06,3.10, 3.18,3.16,3.07,3.14,3.24,3.25,3.29,3.14,3.31,3.19, 3.11,3.31,3.33,3.22,3.20,3.38,3.19,3.50,3.23,3.20, 3.31,3.36,3.34,3.30,3.29,3.45,3.23,3.34,3.44,3.34, 3.41,3.40,3.29,3.49,3.34,3.45,3.38,3.40,3.47,3.54, 3.52,3.45,3.61,3.52,3.45,3.51,3.76,3.57,3.52,3.53, 3.77,3.61,3.62,3.58,3.56,3.59,3.57,3.56,3.53,3.60, 3.45,3.59,3.75,3.49,3.73,3.69,3.51,3.67,3.75,3.79, 3.61,3.61,3.54,3.79,3.63,3.80,3.86,3.73,3.80,3.59, 3.69,3.74,3.70,3.63,3.76,3.86,3.83,3.70,3.71,4.04, 3.82,3.90,3.72,3.95,3.93,3.75,3.83,3.96,3.90,3.81, 3.86,3.96,4.12,3.88,4.05,3.83,3.85,4.07,3.89,4.00, 3.94,3.78,4.04,4.03,4.13,4.09,4.06,4.16,4.21,4.14, 0.78,0.82,0.85,0.89,0.90,0.92,0.95,1.03,1.05,1.08, 1.11,1.11,1.11,1.14,1.18,1.15,1.22,1.24,1.30,1.25, 1.32,1.34,1.34,1.37,1.38,1.40,1.39,1.38,1.37,1.49, 1.49,1.51,1.52,1.57,1.54,1.59,1.61,1.58,1.59,1.60, 1.61,1.66,1.68,1.64,1.69,1.72,1.69,1.84,1.76,1.85, 1.85,1.82,1.79,1.82,1.88,1.85,1.86,1.91,1.92,1.93, 1.96,1.99,1.97,2.04,1.92,1.93,2.02,2.08,2.02,2.03, 2.07,2.09,2.09,2.05,2.15,2.11,2.19,2.14,2.17,2.23, 2.17,2.13,2.21,2.30,2.27,2.23,2.15,2.37,2.28,2.25, 2.34,2.27,2.31,2.38,2.32,2.33,2.43,2.47,2.38,2.47, 2.40,2.42,2.41,2.47,2.46,2.44,2.41,2.54,2.54,2.50, 2.52,2.54,2.49,2.58,2.62,2.57,2.52,2.59,2.65,2.66, 2.53,2.70,2.65,2.69,2.71,2.58,2.77,2.64,2.72,2.59, 2.73,2.73,2.75,2.82,2.76,2.74,2.70,2.79,2.87,2.86, 2.77,2.81,2.76,2.78,2.72,2.77,2.94,2.88,2.90,2.94, 2.96,2.86,2.93,2.87,2.95,2.97,3.00,3.06,3.02,3.01, 3.02,2.91,2.98,3.03,2.96,2.94,3.18,3.15,3.00,3.12, 2.92,3.00,3.10,3.11,3.17,3.01,3.18,3.12,3.18,3.23, 3.13,3.11,3.21,3.29,3.22,3.28,3.12,3.36,3.19,3.18, 3.31,3.22,3.31,3.22,3.34,3.36,3.35,3.18,3.30,3.29, 3.33,3.26,3.44,3.33,3.50,3.38,3.26,3.39,3.38,3.34, 3.40,3.33,3.34,3.31,3.53,3.55,3.41,3.42,3.44,3.40, 3.47,3.56,3.55,3.43,3.48,3.54,3.49,3.62,3.44,3.72, 3.65,3.47,3.54,3.64,3.54,3.72,3.48,3.53,3.61,3.64, 3.70,3.68,3.59,3.59,3.95,3.53,3.57,3.62,3.61,3.62, 3.67,3.72,3.61,3.81,3.78,3.82,3.61,3.78,3.77,3.76, 3.69,3.76,3.88,3.79,3.75,3.87,3.66,3.88,3.93,3.82, 3.71,3.82,3.77,3.84,3.94,3.78,3.85,3.87,3.94,3.93, 3.85,3.81,3.95,3.87,3.92,3.89,3.88,4.06,3.91,3.92, 1.00,1.09,1.14,1.17,1.26,1.31,1.32,1.41,1.45,1.44, 1.45,1.51,1.54,1.59,1.60,1.67,1.70,1.69,1.77,1.72, 1.75,1.90,1.89,1.99,2.05,1.89,1.99,2.03,2.05,2.09, 2.06,2.15,2.16,2.16,2.27,2.25,2.18,2.29,2.20,2.26, 2.33,2.41,2.30,2.37,2.44,2.45,2.45,2.50,2.55,2.51, 2.51,2.62,2.64,2.71,2.68,2.74,2.52,2.80,2.72,2.80, 2.74,2.80,2.75,2.76,2.85,2.86,3.00,3.01,2.86,2.87, 2.95,3.04,2.89,2.97,3.12,3.14,3.03,3.03,3.01,3.10, 3.09,3.05,3.12,3.12,3.18,3.26,3.29,3.36,3.39,3.17, 3.37,3.38,3.45,3.41,3.43,3.45,3.44,3.37,3.56,3.48, 3.63,3.46,3.37,3.60,3.58,3.47,3.58,3.63,3.82,3.68, 3.75,3.63,3.59,3.76,3.70,3.84,3.77,3.61,3.77,3.73, 3.88,3.69,3.96,3.85,3.79,3.80,3.76,3.95,3.92,4.11, 3.98,3.71,3.80,4.06,4.01,3.95,3.95,3.94,4.01,4.16, 4.19,3.99,4.17,4.06,4.27,4.15,4.05,4.22,4.10,4.18, 4.25,4.15,4.17,4.30,4.29,4.29,4.21,4.41,4.42,4.29, 4.31,4.34,4.39,4.42,4.49,4.47,4.41,4.46,4.44,4.43, 4.55,4.49,4.45,4.58,4.48,4.38,4.56,4.49,4.65,4.38, 4.44,4.67,4.57,4.41,4.79,4.51,4.45,4.45,4.67,4.66, 4.52,4.75,4.64,4.86,4.68,4.91,4.68,4.60,5.01,4.84, 4.78,4.97,4.84,5.00,5.03,4.93,4.86,4.80,4.75,4.84, 4.93,5.00,4.91,5.00,4.91,5.01,5.04,5.04,5.03,5.01, 5.09,5.22,5.05,5.18,5.27,5.13,5.09,5.20,4.90,5.30, 4.97,5.15,5.19,5.08,5.19,5.14,5.09,5.26,5.12,5.01, 5.17,5.28,5.31,5.21,5.58,5.19,5.13,5.10,5.14,5.31, 5.33,5.51,5.44,5.26,5.37,5.24,5.34,5.41,5.63,5.60, 5.27,5.40,5.58,5.65,5.69,5.55,5.53,5.66,5.54,5.77, 5.34,5.69,5.50,5.49,5.59,5.60,5.48,5.89,5.96,5.60, 5.73,5.47,5.79,5.68,5.62,5.74,5.92,5.37,5.77,5.65, 0.95,1.02,1.11,1.14,1.16,1.23,1.26,1.33,1.36,1.43, 1.43,1.42,1.51,1.51,1.52,1.54,1.58,1.58,1.64,1.73, 1.72,1.73,1.83,1.91,1.79,1.81,1.87,1.86,1.95,1.89, 1.99,2.01,2.03,2.05,2.09,2.08,2.19,2.10,2.14,2.15, 2.15,2.24,2.21,2.22,2.30,2.35,2.38,2.25,2.35,2.35, 2.45,2.42,2.45,2.44,2.50,2.44,2.55,2.55,2.57,2.61, 2.57,2.61,2.55,2.66,2.62,2.64,2.82,2.62,2.71,2.77, 2.71,2.83,2.79,2.83,2.93,2.88,2.94,2.84,2.95,2.99, 2.87,2.83,2.94,2.96,3.23,3.00,2.91,3.01,3.10,3.05, 3.06,3.07,3.10,3.21,3.20,3.27,3.16,3.22,3.25,3.18, 3.21,3.18,3.15,3.30,3.12,3.49,3.39,3.38,3.48,3.38, 3.33,3.40,3.48,3.44,3.46,3.50,3.56,3.42,3.43,3.44, 3.36,3.53,3.46,3.67,3.55,3.64,3.56,3.67,3.70,3.64, 3.60,3.62,3.77,3.69,3.79,3.74,3.67,3.77,3.72,3.82, 3.87,3.72,3.75,3.92,3.72,3.89,3.82,3.90,3.86,3.75, 3.98,3.78,3.89,3.97,3.87,3.76,4.07,4.07,4.05,4.01, 4.12,4.04,3.97,4.12,4.03,4.12,4.23,4.13,3.99,4.09, 4.15,4.28,4.30,4.21,4.25,4.23,4.20,4.37,4.23,4.28, 4.37,4.07,4.15,4.26,4.36,4.32,4.37,4.30,4.22,4.31, 4.48,4.32,4.42,4.50,4.40,4.39,4.53,4.42,4.43,4.49, 4.60,4.49,4.39,4.57,4.46,4.56,4.50,4.48,4.55,4.81, 4.56,4.66,4.63,4.53,4.66,4.62,4.82,4.73,4.67,4.71, 4.76,4.89,4.68,4.81,4.75,4.61,4.62,4.85,4.89,4.83, 4.87,4.69,4.83,4.85,4.87,4.72,4.93,5.02,5.00,4.88, 4.76,4.66,4.90,5.05,4.84,4.86,4.94,5.07,4.92,5.11, 4.99,4.98,4.98,5.10,5.09,5.10,4.95,5.11,5.15,5.11, 5.04,5.06,5.18,5.11,5.28,5.12,5.39,5.12,5.22,4.95, 5.27,5.35,5.34,5.12,5.17,5.22,5.43,5.24,5.25,5.38, 5.39,5.17,5.34,5.23,5.38,5.49,5.32,5.34,5.42,5.33, 0.99,0.99,1.03,1.07,1.09,1.19,1.17,1.19,1.25,1.31, 1.36,1.36,1.32,1.38,1.44,1.51,1.53,1.53,1.54,1.57, 1.59,1.63,1.66,1.76,1.67,1.76,1.79,1.77,1.87,1.87, 1.89,1.85,1.89,1.95,2.00,2.04,1.97,2.03,2.10,2.06, 1.99,2.19,2.03,2.15,2.19,2.22,2.18,2.20,2.22,2.25, 2.31,2.22,2.31,2.28,2.38,2.40,2.39,2.35,2.45,2.44, 2.45,2.45,2.42,2.55,2.53,2.60,2.57,2.56,2.58,2.70, 2.70,2.69,2.75,2.65,2.81,2.73,2.65,2.82,2.81,2.77, 2.79,2.81,2.78,2.93,2.85,2.78,2.86,2.88,3.02,2.88, 3.02,3.04,2.99,3.07,3.07,3.01,3.02,3.01,3.08,3.08, 3.00,3.15,3.12,3.07,2.98,3.13,3.14,3.39,3.25,3.12, 3.31,3.20,3.24,3.09,3.26,3.26,3.29,3.38,3.34,3.52, 3.34,3.39,3.46,3.39,3.38,3.42,3.35,3.39,3.52,3.29, 3.34,3.50,3.44,3.40,3.50,3.47,3.55,3.64,3.49,3.63, 3.66,3.68,3.71,3.72,3.64,3.58,3.75,3.61,3.81,3.71, 3.69,3.66,3.85,3.69,3.78,3.84,3.81,3.69,3.68,3.72, 3.83,3.95,3.91,3.81,3.73,3.83,3.95,3.95,3.86,3.98, 3.82,4.02,3.94,3.98,3.92,3.84,3.93,4.07,4.13,4.04, 4.01,4.00,4.14,4.17,4.21,3.99,4.02,4.29,4.12,4.05, 4.01,4.14,4.29,4.37,4.16,4.14,4.06,4.09,4.17,4.30, 4.26,4.36,4.29,4.25,4.26,4.39,4.36,4.31,4.14,4.22, 4.37,4.55,4.36,4.45,4.33,4.50,4.33,4.31,4.45,4.36, 4.46,4.54,4.43,4.46,4.54,4.51,4.58,4.66,4.55,4.50, 4.58,4.42,4.55,4.63,4.50,4.19,4.75,4.66,4.61,4.59, 4.70,4.79,4.64,4.73,4.78,4.71,4.72,4.83,4.60,4.75, 4.66,4.51,4.68,4.99,4.63,4.68,4.86,4.93,4.96,4.71, 4.72,4.82,4.72,4.90,4.71,4.82,4.96,4.94,4.88,4.83, 4.49,4.92,5.05,5.05,4.90,4.97,4.96,4.99,5.10,4.98, 4.96,4.82,4.90,5.26,5.18,4.92,5.20,4.91,4.98,5.10, 0.90,0.97,1.01,1.06,1.10,1.09,1.11,1.15,1.24,1.26, 1.26,1.28,1.33,1.30,1.37,1.42,1.46,1.54,1.52,1.52, 1.58,1.56,1.62,1.60,1.62,1.58,1.72,1.70,1.80,1.79, 1.78,1.78,1.76,1.86,1.83,1.82,1.87,1.97,1.91,1.91, 1.98,2.00,2.04,2.12,1.99,2.12,2.01,2.10,2.13,2.09, 2.25,2.18,2.12,2.23,2.26,2.32,2.21,2.32,2.31,2.15, 2.35,2.40,2.43,2.44,2.37,2.36,2.53,2.39,2.53,2.48, 2.45,2.51,2.47,2.55,2.62,2.46,2.53,2.74,2.64,2.62, 2.59,2.63,2.75,2.76,2.74,2.70,2.68,2.85,2.73,2.85, 2.83,2.88,2.78,2.83,2.97,2.89,2.77,2.96,2.92,2.94, 2.89,2.92,2.90,2.90,2.95,2.99,3.05,2.98,3.19,2.85, 3.16,3.11,3.08,3.12,3.14,3.16,3.10,3.29,3.11,3.17, 3.22,3.38,3.18,3.32,3.32,3.25,3.18,3.28,3.25,3.32, 3.44,3.42,3.29,3.31,3.31,3.48,3.17,3.48,3.41,3.58, 3.44,3.42,3.41,3.58,3.51,3.44,3.45,3.49,3.56,3.38, 3.64,3.45,3.53,3.47,3.62,3.51,3.70,3.67,3.61,3.65, 3.68,3.60,3.62,3.68,3.80,3.71,3.72,3.64,3.72,3.75, 3.67,3.64,3.79,3.61,3.83,3.83,3.78,3.92,3.78,3.94, 3.91,3.80,3.77,3.85,3.77,3.92,4.04,3.87,4.03,4.05, 3.94,3.89,3.94,3.94,3.94,3.97,3.95,3.91,4.05,4.10, 4.11,4.04,3.90,4.05,4.11,4.08,3.93,4.11,4.07,4.12, 4.14,4.33,4.16,4.16,4.11,4.24,4.23,4.33,4.14,4.12, 4.27,4.24,4.15,4.26,4.38,4.37,4.15,4.20,4.30,4.35, 4.22,4.32,4.35,4.28,4.33,4.27,4.70,4.41,4.42,4.36, 4.41,4.28,4.50,4.39,4.48,4.46,4.29,4.37,4.55,4.37, 4.50,4.27,4.35,4.50,4.62,4.49,4.77,4.59,4.48,4.73, 4.59,4.67,4.57,4.60,4.79,4.71,4.67,4.82,4.74,4.54, 4.60,4.52,4.71,4.53,4.57,4.86,4.77,4.66,4.75,4.79, 4.70,4.55,4.73,4.77,4.69,4.81,4.83,4.83,5.04,4.92, 0.87,0.91,0.96,1.06,1.05,1.14,1.10,1.16,1.16,1.19, 1.25,1.24,1.29,1.28,1.32,1.38,1.34,1.40,1.46,1.45, 1.41,1.51,1.51,1.56,1.58,1.54,1.63,1.62,1.66,1.71, 1.73,1.70,1.77,1.84,1.79,1.80,1.78,1.82,1.89,1.90, 1.88,1.90,2.00,1.96,1.97,2.03,1.96,2.08,2.07,2.03, 2.10,2.12,2.11,2.13,2.18,2.17,2.16,2.21,2.15,2.30, 2.31,2.28,2.28,2.30,2.42,2.42,2.40,2.37,2.29,2.43, 2.49,2.46,2.35,2.45,2.48,2.49,2.45,2.51,2.44,2.53, 2.57,2.52,2.60,2.56,2.54,2.47,2.59,2.69,2.61,2.62, 2.68,2.60,2.87,2.76,2.77,2.69,2.86,2.73,2.82,2.85, 2.87,2.79,2.88,2.96,2.80,2.71,2.97,2.90,3.03,2.83, 2.93,3.03,2.98,2.97,2.96,3.05,3.18,2.91,2.96,3.04, 3.09,3.07,3.01,3.13,3.12,3.21,3.18,3.13,3.16,3.12, 3.20,3.19,3.04,3.21,3.42,3.29,3.21,3.18,3.30,3.28, 3.28,3.25,3.31,3.42,3.44,3.34,3.47,3.41,3.42,3.42, 3.33,3.36,3.41,3.42,3.54,3.42,3.50,3.38,3.57,3.48, 3.52,3.57,3.51,3.50,3.63,3.59,3.42,3.56,3.59,3.64, 3.75,3.55,3.69,3.69,3.73,3.63,3.73,3.67,3.60,3.68, 3.66,3.76,3.64,3.81,3.61,3.68,3.76,3.88,3.73,3.69, 3.90,3.90,3.81,3.80,3.83,3.78,3.85,3.84,3.99,3.87, 3.87,3.91,3.86,3.99,3.87,3.98,3.82,4.06,3.82,3.97, 3.83,4.05,3.96,3.95,3.96,4.04,4.02,4.02,3.98,4.24, 4.16,4.05,3.77,4.00,4.09,4.22,4.18,3.99,4.05,4.10, 4.11,4.01,4.05,4.28,4.21,4.26,4.20,4.21,4.26,4.23, 4.10,4.30,4.23,4.20,4.33,4.36,4.35,4.33,4.37,4.29, 4.11,4.27,4.35,4.39,4.35,4.56,4.34,4.49,4.54,4.36, 4.39,4.38,4.50,4.30,4.30,4.34,4.43,4.57,4.59,4.21, 4.35,4.36,4.49,4.56,4.43,4.44,4.78,4.50,4.59,4.51, 4.65,4.53,4.40,4.45,4.72,4.81,4.74,4.49,4.59,4.66, 0.85,0.91,0.94,1.00,1.02,1.07,1.05,1.09,1.19,1.18, 1.22,1.23,1.23,1.29,1.31,1.32,1.33,1.32,1.46,1.44, 1.46,1.47,1.47,1.54,1.53,1.53,1.54,1.61,1.61,1.62, 1.61,1.71,1.73,1.71,1.76,1.76,1.81,1.81,1.82,1.81, 1.87,1.89,1.91,1.92,1.97,1.95,1.97,2.03,1.97,2.04, 2.04,2.05,2.08,2.04,2.15,2.09,2.14,2.08,2.11,2.16, 2.22,2.23,2.21,2.28,2.20,2.22,2.26,2.28,2.24,2.33, 2.36,2.32,2.33,2.31,2.40,2.47,2.52,2.44,2.41,2.46, 2.53,2.48,2.55,2.41,2.58,2.55,2.56,2.48,2.49,2.55, 2.63,2.56,2.54,2.57,2.68,2.61,2.62,2.68,2.68,2.70, 2.82,2.75,2.67,2.82,2.90,2.84,2.85,2.68,2.84,2.82, 2.84,2.87,3.00,2.86,2.96,2.96,2.96,2.97,2.92,2.92, 2.92,2.95,3.08,3.01,2.97,3.11,3.01,3.02,3.01,3.11, 3.03,3.02,3.06,3.22,3.08,3.09,3.21,3.15,3.17,3.28, 3.22,3.13,3.19,3.19,3.24,3.13,3.18,3.25,3.33,3.31, 3.37,3.28,3.15,3.32,3.22,3.29,3.38,3.55,3.33,3.37, 3.46,3.33,3.52,3.37,3.28,3.43,3.46,3.41,3.52,3.38, 3.55,3.55,3.52,3.48,3.32,3.60,3.35,3.47,3.57,3.52, 3.54,3.61,3.62,3.64,3.64,3.67,3.80,3.64,3.71,3.61, 3.52,3.76,3.57,3.70,3.56,3.78,3.84,3.82,3.61,3.66, 3.69,3.80,3.80,3.90,3.91,3.98,3.79,3.83,3.84,3.81, 3.85,3.80,3.86,3.94,4.00,4.00,3.88,3.93,3.90,3.98, 4.08,3.98,3.84,3.83,3.87,3.88,3.92,3.90,3.99,3.85, 3.99,4.09,4.10,4.07,3.87,4.03,4.07,3.91,4.02,4.14, 4.03,4.22,4.09,4.05,4.18,3.97,4.07,4.40,4.09,4.15, 4.10,4.14,4.19,4.06,4.16,4.16,4.24,4.20,4.33,4.22, 4.11,4.48,4.31,4.21,4.15,4.45,4.10,4.29,4.32,4.26, 4.17,4.48,4.34,4.26,4.48,4.44,4.40,4.25,4.58,4.43, 4.34,4.25,4.33,4.45,4.48,4.48,4.58,4.42,4.46,4.51, 0.87,0.90,0.96,0.96,0.98,1.04,1.08,1.12,1.15,1.12, 1.18,1.19,1.20,1.22,1.26,1.29,1.32,1.34,1.35,1.43, 1.45,1.43,1.49,1.51,1.46,1.53,1.58,1.59,1.63,1.57, 1.64,1.70,1.66,1.67,1.69,1.67,1.67,1.77,1.69,1.75, 1.81,1.88,1.85,1.87,1.82,1.92,1.83,1.85,1.95,1.96, 1.98,1.98,2.07,2.07,2.03,2.05,2.15,2.06,2.10,2.13, 2.12,2.16,2.18,2.15,2.08,2.11,2.23,2.29,2.32,2.23, 2.30,2.27,2.34,2.29,2.36,2.39,2.35,2.39,2.40,2.39, 2.41,2.52,2.38,2.37,2.41,2.52,2.52,2.40,2.46,2.62, 2.55,2.58,2.63,2.50,2.56,2.59,2.59,2.69,2.64,2.60, 2.63,2.60,2.61,2.76,2.63,2.77,2.66,2.81,2.79,2.77, 2.82,2.71,2.83,2.82,2.70,2.75,2.91,2.95,2.78,2.84, 2.79,2.87,2.90,3.05,2.96,2.94,2.93,2.93,2.96,2.88, 2.99,3.01,3.09,3.02,3.03,3.01,2.98,3.04,3.05,3.19, 3.05,2.96,3.08,3.10,3.12,3.33,3.23,3.12,3.24,3.29, 3.08,3.17,3.27,3.32,3.23,3.24,3.27,3.32,3.23,3.28, 3.34,3.36,3.49,3.28,3.43,3.41,3.29,3.39,3.38,3.38, 3.39,3.28,3.34,3.47,3.61,3.41,3.42,3.55,3.30,3.52, 3.60,3.48,3.46,3.60,3.56,3.53,3.64,3.61,3.41,3.45, 3.56,3.38,3.66,3.51,3.58,3.53,3.69,3.58,3.71,3.68, 3.70,3.58,3.51,3.54,3.74,3.62,3.66,3.84,3.91,3.83, 3.84,3.66,3.76,3.78,3.72,3.70,3.76,3.87,3.83,3.83, 3.86,3.85,3.78,3.73,3.83,4.05,3.89,3.87,3.82,3.79, 4.04,3.87,3.87,3.96,3.94,4.12,4.00,4.09,3.99,3.88, 4.04,3.94,4.13,4.16,4.02,4.20,3.93,4.04,4.05,4.15, 3.95,4.11,4.11,4.14,4.28,4.14,4.06,4.19,4.11,4.06, 4.13,4.03,4.07,3.91,3.99,4.13,4.31,4.24,3.94,4.20, 4.23,4.28,4.21,4.16,4.26,4.33,4.19,4.36,4.33,4.21, 4.22,4.33,4.32,4.18,4.33,4.45,4.26,4.27,4.17,4.34, 0.88,0.87,0.92,0.93,1.01,0.98,1.04,1.14,1.12,1.16, 1.14,1.20,1.24,1.17,1.22,1.31,1.32,1.35,1.36,1.43, 1.41,1.41,1.44,1.50,1.53,1.51,1.49,1.54,1.55,1.59, 1.57,1.59,1.64,1.64,1.59,1.67,1.73,1.65,1.71,1.78, 1.68,1.77,1.76,1.86,1.82,1.87,1.86,1.90,1.88,1.93, 1.96,1.90,1.95,1.97,2.05,1.98,2.11,2.09,2.03,2.07, 2.05,2.15,2.09,2.12,2.13,2.17,2.13,2.17,2.24,2.22, 2.28,2.27,2.22,2.38,2.17,2.27,2.28,2.31,2.38,2.34, 2.41,2.44,2.35,2.42,2.37,2.33,2.34,2.42,2.44,2.49, 2.49,2.51,2.51,2.53,2.53,2.60,2.69,2.59,2.57,2.56, 2.62,2.58,2.60,2.61,2.66,2.69,2.64,2.69,2.70,2.65, 2.78,2.76,2.74,2.74,2.76,2.73,2.76,2.66,2.82,2.93, 2.75,2.79,2.86,2.86,2.78,2.83,2.91,2.88,2.84,2.87, 3.00,2.91,3.01,2.94,2.85,3.01,3.00,3.04,3.11,2.94, 2.92,3.06,3.08,3.14,2.99,3.11,3.00,2.98,3.10,3.13, 3.06,3.05,3.16,3.10,3.03,3.14,3.14,3.15,3.26,3.15, 3.19,3.33,3.27,3.38,3.26,3.34,3.27,3.36,3.32,3.27, 3.23,3.29,3.29,3.46,3.39,3.33,3.29,3.28,3.30,3.38, 3.40,3.38,3.47,3.33,3.41,3.50,3.50,3.45,3.49,3.49, 3.45,3.38,3.49,3.66,3.61,3.62,3.51,3.48,3.58,3.57, 3.53,3.51,3.53,3.57,3.78,3.63,3.72,3.65,3.63,3.64, 3.64,3.60,3.69,3.84,3.65,3.75,3.72,3.83,3.80,3.70, 3.71,3.63,3.71,3.67,3.75,3.71,3.75,3.85,3.70,3.77, 3.91,3.80,3.87,3.91,3.78,3.81,3.82,3.78,3.89,3.84, 3.85,3.95,4.00,4.03,3.92,4.01,4.07,3.94,4.17,3.93, 4.12,4.00,3.99,3.95,3.93,3.83,3.86,3.99,3.97,4.08, 4.07,3.92,4.13,4.12,4.05,3.97,4.21,4.14,4.08,4.02, 4.22,4.16,4.11,4.44,4.25,4.10,4.15,4.20,4.21,4.14, 4.30,4.32,4.14,4.07,4.23,4.10,4.09,4.25,4.27,4.25, 0.87,0.85,0.92,0.94,0.96,0.98,1.03,1.07,1.08,1.14, 1.18,1.20,1.13,1.20,1.21,1.23,1.29,1.33,1.32,1.34, 1.35,1.41,1.40,1.47,1.39,1.47,1.54,1.53,1.55,1.56, 1.53,1.57,1.56,1.70,1.64,1.65,1.75,1.69,1.70,1.65, 1.71,1.77,1.82,1.70,1.81,1.80,1.84,1.86,1.95,1.94, 1.89,1.89,1.90,1.92,1.97,2.04,2.03,1.99,2.02,2.05, 2.11,2.02,1.97,2.08,2.16,2.18,2.21,2.20,2.11,2.25, 2.24,2.14,2.28,2.18,2.26,2.27,2.23,2.34,2.27,2.36, 2.33,2.30,2.34,2.33,2.47,2.33,2.40,2.44,2.46,2.47, 2.44,2.48,2.51,2.46,2.53,2.49,2.58,2.49,2.55,2.51, 2.63,2.58,2.67,2.64,2.58,2.54,2.65,2.67,2.61,2.67, 2.66,2.59,2.60,2.77,2.87,2.71,2.71,2.74,2.69,2.84, 2.76,2.74,2.85,2.85,2.91,2.86,2.86,2.84,2.83,2.77, 2.84,2.88,2.92,2.92,2.88,2.89,3.00,2.91,3.03,2.97, 3.01,2.92,3.05,3.07,2.93,3.04,3.02,3.07,3.04,3.15, 2.95,3.08,3.13,3.20,3.07,3.19,3.12,3.18,3.18,3.17, 3.20,3.18,3.09,3.27,3.34,3.10,3.18,3.20,3.24,3.26, 3.26,3.29,3.29,3.36,3.29,3.32,3.21,3.23,3.23,3.34, 3.39,3.33,3.50,3.41,3.39,3.48,3.31,3.42,3.41,3.43, 3.52,3.54,3.44,3.32,3.43,3.47,3.54,3.42,3.48,3.43, 3.57,3.51,3.73,3.58,3.59,3.50,3.63,3.61,3.64,3.77, 3.49,3.54,3.66,3.69,3.56,3.67,3.70,3.61,3.56,3.59, 3.69,3.51,3.79,3.61,3.59,3.68,3.66,3.76,3.84,3.70, 3.68,3.84,3.80,3.61,3.71,3.69,3.79,3.82,3.96,3.77, 3.90,3.96,3.77,3.81,3.92,3.91,3.88,3.93,3.88,3.79, 3.88,3.95,3.97,3.86,3.97,3.92,3.92,3.95,3.81,3.90, 3.95,4.00,3.76,4.14,4.11,3.95,3.94,4.12,4.08,4.08, 4.18,4.03,3.93,4.11,4.14,3.96,4.11,4.17,4.15,4.02, 4.06,3.93,4.14,4.21,4.12,4.28,4.23,4.22,4.20,4.35, 0.88,0.87,0.89,0.96,0.96,1.00,1.05,1.04,1.06,1.11, 1.13,1.12,1.18,1.21,1.21,1.25,1.37,1.25,1.31,1.36, 1.37,1.35,1.41,1.41,1.35,1.41,1.50,1.45,1.49,1.53, 1.53,1.54,1.59,1.61,1.63,1.66,1.62,1.71,1.69,1.70, 1.69,1.77,1.78,1.77,1.73,1.79,1.74,1.77,1.79,1.91, 1.95,1.90,1.93,1.98,1.90,1.93,2.00,2.00,2.00,2.04, 2.04,1.99,2.08,2.07,2.02,2.09,2.11,2.07,2.13,2.18, 2.20,2.09,2.12,2.21,2.16,2.23,2.22,2.31,2.23,2.28, 2.32,2.27,2.25,2.34,2.27,2.35,2.29,2.42,2.33,2.33, 2.44,2.41,2.44,2.45,2.49,2.53,2.58,2.49,2.50,2.47, 2.48,2.48,2.55,2.56,2.58,2.55,2.63,2.65,2.62,2.54, 2.67,2.65,2.63,2.67,2.66,2.75,2.63,2.76,2.72,2.80, 2.84,2.66,2.78,2.73,2.92,2.78,2.89,2.80,2.76,2.75, 2.78,2.85,2.91,2.74,2.85,2.97,2.90,2.91,2.78,3.03, 2.70,2.99,2.97,2.97,2.95,3.03,2.92,2.94,2.96,2.92, 3.16,3.18,3.04,2.98,3.06,3.14,3.04,3.03,3.15,2.98, 3.13,3.13,3.07,3.19,3.22,3.18,3.25,3.11,3.29,3.06, 3.29,3.21,3.24,3.24,3.21,3.25,3.25,3.23,3.16,3.19, 3.33,3.24,3.34,3.37,3.33,3.33,3.26,3.53,3.39,3.22, 3.46,3.42,3.38,3.45,3.38,3.51,3.57,3.59,3.28,3.47, 3.40,3.45,3.45,3.59,3.52,3.60,3.46,3.49,3.52,3.58, 3.58,3.56,3.58,3.62,3.63,3.61,3.53,3.64,3.52,3.61, 3.70,3.72,3.61,3.65,3.59,3.67,3.80,3.71,3.73,3.63, 3.73,3.87,3.61,3.75,3.73,3.81,3.79,3.70,3.74,3.74, 3.74,3.81,3.88,3.72,3.83,3.78,3.72,3.89,3.77,4.01, 3.83,3.84,4.01,3.86,3.90,3.85,3.84,4.01,3.98,3.88, 3.99,3.96,3.77,4.05,3.85,4.01,3.93,3.92,4.03,3.84, 3.97,4.03,4.13,4.01,3.97,3.99,3.96,3.97,4.00,4.15, 4.19,4.07,4.15,4.07,4.09,4.02,3.90,4.05,4.13,4.03, 0.82,0.86,0.87,0.92,0.94,0.96,1.01,1.05,1.11,1.05, 1.11,1.12,1.17,1.20,1.21,1.26,1.21,1.30,1.35,1.34, 1.32,1.36,1.39,1.45,1.44,1.43,1.45,1.48,1.45,1.58, 1.56,1.56,1.62,1.62,1.60,1.58,1.68,1.64,1.63,1.71, 1.72,1.68,1.73,1.72,1.68,1.70,1.84,1.82,1.83,1.86, 1.81,1.84,1.79,1.84,1.92,1.93,1.97,1.93,1.94,1.95, 2.09,1.97,2.01,2.05,2.06,2.04,2.15,2.07,2.08,2.12, 2.15,2.09,2.10,2.16,2.21,2.19,2.22,2.14,2.17,2.21, 2.27,2.28,2.32,2.39,2.26,2.33,2.33,2.42,2.37,2.38, 2.35,2.42,2.37,2.40,2.45,2.42,2.43,2.53,2.37,2.47, 2.51,2.48,2.60,2.47,2.53,2.61,2.54,2.55,2.46,2.58, 2.59,2.66,2.70,2.61,2.63,2.54,2.62,2.69,2.69,2.70, 2.77,2.69,2.63,2.73,2.72,2.89,2.76,2.90,2.74,2.72, 2.82,2.77,2.80,2.82,2.97,2.80,2.88,2.98,2.98,2.89, 2.92,2.90,2.95,2.98,2.91,2.91,2.92,2.86,2.92,3.02, 3.07,2.99,3.03,3.09,3.03,3.10,3.13,2.94,3.09,3.07, 3.02,3.22,3.02,3.27,3.10,3.21,3.08,3.13,3.18,3.09, 3.23,3.25,3.25,3.16,3.24,3.10,3.27,3.23,3.22,3.13, 3.22,3.28,3.27,3.15,3.24,3.19,3.25,3.29,3.25,3.48, 3.32,3.41,3.36,3.48,3.27,3.38,3.36,3.38,3.60,3.47, 3.34,3.41,3.47,3.47,3.37,3.44,3.33,3.55,3.38,3.42, 3.42,3.40,3.41,3.52,3.53,3.55,3.61,3.42,3.53,3.53, 3.60,3.58,3.49,3.68,3.56,3.56,3.65,3.64,3.61,3.56, 3.68,3.57,3.65,3.65,3.67,3.67,3.86,3.63,3.72,3.66, 3.65,3.62,3.81,3.72,3.81,3.84,3.81,3.87,3.87,3.86, 3.82,3.76,3.88,3.78,3.80,3.87,3.88,3.84,3.78,4.06, 4.04,3.89,3.80,3.89,3.94,3.81,3.98,4.01,3.83,3.79, 3.91,3.89,3.90,3.92,3.84,4.08,3.84,3.96,4.13,3.99, 4.18,4.10,3.89,4.15,3.87,3.87,4.16,4.01,4.00,4.15, 0.83,0.86,0.88,0.89,0.92,0.95,1.03,1.02,1.04,1.08, 1.12,1.10,1.16,1.21,1.24,1.20,1.25,1.22,1.32,1.28, 1.29,1.35,1.44,1.43,1.37,1.47,1.39,1.48,1.47,1.57, 1.56,1.52,1.59,1.52,1.65,1.57,1.54,1.61,1.68,1.63, 1.65,1.66,1.72,1.73,1.72,1.75,1.73,1.77,1.79,1.73, 1.83,1.83,1.84,1.91,1.99,1.87,1.80,1.92,1.98,2.02, 1.95,1.98,2.00,1.99,2.05,2.03,2.07,2.05,2.04,2.14, 2.07,2.16,2.12,2.12,2.06,2.21,2.16,2.23,2.19,2.19, 2.21,2.21,2.27,2.30,2.22,2.26,2.21,2.32,2.24,2.32, 2.31,2.30,2.29,2.37,2.41,2.47,2.38,2.47,2.47,2.46, 2.38,2.49,2.50,2.49,2.44,2.68,2.48,2.52,2.56,2.50, 2.69,2.57,2.51,2.63,2.63,2.48,2.76,2.65,2.67,2.77, 2.67,2.77,2.61,2.69,2.74,2.71,2.68,2.62,2.64,2.73, 2.86,2.69,2.82,2.81,2.90,2.80,2.78,2.73,2.80,2.77, 2.85,2.80,2.96,2.93,2.85,2.99,3.01,2.96,2.92,2.87, 2.95,2.85,2.96,2.98,2.90,3.05,2.95,3.01,3.12,3.08, 3.04,3.11,3.06,3.15,3.15,3.06,3.03,3.01,3.04,3.08, 3.18,3.02,3.16,3.12,3.17,3.10,3.14,3.27,3.25,3.14, 3.20,3.11,3.15,3.15,3.26,3.39,3.15,3.25,3.10,3.26, 3.27,3.38,3.30,3.26,3.44,3.25,3.47,3.30,3.30,3.37, 3.25,3.45,3.35,3.42,3.45,3.47,3.41,3.39,3.58,3.41, 3.42,3.32,3.47,3.60,3.39,3.45,3.46,3.49,3.50,3.60, 3.63,3.64,3.59,3.52,3.55,3.65,3.62,3.51,3.66,3.44, 3.58,3.63,3.60,3.71,3.72,3.61,3.53,3.74,3.69,3.71, 3.71,3.78,3.74,3.63,3.81,3.72,3.69,3.66,3.83,3.94, 3.76,3.86,3.78,3.72,3.87,3.89,3.82,3.90,3.91,3.83, 3.63,3.79,3.98,4.01,3.84,3.94,3.93,3.85,3.85,4.00, 3.73,3.84,3.98,4.04,3.88,3.95,3.96,3.85,3.77,3.88, 3.90,3.86,3.91,4.09,3.92,4.08,4.04,4.14,4.21,3.97, 0.81,0.84,0.91,0.91,0.91,0.98,0.98,0.99,1.02,1.03, 1.06,1.09,1.15,1.09,1.16,1.22,1.24,1.25,1.26,1.32, 1.33,1.35,1.32,1.31,1.40,1.42,1.45,1.42,1.41,1.48, 1.55,1.49,1.51,1.53,1.62,1.57,1.58,1.60,1.60,1.67, 1.67,1.72,1.68,1.71,1.79,1.71,1.77,1.80,1.75,1.84, 1.79,1.85,1.83,1.87,1.85,1.83,1.88,1.92,1.97,1.90, 1.85,1.97,2.01,1.97,2.04,2.05,1.99,1.97,2.05,2.03, 2.04,2.09,2.19,2.21,2.11,2.17,2.03,2.15,2.16,2.20, 2.18,2.17,2.24,2.14,2.33,2.22,2.33,2.25,2.30,2.15, 2.26,2.38,2.36,2.36,2.39,2.41,2.34,2.33,2.44,2.48, 2.41,2.41,2.51,2.51,2.44,2.50,2.48,2.41,2.48,2.56, 2.52,2.60,2.46,2.48,2.61,2.59,2.50,2.67,2.67,2.60, 2.65,2.68,2.59,2.65,2.57,2.74,2.73,2.66,2.69,2.62, 2.66,2.71,2.67,2.79,2.73,2.74,2.69,2.71,2.85,2.73, 2.93,2.74,2.89,2.94,2.85,2.97,2.81,2.90,2.88,2.86, 2.94,3.15,2.89,2.94,2.91,2.96,2.95,3.04,2.92,3.08, 3.11,2.91,2.96,3.12,2.94,2.98,3.17,3.10,3.10,3.04, 3.16,3.23,3.20,3.11,3.08,3.16,3.12,3.07,3.20,3.20, 3.19,3.22,3.27,3.20,3.36,3.39,3.10,3.43,3.34,3.21, 3.24,3.21,3.07,3.37,3.28,3.34,3.31,3.28,3.34,3.42, 3.29,3.21,3.34,3.47,3.34,3.36,3.37,3.28,3.40,3.29, 3.27,3.41,3.44,3.55,3.39,3.41,3.52,3.38,3.47,3.57, 3.48,3.48,3.54,3.61,3.70,3.38,3.50,3.36,3.53,3.66, 3.67,3.53,3.68,3.59,3.65,3.60,3.59,3.57,3.64,3.64, 3.67,3.56,3.48,3.72,3.60,3.62,3.61,3.61,3.65,3.79, 3.79,3.66,3.67,3.71,3.65,3.80,3.80,3.77,3.71,3.69, 3.60,3.76,3.89,3.65,3.74,3.83,3.67,3.91,3.89,3.89, 3.62,3.83,3.87,3.88,3.80,3.94,4.05,3.87,4.06,3.92, 3.94,3.92,3.85,3.85,3.89,3.95,3.86,3.87,3.99,3.83, 0.81,0.85,0.89,0.86,0.90,0.95,0.96,0.97,1.07,1.06, 1.11,1.13,1.11,1.19,1.18,1.17,1.16,1.20,1.23,1.28, 1.27,1.29,1.31,1.34,1.39,1.39,1.43,1.38,1.41,1.45, 1.53,1.55,1.51,1.54,1.50,1.62,1.51,1.56,1.64,1.58, 1.62,1.56,1.70,1.67,1.70,1.78,1.74,1.72,1.70,1.75, 1.85,1.81,1.86,1.80,1.83,1.86,1.89,1.91,1.86,1.89, 2.00,1.99,2.00,2.06,2.01,2.09,2.06,1.99,2.02,2.02, 2.06,2.06,2.15,2.10,2.20,2.15,2.05,2.17,2.15,2.21, 2.14,2.20,2.17,2.27,2.26,2.11,2.17,2.29,2.20,2.27, 2.32,2.29,2.29,2.29,2.36,2.39,2.34,2.35,2.37,2.35, 2.46,2.44,2.58,2.49,2.41,2.40,2.50,2.56,2.43,2.57, 2.47,2.55,2.57,2.53,2.50,2.47,2.52,2.58,2.59,2.61, 2.60,2.66,2.75,2.69,2.60,2.60,2.64,2.71,2.86,2.74, 2.60,2.64,2.73,2.84,2.68,2.79,2.73,2.80,2.80,2.86, 2.93,2.74,2.87,2.90,2.91,2.73,2.81,2.91,2.96,2.84, 2.87,2.92,2.84,2.78,2.85,2.81,2.96,2.88,2.93,3.06, 2.97,2.94,2.97,3.01,3.09,3.01,2.99,3.00,3.01,3.19, 3.07,2.93,2.96,3.01,3.16,3.10,3.06,3.16,3.19,3.06, 3.12,3.02,3.07,3.11,3.11,3.16,3.22,3.17,3.18,3.20, 3.17,3.30,3.18,3.19,3.32,3.15,3.31,3.38,3.30,3.20, 3.17,3.25,3.31,3.20,3.26,3.39,3.40,3.34,3.37,3.44, 3.44,3.33,3.54,3.34,3.39,3.33,3.36,3.42,3.42,3.53, 3.40,3.53,3.34,3.40,3.40,3.53,3.48,3.52,3.48,3.46, 3.61,3.58,3.48,3.60,3.60,3.65,3.46,3.49,3.58,3.60, 3.50,3.60,3.77,3.52,3.70,3.60,3.67,3.47,3.67,3.72, 3.55,3.56,3.65,3.76,3.72,3.77,3.61,3.76,3.83,3.76, 3.83,3.87,3.70,3.56,3.80,3.78,3.83,3.80,3.77,3.69, 3.75,3.67,3.90,3.77,3.74,3.86,3.90,3.78,3.98,3.88, 4.00,3.94,3.81,3.89,3.94,3.82,4.02,4.01,3.85,3.90, 0.82,0.84,0.87,0.89,0.91,0.92,0.98,1.02,1.04,1.01, 1.06,1.09,1.09,1.10,1.14,1.18,1.16,1.17,1.24,1.27, 1.27,1.30,1.29,1.29,1.38,1.34,1.37,1.41,1.42,1.46, 1.49,1.50,1.47,1.47,1.53,1.55,1.55,1.55,1.64,1.62, 1.60,1.62,1.71,1.67,1.73,1.68,1.72,1.66,1.75,1.78, 1.72,1.78,1.82,1.79,1.87,1.75,1.88,1.89,1.91,1.92, 1.88,1.94,1.97,1.90,1.97,2.01,2.02,2.02,2.01,2.00, 2.06,2.05,2.04,2.00,2.04,2.07,2.18,2.12,2.10,2.07, 2.09,2.06,2.15,2.13,2.18,2.17,2.31,2.21,2.23,2.29, 2.18,2.34,2.34,2.36,2.33,2.34,2.33,2.29,2.46,2.33, 2.34,2.48,2.39,2.46,2.40,2.29,2.44,2.50,2.54,2.51, 2.54,2.47,2.55,2.49,2.62,2.49,2.45,2.58,2.53,2.53, 2.58,2.59,2.60,2.62,2.55,2.66,2.66,2.66,2.61,2.55, 2.75,2.72,2.69,2.63,2.84,2.68,2.59,2.69,2.71,2.77, 2.86,2.76,2.77,2.74,2.76,2.81,2.92,2.84,2.78,2.78, 2.90,2.84,2.84,2.82,3.00,2.85,2.92,2.80,2.93,2.91, 2.92,2.93,3.00,2.89,2.99,2.93,2.91,2.98,3.03,3.00, 3.00,3.13,3.05,3.09,2.97,3.12,3.06,2.99,3.11,2.92, 3.17,3.09,2.98,3.11,3.27,3.09,3.03,3.10,3.09,3.26, 3.12,3.18,3.13,3.12,3.24,3.23,3.23,3.28,3.27,3.28, 3.09,3.39,3.12,3.22,3.32,3.41,3.45,3.43,3.35,3.25, 3.26,3.33,3.33,3.37,3.42,3.31,3.46,3.43,3.36,3.31, 3.54,3.32,3.44,3.35,3.61,3.49,3.65,3.30,3.38,3.33, 3.50,3.52,3.47,3.49,3.49,3.50,3.53,3.52,3.55,3.66, 3.64,3.52,3.72,3.69,3.61,3.63,3.60,3.67,3.66,3.71, 3.65,3.58,3.55,3.78,3.64,3.62,3.80,3.81,3.75,3.75, 3.58,3.73,3.70,3.53,3.74,3.72,3.55,3.71,3.85,3.82, 3.80,3.74,3.88,3.87,3.90,3.87,3.70,3.88,3.83,3.79, 3.79,3.72,3.95,3.82,3.98,3.83,3.97,3.85,3.87,3.87, 1.08,1.15,1.13,1.25,1.28,1.34,1.39,1.37,1.42,1.47, 1.50,1.57,1.59,1.62,1.58,1.73,1.64,1.78,1.76,1.87, 1.85,1.93,1.93,2.00,1.99,2.10,2.02,2.07,2.12,2.18, 2.19,2.26,2.18,2.19,2.24,2.23,2.34,2.34,2.36,2.36, 2.45,2.42,2.47,2.53,2.53,2.50,2.62,2.60,2.67,2.64, 2.71,2.72,2.57,2.64,2.75,2.84,2.71,2.87,2.82,2.74, 2.83,2.84,2.89,2.91,2.99,2.95,2.95,2.96,3.06,3.12, 3.00,3.08,3.11,3.07,3.00,3.11,3.22,3.20,3.29,3.22, 3.40,3.36,3.35,3.28,3.28,3.27,3.21,3.30,3.38,3.48, 3.40,3.47,3.51,3.39,3.52,3.51,3.47,3.57,3.65,3.53, 3.63,3.59,3.67,3.71,3.55,3.64,3.73,3.79,3.82,3.66, 3.78,3.72,3.74,3.71,3.88,3.79,3.81,3.80,3.82,3.98, 4.02,3.83,4.00,4.23,3.99,4.07,3.93,4.05,4.05,4.10, 4.06,3.99,4.01,4.06,3.87,4.17,4.13,4.02,4.30,4.06, 4.11,4.25,4.13,4.30,4.26,4.13,4.31,4.24,4.35,4.19, 4.50,4.32,4.28,4.46,4.37,4.32,4.39,4.37,4.32,4.47, 4.28,4.33,4.60,4.51,4.43,4.61,4.70,4.46,4.66,4.52, 4.65,4.61,4.74,4.48,4.52,4.68,4.61,4.61,4.74,4.79, 4.76,4.54,4.67,4.53,4.86,4.81,4.93,4.68,4.80,4.93, 4.91,4.90,4.83,5.09,4.87,4.94,5.06,4.65,5.08,4.86, 4.97,4.86,5.08,4.97,5.10,4.98,5.15,5.01,5.16,4.92, 5.01,5.08,4.96,5.33,5.08,5.07,5.06,5.19,5.12,5.13, 5.31,5.16,5.25,5.10,5.16,5.36,5.19,5.23,5.33,5.16, 5.28,5.28,5.31,5.40,5.60,5.49,5.39,5.39,5.35,5.40, 5.67,5.44,5.71,5.62,5.24,5.51,5.40,5.49,5.55,5.48, 5.54,5.59,5.70,5.63,5.45,5.78,5.57,5.38,5.48,5.36, 5.53,5.47,5.63,5.60,5.82,5.78,5.82,5.58,5.74,5.80, 5.49,5.71,5.86,5.72,5.75,5.66,5.73,5.80,5.90,5.74, 5.94,5.71,5.89,6.01,5.72,5.81,6.06,5.93,5.96,5.82, 1.01,1.10,1.11,1.16,1.19,1.23,1.32,1.28,1.34,1.39, 1.42,1.46,1.52,1.55,1.52,1.61,1.64,1.70,1.66,1.72, 1.77,1.77,1.88,1.80,1.87,1.90,1.98,1.96,1.91,1.95, 1.95,2.08,2.09,2.20,2.07,2.13,2.18,2.21,2.24,2.18, 2.15,2.28,2.24,2.40,2.39,2.36,2.30,2.39,2.41,2.44, 2.49,2.45,2.51,2.54,2.58,2.57,2.55,2.58,2.57,2.55, 2.76,2.68,2.73,2.60,2.86,2.77,2.82,2.80,2.89,2.92, 2.80,2.81,2.86,2.95,2.94,3.05,2.96,3.02,2.90,2.99, 3.10,3.18,2.94,3.10,3.12,3.12,3.13,3.19,3.20,3.22, 3.20,3.28,3.15,3.29,3.29,3.30,3.35,3.32,3.37,3.20, 3.36,3.36,3.24,3.43,3.46,3.46,3.41,3.51,3.53,3.57, 3.58,3.55,3.52,3.54,3.49,3.54,3.64,3.66,3.68,3.63, 3.65,3.59,3.67,3.65,3.74,3.83,3.78,3.73,3.78,3.69, 3.82,3.77,3.73,3.91,3.87,3.95,3.92,3.93,3.89,3.80, 3.75,3.92,3.90,3.90,4.04,3.95,3.84,4.05,4.17,4.18, 3.94,3.92,4.11,4.03,4.32,4.03,4.22,4.15,4.12,4.13, 3.94,4.15,4.19,4.21,4.27,4.27,4.08,4.36,4.47,4.26, 4.23,4.38,4.40,4.32,4.33,4.33,4.57,4.41,4.55,4.39, 4.46,4.31,4.29,4.49,4.52,4.45,4.49,4.53,4.51,4.47, 4.59,4.58,4.39,4.53,4.60,4.58,4.58,4.64,4.59,4.76, 4.57,4.61,4.59,4.47,4.84,4.67,4.68,4.62,4.78,4.74, 4.57,4.76,4.70,4.83,4.71,4.81,4.82,4.84,4.87,4.77, 4.78,4.88,4.80,4.73,4.60,4.83,4.99,4.92,5.05,5.06, 5.08,5.07,5.04,5.10,4.97,5.10,5.20,5.07,5.07,4.88, 4.97,4.95,5.20,5.15,5.28,5.29,4.95,5.08,5.06,5.10, 5.18,5.14,5.13,5.15,5.11,5.08,5.16,5.23,5.42,5.34, 5.47,5.25,5.31,5.29,5.32,5.35,5.29,5.36,5.44,5.44, 5.25,5.10,5.69,5.27,5.29,5.31,5.52,5.50,5.31,5.57, 5.49,5.49,5.48,5.40,5.64,5.52,5.22,5.27,5.39,5.36, 0.91,1.03,1.04,1.06,1.16,1.18,1.19,1.20,1.25,1.31, 1.39,1.41,1.45,1.45,1.46,1.52,1.52,1.63,1.59,1.65, 1.63,1.75,1.74,1.74,1.75,1.79,1.78,1.81,1.86,1.90, 1.83,1.91,1.95,1.98,1.99,2.00,2.02,2.10,2.10,2.12, 2.10,2.11,2.17,2.24,2.24,2.21,2.20,2.33,2.34,2.39, 2.35,2.32,2.38,2.42,2.39,2.50,2.53,2.50,2.47,2.53, 2.44,2.50,2.57,2.50,2.62,2.53,2.82,2.67,2.67,2.58, 2.72,2.79,2.85,2.69,2.77,2.81,2.74,2.81,2.61,2.85, 2.92,2.87,2.80,2.92,2.98,2.90,2.92,3.00,2.94,2.98, 3.07,2.97,2.91,3.01,3.02,3.07,3.05,3.02,3.07,3.19, 3.19,3.19,3.28,3.09,3.22,3.24,3.27,3.39,3.11,3.24, 3.23,3.23,3.36,3.43,3.35,3.49,3.40,3.41,3.22,3.44, 3.50,3.26,3.41,3.36,3.57,3.57,3.57,3.52,3.48,3.54, 3.65,3.50,3.60,3.62,3.48,3.72,3.68,3.61,3.67,3.70, 3.67,3.75,3.74,3.85,3.68,3.63,3.69,3.70,3.90,3.80, 3.69,3.94,3.95,3.77,3.95,3.93,3.82,3.76,3.89,4.01, 3.92,3.91,3.91,3.95,3.93,4.02,4.01,3.90,4.10,4.05, 4.24,4.02,3.96,4.03,4.03,4.10,4.02,3.94,4.31,4.15, 4.17,4.22,4.17,4.47,4.13,4.31,4.27,4.22,4.32,4.36, 4.51,4.29,4.37,4.43,4.33,4.29,4.24,4.28,4.20,4.46, 4.19,4.35,4.36,4.36,4.38,4.34,4.46,4.47,4.67,4.46, 4.38,4.49,4.56,4.36,4.55,4.42,4.56,4.44,4.48,4.50, 4.59,4.71,4.75,4.83,4.67,4.61,4.39,4.59,4.86,4.63, 4.66,4.85,4.57,4.80,4.74,4.69,4.69,4.67,4.77,4.74, 4.52,4.47,4.63,4.76,4.73,4.72,5.10,4.70,4.99,4.86, 4.84,4.93,4.93,4.98,4.94,4.87,4.89,4.95,4.54,4.96, 4.78,4.86,4.90,4.79,4.86,5.01,4.89,4.95,4.76,4.86, 4.97,4.89,5.17,4.77,5.08,4.98,4.98,4.98,5.09,5.26, 4.96,5.33,5.31,5.26,5.31,5.27,5.38,5.10,5.10,5.30, 0.91,0.99,0.98,1.00,1.10,1.10,1.15,1.18,1.23,1.25, 1.34,1.25,1.34,1.37,1.41,1.49,1.43,1.50,1.58,1.59, 1.64,1.61,1.64,1.67,1.67,1.63,1.74,1.67,1.82,1.74, 1.82,1.78,1.77,1.83,1.84,1.94,1.91,2.01,2.05,2.00, 2.02,2.10,2.09,2.10,2.14,2.12,2.14,2.18,2.11,2.16, 2.04,2.21,2.25,2.34,2.26,2.27,2.22,2.31,2.34,2.36, 2.30,2.40,2.47,2.46,2.53,2.46,2.42,2.47,2.48,2.49, 2.62,2.54,2.61,2.67,2.70,2.55,2.73,2.74,2.73,2.76, 2.71,2.80,2.76,2.71,2.76,2.73,2.80,2.78,2.89,2.71, 2.80,2.95,2.86,2.88,2.85,2.97,2.93,2.92,2.96,2.88, 2.99,2.96,2.99,2.99,3.07,3.03,3.01,3.00,3.03,3.19, 2.92,3.11,2.96,3.25,3.07,3.01,3.16,3.16,3.21,3.28, 3.29,3.29,3.29,3.20,3.26,3.27,3.35,3.41,3.42,3.36, 3.39,3.33,3.34,3.42,3.34,3.40,3.40,3.46,3.54,3.44, 3.46,3.59,3.59,3.47,3.48,3.54,3.57,3.53,3.39,3.58, 3.73,3.73,3.72,3.66,3.68,3.72,3.64,3.83,3.71,3.56, 3.63,3.57,3.63,3.76,3.70,3.83,3.75,3.88,3.73,3.71, 3.96,3.87,3.68,3.89,3.80,3.79,3.98,3.82,3.91,3.90, 3.92,4.11,3.91,3.84,3.97,3.98,3.88,3.90,3.94,3.87, 4.05,4.12,3.99,4.10,4.07,4.11,4.14,3.96,4.06,3.98, 4.06,3.91,4.25,4.18,4.20,4.13,4.16,4.28,4.17,4.17, 4.25,4.23,4.14,4.20,4.29,4.17,4.21,4.17,4.39,4.23, 4.27,4.34,4.27,4.38,4.40,4.31,4.48,4.41,4.37,4.33, 4.18,4.46,4.38,4.35,4.41,4.27,4.23,4.42,4.54,4.40, 4.48,4.26,4.31,4.44,4.64,4.45,4.55,4.70,4.44,4.54, 4.79,4.73,4.40,4.57,4.59,4.52,4.67,4.55,4.62,4.69, 4.57,4.57,4.56,4.55,4.64,4.89,4.65,4.73,4.83,4.89, 4.71,4.82,4.84,4.74,4.86,4.81,4.72,4.80,4.91,5.00, 4.75,4.65,5.02,4.73,5.07,4.96,4.95,4.91,4.89,4.92, 0.87,0.92,0.97,0.99,0.98,1.05,1.10,1.13,1.18,1.22, 1.19,1.23,1.24,1.34,1.35,1.37,1.37,1.46,1.46,1.54, 1.46,1.50,1.59,1.57,1.65,1.63,1.67,1.65,1.73,1.67, 1.75,1.74,1.76,1.93,1.81,1.85,1.88,1.82,1.91,1.92, 1.84,1.97,1.98,1.94,2.06,1.99,2.08,2.00,2.09,1.98, 2.10,2.06,2.22,2.11,2.17,2.24,2.20,2.29,2.16,2.20, 2.32,2.28,2.34,2.37,2.35,2.30,2.43,2.36,2.37,2.39, 2.47,2.37,2.42,2.53,2.48,2.55,2.46,2.46,2.57,2.57, 2.55,2.65,2.62,2.64,2.61,2.64,2.71,2.68,2.62,2.67, 2.65,2.68,2.80,2.74,2.77,2.85,2.74,2.67,2.75,2.88, 2.82,2.91,2.85,2.93,2.80,2.97,2.94,3.01,2.97,2.97, 3.10,2.90,3.01,2.97,3.02,2.99,3.09,2.90,3.06,3.16, 3.10,3.20,3.05,3.01,3.24,3.05,3.11,3.21,3.24,3.33, 3.04,3.26,3.23,3.33,3.23,3.27,3.26,3.17,3.32,3.46, 3.36,3.43,3.29,3.37,3.33,3.40,3.47,3.34,3.45,3.29, 3.27,3.58,3.39,3.35,3.38,3.57,3.64,3.53,3.53,3.54, 3.57,3.69,3.54,3.46,3.58,3.46,3.54,3.56,3.63,3.69, 3.72,3.71,3.61,3.72,3.64,3.76,3.74,3.76,3.66,3.79, 3.84,3.57,3.74,3.62,3.68,3.67,3.73,3.82,3.76,3.77, 3.78,3.71,3.88,4.05,3.86,3.89,3.88,3.92,4.03,3.90, 3.81,3.94,3.99,3.93,3.98,3.96,4.05,4.06,4.06,4.14, 3.93,4.25,4.11,4.04,4.07,4.00,4.06,4.05,3.97,4.13, 4.21,4.28,4.04,4.11,4.26,4.23,4.27,4.03,4.17,4.23, 4.17,4.23,4.17,4.18,4.29,4.08,4.35,4.17,4.24,4.24, 4.42,4.30,4.25,4.33,4.39,4.30,4.22,4.42,4.39,4.25, 4.45,4.43,4.24,4.42,4.47,4.35,4.47,4.33,4.23,4.44, 4.26,4.48,4.40,4.43,4.64,4.41,4.52,4.52,4.69,4.49, 4.67,4.54,4.66,4.68,4.74,4.73,4.83,4.53,4.65,4.65, 4.66,4.50,4.70,4.47,4.74,4.58,4.66,4.71,4.60,4.56, 0.87,0.87,0.91,0.98,1.02,1.04,1.07,1.07,1.14,1.18, 1.20,1.23,1.23,1.28,1.32,1.29,1.29,1.37,1.36,1.45, 1.44,1.40,1.50,1.52,1.52,1.54,1.59,1.59,1.60,1.57, 1.70,1.66,1.71,1.78,1.79,1.74,1.78,1.83,1.79,1.81, 1.84,1.84,1.85,1.98,1.89,1.97,2.04,1.92,1.96,2.02, 2.07,2.08,2.09,2.10,1.99,2.16,2.13,2.06,2.11,2.18, 2.28,2.09,2.22,2.23,2.23,2.29,2.32,2.33,2.30,2.25, 2.27,2.38,2.28,2.35,2.44,2.50,2.44,2.50,2.45,2.43, 2.52,2.60,2.50,2.52,2.50,2.61,2.59,2.61,2.50,2.63, 2.53,2.74,2.55,2.66,2.68,2.75,2.64,2.66,2.68,2.75, 2.66,2.72,2.64,2.80,2.80,2.83,2.91,2.83,2.68,2.78, 2.78,2.86,3.00,3.02,2.85,2.88,2.98,2.87,2.91,2.97, 2.92,3.00,3.03,3.03,2.94,3.18,3.02,3.08,3.05,3.05, 3.11,3.12,3.03,3.08,3.25,3.11,3.24,3.13,3.31,3.15, 3.10,3.09,3.20,3.28,3.12,3.21,3.25,3.28,3.24,3.28, 3.29,3.26,3.27,3.37,3.26,3.34,3.26,3.28,3.29,3.60, 3.36,3.39,3.28,3.42,3.51,3.50,3.49,3.49,3.48,3.49, 3.41,3.54,3.51,3.55,3.48,3.59,3.44,3.45,3.53,3.58, 3.63,3.53,3.70,3.54,3.71,3.49,3.63,3.76,3.60,3.54, 3.56,3.67,3.65,3.73,3.55,3.80,3.74,3.65,3.68,3.74, 3.61,3.61,3.78,3.79,3.80,3.78,3.98,3.82,3.93,3.76, 3.82,3.84,3.91,4.10,3.96,3.91,3.98,3.93,4.00,3.82, 4.03,3.90,3.87,4.06,3.95,4.00,3.88,4.11,4.00,4.04, 3.97,4.07,4.21,3.97,4.11,3.97,4.01,4.03,4.05,4.13, 4.11,4.02,4.18,4.35,4.13,4.27,4.19,4.07,4.20,4.18, 4.11,4.29,4.21,4.26,4.27,4.13,4.10,4.38,4.24,4.33, 4.38,4.40,4.29,4.23,4.40,4.33,4.33,4.25,4.38,4.32, 4.26,4.45,4.44,4.44,4.32,4.29,4.34,4.54,4.51,4.49, 4.40,4.42,4.44,4.37,4.55,4.62,4.19,4.45,4.27,4.47, 0.86,0.90,0.92,0.94,0.97,1.07,1.01,1.08,1.11,1.17, 1.15,1.19,1.22,1.24,1.24,1.29,1.33,1.31,1.35,1.39, 1.39,1.49,1.44,1.46,1.52,1.48,1.51,1.52,1.66,1.60, 1.60,1.63,1.65,1.64,1.70,1.79,1.65,1.70,1.75,1.82, 1.78,1.74,1.82,1.76,1.91,1.91,1.85,1.89,1.95,1.95, 1.89,1.98,1.98,2.00,1.96,2.02,2.07,2.01,2.06,2.08, 2.07,2.13,2.15,2.17,2.22,2.15,2.21,2.21,2.22,2.24, 2.27,2.23,2.23,2.20,2.21,2.28,2.32,2.27,2.39,2.36, 2.34,2.46,2.37,2.50,2.42,2.47,2.54,2.44,2.50,2.40, 2.44,2.60,2.50,2.70,2.52,2.56,2.56,2.62,2.65,2.64, 2.63,2.62,2.62,2.58,2.68,2.67,2.66,2.80,2.65,2.78, 2.78,2.67,2.71,2.79,2.77,2.88,2.78,2.82,2.87,2.85, 2.97,2.85,2.92,2.80,2.96,3.05,2.93,2.88,2.89,3.10, 2.95,2.93,2.93,2.98,3.04,3.07,3.12,2.99,2.99,3.12, 3.07,3.17,3.11,3.13,3.05,3.25,3.08,3.12,3.11,3.18, 3.12,3.26,3.18,3.28,3.32,3.26,3.16,3.37,3.28,3.23, 3.39,3.23,3.24,3.35,3.20,3.39,3.33,3.18,3.22,3.28, 3.38,3.38,3.37,3.43,3.47,3.44,3.46,3.35,3.57,3.39, 3.42,3.49,3.44,3.38,3.43,3.30,3.48,3.56,3.65,3.51, 3.67,3.53,3.47,3.49,3.68,3.62,3.66,3.60,3.58,3.64, 3.51,3.59,3.69,3.63,3.65,3.74,3.71,3.92,3.70,3.70, 3.89,3.84,3.63,3.66,3.69,3.78,3.65,3.76,3.69,3.66, 3.61,3.90,3.89,3.77,3.93,3.83,3.87,3.74,3.83,3.84, 4.04,3.84,3.94,3.88,4.09,3.76,3.97,3.79,4.05,3.93, 3.91,3.96,3.98,3.91,4.03,3.98,3.98,4.04,4.08,3.97, 4.08,4.05,4.09,4.13,4.15,4.16,3.98,4.16,4.12,4.25, 4.17,4.00,4.04,4.07,4.22,4.00,3.98,4.16,4.15,4.11, 4.20,4.25,4.17,4.22,4.10,4.24,4.31,4.26,3.95,4.19, 4.25,4.41,4.27,4.21,4.49,4.22,4.45,4.32,4.41,4.59, 0.82,0.83,0.93,0.91,0.93,1.02,1.00,1.07,1.06,1.11, 1.15,1.15,1.19,1.21,1.22,1.28,1.23,1.32,1.33,1.37, 1.39,1.40,1.46,1.44,1.44,1.45,1.45,1.51,1.53,1.51, 1.52,1.58,1.64,1.64,1.61,1.64,1.65,1.66,1.73,1.67, 1.74,1.82,1.74,1.79,1.78,1.82,1.79,1.82,1.90,1.83, 1.82,1.88,1.94,1.92,1.88,1.95,1.94,2.05,2.01,2.01, 2.04,2.05,2.06,2.08,2.10,2.14,2.13,2.13,2.17,2.22, 2.08,2.33,2.24,2.20,2.19,2.19,2.20,2.25,2.22,2.23, 2.29,2.23,2.29,2.34,2.39,2.38,2.45,2.40,2.45,2.39, 2.42,2.39,2.52,2.38,2.53,2.52,2.57,2.47,2.49,2.63, 2.75,2.58,2.55,2.61,2.60,2.61,2.74,2.60,2.63,2.71, 2.70,2.75,2.57,2.59,2.77,2.65,2.70,2.76,2.62,2.71, 2.78,2.75,2.81,2.86,2.85,2.86,2.75,2.79,2.88,2.93, 2.76,2.89,2.93,2.86,2.89,2.86,2.94,2.97,2.88,2.87, 2.89,3.03,3.01,3.00,3.07,2.99,2.98,3.11,3.09,2.98, 3.03,3.08,2.93,3.03,3.07,3.06,3.02,3.15,3.15,3.13, 3.20,3.14,3.28,3.30,3.37,3.25,3.25,3.13,3.14,3.30, 3.31,3.29,3.19,3.28,3.30,3.29,3.36,3.29,3.34,3.31, 3.35,3.40,3.33,3.34,3.29,3.27,3.40,3.34,3.30,3.39, 3.46,3.44,3.42,3.47,3.43,3.45,3.54,3.51,3.48,3.48, 3.49,3.51,3.67,3.61,3.49,3.51,3.52,3.66,3.65,3.68, 3.59,3.57,3.62,3.63,3.71,3.62,3.68,3.64,3.64,3.67, 3.70,3.61,3.74,3.82,3.67,3.74,3.68,3.74,3.79,3.73, 3.88,3.82,3.93,3.67,3.79,3.86,3.73,3.75,3.66,3.85, 3.84,3.84,3.80,3.67,3.92,3.94,3.82,3.84,3.88,3.87, 4.04,4.02,3.80,3.88,3.87,3.91,3.87,3.86,3.97,4.09, 3.98,3.90,4.04,4.08,4.01,3.95,4.02,4.07,4.06,4.06, 4.06,4.09,4.12,4.24,4.01,4.14,4.02,4.00,4.05,4.08, 4.19,4.07,4.24,4.14,4.12,4.28,4.10,4.09,4.09,4.29, 0.83,0.84,0.89,0.90,0.97,0.94,1.00,1.05,1.03,1.12, 1.06,1.15,1.14,1.18,1.18,1.21,1.25,1.26,1.29,1.34, 1.31,1.32,1.35,1.40,1.42,1.46,1.43,1.45,1.49,1.46, 1.53,1.50,1.56,1.58,1.57,1.61,1.61,1.65,1.74,1.68, 1.75,1.68,1.70,1.76,1.79,1.73,1.87,1.81,1.84,1.80, 1.81,1.91,1.85,1.91,1.94,2.01,2.03,1.97,1.96,2.01, 2.06,1.93,1.96,1.99,2.05,2.06,2.03,2.12,2.15,2.14, 2.10,2.12,2.18,2.14,2.16,2.21,2.30,2.19,2.24,2.21, 2.31,2.18,2.23,2.35,2.23,2.39,2.28,2.36,2.29,2.34, 2.31,2.45,2.42,2.49,2.45,2.49,2.49,2.39,2.43,2.36, 2.44,2.44,2.54,2.56,2.60,2.48,2.61,2.58,2.57,2.60, 2.54,2.55,2.59,2.77,2.71,2.55,2.75,2.81,2.73,2.66, 2.80,2.74,2.68,2.73,2.72,2.68,2.69,2.81,2.83,2.72, 2.78,2.84,2.85,2.79,2.72,2.76,2.83,2.89,2.94,2.97, 2.91,2.91,2.89,2.95,2.94,3.00,3.06,3.03,2.94,2.99, 3.02,2.90,2.97,3.15,3.09,2.97,2.97,3.17,3.04,3.11, 3.09,3.06,2.94,3.10,3.07,3.17,3.09,3.13,3.14,3.17, 3.13,3.18,3.19,3.17,3.32,3.19,3.21,3.26,3.20,3.09, 3.28,3.36,3.26,3.39,3.29,3.34,3.31,3.33,3.35,3.32, 3.32,3.31,3.50,3.33,3.28,3.56,3.37,3.46,3.48,3.38, 3.36,3.47,3.48,3.51,3.47,3.46,3.44,3.49,3.43,3.38, 3.44,3.54,3.70,3.51,3.56,3.42,3.49,3.61,3.59,3.52, 3.52,3.53,3.74,3.51,3.65,3.40,3.62,3.77,3.61,3.65, 3.63,3.73,3.60,3.78,3.82,3.73,3.63,3.68,3.66,3.76, 3.57,3.66,3.76,3.86,3.72,3.75,3.74,3.92,3.84,3.89, 3.69,3.88,3.75,3.79,3.79,3.82,3.77,3.89,3.90,3.84, 3.77,3.82,4.00,3.91,3.99,3.86,3.74,3.83,3.79,4.07, 4.09,3.99,4.02,4.04,3.95,4.03,4.02,4.04,4.10,3.93, 3.88,4.05,4.10,4.23,4.09,3.99,4.03,4.08,3.91,4.06, 0.80,0.84,0.86,0.88,0.98,0.97,0.96,1.01,1.06,1.12, 1.13,1.07,1.13,1.14,1.23,1.17,1.19,1.24,1.29,1.31, 1.34,1.28,1.35,1.33,1.35,1.43,1.43,1.43,1.45,1.54, 1.51,1.51,1.51,1.58,1.53,1.60,1.65,1.64,1.61,1.66, 1.67,1.64,1.71,1.71,1.67,1.74,1.87,1.81,1.77,1.78, 1.74,1.85,1.90,1.93,1.80,1.82,1.95,1.87,1.99,1.96, 1.92,1.94,1.98,2.00,2.07,2.03,2.11,2.05,2.10,2.13, 2.10,2.08,2.19,2.08,2.16,2.14,2.19,2.14,2.14,2.18, 2.28,2.27,2.22,2.18,2.28,2.24,2.23,2.30,2.49,2.39, 2.28,2.34,2.28,2.38,2.41,2.34,2.42,2.40,2.51,2.44, 2.38,2.55,2.47,2.46,2.47,2.52,2.39,2.45,2.41,2.55, 2.59,2.49,2.52,2.62,2.62,2.60,2.69,2.56,2.61,2.72, 2.69,2.70,2.67,2.64,2.58,2.59,2.76,2.65,2.81,2.67, 2.74,2.76,2.86,2.78,2.83,2.90,2.82,2.77,2.84,2.90, 2.81,2.80,2.85,2.89,2.90,2.88,2.86,2.92,2.88,2.84, 2.96,2.87,2.97,2.96,3.04,3.10,2.91,3.03,2.90,3.06, 3.05,3.09,3.17,3.12,3.10,3.07,3.08,3.05,3.12,3.00, 3.05,3.15,3.22,3.08,3.08,3.10,3.24,3.11,3.22,3.14, 3.06,3.08,3.20,3.25,3.20,3.32,3.27,3.25,3.21,3.22, 3.33,3.32,3.14,3.22,3.37,3.31,3.29,3.34,3.32,3.33, 3.43,3.36,3.35,3.25,3.45,3.37,3.28,3.37,3.17,3.39, 3.47,3.45,3.42,3.50,3.51,3.54,3.48,3.58,3.43,3.41, 3.52,3.59,3.35,3.47,3.69,3.60,3.49,3.51,3.68,3.49, 3.53,3.52,3.54,3.63,3.66,3.68,3.66,3.58,3.74,3.81, 3.56,3.70,3.63,3.80,3.58,3.84,3.73,3.88,3.60,3.67, 3.80,3.72,3.85,3.74,3.74,3.61,3.78,3.72,3.87,3.78, 3.83,3.83,3.90,3.89,3.67,3.78,3.81,3.86,3.78,4.06, 3.82,3.90,3.84,3.99,3.94,3.74,3.94,3.78,3.99,3.97, 3.96,3.92,3.90,3.88,3.79,4.06,3.97,4.06,3.80,3.89, 0.77,0.83,0.86,0.86,0.92,0.95,0.96,0.96,1.02,1.05, 1.08,1.07,1.14,1.08,1.17,1.21,1.24,1.28,1.24,1.24, 1.26,1.30,1.30,1.31,1.39,1.39,1.40,1.45,1.37,1.44, 1.49,1.52,1.50,1.57,1.57,1.54,1.52,1.60,1.53,1.61, 1.66,1.66,1.71,1.70,1.70,1.76,1.69,1.78,1.80,1.77, 1.74,1.75,1.74,1.81,1.90,1.82,1.85,1.87,1.90,2.00, 1.88,1.83,1.96,1.91,2.00,2.00,1.99,2.06,2.01,2.01, 2.02,2.08,2.06,2.13,2.14,2.08,2.14,2.13,2.11,2.21, 2.10,2.21,2.22,2.18,2.20,2.26,2.29,2.31,2.27,2.26, 2.33,2.28,2.11,2.29,2.37,2.33,2.36,2.34,2.31,2.31, 2.39,2.38,2.50,2.38,2.45,2.42,2.41,2.50,2.45,2.53, 2.42,2.62,2.59,2.46,2.45,2.52,2.61,2.65,2.64,2.63, 2.54,2.63,2.64,2.60,2.67,2.70,2.56,2.59,2.72,2.75, 2.74,2.66,2.92,2.72,2.61,2.78,2.80,2.70,2.85,2.79, 2.75,2.78,2.85,2.76,2.80,2.80,2.92,2.89,2.85,2.91, 2.93,3.03,2.79,3.00,2.92,2.85,2.95,3.00,3.04,2.95, 3.04,2.95,3.15,3.06,2.92,3.05,3.08,3.03,3.01,3.02, 3.02,3.05,3.18,3.23,3.09,3.11,2.96,3.18,3.14,3.09, 3.13,3.03,3.13,3.21,3.23,3.29,3.14,3.23,3.04,3.27, 3.15,3.12,3.17,3.26,3.28,3.29,3.39,3.26,3.14,3.20, 3.41,3.17,3.34,3.27,3.26,3.32,3.36,3.33,3.49,3.47, 3.21,3.38,3.48,3.50,3.46,3.43,3.36,3.40,3.41,3.37, 3.51,3.46,3.44,3.45,3.45,3.51,3.54,3.46,3.46,3.55, 3.55,3.54,3.59,3.58,3.54,3.45,3.53,3.61,3.52,3.60, 3.58,3.61,3.58,3.52,3.66,3.60,3.50,3.64,3.52,3.71, 3.61,3.79,3.66,3.63,3.75,3.68,3.71,3.84,3.76,3.81, 3.69,3.63,3.62,3.73,3.77,3.84,3.82,3.78,3.87,3.85, 3.78,3.87,3.75,3.75,3.65,4.02,3.76,3.70,3.97,3.69, 3.93,3.86,3.93,3.93,3.92,4.02,3.95,4.00,3.85,3.94, 0.77,0.83,0.84,0.86,0.92,0.94,0.93,0.95,1.03,1.08, 1.03,1.09,1.10,1.11,1.12,1.16,1.20,1.21,1.23,1.28, 1.27,1.31,1.30,1.31,1.36,1.37,1.35,1.40,1.39,1.47, 1.48,1.51,1.53,1.56,1.50,1.49,1.56,1.57,1.57,1.59, 1.64,1.58,1.61,1.68,1.78,1.73,1.73,1.76,1.76,1.78, 1.71,1.81,1.80,1.76,1.81,1.80,1.86,1.88,1.80,1.93, 1.96,1.93,2.02,1.98,1.98,1.98,2.02,1.98,1.99,2.01, 1.99,2.00,2.07,1.98,2.06,2.06,2.10,2.07,2.13,2.14, 2.11,2.21,2.22,2.10,2.32,2.15,2.25,2.20,2.29,2.33, 2.24,2.16,2.19,2.27,2.30,2.33,2.34,2.30,2.32,2.37, 2.30,2.27,2.39,2.40,2.31,2.45,2.47,2.44,2.53,2.43, 2.54,2.46,2.49,2.44,2.52,2.50,2.57,2.52,2.54,2.55, 2.65,2.53,2.60,2.52,2.71,2.59,2.66,2.59,2.59,2.69, 2.64,2.62,2.60,2.72,2.80,2.65,2.74,2.66,2.77,2.80, 2.80,2.84,2.74,2.71,2.72,2.73,2.71,2.77,2.85,2.84, 2.79,2.92,2.75,2.95,2.89,2.71,2.88,2.85,2.88,2.95, 2.90,2.95,2.95,2.90,2.93,2.95,3.02,3.01,2.93,2.97, 2.96,2.94,3.06,3.14,2.90,3.01,3.03,3.07,3.17,3.02, 2.99,3.14,3.08,3.16,3.12,3.19,3.09,3.13,3.18,3.23, 3.20,3.13,3.15,3.16,3.22,3.24,3.26,3.19,3.20,3.28, 3.20,3.14,3.30,3.23,3.29,3.38,3.33,3.34,3.16,3.36, 3.33,3.31,3.31,3.34,3.42,3.37,3.37,3.45,3.48,3.43, 3.39,3.33,3.43,3.41,3.41,3.39,3.40,3.38,3.54,3.46, 3.55,3.56,3.58,3.56,3.66,3.61,3.35,3.49,3.40,3.59, 3.53,3.60,3.73,3.45,3.63,3.56,3.62,3.70,3.65,3.62, 3.54,3.65,3.69,3.71,3.66,3.60,3.66,3.51,3.63,3.77, 3.70,3.83,3.74,3.80,3.81,3.76,3.68,3.77,3.80,3.59, 3.85,3.81,3.74,3.73,3.76,3.73,3.85,3.95,3.69,3.85, 3.92,3.89,3.70,3.82,3.84,3.86,3.80,3.82,3.69,3.68, 0.79,0.79,0.86,0.86,0.90,0.92,0.95,0.99,1.02,1.03, 1.02,1.07,1.07,1.13,1.12,1.18,1.17,1.21,1.25,1.28, 1.23,1.27,1.28,1.30,1.33,1.32,1.34,1.39,1.43,1.40, 1.47,1.47,1.48,1.45,1.55,1.51,1.53,1.51,1.55,1.59, 1.54,1.62,1.61,1.71,1.69,1.62,1.68,1.72,1.79,1.76, 1.68,1.82,1.80,1.75,1.88,1.69,1.86,1.91,1.90,1.87, 1.84,1.89,1.90,1.95,1.95,1.92,1.92,2.04,1.97,2.00, 2.03,1.99,1.99,2.08,1.98,2.08,2.05,2.11,2.01,2.07, 2.13,2.13,2.22,2.19,2.22,2.11,2.22,2.19,2.15,2.20, 2.20,2.15,2.31,2.29,2.26,2.29,2.32,2.42,2.26,2.29, 2.25,2.32,2.38,2.36,2.37,2.34,2.28,2.31,2.52,2.44, 2.49,2.36,2.46,2.48,2.49,2.47,2.52,2.50,2.61,2.44, 2.59,2.56,2.52,2.58,2.56,2.44,2.61,2.56,2.49,2.55, 2.59,2.70,2.57,2.80,2.52,2.68,2.67,2.75,2.62,2.82, 2.61,2.72,2.76,2.71,2.77,2.84,2.78,2.80,2.89,2.80, 2.78,2.84,2.80,2.80,2.83,2.86,2.85,2.90,3.00,2.95, 2.74,2.77,2.89,2.93,3.01,2.80,3.00,2.99,3.01,2.89, 2.96,2.99,3.00,3.01,3.09,3.01,3.04,2.95,3.06,2.99, 3.05,3.12,3.13,3.09,3.12,3.02,3.21,3.03,3.04,3.09, 3.12,3.17,3.19,3.07,3.21,3.19,3.21,3.18,3.14,3.17, 3.14,3.26,3.15,3.19,3.12,3.25,3.28,3.43,3.18,3.34, 3.35,3.31,3.24,3.30,3.24,3.25,3.39,3.31,3.21,3.31, 3.25,3.51,3.32,3.42,3.44,3.38,3.42,3.46,3.50,3.39, 3.49,3.44,3.29,3.49,3.40,3.36,3.45,3.51,3.47,3.55, 3.57,3.49,3.21,3.42,3.60,3.53,3.50,3.51,3.52,3.58, 3.60,3.55,3.55,3.72,3.58,3.69,3.59,3.61,3.57,3.64, 3.62,3.72,3.74,3.60,3.68,3.75,3.72,3.74,3.73,3.79, 3.66,3.76,3.78,3.69,3.68,3.70,3.58,3.67,3.67,3.67, 3.93,3.67,3.67,3.83,3.79,3.76,3.83,3.69,3.92,3.88, 0.77,0.79,0.85,0.82,0.88,0.95,0.92,0.98,1.00,1.02, 1.03,1.02,1.11,1.10,1.10,1.16,1.19,1.17,1.19,1.22, 1.25,1.25,1.26,1.34,1.33,1.35,1.38,1.34,1.38,1.44, 1.42,1.44,1.46,1.43,1.49,1.49,1.51,1.50,1.56,1.56, 1.58,1.61,1.55,1.71,1.66,1.67,1.67,1.70,1.70,1.71, 1.71,1.75,1.68,1.71,1.73,1.82,1.78,1.80,1.82,1.78, 1.83,1.82,1.88,1.85,1.88,1.86,1.92,1.98,1.93,1.96, 1.98,2.00,1.99,2.08,2.05,2.07,2.10,2.13,2.08,2.14, 2.10,2.06,2.08,2.13,2.08,2.18,2.12,2.11,2.22,2.23, 2.14,2.18,2.24,2.32,2.27,2.21,2.21,2.28,2.34,2.30, 2.22,2.27,2.39,2.37,2.39,2.38,2.41,2.34,2.39,2.44, 2.42,2.36,2.45,2.46,2.41,2.44,2.49,2.47,2.41,2.49, 2.53,2.47,2.42,2.52,2.42,2.52,2.56,2.55,2.56,2.59, 2.69,2.68,2.61,2.70,2.61,2.57,2.68,2.67,2.65,2.73, 2.58,2.72,2.73,2.79,2.61,2.79,2.75,2.72,2.88,2.84, 2.60,2.74,2.74,2.82,2.76,2.70,2.81,2.78,2.85,2.82, 2.76,2.81,2.93,2.92,2.95,2.84,2.94,2.85,2.98,2.92, 2.95,2.95,2.94,3.05,2.87,2.99,3.02,2.96,2.88,3.02, 2.96,2.89,2.91,3.02,3.02,3.11,3.06,3.03,3.09,3.07, 3.17,3.14,3.23,3.16,3.05,3.15,3.11,3.12,3.18,3.09, 3.18,3.08,3.21,3.10,3.19,3.34,3.32,3.17,3.18,3.21, 3.18,3.15,3.16,3.27,3.22,3.28,3.29,3.32,3.18,3.22, 3.16,3.32,3.46,3.19,3.24,3.31,3.31,3.34,3.39,3.44, 3.31,3.57,3.54,3.39,3.37,3.43,3.53,3.44,3.50,3.41, 3.30,3.43,3.49,3.43,3.39,3.44,3.49,3.45,3.47,3.67, 3.45,3.55,3.44,3.40,3.61,3.58,3.64,3.46,3.54,3.53, 3.53,3.55,3.38,3.43,3.61,3.57,3.68,3.75,3.59,3.59, 3.73,3.62,3.68,3.74,3.73,3.70,3.71,3.70,3.66,3.72, 3.73,3.73,3.80,3.82,3.68,3.62,3.80,3.81,3.75,3.71, 0.78,0.82,0.82,0.84,0.94,0.89,0.96,0.97,1.02,0.97, 1.05,1.02,1.04,1.11,1.09,1.15,1.17,1.20,1.21,1.22, 1.23,1.24,1.16,1.36,1.29,1.33,1.34,1.39,1.40,1.37, 1.42,1.44,1.40,1.46,1.47,1.49,1.57,1.49,1.51,1.54, 1.63,1.60,1.62,1.59,1.69,1.70,1.64,1.67,1.64,1.74, 1.69,1.72,1.74,1.79,1.76,1.77,1.77,1.77,1.87,1.78, 1.89,1.83,1.87,1.89,1.90,1.93,1.94,1.94,1.85,1.90, 1.93,1.94,1.98,2.02,1.89,2.00,2.03,2.12,1.99,2.05, 2.08,2.06,2.09,2.13,2.07,2.12,2.10,2.21,2.18,2.22, 2.14,2.16,2.22,2.24,2.13,2.28,2.20,2.19,2.13,2.25, 2.24,2.26,2.27,2.22,2.20,2.30,2.48,2.36,2.34,2.38, 2.33,2.43,2.46,2.39,2.46,2.46,2.47,2.41,2.50,2.43, 2.50,2.49,2.57,2.61,2.51,2.54,2.56,2.63,2.51,2.60, 2.49,2.55,2.56,2.60,2.61,2.69,2.70,2.56,2.63,2.72, 2.59,2.58,2.76,2.68,2.66,2.75,2.64,2.69,2.71,2.77, 2.71,2.66,2.75,2.72,2.80,2.82,2.78,2.74,2.74,2.84, 2.81,2.86,2.79,2.85,2.83,2.92,2.78,2.97,2.87,2.88, 2.90,2.97,2.85,2.92,2.85,3.03,2.94,2.85,2.98,2.95, 2.95,3.09,2.99,3.06,2.97,3.09,2.95,3.16,3.12,3.01, 2.98,3.07,3.02,3.16,3.09,3.14,3.05,3.04,3.07,3.19, 3.03,3.12,3.09,3.13,3.23,3.26,3.27,3.04,3.29,3.18, 3.14,3.17,3.28,3.10,3.27,3.28,3.28,3.36,3.26,3.25, 3.24,3.32,3.39,3.28,3.42,3.30,3.24,3.36,3.35,3.31, 3.37,3.40,3.31,3.35,3.22,3.37,3.40,3.22,3.35,3.47, 3.38,3.44,3.49,3.39,3.43,3.51,3.59,3.49,3.56,3.49, 3.43,3.43,3.36,3.48,3.46,3.41,3.48,3.60,3.53,3.49, 3.37,3.60,3.64,3.61,3.60,3.63,3.50,3.68,3.57,3.65, 3.70,3.66,3.61,3.72,3.71,3.51,3.63,3.72,3.56,3.60, 3.51,3.57,3.51,3.62,3.83,3.72,3.69,3.69,3.74,3.70 }; static float meanNumAnchorBases[] = { 10.29,11.18,13.18,13.19,14.50,15.10,17.15,18.04,18.97,20.38, 21.16,22.65,23.08,24.30,25.73,25.98,27.35,28.95,29.31,30.26, 31.76,32.39,32.52,32.71,34.88,37.36,38.05,37.55,40.19,40.75, 41.26,41.60,44.11,45.51,45.16,47.33,47.20,47.78,49.74,51.59, 53.24,54.20,54.79,53.94,54.59,55.70,57.46,60.50,58.15,60.08, 61.16,62.98,64.37,65.53,65.88,67.93,68.35,70.37,68.62,70.53, 72.95,74.36,75.36,76.09,77.96,78.37,81.21,78.20,81.19,81.89, 83.12,83.09,84.48,86.07,87.22,88.51,89.30,89.85,91.09,93.30, 91.48,94.63,96.35,96.40,99.79,97.00,99.45,101.28,102.48,102.75, 104.36,103.84,107.19,108.70,106.95,107.46,110.29,110.16,113.95,113.67, 112.26,115.17,115.21,116.09,118.59,118.83,119.42,122.30,120.64,121.45, 124.31,125.48,125.83,126.51,127.48,128.37,130.53,129.25,131.98,134.67, 133.11,137.08,138.88,137.42,141.38,137.93,139.34,141.34,143.58,142.55, 147.15,148.06,147.04,147.26,148.81,151.30,149.67,150.13,153.82,154.43, 155.18,152.88,159.45,158.69,160.62,159.25,162.38,163.32,164.43,163.90, 165.40,166.39,169.36,167.88,169.54,169.72,172.42,172.38,173.05,172.16, 176.13,174.65,179.64,178.83,181.02,180.45,184.05,185.48,184.06,185.26, 185.76,188.14,187.23,187.82,187.99,192.09,193.41,194.47,192.96,195.94, 197.08,199.81,199.05,198.55,199.11,199.79,200.00,202.18,205.11,203.98, 207.51,205.21,210.19,207.32,211.09,211.90,211.65,215.12,217.09,218.79, 215.54,219.63,218.29,220.24,223.97,220.52,223.12,225.35,225.65,223.31, 226.18,229.32,229.35,231.02,230.20,233.15,233.75,235.31,233.53,237.98, 238.21,240.25,238.85,240.20,243.91,243.01,244.59,245.77,245.08,248.13, 248.87,247.74,248.74,253.32,250.74,255.15,254.54,255.99,257.96,257.46, 256.46,257.33,261.37,260.70,261.65,264.06,265.57,262.46,267.27,271.55, 270.74,266.35,272.21,271.36,274.50,276.81,273.01,279.42,277.33,281.16, 278.39,279.82,280.25,280.24,283.61,283.22,284.77,287.10,287.86,289.02, 290.12,291.62,295.28,289.63,293.72,294.00,296.16,296.72,294.73,299.37, 300.36,300.62,305.97,304.85,304.27,302.67,306.11,304.61,311.61,306.50, 7.70,8.64,9.28,10.05,10.91,11.72,12.83,13.15,15.72,14.63, 15.80,16.35,16.86,17.78,19.65,20.37,21.10,21.39,22.06,22.09, 23.73,23.95,25.68,26.19,27.62,27.80,27.93,29.09,30.92,30.47, 32.38,33.22,32.79,33.34,34.00,35.87,36.73,37.09,37.98,37.93, 39.15,40.07,40.79,42.63,42.95,44.60,43.83,45.34,45.25,46.94, 46.50,48.07,47.88,49.90,50.21,49.20,51.13,53.20,53.90,53.92, 55.20,56.36,57.64,58.16,58.19,58.70,59.98,60.69,61.13,61.11, 63.45,65.45,64.04,64.16,64.49,66.96,67.83,67.81,67.72,69.77, 70.60,71.91,74.29,72.17,72.55,75.15,75.14,76.49,76.23,78.90, 79.02,79.24,80.13,79.14,81.39,83.81,84.35,83.68,87.47,86.30, 86.12,85.33,87.64,90.09,90.73,89.78,90.95,91.08,95.40,94.00, 92.38,93.32,96.94,96.51,98.39,96.99,98.08,96.53,99.73,99.84, 100.73,103.12,105.10,103.36,104.98,107.06,105.04,106.83,106.87,107.64, 111.29,110.27,112.43,111.98,111.08,114.28,114.74,115.45,115.57,117.44, 115.45,118.37,117.38,116.51,124.46,121.92,120.76,120.31,124.78,123.56, 123.50,126.16,127.15,127.68,127.64,128.42,129.45,130.45,132.56,131.88, 134.59,132.58,135.16,135.46,136.24,138.12,138.00,136.35,139.56,141.55, 138.99,144.63,145.19,142.78,146.65,143.70,142.96,146.41,147.81,148.22, 150.48,151.96,150.97,150.41,151.26,152.69,154.02,157.21,155.36,155.66, 156.38,156.13,158.68,159.25,158.82,157.97,160.47,163.47,163.21,161.61, 162.17,162.55,163.27,167.11,167.53,166.55,168.82,172.27,171.29,170.15, 170.39,175.73,173.97,174.81,174.96,174.38,178.36,178.32,179.73,177.92, 179.63,182.32,182.26,181.45,183.47,181.80,186.21,187.16,186.16,185.81, 187.68,185.02,189.16,192.16,191.64,192.83,191.94,193.87,195.65,197.51, 195.94,198.70,196.89,198.05,197.44,199.74,200.91,200.47,202.94,201.34, 202.85,203.83,205.62,204.65,204.62,208.53,209.32,211.16,207.54,212.60, 213.26,211.60,211.44,213.94,214.66,218.64,217.47,217.15,218.54,219.57, 220.16,217.85,220.89,220.62,220.32,220.56,224.14,223.76,224.37,225.64, 225.56,232.40,228.57,229.66,227.33,231.09,231.39,231.64,230.48,236.08, 5.76,6.68,7.52,7.87,8.03,8.84,9.38,10.38,10.93,11.38, 11.65,12.99,12.46,13.30,14.49,16.07,14.73,15.79,16.66,17.23, 17.95,18.04,20.23,18.78,19.62,20.44,20.46,21.57,21.35,23.23, 24.05,24.83,24.01,25.05,25.99,26.26,26.70,27.55,29.16,29.25, 29.57,30.87,31.04,31.17,31.15,32.22,32.92,32.33,33.67,34.09, 34.68,35.77,37.22,36.10,37.66,37.52,38.84,41.16,39.49,39.74, 41.39,41.62,43.77,42.24,44.38,44.92,45.40,44.94,46.35,48.09, 46.01,47.04,49.30,48.54,48.62,50.13,49.48,50.91,52.51,53.43, 53.22,52.91,53.96,56.33,55.70,55.45,55.53,57.06,58.14,58.79, 57.91,59.87,59.21,61.27,62.02,63.65,63.14,64.14,66.11,64.66, 63.48,64.95,65.70,66.63,67.51,68.27,67.66,69.93,68.93,69.62, 71.13,71.71,73.39,74.06,74.16,73.51,73.58,76.27,76.42,75.72, 77.65,78.67,79.32,79.18,79.20,78.92,79.07,81.50,81.18,81.27, 80.61,84.06,83.59,82.03,85.02,85.57,86.43,88.74,87.43,86.53, 88.22,88.02,90.55,89.79,89.35,93.02,92.95,90.79,92.14,92.57, 94.29,94.26,94.92,96.21,97.84,97.47,97.88,98.92,98.83,99.67, 98.70,100.44,100.64,102.63,103.11,103.00,104.21,102.15,103.84,105.05, 106.03,105.33,109.18,109.37,107.52,110.02,112.99,110.00,111.68,111.06, 113.32,112.57,113.39,114.23,115.91,115.37,116.93,118.22,116.12,118.37, 116.29,117.19,120.33,121.25,121.10,121.06,119.13,121.81,123.08,123.86, 124.26,122.61,124.91,124.76,124.62,128.48,127.66,125.98,127.53,129.11, 129.52,130.37,131.14,131.49,133.80,130.75,131.12,135.28,133.34,135.22, 134.63,137.10,136.81,137.75,139.11,140.68,139.85,138.50,138.60,142.13, 142.27,139.03,142.09,141.69,144.88,145.40,146.44,146.88,147.02,146.20, 148.05,147.86,148.60,147.76,149.17,150.16,150.99,150.92,151.68,154.22, 152.29,154.76,154.81,155.99,155.15,155.19,156.85,156.10,155.42,158.43, 158.58,161.22,158.21,158.84,159.65,163.21,160.28,162.11,165.50,162.92, 165.09,163.89,165.07,167.63,166.46,167.00,169.04,169.44,171.51,172.23, 170.24,171.55,168.55,172.43,172.88,173.14,173.49,176.60,176.28,172.44, 4.24,5.14,5.69,5.96,6.37,7.36,7.54,7.57,7.87,7.83, 9.01,9.62,10.06,10.18,10.41,10.90,10.45,12.03,12.75,12.89, 13.67,13.81,13.94,14.48,15.68,16.16,16.46,15.84,16.41,18.29, 16.66,18.74,18.28,18.69,19.87,19.59,20.99,20.68,20.86,22.23, 21.63,22.10,23.51,22.89,23.65,23.59,24.03,25.38,25.81,26.39, 26.12,27.32,27.62,27.85,28.01,28.95,28.63,28.80,30.36,29.92, 32.32,31.62,31.98,33.55,32.85,33.49,34.02,34.63,34.89,34.37, 34.22,36.25,35.12,35.75,37.15,36.18,38.14,37.81,40.03,39.71, 39.84,40.53,40.97,41.08,41.16,41.88,42.35,43.48,42.69,43.95, 46.10,44.28,46.95,45.00,46.91,46.20,48.56,48.27,47.73,47.49, 49.12,50.41,48.59,50.32,49.33,51.77,50.92,50.94,53.40,52.84, 52.76,53.74,55.10,56.58,55.72,53.92,54.14,56.51,56.94,56.34, 57.37,57.78,58.96,59.52,60.64,56.95,58.92,60.58,61.34,60.24, 62.56,61.90,61.88,61.83,63.40,63.43,64.79,63.80,64.17,64.91, 67.20,66.10,67.52,68.17,68.33,67.92,68.79,69.68,69.53,69.25, 70.46,72.15,70.92,72.33,73.22,72.80,72.28,74.22,73.95,75.16, 74.76,76.72,75.09,77.20,77.15,74.99,77.64,79.05,77.27,80.01, 79.85,78.26,80.73,80.46,80.73,81.03,81.93,83.50,83.24,82.78, 82.63,84.88,84.35,84.90,82.56,85.37,84.38,86.74,88.20,86.20, 88.64,88.71,89.69,91.21,90.00,92.63,89.44,91.41,90.19,94.44, 93.89,91.77,92.02,95.94,92.83,93.66,96.10,96.82,94.41,94.75, 96.01,97.05,97.53,97.56,100.04,100.00,99.19,99.99,100.84,102.53, 102.76,100.86,101.63,102.99,103.15,102.58,103.10,106.74,104.91,104.76, 106.12,104.12,106.47,109.31,106.67,107.97,106.54,108.28,107.54,109.45, 109.88,110.22,110.41,112.64,112.09,110.28,110.88,113.95,112.68,112.46, 115.06,115.14,116.76,117.64,114.46,114.14,117.97,117.66,118.44,119.45, 119.56,119.08,119.75,117.54,122.68,122.41,122.96,120.81,124.78,122.80, 125.48,125.66,124.18,125.46,124.32,123.47,123.93,124.84,125.35,128.80, 128.34,130.22,130.15,128.27,128.41,130.31,131.64,127.65,130.56,132.43, 3.14,3.67,3.69,4.13,4.58,5.15,5.88,5.40,6.12,6.72, 6.87,6.93,7.49,7.47,8.33,8.03,8.98,8.56,10.14,9.26, 9.74,9.70,11.01,11.35,12.25,11.21,12.68,12.41,13.07,12.83, 12.55,14.37,14.39,14.13,15.25,15.09,15.88,15.17,16.24,16.41, 16.93,17.49,16.89,16.42,17.90,18.29,18.14,19.36,18.83,19.77, 20.51,20.58,19.83,20.35,21.73,22.17,21.13,22.53,24.25,23.62, 22.43,23.21,22.57,24.25,24.35,25.44,25.03,25.81,25.28,25.55, 26.35,26.76,27.35,27.52,27.74,28.21,28.80,30.02,28.43,29.54, 28.99,29.62,31.23,30.70,31.82,30.56,30.99,32.79,32.13,32.16, 33.16,34.42,33.32,33.67,34.10,34.92,35.29,34.74,36.01,34.67, 35.74,35.85,35.65,36.26,36.38,35.65,38.35,37.51,39.10,39.26, 40.13,39.64,41.51,41.28,40.13,41.14,42.44,42.24,43.63,42.42, 41.23,42.97,41.35,44.83,44.71,45.05,43.73,44.72,44.69,45.39, 46.14,45.83,47.07,46.32,48.63,49.67,47.38,48.67,48.23,49.26, 49.63,49.94,48.87,50.80,49.90,52.50,53.08,52.92,52.98,52.53, 53.82,53.72,54.28,53.74,53.74,54.32,53.79,55.84,54.24,53.73, 56.35,55.22,55.26,56.94,56.42,57.33,56.94,58.88,56.92,61.31, 60.44,58.32,58.15,59.52,59.77,62.07,60.90,60.62,60.24,61.65, 61.78,62.82,62.63,61.99,62.89,64.91,65.97,63.92,66.57,66.08, 64.79,64.11,65.65,67.64,66.92,67.46,68.23,67.48,68.45,68.10, 70.48,67.98,71.61,69.24,69.94,69.14,71.61,71.83,72.73,71.29, 72.13,72.04,72.01,74.89,73.33,74.80,74.94,73.30,75.44,74.40, 76.57,74.94,76.86,79.04,76.96,76.48,77.89,78.05,76.84,79.45, 79.23,78.44,78.32,80.68,80.65,79.79,80.83,82.69,82.07,81.63, 83.24,82.41,82.88,83.41,84.04,84.21,84.83,85.52,85.18,84.89, 85.35,85.27,84.08,88.67,87.43,86.31,86.21,86.88,89.26,88.51, 87.53,90.36,88.81,89.98,90.83,92.05,91.13,89.85,90.44,90.99, 91.35,93.20,89.45,93.15,92.88,93.15,94.07,94.03,94.57,96.91, 94.37,95.06,97.04,97.64,96.24,97.95,96.26,99.27,97.07,98.42, 2.29,2.40,2.72,3.07,3.11,3.67,4.04,4.34,3.94,5.11, 5.19,5.30,4.79,5.86,6.25,6.55,6.01,7.04,6.85,7.17, 7.77,7.82,7.57,8.06,8.30,8.58,8.58,8.55,9.31,9.62, 9.18,9.89,10.00,11.16,11.05,11.37,10.94,11.90,11.77,11.94, 11.77,12.15,13.03,12.30,13.15,14.11,13.60,13.46,14.24,13.30, 14.30,14.95,14.90,15.79,15.75,15.51,16.52,16.67,17.77,16.77, 16.51,17.72,17.73,19.12,17.72,17.84,20.33,19.46,18.57,19.77, 19.86,19.90,19.54,19.97,20.94,21.04,20.20,21.13,21.83,21.31, 22.76,21.53,23.06,22.30,22.69,22.65,22.98,24.93,23.97,24.48, 24.48,24.33,25.69,24.39,25.23,25.38,26.94,26.32,25.80,28.04, 26.42,26.71,27.55,26.97,28.00,28.19,27.97,30.20,29.29,29.58, 29.64,30.15,29.84,29.14,30.01,30.42,30.39,32.02,31.02,31.55, 31.13,32.18,33.38,33.01,33.69,33.14,31.98,34.46,34.16,34.58, 34.72,34.70,35.21,35.27,36.53,36.06,35.95,36.05,37.38,36.28, 36.43,36.25,36.50,38.03,37.67,38.01,38.56,37.22,39.15,39.00, 38.89,38.45,39.41,40.24,39.98,40.42,40.52,40.88,40.90,40.81, 41.04,42.02,41.07,43.65,42.47,42.15,43.77,44.26,44.19,43.52, 43.90,43.47,43.88,44.25,45.87,45.36,45.78,45.33,47.26,46.91, 45.23,46.69,47.31,47.22,46.21,47.79,47.46,48.72,48.12,48.94, 49.38,48.75,50.53,48.99,49.93,50.56,50.34,50.74,50.39,50.54, 52.14,50.80,51.20,51.75,52.63,52.41,55.20,53.47,54.10,53.58, 54.37,54.50,55.02,55.64,55.14,53.15,55.63,55.67,55.69,56.18, 56.79,57.24,56.48,55.41,58.07,58.10,59.55,58.06,57.20,58.19, 59.19,58.59,60.33,59.49,58.23,59.53,59.68,60.96,60.33,60.70, 61.32,62.67,59.69,63.55,61.83,61.26,61.42,64.25,61.82,62.27, 63.08,63.55,62.62,63.94,63.10,65.53,64.86,63.84,65.68,64.70, 63.62,65.38,65.91,66.37,66.16,66.65,66.55,67.44,67.68,67.96, 66.58,68.16,68.28,69.38,70.34,69.17,70.45,70.21,69.57,69.72, 70.81,72.72,71.34,71.90,71.20,72.22,72.84,73.16,73.02,72.75, 1.52,2.09,2.23,2.60,2.47,2.67,2.90,3.19,3.32,3.52, 3.33,3.70,4.13,3.96,4.50,4.40,4.22,5.48,4.86,5.41, 5.64,5.35,6.03,5.72,6.04,6.25,5.96,6.93,6.41,7.10, 6.55,7.29,8.47,7.65,7.44,7.97,8.69,8.55,8.68,8.42, 8.77,9.09,9.06,10.15,9.38,9.97,10.79,10.83,10.83,10.81, 11.20,10.15,10.88,11.54,11.54,12.44,11.97,12.42,12.13,12.79, 13.35,12.57,13.06,12.83,13.09,13.27,13.40,14.36,12.93,13.85, 14.34,14.42,15.11,14.31,15.30,14.54,15.77,16.49,15.04,15.03, 15.99,16.61,17.40,15.99,16.55,17.47,17.64,17.20,19.03,16.59, 18.10,19.50,18.31,17.98,19.12,19.61,18.63,19.44,19.29,19.47, 20.38,20.71,19.56,20.71,20.79,21.17,20.55,20.88,22.54,21.06, 22.25,22.23,22.00,21.58,23.84,22.07,23.25,24.08,23.16,23.02, 22.86,23.82,23.56,23.81,23.42,24.29,24.84,24.11,24.62,24.53, 25.16,25.57,24.86,26.45,26.66,26.46,26.80,26.44,27.02,27.60, 27.77,26.86,28.00,27.84,27.80,27.02,29.03,28.34,28.38,28.97, 28.83,29.86,28.95,29.45,31.34,30.42,30.16,30.73,31.34,28.97, 30.36,31.10,31.09,32.01,31.90,31.80,33.23,32.08,31.25,32.48, 33.16,31.44,34.24,34.07,33.44,33.36,33.25,34.37,35.23,34.47, 33.88,35.26,34.03,34.75,34.94,34.63,35.65,37.50,35.34,34.43, 37.14,36.43,37.51,36.82,37.36,36.94,36.75,37.71,36.78,39.45, 37.38,37.10,39.43,37.00,38.90,39.32,40.16,40.41,39.31,41.64, 40.38,40.09,39.64,41.23,40.52,41.57,41.12,41.85,42.19,42.88, 39.69,41.61,41.35,43.06,42.07,42.61,43.58,42.30,44.38,42.66, 42.74,44.50,42.50,43.54,43.64,42.81,44.56,45.49,45.80,44.34, 45.29,45.29,46.57,45.98,45.87,47.10,45.15,46.51,45.25,44.78, 45.40,47.71,47.22,46.37,50.51,48.58,47.48,48.17,48.69,47.54, 47.80,50.26,47.69,48.73,49.51,48.71,49.91,49.73,49.45,50.65, 51.63,51.45,52.16,51.19,52.03,50.35,51.37,52.99,52.19,52.21, 54.63,52.69,52.46,51.55,52.48,53.50,52.02,51.95,54.68,53.85, 1.21,1.59,1.42,1.83,1.90,2.24,2.58,1.98,2.18,2.98, 3.25,3.29,2.51,3.22,3.29,3.19,3.77,3.30,3.84,4.31, 4.32,4.09,4.44,4.63,4.33,4.45,4.61,4.88,5.34,4.82, 6.19,4.69,5.43,5.70,5.08,6.57,6.08,6.33,6.55,6.50, 6.64,7.53,7.49,7.09,6.88,7.76,8.00,7.32,7.73,7.88, 7.96,8.05,8.64,8.67,9.05,8.81,8.93,9.13,9.42,8.53, 9.20,9.95,10.10,9.39,10.22,9.65,10.30,11.38,10.69,9.88, 10.71,10.55,10.14,11.15,10.94,11.36,11.36,11.34,11.48,11.96, 11.94,12.55,12.26,11.57,12.74,11.90,13.64,13.02,12.77,13.57, 13.38,13.24,13.56,14.02,13.70,13.25,14.00,14.82,13.95,13.76, 14.48,15.62,15.31,14.88,14.63,14.89,14.85,15.93,16.93,15.93, 15.95,16.02,16.04,17.89,16.21,17.34,17.74,17.30,16.71,16.96, 18.47,17.68,17.89,17.91,18.55,17.76,18.44,18.84,18.55,18.82, 19.47,18.55,18.98,18.75,18.82,19.71,19.59,21.22,20.37,20.46, 19.96,19.91,19.25,19.38,19.85,22.12,19.80,20.96,20.87,21.02, 21.17,21.08,21.35,21.76,20.80,20.50,22.57,22.07,22.15,21.90, 23.07,22.28,23.08,21.66,23.40,23.04,24.05,24.38,23.01,24.67, 23.19,24.18,24.20,25.15,24.53,24.34,24.95,24.70,24.78,25.44, 25.49,27.40,25.17,25.94,25.52,26.89,26.65,26.38,26.68,27.42, 26.88,26.39,25.52,27.07,28.12,28.34,26.54,27.36,27.96,28.38, 29.27,28.73,29.22,28.01,27.95,28.41,29.11,29.98,29.72,29.92, 29.98,29.78,29.78,29.91,30.41,30.55,28.73,30.42,31.95,29.78, 31.54,31.15,33.00,31.43,30.66,31.86,30.82,31.41,31.96,31.80, 31.59,31.35,33.16,33.58,31.61,32.03,34.09,32.34,32.28,34.49, 32.67,34.15,34.62,33.87,33.37,33.92,35.35,33.15,33.31,36.01, 33.27,34.74,33.39,34.64,35.28,35.81,36.37,36.64,35.51,34.94, 35.38,36.51,36.98,36.83,37.56,38.20,36.55,36.92,35.17,36.57, 37.90,37.96,37.54,37.02,37.98,38.88,39.31,39.14,38.12,39.18, 39.55,38.17,39.93,39.68,38.82,40.13,39.58,40.88,40.45,41.38, 0.94,0.98,1.34,1.27,1.56,1.79,1.81,1.36,1.75,2.29, 1.89,1.89,2.12,2.17,2.49,2.37,2.69,2.67,2.49,3.09, 3.02,2.71,3.05,3.45,3.96,3.37,3.29,3.24,3.25,3.53, 4.25,4.06,4.43,3.97,4.54,4.26,4.48,4.81,4.98,4.53, 4.74,5.49,5.49,5.50,5.32,5.26,5.48,5.86,5.50,6.18, 5.64,5.63,6.59,6.33,5.99,5.62,6.39,6.27,6.44,6.61, 6.92,6.87,6.87,7.30,6.35,7.13,7.48,7.75,7.77,7.82, 7.88,8.19,8.39,8.17,7.80,8.93,9.07,8.62,8.75,8.59, 9.31,9.21,8.91,8.81,8.95,9.89,9.92,9.64,10.29,9.71, 9.63,10.70,10.00,10.54,10.43,10.55,10.02,9.92,10.52,11.03, 10.53,11.08,10.66,10.91,10.52,11.91,12.84,12.21,11.60,11.73, 10.99,11.47,12.33,12.21,12.31,11.42,12.51,12.88,12.15,12.38, 13.70,13.44,12.52,13.32,12.83,13.59,13.00,13.15,13.55,13.30, 14.20,14.32,13.97,13.71,14.80,14.38,13.29,14.74,15.37,14.35, 15.79,15.05,14.88,14.95,15.20,15.51,15.75,14.26,15.36,15.54, 15.93,15.59,16.75,16.09,15.05,15.79,16.53,17.19,17.11,16.82, 16.64,17.37,16.66,17.22,18.21,16.53,16.10,17.58,18.19,18.44, 16.81,18.41,18.71,18.38,16.32,18.89,18.82,17.61,18.36,17.76, 18.20,18.59,18.46,19.76,18.95,19.42,18.53,18.62,18.24,17.83, 19.14,19.92,19.37,19.96,18.98,19.86,20.76,21.51,19.77,22.17, 21.69,21.08,21.64,22.12,20.27,19.82,20.79,21.46,21.30,21.52, 21.50,22.02,20.42,20.70,20.94,22.88,21.42,21.68,22.73,20.76, 22.29,23.63,21.85,23.45,22.78,22.10,23.09,23.14,24.81,24.52, 23.62,23.62,23.43,24.29,24.67,25.06,24.02,24.32,23.99,24.48, 24.42,25.05,24.71,24.34,25.61,24.61,25.09,26.16,25.08,24.85, 25.69,25.59,25.24,25.83,27.30,24.71,25.71,26.87,26.27,26.33, 27.91,27.44,27.55,26.52,27.62,27.87,27.47,26.90,27.07,27.74, 27.58,25.29,26.92,28.31,27.57,28.13,29.46,26.59,28.82,29.48, 27.87,29.13,28.83,29.01,29.97,30.33,29.01,28.31,29.95,29.50, 0.75,0.96,0.88,0.88,1.05,1.19,1.28,1.09,1.00,1.20, 1.39,1.55,1.62,1.25,1.65,1.47,1.82,1.77,1.96,2.43, 2.35,2.21,2.29,2.75,2.94,2.62,2.86,2.69,3.15,3.03, 3.01,2.98,3.10,3.48,3.35,3.49,3.36,3.17,3.55,3.43, 3.40,3.75,3.77,4.21,4.30,3.76,4.33,4.20,3.74,3.89, 3.98,4.70,4.97,4.51,4.69,5.07,4.64,4.95,5.29,4.74, 4.50,5.24,5.74,5.73,5.06,5.90,5.25,5.41,6.67,5.48, 5.80,6.15,5.67,6.17,5.65,6.10,6.82,6.20,6.13,5.97, 6.95,6.88,7.12,7.13,7.37,6.77,7.01,7.21,6.42,7.64, 7.30,7.67,6.96,7.83,7.76,7.86,7.44,8.12,7.50,7.59, 8.13,7.87,7.63,7.68,8.60,9.02,7.79,7.71,8.84,8.55, 8.21,8.88,8.26,8.69,8.89,9.13,9.55,9.11,9.51,9.26, 9.27,10.06,8.54,10.25,9.54,10.55,9.69,9.98,9.16,10.08, 8.94,10.16,9.42,9.76,10.99,10.00,10.77,10.31,10.43,10.67, 10.77,11.02,11.18,10.22,11.69,11.49,10.86,11.47,11.40,10.44, 12.25,11.77,11.70,10.83,11.63,10.98,12.25,11.79,12.22,11.75, 11.84,12.77,12.38,13.64,12.81,12.15,11.89,12.69,12.79,13.21, 13.77,12.22,12.92,13.10,12.23,13.07,13.62,14.07,13.30,14.16, 13.37,13.41,14.59,14.58,14.83,13.26,14.20,13.76,15.11,14.05, 14.34,13.57,14.27,14.28,14.28,14.59,14.23,15.08,14.99,15.97, 15.06,15.40,15.01,15.19,15.59,14.96,15.52,16.23,15.39,15.95, 16.83,16.80,15.36,16.15,16.24,16.11,16.03,16.67,17.01,16.27, 16.45,16.74,15.44,16.54,16.88,16.61,17.25,17.39,16.82,18.01, 15.99,16.60,17.13,17.76,18.22,17.92,18.32,18.19,18.33,17.54, 18.91,18.07,17.70,18.65,18.16,18.70,17.97,18.32,19.29,18.86, 19.15,18.61,18.02,18.50,18.37,19.16,19.47,19.76,18.78,19.11, 18.83,18.02,19.94,19.30,19.45,19.32,19.94,19.52,19.68,20.62, 20.04,19.89,20.17,20.21,21.19,20.15,19.77,21.17,21.71,20.16, 20.64,20.81,21.14,22.37,22.13,21.61,20.47,21.89,21.99,21.13, 0.51,0.75,0.57,0.68,0.75,0.61,0.93,0.89,1.08,1.20, 1.14,0.92,1.39,1.14,1.29,1.31,1.30,1.54,1.56,1.29, 1.52,1.66,1.69,1.88,1.38,2.03,1.62,2.09,1.93,1.96, 2.30,2.39,2.19,2.12,2.35,2.14,2.32,2.39,2.53,2.63, 2.65,2.50,3.02,3.30,3.34,2.73,2.61,3.27,3.38,3.44, 2.89,3.63,3.42,3.41,3.81,3.16,3.33,3.17,3.59,3.11, 3.62,3.72,3.94,4.16,4.05,4.30,4.08,3.56,3.96,4.24, 4.20,4.22,4.13,4.36,4.04,4.66,5.07,4.81,4.84,4.55, 5.00,5.26,4.86,4.97,4.88,5.02,4.64,5.27,5.73,4.85, 5.59,5.19,5.17,4.95,5.05,5.36,5.69,5.32,5.22,5.63, 5.07,6.15,5.84,5.99,6.39,6.31,6.65,6.53,5.83,6.06, 6.66,6.35,6.52,6.07,6.63,7.04,6.28,7.13,6.88,6.49, 7.22,7.20,7.36,6.52,6.76,7.04,7.25,7.11,7.55,7.36, 7.11,7.00,7.80,7.56,7.69,7.26,7.85,7.72,8.27,7.46, 6.97,7.73,7.78,8.89,8.09,7.66,9.31,9.16,8.41,8.35, 8.61,8.44,7.98,8.51,8.18,8.89,9.11,8.83,8.54,9.33, 8.83,8.47,9.06,8.65,10.04,9.21,9.63,8.89,8.82,10.89, 9.99,9.62,9.10,9.91,9.62,9.34,10.37,10.00,10.43,10.52, 9.65,10.19,9.63,10.84,10.21,9.97,10.37,10.68,10.15,10.49, 11.34,10.57,10.29,11.68,10.56,10.88,11.18,11.46,11.36,10.77, 12.02,11.02,11.32,11.56,11.67,11.85,11.95,11.33,12.50,12.10, 11.79,12.44,10.63,12.03,12.36,12.07,11.63,12.52,12.45,11.64, 11.94,12.40,12.39,12.22,12.07,11.38,11.96,12.53,11.79,12.42, 12.83,12.64,13.05,14.27,13.05,12.10,12.08,13.20,12.91,12.82, 12.80,12.71,13.15,13.30,12.61,13.80,12.95,13.27,13.57,14.12, 14.35,13.72,13.20,14.46,13.90,15.07,14.91,14.32,14.70,14.84, 14.83,15.12,14.13,14.68,14.66,14.91,15.00,13.94,15.14,12.71, 14.34,14.34,15.80,14.18,13.94,14.95,15.16,14.12,14.89,15.24, 14.65,15.38,16.08,15.92,15.81,14.71,16.34,15.73,15.56,16.05, 0.34,0.59,0.36,0.52,0.59,0.68,0.73,0.72,0.78,0.75, 1.01,0.89,0.79,0.88,1.21,0.89,0.80,1.05,1.09,0.96, 1.36,1.12,1.15,1.02,1.28,1.50,1.88,1.42,1.14,1.27, 1.27,1.52,1.60,1.78,1.70,1.79,2.04,1.97,1.84,1.84, 1.88,2.03,1.93,2.09,2.17,2.23,1.91,2.53,2.18,2.30, 2.27,2.50,2.51,2.27,2.11,2.55,2.48,2.53,2.62,2.67, 2.64,2.98,2.74,2.98,2.99,2.96,2.83,3.14,2.74,2.81, 3.14,3.03,3.45,3.19,3.37,3.38,3.42,3.51,3.44,3.54, 3.60,3.46,3.86,3.44,3.77,3.92,3.62,3.56,4.07,3.39, 4.10,4.06,4.04,3.78,4.13,3.67,4.21,3.91,3.92,4.05, 4.44,4.27,4.07,4.38,4.55,4.34,4.80,4.60,4.70,4.49, 4.73,4.96,4.53,4.47,5.08,5.01,4.96,4.41,5.11,5.24, 4.97,4.79,5.16,4.89,5.20,4.85,4.99,5.13,5.77,5.65, 5.26,5.57,4.63,5.74,4.93,5.22,5.75,5.41,5.68,5.72, 5.61,5.36,5.51,5.79,6.13,5.77,5.38,6.50,6.00,6.13, 6.48,6.87,6.13,6.83,6.47,6.79,5.72,6.10,5.94,6.73, 6.53,6.73,7.46,6.58,6.73,6.99,7.42,6.80,7.37,7.02, 7.20,6.43,7.59,6.83,6.89,6.95,7.17,7.40,6.29,7.54, 7.32,7.13,7.82,6.98,7.21,7.45,7.54,7.33,7.42,7.71, 7.15,7.76,7.67,8.00,8.83,7.79,7.38,7.34,8.69,7.95, 7.72,7.74,7.73,8.17,8.01,8.55,8.16,8.10,8.74,8.24, 7.89,9.11,9.36,8.54,8.40,8.73,8.18,9.05,9.01,8.44, 9.24,9.81,9.34,9.22,9.11,8.72,9.39,8.95,9.31,9.10, 9.38,9.38,9.38,8.55,8.64,9.45,9.48,9.98,10.23,10.46, 10.98,9.39,9.02,9.56,10.27,9.35,10.00,9.58,10.56,9.35, 10.02,9.74,10.13,10.63,12.00,11.01,10.28,11.06,10.10,9.82, 10.19,11.08,11.27,10.82,10.69,10.72,10.03,11.74,10.66,10.53, 10.57,10.14,10.18,10.29,11.50,11.05,10.83,10.20,11.31,11.19, 11.76,11.54,11.45,10.76,11.97,10.88,11.60,11.63,11.25,11.30, 0.47,0.37,0.32,0.31,0.38,0.55,0.21,0.55,0.50,0.51, 0.48,0.48,0.78,0.68,0.56,1.01,0.60,0.75,0.86,0.56, 0.91,1.20,1.12,1.04,0.97,1.18,1.07,1.67,1.15,1.24, 0.95,1.55,1.30,1.11,1.08,1.34,1.14,1.47,1.71,1.31, 1.56,1.55,1.81,1.83,1.66,1.12,1.76,1.72,1.38,1.76, 1.50,2.15,1.69,1.68,1.81,2.01,1.97,2.23,1.94,2.32, 1.82,2.07,2.37,2.01,1.88,1.98,1.87,1.92,2.07,2.09, 2.32,2.40,1.98,2.27,1.99,2.68,2.85,2.06,1.72,2.48, 2.27,2.43,2.92,2.18,2.86,2.96,2.94,2.68,2.44,2.78, 2.87,2.65,2.92,2.64,3.41,2.99,2.98,2.76,3.02,3.18, 3.10,2.84,3.16,3.10,3.19,2.83,3.30,3.23,2.91,3.45, 3.43,3.04,3.58,3.86,3.36,3.35,3.17,3.26,3.67,3.37, 4.35,3.53,3.71,3.76,4.17,3.75,3.97,3.79,3.94,3.35, 4.06,4.04,3.42,4.24,4.34,4.04,4.14,3.68,3.69,4.07, 4.40,4.00,4.59,4.12,4.29,4.73,4.71,3.97,4.65,4.95, 4.36,4.79,4.26,4.32,4.76,4.28,4.91,4.56,4.94,5.00, 5.34,4.81,4.85,4.81,5.74,5.23,5.86,5.09,5.10,4.96, 5.17,5.26,5.49,5.39,5.67,5.22,5.23,5.16,5.93,5.43, 5.29,5.36,4.72,5.47,5.46,5.47,4.90,6.20,5.92,5.62, 5.63,5.69,5.85,5.92,6.64,6.44,5.87,6.16,5.58,5.91, 5.86,6.04,5.66,5.87,6.09,6.04,5.88,5.85,6.40,6.25, 6.28,7.00,6.83,6.68,6.50,6.28,7.41,6.03,6.27,6.99, 6.38,5.92,6.74,6.66,6.89,7.20,6.88,7.07,6.50,7.33, 6.64,6.37,7.41,7.49,6.77,7.21,7.58,7.35,7.66,6.73, 8.64,7.20,6.52,7.18,6.81,7.15,7.10,6.93,7.04,8.03, 7.16,8.12,6.52,7.28,7.38,7.47,7.47,7.45,7.61,7.00, 7.50,7.08,7.94,6.93,8.32,8.05,8.26,8.67,8.34,7.59, 7.77,8.09,8.06,8.21,8.28,8.77,7.66,8.21,8.71,8.73, 8.22,8.64,7.89,8.78,7.89,8.21,9.13,8.68,8.31,8.59, 0.21,0.20,0.33,0.17,0.28,0.32,0.19,0.29,0.38,0.30, 0.59,0.39,0.25,0.34,0.44,0.64,0.66,0.71,0.53,0.51, 0.54,0.90,0.77,0.74,0.69,0.76,0.88,0.89,0.70,0.86, 0.90,0.80,1.01,0.98,0.83,0.67,1.23,0.93,1.21,0.61, 0.95,1.07,0.98,1.29,0.99,1.16,1.07,1.17,1.21,1.51, 0.89,1.38,1.91,1.57,1.48,1.31,1.04,1.25,1.51,1.51, 1.58,1.34,1.77,1.46,1.49,1.33,1.49,1.52,1.72,1.83, 1.93,1.35,1.82,1.86,1.88,1.99,1.65,2.13,1.82,1.55, 2.05,2.29,1.75,1.89,1.89,1.68,2.11,1.94,1.89,2.01, 2.36,2.02,2.58,1.84,2.03,2.38,2.29,2.11,2.21,1.91, 1.91,2.45,2.21,2.49,2.60,3.06,2.24,2.47,2.23,2.19, 2.64,2.49,2.30,2.46,2.97,2.29,2.83,2.52,2.54,2.76, 2.67,2.56,2.40,2.71,3.27,2.50,2.53,2.75,2.87,3.34, 3.12,3.00,2.48,2.76,2.88,3.54,3.62,2.81,2.84,3.25, 3.23,3.04,3.39,3.30,2.73,3.27,2.97,2.99,2.91,3.23, 2.94,3.39,3.60,2.97,3.30,3.42,3.97,3.69,3.36,3.29, 3.67,3.12,3.48,3.47,3.56,4.04,3.24,3.71,3.79,3.99, 3.89,3.55,3.27,3.80,3.75,3.45,3.97,3.89,4.26,4.29, 4.41,4.18,3.58,4.17,3.86,4.43,4.30,4.48,4.63,4.23, 4.51,3.76,4.35,4.28,4.40,4.03,3.59,4.41,3.70,4.41, 4.35,4.44,4.40,4.20,4.70,4.99,4.33,4.18,4.60,4.55, 4.87,3.92,5.19,4.52,4.29,4.24,4.80,4.54,5.14,4.78, 4.18,5.04,4.95,4.85,5.05,5.27,5.17,4.75,4.83,4.83, 5.10,5.23,4.73,5.14,4.71,5.54,4.53,4.96,5.43,4.82, 4.45,5.46,4.89,5.80,5.60,5.31,5.02,5.59,5.70,5.26, 5.79,5.51,5.14,5.01,5.39,5.92,5.54,5.45,5.13,5.41, 5.05,5.41,5.07,5.98,5.75,5.91,5.74,4.88,6.41,5.68, 5.84,6.15,5.33,5.53,4.77,7.00,5.33,6.14,5.52,5.31, 5.69,6.12,5.86,5.75,6.67,5.75,5.97,6.98,6.01,6.18, 0.08,0.26,0.15,0.07,0.24,0.25,0.23,0.29,0.28,0.37, 0.27,0.28,0.26,0.27,0.34,0.23,0.55,0.44,0.46,0.34, 0.51,0.53,0.42,0.41,0.31,0.86,0.39,0.50,0.55,0.50, 0.31,0.85,0.56,0.55,0.74,1.00,0.73,0.83,1.12,0.71, 0.86,0.73,0.70,0.76,0.85,0.72,0.70,1.02,1.01,1.02, 0.90,0.67,0.99,0.86,0.89,1.02,0.94,0.99,0.86,0.93, 0.98,1.11,1.02,1.28,1.42,1.12,1.00,1.04,1.22,1.29, 1.18,1.30,1.30,1.42,1.19,1.10,1.31,1.21,1.45,1.56, 1.25,0.85,1.41,1.27,1.32,1.47,1.42,1.59,1.41,1.42, 1.35,1.61,1.40,1.67,1.38,1.28,1.74,1.50,1.45,1.73, 1.76,1.71,1.91,1.48,1.72,1.56,1.90,1.91,1.87,1.57, 1.59,1.70,2.30,1.88,1.70,1.79,1.87,1.54,1.89,2.01, 2.01,1.96,1.77,2.37,2.03,1.99,1.83,2.74,1.99,2.23, 1.67,2.45,2.04,1.99,2.36,2.11,2.53,2.10,2.37,2.19, 2.23,2.25,2.20,2.42,2.25,2.10,2.53,2.25,1.93,2.31, 2.46,2.43,2.46,2.65,2.45,2.47,2.84,2.92,2.23,2.63, 2.80,2.84,2.67,2.50,2.89,2.49,2.31,2.46,3.10,2.88, 2.88,2.42,2.63,2.80,2.66,2.99,2.82,3.05,2.54,2.50, 2.64,3.24,2.81,3.45,3.15,2.41,3.29,3.30,2.96,3.22, 3.57,2.45,2.93,2.70,2.69,2.58,2.63,2.64,3.21,3.23, 3.14,2.99,3.35,3.21,3.55,3.26,3.18,3.58,3.22,3.33, 3.06,3.56,2.80,3.26,3.28,3.00,3.10,3.09,2.82,3.24, 3.36,3.58,3.43,3.20,3.33,3.38,2.96,3.36,3.65,3.92, 3.83,3.29,3.20,3.94,3.23,3.79,3.85,3.59,3.56,3.42, 3.67,3.58,3.15,2.97,3.67,4.21,3.48,3.57,3.76,3.67, 4.03,4.25,3.54,3.90,3.92,3.93,3.70,4.38,3.55,3.59, 3.93,4.35,4.40,3.96,4.01,3.96,4.27,4.14,4.62,4.33, 3.79,4.60,4.46,4.64,4.09,4.03,4.00,4.03,4.32,3.81, 3.79,5.24,4.54,4.54,4.55,5.16,4.36,4.52,4.56,4.86, 12.66,12.60,15.05,16.12,16.93,18.42,19.91,20.27,22.91,23.27, 24.41,24.51,26.55,27.43,28.89,30.10,31.68,31.70,33.63,34.05, 36.12,37.54,37.68,38.35,40.84,41.27,43.08,44.17,44.99,46.22, 48.31,48.26,50.63,52.54,51.60,53.29,55.29,56.44,57.06,57.19, 59.66,59.99,60.65,62.78,64.10,64.24,66.51,66.06,68.70,69.98, 70.83,73.39,73.23,73.70,75.72,75.75,78.04,78.13,79.39,81.38, 82.58,84.77,86.62,87.01,86.46,88.79,88.76,92.59,91.51,95.50, 95.78,97.17,97.95,97.92,100.31,99.19,101.47,102.38,106.14,106.60, 105.70,107.68,109.86,110.00,111.16,112.45,111.74,114.72,115.56,116.16, 119.07,119.80,118.64,121.48,124.67,123.20,125.66,127.25,125.61,130.14, 130.79,131.90,131.21,134.22,135.34,136.03,138.04,138.65,140.50,137.45, 142.00,141.97,143.81,144.41,147.26,147.89,148.33,150.36,150.66,151.57, 153.07,154.63,156.00,157.75,156.54,158.65,161.40,162.39,161.89,164.71, 163.42,166.76,168.91,171.51,170.51,171.35,172.08,175.16,174.02,174.30, 176.56,177.53,179.92,181.86,182.27,184.10,183.38,184.33,186.75,188.90, 190.93,189.34,190.31,192.33,196.45,193.92,196.05,199.82,199.88,198.40, 200.05,203.20,203.12,206.19,205.92,204.96,209.08,206.85,210.15,213.28, 213.84,213.88,213.41,219.24,217.03,219.67,220.64,222.73,224.84,221.06, 226.56,225.74,228.74,227.35,228.63,229.98,229.97,232.34,234.19,233.11, 234.47,236.88,238.61,241.94,242.50,240.34,244.70,242.77,244.37,247.52, 247.18,248.01,248.29,256.28,252.00,253.60,256.64,255.42,257.36,256.98, 257.95,259.26,261.84,264.93,266.55,267.42,266.74,268.45,268.81,268.69, 271.38,273.90,275.86,273.22,276.32,276.26,278.73,282.11,280.34,284.55, 283.27,284.51,283.07,285.40,288.01,289.02,294.00,290.28,293.95,294.51, 297.33,297.31,299.12,297.82,302.82,302.15,304.19,304.00,305.26,306.22, 304.31,308.67,308.55,311.44,311.84,313.44,312.81,314.71,316.12,316.13, 320.09,316.24,320.82,322.36,322.85,323.68,327.52,330.04,328.91,331.20, 329.78,330.07,335.90,333.54,336.88,335.59,336.09,337.69,334.21,340.63, 342.86,343.66,344.60,345.38,345.82,347.28,348.40,350.72,353.23,353.37, 9.03,10.62,10.99,11.62,13.32,13.78,14.86,15.11,17.18,16.98, 18.20,18.26,20.20,21.53,21.89,23.64,23.55,24.64,26.12,26.54, 27.66,28.46,28.52,30.21,30.98,32.65,32.04,33.85,34.38,35.57, 36.96,37.55,38.80,39.81,40.34,41.78,42.28,42.38,43.99,44.80, 44.52,46.17,46.45,46.64,48.53,49.36,50.49,50.30,52.92,52.89, 55.21,55.18,56.23,56.33,56.64,60.19,60.08,62.55,62.67,61.42, 65.88,65.24,66.53,66.28,66.38,67.65,69.98,69.96,70.83,71.61, 73.67,72.89,74.42,76.70,77.52,76.02,77.70,80.46,81.31,80.72, 81.80,82.72,83.94,83.81,87.32,86.78,89.53,87.25,90.59,90.43, 90.58,91.97,91.51,92.95,94.11,94.78,96.62,96.71,98.61,99.15, 99.29,102.77,100.73,103.25,103.21,104.74,104.58,107.24,107.16,106.91, 107.96,109.54,111.02,110.17,111.75,111.86,111.19,114.22,115.77,116.85, 117.96,119.29,121.11,118.67,122.27,122.61,123.83,123.47,124.49,127.22, 126.93,126.13,129.59,128.24,130.38,130.87,131.98,135.24,135.37,134.83, 136.07,136.84,138.28,139.11,141.04,143.23,141.46,141.79,142.50,142.53, 143.87,146.32,147.14,148.58,148.07,149.53,152.11,152.71,151.58,153.96, 152.41,156.43,155.55,158.45,157.26,156.47,156.59,160.82,162.21,162.09, 163.04,164.59,165.41,164.22,167.13,166.92,170.25,170.95,169.87,171.19, 171.91,174.89,173.41,175.09,175.39,175.84,178.20,179.03,176.57,182.22, 179.71,182.91,185.60,182.60,183.63,184.09,187.90,187.24,189.59,188.79, 189.12,188.95,191.69,194.57,193.32,194.89,194.44,197.47,196.56,201.06, 198.18,199.84,204.94,202.55,203.15,202.54,205.43,205.52,208.19,209.80, 206.84,210.82,214.87,208.11,209.24,211.30,216.03,213.17,216.87,216.73, 219.03,218.89,222.28,219.51,220.84,221.71,224.34,228.50,225.86,222.29, 228.14,227.30,227.17,231.28,230.09,229.54,232.20,232.91,234.29,233.54, 234.85,236.56,236.44,239.56,240.08,241.58,241.24,242.06,242.80,246.46, 245.46,244.65,246.42,246.35,248.53,250.40,249.12,248.52,250.07,250.99, 254.24,258.60,255.38,253.80,258.15,256.57,259.90,258.52,263.24,260.96, 263.46,262.16,263.01,267.32,265.84,265.02,272.33,268.21,270.93,268.89, 7.77,7.96,8.77,8.79,10.36,11.06,10.90,12.40,13.16,13.02, 14.50,14.67,15.11,15.95,17.05,18.42,18.61,18.88,19.86,20.64, 20.12,21.22,22.86,23.16,24.63,24.23,25.13,25.45,26.77,27.52, 28.87,28.54,29.54,30.10,29.95,31.12,31.95,32.01,33.66,34.10, 35.05,35.45,36.32,37.20,38.91,36.69,38.37,38.30,41.80,40.44, 41.86,40.58,42.90,43.22,44.20,45.86,45.49,45.95,47.95,48.60, 48.96,49.78,49.98,50.23,52.51,50.76,53.49,51.18,53.87,56.73, 55.95,55.79,57.06,57.23,57.25,59.53,60.05,60.78,60.44,61.46, 62.20,64.51,63.86,63.35,66.40,66.79,67.62,66.58,68.77,66.42, 68.23,70.71,70.55,71.12,70.49,72.64,75.12,73.38,74.71,74.67, 77.21,78.12,77.90,78.32,79.16,80.07,82.34,80.33,82.46,82.69, 83.39,84.57,85.13,85.00,86.15,87.25,87.26,88.12,89.49,89.14, 90.73,90.31,92.21,93.14,92.56,92.91,93.30,93.78,96.98,95.04, 97.88,98.14,98.18,99.68,99.51,102.69,102.55,101.08,102.62,102.37, 106.08,103.16,105.78,106.33,105.67,107.15,108.75,106.98,109.02,109.35, 109.83,112.63,114.12,113.80,112.21,112.84,116.98,116.59,114.77,118.79, 117.45,115.94,117.89,118.61,120.32,120.19,123.77,120.32,126.37,123.79, 124.80,126.68,127.35,126.01,128.68,128.25,129.71,130.18,130.40,131.89, 129.71,132.57,133.40,134.53,135.45,135.71,135.70,135.00,134.80,136.44, 138.75,140.28,137.47,138.70,140.23,140.77,142.34,144.06,146.24,145.00, 145.66,145.42,146.62,146.21,148.22,144.75,150.16,149.47,153.49,148.50, 154.96,152.25,154.93,154.85,153.62,154.31,153.51,157.77,158.54,156.56, 159.75,159.24,160.91,161.80,162.85,162.16,163.71,164.90,163.48,164.61, 165.74,164.90,167.28,169.34,168.12,170.32,170.83,169.88,171.50,171.07, 172.20,173.06,173.48,174.59,175.14,179.50,179.34,178.49,179.31,179.46, 181.87,179.33,179.02,181.27,184.83,182.45,183.58,184.14,185.67,185.53, 187.87,185.52,187.46,189.20,190.31,187.82,191.91,193.07,193.92,191.98, 194.71,194.66,194.00,197.47,196.81,194.26,196.63,198.05,197.19,199.07, 199.11,200.86,202.49,202.55,203.81,205.12,204.26,201.53,203.91,204.79, 5.37,6.21,6.44,6.63,7.60,8.40,9.05,8.98,9.42,10.02, 10.67,11.45,11.77,12.46,12.37,12.91,14.13,14.05,14.76,16.04, 16.56,16.20,17.16,17.13,18.01,19.04,19.38,19.60,19.39,20.43, 21.12,21.79,22.23,22.13,23.34,24.33,24.61,24.16,24.52,26.10, 26.96,27.58,26.60,27.83,28.47,29.25,29.35,30.68,31.42,32.29, 30.92,31.89,32.29,33.10,33.88,34.41,33.74,35.70,35.14,35.64, 37.21,37.21,38.02,37.50,38.99,38.85,39.19,38.88,40.74,41.94, 41.13,42.93,41.88,44.62,44.86,45.14,45.95,44.59,47.27,47.35, 46.62,48.24,47.73,48.80,48.79,51.01,50.20,50.05,50.81,52.34, 50.64,53.01,53.03,54.34,55.28,54.90,55.79,57.38,56.55,56.69, 58.45,59.75,58.15,58.27,61.49,59.78,60.69,62.21,62.19,63.09, 62.76,61.92,65.49,64.53,66.22,65.38,65.01,66.07,66.89,69.20, 68.53,69.51,72.12,68.68,69.83,70.83,70.41,73.66,73.08,75.53, 74.85,73.16,74.46,73.41,76.58,76.47,74.76,77.74,75.78,77.21, 78.27,79.71,78.91,81.40,78.43,81.32,83.91,79.77,83.61,83.91, 84.09,85.19,82.32,84.22,84.82,88.09,87.43,87.83,87.26,89.03, 89.96,88.87,91.84,90.03,91.68,93.02,92.56,92.30,92.67,91.23, 96.28,93.89,96.58,98.17,96.82,97.40,98.96,99.28,99.43,100.70, 98.92,99.09,102.07,100.46,100.44,103.56,99.81,101.24,104.36,103.77, 105.25,104.83,104.50,106.32,106.19,107.85,109.27,108.02,109.87,108.82, 111.56,110.83,114.88,108.81,114.19,112.26,113.18,112.69,113.55,114.35, 114.19,118.29,119.16,118.94,113.81,116.80,117.50,118.43,119.90,119.78, 122.39,122.79,122.67,124.51,122.70,124.13,121.97,124.51,123.28,126.61, 126.62,124.33,127.31,128.87,129.47,128.72,131.38,131.58,128.45,130.73, 131.37,133.81,133.51,130.76,132.67,134.96,132.48,135.91,133.75,133.51, 132.43,133.78,135.41,136.18,137.85,140.01,142.55,139.48,139.22,139.77, 140.74,139.92,143.34,143.70,145.31,143.17,146.40,145.24,147.97,146.94, 148.62,145.86,149.12,149.83,150.41,148.28,151.85,148.69,152.07,151.28, 150.30,154.08,153.86,154.01,151.68,154.19,158.13,156.00,155.28,158.64, 3.71,3.83,4.76,5.22,6.22,5.80,6.49,7.48,6.95,8.57, 8.02,8.20,9.37,9.04,9.36,10.21,10.86,10.89,11.48,11.46, 11.86,12.28,13.33,13.24,14.01,13.68,14.67,15.16,15.16,15.13, 16.01,15.79,16.60,17.25,17.78,17.89,18.95,18.41,19.48,18.91, 20.96,20.43,19.57,21.52,21.37,22.71,21.64,22.43,23.67,24.21, 24.20,25.10,25.32,26.25,25.21,26.51,26.48,25.91,27.51,27.73, 27.63,28.50,28.22,28.93,29.47,29.46,31.38,29.60,30.36,31.09, 32.54,33.19,32.64,32.14,32.28,33.14,34.64,34.63,34.23,35.06, 35.71,36.15,36.44,35.83,36.83,38.42,38.77,39.27,39.43,40.30, 41.80,41.13,39.80,41.53,41.90,40.65,42.64,42.82,42.33,42.26, 44.94,43.61,44.54,45.48,45.18,47.22,47.75,46.33,48.08,47.66, 48.07,49.22,48.21,48.68,47.80,48.14,48.85,51.19,50.65,50.50, 52.84,51.24,52.74,52.20,54.84,53.06,54.51,54.88,55.82,54.96, 56.26,54.45,56.17,57.98,56.84,57.39,57.02,58.26,58.31,58.63, 60.39,59.91,59.34,60.76,61.62,62.45,61.07,63.27,62.55,64.31, 62.72,63.86,66.03,65.14,66.19,64.55,66.56,66.47,67.24,67.59, 67.01,66.16,67.74,68.21,67.26,69.25,69.34,69.53,71.33,72.19, 73.93,72.06,74.11,71.61,72.98,72.41,75.86,75.05,74.67,75.32, 73.71,77.59,76.90,77.66,77.59,76.96,77.59,80.94,78.48,79.67, 78.35,80.86,78.56,80.97,84.76,79.21,82.78,83.97,83.39,84.02, 81.46,82.11,84.76,82.96,85.07,84.33,87.45,85.76,84.74,88.11, 87.25,89.24,89.73,88.70,88.07,88.27,89.84,91.72,89.94,94.42, 88.98,93.06,90.47,92.81,93.03,91.69,90.81,95.89,94.77,96.80, 94.94,94.99,97.41,95.83,97.04,96.66,98.21,97.05,98.88,99.98, 100.24,100.05,99.02,98.54,100.50,101.58,102.85,102.42,103.11,101.57, 100.97,103.11,101.83,104.07,103.87,104.22,105.16,106.05,104.89,107.74, 106.67,106.29,107.33,105.86,110.07,108.66,110.81,109.75,111.09,111.02, 110.44,110.24,110.46,110.43,116.74,114.87,112.70,115.97,114.55,115.51, 113.38,118.24,115.56,118.04,113.18,115.98,113.87,120.61,118.18,118.84, 2.79,3.31,3.64,4.07,3.96,4.74,4.42,5.16,5.18,5.82, 5.86,6.19,6.71,6.25,7.54,7.79,8.59,7.97,8.15,8.29, 9.20,10.29,9.63,10.01,10.54,10.89,10.07,10.94,11.82,12.17, 11.05,12.36,13.00,12.69,13.02,14.97,13.66,14.10,13.58,15.06, 14.81,15.88,16.17,16.33,15.79,15.88,17.78,16.87,17.68,17.82, 18.20,18.83,17.79,18.86,19.99,19.37,19.48,19.87,19.57,19.91, 21.59,22.19,21.76,21.48,22.39,22.09,22.12,23.68,22.84,23.51, 24.18,24.10,23.33,24.60,24.42,25.16,25.92,26.12,25.74,25.81, 27.10,27.02,28.47,26.70,28.65,28.85,27.60,29.12,28.46,29.65, 30.49,28.69,30.33,31.03,31.37,31.94,32.92,31.15,30.49,31.77, 33.59,33.42,32.65,34.54,34.91,35.32,34.75,34.80,36.65,34.10, 35.55,37.34,36.95,36.26,36.27,36.87,37.04,38.74,37.45,38.17, 38.31,39.01,40.35,40.20,40.13,40.35,40.74,41.96,41.29,41.71, 40.88,42.50,42.20,42.12,43.38,43.81,44.53,43.56,44.90,45.63, 45.21,44.56,44.77,45.95,45.67,46.01,48.27,45.88,47.73,47.87, 46.81,47.67,48.37,49.75,48.69,49.08,50.43,48.75,49.35,51.54, 50.77,51.27,50.58,51.56,51.70,52.61,53.36,52.54,52.65,53.77, 52.63,54.00,56.31,53.84,56.01,55.73,56.52,54.30,58.17,57.95, 56.85,56.45,57.78,58.70,58.73,58.59,60.14,58.07,58.85,58.33, 60.24,61.65,60.00,61.18,60.52,61.29,62.12,62.60,62.24,62.67, 62.28,63.63,64.10,63.80,63.51,64.24,65.37,65.84,66.28,65.95, 66.08,65.45,67.40,68.04,65.17,67.25,67.99,68.47,68.40,68.51, 68.17,68.64,70.14,70.32,70.01,71.53,72.02,72.09,72.68,70.14, 72.59,72.38,72.80,73.34,71.86,72.15,73.13,72.73,75.46,77.55, 76.01,77.12,75.34,76.30,77.08,75.93,76.41,76.67,74.94,77.17, 77.53,77.71,77.84,76.64,78.07,79.06,77.59,80.82,80.67,80.89, 79.42,80.44,80.05,81.75,81.83,83.00,82.31,83.79,81.94,85.86, 83.51,83.85,83.29,83.23,85.09,85.39,85.34,85.97,85.46,85.40, 86.70,86.89,86.36,87.05,89.29,87.82,87.58,86.48,90.14,88.32, 2.20,2.36,2.69,2.91,3.24,3.30,3.46,3.84,4.33,4.24, 4.31,4.72,5.02,5.13,5.49,5.79,5.68,6.68,6.63,6.12, 7.03,6.73,7.41,7.84,7.22,8.40,8.15,8.72,8.48,9.07, 8.96,9.50,10.36,9.87,9.76,10.67,10.03,10.41,10.75,10.52, 10.84,11.76,12.12,12.34,11.99,13.17,12.76,12.72,13.43,12.72, 14.20,14.06,13.11,13.65,14.56,13.79,15.70,15.36,15.52,15.53, 14.94,15.26,16.22,15.62,16.18,18.10,17.69,18.13,17.38,18.77, 18.41,18.58,19.27,19.75,19.67,18.83,18.78,19.62,19.55,20.37, 20.19,20.82,21.67,21.00,21.71,21.41,21.86,22.36,22.70,22.70, 21.85,22.36,22.23,22.36,24.05,24.16,24.69,24.77,24.12,24.71, 24.49,24.72,25.74,26.25,26.83,26.01,25.61,25.36,26.55,25.23, 25.87,27.41,27.33,28.54,27.42,28.18,29.33,30.40,28.65,28.36, 28.28,29.96,30.18,30.19,30.04,29.70,31.03,30.08,31.34,31.29, 32.15,31.02,31.95,31.94,31.32,31.61,34.10,32.70,32.49,33.53, 33.84,33.47,33.65,34.88,34.21,33.40,34.53,33.81,37.07,37.00, 36.38,35.65,36.70,36.26,37.89,37.17,37.38,38.05,35.81,37.64, 37.59,39.24,38.08,39.09,38.70,40.53,40.69,40.35,40.03,41.01, 42.00,40.49,42.02,41.62,39.95,41.73,42.50,42.27,41.55,42.37, 41.94,43.75,42.78,43.69,43.93,44.28,44.64,44.71,43.26,44.58, 44.94,45.80,46.00,45.71,45.37,45.36,44.81,46.28,45.92,44.96, 47.61,49.09,47.29,47.24,46.93,48.25,48.57,48.83,49.23,48.39, 49.31,49.34,50.19,52.69,51.03,49.49,52.46,51.39,49.49,52.25, 53.14,53.80,51.90,52.52,50.61,53.11,52.96,54.06,52.77,54.13, 54.53,52.92,53.87,55.46,55.18,54.42,55.53,54.92,56.26,56.34, 57.26,56.97,57.53,56.63,55.54,56.58,56.91,57.66,58.34,57.60, 57.27,59.52,58.62,60.25,59.61,59.63,57.38,60.24,60.24,59.71, 59.71,62.30,60.67,61.26,62.73,61.02,63.11,61.14,62.66,62.39, 64.59,63.73,64.21,62.85,62.42,63.86,62.26,64.05,67.22,63.38, 66.00,65.30,67.27,65.90,65.14,65.71,66.64,65.50,65.53,68.88, 1.27,1.37,2.03,1.95,2.83,2.96,2.54,2.83,3.14,2.80, 3.69,3.59,4.13,3.98,3.94,4.09,4.32,4.52,4.46,5.09, 6.44,4.98,5.08,5.67,5.58,6.51,6.14,5.64,6.19,6.40, 7.20,7.07,6.68,6.92,7.15,6.85,6.80,7.99,8.40,7.75, 8.29,8.39,8.43,9.02,9.29,9.62,8.96,9.70,9.87,10.26, 10.78,9.51,10.59,10.83,10.95,11.17,10.98,10.77,11.36,11.77, 11.87,11.76,12.64,13.07,12.28,12.22,12.63,12.28,13.28,13.02, 13.03,13.03,13.92,13.11,14.65,13.93,14.79,15.07,15.02,14.99, 15.11,15.83,15.46,16.93,15.38,15.54,15.79,16.25,16.43,17.12, 16.42,15.26,17.52,16.64,16.98,17.31,18.46,18.08,17.48,19.19, 18.75,18.21,18.85,19.71,18.50,19.97,20.06,19.95,20.46,20.27, 20.00,21.28,20.96,19.40,20.63,20.48,21.16,20.40,20.90,21.17, 21.81,22.68,22.12,21.99,23.73,22.39,22.83,22.85,22.27,23.72, 24.01,22.69,24.09,24.29,24.13,24.67,22.71,25.01,24.54,24.43, 25.87,24.44,25.25,25.14,27.24,26.02,26.80,26.15,27.26,26.24, 26.80,27.63,27.23,28.29,27.86,27.52,28.49,28.76,28.28,28.63, 28.73,28.96,30.05,30.23,29.54,29.61,28.61,30.27,29.89,30.56, 30.72,31.12,30.47,31.32,30.21,30.75,30.69,30.05,31.42,30.71, 32.41,32.59,32.26,32.46,31.98,32.66,32.64,33.05,32.36,32.83, 32.99,32.76,33.11,35.36,34.02,33.87,35.32,34.16,34.33,34.18, 35.09,35.72,33.15,36.46,36.84,35.27,36.12,36.49,37.31,34.22, 37.56,36.35,36.16,37.37,38.87,39.13,37.31,37.78,38.30,38.28, 38.18,38.77,39.28,41.12,40.29,38.94,38.68,39.28,40.87,40.33, 40.47,40.95,40.38,40.44,41.77,41.14,41.48,42.57,40.66,41.41, 42.16,42.06,42.02,42.75,42.47,42.47,44.23,43.49,40.40,44.22, 43.56,43.34,43.25,43.44,45.85,44.73,46.78,44.02,43.97,46.21, 45.49,45.02,44.76,45.87,45.93,44.70,46.56,45.86,47.17,46.98, 46.51,46.44,48.02,46.45,48.60,47.40,47.12,48.87,49.03,49.78, 48.91,49.47,47.52,50.03,48.55,49.19,51.07,49.31,48.13,49.89, 1.48,1.21,1.69,1.65,2.00,2.12,2.01,2.35,1.96,2.27, 2.85,2.40,2.54,2.65,3.06,3.18,3.23,3.41,3.45,4.01, 3.56,4.12,4.60,4.19,4.23,4.85,4.55,4.64,4.30,5.15, 4.67,5.32,4.75,5.01,6.05,5.81,5.96,5.44,6.09,6.09, 6.90,6.23,5.87,6.89,6.79,6.68,7.68,8.07,7.87,7.07, 7.07,7.38,8.13,8.17,8.12,7.89,8.44,9.04,8.21,8.67, 9.14,8.45,8.59,8.96,9.49,10.14,9.65,10.62,9.71,11.11, 10.47,9.66,11.13,10.55,11.02,10.59,11.07,10.62,12.08,10.53, 11.16,10.85,11.39,10.90,11.63,12.62,12.76,12.31,13.01,12.09, 11.70,12.85,12.87,12.55,12.41,12.65,12.89,13.32,13.85,14.59, 13.84,12.96,13.87,13.09,13.76,14.67,13.63,14.32,15.10,13.58, 15.17,15.15,14.85,16.52,14.91,15.45,15.82,16.09,16.38,15.15, 16.69,16.70,15.80,16.61,17.41,16.53,17.16,17.95,16.85,16.83, 15.77,17.05,17.94,19.02,18.70,18.17,18.33,18.76,18.14,18.89, 19.15,17.95,20.47,19.57,20.03,19.20,19.78,19.61,20.03,19.40, 18.98,19.05,19.12,18.81,20.38,20.56,20.47,20.84,20.99,20.58, 21.16,20.67,20.35,21.47,21.12,20.83,21.75,22.12,23.07,23.91, 23.49,22.74,21.61,22.09,22.34,22.09,22.46,23.84,23.48,23.40, 24.68,24.20,24.94,23.61,24.46,24.26,26.46,25.38,25.22,24.34, 23.25,25.47,24.74,25.93,24.11,27.81,26.43,25.74,25.77,26.17, 25.53,27.56,26.61,27.33,27.86,27.46,26.81,27.47,29.00,28.17, 27.20,28.47,27.21,28.79,28.27,27.52,28.13,29.39,29.40,28.75, 27.72,28.62,29.00,29.42,29.45,29.50,29.78,29.62,29.22,31.12, 28.59,29.58,30.57,30.73,30.33,32.28,30.79,31.50,29.99,31.78, 31.49,32.89,31.55,32.41,30.08,32.02,31.44,31.81,32.53,32.04, 33.64,32.93,31.60,31.51,34.85,33.05,32.43,33.67,34.23,33.46, 34.13,34.63,34.93,34.79,35.23,33.35,35.72,35.49,35.11,36.04, 34.97,35.70,33.77,35.86,35.88,35.24,35.57,37.29,35.60,36.66, 35.48,35.05,35.57,38.31,36.37,36.40,37.44,37.49,36.66,37.66, 1.00,0.76,1.19,1.28,1.68,1.53,1.49,1.69,1.97,1.90, 1.91,2.00,1.81,2.07,2.16,2.74,2.33,2.59,2.66,2.62, 2.48,3.03,3.27,3.29,2.90,2.62,3.12,3.64,3.31,3.85, 3.60,4.37,3.75,3.91,4.15,4.29,4.59,4.25,4.72,4.65, 4.55,4.89,4.85,4.90,4.92,5.33,5.55,5.59,5.31,5.53, 5.57,6.39,6.03,5.89,6.22,6.07,6.19,6.96,7.10,6.26, 6.24,6.88,6.98,6.65,7.19,7.48,6.76,7.69,6.79,7.40, 7.19,7.42,7.95,7.34,8.49,7.78,8.23,8.43,8.64,8.27, 7.60,8.40,8.96,8.29,9.07,9.35,7.92,8.79,9.67,8.92, 9.40,9.32,10.02,9.43,8.71,10.24,9.53,9.02,10.10,10.42, 10.81,10.97,10.17,10.42,10.48,10.93,10.91,11.37,10.66,12.31, 11.00,11.90,11.55,10.83,11.03,10.66,11.12,11.32,12.35,12.24, 11.38,11.38,11.35,11.72,11.86,13.42,12.22,13.12,13.02,13.62, 12.71,13.40,13.46,13.60,13.68,13.73,13.95,13.51,14.03,14.44, 13.28,14.37,15.30,13.47,13.99,13.64,15.19,14.50,15.27,15.41, 13.71,14.44,15.12,14.68,15.67,14.72,15.30,15.47,16.64,16.64, 16.16,16.64,16.05,15.76,16.39,15.54,17.43,15.77,16.14,17.23, 17.21,17.48,16.41,17.97,17.18,17.19,17.29,17.93,17.21,18.75, 17.58,17.20,18.80,19.13,17.91,19.17,18.48,18.62,18.31,18.80, 18.49,18.48,18.92,19.57,18.50,19.23,18.90,19.43,19.44,19.71, 19.31,19.85,19.98,21.17,19.57,18.98,20.29,20.94,20.87,20.36, 21.19,20.35,21.39,20.73,21.81,21.31,20.94,21.42,21.79,21.29, 21.98,22.68,20.78,22.12,21.61,21.71,21.92,22.04,21.75,22.70, 22.49,23.47,23.59,22.69,22.96,23.23,22.27,23.13,23.38,24.09, 22.87,23.00,23.62,24.03,24.55,24.35,24.43,23.96,23.39,23.99, 25.08,24.25,24.64,24.69,25.13,24.13,25.17,25.03,25.74,24.38, 25.73,26.04,24.61,25.14,24.82,25.34,24.91,25.02,26.28,25.75, 25.50,25.83,25.78,25.54,26.63,25.57,27.00,26.83,27.57,25.47, 27.83,28.33,27.28,28.02,27.63,28.40,27.44,28.28,28.86,28.16, 0.92,0.83,1.13,0.79,1.26,1.14,1.32,1.05,1.51,1.41, 1.73,1.64,1.38,1.71,1.58,1.60,1.74,1.89,2.18,2.40, 2.03,2.29,2.39,2.03,2.16,2.23,2.57,2.90,2.90,2.57, 2.67,2.90,2.93,2.74,2.97,3.38,3.38,3.36,3.66,3.96, 3.86,3.71,3.19,3.71,4.25,4.19,3.82,4.08,4.46,4.23, 3.92,4.66,4.28,4.70,4.60,4.57,4.70,4.98,4.61,5.41, 5.20,4.71,5.21,4.93,4.72,5.07,5.65,6.27,5.83,5.37, 5.65,5.28,6.21,6.33,6.09,6.16,5.64,6.33,5.50,6.08, 6.17,6.08,6.06,6.48,6.25,6.85,6.63,6.94,6.88,6.84, 6.61,7.08,7.55,7.01,6.76,7.42,7.04,7.09,7.75,7.39, 8.25,7.69,6.90,8.65,8.12,8.25,8.41,7.88,7.53,8.42, 7.45,8.67,7.62,8.56,8.94,9.36,8.41,8.64,8.38,8.88, 8.83,9.26,8.79,9.11,9.59,9.30,9.23,10.72,9.61,9.97, 10.17,9.22,9.78,9.74,10.84,9.95,10.47,10.84,10.22,10.60, 10.26,10.70,10.61,10.59,11.51,11.84,10.23,11.45,11.14,11.63, 11.75,11.03,10.86,11.11,11.39,11.89,11.33,11.33,12.56,11.34, 11.23,12.10,11.84,10.99,10.39,12.04,12.10,12.37,11.38,11.65, 11.90,13.13,13.11,13.15,13.27,12.35,12.93,13.14,13.81,12.66, 13.76,13.19,13.19,13.25,12.96,13.81,13.82,13.55,13.27,12.77, 13.86,13.74,13.54,14.05,13.77,13.41,13.72,14.37,14.70,14.28, 14.65,16.10,15.26,14.24,14.94,15.24,14.33,16.17,15.60,14.68, 15.06,15.56,16.01,16.32,14.95,15.19,15.38,15.27,16.33,16.48, 15.42,15.69,16.17,16.02,15.70,16.27,15.29,16.37,16.66,16.57, 17.26,16.66,16.68,17.40,15.67,17.04,16.64,16.52,17.72,17.91, 17.05,17.36,16.55,18.22,17.69,16.90,17.19,18.32,17.41,18.11, 18.35,18.29,17.19,18.77,19.10,19.79,19.66,17.98,19.21,18.61, 19.16,19.00,18.35,17.21,18.21,18.46,19.94,19.26,18.91,19.20, 19.11,19.65,19.12,19.23,18.48,21.23,19.32,20.73,21.79,19.10, 19.63,19.91,21.02,19.73,20.63,19.64,20.39,20.39,20.02,21.95, 0.56,0.63,0.65,0.65,0.99,0.85,0.98,1.01,0.91,0.88, 1.12,1.11,1.03,1.22,1.21,1.32,1.02,1.34,1.32,1.53, 1.34,1.48,1.62,1.83,1.52,1.78,1.73,1.95,1.86,1.95, 2.35,2.09,2.46,2.18,2.27,2.27,2.62,2.44,2.59,2.63, 2.80,2.44,2.60,2.65,3.06,2.74,2.74,2.83,2.58,2.67, 2.90,3.34,3.42,3.11,3.35,3.57,3.39,3.42,3.79,3.61, 3.44,3.72,3.07,4.23,3.54,3.80,4.47,3.71,4.55,3.89, 3.90,3.78,4.40,4.47,4.78,4.40,4.18,3.74,4.23,4.50, 4.64,5.05,4.90,4.68,5.08,4.86,5.22,5.43,5.03,5.38, 4.99,5.02,5.63,5.34,5.72,5.32,5.62,5.80,5.13,6.29, 5.51,6.07,5.92,6.12,5.85,5.71,6.60,6.42,6.21,6.04, 5.91,6.55,6.29,5.86,5.90,6.26,6.74,6.59,6.28,7.00, 6.47,6.65,6.93,7.29,6.21,6.16,7.16,6.66,8.08,7.22, 7.15,6.80,7.82,7.28,7.61,7.11,7.80,8.15,7.67,7.89, 7.45,7.27,7.23,8.26,7.85,7.55,7.03,8.16,8.98,8.04, 8.61,7.96,8.42,7.56,7.98,9.05,8.77,8.72,8.61,9.06, 9.16,8.92,9.74,8.14,8.85,8.75,8.85,10.07,9.97,9.14, 9.45,9.72,9.20,9.68,8.71,9.97,9.36,9.50,10.36,9.20, 9.68,9.99,10.05,9.50,9.79,10.35,9.22,9.26,9.94,10.15, 9.66,10.14,11.45,11.10,10.32,10.22,9.95,10.56,10.80,10.59, 10.78,11.27,10.87,10.29,12.16,10.89,10.40,10.67,11.11,11.84, 11.38,11.59,10.40,11.65,12.96,12.12,11.74,11.78,12.47,11.68, 12.19,12.84,12.30,11.80,12.22,12.23,12.14,12.71,13.22,12.15, 12.45,12.34,12.87,12.04,11.67,13.22,12.97,13.05,12.99,13.21, 13.62,13.12,13.72,13.13,13.32,13.08,13.29,12.69,12.46,13.25, 13.07,12.60,14.14,13.87,13.53,13.26,14.60,14.04,12.97,13.42, 13.72,13.93,14.45,14.02,13.47,14.52,15.15,14.12,13.02,15.31, 14.80,14.64,14.82,13.33,15.16,13.65,14.54,14.92,15.36,14.04, 14.12,14.86,13.63,15.32,14.87,15.70,15.74,15.39,15.13,16.26, 0.32,0.67,0.61,0.65,0.66,0.58,0.62,0.65,0.78,0.76, 0.77,0.93,0.61,0.84,0.92,0.83,0.96,1.23,1.02,1.05, 1.25,1.12,1.35,1.01,1.31,1.59,1.33,1.43,1.45,1.87, 1.58,1.46,1.96,1.72,1.97,1.24,2.14,1.56,2.05,1.63, 1.55,2.26,2.13,2.04,2.41,2.06,2.32,1.82,2.01,1.98, 2.57,2.67,1.95,2.31,2.35,2.60,2.62,2.75,2.54,3.02, 2.34,2.55,3.33,2.93,2.73,2.63,2.73,3.31,2.84,3.34, 3.47,2.97,2.89,3.22,3.06,3.30,3.42,2.85,3.34,3.54, 3.68,3.86,3.12,3.88,3.72,3.32,3.51,3.94,4.57,3.87, 4.07,3.50,3.48,3.84,4.31,3.56,4.06,3.44,4.47,3.70, 4.12,4.14,3.88,4.14,4.51,4.55,4.56,3.75,3.91,4.72, 4.57,4.57,4.54,4.20,4.56,4.93,5.36,4.43,4.94,4.54, 5.21,5.37,4.79,5.00,5.24,4.82,5.37,5.13,5.45,5.01, 5.00,5.36,4.99,4.70,5.16,5.40,5.76,4.78,5.43,6.09, 5.50,5.64,5.46,5.64,6.14,5.53,6.19,6.00,5.77,6.53, 6.06,6.07,6.58,5.56,6.62,5.85,7.09,6.11,6.25,6.18, 6.25,7.07,6.52,6.70,7.06,7.02,7.29,7.38,7.05,6.72, 7.48,6.61,6.97,6.67,7.16,6.62,6.92,6.83,7.26,6.75, 6.55,7.45,7.32,7.92,7.30,7.49,7.00,8.31,7.45,7.70, 7.68,7.91,7.90,6.68,7.93,7.15,8.97,8.66,7.62,7.67, 7.98,8.79,7.80,8.61,7.64,6.88,8.22,7.25,7.86,7.72, 9.05,8.53,8.15,7.80,9.03,8.77,8.98,8.87,8.66,8.55, 9.19,8.25,9.15,9.02,8.96,9.48,8.01,9.57,8.78,9.43, 8.56,9.05,9.18,9.29,9.46,9.36,9.69,9.12,10.20,9.49, 9.22,9.12,9.72,9.48,10.01,9.12,9.98,10.12,10.30,9.10, 9.23,9.30,10.99,9.44,10.35,9.95,10.92,9.49,9.37,9.72, 11.07,9.68,9.66,11.06,9.39,10.69,10.38,10.86,10.87,11.10, 9.87,11.65,10.04,11.01,10.92,11.82,10.68,11.08,10.96,10.83, 11.33,11.13,10.92,11.62,10.89,11.30,10.89,11.32,10.23,12.04, 0.36,0.29,0.37,0.45,0.30,0.56,0.37,0.37,0.38,0.42, 0.50,0.68,0.60,0.60,0.46,0.60,0.61,0.87,0.78,0.79, 1.03,0.85,0.81,1.32,1.00,0.78,1.15,0.93,0.96,1.30, 1.17,1.14,1.30,1.30,1.13,1.17,1.37,1.42,1.10,1.49, 1.27,1.50,1.34,1.22,1.63,1.32,1.68,1.56,1.20,1.75, 1.58,2.38,1.78,1.75,1.78,1.57,2.08,1.83,1.99,1.65, 2.07,2.08,2.18,2.15,2.14,2.30,2.24,2.15,2.25,2.50, 2.30,2.08,2.55,2.13,2.22,2.53,2.14,2.68,2.74,2.52, 2.52,2.67,2.62,2.25,2.96,2.49,2.83,2.54,2.50,2.99, 2.67,2.91,2.59,2.73,3.15,3.06,3.09,2.67,2.94,2.76, 3.21,2.89,3.34,3.62,3.14,3.23,3.14,2.98,2.50,2.93, 3.17,3.48,3.51,3.35,3.42,3.70,3.60,3.52,3.63,3.87, 3.50,3.52,4.27,3.70,4.36,4.05,4.41,3.35,4.19,4.21, 3.93,4.05,3.46,4.14,3.81,3.68,3.87,3.87,4.34,4.23, 4.43,4.37,4.08,4.12,4.57,4.04,4.56,4.49,4.70,4.07, 4.39,4.45,4.33,4.30,4.42,4.66,4.34,4.76,5.15,4.71, 4.94,5.47,4.93,5.04,5.01,5.18,4.98,5.28,5.05,5.13, 4.45,5.24,5.03,5.76,5.50,4.79,5.67,4.99,5.53,5.96, 5.37,4.92,4.78,5.80,4.84,5.73,5.33,6.21,5.14,6.14, 5.15,5.28,5.94,6.01,5.33,5.85,5.84,5.51,5.71,5.90, 6.23,5.22,5.60,6.27,6.25,6.64,5.71,6.30,5.87,6.13, 5.92,6.80,6.18,6.55,6.30,5.91,6.18,6.63,7.25,5.79, 5.80,6.13,6.29,6.47,7.03,6.06,6.46,5.66,6.66,5.63, 6.92,6.13,7.05,6.79,6.59,7.05,8.35,6.63,6.87,6.29, 7.07,6.64,6.79,7.25,6.73,7.07,7.26,7.12,6.99,7.94, 7.23,5.89,6.72,7.86,7.79,7.72,7.94,6.61,8.42,7.85, 7.60,8.23,7.24,7.75,7.59,7.36,7.22,8.74,7.03,8.02, 8.05,8.07,7.33,8.26,8.39,8.39,7.61,8.01,7.70,7.79, 8.07,8.06,7.45,8.21,8.53,8.02,8.35,7.97,8.31,8.95, 0.15,0.23,0.33,0.27,0.23,0.35,0.52,0.38,0.31,0.55, 0.41,0.38,0.31,0.28,0.45,0.39,0.49,0.67,0.65,0.64, 0.73,0.49,0.42,0.59,0.95,0.93,0.58,0.82,0.76,0.91, 0.82,0.60,0.69,0.88,0.88,0.90,0.93,1.11,1.13,1.18, 1.01,0.90,1.17,1.15,1.25,0.93,1.26,1.07,1.36,1.41, 1.28,1.05,1.20,1.37,1.57,1.17,1.40,1.19,1.56,1.15, 1.39,1.28,1.47,1.81,1.72,1.79,1.52,1.54,1.28,1.43, 1.77,1.84,1.72,1.88,1.98,1.63,1.55,1.73,1.72,2.10, 1.74,1.56,1.96,1.76,2.09,1.83,1.72,1.78,2.15,1.74, 2.22,1.86,2.07,2.33,2.37,2.42,2.22,2.09,2.27,2.32, 2.27,2.81,2.42,2.25,2.23,2.39,2.11,2.58,2.54,2.36, 2.75,2.24,2.75,2.89,2.83,2.81,2.33,2.17,2.53,2.48, 2.73,2.14,2.64,2.52,2.75,2.48,2.83,3.24,2.66,3.07, 3.37,2.25,3.44,3.31,3.25,3.77,3.09,3.31,2.56,3.08, 3.37,3.38,2.78,3.74,3.34,3.22,2.68,3.72,3.63,3.42, 3.42,3.75,3.22,3.44,2.82,3.48,3.31,3.50,2.85,3.47, 3.15,3.42,3.32,3.68,3.39,3.89,3.46,3.52,4.14,3.39, 3.66,3.96,3.51,4.80,3.66,3.75,3.75,3.89,4.25,4.09, 3.86,4.22,4.44,4.27,3.41,3.79,4.15,4.35,4.01,4.21, 3.80,4.26,4.41,4.20,4.52,4.67,4.49,4.91,3.99,4.44, 5.10,4.54,4.39,4.36,4.43,4.16,5.02,4.71,4.42,4.64, 5.02,4.27,3.77,4.32,5.19,4.80,4.72,4.69,4.15,5.18, 5.38,4.69,5.15,4.94,5.24,5.49,5.00,4.68,4.52,5.10, 4.97,4.83,5.17,5.17,5.19,4.89,5.22,4.92,5.09,5.45, 5.16,5.40,5.44,4.91,5.28,5.56,4.98,5.63,5.72,5.68, 4.70,5.16,5.58,5.30,5.46,5.41,5.68,4.90,5.93,4.65, 6.54,5.31,5.72,5.87,6.53,5.67,5.91,6.07,5.76,5.49, 5.77,5.55,6.59,6.32,6.21,5.67,6.57,5.91,6.85,5.44, 6.04,6.02,6.35,6.20,5.73,5.67,6.60,6.97,6.25,6.46, 14.21,15.47,15.20,19.26,19.63,20.26,21.60,22.75,24.64,26.20, 25.89,28.62,30.96,31.32,33.27,34.13,34.80,36.95,38.31,39.29, 40.06,41.68,43.59,46.55,46.07,47.63,47.44,51.17,52.69,53.38, 55.15,55.95,57.65,57.68,59.38,61.03,61.14,63.90,64.01,66.52, 66.78,70.09,70.98,72.37,73.52,77.56,75.86,77.69,78.52,76.90, 81.56,83.48,82.98,84.74,86.22,85.81,89.51,89.32,90.74,94.04, 92.95,94.48,95.56,98.49,100.04,99.89,104.22,104.05,106.00,106.76, 106.82,109.34,108.53,112.08,114.71,115.57,116.36,117.59,118.09,119.68, 122.70,122.21,123.39,125.56,126.55,127.14,129.22,130.22,132.45,135.43, 134.59,136.29,139.21,138.35,139.22,140.95,142.54,144.82,144.56,145.20, 147.59,151.01,149.20,152.55,152.43,155.59,157.16,160.07,160.31,157.96, 162.72,164.27,160.96,163.72,168.00,170.14,168.50,172.71,172.54,172.38, 176.78,174.84,179.39,179.16,178.97,183.88,184.32,184.63,185.32,186.14, 189.25,188.49,191.07,194.25,193.28,196.62,196.74,199.79,201.23,201.39, 202.26,201.17,206.85,205.91,207.05,209.89,211.96,211.49,213.69,216.56, 215.12,219.91,218.45,219.55,219.02,221.05,223.70,223.22,225.10,228.25, 230.13,229.84,230.52,230.80,234.20,237.18,234.87,236.88,241.36,241.60, 242.48,244.63,245.64,248.78,248.34,248.98,255.52,253.18,252.24,255.94, 255.60,256.97,259.50,258.38,259.76,263.85,263.97,263.79,266.33,268.14, 270.05,270.02,274.67,274.96,275.32,279.92,279.86,277.53,277.83,282.61, 282.14,284.73,284.57,287.02,286.10,290.04,290.97,291.32,295.96,295.81, 295.43,299.08,300.84,300.79,302.94,302.31,307.01,307.15,307.29,314.15, 309.41,309.71,312.67,312.42,315.43,314.65,319.56,318.39,322.75,321.83, 323.92,323.68,323.96,322.61,329.05,329.97,330.98,331.98,331.71,331.89, 336.04,337.79,337.11,337.15,342.23,340.99,346.18,347.13,346.18,346.87, 348.50,355.98,353.05,356.43,356.12,356.44,359.87,358.11,363.21,360.60, 364.98,366.49,366.26,369.82,365.29,370.76,371.75,375.05,375.66,374.86, 376.45,376.83,381.55,383.00,382.41,380.46,384.25,382.72,389.01,393.08, 390.62,388.84,396.26,394.65,394.92,398.82,398.33,401.45,399.70,404.38, 10.19,11.82,12.91,14.72,15.40,15.74,17.69,19.09,19.01,20.82, 20.71,22.27,23.51,24.41,25.73,25.53,28.13,29.49,28.87,31.39, 31.20,33.21,33.87,35.63,35.66,37.59,39.01,38.51,39.44,40.33, 42.16,42.28,43.97,45.62,45.45,47.39,49.24,47.92,49.84,52.37, 54.34,54.02,55.02,57.33,56.42,59.07,58.98,60.44,59.69,62.15, 65.22,63.64,65.65,67.14,66.98,67.57,69.30,70.91,72.05,72.55, 73.20,74.86,75.30,77.88,77.93,79.19,80.01,81.92,82.62,83.53, 83.30,86.02,84.68,86.85,87.34,88.63,89.65,90.21,90.08,92.68, 94.90,93.29,95.17,96.70,97.83,98.69,100.31,102.44,104.35,104.29, 104.57,106.85,105.32,109.24,108.53,111.98,112.52,112.42,113.75,114.38, 113.91,115.62,115.91,118.21,119.90,121.32,123.23,123.36,123.00,124.78, 125.97,126.48,128.45,128.27,128.17,132.03,129.79,133.84,135.09,135.06, 137.07,137.41,139.54,137.75,140.35,141.54,143.85,143.91,144.03,146.93, 146.71,147.14,147.58,150.03,150.03,152.29,150.01,154.70,156.17,156.97, 155.54,155.85,160.63,160.42,163.35,161.39,162.82,164.91,167.07,165.47, 165.84,167.68,170.57,169.91,171.43,173.06,173.48,174.85,174.85,175.38, 179.88,177.57,180.88,182.26,182.65,184.24,185.24,190.66,184.00,187.75, 187.88,189.35,190.40,193.50,193.64,194.22,199.10,196.41,195.39,196.41, 198.85,202.67,202.75,200.14,203.10,203.03,204.72,206.30,207.72,205.77, 206.01,208.31,212.23,214.91,211.10,214.80,217.26,217.06,217.85,217.12, 220.07,218.94,221.36,222.72,224.40,225.14,227.45,227.16,230.66,231.34, 230.40,233.19,232.79,233.17,235.34,236.41,233.60,238.28,238.68,240.50, 243.09,242.53,244.53,244.04,246.69,245.76,247.30,247.38,244.90,250.46, 254.73,251.44,253.61,257.32,254.33,261.18,259.57,257.68,258.14,260.06, 262.44,261.99,264.69,263.64,264.95,270.59,266.69,270.49,270.71,270.47, 272.14,271.66,278.62,274.79,273.81,274.54,281.68,280.42,276.89,278.92, 279.84,282.27,283.71,284.82,288.06,286.72,287.18,292.77,288.99,291.65, 294.24,295.67,297.40,294.21,294.20,295.01,298.26,300.43,300.16,299.54, 304.30,301.62,306.41,309.51,312.02,308.10,304.28,312.53,312.03,313.81, 8.26,9.50,9.74,10.71,11.01,12.02,14.00,13.84,14.16,15.09, 15.74,17.91,17.54,19.21,18.78,19.66,20.81,22.17,23.77,24.02, 24.09,25.50,25.65,27.29,27.07,29.18,28.06,28.90,30.62,32.28, 32.94,34.02,34.17,36.02,35.78,36.80,36.55,38.28,38.78,40.09, 41.64,40.92,42.72,43.47,44.29,44.02,45.24,45.83,46.60,49.03, 48.62,49.48,50.91,51.07,53.88,52.80,53.18,53.63,56.04,57.54, 55.49,57.48,57.96,56.84,59.21,61.32,61.46,63.28,62.11,65.18, 63.07,66.09,65.42,68.31,66.92,69.98,68.36,71.27,69.76,73.78, 72.45,72.89,73.88,75.34,76.40,77.32,76.39,79.31,77.82,78.75, 81.55,82.64,81.69,84.25,82.76,85.44,85.37,87.70,87.55,89.97, 87.61,89.28,91.39,90.99,93.62,93.18,93.21,96.47,93.67,94.78, 98.43,98.01,98.67,99.85,99.19,102.34,103.23,103.62,104.34,102.86, 104.67,105.94,106.80,109.98,106.27,109.55,110.47,110.79,111.70,113.03, 110.81,113.60,113.55,116.97,115.67,115.74,117.86,119.55,121.73,122.00, 120.32,123.59,123.83,124.86,126.67,126.84,124.35,124.90,127.51,129.67, 130.85,131.14,131.59,133.27,132.44,132.01,133.28,135.48,134.93,134.44, 137.12,137.02,138.40,144.14,139.67,144.06,139.31,142.61,144.43,146.01, 145.42,146.04,146.61,149.12,147.39,150.82,149.48,152.17,154.53,156.44, 154.78,154.19,154.84,156.76,155.49,156.65,158.20,160.82,160.05,162.20, 164.69,162.54,164.38,164.75,168.23,166.20,166.10,165.79,167.88,169.18, 169.50,172.02,172.01,173.65,173.63,175.08,174.79,176.65,175.70,180.06, 178.60,178.58,177.82,181.12,181.87,183.72,180.51,182.36,183.66,184.14, 187.65,189.09,186.27,190.10,187.18,190.60,191.56,191.61,191.70,191.25, 192.37,195.57,193.47,195.07,195.68,197.12,200.04,201.05,198.19,199.82, 199.49,202.55,201.32,204.79,206.46,208.11,206.40,207.02,209.32,211.73, 211.42,208.78,211.26,210.44,212.46,216.34,215.14,213.49,220.11,219.00, 217.76,218.62,219.64,222.11,222.66,221.65,221.68,224.01,229.45,223.18, 226.47,228.00,227.07,232.38,229.71,228.16,230.58,232.59,234.99,236.09, 233.80,235.49,233.13,237.62,236.76,239.88,243.16,240.53,240.53,243.51, 5.86,7.53,7.35,7.92,8.88,10.39,10.58,11.27,11.38,11.97, 13.08,12.99,13.50,13.22,14.50,15.40,15.56,17.52,17.79,18.38, 18.98,18.28,19.94,21.32,22.01,22.48,22.37,22.30,22.84,23.45, 26.59,25.69,25.78,26.47,27.52,28.38,29.38,30.48,29.45,30.85, 30.98,33.33,32.21,32.56,33.37,34.77,34.09,36.02,36.17,35.88, 36.88,38.64,39.98,39.20,39.45,39.06,40.92,42.68,42.29,41.93, 42.09,45.91,44.69,45.66,47.27,47.27,48.69,48.49,47.94,49.32, 50.28,49.11,51.80,51.46,52.87,53.72,53.66,54.51,54.63,56.29, 56.73,55.91,56.83,58.13,58.25,59.14,60.28,59.64,61.99,60.99, 63.54,62.60,63.86,62.83,64.52,65.61,68.15,65.89,66.51,66.66, 70.39,68.87,69.48,70.24,70.47,74.46,71.55,73.65,73.99,75.44, 73.84,74.90,75.97,77.79,78.29,77.86,77.61,78.00,79.38,79.51, 80.18,82.46,83.28,82.45,84.96,83.34,83.43,84.98,86.08,85.82, 86.80,87.81,89.10,90.19,88.51,88.69,91.64,91.64,94.20,93.70, 94.91,94.74,95.29,93.59,94.06,97.98,98.28,98.05,99.10,98.98, 98.98,102.22,101.40,104.26,102.66,103.75,104.73,105.88,105.75,106.60, 106.86,107.41,107.09,107.27,106.20,109.00,107.51,108.48,109.31,111.51, 113.53,110.14,114.05,113.12,116.64,114.87,115.16,114.74,118.49,116.25, 119.42,119.91,121.77,120.15,118.66,121.67,122.26,124.64,124.58,124.19, 123.83,124.40,127.14,126.69,126.48,130.72,125.94,128.74,130.64,128.10, 131.67,131.10,132.21,132.56,131.75,133.56,133.41,132.54,136.38,136.21, 135.52,137.28,139.53,139.90,140.29,141.19,138.82,141.31,140.63,145.87, 143.42,144.65,145.67,140.63,145.05,146.06,145.64,147.99,147.32,146.33, 150.30,149.10,152.56,151.99,150.54,150.81,153.35,151.85,153.86,158.31, 153.74,156.40,155.40,156.86,157.65,159.87,156.05,159.13,158.34,163.53, 161.90,161.48,161.99,163.87,165.06,164.47,163.29,163.93,166.56,167.68, 166.14,170.07,170.25,170.14,172.29,167.80,167.70,171.18,173.51,173.06, 171.15,175.21,175.16,175.46,174.98,178.50,178.58,181.20,180.90,179.13, 178.09,181.97,176.76,183.57,185.46,183.25,182.51,183.95,183.83,182.02, 5.30,5.27,5.43,6.97,7.08,7.53,7.09,8.55,7.88,9.74, 9.44,10.26,10.97,10.93,11.92,13.27,12.95,12.97,13.46,14.25, 14.56,14.63,15.54,14.57,16.16,15.98,16.91,17.99,18.27,17.99, 19.26,19.77,20.65,21.35,20.42,21.21,22.63,21.82,22.21,22.43, 23.38,25.18,24.55,25.15,26.66,25.93,27.80,26.35,27.74,27.95, 28.30,28.21,30.07,30.78,31.21,30.84,31.68,32.44,33.63,31.72, 33.69,33.50,34.14,34.87,34.90,35.42,37.13,36.97,36.91,37.15, 38.30,37.97,39.15,39.30,40.07,39.01,40.72,40.49,41.29,42.92, 44.05,44.44,44.19,44.04,44.75,44.23,45.99,45.59,45.93,46.81, 49.03,49.48,48.14,49.00,51.45,50.74,51.06,51.23,51.53,51.51, 51.71,53.86,54.12,53.72,55.47,53.21,55.69,56.35,55.47,55.45, 57.02,57.71,58.14,58.38,57.63,60.18,60.08,60.34,61.20,61.63, 61.18,62.12,64.09,62.78,64.17,64.53,63.91,66.09,66.64,67.31, 66.33,68.28,69.11,67.02,69.28,68.46,71.82,71.07,70.16,69.92, 71.79,72.14,72.61,73.70,74.66,73.91,75.88,75.23,74.59,76.35, 76.22,78.36,77.02,76.85,79.13,78.26,77.31,79.49,80.12,80.69, 81.79,79.17,83.24,80.94,83.70,83.89,83.73,85.53,85.36,85.17, 86.34,87.30,86.89,85.58,88.12,87.44,88.96,87.47,89.22,90.02, 89.99,89.00,93.25,91.31,93.78,91.62,92.69,94.48,94.68,93.29, 97.04,95.18,95.64,94.96,99.03,97.22,96.47,100.39,99.98,99.35, 99.51,100.67,100.16,101.06,101.78,102.63,103.97,104.25,103.68,107.16, 105.39,106.32,106.59,106.71,106.94,106.45,106.25,109.90,107.97,110.94, 109.35,109.71,110.45,112.11,112.17,113.18,112.33,111.86,113.25,114.99, 111.27,113.65,114.21,116.57,116.25,114.69,117.06,117.44,117.59,116.65, 118.04,120.26,119.43,121.19,120.57,120.44,123.44,123.45,123.60,123.70, 125.89,125.59,123.59,124.94,125.32,126.05,125.31,127.25,130.60,127.45, 125.53,129.71,129.05,126.98,131.34,129.56,134.81,131.95,133.24,134.05, 135.22,133.47,136.47,133.63,135.67,136.16,136.34,136.09,137.41,138.34, 140.12,139.24,140.18,138.66,138.92,138.41,141.62,140.91,144.34,144.46, 4.03,3.85,3.96,4.89,5.30,5.78,5.94,6.69,6.38,7.01, 7.49,8.10,7.66,8.20,8.88,9.57,9.07,9.81,9.91,10.44, 11.45,11.62,11.65,11.80,12.02,13.29,13.96,14.13,13.53,14.94, 14.66,15.28,14.39,15.29,15.97,16.32,16.41,17.34,17.23,16.48, 17.95,19.03,17.98,19.09,20.52,20.58,20.00,20.69,21.15,22.33, 22.66,22.08,21.96,23.88,24.01,22.89,24.14,24.43,23.91,26.64, 24.66,25.25,27.27,26.15,28.23,26.64,28.18,28.71,27.68,27.74, 29.25,29.67,29.09,27.90,29.89,30.70,31.23,30.93,32.22,31.84, 32.70,33.97,34.79,33.06,34.36,35.14,35.39,35.38,37.01,35.41, 36.30,37.13,38.04,37.43,37.93,37.84,37.82,37.35,39.97,39.65, 40.01,41.07,41.24,41.81,43.07,41.48,41.84,42.68,44.80,43.59, 43.98,44.12,44.01,45.20,46.27,45.92,45.62,45.05,47.75,47.56, 47.54,47.48,47.30,48.86,48.83,49.47,49.17,49.35,49.70,50.56, 51.75,54.92,51.26,51.41,51.38,53.20,52.10,53.71,53.62,54.91, 54.06,54.65,54.50,56.33,56.74,55.77,56.53,56.65,58.09,57.42, 60.15,56.87,58.98,58.87,60.81,60.33,59.73,60.76,59.44,60.38, 62.26,62.98,60.85,63.54,62.95,63.29,64.21,64.62,62.86,66.90, 65.61,67.55,66.39,66.69,67.22,67.58,67.44,66.64,71.37,69.66, 68.70,68.68,70.31,68.63,70.04,71.53,71.70,73.00,71.63,73.64, 73.05,73.26,73.10,72.22,75.74,73.63,75.06,75.09,75.28,75.28, 75.67,77.21,79.22,75.99,77.38,77.70,77.94,79.46,79.54,79.53, 80.10,78.59,82.04,80.04,81.18,79.42,82.24,83.37,81.65,84.66, 80.82,84.36,82.44,85.44,85.89,84.32,86.98,87.06,85.57,87.19, 86.55,88.19,86.82,87.83,86.45,88.24,88.99,89.10,88.32,90.21, 90.06,91.86,90.65,92.39,92.49,92.33,91.35,93.46,92.49,96.09, 95.59,95.13,96.08,92.72,95.64,98.50,96.48,98.49,97.93,98.22, 98.40,98.80,101.65,101.35,98.92,98.47,98.01,101.44,100.66,99.93, 101.35,101.29,101.87,102.21,100.47,103.60,105.86,104.61,106.49,104.24, 104.43,106.25,106.77,103.82,106.19,106.31,104.99,108.01,110.04,108.61, 2.92,3.31,3.57,3.71,3.94,4.07,4.13,4.97,5.10,5.71, 5.04,5.92,6.31,5.88,6.24,6.48,7.79,7.62,8.21,7.74, 8.37,8.51,8.91,8.31,9.49,9.72,9.66,10.24,11.23,10.33, 11.66,11.61,12.06,12.37,11.24,12.45,12.94,13.61,13.96,13.64, 13.92,14.14,14.75,14.42,15.34,13.75,15.39,15.91,16.25,17.22, 16.30,15.97,16.43,17.57,18.09,18.09,19.18,19.76,19.63,19.02, 20.17,20.32,20.65,20.46,20.00,20.59,21.46,21.69,21.44,20.82, 22.42,23.13,22.07,22.97,23.14,23.21,24.14,24.96,24.59,25.47, 25.56,24.53,24.54,26.29,27.45,26.20,27.25,26.70,27.96,27.13, 27.92,27.33,28.19,27.26,27.87,29.26,29.22,30.14,28.88,30.62, 30.27,30.60,31.13,31.98,31.22,30.89,32.76,32.54,32.35,33.55, 32.98,33.48,33.52,34.88,34.04,35.82,35.13,36.52,36.46,35.67, 36.08,37.01,37.13,37.22,37.89,36.39,36.68,37.79,37.38,37.31, 38.31,39.01,38.61,39.25,40.95,40.33,40.78,41.39,39.73,41.56, 41.84,41.86,41.59,40.99,42.85,44.60,43.15,44.36,43.76,43.20, 43.69,43.88,45.52,44.85,45.02,46.08,46.22,47.29,48.36,47.55, 47.78,47.77,47.62,49.55,48.83,48.50,48.64,48.52,48.64,49.29, 51.45,50.76,50.48,52.06,50.36,53.22,52.32,52.39,51.55,52.73, 51.75,52.65,54.49,54.92,54.76,54.61,55.02,55.52,54.99,56.85, 55.22,56.97,55.12,55.42,57.45,56.13,58.36,57.71,55.94,56.98, 58.10,59.20,58.41,58.87,60.26,59.42,59.22,60.75,60.27,60.05, 59.83,60.72,63.60,60.02,65.11,63.25,61.94,64.20,62.77,63.22, 63.29,63.47,63.57,63.94,66.09,64.03,64.58,66.30,67.33,66.35, 66.90,66.89,68.57,67.93,69.67,68.01,64.29,69.47,69.29,68.33, 71.53,67.56,69.53,70.78,69.74,70.64,69.76,73.19,71.54,71.41, 72.62,72.75,71.91,74.25,74.56,73.42,76.70,75.77,74.71,74.58, 77.10,73.06,74.46,74.47,76.86,76.16,75.02,77.09,76.70,76.67, 74.13,77.75,78.11,79.82,78.07,78.25,77.84,80.32,80.77,81.07, 81.12,79.56,81.28,81.79,79.81,82.83,82.73,81.94,84.20,84.13, 2.36,2.16,2.75,3.08,3.11,3.44,3.24,3.23,4.49,4.17, 4.72,4.16,5.04,4.91,5.00,5.73,5.06,5.39,5.79,6.00, 6.24,5.76,6.66,6.51,6.71,7.80,7.53,7.37,8.43,7.87, 8.05,9.42,8.86,8.67,9.29,9.73,10.01,9.36,10.02,10.26, 9.97,10.65,9.97,10.86,11.66,10.74,12.45,11.82,11.98,12.04, 12.45,13.08,13.08,13.21,13.49,12.96,14.23,14.32,14.46,14.98, 14.72,15.91,15.76,15.08,16.21,15.14,16.81,16.45,17.23,16.03, 17.25,16.58,18.34,18.10,18.00,17.45,18.57,17.26,19.10,17.68, 18.91,18.41,19.02,20.96,19.70,19.28,19.90,20.05,21.56,21.32, 20.89,21.45,21.48,22.59,21.55,21.24,21.53,21.82,22.60,22.76, 23.22,23.75,24.46,23.65,23.68,24.57,24.22,23.89,24.28,24.48, 25.07,25.62,25.98,26.42,26.43,25.29,26.17,26.19,27.00,27.71, 27.92,26.48,29.16,26.99,27.32,29.17,28.13,29.01,28.51,28.66, 29.61,28.21,30.16,30.99,29.52,30.40,30.42,29.91,30.36,30.03, 31.44,30.84,31.32,34.17,31.97,32.84,32.52,31.80,31.92,33.38, 33.45,34.27,34.76,33.90,35.24,34.87,34.34,36.34,34.79,35.95, 36.05,35.80,37.04,36.13,36.23,38.68,38.52,37.04,36.13,37.66, 37.43,36.99,39.07,38.81,38.37,39.11,38.67,39.65,40.06,40.08, 38.91,39.71,39.12,39.84,41.01,40.01,43.11,44.15,40.99,41.48, 40.36,43.42,42.02,43.02,42.49,43.03,43.06,44.55,42.02,44.94, 44.51,43.57,44.28,45.14,45.44,46.27,45.34,47.07,46.18,45.41, 46.30,46.15,46.48,48.11,45.66,47.06,48.53,47.31,47.66,48.37, 50.34,50.15,48.97,50.37,48.24,50.23,49.01,48.42,49.18,51.01, 51.71,49.19,51.55,51.20,49.78,52.76,52.12,51.12,53.71,52.84, 52.93,52.00,55.17,53.49,52.79,52.63,53.18,54.19,55.58,55.47, 55.40,55.88,55.36,56.64,55.37,53.25,57.01,55.65,57.05,55.71, 57.92,56.82,57.15,59.33,59.60,55.96,57.98,57.97,58.82,58.19, 61.10,59.34,60.27,59.22,59.09,60.17,60.59,60.31,60.79,61.06, 60.20,62.97,62.12,62.17,63.25,63.36,62.67,62.48,62.19,62.31, 1.71,1.75,1.67,1.84,2.67,2.01,2.82,2.42,2.84,3.48, 3.23,3.27,3.34,3.40,3.97,3.89,4.09,4.10,4.59,4.30, 4.89,4.87,5.24,5.51,5.60,5.68,5.49,6.14,5.99,6.70, 6.46,6.26,6.65,7.20,6.75,7.31,7.38,7.38,7.17,7.77, 8.08,8.55,7.83,8.30,8.22,9.34,9.20,9.34,8.71,9.06, 9.87,9.94,8.77,9.96,10.34,10.34,10.74,10.54,10.28,11.37, 11.71,11.91,10.46,12.23,11.11,10.79,11.59,11.99,12.65,12.81, 12.92,12.63,13.34,12.96,13.75,13.19,13.63,13.64,14.00,14.00, 13.85,14.20,14.93,13.93,14.31,15.21,16.12,16.13,15.05,16.22, 15.42,15.97,15.68,17.24,15.54,15.95,17.27,17.64,18.83,18.48, 16.99,17.07,17.56,17.09,18.80,17.54,19.27,18.38,18.14,17.66, 18.93,17.36,19.00,18.61,20.23,19.41,19.98,20.60,19.38,20.86, 19.98,20.30,21.00,20.29,20.65,21.52,21.92,21.21,21.68,23.01, 22.27,21.86,22.98,22.05,22.86,22.28,22.60,22.55,23.38,23.42, 23.62,23.30,23.95,23.58,25.53,25.21,24.70,24.22,25.38,24.78, 27.86,24.71,25.04,26.16,26.27,27.18,25.83,25.50,28.06,26.94, 26.91,27.83,26.07,27.21,27.13,28.12,27.75,27.49,29.42,28.32, 28.80,28.21,29.06,30.75,28.28,28.89,28.54,30.09,28.88,30.24, 30.72,31.07,30.09,30.77,30.42,31.73,31.27,31.37,32.58,32.53, 32.19,32.72,32.60,31.60,31.95,32.44,33.75,32.21,33.00,31.72, 34.16,33.74,34.59,33.24,33.93,33.65,34.39,33.99,34.98,34.47, 34.45,34.48,33.92,36.46,35.25,35.75,35.45,38.30,36.00,35.77, 36.08,36.06,36.30,37.80,36.77,38.95,37.65,36.51,39.75,38.66, 36.24,38.56,39.06,38.78,39.47,39.29,38.00,40.03,40.24,40.06, 41.18,39.44,41.74,40.43,39.80,40.66,41.18,40.94,41.26,42.36, 42.05,40.44,40.91,41.17,43.18,41.37,42.99,41.58,42.73,42.79, 43.26,45.14,43.39,44.28,43.69,43.04,45.45,43.02,44.30,44.71, 44.30,44.76,44.93,45.52,45.31,43.43,47.08,45.33,42.98,43.39, 44.21,47.20,46.51,45.69,45.88,45.85,47.48,48.02,47.19,46.87, 1.25,1.46,1.49,1.94,1.46,1.92,1.67,2.08,2.48,2.47, 2.30,2.73,2.77,2.13,3.00,3.36,3.31,3.52,2.94,3.57, 3.56,3.90,3.98,3.98,4.43,4.47,4.00,4.56,4.54,4.81, 4.80,4.67,4.83,5.28,5.23,6.00,5.29,5.92,5.58,6.14, 5.23,6.21,6.25,6.66,6.60,6.97,6.26,6.48,7.12,7.70, 7.45,6.99,8.29,7.99,7.65,7.96,8.19,7.82,8.46,8.06, 8.46,9.31,8.08,8.61,8.74,9.10,9.39,8.54,9.35,9.56, 8.73,10.23,9.31,9.66,10.37,11.11,9.49,10.48,10.85,10.83, 10.88,11.09,10.68,11.34,12.43,10.92,12.14,11.99,12.72,12.31, 12.59,11.83,12.23,11.69,13.08,13.02,13.10,12.57,13.55,13.59, 12.87,13.71,13.98,13.87,14.75,13.60,13.46,13.42,14.44,13.88, 14.06,14.22,14.26,15.34,15.34,14.88,15.86,15.45,14.72,16.10, 14.88,15.70,15.62,15.54,16.27,16.49,15.88,16.52,17.05,17.55, 16.81,17.21,17.11,17.03,17.85,17.93,17.13,18.82,17.15,17.64, 17.17,18.29,17.23,17.89,17.73,18.68,18.73,18.30,17.81,19.72, 19.71,19.41,20.28,19.62,19.82,19.05,20.48,18.76,20.83,20.70, 20.05,21.39,20.61,20.44,20.46,22.60,20.12,21.90,21.95,21.46, 22.16,22.18,21.83,22.60,21.75,21.55,22.14,22.19,21.88,24.74, 22.97,23.10,23.09,24.32,24.30,23.17,22.99,24.43,22.97,24.05, 24.73,23.02,24.49,23.70,24.54,24.00,25.26,25.21,24.38,25.60, 25.92,25.87,25.52,25.66,26.61,25.13,27.19,26.49,26.29,27.34, 27.21,25.67,27.55,27.88,24.56,26.66,26.14,27.60,26.59,26.83, 28.33,28.47,27.96,26.81,29.16,29.12,28.44,29.35,28.05,29.45, 30.42,29.19,29.83,29.86,28.95,29.67,28.92,29.52,28.52,30.68, 30.49,30.28,30.64,30.03,31.66,28.98,30.96,30.63,29.95,31.82, 30.64,31.57,31.50,32.58,33.33,33.44,32.65,31.05,33.32,32.62, 33.30,31.57,31.36,34.18,33.22,31.41,33.74,32.20,34.67,32.91, 34.34,35.35,33.31,33.93,34.89,33.24,33.92,33.34,33.99,33.92, 35.13,36.05,35.70,34.42,36.06,35.83,35.04,36.30,35.97,36.54, 1.06,0.93,1.10,1.29,1.29,1.49,1.42,1.36,1.86,1.43, 1.93,2.16,1.68,2.15,2.45,2.04,2.31,2.57,2.44,2.47, 2.80,2.58,2.90,2.60,3.50,3.32,3.14,3.12,3.42,3.68, 3.96,3.53,3.78,3.66,5.07,4.22,4.32,3.86,4.32,4.67, 4.82,4.82,4.81,4.76,5.08,4.24,5.63,4.77,5.29,5.42, 5.96,5.73,5.24,6.00,5.71,6.29,6.05,5.88,5.85,5.90, 5.98,6.15,6.44,6.81,6.84,6.67,6.58,6.91,6.88,6.94, 6.68,6.72,7.51,7.70,7.50,6.83,7.68,7.63,8.41,7.61, 7.95,8.29,8.48,7.88,9.08,8.14,8.45,8.69,9.20,8.14, 8.04,8.69,8.87,9.19,9.43,9.61,9.71,10.21,9.91,10.16, 10.04,9.86,10.07,10.79,9.75,10.82,10.47,10.70,10.93,11.51, 11.37,11.62,11.49,11.47,11.33,11.01,11.36,12.46,11.05,11.75, 12.43,11.48,12.53,12.75,12.25,11.16,12.30,12.87,12.54,12.94, 11.98,12.57,13.27,12.92,13.55,13.33,12.79,13.72,14.18,14.16, 13.71,12.60,14.26,13.70,13.54,13.16,14.75,15.09,15.81,13.82, 13.54,15.03,13.76,14.88,14.90,14.14,15.32,15.04,16.66,15.17, 15.67,14.93,14.41,15.90,15.83,15.90,15.43,15.86,16.68,16.46, 16.47,16.95,16.60,16.62,17.23,16.82,17.13,16.33,17.42,17.46, 17.27,17.11,16.83,17.59,18.64,17.85,18.75,17.28,17.50,18.30, 17.60,18.67,18.43,18.09,19.29,18.84,17.81,18.23,20.06,18.59, 18.33,18.18,19.64,18.83,18.75,19.92,19.62,19.57,18.23,19.83, 20.42,20.18,19.81,20.69,19.31,20.90,20.04,19.93,20.52,21.56, 20.31,21.18,20.51,20.42,20.56,22.58,21.81,21.07,20.77,22.41, 21.96,21.06,21.10,21.06,22.37,21.75,22.52,22.31,22.70,23.85, 22.25,23.50,22.15,22.53,22.67,23.20,23.71,24.09,22.40,22.46, 23.27,22.63,22.75,23.93,24.62,22.69,23.46,24.27,25.90,25.32, 23.80,25.45,24.52,25.03,25.89,24.61,24.08,26.04,24.57,24.21, 25.71,25.92,26.25,24.63,24.94,25.80,26.43,25.94,26.16,26.46, 26.24,25.72,27.81,26.69,26.70,27.90,27.69,26.41,25.03,26.45, 0.51,0.39,0.62,0.81,1.13,1.40,1.07,1.21,1.16,1.55, 1.04,1.41,1.48,1.49,1.71,1.87,1.98,1.62,1.54,1.67, 2.10,2.10,2.13,2.39,2.32,2.28,2.47,2.44,2.71,2.90, 2.62,2.47,3.02,2.67,3.19,2.38,3.14,3.19,2.92,2.94, 3.66,3.68,3.73,3.32,3.76,3.59,3.64,3.69,3.85,4.29, 4.08,4.00,3.94,4.46,3.78,4.44,4.38,4.22,4.71,4.62, 4.99,4.52,5.10,4.87,5.55,4.96,4.86,4.63,4.76,5.44, 5.44,4.81,6.33,6.09,5.58,5.74,5.65,6.70,6.36,5.63, 6.38,6.47,6.53,6.45,6.59,6.59,6.39,6.05,6.72,6.74, 7.31,7.08,6.73,6.89,7.35,6.88,7.91,7.76,7.28,7.14, 7.11,7.26,7.50,7.17,8.63,7.27,8.74,8.36,8.01,8.71, 8.14,8.33,9.26,8.56,9.27,8.38,9.48,8.67,9.27,9.28, 8.68,8.19,9.70,8.69,8.71,9.89,9.79,9.38,8.79,9.41, 9.52,10.08,9.65,9.68,9.36,10.10,8.49,9.83,10.05,10.09, 10.77,9.78,9.66,10.46,10.66,10.82,10.36,10.56,9.85,10.85, 11.84,10.40,10.45,11.37,10.94,11.45,9.98,11.77,11.77,10.83, 11.52,11.98,12.07,11.94,12.46,11.95,12.10,11.69,11.41,12.75, 12.40,13.36,12.81,11.68,12.80,12.46,12.31,11.72,13.26,12.75, 13.07,12.40,12.97,12.70,13.50,13.60,12.69,14.03,12.82,13.77, 13.69,13.52,14.75,14.04,13.75,14.69,14.46,14.64,15.62,14.18, 14.05,14.80,14.34,14.94,14.74,15.22,15.18,15.41,15.61,14.30, 14.81,15.09,14.72,15.57,14.83,14.27,15.90,15.15,14.91,14.73, 14.75,15.48,15.55,15.37,15.93,16.78,16.32,16.73,16.71,16.08, 17.49,16.52,17.70,16.85,16.15,17.04,17.32,16.38,15.99,16.11, 17.91,17.29,16.49,17.21,17.18,18.10,17.03,17.57,17.03,17.92, 16.16,19.24,17.79,18.54,18.32,17.97,18.50,17.67,17.20,17.86, 19.77,18.06,17.68,18.68,18.71,18.55,18.58,19.23,19.33,18.73, 19.01,18.76,19.04,19.78,18.82,20.50,19.69,20.97,21.11,20.06, 20.79,20.00,19.90,20.42,19.29,19.76,18.55,20.17,21.57,21.11, 0.64,0.54,0.73,0.62,0.72,0.99,0.94,1.03,1.11,0.86, 1.06,1.11,0.85,1.25,0.98,1.36,1.06,1.48,1.25,1.72, 1.83,1.42,1.76,2.12,1.81,1.89,2.09,1.94,2.52,1.82, 2.18,2.27,2.06,2.23,2.38,2.73,2.53,2.84,2.34,2.52, 2.50,2.61,2.98,2.84,2.30,3.08,2.74,2.65,2.88,2.91, 2.77,3.10,2.90,3.48,3.08,3.72,3.65,4.06,3.94,3.09, 3.24,3.77,3.58,3.99,3.75,4.32,4.12,3.69,4.97,4.04, 3.75,3.99,4.31,4.42,3.87,4.06,4.16,4.47,4.65,4.70, 4.51,4.70,4.34,3.89,4.89,5.05,4.32,4.41,5.16,5.54, 5.13,5.14,4.82,5.58,5.57,5.06,5.90,5.64,4.20,5.27, 5.17,5.87,5.88,5.78,5.56,6.37,5.86,5.78,5.98,5.99, 6.13,6.05,6.29,5.94,6.21,5.77,6.42,6.64,6.49,6.93, 6.16,5.96,6.83,7.57,7.24,6.80,6.57,7.90,7.84,7.64, 6.94,7.20,7.03,7.12,7.42,7.96,8.29,7.37,8.01,7.60, 7.73,7.85,7.72,7.45,8.09,7.57,7.01,8.25,7.83,8.08, 8.12,7.94,8.24,7.86,8.57,8.48,9.15,8.42,8.54,8.85, 8.22,8.24,9.47,9.17,9.15,8.96,8.92,8.85,8.64,9.00, 9.26,9.71,9.40,9.71,9.40,9.94,9.63,9.70,9.85,9.54, 8.71,10.06,9.06,10.83,10.10,10.12,11.13,9.32,9.42,9.69, 11.55,10.92,10.98,10.45,11.19,10.59,10.92,9.30,10.13,9.68, 11.80,10.33,10.73,10.85,11.50,10.80,11.35,11.50,10.73,11.82, 10.83,12.23,11.20,11.51,11.94,11.68,11.76,12.30,11.81,12.31, 11.97,12.18,11.96,12.02,11.75,12.10,12.82,12.52,11.91,12.11, 11.12,12.72,12.29,11.72,12.27,12.14,12.10,13.65,12.18,12.73, 13.18,12.74,11.95,13.07,13.49,13.08,13.97,13.23,13.60,13.28, 13.09,12.76,13.66,13.36,12.14,13.08,13.75,12.97,12.83,14.18, 13.48,13.81,15.05,14.01,14.57,14.26,14.47,13.77,13.06,14.42, 14.51,14.24,14.59,15.12,14.56,14.96,14.28,15.00,13.87,14.16, 14.62,14.46,15.84,14.23,15.68,15.75,14.98,15.01,16.52,15.42, 0.23,0.37,0.41,0.48,0.51,0.74,0.43,0.37,1.08,0.80, 0.69,1.04,0.66,0.97,0.81,0.93,1.28,1.16,0.89,1.09, 1.07,1.29,1.17,1.55,1.46,1.05,1.59,1.34,1.51,1.47, 1.36,1.62,1.85,1.95,1.65,1.65,1.78,1.98,1.81,1.28, 2.01,2.26,2.06,1.90,2.00,1.84,2.01,1.99,1.98,2.01, 2.50,2.68,2.21,1.85,2.51,2.26,2.70,2.44,2.85,3.05, 2.59,2.53,3.02,2.48,2.79,3.11,2.83,3.27,2.74,3.27, 3.06,3.34,3.08,3.51,3.39,3.50,3.08,3.64,3.68,3.69, 4.40,3.56,2.94,3.99,3.39,4.15,3.90,3.65,3.80,3.54, 3.87,4.03,4.08,3.73,3.86,3.98,4.04,4.41,4.49,4.15, 3.81,4.26,4.73,3.89,4.04,4.22,4.35,4.58,4.78,5.07, 4.87,4.84,4.36,4.68,5.54,5.12,4.45,4.28,4.72,5.55, 5.34,4.68,5.52,5.72,4.94,5.22,5.32,5.24,5.22,5.57, 5.26,6.08,5.46,5.73,5.86,5.87,5.60,5.96,6.36,5.41, 5.61,5.94,6.17,6.46,5.65,6.10,5.75,6.62,5.80,5.86, 5.80,6.06,6.07,6.74,6.04,5.85,7.32,6.96,5.62,6.78, 6.14,6.92,7.11,6.97,6.73,7.04,6.60,6.84,6.74,6.52, 6.42,7.19,7.06,6.98,6.75,7.02,7.16,6.72,7.97,6.71, 6.87,7.34,7.37,7.05,6.94,7.59,7.49,7.76,7.01,8.51, 7.69,6.35,7.96,7.88,7.28,8.75,8.70,7.76,7.70,7.38, 8.06,7.95,7.78,8.03,7.96,8.58,7.80,8.80,8.30,8.30, 8.27,8.09,8.28,9.26,9.09,9.09,8.90,9.03,8.82,9.29, 8.69,8.72,9.69,8.97,8.41,9.46,9.61,9.59,9.62,9.35, 9.36,8.45,9.88,9.44,9.11,9.36,9.71,9.32,9.24,9.33, 9.79,9.96,9.52,10.12,9.87,9.84,8.98,10.22,8.91,9.98, 9.65,9.81,10.15,9.83,11.09,8.98,10.22,10.86,9.86,10.30, 10.78,9.98,10.00,11.15,9.71,10.43,10.79,10.51,10.16,10.64, 10.78,10.72,11.20,11.03,11.72,10.84,10.71,9.66,10.93,11.79, 10.78,10.15,11.55,11.10,11.98,11.26,11.17,11.01,11.39,11.19, 0.22,0.41,0.35,0.43,0.32,0.23,0.54,0.54,0.50,0.42, 0.56,0.44,0.70,0.55,0.60,0.56,0.75,0.63,0.59,0.81, 0.87,0.99,1.11,1.22,1.00,1.07,1.17,0.97,1.01,1.60, 1.19,1.14,0.98,1.38,1.33,1.06,1.25,1.25,1.42,1.38, 1.18,2.07,1.47,1.75,1.56,1.36,1.39,1.65,1.77,1.77, 1.86,1.71,1.89,1.70,2.13,1.97,1.51,1.82,2.25,2.19, 1.61,2.20,1.95,1.79,2.51,2.37,2.35,2.85,2.41,2.08, 2.04,2.33,2.22,2.38,2.47,2.33,2.31,2.68,2.33,2.17, 3.04,2.66,2.21,2.89,2.81,3.40,2.48,2.36,2.98,2.78, 2.79,2.90,2.64,2.78,2.70,2.39,3.33,2.80,2.92,3.06, 3.53,3.08,2.85,3.05,3.29,3.22,3.35,3.28,3.49,3.74, 3.42,3.69,3.51,3.57,3.47,3.28,3.51,3.55,3.37,4.11, 3.84,3.40,3.76,4.10,4.00,3.83,3.85,3.61,4.08,4.03, 3.86,3.99,4.01,4.15,3.88,4.05,3.59,4.51,4.76,4.23, 4.70,4.45,4.58,3.83,4.97,4.21,4.57,4.49,4.79,5.63, 4.49,4.56,4.35,4.84,6.03,4.52,4.68,5.06,4.33,5.24, 4.75,4.32,4.89,5.38,4.74,5.07,5.84,4.68,4.93,5.08, 5.37,5.63,5.84,5.18,5.17,4.68,6.14,5.26,5.35,4.87, 5.15,5.27,5.46,5.71,5.51,6.20,5.11,5.80,5.80,6.22, 5.45,5.32,5.41,6.90,5.94,5.86,5.70,5.94,6.04,5.57, 6.47,6.26,6.55,6.45,6.36,6.19,6.50,6.54,5.93,5.79, 6.17,6.40,6.26,7.40,5.89,6.26,5.44,6.71,6.79,6.38, 6.66,6.00,6.71,6.72,6.02,6.18,7.28,7.64,6.63,7.56, 6.92,6.63,6.92,7.39,7.18,8.14,6.33,6.50,6.67,7.55, 7.28,7.25,6.78,7.68,7.55,8.13,7.52,6.85,7.69,6.75, 7.02,6.87,7.51,7.25,7.25,7.59,7.94,8.45,7.79,7.98, 9.04,7.35,8.17,7.47,8.24,7.83,7.99,8.43,8.03,8.25, 9.29,7.45,8.16,8.12,9.39,8.27,8.62,8.16,9.24,8.43, 8.06,8.59,9.58,8.34,8.63,8.31,8.10,8.05,8.25,8.12, 15.36,17.26,19.96,20.14,22.66,23.99,25.63,26.07,28.57,29.33, 31.91,32.10,33.46,36.21,36.76,38.68,39.89,41.55,42.67,43.93, 45.94,48.20,48.79,50.83,51.11,53.04,54.92,58.08,58.54,59.56, 61.01,62.16,62.50,66.39,68.18,70.53,70.84,72.15,73.83,73.70, 76.89,77.21,79.18,81.39,82.50,85.01,86.36,86.91,88.68,89.88, 92.38,93.34,95.04,97.68,96.36,100.95,101.07,102.89,103.54,105.48, 107.31,107.65,109.62,109.54,113.97,114.67,114.67,118.39,119.67,121.59, 124.22,124.06,125.01,127.47,128.27,128.92,131.69,131.60,137.57,137.53, 137.06,140.39,141.50,141.05,142.27,143.74,147.94,148.69,150.04,154.22, 152.65,154.39,156.11,158.87,159.79,161.10,161.81,163.96,163.96,167.48, 167.95,170.12,171.70,172.35,172.61,175.79,176.41,176.74,180.25,179.86, 183.35,184.06,188.86,185.79,188.85,190.74,191.94,194.45,195.41,196.66, 197.58,200.73,199.62,201.25,206.09,205.18,209.12,210.64,209.54,211.91, 213.00,217.04,216.51,217.77,221.88,220.12,224.07,223.81,227.61,226.36, 225.90,230.94,230.08,235.89,234.72,236.51,238.25,240.44,241.26,245.04, 241.74,242.22,247.81,249.16,248.51,251.59,253.65,257.00,255.81,259.27, 258.84,260.70,262.66,265.62,266.59,269.56,266.34,268.60,273.12,274.29, 273.93,279.33,279.58,279.42,282.54,280.73,283.26,285.61,287.38,286.99, 290.20,291.60,291.93,297.33,295.62,294.82,301.48,303.25,303.49,302.81, 306.22,307.19,308.29,310.23,312.73,313.92,317.65,317.54,315.80,318.98, 322.28,321.15,323.69,326.25,324.67,327.79,331.37,330.56,332.38,334.07, 337.00,336.05,338.58,338.67,345.51,342.51,346.46,346.68,346.56,349.76, 350.24,354.42,351.43,356.17,357.30,363.60,362.50,360.38,361.77,363.44, 364.20,367.72,371.17,374.17,374.45,376.14,374.66,376.40,378.90,376.58, 383.93,380.38,383.14,385.90,387.43,387.20,387.41,394.12,392.47,398.12, 398.97,401.15,398.36,404.31,407.86,406.28,408.68,407.51,411.57,410.80, 412.74,412.28,411.80,417.74,418.88,417.79,422.12,428.87,424.97,423.60, 425.98,429.85,430.63,431.24,436.21,433.15,433.87,433.69,437.41,443.11, 443.85,446.04,443.06,446.17,449.81,450.87,451.56,450.52,453.77,457.74, 12.08,13.59,14.90,15.90,17.46,18.92,19.25,20.69,22.31,22.42, 24.47,26.40,26.66,27.66,29.37,30.40,30.61,32.58,35.05,34.90, 35.62,37.23,37.25,39.33,42.15,41.06,42.73,45.87,45.54,48.47, 46.98,49.63,51.34,51.94,52.66,53.39,55.91,58.68,57.76,60.08, 60.97,62.66,62.29,63.61,64.97,66.62,66.55,68.64,70.67,71.28, 71.76,74.84,73.97,77.74,78.10,79.25,79.42,81.36,81.72,81.96, 85.06,86.81,86.85,87.07,90.31,90.83,90.72,93.31,94.02,93.39, 97.04,98.87,97.78,98.34,100.56,100.51,104.81,105.26,106.27,106.81, 109.28,109.42,111.00,112.83,112.86,115.99,115.02,118.71,118.79,119.31, 120.47,120.68,124.37,123.77,125.23,126.63,126.72,129.49,129.87,132.27, 132.19,135.03,136.77,135.17,135.99,138.32,140.82,138.75,143.02,144.27, 145.60,144.21,148.04,148.05,147.83,149.61,152.35,152.18,152.56,157.49, 157.41,155.98,157.80,160.40,162.45,164.18,163.33,164.05,166.32,167.26, 168.40,171.09,169.57,171.73,176.10,172.12,176.61,173.19,177.18,178.16, 179.72,181.46,180.23,182.61,186.37,186.66,188.65,188.53,190.21,190.22, 193.99,191.86,198.29,196.59,197.78,197.09,202.01,202.23,204.08,203.98, 203.81,203.65,207.69,208.90,211.23,207.08,211.56,214.44,213.27,213.34, 213.57,216.74,218.01,218.00,220.35,222.85,224.83,222.51,226.71,228.43, 228.54,231.73,233.99,230.76,235.26,238.28,233.45,239.16,237.78,242.43, 242.62,243.29,245.27,242.53,248.25,245.86,245.86,248.42,252.16,251.21, 254.53,253.22,255.35,257.72,260.21,259.54,262.54,261.82,259.22,264.67, 266.22,268.12,266.19,265.77,270.84,271.07,272.20,273.04,275.93,272.51, 280.89,278.75,277.65,278.58,280.16,281.12,282.99,286.13,285.56,289.37, 289.90,292.87,292.37,291.54,292.20,295.20,297.47,298.95,295.95,297.22, 299.98,304.28,304.95,304.34,302.08,306.25,308.16,305.80,312.64,308.40, 314.69,313.77,315.36,315.53,317.80,319.42,323.02,322.67,321.17,321.03, 321.52,326.41,324.02,328.40,324.65,331.12,330.99,335.81,332.33,337.01, 339.37,339.30,339.38,344.38,337.13,340.49,340.94,344.07,343.83,343.48, 347.51,350.16,350.85,353.79,354.19,350.60,357.72,353.92,358.18,359.16, 10.05,11.23,11.11,12.06,13.76,14.46,15.48,15.58,17.41,18.10, 18.98,20.42,21.10,21.30,21.94,23.47,24.20,25.03,27.22,26.44, 29.20,30.11,30.62,31.07,33.05,34.15,35.99,34.27,35.49,36.45, 38.10,39.15,40.16,40.61,41.75,42.97,43.16,44.58,46.31,46.22, 46.54,47.59,48.28,48.92,52.15,51.86,52.56,54.49,53.44,54.95, 59.65,58.19,58.89,59.14,59.96,61.13,62.44,63.44,63.98,65.08, 67.75,67.09,67.66,68.22,70.78,70.30,70.57,72.03,73.70,74.96, 75.98,75.68,75.60,76.14,79.73,82.45,80.98,82.74,81.11,84.57, 83.75,84.64,87.67,88.91,89.47,89.05,90.80,92.05,94.33,93.92, 95.77,95.29,96.14,98.63,97.58,100.32,99.21,100.17,102.95,103.69, 102.92,104.60,105.87,105.61,107.69,110.83,110.21,110.23,110.86,113.81, 112.56,115.15,113.87,117.97,118.39,118.02,119.61,120.78,117.14,120.59, 122.40,122.78,123.52,126.33,126.97,125.77,127.22,129.27,131.77,131.94, 132.18,130.23,133.28,134.24,134.18,138.00,138.51,139.44,139.66,137.53, 142.71,140.83,144.31,145.35,144.06,146.41,146.07,146.48,147.54,150.48, 152.49,150.93,152.23,154.24,152.36,154.03,157.07,157.51,158.27,158.87, 158.92,160.72,159.72,162.19,163.87,164.80,163.84,169.81,166.88,168.46, 169.36,168.31,176.56,172.61,170.14,175.20,175.08,176.45,178.06,178.55, 179.28,178.88,183.73,182.07,184.53,186.48,183.12,186.23,183.77,185.56, 188.56,189.98,187.84,193.38,192.94,196.41,195.74,193.70,196.96,195.50, 195.00,202.29,198.91,199.77,201.14,202.28,203.10,203.36,205.08,203.50, 207.17,207.31,209.25,212.35,209.30,212.09,215.47,212.68,212.56,215.31, 217.03,214.56,219.21,218.42,219.64,222.96,225.08,224.67,223.41,225.66, 227.30,227.42,229.51,225.78,231.22,231.33,231.18,229.90,227.71,231.11, 235.02,233.33,237.13,236.66,238.50,242.07,243.14,240.09,243.81,245.66, 243.50,244.35,246.84,247.24,250.62,250.55,248.43,251.05,254.33,253.11, 254.80,253.97,256.99,260.40,261.89,260.25,261.29,261.13,261.24,265.60, 264.33,262.05,265.68,267.35,268.73,268.54,270.48,267.83,266.16,272.19, 270.00,274.95,274.97,278.21,274.01,275.53,278.45,279.96,278.80,279.13, 7.02,8.47,8.91,9.40,10.65,10.34,12.12,13.22,13.88,14.37, 15.48,15.96,16.19,17.77,18.25,17.26,19.76,20.39,20.72,21.50, 22.99,22.81,23.47,24.23,24.92,25.32,26.23,28.11,27.21,29.27, 29.35,29.39,30.46,31.91,31.92,33.95,33.77,35.40,36.17,35.51, 37.24,37.42,38.99,40.13,38.47,41.38,41.49,41.76,42.13,43.70, 45.49,44.35,47.57,46.13,47.78,46.98,47.10,49.46,48.85,49.29, 51.97,52.27,51.10,53.91,54.01,55.55,57.12,56.95,56.73,58.76, 58.77,60.11,62.84,61.22,63.06,63.62,62.68,65.75,64.48,65.27, 66.84,65.86,67.83,68.82,70.17,69.85,71.47,71.66,71.92,74.42, 75.98,73.35,73.46,74.62,77.87,77.50,77.36,79.59,77.45,78.73, 80.13,80.45,81.81,84.06,83.10,85.14,85.61,87.09,87.67,88.41, 89.04,89.75,90.89,90.62,89.70,90.36,95.05,93.19,93.00,93.09, 96.15,98.50,96.75,96.14,100.41,102.03,99.52,100.33,102.84,102.88, 102.57,104.27,105.61,103.61,107.15,107.31,106.61,108.33,108.15,108.17, 108.16,111.59,112.42,111.98,114.60,115.16,114.42,114.33,117.27,116.01, 120.04,120.32,119.59,119.73,121.73,120.59,122.80,123.38,124.61,123.30, 126.09,123.37,125.97,127.99,128.38,127.16,131.32,129.69,129.00,130.47, 133.22,133.58,132.28,136.02,136.74,138.14,137.58,135.60,139.38,141.74, 142.14,140.37,141.90,142.09,141.88,143.13,144.53,147.67,146.91,145.52, 145.92,148.24,147.90,150.15,150.50,152.68,153.30,152.44,150.61,154.75, 152.81,155.47,156.30,156.53,159.30,159.53,163.68,158.42,160.44,161.06, 161.46,159.66,163.24,162.34,165.26,165.69,164.12,166.70,169.86,168.25, 165.91,168.85,168.28,170.52,174.08,170.01,175.56,176.51,174.31,177.22, 176.68,176.74,180.26,178.36,178.50,177.52,182.54,180.75,184.33,184.34, 184.97,185.71,185.15,187.96,184.77,187.03,185.36,189.72,190.03,191.53, 192.19,193.20,191.94,191.28,196.74,196.69,194.59,195.79,197.15,199.35, 198.35,196.43,201.31,201.49,203.43,201.09,204.55,203.21,206.49,203.36, 202.70,209.94,208.56,205.80,209.34,213.14,211.48,208.32,210.08,217.13, 211.47,212.63,211.71,216.62,217.10,214.68,218.70,218.17,218.25,220.51, 5.74,6.36,6.98,7.22,8.64,9.14,9.62,9.66,10.75,11.22, 12.22,12.13,13.35,12.58,13.73,13.89,15.16,14.25,16.71,17.44, 17.98,17.51,17.68,19.75,18.92,20.52,21.42,21.54,20.74,21.67, 23.18,23.22,23.36,24.99,25.36,25.86,25.44,27.35,26.71,29.21, 29.48,30.94,28.82,29.56,30.12,31.71,32.69,32.16,32.93,33.70, 34.28,34.57,36.20,36.05,37.77,37.10,38.39,38.86,39.40,39.71, 38.59,41.18,39.43,41.80,41.50,43.39,43.56,45.79,43.61,46.02, 43.75,46.43,47.37,47.59,47.99,48.68,49.34,49.50,49.70,50.14, 51.63,52.05,54.33,54.74,52.39,52.56,55.38,56.12,55.15,56.64, 57.88,58.04,57.67,59.32,59.36,60.84,57.61,62.26,63.08,62.90, 61.30,63.54,64.25,63.92,65.78,66.01,65.85,67.44,65.99,68.10, 68.01,70.14,70.61,68.73,70.00,72.36,70.99,73.54,73.97,74.43, 72.97,75.89,77.13,76.43,77.54,76.61,77.77,79.66,77.48,81.23, 79.18,79.13,80.94,79.43,82.63,81.30,79.78,84.90,84.39,82.42, 86.41,84.14,85.72,87.21,87.90,89.06,88.67,88.52,90.95,91.95, 90.46,91.06,91.37,91.16,92.98,94.37,95.64,92.79,96.96,96.53, 96.25,96.83,96.71,98.13,98.78,98.97,99.42,101.41,103.24,99.75, 104.14,102.91,105.52,102.54,104.12,107.38,105.37,104.69,110.00,109.93, 107.25,108.05,109.29,109.45,111.18,110.68,112.82,115.69,113.63,114.70, 114.65,115.04,115.26,115.64,115.52,117.81,118.64,116.66,118.27,118.42, 119.79,121.82,119.08,119.97,123.37,122.83,123.38,123.64,123.18,123.64, 124.92,126.79,126.53,127.37,130.94,126.45,126.48,129.62,128.03,129.65, 132.09,131.55,130.49,135.38,133.36,134.74,136.69,136.46,136.59,136.22, 139.72,138.98,140.96,138.89,136.85,140.28,140.04,142.84,141.19,141.61, 144.10,143.03,141.45,145.97,145.67,144.57,142.15,144.30,149.53,148.34, 146.59,144.06,146.59,150.77,149.95,150.89,151.81,153.10,152.41,150.77, 155.45,156.86,151.63,155.26,155.37,156.47,158.12,158.68,158.09,159.40, 158.92,159.14,160.54,163.93,163.87,164.10,162.22,162.66,164.79,168.01, 164.30,166.42,164.73,166.73,163.92,170.46,169.56,168.87,168.22,168.47, 4.71,4.80,4.68,5.72,6.10,6.88,7.50,7.67,7.76,8.32, 8.75,9.87,9.70,11.02,10.73,11.53,11.24,11.68,12.31,12.78, 13.14,13.94,14.38,14.90,15.09,15.59,16.08,17.03,17.23,18.05, 18.47,18.96,18.95,19.16,18.75,19.37,22.21,20.68,22.00,21.52, 22.38,22.78,23.18,23.42,24.15,25.31,22.84,25.48,25.10,26.79, 25.82,27.38,26.41,27.82,28.11,28.71,29.57,29.15,30.29,30.66, 30.63,30.96,32.98,32.18,32.85,34.15,33.77,34.17,34.73,35.47, 35.72,35.31,35.50,37.38,36.55,37.85,37.70,38.68,38.57,39.81, 39.97,39.98,41.06,42.19,41.58,42.30,42.52,43.32,42.20,41.98, 43.58,44.58,44.22,46.30,47.42,45.99,46.51,49.11,49.52,47.85, 48.61,50.16,49.50,50.45,49.13,51.09,51.52,52.76,53.59,52.55, 53.90,54.29,53.49,54.83,54.59,54.21,56.32,56.89,57.11,57.58, 56.99,57.50,59.41,58.26,59.90,60.94,59.02,60.91,59.59,61.08, 61.91,62.74,62.61,62.03,65.50,63.25,63.15,64.94,64.45,65.19, 64.76,66.91,67.93,67.77,67.86,69.11,70.99,70.64,71.05,70.37, 70.57,70.12,71.69,69.91,71.52,73.43,75.13,75.00,73.97,73.09, 74.55,75.17,77.33,75.52,75.30,76.44,76.69,76.92,79.57,79.78, 79.70,78.53,80.39,81.83,81.04,80.09,80.86,83.17,82.38,83.94, 84.16,83.22,84.21,83.97,86.00,87.86,86.13,86.48,88.06,87.12, 86.12,87.42,90.11,89.97,91.20,88.75,89.89,91.37,93.35,90.94, 92.82,93.46,92.98,91.38,94.36,93.78,93.93,95.81,96.70,97.74, 98.57,100.41,96.43,98.16,97.80,99.27,98.60,99.20,100.01,100.27, 102.69,102.26,104.27,104.76,102.31,104.20,104.22,104.31,106.56,103.69, 104.84,106.79,105.31,108.79,107.79,108.51,109.10,109.32,109.52,109.72, 109.87,110.04,107.47,110.05,109.29,113.70,112.99,113.70,112.39,114.56, 112.43,115.80,117.12,113.22,115.59,117.88,117.43,118.17,119.36,119.67, 119.61,118.91,117.77,121.07,119.55,119.13,121.42,120.61,121.42,120.17, 124.39,125.06,124.45,127.17,127.86,126.39,127.33,123.41,128.78,128.11, 127.66,128.50,129.64,131.34,130.89,129.42,129.24,133.07,131.09,132.49, 3.32,3.98,4.41,4.57,4.44,5.39,5.57,5.46,6.88,6.20, 6.77,7.58,7.85,8.81,8.17,9.38,9.38,8.84,10.26,9.67, 11.50,11.31,10.46,11.13,11.35,11.85,12.73,12.22,13.20,12.20, 13.40,13.53,15.60,14.55,15.99,15.98,14.76,15.59,16.41,16.54, 17.03,16.62,17.91,16.45,18.57,19.44,18.98,19.62,19.61,19.96, 20.05,21.10,21.24,21.45,21.59,22.70,22.36,22.65,23.20,25.54, 23.89,24.19,24.95,24.01,25.24,26.28,26.78,26.95,26.03,25.76, 27.32,25.98,27.21,27.67,28.73,26.91,30.09,30.66,30.74,30.45, 31.26,30.90,31.10,33.04,32.02,32.91,33.10,32.33,33.06,33.42, 34.19,35.42,32.32,35.45,35.44,35.15,36.41,36.79,36.18,36.40, 37.86,38.36,38.99,38.38,38.47,39.97,39.53,40.00,39.77,42.95, 40.34,41.83,42.81,43.32,42.19,43.00,43.49,42.28,43.16,43.01, 44.96,43.42,44.38,43.58,45.94,47.65,48.10,48.52,47.23,46.32, 47.18,48.70,48.14,49.99,49.05,49.51,49.21,50.31,49.66,51.27, 49.83,50.88,49.39,51.39,52.48,52.88,53.42,53.20,54.43,54.70, 54.81,55.43,54.79,55.83,56.49,55.26,56.53,56.74,57.51,59.03, 58.42,58.03,58.79,58.72,60.24,61.18,59.04,59.66,59.33,59.59, 64.18,62.06,62.22,60.93,60.96,61.05,63.65,63.17,65.01,64.80, 63.33,64.45,64.38,64.86,64.87,67.80,66.23,67.17,66.86,66.85, 68.48,67.54,68.59,70.86,69.76,69.60,71.64,70.03,72.03,71.73, 70.12,71.76,72.88,73.09,73.51,74.54,72.77,72.96,72.94,73.98, 74.88,76.26,75.83,77.48,75.20,75.64,77.38,76.58,77.65,78.26, 77.75,78.84,79.87,80.18,80.24,79.91,79.82,79.42,81.59,79.89, 80.84,80.14,81.53,83.15,84.77,83.16,82.28,82.42,85.70,83.66, 84.86,85.27,88.07,86.00,86.95,85.70,89.87,88.58,85.48,87.63, 91.12,89.24,89.97,87.47,90.31,86.75,92.02,89.73,92.34,91.27, 93.32,89.56,91.53,96.29,92.09,95.25,91.74,94.50,92.26,95.62, 95.14,94.97,94.62,98.58,95.41,96.05,98.98,97.55,96.46,98.72, 98.24,97.76,99.07,99.22,100.67,101.85,100.35,101.19,99.57,99.83, 2.71,2.66,3.23,3.33,4.04,4.35,4.19,4.54,4.31,4.90, 5.41,5.61,5.76,5.81,6.48,6.83,6.42,7.08,6.53,8.31, 8.07,7.89,8.23,9.09,8.76,9.34,9.30,10.42,10.21,9.73, 10.12,10.96,10.70,11.04,11.48,11.82,12.93,11.54,12.03,13.88, 13.35,13.54,14.10,14.51,14.14,13.99,13.70,15.72,15.65,15.70, 15.77,16.14,16.64,17.05,16.77,17.91,16.67,17.15,17.79,17.74, 18.69,18.07,19.99,20.21,19.52,19.54,20.45,20.73,20.33,21.04, 21.92,21.43,21.12,22.07,21.58,20.87,22.82,21.41,23.47,24.37, 24.53,24.32,24.12,23.86,23.81,24.54,26.48,24.69,26.42,26.46, 26.79,26.38,26.27,26.28,26.57,27.48,28.40,28.80,30.23,27.73, 28.44,28.46,30.23,29.31,30.01,30.48,30.36,30.97,29.61,30.93, 31.11,31.51,31.99,32.80,33.24,33.75,31.02,33.35,32.93,34.19, 35.77,34.13,35.65,34.64,35.26,34.84,36.20,37.17,36.20,35.74, 36.69,36.02,37.21,39.11,38.37,40.30,38.48,38.10,38.47,39.86, 38.27,41.58,39.27,39.87,40.61,39.70,42.35,41.27,41.94,42.47, 43.12,43.47,42.61,42.45,43.17,43.70,43.19,43.05,44.94,45.30, 45.05,44.03,45.14,45.27,46.04,46.76,46.88,47.49,48.73,45.44, 48.09,48.95,48.95,46.84,47.55,48.63,48.11,49.19,49.75,49.48, 51.23,50.42,50.92,49.66,51.31,50.05,52.13,50.96,51.24,53.62, 50.65,51.23,54.34,53.44,54.11,52.38,53.30,55.99,53.35,54.20, 55.37,55.43,53.71,53.17,55.97,58.41,55.45,56.58,56.52,57.56, 57.05,57.49,58.28,58.70,57.23,58.23,61.27,58.33,59.43,59.74, 60.49,60.45,62.62,60.97,61.07,60.64,61.17,63.06,61.53,63.40, 63.53,62.90,61.30,65.00,65.29,64.18,65.12,65.59,65.66,63.48, 66.86,63.29,66.43,65.20,69.51,66.42,66.72,67.33,67.07,66.85, 69.60,67.95,68.90,68.89,68.03,67.70,70.10,69.81,69.62,68.51, 71.12,71.74,69.66,71.87,70.97,72.59,72.00,69.78,74.10,70.63, 73.66,74.99,72.90,75.85,73.44,73.04,74.18,76.11,76.06,73.50, 75.53,74.33,76.88,77.52,74.88,75.57,78.27,78.89,77.78,77.61, 1.89,2.22,2.30,3.03,2.41,3.01,3.08,3.43,3.35,4.25, 3.96,4.84,4.02,5.04,4.91,5.41,5.41,5.45,5.90,5.70, 6.45,5.88,7.08,6.28,6.01,7.22,7.45,7.19,7.98,7.43, 7.94,8.10,9.00,8.53,9.17,8.69,9.00,9.84,9.68,9.62, 9.99,9.81,9.99,10.64,10.71,11.02,11.44,12.36,12.56,12.19, 11.46,12.08,12.77,12.23,12.09,13.85,13.46,13.68,13.45,14.40, 14.54,14.35,14.60,15.29,14.08,15.38,15.94,15.77,16.15,15.58, 15.37,17.51,15.87,16.99,17.11,16.42,17.06,17.35,18.31,18.71, 17.27,17.66,18.45,19.51,19.09,18.79,19.46,18.94,19.12,19.82, 19.86,20.97,20.75,19.77,20.78,21.43,21.05,21.77,22.64,21.69, 22.73,23.65,22.29,22.00,23.61,22.71,23.94,24.90,23.57,23.98, 24.00,23.98,24.66,25.49,24.54,24.55,24.92,26.81,24.26,24.74, 26.03,26.68,26.32,25.81,27.61,27.22,27.49,27.11,27.67,27.61, 28.25,27.94,28.70,28.51,29.32,29.95,29.59,28.22,29.99,29.48, 31.19,30.02,30.48,31.08,29.86,30.98,31.07,31.83,31.06,31.76, 31.72,31.96,32.18,34.48,33.84,33.31,34.08,34.53,32.63,32.53, 33.60,34.92,35.01,33.37,34.81,36.11,34.73,35.25,37.22,35.56, 35.90,36.15,36.68,35.11,39.13,37.26,36.29,39.34,37.45,39.26, 39.51,37.34,38.59,37.39,38.28,40.17,37.31,40.68,39.18,40.40, 40.79,40.98,39.60,40.44,41.48,42.04,41.97,41.65,40.86,42.38, 42.52,43.22,42.83,43.35,42.65,42.95,41.80,44.08,42.63,44.30, 45.10,43.40,45.08,45.20,46.30,45.51,46.42,44.13,47.60,48.33, 47.01,45.65,46.27,45.95,47.44,46.77,47.92,46.76,47.22,48.09, 48.30,47.35,48.96,48.99,51.01,50.87,50.85,48.60,49.30,49.51, 50.61,50.96,50.83,52.71,51.37,50.89,50.52,50.16,52.11,51.69, 51.49,52.55,52.32,52.58,54.46,54.00,52.85,53.02,54.19,53.31, 53.22,55.62,53.22,56.17,53.36,57.43,56.85,58.31,56.42,55.99, 54.38,54.47,56.16,55.03,58.27,57.70,58.27,58.26,56.94,58.30, 57.02,57.70,60.17,59.18,59.62,60.30,59.35,58.33,59.07,59.91, 1.42,1.84,1.96,2.09,2.02,2.31,2.46,2.42,2.92,2.90, 3.21,2.94,3.34,3.24,4.14,4.23,4.35,3.98,4.76,4.10, 3.96,4.31,5.12,4.90,5.23,5.61,4.56,5.49,6.14,6.11, 6.02,6.28,6.33,7.21,6.76,6.72,7.53,7.54,7.15,7.53, 7.50,8.32,8.22,7.96,8.77,8.14,8.64,8.49,9.17,9.41, 9.24,9.52,9.49,9.37,9.73,10.38,9.78,10.37,9.77,11.43, 10.49,11.34,11.10,10.27,11.40,11.31,11.69,11.54,11.96,11.78, 11.18,12.43,12.40,13.28,13.14,13.56,13.58,13.24,13.68,14.27, 14.44,14.07,14.27,14.86,14.22,15.09,16.37,13.85,15.14,14.96, 14.80,15.07,16.20,15.40,16.25,16.11,16.40,16.74,15.79,16.64, 17.53,17.77,17.86,18.35,17.39,16.66,19.22,18.82,18.25,18.61, 19.11,17.27,19.70,19.21,19.30,17.96,19.10,19.41,19.76,19.93, 18.83,19.92,21.04,21.71,20.57,20.99,20.27,19.94,21.61,22.71, 21.61,21.01,22.02,22.17,21.94,22.62,22.25,21.55,23.01,23.18, 22.97,22.90,23.68,24.04,22.56,24.30,24.54,24.79,23.03,25.27, 24.67,24.70,24.95,26.42,25.56,23.84,26.18,25.99,25.50,24.25, 26.06,26.27,25.93,25.80,25.69,26.00,28.48,28.76,26.88,26.38, 28.88,26.02,26.42,27.57,30.44,27.81,28.88,29.44,28.53,29.22, 29.64,27.20,30.31,30.27,30.20,29.83,29.85,30.18,30.43,30.56, 28.86,32.30,30.64,31.35,31.59,29.91,32.80,32.16,32.05,33.50, 32.22,31.73,34.31,31.51,33.37,33.27,32.89,34.34,33.80,34.83, 32.66,33.92,34.99,32.59,34.46,33.34,33.74,35.24,34.21,35.98, 35.37,34.44,34.84,35.16,35.56,35.46,36.38,37.24,36.28,37.22, 36.76,36.66,37.83,37.64,38.01,36.88,37.22,37.12,38.30,37.21, 39.21,37.62,40.05,39.01,39.14,38.91,38.91,38.47,40.81,40.32, 40.03,39.82,39.39,39.67,40.10,37.82,43.02,40.62,41.33,40.29, 40.61,41.44,40.10,40.57,42.12,41.86,42.11,40.76,42.52,43.06, 43.96,43.10,42.89,44.86,43.17,42.95,45.44,43.66,43.46,44.30, 45.06,43.22,44.35,45.11,44.44,44.61,44.74,44.28,45.84,48.48, 1.20,1.43,1.28,1.46,1.64,1.71,2.21,2.09,1.70,2.06, 2.13,2.56,2.05,2.73,3.05,3.29,3.14,3.22,3.24,3.71, 3.62,4.10,4.26,3.48,4.11,4.00,4.29,4.13,5.20,4.57, 4.91,4.52,5.23,5.30,5.10,5.11,5.57,5.49,5.92,4.93, 5.36,6.53,6.12,6.58,5.92,6.22,6.25,6.91,7.17,6.79, 6.87,7.79,7.68,7.66,6.38,8.37,7.44,8.17,7.61,8.11, 8.62,8.25,7.82,8.26,8.16,8.16,9.52,9.18,10.12,8.58, 9.33,8.96,9.27,9.53,10.49,9.75,9.75,10.53,10.42,10.68, 10.64,10.77,10.42,10.72,11.59,11.08,11.23,10.78,11.32,11.54, 11.63,12.32,11.50,11.46,11.57,12.64,12.80,12.62,13.66,12.33, 13.71,12.93,13.30,14.13,14.02,13.07,14.07,13.69,13.82,13.49, 13.80,14.01,14.15,14.45,15.79,14.84,15.03,14.43,14.60,15.13, 16.91,15.48,15.72,15.03,16.00,16.06,14.94,16.76,16.83,17.11, 17.57,17.26,17.51,16.18,16.80,16.37,18.50,17.70,18.90,16.83, 18.82,17.89,17.45,18.84,17.75,17.79,18.09,17.89,18.81,20.00, 19.29,18.89,19.20,17.64,19.68,19.81,20.18,18.45,20.54,21.22, 20.59,18.74,19.63,20.99,20.07,21.75,20.15,21.38,20.62,20.61, 21.95,20.91,20.44,21.25,21.23,22.95,22.29,21.55,22.51,21.71, 23.18,21.73,21.16,24.36,22.18,22.93,22.45,24.71,22.71,23.94, 23.48,24.16,23.50,23.95,24.29,23.80,24.34,24.47,24.14,25.01, 24.22,24.46,24.85,25.41,25.69,25.43,26.22,25.48,25.13,25.96, 24.63,26.86,27.04,25.17,25.88,27.07,26.26,26.11,25.95,26.02, 26.07,26.66,27.37,26.83,27.52,27.40,30.15,27.67,28.36,28.07, 29.22,26.49,28.37,28.50,28.92,29.17,27.61,29.92,28.90,29.33, 30.14,29.95,28.88,29.59,30.32,29.32,29.76,30.24,30.71,31.84, 31.34,29.68,30.97,29.25,30.02,30.29,30.82,31.98,31.48,31.49, 30.59,31.84,32.14,31.72,32.27,32.27,30.20,31.55,31.60,33.71, 32.11,32.78,32.79,32.63,32.83,34.02,34.87,33.94,33.27,33.71, 33.52,34.13,35.03,33.04,32.46,35.04,35.01,34.90,34.70,35.93, 0.95,0.85,1.43,1.00,1.43,1.29,1.55,1.12,1.10,1.98, 1.89,2.19,1.86,2.15,2.00,2.37,2.09,2.71,2.41,3.17, 2.96,2.76,2.80,2.79,2.80,3.23,3.59,3.01,3.34,3.28, 3.63,3.95,3.67,3.97,3.07,4.03,3.71,3.96,3.97,4.12, 4.21,4.78,4.64,4.63,4.95,4.82,4.74,5.47,5.76,5.35, 4.79,5.43,5.44,5.01,5.35,6.07,5.90,5.56,6.13,6.54, 6.27,6.53,6.59,6.23,6.66,6.89,6.45,6.87,6.85,7.04, 6.97,7.34,7.41,8.19,7.24,7.55,7.86,7.82,8.51,8.49, 6.96,8.06,7.99,8.57,7.84,8.37,8.94,7.89,8.17,9.49, 8.71,8.64,9.59,8.84,10.56,8.89,10.07,10.07,9.29,10.06, 8.97,10.14,10.69,10.38,10.01,10.93,10.68,10.36,10.22,11.14, 10.12,10.84,10.14,10.97,11.30,11.04,11.73,10.84,11.82,10.85, 10.60,12.07,11.92,11.82,12.08,12.47,11.96,12.55,13.13,12.58, 12.66,12.93,12.08,12.24,12.66,12.58,12.78,13.74,13.34,14.19, 12.96,14.03,14.49,13.30,13.30,15.35,13.11,13.95,15.37,14.69, 14.51,13.79,13.81,13.77,14.49,15.37,13.95,14.32,14.96,14.96, 15.56,15.56,15.90,15.30,15.75,15.35,15.88,15.99,15.09,16.45, 15.60,16.14,16.36,16.28,17.18,15.67,16.45,16.41,16.13,17.10, 16.56,17.34,17.32,16.41,17.27,17.75,17.37,17.69,18.75,17.88, 17.20,18.32,18.10,18.33,17.64,19.25,19.22,17.73,17.55,17.75, 18.46,18.69,18.79,19.69,20.23,20.08,20.00,19.63,20.81,19.13, 19.54,20.40,19.55,19.77,21.09,20.17,20.02,19.97,19.36,21.51, 19.85,20.53,22.32,19.54,21.76,19.95,20.67,20.46,21.99,19.65, 21.73,21.90,19.86,22.25,22.34,21.20,21.19,21.80,22.00,21.63, 20.72,22.07,22.24,21.07,22.57,21.66,22.35,21.78,23.13,21.76, 22.48,24.49,24.08,24.49,23.14,24.87,24.43,22.64,23.25,23.07, 24.23,23.21,24.12,23.97,24.74,24.86,24.92,24.53,23.83,23.81, 24.08,25.81,24.51,26.66,25.73,25.31,25.08,25.33,26.63,24.61, 25.04,26.34,27.29,26.11,27.70,26.81,25.01,26.57,27.32,27.42, 0.81,0.59,0.82,0.62,0.85,0.86,1.14,1.00,1.12,1.20, 1.37,1.29,1.62,1.64,1.51,1.73,1.59,1.96,1.72,1.90, 1.79,1.93,2.23,2.00,2.06,2.02,2.45,2.49,2.80,3.09, 2.89,2.78,2.54,2.96,2.62,2.97,3.12,3.87,3.33,3.36, 3.40,3.63,2.81,3.46,3.12,3.17,3.58,4.05,3.96,3.89, 4.12,3.71,4.28,4.29,4.47,4.14,4.61,4.93,4.44,5.23, 4.40,5.26,5.32,5.06,4.78,5.10,5.47,5.11,5.57,5.26, 6.03,5.17,5.56,5.15,5.47,5.86,5.65,5.98,6.45,6.21, 6.82,6.12,5.96,6.70,6.33,7.50,5.65,6.19,6.58,6.62, 6.74,7.04,6.71,6.84,6.61,7.46,6.94,6.70,8.24,7.01, 7.43,7.58,7.62,7.54,7.92,8.35,7.93,7.44,7.61,7.96, 7.32,7.19,8.22,8.04,9.03,8.92,8.01,8.68,8.08,8.70, 9.47,9.37,9.28,8.59,9.38,9.09,9.68,9.07,9.27,9.91, 9.08,10.40,9.23,10.15,9.75,9.57,9.65,11.10,10.33,9.32, 10.09,10.73,11.17,11.03,10.48,10.85,10.73,11.08,11.24,12.13, 11.15,11.25,10.82,12.17,10.82,11.15,11.58,10.79,11.21,11.96, 11.72,11.91,12.44,10.93,11.59,11.40,11.26,12.55,12.28,13.18, 11.94,12.15,13.31,12.01,11.95,11.85,12.64,12.68,12.79,13.70, 11.73,13.27,13.46,13.12,12.56,12.73,13.52,13.37,13.91,14.08, 13.06,13.17,13.34,13.73,15.04,13.65,14.10,13.04,14.25,14.47, 14.79,13.86,14.63,14.91,14.19,14.26,14.54,14.57,15.79,14.10, 15.56,15.68,15.44,15.28,15.43,15.15,17.11,14.92,15.24,15.56, 15.45,15.41,15.64,15.59,15.28,15.54,16.17,15.46,17.13,15.95, 15.74,17.08,16.44,17.25,15.56,15.71,16.65,16.83,17.25,16.11, 17.82,17.13,16.02,17.58,17.27,17.78,17.62,17.71,17.86,17.09, 17.74,16.82,17.20,19.31,17.57,18.11,17.79,17.57,18.01,17.99, 18.75,18.12,19.03,18.62,18.04,17.78,18.30,18.76,18.23,19.32, 20.13,19.90,18.16,19.57,19.27,19.14,21.14,19.88,20.19,18.42, 18.29,21.05,19.23,19.84,21.67,19.93,20.30,19.54,20.12,19.92, 0.30,0.60,0.65,0.81,0.61,0.69,0.69,1.02,1.06,0.67, 1.08,1.03,1.18,1.44,1.50,0.88,1.41,1.35,1.51,1.32, 1.46,1.74,1.90,1.89,1.89,1.79,2.13,2.14,1.49,2.08, 2.26,2.03,2.09,2.00,2.25,2.13,2.47,2.38,2.69,2.13, 2.63,2.74,2.49,2.53,2.98,2.32,2.83,2.90,2.88,2.63, 2.90,2.97,3.41,3.28,3.15,3.03,3.36,3.37,3.98,3.22, 3.46,3.42,4.39,3.68,3.73,3.96,4.17,4.07,4.19,4.27, 3.81,3.84,3.98,4.37,4.96,4.11,4.46,4.04,4.19,4.60, 4.77,4.46,4.76,4.70,4.58,5.01,4.92,4.50,4.92,5.51, 4.48,5.01,4.83,5.78,5.29,5.17,5.81,5.98,5.33,5.74, 5.53,6.02,5.36,6.20,6.34,5.88,5.97,5.82,5.75,6.01, 6.30,5.86,5.47,5.70,6.43,7.10,6.75,5.71,7.21,6.33, 5.83,6.20,6.21,6.73,6.75,6.91,7.59,7.54,6.81,7.28, 7.07,7.16,7.56,7.12,7.47,7.86,7.94,7.85,7.89,7.76, 8.51,7.76,8.06,8.02,7.08,8.28,8.11,8.34,8.80,8.41, 8.07,8.44,8.55,8.35,9.59,8.55,8.58,8.94,8.89,8.69, 9.11,9.15,9.79,9.05,8.76,8.75,8.29,8.85,8.86,9.26, 8.96,8.30,9.83,10.05,9.32,9.52,10.15,9.01,9.56,10.52, 9.81,9.90,9.29,10.52,10.63,10.35,9.93,10.81,10.62,10.87, 9.55,11.08,10.51,10.90,11.31,11.01,10.34,10.52,10.52,11.11, 10.63,10.91,10.72,11.54,10.12,11.11,11.23,11.38,11.45,11.04, 11.49,12.30,11.62,10.96,11.34,12.37,11.18,12.40,11.38,12.52, 11.54,11.73,12.83,12.83,11.72,12.19,13.27,12.33,12.71,12.79, 11.83,12.05,12.22,11.93,12.74,12.02,12.24,11.63,11.79,13.32, 13.20,12.98,12.65,12.18,13.10,12.68,13.09,13.84,13.29,13.57, 12.68,13.12,12.93,13.13,14.68,13.15,13.97,13.99,14.77,14.25, 13.21,13.94,13.69,13.99,13.19,13.30,14.73,15.04,14.14,14.74, 14.09,14.71,15.08,15.44,14.97,14.37,14.35,15.92,14.19,14.14, 14.70,15.81,15.25,15.99,15.03,15.01,14.81,15.36,15.44,15.52, 0.32,0.39,0.30,0.47,0.62,0.72,0.74,0.72,0.72,1.04, 0.99,1.06,0.91,0.63,0.88,1.15,0.90,1.11,1.22,1.10, 1.12,1.24,0.97,1.26,1.20,1.42,1.92,1.38,1.51,1.42, 1.74,1.78,1.61,1.68,1.74,1.72,1.75,1.69,1.87,2.31, 1.71,1.78,2.31,1.76,2.07,2.38,2.36,2.42,2.10,2.22, 2.26,2.49,2.38,2.74,2.54,2.32,2.15,2.92,2.56,2.60, 2.62,2.89,2.99,2.35,3.35,2.76,2.74,3.01,2.38,3.58, 3.28,2.65,2.89,3.46,3.24,3.56,2.55,2.98,3.43,3.39, 3.78,4.09,3.46,3.67,3.87,4.11,3.99,3.56,3.85,3.97, 3.58,4.65,3.86,3.56,4.23,3.56,3.79,3.59,4.19,4.37, 3.93,4.00,4.74,4.30,4.17,4.78,4.38,4.48,4.21,4.12, 5.02,4.29,5.42,5.12,5.03,5.02,4.82,5.39,5.71,4.77, 5.12,5.55,5.13,5.66,4.88,5.47,4.88,5.55,4.74,5.61, 5.82,5.37,5.60,6.04,5.33,5.32,6.47,5.77,5.93,6.17, 4.96,4.85,5.74,5.80,5.72,6.07,5.90,6.60,6.01,6.21, 6.91,7.19,6.45,6.50,6.04,6.76,6.79,6.71,7.74,5.85, 6.82,7.01,6.95,6.40,6.92,6.11,6.50,6.60,7.15,6.89, 6.27,6.55,7.44,7.58,6.43,7.47,7.39,7.10,7.66,6.97, 6.94,7.64,7.57,7.10,7.90,7.63,8.05,8.28,7.59,7.83, 7.40,7.55,7.91,8.63,8.47,8.63,8.24,7.83,8.50,8.07, 7.36,8.03,9.08,9.37,7.48,8.57,8.03,8.94,8.73,8.40, 9.05,8.90,9.71,8.72,8.08,9.21,9.37,8.86,9.38,8.05, 8.53,9.38,9.11,9.90,9.63,8.92,8.83,8.86,9.55,9.09, 9.21,9.96,9.00,10.21,10.05,9.42,10.21,10.04,9.79,10.43, 8.59,9.58,9.81,9.74,9.64,9.16,10.56,9.44,9.45,9.90, 10.88,9.69,10.01,10.19,9.54,10.50,10.31,10.87,11.27,11.06, 10.91,11.19,11.36,10.31,11.03,11.02,9.68,10.90,10.88,10.77, 11.33,11.31,10.22,11.13,11.74,10.38,11.91,11.30,10.89,11.23, 11.81,12.13,11.64,10.94,11.23,12.38,11.78,11.77,12.12,12.13, 17.78,19.65,20.92,22.11,25.62,26.47,28.00,29.65,31.48,33.03, 34.69,36.03,39.72,40.12,43.54,44.05,45.23,47.58,49.30,50.34, 53.18,54.14,56.35,57.76,58.75,62.13,63.06,64.06,67.05,68.75, 69.42,71.51,72.32,74.97,75.33,77.67,79.02,81.72,83.47,84.39, 86.23,88.27,89.37,91.51,92.84,96.19,95.83,98.75,99.94,103.09, 103.55,107.39,107.69,109.35,110.09,113.83,112.74,115.67,117.19,117.79, 122.21,120.33,123.31,126.54,130.12,128.01,133.36,133.70,136.22,137.07, 136.62,139.00,143.26,142.94,146.19,148.17,147.83,150.57,152.43,154.03, 155.83,154.39,160.73,162.94,161.11,164.41,166.50,166.42,169.35,170.31, 174.25,176.05,175.78,177.66,181.14,183.97,180.35,183.56,186.44,188.86, 190.61,191.81,195.86,195.36,197.03,200.72,201.56,204.80,203.65,205.84, 206.95,208.91,208.50,213.65,213.34,217.35,215.44,218.29,220.34,222.46, 222.88,225.59,227.06,229.64,232.30,233.08,236.87,237.41,239.04,241.21, 238.27,244.95,244.68,246.00,249.08,253.01,253.77,255.35,255.81,258.12, 258.64,261.08,263.02,265.02,266.92,266.89,270.04,269.63,272.73,275.79, 274.97,275.95,278.21,279.37,280.55,286.41,287.64,287.10,290.23,289.10, 293.95,295.52,294.66,298.88,301.19,302.20,305.32,306.12,306.72,309.41, 311.37,315.39,312.76,313.80,321.46,318.89,321.02,322.50,324.12,328.19, 325.62,326.66,333.40,333.20,339.64,336.53,338.84,339.22,341.09,345.69, 344.49,346.56,350.53,352.14,352.56,356.37,355.89,360.05,357.94,363.63, 361.25,362.89,362.82,371.40,367.41,372.74,373.35,373.09,374.80,378.80, 380.19,379.97,383.84,382.74,386.60,388.33,392.13,389.74,389.83,396.48, 396.83,398.12,395.32,401.39,403.71,408.34,409.28,411.20,411.35,409.72, 416.24,415.44,420.72,418.82,420.27,425.47,427.81,424.52,426.81,430.63, 431.57,434.11,433.58,430.85,439.18,440.11,440.28,443.07,442.98,445.27, 447.88,450.82,449.94,450.82,453.40,458.06,456.79,460.09,461.50,463.76, 466.63,468.62,466.09,475.61,472.17,475.69,476.59,477.89,482.91,479.99, 484.63,482.53,485.52,486.95,491.47,488.31,494.67,498.11,493.76,500.11, 500.96,498.41,502.93,504.07,509.01,503.66,511.14,511.87,511.69,511.42, 14.19,15.30,16.65,18.48,20.76,20.99,23.68,25.01,23.86,26.36, 28.33,27.58,30.77,31.24,34.58,35.27,36.42,37.93,38.75,40.29, 42.81,43.27,43.45,45.91,46.66,49.10,49.86,51.10,53.55,53.71, 56.22,57.66,58.23,60.58,59.83,62.62,64.26,65.27,66.93,67.71, 68.58,70.09,72.02,74.24,75.44,77.87,77.68,80.30,79.29,81.05, 82.91,84.76,86.35,87.09,89.45,89.92,91.83,92.43,92.61,94.60, 95.17,98.23,100.18,99.77,103.61,102.95,103.49,107.24,106.00,108.29, 111.37,110.45,113.18,116.30,116.37,117.93,119.52,119.16,121.90,121.91, 124.74,126.04,128.77,127.38,130.22,130.74,130.38,134.40,137.53,134.49, 138.42,138.23,139.79,143.73,142.07,144.59,145.26,145.57,150.91,149.86, 151.73,154.16,153.48,154.37,157.87,158.96,156.96,162.32,161.81,164.87, 166.35,165.81,167.73,166.56,172.90,174.66,172.62,173.04,180.29,180.35, 179.71,181.29,182.40,183.26,184.50,185.37,185.78,186.97,191.89,192.28, 194.29,194.50,198.24,195.31,197.69,197.77,201.61,201.84,199.48,205.28, 207.25,208.33,213.52,209.83,209.19,213.66,215.91,214.25,219.25,220.04, 221.82,221.34,225.00,223.81,228.34,227.74,228.78,231.80,230.90,232.33, 235.31,236.49,233.42,239.52,238.90,240.04,242.62,244.14,244.41,246.44, 249.75,251.55,249.64,254.22,256.22,256.18,253.62,258.34,256.93,260.72, 259.89,264.29,265.05,264.11,269.21,267.19,272.11,270.70,272.64,270.28, 273.65,276.62,276.98,282.89,283.75,281.43,284.55,284.36,288.68,284.93, 290.65,291.57,291.80,293.97,295.05,294.51,297.23,298.17,299.90,301.31, 303.65,301.96,307.22,311.79,306.36,310.61,310.00,313.69,312.53,311.20, 315.98,317.39,317.79,319.10,320.17,324.08,324.09,325.18,328.04,326.65, 326.54,331.55,331.70,334.56,336.71,336.10,340.19,342.26,339.18,343.49, 345.68,346.98,345.72,350.13,350.80,349.37,348.62,354.15,353.27,354.91, 359.49,356.93,360.92,361.09,363.62,363.95,363.36,367.62,366.85,369.78, 375.20,370.78,377.27,373.97,375.43,376.52,381.46,380.16,383.20,383.59, 383.03,384.05,386.43,390.94,392.36,393.30,392.62,392.69,393.20,400.53, 398.48,399.66,403.77,402.02,404.36,402.71,407.46,407.49,411.31,410.23, 11.40,12.28,13.47,15.19,15.82,16.32,17.63,18.55,20.91,21.05, 22.50,23.45,24.09,25.23,27.59,27.28,28.68,29.13,30.96,32.46, 33.11,34.12,36.12,35.64,37.88,38.12,38.47,40.41,42.20,42.01, 44.75,44.18,47.97,47.45,48.82,49.31,49.74,50.55,53.53,51.74, 54.30,55.55,57.42,58.97,59.08,60.08,61.77,62.34,65.76,65.25, 65.58,67.11,69.10,68.55,69.32,69.92,73.17,73.25,75.25,75.25, 75.68,76.76,78.44,80.11,81.47,82.38,82.63,83.66,85.37,83.78, 87.54,87.18,87.81,93.09,91.42,93.59,93.78,94.68,97.44,97.58, 98.81,100.34,100.97,102.71,102.81,104.51,104.63,105.64,108.94,108.94, 108.93,109.94,111.59,111.37,113.43,115.84,115.21,116.06,116.11,121.18, 118.35,121.02,120.77,123.41,125.36,125.30,126.62,130.65,128.86,130.32, 131.53,131.47,135.78,133.46,136.12,134.65,137.26,138.44,140.05,140.56, 138.76,141.05,144.61,145.26,147.59,150.05,149.16,149.54,151.09,152.17, 153.02,154.16,155.32,157.19,159.64,160.71,156.77,160.00,161.17,162.02, 165.43,165.61,166.04,167.93,167.22,167.33,171.04,172.49,171.95,173.40, 175.31,174.80,175.30,179.32,180.34,181.19,180.33,183.85,186.26,183.80, 186.07,189.93,191.09,187.49,189.56,192.04,189.56,195.32,192.24,194.66, 198.75,193.51,199.66,198.08,201.07,204.53,202.01,203.84,203.84,207.27, 209.21,208.40,211.23,207.71,214.72,213.96,217.11,216.89,215.43,219.83, 216.88,220.09,218.84,222.71,223.35,224.41,224.09,228.61,227.62,228.17, 230.58,229.67,230.26,234.87,236.04,233.42,236.57,239.09,237.06,240.51, 242.89,239.48,243.64,245.21,244.17,246.54,247.96,245.78,251.08,248.03, 251.47,250.93,254.71,255.87,255.47,257.38,259.74,259.93,257.37,261.36, 262.23,261.41,266.40,263.90,264.69,270.03,268.18,270.22,269.04,272.52, 273.65,274.38,270.42,273.50,276.85,278.69,278.89,279.21,282.10,281.81, 285.31,286.31,286.01,284.76,290.00,287.86,290.09,290.50,290.07,295.64, 293.04,293.23,296.10,297.56,300.00,301.23,301.21,298.90,303.00,304.45, 308.04,306.50,308.64,310.61,310.80,311.18,310.76,313.50,315.55,314.36, 318.97,313.39,317.40,320.47,320.73,319.76,323.97,321.25,323.82,326.41, 9.21,9.58,10.29,11.88,12.46,13.66,13.88,15.00,16.38,16.86, 17.61,18.12,19.80,19.23,20.92,21.30,22.63,24.47,23.84,24.87, 26.49,27.66,28.70,29.91,30.17,29.65,31.64,32.28,32.73,33.34, 34.38,35.95,35.71,36.96,38.14,39.13,40.13,40.70,40.76,43.70, 44.10,43.55,45.29,46.83,47.03,46.06,49.40,50.28,49.89,51.46, 53.12,52.50,52.35,54.68,54.89,56.72,58.31,58.70,57.70,60.94, 59.97,60.73,60.38,64.23,63.62,64.75,64.62,66.45,66.94,70.02, 68.92,70.35,70.83,69.47,72.99,71.37,75.95,76.09,75.73,76.73, 77.54,78.89,77.88,80.40,82.24,84.05,83.73,82.39,84.83,87.25, 87.96,87.36,87.36,86.76,88.87,92.42,89.43,91.39,93.36,94.13, 96.37,97.85,97.37,96.01,98.72,100.96,102.31,101.86,102.36,103.24, 105.19,103.38,105.60,105.44,105.01,106.55,107.98,110.36,109.85,112.22, 109.41,113.98,113.18,114.10,118.67,115.11,118.12,117.72,118.31,119.48, 119.07,120.31,122.24,124.87,123.77,125.30,127.53,126.84,127.33,128.49, 129.83,130.37,129.45,132.81,133.54,135.60,134.52,135.41,137.01,137.17, 138.80,134.60,139.02,142.81,143.92,141.30,143.78,144.51,143.97,146.33, 145.86,148.21,150.04,149.09,152.94,151.20,153.01,152.10,154.77,155.82, 155.62,158.74,157.97,159.01,160.75,159.71,162.06,160.34,162.36,161.19, 164.59,164.38,163.67,169.13,169.99,168.94,171.82,170.99,171.51,170.24, 169.02,173.40,174.89,176.64,174.86,177.59,174.07,178.07,180.17,178.56, 180.07,182.49,182.72,183.25,184.42,182.01,184.66,187.04,189.14,186.13, 187.18,187.60,190.06,190.55,191.51,193.12,197.20,197.93,199.01,196.71, 197.47,200.95,197.99,200.70,201.89,204.24,203.35,204.32,208.31,207.62, 208.35,204.74,208.31,208.31,210.51,214.06,211.87,212.78,212.78,214.41, 216.35,215.44,219.72,218.06,219.14,223.00,221.62,221.38,222.91,221.52, 221.43,226.88,225.69,225.74,224.02,229.87,230.26,232.40,231.81,231.53, 227.62,234.42,233.37,236.55,235.34,238.77,234.86,237.47,238.89,239.69, 243.08,240.38,241.74,245.51,241.07,244.71,246.41,245.79,248.50,245.37, 249.88,248.50,252.98,254.63,251.59,252.52,259.31,256.33,255.35,260.74, 6.73,7.94,8.75,8.93,10.18,9.85,11.53,12.11,12.16,13.41, 14.29,14.72,15.13,16.02,16.21,16.65,17.80,18.49,18.89,20.32, 20.85,21.12,21.98,23.49,23.12,23.93,24.51,26.60,26.91,27.00, 27.49,28.56,28.99,28.79,30.24,29.52,30.70,33.10,33.18,33.97, 34.27,35.40,36.30,35.60,37.38,37.68,39.62,38.31,39.42,40.40, 41.42,40.92,41.88,42.65,43.60,43.43,43.77,45.72,45.76,47.34, 48.13,49.05,48.59,50.03,50.65,50.06,51.21,52.36,54.49,55.26, 56.12,54.64,54.16,57.24,56.98,57.70,60.16,59.77,59.22,61.08, 62.49,61.83,61.65,62.21,62.50,64.53,65.23,65.70,66.56,69.28, 67.35,67.87,69.06,70.53,73.64,72.04,70.51,73.78,71.86,75.33, 76.41,75.95,76.17,78.24,76.96,76.00,78.74,80.22,82.06,82.34, 80.12,81.31,82.28,82.36,82.46,84.73,83.95,87.66,87.39,87.15, 88.40,88.66,88.87,88.46,91.34,92.99,93.42,93.00,92.72,94.01, 94.48,93.48,96.86,98.68,98.51,101.10,102.27,97.27,99.79,101.08, 103.41,103.09,103.60,104.14,104.72,107.31,105.67,107.79,108.82,108.99, 111.13,111.08,110.42,110.05,110.47,111.78,113.97,112.18,115.52,115.00, 115.10,117.95,118.01,118.64,117.12,118.29,120.53,121.02,121.11,122.31, 123.28,123.79,126.40,125.37,128.51,124.43,126.72,125.86,128.56,127.02, 127.06,130.48,130.19,131.85,131.12,131.39,133.45,132.39,136.79,134.46, 135.78,135.14,136.08,137.69,140.97,139.11,140.13,139.05,140.09,140.91, 143.60,143.22,144.22,144.00,145.19,147.61,144.43,146.02,147.48,149.70, 149.34,151.27,151.37,147.49,151.77,153.34,154.51,154.34,154.12,153.25, 157.16,156.59,159.56,158.06,157.74,159.99,161.42,158.46,160.63,159.53, 161.93,164.07,165.54,166.17,162.91,165.14,167.38,169.71,167.05,169.39, 171.61,172.78,173.57,174.19,173.27,171.67,173.66,175.53,174.67,176.96, 172.82,175.59,180.60,180.62,179.22,180.90,177.64,180.98,181.52,184.07, 181.65,183.22,183.73,185.24,183.84,187.01,186.68,185.43,188.43,189.96, 187.99,188.91,190.47,189.54,194.51,195.71,191.44,195.80,193.22,197.55, 196.30,198.08,196.71,197.14,197.25,200.49,202.45,197.99,200.05,207.68, 5.60,6.12,6.14,7.17,7.84,8.65,9.08,9.79,9.77,10.25, 11.24,11.33,11.16,12.14,12.51,13.66,14.22,14.96,14.02,14.18, 16.34,17.67,18.32,17.18,18.86,18.14,18.89,20.05,20.89,21.35, 20.47,20.40,21.83,22.02,23.11,24.16,25.14,25.09,25.59,25.80, 27.03,27.91,28.72,28.00,29.34,29.61,30.00,29.89,31.18,30.63, 31.32,32.00,32.58,34.48,34.49,35.12,35.36,34.65,36.42,37.03, 37.12,37.45,38.99,39.16,38.75,41.05,41.83,40.72,41.41,41.22, 43.12,43.96,43.53,45.23,45.57,45.81,46.86,46.09,46.35,47.36, 47.51,48.88,49.25,51.23,49.61,51.35,50.15,52.32,52.31,52.41, 54.62,53.56,55.28,54.92,54.69,54.27,57.74,57.45,56.65,57.20, 57.33,58.38,57.26,59.72,59.46,61.64,61.49,61.97,64.13,62.66, 63.80,65.45,65.84,66.25,66.68,65.29,67.57,68.95,69.85,68.86, 70.09,69.81,70.66,71.50,72.68,70.89,73.38,73.79,73.18,72.79, 75.65,76.62,78.13,77.69,77.06,78.70,78.90,78.07,78.90,78.20, 81.49,78.37,82.87,81.53,81.31,81.50,82.79,83.61,84.00,84.54, 83.54,86.29,84.31,87.79,88.46,87.28,85.52,88.33,90.08,89.19, 93.07,92.88,89.89,92.17,91.06,94.53,92.82,95.51,91.63,95.74, 94.99,98.80,95.96,97.51,97.96,99.17,97.68,99.41,99.86,102.00, 97.96,103.37,100.85,100.54,102.42,105.03,106.10,102.78,107.07,104.78, 105.86,105.45,108.50,108.63,110.64,110.88,106.60,110.68,112.17,111.46, 112.08,110.68,112.09,110.60,114.56,113.58,113.67,116.20,115.00,115.52, 118.58,118.63,117.30,117.72,116.06,121.04,119.94,121.00,122.35,120.53, 123.28,121.49,123.60,124.85,125.45,123.50,124.57,125.75,124.99,124.63, 127.94,128.41,127.79,129.06,128.24,132.52,130.47,130.75,134.93,133.46, 132.98,133.29,133.26,134.93,134.22,135.26,136.29,137.50,137.45,136.14, 138.93,140.14,137.38,141.08,146.32,142.35,140.72,142.59,143.38,143.66, 141.89,143.97,143.50,144.97,143.56,148.11,146.47,147.86,146.17,146.32, 148.55,147.22,148.75,154.08,150.66,152.03,151.30,151.81,150.33,153.13, 153.78,153.87,156.22,157.87,157.77,157.31,156.87,156.10,157.41,160.42, 4.49,4.95,5.06,5.92,5.21,6.26,6.98,7.68,7.51,7.66, 8.22,8.95,9.04,9.47,9.89,10.71,11.04,11.81,13.10,11.80, 12.71,12.33,13.73,14.54,14.53,14.96,14.56,15.16,15.87,17.19, 16.59,17.85,18.10,18.36,18.15,18.93,18.57,20.21,20.00,20.33, 20.09,21.41,21.37,22.39,22.78,22.80,24.14,24.73,23.79,25.30, 23.77,25.88,27.02,27.67,26.63,26.74,27.95,28.07,28.17,29.42, 28.85,29.19,30.35,30.11,31.50,32.11,31.87,32.22,31.63,32.46, 33.89,34.15,33.97,34.26,37.03,33.13,34.36,38.08,34.63,36.61, 37.79,38.50,37.04,39.24,39.46,39.11,41.16,39.60,40.77,41.13, 42.46,43.17,42.39,43.36,41.48,44.58,44.73,44.62,46.70,44.81, 44.50,45.30,47.77,47.20,47.35,48.02,49.08,48.68,50.12,50.54, 48.60,49.51,50.51,50.28,51.07,52.17,55.61,52.63,54.38,54.90, 53.46,55.33,54.38,55.49,56.23,54.73,56.61,57.17,57.96,57.16, 57.98,60.30,60.45,60.64,59.22,59.87,60.29,59.55,61.85,63.15, 63.30,61.38,63.45,65.59,64.14,63.87,64.85,65.81,64.39,65.38, 65.84,67.81,66.00,69.45,68.34,69.59,67.43,69.71,69.60,70.51, 69.54,71.87,71.69,73.31,71.23,72.45,72.44,73.48,74.99,73.62, 74.64,73.70,75.10,74.70,76.72,76.76,79.43,77.92,78.47,80.37, 78.57,78.08,80.45,80.95,78.76,80.39,81.43,82.16,81.67,84.57, 81.69,83.87,84.13,85.63,85.93,84.93,87.75,85.07,87.49,86.21, 87.19,88.39,84.85,88.97,89.08,91.39,89.97,87.83,89.49,92.17, 93.33,92.38,91.78,93.09,93.25,92.88,95.12,95.20,94.45,94.24, 94.70,95.48,98.14,95.45,98.73,97.73,99.86,100.93,98.43,97.11, 99.80,99.82,99.73,100.39,99.77,101.06,101.60,101.07,104.24,105.23, 103.77,106.38,104.11,106.93,104.29,105.14,106.74,105.32,104.24,108.66, 104.41,109.33,107.52,110.28,108.21,111.23,111.55,111.87,110.85,109.84, 113.73,114.12,112.51,113.35,113.09,114.94,114.39,114.44,116.24,116.50, 117.35,116.07,116.01,117.75,118.26,119.73,117.81,116.17,118.13,120.98, 118.28,121.59,122.22,120.60,122.32,122.14,123.62,122.55,126.24,123.68, 3.38,3.83,4.25,4.57,3.88,5.07,4.68,6.28,6.11,6.08, 6.36,6.66,7.21,7.28,7.41,7.53,8.60,8.82,9.52,9.30, 9.68,10.05,10.31,10.21,10.53,11.36,11.55,11.69,11.94,12.57, 13.34,13.70,14.25,14.76,13.61,14.45,14.37,16.72,15.62,16.74, 17.25,16.25,17.48,17.06,18.27,16.39,17.59,19.27,19.50,19.84, 19.24,19.30,20.11,20.47,21.86,20.81,20.74,22.43,22.06,23.34, 23.33,23.24,23.33,24.61,24.36,24.26,25.39,25.42,25.16,25.06, 25.38,27.33,26.89,26.26,25.83,28.87,28.38,27.04,27.98,29.85, 29.00,29.71,30.19,30.66,30.85,31.04,30.90,32.06,31.64,30.85, 32.37,33.08,32.09,32.71,34.00,33.77,34.42,33.09,35.49,34.53, 37.38,36.17,35.75,36.55,36.60,36.53,38.77,37.58,37.44,37.76, 38.97,38.86,37.83,38.58,39.88,39.77,42.61,41.58,41.38,41.38, 41.19,42.75,42.95,44.23,43.80,42.14,44.81,44.63,44.57,44.05, 44.63,44.84,46.53,44.50,46.76,48.46,47.49,46.54,47.13,49.82, 47.64,50.00,50.29,47.64,48.74,48.39,49.00,49.78,50.57,51.52, 53.17,53.58,52.15,53.80,52.39,54.33,53.90,52.53,55.32,55.50, 54.17,54.72,54.94,55.60,56.09,55.99,58.52,58.32,58.97,58.19, 58.90,57.33,59.68,57.81,59.82,59.98,60.96,60.21,60.10,59.22, 62.04,60.87,62.58,64.05,62.57,64.14,62.82,63.35,64.82,63.71, 65.11,62.28,64.92,64.33,65.77,66.96,64.13,66.87,68.03,69.66, 67.97,69.72,69.45,69.64,70.34,70.45,72.02,69.31,69.73,71.77, 70.65,71.11,71.00,71.72,72.10,75.29,73.14,73.68,72.99,73.93, 73.15,75.22,74.03,73.63,75.38,76.99,79.11,76.33,77.17,77.08, 76.86,76.60,79.87,78.30,81.01,75.85,76.78,82.07,80.71,80.48, 81.98,81.89,80.99,82.84,83.17,82.71,82.66,82.34,85.64,83.90, 85.01,83.26,83.39,84.45,83.95,87.44,86.51,85.73,88.45,88.13, 87.09,86.77,89.25,88.84,88.24,89.71,89.46,89.10,92.11,89.00, 90.31,93.19,90.36,94.64,93.36,91.05,91.85,94.25,96.61,92.18, 95.83,95.26,94.63,94.79,95.89,92.86,96.55,95.98,98.06,96.61, 2.51,2.97,2.98,3.03,3.42,4.37,4.16,4.55,4.72,4.37, 5.30,5.28,6.08,5.45,5.63,6.59,7.03,6.64,7.01,7.38, 8.11,8.18,8.46,8.28,8.36,9.08,9.53,9.69,9.69,9.11, 9.94,10.63,11.24,10.96,10.65,11.30,12.02,11.78,12.62,12.31, 12.26,13.08,14.29,13.98,13.54,14.18,14.13,14.46,14.35,15.53, 14.98,15.26,15.08,15.02,16.05,16.48,16.43,17.72,17.71,17.45, 16.44,17.67,18.07,19.26,18.24,17.93,19.60,19.76,18.87,19.43, 19.89,20.47,21.17,20.84,20.18,21.76,22.34,20.85,22.82,22.18, 22.88,22.65,23.09,23.60,24.32,23.78,24.45,23.29,25.66,25.06, 25.96,26.88,26.69,25.39,25.86,26.78,26.30,26.34,27.65,26.54, 27.58,28.94,29.65,28.49,29.29,28.88,29.76,30.55,30.48,29.77, 30.73,30.04,31.90,31.10,30.72,31.24,33.12,31.87,33.45,32.99, 31.85,33.18,34.29,34.64,34.27,33.61,32.53,32.84,35.03,34.69, 35.21,34.28,34.53,35.38,36.38,36.72,38.17,35.06,38.14,36.30, 37.56,38.74,37.53,38.96,36.95,38.77,39.03,39.06,40.59,39.61, 40.35,38.99,39.51,41.73,41.16,42.04,39.78,43.39,40.56,43.65, 43.38,43.29,43.68,45.69,43.89,43.68,42.11,45.72,44.46,45.84, 43.11,46.57,44.98,46.29,47.80,49.23,46.50,47.09,48.22,46.34, 48.88,49.55,49.09,49.42,49.20,51.32,48.24,51.31,49.73,50.92, 51.12,51.95,51.44,51.55,53.68,51.35,52.32,52.23,51.71,52.79, 53.18,52.51,54.23,53.25,53.78,53.94,55.83,54.59,55.40,55.25, 56.81,55.02,56.08,57.61,57.57,54.99,56.64,56.60,57.01,56.47, 56.30,59.03,57.69,57.24,58.40,59.18,60.19,58.92,58.68,60.14, 58.06,57.38,61.06,61.16,62.48,63.29,62.11,61.08,63.27,63.86, 63.15,61.85,63.86,65.57,63.77,63.66,61.81,65.44,63.39,66.06, 66.60,65.58,66.39,66.31,65.84,64.11,68.88,67.11,66.67,68.16, 67.74,68.50,70.05,67.75,69.44,69.40,71.43,70.83,69.58,69.44, 69.34,70.06,69.96,71.96,71.45,72.09,70.58,72.00,72.62,71.71, 72.46,71.25,71.40,72.94,75.90,76.95,76.01,74.19,72.92,76.04, 1.95,2.35,2.65,1.61,2.75,3.27,3.16,3.43,3.20,4.12, 4.14,3.73,4.13,4.91,4.64,5.12,5.57,5.78,6.06,5.47, 5.71,6.27,6.17,6.70,6.73,6.86,6.87,7.36,7.54,8.40, 8.18,8.27,8.05,8.84,8.64,9.58,9.51,8.99,10.21,9.30, 9.89,9.59,10.23,11.12,11.19,10.96,10.36,10.82,10.74,10.99, 11.33,11.74,12.19,11.02,12.94,12.38,12.99,12.92,13.52,14.31, 14.25,14.16,14.12,14.40,14.70,15.18,15.57,14.47,14.84,15.11, 15.58,15.75,16.15,16.35,16.53,16.61,17.34,17.32,17.20,17.00, 18.43,16.88,18.42,18.20,18.43,17.59,19.27,18.25,20.59,18.53, 18.50,20.00,20.78,20.43,18.85,20.59,20.63,20.91,20.97,20.68, 20.71,21.78,22.05,22.70,23.44,22.39,22.87,23.49,24.08,23.84, 23.67,23.39,23.56,23.73,24.72,24.74,24.17,25.01,25.84,26.17, 27.48,25.25,25.92,27.40,27.52,26.08,26.02,27.02,25.42,27.28, 28.34,26.43,26.81,28.36,28.27,29.00,30.07,25.85,28.55,30.10, 29.32,29.21,29.89,30.50,30.50,30.68,28.77,30.39,32.39,30.00, 31.04,31.05,31.06,31.33,32.52,33.99,32.68,31.63,31.99,33.23, 33.71,32.95,34.00,33.48,33.51,34.51,34.92,35.44,34.99,36.21, 35.02,34.07,35.45,35.85,35.79,36.06,36.75,36.04,37.58,36.72, 36.69,38.12,36.27,36.05,38.34,39.14,38.44,36.96,37.53,37.88, 38.51,40.80,39.98,39.80,41.31,39.85,40.48,40.30,41.16,39.86, 42.15,40.76,42.47,40.67,43.27,43.16,42.86,41.03,44.69,42.81, 43.40,41.98,44.91,43.65,43.09,43.48,44.27,43.95,46.26,42.61, 43.71,43.44,45.22,46.92,45.44,44.88,45.47,45.55,45.74,46.69, 47.14,46.46,46.87,48.22,49.34,46.33,48.16,46.90,47.60,48.56, 47.90,49.07,48.83,49.01,49.33,50.20,48.69,50.55,49.99,50.07, 49.48,51.19,51.00,51.12,50.07,52.08,52.30,51.60,51.31,54.37, 51.53,52.82,52.54,50.38,53.74,52.50,54.83,53.98,52.87,55.87, 54.40,55.12,54.59,57.02,55.01,55.51,56.43,55.55,56.48,57.18, 56.27,55.30,57.73,56.01,57.82,59.04,55.92,57.14,57.90,58.79, 1.41,1.57,2.15,1.96,2.31,2.33,2.57,2.40,2.65,3.30, 3.29,3.12,3.22,3.79,3.74,4.19,3.60,4.14,4.44,5.17, 4.81,4.56,4.58,4.98,4.88,5.62,4.73,5.89,5.70,5.96, 5.48,6.26,6.20,7.19,6.38,6.44,7.21,7.39,7.44,7.22, 7.68,7.90,7.76,7.63,8.86,7.75,8.33,7.78,8.66,8.65, 8.04,9.39,10.35,9.91,9.47,9.77,10.94,10.56,10.99,10.32, 10.74,10.88,11.49,10.64,11.43,10.86,11.48,11.49,11.79,12.29, 13.18,11.72,12.38,12.51,13.17,13.12,13.55,13.64,13.30,13.73, 12.92,13.84,14.10,14.21,14.14,13.32,14.94,14.34,15.20,15.33, 14.72,14.65,16.30,15.65,16.28,16.76,16.74,15.40,16.35,16.70, 18.14,17.04,16.74,17.42,16.99,16.30,17.04,17.58,18.85,17.83, 19.34,19.04,17.39,18.81,17.63,19.34,19.16,18.43,19.83,18.65, 18.71,20.26,20.87,19.04,19.72,20.73,20.02,21.17,20.66,20.69, 21.24,21.00,20.61,21.70,21.13,21.30,20.78,22.22,23.09,23.61, 22.76,22.41,23.76,22.80,23.30,22.45,23.72,23.64,23.92,24.40, 24.10,25.08,24.69,24.08,26.36,25.51,26.18,24.67,26.09,26.31, 25.20,25.07,26.33,26.26,24.96,25.60,26.49,26.25,26.70,26.81, 26.75,27.11,27.49,28.12,28.43,28.11,27.57,26.86,28.91,29.71, 27.03,28.73,28.83,29.37,28.76,28.96,29.91,28.39,30.32,29.46, 29.78,30.83,31.89,31.00,32.47,31.71,32.07,30.94,31.15,31.92, 30.87,30.02,31.78,32.04,32.46,32.95,33.30,31.66,33.74,32.49, 32.04,32.96,33.80,34.98,34.45,34.62,34.80,33.28,33.87,33.73, 34.74,35.36,33.66,33.89,35.45,36.05,35.43,36.70,35.96,34.98, 36.05,37.44,36.48,36.35,37.09,37.80,37.83,39.01,37.80,38.52, 36.39,37.48,37.03,36.45,40.29,38.37,40.16,39.77,40.03,39.86, 38.13,38.95,38.97,41.38,38.08,41.14,41.23,41.73,41.11,42.00, 40.72,40.80,40.05,41.77,42.05,40.74,41.36,40.78,43.83,40.39, 41.63,41.94,42.84,43.51,41.77,42.77,42.68,42.84,43.53,41.70, 44.84,44.03,43.43,43.65,45.15,44.95,43.59,45.14,46.04,45.51, 1.04,1.69,1.60,1.40,1.86,1.79,1.61,1.77,2.43,2.53, 2.33,2.32,2.62,2.93,2.98,2.79,2.99,3.71,3.78,3.40, 3.62,3.38,4.01,4.33,3.86,4.14,4.54,3.84,4.58,5.02, 4.78,4.88,5.04,5.00,5.10,5.43,5.47,5.65,5.39,6.15, 6.29,5.80,6.22,6.94,5.62,6.02,5.97,6.40,6.82,7.82, 6.80,7.11,7.78,6.59,7.04,7.72,7.19,7.48,8.06,8.79, 8.51,8.86,7.88,9.15,8.85,8.49,8.72,9.06,8.23,9.15, 9.23,9.54,10.38,10.52,9.78,9.21,10.53,10.26,10.62,10.80, 10.39,10.91,10.73,10.44,11.54,11.76,11.28,10.15,11.95,11.28, 11.18,11.01,12.15,10.61,12.56,12.01,12.01,12.25,12.15,12.80, 13.29,12.04,12.65,12.75,13.66,12.98,14.46,13.83,12.65,13.60, 13.41,13.72,13.74,13.52,13.65,15.19,15.08,14.69,14.24,15.15, 15.04,15.43,15.09,15.73,15.43,15.15,16.07,15.09,16.20,16.46, 17.94,16.27,16.78,16.73,16.05,16.30,16.41,16.87,18.67,16.97, 17.08,16.87,17.06,17.73,18.01,18.97,17.19,17.92,19.33,19.38, 18.38,18.99,17.47,19.64,19.32,18.28,19.44,20.30,19.41,18.69, 19.58,19.64,19.41,19.59,20.72,20.22,19.73,20.36,19.12,21.59, 20.59,21.98,20.68,22.18,21.89,21.77,21.49,21.14,20.15,21.15, 23.32,22.36,22.51,22.11,22.29,22.59,21.66,23.80,23.55,24.06, 23.00,22.35,22.82,24.52,24.10,25.31,24.42,24.26,23.50,24.76, 25.08,24.79,23.71,25.25,23.74,24.74,24.21,26.31,25.97,26.58, 25.72,27.10,26.39,25.27,25.29,25.18,26.59,26.65,25.58,27.94, 26.07,27.45,26.41,26.78,26.48,28.86,28.49,27.04,27.25,27.54, 27.82,27.80,29.17,30.42,27.98,28.68,27.11,28.50,28.55,29.05, 30.10,30.82,28.28,29.09,29.92,28.53,29.20,30.22,30.55,29.04, 30.76,29.70,30.73,28.91,30.67,30.97,31.31,31.20,30.46,32.09, 32.59,30.92,31.12,31.43,31.25,32.63,32.09,30.38,32.93,33.22, 31.13,33.89,32.99,33.32,31.71,34.27,31.64,33.80,34.54,32.96, 32.32,35.08,35.13,33.68,33.85,34.91,33.37,33.52,35.87,33.56, 0.82,1.21,1.14,1.41,1.32,1.54,1.49,1.80,1.42,1.67, 1.72,2.29,2.31,2.00,1.82,2.14,2.41,2.52,2.46,2.79, 2.25,2.79,3.03,3.27,3.06,3.13,3.41,3.16,3.69,3.54, 3.43,3.92,3.63,4.31,4.08,3.81,4.07,4.02,3.96,4.76, 4.64,5.58,5.14,3.86,4.67,4.96,4.89,5.58,4.76,5.28, 5.21,5.44,5.51,5.76,5.96,5.74,6.20,5.84,5.96,5.70, 6.02,6.78,6.70,6.58,7.04,6.76,7.70,6.99,6.94,7.02, 7.24,7.68,6.60,7.88,8.37,7.37,8.42,7.68,7.15,7.52, 7.19,8.11,7.77,7.85,7.34,8.90,8.30,9.00,8.86,9.22, 8.98,9.50,9.81,8.99,9.18,9.32,9.61,10.65,9.85,9.22, 9.53,10.86,9.91,9.76,10.48,10.28,10.61,10.75,11.05,10.59, 10.08,10.83,10.75,11.59,11.43,11.32,11.41,12.09,11.63,10.56, 11.03,11.80,12.43,12.12,13.33,11.91,12.16,12.70,12.39,11.98, 13.21,12.94,13.30,12.15,13.17,13.22,12.88,13.27,12.88,14.30, 13.47,12.72,12.91,14.13,13.61,13.97,13.83,14.04,14.88,14.15, 14.72,14.02,13.60,14.41,15.23,15.47,15.51,14.93,15.84,15.99, 15.87,16.16,15.25,15.72,15.74,15.42,16.87,15.82,14.16,16.29, 16.15,16.34,15.83,17.57,16.47,16.65,16.76,16.88,17.49,16.55, 16.19,16.24,17.50,18.05,17.47,17.18,18.41,15.94,18.46,17.43, 17.92,17.67,18.21,18.57,18.60,17.79,18.56,18.98,17.99,18.55, 19.07,19.19,18.71,17.76,19.73,19.21,19.32,19.47,19.60,19.57, 19.94,19.52,20.39,20.23,19.41,19.45,19.92,20.53,20.57,19.66, 20.10,18.99,21.32,21.75,22.39,22.23,22.01,20.46,21.30,21.15, 21.33,24.27,21.56,22.42,22.48,22.06,21.99,22.17,21.43,22.11, 22.80,22.67,23.11,22.35,21.45,22.38,24.30,23.51,24.00,22.20, 24.51,23.03,24.43,23.64,23.64,24.28,23.84,22.87,24.11,25.22, 23.59,25.07,24.10,25.26,23.77,25.41,24.64,24.18,26.31,24.36, 25.26,24.53,25.53,26.76,25.18,26.11,24.75,25.75,26.11,25.60, 26.40,27.97,26.89,26.21,25.84,25.32,25.82,27.76,27.43,28.15, 0.69,0.84,0.79,1.16,1.08,1.00,1.19,1.08,1.39,1.17, 1.52,1.30,1.84,1.44,1.79,1.46,1.40,1.86,1.90,2.15, 2.15,2.60,2.10,2.17,2.21,2.72,2.50,2.52,2.81,3.04, 2.67,2.74,2.55,3.68,2.69,2.91,2.84,3.31,2.97,3.47, 3.27,3.53,3.51,3.75,4.06,3.41,3.97,4.30,4.10,4.09, 4.12,3.84,4.01,4.66,4.54,4.83,4.62,4.58,4.94,4.32, 4.89,4.42,4.57,5.64,4.79,5.92,5.58,5.73,5.09,5.30, 5.70,5.25,5.34,5.99,5.09,5.71,6.68,6.06,6.02,6.52, 7.58,6.50,6.51,6.36,6.64,5.58,6.80,6.58,7.39,6.66, 6.39,6.83,5.99,6.50,7.70,6.80,7.19,7.30,7.30,7.07, 7.04,6.89,7.26,8.14,8.51,8.69,9.04,7.64,8.29,8.95, 8.38,8.53,8.53,9.46,7.99,8.75,8.76,8.60,8.61,8.81, 9.03,8.11,9.55,8.89,9.21,10.25,9.64,9.93,9.49,9.72, 10.05,10.19,9.65,9.75,9.29,9.37,9.93,9.72,10.13,10.03, 10.17,10.87,10.39,10.50,10.51,10.10,10.82,10.87,11.21,11.01, 11.55,12.24,10.59,11.02,11.93,10.48,11.12,11.72,11.98,10.62, 11.30,12.09,12.74,10.48,12.87,11.45,12.54,13.50,12.65,12.23, 11.91,13.62,12.66,12.43,13.00,12.64,13.30,13.43,13.10,13.39, 12.40,13.15,12.93,13.49,13.07,14.02,12.85,13.60,12.70,12.73, 13.62,14.10,14.07,14.35,14.04,14.89,14.05,14.19,14.11,13.60, 13.81,14.03,13.86,15.39,14.22,15.79,15.46,13.44,15.19,15.11, 15.94,14.84,17.38,14.13,15.52,15.48,15.70,14.83,16.32,15.75, 15.64,15.71,16.25,15.99,16.44,16.02,16.72,17.50,15.87,16.39, 17.41,16.41,18.75,17.10,17.15,16.97,18.05,16.64,18.00,16.77, 18.17,17.21,18.14,17.27,17.80,17.96,18.33,17.01,18.13,17.89, 16.57,17.95,17.80,18.68,18.03,18.93,19.13,18.10,18.12,18.29, 18.31,18.24,18.94,19.45,18.84,18.67,18.18,19.37,19.21,18.33, 19.41,19.84,19.61,19.55,18.47,18.06,19.80,19.52,19.47,21.14, 21.33,20.14,19.03,19.68,21.46,19.76,20.22,19.95,20.56,20.24, 0.60,0.45,0.55,0.50,0.96,0.86,0.71,1.09,0.96,0.97, 1.04,1.10,1.24,0.89,0.97,1.57,1.21,1.70,1.62,1.52, 1.66,1.42,1.93,1.94,1.64,1.51,1.78,2.03,2.43,2.18, 2.36,2.31,2.05,2.14,1.79,2.13,2.51,2.33,2.63,2.71, 2.32,2.10,2.37,3.22,2.91,2.77,3.24,2.67,2.87,3.09, 3.35,3.48,2.89,3.88,2.68,2.94,3.59,3.78,3.46,3.77, 4.07,3.67,4.06,3.95,4.58,3.67,3.82,3.32,3.43,5.02, 4.36,4.55,4.85,4.95,4.35,4.26,5.31,4.54,4.80,4.71, 4.54,4.77,4.71,4.47,5.25,5.00,5.02,4.70,5.36,5.72, 5.54,5.28,5.63,4.58,5.26,5.87,5.59,4.66,5.44,6.45, 5.10,5.46,5.29,5.43,6.99,6.14,6.54,5.69,6.42,6.03, 6.22,6.41,6.82,6.19,6.52,6.44,6.15,7.27,6.66,6.81, 6.54,6.65,7.75,6.37,7.45,6.76,6.52,7.23,6.66,7.08, 6.67,6.58,8.05,7.48,7.23,7.32,8.47,8.08,7.28,7.48, 8.41,8.21,7.82,7.32,8.08,8.70,8.74,8.52,8.68,8.48, 7.90,8.79,7.66,8.43,8.67,8.95,9.89,8.95,9.24,10.03, 9.11,9.75,8.88,8.84,8.62,8.89,9.84,10.10,8.62,9.88, 10.08,9.28,9.60,9.61,9.69,9.75,10.44,9.77,9.51,9.60, 10.64,10.62,10.60,10.39,10.08,9.76,10.03,10.48,11.36,10.59, 10.43,10.84,11.14,11.18,12.20,11.09,10.38,10.79,10.33,11.85, 10.80,10.47,10.72,10.88,11.39,11.94,11.65,12.56,11.21,11.96, 11.79,11.71,11.43,11.43,11.86,12.46,11.91,11.99,12.74,11.29, 12.09,12.87,11.28,11.75,13.53,12.54,13.44,12.43,13.84,12.65, 12.86,12.48,12.47,12.24,12.50,12.47,12.41,13.22,13.58,12.68, 13.68,12.59,14.00,13.52,14.20,12.79,13.90,14.42,13.15,13.42, 14.67,14.16,13.00,12.93,14.07,13.74,14.62,14.87,14.04,14.31, 15.06,13.04,14.42,13.45,14.93,15.64,14.90,14.55,13.79,15.55, 14.64,15.47,15.13,15.26,14.12,15.28,15.84,15.14,15.71,15.07, 15.35,14.14,15.02,15.40,15.13,15.79,16.14,14.80,15.40,14.94, 20.18,21.79,23.39,26.60,28.32,29.88,31.47,34.71,35.45,36.84, 38.98,42.29,42.57,45.60,47.61,50.38,49.98,53.72,56.34,56.57, 59.37,61.22,63.22,65.02,66.35,68.55,70.40,74.00,74.99,75.89, 79.88,80.11,81.48,84.17,84.70,89.40,90.34,91.04,93.31,95.17, 97.39,97.60,102.47,102.36,105.74,104.62,108.06,111.95,113.20,116.19, 117.56,119.67,118.43,122.10,124.08,127.42,126.76,129.40,132.48,133.84, 134.60,137.97,140.90,144.16,146.16,146.24,146.80,149.70,153.31,152.02, 154.08,157.02,158.86,160.11,166.40,166.49,169.47,169.16,171.43,173.62, 174.23,174.70,180.98,181.24,184.55,184.34,186.02,189.76,191.92,193.20, 193.77,197.36,199.83,200.76,202.93,204.39,206.43,207.64,208.46,215.18, 215.47,216.39,215.81,218.74,219.83,221.81,228.85,229.63,228.26,229.50, 234.88,235.70,237.83,240.18,239.28,245.38,248.98,248.69,250.77,253.30, 252.77,254.14,259.96,257.99,260.20,260.96,265.92,266.90,269.46,269.55, 273.18,271.75,274.67,277.11,281.34,283.76,284.06,285.40,286.91,288.00, 289.43,292.06,295.79,296.99,298.50,302.97,305.31,306.08,308.30,307.94, 308.62,309.60,315.77,318.18,318.41,320.47,319.86,328.18,331.06,326.21, 330.86,330.40,338.02,337.17,336.43,340.40,342.24,343.18,348.91,347.82, 349.38,347.02,352.04,357.77,358.84,359.55,361.13,364.21,364.95,366.76, 371.12,369.71,372.68,374.29,377.75,376.27,380.24,384.03,381.69,383.93, 383.95,389.36,386.74,391.56,393.21,399.77,398.17,403.56,403.38,409.02, 408.41,409.20,410.96,412.95,416.04,419.97,417.66,423.01,425.55,426.61, 428.76,432.40,430.15,433.68,434.16,435.97,438.39,439.47,444.38,446.54, 445.17,448.10,450.25,450.31,452.80,457.63,459.84,456.83,461.91,464.10, 465.19,469.32,470.13,470.46,475.01,475.59,477.44,476.93,480.78,483.62, 485.59,485.94,493.12,491.13,493.60,494.80,497.45,498.97,506.87,501.04, 506.44,498.28,511.71,505.73,514.33,513.61,515.22,517.39,519.24,521.66, 526.90,525.09,529.77,527.44,530.04,534.26,535.76,538.50,540.29,545.85, 541.24,545.06,541.93,548.43,548.87,553.33,551.74,556.75,555.43,559.84, 562.82,560.19,564.53,570.72,567.97,567.84,579.26,576.61,577.31,582.09, 16.09,17.69,19.14,20.38,23.14,24.16,25.39,26.88,28.95,29.44, 30.83,33.98,35.64,35.92,37.76,39.25,42.70,42.87,44.15,45.57, 46.90,47.90,52.07,51.06,53.61,55.45,57.13,57.79,60.25,60.29, 63.56,65.60,67.09,67.95,70.49,71.15,71.64,73.61,75.28,76.16, 78.38,80.13,83.60,83.14,84.97,85.65,88.85,90.30,92.26,91.40, 93.62,96.63,96.98,100.60,100.61,101.74,104.79,105.44,106.20,108.60, 110.77,112.80,111.90,115.66,115.05,117.63,120.58,119.61,122.20,125.65, 124.64,129.70,129.80,131.74,131.10,132.55,133.19,137.96,136.21,138.69, 141.29,142.45,146.52,145.80,149.54,148.97,149.88,151.08,152.99,157.06, 156.83,159.57,159.59,160.13,163.51,165.63,168.80,168.15,168.35,173.11, 173.05,171.54,175.29,175.77,178.55,179.97,181.95,184.01,187.63,186.13, 188.76,188.71,190.31,193.33,195.83,193.73,197.28,193.45,197.84,203.56, 202.35,205.59,206.55,208.90,209.86,213.28,212.19,213.98,216.31,217.53, 220.27,221.56,220.33,220.93,228.16,227.98,230.32,231.20,232.67,238.01, 232.52,234.79,236.89,241.23,242.08,241.62,243.65,245.85,246.04,249.52, 249.49,251.98,252.84,258.05,253.01,258.27,261.07,259.30,263.86,263.45, 266.27,268.90,267.33,272.79,273.11,274.79,274.79,276.89,278.06,280.57, 281.51,286.92,284.90,285.09,288.99,290.46,289.71,293.42,297.83,295.94, 294.36,300.94,302.19,301.94,303.29,307.01,306.85,306.75,308.39,310.19, 313.86,311.39,316.59,317.82,323.95,327.24,320.85,323.59,326.31,330.04, 326.90,332.02,332.45,330.86,335.30,336.17,339.07,337.19,344.49,342.72, 346.69,349.63,345.34,352.33,352.72,351.04,354.33,358.32,356.87,361.11, 362.64,361.56,361.32,364.42,368.80,367.00,372.81,374.45,371.14,375.65, 375.34,379.92,381.03,382.82,383.12,381.39,384.01,389.34,389.60,393.45, 390.76,392.87,398.26,394.57,400.29,396.36,400.31,400.45,406.40,404.31, 407.01,404.83,408.18,413.86,410.45,414.72,414.75,419.60,417.86,421.06, 421.46,424.74,428.88,426.54,432.60,429.45,435.65,432.40,438.33,437.18, 438.56,441.47,442.25,444.64,442.46,448.28,449.09,456.23,454.79,453.16, 455.05,457.55,459.53,460.32,461.48,460.08,462.03,464.73,465.16,470.67, 13.27,14.63,15.42,17.19,16.97,19.15,20.62,22.02,23.32,24.34, 26.02,26.52,28.67,28.97,30.27,31.88,33.02,34.78,36.46,37.55, 38.05,38.90,39.92,41.74,43.74,45.26,46.89,46.42,48.92,48.96, 50.48,52.78,53.39,54.27,57.03,57.13,58.02,59.12,60.85,61.66, 63.18,64.51,67.35,66.81,68.59,69.71,71.80,71.36,74.06,76.39, 76.30,76.65,79.40,80.97,80.90,82.06,83.89,84.33,84.28,87.86, 86.55,89.69,90.90,93.14,92.99,91.21,96.66,99.55,98.70,98.45, 101.62,100.56,105.59,104.15,103.76,106.73,109.18,109.74,111.44,112.97, 114.18,114.33,116.41,118.17,117.07,119.98,120.50,121.29,124.28,125.19, 126.40,127.69,128.24,129.95,130.93,129.73,135.35,137.85,135.88,139.10, 136.87,138.96,142.56,140.84,148.48,147.05,148.49,145.84,148.65,148.20, 152.72,151.05,154.06,155.93,156.82,156.63,159.75,158.73,159.35,164.12, 166.68,167.79,167.59,168.62,171.16,168.45,173.50,172.96,175.31,175.57, 175.13,179.02,180.37,181.07,180.76,183.40,183.75,184.35,185.90,187.04, 190.77,190.38,190.78,190.52,194.28,196.05,198.93,198.09,202.48,204.45, 200.87,201.06,204.56,204.35,203.26,208.24,208.46,207.86,217.27,211.78, 217.77,215.53,215.96,214.94,216.30,220.35,222.27,224.55,224.47,225.65, 228.22,225.87,228.66,226.80,229.57,233.57,233.42,238.18,237.66,235.42, 237.11,239.96,244.47,242.40,247.73,247.23,246.49,249.80,249.29,252.71, 255.53,254.12,255.20,257.15,253.33,260.39,259.73,260.00,259.39,262.96, 261.93,266.62,263.13,270.71,271.42,268.17,270.84,272.82,273.62,274.58, 275.29,276.78,279.26,278.25,283.04,283.25,286.73,285.00,288.50,289.13, 292.99,291.39,290.20,288.24,296.44,293.63,295.13,297.27,301.52,302.32, 300.51,301.91,302.29,302.11,306.30,310.73,311.91,310.55,315.39,313.98, 314.97,316.59,317.98,317.58,319.17,321.64,322.70,323.44,325.23,325.37, 327.68,327.05,327.82,333.05,328.90,330.58,335.33,337.93,338.94,336.47, 339.37,340.21,342.95,343.98,346.59,346.53,346.09,349.39,350.35,350.20, 354.15,352.90,354.99,359.04,359.93,356.79,355.65,361.37,362.29,366.78, 369.66,372.22,366.88,368.25,370.92,372.70,373.12,376.37,369.75,378.89, 10.59,11.79,12.91,13.80,14.19,15.61,16.62,17.35,17.28,19.16, 20.58,21.49,22.21,22.36,25.31,25.89,27.29,26.70,28.06,29.18, 30.20,31.84,32.64,34.53,34.54,35.92,36.67,37.02,38.97,39.53, 40.23,42.11,42.52,44.30,43.46,45.16,47.23,47.37,49.23,49.16, 50.50,51.82,52.41,53.16,53.59,56.80,56.49,57.10,59.74,59.06, 61.86,63.09,62.64,64.33,63.77,64.95,67.00,66.45,67.98,71.71, 68.55,70.76,71.89,73.18,76.23,76.19,75.77,78.96,78.89,82.57, 82.74,81.18,83.75,84.27,83.34,85.75,87.96,87.80,90.03,89.04, 91.81,92.56,92.76,93.66,94.16,95.38,95.59,97.71,99.81,99.91, 100.37,100.97,103.83,103.69,105.95,108.21,106.53,108.33,108.18,108.57, 111.34,110.39,112.45,114.19,113.30,116.98,119.55,119.59,118.81,120.58, 119.86,123.42,123.21,123.65,121.33,125.76,126.79,126.14,129.15,129.02, 130.32,132.24,129.75,135.34,135.10,136.02,136.94,139.37,141.14,140.81, 141.35,143.37,144.04,144.09,143.37,146.45,145.32,147.48,148.51,155.38, 151.82,151.83,151.19,155.06,155.03,156.23,155.16,157.75,156.97,160.50, 159.76,161.36,162.63,163.47,162.78,165.59,168.36,166.91,170.55,170.09, 169.10,174.37,171.74,173.99,177.69,177.68,177.89,180.21,179.11,183.88, 179.75,183.25,182.23,183.42,184.45,183.82,185.88,191.30,186.42,190.32, 192.01,192.16,195.19,194.76,196.80,193.92,199.18,196.91,200.62,203.27, 202.08,203.18,204.90,205.53,205.14,206.75,209.23,208.12,210.48,209.67, 210.21,212.39,214.75,220.15,214.55,218.58,220.21,219.97,217.97,220.23, 221.22,222.04,219.05,225.54,224.96,224.50,229.06,226.84,229.89,231.17, 231.18,230.24,233.86,238.22,233.95,238.08,235.65,239.78,242.14,243.64, 242.48,242.45,245.74,244.53,249.11,246.92,249.14,248.49,250.47,247.74, 251.73,256.07,254.00,253.70,252.21,259.74,259.22,259.45,258.04,260.16, 263.65,261.74,264.18,267.28,262.82,269.57,266.51,270.50,273.42,273.66, 274.31,274.92,274.73,275.67,276.60,272.43,279.99,279.04,278.98,282.27, 282.39,278.79,285.59,285.55,284.15,290.72,284.51,289.37,294.10,290.95, 292.88,294.61,297.30,294.66,298.58,299.54,299.75,299.26,306.97,300.42, 8.38,9.14,9.99,11.26,12.18,13.33,12.30,13.50,14.39,15.36, 16.13,16.98,17.37,18.35,19.45,21.03,20.61,20.84,23.49,24.04, 24.36,26.31,26.53,27.18,27.42,28.59,28.76,29.78,31.19,30.75, 32.10,33.24,34.03,34.83,36.82,35.72,36.83,37.62,40.24,40.41, 40.05,41.55,42.70,44.84,44.69,42.90,45.85,46.82,47.13,48.41, 48.59,48.57,49.54,51.97,51.44,53.92,53.13,54.03,54.00,56.10, 56.11,57.56,59.32,58.86,59.45,59.98,60.89,61.65,59.93,61.73, 65.42,64.92,66.12,64.41,67.08,68.14,68.39,69.46,70.07,70.96, 72.61,72.22,73.84,74.22,74.68,76.10,76.78,79.46,80.29,79.22, 80.22,80.82,82.21,83.01,84.77,86.53,86.66,86.14,88.55,88.05, 86.71,89.45,90.95,89.63,93.98,91.81,93.33,94.73,96.04,96.11, 97.23,96.17,97.77,100.13,100.69,100.24,101.17,103.23,103.18,106.79, 105.75,105.59,105.94,107.40,109.82,105.94,111.00,109.79,110.02,112.25, 114.34,112.70,109.62,114.22,115.99,114.65,119.16,118.71,118.97,120.88, 119.36,121.48,122.57,122.60,122.76,124.37,124.52,124.46,127.96,128.85, 130.01,130.48,132.10,130.59,130.97,132.41,133.24,133.76,134.37,135.26, 133.92,138.71,135.94,140.43,140.35,140.49,140.48,142.16,145.42,142.07, 142.95,144.78,143.50,147.42,149.19,147.10,150.75,150.68,148.35,150.27, 153.87,151.02,155.56,154.84,156.12,156.69,159.82,157.17,161.12,161.38, 162.36,162.23,162.88,164.31,162.06,167.80,165.05,168.41,166.24,169.29, 167.29,168.54,166.90,171.38,170.63,174.21,175.78,172.13,175.38,177.62, 178.48,177.32,176.61,178.29,177.80,181.35,178.54,183.75,181.48,184.40, 187.96,189.11,183.51,186.82,190.52,187.33,190.83,190.57,190.45,191.09, 190.73,193.09,195.54,191.91,198.65,197.92,198.70,199.69,196.82,196.67, 202.49,201.74,201.16,203.70,203.64,206.75,205.59,205.70,208.31,207.68, 210.02,209.28,211.73,212.82,207.77,212.55,212.88,214.40,215.16,215.73, 220.06,215.47,219.36,217.49,218.46,220.53,222.05,222.72,222.76,222.48, 227.64,224.16,227.60,227.46,230.49,227.59,230.51,229.97,227.49,231.88, 229.13,233.99,232.03,237.74,235.81,236.24,240.16,236.50,238.23,240.19, 6.63,7.09,7.96,7.87,8.88,10.17,10.79,10.75,11.70,13.06, 13.77,13.48,14.98,14.06,16.07,15.90,16.13,16.53,17.68,18.88, 19.72,19.96,20.91,22.02,21.78,21.73,22.98,23.69,24.04,25.46, 25.59,27.28,26.33,27.24,27.71,28.88,30.92,29.23,30.33,31.75, 32.34,32.96,32.93,33.41,33.94,34.20,35.59,36.41,38.94,37.52, 38.02,38.78,39.27,40.29,42.33,41.09,42.15,42.82,44.38,43.94, 44.78,45.25,46.10,47.20,47.86,48.42,48.87,51.04,49.49,48.82, 50.99,52.26,50.39,51.82,54.40,54.73,55.13,56.90,56.37,57.27, 58.21,58.82,58.68,59.93,59.06,59.97,62.05,61.46,62.58,63.58, 64.83,64.07,64.46,66.35,66.07,64.52,64.66,67.53,67.96,68.75, 69.86,70.12,71.62,70.40,72.87,73.49,72.92,73.62,74.34,76.14, 76.27,77.37,78.66,77.26,79.88,80.73,81.13,81.29,81.00,82.22, 84.49,83.09,82.36,87.51,85.12,86.64,85.85,86.75,88.66,88.08, 89.13,87.97,95.22,91.91,90.12,95.21,93.42,93.33,96.17,95.55, 95.92,95.92,95.98,99.17,98.05,98.61,98.10,99.91,99.52,101.41, 99.52,104.36,103.00,104.22,102.52,105.62,106.08,105.57,105.93,109.80, 107.23,108.07,110.35,107.40,109.82,110.88,110.75,110.58,113.72,112.61, 112.99,116.75,113.37,116.16,120.06,117.91,121.08,119.29,120.81,121.53, 121.47,120.99,123.80,122.45,123.05,124.49,125.27,125.49,128.04,129.74, 128.50,126.67,127.19,128.57,131.51,131.58,130.98,133.71,132.41,134.32, 130.74,134.83,133.88,138.08,136.14,135.37,136.22,137.30,138.37,140.43, 138.68,139.24,141.88,142.63,140.63,143.81,144.44,141.83,146.66,146.04, 145.95,148.71,147.14,148.97,147.51,149.01,150.97,151.00,150.79,155.28, 153.81,155.90,155.31,154.43,154.62,157.74,155.38,157.70,160.54,157.12, 159.01,162.19,161.00,162.63,161.11,161.81,165.04,164.80,166.00,165.06, 167.36,166.53,168.44,167.17,166.53,168.94,167.35,171.17,169.00,172.17, 173.97,169.75,175.24,174.61,176.25,174.32,177.07,172.72,180.35,178.80, 177.37,178.20,179.56,180.35,183.46,182.47,181.84,181.59,183.47,184.56, 184.26,186.07,185.62,184.11,189.58,188.34,187.75,194.25,189.89,192.51, 5.05,5.43,6.57,6.80,7.83,8.03,7.86,9.23,9.24,9.70, 10.06,10.81,10.19,11.81,12.23,12.72,13.54,13.71,14.42,15.45, 14.98,16.39,16.35,14.78,19.17,18.08,18.60,18.76,18.97,19.95, 20.57,20.19,21.83,21.25,22.82,23.12,23.33,25.51,24.68,24.65, 24.74,25.88,25.46,27.39,26.85,27.95,29.04,29.93,29.29,29.98, 31.58,31.59,32.98,32.28,31.85,33.77,32.92,34.57,34.72,34.52, 35.77,34.33,35.35,35.73,37.59,37.34,38.16,38.51,40.41,41.69, 40.83,41.72,41.95,42.26,43.30,41.84,44.60,45.04,43.14,45.65, 46.02,46.14,47.32,46.36,48.44,47.35,50.72,48.73,49.25,51.04, 49.33,51.83,52.21,52.59,51.74,53.52,53.57,52.80,53.04,54.03, 55.02,54.38,56.98,56.53,58.32,59.64,59.97,60.56,57.28,59.46, 60.68,59.69,60.90,62.34,63.98,62.93,63.77,63.41,65.42,64.87, 65.99,66.78,67.38,68.14,68.89,67.60,68.97,67.23,68.70,70.31, 70.09,70.27,71.34,72.20,74.32,73.43,73.34,74.62,73.50,74.34, 74.69,77.87,77.08,77.20,76.24,78.64,79.18,78.06,79.79,80.92, 81.92,80.73,82.16,80.66,81.78,83.72,83.45,84.17,85.63,83.26, 86.24,88.32,87.68,88.83,86.58,90.60,87.63,88.84,90.20,90.94, 89.93,91.40,94.56,92.24,94.52,93.13,94.54,96.02,92.67,93.42, 94.48,94.48,98.97,96.54,96.28,97.39,98.47,100.27,97.82,101.75, 101.17,102.47,101.94,103.75,101.28,105.73,105.52,103.21,103.78,105.36, 107.32,105.88,104.96,107.18,111.54,107.82,109.27,110.03,107.86,107.77, 112.89,110.20,110.27,113.54,113.40,112.90,113.10,113.00,116.73,115.53, 118.63,117.98,119.20,117.62,117.60,119.91,122.15,116.66,116.22,119.50, 120.62,121.25,122.17,121.79,125.02,122.21,125.72,126.25,129.09,127.58, 123.86,127.24,127.66,124.60,127.52,128.49,127.40,133.21,129.28,130.97, 131.38,131.08,133.10,132.06,131.91,136.19,132.38,133.43,135.63,134.41, 134.83,136.51,138.66,137.44,135.46,139.89,142.72,138.95,140.08,142.13, 143.20,138.47,141.95,142.17,140.78,144.29,145.41,145.14,146.80,147.27, 150.25,145.80,147.82,149.81,147.97,149.97,146.81,148.43,148.61,150.37, 4.47,4.15,5.03,5.13,5.16,6.66,6.32,6.91,7.19,7.82, 8.37,8.85,8.43,9.68,9.78,10.69,10.74,11.05,11.37,11.51, 12.31,12.95,13.38,13.91,13.13,13.91,14.55,14.08,15.10,16.16, 16.28,16.40,16.55,17.24,16.06,17.23,17.25,18.70,18.74,20.68, 20.91,20.47,20.71,20.97,22.20,21.59,23.14,24.41,24.03,21.85, 25.40,23.99,23.96,25.01,26.03,25.98,27.41,27.10,27.12,28.17, 27.15,28.64,28.95,28.82,28.82,31.19,29.04,30.33,30.62,31.98, 31.70,30.95,32.85,33.69,33.66,34.05,33.31,33.80,35.41,36.94, 37.97,37.94,36.89,38.40,37.27,39.61,38.97,38.87,37.83,37.76, 39.77,40.17,41.44,39.86,41.45,40.43,40.81,42.10,44.55,42.03, 44.08,45.72,45.26,46.91,46.54,45.79,46.79,47.14,45.93,47.35, 46.49,48.24,48.32,48.76,50.36,49.98,50.19,50.67,50.13,51.33, 51.30,51.16,53.39,51.41,55.34,54.25,56.78,54.93,55.74,54.94, 57.33,56.54,57.35,57.76,55.72,59.19,58.49,57.64,58.82,60.33, 59.51,60.20,59.12,61.21,60.59,61.33,62.83,60.60,62.24,63.05, 63.88,65.30,66.24,65.69,66.35,67.05,66.61,65.78,67.45,66.88, 68.09,66.43,68.50,68.50,70.43,69.67,70.51,68.65,70.30,68.67, 70.85,72.97,70.60,73.91,74.03,74.86,74.84,74.17,74.54,75.18, 75.26,77.00,75.99,78.33,76.72,79.94,77.45,81.46,78.40,79.22, 81.65,79.85,79.66,79.42,81.44,79.46,80.78,82.32,84.61,85.36, 83.16,86.75,85.35,83.89,86.21,84.27,86.88,85.56,86.74,88.61, 87.52,88.01,85.16,88.78,89.61,90.19,89.81,90.67,89.25,90.50, 91.13,92.56,92.53,92.46,94.64,92.96,94.90,93.22,97.97,93.26, 95.37,95.87,96.50,97.33,98.24,96.85,98.47,97.51,99.07,98.62, 99.44,98.18,97.49,103.12,100.92,101.79,102.71,101.92,103.28,103.11, 101.65,104.58,102.74,105.84,108.22,104.78,106.22,106.79,102.95,107.37, 107.12,106.80,112.86,108.69,108.48,111.48,107.15,108.76,108.89,111.85, 110.34,110.75,110.45,111.82,112.79,113.66,113.32,113.44,113.39,116.67, 116.06,118.58,119.74,119.12,120.12,117.75,116.57,120.59,118.40,117.78, 3.33,3.64,3.82,4.38,4.48,4.70,5.66,5.98,6.21,5.28, 6.13,6.89,7.28,7.43,7.16,7.76,8.13,8.89,9.24,9.73, 10.04,10.71,10.48,10.78,10.50,10.86,11.33,11.35,12.49,12.83, 12.69,13.44,12.61,14.75,13.94,13.19,14.50,14.44,14.38,14.46, 15.06,16.41,15.63,16.83,18.55,16.55,17.25,17.64,18.96,19.53, 19.04,19.89,20.83,20.42,19.47,19.76,20.00,20.73,21.63,22.21, 22.32,22.00,22.74,22.52,22.27,24.86,24.39,24.25,25.39,23.86, 25.39,26.09,25.88,26.19,25.87,26.20,27.27,26.96,27.63,27.60, 29.79,28.70,28.83,29.50,30.17,30.82,30.70,30.64,30.20,31.02, 31.86,32.63,30.61,32.02,32.70,33.80,32.76,34.31,32.48,35.58, 33.12,36.21,35.90,35.97,35.62,36.09,35.37,37.40,37.20,37.07, 38.07,36.88,39.44,39.20,40.88,39.71,38.24,40.72,41.35,40.87, 41.01,40.60,42.07,43.42,41.81,42.31,42.18,41.96,43.59,44.17, 43.98,45.70,43.59,44.15,45.84,46.88,44.63,46.64,47.94,46.17, 47.43,48.00,46.07,46.88,48.69,49.62,49.65,49.92,50.95,49.37, 51.61,48.59,52.43,50.98,50.63,51.91,50.35,51.28,52.56,53.08, 53.28,53.09,54.40,54.21,52.77,55.62,54.38,55.97,57.24,57.09, 56.84,55.91,57.42,57.77,57.79,57.73,57.57,57.71,57.75,56.47, 59.77,59.56,59.82,61.04,61.85,61.45,59.68,61.14,62.69,62.77, 62.48,64.14,62.48,65.14,61.81,63.94,65.16,65.54,64.86,63.83, 65.31,66.14,67.62,67.94,66.53,67.57,69.47,68.14,69.54,70.60, 68.60,68.82,69.26,69.68,68.97,70.03,72.12,72.38,70.45,71.49, 71.48,72.73,71.90,71.65,74.30,72.80,73.09,73.75,73.52,75.83, 77.05,75.11,76.60,79.17,75.89,78.14,76.41,79.98,78.76,76.36, 81.19,78.66,80.39,81.00,79.74,81.70,80.38,78.21,80.95,80.32, 81.17,83.98,81.58,82.83,84.54,82.91,82.75,83.76,85.75,84.08, 86.78,82.60,84.82,87.06,83.99,86.32,86.47,85.58,88.39,90.00, 88.92,87.90,88.02,87.55,90.14,88.56,89.56,91.31,89.18,90.50, 90.92,90.19,90.79,92.88,90.71,90.95,93.98,92.31,92.80,96.38, 2.43,2.82,3.00,3.31,3.33,3.51,4.09,3.98,4.46,5.54, 5.09,5.56,5.12,5.64,6.21,6.50,6.95,6.38,7.24,6.85, 7.53,7.75,8.22,7.76,8.67,8.52,8.53,9.76,9.18,9.20, 10.48,10.12,10.21,11.46,10.25,11.68,12.00,11.58,11.31,12.34, 13.26,12.54,12.33,13.44,13.20,12.42,13.61,14.52,13.69,14.74, 15.58,14.97,14.07,16.02,14.58,16.55,16.63,17.31,16.67,17.25, 17.29,17.46,17.01,18.27,19.04,18.11,18.61,18.52,19.85,18.91, 19.99,20.84,21.34,19.89,19.61,20.78,20.83,20.92,22.15,20.58, 21.53,23.08,24.54,23.64,24.34,24.60,23.36,24.23,23.37,24.18, 23.51,26.68,25.62,25.53,25.99,25.70,25.86,26.21,27.68,26.71, 28.10,27.49,26.62,26.52,28.87,28.56,29.15,28.99,26.41,29.52, 28.25,29.64,30.89,30.12,31.14,31.36,32.30,31.31,33.39,30.93, 32.23,31.98,31.62,32.74,32.11,31.46,33.92,35.08,33.90,34.35, 33.72,36.36,33.94,35.03,35.78,34.66,36.61,37.91,37.28,35.37, 37.12,35.14,36.71,36.80,38.94,38.41,38.95,39.20,37.59,37.95, 39.70,40.16,38.76,41.12,39.85,41.03,40.67,41.19,42.37,42.19, 42.15,42.89,42.86,42.04,42.63,43.09,45.26,44.72,43.02,44.87, 46.26,46.29,44.14,46.55,45.39,45.86,47.37,45.46,46.90,45.83, 47.63,49.33,47.73,47.41,48.83,49.36,48.19,48.03,49.25,47.24, 50.18,47.60,49.62,49.33,49.42,50.90,49.73,51.64,52.42,52.26, 51.09,52.97,51.13,51.84,53.28,53.60,52.32,52.95,55.40,55.49, 54.75,53.79,52.94,52.77,55.07,55.66,53.87,54.85,57.56,54.68, 55.05,55.13,58.22,57.83,57.81,58.16,59.23,56.84,57.08,60.25, 57.46,61.53,58.69,58.91,60.89,61.43,60.89,62.46,59.58,60.16, 62.13,61.20,60.78,62.92,61.70,61.72,62.44,63.45,64.00,64.25, 61.98,63.08,65.47,64.56,66.36,65.62,65.68,67.80,67.53,65.26, 66.94,68.76,68.29,67.83,67.74,69.32,66.65,69.78,68.85,67.78, 72.58,67.01,71.21,68.39,68.52,72.09,70.84,69.77,71.61,71.66, 72.19,73.32,73.69,74.92,73.59,70.80,73.70,73.25,74.96,75.29, 1.99,2.20,2.05,2.72,2.71,2.79,3.56,3.16,3.25,3.91, 3.82,4.05,4.33,4.34,4.21,5.19,4.97,5.67,5.02,6.16, 6.60,6.15,5.71,6.08,5.62,7.01,6.67,7.62,6.86,7.33, 7.62,7.73,8.21,8.01,8.82,9.33,9.63,8.68,9.58,10.02, 8.97,9.81,9.39,9.01,10.76,9.88,10.80,11.50,10.25,11.21, 10.84,11.31,12.61,12.24,13.10,12.62,13.67,13.21,13.16,13.41, 14.44,13.17,13.36,14.21,14.40,14.03,14.78,15.37,15.41,15.48, 15.75,15.88,16.55,16.50,17.55,16.36,16.73,17.02,16.87,16.75, 17.81,17.93,17.18,16.71,18.71,18.35,18.08,19.09,18.57,19.15, 18.85,20.25,19.97,20.05,19.38,21.01,20.38,20.62,19.96,20.27, 20.91,21.62,22.27,20.23,22.29,22.27,22.03,22.90,22.84,23.69, 24.32,22.81,24.93,23.07,24.50,23.80,25.53,24.90,25.07,25.22, 23.98,24.77,25.59,25.51,25.74,27.22,25.11,25.79,26.02,27.79, 27.34,28.49,27.89,27.92,28.34,28.52,28.43,28.87,28.99,29.12, 28.88,30.29,29.54,30.96,29.46,31.04,29.33,28.79,30.09,30.52, 32.07,31.59,31.24,30.92,32.33,31.78,30.97,31.83,32.64,31.60, 32.55,32.87,33.10,31.59,33.42,34.13,34.37,35.01,34.45,34.34, 33.33,36.34,36.30,34.79,34.93,33.62,37.91,35.50,36.03,35.56, 37.08,36.59,37.83,36.41,37.34,37.48,38.06,38.13,38.06,39.66, 40.00,38.91,39.36,38.58,39.86,39.40,38.79,40.68,40.97,41.49, 40.64,41.58,41.88,43.48,41.46,40.75,41.88,42.70,41.76,42.16, 41.63,42.60,43.65,42.61,44.23,43.61,44.36,43.95,44.75,45.04, 43.80,45.03,45.67,45.43,47.43,43.78,45.94,45.40,45.70,44.72, 45.05,45.83,46.35,48.69,49.50,47.41,49.94,49.19,50.50,48.87, 49.45,46.80,47.96,46.73,49.09,49.85,47.32,48.99,48.62,49.54, 50.87,49.91,51.44,52.09,50.84,51.11,51.89,49.55,50.70,52.23, 51.69,52.11,53.12,51.53,52.30,53.94,52.57,53.08,53.38,53.79, 54.74,52.43,55.89,53.78,53.16,55.34,57.00,55.13,58.27,56.12, 55.26,55.34,56.79,56.23,55.54,56.25,56.67,55.17,57.80,57.55, 1.78,1.43,1.79,2.13,2.31,2.14,2.24,2.62,2.60,3.15, 2.85,3.03,3.24,3.60,3.18,3.91,3.85,3.80,3.97,4.86, 4.40,4.86,5.39,5.55,5.27,5.19,5.25,5.38,5.53,5.85, 5.69,6.13,6.27,7.13,7.54,6.89,7.03,7.05,6.60,7.09, 6.76,8.30,7.44,7.75,8.50,9.26,7.53,8.47,8.46,9.02, 8.88,8.33,9.54,9.27,10.19,9.99,9.96,11.04,10.65,10.23, 11.04,10.43,11.00,11.29,10.50,10.82,11.22,11.10,11.92,12.84, 12.27,13.35,12.75,13.50,12.98,13.51,12.70,13.54,12.74,13.50, 13.84,14.15,14.04,14.68,14.11,14.52,14.07,15.20,14.86,14.49, 14.57,15.47,15.38,16.24,15.86,16.18,16.18,15.48,16.44,16.49, 17.52,16.51,17.64,17.21,16.93,18.55,17.60,18.65,17.97,17.52, 17.10,18.77,18.43,18.23,19.49,17.67,20.32,19.03,18.75,18.32, 19.74,19.71,19.33,20.33,20.74,19.87,20.62,20.58,20.71,20.33, 20.73,21.02,20.02,21.13,20.93,23.07,22.29,22.64,23.06,20.80, 22.26,22.33,23.11,22.48,23.34,24.04,24.43,22.79,22.44,24.80, 24.00,21.61,23.82,24.14,26.62,24.43,24.99,24.98,26.44,26.13, 25.75,25.99,26.98,27.29,27.13,25.60,27.36,25.82,27.76,27.14, 26.55,27.16,27.72,25.88,28.20,27.84,27.75,28.08,29.18,29.43, 28.61,29.53,29.89,29.95,29.59,29.27,29.18,31.11,29.67,29.38, 30.58,30.83,29.78,30.32,31.93,31.59,31.20,32.19,30.86,32.33, 31.24,32.37,31.55,31.22,32.59,32.15,32.10,34.27,34.60,32.88, 31.66,34.97,33.03,33.61,33.24,34.18,34.95,34.80,33.02,33.29, 34.62,35.15,36.54,35.72,35.05,35.89,37.29,35.05,37.17,36.78, 35.70,37.09,36.28,38.82,35.15,37.84,37.17,36.85,36.42,37.96, 38.13,37.28,38.48,38.82,38.35,39.22,38.16,37.71,38.20,38.25, 38.65,38.66,42.19,40.46,41.27,40.52,38.94,40.06,39.24,39.92, 41.59,39.95,42.22,40.54,41.56,43.42,41.60,42.97,42.59,43.35, 43.33,41.20,42.58,41.42,41.82,44.55,41.99,45.41,44.82,42.80, 43.34,43.21,44.59,43.52,44.83,44.07,44.06,44.31,46.22,44.66, 1.16,1.25,1.55,1.32,1.63,2.04,2.24,1.67,1.60,2.56, 2.26,3.04,2.74,2.59,3.13,2.76,2.76,3.46,3.30,4.32, 3.90,3.78,3.90,3.45,3.45,3.90,4.33,5.13,4.08,4.36, 4.36,4.38,5.53,4.96,5.85,5.84,5.57,4.89,5.56,5.54, 5.04,5.39,6.40,6.61,6.36,7.11,7.22,5.97,7.15,6.75, 6.70,7.98,7.55,6.62,7.18,7.13,7.78,7.17,8.14,8.61, 8.85,7.87,8.66,8.78,9.74,8.57,8.61,9.30,9.83,10.45, 10.34,8.72,9.61,9.21,9.67,9.79,9.43,9.93,10.21,10.47, 10.55,10.29,10.28,11.36,11.72,11.68,11.73,10.85,11.18,11.03, 12.06,12.42,12.77,13.53,11.53,11.06,13.11,12.16,11.72,12.81, 13.13,13.02,13.28,12.95,12.93,14.47,14.24,13.28,14.39,14.56, 13.91,14.69,13.95,14.21,13.43,14.23,14.89,13.87,16.17,15.62, 15.97,15.60,15.36,16.28,15.68,16.05,15.92,15.20,16.86,15.21, 16.93,16.09,15.97,16.99,16.31,16.63,17.77,16.99,17.00,17.12, 16.56,17.11,18.53,17.24,17.67,17.89,18.65,17.98,18.58,18.39, 19.39,18.04,19.84,19.29,18.02,19.37,20.15,19.57,20.50,19.75, 20.01,18.91,20.42,20.83,21.52,21.03,19.79,21.23,21.37,21.25, 21.93,21.75,21.02,22.52,20.80,21.68,21.45,22.11,21.29,21.68, 23.76,20.96,24.12,23.11,23.55,22.86,23.07,24.86,23.99,23.53, 23.37,23.03,24.11,24.07,22.21,22.74,24.26,24.50,25.29,23.83, 24.55,24.11,26.37,25.32,26.94,25.75,25.72,26.64,25.24,27.61, 27.20,26.23,27.39,26.39,25.96,25.50,27.19,27.95,27.55,25.84, 27.48,28.85,29.06,27.76,29.25,29.23,28.90,30.21,27.57,27.73, 29.94,29.72,28.44,29.12,29.29,29.85,29.25,28.41,28.62,29.05, 27.90,30.41,29.39,30.96,28.50,31.25,29.70,31.14,30.36,30.86, 30.25,31.10,30.59,30.58,30.75,31.60,31.73,30.41,32.15,32.82, 31.71,31.96,31.92,30.61,31.49,31.67,31.74,33.66,31.91,32.04, 33.56,32.71,32.82,34.25,34.72,34.58,33.68,34.72,33.70,32.95, 33.95,35.15,34.37,35.52,33.59,33.37,35.25,35.33,35.73,36.51, 0.83,0.96,1.19,1.33,1.39,1.42,2.04,1.55,1.47,1.90, 1.85,2.18,2.46,2.25,1.78,2.46,2.19,2.69,2.45,2.32, 3.23,3.11,3.39,3.12,2.88,2.97,3.22,3.58,3.30,3.96, 3.65,3.79,3.79,3.58,3.83,3.74,4.50,4.59,3.93,4.70, 4.65,4.27,3.98,4.85,5.15,5.55,5.26,5.51,6.22,5.50, 5.80,5.76,5.26,5.62,5.79,6.18,5.93,6.61,6.72,6.06, 6.89,6.21,6.09,6.66,6.65,7.08,6.93,7.19,6.68,6.82, 7.53,7.29,7.88,7.08,7.64,7.39,8.23,7.83,7.56,8.44, 8.02,8.37,7.27,8.80,8.15,9.71,8.86,9.48,9.54,9.46, 9.41,8.63,9.77,9.75,9.55,9.43,10.20,9.86,9.96,10.14, 10.36,9.89,10.05,10.01,9.83,9.46,10.77,11.02,10.81,10.48, 11.44,10.90,11.14,10.97,11.78,10.86,10.13,11.12,11.72,11.69, 11.56,11.80,13.24,12.45,13.05,13.59,11.61,11.96,12.62,12.17, 12.94,13.34,12.75,13.77,12.77,13.91,13.76,12.95,14.16,13.56, 13.22,13.49,14.19,13.98,14.53,14.47,13.92,14.02,13.98,14.31, 14.70,14.80,15.47,14.63,14.83,15.20,16.11,15.91,16.10,15.96, 15.75,15.27,15.30,16.07,16.79,17.06,15.84,16.67,15.90,15.98, 15.69,15.90,17.51,16.70,16.91,16.75,17.35,16.74,17.27,18.28, 18.47,17.22,17.62,17.85,17.00,17.90,19.05,18.32,18.52,18.36, 18.24,17.87,18.48,18.29,18.40,19.86,18.63,18.90,19.06,19.79, 17.10,19.72,19.91,20.95,19.59,19.73,20.11,19.56,22.06,20.09, 20.21,20.86,20.86,19.07,21.42,20.76,21.80,20.36,21.51,20.47, 21.57,20.37,20.58,21.76,20.69,22.57,21.28,23.58,21.69,21.16, 21.08,22.14,21.77,22.33,21.72,21.98,23.17,23.69,22.91,23.87, 23.77,24.02,22.13,23.11,24.62,24.00,23.73,23.50,24.33,24.83, 23.86,24.44,24.82,25.88,24.17,25.61,24.50,24.20,24.30,25.81, 25.23,24.62,25.01,24.42,24.95,26.37,24.38,24.01,26.49,23.64, 25.66,25.93,24.77,26.65,24.84,27.51,26.45,26.82,26.25,27.95, 26.56,26.57,27.78,27.59,26.25,27.52,26.08,28.09,26.36,28.78, 0.79,0.76,0.84,0.87,1.11,1.41,1.26,1.52,1.31,1.74, 1.31,1.19,1.78,1.51,1.88,1.79,1.72,1.95,1.84,1.82, 1.93,1.85,2.15,2.23,2.61,2.87,2.81,2.65,2.44,2.57, 2.71,3.28,3.52,2.98,3.24,2.82,3.19,3.50,3.47,3.65, 3.33,3.58,4.01,4.11,3.70,4.05,4.05,3.69,4.72,4.47, 3.86,4.54,4.72,4.23,5.34,4.58,5.15,4.66,4.94,4.82, 4.45,5.04,4.92,5.06,5.28,5.05,5.94,5.45,5.69,6.28, 5.47,6.28,5.57,5.78,5.98,5.77,6.23,6.35,7.14,6.27, 6.21,6.98,6.31,6.63,6.55,6.61,7.25,7.24,6.80,6.94, 6.54,7.05,7.07,6.60,7.67,8.41,7.45,8.16,7.55,7.98, 8.45,8.19,7.34,7.39,7.60,8.42,8.94,9.73,8.70,9.01, 8.31,9.05,8.33,8.75,8.54,8.99,8.65,9.89,8.46,8.75, 10.00,9.65,9.84,9.41,10.12,10.49,9.85,9.14,9.62,9.09, 9.46,9.67,9.99,10.37,9.94,9.85,10.61,11.18,10.61,10.69, 11.23,10.43,10.58,10.64,11.79,11.60,10.92,10.94,11.45,11.67, 11.93,11.10,11.20,12.78,11.78,12.14,10.94,11.38,12.55,11.11, 13.77,13.02,11.55,13.08,11.81,12.63,12.51,12.40,13.25,13.16, 11.60,13.96,13.75,13.08,13.82,14.03,13.79,13.46,13.47,14.28, 13.56,14.38,12.56,13.81,14.12,14.55,15.42,14.02,14.78,14.21, 14.95,14.64,15.24,15.17,15.87,16.06,15.51,14.67,14.57,15.18, 16.36,14.73,15.20,14.41,15.73,15.51,15.26,16.76,15.63,15.12, 15.76,14.05,16.58,16.79,17.12,16.53,17.03,15.80,16.78,16.80, 16.52,17.58,18.42,17.97,17.37,16.11,16.38,16.06,16.68,17.21, 17.84,17.26,17.31,17.97,18.06,17.79,16.79,16.98,17.48,17.84, 17.95,16.87,18.10,18.23,16.92,18.58,18.65,17.63,17.98,19.34, 19.54,18.23,18.61,18.13,18.10,18.86,18.41,18.41,20.00,18.14, 20.70,19.12,19.11,19.78,19.84,19.98,19.59,20.01,19.59,20.01, 20.54,21.05,20.18,19.59,20.06,20.37,21.44,21.29,20.34,20.93, 20.86,21.51,21.45,20.21,22.20,19.61,20.50,21.76,22.52,21.70, 22.68,24.08,27.66,29.07,31.77,33.74,35.23,36.16,40.89,42.52, 45.54,45.36,48.88,51.25,52.52,54.73,56.81,60.32,61.95,63.60, 66.88,68.57,70.17,72.02,74.39,76.91,76.94,81.31,83.48,85.21, 88.05,87.39,93.01,94.12,96.67,99.10,100.93,101.01,105.63,108.21, 110.33,113.18,113.20,114.33,116.83,118.64,122.29,123.42,126.01,131.04, 131.19,132.72,136.86,137.68,138.90,140.35,145.79,144.91,147.90,150.66, 152.69,154.98,155.85,161.11,160.19,163.01,164.59,167.55,170.63,171.48, 173.49,176.47,180.34,183.40,183.59,183.34,186.87,190.40,192.59,194.76, 198.18,197.01,201.63,201.83,205.13,206.86,208.65,215.50,212.16,215.85, 217.00,221.34,222.61,224.60,226.27,229.47,232.07,231.39,234.99,236.75, 240.34,242.73,244.90,245.20,248.60,249.16,255.13,254.94,256.34,260.00, 260.17,261.73,264.56,269.72,271.26,272.09,277.28,278.76,277.31,280.70, 283.62,284.88,284.91,290.85,292.32,293.38,295.44,299.90,302.93,306.85, 303.77,304.22,307.20,311.43,311.56,312.51,316.75,322.55,322.32,321.34, 330.21,329.89,333.23,332.01,334.14,339.50,335.30,342.72,344.49,346.85, 348.55,349.08,349.25,353.39,357.09,357.63,360.21,364.05,367.38,370.03, 371.43,370.90,373.63,379.21,381.68,377.85,385.23,383.21,388.44,390.78, 388.33,395.17,395.39,400.29,397.34,403.55,406.62,405.46,412.79,411.65, 414.15,412.71,417.70,420.10,416.11,425.00,426.20,429.46,429.49,431.59, 434.16,436.75,436.55,442.38,443.42,447.15,448.87,450.57,453.17,455.39, 456.92,460.25,459.51,464.54,466.28,466.48,472.83,475.22,468.48,477.81, 477.66,480.46,483.90,487.30,486.64,487.34,491.89,491.04,495.43,498.45, 499.08,502.33,504.72,509.65,509.75,516.36,509.68,516.15,518.28,524.48, 520.05,524.28,528.21,530.56,529.95,531.09,536.15,536.73,538.92,540.82, 542.57,544.20,548.12,551.02,554.07,555.95,556.29,555.38,560.05,563.56, 563.75,564.75,571.71,572.35,574.22,573.96,577.33,587.22,584.83,585.30, 589.14,589.56,589.40,594.57,597.51,601.83,602.79,599.66,602.81,607.20, 606.86,613.38,614.01,614.95,619.84,618.63,617.90,625.22,626.08,627.05, 627.02,632.52,637.51,635.48,639.04,640.96,644.28,648.22,645.68,651.72, 18.60,19.18,22.36,23.98,26.00,27.53,29.05,30.65,31.64,34.79, 36.44,38.79,40.56,39.98,44.66,45.08,46.90,49.42,49.80,51.91, 53.27,55.31,57.35,59.79,61.58,62.55,64.44,67.07,67.08,69.18, 70.33,72.76,75.28,78.79,79.37,79.96,80.58,84.16,87.22,87.20, 90.02,90.19,92.04,93.65,95.99,96.66,101.28,100.34,104.01,106.31, 107.90,107.98,111.09,110.48,114.60,116.95,119.33,120.88,122.62,121.60, 124.79,124.94,130.16,131.86,132.64,132.31,135.89,135.66,139.60,141.96, 142.34,145.41,146.43,147.48,150.00,152.32,152.05,153.45,158.58,160.04, 159.63,162.15,166.84,165.56,163.99,169.73,170.53,172.18,175.22,176.17, 179.67,179.92,181.99,182.91,186.06,186.51,188.71,189.92,191.17,194.28, 194.43,199.48,199.14,202.43,203.75,204.14,205.33,208.27,212.19,210.36, 212.69,217.03,216.95,220.53,219.65,225.73,226.19,225.12,225.25,229.86, 233.26,233.48,235.18,240.59,237.92,240.23,241.15,242.66,245.56,247.27, 249.75,251.88,252.51,256.85,256.55,260.21,261.76,261.14,264.37,266.62, 268.80,266.76,269.77,273.69,271.28,274.33,277.38,281.36,281.26,283.75, 287.87,282.45,286.25,290.10,292.95,294.64,296.09,296.01,298.83,299.63, 300.84,300.10,308.75,310.97,312.93,311.17,310.73,316.49,315.90,320.13, 319.87,319.06,324.39,324.63,327.85,329.54,332.55,329.39,332.36,330.96, 337.46,341.14,340.62,343.61,342.51,344.89,352.56,351.26,351.03,353.26, 357.08,357.65,359.34,361.73,362.41,363.86,365.82,366.66,366.75,371.89, 373.75,375.66,376.77,374.15,382.18,383.70,380.01,384.40,388.99,389.01, 392.74,392.72,388.55,398.10,395.25,398.74,403.93,406.67,406.17,406.56, 410.37,411.43,411.80,411.83,416.88,419.11,417.64,422.80,424.56,422.47, 425.76,426.29,431.48,432.74,431.65,433.66,434.81,443.74,439.40,441.22, 446.51,449.95,446.57,451.39,449.72,455.79,450.77,454.63,457.39,456.97, 461.00,465.30,466.08,465.69,474.05,469.93,472.16,474.29,475.19,475.55, 479.28,481.92,482.32,485.16,488.18,488.35,489.07,492.40,496.47,495.26, 499.49,499.88,502.90,504.85,503.36,506.04,508.44,510.13,511.38,512.27, 515.18,517.39,514.96,520.88,522.42,527.12,529.31,527.09,530.19,530.88, 14.62,16.01,17.72,18.68,22.00,22.68,23.31,25.38,26.99,27.86, 29.58,30.80,33.88,33.49,34.50,36.16,38.15,39.65,40.14,41.76, 42.87,45.32,47.31,47.47,49.55,50.80,52.28,55.69,56.04,55.94, 58.45,59.95,60.94,63.86,64.45,65.85,65.66,67.13,71.06,70.22, 71.38,74.49,75.61,76.94,76.74,80.22,80.49,83.01,85.42,86.35, 88.42,87.38,89.54,90.32,91.04,93.92,95.25,97.48,99.34,99.34, 102.39,101.78,105.93,106.75,107.43,110.48,111.42,111.25,112.86,114.73, 115.87,118.94,118.78,120.98,122.41,121.90,124.12,128.32,129.12,128.25, 130.32,132.02,134.27,130.50,136.42,136.65,142.04,140.73,141.61,142.14, 144.63,145.06,148.10,149.88,152.21,150.16,152.15,154.23,156.52,157.79, 158.44,159.62,164.73,164.54,164.14,164.47,168.65,168.56,171.05,169.87, 175.84,173.44,177.14,179.03,178.59,183.66,182.15,182.89,182.15,185.54, 189.22,188.28,194.83,195.60,193.79,193.67,195.02,200.46,199.82,200.15, 202.77,201.98,207.32,206.73,210.26,210.07,212.63,210.00,214.08,213.91, 215.14,218.12,218.94,221.39,222.62,225.68,225.35,225.46,226.82,234.07, 232.65,234.40,235.68,236.03,242.20,235.95,240.05,244.31,244.69,244.05, 247.96,247.50,248.81,248.77,252.53,252.86,256.98,254.04,254.09,256.87, 262.74,257.90,266.09,266.82,263.23,267.86,269.18,268.74,270.17,275.31, 273.06,278.27,281.27,280.01,281.62,282.14,281.56,284.84,288.93,287.70, 289.98,292.94,289.73,294.29,295.20,293.86,296.41,297.84,299.90,299.86, 301.28,305.59,308.79,308.33,310.48,311.99,312.93,314.84,314.92,320.19, 318.43,322.54,322.55,324.47,322.90,324.51,327.91,329.02,332.98,330.73, 331.63,332.99,338.99,337.12,337.33,340.27,340.78,342.67,341.27,347.54, 346.60,347.57,350.65,349.08,352.40,354.33,356.84,359.24,356.17,358.93, 364.06,360.46,372.08,367.64,370.09,370.27,370.77,371.44,376.43,378.93, 376.38,379.45,375.36,381.00,383.04,382.34,384.16,387.30,389.69,392.08, 391.23,392.29,391.58,395.67,396.41,394.97,401.27,403.10,403.57,403.16, 400.53,406.76,405.26,405.17,404.91,417.47,415.67,415.89,413.52,417.27, 419.02,418.49,421.08,423.95,425.87,423.75,425.69,425.48,432.12,429.86, 11.99,13.55,14.82,15.28,18.28,17.89,19.46,19.68,22.24,22.04, 23.65,24.48,25.92,27.43,28.02,29.81,30.60,32.18,32.66,35.05, 36.22,36.94,39.37,39.80,39.88,42.00,43.43,44.57,44.22,47.55, 45.93,48.21,50.23,49.55,52.57,51.01,53.42,54.62,55.66,58.23, 58.46,58.94,60.62,62.58,63.23,65.21,65.72,68.17,68.24,69.18, 71.91,72.90,72.64,74.11,76.03,77.24,76.91,78.12,78.61,78.72, 82.25,83.47,84.81,87.50,88.39,89.25,90.84,89.58,92.68,93.89, 95.20,94.73,95.50,97.75,98.52,100.91,99.80,101.91,102.86,105.13, 105.34,107.95,108.28,108.39,109.91,110.78,111.62,113.21,115.30,116.00, 116.42,120.44,119.29,122.11,120.10,121.92,125.12,125.95,126.22,127.54, 129.23,127.25,130.18,134.86,135.40,135.53,137.74,137.45,140.07,139.38, 140.12,142.94,145.26,144.37,146.89,145.73,146.11,147.49,152.11,149.38, 150.78,155.72,152.12,156.87,157.95,158.79,158.90,159.27,160.53,164.39, 165.69,163.94,166.62,165.24,170.65,170.77,172.50,170.79,172.23,175.20, 174.05,177.06,177.74,176.22,177.64,180.02,182.08,183.02,183.85,188.03, 187.80,186.03,191.83,192.66,193.43,195.59,189.97,195.39,196.62,197.72, 201.20,200.94,201.03,202.28,202.23,204.43,204.97,208.26,207.78,210.34, 211.82,210.64,216.96,215.53,218.30,216.25,220.30,220.23,220.90,221.33, 220.94,223.69,224.55,226.18,223.77,230.40,230.17,236.00,229.77,233.73, 231.33,232.94,238.09,238.30,237.73,240.69,241.46,241.36,242.87,245.22, 246.33,243.62,249.29,248.50,256.15,254.23,252.37,255.51,255.08,256.19, 258.72,261.05,259.36,264.23,261.89,259.78,265.96,264.44,263.46,270.38, 268.97,269.56,271.96,270.92,278.40,275.20,275.06,275.76,282.64,279.36, 280.29,282.68,280.93,288.01,287.33,288.69,285.54,289.75,291.54,293.14, 294.31,298.22,295.11,295.95,296.48,295.26,300.19,303.10,300.25,303.18, 308.18,306.67,305.89,309.40,306.24,312.35,310.26,312.90,309.28,315.27, 317.62,320.85,317.66,317.37,318.90,322.31,323.24,326.22,325.20,329.89, 329.23,330.04,333.15,330.27,333.82,331.91,336.37,335.46,338.56,340.61, 338.17,340.90,341.70,344.67,345.79,346.77,343.25,345.73,348.92,344.68, 9.29,10.77,11.56,12.29,13.32,14.88,15.38,16.70,18.61,19.20, 18.86,21.14,21.17,22.29,23.74,23.11,25.08,25.91,26.20,26.66, 27.85,30.35,30.24,31.11,33.05,33.64,33.49,34.89,35.74,37.46, 37.16,37.98,40.75,42.15,42.12,41.63,43.78,43.99,46.23,46.36, 47.60,48.85,47.93,49.74,49.67,51.93,53.22,53.20,55.07,56.33, 57.26,58.53,56.85,61.23,59.86,62.64,61.95,63.12,65.94,65.14, 69.31,68.34,68.78,68.66,71.41,73.05,71.21,74.47,73.45,76.33, 74.41,76.13,78.50,76.67,81.05,81.25,83.77,81.05,84.55,85.31, 85.38,86.05,87.21,86.74,89.02,88.73,90.79,92.30,91.76,94.60, 93.80,98.12,96.94,98.68,98.31,99.14,100.75,101.46,101.28,101.29, 104.59,103.83,105.70,106.69,106.77,109.16,109.77,110.07,111.65,113.25, 113.39,115.85,115.24,117.22,117.64,119.02,118.61,120.36,118.32,122.24, 123.46,123.94,126.44,126.41,127.33,127.68,128.72,128.85,131.35,131.54, 131.06,134.52,134.64,134.80,135.21,136.80,139.55,140.40,140.96,141.70, 141.06,143.82,142.92,144.94,143.73,147.21,147.01,149.81,151.54,152.66, 151.99,152.03,152.23,156.56,155.76,155.53,156.34,156.28,160.98,157.23, 158.55,161.40,166.06,159.92,164.84,163.56,166.29,167.99,169.17,169.72, 169.11,171.22,175.08,173.53,173.71,175.51,172.96,176.11,176.60,177.75, 181.07,181.96,182.91,182.18,181.67,182.20,187.01,184.40,190.36,188.19, 186.70,189.09,193.98,195.19,192.79,192.60,191.56,194.63,198.05,198.11, 199.14,201.47,202.54,197.76,201.55,203.09,206.26,203.68,205.62,207.90, 207.18,208.30,209.60,209.71,209.98,212.04,216.16,216.83,213.09,218.06, 217.64,217.88,217.57,218.19,219.58,221.20,220.32,226.61,226.68,224.08, 224.42,227.34,228.41,229.09,233.03,234.09,231.99,232.70,234.57,234.41, 238.00,238.95,236.66,238.15,244.13,239.85,239.76,240.68,246.04,245.18, 246.27,247.74,248.19,248.12,248.01,250.74,251.47,251.21,252.72,255.69, 253.82,252.39,256.85,257.26,260.53,261.25,261.12,260.15,265.82,263.04, 262.57,266.30,267.75,268.30,265.06,270.66,267.75,269.69,273.31,275.15, 274.59,274.01,277.04,278.61,279.17,278.44,277.54,279.77,280.40,280.47, 8.01,8.47,9.81,10.55,11.50,12.05,12.81,12.56,14.46,15.16, 16.54,16.06,16.80,18.53,18.15,20.21,19.62,20.60,22.10,22.07, 21.48,24.08,24.90,25.82,26.41,26.71,27.66,27.14,29.21,30.21, 31.52,31.90,32.36,34.23,33.31,34.74,34.26,34.23,37.26,38.56, 38.30,38.60,40.36,40.94,43.41,41.88,44.27,43.53,44.12,45.52, 45.32,46.69,46.35,47.81,48.04,49.60,46.75,49.17,51.43,53.45, 53.47,55.02,55.80,54.41,55.21,56.31,57.59,58.20,61.28,60.82, 61.81,61.33,62.69,64.54,63.58,64.82,64.79,65.72,68.22,67.79, 67.95,69.51,70.61,72.08,72.81,71.74,74.24,73.73,73.21,75.81, 76.97,76.09,78.11,79.77,78.95,80.52,81.06,81.51,79.35,81.99, 82.91,83.22,86.19,86.34,84.92,87.31,89.36,89.17,89.81,89.83, 91.37,90.59,94.93,94.79,94.08,95.74,98.59,98.25,95.92,99.70, 99.10,100.52,101.04,99.73,101.91,102.70,102.95,106.33,104.16,104.33, 106.60,106.07,109.28,111.19,111.52,112.21,108.88,113.30,113.71,113.72, 114.69,115.24,117.82,117.28,115.32,119.39,120.05,118.93,118.85,122.07, 120.33,122.77,123.24,121.65,125.62,124.87,126.35,126.08,127.17,131.80, 131.00,130.12,129.00,133.60,133.80,136.15,132.20,136.04,133.90,137.10, 138.53,136.99,137.50,140.52,140.97,140.87,141.00,140.46,145.84,142.59, 145.75,145.59,146.94,146.92,146.54,151.32,148.66,149.93,150.33,152.15, 151.52,154.00,152.38,153.48,155.78,158.12,154.49,160.69,157.66,159.50, 161.44,157.33,161.96,162.40,164.03,163.20,164.71,165.31,166.22,165.05, 167.90,167.31,169.86,171.68,171.00,173.06,171.74,176.25,174.20,172.32, 175.71,176.69,179.21,174.26,175.78,175.81,176.01,182.48,180.19,179.84, 184.80,183.32,184.94,185.31,185.28,185.04,188.82,185.99,188.71,191.66, 189.98,189.12,189.73,193.90,192.19,191.41,193.70,197.85,196.40,196.30, 193.53,198.97,199.26,203.23,201.83,204.54,202.51,205.54,206.02,205.01, 207.26,206.65,205.41,210.94,207.44,210.52,209.75,210.93,212.42,211.21, 213.51,214.31,214.29,215.61,215.58,217.39,215.09,217.30,221.84,218.90, 221.12,223.85,222.76,222.56,223.75,223.54,227.96,223.79,225.11,226.09, 6.62,6.96,7.10,7.74,8.10,9.44,9.54,10.21,10.62,12.62, 12.77,12.93,14.26,13.34,14.34,15.33,17.04,16.80,16.74,18.32, 18.88,19.58,20.41,19.51,21.09,19.88,22.29,23.05,23.99,23.61, 25.44,24.16,27.07,26.50,26.64,27.13,27.33,28.02,28.99,30.07, 30.14,31.83,32.01,32.10,33.16,32.92,33.76,36.57,35.69,35.85, 37.16,37.35,37.52,39.42,39.11,39.97,40.19,40.89,43.19,42.96, 42.09,44.35,43.65,44.52,44.88,47.07,45.90,47.23,48.81,49.15, 49.65,49.47,48.85,50.68,50.90,52.65,52.48,53.14,54.02,54.09, 55.04,54.09,56.78,55.76,55.41,59.50,59.50,58.30,59.26,60.94, 60.89,62.02,63.86,63.38,63.00,63.83,65.88,66.49,64.34,66.73, 67.39,68.01,68.11,68.61,68.79,69.34,71.39,72.91,71.24,72.45, 75.06,73.12,75.19,75.26,74.65,76.58,77.46,76.26,76.33,79.55, 82.20,81.68,80.48,81.15,81.26,81.55,83.62,80.73,84.28,85.72, 84.44,85.61,87.24,86.54,87.48,88.92,88.53,90.79,88.44,91.18, 93.84,91.66,94.60,93.83,94.71,95.80,94.15,98.67,97.76,96.05, 96.55,99.36,98.92,97.30,101.16,99.98,102.03,100.34,101.68,104.90, 105.80,105.09,105.47,105.23,105.64,105.71,108.03,108.39,106.77,109.31, 108.15,110.45,111.15,110.92,113.47,112.95,111.60,115.18,115.26,115.00, 116.89,117.10,115.55,116.90,118.91,118.30,120.82,119.01,119.33,117.87, 123.71,124.62,123.79,123.66,124.12,123.77,122.84,125.03,126.21,129.15, 127.16,130.41,130.65,129.29,130.38,130.49,131.28,131.33,133.19,131.17, 133.92,135.05,137.61,134.16,134.02,136.57,138.18,136.85,140.52,139.09, 139.96,144.66,142.40,142.71,142.65,142.94,144.76,145.40,146.06,142.94, 146.56,146.07,148.72,149.99,152.86,147.70,149.72,151.56,150.27,151.61, 153.03,152.62,155.70,153.08,154.61,155.55,159.01,159.84,157.92,156.45, 159.94,158.96,157.79,163.22,165.09,160.41,157.50,165.97,166.00,165.50, 166.72,164.53,164.60,168.33,166.07,168.49,166.69,168.25,170.63,172.70, 172.66,170.79,170.66,173.30,176.14,170.52,172.20,175.48,174.37,175.51, 179.21,180.33,175.96,180.32,178.53,177.94,179.74,182.52,180.24,180.91, 5.09,5.27,6.33,7.42,7.34,7.18,8.40,7.79,8.63,9.63, 9.95,10.04,10.36,11.75,12.16,12.01,12.26,13.07,13.60,14.58, 14.78,15.68,15.53,16.44,16.91,16.59,17.08,18.88,19.17,18.46, 19.42,20.64,20.88,22.20,21.24,22.83,22.05,23.18,22.98,24.70, 24.79,24.60,26.29,26.34,25.80,27.06,28.12,26.71,28.81,28.18, 29.84,30.00,29.11,30.80,30.23,32.32,32.89,32.42,32.51,34.79, 35.40,35.34,36.37,35.84,36.28,35.60,37.05,36.88,37.30,38.17, 39.05,39.27,41.11,40.75,40.18,42.52,42.80,42.99,44.02,43.31, 44.17,44.89,43.87,44.90,45.09,47.32,46.88,46.80,47.02,47.34, 46.91,49.16,51.21,50.37,51.16,51.28,52.41,52.35,54.00,55.27, 53.86,54.61,53.89,55.21,56.59,56.25,56.97,57.43,57.76,58.50, 57.25,59.48,58.66,59.00,59.52,62.69,61.65,63.53,64.06,62.84, 64.14,64.12,64.72,65.99,63.90,67.27,65.85,67.92,65.76,66.68, 69.97,68.39,69.58,68.46,70.39,70.12,72.63,73.17,71.29,74.00, 73.68,72.26,73.62,73.70,74.08,79.55,77.82,78.36,77.52,76.08, 76.91,78.51,79.81,80.69,79.45,79.88,80.56,81.23,81.17,84.17, 82.15,83.23,84.67,84.78,84.17,85.78,87.15,84.63,88.59,83.86, 89.68,86.91,89.08,87.58,90.62,90.80,91.04,94.24,93.44,91.13, 91.88,92.19,95.00,94.15,96.39,93.93,95.81,97.67,95.34,96.72, 96.90,99.37,97.19,97.05,98.60,102.08,100.55,101.69,103.40,102.68, 104.42,101.26,103.24,102.40,105.74,104.40,104.01,106.50,105.65,105.20, 106.90,109.23,106.92,106.90,109.72,108.67,109.53,112.45,109.67,110.66, 114.69,111.25,111.24,114.41,116.27,114.57,116.07,114.44,115.23,117.57, 116.00,118.51,117.06,118.31,118.97,119.39,118.94,118.74,120.45,122.73, 121.82,123.85,123.06,122.12,123.70,126.41,128.67,123.85,127.06,122.76, 125.52,127.50,127.36,126.88,130.35,129.61,129.82,129.08,130.44,130.13, 130.40,133.14,129.85,132.86,134.54,135.99,134.38,133.72,135.15,136.66, 137.96,134.69,135.94,137.35,140.22,138.56,140.44,141.66,142.08,142.61, 140.14,139.14,142.11,140.86,146.25,142.29,145.25,144.03,145.61,143.65, 4.17,4.35,4.31,4.87,5.39,5.69,6.21,6.34,7.53,7.86, 7.60,8.49,8.79,8.42,9.30,9.34,10.97,10.97,11.52,10.91, 12.06,12.19,12.51,13.17,14.62,14.06,13.10,16.09,14.97,15.96, 15.41,16.49,16.38,18.61,16.41,17.55,19.04,18.78,18.74,18.41, 20.69,20.09,18.85,21.13,20.90,20.89,21.65,20.90,22.50,23.43, 23.33,24.05,23.76,24.94,25.11,24.80,24.69,26.56,26.93,26.75, 27.55,27.45,28.29,27.75,28.64,29.98,30.13,29.86,30.57,30.25, 31.37,31.32,31.79,32.87,32.22,34.41,34.20,32.99,33.58,34.26, 34.07,35.20,35.56,36.20,36.39,36.67,36.32,36.58,39.23,38.17, 37.82,38.00,40.79,38.89,41.59,39.15,41.25,42.09,41.58,41.95, 43.19,42.79,43.10,43.88,44.28,45.55,44.99,45.77,46.06,47.63, 47.23,47.29,48.17,47.62,47.27,47.76,47.86,50.34,50.76,49.48, 50.40,50.63,51.80,51.68,51.88,52.26,53.38,53.37,52.42,54.00, 55.02,52.71,54.41,55.04,55.64,59.32,55.66,56.64,57.26,58.56, 58.53,59.75,58.57,58.88,61.13,59.45,61.36,62.64,61.56,61.02, 62.98,62.31,62.01,64.95,64.38,64.20,64.64,63.44,65.32,65.11, 67.06,67.06,65.66,67.52,67.94,67.89,67.82,67.22,68.12,69.61, 69.90,69.86,70.64,71.14,72.26,69.29,73.75,73.68,75.41,75.63, 74.73,74.85,74.00,74.37,75.43,76.09,74.40,74.70,79.25,77.92, 77.93,75.97,77.45,79.81,77.32,79.31,81.01,80.17,82.97,80.36, 83.85,83.59,82.98,84.30,83.33,80.92,83.37,82.56,85.82,82.91, 86.97,89.26,86.25,84.50,88.96,87.07,84.83,89.96,88.34,88.98, 91.28,87.56,89.86,90.30,91.44,92.12,92.74,93.89,92.62,93.81, 93.83,92.35,92.34,92.84,96.20,93.94,97.33,94.52,94.67,98.08, 96.74,97.34,98.03,99.84,99.24,99.12,97.51,97.87,98.29,101.20, 99.42,102.15,102.43,102.36,102.82,103.50,103.33,103.02,103.93,102.34, 104.80,106.81,107.52,105.94,105.23,106.65,107.59,109.55,107.34,106.33, 109.40,110.18,112.77,109.61,109.07,110.89,112.24,109.94,112.01,113.29, 113.60,112.40,113.23,113.56,116.21,114.60,115.20,113.21,114.72,115.64, 2.95,3.52,3.50,4.30,4.38,4.86,4.52,5.32,5.63,6.68, 7.01,6.38,6.81,7.34,7.72,8.14,8.11,8.56,9.68,9.59, 9.01,10.48,10.07,10.61,10.11,10.98,11.20,11.54,11.51,12.26, 12.61,13.35,12.63,14.06,13.31,14.59,15.18,14.08,14.90,15.91, 15.29,15.91,15.75,16.58,17.47,17.23,17.28,18.53,17.25,18.89, 18.99,19.78,20.30,19.00,19.94,19.35,20.74,21.01,21.53,21.09, 20.56,22.49,22.93,22.97,22.90,22.70,24.38,23.07,23.77,25.12, 24.39,25.85,24.35,26.24,25.76,25.40,26.62,26.45,27.69,27.53, 26.93,28.51,28.09,29.22,29.55,30.13,30.16,28.64,30.41,31.14, 31.14,31.89,31.52,30.91,33.28,31.20,32.96,32.68,32.68,32.95, 33.62,33.68,34.50,36.01,36.68,36.16,36.24,35.73,35.74,37.19, 37.41,36.50,37.35,39.11,37.65,40.47,39.31,40.67,40.08,39.56, 41.52,40.55,41.09,41.80,41.51,40.94,41.19,43.63,43.75,44.70, 42.96,43.48,45.43,45.15,43.66,46.47,46.51,45.09,47.16,46.05, 46.17,46.41,47.74,47.87,45.57,46.80,47.91,49.06,49.50,49.38, 49.24,48.91,49.32,49.93,51.70,48.92,51.81,53.97,51.15,51.15, 53.73,52.94,52.55,53.77,52.82,53.42,53.16,53.42,55.32,56.79, 55.48,55.01,56.34,57.07,56.03,58.54,57.57,58.77,56.58,60.34, 58.55,58.08,59.81,58.36,61.77,59.90,60.76,60.01,62.12,62.74, 59.35,63.14,62.32,64.21,63.02,60.51,64.73,63.15,62.55,65.29, 63.93,65.04,67.05,67.10,66.25,65.94,68.43,65.30,67.26,69.21, 69.33,68.75,68.69,70.00,68.56,68.16,69.58,69.13,72.22,73.71, 71.87,71.91,73.24,72.50,73.74,73.14,74.75,73.97,74.18,72.73, 74.01,74.34,74.47,75.48,76.30,76.62,76.10,76.26,73.45,74.65, 76.17,79.37,76.68,77.57,79.58,80.00,78.56,80.08,82.25,80.62, 80.61,81.61,79.19,81.11,82.46,81.32,84.50,82.37,84.52,84.57, 80.95,85.00,84.83,84.29,82.95,86.03,86.47,85.61,85.97,85.05, 86.59,87.73,86.09,88.78,90.27,87.59,87.44,87.67,87.76,87.75, 89.46,90.05,88.84,91.66,91.82,91.44,93.00,94.34,90.78,91.34, 2.49,2.91,2.80,3.17,3.50,3.63,4.55,4.60,4.82,4.99, 5.46,5.35,5.48,5.99,6.58,5.99,6.74,6.70,7.06,7.11, 7.53,8.26,8.60,7.92,8.45,9.23,9.10,8.70,8.52,9.74, 9.25,9.58,10.89,11.00,10.96,11.75,11.05,12.18,12.38,12.42, 12.87,12.28,12.05,12.94,12.99,13.44,13.93,14.27,14.39,15.71, 14.80,14.59,14.69,15.04,15.39,14.92,17.30,16.05,15.42,17.85, 17.17,17.47,17.49,17.84,18.39,17.25,18.89,19.83,19.33,20.70, 19.34,19.56,19.82,20.09,19.36,22.04,21.57,21.35,22.60,22.16, 22.16,22.61,21.48,23.83,23.16,23.52,23.80,23.16,24.73,23.82, 24.42,25.29,24.88,25.20,24.41,27.10,25.95,27.08,26.45,26.08, 27.26,27.32,27.14,28.69,29.15,28.95,28.65,30.68,27.98,29.11, 29.57,29.73,30.16,29.71,30.23,29.81,30.86,31.99,32.13,31.50, 31.14,33.08,32.79,32.74,33.27,32.68,35.61,32.16,33.81,35.14, 35.53,35.74,35.48,35.45,35.99,35.49,35.59,36.20,37.08,35.98, 35.72,36.87,38.32,37.15,37.18,37.54,36.23,37.73,38.54,39.83, 38.61,40.53,40.84,39.25,38.76,42.85,40.43,42.42,40.43,41.64, 42.10,42.02,42.13,43.34,42.36,42.75,42.77,42.35,42.56,43.86, 43.73,45.31,45.30,44.96,44.39,48.13,42.49,47.08,48.25,45.98, 45.43,48.12,47.95,46.59,48.54,47.28,45.01,49.31,50.38,48.63, 49.26,51.32,50.69,50.11,49.77,48.90,49.55,52.16,50.92,52.12, 51.76,52.91,51.50,52.91,53.44,53.37,52.49,53.81,54.78,52.55, 54.07,52.53,55.25,53.91,53.24,56.56,56.30,55.18,58.53,53.83, 56.16,55.56,58.05,58.60,56.85,56.66,56.99,61.23,59.42,59.23, 59.16,58.61,59.64,61.41,59.93,59.11,61.66,60.96,62.10,62.89, 63.19,60.03,63.30,59.65,62.02,61.59,62.34,60.82,62.88,64.20, 64.64,63.96,63.56,65.23,64.41,65.50,65.98,65.89,65.82,64.81, 65.12,65.56,67.54,67.95,66.00,67.59,66.62,67.26,68.32,70.11, 69.24,67.81,68.17,68.22,73.58,68.27,69.36,70.58,71.38,70.84, 70.82,71.92,70.94,70.00,72.51,72.94,73.77,75.10,73.58,74.00, 2.09,2.13,2.15,2.65,2.72,2.84,2.88,3.80,3.45,3.99, 4.35,4.10,3.91,4.85,3.93,4.39,5.17,5.49,5.44,6.18, 5.41,6.38,7.14,6.28,6.04,6.99,6.92,7.31,7.88,7.85, 7.67,8.04,7.90,8.52,8.41,8.23,9.39,9.62,9.13,9.57, 9.93,10.52,10.79,10.06,9.69,10.80,10.48,10.38,12.27,11.27, 12.24,12.69,11.62,12.58,12.13,13.28,13.04,12.29,14.30,14.64, 15.00,14.66,13.02,13.63,14.62,14.29,14.95,14.49,15.77,15.51, 15.62,15.83,16.58,16.61,17.62,16.82,15.87,17.66,17.43,17.59, 18.35,17.17,18.18,18.94,18.22,19.71,17.32,19.46,20.37,19.45, 19.65,20.23,19.50,19.95,18.33,20.63,21.24,21.09,21.28,22.86, 21.59,21.45,22.45,22.18,22.30,22.41,22.09,22.76,23.09,22.27, 25.01,23.43,24.80,22.42,25.32,25.14,24.43,25.54,25.77,26.19, 24.47,25.38,25.36,26.15,26.10,26.71,26.06,26.29,25.82,27.97, 26.23,27.61,27.39,28.55,28.14,28.07,26.94,27.94,30.36,28.72, 28.13,29.73,30.44,31.74,30.32,30.96,29.42,30.39,31.42,30.43, 31.74,30.96,31.59,32.49,32.56,32.05,31.32,32.44,31.44,32.35, 31.34,34.12,34.08,34.01,34.60,35.24,33.70,35.92,35.33,34.93, 33.42,34.98,35.63,35.42,35.30,36.17,35.80,35.35,34.98,38.01, 36.27,37.16,35.96,38.04,38.98,37.78,37.92,39.38,39.32,37.14, 39.81,38.68,38.88,40.58,40.12,39.45,41.41,40.79,39.39,39.90, 40.89,42.02,40.88,42.33,41.43,42.31,44.02,41.23,43.79,42.70, 43.05,43.63,42.20,43.07,44.95,44.46,43.27,43.08,44.19,43.19, 44.93,43.85,45.49,44.65,44.66,44.21,45.50,48.09,44.58,47.15, 45.53,48.35,48.42,48.52,46.48,49.08,47.28,47.55,46.17,47.99, 47.58,49.62,48.54,48.39,49.83,49.73,50.11,50.56,49.73,50.46, 49.65,51.49,51.78,51.41,50.96,50.99,52.26,50.61,52.28,52.02, 52.47,51.00,51.46,53.59,54.03,53.77,51.91,53.46,52.54,54.45, 55.15,55.25,54.44,57.54,56.66,56.27,53.56,55.07,57.09,53.47, 57.56,59.27,55.17,55.01,56.67,58.36,57.37,59.99,59.05,61.44, 1.58,2.04,1.70,2.32,2.05,2.61,2.40,2.67,2.89,3.04, 3.77,3.15,4.24,3.77,3.40,3.78,4.39,4.18,5.45,4.83, 4.59,5.29,4.87,5.44,5.61,5.72,6.12,6.92,5.61,6.24, 6.05,6.58,6.90,6.59,7.15,6.72,6.77,6.70,7.16,7.28, 8.00,8.25,8.50,8.70,8.54,7.57,8.74,9.05,9.31,8.35, 9.31,9.38,9.73,9.82,9.26,11.23,10.08,10.17,10.40,10.22, 10.60,11.22,10.84,10.09,10.69,12.09,11.52,11.64,12.01,12.66, 12.25,11.89,11.76,12.42,12.38,12.49,13.47,12.86,14.17,14.95, 14.87,13.75,14.69,13.92,13.98,14.51,14.52,14.43,15.12,16.17, 16.03,15.35,14.99,16.16,16.16,16.05,16.82,16.92,17.37,16.76, 17.20,18.31,16.62,16.82,18.54,19.41,18.61,19.08,16.34,18.44, 18.30,18.54,18.69,18.50,20.18,17.92,20.43,19.35,20.36,20.28, 19.61,20.59,19.67,20.46,20.30,21.26,20.83,21.54,21.56,22.58, 22.24,22.05,21.05,24.24,22.24,23.09,21.36,22.23,22.30,23.28, 23.34,24.18,23.97,26.02,23.54,24.12,24.43,24.02,23.79,25.59, 24.60,25.58,24.44,25.61,25.55,25.12,25.63,25.54,27.80,24.69, 26.93,26.15,27.79,27.19,27.00,26.68,27.10,27.48,27.92,28.12, 26.90,28.31,27.52,27.91,28.19,29.21,27.91,28.36,29.17,29.00, 28.36,28.98,29.33,29.57,30.01,30.46,29.95,32.20,30.56,30.64, 31.90,31.38,30.98,32.11,31.28,30.70,32.52,32.15,32.31,31.85, 31.97,31.88,32.77,32.26,34.08,33.11,32.08,32.30,32.31,31.37, 34.22,33.84,33.48,35.64,33.43,34.96,33.74,34.51,34.97,35.87, 35.33,35.36,37.68,35.33,36.71,37.18,36.90,36.67,35.62,34.94, 38.26,38.59,38.02,36.27,36.66,36.82,37.64,37.13,38.99,40.96, 38.85,39.67,39.85,39.09,40.06,40.52,38.84,39.41,38.97,38.52, 39.24,41.69,39.11,41.42,40.46,39.39,40.93,41.42,40.73,41.23, 41.59,40.02,42.43,41.60,44.88,44.74,42.82,43.33,42.62,44.68, 42.22,43.94,42.97,44.61,43.12,42.92,43.50,45.36,45.03,43.77, 42.98,42.55,45.65,45.05,42.75,44.99,45.30,45.73,46.97,46.57, 1.25,1.38,1.49,1.73,1.61,1.75,1.61,2.17,2.03,2.52, 2.74,2.90,2.74,2.69,2.39,3.24,3.20,3.29,3.36,3.35, 3.31,3.35,3.99,3.66,4.30,3.76,4.51,4.53,4.19,4.44, 5.09,5.04,4.99,5.92,5.59,5.22,5.65,5.76,5.85,6.24, 6.45,5.88,6.57,6.42,6.46,6.98,6.74,6.77,6.98,7.53, 7.88,8.13,7.13,8.37,8.44,8.69,8.16,8.56,9.27,8.26, 8.08,9.14,8.16,8.76,8.80,8.84,8.46,9.10,8.59,9.85, 9.71,9.99,9.57,9.85,9.82,10.91,9.70,10.03,10.36,11.27, 11.55,11.35,11.68,10.90,11.91,11.94,13.05,11.78,12.40,12.05, 12.10,12.30,12.31,12.53,13.47,12.46,13.43,12.40,13.72,13.09, 12.31,13.33,14.57,14.30,13.12,13.27,13.53,15.00,14.68,14.77, 13.83,14.42,14.95,15.44,15.81,16.59,15.12,15.09,15.87,15.53, 16.64,16.32,15.50,16.27,14.97,16.89,18.21,16.80,18.55,17.70, 17.57,17.27,16.75,18.53,17.15,17.64,18.31,18.93,17.85,17.98, 18.96,18.28,19.19,17.85,19.49,19.47,18.51,19.06,20.25,20.21, 18.32,18.77,20.20,22.12,20.44,19.33,22.16,20.84,21.02,20.44, 22.86,19.84,19.64,20.42,22.43,21.01,21.82,21.32,21.81,22.64, 21.96,22.87,20.59,23.29,22.76,21.38,22.74,22.43,20.23,23.06, 23.75,23.95,24.95,24.47,23.01,23.90,24.03,23.52,23.70,24.00, 25.16,23.75,23.93,25.45,23.90,24.76,26.19,25.36,24.79,24.13, 24.89,26.98,24.23,25.90,26.51,25.98,26.22,26.62,26.40,24.54, 25.63,27.63,25.56,27.31,27.02,27.97,28.79,27.07,27.10,27.57, 29.28,27.26,28.28,27.50,28.44,27.65,27.68,27.41,27.26,28.03, 30.59,30.23,28.59,29.80,28.94,28.45,28.57,31.17,30.50,30.87, 31.38,29.47,30.48,28.73,32.30,31.50,31.85,30.28,33.14,32.73, 31.52,31.32,31.95,31.33,32.16,32.12,31.47,32.63,31.64,33.70, 33.68,33.39,32.77,33.70,32.78,34.33,33.45,33.33,33.47,33.70, 35.32,33.61,35.63,33.58,36.05,34.95,36.10,34.26,34.59,35.44, 36.10,34.69,36.02,34.91,36.01,35.25,34.68,36.29,36.09,37.75, 1.00,1.01,1.27,0.98,1.35,1.38,1.47,1.71,1.51,2.01, 2.00,1.94,2.10,2.12,2.34,2.34,2.28,3.13,2.52,2.99, 3.15,3.41,2.83,3.07,3.13,3.29,4.05,4.14,3.88,3.46, 4.18,3.27,3.68,4.30,4.06,4.42,4.42,4.53,5.21,4.77, 4.34,5.17,5.44,4.87,5.30,5.55,4.56,5.58,6.00,5.97, 5.58,5.46,6.11,6.06,6.00,6.29,6.71,6.46,7.46,5.78, 5.61,7.82,6.98,6.53,7.17,7.10,7.84,7.64,7.03,7.33, 7.53,8.14,8.35,8.34,7.79,7.63,8.39,7.57,8.11,8.53, 9.11,8.40,8.71,8.98,8.42,9.23,9.50,9.46,9.02,9.97, 9.24,9.25,9.52,10.42,9.68,10.20,10.31,9.80,11.01,9.89, 10.53,11.54,11.04,10.86,11.47,10.33,12.04,10.88,10.45,11.38, 11.17,11.08,11.85,11.05,12.04,11.57,11.95,12.13,12.61,12.62, 11.96,14.63,11.87,12.45,11.88,12.53,12.61,12.96,12.56,12.39, 13.05,14.22,12.72,14.41,14.80,13.36,13.96,14.72,14.11,14.12, 13.66,14.51,15.18,14.72,14.97,14.43,14.88,14.41,16.17,14.76, 16.37,14.63,15.62,16.44,16.72,15.57,16.88,16.55,16.30,15.75, 16.45,15.83,16.13,16.60,16.71,16.04,17.28,17.51,17.29,16.28, 17.66,18.14,18.02,18.48,17.30,18.17,16.99,18.64,18.50,19.39, 17.68,19.11,19.46,18.34,17.51,19.77,19.64,20.37,19.27,18.87, 18.88,18.22,19.81,20.43,19.77,19.64,19.80,20.32,20.25,20.67, 17.43,20.11,19.34,20.32,20.50,21.00,22.12,20.86,21.01,21.83, 22.41,20.83,21.87,21.43,21.17,20.26,22.24,21.30,22.34,22.25, 21.35,23.24,22.80,21.10,23.01,23.30,23.79,21.50,23.44,24.31, 22.53,23.35,21.74,24.09,22.51,22.46,23.10,22.34,24.83,23.94, 24.95,24.37,25.12,24.23,24.98,27.46,25.44,24.68,24.73,24.08, 26.04,25.44,26.41,24.45,25.53,25.07,25.33,25.42,26.01,24.74, 25.45,26.11,26.58,27.50,26.23,25.55,25.32,26.91,26.49,27.78, 26.55,28.81,25.98,26.66,28.23,26.16,27.26,26.89,27.31,27.48, 27.37,28.14,29.56,27.35,28.39,29.42,27.91,27.93,29.21,29.00, 25.05,27.56,30.16,32.60,34.04,37.51,40.17,42.90,44.69,48.23, 48.73,51.64,53.45,55.48,59.11,60.32,64.01,66.42,68.74,72.96, 74.29,76.51,78.18,79.83,83.27,85.31,88.45,90.74,92.97,95.97, 98.16,99.99,102.32,105.10,107.41,110.45,111.14,116.25,118.53,119.79, 123.06,124.60,125.51,130.96,131.17,134.28,134.85,139.84,141.91,146.11, 145.77,147.91,149.76,154.19,157.18,158.07,160.81,162.29,166.36,167.14, 167.15,173.52,174.11,178.21,179.58,183.57,186.11,186.85,187.36,190.04, 195.76,195.58,199.45,201.59,205.20,206.92,207.12,212.48,213.99,216.81, 218.12,222.51,225.12,225.62,228.49,231.82,233.39,238.37,240.61,240.52, 243.39,247.27,248.55,251.84,253.18,257.41,259.32,258.74,262.42,264.57, 268.49,266.20,273.77,275.58,277.86,276.25,278.01,285.08,288.78,290.00, 288.86,293.92,298.44,298.61,300.72,300.31,306.01,311.55,312.57,314.15, 316.86,320.84,320.61,323.61,324.17,327.86,331.67,335.34,335.46,337.77, 342.06,342.10,346.32,348.04,351.21,350.95,354.43,356.55,359.56,361.48, 363.33,364.00,368.84,372.92,373.15,374.56,376.77,380.81,382.69,385.85, 387.80,389.83,394.19,395.43,399.03,405.20,401.63,407.64,406.93,410.98, 414.18,412.64,417.31,422.65,423.34,422.84,427.75,430.72,429.48,434.80, 438.79,439.15,441.40,442.47,447.25,448.90,453.49,453.08,456.47,458.99, 461.57,468.46,469.91,468.03,471.33,475.28,476.02,478.96,482.39,483.18, 485.16,488.12,489.47,491.99,496.40,498.87,499.53,503.48,507.14,505.51, 510.59,514.79,516.80,519.16,516.71,523.36,523.45,527.73,528.18,532.28, 533.84,536.11,537.51,542.58,545.75,545.47,550.68,545.62,553.20,553.50, 556.10,564.35,564.58,567.99,563.63,575.62,571.81,575.51,579.76,582.22, 580.67,580.58,589.69,590.21,590.58,596.76,600.83,602.13,600.35,599.08, 608.56,609.14,613.71,616.60,613.11,617.79,620.07,628.22,630.14,629.72, 637.00,636.54,635.99,637.15,642.92,640.96,646.50,648.64,648.79,653.22, 653.96,655.74,659.21,665.89,667.24,669.79,675.66,671.54,669.92,675.00, 679.46,684.29,684.88,684.88,691.66,692.75,694.15,698.42,699.75,699.38, 706.98,705.33,708.08,711.37,710.88,717.14,719.54,721.83,722.31,722.96, 20.53,22.30,24.36,26.70,29.00,31.45,31.73,34.44,35.80,38.88, 40.46,43.09,44.07,46.34,48.59,50.99,53.67,54.01,56.68,59.04, 60.51,62.22,65.72,68.30,70.09,71.44,72.06,74.63,77.03,77.63, 81.35,80.60,85.47,88.71,90.13,90.82,92.30,95.75,97.60,99.72, 100.72,103.53,107.09,106.71,108.90,112.83,113.76,115.29,116.70,116.25, 119.83,121.61,127.34,127.30,128.52,128.29,133.67,133.99,139.16,139.41, 138.64,146.51,147.44,146.10,149.45,152.31,154.22,155.66,156.27,159.16, 160.17,165.66,165.75,168.36,171.04,170.54,171.14,176.50,175.88,181.21, 179.88,181.52,185.32,187.18,190.49,193.43,193.11,193.79,195.15,199.42, 200.84,202.50,206.44,207.39,211.25,211.02,215.11,213.49,216.88,219.92, 222.76,221.02,226.39,229.55,228.84,232.95,232.04,236.21,236.86,239.87, 240.56,243.25,242.92,246.38,251.32,252.19,249.74,253.45,256.52,261.15, 262.37,261.43,266.86,267.73,269.41,270.77,274.78,274.15,278.84,279.84, 281.12,284.71,284.28,288.06,291.95,287.40,295.56,295.14,298.10,297.30, 302.13,305.37,305.66,307.23,308.05,313.95,317.10,312.67,320.06,321.84, 321.00,323.21,326.44,327.81,326.98,331.93,332.68,331.98,337.59,339.99, 339.22,342.08,347.52,344.74,345.43,353.10,354.17,355.38,356.61,363.05, 360.83,366.20,365.94,369.21,368.14,374.28,373.16,373.64,377.13,381.17, 381.72,383.86,385.79,386.96,389.64,391.69,390.98,398.72,398.28,398.55, 401.23,405.38,406.17,410.64,410.31,410.19,414.89,417.83,416.16,420.87, 422.08,427.42,423.03,424.08,430.39,431.88,433.12,434.54,437.70,439.26, 441.04,446.17,447.34,447.56,443.89,448.41,453.12,455.25,458.24,460.02, 462.60,461.31,463.63,470.15,468.51,470.03,472.92,474.49,475.44,477.89, 482.91,483.80,484.25,487.66,493.57,493.65,497.67,494.39,498.60,507.74, 499.17,506.35,508.05,506.31,506.67,510.62,513.64,512.71,516.71,522.13, 522.02,523.81,525.90,525.00,531.11,531.00,537.39,536.17,538.80,537.27, 538.77,542.59,552.21,546.84,552.15,551.31,552.10,554.33,556.47,559.52, 558.48,559.08,564.54,567.79,574.66,574.27,577.28,576.91,578.31,579.28, 582.66,588.21,586.19,590.70,589.94,588.96,594.03,595.83,599.04,603.53, 17.18,18.56,19.85,21.55,23.26,24.91,27.08,28.90,30.11,31.48, 34.58,34.72,36.89,40.20,40.90,42.06,43.32,46.03,45.79,48.38, 49.08,51.79,54.07,55.54,57.34,59.45,60.52,61.37,64.07,63.55, 66.15,68.63,70.62,69.69,73.51,74.82,77.22,78.59,79.28,80.72, 82.49,84.67,86.38,88.76,89.28,89.97,94.15,94.36,96.98,98.52, 99.48,101.89,103.74,106.34,107.03,108.51,108.64,110.77,111.29,115.92, 116.56,117.98,119.01,124.06,122.32,123.94,123.84,126.20,129.68,129.74, 133.14,135.13,136.07,136.38,137.07,140.60,142.69,149.46,144.80,148.50, 147.79,149.74,152.59,154.16,156.79,157.12,159.84,160.45,162.03,163.90, 166.28,166.41,169.62,170.78,170.59,174.15,177.24,175.59,180.27,180.79, 182.64,183.10,185.02,187.78,190.38,189.32,191.81,195.14,195.62,197.38, 197.30,200.95,202.45,206.27,207.13,208.03,208.64,210.25,212.65,210.01, 216.60,216.75,221.02,220.34,220.41,226.69,226.58,228.23,230.13,231.05, 231.35,233.57,233.31,239.09,235.24,239.43,241.76,241.34,247.53,244.81, 248.01,250.99,249.93,252.39,253.23,257.87,257.42,262.23,265.45,264.99, 264.21,266.00,267.01,271.40,273.12,271.18,275.53,279.15,278.35,279.35, 283.79,282.87,284.54,284.12,291.00,287.39,291.03,291.88,296.18,290.93, 297.70,300.86,299.00,301.69,306.05,299.93,307.58,308.44,312.12,311.59, 314.49,317.99,318.44,317.59,320.98,323.66,325.24,328.15,327.99,329.63, 330.03,333.22,335.36,338.90,336.08,339.73,339.49,343.88,342.81,346.31, 345.77,352.12,351.98,350.59,355.60,356.36,356.90,355.93,359.56,360.12, 364.23,366.05,368.08,366.11,373.43,374.00,371.75,377.72,375.25,380.37, 380.16,381.56,385.79,387.08,391.91,391.73,392.48,392.47,390.97,391.64, 399.52,399.11,401.78,400.49,404.91,409.19,403.76,404.37,410.77,409.79, 413.60,418.00,419.08,423.69,418.80,422.35,426.25,428.48,427.24,425.61, 431.44,433.00,433.00,434.83,438.02,434.45,440.06,440.27,444.37,442.15, 447.51,453.53,453.14,452.61,454.14,454.67,453.21,456.42,460.46,457.48, 462.60,462.78,466.58,461.63,466.78,469.65,469.56,472.82,475.10,475.59, 479.58,479.17,480.77,484.84,485.27,490.48,489.59,491.46,493.26,497.99, 13.99,15.78,16.92,18.01,18.61,19.97,22.98,23.20,25.02,25.91, 26.86,27.97,30.48,29.77,32.99,33.76,35.07,36.46,37.18,39.37, 42.20,42.32,44.44,45.03,47.44,47.17,48.52,52.68,52.19,53.41, 56.38,56.57,58.53,58.83,59.76,61.78,63.34,64.79,67.00,66.17, 68.46,68.75,70.36,74.73,73.74,75.36,76.43,78.98,77.56,79.64, 82.44,81.49,83.94,85.40,86.45,88.71,88.10,91.85,93.14,94.61, 94.59,97.09,97.31,99.88,100.13,100.86,105.58,104.62,106.38,106.41, 108.85,110.96,109.50,114.44,116.30,115.03,114.76,117.97,118.53,120.37, 122.09,123.24,125.49,126.37,127.87,127.41,130.50,132.53,131.14,134.65, 138.24,139.46,136.95,140.81,142.84,141.83,144.89,148.18,145.39,147.82, 151.85,150.17,153.55,154.13,155.08,154.24,154.50,159.22,160.91,161.48, 161.67,167.52,165.98,168.52,165.90,171.75,170.63,173.71,174.68,177.71, 172.69,178.35,177.79,181.83,183.39,183.16,185.79,185.91,186.94,187.43, 189.32,190.82,194.39,192.19,195.38,195.94,197.85,200.04,201.22,202.98, 204.52,205.66,206.99,204.84,208.35,209.48,211.19,209.96,217.38,216.11, 215.99,219.29,218.88,220.89,226.13,225.93,226.00,225.09,225.94,229.68, 231.68,231.05,233.04,232.36,234.54,239.05,238.26,241.79,242.54,242.87, 246.12,242.68,249.58,246.26,248.60,249.79,254.64,251.60,253.71,255.31, 257.40,258.23,262.02,263.06,268.52,262.01,269.71,266.95,267.63,268.39, 270.29,274.61,272.29,272.07,278.63,277.60,277.26,278.89,280.44,282.19, 287.42,284.40,286.39,290.09,292.84,292.90,294.98,293.52,295.38,299.36, 295.63,302.51,302.51,301.01,307.01,306.83,306.36,308.42,307.00,311.89, 315.06,314.81,315.36,317.60,315.90,318.65,322.42,319.07,324.65,325.90, 324.54,326.04,331.22,329.14,331.07,331.58,331.56,333.70,340.69,338.38, 341.17,343.82,341.05,341.17,345.08,345.15,345.84,349.27,349.67,352.19, 354.15,356.18,356.86,356.72,359.52,358.04,361.37,360.84,362.30,368.54, 364.10,373.53,365.69,373.62,373.12,371.77,374.00,374.55,380.57,381.22, 380.19,386.10,383.68,383.85,388.44,387.61,388.13,388.96,389.03,395.53, 399.15,388.73,394.46,397.18,395.69,397.63,398.08,402.28,406.42,404.68, 11.40,12.98,14.63,14.71,16.28,16.78,18.27,19.52,20.56,22.02, 22.84,22.82,24.74,25.64,27.11,27.64,28.49,30.20,31.49,32.37, 32.14,33.70,35.51,37.83,38.61,38.79,40.27,41.89,42.40,44.33, 44.87,45.92,45.06,47.07,50.64,53.17,50.59,53.22,54.30,54.53, 56.00,57.21,59.20,59.74,59.23,61.32,62.71,62.06,64.77,65.31, 67.18,68.88,71.44,69.39,71.32,71.26,75.29,72.86,75.15,77.98, 79.86,79.14,80.35,81.81,81.73,83.50,84.54,86.66,86.56,88.19, 90.06,88.37,90.12,93.77,93.07,95.65,97.59,93.94,97.67,97.55, 101.33,101.80,103.24,103.42,105.00,106.55,108.16,107.65,109.68,110.33, 111.04,109.92,116.10,115.83,116.51,116.79,117.80,119.42,119.72,117.81, 121.68,123.41,125.75,124.86,126.52,125.90,128.33,131.04,131.79,134.43, 133.46,133.17,136.74,139.26,137.72,135.93,143.40,143.21,142.00,145.75, 144.82,143.26,145.63,147.33,147.48,151.53,148.70,151.44,151.58,155.61, 155.53,154.52,159.00,159.66,156.90,160.08,161.03,163.37,163.18,163.95, 165.62,168.99,170.16,169.34,168.40,173.04,173.49,171.56,175.79,176.35, 177.49,176.85,178.93,179.71,182.22,182.46,182.68,186.30,188.51,186.46, 189.09,190.56,191.22,191.93,192.62,192.09,193.80,194.98,198.09,198.11, 199.67,198.15,199.53,204.82,201.97,205.49,206.58,208.30,206.57,212.84, 211.46,212.27,210.67,215.24,217.72,217.77,219.90,215.65,216.23,218.91, 225.43,222.90,223.02,226.01,229.24,227.91,232.31,228.12,229.94,229.20, 234.42,231.65,234.22,236.99,243.48,236.87,237.65,242.98,242.83,246.83, 245.05,245.04,248.26,247.43,246.67,249.03,247.95,250.34,250.80,248.09, 254.84,253.90,259.66,261.38,262.93,260.65,259.91,266.23,265.98,263.09, 268.08,266.32,267.02,266.77,271.31,271.78,273.12,273.51,274.10,271.47, 278.59,273.93,278.88,279.89,278.95,286.25,281.35,286.59,289.01,285.85, 287.73,289.46,289.72,290.73,293.35,291.58,296.33,297.24,297.64,301.68, 303.40,301.21,302.31,304.25,304.90,301.69,306.92,309.48,310.06,306.80, 309.14,309.76,315.16,309.86,313.87,317.49,316.18,314.52,321.76,317.55, 324.30,324.47,322.79,327.91,324.82,326.50,325.95,330.21,329.47,333.25, 9.81,10.07,10.82,12.32,12.69,14.21,14.87,16.03,16.58,17.79, 17.08,19.54,20.47,20.94,23.14,23.05,23.04,23.93,25.68,26.04, 27.49,28.46,28.48,29.99,31.83,31.61,34.52,32.34,33.91,35.90, 36.14,37.21,38.55,39.40,40.26,41.60,42.65,41.80,43.55,45.29, 45.54,47.27,47.39,48.81,51.66,50.06,51.72,50.30,52.07,53.10, 54.52,55.29,56.41,58.32,57.24,58.76,60.59,60.29,63.50,62.53, 62.73,63.97,65.82,66.76,66.33,67.76,68.29,69.98,70.72,72.41, 71.90,73.79,74.91,75.99,76.35,76.69,78.72,78.73,79.10,79.33, 82.18,82.97,82.64,85.83,84.11,84.15,85.93,88.21,89.75,90.32, 90.08,90.87,91.80,93.31,94.88,93.53,94.66,96.42,97.42,98.28, 97.70,100.66,101.34,102.62,104.08,102.89,103.86,103.62,105.21,106.76, 109.15,107.61,111.23,111.03,112.17,114.10,113.25,115.31,114.76,116.25, 117.90,119.52,121.37,119.42,119.64,118.18,123.50,124.32,124.84,125.14, 124.62,128.43,129.62,128.80,129.94,131.23,132.76,132.37,135.60,136.14, 136.65,134.03,138.84,135.95,139.31,140.50,141.46,141.76,144.09,144.72, 144.86,143.11,147.31,147.58,147.41,149.84,149.91,150.29,152.63,153.42, 152.17,156.22,154.65,155.59,159.35,159.05,159.34,161.74,160.01,163.03, 164.81,164.99,165.72,168.17,166.44,163.51,169.53,166.73,168.05,175.77, 174.60,171.42,171.43,173.59,174.53,174.78,178.87,180.84,183.26,178.71, 180.45,180.69,181.73,182.20,185.83,184.19,186.08,187.51,185.29,189.56, 191.05,191.41,192.94,187.25,192.25,194.85,194.38,196.01,198.65,196.71, 199.57,200.14,201.77,202.23,201.53,206.02,204.87,208.92,205.26,207.79, 206.67,210.07,212.40,209.14,209.73,210.52,213.72,213.79,217.04,216.26, 216.32,215.90,222.04,220.60,221.92,220.02,222.42,221.26,225.21,227.33, 228.89,227.69,222.71,228.00,231.78,232.79,232.90,233.69,228.95,231.79, 239.53,232.26,238.50,235.46,239.21,238.07,240.20,242.54,242.28,242.54, 242.48,244.84,246.91,246.73,246.42,246.71,248.96,251.57,249.65,252.49, 252.14,248.31,252.19,258.32,258.05,258.05,255.15,259.97,259.47,261.65, 259.70,264.38,267.09,265.18,263.06,265.95,266.64,269.89,269.67,271.05, 7.38,8.08,9.38,9.27,10.52,11.23,12.65,13.09,13.32,14.59, 15.33,14.99,15.67,18.54,18.88,19.31,19.02,18.99,20.69,21.98, 22.65,23.48,22.71,25.52,26.01,26.76,26.56,27.88,27.14,28.96, 29.39,30.16,31.73,32.80,32.96,31.69,33.04,33.97,34.76,36.41, 36.89,36.94,38.29,39.27,39.13,41.26,40.75,40.64,43.20,42.15, 44.23,45.50,45.41,45.36,48.46,48.14,48.72,48.36,49.42,50.55, 49.66,52.73,52.28,52.95,54.92,55.20,56.58,57.60,56.99,57.14, 58.65,59.15,61.28,62.08,61.61,63.14,62.86,64.85,63.89,65.19, 65.94,68.66,67.62,68.01,67.61,71.09,70.25,72.60,73.82,71.68, 74.48,72.85,74.16,75.39,74.87,77.21,76.47,77.44,80.30,78.38, 78.39,81.64,81.17,80.25,83.10,81.75,84.31,86.02,85.73,87.91, 89.44,88.26,91.38,88.85,92.25,91.90,91.58,93.66,92.70,95.57, 96.57,96.41,97.17,97.27,98.88,98.37,97.30,100.93,101.22,103.02, 103.91,103.99,104.18,106.08,105.42,105.49,105.28,108.94,108.69,108.97, 108.93,113.26,112.89,111.53,113.31,110.32,115.89,117.37,114.51,118.00, 118.81,119.15,118.47,119.60,119.74,123.83,120.68,122.54,126.08,123.53, 128.05,125.79,123.97,126.98,128.38,128.46,127.09,131.13,131.69,130.87, 131.53,129.29,132.66,133.62,132.26,135.41,138.35,136.96,139.19,141.26, 143.20,139.25,139.04,142.53,141.94,145.81,142.37,143.54,146.33,146.42, 145.39,150.09,148.43,148.87,149.73,153.16,151.21,150.28,150.94,156.33, 155.16,156.00,155.83,156.93,158.59,158.48,157.25,159.73,163.90,161.57, 161.74,162.48,164.12,161.90,164.76,164.34,164.57,166.22,171.04,167.19, 170.12,168.10,170.49,172.94,173.20,172.82,173.80,176.98,172.41,174.13, 175.82,180.13,181.56,179.39,181.71,176.61,180.16,180.98,182.34,179.23, 184.76,180.87,183.70,184.58,188.08,190.68,186.53,187.86,193.16,184.64, 186.15,192.60,193.11,193.14,195.96,197.03,195.66,195.51,194.75,193.39, 198.58,196.27,200.87,199.22,203.48,201.18,200.89,204.59,204.26,202.39, 202.14,207.55,203.86,207.74,207.68,206.13,211.54,210.50,211.39,210.82, 215.22,213.02,212.55,211.24,211.40,218.90,218.23,220.03,217.50,218.37, 6.20,6.90,7.56,8.50,8.76,10.04,9.60,9.79,10.90,12.29, 13.07,12.98,13.46,14.03,14.84,14.82,15.01,16.69,16.34,17.05, 17.57,17.54,18.88,19.75,21.31,22.36,21.02,22.93,23.03,24.15, 22.82,24.03,26.64,26.03,25.01,26.43,26.35,27.66,29.01,29.89, 29.48,30.65,30.98,32.10,31.65,34.18,32.53,34.07,34.73,33.95, 35.07,35.20,37.33,40.02,40.35,38.16,39.48,40.98,39.74,40.07, 42.42,42.12,42.32,42.83,44.81,44.65,45.87,46.88,47.19,48.09, 47.34,47.22,47.47,48.52,50.65,48.68,50.60,50.08,52.60,51.58, 53.01,53.60,52.24,57.13,56.02,56.05,55.56,58.28,57.00,60.29, 60.40,59.10,60.17,59.88,63.44,63.72,63.67,62.12,62.05,63.88, 65.28,66.14,66.06,68.67,67.28,66.29,70.91,70.28,68.71,70.29, 70.64,72.39,69.98,73.08,72.31,75.25,76.02,76.29,75.86,77.10, 77.89,77.11,78.87,79.94,79.03,80.55,80.03,80.88,81.41,82.80, 84.60,82.85,85.69,85.17,87.53,86.02,86.43,88.48,89.39,89.70, 89.02,89.90,89.17,92.63,92.37,91.08,91.46,92.58,93.95,95.79, 97.76,97.48,97.58,97.74,97.01,95.75,96.82,99.14,98.44,102.86, 101.02,98.63,101.65,102.29,102.77,105.99,104.95,106.19,107.40,105.79, 106.03,108.74,111.08,109.04,112.06,106.53,109.84,110.75,111.18,113.55, 112.45,115.17,115.52,115.25,112.34,114.70,117.13,119.69,116.45,115.43, 119.00,121.37,120.93,119.70,119.28,121.53,121.26,124.64,124.13,124.16, 125.85,123.66,126.09,126.31,127.68,127.52,131.12,127.87,127.74,129.02, 128.70,132.00,129.52,132.01,135.39,131.16,133.40,132.76,133.52,137.78, 135.04,139.33,140.75,134.94,139.00,141.89,138.27,140.97,140.88,141.74, 143.07,146.87,142.58,142.53,144.55,144.25,147.53,149.04,147.15,151.19, 151.73,147.61,152.29,150.26,150.85,151.54,150.77,151.64,152.97,154.58, 151.43,154.03,156.94,155.81,156.46,157.11,157.48,159.27,159.87,156.94, 160.86,159.30,161.76,161.28,164.31,161.40,162.11,168.09,167.40,166.00, 162.67,168.94,166.88,167.35,172.30,170.88,174.32,170.85,171.24,170.66, 171.59,174.18,172.47,174.07,176.15,174.77,176.21,179.09,177.22,176.61, 4.76,4.95,5.46,5.80,6.70,7.22,7.83,8.32,8.15,9.81, 9.85,10.60,10.72,11.35,11.56,12.61,13.01,13.88,13.86,13.93, 14.37,15.43,15.38,15.76,17.16,16.18,17.80,17.44,18.93,18.02, 21.06,20.11,20.76,20.93,22.29,21.84,22.53,22.98,24.12,24.17, 23.69,24.92,25.14,25.93,26.34,25.99,27.18,28.09,27.83,29.18, 27.97,30.41,30.29,29.63,29.30,30.70,32.34,29.84,33.21,32.26, 33.00,33.90,33.65,34.28,35.52,35.82,35.25,37.72,38.34,38.07, 38.15,37.25,40.09,39.20,40.72,41.59,41.85,41.03,42.47,42.78, 44.00,43.43,43.52,44.98,45.88,45.42,45.70,46.56,48.16,46.94, 48.26,48.17,49.16,49.45,49.58,50.26,51.29,51.09,54.21,52.95, 53.62,53.82,55.03,55.52,54.07,54.93,56.88,56.71,55.95,56.67, 57.19,57.01,58.34,58.94,59.73,60.62,58.63,60.18,60.95,60.21, 61.43,64.18,63.90,62.02,64.91,63.53,63.85,64.86,63.46,66.22, 66.86,67.99,67.13,68.75,67.75,69.08,70.28,71.48,71.38,70.06, 71.72,72.16,74.03,73.51,76.24,74.83,74.26,75.41,76.18,74.86, 78.08,75.93,75.82,78.28,79.56,80.10,80.90,82.67,79.72,83.51, 80.84,82.38,83.93,82.99,85.27,82.32,84.36,85.50,85.31,88.17, 86.01,87.63,85.02,87.94,88.69,88.90,89.44,90.46,90.61,92.68, 90.46,90.18,92.15,92.14,92.24,96.42,93.85,94.39,96.60,95.07, 94.56,96.21,96.03,96.13,98.39,99.69,98.44,97.47,101.50,101.07, 99.71,101.76,102.00,102.32,103.22,100.83,104.70,103.89,105.98,104.91, 104.06,105.09,107.20,107.90,104.40,107.02,108.28,109.27,109.77,109.04, 110.86,111.31,112.36,113.89,114.67,112.88,114.86,116.21,112.72,114.01, 115.81,116.29,116.08,116.38,116.41,116.99,118.68,118.60,120.06,116.05, 123.75,119.90,119.30,118.80,119.77,121.65,122.49,123.44,125.75,124.16, 124.12,127.60,125.84,126.94,128.10,124.86,129.24,129.95,130.48,128.67, 129.09,129.36,131.61,131.93,130.21,130.29,130.66,133.89,135.63,133.40, 131.63,130.44,133.34,131.11,134.34,141.00,136.39,135.45,141.32,135.18, 139.78,140.94,138.32,141.71,141.90,142.41,139.96,143.84,142.30,143.01, 3.50,4.86,4.76,5.49,5.43,5.76,6.39,6.32,7.05,7.80, 7.63,7.92,8.20,9.03,10.07,10.01,10.57,10.48,10.50,11.18, 12.31,12.37,12.54,12.46,12.89,12.48,13.15,14.60,14.71,14.21, 14.47,15.86,16.19,16.12,16.21,17.91,18.44,18.75,19.21,18.57, 19.71,20.16,21.31,21.02,21.62,21.80,21.12,20.96,22.99,21.42, 24.07,22.92,24.75,24.66,24.76,24.60,24.11,25.40,26.73,27.95, 25.00,27.18,27.00,29.66,29.36,29.17,29.71,30.14,30.25,31.14, 30.36,31.56,31.96,31.94,32.19,32.71,33.80,33.91,33.58,35.72, 33.27,35.99,34.09,36.40,36.71,36.41,34.79,38.20,36.78,38.58, 38.57,39.07,36.25,39.76,41.32,39.12,41.71,41.15,39.68,40.30, 41.71,43.45,42.45,43.05,44.87,43.51,44.87,44.86,45.82,46.58, 45.58,46.72,48.27,47.04,48.17,48.27,48.28,49.41,51.35,50.77, 49.95,51.47,50.94,51.25,52.27,52.27,51.42,53.23,52.85,53.09, 53.86,54.60,56.18,55.40,55.45,57.06,55.81,59.39,56.75,58.32, 57.27,60.25,59.33,58.43,61.00,60.59,61.78,58.64,62.70,60.30, 61.01,61.16,63.60,61.67,64.77,61.48,64.52,64.54,66.10,65.00, 66.10,65.28,66.27,65.91,68.92,68.66,66.44,66.87,70.40,67.01, 69.72,72.13,67.39,71.43,71.35,71.68,71.63,69.48,74.71,75.25, 72.44,72.02,73.23,74.23,71.89,75.09,75.92,75.93,77.43,75.28, 76.55,77.96,77.68,78.71,80.15,76.92,80.05,81.41,81.46,81.03, 83.04,82.20,83.04,82.93,80.93,85.35,84.00,84.28,83.89,83.55, 84.45,87.97,84.52,84.11,83.61,87.88,87.28,85.04,87.92,90.45, 90.01,90.50,91.68,89.45,90.06,90.34,92.51,89.38,91.00,90.42, 93.90,93.93,94.43,92.31,95.34,95.38,96.59,93.98,93.44,97.39, 95.86,97.84,97.35,95.68,99.50,97.71,96.87,98.87,98.37,100.82, 100.76,98.21,103.51,101.51,101.53,98.82,102.11,102.27,103.08,105.34, 105.48,101.51,107.66,105.27,107.25,105.83,106.63,106.49,106.17,105.82, 105.78,106.83,108.66,106.90,109.26,109.62,111.36,112.15,112.00,111.12, 111.30,113.65,113.95,113.32,114.78,113.50,111.33,114.28,115.66,114.35, 3.17,3.63,3.73,4.23,4.60,4.99,5.15,5.62,6.13,6.60, 6.60,6.51,7.29,7.80,7.61,7.46,8.79,9.05,8.44,8.93, 9.37,9.57,10.16,10.42,11.04,10.88,11.76,12.38,12.72,12.39, 12.08,11.71,13.30,12.80,12.86,15.20,13.67,15.08,14.50,15.13, 14.89,16.39,16.69,16.26,16.93,18.12,17.05,17.00,17.05,19.07, 18.22,20.64,18.51,19.77,18.51,20.40,20.76,20.71,21.08,20.76, 22.80,23.31,22.40,23.04,22.62,23.07,24.43,24.96,24.58,24.10, 25.26,25.66,27.55,25.38,25.79,26.51,25.90,27.19,26.31,27.74, 28.29,29.27,28.32,29.14,28.08,29.87,30.10,29.83,31.61,31.29, 30.00,30.18,30.87,31.60,33.22,31.90,33.14,35.19,34.30,33.67, 34.77,35.52,35.28,35.55,35.79,35.44,37.67,36.46,37.89,37.02, 37.32,36.67,38.28,37.79,37.81,38.88,39.05,42.11,40.59,39.72, 39.36,40.63,42.09,41.70,41.28,42.25,42.70,40.73,43.20,42.12, 43.60,42.30,46.29,45.60,44.84,44.62,45.81,46.93,44.64,46.10, 47.85,47.41,48.61,49.87,48.90,47.46,49.45,46.61,48.67,48.78, 49.60,48.20,50.88,48.55,52.72,49.56,50.73,50.74,52.99,53.16, 53.11,53.34,53.95,51.32,53.28,54.73,54.13,56.26,55.91,55.86, 54.40,57.11,57.38,57.00,57.26,57.95,55.98,58.51,57.73,59.02, 57.44,61.80,57.85,60.54,59.38,60.66,62.54,63.36,62.09,64.11, 61.99,62.77,62.62,61.64,61.97,64.08,63.95,66.91,63.71,63.23, 66.08,66.39,66.11,65.70,66.80,67.33,67.04,66.94,68.40,67.28, 68.69,69.03,69.34,67.52,68.78,69.98,69.52,70.66,69.16,72.04, 69.92,72.97,71.61,73.05,73.43,74.42,74.36,73.37,76.19,74.84, 75.44,75.45,74.50,77.21,75.68,76.76,78.32,78.23,78.30,75.42, 76.84,76.75,78.55,77.66,80.62,80.06,79.49,80.45,77.84,81.47, 80.92,79.90,83.04,80.52,80.29,81.22,82.65,83.56,84.68,81.93, 83.95,82.97,83.74,82.95,86.65,86.62,85.44,87.47,84.73,86.74, 87.22,86.16,88.95,90.26,88.77,89.17,90.25,89.59,86.58,89.73, 91.82,90.22,91.87,91.70,91.41,92.19,91.90,93.75,93.06,91.51, 3.08,2.59,3.14,3.12,3.65,4.23,4.11,4.33,4.50,5.21, 5.07,5.13,5.96,6.54,6.09,6.07,6.22,7.16,7.23,7.83, 6.60,7.52,8.45,7.74,9.40,8.97,8.81,9.50,10.29,9.68, 9.60,10.10,11.08,10.21,10.95,11.38,11.37,11.50,11.30,12.54, 12.36,12.18,13.55,13.20,13.69,13.04,15.02,14.63,15.15,14.49, 14.97,15.88,15.49,16.28,15.78,16.74,16.57,17.22,16.52,17.01, 18.68,18.28,18.48,18.56,18.60,18.97,18.57,18.61,18.59,19.54, 19.23,21.73,20.83,19.85,20.99,22.03,21.46,22.83,21.19,21.90, 22.46,22.03,23.96,22.59,24.65,25.21,22.62,24.83,24.75,24.70, 24.37,24.86,26.39,24.86,26.78,27.51,26.02,26.54,27.74,28.22, 27.46,28.39,27.19,27.18,27.59,29.52,30.11,29.23,29.24,29.39, 29.75,29.53,29.85,31.43,31.00,31.67,32.44,31.49,31.94,32.52, 30.37,32.34,33.65,33.28,34.72,33.77,33.70,34.81,34.29,36.34, 33.63,36.47,35.04,34.15,36.75,35.83,36.30,35.79,35.18,38.29, 38.51,37.55,38.01,37.57,38.60,40.59,39.82,40.35,40.13,36.62, 38.62,40.95,38.16,41.05,42.44,41.46,40.94,40.42,43.71,42.77, 42.40,43.29,42.80,41.70,43.89,42.12,43.20,45.24,46.10,43.72, 45.65,44.65,44.99,44.66,45.19,47.10,45.92,46.29,45.47,46.35, 48.11,47.98,47.70,47.31,47.82,49.19,49.05,50.14,50.29,47.86, 48.52,50.38,50.42,53.10,49.39,51.53,52.41,51.66,51.02,52.20, 52.41,53.45,53.91,52.94,51.94,51.01,55.34,54.68,55.78,53.57, 55.40,57.53,54.92,56.14,57.70,57.47,58.07,57.34,57.53,56.94, 58.63,58.97,58.79,56.93,59.86,59.80,58.93,60.46,60.42,60.10, 58.12,60.72,59.72,59.04,61.90,61.20,62.91,61.67,63.09,63.02, 62.57,64.07,62.38,64.10,62.10,63.54,63.86,64.51,65.15,63.42, 64.98,65.86,66.05,66.51,67.78,66.61,65.14,67.55,67.93,66.63, 68.67,68.49,66.61,66.12,69.56,68.18,68.73,71.12,69.17,69.65, 69.72,69.51,70.98,69.02,72.45,69.70,71.10,74.26,69.33,75.46, 74.15,72.68,73.44,73.20,74.03,73.97,72.38,75.44,74.12,74.84, 1.95,2.07,2.08,2.67,2.39,2.93,3.69,3.36,3.78,3.47, 4.34,4.48,4.85,4.56,5.40,4.89,5.73,5.88,5.86,5.70, 6.16,5.95,6.51,7.20,7.28,6.47,7.82,7.70,7.46,6.91, 8.36,8.33,7.75,8.77,10.13,9.50,8.41,9.47,9.82,9.51, 10.39,9.88,10.45,9.57,10.43,10.63,11.71,11.69,11.50,12.28, 11.38,12.02,12.93,13.03,11.61,12.90,13.78,13.18,13.87,14.00, 14.28,14.40,13.65,14.41,13.91,14.87,13.76,14.01,15.72,15.18, 15.65,15.91,17.48,15.78,16.51,17.41,17.12,18.70,18.34,17.35, 18.85,18.79,17.57,18.58,18.70,18.21,18.86,19.32,20.58,19.85, 20.04,20.19,20.18,21.34,21.13,20.84,22.82,21.15,21.24,21.37, 23.21,22.34,21.57,22.52,22.87,23.34,24.11,23.86,23.87,24.36, 24.60,24.31,24.20,26.09,25.97,25.75,25.94,25.40,25.81,25.92, 25.83,27.21,26.53,26.80,26.85,27.57,25.46,29.45,27.23,27.89, 28.56,29.18,28.46,29.07,30.54,29.58,28.44,29.56,28.64,30.44, 31.67,29.62,29.67,31.25,31.98,31.25,32.36,32.67,31.72,30.02, 31.63,32.08,32.25,33.49,32.95,33.31,33.77,33.55,33.88,33.17, 36.01,34.30,35.68,35.05,35.87,34.17,34.90,35.56,37.87,37.38, 35.85,35.88,37.90,38.61,37.59,36.61,37.59,36.05,37.44,38.10, 38.17,37.74,38.68,39.38,38.48,38.28,41.04,40.93,39.63,38.04, 43.40,41.15,41.66,41.63,41.39,40.98,41.79,40.76,41.96,41.17, 42.31,43.67,42.58,41.56,42.66,42.94,43.77,44.99,44.02,45.05, 44.31,42.76,45.33,45.64,46.33,45.11,45.10,47.79,46.29,44.48, 44.72,46.21,45.88,47.12,48.06,48.25,46.79,48.13,48.89,46.80, 47.81,48.76,47.50,48.36,48.60,48.53,50.54,47.52,49.47,49.36, 49.00,50.33,51.38,50.27,47.82,49.50,50.18,49.69,51.96,51.02, 52.12,52.36,53.10,52.69,53.12,56.63,53.27,52.79,52.24,56.19, 52.95,55.06,54.09,55.87,55.50,54.39,56.15,53.61,57.89,55.80, 56.29,56.78,58.20,57.61,56.65,56.47,57.21,56.48,58.39,56.86, 58.63,60.70,59.26,58.39,60.95,59.74,59.84,60.72,58.02,60.30, 1.61,1.96,2.14,2.05,2.08,2.33,2.27,2.27,2.62,3.22, 3.03,3.76,3.15,3.71,3.87,4.63,3.72,4.65,5.09,4.47, 4.88,5.14,5.34,5.31,5.41,5.88,5.24,5.96,5.86,5.88, 5.66,6.54,7.00,7.39,7.16,6.83,7.40,7.43,7.69,7.67, 8.11,8.53,8.12,8.84,8.43,9.36,9.23,8.63,9.71,9.41, 9.78,9.61,10.06,10.32,10.62,10.79,10.84,10.99,10.28,11.24, 11.75,12.39,12.36,11.37,12.33,12.46,12.07,12.43,11.71,13.23, 12.43,13.13,13.98,13.19,13.27,13.14,14.22,14.73,13.81,14.45, 13.88,14.36,14.14,15.84,15.33,15.18,14.74,16.25,15.58,16.88, 16.32,16.23,15.90,17.58,16.67,16.93,17.06,17.68,16.93,18.37, 17.48,17.50,18.69,18.43,17.60,18.05,18.34,18.60,18.75,20.48, 19.66,19.21,19.23,18.76,19.52,21.18,21.42,22.19,21.38,21.06, 21.43,19.99,20.33,20.19,19.91,20.49,22.02,23.27,20.87,21.62, 21.95,22.05,22.20,23.46,22.80,23.84,23.20,23.18,24.72,25.24, 24.47,23.87,24.21,23.73,24.21,25.06,25.64,26.60,26.84,24.45, 26.77,27.59,26.68,27.05,26.58,26.21,25.07,26.44,27.09,28.00, 26.58,27.94,27.64,27.69,26.95,29.12,30.05,28.83,28.11,29.10, 27.65,28.93,28.93,29.13,29.76,29.63,29.51,29.88,31.57,28.62, 30.46,30.42,30.81,29.43,30.93,30.26,31.56,31.24,31.09,31.77, 31.79,33.74,33.01,31.46,33.09,30.96,32.44,33.76,34.17,34.08, 35.60,34.95,34.38,33.71,33.33,33.41,35.45,34.06,33.54,33.77, 31.72,35.28,37.15,36.36,33.67,34.59,36.04,38.50,37.28,36.30, 36.59,38.84,36.74,37.74,36.40,37.05,36.53,37.40,36.90,38.89, 38.73,38.18,41.01,39.87,38.85,39.99,39.02,39.27,39.28,39.28, 40.31,39.52,38.86,39.37,40.22,40.82,41.61,40.90,41.13,40.73, 40.43,41.04,43.35,42.58,42.85,43.43,41.98,44.24,41.41,42.38, 40.81,43.92,41.74,45.12,44.51,44.90,43.22,44.40,44.02,43.77, 42.49,43.68,44.38,45.28,42.94,45.72,43.67,45.96,44.58,44.67, 46.07,46.43,47.55,46.78,46.33,47.65,46.73,46.81,47.59,46.90, 1.25,1.72,1.76,1.78,1.91,1.67,2.20,2.09,2.34,2.51, 2.36,2.59,2.85,2.83,3.32,3.17,2.98,3.78,3.82,3.36, 3.36,3.81,4.53,4.39,4.14,4.02,4.46,5.16,5.18,4.42, 4.68,4.78,5.61,5.42,5.58,5.90,6.52,5.78,6.19,6.02, 6.49,6.54,7.13,7.55,7.01,7.52,6.72,7.79,8.21,7.91, 7.80,7.53,8.26,7.70,7.21,8.47,7.75,7.63,9.11,9.23, 8.81,9.58,9.72,8.86,10.00,10.31,10.32,9.77,10.67,10.07, 10.57,9.47,10.70,10.40,10.88,10.71,10.56,11.62,10.97,11.84, 11.20,11.22,12.12,11.21,11.85,11.95,12.62,12.26,12.81,13.58, 12.19,13.65,14.24,13.55,13.71,13.26,13.46,13.73,14.44,14.46, 14.70,14.23,15.32,14.82,15.68,15.09,15.55,15.32,14.90,14.34, 15.17,15.39,16.28,16.14,16.17,16.57,17.00,17.00,17.23,16.93, 17.57,16.32,17.47,16.49,16.86,17.66,17.15,17.38,17.61,19.33, 17.66,17.48,17.07,18.53,17.24,18.92,19.66,19.20,18.86,19.49, 19.51,17.76,20.11,18.97,19.57,20.04,19.94,19.92,21.06,19.93, 20.93,21.57,20.75,20.74,20.25,21.31,21.49,20.77,22.77,21.52, 20.93,21.68,22.40,22.53,23.70,23.36,22.01,22.18,22.96,23.34, 22.22,21.72,24.15,23.13,22.61,23.65,23.32,24.22,24.87,24.51, 22.46,24.04,24.75,24.64,25.12,25.55,26.05,25.70,25.74,26.03, 24.73,25.02,25.02,25.78,26.64,26.95,27.39,25.20,25.58,28.15, 27.97,27.01,27.21,25.42,27.72,27.24,26.35,27.71,28.29,28.54, 28.11,28.39,31.02,29.47,30.19,30.16,28.07,29.45,29.73,27.68, 27.72,29.99,29.90,30.59,31.43,30.39,28.35,31.23,31.98,30.77, 29.70,31.02,30.98,30.21,31.61,30.84,31.83,30.40,32.45,30.01, 30.52,30.64,33.30,32.62,32.98,32.41,34.35,32.39,34.50,33.14, 33.93,31.56,33.16,32.37,32.57,34.30,33.12,33.38,33.62,33.40, 33.32,34.18,33.65,35.46,36.00,35.33,35.19,36.97,35.42,35.57, 35.23,34.73,36.52,36.70,35.70,34.95,36.67,35.68,37.10,37.11, 36.27,37.81,35.75,36.20,38.76,37.02,38.29,36.81,37.86,40.76, 27.43,30.86,34.36,35.87,37.47,41.12,43.45,46.08,48.55,52.13, 54.75,57.03,60.37,63.15,66.23,69.02,70.07,73.45,78.36,78.50, 81.80,85.25,87.29,91.54,93.43,94.83,96.34,99.87,104.09,105.94, 109.39,111.35,113.46,118.38,120.48,123.06,124.62,128.26,129.95,131.54, 136.15,137.27,141.55,144.45,147.86,148.85,152.98,154.96,159.26,161.06, 163.56,166.07,166.31,171.63,174.75,176.28,178.93,178.46,183.33,186.49, 193.16,190.35,195.38,198.80,203.78,202.62,205.63,206.89,213.42,212.80, 215.42,222.59,222.99,225.93,226.46,230.79,232.04,237.35,239.38,241.07, 244.93,247.09,247.03,250.89,252.02,258.29,259.05,263.92,265.29,267.60, 269.79,273.84,276.37,281.46,279.58,282.88,286.39,288.62,292.91,294.38, 298.68,298.75,304.92,306.53,311.20,310.70,316.05,320.53,319.18,322.56, 325.94,328.23,331.00,330.98,332.75,337.47,341.58,344.00,346.92,347.34, 349.71,351.95,358.14,360.39,358.16,362.51,367.90,368.05,371.79,377.07, 378.42,379.63,383.37,385.11,390.60,389.76,394.63,398.02,402.01,401.05, 404.31,407.21,412.40,414.52,414.28,417.60,421.64,422.11,425.40,429.76, 432.04,432.77,438.64,435.98,441.34,447.77,447.91,450.79,454.62,457.44, 461.16,461.65,461.14,461.59,469.27,477.53,474.93,480.39,477.24,481.60, 488.70,489.09,491.66,494.81,498.01,500.00,499.86,506.64,504.41,513.94, 509.59,514.69,517.70,521.67,520.16,523.69,530.24,530.70,536.48,534.70, 539.01,545.84,543.14,545.63,552.08,549.05,558.68,559.97,562.95,563.92, 568.36,566.14,572.73,575.94,578.37,581.72,584.80,586.43,583.87,588.63, 595.21,594.76,596.60,601.22,607.31,609.46,605.21,616.78,618.37,618.32, 621.56,622.25,627.04,629.41,632.88,634.36,639.80,637.65,642.53,648.60, 647.84,647.36,653.85,657.43,657.99,659.45,658.74,661.09,669.91,674.52, 672.57,676.06,679.49,685.24,689.51,684.14,693.66,695.47,697.45,696.57, 701.20,700.06,710.86,707.29,711.88,714.54,713.93,719.19,726.26,727.34, 730.25,729.62,732.22,734.89,738.26,736.88,749.42,748.63,747.71,751.66, 755.17,755.60,760.85,757.77,764.90,768.32,774.41,777.68,777.50,777.18, 783.01,783.98,787.33,787.28,796.73,799.53,799.34,800.58,797.97,805.72, 23.37,25.55,27.55,29.37,32.11,33.93,36.69,40.01,41.50,42.74, 46.11,48.67,51.00,53.54,54.99,56.83,59.05,61.58,64.85,65.95, 67.78,70.58,72.31,76.36,76.74,79.70,82.22,83.49,85.90,90.85, 91.49,93.21,97.31,99.84,100.18,103.02,104.63,107.16,107.40,111.48, 112.97,114.94,121.51,120.28,123.45,124.56,127.94,128.74,131.13,134.60, 134.29,137.19,141.40,142.42,146.42,146.21,149.89,151.71,155.31,156.64, 158.09,161.11,162.46,163.76,166.56,171.59,173.81,176.61,174.99,178.90, 181.96,183.22,188.58,190.12,194.04,194.11,193.53,198.92,198.95,201.13, 203.42,205.79,208.26,211.23,209.82,215.49,220.15,220.32,222.41,225.19, 226.86,228.69,232.27,233.05,234.46,239.05,241.21,243.14,242.88,245.01, 246.83,249.14,253.59,256.56,260.30,261.69,260.25,261.69,267.48,268.88, 274.75,272.59,275.51,277.47,280.06,281.32,282.36,290.34,293.76,289.47, 293.04,292.57,296.07,300.91,304.44,307.84,308.66,309.89,310.02,313.90, 317.29,320.74,321.28,325.57,328.10,330.16,330.53,333.33,337.08,338.94, 339.22,344.04,342.69,345.44,347.10,348.48,355.38,352.26,356.44,360.59, 364.78,365.37,368.46,370.12,368.84,373.42,378.00,382.62,382.96,384.00, 381.32,391.62,391.57,384.88,393.60,396.62,396.73,401.18,400.58,404.57, 406.61,408.16,410.32,416.69,415.71,415.01,420.27,423.90,425.69,428.93, 429.21,432.22,435.03,435.67,443.05,440.00,444.33,443.17,446.51,445.44, 453.95,455.10,456.70,457.25,462.85,460.80,468.75,467.43,474.56,475.50, 475.77,479.40,480.93,483.48,485.00,488.04,489.86,494.95,491.39,497.08, 498.91,500.09,502.82,501.59,508.85,506.20,513.23,512.22,511.74,515.75, 522.86,523.56,523.41,524.98,530.44,530.79,535.42,538.74,535.17,540.18, 546.60,547.44,549.65,550.16,549.19,547.81,554.84,560.94,561.11,562.54, 569.23,567.39,568.05,571.30,572.79,575.55,583.98,587.05,585.73,588.74, 590.48,591.80,595.68,593.42,598.88,601.52,601.35,605.89,604.49,606.02, 615.42,616.10,611.10,621.60,621.40,619.60,625.47,625.22,628.15,632.32, 635.10,635.44,637.39,636.78,642.51,647.08,641.28,648.70,649.92,651.91, 659.34,661.23,657.03,662.04,666.58,663.86,671.96,670.74,673.37,670.70, 19.66,20.96,23.90,25.82,27.94,29.68,30.26,32.52,34.02,36.83, 38.36,40.88,42.89,43.82,45.76,48.66,50.08,50.48,55.20,55.13, 57.13,57.88,60.30,62.29,63.99,65.44,69.44,70.08,72.94,72.36, 76.90,77.16,79.86,82.83,83.84,84.07,87.72,88.66,91.90,92.63, 93.97,95.03,99.87,99.82,102.40,106.49,107.01,108.69,109.11,113.32, 114.52,114.05,118.15,119.59,120.39,122.23,123.76,124.79,127.20,131.73, 133.41,132.66,134.53,137.12,140.27,140.69,142.64,147.49,147.68,149.47, 153.35,152.74,155.41,155.19,159.61,160.93,163.05,167.97,165.28,170.50, 171.62,171.68,172.90,174.20,176.33,181.36,179.21,185.16,185.32,188.83, 189.26,191.21,191.68,193.69,195.82,197.44,199.32,201.50,202.98,204.94, 208.16,208.39,212.06,213.37,212.55,219.01,219.75,219.24,223.18,224.63, 226.72,229.42,229.97,230.19,237.63,238.65,238.35,242.88,242.52,242.10, 243.69,249.26,249.60,250.03,254.42,254.61,256.24,259.55,257.60,262.78, 264.41,265.71,266.64,269.86,272.60,270.30,275.33,278.01,280.40,281.72, 279.81,284.47,286.23,288.09,288.83,293.28,296.06,295.58,297.74,298.94, 303.49,302.36,304.67,308.24,306.74,313.04,310.26,315.09,319.69,316.27, 319.61,322.48,324.85,327.14,330.52,331.52,332.92,332.09,336.72,340.21, 337.86,342.69,345.14,345.21,347.02,354.78,348.58,353.48,355.21,356.41, 357.31,356.69,363.47,367.10,366.21,365.06,371.20,374.03,372.55,373.09, 377.19,379.62,377.60,382.98,383.98,387.60,390.21,389.06,393.50,398.51, 394.88,397.89,398.39,405.53,402.11,409.65,410.93,408.98,409.89,413.15, 413.15,417.45,417.70,422.03,422.65,426.56,425.05,427.42,432.75,432.97, 438.66,434.69,437.90,438.87,443.56,444.59,440.83,450.22,448.16,452.64, 453.91,452.79,454.35,456.09,459.79,462.90,465.00,466.88,468.95,476.99, 467.49,476.05,477.19,478.77,478.69,479.67,481.11,485.68,485.26,490.51, 490.76,490.99,491.45,495.31,500.68,502.67,500.38,503.77,507.29,509.21, 505.01,508.78,507.94,513.67,516.85,519.54,521.03,522.66,522.82,528.04, 526.63,531.18,530.41,531.81,535.08,535.25,538.28,540.42,547.09,543.37, 549.85,548.68,553.78,554.74,551.97,557.18,560.57,558.84,560.90,563.34, 15.65,17.43,19.45,20.86,22.65,24.64,25.07,27.20,28.13,30.13, 31.64,33.11,34.34,36.25,37.38,39.69,40.16,44.03,44.76,45.28, 46.95,49.35,50.96,51.27,52.56,53.93,55.80,58.58,58.26,61.06, 63.63,64.13,63.84,68.53,70.34,69.55,72.43,73.05,74.44,78.57, 78.88,79.84,80.74,83.07,85.03,86.36,89.55,90.28,93.38,91.51, 94.74,93.76,98.49,97.53,100.29,102.47,103.88,104.36,106.88,110.21, 108.72,112.37,112.57,114.83,117.30,116.46,119.33,122.60,120.81,124.84, 124.81,127.55,130.30,130.01,129.50,132.70,136.46,136.89,138.60,139.40, 139.41,140.97,146.00,145.30,149.19,147.72,151.73,153.90,152.82,154.65, 157.24,157.34,159.15,157.49,162.95,165.53,166.93,168.80,171.48,169.55, 171.24,175.42,174.44,174.99,178.29,184.48,182.18,186.51,187.38,187.57, 189.21,188.16,190.04,192.79,195.30,196.82,196.32,201.12,201.05,200.99, 203.78,206.44,210.59,208.78,211.01,209.54,212.54,215.42,216.76,215.82, 222.37,219.32,221.86,224.98,226.14,225.90,227.57,231.93,230.99,234.35, 234.16,236.66,239.49,240.63,243.05,241.18,243.59,245.97,248.10,248.39, 250.91,252.43,253.35,254.16,256.19,259.47,262.89,259.08,262.67,263.77, 268.03,267.18,270.87,269.70,270.85,271.87,276.09,276.70,280.22,279.13, 281.66,283.40,286.29,285.68,288.94,291.62,289.53,293.97,295.69,294.57, 296.46,300.74,302.40,302.95,304.56,305.96,302.72,306.77,311.15,312.34, 312.15,311.71,312.83,319.28,319.41,323.71,322.60,325.19,324.01,330.31, 329.74,330.42,332.93,335.51,335.64,334.28,339.21,340.30,340.63,344.76, 341.71,346.54,349.78,348.89,347.60,353.56,355.02,359.13,360.01,362.73, 357.96,365.73,365.11,367.64,363.96,367.32,367.41,372.16,374.24,376.08, 376.49,375.18,381.61,375.41,381.40,381.82,385.23,383.15,391.12,390.14, 383.76,394.44,394.88,393.65,397.88,402.13,401.80,401.40,401.04,406.91, 405.57,406.56,409.87,411.28,409.61,409.70,420.52,416.76,420.68,419.94, 420.26,424.64,427.33,428.25,429.71,428.29,433.94,436.57,431.88,436.45, 437.83,439.05,447.68,443.43,440.62,448.85,446.65,448.87,453.47,452.28, 452.06,456.01,456.22,460.32,454.73,462.29,466.46,466.14,464.27,465.16, 13.05,14.98,16.30,17.36,18.65,20.33,20.95,22.00,23.30,24.73, 26.12,27.99,28.73,30.65,31.13,33.02,34.22,34.76,37.08,37.85, 38.89,39.49,42.69,43.01,44.51,45.29,46.21,48.84,51.76,49.02, 52.39,53.91,54.40,57.66,57.97,58.62,58.93,60.78,61.16,62.41, 65.64,65.12,68.02,69.62,70.96,72.83,72.96,74.04,76.39,77.37, 77.55,78.37,81.46,81.93,83.07,84.15,84.20,86.33,88.51,87.29, 90.52,91.44,92.95,93.79,96.11,98.77,97.66,101.30,99.89,102.55, 102.67,104.00,106.01,106.75,110.14,113.86,111.22,110.81,114.80,114.47, 118.52,117.73,119.29,120.10,121.37,123.04,125.10,123.47,126.64,126.46, 131.22,127.37,134.28,133.62,136.68,135.76,136.85,140.53,140.96,139.40, 142.48,144.52,146.71,147.07,146.88,147.56,148.23,153.60,152.14,153.15, 154.39,156.43,159.52,159.86,159.15,161.42,162.99,167.53,165.75,166.10, 171.39,168.81,172.72,172.78,171.72,175.82,179.88,174.38,176.72,178.74, 179.18,185.94,182.76,184.32,187.44,186.13,188.87,190.93,192.64,190.85, 195.04,194.18,198.87,196.43,200.49,198.22,204.31,202.16,205.92,209.80, 207.87,206.56,206.30,215.41,211.85,214.98,215.00,216.64,218.00,217.52, 216.47,220.90,224.10,225.04,223.46,227.06,225.87,227.63,228.69,231.90, 231.78,233.55,236.97,233.95,238.55,241.20,239.53,240.49,245.22,244.59, 247.39,246.27,245.89,249.05,252.05,251.70,254.38,255.58,254.24,254.75, 256.62,259.50,263.21,263.78,264.55,262.41,265.01,268.59,268.71,268.98, 272.03,273.58,276.05,273.04,277.14,281.11,281.33,277.90,282.89,286.28, 282.96,284.82,289.55,288.42,289.18,292.18,291.80,293.25,295.98,298.37, 295.66,297.32,299.26,303.11,301.58,302.50,306.98,306.94,305.24,308.44, 315.28,311.50,314.39,317.60,312.50,320.24,316.37,321.31,322.33,325.74, 323.38,324.51,322.88,325.13,329.77,327.45,329.32,330.80,334.37,330.99, 336.25,337.39,337.99,341.50,337.42,342.79,340.16,345.56,345.04,347.69, 346.82,353.37,355.00,355.54,354.90,353.11,357.43,357.15,358.20,364.96, 363.69,362.85,367.90,363.44,366.82,364.80,367.90,372.85,372.06,374.57, 378.40,372.05,376.63,376.56,379.69,385.87,382.43,382.98,383.94,389.90, 11.14,12.32,13.28,14.00,14.94,15.22,17.44,18.04,19.27,20.61, 23.07,22.52,23.69,26.03,25.94,25.89,28.98,29.36,30.14,30.00, 33.62,32.01,34.75,35.87,36.74,37.54,38.63,40.29,41.18,42.09, 42.25,44.13,45.96,46.78,47.42,47.45,48.97,51.91,51.38,52.56, 53.89,53.14,55.62,56.32,58.63,60.34,59.27,63.04,65.14,62.67, 65.61,66.21,64.92,68.41,68.76,70.66,73.56,71.95,72.41,72.30, 75.26,76.08,77.92,77.91,77.88,81.90,82.00,82.32,86.25,83.96, 86.02,86.91,85.98,90.43,91.27,92.25,93.77,92.43,92.95,96.25, 96.36,97.06,99.58,100.26,99.48,99.38,100.90,103.48,104.84,107.50, 108.41,110.20,107.59,111.98,113.57,111.82,111.84,114.20,116.10,118.91, 118.95,117.63,120.67,122.15,121.52,124.54,126.05,126.16,125.78,126.50, 125.91,129.51,126.65,129.86,134.58,134.47,135.23,134.49,137.72,139.47, 137.54,138.59,141.52,143.65,143.83,142.08,143.41,144.93,146.28,147.55, 150.77,150.39,151.46,153.75,156.14,155.08,156.33,155.94,156.59,159.51, 160.00,160.88,164.92,164.95,163.34,167.11,164.63,164.25,168.65,172.31, 170.59,173.03,172.62,173.56,173.32,177.11,175.55,178.56,180.12,179.94, 183.42,185.19,186.07,184.97,186.14,189.87,186.66,190.25,192.34,190.53, 192.25,194.83,194.04,198.93,193.25,198.00,198.48,199.65,204.06,203.63, 201.26,206.22,208.18,207.18,207.01,208.60,213.32,211.22,212.91,211.72, 216.86,214.99,216.20,216.36,217.72,218.71,218.51,223.34,224.58,222.65, 224.62,222.36,229.42,227.59,229.21,231.24,231.27,234.26,232.47,235.92, 237.25,233.27,233.95,240.88,240.60,239.59,243.24,240.47,240.36,245.11, 245.41,246.15,251.25,248.12,251.99,247.19,251.47,253.02,254.04,258.18, 258.14,259.74,258.55,260.96,261.61,261.21,261.69,262.24,265.83,263.38, 265.83,267.96,267.24,267.90,271.64,272.94,271.44,275.27,276.13,276.83, 279.92,279.18,276.06,277.49,277.62,280.21,282.81,285.11,292.31,286.91, 286.55,289.50,292.29,293.85,294.70,295.64,292.58,294.62,296.42,296.88, 300.48,301.14,301.44,305.63,309.45,302.79,306.05,306.29,310.55,308.11, 310.77,310.65,311.21,312.12,314.77,313.29,318.34,312.98,316.87,320.18, 9.21,9.55,10.99,12.19,12.59,12.90,14.75,13.66,16.41,17.22, 17.61,18.66,19.39,20.59,21.70,21.97,23.87,23.89,25.25,26.22, 27.80,27.24,28.35,30.79,30.80,31.06,32.15,32.70,34.09,34.30, 33.28,36.09,36.53,38.70,38.11,39.92,39.73,40.34,43.86,43.45, 45.41,46.31,45.05,46.15,47.94,49.36,50.17,50.12,51.61,52.36, 53.70,53.47,56.78,54.59,55.16,56.42,57.00,57.47,60.17,61.80, 62.50,62.21,66.77,65.26,66.23,66.11,67.96,67.88,68.76,70.04, 70.81,70.16,72.23,75.05,74.50,73.34,73.98,75.80,76.21,77.49, 79.50,79.90,82.65,80.71,83.61,85.88,84.06,85.91,86.14,87.68, 90.39,91.72,89.08,90.80,88.50,92.46,93.66,94.24,94.39,95.37, 93.83,97.65,96.41,99.93,100.82,100.94,103.44,100.57,103.35,104.29, 106.46,105.80,106.63,111.08,107.84,110.67,110.54,112.67,115.12,111.99, 115.89,115.87,115.61,114.44,118.77,118.45,119.36,118.59,119.55,122.95, 122.75,123.81,124.00,124.89,125.46,128.16,129.60,126.29,130.44,129.24, 132.28,132.31,133.85,134.09,134.42,136.68,136.11,139.71,139.98,140.81, 142.52,140.10,139.68,143.99,143.72,143.57,145.60,146.92,145.02,144.45, 149.97,147.53,152.92,151.82,156.12,152.31,153.34,155.46,154.32,156.47, 159.80,158.40,159.88,160.91,160.36,161.31,166.71,163.19,165.60,165.38, 166.29,168.18,167.55,168.29,170.53,172.90,174.62,173.12,172.89,173.86, 177.33,174.47,176.86,176.97,180.67,176.44,182.11,183.00,182.75,185.18, 182.44,183.88,183.82,184.80,192.56,191.95,190.13,191.25,190.21,190.45, 197.83,190.91,197.11,197.06,195.64,194.22,198.79,198.12,201.10,200.21, 199.05,202.24,206.43,206.97,204.69,207.87,204.80,208.55,203.93,209.49, 210.87,212.33,212.74,211.73,214.75,217.56,214.95,214.62,219.78,218.09, 219.54,218.49,221.11,223.76,219.97,221.44,224.37,225.34,227.66,231.12, 230.78,227.53,230.49,231.78,232.64,233.58,236.99,233.92,238.16,237.67, 235.93,238.12,236.66,241.43,242.72,242.41,240.11,240.62,244.47,247.52, 244.17,243.69,243.35,248.88,253.53,247.26,249.71,250.79,249.02,252.47, 255.18,255.18,252.02,258.13,253.22,256.11,260.38,261.85,260.19,262.69, 6.75,7.95,8.90,10.07,10.77,11.35,11.27,12.73,13.41,14.62, 15.72,14.92,15.80,17.06,16.63,19.20,19.28,19.67,20.42,19.94, 21.93,22.42,23.02,24.36,24.32,24.75,25.29,27.35,27.98,29.62, 29.46,29.39,29.80,31.16,32.65,32.94,33.37,34.48,33.10,36.07, 36.70,36.41,36.72,38.81,39.00,38.91,40.62,42.46,43.26,42.00, 43.46,43.98,45.91,45.75,44.90,45.33,47.15,47.73,49.01,49.50, 49.57,51.72,52.44,50.73,54.04,53.42,54.98,54.59,57.05,56.46, 58.56,58.59,60.37,60.93,60.50,62.98,64.67,61.75,63.33,64.53, 64.93,66.78,64.87,67.36,67.13,67.55,71.79,70.35,70.65,71.23, 72.61,71.08,73.49,73.91,74.93,76.01,75.42,77.00,76.50,79.75, 79.07,79.30,80.33,80.64,82.13,84.20,83.06,84.29,87.34,84.02, 85.59,85.44,87.47,87.37,90.20,90.47,94.19,91.27,92.79,91.40, 93.47,93.90,93.92,97.81,96.13,97.45,98.77,98.80,99.97,99.16, 97.70,103.19,102.35,102.31,99.96,105.26,102.26,108.35,105.41,107.90, 108.06,108.52,106.47,110.10,109.95,108.78,112.45,115.52,116.99,114.69, 116.92,114.06,117.97,114.80,119.31,118.09,116.47,120.26,118.88,121.92, 123.33,120.73,122.74,123.27,122.89,124.63,127.06,128.31,128.42,128.67, 127.32,129.30,131.06,133.27,131.18,135.59,133.37,133.31,135.58,134.07, 136.40,137.17,137.44,140.11,137.87,141.32,142.59,143.18,142.22,145.71, 146.49,145.73,144.51,147.87,143.42,144.44,145.91,150.04,151.01,152.59, 153.04,151.31,151.22,155.41,154.02,154.98,153.26,155.49,159.42,157.08, 156.12,158.45,162.09,162.27,162.84,164.35,163.00,162.69,162.04,166.40, 166.44,167.16,166.83,168.84,166.08,166.37,167.37,171.83,169.37,171.59, 172.16,174.28,171.62,178.77,174.94,174.64,177.32,179.27,177.00,175.72, 181.38,182.13,181.17,183.30,181.69,183.87,182.79,184.24,185.31,185.81, 188.18,189.32,189.44,185.06,190.44,188.19,189.33,191.72,194.67,191.90, 196.77,191.62,197.16,197.99,194.50,196.11,197.78,199.09,201.01,198.48, 201.66,199.52,200.37,204.25,207.53,206.97,203.22,205.63,208.10,208.02, 210.05,207.73,210.83,209.62,213.20,209.37,212.65,211.16,212.98,212.44, 6.00,6.83,6.90,7.88,9.14,9.04,9.42,9.87,10.84,11.46, 12.38,12.51,12.63,14.29,13.68,14.62,15.24,17.39,16.28,16.06, 17.42,17.42,19.22,20.58,19.08,21.82,21.94,21.54,21.86,23.64, 23.66,23.59,25.67,25.71,25.31,26.69,27.51,27.50,28.70,28.90, 27.54,31.07,31.20,31.92,31.47,32.09,31.67,32.84,34.53,34.33, 34.50,36.62,36.91,37.87,38.21,38.47,39.40,38.63,40.48,43.23, 42.36,41.65,41.91,43.64,43.05,44.51,45.90,44.63,44.90,46.43, 47.26,47.65,47.00,50.01,50.62,51.42,50.78,52.90,51.02,54.48, 54.69,53.91,55.25,55.85,54.75,55.24,58.43,59.10,58.52,57.23, 59.80,58.03,61.33,59.31,61.56,61.67,62.88,63.75,63.05,66.41, 63.73,65.50,66.77,65.80,67.65,68.01,69.31,70.14,67.11,70.15, 70.04,72.15,71.25,72.45,71.65,73.28,73.02,75.27,77.62,76.86, 78.05,76.83,78.60,79.31,80.32,81.15,80.19,81.78,81.89,82.92, 83.26,82.00,82.11,87.11,83.43,86.02,88.46,86.61,87.22,86.87, 88.54,89.44,89.63,89.71,88.72,90.19,88.69,95.95,91.44,94.06, 94.50,93.31,95.68,96.52,96.28,98.08,97.78,96.00,99.80,99.48, 100.32,99.20,99.77,101.83,100.46,103.36,102.34,103.94,104.29,108.69, 106.58,108.76,105.65,106.49,106.36,107.89,108.68,110.77,111.19,112.46, 108.75,113.62,110.94,113.01,112.97,115.03,114.73,113.57,120.30,118.30, 116.75,120.94,118.93,119.93,117.28,120.31,120.10,120.61,124.08,124.89, 124.23,122.16,124.81,123.66,125.59,124.21,126.29,126.69,128.96,127.07, 130.14,130.68,131.97,132.53,133.81,133.33,133.87,132.31,132.97,135.08, 132.52,135.79,133.63,133.46,138.78,137.46,139.60,138.40,142.44,140.76, 141.16,141.58,141.40,140.94,144.44,146.79,142.44,145.66,146.62,147.10, 144.60,151.16,149.36,149.60,150.34,150.94,148.22,151.94,150.52,152.60, 150.31,155.72,155.22,154.47,155.46,151.62,154.24,155.44,157.80,155.37, 159.42,160.42,161.31,157.95,160.21,163.59,159.16,159.69,164.21,165.66, 164.59,160.61,166.11,165.81,166.29,166.68,170.12,168.65,170.78,170.95, 169.87,170.74,172.66,176.64,175.06,172.27,174.47,171.08,177.90,172.78, 5.02,5.18,6.01,6.40,6.52,7.79,7.23,8.37,9.54,8.89, 9.43,10.58,10.90,11.63,11.44,11.39,13.00,13.49,13.82,13.47, 14.44,14.34,15.44,16.26,16.39,16.65,17.82,18.04,19.01,18.30, 19.91,20.24,19.75,20.52,22.51,23.03,22.47,22.79,23.83,22.62, 24.45,25.56,24.89,24.24,26.26,25.46,26.47,27.65,27.39,28.80, 28.66,28.70,30.92,31.04,30.28,31.49,32.16,31.55,32.87,34.25, 33.69,33.62,34.90,35.52,35.59,35.34,37.02,35.90,38.02,37.49, 38.02,39.09,40.17,39.20,39.86,40.99,41.90,41.49,41.73,41.35, 44.79,44.72,44.49,44.62,47.70,46.52,46.18,47.68,46.99,47.10, 48.45,47.23,50.18,52.49,50.21,50.04,50.86,50.52,51.81,52.06, 51.33,53.33,54.64,54.58,55.78,55.00,56.22,54.46,54.92,56.02, 57.68,58.16,57.48,58.54,58.61,60.56,59.72,61.35,62.35,60.94, 62.70,62.58,62.94,62.08,64.86,65.77,66.98,66.64,66.33,66.04, 70.43,67.30,67.30,69.76,67.03,69.11,68.41,69.41,70.40,73.77, 71.80,73.59,75.06,70.68,73.27,75.35,74.88,74.97,74.23,77.12, 77.11,78.05,78.29,76.74,79.16,78.53,80.07,77.09,80.36,81.59, 79.96,80.77,83.06,84.21,85.24,84.97,86.00,84.11,84.86,86.07, 86.95,84.97,87.64,85.39,89.27,88.39,89.98,88.31,92.64,93.10, 90.41,91.14,90.53,93.42,94.96,95.02,95.01,93.89,94.85,95.22, 94.60,96.25,98.26,97.99,98.42,97.72,99.16,99.97,100.97,101.70, 102.95,99.44,102.45,102.16,101.94,100.89,104.58,104.49,104.97,104.39, 108.15,104.59,103.96,107.60,107.65,107.70,110.36,107.77,107.56,109.16, 111.02,112.43,111.59,109.56,112.95,111.26,113.55,111.95,113.70,114.34, 114.33,115.33,116.73,118.05,115.04,119.30,118.36,117.74,119.33,121.22, 120.09,121.85,118.47,123.47,123.63,121.16,121.83,123.19,122.61,126.32, 124.43,125.48,123.97,126.75,124.90,128.14,126.09,126.62,129.64,130.04, 131.25,129.63,131.47,129.97,130.40,129.02,132.77,132.00,133.27,134.41, 135.99,135.14,135.81,134.16,134.09,138.35,137.82,138.19,137.69,137.75, 137.38,141.81,138.93,141.69,139.64,139.31,144.74,143.46,140.90,138.86, 3.69,4.72,5.09,5.45,5.19,6.30,5.73,6.82,6.66,7.60, 8.54,9.37,8.69,9.61,9.04,9.46,10.65,11.08,10.99,11.41, 12.06,12.55,12.65,12.98,12.74,12.98,14.35,14.91,15.86,15.02, 15.90,17.34,16.50,18.61,16.70,17.53,18.72,18.43,19.25,17.99, 19.04,19.80,19.93,21.80,20.81,21.33,23.12,24.18,21.82,24.50, 23.66,22.82,25.42,24.72,26.01,26.36,26.72,26.98,26.82,26.65, 27.23,28.23,29.26,28.24,28.39,29.96,29.78,29.48,29.51,29.52, 31.14,31.27,32.85,33.23,35.32,33.38,33.23,33.54,34.62,35.84, 36.45,37.31,36.92,36.83,36.47,37.59,36.98,38.26,37.97,39.95, 38.00,40.09,39.39,40.02,41.55,39.09,42.12,42.31,44.34,42.05, 42.97,43.18,44.94,45.47,44.32,45.91,45.05,45.70,45.14,45.10, 47.27,45.89,49.15,48.73,47.68,49.23,51.01,48.53,49.73,49.81, 50.24,51.23,52.08,49.29,51.61,55.10,53.47,53.49,54.08,54.85, 56.86,54.90,55.86,54.51,54.15,57.01,57.87,56.61,56.56,58.93, 61.25,58.55,58.95,58.19,60.26,61.53,61.60,61.93,63.28,60.97, 62.83,61.71,64.03,62.55,63.89,64.27,65.33,63.69,66.06,66.40, 65.62,63.72,67.78,66.96,68.94,65.39,68.24,67.42,69.27,69.42, 69.76,72.79,71.88,72.00,73.16,70.66,75.02,73.85,73.04,74.12, 72.70,74.45,74.34,77.16,78.06,77.73,79.56,74.50,74.65,77.46, 77.63,78.08,76.88,79.18,81.12,80.78,81.48,79.85,80.57,83.05, 82.22,85.03,81.66,82.70,84.89,84.99,84.28,84.19,84.44,86.07, 85.49,88.68,85.76,86.82,85.86,87.00,88.03,89.94,90.85,88.50, 91.75,88.63,91.53,91.52,91.00,93.99,91.82,92.88,94.23,93.75, 92.33,93.32,96.25,94.52,97.98,95.87,97.47,96.30,94.80,96.25, 95.21,95.42,98.28,96.96,101.02,96.70,100.36,100.23,103.50,100.06, 100.57,101.18,102.04,101.17,102.31,103.21,104.02,101.24,106.64,101.48, 105.96,107.89,103.83,105.09,109.19,106.82,106.38,109.45,107.35,110.83, 111.49,109.93,112.86,110.25,110.02,111.39,111.34,113.18,110.13,110.90, 111.58,114.71,113.08,113.22,117.64,113.73,111.63,118.59,116.61,116.32, 2.80,3.81,3.97,4.52,4.64,4.96,5.09,4.58,6.37,5.65, 6.51,6.96,7.21,7.18,7.13,7.98,7.79,8.85,9.73,9.50, 9.71,9.40,9.44,10.42,11.81,11.77,11.12,11.56,11.70,11.89, 12.77,13.50,13.46,13.83,14.08,14.20,15.25,14.61,15.09,16.62, 16.03,16.72,16.12,16.09,16.14,18.50,18.50,19.10,17.27,18.89, 18.73,19.36,19.59,19.77,20.18,19.64,21.05,20.46,20.96,22.34, 22.30,22.86,25.17,23.37,24.07,24.39,24.21,23.91,25.78,24.15, 25.77,25.44,25.35,26.75,26.00,26.65,26.36,26.58,29.42,28.70, 30.07,29.38,29.80,30.56,29.19,30.43,29.73,31.20,31.38,30.07, 30.95,32.37,33.00,32.38,31.85,33.74,33.49,34.49,33.86,35.16, 34.71,35.04,34.77,35.45,36.51,35.71,37.29,36.19,36.53,38.56, 38.87,39.60,39.65,38.26,40.31,38.83,40.85,40.90,39.73,43.33, 41.32,42.94,41.96,43.23,41.75,42.51,43.08,43.87,42.75,44.02, 43.62,44.71,47.15,46.87,47.36,45.33,46.76,46.94,46.16,48.63, 46.42,49.42,49.29,47.64,48.76,48.46,49.40,52.11,50.13,50.40, 51.26,50.73,51.39,50.15,53.51,51.93,52.37,52.55,53.16,53.07, 55.42,56.00,55.78,54.90,56.52,55.33,54.43,55.51,56.75,58.82, 57.54,57.72,58.22,58.34,59.30,58.61,58.20,59.58,59.50,59.24, 60.16,59.59,60.53,62.49,60.68,62.36,64.17,63.41,63.84,60.22, 63.13,64.18,62.46,62.80,66.25,64.91,65.32,67.97,65.69,66.48, 66.52,65.06,68.63,67.73,68.50,70.17,68.04,68.94,68.64,69.40, 67.51,69.65,72.38,70.09,70.11,72.35,71.73,71.39,73.22,72.76, 71.68,74.19,74.32,73.55,74.47,74.64,75.62,75.70,73.66,72.55, 76.89,76.44,79.75,77.60,77.11,80.65,77.50,74.80,80.22,80.03, 80.33,77.86,79.98,81.22,81.37,83.91,79.24,80.25,79.96,81.84, 81.99,82.31,83.73,83.65,84.32,85.19,86.24,85.28,84.26,85.21, 85.87,84.55,83.14,89.68,86.41,85.01,85.48,89.39,88.93,89.36, 87.71,87.13,89.78,91.00,89.14,88.74,92.49,90.02,91.04,93.46, 93.05,93.67,92.30,93.02,94.43,94.15,94.62,95.82,95.23,96.45, 2.52,2.46,3.63,3.51,3.62,4.23,4.01,4.72,4.70,5.10, 5.60,5.92,5.86,6.10,6.53,6.43,7.42,6.75,7.20,7.54, 8.32,8.84,9.68,9.04,8.81,8.86,9.50,9.00,9.58,10.11, 9.94,9.64,9.92,11.73,10.99,11.14,12.15,11.40,12.89,13.02, 12.74,13.04,13.28,13.65,15.10,14.26,15.09,14.51,15.23,15.29, 15.94,16.57,16.94,16.19,17.28,16.58,17.59,18.13,17.24,17.71, 17.58,17.93,19.80,19.09,18.67,19.10,19.29,19.79,19.67,19.74, 20.04,20.91,20.04,22.01,21.67,22.16,22.76,23.65,22.29,23.63, 22.20,23.91,24.19,24.27,25.72,25.66,23.95,25.30,24.65,24.78, 26.89,25.01,25.62,26.00,26.31,26.98,27.02,28.42,27.17,28.19, 28.12,26.82,30.37,29.80,30.12,29.02,29.87,31.56,29.88,31.78, 31.07,31.15,31.67,31.38,30.76,32.84,31.64,34.43,33.38,34.71, 32.54,34.73,34.58,35.29,34.91,34.41,35.85,34.35,35.74,34.67, 36.24,35.75,36.77,37.05,36.50,36.90,37.30,38.44,38.16,37.98, 39.66,41.12,40.15,39.03,39.15,39.94,40.90,40.51,39.97,40.73, 42.42,41.12,43.47,42.25,43.42,41.17,42.80,40.83,41.40,44.55, 43.46,43.47,45.68,47.42,44.46,46.73,46.74,45.92,46.60,45.50, 46.74,48.65,45.58,45.11,46.65,48.05,47.42,48.28,47.03,47.58, 48.96,50.64,50.05,50.00,49.26,52.23,49.03,50.02,52.57,48.45, 52.75,49.52,51.44,51.08,54.38,51.26,52.89,54.32,52.90,52.76, 54.10,56.15,54.96,54.15,54.38,57.00,56.05,55.67,57.77,56.46, 58.62,56.61,57.57,58.63,58.13,58.67,57.30,57.22,58.37,59.90, 57.99,60.45,58.77,60.73,62.53,59.59,60.96,58.25,60.76,59.78, 62.30,61.61,60.59,61.74,63.28,63.50,61.24,64.91,64.52,67.67, 66.21,64.46,63.81,64.76,66.41,66.86,65.46,65.77,66.65,67.26, 70.24,67.04,67.49,66.17,69.30,66.91,69.76,69.75,66.07,67.96, 69.99,70.65,69.08,70.82,69.12,70.64,71.81,69.73,71.59,73.94, 71.41,72.34,73.26,72.86,73.56,71.15,75.55,73.19,74.67,75.80, 74.18,75.36,74.77,76.29,73.91,75.27,75.63,76.80,76.93,78.16, 2.23,2.74,2.70,2.76,2.66,3.33,2.91,4.06,3.97,3.74, 4.28,4.65,4.64,4.68,5.27,5.16,5.31,5.75,6.45,5.36, 6.10,5.25,6.70,7.09,6.76,7.48,6.89,8.35,7.66,8.70, 8.86,9.04,8.55,9.62,8.74,9.80,9.45,9.60,9.64,10.95, 10.52,10.35,11.05,11.14,11.64,11.04,12.66,12.40,12.69,12.39, 11.39,12.97,12.91,13.49,13.20,11.73,14.37,14.65,14.35,13.49, 15.50,15.58,15.72,15.94,15.05,15.26,15.41,16.44,16.37,18.47, 16.16,16.56,17.58,17.57,17.64,16.71,18.68,17.47,18.11,18.72, 19.50,19.57,19.96,18.90,18.33,19.95,19.97,21.42,20.62,21.18, 21.91,22.24,21.16,21.86,22.10,21.16,23.34,21.12,22.57,21.82, 23.31,23.40,22.58,23.64,24.12,25.28,25.25,24.41,24.13,25.18, 24.61,26.35,24.70,26.58,25.06,26.05,26.93,27.44,26.76,27.84, 28.67,26.51,26.97,29.56,27.53,28.56,28.68,28.32,29.54,29.25, 29.88,29.32,28.32,28.62,31.79,30.14,30.42,30.23,30.86,31.97, 31.68,31.92,32.42,32.84,30.98,30.62,32.20,32.62,35.05,32.34, 31.86,35.57,34.84,33.51,33.63,34.73,35.89,34.23,33.78,34.42, 36.70,36.72,34.97,37.04,37.14,37.33,35.27,38.24,36.88,38.69, 36.79,36.94,38.55,38.62,36.78,36.70,39.07,39.81,38.73,40.54, 39.39,40.70,38.68,40.27,40.52,41.80,42.10,41.13,41.91,42.54, 40.33,42.37,41.90,41.13,44.05,41.05,43.78,44.74,42.86,43.11, 43.72,43.15,45.35,44.40,44.12,44.80,45.58,46.26,44.63,45.99, 44.32,44.82,47.18,47.03,47.70,47.74,45.05,45.72,48.06,47.59, 47.03,48.88,49.95,49.09,48.50,48.85,50.51,48.36,50.18,50.61, 51.40,51.69,49.28,50.20,50.61,50.58,50.90,50.74,52.33,55.24, 50.75,52.52,52.15,53.99,53.47,53.49,53.23,53.01,54.94,53.80, 55.14,54.79,55.23,55.59,55.21,57.23,57.26,57.19,57.52,57.27, 55.14,55.47,57.03,56.19,57.81,57.51,57.32,58.25,57.47,57.63, 56.84,61.02,59.66,60.60,59.13,61.38,59.90,59.20,60.29,61.66, 62.82,60.60,60.76,62.21,61.89,60.79,63.60,61.68,61.79,61.67, 1.62,1.94,2.11,2.34,2.65,2.55,2.61,2.49,3.12,3.10, 3.24,3.56,4.54,4.54,4.68,4.72,4.34,4.66,4.80,4.27, 5.67,4.98,6.33,5.06,6.22,6.14,6.30,5.64,5.99,6.02, 6.66,6.49,6.22,6.41,6.77,7.99,8.62,7.86,7.36,8.10, 8.40,8.20,8.00,9.20,9.70,9.74,9.93,10.18,9.07,9.34, 10.56,10.77,10.04,10.52,11.05,11.14,11.04,11.18,11.07,12.07, 10.83,11.80,10.90,12.41,13.09,12.55,12.90,13.11,13.20,11.31, 14.16,13.89,13.54,14.62,13.84,14.26,14.71,13.97,15.86,16.07, 15.24,14.88,15.20,15.50,14.66,16.18,15.61,16.24,16.73,16.32, 16.98,18.79,18.61,18.55,17.57,17.99,17.75,18.09,18.52,18.34, 18.94,19.24,18.41,18.57,20.02,20.54,19.63,20.80,19.46,18.93, 22.02,21.19,19.94,19.45,20.46,23.15,22.66,20.34,20.94,21.03, 21.88,23.40,22.43,21.04,21.90,21.21,22.54,24.32,22.17,23.22, 25.29,24.52,24.57,24.16,24.34,25.56,23.33,24.77,25.26,25.73, 25.91,24.05,25.82,26.73,25.83,26.80,26.45,26.86,26.13,27.91, 27.37,27.03,28.56,27.25,28.25,28.14,28.23,27.30,29.65,27.89, 27.90,28.88,29.91,29.58,32.10,29.92,29.00,29.34,31.09,29.59, 30.01,30.89,31.14,30.63,30.68,32.94,33.61,32.09,29.60,31.04, 32.28,31.94,32.72,32.62,33.93,32.56,33.85,34.61,33.83,33.30, 32.79,32.38,33.23,33.67,35.57,35.59,34.26,33.91,35.03,35.16, 36.29,36.80,34.03,35.08,37.13,37.38,36.48,35.71,36.55,36.71, 37.19,38.29,37.32,37.23,37.96,38.01,39.59,37.47,38.50,39.60, 38.71,40.11,37.33,40.44,39.40,38.42,41.80,40.13,39.47,39.56, 40.93,41.44,41.05,42.46,42.44,43.00,41.94,40.85,40.25,43.21, 43.61,42.35,43.53,42.27,41.88,44.42,44.54,43.11,44.14,44.03, 45.49,43.97,42.26,43.95,44.78,44.65,45.54,43.57,45.68,46.83, 45.22,45.82,46.10,47.43,45.63,47.78,47.28,46.82,47.48,47.13, 46.90,46.63,50.60,49.33,47.71,47.96,49.59,46.45,48.08,46.66, 49.09,48.12,49.02,50.68,51.39,50.84,51.47,52.04,49.58,51.25, 30.16,35.35,36.22,40.68,43.00,45.70,48.66,51.18,55.08,58.95, 61.02,64.62,67.11,69.05,72.56,76.30,78.86,81.88,83.18,89.59, 92.68,95.46,96.59,98.85,103.46,105.53,109.81,111.11,115.86,118.89, 119.44,122.75,125.26,130.54,133.96,135.30,137.81,138.87,141.01,145.46, 151.56,153.98,155.85,160.32,163.04,165.83,170.51,171.57,173.75,179.01, 181.63,182.83,186.27,189.28,190.66,196.93,198.46,199.95,205.20,207.20, 210.18,215.92,217.75,218.46,221.33,225.72,230.69,230.58,234.70,236.26, 240.06,241.63,246.57,245.91,250.95,256.98,259.75,259.53,264.73,265.36, 269.12,272.84,277.81,275.87,277.31,284.32,290.56,291.66,295.48,295.44, 299.71,302.22,305.77,308.35,312.52,314.45,318.53,322.89,325.19,327.95, 327.88,332.00,335.98,337.90,340.03,345.85,347.39,348.80,354.08,356.81, 360.69,367.17,364.27,367.44,371.22,372.51,379.02,380.73,383.32,389.53, 389.41,392.18,395.30,399.42,401.17,403.30,407.99,411.94,410.79,414.06, 417.75,420.72,424.86,429.35,431.56,437.86,436.07,437.64,439.75,445.08, 448.37,449.86,457.21,455.75,461.09,464.39,467.87,471.17,472.19,479.56, 475.88,477.19,484.58,490.38,489.69,490.61,496.72,502.99,503.75,507.11, 507.59,511.81,514.37,516.75,521.95,522.09,527.19,528.59,533.42,537.33, 540.32,544.09,546.48,547.15,549.39,553.67,557.82,560.25,559.29,563.29, 571.24,575.78,576.92,578.08,579.46,581.87,587.23,588.86,594.52,594.80, 601.07,600.92,605.15,610.24,607.69,608.37,615.79,619.44,619.09,623.48, 629.98,632.48,629.71,644.33,644.01,643.34,645.47,646.65,646.32,657.94, 657.59,661.48,663.61,665.35,665.32,675.90,676.59,676.93,682.76,684.94, 689.70,692.47,695.35,691.64,703.02,703.50,704.17,707.37,709.53,714.25, 716.66,721.17,722.64,728.85,732.10,732.24,738.75,740.42,740.82,749.02, 748.43,749.18,754.43,756.31,761.66,759.57,764.78,768.43,778.49,773.39, 778.24,782.83,785.23,778.93,790.00,793.16,790.16,796.40,803.34,811.05, 810.29,811.57,814.55,816.64,818.38,817.46,823.15,829.09,835.97,837.30, 835.19,837.76,842.59,848.31,851.52,853.13,854.59,861.62,859.18,866.90, 869.26,873.43,869.08,876.07,874.80,877.32,884.98,890.95,891.83,896.24, 26.38,28.16,31.40,33.89,36.26,38.25,42.38,45.17,47.16,49.66, 51.71,52.92,56.31,60.11,63.81,63.62,66.86,68.27,71.30,74.17, 76.09,80.49,81.90,85.98,87.73,89.26,91.47,94.23,97.91,101.26, 103.18,105.12,107.05,109.96,114.09,114.52,117.94,119.67,121.80,124.84, 128.38,130.32,130.49,135.92,138.31,141.80,141.17,144.16,148.50,149.98, 150.57,154.53,156.04,161.07,163.44,165.09,165.06,168.97,172.73,174.72, 179.75,181.76,182.52,184.70,187.28,189.67,193.28,195.11,199.13,198.72, 204.32,204.05,209.62,210.56,215.17,212.79,218.01,222.60,221.72,225.33, 227.09,230.50,234.06,235.51,240.04,240.77,246.16,245.12,250.71,251.22, 250.38,253.68,259.40,261.98,262.77,267.73,271.16,274.18,273.04,276.17, 279.43,282.66,283.52,286.54,291.64,290.54,296.55,296.98,298.00,302.84, 305.76,306.22,308.08,312.09,317.17,314.27,324.28,320.33,327.42,326.93, 329.57,332.41,335.77,340.14,342.74,342.53,345.10,347.03,352.10,353.70, 353.55,359.58,360.98,363.08,367.33,368.58,370.71,370.02,375.49,377.98, 378.07,382.36,384.75,388.36,391.35,393.34,393.95,400.97,402.87,402.38, 405.85,407.17,411.51,410.26,417.40,418.33,421.14,424.68,427.33,427.40, 429.49,433.73,438.26,439.34,442.33,439.76,449.86,450.56,447.32,457.57, 458.25,456.51,463.14,463.78,467.62,468.87,470.82,472.56,476.77,481.23, 484.06,483.57,486.57,493.01,489.21,494.53,493.33,494.76,503.23,503.43, 501.95,507.04,514.74,514.80,516.59,518.83,521.80,524.12,525.46,524.94, 532.28,535.51,534.38,537.99,541.26,542.57,549.46,548.91,550.45,558.02, 557.12,563.76,565.27,564.85,570.22,567.28,572.98,569.68,580.92,580.59, 586.30,584.29,591.25,591.90,593.41,592.14,598.51,599.42,603.60,605.17, 612.93,608.58,615.15,614.94,613.46,619.09,621.10,627.08,629.71,634.08, 632.26,638.35,634.53,642.76,643.51,645.50,643.78,647.90,652.82,656.71, 660.11,662.13,662.34,668.80,664.20,672.00,675.90,677.99,681.97,680.48, 688.00,685.76,685.12,688.67,689.53,699.51,695.56,702.07,703.46,709.02, 711.63,709.72,713.99,717.66,718.14,717.56,727.60,725.92,730.48,733.32, 734.78,736.89,740.79,743.12,744.71,745.20,750.03,754.40,754.29,759.67, 23.30,24.11,25.66,29.85,31.41,32.69,35.74,37.03,39.00,41.68, 44.80,45.61,46.97,49.50,50.85,53.66,55.99,58.04,61.11,62.54, 64.41,65.08,68.82,72.36,75.12,75.33,77.36,79.06,81.62,85.55, 86.50,89.18,90.52,94.37,94.27,95.95,99.95,100.04,104.21,107.82, 108.19,109.90,111.88,114.70,114.63,117.67,121.42,122.24,125.02,126.01, 130.25,132.29,132.93,136.74,135.02,138.90,141.66,146.75,146.53,148.08, 148.59,150.82,153.54,159.42,156.72,163.23,164.90,165.23,166.90,168.54, 171.96,171.75,173.91,175.26,180.78,182.15,184.09,186.13,187.19,191.47, 196.58,194.76,196.87,198.15,201.93,203.35,205.51,204.80,210.29,209.97, 214.83,218.91,214.34,217.98,223.71,224.51,226.62,227.33,231.43,232.88, 235.20,242.00,242.40,241.19,245.09,244.75,251.32,251.48,251.88,254.98, 258.44,258.31,264.46,265.55,265.73,266.74,272.02,271.13,274.53,276.30, 276.98,277.92,283.06,288.45,285.32,287.82,291.64,292.97,295.46,297.88, 299.29,302.60,307.46,307.24,308.99,312.26,310.52,315.52,316.83,317.16, 322.38,326.78,326.17,328.57,329.72,328.78,337.65,341.71,340.13,340.38, 341.12,345.90,346.54,347.80,350.61,354.71,352.89,357.78,360.97,360.22, 362.79,367.18,366.98,369.42,372.30,374.50,378.02,379.32,380.40,378.50, 382.28,391.13,388.07,394.12,393.45,394.62,398.70,396.11,404.69,403.22, 407.60,405.19,407.73,413.88,413.28,413.26,419.27,420.37,422.43,423.30, 423.46,429.92,432.48,433.01,436.53,440.36,441.12,440.89,441.22,450.03, 451.40,451.74,450.36,454.10,460.84,460.04,459.56,461.64,467.89,472.74, 467.40,473.51,473.10,475.00,478.67,482.17,481.27,487.05,487.51,489.89, 494.72,491.92,498.09,496.46,499.81,503.90,505.11,507.46,510.44,515.24, 515.08,516.65,516.27,521.00,524.14,527.34,525.63,526.45,528.15,529.70, 537.62,538.94,538.59,540.89,545.56,544.83,547.18,548.03,550.00,551.36, 555.96,562.42,557.39,565.41,566.04,567.11,564.63,572.84,572.28,572.62, 578.47,578.23,579.84,585.42,590.27,590.88,593.01,596.74,596.23,594.61, 596.94,600.12,599.58,606.17,607.61,610.42,606.39,613.25,619.60,614.16, 618.83,620.68,620.28,624.88,624.93,629.14,636.02,642.08,635.72,640.58, 18.29,20.86,22.75,23.51,25.63,27.15,29.55,30.13,33.58,33.41, 36.33,39.19,40.59,40.97,44.01,45.98,47.37,48.87,51.37,53.97, 55.45,54.72,58.06,60.63,60.98,64.55,64.55,66.20,67.65,70.48, 71.54,73.69,75.26,77.08,79.01,80.01,82.36,85.51,86.39,89.58, 90.00,90.32,93.32,93.85,99.09,99.81,101.33,103.14,104.62,105.51, 106.55,110.71,112.87,111.52,115.93,116.05,118.52,122.98,123.51,124.70, 125.58,129.20,130.75,132.57,133.06,137.81,134.55,140.09,141.48,144.65, 144.39,147.67,146.74,151.00,150.63,153.47,154.87,157.16,158.49,158.78, 162.82,165.24,167.40,168.31,167.70,169.67,175.75,175.28,174.30,180.60, 180.81,184.38,181.17,187.29,186.18,190.33,190.63,193.39,195.08,195.14, 198.48,200.12,198.74,206.06,203.29,205.60,206.30,212.44,211.43,214.61, 214.68,217.89,218.33,220.62,221.00,228.40,225.30,225.76,231.52,231.62, 233.69,236.71,240.55,238.27,240.86,245.38,243.49,244.70,247.05,250.26, 251.81,253.31,251.39,258.12,258.29,263.38,265.38,265.30,267.63,269.44, 268.12,270.12,270.92,275.16,274.28,281.26,277.74,282.81,284.22,290.03, 287.53,289.52,293.16,293.49,293.90,296.52,297.52,298.85,300.75,301.00, 303.07,308.96,309.37,310.07,311.27,318.18,312.15,317.87,323.58,324.49, 326.38,324.63,327.05,328.63,331.11,335.86,335.08,337.15,340.81,335.64, 344.17,343.46,342.23,346.41,346.17,351.07,353.42,351.42,354.14,359.41, 358.68,359.60,365.40,365.53,369.52,370.59,372.68,370.61,374.00,376.46, 379.35,376.30,383.74,382.33,382.26,386.76,390.74,388.68,390.77,390.38, 394.09,395.67,400.20,399.56,398.73,399.42,409.74,411.77,412.72,415.69, 414.27,411.12,413.79,417.41,423.89,421.07,428.28,425.04,425.44,427.91, 430.44,430.71,434.19,435.12,433.88,441.16,442.04,440.50,446.73,446.77, 448.30,447.10,453.86,455.07,455.72,457.12,460.87,463.23,459.36,465.77, 463.69,469.51,470.68,467.72,474.15,472.85,476.92,478.33,480.06,482.46, 486.00,487.12,484.71,485.47,489.23,492.49,495.21,498.47,502.62,502.34, 500.49,503.32,509.34,510.55,505.27,513.09,512.77,513.76,517.10,518.99, 519.65,518.22,525.41,525.23,522.53,528.73,526.20,531.54,538.18,536.76, 16.12,16.49,17.84,20.03,21.82,22.38,24.00,26.72,27.40,29.70, 30.26,32.17,33.67,34.59,36.64,38.87,39.79,40.97,41.82,45.07, 46.13,47.30,47.52,48.90,53.80,51.96,53.30,54.57,60.22,59.16, 60.29,61.94,62.76,66.26,66.33,68.00,72.05,69.45,72.93,73.63, 76.60,78.16,81.39,81.05,80.61,82.27,85.54,85.27,88.32,90.75, 91.94,91.76,94.86,94.87,96.05,97.16,98.42,101.28,102.76,102.66, 107.36,105.50,107.51,109.86,112.76,115.96,114.10,116.56,116.05,117.98, 120.17,121.62,125.66,124.40,125.85,129.71,129.84,130.03,130.12,132.67, 135.38,136.12,138.12,140.78,142.89,145.02,145.84,144.35,147.79,148.08, 152.26,152.04,154.82,154.73,158.20,157.43,159.08,159.69,161.70,166.63, 163.00,167.41,168.45,169.62,174.22,173.87,177.72,176.90,176.01,180.32, 178.97,182.95,183.35,186.90,183.79,188.55,188.62,190.40,193.06,195.77, 195.82,195.31,198.19,200.78,200.45,204.92,204.27,207.79,207.85,211.32, 211.86,212.81,215.75,213.82,213.78,217.70,221.40,219.92,224.59,221.56, 225.90,227.75,229.26,230.13,229.32,232.43,232.36,236.92,238.22,237.84, 238.57,243.83,247.47,240.71,243.09,249.54,247.96,251.43,251.04,254.28, 259.10,254.87,258.70,258.01,265.44,265.00,261.94,268.01,267.68,269.50, 266.67,275.55,275.67,270.23,280.50,279.88,279.81,284.29,281.83,282.79, 285.41,291.77,288.50,291.27,289.25,291.04,293.18,294.06,300.74,298.01, 297.09,302.31,305.52,310.65,312.38,310.82,308.60,312.04,312.05,316.65, 314.89,316.60,317.83,317.33,323.64,322.24,324.84,333.08,327.88,328.81, 331.60,332.36,334.42,338.56,333.15,339.71,341.07,341.16,344.37,342.93, 344.60,346.32,348.44,355.86,355.63,351.70,352.39,355.34,357.67,355.74, 358.15,360.50,368.12,364.82,366.30,366.87,366.72,375.73,373.87,376.51, 377.11,376.50,379.06,382.99,384.46,383.39,388.10,388.39,388.61,388.09, 388.12,389.62,397.95,397.34,394.26,399.26,404.22,398.43,402.61,404.15, 403.93,407.33,411.63,409.96,412.05,411.87,415.24,413.89,416.14,424.05, 420.39,425.25,418.53,426.67,430.62,427.55,433.74,433.67,431.17,432.78, 436.92,434.67,438.63,443.21,440.75,448.83,445.71,446.52,447.34,456.43, 12.66,14.06,15.64,17.44,17.35,19.39,20.56,21.27,22.39,24.21, 25.23,26.75,27.89,30.07,29.73,31.97,33.59,34.90,35.61,36.55, 37.43,40.24,40.97,41.56,43.50,42.88,46.43,46.27,47.62,49.11, 50.17,52.26,52.13,53.83,56.44,56.93,57.13,60.14,60.64,61.79, 63.28,64.38,66.06,64.64,68.95,69.83,69.83,72.63,73.39,74.42, 76.39,76.90,78.53,79.94,81.81,82.27,82.10,84.06,85.01,87.01, 87.27,90.02,90.22,89.41,91.92,92.57,97.35,98.52,101.15,99.72, 101.68,100.82,104.42,103.57,105.41,105.83,107.16,107.22,107.53,111.06, 113.44,111.31,116.56,118.20,118.43,119.93,120.62,123.63,119.89,121.00, 125.25,127.04,127.24,128.84,130.56,130.76,129.98,134.91,135.85,138.54, 136.28,140.83,142.72,143.47,145.69,147.37,146.90,146.98,149.78,148.57, 152.32,150.36,152.30,153.67,158.07,155.80,158.05,160.98,157.71,162.60, 164.59,165.40,166.23,166.48,167.54,170.29,173.00,169.81,173.53,173.95, 178.54,180.43,181.21,180.20,181.98,180.65,182.92,184.81,187.98,191.28, 188.85,189.87,190.75,192.72,193.73,192.86,197.22,196.04,198.47,200.43, 201.55,202.18,202.04,206.45,208.28,209.19,209.75,210.89,211.94,211.29, 213.05,213.84,217.90,221.31,218.42,218.57,221.76,220.79,222.13,226.90, 226.71,227.25,228.43,228.91,233.57,234.13,235.01,231.74,240.98,238.78, 242.31,240.55,239.66,243.09,243.70,243.95,242.83,249.55,248.84,248.72, 249.15,254.35,255.15,258.19,256.18,258.61,256.59,259.86,259.99,265.73, 261.80,265.23,268.72,265.76,271.91,268.37,272.80,274.80,270.87,276.33, 273.30,278.62,278.00,280.43,282.65,280.91,284.44,284.04,287.34,289.61, 290.93,288.75,288.14,291.51,294.77,295.77,290.63,293.54,295.74,297.14, 302.24,299.56,302.24,301.48,302.77,306.32,305.72,308.67,310.07,310.57, 313.90,316.29,315.27,316.85,317.05,322.00,317.82,326.41,320.77,326.18, 323.72,325.83,329.71,331.22,334.63,331.70,332.31,333.50,338.23,335.22, 338.62,337.32,344.40,341.34,342.34,347.86,345.90,347.40,347.39,354.29, 353.22,353.89,348.83,355.63,353.57,362.12,361.90,359.88,358.90,363.67, 361.44,363.71,364.94,366.34,371.02,370.56,368.98,372.16,376.50,373.60, 11.49,11.88,13.11,14.09,15.05,16.73,16.21,17.41,18.40,19.07, 20.96,22.37,23.29,24.79,26.72,26.86,28.06,28.40,29.59,31.20, 33.31,33.28,33.43,34.87,35.35,35.72,38.39,39.71,41.66,40.78, 41.91,42.95,43.30,47.98,45.37,48.29,48.55,50.41,49.41,52.69, 53.29,54.91,55.31,56.00,55.92,58.56,58.32,58.03,59.57,61.67, 64.07,65.46,65.17,66.21,66.37,67.19,68.31,70.46,68.94,69.62, 73.68,74.42,73.69,75.56,77.03,77.85,81.16,80.05,80.39,81.94, 85.02,84.40,87.34,87.45,89.79,87.73,89.66,90.69,93.59,90.97, 95.60,95.02,94.56,95.88,95.19,97.37,101.04,99.13,102.42,104.79, 104.72,106.16,104.53,108.53,108.28,110.22,112.38,111.47,110.13,114.91, 115.22,115.72,117.99,116.42,119.75,120.47,121.62,120.39,121.66,124.41, 126.77,126.84,126.86,129.33,128.99,130.19,127.83,129.26,135.36,134.24, 134.17,137.56,139.43,140.19,139.73,138.36,143.44,142.08,145.91,145.88, 146.94,148.17,149.29,150.45,153.09,152.04,154.12,155.86,153.50,156.20, 155.34,158.29,160.43,158.42,158.32,162.94,163.04,162.90,164.48,166.19, 170.99,167.47,168.37,172.33,175.97,171.42,175.88,175.96,179.81,176.94, 178.27,178.87,180.79,179.55,180.19,184.69,181.87,187.28,186.09,184.72, 186.54,189.48,191.94,189.74,192.10,191.15,195.04,196.25,194.34,198.51, 198.10,201.32,200.30,203.42,203.08,205.82,205.94,206.25,205.25,205.28, 207.65,213.34,210.68,213.69,212.89,211.93,216.34,216.92,219.06,219.72, 222.56,220.31,220.36,222.41,223.88,223.26,222.41,225.21,225.40,229.83, 228.07,230.53,230.01,231.47,232.96,235.05,237.78,237.86,235.91,238.54, 240.23,237.54,240.28,243.37,242.60,247.03,245.10,244.83,248.81,248.53, 250.63,251.46,255.01,252.34,254.15,256.24,253.37,258.72,263.19,263.57, 258.67,259.25,262.67,266.97,266.73,265.52,267.11,272.04,272.46,269.76, 270.23,275.23,272.07,274.85,273.76,273.14,276.70,278.12,279.01,282.09, 283.63,282.28,284.45,288.89,284.93,285.83,288.62,292.92,291.91,290.64, 288.57,291.45,289.27,293.22,300.84,295.15,296.07,307.45,300.00,304.02, 302.19,302.85,306.79,301.96,308.91,308.90,311.25,312.18,311.38,315.51, 8.83,9.95,11.02,12.33,13.11,12.78,13.72,14.49,15.84,17.96, 17.31,18.65,19.05,20.39,22.28,20.46,22.12,23.91,25.27,24.55, 26.08,27.82,28.19,27.95,28.66,32.20,31.53,32.45,32.40,33.52, 34.93,36.92,36.53,36.13,38.59,39.91,40.39,39.84,40.10,42.68, 43.74,44.26,45.30,45.93,47.88,48.92,48.51,49.85,51.58,51.28, 52.53,51.30,53.23,54.82,54.26,56.06,56.94,58.48,61.02,62.18, 59.93,64.26,62.46,63.53,65.01,67.51,66.16,66.45,66.62,68.20, 70.78,68.85,72.45,70.78,72.09,72.16,72.03,72.97,75.46,77.29, 77.44,78.68,77.44,79.54,82.03,84.44,81.85,81.91,84.05,86.93, 86.34,86.80,89.41,90.81,88.58,89.56,93.89,94.58,91.51,94.46, 95.67,97.61,97.34,97.02,99.90,99.50,101.77,101.07,105.39,104.43, 105.00,105.34,105.97,104.36,105.94,109.66,111.60,108.75,111.93,113.96, 111.63,111.60,115.25,115.92,115.09,117.27,117.85,115.70,121.17,120.24, 121.89,124.63,121.52,126.08,124.36,124.82,124.81,126.46,127.78,130.98, 131.87,131.11,129.95,133.43,135.37,130.82,135.32,136.75,140.00,137.84, 136.83,139.53,137.28,141.02,142.99,142.61,142.59,147.04,148.30,148.02, 148.95,150.55,148.30,151.76,150.77,152.01,150.90,154.57,154.81,156.10, 155.79,156.62,161.39,159.95,159.86,160.21,162.87,161.68,164.52,166.06, 161.82,162.92,162.75,168.81,168.06,169.81,171.31,170.13,171.72,172.41, 173.78,171.17,174.82,176.11,178.93,180.69,179.64,179.11,183.30,181.14, 182.31,179.35,184.74,180.30,186.52,188.34,188.02,191.74,187.40,191.10, 191.63,189.72,190.17,190.12,197.76,191.85,193.70,194.07,198.51,198.44, 198.84,199.47,200.65,201.97,201.29,204.27,205.44,203.82,205.24,209.35, 211.31,209.21,210.05,211.24,212.02,212.69,214.53,212.53,214.99,215.78, 216.61,216.47,216.80,219.19,216.96,220.69,223.49,221.37,221.24,222.68, 224.97,223.38,225.55,227.58,230.79,229.78,230.78,231.14,232.63,233.72, 232.00,233.50,237.90,236.62,235.75,239.58,236.85,241.85,243.25,242.48, 241.96,244.61,244.41,247.45,246.89,246.26,248.11,248.60,250.60,250.12, 252.27,251.21,254.41,255.52,255.54,257.15,256.08,259.75,257.88,256.31, 7.83,8.54,9.90,8.92,10.38,10.88,11.15,12.49,13.66,13.79, 15.26,16.22,16.06,17.46,16.97,17.48,18.93,20.28,20.86,21.74, 21.73,21.63,22.68,24.26,25.07,25.09,26.93,26.14,28.40,28.16, 29.79,28.81,31.40,32.03,30.41,32.21,32.79,34.32,35.35,35.85, 34.78,36.56,37.56,38.42,38.49,40.46,40.88,41.88,41.53,43.65, 42.00,42.26,45.90,45.12,45.53,47.59,47.10,48.91,47.97,49.06, 50.06,51.20,51.51,53.05,51.14,54.75,56.99,56.39,56.75,55.40, 57.83,58.72,59.61,62.23,58.54,58.21,63.98,62.17,62.46,62.80, 63.34,65.49,66.84,68.74,69.45,68.15,69.44,70.07,69.70,70.00, 73.56,73.01,73.39,71.76,73.35,75.46,75.30,75.91,79.07,78.30, 80.44,78.79,83.33,81.41,83.68,81.89,80.27,84.58,85.03,87.14, 85.04,85.94,89.58,87.61,88.60,89.48,91.07,90.26,91.49,92.64, 92.31,94.31,92.80,96.54,95.75,96.15,95.71,98.58,98.11,102.92, 100.87,104.01,99.43,103.10,104.99,106.25,103.61,106.85,105.99,107.90, 108.39,109.77,107.01,110.91,113.38,109.73,113.74,112.06,111.55,112.52, 112.46,114.74,114.79,117.67,118.88,115.83,117.50,119.30,122.84,122.44, 120.21,124.06,126.27,124.13,126.15,123.00,123.88,128.73,127.88,126.02, 128.78,125.97,129.33,133.15,133.06,131.09,135.31,134.69,130.90,135.43, 138.76,137.40,137.75,139.39,141.48,140.49,139.35,140.92,141.51,143.00, 144.43,146.25,145.59,144.47,146.50,146.32,148.19,145.60,150.52,148.91, 151.21,149.99,154.70,152.01,153.25,154.80,156.19,153.13,160.05,154.35, 158.48,156.75,158.34,158.28,161.83,162.25,163.84,162.41,163.97,164.09, 164.46,165.02,166.01,168.06,168.94,166.40,171.58,168.72,170.35,170.12, 172.32,174.01,171.60,177.39,174.80,175.36,178.54,177.96,178.46,179.54, 178.06,176.86,179.31,183.55,182.66,185.72,181.16,185.17,184.50,185.83, 188.19,186.73,188.06,190.35,185.15,189.74,189.78,194.59,189.36,194.96, 194.07,194.71,193.71,194.10,197.64,198.01,198.37,198.25,201.81,197.91, 201.90,197.64,201.46,204.35,201.31,201.08,209.16,206.81,205.31,203.45, 206.32,207.13,211.89,211.27,211.22,210.52,213.40,211.95,215.09,214.90, 6.30,7.11,7.15,8.34,8.83,8.93,9.99,9.80,10.76,11.12, 12.74,11.85,13.00,14.59,14.30,15.79,14.32,16.28,16.64,19.24, 17.37,18.19,19.93,20.83,20.38,19.56,20.30,21.04,22.97,24.86, 23.91,24.70,25.79,25.34,24.83,26.83,28.41,28.15,28.77,28.91, 29.23,30.28,31.02,32.00,32.12,32.99,34.15,34.30,35.54,36.01, 33.82,36.21,38.65,36.78,37.81,40.65,39.83,39.88,40.99,40.22, 40.43,41.58,42.37,42.04,42.27,42.69,45.30,45.26,44.90,46.12, 45.95,48.97,47.98,50.33,51.79,50.89,51.20,53.34,52.54,55.19, 53.45,54.36,55.74,56.11,56.19,55.62,56.54,57.98,58.08,60.06, 59.56,60.10,60.48,61.31,62.62,60.54,63.66,64.76,64.52,65.22, 66.24,66.37,66.32,66.79,68.99,69.53,68.91,72.23,69.28,70.58, 71.32,72.64,73.78,73.50,74.39,73.40,74.06,73.23,76.75,75.84, 76.09,77.57,78.34,78.78,79.34,79.31,80.09,79.16,84.13,84.74, 82.11,83.89,83.90,83.87,87.10,88.33,88.12,86.77,86.88,88.63, 89.95,89.30,88.28,91.40,89.77,91.59,91.45,95.36,93.44,93.53, 94.29,96.37,95.61,97.63,97.40,95.03,98.66,98.27,100.23,100.31, 100.01,102.66,100.43,104.03,100.71,104.38,101.70,106.39,107.23,105.20, 105.59,107.45,106.56,107.54,111.56,110.36,109.99,109.66,110.51,113.02, 111.48,113.33,113.21,111.99,116.75,112.77,117.40,117.75,118.83,116.57, 118.11,118.65,121.25,119.20,122.03,119.06,121.83,121.18,125.23,124.19, 125.30,124.88,123.71,125.93,126.49,125.53,129.71,127.25,128.49,129.61, 129.50,131.37,128.64,130.61,132.34,134.92,134.19,134.89,135.90,137.32, 137.84,137.97,139.43,136.89,139.02,139.85,140.75,142.25,141.58,142.46, 141.76,139.51,142.26,143.00,148.51,144.36,145.25,146.39,147.60,149.06, 149.60,147.94,148.06,146.78,149.65,151.14,150.38,153.27,154.61,153.47, 156.66,155.02,156.78,155.90,154.30,157.81,159.31,158.32,162.55,159.35, 160.04,161.64,159.97,160.62,161.48,164.12,162.51,160.12,163.33,165.03, 164.53,165.63,166.68,167.85,166.05,166.36,168.41,172.55,168.05,172.30, 173.06,170.46,173.48,169.59,172.19,174.10,178.59,174.74,176.81,173.66, 5.02,6.06,6.02,6.15,6.91,6.83,7.61,8.63,9.63,9.74, 10.30,10.04,10.95,11.25,11.66,12.51,13.77,12.41,13.66,14.37, 15.67,15.94,15.98,17.53,17.37,17.26,15.89,18.65,19.12,19.21, 19.25,20.72,20.68,21.15,21.21,22.98,22.40,22.43,24.59,24.21, 24.73,26.09,25.19,27.27,26.81,26.10,27.45,27.01,28.76,28.85, 28.57,29.77,29.14,30.26,31.68,31.29,34.48,33.01,34.21,34.70, 33.40,35.29,35.93,35.97,35.96,36.61,38.50,38.18,38.66,39.70, 38.67,40.06,39.80,40.35,40.73,40.90,42.70,41.46,42.84,43.48, 44.86,44.04,46.49,45.13,46.24,46.95,49.19,47.37,49.51,48.60, 49.48,48.51,49.74,49.82,49.26,51.01,54.60,53.29,53.32,53.66, 54.37,55.71,55.07,54.82,57.11,55.97,56.04,58.05,59.12,59.41, 60.31,61.18,59.71,61.25,61.78,58.84,60.19,63.21,64.12,64.69, 62.97,62.61,61.63,64.50,66.09,66.80,65.25,65.44,66.14,66.18, 68.64,69.51,69.72,70.59,69.63,71.82,70.33,71.97,73.98,72.24, 74.19,71.48,75.03,75.00,74.62,73.97,76.22,77.07,78.42,80.62, 80.19,80.92,77.42,80.55,80.52,81.11,81.30,83.14,80.90,83.63, 83.86,83.37,84.66,84.97,84.68,86.48,83.76,86.71,87.56,87.09, 89.96,86.62,87.67,90.16,91.30,92.20,90.75,92.07,93.87,93.01, 93.72,93.24,92.39,93.35,93.50,96.41,95.22,98.35,99.97,95.59, 99.42,96.47,97.43,98.75,99.35,100.50,101.02,98.39,102.06,104.29, 103.73,103.73,104.05,104.03,104.94,106.63,102.89,105.52,104.29,106.67, 109.15,107.21,107.66,108.86,109.73,112.51,114.59,109.61,111.73,114.80, 112.16,110.61,110.52,110.86,115.55,112.90,117.48,114.54,116.30,119.18, 117.77,120.02,117.17,120.59,119.51,116.60,121.33,116.75,121.24,122.39, 122.98,123.54,122.48,122.85,126.76,124.34,122.27,124.71,125.83,128.49, 122.86,127.75,128.33,126.45,127.56,129.43,127.97,131.25,134.11,130.54, 130.70,132.74,131.43,133.37,134.05,134.00,135.62,138.32,139.20,132.94, 134.82,140.10,137.20,138.42,139.81,137.00,139.73,140.72,140.88,144.75, 142.83,144.13,144.59,141.30,145.29,145.97,146.66,145.69,147.11,145.70, 4.60,4.91,5.25,5.68,5.45,6.18,7.00,6.62,7.43,7.52, 8.82,8.79,8.49,9.62,9.62,9.54,9.97,11.57,11.47,12.18, 12.50,12.69,13.93,13.09,13.51,14.24,14.07,15.72,16.31,16.34, 15.58,16.75,18.27,17.61,17.49,18.36,18.73,19.99,19.13,20.15, 21.05,20.81,20.98,21.38,22.74,22.61,22.26,22.27,23.57,24.42, 23.04,24.06,25.18,25.72,25.36,26.57,26.18,27.06,28.98,26.73, 28.97,29.11,28.44,28.38,29.76,28.73,30.92,31.78,30.29,33.24, 32.86,32.29,34.56,34.58,32.61,34.45,36.43,34.60,36.25,34.30, 36.10,35.10,38.58,37.75,38.59,36.78,39.05,38.64,38.85,40.29, 41.53,41.81,40.51,41.77,41.67,42.35,41.99,43.47,42.70,42.94, 44.31,44.73,45.76,46.85,45.56,46.76,45.01,45.89,46.21,47.57, 46.46,47.70,51.37,49.77,51.14,52.24,50.83,49.97,51.23,52.12, 52.41,53.10,52.75,53.33,55.64,53.38,55.85,55.08,54.37,56.79, 58.08,55.07,57.52,56.28,56.81,60.99,59.73,57.82,58.41,60.71, 61.12,61.26,62.39,60.35,64.34,64.05,61.30,63.94,62.15,63.08, 62.92,64.81,66.99,63.27,64.74,66.93,67.13,67.45,66.16,69.30, 67.21,70.36,68.82,67.27,69.98,69.00,69.72,70.58,70.84,73.03, 74.96,70.58,73.11,74.30,74.28,72.38,75.62,76.22,75.97,76.28, 78.60,77.62,77.20,80.22,78.34,77.40,77.98,77.28,80.30,79.19, 80.03,80.63,80.92,80.40,81.77,82.14,82.75,83.21,84.11,83.54, 83.36,85.77,84.50,85.61,88.29,85.80,86.14,87.27,87.18,88.08, 92.12,87.35,90.75,85.58,91.44,90.33,90.99,91.92,89.71,94.17, 92.27,91.42,94.90,95.26,94.01,93.48,92.20,95.15,93.53,95.52, 97.70,95.66,98.03,95.77,99.42,98.01,95.87,102.60,98.23,102.96, 101.18,100.02,102.39,99.80,100.82,101.65,104.58,101.06,102.31,102.37, 108.27,104.92,104.74,107.84,109.02,109.88,107.29,107.47,107.81,108.51, 107.99,109.38,109.56,109.18,109.02,111.25,111.05,111.13,111.00,113.30, 111.78,113.91,113.93,110.67,114.13,116.92,116.41,115.91,117.18,116.52, 116.36,117.03,116.48,120.78,117.14,119.62,119.00,118.43,118.00,122.73, 2.98,4.08,4.50,5.29,4.30,4.67,5.22,5.58,6.08,7.43, 6.37,7.07,7.67,8.04,7.66,8.52,8.03,9.00,9.42,9.88, 9.82,10.01,10.96,10.98,11.08,12.35,12.23,12.67,13.23,12.93, 14.07,14.00,13.83,14.97,15.16,15.15,15.64,15.10,15.52,16.46, 16.78,16.05,15.29,17.07,19.32,17.38,17.54,18.50,20.29,17.99, 19.77,20.74,20.70,21.30,22.45,21.91,22.07,21.63,21.58,21.89, 22.48,23.29,24.58,23.80,23.27,24.93,25.60,25.12,26.64,27.03, 25.80,27.16,26.94,28.41,27.70,27.20,30.23,27.56,28.40,31.79, 28.74,29.72,30.50,31.02,31.54,33.50,30.79,33.64,32.82,33.23, 32.83,33.64,34.93,31.73,34.94,34.89,34.46,36.42,37.06,37.46, 37.04,35.77,37.96,36.68,37.26,37.45,38.34,38.20,39.36,39.40, 39.00,40.41,40.74,40.71,41.28,43.41,40.95,42.38,42.41,43.09, 42.47,42.48,44.86,45.33,45.42,44.03,45.72,46.16,46.43,45.98, 44.52,44.59,46.66,45.93,46.87,47.29,47.98,47.48,47.04,50.02, 51.82,50.66,49.25,50.78,52.56,48.56,51.19,51.49,52.37,51.99, 52.60,53.20,54.76,56.04,53.92,54.30,53.40,54.22,56.69,55.55, 55.76,56.30,58.66,58.64,56.20,56.24,61.01,56.10,58.09,57.10, 58.91,59.04,61.02,60.92,61.78,61.31,61.59,63.62,63.23,61.09, 63.00,64.05,63.08,63.56,64.63,65.68,64.05,64.75,64.78,66.96, 66.26,64.98,66.72,67.36,67.03,69.17,67.98,67.83,67.74,68.38, 70.13,70.39,68.27,68.77,72.60,71.73,70.10,69.66,72.17,70.88, 70.20,72.59,74.17,72.79,74.23,75.09,75.29,75.95,77.71,76.28, 75.20,75.51,76.12,75.46,76.15,78.97,80.25,77.13,78.68,80.36, 77.68,79.97,79.77,82.10,78.93,83.27,81.49,82.82,81.44,83.31, 83.73,81.00,83.58,83.31,82.72,84.22,82.21,85.22,82.68,85.64, 85.16,85.50,88.50,85.32,86.05,87.53,90.33,87.08,89.83,88.77, 88.61,90.08,89.48,88.77,91.48,92.73,91.34,90.87,93.52,90.37, 93.18,94.94,93.53,93.45,92.37,92.90,93.32,94.29,95.10,95.91, 96.95,93.60,98.53,95.28,96.53,99.67,95.55,98.50,96.71,97.65, 2.56,2.74,3.68,3.93,3.99,3.96,4.50,4.01,4.42,5.52, 5.08,6.11,6.36,6.54,6.99,6.72,8.38,7.43,7.52,8.43, 8.67,8.05,8.96,8.90,9.30,10.48,9.55,10.75,9.82,10.92, 10.78,11.74,12.23,10.95,12.16,12.36,13.05,12.98,13.51,13.53, 13.80,15.41,14.68,15.04,15.37,13.89,15.17,15.30,15.12,15.89, 16.63,17.80,17.12,16.67,18.43,18.54,18.61,18.63,20.35,18.77, 19.30,17.55,19.43,20.20,20.49,20.10,20.87,20.85,21.30,22.51, 22.30,21.39,23.39,23.21,23.11,23.21,22.80,23.41,23.38,25.00, 24.78,25.62,24.99,25.58,24.62,25.08,26.38,24.62,27.42,25.50, 27.46,28.45,26.71,27.10,28.92,28.76,29.15,28.91,29.59,29.54, 27.98,30.70,29.48,29.98,30.58,29.25,32.43,31.53,31.49,32.50, 32.88,32.59,32.49,35.30,35.08,35.51,32.99,35.15,36.98,34.97, 35.20,35.03,34.35,37.02,35.66,37.26,38.91,37.21,38.85,37.64, 40.57,38.26,37.82,37.95,38.35,39.14,39.95,38.64,37.80,40.02, 41.06,40.42,40.20,41.90,42.37,39.96,44.21,43.76,42.67,44.47, 44.78,43.28,44.05,44.79,43.78,46.45,45.39,43.17,44.42,46.89, 45.08,46.21,46.68,45.76,48.04,48.75,47.97,48.94,49.85,48.31, 49.73,49.03,50.44,49.23,50.21,50.99,51.08,50.56,52.22,51.88, 53.32,51.85,52.96,53.94,52.26,52.37,53.85,53.65,51.58,55.21, 53.46,57.99,55.15,53.74,57.65,52.57,56.17,54.26,57.33,57.28, 54.89,58.51,56.11,59.27,59.42,59.16,58.41,60.81,58.50,59.89, 57.69,59.78,62.50,58.95,61.10,60.63,60.94,62.96,63.27,60.99, 62.32,63.25,63.67,63.23,63.55,64.93,62.75,62.41,65.56,66.07, 65.72,62.32,64.50,65.12,67.13,66.51,69.09,67.22,66.99,67.91, 67.16,69.28,69.17,65.77,69.61,69.96,68.64,69.38,69.03,71.00, 69.42,69.24,71.42,74.09,70.62,75.22,72.46,72.17,70.93,72.89, 73.44,71.28,74.61,75.54,71.72,73.39,74.95,73.59,76.15,72.76, 74.06,74.50,77.47,74.84,77.96,76.86,77.16,77.26,77.76,76.05, 79.67,76.24,81.27,78.61,82.28,78.11,78.89,78.96,80.19,81.60, 2.27,2.51,2.45,3.62,3.11,3.96,3.54,3.82,4.24,4.19, 5.12,5.37,5.13,4.71,5.84,5.24,5.36,6.21,5.83,6.23, 6.11,6.55,7.23,7.03,7.31,8.06,7.91,7.50,8.22,8.29, 8.40,9.85,9.11,9.39,9.88,10.35,11.57,10.47,10.95,11.89, 10.96,11.15,11.96,12.34,11.53,11.85,12.55,12.50,13.33,13.06, 13.57,13.72,13.67,15.72,14.55,14.18,15.27,15.16,15.29,15.70, 16.22,16.85,16.67,16.22,16.48,16.54,16.97,17.59,17.49,17.85, 17.55,17.82,17.54,18.62,18.80,18.32,18.01,17.69,18.93,20.91, 20.97,20.23,20.89,20.84,18.41,21.16,21.76,21.63,22.58,21.63, 22.45,22.53,22.09,23.69,23.49,23.02,23.71,24.21,23.14,23.10, 25.25,24.44,24.74,24.24,25.29,24.55,26.44,25.70,27.29,25.82, 25.44,26.44,27.53,28.24,27.65,26.47,26.98,26.41,28.73,27.38, 29.73,29.46,28.92,30.59,29.88,30.07,31.77,31.07,31.00,30.61, 32.83,30.95,30.78,32.76,32.78,33.50,33.11,32.17,32.73,34.61, 34.59,33.36,33.83,34.05,34.20,33.85,32.80,34.46,35.51,34.09, 34.84,36.41,36.10,33.27,36.21,36.32,38.68,39.46,36.85,37.93, 36.74,36.65,39.54,35.99,37.83,39.79,38.47,37.81,38.37,40.56, 40.00,39.79,40.39,39.64,39.36,40.70,44.00,41.36,42.49,40.43, 41.26,42.16,42.58,42.81,42.37,43.45,44.27,43.86,43.37,42.56, 43.59,44.10,44.45,45.19,45.59,45.88,45.12,48.01,45.67,46.60, 46.69,45.72,47.45,45.97,46.93,48.17,48.56,47.19,49.75,47.99, 50.60,49.89,48.55,49.39,51.88,49.15,50.28,51.25,49.83,50.99, 51.52,51.24,51.80,52.03,53.31,52.76,51.25,52.61,51.23,52.14, 53.94,53.71,53.29,53.29,54.83,52.44,53.99,55.82,55.66,56.13, 54.73,55.83,54.81,58.98,55.54,57.54,58.59,57.63,56.64,56.10, 56.52,57.52,56.17,59.92,60.32,57.13,59.12,59.87,58.92,59.03, 59.45,61.22,60.17,60.96,61.89,59.57,61.43,61.28,61.72,62.72, 62.23,64.76,61.69,61.99,63.26,61.69,60.86,63.69,62.50,64.47, 65.85,63.71,64.02,66.10,62.99,66.07,64.85,64.26,66.38,66.32, 33.71,38.39,41.41,44.19,47.07,50.04,54.20,57.58,61.97,62.48, 66.89,70.24,75.22,76.70,81.55,83.82,86.14,90.10,93.90,96.82, 101.04,104.08,105.86,108.85,111.24,117.39,120.73,123.98,125.17,130.69, 134.49,136.19,138.42,143.16,145.80,150.54,153.54,157.44,160.43,163.58, 165.48,168.62,171.85,175.50,179.03,183.57,186.68,190.10,193.21,197.06, 197.92,201.57,205.15,208.62,213.92,216.60,220.05,220.68,225.71,230.05, 234.07,235.45,235.13,242.23,245.16,247.69,251.85,253.63,257.78,261.24, 261.99,268.95,272.67,273.97,274.83,281.06,286.30,291.60,294.17,294.13, 294.72,303.04,305.59,309.00,311.08,314.74,318.80,322.20,322.42,326.75, 332.85,333.67,336.46,341.58,345.47,343.66,351.65,351.35,358.07,362.82, 364.40,369.26,371.24,374.38,378.87,383.03,385.66,386.37,393.03,395.26, 397.54,402.91,403.18,408.53,408.74,415.03,414.23,420.89,423.40,425.73, 430.00,433.53,437.05,436.55,442.78,443.76,448.64,452.78,453.77,462.37, 464.82,464.72,467.40,471.87,475.01,477.25,482.96,485.59,488.57,493.10, 494.62,496.92,500.75,508.53,506.96,510.92,513.13,519.18,521.41,526.46, 528.83,531.59,539.75,539.52,541.60,548.42,546.97,549.03,555.16,558.81, 557.57,562.36,573.05,569.50,574.33,577.65,580.96,584.31,585.38,590.85, 593.57,600.23,598.27,603.62,607.35,613.70,611.03,621.06,619.24,626.79, 631.55,629.36,635.63,634.91,642.25,645.87,647.59,646.88,651.92,652.85, 664.26,663.73,667.70,668.82,673.53,678.35,683.06,689.54,686.08,692.44, 692.36,697.44,698.73,702.32,705.05,709.75,711.33,720.06,719.37,722.85, 728.14,727.77,732.18,738.19,741.09,743.82,746.25,747.56,753.54,755.74, 760.25,756.63,766.95,771.34,780.72,774.21,781.42,781.64,780.99,791.09, 795.92,798.73,801.40,800.46,806.40,805.76,814.89,814.60,816.29,817.02, 822.53,826.13,830.70,834.03,835.21,845.39,840.68,845.48,850.77,854.37, 859.86,863.68,864.10,870.32,874.40,874.29,879.62,878.55,883.64,886.45, 887.79,894.02,901.23,902.77,906.32,907.85,910.64,915.23,920.55,925.14, 925.83,924.31,932.36,933.04,935.77,938.40,948.31,943.50,950.57,954.03, 954.77,958.66,963.42,970.24,972.73,972.84,976.35,977.09,983.39,988.88, 27.62,31.72,35.41,38.40,41.46,43.26,45.10,48.79,51.59,53.88, 57.55,59.68,64.23,66.99,68.65,72.81,75.21,77.02,81.28,84.44, 84.86,88.03,91.01,95.24,96.13,101.16,102.75,107.07,107.25,111.99, 113.94,117.76,119.53,123.61,127.00,126.73,129.81,132.89,136.94,140.81, 143.49,144.29,147.94,151.78,153.58,157.91,157.77,161.63,162.22,168.66, 172.46,174.49,174.88,177.06,181.42,186.17,187.79,188.78,191.90,195.98, 198.63,201.26,202.63,208.47,210.17,213.91,216.04,216.34,220.60,222.75, 226.69,231.12,233.09,235.92,238.66,241.28,245.75,244.23,248.27,250.81, 254.75,260.44,258.51,263.43,268.40,268.01,271.89,275.92,276.88,279.82, 284.35,286.24,289.38,293.69,295.24,297.13,302.38,303.83,307.90,311.71, 313.18,317.09,316.68,322.61,319.31,325.00,328.04,332.19,333.97,334.43, 339.18,342.84,344.83,352.36,349.84,351.24,354.75,357.74,360.39,366.39, 368.44,370.48,372.59,378.52,378.26,381.71,386.33,387.81,390.98,388.72, 399.40,398.58,400.59,406.32,408.84,411.88,415.32,421.50,420.66,424.41, 424.69,428.00,432.96,430.38,436.67,435.95,441.19,444.60,447.82,449.84, 453.00,456.77,461.26,458.61,462.08,469.87,471.04,476.72,477.11,477.73, 479.56,489.50,488.14,491.96,491.65,493.29,495.88,497.85,507.53,503.16, 510.79,508.50,516.77,515.87,520.99,528.13,527.42,532.42,538.39,531.47, 532.74,538.12,540.07,548.51,547.64,550.59,555.44,557.88,561.83,559.75, 569.10,569.66,574.13,574.64,576.33,581.95,583.74,588.89,586.09,595.12, 591.61,600.21,597.34,601.23,606.58,608.30,611.82,612.22,615.17,624.04, 627.73,626.91,625.16,635.07,634.85,634.64,641.92,640.06,637.23,647.59, 649.13,652.79,660.76,661.65,658.46,663.10,664.58,665.99,672.73,677.76, 675.97,683.87,686.35,684.78,690.35,692.85,696.00,694.81,701.53,703.17, 706.57,712.99,715.21,714.86,723.46,718.84,721.88,723.79,733.39,727.19, 738.41,737.98,736.96,739.92,746.55,749.70,751.46,754.88,759.29,760.64, 761.63,768.11,765.69,766.26,771.47,774.43,782.37,781.03,788.78,786.74, 790.67,790.66,799.11,800.61,801.65,806.71,811.68,811.93,814.86,818.05, 823.81,826.01,826.98,827.79,829.44,833.90,840.98,836.16,843.14,842.28, 24.87,26.95,29.30,33.02,35.23,37.53,39.72,41.59,43.79,47.26, 48.90,51.50,54.55,55.99,58.76,60.84,64.33,65.62,67.42,70.85, 72.22,74.89,78.94,81.40,84.76,85.54,87.62,89.62,91.55,95.18, 98.68,98.97,101.13,104.27,106.80,109.76,113.86,113.10,116.28,119.46, 121.72,124.70,125.51,128.19,132.54,134.04,134.86,138.36,142.05,143.80, 143.68,146.97,151.76,152.86,152.89,159.26,160.13,163.79,165.28,167.11, 168.89,173.06,175.13,175.59,176.59,180.62,182.40,185.45,187.38,191.63, 194.62,198.12,195.95,202.28,203.42,206.40,209.71,211.15,211.12,218.35, 216.81,221.94,226.25,226.72,227.14,228.73,234.57,235.64,237.84,240.42, 239.13,245.93,245.80,248.03,251.93,253.87,255.30,260.72,261.60,263.85, 266.60,267.54,269.61,272.99,278.15,276.61,278.49,285.51,281.15,289.23, 289.10,292.63,295.87,294.51,304.75,302.11,306.47,308.76,310.69,314.32, 318.68,314.68,319.47,322.07,322.45,324.45,329.57,332.31,333.64,333.60, 340.17,341.46,342.88,346.26,347.42,353.39,352.54,353.71,359.07,358.79, 358.89,361.96,367.51,369.54,370.13,373.54,380.72,378.43,386.70,385.98, 384.77,388.29,389.70,390.58,393.88,399.54,403.17,404.20,402.60,411.21, 408.51,413.26,411.86,418.19,420.14,418.35,424.13,428.22,431.67,428.21, 436.78,431.66,442.90,441.90,451.36,446.26,443.85,451.33,452.76,454.82, 458.80,461.74,462.14,470.65,470.08,472.54,474.28,473.81,484.15,478.22, 482.79,487.94,485.65,489.16,496.40,494.78,498.77,500.88,500.05,506.80, 500.19,508.76,510.92,515.91,516.83,522.24,519.56,527.82,524.47,527.75, 532.03,533.99,537.09,540.08,541.53,541.88,541.92,546.67,551.23,555.72, 557.02,554.83,557.13,561.98,563.26,567.82,568.98,570.88,575.97,579.80, 579.88,583.21,581.46,587.34,593.73,590.55,592.19,595.16,598.66,600.27, 604.66,611.49,608.43,611.43,613.89,614.04,619.30,622.61,623.18,623.93, 631.02,627.78,633.80,629.70,638.00,641.49,642.75,646.82,647.16,649.02, 649.17,656.03,653.57,656.98,661.54,662.15,667.18,665.64,674.81,673.21, 678.21,678.43,677.46,678.67,684.29,686.45,690.35,697.21,694.00,695.92, 701.45,698.92,705.44,706.03,710.37,713.81,712.87,714.48,719.13,727.30, 21.37,23.15,25.49,26.34,29.93,30.35,34.54,36.66,37.35,40.63, 42.15,43.93,45.96,47.79,50.14,52.86,53.98,55.83,58.38,60.45, 60.93,65.11,66.84,68.52,69.64,71.42,74.94,78.49,79.11,79.85, 81.73,85.31,85.58,88.61,91.42,95.17,95.89,96.14,98.58,99.89, 104.06,105.13,107.92,109.57,112.93,115.09,117.13,118.21,117.71,120.35, 120.05,126.16,128.33,129.03,131.13,132.96,137.50,138.92,141.42,142.67, 145.99,144.90,146.97,149.97,152.26,154.33,155.85,159.53,162.44,161.22, 161.96,169.91,170.20,169.70,174.51,175.16,179.70,180.78,181.85,183.62, 185.64,186.18,189.14,194.70,194.20,196.44,199.16,198.51,202.50,203.80, 205.32,209.66,210.88,211.92,217.56,214.17,218.55,218.80,222.74,225.10, 226.92,228.49,230.95,233.38,237.44,237.98,238.13,241.22,243.28,246.05, 248.37,249.54,252.21,252.66,256.50,257.29,257.94,260.46,264.14,265.17, 267.97,267.38,272.64,271.70,271.25,277.89,277.81,281.91,284.21,282.51, 292.06,292.43,291.45,292.03,294.79,294.93,298.78,304.63,304.87,306.49, 310.54,310.61,315.93,312.51,316.92,319.51,321.28,320.94,327.54,324.14, 329.77,328.77,331.80,332.27,333.23,338.14,340.38,345.82,344.13,346.23, 350.61,348.09,351.45,356.39,356.37,356.87,359.01,359.86,363.94,368.59, 370.21,370.34,369.13,375.08,378.17,377.67,382.06,385.37,388.21,384.25, 388.65,392.64,393.86,396.87,399.43,400.35,401.90,403.27,407.27,405.29, 408.76,413.66,415.23,419.30,417.08,423.92,422.23,421.28,429.86,428.56, 434.20,429.85,438.47,437.32,437.20,440.05,445.48,446.56,448.52,448.88, 451.44,451.37,452.59,454.22,459.14,468.36,461.94,464.26,470.18,467.54, 475.15,473.48,472.30,479.20,481.24,482.48,484.07,487.15,487.15,492.58, 487.97,493.14,500.92,494.57,498.50,506.40,507.02,503.13,512.95,511.38, 510.22,514.25,518.87,519.17,522.32,522.84,523.25,523.35,526.74,535.54, 532.94,536.80,536.34,539.71,537.89,543.72,548.51,548.89,550.27,555.84, 555.65,551.40,557.75,561.27,562.08,558.91,566.32,565.63,565.48,569.08, 576.29,575.49,580.50,579.48,584.05,585.40,584.68,589.02,590.31,593.01, 594.45,596.30,598.73,602.08,605.02,602.19,602.32,610.30,612.11,611.05, 19.21,19.78,20.63,23.04,24.15,27.79,28.75,30.20,32.26,32.57, 34.89,37.73,38.97,40.32,42.23,45.82,45.66,49.36,48.69,51.77, 52.95,54.84,54.99,57.24,58.68,61.72,62.50,66.71,66.37,67.00, 69.93,72.42,73.88,74.15,76.68,78.74,79.47,82.39,83.68,84.50, 85.57,89.96,91.23,92.42,94.31,95.33,94.32,98.80,100.52,102.52, 105.69,106.49,108.00,110.92,110.27,115.55,116.24,115.72,118.13,121.45, 121.16,125.33,127.67,126.71,130.02,132.31,133.10,135.06,135.86,141.31, 138.99,137.91,143.28,146.53,149.53,149.16,150.16,152.01,151.35,155.70, 159.02,158.51,161.09,164.68,161.13,167.44,166.92,165.12,171.46,170.26, 174.59,178.41,176.03,179.33,180.47,183.19,181.86,186.78,185.81,192.60, 192.11,192.45,195.51,197.90,202.01,199.58,200.29,203.72,207.24,206.14, 209.27,210.34,212.56,214.91,217.45,219.55,220.61,217.60,220.86,228.41, 224.32,229.72,228.19,231.80,230.70,233.94,234.85,242.73,240.82,241.94, 243.79,246.37,248.70,248.11,248.71,251.19,254.66,255.42,257.56,260.85, 259.25,263.92,264.61,268.31,267.52,271.26,269.60,272.79,274.81,272.39, 276.12,277.53,279.22,283.37,286.06,284.41,287.95,295.04,291.18,295.20, 295.13,298.56,299.57,300.51,304.31,305.18,308.55,310.08,310.94,314.68, 316.94,314.88,319.69,316.35,321.37,318.71,326.53,321.87,324.36,327.39, 332.96,329.87,336.92,335.27,339.28,335.54,343.30,343.29,346.12,346.05, 349.25,348.49,355.25,353.48,347.56,357.56,360.29,359.01,362.79,358.55, 360.19,368.66,366.87,371.43,372.04,374.78,375.89,378.38,380.07,381.01, 382.76,381.62,383.22,386.96,387.06,394.20,397.02,394.86,394.72,399.69, 394.76,402.77,400.14,404.56,404.87,407.77,407.97,407.55,420.57,414.22, 417.12,418.07,419.59,422.91,422.51,427.98,422.36,430.27,430.39,431.51, 435.36,431.99,438.88,440.65,443.65,442.83,442.57,444.73,448.07,453.10, 449.78,455.50,453.43,454.26,462.91,457.45,463.98,462.94,464.91,468.75, 469.36,466.80,474.93,481.02,479.21,483.23,477.82,480.48,484.61,485.87, 485.71,488.79,487.34,494.24,493.64,496.93,493.68,495.52,500.22,504.81, 509.07,509.28,508.95,506.78,510.46,512.79,512.05,516.03,512.72,519.45, 15.20,16.46,18.00,19.76,21.90,21.43,23.29,25.66,27.72,28.09, 30.00,30.48,33.31,33.46,34.65,37.96,38.72,41.06,41.65,42.73, 44.68,47.53,47.91,49.68,49.66,51.86,53.65,55.08,56.00,57.40, 60.34,61.60,61.89,62.66,64.99,65.54,69.61,70.18,71.80,73.02, 73.50,76.73,76.35,80.62,81.02,82.74,80.44,82.33,84.21,86.45, 86.25,90.95,91.22,90.56,93.28,93.90,98.39,98.40,99.82,101.66, 101.96,105.92,103.52,105.06,109.80,109.51,110.38,112.05,113.95,115.66, 116.25,119.58,121.69,119.22,123.03,126.41,125.14,129.33,129.74,132.72, 132.88,131.26,134.76,136.98,139.23,141.54,141.79,141.74,144.13,145.11, 144.98,145.29,150.29,151.49,155.29,153.96,157.91,159.55,161.47,161.53, 162.37,163.97,167.14,165.52,169.20,172.02,169.65,171.99,175.61,173.03, 176.11,177.04,180.10,180.37,181.57,181.69,187.19,188.05,187.58,189.85, 191.83,194.62,195.77,193.78,202.54,197.48,199.30,201.85,202.53,205.83, 206.65,203.82,209.86,208.85,211.80,210.75,213.13,216.52,216.52,218.93, 219.75,221.03,222.74,223.26,227.35,228.58,229.04,230.59,234.16,231.94, 234.78,235.81,236.97,240.00,240.97,244.92,244.28,248.51,248.10,248.54, 249.66,248.46,254.15,253.98,254.21,262.55,259.55,260.49,261.51,262.99, 263.99,267.27,266.51,271.25,269.83,273.69,275.89,273.41,276.71,277.36, 279.47,279.01,284.66,279.70,281.81,285.54,288.68,286.98,288.61,293.34, 290.63,296.05,296.45,297.46,301.35,304.63,304.12,304.70,304.08,305.96, 304.20,313.36,310.99,312.41,313.73,315.14,315.97,316.36,319.06,321.55, 322.40,320.67,324.41,327.57,329.46,328.81,334.18,334.20,334.87,337.22, 338.39,341.18,336.58,343.33,341.99,346.42,347.86,345.82,347.55,350.12, 353.36,358.06,354.41,356.78,356.56,360.14,361.53,357.16,365.16,363.14, 369.27,366.24,371.32,375.13,374.63,369.97,377.28,378.03,380.86,383.26, 381.75,381.98,386.13,384.68,386.55,391.90,392.64,392.02,388.48,390.85, 397.99,396.50,398.36,404.10,406.54,402.95,408.18,407.44,406.94,409.42, 413.41,417.76,412.28,417.20,416.02,417.76,419.43,420.17,424.74,423.73, 421.71,425.89,429.07,431.20,432.18,431.32,433.00,436.34,432.32,442.88, 13.28,13.56,14.27,16.91,17.16,19.41,19.92,21.20,23.34,24.70, 25.20,26.93,28.88,30.48,30.56,31.55,32.71,32.63,34.31,37.95, 37.44,37.85,40.16,40.37,42.38,43.36,44.15,45.92,46.94,48.89, 50.47,50.44,51.96,52.68,53.56,56.62,55.40,58.89,59.46,60.08, 63.31,62.04,63.03,66.35,65.82,68.18,69.80,71.35,71.25,72.37, 73.86,75.30,76.74,78.05,78.31,82.21,83.67,81.36,83.40,86.18, 86.64,89.67,88.21,90.01,91.76,93.46,93.50,94.46,96.66,97.88, 99.09,99.56,100.74,105.39,102.73,105.99,107.53,107.60,109.30,110.30, 114.12,110.91,113.31,115.30,115.47,116.82,120.17,118.76,122.37,121.80, 123.18,123.42,125.48,128.43,129.02,132.11,131.00,132.86,136.28,133.26, 138.40,135.76,139.49,140.62,141.57,142.83,142.26,144.32,146.99,147.81, 150.45,151.17,151.05,152.19,154.69,152.86,156.27,155.18,155.65,162.96, 163.44,160.26,165.43,165.75,165.94,167.17,166.43,168.89,168.87,171.07, 172.62,172.61,176.33,178.66,177.09,180.33,181.57,182.48,179.58,187.14, 186.33,188.65,186.76,187.91,188.89,193.39,194.04,195.32,195.74,194.60, 196.71,199.91,201.10,200.34,207.78,204.59,207.59,205.68,207.83,209.33, 208.33,210.76,212.70,214.33,216.03,217.97,216.91,216.65,220.10,222.22, 225.32,224.48,224.87,225.98,229.12,228.36,230.67,233.31,232.53,233.50, 235.89,237.15,236.72,237.27,235.20,241.24,238.76,243.16,245.91,245.53, 245.54,246.78,254.13,247.39,249.88,253.27,255.17,258.41,258.06,259.47, 262.38,261.10,264.28,261.05,264.55,265.63,265.69,271.77,264.99,272.10, 275.67,272.65,276.79,273.79,282.65,277.97,279.54,283.42,282.51,285.10, 285.62,287.19,284.45,291.11,290.70,290.39,293.20,292.05,293.66,291.91, 297.75,296.20,301.22,298.98,305.62,302.98,299.84,305.27,304.15,305.75, 306.38,312.81,312.48,314.22,311.84,315.44,316.69,314.89,315.95,321.23, 320.32,327.80,320.56,322.24,326.85,332.74,328.47,330.57,335.30,330.84, 336.44,334.75,338.88,335.38,338.06,339.82,340.52,337.36,349.19,343.76, 347.17,346.99,351.58,349.18,353.56,351.94,357.23,354.87,355.12,356.10, 358.56,361.63,363.06,360.68,361.76,362.88,366.50,369.06,367.37,370.99, 10.59,12.24,12.80,13.59,14.77,17.33,16.83,18.61,18.02,20.69, 20.21,22.05,22.19,23.46,25.73,25.78,28.36,27.65,29.09,29.81, 30.81,32.26,33.36,35.61,36.36,37.04,37.70,38.79,40.75,41.21, 41.41,41.99,42.94,45.05,44.86,47.90,50.38,48.93,50.68,51.09, 53.70,51.88,55.26,55.08,57.59,56.90,58.61,59.59,61.46,61.48, 62.41,64.07,64.55,65.95,65.16,68.55,70.46,70.62,71.31,72.51, 73.28,72.49,75.16,77.85,75.40,78.08,78.27,79.98,82.57,81.15, 81.61,85.15,85.57,88.12,89.89,90.10,88.47,88.94,90.47,93.40, 95.19,95.42,95.39,92.75,98.49,98.98,99.57,101.12,101.75,101.90, 106.59,104.19,106.25,106.80,108.42,109.33,110.33,111.47,110.09,113.16, 115.29,115.56,116.78,117.37,119.74,119.00,119.37,120.95,122.94,126.45, 123.61,129.09,125.28,128.27,128.88,128.37,128.84,130.35,132.54,134.24, 134.96,137.87,136.93,140.95,138.69,141.41,141.72,143.50,141.26,143.92, 145.42,147.66,147.33,150.49,149.77,150.96,149.77,154.43,151.73,154.43, 156.90,155.62,158.27,156.90,158.85,159.41,161.23,163.55,165.03,164.91, 167.86,168.95,167.42,169.53,167.98,172.23,170.08,177.63,171.76,176.68, 175.99,179.25,177.93,178.34,176.48,180.28,183.12,188.76,187.52,185.14, 186.79,187.59,188.79,192.50,193.25,191.97,192.12,195.33,192.11,195.45, 195.80,199.74,200.18,198.22,202.72,203.62,202.64,205.13,207.57,205.97, 208.22,208.73,207.38,209.82,211.63,211.18,214.07,217.22,213.98,219.26, 218.82,220.86,217.91,221.01,220.12,223.29,221.74,226.60,225.82,226.28, 230.37,233.80,228.76,232.71,232.79,236.34,233.74,239.12,239.69,238.97, 238.65,239.30,240.53,242.68,245.27,245.07,244.39,245.04,246.94,247.10, 248.51,251.00,252.30,249.30,250.40,254.71,255.96,255.42,258.01,254.08, 263.06,261.25,259.75,260.04,261.65,263.31,269.84,265.29,269.92,270.04, 270.55,270.66,274.35,273.09,272.93,273.82,274.46,279.44,278.85,281.86, 274.43,279.60,281.80,285.53,284.76,286.25,287.01,286.15,285.79,290.16, 288.93,293.83,291.26,293.05,298.07,291.30,299.59,298.54,300.22,302.54, 303.01,298.20,305.14,307.52,303.44,305.90,307.58,309.27,309.19,311.65, 8.12,9.11,11.04,11.78,12.49,13.03,14.94,15.65,15.27,16.96, 18.19,18.74,19.56,20.04,21.18,22.11,22.84,23.04,25.39,25.85, 26.31,26.94,27.70,28.36,28.78,29.21,32.18,31.14,34.43,34.98, 35.47,36.00,36.58,38.77,39.09,40.38,40.70,40.81,42.21,42.62, 42.94,42.82,46.30,46.52,46.74,47.47,49.76,50.03,52.23,50.99, 53.34,55.10,54.82,54.95,55.98,54.74,57.74,58.76,56.77,59.55, 60.67,63.02,62.77,62.52,63.73,65.84,63.44,68.14,68.22,69.50, 69.02,71.56,70.69,74.96,76.11,74.29,74.20,75.67,75.57,77.42, 77.77,78.30,80.95,82.44,83.48,83.18,85.17,84.21,84.71,88.48, 86.08,87.88,89.06,87.98,90.43,91.27,93.78,91.32,95.31,93.94, 96.58,94.52,96.26,101.00,97.73,99.15,100.98,103.05,104.14,102.81, 104.63,105.72,106.17,108.66,107.75,109.05,112.39,108.98,111.17,114.60, 111.48,113.00,117.01,115.02,118.55,118.86,121.02,118.15,120.38,120.60, 124.08,121.65,126.08,124.86,121.59,127.13,130.66,129.59,125.70,129.59, 129.27,131.38,134.84,135.55,134.65,135.26,135.96,134.93,137.67,137.59, 142.65,144.30,138.09,140.44,140.69,143.00,146.72,146.22,146.25,147.07, 149.89,148.90,148.69,149.99,149.74,154.75,153.45,156.86,156.16,153.70, 155.84,159.58,159.10,160.88,161.09,161.68,162.98,163.46,159.91,164.78, 165.50,168.36,166.32,166.57,170.22,173.36,168.86,174.09,172.03,174.25, 174.46,176.45,179.15,175.48,177.96,177.51,176.63,181.46,180.78,180.12, 183.43,182.99,184.85,186.57,189.71,187.29,189.39,187.85,190.79,193.09, 193.08,193.61,192.31,195.59,192.96,195.85,194.30,199.54,200.38,198.49, 197.38,203.46,201.86,204.93,203.30,206.27,204.41,206.64,206.38,206.17, 209.64,210.50,212.14,208.60,213.61,214.22,212.96,216.94,209.34,212.90, 220.87,219.78,220.26,219.33,221.67,221.17,225.41,220.86,223.52,226.74, 225.18,229.28,227.48,226.21,230.91,229.58,228.49,230.17,233.38,234.34, 233.19,230.85,235.75,240.07,239.06,241.20,240.22,240.99,243.08,242.53, 240.79,242.77,243.22,243.51,247.72,251.80,246.11,251.06,247.38,251.13, 251.73,251.25,256.80,257.24,255.49,257.83,258.47,256.59,258.03,256.37, 7.48,8.15,9.12,9.31,11.22,11.43,11.62,12.57,13.48,13.75, 13.86,15.32,16.19,17.51,18.11,19.95,17.74,19.44,21.38,21.68, 21.20,22.91,24.22,24.47,25.40,26.86,25.71,28.61,27.42,29.47, 28.13,29.40,30.67,32.39,32.19,32.48,33.71,34.30,35.11,36.11, 37.35,37.15,37.70,38.42,40.19,38.30,40.67,41.24,42.27,43.79, 43.80,43.79,44.33,46.85,47.77,49.12,47.18,50.49,51.66,49.92, 50.14,52.41,52.59,54.28,54.22,55.79,55.75,57.19,58.03,57.48, 58.17,59.54,60.27,61.61,61.33,63.46,62.03,64.25,64.04,62.59, 63.29,64.54,66.60,68.33,68.19,68.41,71.00,71.38,69.73,71.93, 71.62,72.68,75.05,74.68,75.14,76.01,78.09,76.96,79.22,80.78, 81.19,80.52,81.36,81.59,84.53,84.40,83.28,82.89,81.95,87.99, 86.09,86.84,87.45,88.76,91.44,89.55,91.83,92.18,93.45,92.41, 93.60,96.00,99.51,96.52,96.80,98.92,98.65,99.92,101.38,100.96, 100.34,103.45,107.48,105.67,106.04,106.19,109.11,108.68,108.21,109.94, 106.58,110.31,114.18,109.84,113.64,112.52,112.73,116.69,114.98,115.32, 115.82,114.31,118.16,121.13,116.23,120.10,122.64,122.45,122.63,121.48, 124.38,122.28,126.99,124.11,124.54,127.35,129.52,129.60,129.76,133.43, 132.40,131.23,132.44,131.56,135.03,135.74,135.32,135.97,136.20,137.67, 137.47,139.57,142.39,138.18,139.61,137.92,145.33,143.22,143.44,146.36, 148.78,146.56,143.40,145.04,147.02,152.18,151.50,147.07,152.07,152.88, 150.13,151.90,153.45,151.41,156.71,158.65,157.88,156.98,158.25,161.00, 161.41,159.83,158.95,158.74,161.43,165.38,168.34,165.55,167.58,171.06, 165.63,170.86,170.49,167.50,173.83,167.82,173.08,176.25,177.18,174.43, 176.37,172.81,176.97,175.83,175.90,180.24,180.60,178.71,184.93,179.74, 182.53,178.87,186.71,184.60,188.57,185.99,188.27,187.76,187.98,191.56, 188.96,190.99,191.98,190.42,191.04,194.13,192.57,191.57,194.91,195.38, 196.81,197.51,196.11,196.03,200.54,201.53,203.00,198.42,203.64,199.30, 201.49,201.79,203.50,203.10,205.61,206.56,209.25,210.65,206.21,207.49, 214.59,212.69,210.80,215.09,216.44,214.23,218.03,220.01,216.87,215.70, 6.29,7.00,7.97,8.56,8.94,9.36,10.31,10.82,10.09,10.73, 13.11,12.85,13.85,14.28,14.80,15.87,16.48,15.90,18.06,18.12, 19.04,18.51,19.82,20.14,20.61,21.65,21.80,22.54,22.86,23.43, 24.47,24.50,26.85,25.15,28.17,27.45,28.73,28.50,29.87,30.93, 32.00,30.53,31.68,33.00,31.32,33.67,33.77,33.85,34.55,36.96, 37.53,34.76,38.93,38.56,37.94,37.42,40.39,40.72,41.69,41.09, 43.06,44.15,43.88,46.07,45.88,46.84,45.08,46.46,47.52,46.69, 47.45,49.59,49.80,50.18,51.36,52.10,52.25,51.89,54.33,53.38, 55.04,56.78,56.10,56.51,57.86,56.22,58.10,58.30,60.74,62.80, 60.92,62.31,62.07,61.91,64.59,65.45,65.56,64.81,67.61,66.24, 66.44,68.26,65.55,68.88,69.48,68.98,70.96,70.77,69.43,74.21, 72.50,73.94,74.69,73.68,76.21,76.30,78.75,76.79,77.08,79.66, 78.88,80.37,81.23,83.34,79.45,80.13,82.95,82.68,85.45,83.16, 85.61,85.49,85.37,85.02,87.33,85.28,89.05,89.96,90.27,91.08, 90.58,92.20,91.81,91.26,93.79,96.16,95.30,91.38,94.44,97.77, 97.78,97.47,99.99,100.71,101.90,100.03,101.80,102.68,102.29,100.81, 102.36,103.76,101.89,103.28,106.83,107.01,108.03,106.73,108.32,108.44, 106.92,109.30,110.16,108.73,112.52,110.67,113.58,114.06,116.89,115.36, 114.00,116.00,115.30,118.95,116.71,119.02,121.21,119.48,120.13,120.19, 119.22,120.70,121.23,123.76,125.12,124.74,125.40,127.64,124.09,126.28, 123.96,125.39,128.94,126.46,130.98,128.14,131.42,133.01,132.37,131.58, 136.87,132.30,135.92,135.28,133.87,137.78,140.10,134.73,136.02,139.93, 138.88,140.77,142.16,142.26,143.00,144.62,142.63,144.73,144.21,146.16, 146.81,149.69,145.71,143.72,147.44,148.58,146.58,150.39,150.52,153.10, 151.29,153.98,153.08,153.32,155.26,154.35,158.10,155.37,163.00,160.27, 157.55,157.92,159.09,162.29,160.39,161.47,160.53,163.48,163.10,165.01, 167.06,162.55,169.08,168.61,168.92,168.45,165.45,168.39,171.60,169.28, 167.67,171.89,169.37,172.29,169.19,173.79,176.83,173.28,172.88,173.62, 176.23,180.00,176.15,178.49,178.95,180.59,182.74,177.90,185.41,178.22, 4.50,6.46,5.88,6.22,7.49,7.47,8.16,8.71,10.05,9.35, 10.10,11.13,11.74,12.17,12.92,13.60,12.95,14.22,14.84,15.26, 16.02,14.91,16.44,16.30,16.73,18.27,18.62,18.15,19.66,19.56, 20.90,21.15,21.45,22.01,22.23,23.44,24.81,23.90,23.90,25.79, 25.63,25.18,26.60,26.40,27.54,27.86,29.11,28.51,28.26,28.97, 31.04,30.71,32.29,32.59,32.85,32.95,34.33,33.73,33.94,34.56, 35.63,36.33,36.68,36.95,37.39,37.92,39.23,39.16,39.13,39.63, 42.10,40.47,41.18,41.78,44.89,43.67,46.96,43.40,44.45,44.65, 45.18,47.53,48.44,47.27,47.51,49.08,46.99,49.71,50.02,50.17, 49.30,50.67,49.30,52.06,52.20,53.31,53.03,54.44,56.80,54.01, 56.62,56.30,57.23,57.26,57.80,58.21,59.70,57.31,61.17,59.74, 60.46,63.51,62.11,63.54,62.07,62.21,63.41,63.29,63.95,67.18, 65.97,66.09,66.76,67.51,65.71,68.59,69.37,72.43,68.81,70.39, 70.21,73.15,70.42,68.28,72.81,72.40,75.23,74.13,73.03,76.67, 75.93,76.19,76.63,77.43,79.60,77.23,79.94,80.52,80.20,80.08, 80.49,81.17,81.61,82.72,82.30,85.58,85.44,86.22,86.73,87.83, 85.86,84.36,88.09,85.85,89.56,88.26,92.28,88.23,90.80,90.48, 89.50,89.34,93.31,93.42,95.48,94.54,94.30,95.12,93.24,94.00, 96.26,97.65,98.93,99.36,98.94,102.36,99.27,99.39,99.71,98.43, 99.60,102.61,102.60,102.64,102.42,101.70,105.60,104.20,104.67,105.97, 105.13,106.89,107.97,105.79,109.20,111.46,107.38,108.62,111.27,108.09, 112.02,111.61,113.79,112.73,111.39,112.83,112.73,114.06,113.84,117.49, 118.91,118.38,117.44,118.89,119.31,119.94,120.78,117.53,120.71,122.97, 122.33,122.41,124.46,123.73,123.50,123.86,122.51,126.72,128.91,124.59, 129.36,125.11,128.93,127.91,128.32,132.29,129.02,130.78,133.14,130.53, 132.56,132.84,129.51,131.33,131.73,132.69,134.42,137.50,137.20,136.17, 137.98,137.44,139.21,138.33,140.17,139.60,139.73,140.19,141.43,142.74, 140.52,138.61,141.73,146.03,141.56,142.61,144.57,144.69,146.15,145.07, 147.47,146.70,150.38,150.77,150.37,146.19,152.78,151.34,152.96,150.18, 4.66,4.31,4.57,6.05,6.25,7.18,7.23,7.54,7.58,8.78, 8.86,8.62,10.03,9.58,9.94,10.01,10.72,11.12,12.85,13.36, 12.52,12.02,13.94,13.97,14.24,14.51,15.40,15.75,16.13,17.63, 16.98,18.51,17.95,18.20,18.90,20.01,18.74,20.31,19.88,20.90, 21.91,21.83,22.10,22.22,21.51,22.65,24.18,23.31,24.49,24.31, 24.86,27.03,25.20,26.53,28.22,27.49,29.10,29.97,29.62,28.54, 29.42,30.57,30.42,30.49,31.82,31.10,31.86,31.97,31.59,32.49, 32.53,34.14,34.85,33.69,35.05,36.76,37.10,35.80,37.15,38.12, 38.42,37.95,37.48,38.38,39.95,40.78,39.52,40.89,40.80,40.51, 42.92,43.14,41.90,44.09,45.33,44.99,44.52,44.84,44.90,44.50, 49.53,46.03,47.42,47.43,48.92,46.37,48.41,49.61,46.94,50.02, 51.83,50.22,52.70,50.96,54.04,54.61,54.70,54.22,53.82,55.37, 55.55,55.74,55.46,57.60,56.81,58.08,58.90,56.40,60.37,59.51, 58.79,60.66,59.45,58.45,61.79,60.98,61.26,61.62,62.38,64.62, 62.14,64.24,65.86,64.14,64.97,66.74,65.10,65.00,65.47,66.06, 67.09,67.67,66.32,71.37,70.49,70.55,69.93,71.83,70.04,72.54, 71.32,73.94,71.52,73.61,71.00,72.88,73.30,75.83,76.05,77.05, 77.52,77.89,78.69,76.99,80.69,78.31,78.43,75.95,80.67,80.12, 81.50,81.14,82.57,81.97,81.83,85.03,81.72,84.82,83.76,83.51, 85.45,83.03,86.07,83.89,89.53,87.62,87.86,88.83,86.97,86.75, 86.39,89.18,90.00,91.29,88.28,91.36,89.58,91.81,91.24,91.81, 91.78,90.31,93.44,89.65,94.83,96.61,94.93,96.31,93.43,97.26, 94.01,98.69,94.80,99.97,98.24,99.83,100.81,103.99,102.12,101.72, 99.16,102.12,102.82,102.71,100.12,102.25,100.03,104.24,103.00,104.17, 107.76,107.30,106.68,107.57,107.75,107.25,108.08,108.34,106.90,108.74, 109.36,112.79,113.71,112.42,112.37,113.49,112.86,112.47,112.61,114.45, 111.03,115.64,113.92,115.07,111.45,117.98,113.41,120.56,118.02,115.73, 119.12,117.77,119.74,117.14,120.77,120.97,117.33,119.94,121.19,123.62, 122.31,121.36,120.31,122.78,122.75,124.07,124.47,124.42,128.72,122.42, 3.52,3.85,5.22,4.52,4.84,5.86,6.14,5.74,6.70,6.99, 7.00,6.71,7.62,8.37,8.59,8.95,10.18,9.11,9.35,9.77, 11.22,11.20,10.80,12.89,12.60,12.43,14.71,13.18,14.43,13.56, 13.82,15.04,14.26,16.46,16.01,16.51,15.59,17.39,17.16,18.10, 16.32,17.19,19.29,17.68,18.01,18.65,19.47,18.85,20.75,20.96, 20.20,23.29,20.64,21.95,21.44,22.73,22.02,23.69,24.30,23.96, 23.81,24.79,25.74,25.47,27.21,27.78,26.63,25.77,28.73,28.05, 28.92,28.15,28.58,30.54,29.99,31.47,30.19,30.69,30.73,30.34, 31.37,32.47,31.58,32.23,31.77,34.30,33.58,33.32,35.63,35.95, 35.32,34.78,35.89,36.56,36.12,38.20,37.22,39.94,38.01,38.81, 38.71,38.38,39.11,40.80,40.83,41.59,42.68,42.14,40.38,41.49, 42.69,41.55,41.23,45.24,42.48,46.15,42.91,45.86,45.41,45.44, 45.02,46.04,47.06,47.63,46.08,47.33,47.94,47.36,47.68,50.15, 49.01,50.81,50.06,49.99,50.92,50.36,50.97,52.10,53.19,51.44, 51.85,53.01,52.81,52.98,54.17,53.71,55.35,55.01,56.34,57.60, 54.42,55.68,55.87,56.63,55.87,57.92,58.35,57.28,56.87,59.40, 58.81,59.88,60.89,61.36,63.88,58.86,61.96,61.84,63.35,61.48, 63.77,66.01,65.60,64.33,66.46,66.49,64.62,64.53,64.56,67.38, 67.35,66.62,66.75,68.46,68.66,66.83,68.35,69.26,69.94,68.53, 70.33,68.76,70.30,73.38,69.40,72.12,70.57,68.94,75.13,73.43, 71.70,75.10,73.20,72.55,74.17,76.21,77.63,77.51,75.69,75.95, 76.57,78.04,77.52,77.33,81.04,79.97,78.32,82.11,81.31,81.70, 79.35,76.95,79.18,83.98,83.86,83.66,81.57,84.78,85.79,84.43, 83.94,86.22,85.34,86.31,85.06,83.69,85.22,86.61,86.09,86.70, 86.08,85.05,87.15,89.12,92.91,88.27,88.13,89.92,89.88,89.87, 91.27,91.89,92.21,91.52,92.21,93.36,93.13,95.86,93.91,97.49, 94.78,92.61,96.75,99.03,96.28,93.34,96.26,96.66,95.41,97.86, 97.08,95.46,99.50,98.54,100.13,98.94,102.49,101.80,102.95,102.93, 103.50,103.32,101.96,105.63,101.41,103.69,104.23,102.27,102.59,106.87, 2.69,3.77,3.84,4.17,4.31,4.47,5.27,5.34,4.51,6.32, 5.92,6.04,6.41,6.56,6.42,7.17,7.38,6.76,8.64,8.62, 9.04,8.47,8.57,9.60,10.04,10.97,10.48,10.70,11.25,11.26, 11.49,11.65,12.43,13.06,11.77,13.86,13.62,13.01,14.29,13.94, 13.51,14.54,15.66,16.75,16.91,15.66,18.30,17.45,17.18,17.28, 18.32,18.67,19.04,18.49,16.91,18.98,20.01,19.90,20.39,20.34, 20.77,21.12,20.84,22.02,21.49,21.20,21.36,23.32,23.40,22.72, 22.07,24.75,23.01,23.26,25.57,25.14,25.15,25.35,24.80,26.79, 25.19,27.61,27.14,26.78,26.82,28.10,27.35,29.05,29.71,28.95, 28.42,27.56,29.88,29.26,31.90,30.87,31.23,31.23,31.39,32.80, 31.86,33.15,32.07,31.76,31.69,34.88,33.76,33.71,34.33,35.90, 35.15,34.99,36.10,36.57,35.72,37.26,37.70,37.85,36.57,37.17, 36.19,36.52,38.80,37.35,37.73,40.20,41.91,40.09,39.13,41.55, 41.74,41.56,41.00,41.16,42.17,43.32,42.11,41.77,44.11,43.13, 43.10,44.87,44.78,45.87,44.07,42.73,45.29,44.05,45.60,46.41, 46.42,48.14,48.60,47.88,47.79,47.71,46.77,49.56,47.72,49.51, 49.61,49.91,48.62,50.35,49.73,50.05,50.78,51.16,51.43,51.76, 53.22,50.94,51.70,49.63,54.73,51.77,53.59,53.55,54.12,54.37, 55.45,55.75,54.84,55.73,56.41,56.98,56.12,58.34,57.26,58.30, 56.95,59.02,59.09,58.93,59.78,60.23,62.13,58.32,61.26,61.86, 60.27,58.39,63.44,61.99,60.44,63.95,65.39,62.25,62.58,63.09, 64.03,64.92,63.73,65.77,64.25,64.88,66.11,67.31,66.85,66.55, 68.80,68.95,68.33,66.98,68.92,65.66,68.25,68.44,67.61,68.59, 68.58,71.56,69.36,70.36,69.97,70.43,70.87,70.44,72.24,70.67, 71.30,70.77,73.22,72.96,72.66,73.93,74.54,79.00,76.57,74.15, 75.16,77.18,77.28,78.36,74.63,75.75,78.95,76.10,79.85,79.21, 76.84,78.28,78.22,79.88,79.38,78.87,80.91,81.21,81.57,81.50, 83.45,81.53,80.98,80.45,82.34,82.84,82.17,82.41,82.69,82.50, 84.48,87.62,84.86,84.21,86.02,84.45,88.00,86.79,89.31,87.57, 38.45,41.88,44.18,48.61,51.53,57.41,60.13,63.00,67.05,71.19, 73.64,77.37,80.73,85.23,87.78,91.74,95.57,100.84,102.46,107.24, 109.59,114.65,118.59,122.41,124.54,128.53,132.34,135.36,140.67,142.57, 147.21,151.04,153.20,157.42,159.67,165.73,167.71,170.68,175.08,178.05, 183.66,186.80,190.73,193.79,198.68,199.88,204.28,207.32,208.94,215.86, 218.01,221.82,225.88,229.46,231.88,238.35,240.69,244.45,247.08,251.29, 255.76,258.24,264.98,267.94,268.24,273.10,280.22,280.32,285.18,288.73, 290.23,295.84,296.34,302.56,303.21,310.93,314.95,315.61,320.63,325.69, 326.78,331.75,336.30,337.39,343.34,345.82,349.97,352.98,355.13,355.96, 363.97,365.03,371.48,374.88,376.37,382.25,384.59,385.84,395.24,394.44, 399.75,404.93,406.12,412.08,416.95,418.87,419.96,427.75,431.76,433.76, 437.71,440.51,444.21,449.27,451.79,454.59,458.32,461.33,465.93,468.56, 474.35,474.29,475.74,482.50,489.59,490.74,490.58,499.37,499.49,507.60, 506.01,512.69,516.99,521.99,527.90,528.46,528.42,533.44,537.10,538.36, 548.13,550.70,553.22,556.02,557.14,563.50,564.25,567.24,576.38,575.82, 580.73,583.08,589.04,593.85,595.29,600.07,602.35,607.54,611.40,614.68, 619.10,616.93,621.31,624.07,633.02,636.81,635.87,644.76,648.79,646.18, 652.20,656.60,662.98,665.82,672.18,673.98,668.90,673.41,683.33,689.09, 686.42,693.32,699.44,703.55,703.49,708.61,710.53,717.12,717.92,723.99, 725.86,727.02,732.51,740.49,742.33,744.10,745.71,754.23,751.97,762.74, 760.78,764.68,772.79,773.19,772.07,781.78,781.42,787.62,791.94,794.05, 795.23,798.95,806.44,816.33,812.92,820.75,820.15,820.88,832.04,830.95, 839.45,837.79,842.42,844.13,849.89,854.60,858.15,859.60,861.64,871.08, 869.95,872.83,882.87,879.20,887.24,888.42,890.27,893.05,900.42,899.51, 908.12,914.07,919.57,920.10,919.45,927.03,932.21,934.43,936.56,940.74, 948.39,946.75,947.35,953.15,960.01,957.82,968.14,967.22,974.79,976.71, 976.02,982.85,982.40,989.48,992.73,991.81,1006.43,1004.21,1007.32,1015.38, 1016.40,1017.90,1021.77,1025.17,1025.72,1028.59,1039.72,1040.04,1044.57,1046.15, 1051.03,1060.05,1060.19,1065.06,1063.70,1071.51,1073.65,1074.26,1079.66,1082.72, 32.36,36.08,38.59,41.81,45.90,48.50,51.98,54.45,58.70,59.65, 64.51,66.81,70.44,72.44,77.49,80.81,82.21,87.56,89.03,91.97, 95.33,99.26,100.33,105.98,107.05,111.43,114.99,116.02,122.63,124.14, 129.53,129.03,132.72,136.07,137.79,140.50,147.42,148.06,152.24,153.91, 158.74,161.09,164.99,165.58,171.79,173.01,178.00,178.08,182.14,184.83, 189.80,193.06,197.32,198.93,203.65,203.21,207.84,213.44,213.71,220.64, 222.06,225.60,228.64,229.77,234.41,235.65,240.14,242.71,244.09,250.42, 250.53,256.21,259.29,262.51,264.46,269.48,271.81,273.99,276.69,282.36, 283.05,286.95,290.96,290.34,297.98,300.32,305.70,306.08,305.38,312.87, 314.65,318.71,322.06,324.59,329.10,331.64,336.56,335.73,340.40,341.90, 348.70,347.73,350.68,353.46,359.91,362.85,364.58,368.75,371.70,375.81, 378.76,380.63,384.45,390.00,388.61,392.64,400.37,402.04,399.86,406.48, 408.11,415.63,417.23,417.89,419.79,426.83,429.98,431.00,435.48,435.99, 438.17,445.04,448.60,452.42,451.43,457.45,459.40,466.26,465.84,471.41, 470.43,477.42,474.81,480.29,489.47,490.60,491.74,494.83,495.09,502.45, 504.65,503.69,509.39,513.23,517.54,520.15,521.31,527.78,529.62,533.51, 535.07,541.52,543.46,544.54,547.67,551.29,553.16,554.71,561.64,566.87, 564.21,571.81,573.82,572.74,579.47,580.93,582.20,587.25,593.79,596.20, 599.01,601.62,607.17,606.82,607.01,616.53,620.74,619.81,626.44,623.89, 625.10,632.52,635.45,637.62,646.77,647.43,648.36,654.38,655.21,659.71, 664.79,664.73,668.66,668.57,669.97,675.28,685.80,683.06,685.44,691.37, 689.96,690.89,696.36,697.30,703.72,708.22,711.05,709.57,717.35,720.37, 724.07,723.27,729.46,736.12,738.61,736.63,739.14,744.74,751.60,752.50, 750.00,758.67,760.60,759.52,764.06,766.40,775.82,774.77,785.83,790.00, 789.90,787.12,790.62,793.84,799.47,798.32,799.10,804.10,807.10,813.57, 813.00,820.17,824.93,828.96,830.65,833.96,839.86,838.00,845.08,846.73, 850.37,850.38,857.11,855.51,864.07,866.03,869.68,867.37,877.06,878.37, 877.82,880.61,885.46,891.98,890.76,900.18,902.29,898.08,904.00,908.00, 914.48,914.23,916.79,922.80,917.98,926.58,935.28,936.99,941.80,941.00, 27.85,30.96,34.46,36.40,38.96,42.18,45.01,47.04,49.85,53.19, 54.81,57.72,59.82,64.03,67.51,67.60,71.39,73.74,75.82,78.92, 81.85,86.04,87.72,89.30,95.14,94.26,100.31,101.94,105.77,106.56, 109.72,111.79,115.06,117.60,118.48,122.04,125.94,127.05,131.88,135.04, 134.72,137.51,141.25,142.92,147.64,148.68,152.74,156.81,160.12,160.59, 166.19,165.26,168.76,173.56,177.25,177.12,181.94,181.65,183.21,189.59, 193.72,194.92,193.21,199.23,200.87,207.63,209.29,208.60,211.91,214.88, 216.88,222.63,223.45,227.22,226.75,232.47,231.38,234.86,238.05,243.19, 246.78,246.53,254.20,250.10,255.57,259.31,261.74,260.14,267.08,267.15, 275.58,273.51,279.15,282.09,282.99,282.95,288.63,288.31,293.58,296.41, 298.80,298.96,301.92,307.63,311.78,313.01,315.14,319.38,322.65,323.82, 322.25,329.19,331.92,337.54,337.96,337.77,342.52,345.65,351.10,348.13, 349.08,357.73,358.83,364.17,365.41,369.72,366.20,371.96,372.52,378.43, 379.72,381.25,382.65,389.44,390.21,396.30,393.15,394.01,404.86,409.11, 410.92,404.73,408.73,415.16,418.64,418.63,425.06,428.18,429.17,433.14, 440.14,440.19,440.49,444.74,447.16,448.92,446.35,454.97,456.06,459.88, 463.84,463.91,469.42,467.63,475.15,471.22,477.88,479.15,480.88,484.36, 490.75,493.61,496.50,497.56,502.14,499.33,506.50,508.20,512.67,515.37, 517.13,516.83,522.18,525.92,522.68,529.15,532.63,539.40,538.01,540.21, 543.68,550.95,553.09,552.39,551.62,556.30,558.38,559.83,562.60,571.31, 571.10,572.59,577.50,579.83,577.45,582.73,586.64,588.76,595.08,595.42, 596.51,598.08,601.24,603.06,606.42,609.90,617.15,608.15,621.92,624.26, 622.71,625.69,632.75,628.40,637.39,638.60,635.34,641.69,643.00,646.97, 654.40,657.38,652.01,651.90,666.81,661.73,668.54,668.40,678.41,680.11, 679.97,677.54,686.49,686.36,688.78,692.05,691.48,701.86,700.38,697.88, 704.40,706.87,709.31,717.75,720.02,717.62,722.80,723.34,724.83,727.62, 736.39,732.03,740.69,744.26,745.76,746.98,752.37,756.11,753.81,758.26, 761.24,761.84,765.79,768.58,771.72,774.61,777.81,781.37,780.61,782.56, 790.30,790.54,792.37,801.52,799.60,806.06,803.47,810.18,805.75,814.45, 24.66,26.64,29.84,32.45,33.97,36.90,38.62,41.05,43.31,44.59, 47.21,51.07,53.18,56.20,58.05,58.44,60.06,62.07,65.71,68.49, 70.72,73.83,76.55,77.15,82.50,82.22,85.87,87.05,89.59,92.01, 94.47,96.64,99.20,101.52,103.48,107.18,108.76,110.16,112.08,114.37, 117.54,118.50,120.87,122.84,125.76,129.19,132.62,131.04,136.02,138.13, 141.40,143.55,146.89,150.61,150.05,153.97,152.82,158.06,159.13,160.98, 164.88,166.45,167.82,173.80,173.84,178.07,178.09,179.00,182.86,185.78, 188.47,191.29,191.81,197.26,196.13,200.13,200.58,201.65,204.15,207.24, 212.29,213.31,216.49,218.36,218.49,221.26,225.70,225.52,229.40,229.60, 231.72,238.66,240.32,239.66,242.75,246.65,248.14,250.86,251.64,254.19, 257.54,261.31,265.62,263.26,265.00,268.56,269.96,273.00,271.12,280.45, 281.50,284.69,285.24,286.57,286.43,290.89,296.19,293.50,299.05,298.74, 301.29,307.14,311.29,312.95,311.91,316.59,320.07,319.40,320.30,325.98, 323.02,328.50,332.11,336.06,338.14,337.48,339.59,342.35,350.16,346.10, 350.00,352.33,353.77,357.98,354.84,361.74,365.03,364.47,372.89,372.54, 375.88,370.69,379.96,383.56,382.22,384.25,386.79,389.36,391.85,391.89, 400.87,402.34,400.86,405.64,407.54,411.47,410.55,414.31,418.69,419.66, 418.26,424.62,429.78,427.38,426.04,431.35,436.70,438.13,439.51,443.76, 443.17,446.73,449.17,453.37,451.55,454.35,459.19,461.10,461.14,464.53, 463.95,470.80,474.64,472.35,473.26,476.61,483.30,479.47,485.24,489.36, 491.42,492.70,494.87,496.99,497.89,502.01,505.21,506.82,508.90,510.58, 513.61,514.13,519.82,517.87,527.45,526.47,529.23,530.88,526.33,531.34, 537.68,545.50,546.71,543.37,550.66,547.78,555.94,556.40,556.24,564.07, 558.55,562.27,568.61,569.16,567.24,569.20,577.81,573.75,577.03,576.34, 586.40,588.21,589.32,585.95,592.25,591.77,597.55,607.31,602.76,601.00, 606.43,609.65,608.70,612.19,620.40,614.39,617.03,624.06,623.05,627.83, 631.31,633.06,637.55,638.94,635.54,641.65,640.72,639.80,644.99,650.94, 650.11,651.08,660.57,663.12,660.78,663.47,668.21,673.73,670.64,676.57, 671.23,683.68,687.30,683.56,685.30,686.81,692.97,692.80,690.31,701.36, 19.43,24.24,25.36,26.49,27.99,31.13,32.53,33.71,36.08,38.69, 39.66,43.07,44.55,47.65,48.47,50.34,52.17,55.34,55.88,57.42, 60.29,62.08,64.15,67.70,68.85,69.21,72.65,73.72,75.36,79.50, 80.93,81.89,83.94,87.17,88.95,91.33,95.46,93.38,99.06,98.07, 101.28,102.92,103.66,107.41,109.20,108.20,111.66,116.40,117.00,118.04, 122.34,123.47,123.84,127.88,128.76,131.72,132.91,133.01,135.89,138.75, 138.19,143.14,144.01,146.86,149.28,152.07,153.68,157.56,158.58,159.75, 160.25,165.75,163.48,167.10,170.48,173.23,171.19,175.17,175.72,178.59, 179.75,184.66,185.56,184.70,190.19,190.38,192.29,196.85,194.47,198.38, 200.94,202.54,203.47,207.25,208.80,217.85,213.19,216.59,216.12,219.19, 223.57,222.06,224.41,224.78,229.44,232.42,231.84,235.35,239.20,236.95, 238.13,245.18,247.37,248.29,246.66,245.81,254.96,256.17,256.54,258.78, 262.79,263.95,265.58,268.75,268.78,272.84,275.11,271.66,274.21,279.44, 280.80,281.49,285.95,281.38,287.17,290.22,290.62,290.10,296.12,298.09, 301.57,299.65,301.43,303.08,307.23,313.09,312.36,315.85,313.91,319.10, 317.62,322.82,322.16,324.84,327.56,327.77,332.82,334.48,333.37,340.36, 339.51,340.70,350.84,345.25,347.30,347.82,355.32,352.50,356.63,359.81, 359.78,366.43,367.38,368.13,369.60,369.56,370.25,374.19,372.75,381.76, 381.82,380.01,380.60,389.31,388.39,387.57,389.52,392.26,398.44,397.75, 399.83,403.03,398.16,406.46,410.95,411.93,414.67,411.25,417.27,418.32, 417.41,423.08,423.26,424.77,424.85,431.19,435.02,429.69,436.59,436.82, 440.06,444.18,443.73,447.07,442.89,450.79,453.36,452.98,457.83,453.78, 460.52,460.02,466.29,469.83,465.16,469.94,472.05,472.09,477.02,478.25, 474.32,477.92,486.95,486.11,488.55,492.05,489.63,493.03,495.90,498.45, 498.71,504.55,507.27,509.58,512.20,511.47,513.54,513.29,511.62,517.27, 520.88,526.35,527.79,528.48,528.52,531.85,529.89,536.66,534.10,539.96, 539.70,543.97,544.91,547.73,553.65,549.38,554.75,556.36,556.60,558.60, 558.11,564.37,563.13,569.39,567.75,570.40,566.17,574.85,572.39,581.23, 582.27,583.58,582.80,588.46,588.43,593.92,593.27,593.58,597.77,597.33, 17.41,19.77,20.73,22.13,25.05,26.55,27.91,30.06,30.24,32.73, 33.70,38.18,38.73,40.24,41.27,44.26,45.54,46.38,48.04,51.00, 51.51,53.71,55.42,57.04,58.88,61.61,62.58,62.84,65.02,65.89, 68.87,70.67,72.83,75.64,75.97,76.89,79.13,83.74,82.44,83.43, 85.08,87.26,88.65,91.88,92.87,93.07,96.39,97.05,99.39,100.64, 101.71,105.80,105.96,111.02,110.43,111.17,114.69,114.58,116.66,120.95, 116.43,120.11,123.41,124.98,125.78,129.09,129.19,132.42,133.60,138.09, 135.10,139.72,140.95,143.52,144.69,142.65,145.13,148.65,151.00,151.41, 154.21,154.66,160.31,162.52,158.35,164.91,161.59,166.61,167.89,170.82, 171.01,172.67,176.15,176.64,178.91,178.73,180.36,183.91,183.71,184.32, 186.90,189.92,192.94,192.36,196.59,193.68,199.14,200.50,199.49,200.81, 203.62,205.43,207.90,212.99,210.51,213.59,215.28,216.27,217.76,224.04, 221.52,225.12,222.74,229.37,229.41,229.05,232.38,234.57,234.49,238.99, 240.48,242.07,241.18,245.26,247.71,247.95,247.03,254.46,254.14,258.72, 256.31,259.99,263.68,261.68,263.20,265.11,264.82,269.71,270.39,275.25, 271.33,277.13,277.18,278.16,282.00,282.97,283.19,286.82,288.26,289.82, 291.44,291.89,289.77,293.50,296.12,299.25,303.44,305.30,303.65,303.30, 304.98,307.65,311.74,312.52,311.31,315.42,317.47,318.78,323.20,321.86, 324.01,329.83,330.04,327.28,333.66,333.11,336.22,335.86,339.37,343.68, 340.94,345.05,346.87,347.95,348.52,345.20,351.50,352.70,358.94,363.62, 361.50,359.86,363.23,364.12,366.33,365.26,372.36,370.06,373.31,372.63, 378.80,375.30,376.56,383.05,383.01,382.23,385.63,388.46,388.78,385.83, 390.69,393.38,399.13,397.92,398.25,400.95,407.23,403.04,407.66,407.66, 407.29,416.76,411.57,413.53,411.53,419.42,421.21,417.40,424.23,425.27, 433.73,424.57,430.77,430.38,437.58,433.25,439.07,437.10,442.63,444.06, 444.89,444.53,446.47,448.28,450.94,452.81,454.62,453.96,459.31,459.14, 456.84,459.36,465.52,466.00,462.94,472.49,467.76,476.70,473.33,478.39, 479.93,479.02,481.31,482.69,486.85,482.79,488.79,486.01,493.51,490.56, 493.52,491.52,497.26,502.21,502.00,509.06,505.84,506.46,510.11,511.62, 15.29,17.28,17.61,19.91,20.06,22.51,24.07,25.51,25.90,27.90, 31.03,31.47,31.38,35.46,36.03,35.57,39.64,39.69,40.25,42.18, 43.30,45.09,47.53,49.13,50.68,52.43,53.67,54.49,56.86,58.08, 58.38,62.04,62.04,62.70,64.84,65.01,69.18,69.47,71.52,72.52, 72.72,75.45,75.99,77.08,77.94,81.08,81.32,83.35,85.58,86.19, 87.02,90.31,90.30,91.64,92.83,96.87,96.99,99.39,100.53,101.44, 102.48,105.49,104.05,108.39,106.26,109.16,111.92,112.07,112.03,114.07, 117.19,117.77,118.66,121.49,121.41,122.67,128.06,126.34,128.51,129.53, 131.03,133.59,135.35,137.04,137.49,136.75,137.68,143.01,140.26,144.21, 141.70,146.09,146.78,148.98,150.12,152.64,155.49,157.14,157.99,158.47, 161.92,162.98,160.57,162.30,165.29,166.87,168.81,171.23,172.38,174.83, 176.60,175.66,179.41,182.41,180.64,181.15,183.43,184.64,187.47,188.88, 186.49,188.92,193.86,196.34,197.44,194.57,196.40,198.74,202.12,201.59, 205.95,208.41,205.86,206.60,206.40,210.12,213.59,215.02,218.54,215.07, 218.11,224.05,222.34,222.13,223.50,226.74,229.61,227.68,229.35,232.13, 234.28,233.54,236.04,238.09,237.01,241.99,245.24,240.07,243.61,246.81, 250.53,247.41,248.60,254.07,255.31,258.74,260.44,261.19,256.04,262.30, 263.40,261.49,265.75,269.52,268.64,265.70,269.29,270.62,273.06,272.09, 275.19,281.85,276.38,284.44,284.18,283.65,287.42,285.06,288.96,289.87, 292.28,291.16,289.90,295.49,299.38,301.86,303.30,301.16,303.09,304.91, 302.74,302.44,307.40,308.49,307.98,312.76,314.49,314.50,319.72,315.60, 322.53,318.74,322.23,321.40,329.42,325.38,330.37,331.34,336.11,333.32, 335.14,338.21,333.94,336.54,338.51,340.92,339.35,350.84,347.52,346.77, 346.24,352.41,353.57,349.58,357.50,360.52,363.72,355.85,359.55,365.49, 367.16,366.75,368.65,367.88,367.93,367.17,371.12,373.58,374.71,376.50, 378.62,383.45,378.34,378.18,384.59,381.12,390.55,387.63,389.63,392.36, 394.44,397.88,400.11,395.24,397.61,404.06,401.65,403.11,406.62,408.30, 403.44,403.50,407.81,413.51,412.04,413.19,417.87,415.04,418.27,421.54, 422.78,425.47,426.64,424.14,427.91,430.76,432.16,434.32,436.69,435.26, 12.91,13.75,15.07,16.09,17.36,19.04,20.25,21.12,23.51,24.48, 25.78,27.07,28.39,29.73,30.88,31.10,33.13,33.40,34.30,35.36, 38.22,39.64,40.30,40.48,42.71,43.62,45.52,46.05,48.31,48.63, 49.06,50.91,51.95,50.52,56.18,56.66,57.09,59.21,61.20,60.22, 62.91,63.97,63.97,67.19,68.52,68.90,70.19,71.87,70.68,73.30, 74.86,74.50,75.88,79.21,79.65,80.91,82.76,83.83,85.25,86.56, 86.60,88.10,89.31,91.98,91.55,93.20,94.78,93.72,97.29,100.23, 100.14,99.42,103.36,102.99,102.77,106.11,107.30,106.51,105.31,111.01, 109.99,114.05,115.65,115.03,116.27,115.09,121.73,121.73,120.57,122.61, 124.67,123.21,127.89,128.06,128.61,129.87,134.42,133.61,135.21,134.44, 135.16,135.52,142.09,139.90,141.49,143.02,145.58,144.06,148.20,148.30, 149.12,149.55,151.70,151.10,152.86,154.79,158.04,155.77,161.96,161.68, 160.20,162.11,162.04,163.87,167.70,166.19,169.28,170.41,174.35,170.01, 174.27,174.79,179.44,182.46,178.20,183.80,182.00,182.70,185.68,186.06, 184.04,188.73,192.56,190.62,189.17,191.94,192.77,192.40,193.42,196.06, 196.86,200.06,198.95,199.44,200.27,205.24,205.98,204.27,207.42,209.93, 211.41,214.74,211.54,213.52,216.13,216.93,216.94,218.88,222.07,221.00, 223.71,224.42,225.74,230.46,227.53,231.15,234.14,231.12,234.34,234.46, 237.28,239.91,238.83,235.06,236.92,239.55,240.51,247.57,247.68,247.38, 250.31,247.59,249.52,251.17,252.42,250.98,257.56,257.66,259.84,258.34, 263.50,261.54,261.39,263.13,263.42,268.87,267.80,269.02,267.60,269.80, 276.15,274.39,279.31,276.15,276.47,276.60,278.55,280.72,280.86,279.60, 280.35,286.64,286.61,285.62,290.93,292.20,289.65,291.57,296.55,293.94, 298.07,296.37,298.01,303.27,304.46,302.30,304.68,308.56,306.67,307.55, 311.69,310.31,310.93,309.21,315.93,313.24,315.75,317.71,316.45,314.78, 324.08,321.10,321.99,325.84,329.51,323.99,328.99,330.54,329.32,334.68, 334.92,338.84,336.70,334.37,340.17,340.82,341.28,337.14,350.00,341.71, 346.60,352.41,346.10,348.61,349.62,352.21,351.52,353.29,355.16,357.60, 357.39,360.72,359.80,359.89,364.61,366.92,365.79,363.27,371.21,368.65, 11.07,11.64,13.84,13.37,14.69,16.31,16.77,18.38,19.09,19.92, 21.19,22.48,23.64,25.78,26.35,25.35,27.55,28.45,29.69,31.61, 33.57,32.57,34.62,34.88,35.21,37.81,39.53,39.10,40.44,40.62, 42.34,43.99,45.56,45.14,44.72,48.60,49.29,48.58,49.97,50.01, 52.27,53.63,54.10,57.75,56.81,58.22,59.50,60.94,61.07,60.17, 61.21,63.21,65.71,65.88,65.27,67.52,70.24,70.27,71.91,73.07, 74.50,74.88,79.28,77.53,77.42,77.61,79.34,82.56,79.59,84.75, 88.09,86.45,86.78,86.98,88.53,89.14,90.99,91.70,91.41,92.58, 94.25,94.46,95.79,97.17,97.00,101.28,100.03,103.82,104.23,104.07, 105.24,107.03,106.08,108.26,108.70,109.41,111.65,112.54,112.74,115.58, 114.75,116.86,116.72,117.53,118.30,119.20,122.91,120.32,123.36,123.12, 127.28,125.21,130.54,131.83,130.80,131.59,132.28,133.64,137.00,135.67, 134.08,139.65,135.82,139.31,138.93,142.58,142.04,144.10,144.50,148.48, 147.25,149.09,149.07,153.25,150.58,151.56,156.19,155.75,157.30,156.10, 158.91,158.49,158.68,162.16,161.92,165.56,163.00,165.06,165.95,167.21, 165.09,169.82,170.26,167.24,170.25,176.12,173.96,174.19,179.60,176.71, 180.49,180.91,179.21,181.28,181.42,184.38,184.79,184.80,188.04,188.16, 187.18,189.80,190.68,191.37,192.33,196.24,193.77,192.70,195.27,198.66, 197.27,200.87,203.30,206.38,203.54,205.00,207.68,209.26,209.73,210.64, 213.63,212.15,209.05,211.45,215.61,215.76,217.10,217.69,217.71,219.24, 221.60,222.46,220.24,225.50,227.79,225.27,227.38,227.31,228.11,231.83, 230.25,230.41,232.13,233.13,234.91,237.00,234.94,237.68,238.54,242.81, 241.10,239.79,245.14,245.32,247.31,248.30,248.81,250.01,248.12,250.48, 256.31,255.35,251.84,257.66,255.59,257.25,258.35,256.71,257.08,257.28, 262.02,268.75,267.05,262.51,266.33,272.48,270.13,270.34,273.12,270.80, 271.94,277.77,276.71,276.06,277.44,275.79,276.99,281.25,279.89,279.88, 284.38,283.93,282.52,285.05,291.35,284.08,291.75,295.89,291.17,297.21, 292.80,290.98,300.67,298.71,300.86,298.83,297.60,301.25,302.32,304.76, 304.35,310.27,306.52,303.53,313.78,312.20,311.23,308.82,313.13,314.68, 10.43,9.93,11.09,11.60,12.56,13.44,14.79,15.97,17.07,17.69, 17.60,18.71,20.45,21.00,22.14,22.01,24.50,24.70,25.91,27.16, 27.59,27.63,28.22,28.44,30.85,31.92,30.88,32.55,34.52,34.79, 36.48,35.89,37.91,37.26,38.91,39.96,41.42,43.58,43.07,44.13, 43.92,46.55,45.28,47.97,46.80,49.43,49.14,50.99,52.48,52.63, 53.36,53.84,54.85,54.10,57.01,58.84,59.88,60.12,63.12,60.82, 63.89,59.70,64.17,64.86,65.52,66.97,68.13,67.60,69.42,68.83, 72.13,73.26,73.64,72.74,73.84,77.68,75.41,76.71,80.63,78.88, 78.65,81.24,82.10,81.17,82.34,84.89,86.30,87.10,85.50,87.95, 89.75,90.63,91.99,92.81,92.60,94.31,93.37,94.69,95.66,94.47, 98.88,98.80,99.53,101.34,101.62,101.86,103.44,103.05,103.14,107.29, 106.93,108.45,107.66,107.09,110.21,110.08,112.46,115.05,114.57,117.45, 117.59,118.55,120.89,117.75,118.21,120.22,118.95,122.89,117.51,123.01, 125.50,124.97,127.32,128.28,127.57,129.98,129.09,131.12,133.10,135.99, 133.80,137.19,134.00,137.30,139.98,139.12,139.91,141.43,136.52,139.82, 144.76,139.16,145.92,147.16,145.83,146.41,149.29,149.83,148.43,149.46, 149.33,150.67,152.75,154.70,154.15,154.73,155.41,158.79,156.92,157.55, 163.79,160.82,163.16,162.17,163.50,165.03,165.69,165.05,167.77,165.39, 170.13,169.29,171.28,171.17,171.75,173.35,171.53,172.24,175.39,175.29, 179.00,180.49,179.18,174.96,177.33,180.59,184.95,184.68,181.71,184.96, 184.62,183.31,185.62,186.71,192.65,191.23,188.86,194.80,196.06,195.62, 194.06,198.97,202.08,199.22,199.89,202.87,198.23,198.65,202.59,203.01, 205.20,207.15,205.24,207.98,204.50,209.47,209.87,210.21,211.93,212.30, 214.94,215.96,215.09,216.18,216.00,217.39,215.84,219.52,220.25,218.98, 223.49,219.04,222.34,224.96,224.28,227.91,229.68,232.95,227.14,226.84, 227.66,235.22,236.17,233.35,238.38,238.15,234.88,237.61,234.38,241.15, 242.61,242.11,240.24,240.33,241.94,244.33,247.93,248.54,245.48,250.71, 248.23,248.10,244.53,248.10,247.10,255.45,255.61,248.99,258.67,258.19, 257.48,257.12,257.12,260.89,264.55,263.47,261.67,257.96,266.20,266.94, 7.97,8.95,9.76,10.08,11.40,11.85,12.37,13.53,13.46,14.84, 16.37,15.87,17.26,17.78,18.74,19.70,20.23,21.86,21.64,22.51, 22.59,23.69,24.97,24.90,26.03,26.07,28.24,29.52,29.36,29.80, 30.25,30.81,32.34,32.46,33.86,35.63,34.03,34.60,36.40,36.34, 38.47,38.30,39.13,39.67,38.12,40.95,43.23,41.84,44.31,43.80, 45.43,45.67,46.82,47.48,47.63,48.72,50.03,51.14,50.69,50.66, 52.20,52.24,51.34,55.27,55.09,54.62,56.83,59.85,58.59,57.91, 60.41,61.93,63.03,63.26,62.53,64.13,65.18,65.17,64.88,66.55, 67.36,68.88,68.93,67.50,71.25,73.66,71.94,73.49,74.46,71.87, 75.96,76.80,77.54,73.75,77.32,79.30,78.93,82.88,82.39,83.21, 82.63,84.13,85.19,85.09,85.65,88.37,86.60,88.40,89.27,88.17, 90.83,89.73,90.19,94.29,93.86,91.11,97.17,92.58,95.92,97.83, 97.28,99.10,99.91,100.44,100.48,99.87,105.00,104.62,101.25,105.11, 105.31,106.73,105.79,105.51,108.20,109.37,107.51,109.38,113.69,113.50, 112.22,112.55,114.86,113.07,116.75,115.62,117.49,118.19,120.75,122.41, 120.72,121.59,116.05,122.11,120.97,124.36,121.70,126.78,125.47,129.13, 125.17,130.13,130.03,130.04,130.79,131.49,129.96,134.18,133.46,133.27, 135.14,135.90,137.00,134.45,139.53,139.52,137.86,139.67,140.14,145.46, 145.08,142.35,145.02,142.41,145.49,148.10,148.12,151.82,148.55,147.49, 149.96,152.93,152.63,154.00,153.29,151.28,153.89,155.02,156.09,156.26, 158.58,158.99,162.17,157.39,161.80,158.26,161.44,164.21,160.57,163.67, 165.98,164.12,166.57,167.33,168.12,168.56,169.48,169.17,169.62,171.87, 172.00,169.13,174.97,174.40,174.72,177.46,177.31,180.56,178.25,175.61, 179.44,179.11,181.31,184.46,185.68,183.48,180.84,188.92,187.91,186.35, 187.26,188.01,194.01,190.17,189.54,191.66,193.76,191.87,195.35,196.11, 194.39,196.36,198.54,198.60,199.90,200.35,198.79,197.62,198.90,202.73, 200.94,202.07,205.56,206.18,203.27,207.03,207.12,208.60,210.47,209.66, 211.12,208.97,216.53,215.70,210.23,213.69,213.58,217.80,216.86,217.32, 215.93,219.28,218.25,218.24,223.38,223.04,219.69,222.24,224.38,221.59, 6.56,7.12,8.17,8.80,8.23,9.81,10.23,11.72,11.78,12.33, 13.24,13.32,14.51,15.52,15.72,15.73,15.54,17.60,17.79,17.39, 19.68,19.14,20.16,21.65,22.43,21.19,23.80,22.86,23.89,23.94, 25.07,27.92,29.18,27.63,29.45,26.94,29.39,30.86,29.86,31.86, 31.64,32.39,32.17,34.41,33.77,34.34,36.81,36.16,37.87,38.70, 39.01,40.84,40.70,40.11,41.46,41.53,42.84,41.27,44.29,43.74, 44.05,46.95,44.33,45.38,46.69,46.02,49.36,48.05,49.21,49.59, 49.83,52.35,51.95,53.18,53.62,53.24,54.06,56.58,55.33,55.08, 56.67,55.36,59.06,59.68,61.40,60.56,60.81,61.71,59.95,62.52, 62.49,67.89,63.95,64.99,65.93,64.18,66.63,65.91,66.41,70.50, 71.54,69.34,71.45,69.72,73.20,76.25,74.83,71.63,76.37,76.63, 76.55,77.39,78.37,78.60,79.97,80.17,80.28,79.86,83.03,82.77, 82.95,84.03,84.42,85.89,83.10,83.34,83.54,86.82,84.72,87.56, 86.89,85.65,91.06,88.70,94.62,91.83,91.75,92.70,93.77,93.06, 93.48,95.73,97.20,95.91,98.60,96.02,100.49,100.32,101.24,101.19, 101.13,103.90,101.34,107.28,106.83,105.04,107.52,105.00,105.94,104.11, 110.28,109.85,109.31,110.54,112.05,110.42,109.71,112.36,110.61,114.69, 114.84,117.34,112.93,112.63,114.81,114.65,118.32,121.61,118.97,118.26, 122.47,122.66,123.03,122.00,123.58,123.63,125.86,123.59,124.63,124.66, 125.48,127.81,126.00,131.64,130.26,127.25,131.32,131.95,134.07,135.25, 134.99,135.59,133.24,133.33,134.14,135.23,137.71,135.17,136.94,140.48, 137.00,139.80,140.84,140.91,140.82,143.22,144.69,143.15,141.98,142.75, 147.42,145.79,145.90,149.25,151.55,147.52,148.27,148.63,149.15,151.06, 152.55,155.20,152.89,152.88,154.96,153.16,157.49,156.49,160.89,159.74, 156.56,160.28,160.64,159.00,165.29,161.63,161.35,163.74,164.39,166.14, 165.86,161.00,164.69,165.69,166.75,165.24,165.89,168.44,167.02,172.52, 170.81,171.27,177.26,171.75,175.22,177.36,176.13,176.75,177.38,178.95, 175.73,175.06,179.52,177.19,181.19,180.11,181.79,180.96,182.66,181.03, 184.95,184.65,185.13,187.44,187.16,184.51,184.27,188.83,191.74,191.15, 5.56,5.87,6.76,7.64,8.18,7.82,8.84,8.22,10.16,10.88, 10.36,11.64,12.41,12.78,13.44,13.72,14.37,15.07,15.08,15.54, 15.34,17.51,17.80,16.37,17.52,18.70,19.17,19.45,20.11,20.00, 21.71,21.92,23.18,22.96,24.26,23.99,25.19,24.04,24.13,26.94, 26.63,27.99,28.72,28.45,28.73,30.98,29.46,31.33,32.18,31.94, 32.91,33.13,32.65,32.06,33.92,34.68,37.40,35.19,35.96,35.89, 36.42,37.66,38.85,38.29,40.15,40.18,38.96,40.21,43.07,41.82, 43.11,42.89,44.81,44.49,45.99,45.53,48.30,47.13,46.53,46.84, 48.37,48.71,49.33,49.59,51.29,47.40,48.94,50.65,53.38,54.06, 52.38,53.72,54.58,56.27,56.30,55.66,57.28,56.74,57.91,59.31, 58.87,59.23,61.01,60.12,60.79,60.42,62.88,61.59,63.34,62.93, 63.24,63.52,67.73,65.45,64.83,67.92,66.92,66.94,68.51,68.01, 69.75,70.21,72.28,67.98,70.86,72.29,73.18,72.87,73.94,76.05, 77.45,73.89,75.72,76.29,78.78,77.59,77.12,77.45,81.25,77.64, 80.54,81.66,82.36,79.57,77.83,82.66,82.06,88.14,84.61,85.77, 88.20,87.63,81.47,84.29,86.68,87.80,86.97,90.90,93.49,91.13, 88.56,94.04,92.72,93.34,93.07,94.54,94.59,92.86,94.10,95.52, 97.56,99.42,97.13,96.51,100.60,96.14,97.84,100.80,102.27,102.80, 102.23,99.86,102.27,99.59,104.86,105.58,104.98,105.72,105.39,103.44, 102.94,106.98,111.31,110.05,110.51,108.71,111.95,111.21,108.95,112.36, 110.51,112.32,115.17,113.61,113.88,114.12,112.91,117.18,120.23,117.25, 118.92,116.16,120.68,117.25,116.81,119.57,117.87,120.62,117.89,122.57, 123.32,121.84,123.42,124.57,123.78,125.41,124.43,127.92,129.88,128.31, 130.30,126.53,128.25,128.54,127.81,126.96,133.34,130.28,129.06,134.67, 130.73,132.37,133.81,132.07,134.28,136.98,136.16,138.24,138.88,135.67, 141.68,140.48,141.26,138.19,139.85,139.70,143.27,142.79,140.72,141.76, 144.33,148.00,145.34,147.98,144.97,149.80,144.61,148.16,147.12,144.18, 152.32,149.47,150.67,148.47,153.15,153.98,151.61,151.45,152.50,154.37, 155.29,155.14,151.53,156.31,158.73,155.54,157.01,152.27,155.50,156.32, 4.77,5.04,5.90,6.33,6.38,6.90,6.60,7.77,7.42,9.03, 9.14,9.81,10.07,10.53,10.87,12.03,12.23,12.41,12.92,12.32, 14.22,14.32,14.48,16.47,15.91,15.91,16.06,18.00,17.69,18.59, 18.36,18.42,17.56,18.74,21.67,19.80,20.33,22.01,19.52,21.25, 22.95,23.87,22.51,24.08,25.07,26.49,25.54,25.19,26.38,25.75, 26.78,28.66,28.42,27.86,27.09,29.66,29.34,31.27,29.97,29.56, 31.49,32.46,33.17,32.93,33.48,33.83,32.78,37.30,35.28,35.40, 35.74,36.18,34.31,35.35,39.48,39.36,36.80,41.01,40.22,40.23, 40.24,40.60,42.42,42.74,41.96,43.73,44.27,45.20,44.01,44.31, 43.58,43.86,45.80,47.13,44.85,46.53,47.16,47.42,50.42,49.42, 50.06,48.24,50.06,51.34,49.76,50.61,50.88,53.67,51.80,53.37, 53.88,57.10,54.96,54.35,57.25,55.94,56.68,54.92,60.31,58.91, 59.40,58.19,56.24,60.20,57.73,63.08,60.16,59.30,61.71,61.99, 63.06,62.66,64.52,65.35,64.19,65.66,65.44,66.31,65.86,66.58, 69.17,68.82,70.17,70.38,70.50,71.47,70.83,69.79,68.30,71.30, 71.13,70.12,74.20,71.49,72.49,74.18,75.60,75.14,74.38,73.61, 76.45,75.42,76.32,77.65,78.19,78.64,81.00,78.93,79.83,80.58, 81.10,77.97,82.26,84.71,82.15,80.28,80.78,84.50,84.94,85.38, 85.45,85.21,82.17,89.81,89.00,84.88,87.43,86.62,89.53,88.70, 89.45,88.07,90.86,91.34,95.70,92.20,93.53,94.20,91.75,93.57, 95.46,97.47,96.37,94.32,96.55,96.07,97.01,96.81,96.92,97.77, 98.92,98.16,102.31,101.57,98.67,102.17,106.35,100.79,99.23,101.06, 108.41,105.31,102.77,102.96,104.10,104.52,104.44,105.82,107.94,106.33, 106.33,111.18,107.45,109.12,107.28,109.38,110.23,113.31,111.32,114.78, 114.19,111.81,112.04,116.28,113.10,112.93,110.45,113.58,115.77,114.17, 115.12,119.82,119.73,117.49,117.09,118.14,123.80,120.10,120.04,120.25, 119.61,120.87,121.20,120.85,122.86,122.45,125.01,124.61,124.78,126.10, 125.35,124.72,127.34,128.28,124.19,123.08,126.61,128.09,127.34,129.44, 130.19,129.15,129.20,132.71,129.88,131.25,132.52,133.62,133.98,133.42, 4.41,4.31,4.18,5.23,5.36,5.99,6.05,7.16,7.19,6.53, 7.73,7.91,8.23,8.92,9.36,10.08,10.04,10.98,11.21,10.82, 11.79,12.31,11.84,12.51,13.66,13.80,13.28,13.60,13.88,15.22, 15.10,16.71,15.38,15.51,17.44,15.96,17.36,18.54,18.34,18.29, 19.16,19.12,20.09,20.09,20.82,19.43,21.48,22.16,22.37,24.45, 20.94,24.68,22.39,22.40,26.66,23.99,25.66,25.59,26.65,25.37, 27.30,25.69,27.10,26.93,27.83,29.38,28.65,28.82,28.79,30.63, 28.87,30.57,31.26,30.91,31.69,30.47,31.72,32.98,33.47,33.27, 33.12,36.73,33.42,34.17,36.28,36.98,34.68,36.85,37.56,36.52, 37.41,38.81,39.35,38.01,39.68,39.42,39.72,41.80,42.43,43.06, 41.61,41.32,42.94,43.28,44.53,46.15,44.03,41.73,44.47,43.73, 44.98,46.24,45.51,47.56,47.80,46.95,47.32,47.84,48.10,46.90, 47.64,50.68,49.26,50.05,51.90,50.12,48.92,53.15,51.90,53.30, 53.18,53.04,54.07,53.58,54.09,56.79,55.38,57.91,54.25,56.12, 55.96,58.13,56.92,56.69,59.86,57.63,61.85,58.73,60.25,60.27, 60.30,60.75,60.16,58.54,62.20,60.92,60.69,64.57,64.11,61.76, 62.78,63.52,64.72,64.53,66.54,64.73,65.74,67.64,64.97,67.95, 67.47,66.39,69.53,69.57,70.27,67.11,72.21,72.70,71.12,71.16, 69.86,70.17,73.27,73.08,72.42,73.16,71.76,75.53,76.98,74.29, 74.70,75.30,75.98,75.42,76.95,80.88,77.12,79.04,79.49,80.25, 76.58,78.67,78.15,78.27,78.22,80.83,83.50,79.83,79.93,83.00, 79.76,80.28,84.02,81.38,86.25,86.49,85.35,87.66,85.99,88.05, 84.84,90.01,85.44,85.36,86.24,89.94,90.24,90.33,89.15,89.50, 88.84,91.24,90.87,88.57,92.64,91.47,91.15,92.50,91.82,93.17, 91.25,94.91,95.42,95.00,93.59,98.09,94.29,95.91,98.35,99.18, 98.01,97.82,97.88,98.73,99.19,101.48,100.89,100.30,102.31,102.50, 101.56,103.05,103.71,104.33,102.03,102.53,103.44,102.46,105.53,106.71, 104.23,106.30,106.19,108.54,104.81,105.58,110.04,105.62,106.20,110.78, 106.76,111.38,110.34,109.06,109.70,111.74,114.32,111.07,111.36,112.20, 41.52,45.29,48.55,54.58,57.01,61.43,65.19,70.65,73.41,76.56, 81.82,83.65,90.05,93.01,97.36,100.29,105.74,107.38,112.47,115.33, 121.59,124.59,129.01,132.41,137.49,141.15,143.84,149.15,152.65,158.62, 159.10,163.67,170.87,171.39,177.09,179.85,185.67,189.50,193.76,196.45, 200.63,202.97,205.47,211.18,217.34,221.11,223.04,227.23,233.79,235.14, 240.04,244.25,248.35,253.76,255.80,260.44,264.31,268.97,269.00,277.86, 278.86,281.98,287.08,292.69,296.95,300.37,302.16,308.22,310.81,315.93, 320.64,325.85,328.88,329.91,335.31,340.14,338.45,348.20,351.99,356.78, 359.86,362.21,366.71,369.43,376.21,376.77,381.75,388.85,389.02,392.31, 396.72,402.60,403.80,407.67,414.57,419.72,427.62,428.68,430.26,436.93, 436.35,440.73,443.00,449.81,456.70,457.80,465.24,465.36,471.17,474.98, 477.35,483.49,484.09,489.06,492.23,499.08,502.13,511.42,511.46,513.63, 517.68,521.48,524.90,529.39,532.42,537.17,541.88,547.61,549.67,551.12, 558.35,562.12,568.19,569.26,570.28,574.65,582.03,586.56,591.28,594.04, 593.69,602.93,604.64,612.44,611.08,618.42,619.44,622.97,629.11,634.93, 636.22,638.11,644.09,649.15,655.27,657.36,662.72,662.51,668.32,669.18, 675.45,683.06,683.50,687.35,689.31,698.76,701.26,705.04,709.91,711.62, 709.79,719.60,729.29,729.30,734.70,740.02,736.03,742.80,745.69,751.75, 757.46,758.76,762.30,765.12,771.12,773.95,778.48,778.42,785.98,794.99, 792.78,798.28,803.87,804.69,814.42,821.57,816.08,824.41,823.32,829.56, 840.07,838.46,845.68,845.89,855.13,855.36,857.38,862.58,862.20,872.69, 874.43,874.09,885.07,888.24,891.80,895.55,900.06,903.05,904.53,905.30, 912.87,919.16,917.25,929.45,932.87,931.61,943.83,942.05,946.71,951.22, 954.77,958.22,964.70,964.66,968.63,971.67,978.36,980.40,986.84,990.98, 993.58,1000.39,1001.49,1003.56,1008.80,1012.21,1019.19,1021.48,1024.51,1024.18, 1033.27,1041.29,1041.19,1048.45,1045.79,1055.75,1062.05,1056.18,1066.41,1070.91, 1075.72,1073.96,1084.42,1083.98,1089.21,1094.56,1098.37,1109.30,1103.85,1110.20, 1111.70,1115.46,1122.24,1124.96,1126.59,1137.04,1138.94,1137.93,1146.52,1146.55, 1154.14,1160.52,1160.43,1163.27,1167.59,1171.71,1176.55,1181.69,1186.42,1190.82, 36.73,41.01,42.75,47.03,49.81,53.19,56.41,59.90,62.83,66.36, 69.53,75.30,77.44,82.70,85.94,87.29,92.03,95.27,98.90,103.05, 105.86,110.97,112.66,115.98,119.93,123.18,126.69,130.52,132.53,137.51, 140.54,145.17,147.75,149.85,156.18,158.89,161.11,162.70,168.98,171.44, 174.50,180.07,183.58,185.28,189.81,196.03,196.09,198.28,202.20,205.69, 212.13,213.85,218.69,223.34,225.47,228.85,231.08,235.78,240.18,241.41, 246.72,247.88,252.69,256.81,256.05,263.98,266.56,268.08,273.62,274.57, 279.01,281.58,286.28,290.65,291.91,297.58,301.90,304.58,306.38,314.06, 313.47,320.68,323.50,322.79,326.33,332.55,337.30,338.28,342.54,343.38, 351.38,349.71,356.04,357.33,363.43,367.86,371.74,370.97,378.87,382.72, 383.48,390.16,389.07,393.13,397.76,402.39,405.36,408.70,407.74,417.36, 421.17,423.74,427.83,428.44,434.50,437.66,438.22,443.08,445.63,447.79, 455.65,456.65,460.32,465.85,469.08,470.64,471.75,477.89,478.61,487.45, 487.72,491.13,493.44,496.48,506.26,503.61,510.14,510.73,514.56,521.29, 525.71,524.47,529.12,536.48,533.33,538.61,542.57,549.42,550.40,554.60, 561.22,561.55,563.32,565.12,567.07,570.22,577.34,583.29,586.98,585.09, 595.04,596.42,600.29,603.64,604.64,608.32,610.14,618.16,621.42,629.40, 625.70,628.44,631.22,636.20,642.21,647.58,648.77,651.82,655.18,657.68, 662.56,671.01,670.88,672.84,674.17,679.54,685.12,686.05,691.16,690.61, 698.18,699.99,699.53,705.46,710.55,715.22,718.85,721.93,725.18,725.96, 732.50,735.60,738.00,740.76,746.50,748.77,754.35,751.64,760.91,765.27, 766.16,768.65,772.42,772.74,779.00,785.30,789.29,794.56,789.84,797.73, 802.68,805.56,806.65,810.32,817.63,816.23,822.19,827.36,826.63,831.07, 836.26,840.76,834.78,845.43,852.08,856.92,858.66,857.87,860.78,867.49, 873.51,873.17,879.00,881.09,885.74,882.50,891.91,895.32,900.31,903.57, 905.86,908.01,909.47,916.88,920.28,922.99,926.62,927.99,936.67,936.47, 942.09,942.01,946.96,947.90,953.68,956.60,963.03,962.81,963.10,969.10, 971.68,976.22,983.58,985.71,991.42,997.53,994.80,1000.80,1001.01,1005.45, 1014.15,1012.87,1018.81,1020.12,1022.37,1033.81,1031.74,1032.77,1038.35,1038.86, 32.13,33.81,37.88,40.71,42.67,47.39,50.81,51.17,55.95,58.72, 62.46,64.90,68.38,70.90,74.00,76.42,79.98,82.95,85.98,89.83, 92.10,97.65,100.04,102.46,105.38,108.64,111.73,112.90,118.05,119.66, 123.72,127.92,127.52,132.68,134.72,136.80,138.87,144.59,146.55,149.57, 153.47,154.61,160.81,160.70,164.49,168.55,171.41,175.61,176.76,182.27, 181.64,185.63,188.30,192.05,194.85,198.65,200.30,205.57,206.94,208.36, 213.02,218.73,220.27,222.03,229.30,228.07,231.10,232.24,238.21,240.42, 245.03,244.54,252.10,254.87,257.78,262.28,262.08,265.77,265.87,270.99, 274.08,280.79,277.22,283.28,286.81,290.41,291.94,293.07,299.40,303.59, 304.07,311.64,314.32,311.90,316.23,318.08,321.08,325.95,331.67,331.62, 336.84,338.23,339.32,345.97,348.20,351.44,354.04,355.26,361.96,361.49, 363.88,369.20,370.57,371.66,379.35,380.92,384.33,389.73,392.83,391.28, 393.43,396.49,404.36,405.94,407.88,409.44,414.68,416.06,419.84,423.33, 426.02,428.48,431.86,433.07,438.61,441.05,445.63,446.51,449.44,457.01, 454.15,454.68,463.62,467.69,468.56,471.92,475.90,476.46,478.23,486.00, 483.61,491.12,490.37,497.23,497.60,501.11,507.00,507.61,509.81,512.48, 515.95,522.98,524.56,523.03,529.90,527.29,536.86,537.67,541.68,543.38, 544.00,543.47,551.84,557.21,558.52,563.23,573.31,571.25,573.16,573.38, 581.53,582.85,583.75,587.29,593.48,592.19,596.44,600.44,606.33,601.48, 610.87,610.02,611.96,615.97,613.63,621.28,627.47,630.64,634.72,638.61, 635.52,641.39,643.25,650.42,645.55,651.62,656.51,658.68,663.07,665.11, 665.54,667.60,680.13,684.21,682.14,688.48,687.12,689.10,689.88,694.74, 698.90,701.21,704.84,706.49,713.32,712.42,715.56,724.50,725.29,732.03, 729.95,729.04,739.03,736.88,738.45,745.09,746.93,753.44,753.11,751.46, 756.99,761.87,765.71,768.22,769.10,780.50,777.72,782.14,781.65,788.55, 790.34,797.07,799.56,801.24,799.55,808.78,804.51,815.56,812.56,818.43, 823.95,822.43,830.98,830.95,831.31,835.75,837.34,843.59,841.75,853.60, 855.46,854.55,858.08,858.68,860.87,868.82,872.43,870.32,877.29,878.91, 877.45,886.12,884.93,893.74,890.97,895.21,900.81,898.37,905.70,910.47, 27.17,31.54,32.68,35.25,38.95,40.60,42.42,45.02,48.73,51.95, 53.10,56.14,58.58,60.68,63.54,66.41,70.23,70.33,74.89,77.36, 80.62,82.77,85.12,88.15,89.98,93.97,94.67,97.16,101.29,106.03, 108.45,108.61,112.47,114.75,117.87,120.33,122.21,124.40,129.91,131.23, 134.42,136.19,138.19,142.96,145.56,145.24,148.19,150.83,156.20,157.32, 159.18,164.71,164.77,170.34,169.78,171.68,176.36,177.93,182.17,181.23, 185.49,189.42,189.90,194.10,198.03,198.40,202.78,204.48,206.44,213.02, 213.77,212.78,217.99,220.05,226.99,224.78,230.66,229.72,233.25,235.07, 237.00,241.23,242.25,246.76,249.40,253.35,255.82,258.56,257.77,264.27, 266.38,265.98,268.81,274.90,270.79,278.07,280.12,281.72,286.86,292.00, 290.24,297.69,295.74,296.81,303.90,303.18,302.40,311.22,311.74,316.51, 315.67,317.66,323.96,324.38,330.15,333.56,333.16,340.58,342.90,336.72, 345.51,348.56,349.48,349.16,352.84,360.67,358.46,360.32,366.49,365.59, 370.15,372.57,374.21,374.73,377.25,381.81,384.30,392.84,392.90,397.04, 396.07,399.24,401.03,404.64,408.28,409.52,412.05,412.13,416.13,420.46, 423.84,423.49,428.05,431.19,433.11,437.87,442.24,441.18,445.12,443.67, 445.99,451.15,456.19,455.24,462.90,464.64,464.23,469.72,470.62,475.66, 479.84,479.75,478.41,478.38,486.15,488.69,494.89,496.48,498.19,498.33, 508.31,505.67,506.72,510.11,511.64,516.83,515.36,522.73,521.97,526.45, 528.22,523.37,537.65,536.87,535.49,544.18,541.64,552.31,552.64,552.37, 554.98,560.69,561.38,560.38,565.75,564.75,573.18,570.04,577.31,579.13, 585.79,589.22,587.10,593.23,593.34,591.57,600.37,603.96,605.31,609.46, 606.99,611.49,612.80,615.52,616.07,620.12,622.01,622.86,628.21,634.40, 640.96,636.97,640.62,644.78,643.75,647.94,649.04,650.91,655.99,656.44, 662.73,663.82,661.77,665.22,672.69,680.22,675.54,676.00,674.96,685.57, 687.17,687.79,692.79,692.49,699.73,700.31,696.46,712.08,706.78,712.81, 716.07,715.03,715.52,722.94,726.47,722.34,729.97,735.24,730.52,739.85, 738.45,741.02,742.10,750.80,751.64,753.61,754.48,759.48,761.07,763.96, 768.00,769.70,774.17,775.93,774.65,781.56,780.01,785.75,788.08,788.95, 23.56,26.92,27.25,30.47,33.48,34.96,37.97,39.11,40.78,43.45, 46.77,49.15,51.68,52.86,55.99,57.54,59.37,64.08,64.74,69.51, 68.54,73.39,75.04,76.38,78.92,81.93,83.00,84.56,87.19,91.34, 92.23,93.35,95.66,98.92,101.62,105.63,103.96,108.99,112.90,114.91, 116.51,117.04,120.34,121.72,125.53,128.56,129.31,131.20,130.89,135.79, 139.16,140.66,142.07,144.56,146.21,149.49,151.59,154.74,154.23,159.27, 162.60,162.57,163.51,165.82,167.37,170.34,173.69,178.75,179.17,181.76, 182.67,188.25,189.37,189.38,193.79,195.63,196.66,198.93,204.43,205.72, 206.62,206.49,207.97,212.00,215.99,219.59,220.64,221.53,223.20,226.23, 230.59,232.75,232.31,239.24,239.47,240.42,242.78,248.27,249.18,250.24, 249.11,251.51,257.50,258.90,261.66,264.33,268.58,268.54,272.69,273.38, 276.54,276.60,280.99,279.87,284.32,283.62,292.42,292.02,291.30,292.63, 300.49,304.61,300.34,304.18,311.80,309.78,316.13,313.28,317.77,321.14, 321.87,323.82,324.57,327.99,329.99,335.16,334.66,339.36,342.95,340.64, 342.77,346.63,347.38,349.68,353.95,352.74,354.76,360.39,361.65,364.20, 367.38,371.96,370.73,377.24,375.86,377.55,381.89,385.61,386.11,386.59, 392.94,391.42,393.66,391.27,398.83,394.92,402.76,406.59,409.54,411.53, 412.82,415.63,416.32,417.23,422.23,423.97,429.04,429.29,432.09,431.86, 440.36,434.80,438.75,440.79,452.23,449.29,446.07,448.20,457.70,453.69, 458.59,459.86,462.65,468.51,467.95,466.05,470.61,475.20,472.61,483.17, 480.53,485.01,485.72,484.77,490.51,488.87,493.75,499.72,501.54,507.04, 501.44,509.77,512.02,513.14,514.88,516.05,514.80,522.33,526.32,520.69, 529.65,528.23,531.12,535.72,534.66,539.46,543.54,551.09,542.84,544.98, 553.21,553.83,558.82,558.11,555.57,561.72,561.89,565.41,569.63,571.91, 576.55,580.01,576.00,582.72,580.99,587.84,586.88,589.71,591.70,594.04, 595.73,591.59,601.07,603.02,607.34,600.05,608.78,608.07,614.97,615.68, 618.96,618.95,623.10,623.26,622.04,632.76,636.93,635.22,638.53,639.55, 640.61,641.24,644.83,648.90,647.70,654.20,653.75,658.46,660.14,662.83, 666.05,665.65,670.15,667.72,678.76,677.50,682.52,674.94,682.08,680.93, 20.59,22.56,23.53,26.81,27.91,30.03,33.01,34.29,37.16,39.08, 40.16,43.26,44.13,44.88,47.66,50.14,52.16,55.16,56.48,57.52, 60.53,58.84,64.56,64.40,69.34,71.19,72.93,74.73,74.68,78.68, 78.96,81.43,85.05,85.36,89.85,90.15,92.55,94.23,96.17,96.41, 99.43,101.62,103.23,105.91,108.58,108.12,111.41,114.54,116.23,116.16, 120.04,122.26,124.05,125.97,127.48,128.96,132.73,133.60,134.84,136.13, 137.86,142.56,142.30,144.37,146.69,146.68,150.79,152.97,154.84,157.76, 159.28,159.44,161.48,164.81,168.12,169.97,171.88,174.00,175.00,175.17, 178.00,181.78,183.18,184.79,185.16,185.61,194.15,190.91,196.04,194.44, 199.46,197.74,201.48,203.79,206.37,208.35,213.54,210.49,216.03,218.55, 215.86,223.42,224.02,225.42,226.26,228.05,230.51,237.48,233.66,234.36, 238.21,239.77,241.44,245.06,244.44,248.27,249.28,255.70,250.82,253.44, 258.19,261.00,261.90,262.85,266.50,266.27,268.53,274.86,275.19,276.83, 275.79,280.06,282.09,284.55,284.38,284.69,288.56,288.24,297.25,297.18, 296.38,298.42,300.83,302.96,301.04,305.83,305.19,307.38,316.13,312.82, 316.92,318.40,317.45,321.09,324.50,327.07,329.63,328.56,334.48,335.47, 337.45,340.48,337.27,347.94,345.25,349.48,345.09,351.03,352.07,357.32, 357.70,360.90,359.76,363.70,361.36,363.12,370.18,369.42,369.19,379.61, 375.94,375.31,376.72,383.60,386.72,383.32,391.82,390.85,393.30,399.65, 393.29,397.98,402.25,404.13,406.12,406.76,410.40,413.24,410.92,411.57, 416.99,414.17,421.84,420.51,420.81,425.80,425.49,426.44,431.40,437.96, 435.19,435.27,435.41,439.79,439.73,449.05,449.50,448.47,449.58,455.43, 450.84,458.67,460.16,459.36,463.40,465.94,468.34,470.88,476.18,472.55, 475.46,477.20,479.04,478.05,485.21,479.87,489.53,491.27,490.68,492.92, 498.78,498.43,497.50,502.33,505.44,504.56,506.22,505.88,513.44,515.04, 514.98,516.24,517.60,525.22,522.74,521.10,522.25,531.50,531.95,533.99, 535.87,545.06,536.08,542.62,540.74,544.24,544.95,549.75,551.85,553.80, 552.99,551.65,559.14,563.50,560.99,563.85,570.57,568.18,565.36,568.07, 577.94,576.42,578.57,584.34,588.46,583.98,588.01,587.33,589.41,589.92, 17.77,19.88,22.00,22.45,23.41,26.47,27.36,28.99,31.95,31.75, 34.81,36.62,38.06,40.40,42.02,42.00,45.80,46.55,47.97,51.18, 53.50,53.25,55.36,58.19,58.93,59.00,62.82,63.94,65.42,67.92, 68.84,71.79,72.52,72.03,75.80,77.30,81.36,80.53,83.02,83.18, 86.92,86.08,90.07,89.14,91.84,92.49,96.40,96.35,99.73,100.33, 102.20,103.69,106.87,108.91,110.75,112.24,113.90,114.60,116.53,118.36, 120.71,123.41,123.73,127.93,126.16,126.82,131.33,131.61,132.80,135.90, 135.57,137.26,141.46,141.64,144.70,146.77,145.93,149.90,153.69,150.40, 154.19,157.31,158.99,156.95,160.94,163.00,163.81,163.85,165.82,171.00, 169.65,170.95,175.70,178.94,178.57,178.63,182.10,179.49,184.71,188.06, 188.55,190.42,190.93,191.74,199.95,196.02,200.26,198.32,204.60,201.94, 204.50,207.21,211.75,209.11,212.75,213.98,211.49,216.88,215.90,222.36, 221.23,225.34,224.77,225.09,229.80,234.01,230.57,234.81,234.92,236.51, 239.75,239.51,241.81,244.83,245.49,251.39,255.00,255.50,254.18,258.25, 253.59,260.00,259.90,257.14,262.75,266.33,264.66,268.62,269.65,270.13, 275.07,274.16,277.34,278.44,279.36,279.70,281.34,285.61,284.38,289.77, 292.48,290.04,293.77,298.49,297.76,301.09,301.72,305.85,305.12,302.22, 305.95,309.77,306.90,313.38,318.18,315.32,320.98,316.69,321.49,322.32, 325.20,323.94,327.84,328.48,333.82,336.91,338.08,337.05,333.46,338.44, 338.59,346.17,343.27,345.65,347.27,347.07,353.36,353.57,359.56,357.21, 361.83,356.50,359.62,360.52,366.00,365.54,370.70,374.29,371.86,371.47, 373.44,377.47,377.56,382.38,380.28,384.81,385.20,384.12,388.86,399.41, 391.90,398.73,399.69,398.37,400.29,403.39,405.17,404.81,408.83,405.38, 412.70,407.81,412.81,415.00,418.53,412.65,422.84,420.01,422.22,421.70, 426.86,425.14,431.45,432.87,436.57,433.76,438.11,440.24,438.33,441.77, 440.48,445.80,448.12,449.15,448.20,458.56,452.15,455.14,457.62,454.90, 458.74,461.82,467.00,467.39,471.64,470.88,473.01,475.33,475.63,478.02, 476.54,478.36,482.69,482.65,483.81,482.35,484.19,492.14,492.25,491.10, 501.96,497.07,495.65,501.64,500.60,504.29,500.80,506.56,507.76,507.86, 15.20,17.48,18.83,20.22,20.38,22.94,23.53,26.60,28.02,28.20, 29.77,30.87,32.56,34.32,34.94,36.64,40.25,40.43,42.13,43.26, 44.53,46.75,47.07,48.88,50.52,50.32,52.80,55.21,57.41,55.97, 57.40,62.32,61.04,62.28,65.77,66.72,67.96,69.52,71.32,71.39, 73.46,75.43,76.06,79.72,78.55,81.42,84.63,86.74,86.30,85.82, 87.81,90.99,91.21,93.27,92.83,95.53,98.85,98.32,98.71,102.57, 101.45,104.06,107.75,108.22,110.47,111.69,111.88,113.53,112.70,116.69, 118.74,120.31,118.55,123.38,122.76,123.68,124.29,128.57,130.13,129.84, 131.44,135.45,133.98,137.03,140.01,138.16,141.94,142.70,145.17,147.22, 147.28,144.97,148.46,152.45,153.87,152.89,154.88,158.57,157.00,158.60, 163.47,163.14,165.73,164.90,167.10,170.41,170.59,172.65,170.67,176.26, 174.89,178.06,178.79,181.04,183.96,185.18,185.69,186.60,190.12,188.76, 191.66,191.34,192.40,198.63,198.65,198.58,202.59,202.70,205.21,200.77, 204.12,204.39,212.22,209.09,215.34,215.00,215.67,215.72,217.74,219.46, 222.06,222.07,224.96,228.43,229.30,227.58,229.88,228.22,230.82,236.60, 234.16,237.53,239.79,243.38,237.28,243.21,246.60,246.82,247.06,249.47, 255.32,255.20,254.22,256.61,255.66,255.33,257.63,257.22,262.77,260.65, 265.22,265.05,270.22,267.40,267.87,273.03,273.02,271.50,277.63,280.68, 276.52,280.67,282.91,284.72,283.15,283.85,291.24,289.72,288.86,291.56, 290.47,295.89,295.97,297.08,299.47,300.27,301.53,302.43,305.96,305.94, 304.85,310.74,309.09,316.55,311.34,320.79,315.99,317.81,320.96,319.39, 323.78,323.33,323.00,330.36,329.36,326.09,332.23,335.41,332.58,335.64, 333.25,341.90,338.39,343.99,340.21,344.87,345.51,344.55,346.52,350.86, 354.47,353.25,353.47,354.44,358.36,363.00,360.17,363.84,362.96,365.76, 367.50,368.49,370.25,370.72,375.16,377.97,378.66,378.63,380.11,378.85, 384.23,387.13,383.86,380.69,391.23,390.10,391.17,394.30,392.27,392.39, 400.02,398.91,400.91,403.99,403.12,405.23,405.85,401.90,405.61,408.79, 408.35,409.43,415.18,412.17,417.04,416.39,418.95,419.25,425.57,421.97, 424.46,427.51,429.18,429.94,436.20,435.72,431.85,435.61,438.90,438.68, 12.67,14.56,16.17,16.52,18.10,19.39,21.28,22.14,23.01,24.54, 26.89,28.28,28.77,29.64,30.71,30.99,33.55,33.58,36.00,37.98, 38.29,38.64,41.18,41.37,42.58,43.69,44.91,46.97,49.05,49.53, 51.23,51.31,53.74,54.70,55.20,56.74,61.84,60.13,61.00,63.36, 63.27,67.43,64.66,69.11,69.97,70.53,70.23,72.25,72.17,74.74, 76.92,77.40,79.85,78.92,80.64,83.00,82.39,84.24,85.77,88.13, 87.04,88.03,91.23,92.45,94.17,94.81,95.91,99.55,101.13,100.88, 99.11,100.52,105.29,102.68,106.59,106.88,109.52,109.27,111.07,113.68, 114.75,116.58,116.50,116.85,119.77,120.25,120.92,122.56,125.41,124.56, 126.38,126.39,128.03,129.74,129.41,131.87,137.03,133.88,135.65,139.68, 134.67,139.07,141.14,145.27,144.85,149.31,146.29,146.04,147.85,149.21, 147.98,152.62,153.04,154.94,157.40,160.85,156.45,160.58,162.36,164.51, 158.56,165.93,165.07,167.97,166.42,172.75,172.33,172.32,174.82,174.00, 177.99,175.58,178.87,178.20,180.24,180.91,185.09,181.04,186.27,192.11, 188.61,188.61,188.79,195.65,193.13,193.76,195.62,200.98,200.62,200.73, 202.37,202.34,202.78,206.58,201.44,210.18,211.20,210.88,211.92,211.02, 216.36,215.83,215.66,217.18,219.42,220.80,220.84,222.22,224.16,222.98, 226.03,231.66,229.28,233.68,233.29,231.61,236.44,237.88,235.02,238.63, 237.41,240.77,239.17,243.18,244.33,243.22,248.59,248.50,249.81,250.59, 253.62,255.29,256.31,260.38,255.84,257.18,260.14,259.61,267.11,259.47, 263.25,265.32,267.98,266.18,267.41,269.55,271.39,274.98,271.89,276.40, 277.36,279.20,278.43,279.16,285.62,283.26,280.75,287.13,286.49,289.81, 296.41,288.78,293.16,294.67,295.77,293.22,297.99,298.07,301.95,299.90, 303.96,300.32,304.08,302.21,310.35,306.58,305.56,310.80,307.67,311.22, 312.14,317.17,316.16,320.89,320.40,321.00,319.36,324.11,325.65,320.95, 327.59,328.00,329.80,326.68,329.44,336.41,334.11,336.94,337.94,335.37, 340.10,337.47,340.01,343.72,347.46,348.82,349.83,348.70,347.77,354.08, 354.50,358.77,353.02,354.09,363.56,357.69,357.78,362.36,362.15,363.35, 365.55,366.45,367.40,368.35,369.20,371.10,374.26,373.99,376.55,375.64, 11.41,11.76,13.81,15.24,16.11,16.70,17.29,19.75,20.74,21.38, 21.93,22.81,24.43,26.09,26.49,28.51,27.75,29.61,29.88,31.50, 32.33,33.47,34.30,36.58,35.84,38.06,40.42,41.85,42.66,42.94, 43.67,43.32,44.64,48.05,49.26,50.05,50.01,51.22,53.35,54.80, 52.91,54.37,55.93,57.93,59.07,59.85,58.64,61.69,62.52,61.43, 63.45,66.72,66.02,66.81,69.73,70.37,72.69,73.51,72.19,74.03, 72.99,76.40,76.85,78.15,81.83,83.70,83.61,86.20,85.06,86.88, 86.98,88.08,86.71,86.84,87.88,93.16,92.79,93.62,93.20,96.37, 98.88,97.25,100.20,102.79,103.73,101.50,104.37,104.22,105.21,109.12, 106.67,109.89,110.72,111.70,113.67,114.87,114.78,114.53,116.18,116.93, 116.89,120.37,121.84,120.56,123.59,125.60,122.12,126.91,127.25,129.51, 131.99,130.00,132.78,133.78,135.41,136.27,137.61,136.73,137.25,136.96, 141.22,143.05,143.00,142.59,145.82,145.72,146.37,146.27,148.99,145.43, 152.16,152.44,156.21,155.71,154.79,156.91,158.25,159.73,158.17,160.16, 161.17,164.20,160.34,168.81,164.70,166.14,168.40,169.51,172.12,173.66, 173.54,171.61,174.19,166.67,177.39,180.50,180.54,177.47,181.12,182.22, 182.56,182.76,188.00,189.43,188.10,190.87,192.41,187.86,195.17,196.34, 192.37,193.78,200.04,193.69,196.87,201.91,198.18,205.88,199.43,203.23, 204.53,205.98,204.25,211.42,208.29,210.34,210.87,212.94,212.68,212.53, 213.98,218.65,216.52,216.90,220.69,223.25,222.26,222.89,224.64,226.10, 224.05,229.05,226.84,231.20,227.41,234.86,230.61,234.56,235.01,237.99, 240.61,239.81,240.70,240.33,241.03,243.04,245.97,247.92,245.56,246.77, 247.57,250.06,251.69,246.67,255.43,250.56,258.30,255.62,255.63,260.17, 259.27,258.65,265.80,265.70,262.36,269.96,267.82,268.44,266.30,266.55, 272.94,273.75,272.43,271.82,275.58,277.35,275.02,276.27,277.04,282.09, 279.77,283.49,283.65,282.91,281.99,282.74,285.12,289.08,290.07,290.87, 287.15,290.45,290.04,291.65,292.15,294.51,298.37,295.10,302.11,298.61, 301.15,303.84,303.83,300.46,303.88,307.50,306.92,307.99,313.09,307.74, 307.97,315.80,318.14,317.92,322.23,320.69,319.30,317.80,318.18,318.21, 9.41,10.22,11.01,12.83,12.98,14.25,14.92,16.65,16.19,18.55, 18.91,19.98,21.20,21.16,21.39,22.85,23.62,25.32,26.29,27.36, 28.13,29.53,30.02,30.56,32.40,32.95,34.45,34.26,35.93,38.31, 38.74,39.90,40.21,41.05,40.71,42.90,42.51,44.88,45.76,46.15, 46.11,46.52,47.60,50.23,50.90,50.72,52.22,52.63,52.72,54.73, 54.77,57.35,58.12,59.20,58.16,59.46,63.09,62.41,62.67,65.75, 65.44,63.60,67.76,68.45,67.14,71.53,68.25,72.74,71.19,72.35, 74.39,74.46,76.89,78.48,77.10,76.12,80.42,81.47,78.36,84.23, 83.96,83.42,85.52,86.02,86.54,88.48,86.20,91.95,92.05,91.47, 93.55,93.86,94.18,96.20,95.71,97.16,98.39,102.26,100.91,96.98, 102.44,99.92,104.28,103.91,106.76,108.62,105.67,108.68,110.33,112.23, 111.67,111.10,114.22,114.97,114.89,115.73,116.57,117.18,118.73,119.42, 117.86,120.39,119.10,124.29,123.48,126.16,126.40,128.57,125.38,129.79, 133.54,129.35,129.90,132.89,134.89,136.08,139.21,133.00,139.94,138.43, 135.65,139.46,141.03,142.45,142.47,143.65,143.04,145.11,144.39,148.34, 149.43,147.96,147.99,149.65,149.59,151.84,151.76,155.59,155.39,155.68, 156.26,158.42,162.65,156.47,158.12,162.73,160.76,162.19,164.74,164.00, 164.39,165.51,165.28,167.87,168.64,169.51,170.95,173.84,169.60,175.20, 174.14,172.52,176.45,181.12,180.17,177.21,179.44,177.54,180.83,182.89, 182.96,185.66,184.70,189.48,187.33,187.28,187.32,190.37,189.45,196.00, 191.83,191.02,198.04,199.64,197.39,199.52,197.49,199.22,201.08,203.35, 204.47,202.40,206.71,205.76,205.84,205.55,205.87,209.21,211.56,213.97, 212.57,209.80,214.79,210.93,214.15,221.83,222.71,216.48,218.15,216.69, 218.98,219.34,220.29,223.68,222.73,224.84,229.22,223.52,226.56,231.56, 229.18,234.68,228.17,233.18,238.63,233.94,235.82,237.93,241.02,239.32, 237.98,240.70,246.51,241.77,241.22,245.19,243.01,248.26,244.12,250.01, 246.48,248.88,251.72,250.55,253.40,253.24,252.76,256.57,258.90,251.28, 258.29,261.22,258.39,261.65,260.54,264.80,265.34,268.02,262.15,268.33, 269.39,271.01,270.50,270.42,270.21,275.22,272.21,275.68,278.85,275.86, 7.90,8.71,9.95,11.20,11.06,11.69,12.83,13.57,15.31,15.28, 15.82,17.44,18.73,18.45,20.70,19.54,21.98,21.63,22.63,23.37, 24.00,24.62,25.81,26.80,26.76,27.37,28.35,29.71,31.56,31.12, 32.63,32.74,32.90,34.23,34.30,36.52,38.06,38.19,38.22,39.33, 39.57,41.55,41.47,41.89,41.95,43.87,43.96,44.86,45.51,45.31, 48.72,45.88,49.81,49.35,49.54,51.67,51.12,50.39,53.31,54.74, 54.27,59.21,57.71,58.00,58.14,57.88,58.88,62.35,59.84,62.73, 60.94,65.66,64.35,64.45,65.76,66.44,66.19,69.02,68.28,70.99, 72.30,71.13,74.24,75.05,73.05,74.43,75.38,75.34,78.64,77.70, 78.89,78.70,80.29,81.88,80.05,81.72,84.82,86.22,84.66,87.23, 85.71,87.85,88.24,88.73,89.88,90.67,90.57,94.25,92.80,95.67, 95.18,97.34,94.43,98.88,99.03,96.83,98.98,99.55,102.33,100.51, 102.28,100.81,104.95,107.36,103.26,109.19,107.51,107.67,109.44,110.36, 109.91,110.20,111.62,114.53,111.86,113.72,113.35,115.60,120.22,114.84, 116.91,118.77,123.07,119.64,118.77,122.81,124.18,122.92,124.17,122.99, 127.35,131.75,124.27,129.72,127.44,130.04,131.81,128.51,133.72,133.25, 133.22,133.56,137.77,136.03,140.13,139.89,138.42,139.04,141.79,139.94, 138.60,142.28,144.82,143.16,145.37,147.20,144.69,147.39,146.07,150.34, 146.94,149.89,155.02,150.47,147.93,156.61,151.90,156.34,156.89,154.78, 159.68,157.59,158.02,161.34,158.20,161.46,160.87,165.18,163.26,162.07, 165.29,164.61,164.85,168.22,171.36,168.12,170.47,169.09,168.91,173.50, 175.20,175.96,169.23,176.23,173.97,178.22,177.31,177.35,178.64,178.80, 179.86,181.67,180.57,181.77,182.34,187.33,181.40,190.00,189.30,188.08, 187.78,191.64,190.53,189.58,194.12,191.60,194.28,194.52,199.09,199.36, 200.17,197.29,195.66,203.66,202.66,201.82,204.27,201.62,205.69,206.34, 206.02,204.89,208.82,209.64,207.53,212.54,208.97,207.79,209.67,213.22, 213.97,218.22,213.66,213.79,216.79,219.38,216.10,217.08,218.35,223.33, 220.46,221.89,222.71,225.12,224.65,223.57,223.41,228.18,223.60,230.19, 225.73,230.25,230.21,229.85,236.98,232.86,230.36,232.13,232.87,231.65, 6.19,7.67,9.23,9.50,9.58,10.48,10.76,12.23,12.12,13.14, 14.59,14.66,15.04,15.21,16.98,17.86,17.84,18.58,19.78,18.70, 19.83,21.89,21.82,22.19,23.90,24.29,23.75,24.52,25.86,26.08, 26.83,27.59,30.16,30.10,29.32,30.81,30.62,30.59,30.72,31.88, 34.20,33.73,34.79,33.02,36.72,36.36,37.49,39.01,38.69,38.37, 39.52,41.59,41.72,42.00,44.62,45.32,43.28,44.74,46.12,46.36, 46.10,45.98,50.08,50.96,50.70,52.24,49.73,52.00,51.76,52.06, 53.79,53.24,55.83,56.28,56.52,58.10,55.42,59.59,58.59,57.32, 60.35,60.21,61.62,62.88,63.71,63.87,65.32,65.89,63.76,65.79, 67.56,66.82,70.22,68.69,69.09,68.85,68.87,72.38,70.08,72.43, 73.05,76.79,74.22,75.66,75.47,76.50,78.18,80.97,80.84,81.88, 79.75,83.91,82.47,81.80,83.77,85.26,81.95,85.82,84.89,87.49, 87.91,88.58,88.19,90.65,91.29,93.19,93.15,91.06,92.64,93.52, 95.39,96.83,97.23,93.21,99.17,95.78,96.75,98.78,98.42,101.74, 100.55,103.50,103.07,104.70,102.55,103.50,103.46,106.17,106.42,103.96, 107.61,104.84,108.11,111.39,112.32,110.23,112.30,113.25,111.31,115.80, 113.71,112.64,115.24,117.75,115.26,113.76,117.42,116.92,121.88,122.51, 121.09,121.79,125.48,122.48,123.47,122.51,122.64,123.94,130.16,125.26, 128.01,126.93,129.44,127.88,129.28,131.55,132.56,132.58,135.32,135.97, 135.05,135.39,133.63,139.10,137.65,139.98,139.59,137.33,136.04,140.48, 142.67,141.33,138.94,142.05,140.94,140.57,144.76,146.34,145.78,146.50, 148.67,147.31,149.97,144.94,150.71,148.25,150.25,151.27,153.67,156.96, 158.19,148.53,153.90,151.55,155.45,157.31,158.55,158.16,161.40,161.22, 160.09,161.97,161.20,165.72,161.95,164.69,163.26,170.43,168.23,169.32, 169.28,166.41,168.35,169.17,171.39,168.38,172.14,175.62,175.81,170.18, 175.06,174.76,174.71,173.42,175.00,178.56,180.60,178.14,181.28,180.49, 183.21,181.11,182.75,179.86,181.46,180.55,184.04,184.61,187.41,188.02, 189.16,186.92,190.64,191.63,187.34,190.81,191.70,192.35,190.16,193.53, 199.58,196.06,198.58,195.32,198.00,199.67,198.76,203.56,201.98,198.98, 6.15,6.89,6.59,7.90,7.72,9.05,8.62,10.61,10.56,10.85, 11.08,12.80,13.65,14.31,12.97,15.08,14.97,15.44,16.05,16.56, 17.38,17.29,17.38,18.07,19.98,19.41,20.24,21.11,21.23,22.19, 22.38,22.63,22.22,24.89,24.67,27.33,26.98,27.57,27.06,27.21, 29.57,29.02,29.72,31.46,32.13,31.02,32.94,32.55,33.24,33.81, 35.23,35.46,35.12,35.75,36.31,36.80,39.41,39.68,39.40,40.06, 40.20,40.54,40.23,41.69,43.49,43.66,42.34,44.34,45.89,46.09, 46.24,46.91,47.95,48.88,47.69,47.54,49.32,48.05,50.51,51.40, 50.03,52.40,53.34,53.80,54.87,54.83,54.84,56.23,56.46,56.11, 59.10,55.56,55.82,61.32,60.15,61.49,61.33,62.10,62.74,59.54, 63.12,62.96,62.96,62.69,63.34,67.29,67.10,64.91,69.28,69.13, 68.44,69.74,68.16,70.58,69.17,71.70,73.25,71.87,73.25,73.60, 74.77,73.53,75.42,73.54,76.60,76.41,79.13,77.89,80.25,78.93, 80.44,80.38,81.43,82.78,81.89,82.90,85.51,84.40,85.87,83.10, 86.41,85.14,85.39,88.21,88.33,85.78,87.96,90.34,88.32,89.76, 90.14,89.97,93.17,94.38,94.21,94.57,92.92,98.09,96.27,98.22, 96.61,98.13,97.43,97.25,100.49,98.36,99.00,98.72,102.53,102.17, 102.82,103.37,105.24,103.72,107.28,104.24,106.06,108.28,107.35,109.43, 110.67,106.42,109.32,110.78,110.08,114.64,115.64,114.07,110.65,113.92, 113.07,111.20,117.11,116.53,117.14,118.56,120.21,119.49,117.59,119.84, 118.53,121.63,121.55,121.28,121.32,124.77,123.82,124.53,121.83,125.61, 125.18,124.70,127.23,129.60,124.63,126.86,127.64,126.87,131.33,133.45, 130.12,129.50,130.77,132.37,134.14,131.99,131.41,133.72,136.50,134.45, 138.24,138.76,138.45,138.52,133.87,140.54,140.62,143.35,143.36,141.62, 143.55,141.97,143.05,146.20,144.77,143.84,147.06,148.86,146.57,144.32, 149.22,148.00,149.63,153.94,150.64,152.11,151.31,153.06,153.77,151.48, 151.61,155.86,154.47,155.94,154.25,160.00,160.22,159.26,156.75,159.26, 161.52,163.27,164.91,162.79,161.22,159.83,161.11,167.41,163.80,165.85, 162.11,169.65,165.50,168.27,165.96,171.16,169.78,166.85,169.49,169.06, 5.38,5.33,5.87,6.26,7.79,8.25,8.54,7.94,8.93,9.70, 10.10,10.12,10.42,11.49,11.28,13.69,12.27,12.60,13.15,14.32, 14.43,15.82,14.44,15.73,16.07,16.40,18.36,18.69,19.59,18.18, 19.02,19.69,20.98,21.10,22.56,21.69,23.69,24.10,22.91,22.57, 24.11,24.27,24.66,25.90,25.44,27.70,28.29,27.70,28.35,29.37, 28.42,29.99,29.60,31.65,31.73,30.40,31.89,31.32,33.97,34.47, 34.60,34.33,36.03,35.27,36.19,36.93,37.23,37.14,37.87,36.55, 36.52,37.64,39.07,40.32,39.40,40.29,42.28,42.77,42.61,44.51, 42.88,44.98,44.05,43.38,43.77,47.26,49.24,46.35,47.95,48.69, 47.68,47.12,47.77,49.67,48.86,49.67,50.39,50.26,51.67,50.69, 52.34,54.07,54.34,56.46,55.60,56.61,55.06,54.54,55.58,58.58, 56.97,58.30,59.70,59.64,58.55,61.41,63.02,62.39,63.73,62.21, 62.59,64.35,64.07,66.52,60.33,66.80,68.17,65.87,67.57,69.39, 68.09,71.31,67.38,69.27,69.16,70.59,72.24,70.59,72.91,71.48, 73.83,75.03,78.67,75.27,75.44,74.66,75.92,76.42,77.26,76.66, 77.35,78.68,80.18,79.02,79.35,80.27,80.57,81.84,81.76,83.46, 83.86,81.22,83.96,85.62,86.41,82.54,83.81,85.46,86.28,86.60, 88.12,87.68,90.22,86.47,87.25,87.53,89.88,92.19,91.17,92.37, 91.84,95.53,95.08,94.25,93.27,95.21,97.66,93.33,94.32,98.54, 96.22,97.02,97.60,100.16,100.00,100.53,97.70,97.80,102.27,102.59, 104.94,102.80,100.44,104.08,105.41,105.67,104.73,103.23,105.73,107.68, 106.02,107.72,107.48,110.34,108.53,108.84,108.74,112.57,109.71,110.32, 108.55,112.00,112.36,114.98,110.84,113.47,113.52,114.63,114.66,117.07, 116.81,117.92,118.46,119.97,120.13,120.00,118.67,117.12,121.16,122.91, 121.60,123.39,122.30,120.62,126.36,126.61,127.25,121.64,125.25,125.14, 128.46,126.61,125.80,127.03,125.80,129.08,129.82,128.17,131.23,130.31, 132.87,128.32,131.87,131.67,132.17,129.10,132.85,134.37,132.81,135.90, 136.35,134.55,136.03,134.03,137.88,140.18,136.23,139.95,142.03,143.64, 139.39,140.17,145.90,142.81,145.80,144.19,141.12,146.89,142.68,144.17, 45.63,49.39,54.62,58.57,62.55,66.07,72.53,75.58,79.70,84.56, 88.85,93.36,96.70,101.83,106.46,110.72,113.46,118.83,123.30,127.78, 132.35,136.80,140.67,146.27,148.31,154.38,157.05,163.49,167.30,170.90, 175.63,178.50,183.37,187.69,190.53,196.88,200.27,204.53,210.07,214.13, 220.44,223.49,226.77,230.59,236.21,240.10,244.82,251.97,253.97,259.21, 263.38,265.30,270.63,275.96,278.17,285.55,286.03,291.03,296.67,299.35, 304.50,312.29,313.42,319.65,323.19,328.80,330.46,333.33,339.81,341.96, 347.47,352.50,356.12,363.51,365.50,372.11,374.81,378.02,383.04,386.37, 390.49,397.24,402.15,403.74,406.46,416.06,417.38,422.77,426.18,433.39, 436.84,442.41,445.88,449.03,448.81,455.62,460.28,466.16,467.77,474.13, 479.58,486.67,490.27,492.85,498.34,500.45,507.23,510.61,513.40,520.64, 524.47,528.98,528.98,535.69,539.39,543.57,551.17,556.32,554.32,557.76, 563.82,569.79,572.72,579.66,582.94,582.38,593.78,599.04,600.41,604.99, 606.48,615.51,621.97,617.14,625.14,630.00,633.92,640.20,644.73,647.51, 652.49,654.55,660.17,664.63,666.84,672.45,675.74,681.25,685.91,688.93, 700.28,699.48,705.07,709.20,709.02,713.31,721.28,725.85,732.92,735.83, 741.03,739.17,748.55,750.28,753.86,757.27,763.20,768.69,775.14,776.02, 781.81,784.62,788.64,794.96,797.80,799.33,808.32,813.28,816.72,819.32, 826.24,827.59,830.39,841.88,842.90,844.80,855.44,859.39,863.07,863.55, 870.41,872.90,877.80,880.01,883.95,890.43,893.42,899.07,906.11,905.69, 912.50,914.59,921.13,922.98,929.94,931.15,941.14,944.38,947.21,949.08, 957.42,962.12,965.06,971.64,968.74,976.69,983.45,987.20,986.77,995.01, 993.22,998.88,1003.32,1009.75,1016.40,1017.75,1024.74,1026.49,1031.50,1038.92, 1043.17,1042.11,1046.50,1054.25,1058.60,1061.59,1064.97,1070.42,1076.85,1082.51, 1088.71,1084.93,1091.69,1094.38,1106.26,1105.53,1114.45,1114.91,1119.13,1125.33, 1127.33,1132.60,1136.37,1142.62,1148.04,1144.38,1157.88,1158.66,1160.45,1167.34, 1173.33,1176.23,1179.39,1188.47,1189.48,1194.58,1196.69,1203.29,1207.30,1211.78, 1216.74,1220.91,1223.61,1224.64,1234.00,1236.09,1245.51,1244.67,1249.56,1254.90, 1259.08,1259.86,1258.71,1271.26,1275.09,1279.95,1287.46,1290.07,1293.20,1295.21, 40.16,44.18,48.93,51.12,56.55,58.28,63.20,66.14,71.08,73.81, 79.29,80.81,86.64,89.07,93.62,97.22,101.41,104.39,108.05,113.44, 117.71,122.22,123.95,126.72,131.49,136.94,139.94,144.02,146.60,152.16, 155.63,158.41,160.30,169.14,171.03,171.22,179.37,182.53,186.31,189.63, 192.88,196.38,202.17,203.92,209.39,212.36,219.18,219.74,222.86,227.93, 229.39,235.85,241.13,241.61,249.47,251.58,255.09,259.73,263.48,268.28, 269.17,274.39,277.33,281.26,288.13,288.55,289.83,297.81,299.59,304.19, 309.17,313.43,315.82,319.53,326.75,324.36,332.12,336.25,339.11,344.01, 346.92,353.48,357.05,358.67,364.91,363.74,370.05,374.53,381.89,385.77, 383.20,388.99,393.63,394.97,398.12,405.98,407.39,412.08,416.39,421.42, 424.74,428.19,429.62,432.37,437.78,442.94,447.06,453.73,452.98,459.37, 462.49,466.15,465.50,473.81,475.61,482.94,485.22,487.44,492.21,498.51, 500.47,501.74,509.97,510.40,515.48,519.46,523.68,525.23,528.81,535.87, 537.38,543.45,544.57,552.43,558.02,563.00,562.06,564.18,570.73,574.22, 577.20,578.92,585.38,588.95,593.27,595.01,602.07,602.99,609.37,609.96, 618.30,617.06,622.77,626.17,630.27,632.27,641.44,645.02,643.40,651.39, 654.18,657.62,656.38,666.46,674.19,671.32,674.71,678.88,687.82,688.41, 692.55,697.14,696.86,700.99,708.39,711.26,715.33,721.00,719.34,728.04, 731.14,739.83,739.48,742.93,741.13,751.22,754.79,755.51,765.53,766.18, 764.54,771.93,773.92,773.84,781.40,791.32,794.67,797.14,794.05,805.55, 810.27,811.27,816.68,820.99,819.42,825.46,829.50,838.50,839.36,840.88, 846.18,855.66,849.00,856.19,860.81,868.16,870.52,873.21,877.75,878.32, 885.98,884.07,891.44,889.96,896.21,903.94,905.63,913.84,917.70,916.17, 919.82,925.62,928.84,934.35,937.78,941.97,945.83,952.15,948.89,956.79, 960.48,965.82,969.24,972.57,970.29,980.67,988.05,990.16,991.06,999.84, 993.88,1005.82,1007.73,1013.99,1011.32,1019.39,1021.58,1028.10,1028.73,1033.09, 1037.49,1045.38,1042.48,1050.47,1053.49,1059.86,1056.73,1064.47,1072.74,1071.45, 1077.43,1077.15,1082.12,1090.10,1088.64,1094.28,1089.16,1100.02,1105.41,1106.40, 1118.51,1120.84,1121.52,1122.95,1129.72,1134.68,1137.83,1138.53,1143.00,1145.56, 34.65,40.03,41.46,44.83,48.84,51.17,55.11,59.34,62.70,67.34, 69.13,73.99,76.15,80.03,82.36,86.39,89.14,92.00,95.95,99.45, 103.45,106.40,109.55,114.74,116.20,119.18,121.52,127.60,130.64,135.05, 136.63,140.78,144.97,147.90,151.09,154.54,156.87,161.24,165.13,167.29, 171.45,173.44,178.02,181.79,185.03,188.21,191.06,194.11,195.59,200.94, 205.22,207.74,210.85,213.02,218.22,219.63,225.63,228.89,229.82,234.25, 239.33,244.04,246.32,247.50,252.26,253.15,259.43,262.09,266.50,272.17, 272.17,275.75,282.51,280.54,283.22,287.78,289.89,296.19,299.95,302.79, 305.80,309.77,312.81,316.02,321.97,322.38,324.91,326.13,331.10,335.24, 340.90,342.19,345.83,349.31,356.45,361.73,359.66,364.71,368.05,369.99, 373.26,377.97,382.23,381.21,388.32,390.81,396.65,396.58,400.27,401.83, 410.41,410.54,416.63,412.05,421.12,425.71,427.18,434.21,435.92,435.48, 444.37,444.52,446.16,450.89,453.38,458.22,458.73,464.42,469.93,468.34, 475.78,474.70,478.35,483.55,491.92,490.18,499.80,499.65,503.05,502.77, 510.28,515.31,514.94,517.31,516.08,529.44,527.55,531.65,536.60,539.53, 540.61,547.92,549.98,555.60,559.42,559.84,565.70,568.06,568.81,578.00, 576.77,580.71,578.65,587.67,589.68,589.91,596.20,602.18,607.25,607.10, 609.14,614.55,618.29,621.21,623.91,624.98,632.35,636.25,640.87,635.96, 647.11,648.34,652.91,654.98,661.85,661.94,663.33,663.80,672.65,671.58, 676.48,683.25,686.05,691.64,689.67,694.18,698.49,700.45,710.00,708.79, 712.92,719.90,721.06,720.82,729.79,734.07,731.81,732.97,736.79,744.23, 746.64,746.72,752.40,751.86,759.78,764.22,770.13,771.03,769.87,775.65, 783.69,789.95,782.13,790.40,793.92,791.62,804.36,806.87,804.74,812.70, 817.57,824.73,823.41,822.78,826.81,829.88,833.93,836.42,848.73,847.21, 843.14,854.69,854.00,859.74,856.98,867.46,866.69,868.01,872.82,877.97, 887.37,885.30,890.67,888.03,895.29,900.11,900.57,899.25,907.59,906.69, 918.62,921.72,922.74,923.18,926.82,928.24,941.34,941.77,942.75,947.30, 945.12,955.62,953.83,958.43,968.54,965.72,967.20,971.54,975.45,977.02, 980.66,987.38,988.28,991.30,988.74,998.09,1004.11,1009.09,1012.11,1016.62, 30.79,33.54,36.73,40.12,43.12,46.64,48.07,53.00,55.80,56.67, 60.82,64.00,66.04,70.71,73.34,76.10,77.00,82.24,83.52,86.95, 92.20,93.70,96.72,100.22,102.44,106.67,107.67,111.53,113.39,115.62, 118.55,124.18,125.46,129.85,131.14,135.06,136.49,140.92,143.33,145.60, 148.41,150.19,153.48,159.76,162.09,164.55,168.02,172.68,172.89,175.77, 180.50,181.91,185.33,189.27,192.36,195.05,198.42,201.94,203.28,205.50, 212.33,211.86,217.66,217.83,221.65,222.47,229.08,231.46,235.53,236.75, 239.15,243.87,244.69,249.85,249.48,256.67,256.88,262.43,263.94,265.95, 268.78,273.11,276.34,277.83,281.93,284.24,289.51,290.69,292.05,295.46, 301.20,303.45,304.36,306.52,310.77,314.31,316.18,321.37,321.50,324.35, 330.12,334.73,334.30,334.83,343.41,344.44,346.04,350.17,352.11,351.80, 356.59,361.38,364.43,365.50,371.12,372.79,375.02,378.16,381.86,384.72, 390.11,394.60,392.40,396.60,401.40,402.73,404.24,406.00,413.97,413.00, 415.81,422.16,422.92,427.54,429.71,436.44,436.62,435.34,443.75,444.85, 446.37,448.23,452.73,460.34,461.87,462.04,462.42,470.12,465.73,473.76, 477.04,481.08,485.14,487.38,483.35,495.21,498.92,498.72,500.76,503.10, 508.62,509.69,513.27,513.08,516.06,520.22,524.62,528.02,534.72,534.10, 539.13,539.96,543.71,547.14,543.93,555.43,554.95,558.80,562.23,560.86, 567.50,568.75,567.99,571.70,577.95,583.62,582.79,588.30,589.51,595.02, 597.42,601.52,599.11,608.34,608.22,610.33,613.95,618.28,619.46,621.41, 626.34,630.17,634.90,634.54,637.02,643.09,642.47,643.25,652.40,654.76, 660.63,658.98,665.05,665.92,668.10,669.93,672.68,674.34,677.32,686.47, 687.46,693.64,693.57,696.92,701.80,703.74,698.70,707.40,708.32,710.83, 710.60,714.83,721.23,723.58,726.10,727.72,730.05,735.60,736.03,741.01, 744.69,746.74,750.70,753.08,753.97,765.36,766.29,767.33,770.51,767.52, 778.63,781.91,778.64,781.91,785.86,786.75,790.97,797.67,799.25,798.02, 801.84,805.79,811.29,806.89,813.73,821.15,825.75,824.01,823.15,828.95, 839.98,835.77,834.35,841.83,846.78,843.07,848.77,860.59,858.61,858.74, 865.06,866.14,870.54,876.17,871.36,878.76,874.82,884.71,894.83,894.47, 26.64,30.07,32.87,35.48,38.04,40.65,42.74,45.40,49.38,50.22, 52.82,56.90,58.09,61.32,62.24,66.55,69.02,71.08,74.69,77.95, 80.19,81.12,85.11,86.66,89.46,94.25,93.59,98.78,99.14,102.45, 105.76,105.91,109.81,114.72,115.72,117.85,119.53,122.48,124.83,129.08, 132.34,133.26,135.82,139.07,140.83,143.86,148.12,148.93,150.73,156.60, 156.25,162.18,164.43,166.06,168.87,170.43,175.05,178.09,177.94,182.53, 183.96,186.51,188.58,191.78,193.87,195.30,199.03,199.76,207.75,208.13, 210.14,210.61,216.65,218.46,221.16,222.95,222.37,227.77,229.70,233.54, 235.60,239.63,240.24,242.15,246.06,248.56,251.86,254.32,256.76,261.66, 263.26,261.82,267.65,269.68,275.76,273.99,277.02,281.28,283.18,286.05, 287.98,289.20,295.61,299.31,299.67,300.16,299.83,307.20,307.03,310.16, 313.62,315.75,315.72,325.86,323.92,326.96,328.46,332.63,332.85,339.48, 340.34,343.06,345.00,350.18,350.01,355.68,356.88,358.66,364.27,366.20, 368.67,369.48,369.34,373.45,371.98,375.94,383.73,386.21,386.22,388.94, 394.24,388.85,397.85,397.79,396.29,403.16,400.01,413.72,414.52,412.61, 421.47,422.24,427.41,424.40,428.92,433.54,432.73,434.98,438.89,440.96, 447.96,446.35,450.75,450.49,454.13,456.69,460.34,469.20,464.32,468.78, 473.93,476.33,478.58,473.33,480.77,482.60,481.56,487.67,490.08,494.74, 494.28,501.62,501.39,507.20,507.66,510.31,512.56,511.79,515.12,517.00, 519.68,528.06,525.48,529.48,531.12,537.49,535.40,538.37,547.59,547.44, 548.06,549.94,559.87,554.19,558.40,561.51,564.36,567.99,570.37,570.12, 572.60,579.45,583.54,582.14,586.34,586.45,590.32,594.23,594.43,603.05, 604.31,598.53,605.15,604.77,608.66,617.72,614.37,615.39,624.61,623.83, 632.94,630.52,632.86,633.40,632.79,643.96,642.68,645.02,646.22,658.84, 651.73,649.77,659.66,659.17,661.07,666.81,666.98,669.12,677.22,679.16, 679.63,682.95,685.15,680.63,688.49,691.89,692.22,697.05,704.16,698.78, 707.49,704.26,713.00,708.99,714.05,713.56,721.21,720.27,725.34,725.64, 732.52,736.44,731.87,735.14,740.60,741.36,745.40,744.87,751.29,761.33, 758.13,752.77,762.41,767.79,772.33,773.10,766.54,777.78,777.87,785.02, 23.54,26.39,29.66,30.29,33.92,35.65,37.97,40.43,41.97,43.04, 47.19,48.20,50.72,54.38,55.49,59.50,59.86,63.00,65.93,67.88, 69.17,72.88,73.10,77.27,78.29,82.40,82.86,85.43,89.82,91.05, 92.89,95.79,96.38,98.95,100.49,104.54,104.97,107.47,109.86,113.77, 116.81,115.79,118.08,121.88,124.32,125.72,126.62,131.03,130.47,135.94, 138.18,140.83,143.46,144.85,147.22,147.90,151.28,152.72,155.11,159.03, 160.36,162.84,165.40,167.48,169.82,170.80,175.14,172.14,179.87,182.59, 184.02,184.90,188.91,192.03,193.00,196.03,198.54,198.13,201.24,203.31, 203.75,205.95,209.44,210.55,214.24,217.58,219.86,220.82,223.65,227.46, 226.99,230.86,233.20,232.70,238.45,239.52,242.64,246.64,245.46,251.48, 249.64,253.78,256.83,255.08,257.86,266.10,268.20,267.51,271.75,273.35, 273.76,275.91,282.09,288.35,279.97,289.59,291.84,291.62,291.44,297.60, 294.56,299.34,303.31,306.15,304.08,310.98,308.16,314.76,317.52,317.25, 317.38,324.31,322.99,327.20,329.69,332.63,337.21,335.63,337.61,336.56, 344.71,349.34,349.83,350.29,349.65,354.06,357.25,358.49,361.30,363.86, 363.65,370.45,370.01,370.98,375.06,376.38,377.85,382.42,380.65,386.83, 386.56,390.40,395.57,397.18,394.61,401.46,402.10,401.24,405.18,413.29, 411.24,413.85,415.56,417.53,420.24,418.85,419.07,428.04,429.68,431.08, 432.94,441.50,439.94,442.46,443.44,445.33,448.28,452.42,453.07,456.74, 460.87,455.81,459.37,465.55,466.40,467.53,470.17,472.62,471.44,476.45, 483.82,480.04,483.67,485.62,490.27,493.30,491.37,495.67,497.80,499.68, 502.48,501.98,502.46,511.76,510.90,515.26,517.30,514.22,521.60,519.95, 524.28,529.78,531.03,529.92,536.50,539.78,538.10,540.42,543.88,546.06, 549.18,553.26,552.23,556.36,555.00,557.22,563.63,561.02,563.66,570.45, 570.86,571.37,574.13,573.43,581.10,581.37,586.82,581.12,585.10,593.87, 592.35,589.78,601.11,601.36,597.33,601.24,606.84,606.17,609.04,612.43, 612.91,622.88,620.38,621.06,622.18,625.01,632.75,631.63,639.95,630.05, 641.40,639.30,644.74,642.47,646.20,651.51,652.80,656.23,657.57,660.60, 653.97,656.68,665.92,667.63,671.03,676.58,678.96,680.93,687.88,682.27, 21.93,23.23,24.59,27.41,30.03,31.70,34.12,35.20,37.73,39.02, 40.87,42.98,44.63,45.77,47.92,51.38,53.47,54.22,58.34,58.97, 60.21,63.47,63.76,67.04,69.69,71.38,72.75,73.19,74.91,76.66, 79.19,81.52,86.70,85.87,87.75,90.75,92.94,91.92,95.33,97.84, 99.47,102.75,103.01,106.82,106.70,110.59,113.51,112.45,116.35,119.46, 120.91,121.26,125.96,126.67,128.61,130.03,132.22,133.83,135.11,139.72, 137.83,138.91,142.26,148.13,147.57,150.15,152.51,154.33,155.65,156.07, 155.94,161.11,163.72,167.44,169.53,171.36,174.54,174.77,173.56,178.01, 176.85,180.16,187.69,185.51,185.85,189.22,194.39,195.63,198.12,195.59, 201.85,201.62,205.25,205.33,206.89,209.94,214.95,213.89,215.55,217.98, 219.72,221.72,223.91,224.54,231.62,231.01,227.90,233.20,237.21,237.40, 238.38,241.91,243.63,246.44,248.12,246.86,253.14,253.61,256.86,257.08, 261.04,260.87,264.64,260.85,264.07,268.65,267.94,276.10,278.91,278.11, 278.26,281.98,280.08,283.17,283.05,287.83,291.65,291.91,297.51,297.06, 300.57,298.69,298.98,302.40,304.52,307.46,309.75,308.73,315.35,316.14, 317.07,321.53,323.03,325.14,327.62,331.96,330.64,331.46,334.70,338.06, 338.56,344.90,338.81,345.76,346.70,351.34,353.83,354.31,350.75,352.69, 356.29,360.08,360.73,364.02,369.24,365.80,367.87,375.50,374.90,378.68, 379.29,383.72,385.27,382.72,383.67,385.94,385.15,390.83,396.51,395.27, 400.88,400.06,403.91,401.60,406.68,404.28,410.55,410.53,415.46,414.00, 419.46,423.26,421.50,422.38,427.34,425.39,431.63,432.33,433.80,435.03, 438.80,440.32,441.54,444.55,448.54,451.52,450.22,449.06,454.21,458.56, 456.54,458.20,460.59,465.58,462.56,468.73,471.11,471.56,473.90,473.17, 472.14,476.94,484.35,488.77,486.69,485.62,488.07,493.12,494.28,496.84, 492.34,499.92,503.93,504.23,504.00,507.28,509.18,507.31,512.71,513.40, 516.90,519.19,519.89,520.58,524.33,525.93,528.98,528.78,529.90,535.23, 537.55,539.26,539.55,543.50,543.05,549.77,545.11,550.65,549.53,554.65, 558.07,560.59,561.12,560.89,562.60,569.60,570.66,569.17,573.75,575.50, 578.93,577.40,578.03,578.21,590.15,585.08,586.45,591.56,588.61,594.64, 18.12,20.11,22.64,23.30,24.34,25.78,27.72,30.32,31.42,34.55, 33.37,38.01,40.19,40.79,41.44,42.60,43.20,48.97,49.56,51.30, 51.76,54.22,56.62,58.15,61.12,61.36,65.03,66.49,64.83,69.00, 70.53,71.44,74.08,76.01,76.51,78.44,78.93,81.10,85.01,86.81, 87.00,90.06,89.42,93.66,93.83,96.87,97.28,97.33,102.99,105.73, 104.95,106.74,110.91,110.07,113.67,113.31,113.60,113.11,119.84,120.96, 120.67,123.24,124.36,126.61,128.01,129.29,131.45,134.21,134.41,136.80, 139.07,139.34,141.75,143.19,147.77,146.25,145.22,152.35,151.19,158.46, 154.61,159.51,161.70,158.44,165.94,163.14,168.56,170.32,171.95,170.56, 173.45,176.95,180.82,179.24,180.62,182.17,184.61,184.75,192.31,187.70, 189.01,190.21,194.47,195.95,196.82,196.04,202.03,203.74,206.92,208.22, 209.60,214.86,212.45,215.00,212.58,217.78,221.79,221.68,223.59,223.08, 227.58,227.57,228.20,231.38,236.75,230.44,232.65,239.51,239.25,242.21, 243.35,242.53,246.35,246.19,250.65,253.12,252.56,257.00,258.34,256.43, 257.12,262.18,263.77,264.75,265.27,272.04,271.83,275.03,272.03,278.46, 277.06,279.84,280.02,282.31,282.01,283.86,287.93,290.75,293.05,293.01, 293.83,300.04,299.13,296.80,304.54,304.64,307.82,304.61,311.00,314.79, 310.32,313.05,316.82,315.79,316.27,322.57,321.07,324.74,326.56,329.73, 334.18,330.78,332.63,339.42,333.82,335.86,343.14,340.95,342.10,346.20, 343.90,348.87,346.51,353.74,351.32,353.04,360.02,357.60,355.44,363.52, 362.57,367.78,364.35,375.92,367.35,372.11,373.03,377.14,379.34,382.08, 385.41,379.64,385.74,382.92,389.86,390.04,393.54,390.53,387.85,397.69, 395.98,397.10,403.48,408.18,404.03,408.92,410.94,414.59,410.40,414.25, 414.87,417.67,421.21,419.90,423.75,424.38,428.20,428.10,424.15,430.95, 433.81,434.67,434.35,439.91,437.27,442.73,442.85,442.38,446.94,448.86, 447.71,448.29,453.47,457.88,461.47,457.15,457.20,464.11,464.53,463.02, 464.41,470.19,473.33,471.07,472.20,481.86,470.51,483.67,480.50,481.59, 481.87,487.99,489.22,486.96,489.72,492.15,491.13,498.18,497.51,504.71, 501.26,501.48,506.05,504.59,509.61,508.68,513.23,514.54,512.86,517.21, 16.17,17.19,18.67,19.57,21.25,23.77,25.04,25.66,27.95,28.93, 30.42,32.69,32.05,35.94,37.76,39.02,39.67,39.90,41.73,44.19, 46.48,47.38,49.77,49.16,51.01,54.15,54.83,55.07,58.58,57.46, 61.25,65.04,64.60,65.47,66.28,67.73,68.86,72.15,74.78,77.51, 74.73,77.88,76.88,83.54,79.89,82.37,84.48,84.75,86.90,89.68, 91.46,90.34,92.06,98.06,95.60,96.83,98.09,102.92,104.12,105.08, 104.02,105.81,108.33,108.29,113.72,113.04,115.25,116.22,116.06,119.56, 121.38,120.25,122.58,124.71,125.99,125.35,129.34,132.38,133.05,134.81, 136.42,135.13,138.82,138.99,140.38,142.38,147.43,146.03,149.60,150.08, 153.00,154.64,151.18,152.10,156.95,156.70,158.63,159.97,165.55,164.90, 162.06,165.46,165.62,171.06,168.44,172.20,174.65,177.72,177.28,185.23, 178.72,183.28,184.41,184.75,185.96,189.25,187.55,190.44,191.59,191.32, 195.06,194.93,199.13,202.04,201.59,202.34,208.93,203.56,204.97,211.21, 211.42,212.12,213.38,216.71,220.16,219.66,220.16,220.96,220.09,224.11, 224.75,225.72,226.75,230.09,232.26,235.73,237.28,241.01,235.69,237.05, 244.08,239.81,246.06,241.66,250.14,251.10,249.99,250.75,249.98,255.37, 255.07,257.87,261.19,259.58,263.63,265.11,266.71,267.43,270.62,267.80, 270.94,274.96,273.93,275.76,276.46,277.69,279.95,281.76,280.80,284.48, 284.11,284.53,289.22,292.83,292.92,292.04,290.90,297.22,296.94,299.22, 300.29,301.34,306.29,305.39,308.66,303.77,306.72,310.24,312.44,310.77, 314.23,318.83,317.71,321.53,318.29,323.60,328.29,327.77,327.73,326.68, 329.84,328.67,334.52,336.25,332.64,336.94,341.75,335.65,338.71,343.42, 350.65,346.58,352.35,349.82,352.49,350.94,354.86,356.20,350.89,358.72, 360.29,362.17,363.79,365.85,368.51,368.06,371.43,371.48,372.30,372.74, 374.66,376.38,378.22,382.58,380.91,386.80,386.36,386.87,384.11,388.72, 390.62,392.52,390.53,389.04,397.19,396.59,398.65,402.49,404.21,401.38, 406.46,404.71,407.81,409.06,412.91,412.71,410.02,419.66,419.35,417.72, 420.51,422.64,424.57,421.68,425.31,421.93,430.38,427.64,429.71,434.30, 435.71,436.72,436.74,446.02,435.39,444.05,442.50,443.36,446.14,448.63, 13.21,14.61,16.49,17.25,18.56,20.35,22.59,22.96,25.02,24.99, 27.77,27.09,30.21,30.11,31.98,29.79,34.26,35.33,37.85,38.85, 40.40,41.50,43.02,42.55,43.89,45.82,48.82,48.57,49.98,50.47, 53.80,52.59,54.47,57.64,57.61,59.60,59.08,61.13,61.81,65.09, 65.55,68.04,66.78,68.63,69.59,72.62,72.38,74.85,77.43,74.12, 78.50,79.73,79.08,81.19,82.81,84.65,85.65,86.22,93.42,90.20, 94.01,95.18,96.64,94.25,97.70,99.51,100.19,100.41,103.45,103.42, 105.04,104.73,105.12,107.19,109.30,109.79,112.81,112.57,116.05,116.28, 119.88,118.39,119.59,120.01,124.89,123.48,124.97,128.28,126.95,128.28, 131.78,130.98,134.46,135.62,135.39,135.82,139.59,139.93,143.17,139.59, 146.58,144.04,150.12,144.79,146.92,151.62,150.53,153.07,155.00,156.49, 155.08,155.46,159.40,159.62,162.02,164.72,167.72,164.59,165.05,168.72, 167.85,174.60,172.07,174.81,172.13,175.99,172.22,177.73,181.56,182.41, 182.02,184.63,182.03,186.66,188.35,188.59,194.26,194.44,193.43,195.50, 197.30,198.63,198.70,197.73,200.46,201.68,202.92,207.62,208.94,207.80, 206.62,211.19,213.96,210.16,211.98,213.72,215.98,216.38,215.83,222.33, 219.43,221.61,226.67,220.36,226.51,231.35,233.42,231.03,232.41,233.89, 233.87,232.83,238.83,238.53,237.93,239.98,243.99,244.78,247.98,244.48, 248.04,247.54,250.49,250.73,250.36,251.69,255.95,256.27,256.56,260.26, 260.73,259.76,263.56,261.95,269.28,263.81,267.89,273.62,266.34,274.67, 274.29,274.60,271.20,277.46,276.08,278.95,282.54,281.11,282.74,285.33, 289.29,287.97,290.67,292.36,289.13,291.49,295.69,294.31,295.68,299.42, 299.37,300.94,300.63,299.39,304.94,306.92,306.54,304.30,312.26,313.14, 316.86,312.08,314.52,316.21,319.88,318.25,322.93,318.30,325.83,323.06, 323.51,323.66,330.26,326.33,329.15,332.29,335.15,335.83,337.60,331.70, 338.72,341.86,343.36,346.82,344.62,344.02,348.66,351.19,349.45,347.31, 348.36,350.57,353.87,350.79,357.05,356.55,360.77,361.57,363.41,359.15, 366.71,361.64,364.85,366.29,369.38,372.87,373.08,371.56,374.88,375.66, 381.00,380.68,378.75,382.14,380.48,380.35,385.96,384.24,384.70,391.08, 12.34,12.76,14.70,16.31,16.22,16.71,18.96,18.99,21.72,22.59, 23.56,25.26,23.76,26.66,26.62,29.45,29.34,31.68,32.35,33.56, 34.43,34.92,36.99,36.54,38.80,40.60,40.71,43.44,42.24,44.57, 47.70,47.44,49.39,50.79,49.29,52.22,51.94,52.23,54.51,54.87, 59.52,58.60,57.89,61.78,60.00,62.69,63.49,64.46,65.00,66.74, 66.56,71.12,70.77,70.41,71.82,72.00,75.23,75.90,77.97,76.26, 79.73,78.86,79.88,81.66,83.55,85.26,87.33,87.85,90.53,92.39, 87.50,90.23,91.84,91.52,95.47,92.58,97.19,100.53,100.75,100.85, 100.04,101.95,106.23,104.84,107.19,107.02,110.53,111.23,111.30,110.57, 112.38,114.43,114.57,118.99,117.02,119.45,122.53,121.93,125.22,121.33, 123.49,125.90,125.37,128.85,130.88,128.88,130.59,133.94,133.50,133.50, 134.63,135.58,135.49,137.58,136.30,140.47,142.05,140.75,144.32,144.30, 146.90,151.05,153.15,151.49,149.71,152.97,154.67,151.47,152.96,156.49, 155.60,161.43,162.69,160.94,161.71,164.50,163.76,168.77,167.01,168.76, 167.87,172.90,173.77,173.62,173.90,173.76,178.86,175.82,174.68,181.13, 180.20,182.08,183.78,180.41,181.72,185.96,183.65,189.71,191.21,188.03, 195.56,188.28,191.08,195.26,196.21,196.24,197.57,203.58,196.18,205.79, 201.29,200.69,208.26,208.06,209.75,209.59,209.09,209.49,212.64,213.83, 214.90,213.34,214.90,217.61,217.59,217.67,218.47,225.01,222.97,223.46, 226.04,225.51,227.94,231.73,230.08,229.02,236.44,232.78,231.76,234.31, 241.60,239.67,241.96,239.43,236.70,240.00,245.06,241.15,248.46,248.01, 251.12,249.43,249.69,254.25,250.39,250.33,254.19,250.85,256.96,256.18, 254.63,258.21,258.25,260.24,261.61,266.26,263.74,265.37,269.05,269.05, 271.00,272.75,272.44,272.09,272.22,274.05,280.02,276.56,275.59,282.52, 281.26,279.10,286.36,284.09,285.41,290.49,289.49,291.14,293.81,289.91, 291.30,296.57,295.33,294.38,294.62,298.98,297.46,304.92,299.07,301.66, 298.64,307.19,310.58,305.98,303.95,310.65,309.27,307.86,312.11,313.82, 318.69,311.30,324.46,317.11,325.24,319.35,320.94,320.62,326.16,327.30, 327.99,327.21,330.41,325.25,326.82,333.02,334.88,332.96,335.93,333.60, 10.66,11.62,12.05,13.86,13.61,14.47,16.27,16.53,18.09,19.45, 19.25,20.04,21.57,22.29,24.09,25.36,25.95,25.87,28.19,28.23, 29.38,29.89,32.07,31.22,33.88,33.91,34.94,35.63,37.73,38.30, 39.16,40.99,39.76,41.60,43.60,43.85,44.51,45.36,48.54,49.18, 47.94,50.07,50.28,52.38,52.07,53.33,54.04,53.44,56.31,57.55, 60.13,60.23,59.80,60.40,62.25,64.17,64.43,64.21,66.11,69.17, 67.11,70.05,69.25,70.84,74.17,73.17,74.16,75.70,78.28,74.51, 77.46,79.97,82.00,80.84,83.22,83.43,85.78,85.69,85.17,86.92, 87.21,86.65,88.99,88.51,90.02,92.64,94.13,93.97,94.37,96.59, 99.58,98.70,101.30,101.15,103.78,104.93,104.77,105.94,107.66,107.21, 106.60,105.72,109.33,114.74,111.15,112.54,112.58,114.33,114.54,113.61, 116.25,117.33,122.00,122.84,120.08,121.09,122.69,122.33,124.75,125.78, 128.61,128.18,129.39,127.96,131.81,130.48,132.88,133.32,136.43,134.27, 136.60,135.00,136.65,138.54,141.03,138.58,141.62,142.50,142.81,142.64, 147.03,146.77,147.56,148.20,148.34,152.69,147.26,148.82,154.54,153.42, 153.68,155.42,156.03,159.62,159.33,163.12,161.68,159.74,165.42,163.52, 163.05,164.56,167.12,169.55,169.00,168.73,167.86,169.66,172.35,174.63, 173.59,172.31,176.28,174.82,182.58,180.12,178.39,184.30,183.26,183.61, 183.84,184.01,183.14,188.16,187.01,189.20,194.50,191.61,191.67,197.24, 195.11,195.20,195.97,200.83,201.95,198.81,200.78,197.19,199.15,203.57, 205.29,204.00,205.76,206.00,208.37,208.27,205.66,212.57,211.73,212.22, 216.46,217.72,218.99,214.36,216.48,217.11,220.36,217.74,218.38,224.17, 227.07,222.82,224.73,232.65,227.40,224.20,228.12,229.67,232.88,237.17, 231.41,231.37,235.74,236.09,239.51,240.10,239.14,240.37,239.01,239.69, 245.92,244.58,246.08,241.78,244.26,244.74,252.99,249.54,246.09,251.78, 253.80,255.12,252.50,257.17,253.98,257.65,259.82,260.94,259.44,262.07, 260.07,264.88,265.72,268.95,266.57,270.43,270.07,266.32,271.96,273.88, 273.01,271.40,271.55,271.51,273.90,280.23,278.12,279.69,276.59,279.40, 287.09,283.82,287.18,282.10,288.11,282.67,284.75,290.06,291.95,289.40, 9.01,10.11,10.67,10.80,12.64,13.45,13.97,14.04,14.45,16.86, 17.08,16.79,18.01,20.69,20.83,21.98,22.44,23.70,23.90,26.01, 24.74,28.28,28.05,27.85,28.96,29.65,31.93,30.66,31.40,32.33, 32.75,34.12,34.35,36.23,37.81,37.41,38.26,37.91,40.22,41.24, 41.66,41.83,41.71,43.88,46.82,45.82,46.10,48.15,47.97,47.77, 49.43,50.56,51.40,53.50,54.66,56.39,55.99,56.02,54.80,58.58, 59.38,58.27,60.49,62.86,61.65,64.61,62.48,65.73,64.85,66.70, 69.67,67.61,69.89,68.95,69.11,71.04,72.62,73.32,74.26,73.68, 75.55,77.29,77.03,77.98,80.80,79.81,79.03,83.85,83.51,85.73, 84.53,82.50,86.19,87.96,86.15,89.50,89.46,90.10,92.30,93.03, 92.33,92.59,93.32,95.22,95.27,97.90,99.29,98.06,100.01,101.43, 102.74,101.27,101.84,103.53,101.45,105.12,107.86,105.02,105.61,108.03, 110.33,109.86,109.20,111.61,112.89,111.67,115.05,115.58,118.05,118.33, 118.72,116.93,117.41,121.82,123.49,120.28,120.82,121.11,126.06,124.35, 127.73,123.48,129.85,126.52,129.77,132.70,128.32,132.79,131.57,133.78, 133.93,135.48,136.94,139.03,138.65,135.74,138.69,140.51,142.76,142.89, 139.57,142.95,143.63,142.28,141.68,147.32,147.62,146.28,149.75,152.82, 151.85,146.44,156.59,151.66,154.20,154.27,158.79,156.48,159.18,156.08, 160.40,158.06,158.92,162.59,162.09,168.33,161.79,161.66,160.95,166.65, 167.85,170.68,169.20,170.85,173.16,169.93,174.24,173.87,172.37,175.82, 172.72,175.73,174.98,178.02,178.84,181.29,182.46,180.72,182.70,185.27, 185.90,184.85,186.86,188.59,187.94,189.31,187.71,185.84,191.34,190.20, 194.09,193.91,194.48,195.07,195.96,196.59,196.93,200.00,198.22,200.06, 202.31,200.70,204.61,207.48,203.90,202.72,209.11,208.59,205.45,209.59, 210.19,211.43,210.39,210.47,206.63,215.16,210.55,212.88,216.78,220.78, 216.50,218.44,222.08,218.71,222.07,214.82,218.83,225.99,224.39,228.12, 225.42,226.74,226.22,230.63,227.87,233.44,231.81,232.39,234.15,234.29, 236.72,237.17,237.69,237.45,238.38,235.53,238.71,242.68,238.58,242.20, 241.31,241.07,245.28,240.22,243.05,244.93,248.21,249.90,247.80,253.82, 7.54,8.81,9.39,9.55,10.08,10.94,11.51,12.83,13.78,13.60, 15.42,14.95,15.22,16.65,15.38,17.93,17.90,20.11,19.63,21.15, 22.09,21.56,24.31,24.92,24.45,25.32,26.47,26.52,28.75,29.08, 29.15,28.92,32.13,31.95,30.99,33.98,33.23,33.30,33.12,34.59, 36.25,36.84,36.07,39.53,41.16,40.28,41.33,40.88,41.59,43.16, 42.79,44.54,44.54,44.53,46.97,47.19,45.24,49.90,48.88,49.09, 50.87,52.37,49.80,52.95,56.15,54.50,57.46,54.48,54.02,56.21, 58.47,58.40,58.99,57.81,60.16,63.21,61.50,64.95,65.06,65.40, 64.53,65.33,66.04,65.77,68.49,67.93,70.48,67.84,71.26,70.81, 68.61,74.26,73.02,72.65,74.95,77.38,72.58,76.59,79.00,77.63, 79.90,79.86,83.19,80.38,83.36,82.17,85.28,82.97,85.18,84.08, 86.61,86.24,86.14,88.44,88.95,92.42,90.54,90.02,90.69,96.14, 94.63,98.23,98.21,96.33,99.00,96.70,98.43,97.27,101.58,105.25, 99.72,98.21,102.12,103.10,106.44,104.02,106.56,107.83,106.58,108.05, 108.94,107.91,110.21,111.14,109.51,109.81,112.85,114.36,114.24,117.16, 113.87,115.58,117.77,117.61,117.72,116.05,119.57,122.26,119.31,121.22, 118.64,121.24,124.10,126.55,127.61,128.40,127.78,127.42,128.53,130.41, 131.31,129.82,129.96,136.27,133.37,132.23,131.65,134.04,136.50,133.93, 134.07,138.75,141.48,137.66,137.89,140.91,141.51,145.70,144.17,143.13, 147.12,144.28,146.60,144.48,149.02,149.38,149.18,148.84,151.95,150.71, 151.19,150.75,154.61,155.32,156.34,152.83,154.63,156.39,156.56,159.24, 159.93,156.94,161.44,161.61,161.21,161.36,163.97,162.90,163.51,166.15, 166.42,164.37,171.21,167.79,168.45,164.08,173.65,172.29,168.57,175.84, 169.82,175.80,175.72,176.72,175.46,176.24,179.84,175.07,176.15,174.90, 177.25,179.98,182.63,180.48,185.38,183.17,183.28,183.05,182.53,187.39, 182.39,185.12,190.85,190.29,190.83,189.50,190.98,192.50,190.43,194.96, 195.82,197.39,192.03,194.34,195.33,198.56,200.25,198.22,201.26,203.81, 200.74,202.21,202.66,207.88,201.54,205.69,207.84,210.09,207.45,208.31, 210.39,212.30,210.38,213.14,213.69,214.01,216.89,211.19,216.14,222.91, 6.37,7.19,6.85,8.33,8.88,10.05,10.27,10.95,11.14,11.88, 13.17,12.69,14.64,15.14,14.69,15.51,17.25,16.59,17.07,17.95, 18.15,18.20,20.69,20.66,21.82,22.06,22.54,24.01,24.26,25.26, 23.27,26.41,26.49,26.11,28.52,27.90,27.67,28.18,32.16,30.11, 31.94,32.34,33.31,32.51,33.20,32.89,35.72,36.22,36.01,37.52, 37.89,37.11,39.30,38.93,38.75,40.80,42.32,41.34,42.83,43.24, 43.92,43.94,43.70,44.57,45.71,47.16,47.09,47.87,46.85,48.97, 47.46,51.23,52.17,52.30,51.59,55.03,52.90,54.76,54.21,55.86, 55.31,56.41,55.20,59.29,58.60,60.77,61.84,60.31,62.45,61.35, 62.15,64.00,61.46,65.23,66.12,66.49,66.57,65.41,67.75,65.53, 67.34,66.60,70.28,69.59,70.08,71.37,71.12,73.51,77.75,73.74, 72.38,76.07,75.53,74.87,74.56,76.75,79.95,78.04,78.74,78.53, 80.95,81.82,81.34,82.15,84.62,83.42,84.71,83.29,87.09,85.46, 85.15,86.57,89.13,89.12,87.73,87.78,88.65,91.27,92.85,91.77, 94.51,94.05,95.64,95.87,100.07,98.82,97.25,97.06,97.16,98.49, 98.01,98.14,101.19,100.19,101.18,103.03,101.58,100.98,103.50,102.86, 103.36,107.53,105.76,106.27,105.75,108.15,108.70,111.94,109.54,110.83, 113.48,112.40,109.99,113.42,114.73,114.06,114.44,117.10,119.47,117.60, 116.58,117.45,119.21,116.89,119.70,121.69,121.71,120.08,122.37,120.48, 123.78,123.41,126.10,126.18,125.02,129.17,127.89,127.44,129.30,131.47, 129.03,129.75,130.52,131.31,134.08,134.46,133.10,133.43,133.69,135.84, 137.35,138.60,136.14,140.03,138.11,141.63,137.97,140.93,143.02,144.66, 143.24,142.22,144.22,143.38,144.50,149.41,148.03,146.13,148.86,148.07, 152.50,150.32,149.03,153.03,152.02,152.29,155.71,152.95,154.16,152.69, 155.11,153.53,156.20,159.99,156.00,159.67,159.55,155.93,160.81,160.42, 156.75,160.41,160.84,165.29,165.68,163.69,166.07,165.87,167.84,168.43, 169.95,165.70,164.35,169.37,168.98,170.62,167.13,170.22,173.00,168.73, 172.64,175.96,172.82,174.26,173.34,180.55,172.96,176.37,177.13,175.19, 180.76,178.57,182.84,177.81,184.12,183.70,186.97,185.83,185.63,183.50, 50.11,54.92,58.33,64.07,67.96,73.68,77.49,84.08,86.85,92.23, 96.12,103.06,106.53,109.68,115.70,120.29,123.50,130.93,135.25,139.53, 143.40,147.33,152.96,156.80,162.78,166.86,171.54,177.06,182.00,186.36, 192.88,195.44,202.14,204.52,210.77,214.17,219.11,223.59,228.51,234.38, 239.54,242.21,247.87,252.49,256.95,261.64,265.52,271.84,277.49,279.14, 285.07,290.59,292.93,298.24,304.02,310.05,311.67,317.70,321.17,327.13, 333.20,338.52,336.95,344.48,349.17,358.42,359.73,366.25,367.83,371.82, 376.42,381.80,386.90,395.19,399.80,402.21,408.79,409.76,416.69,421.61, 426.73,429.45,434.39,441.82,444.29,448.50,454.48,461.21,465.90,467.04, 474.51,478.46,483.25,488.69,492.73,498.92,503.48,503.44,511.38,514.70, 516.12,526.77,529.10,538.13,536.60,543.05,550.00,554.09,560.42,563.96, 569.84,571.03,577.48,580.18,585.19,589.51,593.18,601.61,601.36,608.50, 612.55,623.77,621.90,626.34,631.89,639.66,639.89,644.55,651.87,654.20, 663.50,668.18,670.39,673.19,679.93,682.75,685.01,694.69,700.48,706.54, 712.85,714.88,719.71,721.10,731.75,732.49,733.85,737.27,744.25,748.75, 750.36,758.52,764.97,774.69,777.10,778.97,783.73,787.25,790.50,798.93, 800.12,807.68,809.43,816.57,817.89,824.51,827.89,835.24,841.63,844.72, 846.77,856.08,856.04,864.82,868.21,873.36,876.97,882.38,885.71,891.74, 895.35,902.25,902.17,912.17,917.86,919.20,926.59,932.76,939.45,936.48, 939.58,949.98,952.95,956.89,957.31,967.34,972.08,976.87,981.09,988.34, 994.53,997.82,998.15,1003.51,1013.12,1015.68,1013.04,1026.50,1019.05,1032.33, 1039.54,1044.78,1045.63,1056.23,1057.25,1061.65,1069.84,1073.50,1073.10,1081.02, 1080.93,1088.93,1092.85,1098.82,1105.92,1111.06,1110.10,1113.57,1130.19,1126.43, 1126.21,1137.06,1142.87,1145.31,1147.06,1157.97,1156.96,1162.91,1168.35,1171.05, 1180.69,1184.51,1188.22,1191.22,1194.55,1201.10,1208.35,1210.05,1215.81,1220.54, 1223.57,1232.57,1237.33,1244.78,1247.99,1252.61,1254.15,1254.64,1267.59,1269.64, 1268.52,1275.38,1278.22,1283.87,1291.47,1296.18,1300.00,1306.01,1307.04,1318.62, 1322.46,1327.71,1327.77,1338.86,1337.04,1338.39,1348.64,1351.93,1356.00,1362.69, 1368.96,1375.93,1374.95,1380.09,1387.62,1387.96,1392.24,1401.04,1401.84,1411.28, 43.66,48.22,53.32,56.92,62.30,66.44,69.96,74.45,79.63,81.96, 86.50,90.43,94.42,99.51,102.90,107.61,110.39,115.43,120.26,124.25, 128.63,132.46,136.78,143.73,145.84,149.99,153.52,158.77,161.56,164.34, 170.55,173.31,178.62,182.57,187.19,190.15,197.02,200.71,206.04,207.97, 212.96,218.01,222.05,226.64,231.58,234.49,235.68,242.66,244.78,251.38, 254.23,259.12,263.90,267.26,273.51,277.33,280.19,284.49,289.85,291.97, 299.59,303.53,304.89,308.93,313.34,318.60,321.78,324.63,331.98,335.14, 338.21,342.12,347.88,353.96,356.07,359.33,363.58,367.77,374.28,374.22, 382.67,384.87,389.83,395.29,397.39,402.83,407.31,412.30,412.71,417.87, 423.83,426.91,431.43,438.67,439.10,444.05,452.16,451.68,454.47,463.14, 466.42,467.05,474.75,481.94,483.14,484.86,491.64,494.56,498.45,500.12, 508.61,511.17,514.36,519.86,525.27,528.38,533.55,533.62,544.29,547.98, 552.14,555.98,560.06,561.78,569.39,567.52,574.88,579.87,584.48,587.84, 593.29,597.28,598.85,601.96,608.15,614.04,621.99,620.67,625.57,630.43, 632.52,639.71,645.84,648.75,652.96,653.80,658.22,665.09,669.18,673.01, 677.08,680.03,683.08,689.16,692.93,694.28,702.75,706.66,711.21,715.26, 718.26,721.02,726.57,732.32,739.01,740.41,748.69,747.47,750.03,758.26, 763.97,767.96,768.22,773.59,779.76,784.65,786.25,790.42,794.57,799.35, 802.99,804.98,811.30,814.41,819.39,824.73,826.63,829.81,833.60,841.43, 846.69,842.77,856.78,855.67,861.46,867.78,867.93,871.80,878.47,881.69, 889.46,894.66,898.19,900.54,909.33,908.98,911.45,913.98,921.51,924.92, 928.42,937.92,939.12,941.73,942.80,948.29,950.96,956.48,959.92,971.14, 967.25,973.55,979.20,987.15,985.27,992.58,997.44,996.42,1005.12,1008.96, 1012.72,1014.86,1022.45,1026.64,1029.74,1038.60,1041.73,1038.45,1043.82,1054.72, 1056.74,1059.44,1063.11,1067.50,1073.86,1071.40,1079.38,1083.24,1088.19,1095.74, 1098.86,1099.42,1108.41,1109.20,1114.48,1116.54,1125.37,1125.65,1130.81,1137.92, 1140.43,1146.34,1151.88,1157.65,1152.84,1166.70,1165.71,1167.00,1177.55,1176.10, 1183.35,1183.69,1196.27,1189.95,1196.86,1198.96,1207.87,1212.73,1221.91,1214.23, 1219.66,1226.98,1235.50,1229.82,1242.55,1246.57,1255.68,1256.59,1254.33,1261.71, 39.48,43.69,47.26,51.08,54.73,58.06,61.00,66.62,69.74,73.28, 76.95,80.65,84.47,88.06,92.82,95.61,99.30,104.28,106.34,111.21, 113.21,117.96,121.04,124.27,130.24,132.83,136.12,141.85,145.45,148.42, 152.96,153.05,159.42,161.52,167.03,168.46,176.10,177.56,181.78,186.90, 190.56,195.13,197.62,203.00,205.19,209.61,214.46,217.21,219.33,225.54, 225.28,232.39,234.69,237.53,243.85,245.73,251.84,253.29,259.54,263.39, 266.88,270.28,274.65,276.58,279.76,283.23,290.24,288.79,294.31,296.97, 301.09,305.58,309.54,314.82,319.37,317.61,329.36,328.00,333.24,340.06, 341.33,345.46,347.35,354.79,357.43,359.60,359.50,366.79,368.26,376.39, 378.19,381.16,384.88,388.28,392.34,397.97,402.36,400.15,407.94,408.76, 415.34,420.32,419.82,428.01,430.23,435.17,440.41,444.27,444.59,453.13, 454.05,460.06,457.34,464.97,468.73,469.09,474.21,480.13,486.90,483.53, 490.25,494.93,497.77,498.56,507.88,508.27,516.05,514.04,517.96,522.60, 529.48,533.21,535.13,538.82,543.44,545.80,548.52,557.60,556.59,559.89, 564.89,570.85,576.07,575.71,579.48,579.79,590.84,592.46,596.18,601.31, 601.80,605.80,612.14,611.94,620.74,619.35,625.07,626.97,634.22,637.63, 638.95,643.69,646.29,651.80,653.58,654.71,665.59,668.24,672.50,674.41, 676.51,681.94,688.33,691.36,695.18,695.66,702.99,704.09,705.16,710.90, 717.13,717.31,722.71,730.06,730.05,730.89,735.96,738.53,744.51,749.47, 756.36,758.37,762.33,764.87,764.69,773.13,774.96,778.10,784.41,785.52, 788.89,794.06,800.88,798.07,804.30,810.28,816.90,823.20,826.64,822.76, 828.19,831.09,837.33,836.80,843.95,847.78,852.99,858.33,861.51,859.91, 865.96,863.19,874.58,871.26,879.70,887.48,884.00,894.01,895.14,895.12, 900.73,905.31,916.66,911.05,916.17,925.29,927.80,930.81,935.81,941.00, 942.10,949.50,949.50,947.46,958.13,964.34,962.08,966.24,968.65,977.53, 985.04,981.94,988.83,990.40,992.04,994.19,1006.61,1004.67,1006.00,1008.28, 1013.13,1022.32,1022.72,1025.63,1033.43,1034.33,1040.40,1045.57,1048.75,1048.48, 1050.61,1054.85,1056.87,1064.43,1069.07,1075.01,1081.83,1083.57,1083.66,1090.74, 1091.10,1092.02,1098.45,1101.53,1113.31,1111.47,1116.94,1118.33,1119.83,1120.48, 36.46,37.66,41.48,45.20,49.14,51.99,53.92,59.76,60.87,63.78, 69.06,73.03,74.47,79.61,82.15,87.32,89.26,91.27,93.31,97.99, 100.73,107.00,108.77,110.19,112.91,117.74,121.76,125.96,129.12,132.71, 136.65,139.30,141.61,143.73,147.22,151.77,155.58,159.97,159.00,165.30, 168.79,174.54,175.22,179.17,180.30,186.46,188.84,194.85,196.39,201.26, 202.26,206.97,208.86,212.72,211.72,218.60,220.00,224.87,229.26,228.29, 233.44,238.14,245.14,248.27,247.54,253.87,255.98,258.68,261.33,265.14, 267.19,271.33,277.74,279.45,282.74,286.93,289.43,293.17,294.14,301.63, 301.76,304.99,308.14,313.70,313.28,318.96,322.24,323.98,331.15,329.54, 337.04,336.24,342.51,345.30,350.26,351.80,353.46,358.79,363.26,366.59, 370.88,374.77,374.03,379.93,380.56,386.61,389.05,395.24,395.06,398.23, 403.88,406.60,412.19,410.25,416.70,421.23,421.37,424.70,426.92,433.25, 435.39,438.75,446.96,441.82,446.16,451.17,454.19,457.72,463.63,462.46, 469.32,473.07,473.06,480.77,483.47,483.48,489.10,490.14,496.58,498.08, 498.35,504.55,508.25,510.66,517.03,519.39,525.62,526.08,530.37,533.95, 536.01,535.99,542.46,543.55,549.84,553.11,557.82,558.58,561.28,570.61, 572.91,569.75,578.69,578.24,584.97,588.13,587.40,594.13,597.21,600.52, 596.43,606.56,608.13,613.97,617.46,619.05,624.22,628.88,629.46,633.91, 636.05,634.48,641.82,644.69,650.13,647.50,656.97,656.88,661.41,670.02, 672.27,670.16,678.10,685.23,682.55,686.85,686.41,694.04,696.77,697.16, 700.99,709.87,712.55,716.78,712.19,717.39,725.94,724.98,730.62,731.38, 731.71,745.36,738.80,743.67,750.25,751.99,754.03,757.45,760.00,767.10, 767.81,773.54,774.92,776.99,785.15,788.26,788.88,791.29,794.44,802.24, 801.69,809.83,809.29,816.29,820.12,822.42,821.74,828.05,831.93,836.99, 834.05,839.44,848.02,844.73,846.67,854.60,853.43,858.89,865.96,870.17, 870.04,873.15,877.99,880.81,880.02,886.50,890.17,891.08,899.94,896.50, 905.04,906.41,914.40,905.69,920.11,917.30,915.51,929.88,933.81,935.76, 939.39,936.78,942.73,946.45,946.96,954.94,957.15,961.92,965.72,967.08, 972.70,977.14,981.21,982.04,986.00,985.79,990.39,991.09,998.04,1000.28, 31.71,34.39,36.48,41.44,42.66,45.88,48.75,52.09,54.42,56.88, 58.16,63.17,66.42,69.47,71.95,73.16,78.88,83.75,83.13,87.93, 87.95,92.45,95.65,98.50,103.53,105.69,106.69,111.46,114.03,116.69, 120.30,122.32,126.11,126.43,132.12,135.82,138.40,141.22,143.83,147.18, 150.19,153.86,156.75,160.41,158.90,160.97,168.12,169.71,174.03,176.50, 181.11,183.64,184.42,188.73,192.90,196.28,196.92,201.54,200.82,203.17, 206.79,209.38,211.00,217.42,220.14,223.40,227.92,230.75,233.46,235.66, 236.32,241.16,245.29,245.69,248.57,251.02,258.79,261.81,262.10,264.16, 270.53,271.33,274.19,276.99,282.77,279.92,285.37,290.70,291.97,295.02, 296.19,300.55,303.60,303.72,308.86,315.51,313.19,317.65,319.91,322.57, 324.48,327.87,333.47,333.60,338.45,339.75,340.45,347.68,347.72,354.94, 355.53,357.81,366.18,363.15,369.21,374.08,371.43,376.75,383.16,381.73, 387.46,395.07,390.93,390.66,393.84,403.85,402.03,409.87,415.55,414.84, 412.64,419.53,417.82,424.80,428.32,434.23,434.41,434.86,437.57,436.37, 445.24,451.46,453.11,453.47,456.42,455.87,467.43,466.93,470.40,472.79, 473.90,479.03,480.12,486.18,487.03,489.41,492.06,496.20,502.30,503.34, 502.72,505.58,507.33,513.70,512.21,517.60,524.39,521.63,528.65,535.84, 536.30,536.21,538.37,541.60,545.21,545.27,548.52,552.87,561.39,557.76, 564.58,567.86,568.98,570.49,576.30,577.08,578.63,584.30,587.48,588.43, 597.39,595.05,599.21,605.09,604.74,608.06,612.63,620.18,615.46,619.98, 622.17,624.46,623.88,630.60,637.46,635.21,642.59,643.70,646.65,649.98, 650.20,657.33,657.89,665.49,664.29,665.32,666.39,675.68,672.68,683.81, 683.98,683.99,691.13,687.25,696.47,702.72,698.46,697.69,706.49,709.97, 719.20,712.13,712.86,720.38,717.13,727.26,727.64,734.74,741.06,736.83, 741.04,746.74,744.29,753.49,754.65,749.71,756.72,764.02,762.68,769.20, 768.33,768.48,780.57,783.36,787.54,786.24,785.28,794.83,793.98,793.27, 804.01,803.81,805.77,808.00,813.18,817.56,821.41,823.83,824.34,826.79, 829.61,828.41,834.80,839.49,838.23,844.90,850.82,849.29,854.84,861.71, 858.99,865.97,867.06,869.29,875.55,874.18,881.90,885.54,882.58,880.07, 27.86,29.47,32.11,35.63,37.77,42.01,43.51,45.89,47.92,51.27, 52.45,56.20,58.05,61.69,64.68,65.10,71.25,72.73,73.44,77.97, 78.30,82.42,85.89,85.81,90.56,92.52,96.89,99.55,100.81,102.67, 106.18,109.43,111.34,111.99,117.86,119.22,121.30,123.56,128.22,129.55, 131.69,136.80,136.89,141.82,142.89,145.75,148.93,150.70,153.95,155.67, 157.86,157.39,163.64,165.34,171.05,173.59,171.88,175.07,178.66,182.60, 182.39,188.54,188.99,189.68,194.47,197.53,199.69,206.74,203.74,207.51, 214.28,211.45,214.82,218.00,218.41,221.75,225.21,228.36,230.34,232.87, 233.27,239.78,242.75,247.19,249.73,246.54,252.30,253.26,258.39,259.11, 261.86,266.62,265.50,267.46,279.13,276.68,276.79,283.68,283.76,288.57, 289.74,291.69,297.14,296.34,300.17,301.28,302.49,305.78,306.65,310.78, 314.88,317.80,320.16,321.89,327.70,328.32,333.26,333.99,335.47,341.52, 337.02,341.70,348.15,350.40,346.68,350.83,355.13,361.28,361.38,361.99, 367.40,372.18,371.80,375.01,374.70,379.59,384.54,386.66,391.91,391.45, 392.58,397.81,399.53,402.06,402.13,403.74,408.40,410.38,413.70,418.38, 419.29,422.90,424.35,428.29,429.34,434.76,431.78,438.74,440.92,441.31, 448.84,444.34,449.77,455.49,460.55,458.67,465.00,461.24,468.38,469.44, 473.58,474.73,478.13,481.47,476.46,486.62,485.15,491.06,491.33,493.80, 499.62,502.91,502.15,505.39,507.71,511.27,510.74,515.43,517.67,521.67, 522.97,529.21,529.01,530.06,533.95,540.73,541.66,542.75,548.20,542.93, 545.04,557.45,555.94,557.41,556.27,562.34,562.57,571.23,569.54,573.41, 573.29,576.02,581.88,582.61,585.48,585.47,594.30,595.95,597.01,598.30, 606.28,603.91,610.53,611.61,613.47,619.03,619.45,614.37,622.38,625.08, 628.89,630.53,633.90,638.99,645.29,641.63,645.70,646.74,651.60,659.03, 653.38,656.63,661.39,665.10,664.37,661.97,668.12,677.38,677.75,682.19, 682.22,685.92,686.42,684.74,695.26,697.20,695.02,696.35,706.32,702.40, 710.19,711.79,713.78,720.83,717.36,720.35,726.39,724.49,725.90,725.05, 728.25,742.32,737.31,738.71,740.47,745.83,744.02,753.42,754.93,760.53, 762.14,763.07,768.80,767.29,772.79,775.41,777.53,773.53,779.89,788.82, 24.66,25.56,28.94,31.47,33.80,34.76,36.93,40.51,43.05,44.83, 49.03,50.10,49.42,54.66,55.42,59.28,62.23,62.19,66.77,69.30, 72.21,72.28,76.33,77.73,80.93,83.25,83.20,87.05,88.54,90.43, 90.60,96.77,98.39,99.29,101.02,105.35,107.53,108.28,111.58,114.02, 115.68,116.60,121.90,123.69,125.50,129.26,131.93,134.99,135.99,140.89, 140.30,140.94,146.57,146.61,149.36,148.80,154.48,154.65,157.45,160.88, 162.14,164.79,166.07,170.49,167.41,172.87,177.84,179.08,180.05,184.05, 184.34,188.56,190.99,192.39,192.27,200.37,201.09,203.19,206.14,203.71, 208.95,210.51,213.82,215.84,215.60,219.89,224.69,223.66,226.35,231.58, 232.05,233.91,235.44,238.47,240.02,243.05,245.75,247.81,250.94,250.85, 255.21,259.19,257.14,263.37,266.71,265.98,269.70,271.44,270.15,274.37, 276.31,280.46,283.82,286.04,284.07,291.11,293.68,291.02,295.20,297.54, 296.59,302.45,308.88,307.44,309.19,312.93,316.11,318.14,319.18,324.61, 327.33,321.72,325.26,334.03,329.38,337.20,337.45,337.66,340.26,345.93, 344.92,347.65,354.59,352.94,354.26,358.54,362.20,362.08,363.75,368.32, 368.62,373.84,373.49,375.42,377.62,382.82,384.26,387.76,392.15,387.29, 391.69,394.55,392.60,403.39,404.12,407.50,403.25,406.48,413.42,415.23, 414.40,416.96,421.64,414.22,426.31,430.96,432.79,434.55,434.52,435.79, 440.98,440.45,442.05,446.03,445.75,452.60,448.14,457.15,457.56,459.20, 456.65,464.54,467.46,467.01,472.98,469.50,473.67,480.16,477.54,482.37, 484.39,485.60,485.93,489.62,498.06,498.93,502.08,505.10,499.22,511.14, 506.80,507.18,508.58,513.53,515.82,522.31,518.46,527.13,523.99,529.32, 538.25,534.83,534.79,537.82,535.63,538.61,542.36,549.34,547.86,550.29, 549.23,559.53,553.84,563.29,562.18,566.23,564.01,568.24,573.56,573.00, 577.66,576.34,579.66,586.61,586.16,588.80,591.72,591.62,595.66,598.13, 600.65,610.17,605.94,610.52,613.29,613.34,614.07,613.52,617.29,620.79, 623.22,620.20,627.04,634.27,631.55,633.97,636.07,641.48,641.35,646.51, 649.87,646.61,652.77,661.90,655.55,659.39,659.22,660.70,661.89,665.47, 670.84,674.73,675.38,677.71,680.41,682.17,684.12,681.27,690.89,694.43, 21.35,23.61,24.55,27.70,30.57,31.72,32.39,35.80,37.72,39.70, 40.51,43.78,43.98,47.93,47.81,51.93,53.00,57.02,59.11,60.50, 61.66,65.22,66.85,67.83,70.58,71.32,73.05,75.57,76.38,79.48, 84.22,82.34,87.15,87.98,92.24,92.35,93.23,95.95,98.69,99.87, 102.77,104.81,104.55,109.29,109.42,112.43,114.64,116.16,117.61,120.26, 121.53,125.04,127.30,128.99,130.68,132.53,134.63,136.90,140.05,139.14, 141.56,143.97,147.99,148.56,151.92,154.27,156.80,157.56,158.39,159.10, 164.19,163.40,166.86,168.18,172.59,174.18,171.16,174.92,180.07,180.92, 185.26,183.78,186.83,190.53,190.63,193.76,196.72,200.12,197.62,201.56, 202.32,207.81,209.68,207.79,210.88,215.09,216.16,219.24,219.37,220.53, 228.58,224.44,226.34,229.91,231.20,233.91,236.66,235.49,241.25,240.50, 245.98,244.06,248.88,247.98,253.55,252.49,255.55,258.80,262.27,258.59, 263.96,266.89,267.57,268.71,272.55,272.18,276.69,282.22,281.08,280.75, 283.50,284.31,289.73,292.43,294.75,295.95,299.00,300.76,300.51,300.13, 304.52,303.08,308.74,310.66,316.30,312.44,314.68,317.84,321.53,321.60, 321.62,322.42,334.25,328.27,325.22,332.86,336.18,340.07,343.37,344.59, 345.42,347.67,348.67,352.05,352.33,355.73,358.17,354.68,360.20,364.38, 367.73,367.34,373.03,371.01,375.48,371.48,383.73,379.84,381.08,383.91, 386.30,391.48,391.32,395.28,391.92,394.63,398.43,399.55,405.94,403.19, 405.48,406.11,409.82,418.19,411.97,419.84,417.52,422.43,428.77,422.82, 426.10,428.17,429.82,436.09,436.81,438.81,443.96,443.94,439.27,445.25, 446.99,441.06,458.35,453.67,450.52,455.15,460.25,462.98,467.94,466.65, 469.01,465.91,471.70,476.19,472.16,473.34,479.84,483.85,481.75,485.75, 492.37,485.81,495.04,496.55,496.09,499.25,498.89,501.86,502.46,508.14, 508.37,510.48,508.42,509.77,516.03,517.38,519.23,524.57,525.16,522.84, 523.51,529.51,534.24,533.92,532.92,534.96,542.05,540.41,541.77,545.02, 546.74,549.09,551.80,557.09,554.55,560.98,562.20,560.80,563.77,563.28, 565.61,575.40,576.23,574.88,575.72,574.39,581.83,580.96,584.00,586.49, 587.21,597.35,588.85,591.11,598.05,599.73,597.47,606.45,600.86,601.36, 19.32,20.19,23.07,24.44,25.68,28.17,30.18,29.74,32.46,35.27, 36.59,36.44,38.58,39.72,45.13,48.20,47.22,49.82,50.22,53.52, 55.45,56.67,57.34,59.40,62.22,64.55,65.01,67.28,68.58,68.44, 70.89,74.10,74.49,77.62,79.09,81.27,84.76,85.39,87.15,89.54, 90.61,91.67,91.24,95.58,96.16,98.20,98.72,99.83,103.33,107.04, 106.58,110.55,111.80,112.25,115.98,116.89,116.40,121.29,122.06,127.02, 124.94,127.34,127.35,133.06,131.18,132.29,137.74,137.76,138.43,143.16, 143.47,143.99,147.62,144.66,150.23,154.77,151.72,158.11,159.54,158.45, 164.16,164.79,164.81,167.60,167.89,167.22,171.27,173.70,176.17,175.22, 178.95,180.26,178.88,183.32,187.38,190.61,191.43,191.34,192.24,196.03, 195.35,197.08,200.93,201.79,201.38,206.13,204.73,209.18,209.93,209.70, 212.37,216.17,215.90,219.55,221.25,224.33,222.23,224.74,231.18,231.59, 233.44,235.69,236.22,236.68,239.37,241.40,247.09,243.06,244.64,248.76, 249.40,253.35,252.25,252.94,258.50,260.42,260.11,260.66,267.30,266.63, 266.77,265.75,270.98,276.12,272.46,275.10,277.16,278.30,283.29,284.04, 291.82,287.31,289.91,290.08,294.08,291.86,294.62,299.77,301.34,301.24, 303.99,305.06,304.74,304.92,310.02,314.08,318.33,317.43,318.25,315.95, 325.55,327.56,327.60,329.52,327.72,332.10,331.52,330.62,335.51,339.48, 343.32,344.92,340.84,341.07,347.46,346.44,351.89,348.86,353.29,354.16, 357.12,355.72,355.29,363.39,362.42,365.81,362.51,371.07,375.46,374.16, 374.48,375.23,377.80,379.41,381.30,380.98,386.72,393.12,388.38,392.07, 386.18,396.31,391.11,392.36,398.44,399.20,401.83,404.03,405.70,403.79, 411.22,410.29,408.98,409.91,420.71,418.25,426.99,421.21,424.34,425.96, 428.81,430.85,432.88,429.32,432.50,440.69,438.30,441.55,440.13,449.16, 449.80,450.32,452.16,450.02,453.87,446.68,456.02,454.30,464.02,458.72, 461.41,467.47,460.65,464.95,470.51,474.77,474.87,479.73,475.33,478.62, 485.45,488.56,484.59,484.25,482.73,488.81,495.65,495.16,494.46,491.97, 498.46,503.54,497.08,503.33,505.21,513.32,510.25,514.99,512.76,511.45, 512.60,517.50,521.63,520.70,524.47,529.66,525.18,527.67,531.86,533.87, 16.24,18.21,20.63,20.65,23.62,24.86,26.43,28.25,29.09,30.98, 31.10,33.39,35.57,35.71,39.32,39.53,40.09,43.14,45.10,45.48, 46.01,47.75,50.07,51.12,54.93,56.22,57.65,58.59,61.92,60.95, 62.65,64.07,66.72,68.97,71.25,70.66,71.66,73.58,75.24,76.51, 78.45,80.34,81.63,82.75,85.69,85.61,85.07,89.89,91.18,93.01, 95.30,93.87,97.95,99.80,98.24,101.75,101.97,105.64,107.11,108.94, 109.65,112.95,112.45,115.98,116.09,115.30,117.39,117.79,122.53,125.58, 125.62,127.20,127.45,130.36,129.52,133.72,134.04,136.62,135.74,140.65, 143.44,144.32,144.61,142.37,147.01,149.42,148.15,150.46,152.20,152.80, 157.75,157.38,161.03,163.71,162.72,164.21,166.00,165.09,169.31,172.02, 173.31,174.09,175.81,177.69,177.98,176.56,180.72,184.37,184.03,186.01, 189.63,190.22,189.40,193.28,195.77,196.22,194.36,198.56,199.66,200.30, 202.81,204.61,207.22,209.91,212.06,210.33,212.22,214.52,216.94,218.37, 222.02,219.34,223.57,221.47,225.42,231.09,225.48,230.77,229.35,231.97, 238.28,235.93,234.47,238.91,241.47,243.35,244.02,247.68,248.48,249.58, 249.91,252.75,254.82,251.94,256.27,256.77,256.18,264.22,261.69,262.94, 269.77,266.68,270.70,270.33,275.58,273.72,275.24,277.48,278.48,281.54, 279.66,283.74,287.98,281.54,283.48,288.60,291.82,294.61,295.44,293.13, 292.98,297.34,296.91,298.34,301.29,302.52,310.76,311.36,308.06,311.87, 314.56,312.97,317.36,319.07,316.25,322.37,323.94,326.19,328.02,326.37, 327.24,329.09,329.98,332.21,338.26,331.38,335.85,340.44,342.85,337.41, 340.87,346.07,347.53,350.12,350.15,355.14,351.99,352.46,359.46,355.47, 356.76,360.77,367.69,360.38,370.03,370.49,370.20,371.52,374.70,369.31, 376.79,374.84,377.21,378.15,380.30,380.31,383.24,383.95,383.86,389.64, 392.79,387.65,390.65,398.19,394.91,402.51,400.19,399.86,403.34,402.27, 410.34,403.37,408.93,413.33,411.89,413.24,419.52,423.35,419.47,416.96, 420.35,428.19,422.86,432.75,429.60,427.65,431.29,432.27,434.03,433.90, 445.39,436.77,439.88,438.04,445.79,446.10,449.45,442.38,452.51,448.78, 454.78,458.82,455.71,458.61,457.68,459.28,462.32,462.94,464.92,470.14, 14.26,15.62,18.07,19.05,20.91,21.62,22.77,25.14,25.59,26.59, 28.43,29.44,31.94,32.96,33.20,34.24,37.58,35.54,38.08,39.32, 41.34,42.50,45.24,45.95,48.74,47.34,49.61,50.05,52.42,54.34, 55.61,55.87,58.74,58.92,61.32,61.29,63.77,62.90,65.63,67.48, 69.39,68.28,71.91,74.33,74.93,74.70,77.03,77.59,78.30,82.74, 80.69,83.93,83.11,88.58,87.47,90.99,87.49,91.31,92.81,94.25, 94.79,97.03,99.14,100.13,100.74,102.28,103.58,105.62,106.10,107.65, 108.30,110.48,114.49,111.55,113.31,116.89,117.47,121.84,121.10,125.04, 125.10,123.68,121.88,126.98,131.56,128.46,133.38,132.94,134.20,135.56, 137.09,139.79,142.08,141.40,142.32,142.40,145.75,146.68,145.60,153.67, 150.94,149.81,152.89,152.53,155.43,159.77,159.93,159.13,162.22,161.99, 161.62,166.85,164.18,166.86,168.91,173.39,173.77,170.31,173.99,176.34, 174.66,178.27,177.96,179.09,181.78,184.05,186.55,188.83,187.34,192.52, 193.06,196.44,193.09,196.60,192.49,197.47,201.37,200.75,203.28,208.06, 207.04,210.57,207.93,209.81,212.06,210.60,212.51,216.35,214.61,219.49, 218.94,219.61,224.76,222.15,220.01,225.14,229.00,230.31,228.09,232.67, 234.47,232.75,233.81,239.34,236.39,242.70,239.34,243.25,243.64,246.44, 246.75,250.59,248.84,250.46,253.42,253.32,253.46,256.96,258.34,258.67, 259.16,263.24,264.11,262.17,263.39,265.27,268.33,267.77,272.17,271.08, 271.80,274.80,277.69,275.16,276.41,279.17,282.30,278.65,284.64,288.60, 288.36,285.94,291.31,289.87,289.91,297.93,299.03,294.66,295.94,297.65, 303.89,305.38,304.01,303.42,307.02,308.15,309.62,306.04,315.12,315.98, 308.31,317.89,315.27,318.08,322.97,319.08,326.30,328.67,322.27,326.30, 327.71,330.35,331.45,334.02,334.69,330.30,334.42,336.48,342.35,334.82, 342.18,341.61,341.72,343.36,348.29,352.55,348.32,351.35,347.51,351.26, 355.02,355.02,356.53,357.07,362.04,363.36,358.91,364.50,367.18,371.06, 367.56,371.27,366.34,374.90,370.98,371.38,378.93,376.42,375.48,377.11, 380.58,383.08,381.12,385.30,387.43,393.81,388.92,391.75,397.71,395.94, 395.11,398.48,400.57,404.96,402.28,402.60,404.35,404.38,402.71,407.43, 13.39,14.49,15.23,16.77,16.74,18.32,19.55,21.87,21.81,23.61, 25.44,25.81,26.18,28.26,30.06,30.84,31.28,33.01,34.20,34.35, 37.04,37.62,38.91,39.75,41.47,40.52,42.30,45.47,45.68,47.61, 49.69,49.56,51.52,53.00,51.89,53.80,55.73,55.73,56.28,58.43, 59.63,62.10,61.58,62.63,64.90,65.83,66.39,68.31,70.01,70.87, 71.43,73.75,74.25,74.12,75.42,78.59,80.02,78.99,84.87,83.49, 84.37,87.84,85.46,86.22,86.81,88.28,92.57,90.59,94.52,93.06, 95.61,97.68,98.61,94.96,102.76,100.65,103.81,101.57,105.96,106.57, 109.52,106.23,108.35,111.22,115.45,112.18,115.12,118.51,117.72,118.15, 118.55,121.10,123.06,126.01,125.65,128.88,127.25,127.25,128.44,127.70, 129.78,132.75,134.20,133.49,135.88,134.70,138.33,142.37,142.48,142.08, 143.41,144.08,147.76,146.41,147.63,149.44,148.85,150.11,150.74,150.63, 153.43,155.60,160.14,159.79,161.25,162.06,164.89,163.41,165.24,168.32, 165.37,168.10,169.91,172.70,169.06,171.62,171.00,175.89,177.79,177.53, 177.99,181.92,179.60,180.59,184.20,185.01,186.82,188.67,189.54,193.33, 192.71,193.27,191.89,193.22,192.77,196.29,204.81,201.12,203.14,202.44, 202.46,203.08,205.61,203.44,210.84,210.93,210.38,214.44,208.58,212.44, 211.46,215.07,221.38,217.97,216.88,222.00,221.03,220.78,226.04,224.28, 227.95,224.32,228.00,229.80,228.60,230.96,234.31,238.49,239.01,238.08, 239.35,241.69,244.18,240.98,246.97,243.90,246.34,244.35,250.32,247.73, 250.69,250.33,257.24,253.74,253.71,252.51,256.72,256.43,263.61,263.92, 260.30,267.57,264.01,266.49,261.88,267.56,269.68,273.54,273.16,272.67, 272.87,275.24,276.15,272.16,278.77,277.39,284.06,279.86,280.75,286.61, 285.59,292.23,285.94,290.17,289.45,289.63,292.44,296.68,293.94,296.80, 295.36,299.36,301.85,302.27,305.04,307.20,304.86,308.97,312.14,309.00, 307.77,304.20,315.36,311.68,315.58,317.63,317.39,319.94,316.65,317.10, 325.38,319.00,322.61,330.51,326.26,328.32,326.01,332.36,333.87,335.46, 332.18,336.41,334.51,337.19,339.65,340.04,342.54,344.36,343.15,342.08, 348.73,343.24,348.65,350.41,354.86,351.86,350.00,351.06,352.99,358.26, 11.60,12.28,13.11,14.73,15.09,16.37,17.16,18.69,20.23,20.10, 22.80,23.69,23.10,23.09,23.51,27.90,28.61,29.16,29.48,31.59, 31.71,31.83,33.72,33.86,35.22,37.49,38.06,38.22,39.78,40.03, 40.56,43.54,43.77,44.81,46.66,47.60,47.55,49.27,50.34,51.82, 51.95,51.89,57.55,55.59,56.66,57.73,57.28,58.41,60.57,63.98, 62.20,63.45,65.50,66.57,64.59,68.36,71.10,69.72,70.99,71.75, 74.07,74.56,74.73,75.70,79.43,76.93,80.81,79.28,81.56,83.52, 80.94,83.97,85.08,87.23,87.91,88.13,88.06,91.90,91.75,92.56, 94.50,96.12,96.01,96.27,97.14,99.73,100.81,99.61,101.96,104.03, 102.03,106.04,103.71,104.17,106.82,111.55,111.65,111.68,114.38,114.12, 114.73,114.21,116.11,119.04,117.18,119.91,119.70,120.96,119.19,122.93, 121.32,125.80,125.17,128.34,129.01,128.49,131.85,133.78,135.22,135.51, 136.55,137.32,139.78,139.89,136.79,141.16,139.91,142.52,145.42,143.69, 143.57,146.43,147.99,148.76,147.15,148.94,149.09,151.56,153.81,152.70, 155.32,161.85,161.27,159.38,161.63,163.30,163.72,164.00,166.76,162.82, 165.02,169.04,164.64,170.18,168.37,170.65,172.32,175.26,175.80,177.00, 179.25,177.78,176.50,178.28,181.51,183.74,180.30,187.51,185.15,186.45, 187.01,183.14,189.12,193.83,191.63,192.67,192.41,195.65,194.39,198.50, 198.20,201.65,199.78,199.60,200.57,201.88,202.79,205.37,205.39,204.96, 208.87,210.80,212.44,204.51,211.59,214.50,218.81,214.20,214.92,219.01, 218.25,221.00,221.70,218.85,219.40,227.04,224.90,228.63,228.83,223.28, 229.67,230.09,236.41,233.48,234.68,233.50,235.71,235.73,236.64,238.59, 238.19,238.26,238.93,241.35,245.29,242.93,246.09,243.64,246.83,244.76, 246.49,254.00,251.88,253.49,252.64,256.36,256.68,252.22,254.49,254.86, 262.96,260.91,262.70,260.69,264.13,263.28,268.03,265.75,267.69,269.53, 270.98,270.18,271.19,278.12,271.25,281.29,277.44,277.24,272.95,283.91, 277.39,278.92,280.09,284.52,283.50,288.54,289.93,287.50,288.03,293.58, 291.49,284.52,293.89,296.09,297.37,298.48,297.68,296.11,299.45,300.64, 305.55,306.29,300.04,303.06,304.59,312.90,301.75,305.27,306.95,309.78, 9.15,10.24,10.99,12.27,13.20,14.12,14.38,15.51,15.86,17.29, 19.01,19.34,20.12,20.27,22.73,23.32,22.26,24.65,25.87,28.11, 27.32,27.30,28.76,29.47,30.76,33.48,32.52,34.12,35.35,36.93, 36.11,36.18,38.47,38.93,41.95,43.42,41.48,42.85,44.17,43.21, 45.11,45.26,47.94,49.14,48.22,48.91,50.18,52.28,55.17,55.37, 54.66,54.69,57.28,57.19,59.66,59.00,61.50,62.79,59.45,61.76, 63.93,66.64,63.77,67.98,68.17,66.59,68.43,69.81,72.51,72.99, 71.71,71.09,72.12,74.55,76.88,80.44,80.61,80.32,80.84,81.09, 78.58,79.82,82.20,84.22,83.62,85.26,89.81,87.30,89.36,87.96, 90.85,93.97,93.29,91.85,94.13,95.28,96.25,98.74,98.03,95.73, 101.55,100.20,100.21,105.72,104.37,103.62,107.96,106.68,108.02,108.15, 106.86,109.61,109.30,112.19,113.52,115.24,115.40,117.00,117.65,118.20, 116.40,118.77,116.10,119.71,122.22,121.66,123.16,123.65,128.70,125.05, 129.48,127.95,129.37,131.70,132.38,130.51,133.69,131.42,134.25,132.22, 134.20,137.47,139.02,138.74,142.75,140.79,142.00,140.42,144.44,140.63, 142.27,143.00,148.36,148.56,152.08,151.33,150.02,150.36,153.77,155.07, 152.59,152.98,156.26,154.61,158.51,159.08,160.56,160.05,163.73,162.95, 161.60,163.75,163.28,164.05,167.12,167.53,168.07,172.54,170.66,169.22, 172.02,169.00,171.98,172.88,178.42,173.13,177.74,181.05,180.98,177.29, 178.34,182.24,179.81,185.14,186.28,188.77,188.67,188.38,185.49,189.77, 191.85,188.61,194.38,192.07,193.92,196.04,197.17,197.90,198.96,197.36, 202.64,203.22,204.14,205.87,203.09,207.84,204.88,210.91,207.35,206.05, 208.95,210.87,209.85,211.92,211.98,207.90,213.62,214.80,218.38,218.06, 213.32,218.25,218.36,219.00,222.37,221.97,221.57,227.70,224.32,225.13, 222.84,225.31,230.42,232.77,228.34,228.75,225.12,232.45,233.53,232.66, 231.10,239.73,236.80,236.31,236.45,237.71,242.49,242.31,245.31,245.35, 248.35,239.76,246.52,247.64,247.77,246.78,247.57,254.53,250.40,251.20, 254.50,249.98,253.89,260.76,255.79,256.18,256.65,254.59,258.77,259.48, 260.29,263.83,264.10,264.73,263.65,268.14,264.81,265.00,265.25,271.75, 7.87,9.26,9.33,11.47,11.49,12.11,13.45,14.30,13.99,15.94, 15.96,15.99,17.55,18.42,20.11,20.78,21.94,22.58,23.25,24.18, 24.57,24.66,25.25,27.56,27.74,27.44,28.85,29.97,30.00,30.39, 31.46,32.37,33.51,34.42,35.73,36.05,34.74,38.56,38.81,39.70, 39.64,40.69,41.35,42.62,42.65,43.29,44.91,47.90,46.77,46.69, 47.40,50.34,48.15,48.51,49.77,54.00,51.13,54.13,52.46,52.26, 55.28,56.04,56.74,57.94,59.02,60.45,59.40,63.14,62.42,63.52, 62.26,64.79,63.82,65.40,67.18,69.88,67.19,67.05,69.30,67.57, 70.61,72.26,72.59,72.08,78.10,74.49,76.16,75.86,77.91,80.56, 80.02,78.03,77.78,81.36,81.57,84.19,84.02,82.90,86.39,86.08, 87.54,87.54,89.60,90.14,92.48,92.01,91.36,92.74,93.22,93.85, 94.71,92.92,93.74,95.34,99.59,98.36,100.71,98.85,101.86,100.42, 104.58,100.60,104.36,105.79,103.69,107.08,105.72,110.97,107.70,110.59, 110.33,106.59,109.54,112.14,114.38,113.19,113.45,114.27,116.46,113.20, 120.75,116.83,121.67,122.56,121.97,118.18,126.06,125.36,124.02,127.43, 125.11,125.89,126.03,130.09,128.66,129.72,127.11,130.44,133.25,133.09, 133.32,135.88,132.62,131.79,138.30,133.51,137.85,136.48,139.15,144.25, 138.17,143.48,146.07,145.10,148.93,145.62,146.59,150.16,149.88,148.93, 148.45,152.23,151.76,153.83,151.79,155.05,155.43,154.74,154.57,156.36, 152.38,158.51,155.48,161.11,162.75,161.64,161.62,162.12,161.80,169.61, 167.20,170.84,168.83,168.62,172.76,167.46,169.87,171.06,175.99,171.36, 172.02,170.26,178.01,174.11,176.50,177.73,174.26,178.66,176.37,178.97, 181.19,182.30,185.19,180.18,185.54,191.01,184.37,185.12,190.14,183.97, 191.19,185.63,189.87,193.55,195.53,195.01,193.24,194.83,195.14,196.53, 195.55,195.19,196.73,198.77,197.93,196.98,206.07,203.65,201.23,206.53, 202.41,199.32,207.85,208.07,202.37,209.04,211.91,207.62,213.16,213.84, 212.45,211.25,211.69,214.19,214.79,217.83,214.84,218.13,219.49,215.90, 219.10,225.01,223.69,221.80,223.81,222.67,225.90,224.55,234.72,231.60, 228.50,225.31,234.04,230.08,229.87,227.16,235.49,234.75,236.27,236.95, 54.44,59.61,63.46,69.14,74.37,79.12,83.90,91.42,94.45,100.42, 105.62,109.44,115.95,120.31,125.00,129.38,135.66,141.67,147.86,151.23, 156.62,160.79,165.87,172.00,174.83,180.58,188.84,190.63,196.76,201.34, 208.59,210.82,217.48,220.82,225.74,232.59,236.46,243.44,248.68,254.38, 257.91,264.17,269.15,273.39,277.91,282.01,290.57,294.93,300.94,303.12, 309.64,314.78,318.36,324.81,328.77,332.49,339.69,342.51,349.28,357.41, 359.43,363.08,371.66,375.83,382.81,386.97,391.62,398.34,402.48,409.28, 410.96,417.15,420.52,423.60,430.65,437.33,439.45,450.15,451.64,457.63, 462.90,467.37,471.02,479.19,479.78,486.27,489.74,497.58,501.62,508.67, 512.65,517.67,526.08,529.36,532.17,538.90,544.84,550.64,553.51,559.66, 566.86,569.13,575.68,575.72,583.42,589.64,594.80,597.34,605.71,610.29, 616.33,616.95,626.45,632.21,632.93,639.49,646.34,651.16,656.80,665.34, 664.70,669.97,674.51,680.70,683.97,692.19,697.64,706.25,705.65,712.82, 716.81,720.25,726.24,727.94,736.56,740.79,747.15,751.78,754.44,759.15, 766.82,771.04,778.39,785.36,790.45,794.55,797.14,801.31,807.50,812.65, 817.61,821.92,828.08,832.05,840.12,842.47,851.49,855.91,860.12,861.81, 875.06,875.42,882.60,884.49,891.71,898.08,899.24,905.96,911.76,916.29, 917.51,925.92,930.31,930.74,943.22,944.70,952.12,957.60,964.68,968.91, 971.45,981.96,981.45,988.04,991.32,997.55,1005.55,1009.56,1013.16,1017.09, 1018.77,1027.53,1031.69,1037.94,1040.53,1045.82,1052.76,1057.17,1064.26,1070.53, 1076.68,1080.22,1086.97,1088.22,1094.84,1098.45,1106.26,1110.79,1113.08,1114.94, 1121.42,1131.93,1131.21,1139.99,1143.84,1148.70,1157.36,1161.54,1164.18,1172.28, 1176.82,1179.48,1185.02,1191.99,1197.31,1199.18,1206.81,1210.49,1217.16,1217.86, 1226.10,1233.81,1238.21,1237.60,1248.97,1250.84,1256.61,1261.46,1267.09,1271.53, 1281.61,1285.06,1289.17,1295.58,1299.19,1298.47,1309.31,1314.52,1315.62,1326.63, 1324.76,1334.83,1342.74,1348.58,1348.66,1355.60,1361.19,1361.80,1365.98,1377.93, 1379.56,1390.25,1384.15,1396.34,1399.25,1405.19,1410.32,1417.06,1420.88,1418.26, 1427.47,1437.87,1440.15,1446.06,1453.52,1467.21,1460.96,1466.78,1472.11,1474.44, 1481.46,1488.39,1490.21,1502.47,1497.72,1504.55,1515.69,1512.27,1521.37,1524.70, 48.91,52.89,58.11,61.89,67.26,71.93,76.33,81.40,84.12,89.11, 94.68,98.78,104.34,108.91,112.11,117.60,124.02,126.71,130.87,135.03, 141.14,145.80,148.92,154.71,158.02,163.68,168.84,175.33,178.64,183.21, 187.09,191.88,197.79,200.35,207.46,207.95,214.23,219.24,223.91,227.89, 232.74,236.84,242.97,246.98,252.95,256.36,262.43,262.18,268.87,274.52, 278.59,280.53,287.57,292.34,299.15,301.05,307.91,312.04,314.93,320.68, 324.64,331.63,335.20,339.88,341.21,344.49,352.29,358.82,363.46,366.95, 371.80,376.82,381.29,386.53,388.75,391.47,397.75,402.02,408.52,413.80, 415.78,421.21,426.20,430.76,438.70,439.89,443.82,450.70,452.46,457.98, 464.17,467.26,473.31,474.01,481.98,490.90,491.30,494.72,499.29,503.78, 507.45,512.73,518.70,523.08,528.26,529.83,539.30,537.42,545.96,553.27, 554.96,557.98,564.12,568.82,577.63,579.30,582.82,584.65,590.24,598.42, 599.81,604.58,611.89,614.87,620.94,625.84,631.69,636.95,639.39,641.64, 651.71,652.19,660.37,659.19,663.31,669.28,677.80,678.22,686.57,690.64, 692.16,699.60,705.63,709.43,713.77,720.24,721.50,727.65,726.54,737.06, 740.69,748.07,751.63,751.20,756.39,761.32,764.00,774.16,775.20,787.57, 787.64,789.29,793.85,798.57,805.06,807.53,814.02,822.46,820.32,830.28, 834.42,836.91,839.15,846.22,846.87,859.25,856.87,865.41,867.80,872.91, 875.44,886.45,888.98,891.12,895.05,902.36,905.34,908.69,918.80,918.34, 922.64,931.35,934.16,936.98,938.44,947.01,953.08,957.10,961.88,967.91, 967.82,974.30,974.13,985.28,989.98,996.20,1000.20,1007.96,1005.94,1011.70, 1017.49,1024.64,1027.20,1031.96,1035.34,1041.17,1048.39,1048.32,1050.85,1058.93, 1060.71,1063.39,1066.58,1080.76,1082.87,1086.45,1088.22,1091.39,1100.56,1106.53, 1109.70,1110.21,1121.47,1119.17,1123.28,1132.98,1139.13,1144.02,1144.48,1150.85, 1153.39,1164.32,1164.06,1167.38,1174.84,1182.59,1181.01,1186.11,1191.27,1194.76, 1199.98,1205.00,1211.78,1217.11,1222.73,1225.09,1228.67,1230.91,1232.82,1243.84, 1250.28,1255.10,1258.80,1264.56,1261.57,1275.57,1274.99,1280.00,1291.45,1286.61, 1296.16,1292.27,1304.81,1311.14,1313.58,1307.70,1314.62,1325.69,1329.98,1334.99, 1336.48,1346.03,1349.44,1354.22,1359.31,1361.56,1366.98,1373.13,1376.27,1377.93, 43.89,48.71,51.55,56.07,59.57,64.23,69.12,73.10,77.38,80.82, 84.85,88.66,93.85,97.18,101.40,106.34,110.11,115.56,118.15,122.61, 127.46,133.34,134.02,137.42,145.27,147.47,151.67,154.61,160.95,163.38, 171.14,171.47,175.79,180.68,182.43,188.74,193.69,197.90,202.24,207.91, 209.90,215.55,216.00,223.58,226.78,229.43,235.47,236.94,243.22,248.49, 248.58,255.17,259.08,262.96,268.61,271.33,273.87,279.80,286.81,290.67, 294.47,296.65,300.66,303.88,309.92,317.79,318.20,321.33,327.00,329.34, 335.67,337.90,342.87,343.60,349.45,358.07,358.47,364.25,368.50,371.33, 374.99,381.93,385.48,387.55,395.92,395.88,402.42,406.51,410.78,411.62, 415.24,423.74,429.95,431.39,434.80,437.84,444.16,444.28,451.58,452.42, 461.25,462.06,467.63,472.13,476.71,481.33,485.12,492.32,493.58,496.08, 503.40,504.05,511.69,511.95,519.31,519.94,530.64,528.99,535.28,534.20, 543.91,542.75,546.19,558.01,556.82,567.45,567.87,574.01,575.76,579.29, 579.52,589.03,591.61,597.86,599.33,601.80,609.09,612.26,619.71,622.38, 625.75,632.16,635.77,637.94,641.86,647.81,651.69,654.83,661.91,662.00, 662.61,669.90,674.07,676.49,682.34,691.54,690.03,696.13,700.17,702.81, 708.66,716.73,716.08,718.43,721.38,722.31,736.18,735.86,736.02,746.77, 750.12,753.50,757.16,764.95,762.32,770.55,774.24,779.21,783.19,785.85, 791.24,795.10,797.61,807.23,810.14,813.11,816.42,818.93,824.37,824.83, 833.85,840.74,837.34,843.92,856.39,852.08,856.02,865.23,866.88,872.81, 871.30,877.62,885.00,890.42,887.96,902.33,895.38,903.32,906.09,912.64, 912.45,919.16,927.60,929.34,935.15,936.57,939.75,942.62,952.98,955.16, 957.66,962.84,963.41,970.36,977.07,981.87,989.96,988.58,994.27,998.68, 997.55,1006.29,1007.54,1010.39,1017.43,1019.86,1025.07,1029.15,1031.63,1036.93, 1038.79,1043.80,1045.76,1052.15,1053.50,1061.75,1063.96,1064.98,1072.07,1079.82, 1084.03,1084.52,1088.24,1096.29,1100.92,1109.05,1098.94,1111.81,1114.40,1119.60, 1125.24,1131.95,1132.70,1134.40,1142.34,1135.46,1137.90,1152.81,1159.07,1164.78, 1162.72,1165.27,1173.49,1177.90,1182.37,1181.34,1195.07,1195.67,1195.80,1204.81, 1209.58,1207.87,1216.48,1217.88,1219.83,1226.71,1231.90,1231.90,1237.12,1233.94, 40.74,42.52,46.67,51.37,54.61,58.20,62.43,64.23,68.23,72.35, 77.29,81.56,85.39,87.70,90.63,94.16,98.94,103.05,108.15,111.92, 115.25,119.20,120.78,125.13,130.76,135.03,135.93,140.27,144.16,145.97, 150.57,155.01,160.29,162.22,164.93,168.30,174.33,177.02,180.97,185.29, 188.42,190.56,196.71,199.75,204.28,210.36,210.47,212.53,217.02,224.04, 225.88,228.61,232.53,235.74,242.30,244.56,249.68,255.61,256.76,259.93, 261.99,267.53,271.93,273.88,275.38,281.04,286.11,288.14,293.64,296.93, 299.53,302.98,305.96,308.96,312.88,319.93,320.70,325.24,332.26,331.57, 339.64,340.44,348.01,348.36,354.52,359.28,358.71,365.50,365.36,371.74, 374.99,380.15,381.34,387.28,391.69,394.17,396.04,402.85,409.57,408.95, 410.10,416.09,418.45,423.17,427.67,431.28,430.91,439.56,442.44,443.45, 454.05,454.17,458.59,463.63,465.84,471.05,472.12,474.51,480.52,481.24, 487.39,488.10,496.14,498.76,503.39,504.45,510.89,507.76,520.17,520.95, 523.11,526.77,531.05,533.13,540.56,544.88,547.96,549.28,555.51,560.39, 560.94,567.18,569.56,574.07,572.01,580.53,588.36,590.44,590.44,592.26, 597.86,599.53,606.35,611.32,611.80,615.01,619.07,623.29,628.88,631.02, 636.34,635.65,643.51,647.23,651.51,656.89,658.24,657.92,667.93,665.29, 673.60,678.90,683.64,685.50,690.73,691.92,697.83,700.85,704.52,710.01, 712.30,718.96,719.95,722.39,728.41,730.84,734.67,736.92,742.17,745.45, 745.94,749.50,756.98,756.19,762.26,768.23,771.78,774.14,776.35,782.76, 782.97,787.11,792.90,799.05,795.37,801.18,810.12,807.23,815.82,818.24, 822.39,831.70,832.17,837.30,841.19,840.52,847.96,848.97,851.81,861.44, 860.97,862.26,865.78,874.39,873.95,879.75,880.34,883.96,892.03,889.23, 890.95,899.81,906.29,910.87,910.04,918.19,923.65,924.97,923.25,933.68, 933.73,937.78,945.01,942.28,941.26,952.85,956.42,964.57,968.73,966.49, 969.21,974.40,978.78,984.00,980.10,988.00,994.46,997.38,1002.28,1007.80, 1009.07,1012.72,1018.68,1022.15,1021.53,1027.70,1032.83,1032.50,1037.87,1033.88, 1055.31,1051.58,1052.74,1054.85,1062.41,1066.44,1064.66,1068.11,1074.39,1080.48, 1082.14,1091.96,1094.26,1096.37,1101.49,1099.82,1103.65,1110.01,1114.10,1118.57, 34.92,38.51,41.03,44.91,49.80,52.11,54.85,59.58,62.15,65.28, 68.14,72.61,76.15,78.84,80.93,86.28,89.10,91.16,93.59,98.43, 103.22,105.00,107.65,113.24,115.08,120.07,123.57,125.25,127.70,131.18, 136.34,137.67,142.64,146.33,148.97,149.83,155.78,159.30,162.97,165.64, 170.87,169.39,174.56,179.90,181.28,184.96,188.64,191.11,195.92,199.25, 202.41,204.56,206.88,213.21,217.81,219.83,223.97,225.28,231.29,234.73, 236.03,240.39,241.08,244.48,247.29,254.45,255.65,260.60,261.31,266.42, 271.13,272.06,274.67,279.17,280.27,284.17,286.65,291.88,295.29,296.18, 300.46,305.01,309.66,312.63,316.52,317.56,320.95,328.64,328.33,330.84, 335.73,339.78,342.95,344.92,348.75,352.62,355.89,357.96,366.19,368.10, 368.50,371.48,375.19,376.94,379.82,390.99,392.12,391.91,395.67,397.07, 404.12,404.85,408.97,412.33,416.96,421.83,424.82,426.24,429.77,430.27, 436.48,438.14,445.32,448.65,447.48,455.50,454.95,462.09,462.02,464.10, 471.76,468.31,478.03,481.57,481.91,481.50,491.57,496.70,499.40,498.71, 502.48,504.12,507.94,511.10,515.03,520.30,522.48,531.16,526.47,538.23, 532.85,542.97,540.55,544.38,554.29,557.96,550.11,554.42,565.55,566.59, 569.30,570.23,580.33,582.49,583.03,585.26,587.76,591.85,594.47,599.63, 599.00,606.29,611.14,613.48,618.61,621.76,618.30,627.64,632.61,634.15, 635.59,632.97,645.91,646.07,652.62,653.25,657.95,659.00,664.54,665.88, 667.92,672.71,677.03,684.76,689.99,685.08,693.62,692.47,691.95,698.46, 701.04,708.10,709.98,712.12,713.54,722.53,724.67,732.57,728.11,732.99, 737.89,737.74,744.13,748.57,746.95,754.29,752.08,761.73,769.11,766.37, 771.12,770.31,778.26,775.64,787.00,787.94,790.22,792.72,799.95,801.06, 809.20,806.41,811.76,812.81,819.03,822.16,827.10,825.86,832.15,830.61, 833.37,843.35,846.54,854.58,853.35,853.70,855.80,859.30,865.83,868.96, 872.66,870.90,872.79,878.84,881.70,886.79,895.73,887.54,898.74,899.67, 902.68,912.19,912.10,911.51,919.11,921.81,926.06,934.84,933.40,928.62, 936.55,946.03,943.93,943.32,951.26,952.30,952.04,961.84,967.84,966.37, 967.20,975.35,982.97,985.04,988.02,988.34,991.24,989.80,991.97,1003.13, 31.28,34.44,37.22,41.14,44.69,48.49,48.68,53.22,55.84,58.21, 61.56,64.50,68.08,71.61,75.19,76.83,78.03,81.95,85.53,90.41, 90.12,92.69,97.28,98.31,102.92,106.88,109.81,111.50,115.33,117.40, 118.98,125.40,125.20,130.08,132.09,136.06,137.87,140.43,145.50,147.03, 152.24,156.65,157.42,157.76,163.21,167.45,169.55,171.66,172.50,177.36, 181.50,181.47,187.49,190.18,194.00,193.45,200.33,200.25,204.63,208.80, 208.65,212.90,215.02,217.86,223.20,226.22,227.82,232.71,234.22,239.42, 243.27,243.99,244.12,248.81,250.14,255.28,262.75,261.30,265.83,267.65, 265.83,274.86,276.80,283.20,279.91,284.58,284.27,294.60,296.03,298.03, 302.26,304.26,302.24,311.43,314.89,318.43,313.59,319.71,323.81,325.10, 328.76,335.14,333.43,336.07,346.05,343.63,348.83,354.50,358.79,355.60, 362.55,362.97,367.74,369.79,364.50,377.43,378.07,378.39,383.55,387.59, 387.63,394.25,393.71,398.77,402.24,404.33,404.02,413.45,410.35,415.05, 418.52,422.52,423.95,429.07,426.95,434.38,435.29,438.33,444.37,447.73, 445.64,455.36,455.32,459.93,461.31,464.58,469.06,467.73,473.61,476.32, 482.74,484.33,487.40,491.09,494.23,494.00,496.86,495.51,507.70,506.64, 508.79,512.78,516.86,515.74,519.82,522.11,525.98,526.02,535.80,536.15, 539.35,539.80,547.61,549.26,551.12,556.64,557.61,559.17,562.16,569.77, 566.93,570.36,575.69,581.75,579.39,587.58,587.61,587.62,589.42,596.37, 594.57,602.05,600.75,606.68,612.86,615.62,621.46,623.54,622.02,621.03, 630.89,630.86,631.62,636.83,642.03,643.34,649.27,648.75,653.34,655.51, 656.69,665.13,660.35,664.97,671.82,669.42,675.95,683.76,678.48,680.54, 688.20,686.84,693.04,696.27,698.33,700.27,699.46,706.35,713.06,710.42, 720.14,718.30,723.60,723.73,725.50,728.80,733.78,740.49,744.37,737.81, 749.53,752.30,751.78,751.07,759.79,762.19,764.12,765.07,770.23,775.12, 778.96,781.71,780.99,792.00,785.55,791.79,791.21,798.34,802.29,802.27, 803.93,811.84,813.59,824.20,818.93,815.41,824.70,836.06,825.50,835.40, 841.38,838.90,843.08,846.54,854.00,856.20,857.41,853.41,860.25,859.53, 864.41,868.38,868.90,876.95,872.79,886.25,886.94,888.91,890.60,897.39, 27.91,31.91,33.84,37.21,39.01,40.71,42.61,46.60,50.65,51.91, 54.53,57.35,58.69,63.89,65.66,67.12,70.25,74.22,76.80,78.40, 81.89,82.77,87.07,89.34,91.91,93.74,95.44,98.10,103.44,105.63, 108.63,112.76,113.61,116.09,119.96,119.86,124.33,126.00,127.07,131.90, 135.38,139.81,139.70,143.65,141.78,148.07,152.69,153.51,155.86,162.42, 156.69,163.01,165.05,168.69,172.73,172.42,176.96,179.74,182.66,185.22, 186.07,188.22,194.68,195.40,198.61,201.54,202.15,203.16,208.08,213.53, 214.45,214.88,217.65,224.60,226.34,225.94,232.42,234.20,236.71,234.60, 244.15,244.41,248.61,246.89,250.95,252.94,256.71,259.65,260.82,264.40, 267.87,268.43,276.22,275.15,280.51,277.56,285.25,286.31,291.99,293.76, 291.98,297.60,302.32,305.18,302.80,306.78,310.10,315.72,316.55,319.58, 321.90,322.65,325.20,328.74,330.76,334.79,334.70,339.57,349.47,345.10, 349.17,347.83,353.18,359.17,359.80,357.25,365.27,364.56,369.17,368.55, 370.74,376.40,378.82,381.55,386.04,386.55,391.60,393.35,398.02,397.41, 399.90,404.10,405.49,409.46,413.02,413.02,413.35,418.48,420.38,425.24, 426.00,428.73,428.30,437.61,437.18,440.35,444.85,445.16,447.47,450.65, 453.62,459.57,462.78,463.15,465.71,464.90,473.14,474.02,475.60,476.65, 479.76,482.69,480.23,484.69,487.33,493.41,496.48,498.28,497.18,509.89, 505.96,510.90,511.03,512.66,516.87,516.66,522.00,521.92,527.92,532.11, 531.52,538.20,538.83,537.40,546.20,545.34,546.94,550.05,555.75,558.51, 554.72,560.63,563.63,569.03,572.63,573.11,575.25,578.69,576.56,574.62, 588.30,587.55,586.44,596.22,596.02,599.84,600.01,606.35,606.92,615.18, 617.24,614.61,621.40,619.74,618.24,630.09,625.00,633.92,629.79,631.73, 644.04,640.42,647.24,653.41,656.25,649.72,651.96,655.59,661.59,664.49, 663.96,668.39,673.13,672.64,672.29,675.82,677.31,682.64,687.01,692.64, 685.97,696.59,698.73,699.75,704.90,709.67,706.59,709.97,712.50,721.47, 717.68,715.99,725.48,726.14,731.59,734.58,734.61,734.06,741.26,745.11, 745.64,744.96,752.38,751.16,758.63,761.96,766.17,766.52,765.06,759.59, 772.10,775.07,778.42,778.29,787.53,779.76,788.29,792.78,792.36,797.35, 25.39,28.43,29.67,31.15,34.51,37.36,39.64,41.79,45.09,46.27, 48.30,50.45,54.24,54.55,58.79,59.10,60.74,64.37,67.19,69.81, 71.67,75.13,76.81,80.04,79.57,86.71,87.11,88.06,91.52,93.98, 95.61,97.81,100.56,101.96,102.89,106.31,109.93,113.24,111.07,115.98, 119.91,121.66,124.39,126.73,127.61,132.87,132.08,137.71,137.45,141.25, 142.88,145.22,148.24,150.82,152.35,154.00,157.63,161.27,165.60,166.68, 164.82,168.79,172.41,176.00,175.33,181.86,178.79,185.34,186.80,185.88, 192.33,189.62,194.15,197.25,197.09,198.10,203.87,210.18,208.20,209.25, 213.45,213.96,214.87,219.07,225.25,227.31,227.69,229.59,231.17,235.29, 240.89,240.52,243.02,245.82,250.82,251.69,249.89,257.41,258.02,260.68, 262.50,263.10,264.68,266.79,273.95,269.85,275.24,278.23,281.48,280.24, 285.25,288.69,290.19,292.00,293.23,297.66,296.83,301.18,309.77,302.42, 310.86,311.90,317.18,315.35,318.99,320.20,323.49,326.52,328.67,331.10, 332.43,334.79,338.83,338.18,339.27,350.28,347.75,344.06,348.37,353.61, 356.12,358.15,364.11,362.56,364.33,366.81,370.72,373.53,374.22,375.07, 377.51,377.63,385.40,387.62,385.45,392.19,393.62,393.30,398.30,397.52, 404.46,406.04,411.13,410.59,413.65,415.74,416.86,423.27,419.48,423.72, 427.33,431.22,427.13,434.89,436.79,440.52,440.23,448.35,447.03,449.95, 449.45,453.84,457.37,456.75,463.13,462.15,465.17,470.66,468.88,471.19, 473.42,475.67,476.60,482.27,480.05,482.96,484.21,492.65,495.29,495.31, 501.07,502.06,504.17,503.57,509.21,510.97,515.50,515.05,521.64,520.18, 515.77,521.92,527.06,520.89,527.84,537.00,536.98,540.75,541.15,545.20, 546.61,548.14,546.21,557.39,562.87,559.77,559.99,564.62,558.55,568.49, 566.85,577.93,572.80,577.59,572.60,577.79,586.70,583.77,589.21,591.91, 594.08,599.49,595.15,605.47,601.87,607.26,605.43,606.80,605.76,615.98, 618.24,612.54,619.47,623.39,621.26,629.78,630.90,635.39,633.13,638.01, 641.20,641.29,647.11,647.60,646.45,652.65,651.61,656.21,661.95,661.59, 660.91,669.00,668.18,670.22,672.99,676.55,677.18,676.43,681.24,683.53, 689.25,687.43,693.85,695.77,695.31,695.45,705.40,703.87,706.98,712.72, 22.12,24.44,26.56,28.96,29.86,33.01,35.86,37.96,38.64,41.55, 42.66,44.43,47.64,49.25,51.30,55.02,55.16,58.26,60.17,62.14, 65.62,65.71,69.29,73.10,72.27,74.35,76.20,76.93,82.49,82.83, 85.83,84.96,89.40,90.55,94.07,94.99,97.37,98.69,101.72,103.15, 106.93,107.52,109.01,114.08,114.82,117.25,120.09,119.55,123.82,123.32, 127.92,130.38,129.66,135.28,136.47,137.56,138.17,140.54,144.08,147.57, 146.47,147.86,150.76,155.10,156.63,156.14,163.10,165.38,170.54,166.24, 165.87,169.70,172.42,174.68,174.90,178.21,179.71,185.64,188.72,190.77, 188.78,192.41,194.90,194.96,198.68,197.86,202.68,201.92,208.93,208.96, 209.15,210.29,215.63,216.07,218.33,222.97,222.82,226.63,228.69,227.67, 231.29,230.61,233.28,239.34,237.48,242.42,243.86,245.65,248.49,253.60, 255.11,252.44,257.09,260.84,260.84,262.50,261.37,267.82,271.55,276.45, 272.17,275.04,280.57,279.52,282.05,287.91,287.52,289.55,289.86,293.99, 292.35,297.77,299.73,300.93,306.45,306.20,305.31,310.16,315.66,311.06, 317.19,315.75,321.27,320.52,324.56,327.24,328.74,334.97,332.98,341.98, 333.58,339.08,342.78,344.65,345.88,344.89,351.74,352.81,356.33,353.24, 354.98,361.46,361.59,362.47,365.16,372.19,374.25,369.20,373.63,376.23, 377.10,378.36,381.69,385.37,384.90,389.71,391.67,394.74,391.68,392.17, 398.79,401.27,402.59,400.07,407.68,408.51,413.22,412.65,414.06,419.10, 421.74,424.20,420.97,425.18,425.85,434.76,438.09,434.21,441.97,441.42, 445.80,445.30,446.66,446.87,455.13,454.11,454.57,454.92,452.33,464.42, 460.93,468.77,472.01,468.46,471.55,476.49,473.32,477.41,481.85,486.59, 485.74,489.16,486.26,491.21,489.59,496.43,491.16,504.57,499.79,506.39, 508.12,510.67,506.69,515.15,513.71,513.14,513.36,520.58,522.57,519.27, 525.72,527.53,526.51,529.92,528.15,539.44,544.26,542.71,541.71,544.47, 543.47,549.81,551.66,555.74,551.83,555.32,562.75,563.20,568.28,563.65, 567.15,571.06,570.17,575.98,575.72,576.74,578.93,584.12,582.80,585.48, 584.66,593.61,591.09,596.66,600.91,599.57,603.49,601.91,601.31,607.70, 612.83,615.68,605.65,622.65,620.98,618.72,621.51,626.92,625.04,628.37, 20.00,21.69,22.92,23.21,26.80,28.01,30.09,31.39,34.49,36.84, 38.88,39.90,41.41,45.18,46.87,49.11,49.04,50.61,52.57,52.63, 56.74,59.41,59.50,62.51,63.18,64.60,68.06,68.35,71.88,75.84, 76.13,78.30,77.72,80.65,84.37,83.43,86.47,89.37,90.09,92.74, 96.62,96.67,97.87,102.59,101.61,102.57,105.56,107.88,106.54,109.61, 112.49,114.18,117.06,117.21,120.10,121.43,125.37,125.71,128.80,129.11, 132.58,133.95,132.68,136.54,141.09,144.67,143.18,145.05,143.22,149.79, 151.02,154.95,155.06,154.92,156.37,161.44,162.12,165.29,164.03,164.69, 168.49,170.00,171.21,171.43,173.82,177.26,181.25,182.33,181.13,187.15, 184.62,185.85,191.19,193.05,196.25,200.18,196.65,197.60,203.08,200.67, 208.32,208.06,208.35,211.38,216.07,214.13,213.58,219.78,224.31,221.45, 223.00,229.17,229.11,229.57,231.95,232.29,235.15,235.89,235.77,238.99, 246.19,241.88,243.83,249.16,249.78,251.94,251.74,252.93,258.49,256.17, 258.94,259.81,261.71,267.80,269.85,272.04,272.15,278.68,280.35,276.74, 276.55,282.77,282.57,285.87,289.89,288.66,291.87,292.70,293.83,300.03, 298.61,301.04,303.79,303.54,304.28,309.95,310.11,311.86,310.07,317.11, 315.14,316.62,322.95,322.19,327.32,325.50,329.45,331.29,330.73,331.10, 336.59,334.69,336.71,341.90,337.05,347.58,346.68,344.76,352.19,351.62, 357.16,354.28,363.04,361.69,355.62,363.88,367.61,366.85,368.94,372.38, 369.99,374.52,379.79,375.75,383.75,381.80,382.18,389.25,389.01,388.57, 388.40,390.18,392.05,396.21,394.24,402.34,400.59,406.08,403.41,407.93, 406.87,414.89,409.48,412.75,416.34,419.27,420.28,421.47,424.08,429.76, 418.61,432.14,434.56,429.42,438.94,433.99,440.38,439.39,443.87,443.85, 450.55,445.61,452.41,459.61,451.39,451.73,455.54,459.63,464.48,468.98, 463.21,471.00,469.24,470.67,472.47,470.97,481.52,479.36,479.07,482.93, 485.88,483.39,485.03,484.95,487.59,494.79,502.06,500.34,501.03,502.50, 500.38,509.17,512.03,503.27,514.82,511.31,511.74,514.30,519.80,526.50, 519.57,524.31,525.68,526.53,523.00,532.61,533.01,536.40,539.28,538.18, 541.88,544.55,549.63,547.41,550.22,549.45,549.69,547.96,551.98,554.99, 16.94,18.50,21.08,22.65,25.15,24.87,26.63,28.76,30.38,32.38, 34.86,35.30,36.45,37.26,42.43,40.70,43.80,46.64,45.39,49.41, 51.15,53.03,52.91,55.05,59.26,59.01,61.02,60.55,63.20,64.20, 65.80,68.99,70.26,72.24,71.56,76.86,76.41,79.60,80.18,81.20, 83.86,84.72,84.40,89.45,88.62,88.62,91.54,94.05,94.44,98.50, 97.22,99.22,102.44,102.27,105.54,107.62,110.85,110.68,113.11,114.97, 114.32,116.13,121.62,122.12,120.27,123.38,126.27,124.05,124.24,132.18, 133.54,133.41,134.81,139.11,138.71,140.38,143.61,146.93,146.39,149.49, 148.07,151.08,153.37,153.39,155.30,157.42,158.07,155.07,162.47,165.87, 162.18,166.99,168.55,169.83,169.17,176.53,176.60,174.18,178.22,184.00, 182.12,182.72,182.00,188.04,184.64,191.00,193.84,189.70,195.73,194.38, 198.59,200.06,198.60,203.44,206.04,207.09,206.06,210.52,211.12,213.44, 218.68,213.30,214.13,221.93,218.63,219.38,226.78,230.10,226.37,228.97, 233.40,233.82,228.92,235.31,238.41,243.86,236.74,245.64,245.64,242.97, 247.31,249.69,252.61,251.49,250.14,250.86,258.11,261.26,261.04,261.51, 262.71,267.94,267.63,266.94,271.24,273.07,271.55,275.87,277.74,278.74, 275.68,282.14,282.29,285.75,288.95,289.68,289.00,291.26,295.00,296.21, 298.53,294.04,301.20,303.18,301.30,307.14,314.06,306.41,309.32,314.03, 314.07,311.99,316.94,320.55,322.82,325.10,323.29,327.12,324.79,334.21, 326.50,330.17,325.90,333.40,340.82,338.94,338.79,343.18,343.90,345.05, 341.07,346.32,347.26,352.59,352.51,352.69,354.55,354.89,359.90,363.39, 365.81,365.21,363.27,365.41,368.16,373.29,372.63,373.43,373.86,371.28, 382.52,379.29,383.45,383.07,385.73,384.51,389.79,392.94,388.06,393.62, 395.63,398.94,400.52,400.26,402.72,404.79,405.17,408.55,404.42,414.14, 411.16,410.59,412.43,416.72,421.24,411.90,425.97,421.78,421.25,429.30, 432.16,428.94,428.99,433.44,437.05,439.71,440.12,441.47,441.43,441.40, 442.45,446.13,446.12,451.16,456.02,447.29,454.93,459.09,456.13,462.89, 459.87,466.04,463.15,472.34,465.56,480.19,473.83,470.86,471.74,477.09, 475.94,476.02,477.39,486.19,487.99,490.82,487.57,488.88,495.13,492.26, 17.06,17.37,18.55,19.69,20.60,21.95,24.19,25.72,27.93,29.48, 31.52,30.52,34.24,34.06,37.73,36.44,38.58,39.49,39.79,42.86, 45.30,45.95,47.84,49.22,49.91,53.65,52.87,54.26,56.35,57.72, 60.83,61.89,60.07,62.77,64.90,66.55,66.81,67.86,70.94,72.88, 74.26,76.12,76.14,78.77,81.26,82.42,82.14,84.58,86.62,85.89, 90.19,88.41,90.18,93.16,92.76,96.34,96.99,100.82,100.80,101.77, 104.34,106.41,104.63,106.58,105.92,111.10,112.48,110.25,112.89,118.26, 119.14,117.87,120.40,120.84,121.15,125.52,127.96,126.49,129.42,127.30, 132.41,134.55,135.52,136.22,139.43,138.20,137.50,139.26,142.24,147.71, 145.67,147.15,147.57,148.23,147.78,153.13,156.33,155.90,155.62,160.17, 160.76,162.87,161.18,168.70,166.49,170.03,167.02,169.82,170.43,174.76, 175.64,177.27,179.74,180.88,179.37,178.42,185.25,182.86,187.59,188.81, 187.67,190.51,192.28,194.91,196.79,195.38,199.86,201.60,202.12,202.67, 202.21,201.72,207.84,205.94,209.04,212.91,212.19,211.95,214.96,215.98, 218.48,220.00,224.04,224.91,223.56,223.94,224.89,227.85,229.77,235.08, 232.29,232.17,239.71,237.13,239.10,241.10,243.09,242.16,245.41,248.17, 248.21,247.44,248.93,250.92,253.74,256.44,257.37,254.01,257.95,261.32, 262.92,258.08,265.72,263.27,270.02,269.70,269.41,270.82,274.10,277.35, 280.15,274.28,281.49,277.99,286.91,279.55,288.91,284.79,291.39,291.65, 291.31,300.89,294.94,294.21,297.94,300.95,296.39,301.10,308.20,305.39, 304.61,308.02,307.16,309.08,310.75,316.79,311.37,316.86,318.79,318.67, 326.79,323.11,322.24,326.57,324.61,330.15,331.03,330.15,327.87,336.09, 334.67,334.36,339.99,343.62,339.05,340.72,344.60,338.31,353.43,342.94, 352.34,353.06,358.69,354.77,356.55,358.10,359.00,365.87,355.50,361.23, 367.25,364.44,368.62,367.43,368.83,368.97,373.79,372.20,376.30,372.43, 379.17,376.33,379.46,382.78,383.87,381.52,389.39,389.27,394.29,396.62, 393.80,390.82,397.60,399.19,395.63,402.59,400.73,402.75,409.73,405.00, 403.84,412.36,414.92,413.36,415.24,419.36,413.85,417.96,416.08,418.63, 425.12,423.91,422.38,424.28,428.29,433.41,433.01,431.16,432.64,435.12, 13.62,15.11,15.06,18.56,17.99,19.92,20.62,24.16,23.66,25.89, 25.62,26.49,28.40,30.11,31.03,33.40,35.16,33.90,36.62,37.07, 39.16,39.56,41.68,43.77,44.48,44.14,45.93,47.50,48.41,51.86, 52.28,54.04,55.88,55.63,58.14,59.63,61.39,61.17,64.84,63.89, 64.20,65.39,69.22,68.22,67.42,71.92,73.98,72.21,76.30,77.70, 77.09,78.78,78.89,81.71,83.71,82.42,86.79,84.84,86.80,88.79, 90.33,93.64,93.64,95.77,95.42,96.76,98.70,99.46,99.71,101.81, 100.93,106.24,106.87,106.82,106.88,106.19,110.26,114.79,116.79,113.44, 114.24,116.83,115.00,120.48,121.25,123.07,124.90,127.79,128.36,124.92, 126.14,125.53,129.10,131.91,133.14,136.19,138.08,136.51,138.70,142.18, 143.65,139.89,143.84,143.49,144.39,150.16,150.52,148.78,154.05,153.93, 155.87,158.67,156.07,156.91,158.70,157.51,161.27,164.11,162.57,166.12, 171.03,166.81,169.61,171.61,172.36,171.85,171.82,177.36,176.15,176.41, 179.41,180.96,184.97,185.06,185.21,187.83,187.69,188.30,191.70,190.99, 194.23,193.31,196.37,196.67,199.56,201.00,203.43,200.59,200.21,203.82, 206.59,208.09,206.84,209.74,209.91,212.12,211.84,214.14,214.57,214.95, 212.77,218.63,220.66,220.84,223.96,224.16,226.29,224.94,226.44,227.51, 227.91,235.84,231.50,232.97,236.28,237.23,238.16,242.55,245.13,242.47, 240.38,244.52,247.05,248.37,248.90,252.59,251.40,253.33,253.38,258.48, 253.69,260.06,256.25,263.77,262.89,264.63,261.94,266.54,265.62,269.71, 270.39,269.91,276.51,272.48,272.15,275.48,284.90,276.55,279.75,286.30, 283.50,284.56,285.33,286.95,287.90,288.58,288.68,288.95,291.54,294.90, 295.41,295.40,292.06,299.27,302.77,300.15,304.20,304.36,303.06,307.33, 305.49,308.37,307.46,312.38,311.73,311.38,317.40,314.84,314.31,319.05, 318.86,322.82,325.72,326.22,325.38,325.39,328.39,329.26,332.54,327.63, 334.51,337.91,337.77,340.03,341.88,341.03,343.04,338.85,343.01,346.68, 342.97,345.96,349.41,350.62,350.95,349.34,350.91,358.46,355.15,360.22, 359.31,361.29,362.05,362.14,364.68,360.02,363.80,372.43,373.53,366.34, 371.58,374.48,375.82,372.96,371.92,375.55,377.94,384.53,385.67,382.36, 10.60,13.89,14.05,15.27,16.49,17.26,18.64,20.26,19.86,22.47, 24.14,24.27,27.00,25.57,26.56,28.89,29.92,30.41,31.59,32.72, 33.07,35.11,36.79,37.89,38.73,40.17,41.95,42.98,42.01,43.66, 45.06,46.22,46.67,47.90,51.33,50.36,51.84,54.65,53.68,55.77, 55.99,56.34,58.94,60.32,59.60,64.81,64.80,65.03,65.48,68.40, 68.37,70.47,72.63,72.70,71.93,72.90,75.57,76.74,78.84,77.91, 78.30,78.41,80.93,83.75,82.63,84.77,87.16,90.50,86.38,90.31, 90.47,92.17,92.66,94.70,97.31,94.39,98.06,97.62,99.74,99.20, 101.61,105.09,101.65,107.35,108.73,105.12,108.78,107.42,111.31,115.09, 113.68,118.47,112.25,116.15,119.96,120.77,120.84,119.94,123.20,124.12, 123.68,123.76,128.61,129.36,128.62,132.71,130.84,133.50,131.15,133.53, 135.11,136.21,134.59,136.73,139.17,141.80,143.73,145.93,142.73,147.98, 146.89,149.44,150.20,156.96,149.12,155.15,153.42,156.05,156.93,157.49, 161.39,158.86,158.89,164.03,163.05,163.16,164.15,169.47,165.79,167.65, 169.49,169.31,170.41,172.70,175.69,172.24,173.01,177.31,176.15,179.45, 184.40,178.46,181.65,184.79,185.60,189.23,189.07,189.51,191.81,191.53, 188.96,191.39,196.89,193.88,198.19,195.94,198.46,197.80,202.85,200.95, 200.54,203.96,206.84,206.44,211.01,210.64,214.07,211.22,214.55,210.35, 213.87,215.52,215.51,217.41,222.49,222.35,221.82,227.22,222.27,220.73, 226.48,225.55,227.29,231.70,230.17,229.56,235.37,232.41,236.91,236.60, 236.96,239.55,238.86,239.12,240.97,240.62,242.82,244.40,248.36,246.45, 249.93,251.35,249.76,250.25,253.10,253.46,254.30,253.13,249.55,257.65, 259.01,261.36,260.04,264.47,267.15,262.56,262.29,266.19,270.54,269.18, 267.86,269.32,275.58,277.30,280.15,279.62,281.95,279.48,280.14,281.23, 284.13,285.75,280.84,281.38,288.36,285.59,294.94,291.53,292.56,290.35, 290.51,293.41,298.89,295.86,297.41,299.71,301.04,300.87,301.76,302.10, 307.59,312.14,303.84,310.87,306.29,311.30,315.08,310.61,313.80,314.56, 314.91,318.67,314.18,321.76,324.33,319.65,324.83,323.03,327.56,323.63, 325.01,322.88,329.95,329.07,331.30,333.80,332.08,337.36,337.93,341.59, 10.05,11.53,11.80,14.18,13.81,14.86,15.79,16.74,18.60,19.12, 19.66,20.38,22.74,24.59,24.84,24.82,28.26,26.68,27.61,29.02, 29.82,31.37,33.10,34.15,34.90,36.21,36.42,36.24,38.28,39.86, 38.45,40.55,43.39,42.58,42.70,43.70,47.62,48.78,45.50,49.01, 52.57,49.59,52.50,53.04,53.21,55.80,57.51,58.10,56.33,59.13, 60.52,60.14,63.47,63.35,64.01,66.60,64.47,68.61,67.16,66.62, 69.87,70.27,72.16,75.39,73.15,74.43,76.69,77.16,76.19,79.50, 77.36,80.15,84.40,80.73,82.28,84.66,85.30,84.26,89.55,88.85, 88.67,90.36,92.55,94.35,96.30,95.16,96.75,96.55,95.06,99.00, 97.98,99.05,102.76,103.15,105.38,108.06,105.93,107.36,110.65,108.95, 112.41,107.90,111.14,112.30,116.42,115.19,114.93,119.59,118.91,117.35, 119.47,117.57,125.49,122.12,123.98,127.10,124.17,124.99,126.84,128.70, 130.04,129.95,130.88,132.78,133.06,133.25,135.75,136.87,140.87,138.65, 140.09,140.85,140.87,140.37,142.45,147.69,143.64,144.68,148.72,147.02, 150.29,149.71,149.22,153.71,149.45,150.48,154.37,157.85,157.49,157.67, 159.36,159.71,162.58,162.87,162.85,162.84,167.03,167.82,166.51,168.65, 169.21,171.54,167.16,174.34,176.06,172.60,174.83,175.09,178.33,180.34, 174.20,179.09,182.54,181.61,182.39,186.94,187.05,187.04,192.27,187.83, 189.07,192.84,187.67,193.69,195.46,191.88,195.66,195.06,195.06,197.22, 199.95,199.47,204.90,200.25,199.32,203.92,208.69,204.32,207.46,207.55, 208.95,209.30,209.37,213.44,213.88,218.55,214.37,215.63,217.96,217.26, 221.77,218.00,220.64,221.03,222.68,222.59,226.18,224.88,231.05,228.32, 230.43,232.68,236.11,230.19,236.24,234.46,231.61,238.23,234.65,237.53, 242.46,237.28,240.10,239.75,243.62,244.93,246.47,248.59,244.18,248.85, 247.12,251.35,250.57,252.27,243.99,251.54,253.94,255.17,254.51,256.50, 262.59,259.56,260.16,261.19,262.07,260.33,263.14,261.50,264.26,267.96, 269.03,271.11,270.02,271.90,274.00,276.75,275.27,275.86,270.63,276.48, 280.54,276.23,282.94,280.70,285.37,281.91,283.17,283.37,289.55,288.89, 287.97,291.42,290.43,290.99,290.62,293.19,294.18,295.59,287.14,297.40, 58.60,64.20,69.76,74.73,81.15,86.43,91.23,96.86,102.20,109.48, 113.66,119.76,124.70,130.36,136.35,140.68,145.83,150.29,157.12,162.19, 167.69,174.20,179.79,184.99,191.13,196.01,203.40,206.29,211.45,218.04, 223.77,229.51,231.30,242.63,244.85,250.30,254.64,261.66,269.24,273.42, 276.62,284.79,288.75,295.99,299.64,307.53,312.25,317.13,324.44,329.27, 332.06,339.32,345.90,348.85,355.99,360.79,366.74,372.42,376.81,381.82, 388.31,393.68,400.80,405.38,412.03,417.54,418.09,428.39,433.24,437.88, 444.16,448.80,454.28,461.85,464.67,473.93,477.74,482.36,489.11,492.67, 498.42,505.17,512.11,512.01,520.77,522.66,532.75,539.07,543.40,548.05, 553.20,559.14,564.54,569.12,574.86,581.07,588.53,592.46,595.27,602.36, 609.48,612.71,619.68,624.43,630.43,637.09,641.74,647.47,651.73,658.83, 663.90,670.12,676.13,681.58,685.80,691.05,693.16,702.85,709.78,715.10, 718.33,722.75,729.89,737.70,738.08,747.52,750.75,756.45,763.30,766.98, 775.67,782.80,785.24,789.23,796.88,798.96,807.56,809.25,816.64,820.36, 827.50,831.50,839.07,845.84,854.56,859.31,858.38,867.45,871.19,878.48, 880.95,884.75,891.78,899.30,906.09,908.52,914.64,919.44,929.21,932.05, 939.34,944.75,947.86,954.99,959.96,963.28,973.34,974.62,981.40,987.59, 995.78,1000.46,1003.48,1007.27,1013.42,1019.66,1027.00,1032.75,1038.06,1043.43, 1047.07,1051.21,1059.96,1067.02,1070.17,1075.35,1079.09,1085.67,1094.63,1096.16, 1100.06,1107.22,1116.44,1120.91,1126.42,1128.66,1136.09,1144.84,1141.29,1151.67, 1156.06,1164.02,1168.24,1172.96,1176.30,1186.87,1187.56,1195.18,1202.33,1211.91, 1217.70,1217.13,1223.94,1231.02,1236.30,1243.52,1245.06,1251.52,1258.16,1263.37, 1268.43,1274.02,1280.21,1285.64,1291.64,1299.53,1300.87,1308.75,1312.91,1315.38, 1321.06,1327.86,1331.20,1337.96,1344.79,1349.75,1360.27,1368.88,1364.88,1370.31, 1379.02,1382.58,1383.49,1396.20,1401.80,1407.04,1416.63,1416.87,1423.33,1428.71, 1433.64,1435.70,1442.74,1449.21,1450.58,1458.27,1469.70,1473.12,1477.54,1486.20, 1488.78,1493.46,1496.52,1509.64,1514.73,1511.17,1522.26,1523.82,1533.40,1537.80, 1546.82,1554.38,1552.95,1557.58,1563.92,1571.63,1580.46,1586.37,1588.48,1590.60, 1597.61,1606.54,1610.87,1616.63,1624.76,1627.22,1635.47,1645.06,1642.60,1650.43, 53.49,58.40,62.54,69.03,73.61,77.94,83.48,89.29,94.54,99.10, 103.01,108.56,112.73,118.76,124.05,126.64,132.58,139.08,143.88,150.34, 154.89,158.45,164.51,168.75,173.50,178.35,184.64,187.29,193.56,199.63, 203.98,208.08,214.36,219.51,224.31,230.26,232.34,238.05,242.27,250.96, 255.83,258.42,263.90,268.80,272.91,280.33,284.62,287.65,297.57,298.05, 305.20,310.36,313.67,319.76,323.24,329.88,333.12,340.69,345.25,349.08, 356.05,357.48,365.82,368.51,376.17,377.85,384.35,386.60,395.02,396.89, 403.52,407.82,415.82,421.05,424.28,429.88,435.64,439.12,445.14,447.87, 455.66,459.96,465.93,469.82,475.56,477.21,486.44,490.21,492.83,497.47, 504.81,512.70,520.16,520.39,524.94,530.57,534.01,545.84,547.41,548.79, 553.18,563.13,565.79,571.32,577.41,580.05,587.50,592.95,595.07,599.50, 607.36,610.60,615.95,621.07,627.38,631.73,638.53,641.48,645.41,651.74, 659.01,664.38,666.11,672.72,676.30,682.45,687.32,694.79,699.92,702.61, 709.12,712.07,713.70,718.77,726.37,733.93,740.27,739.74,741.27,756.52, 758.64,762.82,769.82,770.70,777.01,778.58,783.56,792.39,801.32,801.62, 807.49,811.18,818.20,821.23,825.50,833.59,835.31,844.48,849.06,852.49, 858.47,861.45,868.64,873.47,879.77,880.84,887.09,892.58,896.32,900.45, 907.05,909.96,915.92,924.20,928.17,931.99,938.62,944.21,947.41,957.69, 955.15,957.52,969.88,969.31,978.61,979.91,988.13,990.24,998.89,1002.81, 1008.80,1016.60,1016.95,1022.60,1025.01,1032.48,1037.80,1048.44,1051.07,1052.04, 1059.30,1060.64,1066.90,1069.16,1076.73,1085.91,1087.71,1092.71,1099.95,1105.37, 1107.89,1110.08,1117.50,1124.39,1129.92,1136.01,1136.84,1144.90,1150.82,1151.70, 1157.72,1162.60,1166.04,1170.30,1176.04,1180.62,1185.19,1194.79,1196.68,1204.82, 1210.20,1215.00,1218.11,1225.74,1227.04,1236.64,1235.98,1246.01,1249.72,1253.46, 1259.77,1262.88,1271.85,1269.80,1279.09,1286.50,1295.68,1294.40,1299.35,1310.30, 1308.76,1315.82,1318.20,1321.97,1327.59,1335.13,1339.26,1346.98,1354.10,1357.88, 1356.27,1364.44,1367.28,1377.41,1382.82,1387.27,1389.43,1397.09,1401.12,1398.67, 1413.84,1415.42,1415.38,1428.59,1431.38,1430.46,1439.33,1444.42,1456.80,1457.60, 1459.40,1462.51,1472.14,1475.46,1475.34,1486.50,1491.07,1492.87,1502.15,1502.75, 48.48,52.46,57.47,61.56,66.11,71.82,75.90,80.55,84.72,89.66, 93.55,100.50,103.71,109.27,111.86,118.09,122.16,127.45,132.59,135.13, 137.92,145.10,148.43,155.19,158.57,164.66,165.64,172.60,177.06,180.81, 184.48,189.27,193.67,200.31,203.58,209.74,213.88,219.10,222.07,226.98, 226.85,235.94,239.95,248.10,252.31,255.41,260.58,264.20,264.92,271.35, 277.51,280.80,284.39,292.21,296.55,297.36,305.22,305.65,313.34,316.07, 323.77,328.55,333.06,335.97,338.89,344.29,352.83,356.24,360.09,363.12, 366.78,373.31,377.57,383.89,388.06,390.58,396.17,402.75,404.87,409.32, 413.58,418.17,421.91,429.58,431.70,436.87,440.82,447.20,450.52,456.86, 461.50,464.03,466.75,473.63,479.18,483.54,487.21,493.75,499.28,502.79, 505.86,511.66,513.48,517.75,525.07,531.16,533.97,538.89,540.38,549.33, 550.75,553.32,559.33,563.38,569.31,577.67,579.08,583.96,583.89,593.70, 597.73,602.62,606.39,614.60,614.09,618.83,624.06,630.22,630.50,639.77, 636.32,643.80,653.26,656.85,659.91,668.22,669.51,674.20,679.71,685.38, 692.11,692.91,697.86,704.64,710.02,706.60,720.69,724.75,729.23,731.89, 731.88,737.12,751.39,745.88,753.27,761.71,763.76,771.43,769.90,771.83, 783.59,782.94,786.27,792.75,796.87,805.18,809.99,817.54,817.83,824.84, 827.88,832.66,833.10,839.74,845.61,852.43,849.26,855.58,860.18,868.48, 870.48,878.20,879.51,886.63,892.96,897.72,896.23,904.58,912.63,916.35, 918.70,923.68,924.40,926.84,932.37,933.49,940.74,950.63,956.24,957.18, 961.72,966.28,973.69,978.68,976.77,982.12,990.83,998.69,997.40,1010.07, 1008.80,1011.60,1015.74,1022.93,1023.05,1026.52,1036.82,1041.97,1044.41,1050.35, 1058.85,1061.67,1062.86,1063.11,1073.68,1081.76,1080.48,1087.66,1094.43,1098.32, 1096.45,1107.35,1107.84,1113.39,1114.96,1114.78,1128.75,1130.57,1142.38,1135.29, 1149.89,1150.40,1152.37,1161.85,1161.11,1167.08,1170.28,1177.76,1185.42,1188.80, 1196.05,1194.96,1198.26,1202.81,1213.05,1213.50,1219.33,1229.43,1229.63,1229.45, 1232.33,1240.51,1244.70,1254.51,1252.52,1259.36,1266.50,1268.81,1279.44,1283.67, 1279.88,1288.18,1293.60,1294.29,1305.28,1307.77,1308.79,1313.21,1314.51,1327.97, 1334.07,1332.62,1333.38,1339.67,1347.41,1353.48,1351.85,1361.97,1368.87,1370.15, 44.52,48.46,52.70,56.75,61.19,64.36,70.42,72.81,76.41,79.63, 86.56,89.64,94.33,96.22,102.56,106.41,109.72,115.09,119.69,123.12, 127.98,131.54,135.28,138.52,142.04,147.18,152.00,157.52,159.73,163.65, 165.39,172.98,177.56,180.75,184.37,187.29,192.88,197.06,199.40,204.51, 208.75,213.25,217.33,222.70,227.73,232.34,235.88,239.26,245.49,246.72, 251.65,254.51,260.75,264.17,266.82,274.15,277.32,280.37,287.40,287.16, 293.87,297.01,301.12,306.43,309.99,314.39,319.50,323.49,328.17,328.83, 334.01,341.56,341.19,350.41,349.51,355.24,358.86,364.05,370.34,371.79, 371.37,380.91,384.16,391.07,392.90,400.99,404.98,403.19,409.76,414.36, 413.83,421.25,428.05,429.11,436.25,437.45,439.82,445.84,450.90,452.84, 457.34,463.18,471.09,470.07,475.95,478.72,483.19,491.13,489.55,494.36, 501.93,499.99,506.49,512.89,514.86,520.12,522.93,526.56,534.81,536.85, 542.67,546.61,550.23,554.46,559.80,561.75,567.85,571.64,574.36,576.39, 587.23,587.29,589.65,599.89,592.69,603.47,606.87,612.50,616.48,624.06, 625.42,632.94,634.41,637.07,641.48,648.77,654.20,652.02,657.61,661.63, 668.19,673.44,673.32,674.32,685.88,687.37,691.24,694.08,701.56,704.63, 703.06,712.97,716.78,720.15,726.98,728.69,732.39,734.64,734.95,746.75, 749.28,754.48,754.31,762.74,769.46,770.98,776.41,777.17,780.70,790.46, 791.50,799.16,799.67,803.16,808.20,806.97,819.85,822.17,822.01,825.29, 832.88,838.40,844.09,844.20,849.63,852.75,852.57,855.70,865.37,877.13, 874.87,877.99,885.08,885.91,892.19,895.58,897.85,904.47,916.21,918.08, 911.90,917.20,921.63,923.20,929.95,931.17,939.41,947.88,948.27,951.72, 951.50,956.58,963.19,967.31,975.69,974.11,978.98,984.70,992.70,993.37, 996.84,1000.54,1007.93,1009.43,1020.01,1016.64,1024.98,1026.39,1028.37,1038.08, 1037.76,1044.24,1048.61,1053.88,1055.95,1057.81,1068.39,1066.50,1066.15,1079.61, 1081.56,1079.80,1087.80,1091.93,1095.85,1104.32,1105.47,1114.70,1113.54,1114.73, 1120.20,1122.63,1134.40,1141.39,1139.92,1146.07,1147.09,1151.08,1158.12,1158.81, 1163.22,1173.35,1165.72,1175.03,1183.26,1188.82,1187.64,1194.88,1195.30,1197.30, 1206.47,1212.79,1215.02,1218.98,1219.02,1226.70,1231.32,1236.64,1241.69,1246.63, 40.77,45.10,47.42,51.71,54.23,57.21,63.62,65.67,69.86,74.23, 78.95,81.28,84.28,88.30,92.28,96.09,101.20,103.30,106.76,111.93, 114.05,119.49,122.75,126.18,127.74,136.20,138.45,144.47,147.29,150.15, 153.62,155.97,158.71,164.90,166.66,171.43,174.31,180.11,182.51,187.64, 189.85,193.52,198.83,202.53,206.24,209.06,213.37,219.08,218.63,223.11, 229.62,233.20,236.96,238.29,242.61,244.74,250.31,252.63,259.24,261.58, 265.60,266.46,273.38,278.68,281.10,284.92,287.06,291.74,298.19,299.09, 303.58,308.56,311.84,315.35,317.96,322.88,320.78,328.98,335.58,338.82, 339.45,343.07,350.19,350.61,358.89,360.34,361.80,364.57,369.68,372.82, 380.83,378.72,383.41,389.85,393.78,393.70,398.99,401.26,408.67,409.30, 418.42,416.18,425.26,426.73,425.93,432.46,439.99,437.77,442.19,446.61, 456.07,458.08,460.21,463.69,467.93,475.77,474.84,478.81,481.11,487.16, 490.55,495.59,496.94,505.22,509.30,510.34,509.99,519.32,524.13,526.31, 527.25,532.35,535.65,540.00,544.55,542.87,550.04,554.04,556.60,562.42, 562.96,568.55,575.85,575.61,580.14,588.62,589.27,587.70,596.87,596.68, 601.55,609.05,609.93,617.40,618.83,623.69,627.77,630.77,631.32,636.66, 641.32,644.40,650.58,653.43,654.12,658.94,664.13,669.32,671.39,673.82, 675.83,684.51,684.72,692.77,693.46,695.17,704.75,703.58,709.07,719.05, 718.10,718.31,719.51,728.66,731.21,734.78,733.20,741.18,744.87,751.02, 754.17,755.77,756.82,765.27,768.83,774.03,777.04,779.52,786.26,790.56, 786.15,791.38,799.92,802.06,808.40,809.80,809.55,816.65,817.40,823.90, 823.64,831.06,834.08,843.90,849.45,851.07,851.32,860.96,857.52,863.59, 865.34,862.60,877.81,878.20,879.83,888.77,887.95,894.92,896.78,897.90, 903.74,910.90,908.09,917.00,913.38,924.06,931.85,925.17,935.39,942.69, 936.14,949.96,949.13,955.02,956.88,959.67,961.36,970.38,967.03,974.75, 978.58,984.44,983.78,986.50,991.38,994.47,1004.59,1005.00,1013.76,1009.43, 1014.68,1016.18,1023.02,1026.87,1028.15,1033.77,1035.72,1042.38,1050.70,1048.67, 1058.68,1055.81,1061.08,1065.25,1064.23,1070.78,1068.33,1082.07,1078.88,1081.52, 1089.78,1097.67,1105.40,1101.47,1105.74,1104.40,1111.59,1116.13,1117.64,1124.94, 37.03,39.44,43.60,46.52,48.55,52.60,55.16,60.72,62.22,66.02, 68.78,71.32,76.52,79.89,83.66,86.42,90.20,93.18,96.96,102.34, 103.32,106.75,107.98,115.18,114.94,120.96,124.60,125.62,131.87,134.45, 137.42,141.43,145.18,146.82,151.93,153.88,157.77,160.66,166.35,169.35, 173.30,175.99,178.35,184.14,185.41,190.04,190.52,193.58,198.30,205.26, 204.64,206.22,213.12,214.70,219.26,219.83,227.16,228.89,233.11,236.88, 243.24,244.46,246.31,246.98,255.46,254.07,260.20,261.24,266.79,268.46, 271.01,272.07,277.36,283.45,288.87,289.61,294.69,300.02,298.20,299.70, 305.01,308.90,312.51,316.84,320.57,328.85,326.24,332.62,334.38,339.33, 340.89,342.16,346.76,351.90,358.17,360.21,360.99,359.85,363.48,370.68, 377.66,377.85,380.42,383.74,390.55,393.69,395.67,394.86,400.97,407.85, 412.11,416.85,417.07,421.14,423.66,425.42,429.74,435.31,433.64,440.97, 441.51,444.03,452.24,454.69,455.99,458.02,463.30,466.03,469.31,472.92, 480.27,480.15,482.11,490.17,486.63,494.88,499.48,499.42,503.54,503.82, 509.97,509.54,520.79,523.75,522.01,525.96,534.18,529.69,541.05,542.87, 541.82,549.10,554.41,556.33,557.11,564.00,566.47,568.80,570.53,576.42, 576.57,583.35,584.61,591.61,589.36,596.57,603.90,600.55,606.66,605.66, 614.68,619.68,617.07,622.79,628.56,630.42,635.86,633.70,639.93,642.26, 648.78,652.23,651.65,657.66,660.05,667.82,665.70,669.32,671.59,672.87, 684.41,683.91,684.66,689.36,693.55,698.19,700.00,702.42,706.17,708.58, 710.87,716.67,715.11,725.88,723.66,727.30,728.03,739.12,736.18,740.70, 749.56,754.62,751.06,759.98,764.93,768.37,765.37,773.87,779.01,777.43, 782.61,779.00,787.61,790.17,793.54,799.33,799.80,805.82,809.42,805.64, 822.11,823.93,821.38,825.10,824.02,829.49,839.15,842.60,842.31,852.12, 854.67,857.10,850.79,858.76,864.42,864.23,869.67,876.50,875.88,878.24, 884.37,886.52,887.25,893.53,899.34,903.75,905.79,910.83,917.03,906.41, 917.45,916.01,917.49,924.18,938.94,933.74,938.50,943.31,949.47,947.95, 947.04,958.63,957.11,963.33,966.26,971.49,975.61,974.14,975.36,981.62, 980.76,992.43,994.78,999.89,991.91,998.14,1001.37,1009.43,1015.13,1014.81, 32.63,35.01,38.52,41.45,43.30,47.66,50.35,55.39,56.44,58.34, 62.70,65.42,69.08,71.95,76.10,77.80,79.78,84.86,87.88,88.69, 94.27,96.43,101.17,103.31,105.78,108.54,111.65,114.65,118.86,120.80, 125.89,127.90,127.86,132.34,137.63,140.41,144.58,143.74,148.12,150.02, 152.44,158.15,161.31,162.41,167.86,170.50,172.75,174.32,178.70,184.79, 188.07,187.38,192.31,193.72,198.59,200.94,206.05,208.83,211.14,210.40, 216.10,218.97,221.35,227.26,226.22,229.98,234.75,235.87,237.10,244.36, 247.85,249.27,248.99,255.18,255.45,262.04,265.97,270.44,268.90,273.40, 274.65,281.76,283.88,285.61,287.39,291.14,297.22,297.05,297.54,300.73, 303.79,309.02,312.72,317.27,321.12,317.86,328.05,329.24,335.18,339.24, 335.89,339.39,343.66,347.73,347.85,355.95,352.86,361.42,360.45,366.11, 369.91,372.36,376.14,374.80,385.20,382.82,386.38,386.06,390.58,394.62, 397.66,402.08,403.25,405.09,409.49,412.80,414.92,420.29,420.56,426.48, 428.23,428.99,435.08,439.68,437.75,443.65,445.51,447.87,453.83,456.19, 463.44,460.11,462.85,470.59,473.45,472.39,482.50,482.34,488.57,488.81, 491.52,489.58,495.45,497.57,500.05,509.81,503.73,514.76,515.40,518.04, 519.69,519.43,529.56,532.88,534.35,537.68,540.84,547.27,544.30,549.69, 550.10,552.03,558.06,560.79,564.60,568.26,567.81,570.32,576.48,574.52, 582.94,584.57,587.73,586.76,594.20,600.23,598.52,604.36,606.35,609.28, 613.18,625.27,618.04,620.77,628.01,626.69,636.98,634.66,638.53,641.00, 640.77,640.14,653.81,657.82,654.05,658.14,654.81,660.20,668.96,670.74, 669.64,670.56,684.77,681.90,687.07,686.39,691.86,696.55,692.12,699.19, 700.99,711.04,709.32,712.84,707.08,715.87,721.76,723.82,729.20,731.04, 736.69,740.52,741.26,743.86,747.58,752.50,751.33,753.69,760.11,761.71, 758.13,766.81,766.74,776.49,776.56,776.61,779.18,784.50,789.70,789.75, 795.86,802.68,801.50,801.24,810.87,804.85,807.90,823.27,814.38,820.32, 825.94,825.75,832.30,843.38,838.04,841.11,845.87,844.26,846.72,853.39, 858.00,856.90,859.60,864.75,864.83,872.94,872.62,882.14,879.70,889.09, 884.56,885.71,886.05,895.61,903.26,912.28,904.88,908.81,909.16,918.73, 29.72,32.17,34.69,38.24,40.51,43.28,44.35,49.66,49.96,54.48, 56.27,59.75,62.24,63.99,66.87,69.16,72.62,76.06,78.64,80.58, 81.81,86.33,92.24,92.25,94.60,97.06,99.27,103.96,108.76,108.58, 109.72,113.61,115.43,117.91,123.53,124.43,127.00,132.38,132.70,135.54, 138.58,143.08,144.73,149.66,151.69,155.18,155.05,159.63,160.53,163.10, 166.00,167.50,173.32,176.27,176.40,181.13,182.94,182.22,189.54,189.52, 194.67,194.68,198.87,202.93,202.52,210.75,212.53,213.74,218.62,216.08, 219.65,225.59,229.52,228.21,233.78,236.79,233.67,240.07,245.43,244.99, 247.68,252.82,251.19,257.18,258.91,262.79,263.99,266.93,266.02,271.05, 274.51,280.79,280.91,285.15,284.39,288.92,293.25,297.73,298.94,300.88, 304.07,303.41,307.53,313.46,312.72,315.54,320.47,322.90,327.25,329.13, 330.02,334.69,335.43,337.61,338.38,348.63,350.27,354.83,352.19,356.58, 356.41,360.04,365.20,368.44,370.18,371.78,373.15,379.52,380.76,377.20, 386.18,391.75,394.05,396.08,401.76,399.10,400.69,405.76,410.26,411.99, 415.50,418.57,417.38,419.07,427.45,428.75,434.17,433.26,433.41,441.58, 439.96,441.06,445.87,451.99,452.69,451.46,454.78,461.56,459.21,464.58, 469.61,465.96,472.01,471.94,477.72,477.83,485.26,486.64,492.08,493.11, 495.35,499.07,501.48,500.76,506.75,506.65,517.70,512.69,516.83,525.59, 519.40,526.64,529.50,529.15,533.76,539.30,538.53,551.78,543.71,546.63, 555.39,555.51,554.65,559.57,562.71,563.97,568.41,573.10,573.91,571.36, 580.44,579.20,582.12,590.19,586.70,589.89,596.75,593.90,598.42,599.19, 604.98,602.28,615.47,608.37,618.78,619.42,619.49,618.90,623.70,633.31, 634.12,640.09,636.55,638.98,646.14,648.01,643.35,649.40,658.00,659.08, 660.18,658.25,660.69,663.40,673.66,678.53,678.51,679.90,684.29,686.91, 691.07,681.78,695.45,700.64,701.81,701.21,702.27,708.25,710.19,714.29, 713.06,718.36,716.49,722.21,734.18,731.34,732.51,728.43,738.07,740.11, 740.81,745.52,745.03,750.15,752.90,757.42,758.26,760.74,769.38,773.19, 767.26,771.34,781.63,770.17,778.26,790.92,789.27,789.12,792.45,795.38, 799.39,802.67,800.01,805.49,810.58,806.84,816.14,816.53,818.50,822.84, 27.41,27.25,31.35,34.17,34.28,37.91,40.38,42.25,46.63,47.07, 51.43,52.70,55.97,58.02,59.33,62.41,65.73,67.38,70.93,72.73, 76.36,76.77,79.11,82.36,85.94,87.45,89.32,92.16,94.44,97.91, 98.04,101.75,104.34,109.04,111.98,112.77,112.94,116.66,118.42,122.89, 124.78,126.65,129.63,131.79,131.66,135.95,139.81,143.66,141.56,148.86, 148.48,152.83,155.60,155.93,158.43,160.16,163.99,166.49,168.91,172.51, 174.45,178.08,178.86,180.37,183.37,184.28,189.29,190.24,192.07,198.67, 199.51,200.72,200.78,204.42,210.19,212.22,215.17,217.57,217.63,221.27, 227.87,223.22,227.75,228.05,235.43,235.86,236.69,242.64,243.76,241.95, 248.35,250.47,251.37,256.09,260.95,254.99,262.05,266.34,268.71,274.23, 270.27,276.14,275.64,279.41,284.14,286.66,282.79,292.83,292.67,293.79, 298.82,301.01,303.83,302.63,303.89,307.50,309.24,316.07,314.27,321.01, 325.43,322.59,328.08,329.64,328.02,336.94,338.91,336.12,342.47,338.52, 345.99,346.05,349.60,349.30,353.90,354.41,359.66,357.76,357.94,370.03, 371.35,373.56,377.45,380.33,381.64,380.04,387.08,389.94,387.72,393.18, 394.76,397.11,397.40,405.68,406.65,411.44,411.25,409.95,418.20,419.93, 417.46,424.15,428.28,418.42,424.04,429.58,438.06,432.44,443.94,443.04, 443.18,449.46,448.52,453.29,454.43,460.06,460.94,463.99,460.71,467.00, 469.62,470.13,475.03,480.03,479.97,479.96,484.24,486.57,493.92,489.92, 492.65,497.05,499.99,500.84,504.33,501.06,501.51,508.31,507.21,515.14, 511.69,521.84,521.98,525.84,522.53,529.38,536.64,537.61,539.69,543.44, 543.61,543.55,546.32,553.27,553.59,558.00,558.15,559.92,563.69,565.76, 562.66,568.56,574.07,582.27,581.01,583.01,583.20,582.89,582.08,592.94, 592.50,592.51,600.33,600.64,599.03,610.49,612.56,609.57,612.75,612.36, 623.14,613.72,622.17,619.53,623.74,626.60,635.61,634.99,636.52,640.71, 639.22,645.38,643.84,648.67,651.58,655.88,653.39,656.34,661.75,663.07, 669.80,668.03,673.38,668.40,677.20,680.03,685.50,684.66,683.12,690.89, 690.38,692.70,700.84,702.25,699.61,702.82,706.10,704.64,711.92,708.71, 717.00,724.38,721.69,722.39,723.58,724.81,721.75,723.39,739.92,743.24, 23.05,26.54,27.36,31.28,33.21,33.83,35.92,39.18,41.33,43.98, 46.98,46.26,49.73,53.25,53.42,56.20,58.42,60.53,62.68,65.67, 68.98,69.42,73.50,74.85,75.94,78.56,80.58,81.16,87.32,85.72, 88.51,89.18,94.14,94.02,100.90,101.12,103.38,103.37,106.38,108.49, 112.65,110.34,115.61,116.51,118.07,121.44,124.25,127.39,129.73,130.83, 134.01,137.47,137.61,140.21,142.84,146.92,147.06,147.63,150.79,154.94, 157.10,156.55,159.22,161.22,167.72,165.23,172.46,167.35,173.56,174.15, 178.10,178.26,182.82,189.23,191.06,188.41,190.29,194.25,192.42,200.28, 203.40,204.08,205.78,205.49,211.94,213.72,214.15,216.32,218.68,223.33, 221.34,223.02,224.51,224.76,229.87,236.26,234.84,234.91,237.33,236.44, 244.07,243.02,248.76,251.82,252.36,254.68,256.48,259.11,258.12,264.73, 265.49,266.07,270.29,271.30,276.00,279.01,284.85,283.09,278.90,285.96, 286.17,291.35,291.52,298.20,295.81,301.69,300.31,302.09,306.61,303.38, 309.46,313.28,315.69,312.45,314.04,324.01,323.71,327.33,329.36,329.40, 331.61,333.79,339.45,341.10,338.21,342.92,341.84,347.45,350.10,353.64, 349.48,356.81,356.40,356.93,360.58,362.09,368.58,371.41,367.55,375.76, 374.63,374.66,382.04,382.82,388.33,386.45,390.00,396.61,394.60,393.56, 404.45,398.23,403.25,405.56,404.25,405.78,411.51,413.48,416.96,422.49, 420.96,418.19,418.97,426.10,427.45,433.11,434.72,438.13,435.73,441.25, 441.33,443.02,443.10,445.54,447.91,452.93,458.96,462.20,457.86,461.26, 462.98,466.09,466.50,466.78,478.22,472.32,473.87,480.30,485.77,484.45, 484.39,486.44,491.50,499.87,493.83,499.04,498.18,500.66,504.37,504.24, 510.44,510.75,509.17,513.07,517.79,517.80,527.29,521.84,528.17,529.90, 534.16,533.63,532.76,534.22,540.06,536.53,545.06,545.03,545.19,552.74, 555.25,552.28,556.93,560.66,553.68,559.32,571.43,569.67,576.79,577.82, 571.73,573.65,582.27,584.01,578.69,586.00,582.82,591.35,596.66,595.34, 593.65,595.57,606.00,605.25,601.14,601.56,612.41,605.48,610.76,617.19, 617.67,619.27,624.56,620.39,629.63,636.90,631.21,633.62,637.08,636.70, 648.38,647.41,647.33,646.98,656.75,655.43,655.95,649.54,662.57,656.04, 21.51,21.69,23.67,27.67,28.48,30.25,32.97,33.97,35.41,38.87, 41.50,42.81,44.02,45.85,47.22,51.06,51.94,54.09,56.61,57.14, 61.20,63.22,63.92,66.97,66.64,69.42,71.14,75.10,75.33,76.22, 79.77,81.48,81.79,86.39,88.22,91.57,93.06,94.27,95.26,96.78, 97.39,102.87,103.60,106.57,108.19,113.25,110.05,115.96,118.71,116.96, 118.85,122.38,123.42,124.12,128.93,127.49,132.45,132.67,134.11,136.64, 138.98,138.03,142.06,144.47,147.30,149.32,151.30,150.80,156.66,158.13, 156.47,157.73,165.65,165.78,166.79,170.45,170.06,173.20,172.76,176.29, 176.71,182.57,184.24,185.75,186.61,187.61,190.94,197.02,191.52,196.22, 197.20,199.59,202.03,205.87,207.75,207.30,209.63,214.04,214.72,214.31, 219.43,223.82,219.92,222.95,227.01,228.93,228.58,236.20,234.54,239.97, 239.26,239.48,244.71,247.73,242.92,247.83,249.32,252.69,253.56,256.41, 258.15,260.66,261.90,267.29,268.74,264.53,271.09,274.80,275.31,277.63, 278.21,277.56,283.20,286.56,287.10,284.58,293.83,290.59,290.13,293.62, 299.53,297.62,298.48,301.79,305.67,311.37,305.96,310.38,314.62,309.52, 320.20,319.97,322.12,324.57,322.88,328.31,331.39,332.48,333.01,334.30, 337.31,337.67,342.64,344.09,345.20,345.63,344.37,351.95,352.96,356.19, 352.95,361.67,358.81,361.51,364.82,364.58,370.38,370.29,368.48,375.61, 376.31,376.10,374.45,380.02,382.88,381.34,390.33,391.80,393.22,389.61, 399.76,396.00,402.38,400.72,404.03,407.49,404.24,411.57,411.21,412.05, 411.91,413.68,415.50,423.36,416.97,427.92,429.68,428.38,428.52,430.00, 434.89,436.85,440.52,436.63,440.51,448.08,442.09,453.41,451.23,451.60, 455.40,451.80,452.65,461.27,462.36,465.48,468.01,467.94,475.98,474.88, 475.46,474.69,475.73,480.71,485.55,482.12,488.86,491.75,489.30,494.68, 490.93,495.79,498.56,501.26,503.57,500.05,508.34,509.52,506.40,511.72, 514.67,516.34,521.68,519.50,520.94,526.17,532.04,524.01,535.21,537.40, 530.18,535.08,535.29,539.10,546.94,545.88,542.38,547.29,551.32,552.75, 550.37,556.72,558.86,556.00,560.28,561.99,564.70,565.20,570.24,569.02, 570.91,573.03,576.53,579.21,583.71,579.57,589.11,582.74,582.67,592.25, 18.67,20.05,21.14,24.18,26.25,27.12,30.01,32.08,33.61,34.33, 36.13,39.84,39.70,40.08,43.49,45.64,46.84,49.14,50.02,53.59, 52.41,54.61,58.04,60.32,61.82,63.89,65.53,62.85,66.10,68.79, 69.33,74.18,75.04,76.97,77.96,80.27,82.16,85.20,86.72,86.99, 87.41,91.99,90.74,96.69,94.11,97.76,99.70,103.93,102.78,105.54, 106.78,105.20,107.55,111.67,110.19,114.84,113.11,120.02,118.98,120.92, 127.02,128.75,127.99,129.62,132.45,133.93,132.32,134.76,138.17,144.08, 141.74,143.52,147.32,144.47,152.45,152.16,151.36,155.00,155.88,157.87, 157.67,161.54,165.11,165.73,170.98,170.96,173.04,170.59,172.57,175.46, 178.25,177.98,181.31,181.54,188.16,188.46,189.58,188.96,191.13,195.30, 198.83,194.36,197.78,200.63,201.46,208.20,204.20,207.27,206.98,211.04, 213.40,209.83,217.80,216.30,222.93,221.51,221.02,224.95,224.77,227.12, 225.51,228.36,233.11,237.09,236.58,238.27,240.04,243.50,244.12,249.94, 244.07,249.51,254.65,252.54,253.95,257.67,257.93,258.26,261.37,261.72, 264.40,264.22,266.39,271.92,272.61,280.50,275.71,277.06,282.56,278.42, 278.51,281.85,288.21,289.20,289.43,290.85,291.47,295.43,298.05,295.94, 298.56,297.70,303.80,309.11,310.90,306.53,309.95,312.56,313.78,315.03, 320.68,316.74,319.60,324.16,324.53,327.52,329.60,330.11,329.42,332.38, 333.26,338.43,335.47,344.08,337.40,341.29,348.86,347.04,353.14,345.19, 354.67,359.55,355.56,360.65,360.21,364.56,357.86,366.08,370.34,369.07, 373.20,367.38,371.24,373.61,376.40,381.03,378.05,386.09,382.98,390.31, 386.32,393.92,391.27,393.25,392.79,398.07,399.00,400.78,400.00,401.09, 404.40,409.63,412.34,414.10,417.03,408.40,417.99,422.04,418.60,420.39, 427.18,422.42,428.47,430.47,432.20,432.52,434.31,431.27,436.64,441.70, 434.58,443.44,440.93,452.52,448.36,447.74,455.61,457.38,452.50,455.59, 452.14,458.27,463.50,467.85,466.01,471.69,469.67,468.38,472.85,474.16, 475.68,480.44,477.45,480.08,480.95,483.54,487.83,493.88,493.30,496.37, 491.62,496.28,492.75,492.18,500.54,500.58,501.53,504.42,511.83,511.14, 513.21,514.03,511.69,510.55,517.70,517.14,520.31,522.26,529.49,524.79, 16.82,19.22,19.37,21.20,21.90,24.31,25.88,26.41,29.44,29.71, 31.48,34.83,35.22,35.93,38.44,39.69,42.09,45.03,45.46,46.90, 46.44,47.81,49.70,53.12,55.16,55.41,59.49,58.04,60.52,60.51, 64.71,66.82,67.87,68.97,70.72,71.03,72.08,73.56,76.69,79.24, 80.64,82.46,83.31,84.41,86.25,85.65,88.61,90.72,92.83,91.83, 94.19,96.49,99.15,100.15,104.27,102.41,100.18,104.86,110.70,108.17, 110.07,112.75,118.36,115.38,117.05,118.42,118.90,121.34,122.40,124.76, 126.82,128.61,129.79,130.09,133.45,134.09,132.55,135.56,141.14,142.14, 141.83,140.37,146.07,148.47,146.86,149.18,150.93,150.32,155.55,156.36, 159.21,158.54,161.13,159.54,163.29,163.24,168.73,165.72,167.93,170.13, 172.81,171.13,179.20,175.24,180.14,180.14,187.27,187.15,188.40,189.62, 190.88,192.87,194.99,195.76,194.65,199.66,201.67,199.65,201.65,203.05, 204.28,203.19,207.45,209.34,209.78,210.30,212.53,216.06,215.75,220.45, 222.63,225.41,223.17,223.34,231.16,227.77,229.49,237.15,231.56,235.91, 233.75,238.34,241.96,239.04,241.67,240.77,244.46,245.52,247.38,250.87, 247.65,257.55,251.48,252.14,261.60,263.03,259.85,264.50,266.74,269.76, 270.42,267.29,273.24,276.76,274.43,272.78,277.66,275.94,285.34,279.98, 282.08,280.95,288.54,292.12,289.58,293.51,293.24,297.84,298.32,294.14, 301.50,304.62,301.56,297.17,311.65,308.17,308.89,306.77,313.25,315.36, 313.12,315.43,321.43,320.85,321.99,323.78,323.44,330.04,325.29,324.64, 328.89,333.33,336.58,341.26,340.23,335.21,339.15,347.06,339.76,345.73, 348.32,351.25,350.42,355.78,349.87,354.44,351.15,355.97,360.42,359.82, 363.06,358.34,362.89,367.06,368.95,372.62,376.49,371.24,377.18,378.29, 372.90,383.74,382.45,382.65,386.86,382.15,388.29,385.69,391.50,395.22, 396.22,389.28,399.07,394.63,395.02,403.61,411.43,407.23,404.10,406.14, 406.53,413.73,417.12,412.03,410.79,414.43,415.45,424.07,423.33,421.05, 424.76,431.98,432.32,430.64,426.09,435.69,428.61,434.56,436.80,439.82, 443.98,446.31,445.17,445.43,444.69,451.90,455.04,455.68,448.40,456.61, 458.51,461.58,456.26,461.46,457.00,463.55,463.24,463.63,471.04,465.79, 14.33,16.90,17.40,19.49,21.66,20.80,23.66,23.84,26.10,27.91, 29.29,31.19,30.96,32.63,34.12,34.82,38.24,38.75,39.05,42.30, 42.59,43.89,45.78,46.80,45.75,48.90,51.21,52.76,53.51,54.29, 55.55,58.70,60.43,63.05,59.51,63.98,63.92,66.72,66.05,69.61, 71.67,71.24,75.79,75.33,75.72,78.14,78.92,78.89,81.12,83.47, 86.28,85.75,89.50,90.14,89.76,90.76,93.72,94.29,96.86,95.76, 100.00,98.53,101.25,102.01,106.16,105.63,106.81,106.26,111.88,110.77, 110.87,112.89,115.11,117.13,119.79,119.65,117.81,124.53,124.56,125.54, 125.55,128.56,127.26,132.10,134.16,132.94,136.78,137.19,133.78,139.26, 142.14,139.60,142.62,144.47,146.97,149.54,146.83,148.40,151.38,153.22, 156.51,155.90,155.16,159.70,156.63,159.80,163.66,166.13,167.04,169.85, 166.10,170.36,176.87,171.80,175.54,176.05,172.35,179.06,179.93,179.28, 186.77,182.36,186.48,186.90,191.18,189.96,195.58,188.97,191.42,194.61, 194.28,196.51,195.11,203.83,200.12,202.49,205.62,207.17,207.84,206.90, 211.81,210.72,213.47,216.96,213.55,219.31,219.32,221.01,218.31,224.46, 226.72,227.00,227.69,229.19,226.55,231.50,231.39,228.84,233.74,230.61, 241.37,237.81,244.41,242.28,240.99,243.92,247.17,248.78,250.08,254.22, 252.80,257.94,261.29,255.65,260.10,258.25,260.47,259.15,264.37,262.45, 266.26,266.80,271.61,268.56,271.27,272.66,274.65,276.36,279.59,278.94, 275.17,284.68,287.25,283.73,284.03,287.11,289.39,292.53,294.34,290.18, 292.11,296.87,293.05,300.32,302.34,298.31,303.17,304.56,304.74,304.32, 307.54,308.17,310.91,308.73,312.06,312.66,321.21,319.76,318.22,320.37, 317.08,324.38,325.17,327.71,328.00,330.67,334.05,333.39,330.85,332.04, 339.51,334.35,342.46,343.99,340.95,343.95,345.86,345.02,345.34,346.79, 352.31,349.93,350.00,354.29,353.88,360.18,359.24,363.62,364.79,359.39, 368.69,365.41,364.18,358.94,370.46,374.40,368.67,374.44,371.84,378.90, 380.49,383.50,382.03,381.32,378.72,385.69,387.79,390.24,391.12,386.70, 393.43,392.43,394.20,393.69,401.05,392.70,403.57,404.91,405.42,409.92, 400.43,406.68,410.54,415.67,413.35,413.35,412.95,415.21,412.44,423.57, 13.09,14.34,16.05,17.25,18.93,20.11,19.08,20.75,22.94,24.27, 24.65,26.58,28.56,30.35,32.30,32.70,33.11,33.21,34.43,37.55, 37.70,39.69,42.17,42.12,41.49,45.25,46.06,47.48,48.47,48.71, 51.73,53.59,50.12,54.82,55.40,58.56,58.37,59.86,59.96,62.48, 61.65,64.10,65.29,66.52,69.04,69.74,69.69,71.80,74.45,71.72, 72.35,77.54,75.74,77.54,80.56,80.47,83.14,84.30,86.94,87.47, 85.54,89.38,90.77,90.91,92.13,92.82,95.77,96.33,97.62,100.66, 100.56,100.92,103.58,105.88,103.67,106.60,109.48,109.39,110.45,112.09, 112.86,115.38,113.88,114.90,116.06,121.06,118.96,124.68,121.91,126.73, 125.99,125.11,127.54,127.61,130.84,129.45,129.92,131.68,135.58,132.72, 139.12,140.79,140.09,142.81,141.31,144.04,147.64,145.12,145.20,144.55, 150.78,152.93,153.54,153.18,152.88,155.46,154.39,155.14,161.63,162.86, 163.65,165.37,165.61,165.42,170.71,165.58,169.40,171.57,169.15,175.33, 174.55,175.81,176.24,182.59,184.90,182.76,183.55,183.61,185.00,185.41, 185.38,187.87,189.47,187.60,192.79,195.14,193.10,199.55,196.40,196.44, 198.08,200.57,202.29,203.76,200.66,204.07,207.90,211.29,210.19,210.61, 213.07,212.00,216.65,213.57,220.30,216.25,220.35,224.58,224.33,224.33, 226.66,229.28,224.17,227.77,228.92,229.49,233.63,230.58,235.12,235.15, 235.70,239.02,236.41,237.05,246.31,242.51,244.14,248.60,244.30,250.38, 244.44,250.19,249.19,253.92,251.85,253.91,256.54,257.72,262.83,262.42, 260.00,263.99,263.75,263.92,265.42,267.36,269.14,268.43,274.40,276.98, 271.01,276.59,278.07,277.30,282.02,280.19,284.13,281.67,284.84,283.61, 289.36,285.82,286.56,292.73,291.48,291.73,287.48,295.24,298.15,303.31, 300.09,300.78,305.75,300.65,304.72,303.44,303.18,313.87,308.17,310.33, 313.39,313.75,313.18,321.78,316.44,323.23,321.25,316.20,322.60,323.16, 318.39,328.89,325.61,331.61,331.21,330.23,332.51,333.70,330.38,339.94, 331.06,334.27,340.89,337.67,344.84,341.97,342.95,347.85,345.64,346.76, 349.32,351.06,350.98,355.62,360.02,349.06,355.03,353.06,357.20,358.99, 359.97,366.70,365.31,365.18,369.14,371.24,368.32,362.76,372.97,371.58, 63.36,68.91,75.70,81.08,87.13,93.45,96.61,103.74,110.85,115.83, 122.78,126.88,134.91,140.23,146.47,151.24,158.64,163.73,169.79,174.81, 180.37,187.26,191.60,198.60,205.28,211.17,217.61,221.93,228.74,236.09, 240.71,247.68,252.94,257.62,264.90,269.46,276.10,280.55,285.12,293.24, 301.72,306.52,311.51,315.84,321.08,329.31,335.77,342.32,347.22,353.32, 357.28,365.31,370.78,377.45,382.04,388.87,393.32,401.60,406.74,412.25, 417.41,422.12,428.52,437.59,440.89,445.56,451.40,458.79,466.40,471.51, 475.77,481.63,489.12,493.03,501.86,505.57,513.11,519.63,524.09,530.45, 538.39,540.08,548.98,553.81,557.41,565.26,571.06,574.20,582.43,590.18, 591.91,601.58,606.87,615.79,620.84,625.41,627.42,637.39,643.52,650.45, 651.58,660.24,668.56,674.29,677.10,684.51,690.98,696.00,705.01,708.58, 711.51,719.76,726.05,729.87,739.01,746.54,749.08,755.22,761.15,768.97, 773.36,778.20,786.10,788.28,796.25,802.16,805.44,812.60,818.31,826.88, 834.11,838.02,843.26,846.89,852.41,862.83,867.21,872.45,881.94,883.93, 888.52,897.84,903.18,912.09,914.35,918.72,927.95,930.75,934.74,942.77, 950.89,957.78,963.73,967.67,975.68,981.22,986.39,995.39,1000.83,1002.11, 1008.32,1019.35,1020.52,1029.34,1033.96,1038.72,1047.11,1050.55,1056.59,1061.24, 1066.43,1075.68,1081.30,1084.61,1093.77,1104.01,1100.73,1107.82,1115.57,1119.58, 1125.26,1130.19,1134.28,1145.76,1150.58,1154.88,1160.22,1173.69,1175.16,1183.14, 1190.66,1193.81,1200.64,1202.31,1209.04,1218.40,1218.48,1227.42,1230.20,1235.20, 1242.20,1251.41,1259.07,1263.58,1273.83,1272.78,1279.27,1287.53,1291.37,1293.63, 1305.55,1309.17,1316.93,1327.80,1327.95,1328.35,1342.69,1347.35,1346.78,1355.69, 1358.95,1372.14,1380.41,1379.60,1389.73,1392.46,1401.07,1405.38,1410.22,1417.79, 1425.12,1427.98,1432.71,1440.30,1448.23,1451.93,1460.59,1462.88,1471.25,1473.33, 1483.77,1490.31,1491.87,1499.37,1511.60,1510.74,1517.38,1522.06,1532.93,1538.93, 1538.73,1548.38,1551.99,1558.94,1572.71,1570.32,1579.60,1581.91,1588.71,1598.55, 1596.98,1605.32,1614.88,1615.10,1629.21,1631.59,1640.79,1641.49,1647.74,1656.79, 1662.80,1667.04,1671.05,1678.42,1687.12,1688.41,1688.82,1701.80,1705.35,1713.28, 1717.03,1722.64,1726.53,1737.79,1738.76,1748.87,1759.17,1756.98,1764.33,1774.03, 58.09,63.86,69.85,75.56,79.28,85.14,89.30,96.44,102.19,107.39, 112.45,118.42,123.88,129.59,133.49,138.53,146.20,150.32,155.50,160.80, 167.82,173.74,178.80,183.99,191.04,194.51,199.22,205.06,210.55,218.00, 222.31,226.06,232.51,237.23,243.33,248.64,254.09,259.11,266.06,270.50, 274.05,281.38,287.24,293.76,297.54,303.07,310.24,313.45,318.87,325.98, 332.08,335.62,343.54,345.91,351.82,356.41,359.71,368.69,372.88,381.05, 386.18,391.25,398.58,402.06,404.95,409.88,418.99,425.59,429.00,435.38, 439.19,443.64,450.38,456.91,462.55,466.40,469.77,477.02,484.28,489.62, 492.12,501.27,505.14,510.69,515.23,521.58,527.58,532.57,536.40,545.59, 547.74,553.25,560.33,565.18,571.25,574.70,580.89,590.02,593.80,598.20, 604.17,608.89,613.78,619.21,624.00,627.67,636.26,638.26,647.65,652.20, 657.50,661.44,667.73,669.62,679.58,684.91,692.73,697.69,703.77,704.41, 711.87,716.78,726.41,729.35,738.70,742.59,747.93,750.10,757.33,761.68, 765.21,772.72,778.61,782.27,787.80,793.99,801.18,806.33,809.42,814.32, 821.70,827.43,832.42,839.70,845.51,850.32,856.31,860.51,866.88,867.28, 875.00,882.20,887.67,888.67,899.87,902.75,908.13,915.87,915.65,926.16, 934.39,933.45,940.07,946.22,950.47,955.96,965.07,972.42,974.94,979.80, 987.22,990.67,998.10,1000.25,1006.90,1014.00,1016.78,1025.40,1029.83,1034.83, 1039.47,1042.50,1050.48,1055.76,1061.22,1065.66,1071.08,1077.37,1084.87,1087.58, 1096.07,1098.63,1106.28,1106.77,1116.98,1120.30,1125.88,1130.27,1137.99,1145.11, 1146.87,1153.50,1159.11,1162.64,1172.60,1178.31,1181.65,1188.12,1192.15,1196.77, 1205.77,1204.58,1218.30,1221.78,1225.55,1231.03,1236.81,1239.33,1250.55,1248.17, 1255.52,1266.66,1264.26,1269.90,1281.83,1286.14,1287.09,1296.98,1300.19,1311.36, 1312.92,1318.89,1324.21,1324.66,1334.99,1332.06,1348.18,1347.56,1352.31,1358.75, 1365.42,1375.03,1377.97,1385.04,1387.29,1392.21,1401.23,1407.33,1413.37,1420.38, 1424.01,1425.59,1433.27,1436.76,1444.17,1451.72,1451.43,1464.99,1466.05,1471.86, 1479.35,1480.36,1490.68,1492.84,1500.77,1502.78,1509.15,1514.56,1520.24,1524.68, 1527.90,1533.97,1535.68,1544.58,1551.11,1557.68,1561.45,1566.07,1570.79,1577.92, 1589.84,1595.18,1594.53,1597.86,1612.20,1609.45,1621.12,1621.37,1633.57,1634.97, 55.82,59.30,63.25,69.32,74.32,79.30,82.98,88.51,95.02,98.35, 103.52,106.89,113.89,116.97,122.79,127.75,131.87,137.76,142.67,148.24, 153.75,157.57,165.15,167.56,174.03,177.50,182.70,188.59,194.10,199.17, 202.95,210.88,214.21,217.82,223.93,227.42,234.83,240.96,244.23,249.65, 253.44,258.27,266.11,268.34,272.39,280.21,286.97,289.42,294.91,294.90, 305.22,307.39,313.44,317.52,325.81,329.04,335.19,342.61,343.62,350.70, 352.97,359.06,361.41,369.67,375.99,379.34,382.03,388.43,393.81,398.77, 403.73,409.77,414.58,418.33,424.39,428.91,434.94,439.41,445.99,446.46, 454.37,461.36,464.54,470.96,471.64,476.79,486.69,490.13,495.16,496.33, 505.95,510.82,515.33,521.46,526.68,529.59,532.92,538.80,545.38,550.28, 552.84,559.13,562.70,569.93,573.38,579.40,582.11,586.01,596.30,600.18, 606.48,609.45,608.08,621.55,626.77,633.06,631.54,644.83,646.74,651.34, 655.92,662.67,662.32,672.99,678.32,681.21,686.24,691.10,692.88,700.79, 704.80,713.97,718.30,722.76,724.59,729.13,734.67,738.67,746.78,746.51, 756.07,760.47,764.53,769.53,776.90,781.44,786.70,788.65,794.57,802.93, 810.26,814.35,812.91,820.44,822.79,830.82,838.53,837.52,843.07,847.08, 857.76,855.94,864.10,872.43,879.56,876.82,879.19,892.29,899.10,897.50, 904.27,907.20,913.89,921.48,925.30,926.08,938.39,937.11,947.72,945.91, 953.92,962.08,961.94,970.78,973.46,979.53,983.84,992.24,992.70,1005.92, 1008.32,1015.27,1012.01,1022.48,1027.42,1033.98,1036.68,1039.18,1041.08,1047.88, 1054.28,1061.68,1060.58,1073.02,1072.82,1079.52,1085.23,1092.16,1096.48,1100.73, 1106.04,1109.14,1114.34,1128.34,1126.15,1129.22,1137.35,1139.22,1141.87,1152.48, 1155.02,1159.27,1164.58,1173.49,1172.99,1183.78,1186.66,1192.41,1198.90,1203.53, 1201.57,1211.43,1218.97,1223.93,1222.85,1230.25,1236.57,1239.65,1244.79,1258.33, 1258.80,1259.09,1264.02,1268.83,1276.52,1284.79,1283.56,1291.37,1298.23,1303.06, 1302.71,1310.40,1312.99,1321.01,1329.04,1332.38,1336.62,1345.13,1349.37,1349.40, 1358.92,1362.28,1368.35,1373.78,1379.32,1383.48,1383.64,1389.33,1400.41,1399.12, 1409.96,1417.14,1414.47,1424.88,1426.15,1433.84,1434.85,1441.58,1449.49,1451.69, 1460.49,1462.04,1466.40,1471.43,1484.26,1477.92,1487.96,1485.52,1491.90,1502.39, 49.81,53.73,58.69,62.79,67.85,70.86,78.78,80.96,86.21,89.37, 94.35,100.12,103.29,109.64,113.29,116.99,123.16,127.28,132.41,137.44, 141.60,148.35,151.08,155.41,160.41,167.33,168.16,172.53,178.77,180.78, 185.23,190.30,196.13,198.71,204.09,210.63,214.07,217.46,222.15,227.09, 232.01,237.44,241.96,247.73,249.92,254.58,260.49,264.99,269.38,275.10, 280.20,281.88,289.30,293.06,297.22,301.35,305.69,311.60,315.49,320.56, 324.51,332.31,334.92,337.58,344.14,346.46,356.69,358.03,364.11,364.23, 368.77,375.10,379.29,381.55,391.65,392.07,397.66,402.69,405.73,413.27, 417.85,422.67,426.81,430.74,436.10,437.75,445.84,451.21,454.16,453.18, 462.04,467.13,474.16,477.98,483.02,482.03,489.96,494.93,500.04,507.11, 507.17,512.34,518.74,521.69,525.15,531.87,533.14,543.26,544.29,550.08, 553.48,557.09,564.61,570.17,577.03,577.02,580.34,586.77,591.23,595.90, 601.85,607.30,604.17,614.80,619.98,620.28,626.38,632.24,639.55,642.25, 649.68,650.81,654.64,662.74,664.77,668.13,675.61,677.12,683.97,686.00, 691.47,694.86,700.88,706.40,712.11,718.14,721.15,727.89,730.48,732.47, 737.43,745.69,748.49,754.22,757.24,759.29,767.54,773.25,774.60,779.84, 784.06,788.80,787.95,795.66,800.02,805.42,812.08,813.42,824.93,824.16, 831.06,831.48,839.23,847.36,848.11,851.72,855.25,860.72,864.69,876.08, 871.49,881.31,885.50,891.53,896.43,903.58,901.96,909.69,915.32,919.07, 923.11,925.19,931.64,937.61,940.48,940.87,944.61,953.05,957.08,965.93, 969.55,973.12,973.80,979.75,986.02,992.62,998.56,997.28,1003.59,1010.57, 1016.70,1017.45,1025.89,1023.42,1027.49,1035.10,1039.14,1042.06,1056.30,1051.45, 1056.09,1065.89,1062.92,1070.22,1079.92,1084.04,1081.93,1087.60,1095.12,1106.33, 1104.80,1106.28,1111.96,1119.45,1125.54,1124.44,1130.90,1133.27,1141.19,1146.34, 1147.93,1157.34,1160.57,1162.89,1172.75,1175.49,1180.60,1179.46,1190.20,1192.43, 1194.83,1203.25,1205.29,1210.11,1215.85,1219.69,1225.08,1226.18,1235.26,1237.09, 1243.31,1243.25,1249.47,1256.28,1262.88,1270.45,1272.28,1273.72,1282.57,1283.97, 1287.13,1294.93,1295.90,1309.56,1306.47,1312.09,1320.62,1313.80,1327.15,1327.13, 1335.13,1337.04,1350.33,1342.46,1355.69,1361.45,1357.89,1370.74,1372.21,1374.40, 44.98,49.93,52.60,57.94,61.84,64.94,69.82,73.43,77.26,83.62, 85.43,90.68,96.00,99.16,105.04,108.45,113.30,114.97,120.84,124.23, 131.75,134.36,135.09,142.39,144.94,148.55,153.07,157.13,161.90,166.59, 170.45,177.30,178.81,183.22,186.17,193.03,194.48,198.77,204.74,209.43, 213.13,214.52,221.40,227.69,229.29,235.27,238.79,241.10,245.43,249.97, 256.86,261.40,260.07,268.34,270.91,274.17,279.54,283.59,288.88,292.47, 296.11,302.39,304.48,309.38,311.71,316.84,323.87,326.27,330.65,336.95, 338.92,344.62,348.33,346.52,359.02,362.97,362.81,370.15,376.21,375.69, 378.99,384.47,392.63,389.53,396.45,404.29,406.68,408.14,418.11,420.19, 418.78,429.55,432.23,430.36,441.60,441.89,449.11,451.21,459.40,459.02, 464.17,468.79,473.22,479.96,482.10,485.64,490.77,491.73,499.01,504.57, 505.01,511.32,515.86,520.51,524.23,526.79,535.14,536.74,539.11,545.16, 547.46,554.08,553.78,564.43,563.07,571.80,571.14,574.56,581.47,587.70, 590.14,595.63,599.17,606.59,605.13,614.25,616.70,617.84,624.21,631.53, 632.25,634.29,644.80,646.36,650.68,650.13,659.52,663.95,670.46,674.17, 674.27,677.46,682.45,685.10,692.24,696.18,702.56,704.97,710.86,715.22, 716.83,724.14,722.97,727.57,731.47,735.82,741.83,751.81,747.86,752.98, 759.47,760.03,769.83,774.98,772.99,780.10,790.55,784.92,791.93,799.20, 791.55,803.96,808.13,808.25,817.45,822.92,822.59,832.38,836.82,840.28, 844.58,844.27,854.58,855.53,858.09,868.24,865.55,871.65,875.60,881.60, 883.89,886.87,893.90,896.74,900.14,906.78,908.42,918.67,920.71,923.80, 926.95,931.63,936.00,942.01,946.83,952.80,947.81,950.63,963.30,967.29, 968.45,976.80,973.92,977.72,987.33,986.92,995.69,999.53,1001.15,1010.48, 1008.34,1016.98,1016.95,1024.31,1029.17,1032.66,1040.15,1034.62,1043.96,1047.44, 1051.64,1061.97,1058.14,1063.03,1072.60,1072.61,1078.44,1088.77,1091.71,1092.23, 1093.61,1100.53,1098.89,1108.09,1116.13,1118.57,1117.81,1117.79,1128.53,1133.25, 1136.07,1144.85,1143.94,1151.66,1155.30,1150.58,1159.06,1165.43,1167.45,1176.96, 1176.92,1181.98,1188.94,1189.40,1201.05,1195.86,1208.84,1205.86,1210.69,1213.82, 1219.10,1220.67,1225.66,1235.07,1237.12,1245.36,1248.68,1249.13,1255.08,1259.69, 41.21,45.06,49.25,52.97,54.66,60.01,64.66,67.08,70.86,73.72, 78.80,82.22,86.61,91.13,96.79,98.64,103.16,107.06,107.45,115.44, 118.73,121.16,123.60,129.56,133.01,137.06,140.52,145.54,148.40,151.90, 156.21,161.33,162.93,168.37,170.82,174.24,177.02,183.32,187.35,187.06, 195.31,201.22,201.51,203.70,209.63,214.49,214.28,219.81,226.40,228.83, 233.00,235.12,240.03,241.94,247.86,251.95,256.77,260.67,264.89,266.12, 270.02,274.54,276.83,280.43,284.20,291.78,291.58,295.05,301.48,303.37, 308.47,312.29,315.55,321.83,325.04,331.15,329.39,334.86,338.90,346.91, 346.95,350.76,353.72,358.85,362.35,366.45,368.88,375.69,376.01,383.25, 384.22,386.97,392.06,395.45,396.67,405.76,409.63,412.71,411.96,419.14, 419.83,424.27,432.33,434.10,437.68,441.92,448.94,451.07,455.68,460.02, 461.11,469.73,468.34,470.31,476.89,481.69,487.43,488.70,491.68,495.86, 501.14,504.13,510.09,513.02,516.75,520.74,525.74,527.01,534.08,534.86, 539.33,543.78,549.33,548.61,556.15,559.85,562.74,565.46,568.90,576.11, 578.14,582.16,586.51,589.93,591.75,600.75,597.64,604.96,608.65,616.84, 615.12,619.19,622.97,624.80,630.90,631.59,637.32,642.41,645.19,651.48, 656.46,659.69,658.03,662.29,666.10,670.09,678.96,682.76,683.22,683.69, 695.35,689.85,702.38,704.49,703.34,709.78,713.48,713.89,721.99,727.12, 733.54,731.02,734.93,743.46,741.82,749.83,751.77,763.24,758.72,764.43, 765.65,773.89,779.33,782.58,786.51,790.99,788.67,799.32,793.68,808.23, 804.46,808.66,817.69,818.23,821.42,825.43,827.73,838.98,840.28,841.94, 847.69,847.84,853.47,856.47,862.57,868.11,863.56,872.88,882.15,876.67, 884.61,886.91,889.07,895.35,895.70,906.50,907.08,909.70,910.04,920.08, 923.75,925.02,935.41,930.94,938.32,937.55,937.21,952.48,947.96,959.38, 962.07,966.56,967.65,972.05,975.60,975.72,982.19,990.12,994.48,997.42, 1001.41,1010.03,1006.68,1020.39,1012.39,1020.21,1017.35,1029.61,1032.32,1030.15, 1040.52,1040.78,1041.16,1049.99,1054.92,1052.95,1062.13,1059.91,1065.18,1074.22, 1078.12,1081.86,1084.69,1081.46,1086.33,1089.04,1098.29,1095.03,1100.95,1111.72, 1112.77,1115.51,1118.24,1127.29,1123.56,1130.23,1134.58,1130.24,1141.79,1149.82, 37.92,41.77,43.91,47.08,50.77,55.87,57.88,61.98,64.75,68.10, 71.81,76.70,78.47,82.56,86.30,88.31,94.91,95.66,100.69,104.53, 106.14,109.42,114.44,117.12,120.84,126.33,126.30,133.88,133.57,139.04, 140.62,145.14,149.64,152.57,159.74,159.17,162.24,168.17,173.24,172.39, 176.79,177.95,185.24,187.66,189.82,196.27,197.70,205.04,205.91,205.51, 213.76,216.46,218.87,220.69,227.81,227.02,231.21,238.28,240.44,244.29, 247.62,247.15,253.00,258.14,261.54,268.61,267.72,274.94,275.20,282.45, 280.06,282.64,289.27,292.05,293.74,299.34,298.82,303.21,306.41,312.64, 319.28,319.51,322.22,324.35,330.34,333.27,336.37,343.02,344.01,346.91, 352.20,353.44,358.44,366.31,365.25,369.89,370.96,374.41,384.08,383.69, 386.29,391.50,392.12,394.72,397.93,400.88,406.40,408.50,410.20,416.01, 420.27,425.96,426.01,429.02,437.68,439.08,444.54,448.24,452.06,452.37, 452.56,459.17,461.71,466.75,463.62,474.19,479.58,482.94,483.60,485.41, 488.28,494.84,496.73,496.15,504.74,508.57,508.71,509.09,521.95,521.14, 524.10,530.40,531.41,535.09,539.43,538.75,545.60,547.61,555.43,564.22, 560.27,565.58,571.97,569.47,571.07,577.69,581.79,581.82,590.60,593.08, 594.79,596.92,603.29,605.77,610.03,611.40,616.10,618.99,622.43,625.46, 630.30,633.26,639.65,644.63,642.07,646.27,654.75,650.69,656.20,656.75, 663.91,665.72,670.44,672.96,676.48,680.28,684.00,688.51,690.76,698.70, 693.76,702.11,709.08,711.20,712.48,721.07,724.22,722.96,729.60,725.26, 731.10,741.04,742.48,743.60,752.40,753.70,756.25,756.73,761.08,766.64, 766.45,774.57,779.29,779.60,780.32,787.69,788.20,793.27,793.43,797.77, 801.22,811.02,816.97,822.95,812.08,825.15,818.68,825.77,828.37,837.64, 838.77,839.58,845.07,849.46,853.21,856.56,860.87,863.00,863.40,874.17, 869.95,883.15,876.43,883.91,894.73,890.98,894.73,897.24,900.32,906.20, 911.45,910.91,917.05,915.53,922.73,918.65,924.56,932.41,937.78,942.38, 943.45,946.30,953.44,954.70,956.78,964.47,966.60,965.41,970.52,976.93, 977.93,982.91,984.60,985.95,985.01,994.88,1001.42,1002.36,1007.05,1010.56, 1011.79,1018.10,1020.31,1025.41,1019.43,1031.42,1032.83,1037.97,1037.39,1045.73, 34.62,36.55,40.14,41.59,46.87,49.34,52.30,55.21,58.78,62.06, 64.80,69.72,70.76,73.72,78.78,81.91,84.45,88.16,92.22,92.87, 95.54,100.11,102.40,106.62,111.21,113.61,113.11,119.75,121.28,126.32, 129.44,131.67,135.09,138.50,140.76,145.26,149.38,152.69,154.01,156.21, 161.32,167.77,169.20,168.65,174.27,174.30,179.15,181.46,183.19,189.25, 192.42,195.79,195.90,201.56,205.34,206.30,212.84,211.75,216.60,220.49, 224.32,226.12,231.09,234.96,236.12,238.08,241.93,248.12,246.29,251.73, 258.80,258.41,263.75,263.19,269.37,274.00,275.61,276.84,281.40,281.12, 285.75,287.24,293.66,297.71,299.61,301.18,304.72,309.11,311.83,315.53, 324.07,320.31,327.38,327.94,333.47,332.95,339.97,338.85,343.04,348.00, 347.17,357.34,356.12,360.39,364.58,363.16,370.90,374.70,375.20,379.09, 382.88,383.23,386.63,395.87,391.03,399.67,399.42,408.90,404.20,410.83, 411.54,411.90,420.42,420.03,425.90,429.83,429.92,432.89,438.08,442.12, 447.25,447.37,451.85,458.41,461.24,460.91,460.81,472.30,469.11,469.62, 476.63,478.64,485.19,483.28,489.25,488.99,497.62,496.93,502.72,509.76, 509.87,514.02,515.36,521.81,519.83,524.63,528.23,527.41,533.95,536.88, 537.93,543.75,542.75,548.08,555.92,557.87,558.80,562.50,566.36,576.53, 569.83,576.25,583.18,577.20,580.56,585.25,593.75,598.59,593.45,596.42, 605.08,608.20,611.75,615.41,614.96,621.46,619.86,626.43,624.14,632.07, 637.35,633.73,640.46,649.29,644.07,654.22,651.34,656.55,658.98,663.15, 665.37,675.21,673.27,683.96,675.66,686.59,686.57,687.05,688.80,704.42, 699.67,700.48,700.65,709.06,715.60,721.22,718.05,725.49,721.52,730.28, 731.08,727.30,734.89,738.31,741.36,747.17,752.23,751.47,756.99,759.74, 764.03,765.56,769.20,773.89,773.88,777.77,778.76,784.83,784.28,787.42, 793.62,798.18,794.80,800.81,805.16,809.48,808.51,818.13,820.56,821.85, 824.58,831.80,827.99,832.34,841.00,843.14,847.16,847.53,855.39,856.06, 856.13,859.69,862.88,862.31,867.42,873.65,876.63,884.47,882.58,881.38, 894.40,893.66,892.62,902.39,902.47,907.07,902.29,908.93,911.62,922.48, 916.74,916.86,922.97,923.45,932.76,938.22,932.31,939.78,941.63,949.62, 30.77,33.23,36.12,38.20,42.24,45.12,46.81,49.84,53.61,57.05, 58.81,61.36,63.96,68.05,71.28,74.84,76.64,78.20,81.42,84.30, 88.87,89.87,94.48,95.20,99.49,102.31,105.58,109.43,111.26,115.58, 116.08,119.66,120.37,125.23,125.82,131.10,136.94,137.50,139.80,146.04, 146.18,149.00,152.25,152.96,156.94,159.77,159.15,163.54,169.97,170.63, 175.36,174.74,178.47,182.74,183.94,188.80,191.57,192.54,195.52,199.13, 202.61,202.98,208.78,211.11,214.49,220.60,223.65,224.06,223.63,230.30, 232.04,235.25,237.24,242.40,244.57,246.60,246.37,256.73,257.82,259.60, 260.20,261.87,267.84,270.31,272.20,277.64,277.99,280.75,281.16,287.30, 291.51,294.41,294.72,295.72,298.84,305.17,309.97,311.77,315.60,315.42, 315.74,320.61,320.67,325.34,328.98,330.73,333.49,337.87,340.35,344.38, 347.05,343.64,355.59,356.29,360.86,356.17,364.96,365.86,369.30,369.20, 373.29,377.30,378.08,382.14,392.43,388.37,387.91,394.86,401.16,398.98, 402.87,408.43,407.97,408.69,413.81,418.06,419.20,419.90,426.41,425.71, 430.25,434.67,437.06,440.60,442.75,446.85,451.08,453.49,454.69,457.89, 463.00,468.84,470.24,470.78,475.82,476.75,478.97,477.71,483.38,488.86, 487.97,492.69,498.95,500.76,501.40,507.86,506.52,510.04,512.50,518.38, 522.55,524.71,521.07,527.07,529.52,536.70,534.25,534.30,537.77,544.31, 550.06,551.87,557.29,556.42,559.65,561.42,565.27,569.87,573.18,571.96, 570.63,579.56,580.31,582.96,586.55,590.25,598.90,597.43,593.80,604.45, 606.68,603.68,613.17,608.28,613.88,617.25,622.33,628.04,631.13,624.83, 635.63,638.28,639.25,646.16,649.61,652.55,648.90,649.27,655.70,653.85, 659.60,667.48,669.74,669.35,674.56,676.78,680.58,681.36,686.89,692.71, 689.97,700.70,695.37,701.10,701.67,701.93,712.43,708.40,718.46,715.36, 716.36,726.69,721.11,723.19,736.58,727.02,738.01,738.48,742.98,747.05, 745.12,752.60,753.53,752.92,753.31,763.75,762.30,768.49,766.91,775.15, 773.54,780.34,777.08,778.99,790.22,797.52,792.98,801.43,803.04,797.70, 801.82,809.46,810.63,816.32,819.10,814.58,821.39,827.31,826.82,829.40, 834.63,839.55,841.99,840.62,847.35,850.11,853.80,853.03,852.38,859.82, 28.01,30.59,33.89,35.93,38.54,39.49,43.50,46.21,50.18,51.73, 53.10,56.55,59.08,62.92,64.46,64.00,67.64,71.82,73.23,75.85, 78.66,82.20,85.65,87.42,92.19,93.80,94.80,96.84,99.97,104.30, 106.68,108.54,111.94,110.61,117.33,118.63,119.23,123.44,123.02,129.70, 133.18,131.80,136.26,142.11,143.32,143.12,146.62,151.39,155.33,153.14, 156.62,161.97,161.12,163.44,165.53,169.02,171.97,176.67,177.60,182.74, 184.22,186.20,186.20,190.42,194.80,195.29,194.84,200.94,204.32,207.23, 207.10,209.85,213.44,219.33,220.05,223.93,227.20,229.37,225.92,235.48, 235.78,237.71,240.36,242.66,249.90,247.80,248.11,252.81,253.77,256.42, 259.43,265.89,265.25,267.11,268.86,275.97,275.17,280.17,283.19,284.36, 287.50,291.45,289.36,297.20,296.01,301.47,305.01,307.85,307.66,311.69, 317.07,315.40,322.20,321.41,325.76,325.04,328.48,332.76,332.98,336.37, 339.65,338.36,349.14,344.77,357.07,351.63,357.68,359.63,362.47,364.70, 367.79,366.17,369.56,376.38,378.05,377.80,382.20,382.81,385.00,390.70, 392.67,395.30,393.70,400.45,401.10,402.73,409.08,420.09,412.93,413.23, 422.81,420.68,423.84,426.68,427.96,430.08,430.83,435.11,431.53,438.60, 446.80,447.24,448.37,461.50,457.91,456.27,456.46,460.11,465.43,469.35, 465.31,469.06,474.20,474.51,478.57,483.63,482.57,492.83,493.24,490.03, 498.78,497.41,502.45,499.02,505.08,512.77,515.19,511.15,516.80,514.23, 519.17,524.10,525.67,533.83,534.78,531.31,530.70,540.85,536.98,545.18, 549.97,554.84,556.39,562.85,556.15,556.12,558.93,563.95,567.03,573.28, 575.34,572.91,575.34,579.76,584.05,586.21,588.59,589.11,598.16,596.02, 599.89,605.11,606.13,609.99,613.09,611.57,614.95,612.92,621.55,622.88, 626.51,628.19,633.19,635.27,635.50,633.42,636.88,647.70,642.98,649.31, 640.83,655.51,655.46,660.99,663.75,666.05,664.08,667.68,675.23,671.48, 670.88,686.86,679.54,692.17,684.52,687.75,691.69,693.75,697.70,704.64, 707.14,714.23,708.57,707.48,716.21,717.08,716.15,722.65,723.69,728.08, 729.52,732.00,737.94,737.99,740.78,747.23,744.54,742.94,747.62,744.89, 758.81,754.43,765.74,764.20,753.44,766.00,770.25,773.75,772.63,775.65, 26.90,27.79,29.46,30.85,35.24,37.55,38.75,42.25,42.47,45.71, 48.55,51.05,54.44,55.57,58.11,61.06,63.30,67.61,67.31,70.56, 71.65,73.75,76.49,79.99,80.51,85.76,88.50,89.72,92.68,94.88, 95.94,95.49,102.03,102.66,104.14,107.13,110.38,111.22,114.68,117.42, 120.55,123.16,125.06,122.87,127.95,132.79,131.30,135.45,136.88,141.25, 139.98,143.02,145.62,152.83,151.77,153.30,154.10,158.28,161.45,164.03, 166.04,167.85,169.26,172.25,175.54,177.20,176.99,182.09,185.44,187.04, 189.14,191.42,192.25,198.93,196.75,199.54,199.66,206.12,205.50,209.66, 213.22,214.16,216.90,222.60,221.87,222.55,223.82,228.87,231.62,235.07, 236.09,237.09,240.23,243.23,242.94,249.90,251.25,252.55,255.19,259.57, 261.55,259.01,263.35,265.30,272.04,272.58,270.85,280.40,284.68,276.94, 277.69,287.56,290.74,285.21,292.93,289.91,296.75,293.72,300.34,306.12, 305.63,305.98,312.03,309.56,317.53,318.99,322.66,320.00,317.30,325.00, 329.30,330.62,337.49,339.11,338.52,340.65,344.42,350.33,352.50,352.32, 351.38,351.31,355.50,360.36,363.56,366.35,368.50,370.84,373.94,371.41, 379.15,381.37,384.02,389.60,389.16,388.96,386.18,393.04,397.57,394.42, 400.30,403.45,403.75,407.32,408.68,414.02,409.32,415.49,418.26,419.47, 421.56,427.24,425.89,433.25,432.99,437.50,440.58,440.72,446.85,452.41, 448.52,449.01,449.82,451.51,456.19,456.07,461.12,467.94,463.12,471.75, 466.62,470.76,480.13,478.67,486.90,484.38,486.33,486.72,490.39,488.57, 498.14,496.88,499.17,502.04,501.38,508.30,508.75,513.10,516.31,514.20, 518.90,514.66,518.90,524.71,523.92,534.08,530.98,528.94,538.99,537.86, 538.94,548.34,538.87,556.14,547.14,553.82,560.18,560.90,554.37,560.61, 565.04,564.41,564.77,580.56,574.61,574.38,576.01,576.25,588.67,589.76, 589.71,588.31,593.73,592.10,598.03,600.12,603.07,608.65,609.49,609.46, 611.62,616.12,621.95,625.30,620.73,629.64,624.43,633.88,626.90,634.04, 634.67,635.24,647.16,643.63,644.42,644.21,652.91,654.87,650.75,651.28, 659.72,655.46,665.89,664.97,664.52,672.01,672.83,675.09,678.55,675.99, 683.18,683.67,690.33,692.10,686.14,694.05,704.96,700.42,699.48,703.70, 22.52,25.16,26.15,28.93,30.55,32.94,35.70,37.74,40.89,42.12, 44.52,47.36,48.35,50.61,52.59,56.67,56.72,58.24,61.80,63.25, 65.41,65.53,71.51,71.18,73.29,75.53,79.01,80.08,82.30,83.37, 84.08,89.23,88.81,92.68,93.43,98.37,98.63,101.80,101.72,104.45, 108.05,107.70,112.11,113.63,115.59,117.55,124.32,120.94,123.36,127.99, 131.78,130.83,133.28,137.10,133.58,139.75,137.94,144.21,144.84,150.65, 150.74,152.65,153.09,152.75,161.03,160.52,163.92,166.35,166.80,168.64, 170.72,171.60,172.03,180.54,180.23,179.21,183.50,187.36,186.45,188.03, 192.42,196.09,197.26,199.03,201.05,203.25,202.93,211.27,208.05,211.56, 215.75,215.25,216.54,219.99,221.70,223.60,228.45,230.16,231.17,236.04, 237.44,239.17,235.15,241.93,242.97,243.66,245.65,248.54,249.83,253.11, 253.39,254.51,261.81,260.60,263.51,262.22,269.09,265.73,269.46,275.22, 281.18,272.94,279.99,285.29,287.60,286.83,288.54,289.71,289.93,296.79, 301.26,303.70,303.16,304.77,304.30,306.67,309.40,309.40,312.89,317.16, 316.88,324.77,321.15,325.56,331.48,331.00,332.70,338.06,337.13,338.12, 341.77,338.71,350.08,346.65,349.68,351.57,352.82,356.23,352.91,354.68, 366.61,360.03,368.07,371.09,364.63,373.52,377.05,372.23,377.02,379.99, 383.52,383.11,389.04,386.17,390.49,394.41,396.03,400.18,399.79,403.01, 405.46,407.16,408.66,407.79,418.29,416.38,417.61,416.26,422.80,424.80, 422.00,426.06,426.91,427.80,434.00,435.34,434.01,441.14,440.91,446.24, 444.29,446.18,448.10,452.62,457.88,457.21,453.04,464.96,463.57,465.70, 467.16,468.55,472.50,469.25,482.55,478.80,482.53,485.52,491.75,489.33, 488.53,488.04,493.24,498.16,496.48,499.10,506.90,502.68,504.67,508.52, 504.19,505.31,515.06,519.18,515.28,516.65,530.20,520.89,528.10,524.77, 532.49,526.80,532.96,536.69,538.18,540.14,541.73,543.37,548.26,552.28, 550.12,554.41,554.84,560.50,563.77,567.86,560.76,570.90,567.25,570.13, 571.36,574.31,575.99,579.79,581.36,585.65,584.20,591.24,586.06,595.99, 597.92,589.38,601.31,603.47,601.49,603.50,603.64,613.71,614.00,608.17, 620.52,621.05,618.79,622.74,620.89,624.55,629.99,637.58,633.76,630.42, 21.02,21.89,24.88,27.21,26.54,30.11,32.32,34.10,35.09,37.42, 41.82,41.39,43.79,45.97,47.04,46.87,49.97,52.71,53.98,56.62, 59.51,58.57,62.69,64.49,66.70,68.88,69.10,72.95,73.59,76.09, 78.01,79.88,80.43,84.88,84.80,86.73,90.73,90.42,92.97,96.25, 98.42,97.37,101.51,102.45,106.36,105.51,104.80,109.96,113.71,113.18, 117.97,117.99,118.69,124.59,124.19,127.62,128.29,128.82,129.72,135.45, 133.61,137.33,137.14,142.41,141.46,144.95,145.23,147.98,148.51,153.62, 155.46,155.54,154.47,158.81,159.74,161.83,165.69,168.96,168.40,174.26, 169.27,172.15,177.87,181.45,181.31,181.08,186.09,186.64,189.26,187.04, 194.50,194.27,195.02,198.14,199.19,204.21,201.10,207.41,208.37,206.67, 210.73,215.54,217.03,216.04,218.09,221.81,226.41,226.08,226.35,230.37, 232.15,232.67,237.86,235.15,241.12,239.75,242.51,246.79,246.91,246.18, 249.44,250.81,256.02,253.66,255.91,257.81,256.42,262.13,262.44,270.05, 269.74,269.32,273.62,272.20,277.63,275.98,278.97,279.32,289.98,284.00, 289.10,290.05,294.94,290.12,299.17,298.82,297.08,303.29,299.55,301.25, 308.62,311.59,312.17,316.65,317.95,318.40,318.11,320.48,324.59,325.41, 324.07,328.94,327.19,331.23,335.78,332.28,338.58,335.98,341.63,343.58, 337.88,352.50,349.55,350.59,349.33,353.56,355.80,356.83,357.03,359.04, 364.75,366.53,369.35,369.16,372.33,373.36,375.42,377.34,375.27,379.44, 382.56,386.78,392.19,391.48,389.61,394.44,393.65,399.56,400.29,405.03, 400.74,399.67,407.75,409.76,407.91,418.36,416.50,418.86,415.04,422.47, 421.01,421.54,422.71,423.77,429.90,433.58,429.81,436.90,441.19,446.62, 441.15,440.57,445.31,439.84,442.15,449.82,451.29,455.81,457.76,457.15, 453.81,460.83,466.91,465.47,472.85,472.38,473.36,468.63,475.95,477.49, 476.81,486.97,486.92,478.30,488.07,487.05,486.56,499.58,495.33,499.27, 497.98,500.94,503.28,507.81,505.14,510.86,511.31,510.81,513.36,518.07, 518.31,514.27,515.16,530.67,525.04,528.06,522.04,528.89,533.04,537.61, 537.47,534.93,543.47,544.75,547.14,547.90,548.39,551.67,550.33,551.45, 553.98,556.99,563.39,556.30,561.47,564.31,562.56,565.99,566.25,573.95, 19.13,18.82,20.85,24.28,26.14,27.10,28.74,31.36,33.18,33.50, 34.37,37.69,39.09,40.78,44.90,43.60,46.13,47.54,49.14,51.05, 52.85,55.75,55.33,56.33,60.44,62.65,60.56,63.71,66.30,67.53, 69.62,72.86,73.71,77.02,75.88,81.01,80.35,82.85,85.69,85.24, 87.74,85.97,87.99,92.83,93.20,96.59,98.22,98.56,102.18,103.20, 105.10,103.95,105.24,107.07,110.26,110.58,112.09,118.76,115.75,119.57, 122.61,123.69,124.30,130.66,130.01,132.61,128.34,133.69,133.19,136.75, 141.33,144.77,143.17,144.23,146.61,146.80,150.05,148.18,149.74,152.08, 157.50,158.08,163.89,161.68,163.99,167.82,163.16,166.97,171.34,172.66, 175.78,174.96,175.91,174.29,183.67,182.91,186.50,183.65,185.42,187.78, 191.00,192.57,193.76,199.01,196.47,202.75,200.12,202.50,203.73,204.31, 207.96,210.17,213.16,208.15,215.60,215.71,223.98,217.08,218.37,222.11, 225.17,226.17,225.94,232.02,235.53,234.76,235.37,241.02,240.32,242.10, 245.17,240.08,244.03,241.02,249.92,247.83,250.96,251.66,257.94,261.39, 257.62,259.54,261.64,262.81,262.78,263.08,264.76,274.44,276.65,274.15, 278.44,277.95,281.60,282.29,282.04,282.03,289.90,290.85,293.29,289.58, 291.12,295.42,296.53,302.19,299.89,300.56,304.20,309.07,308.96,305.25, 311.76,309.61,314.04,312.53,319.91,318.51,322.36,326.39,324.17,327.19, 332.14,329.60,327.46,332.79,337.89,336.38,334.95,333.29,339.07,344.10, 348.96,347.90,344.23,351.21,350.13,355.44,353.01,356.93,363.64,363.47, 360.66,365.97,365.72,370.95,370.07,372.77,374.16,377.13,371.96,375.73, 378.76,385.82,378.47,382.23,388.56,386.56,388.80,395.33,398.39,396.17, 397.24,395.65,402.33,401.38,402.16,403.89,407.45,406.05,415.43,418.94, 416.56,421.07,420.68,417.31,421.09,431.56,417.39,423.25,423.61,433.29, 429.48,432.34,433.63,435.82,440.31,440.83,443.86,443.03,446.96,444.99, 447.26,452.53,451.41,452.19,455.92,456.80,454.17,460.30,461.31,461.69, 473.15,468.64,467.08,468.30,470.23,473.38,477.88,474.36,483.55,480.52, 484.45,488.00,484.44,485.95,491.53,488.48,495.84,498.16,495.25,496.66, 496.27,504.32,502.67,501.72,508.97,513.84,506.63,516.50,507.17,509.12, 16.26,18.68,20.70,21.11,23.40,24.72,24.69,28.61,30.35,29.80, 32.58,33.77,33.24,37.63,39.60,39.82,40.94,44.02,45.48,47.22, 47.84,49.70,50.61,51.99,55.27,55.03,58.07,59.09,59.09,61.23, 62.19,64.57,68.63,67.08,69.11,70.88,73.48,73.01,74.94,75.59, 80.97,80.31,81.81,83.81,82.77,87.08,86.64,88.88,93.14,93.64, 94.80,95.28,97.34,100.01,100.86,102.29,102.42,102.53,104.80,108.34, 110.81,110.29,112.57,116.54,118.50,116.66,120.85,118.75,121.81,122.94, 122.57,128.33,129.44,129.33,130.86,131.03,135.16,136.58,139.43,139.70, 138.37,140.13,143.98,145.79,145.64,148.60,148.11,151.62,155.26,152.41, 152.56,157.50,156.69,158.41,160.45,166.60,164.81,165.37,168.38,167.99, 170.31,171.69,171.19,176.33,176.53,180.79,176.82,178.89,182.93,183.38, 182.85,187.11,192.14,191.26,194.16,199.01,195.25,197.02,198.78,202.28, 203.78,204.47,209.01,210.93,206.67,206.54,213.06,209.64,211.12,213.62, 216.73,218.71,220.05,219.99,224.03,224.31,226.29,229.77,230.75,232.84, 233.39,238.16,238.71,243.16,242.98,243.75,242.96,241.77,247.76,245.83, 250.40,246.86,254.97,253.57,254.56,257.16,255.04,257.71,257.68,261.73, 262.03,265.36,267.42,271.52,272.02,271.40,277.40,278.55,276.81,277.46, 279.65,281.63,283.09,286.47,285.32,287.58,288.65,295.85,295.19,294.01, 294.05,297.10,295.74,306.32,301.22,303.56,305.02,308.58,305.86,313.49, 307.41,313.30,313.28,315.87,316.70,320.94,316.75,321.93,320.49,323.72, 325.06,329.47,332.25,332.71,334.30,335.54,334.27,330.72,333.53,347.65, 345.58,340.83,341.12,348.97,343.63,349.98,350.51,349.53,348.69,352.30, 356.37,362.03,360.86,366.23,369.47,358.93,368.17,362.47,369.87,369.90, 373.06,376.01,369.57,375.78,380.48,377.95,382.44,383.01,380.56,384.99, 387.48,388.96,386.93,391.79,391.12,387.82,401.00,403.71,400.41,409.96, 403.85,406.14,403.92,418.09,405.24,408.57,409.81,413.40,423.43,416.12, 420.80,416.11,420.44,423.58,418.38,428.14,427.68,430.46,429.60,436.84, 438.16,436.59,431.18,440.33,440.45,439.36,446.93,444.85,450.53,447.01, 454.60,455.65,454.79,456.10,458.51,455.05,453.26,459.66,459.95,460.33, 68.20,73.80,81.22,86.37,93.21,100.04,104.81,112.76,118.16,124.14, 130.69,137.18,143.40,150.32,156.23,161.70,168.22,176.02,181.78,187.32, 196.05,201.28,207.71,212.42,220.99,226.24,232.45,239.66,243.76,252.82, 258.76,264.38,271.54,276.34,285.37,287.23,296.29,300.27,307.67,314.95, 320.60,325.92,332.70,338.78,344.82,354.98,357.15,366.86,370.90,377.94, 384.68,390.45,395.90,402.71,408.19,419.79,422.68,428.35,435.71,441.75, 448.35,451.83,461.64,465.54,474.59,477.63,486.65,491.23,498.54,503.61, 510.17,518.96,522.66,529.92,536.07,542.17,549.70,555.06,561.68,568.97, 572.63,582.47,588.17,591.10,600.14,609.60,611.83,616.90,626.05,631.13, 638.00,644.77,651.88,655.09,661.76,667.73,673.13,679.72,687.88,693.43, 699.63,709.21,714.34,718.09,724.79,733.11,739.26,744.79,752.67,757.07, 763.91,770.26,775.47,781.40,793.13,795.91,802.44,811.40,815.12,819.50, 828.79,835.36,839.85,845.72,853.09,856.28,865.72,875.92,877.96,885.07, 887.21,896.98,907.46,906.98,919.05,923.99,928.17,933.10,942.38,946.27, 952.63,960.47,968.73,972.28,981.63,986.69,989.27,997.59,1003.97,1011.88, 1018.55,1025.31,1030.01,1038.08,1037.57,1051.25,1055.93,1061.21,1065.54,1076.38, 1082.82,1087.86,1095.78,1100.67,1106.85,1113.54,1123.23,1126.14,1133.08,1136.71, 1143.93,1151.66,1154.97,1166.71,1169.29,1175.56,1185.76,1190.47,1196.94,1204.42, 1207.40,1212.24,1220.60,1227.54,1234.00,1236.42,1241.81,1254.10,1260.48,1263.63, 1266.24,1275.11,1280.98,1286.58,1293.26,1300.26,1310.19,1310.50,1317.49,1329.16, 1333.90,1336.62,1343.10,1354.62,1357.97,1365.41,1375.85,1375.23,1387.62,1393.05, 1397.60,1402.57,1408.81,1416.60,1422.96,1424.25,1432.26,1439.91,1453.04,1455.25, 1463.37,1471.06,1474.58,1477.63,1482.82,1489.86,1499.10,1508.21,1512.72,1513.94, 1527.37,1526.56,1538.09,1544.90,1550.38,1557.40,1562.86,1572.46,1574.52,1577.72, 1587.01,1591.62,1602.59,1610.45,1609.94,1623.17,1626.26,1625.44,1634.16,1644.90, 1651.43,1653.38,1659.16,1669.52,1679.12,1679.01,1686.26,1698.06,1698.09,1707.73, 1712.72,1722.37,1728.35,1734.38,1738.08,1748.16,1747.09,1756.05,1763.11,1766.24, 1778.62,1781.05,1791.25,1795.24,1804.73,1806.89,1818.64,1820.39,1830.90,1832.22, 1841.03,1845.07,1850.43,1859.49,1866.99,1873.80,1881.81,1879.16,1888.49,1895.08, 63.40,68.34,76.45,81.30,86.03,92.47,98.57,104.31,110.06,116.17, 122.28,128.33,134.33,139.87,145.87,152.66,156.14,164.07,167.68,174.53, 179.80,185.68,192.53,198.77,205.32,210.43,215.33,223.68,228.20,233.31, 238.93,246.48,252.19,258.77,265.64,269.20,275.37,280.67,286.34,292.03, 298.48,304.17,312.31,316.30,324.02,329.13,334.79,343.67,345.69,350.80, 358.64,366.39,371.08,374.86,382.41,387.75,390.02,399.23,408.40,412.88, 416.25,423.25,426.98,434.97,441.18,447.52,451.90,460.08,463.39,467.98, 474.05,480.89,487.94,492.54,498.87,506.49,508.45,517.82,525.38,529.31, 534.45,539.66,548.36,554.95,558.31,562.55,569.42,574.01,583.45,590.38, 593.81,596.61,606.17,610.75,616.88,620.68,627.92,634.38,641.78,647.15, 654.01,657.23,664.35,671.98,676.18,681.04,685.88,691.93,698.96,708.18, 712.74,716.05,720.23,732.49,736.80,741.75,747.07,753.48,757.49,767.05, 772.86,775.63,782.47,789.43,795.40,799.18,804.87,810.05,816.59,823.28, 828.58,835.80,838.32,847.24,853.00,859.21,864.84,868.62,874.38,881.25, 888.52,893.47,898.27,902.36,910.43,915.79,922.97,932.26,940.47,940.92, 951.10,952.43,958.62,964.70,971.84,977.14,983.70,991.85,992.02,1001.57, 1003.48,1013.22,1017.48,1025.73,1029.09,1036.51,1042.19,1047.28,1050.74,1060.30, 1068.16,1071.09,1076.18,1088.45,1089.88,1093.54,1103.06,1109.62,1108.56,1121.34, 1126.47,1128.11,1134.95,1141.50,1144.11,1150.39,1158.21,1159.88,1173.37,1180.33, 1181.76,1188.30,1194.63,1200.83,1205.33,1211.57,1218.31,1225.66,1225.36,1233.09, 1244.73,1247.79,1252.83,1258.41,1264.47,1269.78,1277.02,1282.00,1287.21,1296.68, 1301.21,1303.91,1312.93,1320.09,1324.47,1331.34,1337.12,1343.85,1348.20,1351.64, 1359.49,1365.18,1373.68,1378.86,1388.86,1384.85,1399.72,1400.55,1402.60,1417.05, 1417.93,1427.05,1429.26,1435.21,1438.97,1447.59,1455.78,1465.00,1466.98,1465.89, 1481.04,1485.01,1493.14,1496.58,1498.24,1508.57,1516.54,1516.03,1524.74,1526.46, 1535.16,1543.14,1551.38,1555.95,1559.07,1564.09,1573.46,1579.26,1582.07,1588.75, 1597.78,1604.51,1605.64,1610.72,1622.88,1624.90,1629.17,1639.45,1646.49,1646.93, 1653.82,1662.62,1665.62,1669.88,1679.14,1687.83,1687.84,1695.76,1704.94,1712.81, 1711.47,1718.95,1727.60,1731.49,1736.52,1744.28,1754.62,1747.30,1759.73,1767.34, 59.20,64.55,69.68,76.17,80.83,85.26,91.77,96.83,101.66,109.66, 113.41,118.76,124.67,129.14,135.52,139.97,147.42,150.89,158.52,163.46, 168.36,174.28,179.75,184.10,191.51,197.19,200.35,206.50,212.43,216.59, 222.58,226.53,235.03,240.50,243.81,248.69,257.05,260.28,268.17,273.08, 276.39,283.79,287.94,293.92,297.81,304.64,312.01,314.10,322.37,324.27, 333.08,337.35,343.59,347.87,353.50,360.23,364.64,371.36,377.27,380.59, 386.94,394.35,401.79,400.54,407.24,415.32,419.58,423.54,431.00,435.38, 441.17,447.19,453.61,459.73,463.25,466.30,475.43,482.80,482.98,490.48, 492.76,499.43,504.56,513.28,518.74,522.28,531.36,536.13,541.07,544.58, 549.79,558.00,562.33,565.87,572.89,579.52,587.62,591.46,595.76,597.16, 607.73,608.29,615.03,622.20,627.63,632.60,637.11,645.17,649.94,651.34, 659.93,669.84,671.84,675.97,679.34,689.38,692.50,698.77,703.49,710.50, 718.34,720.23,724.94,733.38,739.49,739.95,750.64,752.95,754.84,766.38, 769.82,775.42,780.86,783.12,789.85,791.90,803.66,809.74,810.64,817.40, 824.43,832.14,838.35,844.18,850.64,848.44,857.09,863.00,869.44,872.27, 877.19,885.21,888.62,894.70,900.96,903.28,914.57,916.12,925.99,928.10, 933.59,938.12,945.29,950.92,954.01,957.73,967.41,973.42,977.21,981.91, 989.11,993.92,997.96,1003.20,1015.07,1014.47,1020.54,1028.14,1037.56,1038.74, 1044.39,1049.05,1057.42,1057.77,1068.66,1068.53,1071.22,1082.96,1088.07,1097.54, 1091.78,1102.13,1108.41,1110.27,1127.41,1129.09,1132.75,1136.67,1144.34,1145.40, 1152.75,1160.20,1166.73,1166.97,1173.52,1183.55,1181.82,1192.56,1194.04,1201.75, 1205.44,1209.81,1212.94,1222.65,1236.15,1237.21,1239.05,1248.04,1253.30,1256.41, 1263.04,1267.74,1270.94,1276.51,1283.11,1291.10,1289.58,1301.71,1312.50,1312.70, 1316.43,1322.75,1327.66,1334.15,1338.51,1343.13,1346.50,1354.14,1357.71,1362.69, 1367.73,1369.84,1381.07,1387.30,1399.40,1405.05,1402.32,1413.45,1416.91,1418.12, 1423.40,1429.91,1437.72,1441.89,1444.23,1449.06,1459.90,1466.07,1466.95,1470.79, 1482.60,1486.54,1486.78,1492.43,1507.37,1510.14,1510.63,1520.01,1524.06,1529.64, 1531.67,1540.04,1550.15,1547.45,1560.48,1566.01,1565.20,1569.80,1577.92,1588.03, 1590.43,1596.78,1604.62,1608.79,1613.33,1618.47,1621.12,1629.68,1634.03,1637.42, 54.12,58.78,63.54,70.90,75.70,80.22,83.06,89.20,95.18,99.90, 104.67,109.27,115.06,120.95,125.49,130.62,135.48,139.07,144.91,150.26, 156.99,160.79,165.89,170.97,176.97,180.10,186.97,190.95,195.02,199.08, 203.79,210.86,217.63,222.62,228.84,231.51,235.46,242.32,248.87,251.99, 257.08,261.34,265.94,272.61,275.85,283.14,289.32,292.38,297.98,302.85, 310.00,312.86,317.21,323.43,329.62,333.88,339.04,345.08,351.30,355.27, 357.95,363.22,368.26,371.61,375.63,384.00,389.65,393.32,398.39,402.59, 408.19,413.39,423.45,424.34,428.45,431.92,437.91,444.62,445.20,455.51, 456.76,463.44,470.17,474.05,479.64,487.36,490.73,498.35,502.71,501.30, 509.11,516.15,518.66,527.21,534.18,535.55,542.85,545.68,548.51,555.69, 559.85,566.79,567.65,576.50,579.35,582.52,588.45,591.98,601.67,609.54, 610.15,613.62,621.27,629.65,631.74,635.64,641.98,645.99,651.98,657.23, 664.22,665.22,669.37,676.88,683.07,692.55,695.84,697.62,703.70,703.29, 715.66,722.56,719.45,726.14,737.09,738.10,740.00,750.84,753.12,757.63, 767.34,766.42,774.66,771.57,785.38,787.94,794.16,799.46,802.09,810.58, 809.43,814.80,822.29,827.11,831.13,839.23,846.65,849.66,852.45,863.63, 865.74,869.43,873.84,878.40,885.44,883.50,899.57,894.31,906.30,910.77, 915.01,918.43,928.13,929.97,934.50,937.50,945.79,952.57,955.06,961.33, 961.45,972.04,972.56,981.21,983.24,991.25,995.38,1000.85,1000.56,1011.15, 1021.08,1020.32,1023.24,1030.06,1036.13,1041.52,1037.86,1046.54,1056.50,1060.03, 1067.37,1069.81,1076.02,1087.62,1087.33,1093.15,1095.06,1100.81,1109.03,1114.61, 1119.62,1123.88,1129.54,1132.47,1136.45,1138.34,1149.65,1149.67,1156.89,1167.09, 1170.98,1175.46,1175.95,1179.46,1189.40,1190.07,1197.18,1206.28,1207.97,1220.31, 1221.43,1228.57,1224.80,1238.58,1235.28,1243.65,1246.32,1257.99,1254.22,1262.07, 1259.90,1279.11,1274.93,1288.64,1286.67,1292.41,1297.75,1307.03,1308.40,1314.25, 1314.36,1323.27,1324.28,1339.72,1338.69,1348.15,1349.00,1350.21,1362.17,1364.97, 1376.03,1375.86,1378.77,1388.24,1392.68,1395.67,1395.19,1402.41,1408.65,1420.01, 1420.10,1423.06,1440.67,1434.08,1440.53,1441.11,1449.96,1458.03,1460.97,1464.78, 1472.15,1476.73,1478.45,1493.91,1486.63,1499.19,1508.65,1505.93,1513.08,1520.15, 51.35,56.18,59.49,64.29,69.39,72.89,78.05,81.09,85.75,92.62, 97.50,101.77,106.05,109.31,116.16,120.08,125.15,130.91,134.49,138.52, 143.26,150.00,151.18,160.11,161.14,166.77,170.13,175.11,181.79,187.07, 191.33,192.95,199.84,203.69,210.21,214.74,219.76,223.19,226.72,230.34, 234.05,241.89,249.18,249.87,256.75,258.59,264.26,269.07,272.89,280.36, 281.62,287.93,292.24,296.03,304.17,304.51,312.23,317.04,319.44,328.81, 328.75,333.48,337.17,344.08,350.81,354.87,357.58,362.87,368.13,374.63, 377.89,380.52,388.79,395.13,395.92,403.14,405.15,412.57,413.50,420.15, 426.62,428.98,433.86,440.46,443.32,449.27,452.73,455.15,460.03,466.72, 465.63,476.63,481.46,480.86,493.00,493.52,499.60,504.73,510.25,511.10, 516.28,522.18,527.87,529.30,533.14,546.14,544.55,553.01,553.52,559.09, 567.46,567.78,575.41,577.34,583.43,591.03,590.44,598.32,600.28,606.86, 610.39,613.73,619.44,624.39,630.03,634.65,636.47,643.62,646.09,651.98, 654.57,664.12,663.39,670.22,678.15,680.88,684.79,691.57,690.73,699.08, 702.20,703.45,714.35,718.68,725.77,727.38,733.54,733.48,745.27,747.00, 750.90,755.34,761.05,764.82,771.59,772.53,779.39,781.38,790.46,794.45, 801.40,804.11,809.28,812.72,815.74,827.87,826.01,832.93,836.19,835.49, 844.31,855.25,854.37,856.81,874.96,871.52,873.45,874.50,882.14,889.96, 891.26,900.83,898.85,903.75,905.91,913.54,918.06,921.88,929.84,933.26, 937.37,940.45,944.84,956.14,951.78,963.15,969.35,963.17,977.10,980.20, 988.04,988.69,992.35,995.24,998.97,1008.94,1014.70,1016.61,1024.15,1024.20, 1029.98,1038.57,1043.61,1045.86,1050.20,1060.59,1058.15,1068.62,1068.74,1071.98, 1082.84,1080.63,1088.39,1096.16,1094.19,1097.83,1110.92,1108.78,1109.35,1124.21, 1120.18,1127.33,1131.40,1139.68,1144.93,1150.39,1151.88,1157.79,1162.89,1165.31, 1173.97,1179.12,1181.16,1180.63,1191.18,1194.14,1197.99,1207.59,1208.27,1217.49, 1213.32,1221.80,1232.96,1234.91,1234.61,1241.98,1246.02,1253.32,1256.05,1269.76, 1263.68,1271.84,1277.36,1283.32,1283.62,1289.81,1288.83,1295.02,1308.26,1304.01, 1309.52,1318.21,1317.72,1327.24,1331.79,1337.73,1335.48,1347.79,1351.01,1353.18, 1363.42,1362.83,1372.91,1377.63,1376.15,1385.44,1389.79,1388.04,1400.13,1405.85, 46.65,50.04,54.80,60.04,64.08,66.44,73.04,76.54,79.41,84.73, 90.20,94.11,96.95,103.22,107.18,111.32,115.10,118.98,125.51,126.50, 133.31,137.87,140.01,144.72,150.22,154.01,157.06,162.21,168.94,171.78, 175.26,179.75,184.80,189.73,194.30,195.93,198.47,207.02,212.17,213.46, 218.14,221.16,226.42,231.51,234.26,240.48,247.10,247.26,252.29,256.13, 262.04,268.16,273.73,273.64,280.84,282.09,285.98,289.80,296.67,300.37, 301.54,307.79,315.51,316.19,322.24,325.52,328.70,330.30,337.28,342.64, 349.25,350.94,356.42,361.43,365.40,369.54,373.25,379.73,382.86,388.41, 389.30,395.38,399.23,402.07,409.15,409.86,417.41,422.03,425.69,427.89, 430.57,435.11,442.21,447.94,450.44,457.80,459.30,462.63,468.70,476.39, 478.42,478.92,485.89,490.74,495.10,494.12,506.40,509.51,513.06,514.33, 520.03,524.03,529.60,533.60,542.45,538.12,544.23,548.05,550.53,558.20, 563.92,565.58,572.19,575.13,579.29,588.80,588.70,595.40,593.19,600.55, 602.41,611.95,617.53,619.26,626.02,630.52,632.73,639.51,647.12,648.58, 649.70,654.47,658.41,661.93,665.95,665.83,675.92,681.49,685.92,692.26, 695.34,694.34,705.30,706.24,710.71,718.58,716.06,717.77,727.10,729.10, 732.64,742.38,738.70,748.62,750.72,758.81,762.30,767.27,767.82,775.30, 777.04,782.30,786.46,788.84,796.27,804.18,805.35,808.69,809.06,817.88, 821.07,821.64,829.40,834.54,843.79,847.28,845.26,845.39,859.38,861.14, 864.44,867.35,875.20,876.40,878.35,888.73,889.30,890.98,899.41,908.83, 909.86,909.71,915.33,920.95,925.78,929.70,931.02,937.65,938.51,949.89, 950.07,949.72,961.52,964.03,969.14,973.94,974.96,983.47,977.78,990.44, 992.61,997.80,998.69,1007.10,1009.02,1017.26,1020.52,1020.11,1027.19,1031.91, 1033.33,1039.92,1048.84,1053.40,1055.33,1060.72,1066.59,1064.34,1071.99,1073.44, 1082.54,1094.39,1088.47,1096.60,1095.61,1101.65,1099.10,1107.39,1119.14,1114.98, 1124.51,1131.21,1131.76,1138.80,1133.64,1138.78,1143.83,1148.82,1160.73,1164.43, 1162.40,1167.32,1166.10,1176.81,1179.96,1184.74,1189.14,1197.73,1201.03,1202.10, 1206.02,1213.97,1217.12,1219.04,1229.00,1227.60,1232.39,1235.52,1245.44,1244.87, 1254.87,1256.58,1258.04,1261.92,1275.04,1274.81,1276.36,1289.68,1290.23,1282.00, 41.34,46.65,51.32,55.04,58.26,62.19,64.98,71.34,74.13,76.53, 81.30,87.26,89.92,92.52,97.61,101.92,105.25,110.96,115.05,117.85, 121.97,124.88,131.10,134.69,134.95,140.75,146.09,147.44,155.00,156.97, 160.81,164.38,171.55,172.93,178.15,178.51,187.06,189.86,191.52,199.23, 201.64,206.71,208.54,213.44,217.85,220.86,223.78,227.96,230.20,233.97, 243.48,243.05,249.48,252.03,254.70,264.92,264.69,269.57,271.89,274.25, 280.64,284.64,289.81,289.93,298.34,297.27,304.39,307.76,313.35,314.63, 317.86,324.02,333.55,329.41,335.02,339.14,343.70,348.03,349.07,353.95, 357.70,362.39,364.23,371.08,373.25,377.96,379.75,388.31,391.09,394.03, 396.57,403.68,404.89,411.57,416.25,418.65,424.12,426.89,431.32,433.14, 440.06,444.56,446.91,449.90,452.82,457.31,460.37,464.88,471.39,469.56, 476.73,482.63,488.68,495.10,492.61,495.53,502.57,504.54,510.56,512.51, 517.72,524.52,522.00,527.78,533.06,538.23,544.83,542.70,551.57,555.40, 555.80,560.12,566.81,571.25,574.65,580.21,583.48,588.59,590.22,593.72, 595.72,602.70,600.18,606.86,618.43,614.47,617.90,623.56,626.97,633.51, 630.91,641.42,643.32,646.55,654.37,657.50,660.76,665.00,668.72,674.63, 676.73,680.66,684.18,686.93,687.17,694.57,702.54,703.55,710.62,710.54, 721.36,721.18,723.61,725.91,732.84,733.40,739.62,737.85,750.10,753.77, 751.65,757.56,761.45,762.31,766.61,773.65,776.55,782.31,788.86,785.72, 790.43,796.44,802.35,810.44,811.56,815.84,817.49,823.78,830.54,826.51, 832.89,837.89,845.28,845.31,848.42,851.64,855.32,863.08,866.45,868.57, 869.98,876.47,882.62,889.50,879.39,892.68,898.37,901.72,903.55,909.13, 913.54,918.76,921.08,926.41,928.59,934.04,941.60,939.15,943.16,949.48, 953.53,950.23,959.14,967.30,967.90,972.45,972.36,983.67,981.10,986.73, 989.31,993.82,999.34,1006.00,1006.94,1012.13,1021.18,1020.01,1028.59,1028.28, 1036.69,1031.41,1037.69,1037.44,1046.92,1044.14,1059.41,1056.82,1066.92,1070.15, 1070.65,1074.57,1073.57,1085.08,1085.52,1089.45,1099.45,1096.21,1104.03,1101.54, 1111.34,1116.21,1117.07,1117.59,1130.82,1134.28,1135.30,1133.00,1140.14,1141.35, 1152.42,1152.33,1156.80,1161.99,1175.74,1175.14,1168.38,1182.09,1185.03,1188.55, 38.79,43.03,47.12,49.15,53.90,57.72,61.78,65.98,69.45,72.19, 75.37,78.53,81.36,86.39,91.57,93.97,97.47,101.60,104.77,107.81, 111.49,112.98,118.90,124.35,126.46,129.77,132.93,138.45,140.06,145.12, 148.49,150.14,153.97,159.88,162.67,166.05,168.01,171.46,176.62,177.89, 184.13,188.72,192.57,193.65,199.69,199.65,208.75,211.60,213.28,218.81, 221.31,221.21,225.77,231.26,234.13,238.80,243.76,246.97,246.86,256.14, 255.55,257.52,262.27,264.05,268.25,277.78,276.20,281.63,287.75,289.81, 291.46,297.38,298.08,305.62,308.41,314.40,318.93,320.27,321.37,326.68, 331.76,336.22,333.91,341.89,340.08,347.94,352.92,352.08,359.00,361.74, 366.46,370.69,373.38,375.04,381.38,383.72,390.21,395.48,396.10,400.18, 405.83,406.85,410.69,411.31,413.64,421.72,421.62,429.88,430.99,431.98, 436.74,438.57,445.22,448.83,452.64,457.04,461.53,465.40,468.14,469.92, 475.93,476.43,483.36,478.13,495.76,490.77,497.90,506.45,506.38,508.99, 510.51,510.53,515.98,519.15,524.68,530.29,531.58,531.95,539.16,547.79, 549.89,550.42,550.68,559.21,559.37,566.45,569.10,573.55,574.77,576.36, 578.38,589.33,594.89,594.36,600.69,603.79,606.47,606.97,614.02,620.07, 621.66,623.25,623.84,633.14,636.99,638.28,639.12,648.90,647.06,653.75, 657.77,657.95,664.25,664.15,670.21,670.14,677.31,685.08,684.73,691.65, 696.46,693.59,697.31,702.74,705.76,709.74,708.25,720.91,720.99,726.20, 730.54,733.09,732.37,743.98,740.06,748.68,752.93,751.51,764.34,764.83, 770.11,770.45,770.20,773.88,777.76,781.09,785.82,784.44,792.14,795.03, 797.32,801.78,811.61,811.37,819.63,822.56,823.25,825.26,829.46,834.00, 838.96,841.87,842.00,845.85,850.91,850.78,861.72,860.05,866.24,868.52, 872.88,878.26,884.83,887.11,885.49,890.13,893.94,898.86,900.83,906.11, 914.46,922.19,917.16,919.77,928.94,924.00,932.59,941.00,937.70,941.76, 946.78,948.55,956.78,958.83,962.31,972.37,976.54,964.53,977.34,976.94, 984.69,985.99,986.62,997.01,998.34,1004.74,1007.79,1018.55,1012.91,1019.18, 1020.63,1023.69,1022.74,1029.52,1031.40,1041.76,1031.78,1042.51,1050.03,1051.13, 1055.56,1060.46,1059.53,1074.68,1070.40,1079.03,1078.94,1080.96,1076.20,1089.06, 34.87,38.74,43.81,45.48,49.09,52.91,56.04,58.79,62.96,65.16, 69.64,72.65,76.27,78.54,84.01,84.91,87.68,91.26,94.17,97.30, 102.29,105.79,107.88,111.92,113.46,119.55,121.31,124.02,128.50,131.53, 133.95,139.70,143.16,146.18,149.34,150.69,156.14,157.71,162.94,165.54, 169.25,172.30,173.18,176.50,184.61,184.25,189.81,193.13,193.69,197.12, 203.28,202.92,206.55,211.68,217.31,218.33,220.86,226.27,226.28,230.19, 232.85,241.68,242.16,246.55,247.30,251.30,255.17,256.52,261.43,266.79, 266.98,275.75,278.56,278.61,286.32,282.48,285.11,291.40,294.11,302.31, 299.61,307.04,308.48,313.17,313.27,316.21,314.85,323.17,329.02,330.20, 336.56,340.82,341.78,346.62,348.47,348.68,354.68,357.00,362.77,364.12, 365.64,373.43,375.75,381.18,381.10,382.79,387.03,390.52,393.06,398.78, 402.32,406.70,408.74,413.53,414.93,414.48,422.05,425.25,429.93,429.02, 439.77,439.73,442.78,441.89,446.17,452.50,454.97,457.16,463.59,465.08, 466.27,470.30,474.02,477.62,479.98,481.20,488.64,490.67,497.15,500.09, 499.55,505.75,503.43,509.32,516.25,521.02,517.20,523.12,527.36,531.35, 537.46,536.40,542.29,547.00,552.59,553.69,553.65,559.79,564.16,566.96, 569.27,570.60,577.45,578.20,583.49,588.28,585.59,590.49,596.97,593.68, 604.57,604.85,607.19,610.70,612.75,620.00,624.50,628.38,628.38,631.76, 635.86,637.10,641.43,639.46,650.81,653.82,656.46,652.82,658.97,663.36, 666.63,672.08,671.42,676.06,677.77,679.12,691.42,690.38,697.78,693.52, 701.41,703.26,712.53,709.15,715.30,717.77,714.74,721.63,734.69,730.75, 730.90,733.93,739.67,740.75,748.54,752.12,755.28,757.21,763.90,764.91, 770.88,763.69,773.44,780.96,778.65,783.89,791.12,788.77,799.92,796.87, 801.04,801.41,801.67,814.69,808.79,817.96,822.22,823.23,827.86,827.26, 834.06,839.84,836.32,842.67,845.87,850.50,854.29,859.74,859.62,864.73, 865.90,879.87,875.56,876.26,884.66,879.99,885.96,893.54,895.01,891.18, 897.61,895.54,898.14,910.16,914.24,919.92,923.97,922.40,927.42,936.20, 939.25,936.14,939.58,942.83,945.24,955.45,958.70,958.16,960.03,961.30, 973.42,973.44,968.12,984.80,984.04,988.38,987.73,988.01,1000.59,995.36, 32.10,35.92,38.32,41.13,43.80,47.64,48.80,55.04,56.28,60.10, 61.44,66.23,70.06,70.10,76.18,79.71,80.94,84.21,88.77,90.04, 93.83,97.33,99.14,100.33,104.31,109.53,113.72,115.91,116.81,121.59, 125.82,127.81,129.36,132.83,134.25,138.80,142.36,146.80,146.68,151.38, 155.10,158.20,158.80,163.03,164.09,170.26,173.55,180.61,180.41,181.16, 184.75,186.66,192.71,197.05,198.69,199.51,203.43,206.12,208.46,210.71, 217.78,219.48,222.31,222.21,228.89,230.80,235.44,235.93,241.62,243.12, 247.11,247.85,249.60,252.89,255.10,261.24,267.55,268.77,270.91,277.82, 277.51,282.52,282.63,284.41,288.65,289.12,295.78,298.94,300.22,301.96, 309.30,308.54,313.82,314.33,315.88,321.39,324.81,328.51,335.06,336.47, 334.81,336.52,343.75,346.95,345.71,348.97,357.17,358.76,364.79,363.34, 365.40,371.04,372.81,376.81,376.80,384.00,385.74,387.60,391.05,392.66, 397.99,402.96,406.35,404.12,410.87,413.24,412.97,422.85,416.67,422.85, 428.11,430.05,436.18,440.25,440.68,441.13,445.30,448.15,454.51,453.64, 454.97,463.42,461.23,469.22,475.40,470.71,479.07,478.31,480.75,484.43, 489.06,489.38,496.08,499.35,502.48,505.05,507.05,512.47,511.62,518.75, 519.78,520.10,524.51,528.48,526.96,536.71,538.06,541.03,540.77,551.06, 550.98,555.51,550.32,562.34,563.48,568.30,569.66,570.13,575.30,579.47, 586.32,585.43,587.52,595.29,597.45,597.46,595.18,607.57,603.91,605.08, 609.45,616.01,618.70,618.67,618.64,626.80,632.14,632.23,630.68,642.72, 641.45,646.73,646.04,651.85,652.75,656.69,661.55,660.53,660.66,671.56, 668.02,682.40,675.50,682.24,677.92,688.74,690.08,689.55,697.20,692.43, 702.64,708.05,707.03,709.55,709.24,716.13,721.26,723.86,725.52,729.10, 728.29,733.57,739.87,739.10,745.92,751.35,748.25,753.42,750.19,761.87, 765.64,772.25,768.99,772.22,774.38,773.45,778.50,779.85,789.37,790.72, 801.13,802.34,796.76,800.19,808.62,806.24,815.36,816.74,820.99,822.29, 821.84,829.02,835.24,830.22,834.10,835.41,841.89,845.02,848.16,858.35, 847.37,855.43,860.97,869.61,864.10,865.00,875.67,874.28,875.47,885.87, 880.53,882.26,884.49,894.98,900.02,892.99,905.93,904.03,914.20,915.02, 31.21,32.06,35.17,38.09,41.87,43.40,46.45,49.98,51.36,54.30, 59.03,60.55,62.82,66.19,69.41,73.94,74.64,77.68,78.91,82.94, 84.21,88.55,91.11,94.05,95.33,99.92,103.33,105.45,109.38,110.80, 113.45,115.82,117.91,121.22,123.18,126.67,129.17,132.99,135.42,137.74, 141.66,143.26,149.42,151.00,150.11,156.39,156.55,159.28,161.18,167.11, 166.99,170.35,173.18,175.09,179.36,183.91,185.03,187.59,190.67,193.39, 194.55,201.02,199.91,203.16,205.90,211.02,211.89,218.30,219.71,220.96, 227.01,226.73,225.25,231.96,232.07,238.13,239.76,243.92,246.25,250.91, 251.52,251.16,257.95,258.26,264.68,264.71,269.04,269.90,275.16,274.92, 283.71,281.46,289.42,287.10,287.00,291.85,296.35,295.76,306.63,305.17, 307.21,309.43,314.66,318.46,320.62,321.92,326.23,327.26,327.33,337.41, 330.95,337.94,340.77,341.81,347.10,350.98,352.57,355.50,364.72,355.27, 362.53,372.00,372.89,371.61,375.15,380.43,375.96,386.31,384.46,395.46, 388.73,392.44,396.45,400.21,408.02,406.94,409.03,406.46,408.55,412.42, 416.78,421.04,425.87,431.64,432.02,435.14,434.19,438.95,443.76,441.92, 447.59,448.31,455.74,456.41,459.94,459.21,461.72,467.92,472.01,468.34, 477.86,476.02,480.35,486.15,486.18,485.72,495.24,493.70,494.26,497.43, 503.90,506.92,507.02,512.66,518.99,518.30,515.83,522.44,527.52,523.86, 530.31,532.73,531.64,539.41,539.60,547.32,548.25,549.07,550.30,556.09, 559.05,558.52,570.71,561.10,566.24,571.32,575.30,578.57,576.38,577.63, 586.32,590.33,587.66,592.22,595.93,598.86,603.78,608.15,608.86,612.54, 616.55,615.49,611.74,621.99,620.06,620.95,632.83,628.96,637.75,632.83, 644.81,642.32,646.39,649.68,655.63,653.46,655.11,659.28,662.08,668.03, 665.44,675.67,683.16,678.97,678.58,686.19,688.29,692.40,694.21,699.67, 693.62,703.70,709.53,699.51,706.43,715.75,713.98,720.38,716.75,725.87, 723.39,727.80,732.31,731.31,732.76,738.77,742.13,744.72,738.69,751.34, 752.01,753.90,757.44,756.57,759.74,768.88,763.25,769.70,775.04,781.39, 783.68,782.31,782.58,787.60,796.03,793.55,795.78,799.46,802.66,808.17, 806.78,821.77,813.85,817.38,820.62,819.82,821.18,823.96,828.63,842.92, 26.85,30.66,32.85,33.81,37.23,41.17,41.88,44.59,46.77,49.62, 52.69,54.69,56.71,58.58,63.05,65.11,68.54,68.54,73.09,75.09, 79.22,80.16,81.41,87.53,88.22,90.84,92.43,93.31,96.90,99.57, 102.56,107.63,109.80,113.09,112.21,118.73,117.82,120.73,124.33,127.87, 130.47,130.90,133.05,138.64,138.13,141.20,144.91,146.98,150.55,152.04, 152.02,155.67,161.90,163.03,165.13,165.98,171.62,174.03,175.99,177.11, 180.64,182.46,188.20,186.99,190.36,191.84,196.70,199.24,200.31,202.37, 203.13,206.18,208.03,212.09,213.72,214.74,217.17,221.15,225.92,227.58, 224.98,231.69,236.60,234.81,237.98,241.32,247.47,247.37,248.41,248.88, 254.94,259.22,263.30,259.75,266.16,265.00,269.22,268.91,273.21,276.32, 280.94,286.24,289.46,291.08,289.59,292.11,295.79,299.20,302.56,307.79, 305.62,306.48,312.57,318.37,314.10,318.07,320.17,323.97,327.69,328.53, 330.65,339.92,330.54,342.66,345.28,345.41,350.19,351.79,349.34,348.72, 359.32,364.28,364.93,366.77,368.14,367.80,375.23,373.31,370.36,379.15, 381.74,383.72,384.66,390.96,388.60,394.93,399.16,400.64,402.29,405.09, 409.08,414.18,415.16,412.43,420.11,421.40,416.22,426.35,426.63,431.58, 434.90,435.58,441.29,440.98,440.88,443.24,448.40,454.20,452.90,452.36, 456.75,459.53,463.62,468.41,470.30,475.13,479.78,473.60,477.66,480.25, 483.09,481.41,481.59,494.15,490.37,497.15,495.77,496.57,510.92,505.87, 505.86,509.70,513.51,515.36,520.11,526.50,526.90,522.77,536.19,529.73, 535.02,534.13,542.15,534.23,544.07,548.23,545.97,554.78,560.17,558.95, 554.41,563.04,561.87,564.95,571.59,570.94,579.34,571.91,581.41,582.47, 584.81,589.85,589.79,599.37,591.65,593.17,598.33,605.95,602.32,612.95, 609.83,612.38,609.35,617.47,617.46,615.84,626.80,629.51,632.42,635.65, 636.76,639.14,640.70,642.99,644.78,649.34,648.40,647.45,654.84,662.81, 663.03,660.85,672.90,673.29,678.11,677.80,678.31,681.66,674.69,684.74, 683.92,689.99,694.42,689.21,700.83,700.63,695.25,705.93,708.20,712.91, 716.92,720.27,715.73,714.52,726.26,724.24,724.74,733.08,736.28,734.72, 737.53,740.18,741.41,746.39,750.67,757.24,758.33,756.42,758.67,762.26, 25.89,28.21,29.70,31.70,34.63,36.73,37.38,40.71,44.53,46.91, 46.30,51.07,52.59,54.77,57.79,59.76,60.94,63.40,66.48,67.87, 71.24,77.26,75.25,77.10,78.92,82.58,82.78,86.30,88.97,91.50, 93.65,98.67,98.03,99.55,101.22,105.96,108.45,111.65,112.01,113.82, 118.82,119.91,121.40,123.03,124.44,133.02,130.79,134.81,134.45,138.28, 139.00,141.47,143.72,150.09,154.58,151.00,157.54,158.49,156.17,161.27, 163.90,165.03,166.61,170.76,172.94,176.81,176.29,180.30,185.41,182.15, 184.39,189.23,194.01,192.65,198.21,197.49,199.86,201.61,204.11,209.26, 208.86,211.82,215.93,220.89,221.30,222.27,221.50,228.23,229.68,231.50, 237.01,236.66,236.01,236.05,241.84,246.46,248.40,250.51,252.81,254.31, 259.05,256.98,262.00,263.62,271.11,266.45,270.50,269.40,273.45,271.94, 277.73,278.73,283.11,283.45,288.99,291.23,293.78,293.29,294.62,300.22, 300.57,304.93,306.52,309.90,309.61,310.46,316.14,318.99,318.30,319.86, 322.34,329.31,328.72,330.66,335.29,340.49,338.65,342.14,345.68,348.91, 351.58,351.90,353.33,358.29,353.47,360.03,364.50,359.71,362.86,372.70, 371.59,375.29,374.66,374.69,378.56,381.18,386.99,385.80,388.03,390.19, 391.98,396.89,399.36,403.46,407.62,404.82,410.68,404.43,412.02,416.24, 422.53,420.42,423.78,427.35,426.43,430.53,433.68,438.35,436.64,439.14, 440.90,442.35,449.16,450.80,446.76,455.13,456.49,456.85,459.61,458.69, 468.59,469.73,469.68,469.83,472.43,476.60,481.86,473.51,488.16,484.65, 483.19,487.98,494.97,495.93,492.18,495.34,497.06,503.02,504.21,509.30, 511.64,515.90,516.13,525.41,518.90,523.62,523.57,522.48,525.01,536.70, 526.77,529.60,535.81,541.80,546.48,546.65,547.02,549.23,551.18,552.84, 555.69,562.68,557.62,567.62,559.88,567.96,568.52,572.73,569.01,576.71, 579.37,578.82,586.65,588.20,587.50,588.25,589.44,595.35,601.96,595.45, 600.22,606.37,606.84,607.98,616.28,608.36,614.84,619.27,619.70,629.52, 625.46,624.98,629.66,636.04,635.72,638.53,646.98,644.03,647.15,647.30, 645.02,658.04,656.08,655.76,657.32,657.27,659.44,664.50,667.29,663.09, 670.79,664.31,677.52,676.75,681.12,686.14,683.71,685.61,686.05,692.51, 21.81,24.42,27.30,29.30,30.28,33.49,34.28,37.43,38.17,39.91, 44.41,44.69,46.01,48.95,52.28,54.87,57.08,59.68,60.91,64.79, 64.38,68.64,69.02,71.97,71.54,74.07,77.08,79.03,81.51,85.75, 83.79,87.21,91.08,92.92,93.30,96.00,97.05,102.50,102.93,103.08, 105.92,109.68,113.80,112.50,115.52,114.80,118.12,123.00,127.26,121.12, 129.79,130.22,132.81,134.11,134.64,137.87,141.70,142.19,142.80,143.24, 150.96,152.26,152.08,154.24,159.22,157.06,160.20,163.24,164.27,166.56, 170.83,174.34,173.95,174.65,177.68,177.74,178.63,184.03,185.59,190.75, 194.66,193.21,195.38,197.75,198.99,202.10,202.19,207.77,209.21,214.54, 213.16,211.59,217.66,216.46,222.23,219.29,228.40,225.97,229.05,230.47, 232.89,237.60,237.76,239.38,241.13,246.39,242.09,246.66,254.88,248.49, 254.88,256.18,258.09,261.22,256.58,263.70,265.74,268.64,275.18,274.37, 276.52,279.24,278.69,281.23,282.81,282.68,290.26,288.32,290.82,293.37, 296.56,298.24,302.70,305.62,310.31,307.48,309.20,309.31,312.73,309.49, 313.77,318.25,324.69,325.37,329.70,323.20,330.98,327.88,333.16,339.65, 331.83,335.33,345.63,341.51,346.32,350.79,352.89,356.63,354.81,357.20, 360.38,364.37,368.60,363.76,368.76,371.51,367.02,373.09,373.63,376.00, 378.47,381.14,383.38,383.31,393.38,388.90,387.19,397.49,399.17,397.40, 397.08,402.21,407.44,406.73,410.23,414.83,411.65,411.80,422.77,413.87, 414.16,421.61,427.63,424.34,424.22,427.84,435.44,435.63,437.55,443.28, 443.83,442.30,446.63,450.07,452.57,455.64,462.02,456.38,454.08,463.81, 461.79,461.08,469.40,474.84,469.56,473.30,474.98,479.93,479.40,486.66, 485.72,487.72,487.03,491.94,496.58,491.50,496.88,501.12,500.39,505.37, 508.10,501.06,513.97,510.42,517.23,514.88,517.30,520.82,520.04,528.30, 530.98,530.22,526.78,533.07,536.75,536.30,539.84,542.25,541.90,542.73, 545.53,551.09,549.32,554.25,559.05,554.87,557.40,565.65,565.66,564.17, 570.02,570.80,572.16,572.35,580.50,580.19,583.64,588.98,590.22,584.53, 590.70,595.65,598.40,594.59,598.45,601.37,610.13,613.10,600.64,612.20, 613.45,610.37,618.53,615.61,616.43,623.47,621.23,629.71,622.46,633.51, 18.78,22.44,24.74,26.98,27.84,30.98,32.80,34.40,35.33,38.40, 38.94,41.64,45.89,44.82,46.38,50.17,52.22,54.49,54.48,56.80, 61.56,61.31,63.60,63.46,66.19,70.42,69.74,72.79,73.22,75.93, 79.26,78.33,81.09,83.81,86.26,89.56,87.92,92.22,94.56,95.10, 97.56,97.12,99.26,104.07,102.92,107.23,110.85,109.61,113.56,114.22, 115.18,120.37,119.50,121.82,124.93,127.08,131.95,128.54,130.93,133.66, 136.60,140.60,139.26,143.88,142.29,141.77,142.56,148.02,149.44,154.11, 158.08,154.66,157.56,158.23,160.40,163.99,167.67,165.55,171.20,169.74, 170.15,173.82,176.29,181.76,180.12,183.99,182.92,185.59,189.68,187.46, 190.51,198.59,192.18,196.25,203.01,200.37,202.11,203.34,209.74,210.57, 214.29,214.06,217.06,215.66,219.84,218.06,223.51,221.26,231.69,227.45, 232.30,238.40,239.97,242.12,236.86,244.47,241.43,244.12,248.90,250.75, 256.15,251.19,253.45,254.32,255.60,260.04,262.51,265.71,263.79,268.78, 269.11,272.85,272.18,273.52,283.21,273.30,280.28,285.20,282.43,282.04, 289.26,289.08,290.45,289.87,298.00,301.60,297.81,301.73,301.51,300.19, 304.70,304.25,311.97,312.20,313.99,319.67,322.19,321.54,324.32,321.82, 325.46,329.75,335.20,331.22,333.84,330.27,333.27,338.08,345.57,344.70, 350.26,347.19,347.87,351.97,353.21,354.87,354.20,363.55,354.33,364.06, 372.19,366.17,366.33,366.30,370.43,378.84,377.38,374.89,382.94,381.57, 387.68,382.46,384.38,388.27,389.96,393.86,398.65,400.25,399.45,404.45, 399.67,404.00,405.64,409.96,415.50,416.18,412.93,423.83,418.72,423.11, 420.87,418.92,425.01,432.36,425.58,431.80,432.16,432.42,440.43,447.61, 438.41,446.63,444.49,449.39,451.09,450.24,452.41,451.11,454.21,454.21, 458.53,464.74,463.35,468.60,463.15,471.43,467.67,473.04,477.17,473.74, 482.36,479.78,482.48,484.85,487.86,489.65,490.27,492.59,493.67,497.93, 500.81,503.66,496.35,507.01,502.15,503.32,508.74,508.30,510.48,510.32, 514.60,517.25,523.40,530.32,526.51,529.11,531.83,533.04,534.17,534.39, 537.07,538.70,542.44,538.90,545.21,546.72,543.90,545.92,547.06,557.04, 557.00,555.95,559.00,563.87,561.57,562.80,570.75,566.38,573.80,577.06, 71.79,80.38,87.09,91.81,100.47,107.70,113.92,121.07,126.33,133.87, 140.81,147.64,153.61,161.16,168.35,173.07,181.78,187.91,193.25,199.26, 207.50,215.00,220.69,226.51,235.55,242.96,249.02,255.52,261.45,267.38, 274.26,282.38,288.59,294.64,301.73,310.40,315.16,322.68,327.96,337.07, 341.02,349.33,356.73,362.46,369.82,376.59,384.92,392.05,396.95,403.26, 410.17,416.62,424.62,431.71,436.77,444.28,449.97,457.52,464.87,470.72, 478.32,486.24,492.74,499.47,506.96,513.40,518.62,523.96,531.65,539.31, 545.87,553.20,562.60,565.52,572.18,581.45,584.39,593.92,597.42,607.98, 612.43,618.66,627.14,634.59,639.81,646.96,655.04,658.98,668.83,676.16, 680.89,687.88,692.86,702.58,703.83,712.85,723.86,727.25,734.18,745.17, 746.57,755.34,762.69,769.54,774.41,779.39,791.01,796.26,800.39,806.53, 815.40,821.60,829.85,834.45,843.89,850.42,857.95,864.43,867.92,874.11, 883.38,887.29,893.79,904.94,913.71,920.35,922.40,930.52,940.01,942.17, 955.03,959.97,962.97,972.16,979.07,986.73,988.50,998.85,1006.35,1013.19, 1019.18,1027.82,1033.58,1038.52,1041.82,1054.06,1060.63,1061.25,1071.97,1081.11, 1086.31,1092.27,1100.43,1106.89,1112.86,1122.25,1127.19,1131.34,1142.58,1142.71, 1155.69,1159.43,1167.17,1168.91,1178.85,1190.67,1194.54,1201.85,1205.26,1211.36, 1221.62,1230.42,1236.43,1241.08,1246.65,1249.89,1258.16,1265.54,1276.18,1279.63, 1292.09,1295.57,1302.03,1307.33,1312.78,1321.79,1333.76,1336.66,1341.65,1349.54, 1355.49,1364.72,1370.03,1373.00,1383.56,1393.87,1396.73,1407.18,1413.32,1417.17, 1420.35,1430.58,1438.15,1443.50,1450.69,1454.96,1463.24,1467.99,1475.60,1487.24, 1492.94,1498.75,1505.05,1511.39,1520.40,1524.25,1530.51,1542.36,1548.82,1556.45, 1560.12,1564.37,1573.22,1582.52,1584.46,1587.78,1602.10,1606.40,1612.72,1621.00, 1627.79,1635.45,1636.84,1643.97,1655.41,1662.27,1664.27,1669.33,1681.61,1689.76, 1693.81,1701.63,1706.72,1718.77,1720.17,1728.27,1731.95,1740.94,1746.92,1758.09, 1762.06,1771.17,1775.40,1785.41,1791.75,1796.17,1800.69,1810.90,1817.23,1822.84, 1826.30,1835.04,1839.74,1850.03,1858.80,1861.70,1868.21,1872.25,1883.85,1890.89, 1893.05,1900.88,1914.40,1915.96,1930.07,1928.15,1936.85,1938.36,1950.66,1958.27, 1963.70,1967.65,1972.96,1977.70,1988.87,1999.96,2004.18,2013.40,2016.92,2025.61, 68.55,74.69,80.64,87.85,93.10,100.51,106.20,112.89,119.50,125.46, 133.88,138.14,144.74,153.08,158.24,164.28,168.76,177.69,181.65,191.23, 195.90,202.80,208.14,213.65,222.50,226.56,235.30,239.76,244.97,251.00, 260.95,264.45,271.70,278.89,286.23,289.30,295.52,300.38,310.36,315.46, 321.64,331.15,335.83,342.72,345.27,354.34,360.93,366.50,375.27,379.74, 387.62,393.15,399.13,403.19,409.93,415.70,424.39,429.58,437.26,442.68, 448.19,455.62,460.78,469.72,475.43,480.91,487.65,494.60,502.18,505.06, 514.03,517.63,528.00,528.52,539.52,545.12,548.88,556.46,559.07,570.14, 577.57,582.38,589.45,595.11,599.83,609.01,614.15,620.45,626.12,632.29, 637.43,645.46,651.96,657.12,664.30,670.80,678.54,683.60,692.22,696.11, 705.21,711.38,717.76,720.01,724.86,732.51,737.56,748.35,751.70,759.38, 763.78,776.20,778.64,786.33,792.26,794.66,805.10,815.00,817.14,821.75, 829.75,839.37,843.95,847.77,852.23,860.15,865.11,873.18,880.61,890.53, 893.60,898.55,904.69,909.34,920.72,925.53,927.26,942.62,944.73,948.00, 955.06,963.43,969.12,974.56,985.48,988.11,993.46,1001.91,1009.12,1008.14, 1023.71,1024.30,1026.70,1038.88,1043.89,1051.34,1054.75,1067.60,1073.71,1074.83, 1084.54,1092.07,1098.26,1099.99,1108.27,1113.58,1121.06,1124.99,1133.69,1142.34, 1147.46,1154.82,1158.29,1165.97,1168.81,1179.74,1183.44,1190.59,1200.53,1199.15, 1212.52,1215.16,1221.74,1229.71,1236.44,1246.01,1251.02,1254.94,1259.88,1266.21, 1273.29,1282.16,1287.70,1294.40,1301.07,1303.98,1310.85,1321.23,1324.06,1330.62, 1341.13,1345.12,1350.17,1355.81,1363.13,1363.29,1376.61,1374.87,1390.26,1391.90, 1398.95,1405.88,1413.96,1422.43,1425.63,1427.06,1441.75,1444.22,1452.29,1462.39, 1464.41,1470.93,1482.30,1482.37,1490.14,1497.25,1500.34,1506.68,1516.47,1519.09, 1529.37,1538.01,1539.80,1543.07,1551.07,1558.32,1566.92,1567.94,1575.62,1585.32, 1592.23,1601.80,1606.91,1605.79,1616.10,1622.80,1630.68,1635.19,1644.88,1649.79, 1656.62,1660.15,1669.08,1678.73,1675.10,1686.58,1687.85,1701.26,1705.33,1709.68, 1719.38,1722.70,1737.09,1737.47,1737.26,1752.63,1758.77,1763.48,1766.08,1775.43, 1782.48,1787.88,1796.22,1800.38,1808.41,1813.33,1816.06,1819.56,1839.83,1841.54, 1839.85,1847.39,1859.32,1864.64,1870.20,1875.90,1882.00,1891.15,1895.23,1897.82, 64.25,70.70,75.54,81.42,88.61,93.40,99.69,105.48,112.08,117.69, 124.14,130.93,137.03,140.74,147.26,151.53,160.14,164.20,170.59,178.06, 182.89,187.90,194.54,202.04,207.83,213.21,215.97,223.45,230.80,238.09, 242.71,249.78,254.63,259.17,265.16,272.59,276.63,282.62,286.56,296.03, 304.32,308.84,315.36,321.28,326.96,331.25,335.46,345.12,348.35,354.86, 361.92,368.46,371.82,377.03,383.39,392.67,398.54,404.58,408.43,415.15, 422.66,427.19,430.06,439.06,445.83,453.46,454.81,460.07,468.11,475.18, 480.62,485.06,494.06,496.36,506.17,509.37,517.66,521.18,526.96,535.01, 539.21,541.30,548.43,560.13,561.14,569.83,574.23,584.22,584.47,593.86, 598.42,602.89,612.40,615.05,621.34,627.68,634.98,641.19,647.21,651.39, 659.86,663.22,670.45,675.44,683.08,689.07,696.43,700.78,707.58,708.25, 716.97,722.31,730.35,735.52,742.55,746.37,752.45,761.10,765.96,769.98, 775.86,784.09,793.00,794.35,803.10,809.34,812.16,816.54,821.36,831.24, 835.48,840.07,849.92,857.85,859.61,868.35,872.40,878.42,884.93,890.60, 894.94,901.68,907.70,915.96,920.11,919.54,927.70,937.41,943.23,950.78, 953.05,961.15,967.16,975.26,979.64,985.40,989.76,994.87,1002.88,1006.38, 1014.68,1019.96,1022.65,1033.05,1040.23,1041.15,1055.75,1056.15,1060.79,1067.22, 1073.40,1079.13,1090.91,1090.63,1099.45,1102.07,1113.56,1116.00,1119.43,1126.53, 1131.49,1137.44,1147.66,1152.52,1159.28,1161.40,1170.87,1179.90,1177.24,1189.43, 1190.94,1202.51,1204.49,1205.93,1221.53,1222.66,1228.91,1239.65,1239.47,1245.88, 1251.82,1259.85,1266.16,1271.49,1274.69,1281.32,1289.96,1299.38,1297.38,1306.93, 1311.58,1313.92,1322.02,1322.47,1336.38,1343.10,1346.18,1352.07,1357.53,1366.88, 1372.69,1372.98,1389.27,1387.39,1395.43,1403.01,1406.61,1409.26,1418.69,1425.39, 1430.41,1436.73,1444.34,1446.03,1455.01,1460.66,1464.30,1469.23,1477.75,1485.94, 1486.44,1496.98,1500.78,1510.71,1509.39,1519.22,1525.87,1536.72,1535.70,1543.17, 1549.33,1556.45,1560.18,1561.47,1573.39,1578.07,1580.29,1594.11,1594.42,1603.58, 1609.16,1613.98,1616.73,1625.27,1628.02,1637.15,1645.10,1649.44,1650.86,1663.54, 1668.53,1680.13,1679.56,1683.68,1693.01,1694.78,1705.94,1709.10,1714.87,1720.55, 1726.70,1730.21,1743.99,1750.02,1746.37,1754.26,1760.57,1773.21,1777.10,1784.61, 59.68,65.03,71.92,77.06,82.32,87.37,92.94,99.35,104.68,110.03, 114.25,120.59,128.04,132.14,138.67,141.86,148.89,154.57,161.08,164.57, 170.82,176.25,181.95,188.67,192.07,198.89,205.21,207.25,215.07,219.29, 225.94,232.22,236.95,242.75,249.09,253.14,260.51,266.53,271.56,276.81, 282.19,289.33,291.83,298.67,304.01,306.83,316.86,322.56,328.63,332.37, 335.59,342.57,347.00,353.35,361.35,365.55,370.59,376.92,382.95,388.03, 392.61,398.05,404.14,405.78,412.64,420.98,424.36,433.88,438.94,442.00, 449.29,454.60,462.59,464.82,470.89,476.19,481.97,486.46,492.11,498.27, 506.95,507.46,515.72,517.60,525.79,531.75,535.64,544.93,548.98,554.49, 562.27,566.35,573.24,579.54,582.82,586.43,591.00,599.52,604.50,604.17, 615.52,619.93,625.67,632.38,638.89,641.58,649.50,654.15,659.41,666.51, 673.20,672.58,685.09,686.29,696.68,696.50,709.25,708.20,716.10,721.24, 728.18,730.49,736.97,741.84,746.34,759.09,760.56,768.20,769.30,775.45, 781.02,784.33,791.88,800.62,805.09,807.15,810.52,816.18,828.31,829.85, 839.05,843.37,847.43,854.25,858.32,864.49,870.78,872.94,878.10,888.28, 893.07,896.39,904.87,910.81,916.34,919.99,927.68,933.17,939.91,945.80, 948.07,954.41,959.31,964.48,974.53,975.15,979.08,990.86,998.21,997.97, 1005.07,1007.68,1012.32,1021.90,1022.79,1033.19,1037.35,1045.29,1046.03,1050.43, 1059.12,1063.15,1070.16,1075.17,1077.47,1089.53,1091.89,1093.11,1102.89,1105.90, 1112.29,1119.69,1122.93,1126.86,1138.08,1139.11,1148.90,1152.87,1162.89,1169.38, 1171.79,1171.00,1179.96,1192.55,1197.61,1200.10,1205.06,1206.60,1217.66,1219.07, 1226.41,1225.18,1239.59,1237.36,1251.33,1253.25,1261.48,1260.02,1266.89,1280.83, 1276.45,1289.05,1291.04,1294.38,1303.93,1304.11,1315.18,1325.11,1323.35,1330.34, 1340.47,1342.17,1349.27,1351.24,1354.91,1364.08,1369.48,1378.00,1386.11,1385.06, 1386.09,1399.17,1403.38,1406.30,1419.61,1425.27,1425.15,1431.50,1435.05,1436.36, 1449.46,1455.31,1455.86,1464.21,1466.49,1475.95,1477.01,1485.57,1498.41,1498.30, 1501.35,1510.22,1507.48,1522.44,1526.61,1526.51,1537.00,1545.00,1548.09,1554.55, 1549.60,1566.79,1567.50,1581.25,1582.66,1585.07,1596.31,1593.68,1603.52,1608.61, 1612.78,1617.95,1628.40,1625.83,1637.66,1643.70,1650.46,1661.99,1660.50,1661.91, 56.80,60.60,67.06,71.83,76.96,80.70,87.79,91.64,94.32,103.74, 107.86,112.44,117.80,124.37,130.19,133.88,139.07,143.83,149.88,154.25, 159.78,162.65,168.66,173.96,181.11,184.12,190.68,193.94,200.80,203.01, 212.69,215.77,222.94,227.71,234.31,236.29,242.49,245.09,254.16,259.57, 262.48,267.08,272.47,278.26,283.75,288.21,294.88,299.84,304.42,310.35, 316.77,317.34,326.38,328.37,335.41,338.66,346.23,352.03,355.52,361.64, 368.09,372.71,374.04,382.55,388.46,394.01,397.27,402.34,408.55,413.88, 414.54,422.58,427.78,437.37,437.16,442.02,452.45,455.82,457.16,465.63, 467.99,477.07,481.98,484.13,490.77,496.05,500.89,502.80,509.86,520.08, 517.86,525.85,530.03,533.64,540.98,550.06,554.75,554.90,560.87,567.03, 573.21,580.98,582.06,589.85,592.59,602.55,606.24,609.73,616.23,623.33, 623.07,630.90,634.26,641.43,645.64,653.16,655.84,663.33,666.42,673.23, 676.47,679.73,688.57,693.42,699.06,705.58,709.76,711.67,719.96,725.89, 730.64,732.31,738.95,743.57,748.74,751.99,757.37,760.83,770.85,775.71, 780.31,786.12,788.95,795.86,798.03,806.87,810.78,809.45,823.41,822.76, 833.95,837.48,842.14,845.91,849.76,857.32,864.24,871.80,869.82,876.90, 887.48,889.37,890.60,900.22,901.67,912.44,916.67,917.83,922.69,927.34, 936.73,941.85,943.40,951.24,958.53,959.29,966.61,970.71,974.04,979.80, 987.79,991.78,998.98,1004.74,1007.43,1014.82,1022.15,1021.48,1028.73,1037.50, 1041.97,1043.89,1052.32,1053.33,1057.66,1062.43,1067.48,1073.84,1073.28,1088.86, 1087.72,1091.21,1095.42,1103.46,1114.94,1120.98,1119.09,1125.29,1134.86,1135.80, 1144.55,1142.71,1153.63,1153.43,1163.41,1167.48,1171.86,1181.62,1181.79,1191.14, 1187.50,1197.86,1203.48,1207.53,1213.84,1217.61,1223.00,1234.04,1234.17,1241.35, 1243.75,1255.36,1251.56,1260.85,1265.31,1271.00,1273.97,1277.14,1286.70,1294.74, 1298.45,1300.54,1310.65,1314.38,1315.15,1324.05,1320.24,1334.70,1338.79,1339.50, 1352.17,1347.86,1356.08,1364.39,1364.84,1377.75,1376.89,1392.10,1395.32,1396.72, 1400.73,1409.12,1414.89,1421.16,1422.21,1427.87,1428.28,1442.60,1432.69,1449.63, 1452.18,1457.20,1463.70,1469.02,1474.91,1478.99,1480.44,1494.80,1489.93,1499.52, 1510.35,1512.17,1516.24,1527.30,1514.79,1529.48,1532.90,1545.59,1551.14,1549.90, 52.31,56.55,63.50,66.08,69.92,75.88,82.11,86.94,91.26,96.18, 100.40,105.48,111.53,115.18,118.16,124.34,130.65,133.14,138.93,143.55, 149.92,154.26,159.18,164.59,167.75,171.97,178.58,180.46,184.43,190.52, 197.91,199.79,208.25,211.38,216.30,219.84,228.65,229.93,234.19,240.50, 244.22,248.98,252.92,260.85,263.54,269.97,275.50,278.47,281.52,288.47, 293.52,297.15,301.80,310.37,310.32,317.34,323.88,327.57,331.87,337.16, 342.29,343.66,352.43,351.32,360.34,364.96,370.56,373.20,380.82,382.45, 392.29,393.20,399.89,402.18,409.07,413.32,418.47,422.73,424.47,429.62, 441.79,441.38,448.82,455.10,457.04,462.50,463.25,471.93,474.06,479.63, 485.61,495.08,494.79,500.71,505.19,506.26,513.18,518.33,521.86,533.75, 532.42,540.24,541.17,550.09,554.18,557.15,565.06,566.28,571.14,572.94, 578.03,582.29,589.57,594.21,601.98,603.38,613.72,615.35,619.44,625.02, 626.08,634.33,634.68,637.20,645.56,653.55,658.34,657.21,667.43,676.39, 672.21,684.50,685.37,689.19,693.41,698.96,703.39,710.74,719.11,722.23, 725.22,734.71,735.35,742.37,740.07,748.26,755.19,764.37,763.51,767.49, 774.85,774.98,789.16,788.74,791.24,796.37,804.58,808.63,814.51,812.00, 825.96,826.96,831.63,836.81,844.19,848.49,850.12,857.43,854.32,867.59, 868.43,871.96,880.82,891.06,889.55,892.20,902.98,903.71,908.12,915.60, 917.76,924.51,925.71,932.42,937.47,942.83,950.62,951.41,955.95,967.03, 966.40,972.60,968.40,984.98,986.51,992.57,993.46,999.24,1003.88,1011.36, 1019.53,1015.70,1025.09,1024.62,1034.46,1039.91,1037.96,1045.85,1047.82,1054.87, 1063.42,1067.10,1068.37,1072.85,1086.27,1085.33,1097.30,1098.92,1101.87,1107.41, 1107.39,1113.91,1114.05,1127.30,1131.60,1136.44,1139.76,1141.71,1152.43,1153.73, 1158.22,1167.66,1170.18,1177.46,1178.48,1185.76,1189.10,1189.93,1197.52,1200.91, 1205.35,1216.56,1217.39,1218.56,1230.72,1231.45,1234.21,1244.06,1241.93,1251.51, 1252.12,1257.99,1266.12,1270.41,1270.52,1282.03,1285.45,1286.00,1291.13,1294.12, 1302.53,1309.91,1314.51,1324.34,1318.79,1325.65,1329.15,1341.02,1341.98,1342.47, 1354.56,1352.77,1363.91,1367.49,1375.25,1376.61,1371.18,1380.02,1393.77,1396.24, 1400.32,1402.16,1404.93,1416.09,1412.72,1426.47,1433.84,1435.62,1434.94,1443.69, 48.70,53.05,57.23,63.60,65.57,69.65,75.83,80.46,82.73,89.04, 93.41,97.56,103.25,105.56,111.52,113.64,121.32,126.94,128.83,134.36, 138.12,142.44,146.86,149.28,156.00,160.69,163.84,166.70,174.67,177.89, 181.51,187.06,192.28,192.56,202.13,205.87,210.81,212.36,217.05,220.82, 224.35,231.82,234.07,241.53,246.65,249.88,253.96,260.17,262.22,268.39, 271.07,276.86,278.06,286.88,290.25,295.66,295.80,304.36,307.16,310.12, 315.60,319.35,324.84,327.73,331.37,339.46,343.72,348.30,351.91,356.16, 358.75,368.42,370.52,373.13,378.69,382.14,389.28,390.14,396.16,403.87, 404.39,410.12,414.45,420.37,427.43,429.95,434.11,435.46,443.02,448.10, 450.25,458.25,456.30,469.09,464.31,470.88,479.87,480.93,485.24,490.52, 495.69,497.43,503.27,507.75,512.09,517.99,523.33,526.29,528.56,535.61, 539.69,548.04,549.64,556.57,559.58,561.98,568.01,573.03,574.17,575.72, 585.98,586.08,598.59,595.76,601.63,608.13,613.28,619.00,622.28,624.76, 631.11,632.03,640.46,647.72,652.46,652.46,652.78,657.70,659.74,670.02, 676.53,684.06,683.72,687.34,690.46,700.27,701.06,707.37,714.10,714.83, 717.75,720.22,726.93,729.54,736.94,744.52,744.54,748.97,754.49,759.65, 766.37,766.30,774.49,777.51,779.90,783.84,787.43,796.99,794.76,798.98, 809.32,813.61,817.99,821.83,827.69,829.37,832.53,840.84,841.47,847.12, 854.49,860.81,861.16,862.59,871.50,878.12,876.70,886.27,883.99,891.85, 896.03,901.85,908.55,912.31,912.86,918.21,929.21,933.55,931.69,933.33, 939.98,947.15,945.54,958.23,957.35,967.92,972.93,974.16,974.56,978.91, 986.70,988.79,995.38,999.82,993.28,1005.58,1008.14,1012.11,1026.06,1021.28, 1025.23,1032.44,1043.44,1051.56,1048.71,1052.64,1054.79,1067.16,1057.14,1072.03, 1078.26,1077.98,1087.95,1091.51,1090.48,1102.84,1105.92,1114.20,1108.96,1120.74, 1117.05,1120.17,1133.31,1128.36,1141.10,1142.94,1143.89,1150.19,1160.49,1158.58, 1166.43,1175.49,1176.15,1176.50,1184.37,1190.36,1194.14,1197.40,1199.08,1207.77, 1206.67,1213.25,1222.82,1221.06,1231.31,1237.31,1236.12,1241.43,1248.11,1248.84, 1257.88,1266.21,1254.98,1263.71,1272.51,1284.70,1281.66,1287.37,1298.87,1290.84, 1305.82,1301.30,1311.55,1314.11,1319.17,1318.79,1327.22,1334.43,1336.79,1335.92, 44.56,47.74,54.25,56.48,61.10,64.17,67.83,74.69,77.62,81.32, 86.88,90.67,93.18,100.57,101.37,107.65,109.92,115.01,121.72,121.69, 127.31,130.74,137.38,141.11,143.63,149.38,153.78,157.65,159.40,162.97, 169.47,172.62,179.14,178.30,187.62,187.70,195.91,198.20,202.06,205.25, 212.00,214.71,219.30,221.87,227.48,233.07,236.31,240.25,242.51,247.47, 252.25,254.94,259.39,260.16,269.83,272.16,273.26,284.57,286.30,289.16, 293.39,294.01,299.63,306.13,310.28,310.63,315.26,323.57,327.88,330.36, 333.82,342.28,345.29,340.98,354.23,356.68,357.45,363.05,367.97,368.69, 377.06,379.67,379.75,389.18,392.76,395.33,399.69,405.68,405.82,413.02, 417.13,420.32,427.77,429.87,435.02,438.48,443.64,450.20,448.92,455.90, 461.64,462.48,467.35,474.69,478.54,483.17,486.79,487.58,493.14,496.98, 501.18,506.54,509.70,514.94,520.53,515.51,520.03,527.00,530.68,533.02, 536.08,545.32,548.57,554.16,558.97,561.65,571.48,567.99,576.07,582.63, 582.68,588.94,595.57,594.42,603.14,605.52,609.84,613.38,612.17,620.32, 628.46,628.71,630.56,634.51,642.90,646.45,650.21,650.89,656.79,657.28, 666.89,672.57,672.34,679.79,681.83,681.38,688.91,698.28,697.58,702.81, 709.28,709.26,714.46,719.39,724.35,730.28,731.31,731.56,739.64,743.55, 752.04,751.56,758.84,757.63,766.82,769.07,776.76,781.80,783.30,789.12, 791.41,796.41,798.99,803.09,803.15,813.67,822.24,819.83,820.06,827.06, 831.78,841.63,839.85,841.78,845.70,854.06,854.26,860.80,863.26,870.94, 874.20,881.35,884.50,890.30,887.93,893.74,899.42,902.81,908.33,912.12, 918.36,919.76,926.34,930.63,934.51,934.18,944.31,941.38,945.74,949.66, 963.96,961.66,967.09,974.02,968.68,980.72,981.57,978.52,989.71,993.85, 994.26,1001.43,1006.55,1008.46,1008.84,1015.12,1025.53,1023.98,1030.84,1037.78, 1039.31,1045.11,1049.81,1053.84,1053.70,1059.46,1056.62,1064.98,1075.88,1072.45, 1080.99,1079.66,1083.86,1094.90,1095.41,1105.29,1107.68,1111.38,1115.93,1119.98, 1125.97,1128.08,1129.61,1139.77,1140.55,1137.26,1154.34,1151.63,1155.99,1160.83, 1164.39,1170.54,1166.45,1173.71,1180.16,1181.80,1185.56,1193.26,1192.77,1206.37, 1208.72,1210.35,1218.06,1218.78,1220.87,1231.40,1224.72,1232.42,1237.87,1238.28, 41.35,45.29,48.26,53.02,55.19,60.47,64.99,69.31,70.09,75.29, 78.77,83.56,86.38,91.54,94.45,99.77,104.02,108.93,109.45,115.48, 118.73,119.19,124.31,130.61,133.58,136.70,141.14,145.59,148.30,151.59, 156.24,162.99,160.17,169.22,169.76,176.91,180.03,181.88,185.06,192.42, 195.34,199.72,203.73,204.84,209.64,217.71,217.90,221.63,224.06,231.02, 233.55,237.26,242.10,245.36,247.29,252.19,255.53,258.49,267.29,269.13, 273.53,277.31,282.06,282.93,287.76,290.05,295.79,298.28,305.69,305.23, 309.20,319.30,317.44,319.12,327.02,330.55,336.19,336.94,336.58,347.78, 349.16,354.40,354.20,359.60,362.38,372.46,369.07,379.27,379.54,384.21, 384.57,392.33,398.05,394.98,402.66,403.92,410.33,418.53,415.08,420.65, 427.21,432.07,433.18,433.91,442.35,439.69,446.07,450.33,454.86,463.37, 464.84,470.23,467.04,476.09,481.02,484.53,489.71,488.83,494.40,495.03, 505.37,505.86,508.95,510.74,521.01,519.37,528.20,528.55,532.66,537.61, 539.59,540.38,547.09,555.45,556.85,560.79,562.39,563.62,564.04,577.78, 581.37,578.80,587.55,592.55,595.67,594.20,598.96,609.41,609.74,609.29, 617.02,620.18,619.10,625.62,629.32,633.56,636.96,639.39,647.10,651.36, 655.14,662.56,659.59,665.48,670.38,674.60,681.07,679.36,683.23,689.57, 691.73,698.75,698.62,706.95,705.76,705.73,713.50,721.25,732.76,724.52, 731.06,741.77,739.61,738.68,744.20,753.05,755.92,761.11,759.62,763.59, 778.89,770.58,782.78,783.64,785.98,792.10,797.33,795.06,801.89,806.38, 812.98,811.22,813.93,821.24,819.39,827.77,833.49,836.10,837.47,834.70, 849.48,850.05,858.27,855.00,857.91,860.68,871.04,878.51,874.57,883.17, 885.27,895.60,889.53,897.68,902.93,901.30,908.06,908.19,914.07,919.70, 924.10,928.31,934.37,929.41,935.38,946.27,946.74,952.05,959.75,960.06, 959.65,962.55,967.01,971.87,978.24,978.60,982.26,994.12,996.36,993.60, 994.65,998.76,1007.68,1016.92,1013.21,1021.25,1026.75,1031.02,1034.59,1042.85, 1039.54,1037.19,1048.16,1044.62,1058.07,1063.11,1063.19,1064.48,1057.85,1078.77, 1079.93,1082.79,1083.13,1087.51,1091.33,1096.27,1095.66,1101.84,1107.10,1110.44, 1110.68,1122.08,1123.07,1131.03,1128.15,1131.42,1134.53,1139.00,1139.94,1148.13, 37.87,41.54,44.68,48.93,53.44,54.86,60.28,59.84,67.82,71.61, 75.80,77.93,80.92,85.54,88.47,90.62,94.32,96.48,102.98,106.94, 109.38,113.08,118.04,119.67,124.30,126.30,131.99,133.02,138.39,142.31, 144.35,149.13,152.82,155.58,158.20,164.99,168.57,171.45,172.55,174.50, 178.36,185.36,189.10,192.88,194.89,194.92,200.35,207.03,212.94,210.99, 211.15,220.82,220.11,227.23,231.99,231.90,235.89,237.10,244.67,249.79, 251.06,254.80,258.28,266.23,263.86,266.68,273.08,272.40,277.36,280.45, 287.86,292.46,292.81,296.20,300.14,302.96,304.78,311.12,314.00,318.85, 320.29,324.28,329.80,334.72,337.71,341.67,343.32,348.64,348.23,352.26, 356.41,359.56,361.25,364.37,371.31,372.54,383.17,380.91,388.48,390.72, 387.60,394.17,398.70,408.46,406.66,408.92,411.70,419.79,420.79,426.89, 434.31,433.44,435.23,437.16,440.85,444.25,450.71,452.25,454.18,459.05, 465.38,466.01,470.08,474.04,473.21,483.68,489.27,487.52,489.07,496.80, 499.73,501.46,508.51,510.87,511.14,514.88,523.22,523.38,524.41,536.66, 536.91,536.78,541.09,544.56,544.39,556.50,559.99,561.10,560.62,563.45, 568.88,570.97,579.71,577.97,585.80,586.86,591.55,595.18,597.92,601.05, 605.04,610.66,609.57,611.94,626.46,620.13,623.64,627.99,637.21,641.83, 637.14,639.82,644.16,653.97,651.15,650.64,664.61,664.16,669.76,669.61, 674.51,682.26,684.55,686.99,691.47,694.40,697.58,698.76,702.96,714.10, 709.00,711.36,713.49,721.48,727.78,736.22,736.80,741.24,738.25,739.58, 749.92,746.76,750.79,756.80,762.36,760.34,764.34,774.89,779.38,775.35, 781.32,783.71,792.09,798.26,792.66,808.21,804.04,803.38,808.94,816.60, 819.99,821.73,828.90,826.50,836.13,836.95,838.54,845.24,845.92,848.66, 854.74,854.80,857.16,858.20,863.76,870.17,871.29,874.92,875.40,885.51, 885.82,891.48,897.72,898.03,898.46,902.50,910.00,916.63,918.52,923.51, 921.64,935.01,931.04,936.71,934.01,939.08,939.87,951.52,958.50,951.93, 960.07,961.50,968.35,971.12,974.39,981.58,981.68,979.27,988.22,988.29, 992.93,993.43,998.37,1003.54,1002.76,1017.13,1015.55,1012.57,1021.30,1019.68, 1028.55,1031.11,1033.31,1044.51,1039.83,1048.01,1046.71,1051.94,1063.80,1063.37, 34.59,40.47,41.43,44.12,50.04,50.85,55.08,58.29,61.91,63.80, 67.68,70.96,74.69,77.24,81.04,84.09,87.46,89.59,95.12,98.00, 100.42,106.24,108.14,108.20,111.31,118.02,116.67,123.25,126.69,129.83, 131.02,136.74,141.15,141.26,146.75,150.19,150.51,154.52,162.04,159.74, 166.57,168.80,172.33,174.15,179.40,185.61,183.25,189.35,194.81,195.48, 197.48,202.48,203.42,207.04,214.28,213.69,215.21,221.43,225.10,223.03, 231.20,237.41,234.78,240.48,242.39,251.09,253.58,257.95,255.68,258.65, 263.91,266.14,271.55,273.55,281.51,281.73,284.03,288.92,289.78,293.48, 292.59,299.37,303.24,306.81,314.45,310.43,315.32,320.95,324.69,328.82, 330.46,335.70,331.28,340.52,340.45,349.17,346.60,354.12,355.20,359.51, 360.90,369.70,371.68,371.44,378.40,379.27,388.61,383.83,387.13,393.20, 392.87,397.24,404.08,404.72,407.30,412.73,416.70,419.67,424.35,424.04, 429.34,430.92,437.34,438.19,443.41,444.54,450.71,450.04,455.97,456.99, 456.35,465.14,469.50,468.67,474.04,474.43,479.75,482.85,489.32,491.83, 493.06,492.02,496.82,502.65,502.12,507.76,513.02,521.98,517.41,520.41, 524.62,531.38,531.64,536.92,537.83,540.24,545.10,547.94,550.49,555.63, 555.76,559.06,564.89,569.53,573.06,578.37,578.88,586.65,588.55,590.25, 590.15,590.57,591.91,600.39,604.88,604.97,612.69,607.56,617.66,621.48, 625.42,621.08,632.52,632.46,635.05,636.30,641.38,645.38,649.38,655.29, 655.78,660.91,663.05,672.45,674.27,674.43,672.16,680.08,683.23,680.78, 687.48,696.98,700.03,702.58,700.17,705.55,709.08,709.04,706.49,723.04, 722.16,725.17,723.98,736.61,733.25,739.80,752.26,747.38,747.40,752.49, 756.87,758.86,754.64,762.83,774.47,772.64,774.28,774.26,781.18,781.39, 788.07,786.25,793.83,799.86,805.61,798.26,806.03,803.91,812.59,824.49, 827.39,825.70,823.37,831.52,826.85,834.79,844.19,842.03,847.88,844.88, 851.55,857.25,858.03,861.10,867.71,869.24,877.00,873.83,879.05,880.29, 887.96,888.81,889.86,893.72,895.40,904.29,907.01,908.73,901.11,921.24, 919.11,921.53,925.01,931.62,932.61,933.29,941.38,938.20,939.17,952.17, 952.35,957.38,968.68,960.34,962.39,963.91,970.83,966.86,975.48,980.12, 33.26,35.76,40.46,40.10,45.84,46.58,51.67,53.23,55.61,59.08, 62.62,66.62,68.04,72.50,73.52,77.55,78.16,85.58,89.09,88.77, 91.84,95.44,98.70,101.68,105.52,104.46,112.49,114.47,116.25,120.14, 119.86,126.03,128.72,131.59,131.52,140.13,142.03,145.11,143.67,150.61, 153.31,155.72,159.99,162.04,165.61,166.40,173.44,174.64,179.30,177.38, 181.94,185.87,188.35,189.53,193.14,198.24,202.19,203.46,210.34,209.56, 211.49,218.61,218.70,222.46,229.77,229.10,229.24,236.09,236.24,239.94, 243.24,248.14,248.49,252.78,254.77,259.14,261.40,264.58,272.68,270.37, 272.95,275.92,279.55,283.23,289.26,283.88,289.01,291.03,300.37,295.56, 308.54,309.35,304.92,315.11,317.90,319.02,319.28,322.41,323.19,331.71, 332.96,336.57,340.84,340.26,347.41,350.45,351.72,355.47,355.44,360.42, 363.13,367.26,366.14,373.45,375.94,375.33,381.12,387.42,385.24,397.67, 394.75,398.71,399.13,399.94,405.09,413.30,412.92,418.67,419.29,419.13, 430.72,428.79,431.56,432.79,432.62,438.17,445.97,445.88,448.81,451.53, 451.81,456.14,463.12,465.63,466.78,467.37,475.24,472.34,476.14,487.25, 479.33,486.24,488.91,491.32,498.58,498.01,504.30,506.89,507.24,516.62, 520.08,520.08,522.53,521.78,522.21,534.11,532.90,541.10,543.05,542.80, 547.86,542.99,551.66,556.57,558.64,557.00,562.66,567.90,566.65,576.95, 574.04,578.24,585.65,580.33,584.72,592.51,593.90,600.97,600.10,599.97, 602.66,614.30,611.23,612.59,619.27,621.27,622.02,620.63,631.98,636.29, 633.98,644.79,645.13,649.45,649.74,656.98,660.12,659.27,650.10,667.60, 662.59,667.76,672.35,675.39,678.23,675.98,687.48,686.06,684.95,690.12, 695.35,699.51,702.11,702.46,702.10,711.65,712.38,715.09,724.30,720.77, 722.50,729.45,729.17,729.94,738.73,734.72,748.49,750.47,747.61,756.00, 755.03,757.74,767.19,765.11,766.65,772.71,773.64,779.25,780.28,785.46, 789.60,785.56,794.97,794.53,797.02,798.23,811.38,807.05,810.72,810.65, 813.66,820.36,823.79,827.23,824.66,831.73,836.17,834.62,839.50,843.94, 848.98,845.91,854.65,859.40,858.26,864.11,856.41,864.60,872.83,876.45, 876.11,875.23,885.65,880.13,891.38,893.22,890.19,896.09,908.24,902.36, 30.59,32.38,35.44,37.35,42.23,42.95,44.87,49.62,50.10,55.16, 60.52,59.06,62.68,64.29,67.55,69.12,75.36,76.87,79.64,81.23, 85.82,89.59,89.28,93.68,93.08,97.59,101.96,107.02,107.55,111.27, 112.91,118.71,117.83,119.33,124.00,129.08,133.84,135.52,133.74,137.14, 140.95,145.47,145.84,151.57,154.09,155.43,159.50,160.52,164.51,165.35, 168.90,172.94,176.24,176.12,180.63,184.31,188.88,187.75,188.37,193.34, 194.87,197.37,200.89,204.07,206.22,209.85,212.05,214.63,220.71,220.42, 223.55,227.55,231.21,232.54,233.27,240.32,240.60,244.61,247.12,244.71, 252.76,255.31,258.44,262.93,262.54,262.67,268.33,274.54,275.19,272.45, 277.27,281.08,283.12,288.35,288.22,294.85,298.17,295.76,303.29,305.38, 306.95,312.43,310.55,311.27,315.51,323.94,324.60,324.24,331.67,333.87, 332.38,337.01,342.28,344.60,340.55,351.50,350.03,355.06,362.94,360.32, 364.28,364.10,369.32,367.42,373.80,374.98,378.30,384.71,384.76,382.76, 389.70,394.03,397.07,393.21,405.42,408.39,411.48,407.11,409.15,414.22, 421.13,423.32,423.74,420.60,424.65,432.47,435.44,435.69,441.35,446.91, 445.49,442.40,454.23,457.93,460.87,455.96,462.63,458.66,470.85,473.22, 473.28,477.10,481.27,480.77,486.01,486.05,495.44,495.73,497.41,493.41, 508.48,502.64,509.83,507.21,508.33,518.82,516.99,520.18,524.35,527.73, 527.88,536.64,525.37,540.76,539.12,539.81,541.78,548.98,553.72,556.92, 559.57,563.04,562.17,568.47,567.94,566.63,576.99,578.63,583.69,584.33, 584.56,585.97,591.99,595.82,599.27,595.69,600.09,602.97,610.97,608.64, 613.99,615.68,619.38,617.98,624.32,624.44,628.27,634.64,639.60,637.44, 638.97,641.23,647.65,651.84,645.79,660.01,656.09,658.61,657.72,662.57, 670.38,664.64,673.13,678.36,683.07,682.31,684.89,687.16,689.61,695.35, 696.33,700.26,695.56,701.37,703.48,710.77,713.03,718.33,715.34,726.19, 722.20,720.15,732.59,736.11,734.20,739.54,734.06,742.02,742.33,747.47, 756.51,751.85,755.69,767.05,763.77,765.18,769.38,768.06,770.03,771.75, 777.43,777.52,788.04,784.31,786.67,789.97,802.69,795.01,803.59,807.51, 804.66,809.59,812.27,813.56,814.04,826.67,826.44,824.33,828.87,828.70, 27.85,30.29,32.72,35.26,36.95,40.91,43.29,45.73,48.55,51.66, 53.73,56.30,58.78,62.15,62.32,65.25,69.81,71.29,71.43,76.88, 78.31,80.95,84.08,84.68,89.41,93.81,97.73,95.68,99.19,102.39, 102.75,105.35,107.39,113.88,115.43,116.91,118.65,121.18,126.42,129.10, 130.47,134.38,134.96,139.06,137.78,140.47,146.52,144.49,152.13,153.60, 155.17,155.49,161.93,160.97,165.53,166.70,169.93,175.13,175.08,174.53, 182.94,181.02,183.34,185.35,194.91,194.98,198.52,199.13,200.57,204.25, 208.11,211.31,215.91,213.42,215.77,218.02,220.38,226.00,225.10,228.60, 236.31,234.58,231.68,236.11,238.84,242.51,250.36,247.07,253.31,256.62, 257.62,259.01,264.39,264.56,272.31,272.25,272.67,274.38,279.01,280.10, 280.05,282.28,290.53,285.05,290.89,294.81,298.06,300.50,306.78,301.96, 311.96,305.53,313.64,314.56,320.83,322.69,324.75,330.31,330.67,334.65, 333.51,338.66,338.98,340.64,343.05,349.33,349.99,353.03,355.30,359.01, 355.12,362.06,365.07,368.07,372.04,367.16,374.23,377.16,387.02,385.14, 380.05,387.01,389.78,398.45,395.21,393.68,400.84,400.09,403.58,404.76, 409.67,408.93,412.72,415.58,422.88,418.58,424.31,425.63,437.34,429.14, 440.18,438.15,445.63,445.03,445.36,444.06,451.22,450.96,453.01,459.48, 467.26,465.55,465.13,464.75,473.77,478.14,476.54,485.61,476.00,482.30, 479.81,489.09,488.86,486.62,493.85,497.75,499.82,507.90,503.37,510.87, 512.73,519.81,515.26,515.33,520.57,524.06,527.26,537.79,541.62,537.23, 539.59,540.84,540.08,543.75,547.28,549.31,553.93,558.60,556.36,563.75, 560.70,564.99,572.26,576.74,575.67,571.57,584.31,579.66,579.48,580.64, 585.13,593.25,592.42,593.58,603.79,603.52,601.28,608.85,608.59,605.68, 612.91,616.43,619.25,621.59,630.83,630.37,628.26,632.96,641.25,635.56, 645.67,638.43,644.92,648.73,653.08,653.89,656.57,664.85,657.72,666.22, 663.81,670.99,667.12,673.71,677.38,680.95,678.14,682.03,696.14,690.78, 686.47,691.62,693.44,696.48,705.80,706.85,709.16,704.93,709.79,705.55, 719.56,716.52,726.00,720.94,734.51,734.70,731.74,727.89,738.88,737.49, 743.51,745.69,744.54,753.93,750.39,752.50,748.50,757.33,759.48,770.15, 26.51,26.78,30.07,32.57,36.19,36.53,38.82,39.98,45.60,46.89, 48.03,51.89,54.43,56.46,59.51,59.47,63.88,63.04,66.94,68.97, 71.31,72.58,78.59,81.10,84.34,84.81,87.51,86.31,90.91,93.17, 95.94,98.35,101.92,101.79,104.24,106.70,107.83,114.26,112.59,118.29, 118.74,119.77,125.45,127.33,128.25,130.16,133.47,136.04,137.17,140.52, 143.48,145.50,145.57,148.85,150.16,151.20,154.46,159.95,160.81,162.26, 167.78,169.68,169.81,176.75,177.42,177.14,183.23,184.60,183.11,185.93, 187.75,188.97,191.88,196.12,198.87,200.55,204.34,208.24,211.78,215.13, 211.65,212.37,220.66,219.72,221.76,220.68,227.41,227.89,229.94,233.87, 237.03,239.07,237.02,246.44,245.80,242.57,250.41,253.92,256.56,256.08, 257.40,260.16,269.20,267.81,269.17,270.37,274.06,274.43,278.08,286.28, 285.06,285.24,288.83,290.44,293.72,292.08,298.59,297.58,300.52,306.37, 303.84,308.12,316.29,317.36,317.98,319.01,314.05,324.20,319.20,329.27, 332.38,331.49,333.44,335.34,342.74,339.96,339.27,350.93,347.03,347.81, 350.61,356.41,358.46,364.19,359.51,363.70,364.31,371.10,374.95,377.70, 371.47,372.25,382.34,387.72,386.52,388.10,387.63,390.97,395.73,396.16, 399.74,402.59,403.93,402.29,404.08,413.59,412.09,415.18,416.08,424.64, 420.38,428.91,428.33,430.81,433.03,438.44,437.52,440.36,444.62,440.25, 448.21,450.49,448.37,454.02,459.53,459.02,462.69,462.04,465.76,466.56, 467.27,472.78,478.06,476.28,481.12,487.94,480.56,478.50,490.42,491.90, 493.13,497.40,501.96,498.33,501.20,501.85,505.44,517.90,512.73,517.84, 521.99,521.99,520.52,517.71,526.59,529.74,530.58,538.22,533.06,539.33, 544.48,542.72,537.99,540.45,557.93,550.45,558.14,553.08,558.22,557.19, 564.40,563.16,564.77,571.92,574.42,577.56,579.86,580.10,583.82,582.44, 590.63,590.95,587.66,600.41,602.14,599.51,607.46,609.68,604.22,612.15, 613.23,614.12,613.51,610.51,617.94,620.82,622.52,627.65,638.43,644.83, 638.51,635.67,644.74,644.05,646.78,649.15,653.13,652.66,656.84,665.56, 656.82,659.68,660.26,667.36,671.85,668.33,674.91,674.20,680.41,673.96, 682.53,694.45,685.68,689.57,687.98,695.58,698.43,695.13,700.78,701.43, 78.42,85.14,93.60,99.61,106.02,114.24,121.08,129.62,135.60,142.55, 150.28,157.06,164.62,171.38,177.94,185.46,192.92,199.47,208.89,215.28, 222.14,228.35,236.63,242.42,249.47,258.91,265.31,273.55,278.98,285.98, 294.63,299.57,306.96,317.70,322.33,329.19,337.18,343.23,349.21,358.50, 363.37,372.41,378.73,388.16,395.04,401.44,408.79,418.52,419.56,430.19, 436.70,444.65,453.01,456.44,464.53,473.24,478.45,485.20,496.76,502.25, 509.15,515.57,522.49,531.80,537.38,545.83,551.37,559.38,567.23,570.24, 579.55,588.34,597.09,602.07,611.12,616.59,624.95,629.88,637.88,644.12, 650.68,657.76,665.63,672.73,681.20,693.46,694.45,704.36,708.84,715.80, 725.84,733.31,739.70,745.84,751.66,760.00,767.85,773.51,781.01,789.48, 797.21,799.40,809.83,814.87,824.38,831.61,838.28,845.02,856.37,861.61, 868.94,875.00,883.78,889.60,899.38,902.88,909.02,915.32,926.63,930.65, 939.48,944.26,955.79,960.07,967.03,973.21,982.77,992.04,996.91,1001.62, 1013.31,1018.00,1028.85,1031.34,1038.44,1046.03,1052.56,1062.56,1067.55,1075.44, 1078.59,1087.54,1096.68,1103.90,1111.82,1115.21,1125.07,1134.20,1138.46,1145.18, 1150.11,1158.92,1166.98,1172.60,1182.50,1191.67,1198.42,1205.77,1212.86,1217.87, 1226.01,1235.61,1239.12,1247.48,1253.17,1263.58,1266.07,1276.51,1283.11,1294.05, 1295.64,1307.33,1314.35,1315.38,1328.41,1329.45,1347.15,1346.84,1353.43,1360.69, 1373.26,1377.80,1385.10,1392.98,1396.53,1403.74,1411.81,1420.42,1423.68,1433.82, 1443.61,1452.23,1459.14,1465.15,1469.58,1477.29,1481.66,1494.35,1502.62,1507.63, 1516.27,1515.17,1531.57,1533.70,1536.92,1546.88,1556.97,1564.63,1567.12,1576.30, 1582.71,1589.42,1597.92,1604.59,1611.86,1619.77,1626.62,1638.57,1644.33,1650.65, 1658.31,1666.26,1671.66,1676.25,1681.10,1691.33,1695.42,1706.74,1714.78,1725.73, 1729.46,1734.14,1744.22,1751.46,1758.95,1765.53,1769.70,1781.08,1785.88,1795.12, 1801.21,1807.18,1812.02,1826.21,1830.58,1832.17,1841.97,1847.90,1862.65,1866.21, 1874.56,1879.06,1884.74,1891.24,1898.40,1906.97,1915.71,1921.24,1928.54,1933.92, 1941.88,1952.54,1956.67,1966.48,1970.45,1977.05,1990.32,1996.06,2000.16,2013.47, 2019.39,2026.98,2027.29,2037.80,2039.69,2051.92,2060.34,2064.76,2069.60,2080.53, 2089.77,2091.76,2096.34,2107.63,2116.99,2124.19,2126.99,2135.43,2145.76,2152.63, 74.62,81.95,87.39,94.44,100.64,109.02,115.24,122.90,128.07,134.29, 142.76,148.55,155.41,162.54,169.55,176.53,181.49,190.30,196.03,203.61, 209.90,214.81,221.54,231.11,238.24,243.29,249.42,257.87,264.24,269.63, 277.94,285.67,290.49,297.43,305.69,314.16,319.14,324.67,330.54,337.99, 345.16,353.02,359.78,369.12,372.16,380.12,389.12,392.57,400.65,406.14, 415.90,420.72,429.46,435.73,441.87,447.09,455.14,461.23,466.35,475.14, 482.48,487.51,494.23,502.23,509.93,517.78,522.63,530.56,534.92,544.17, 548.30,558.24,564.57,570.22,577.52,582.84,591.63,598.43,603.70,610.00, 621.16,623.70,632.15,638.02,646.76,651.51,658.36,664.46,672.48,678.80, 689.16,692.82,700.71,702.67,711.93,719.49,727.28,733.62,741.07,747.82, 756.16,761.24,771.58,774.31,779.50,790.58,793.70,801.36,807.84,809.35, 820.22,826.38,836.08,847.78,853.01,854.82,863.24,868.69,878.47,879.18, 887.73,894.11,903.11,909.36,916.60,926.21,929.07,939.54,945.06,953.42, 959.65,965.87,968.05,976.88,985.68,993.80,1000.83,1005.72,1011.44,1024.01, 1027.25,1033.09,1036.67,1041.25,1049.93,1057.31,1066.70,1073.85,1080.32,1091.03, 1095.08,1099.02,1104.83,1118.55,1121.52,1128.32,1134.38,1138.09,1151.13,1154.80, 1164.46,1170.08,1176.58,1181.27,1184.10,1193.19,1204.65,1206.80,1216.53,1221.03, 1229.97,1236.91,1238.79,1249.68,1258.51,1262.93,1270.98,1275.97,1284.60,1289.56, 1295.35,1306.64,1315.11,1321.68,1322.63,1331.05,1338.13,1345.35,1351.96,1356.42, 1364.65,1371.61,1378.55,1385.36,1392.81,1399.06,1403.77,1413.14,1415.56,1425.76, 1430.34,1441.24,1454.53,1452.26,1457.86,1466.19,1475.69,1486.52,1490.89,1496.25, 1501.05,1507.44,1513.37,1521.86,1529.25,1537.47,1541.85,1548.27,1557.43,1566.97, 1571.21,1577.57,1579.50,1586.91,1597.34,1598.78,1611.10,1619.41,1625.63,1626.26, 1639.38,1647.08,1647.14,1655.22,1664.99,1673.80,1680.46,1681.52,1690.53,1691.67, 1706.23,1708.39,1723.34,1724.72,1730.66,1740.01,1746.44,1754.39,1762.34,1769.62, 1774.85,1780.01,1783.61,1788.15,1795.68,1810.32,1815.80,1824.27,1828.20,1837.10, 1840.62,1848.68,1852.25,1861.14,1868.62,1874.87,1881.41,1888.09,1897.43,1904.81, 1910.42,1920.36,1921.67,1936.83,1937.89,1947.99,1947.44,1961.24,1960.41,1969.45, 1980.22,1986.54,1990.98,2002.20,2002.37,2012.74,2019.20,2024.10,2033.41,2036.57, 70.57,77.52,83.76,89.57,95.55,101.89,108.87,115.30,121.70,128.11, 133.48,140.58,146.34,153.27,158.98,166.39,172.11,176.32,186.02,190.09, 198.21,205.28,212.17,217.97,222.96,230.19,238.09,241.58,249.61,256.78, 262.25,268.71,274.87,281.60,286.19,296.14,300.92,306.52,311.51,319.72, 326.79,335.28,338.48,345.95,350.96,361.20,367.70,370.48,379.67,384.39, 389.86,396.42,402.91,411.40,418.74,422.55,429.89,438.31,443.24,448.91, 454.00,462.69,468.77,473.80,481.76,490.15,494.98,502.16,507.01,512.79, 522.50,525.91,532.82,540.48,545.21,551.53,557.28,562.60,571.64,577.08, 583.98,589.74,598.92,603.86,610.84,613.07,621.31,629.91,635.53,642.60, 648.74,655.42,659.32,669.88,675.72,682.25,683.95,690.54,701.41,706.72, 709.45,720.41,725.09,733.53,737.71,741.34,751.02,757.29,763.50,769.57, 777.22,784.24,786.66,796.19,805.18,806.17,812.42,821.24,828.84,837.06, 840.68,846.84,853.65,862.65,867.44,870.66,876.73,887.13,896.52,896.02, 906.34,911.66,917.43,924.13,931.31,933.32,944.26,949.20,956.32,963.63, 965.01,973.80,982.08,990.91,996.92,999.23,1007.17,1016.68,1016.44,1030.52, 1031.80,1038.23,1045.41,1051.10,1059.77,1067.09,1074.73,1078.58,1083.50,1093.84, 1097.51,1102.06,1113.01,1119.36,1120.67,1132.86,1134.48,1142.16,1144.76,1157.85, 1160.61,1167.54,1172.64,1183.19,1187.48,1194.16,1203.59,1206.90,1214.66,1222.68, 1227.43,1229.48,1242.60,1243.79,1253.26,1255.93,1265.27,1271.69,1281.22,1282.63, 1295.79,1294.22,1303.94,1312.96,1312.22,1325.83,1326.20,1335.95,1344.75,1346.72, 1352.21,1362.45,1363.48,1373.09,1385.71,1387.52,1392.30,1399.42,1408.44,1411.05, 1418.33,1424.59,1432.64,1438.32,1443.57,1456.10,1453.57,1466.13,1473.10,1478.40, 1487.63,1485.54,1494.97,1504.88,1507.38,1516.28,1519.74,1528.86,1533.38,1539.94, 1549.64,1555.67,1554.32,1566.01,1570.40,1577.63,1590.18,1592.47,1596.20,1609.78, 1612.39,1613.14,1620.27,1634.71,1637.76,1644.36,1648.93,1658.99,1664.59,1671.90, 1675.59,1678.91,1688.87,1692.92,1699.60,1707.86,1713.89,1720.38,1725.77,1730.45, 1738.95,1742.91,1747.13,1760.15,1761.51,1769.05,1779.92,1779.27,1791.03,1793.11, 1803.73,1808.00,1814.99,1820.61,1831.65,1832.48,1846.12,1843.92,1858.55,1861.96, 1869.25,1877.09,1884.64,1887.65,1895.49,1902.80,1901.84,1913.23,1920.35,1926.03, 66.25,72.61,78.16,85.35,88.85,96.83,102.83,108.56,114.25,120.35, 126.49,133.45,139.53,144.91,151.67,157.17,162.84,168.76,175.32,180.97, 186.90,191.44,197.43,203.29,210.30,217.73,222.37,228.02,235.90,240.82, 246.99,255.66,260.25,266.27,271.99,280.70,283.25,288.70,296.23,303.39, 307.55,314.16,320.12,327.34,332.30,336.93,345.93,351.16,357.60,359.70, 367.63,374.99,381.37,386.40,392.20,400.75,403.79,413.39,416.06,423.08, 430.76,434.88,440.89,449.17,454.66,459.06,463.67,469.34,475.87,478.34, 488.41,493.43,502.66,508.79,516.01,521.57,528.24,532.12,540.51,543.64, 548.90,559.57,563.74,570.15,576.14,577.93,584.18,594.94,599.53,606.67, 610.16,620.25,620.76,625.65,630.44,642.36,646.27,652.92,661.77,665.62, 673.59,677.97,685.01,692.99,692.45,702.57,709.16,711.55,720.26,722.51, 731.38,737.96,746.42,749.54,758.71,759.85,767.58,775.02,780.72,785.97, 792.68,800.06,804.34,809.96,815.80,824.06,828.09,834.93,841.12,844.89, 854.98,861.21,864.63,871.84,873.92,882.50,890.69,895.48,900.50,906.27, 916.15,918.33,925.26,929.09,941.86,947.00,953.63,957.93,965.82,968.47, 970.32,981.36,986.46,996.19,1000.14,1007.84,1014.42,1016.11,1021.86,1033.66, 1036.45,1041.51,1048.07,1053.43,1056.32,1059.37,1068.59,1079.50,1083.95,1087.74, 1094.72,1099.48,1105.36,1113.96,1119.66,1126.41,1130.93,1138.54,1142.81,1153.47, 1158.76,1165.06,1169.19,1168.97,1180.49,1190.87,1195.31,1201.89,1205.34,1212.76, 1214.90,1222.78,1230.39,1231.98,1239.22,1247.20,1250.95,1260.04,1263.58,1270.31, 1274.92,1283.42,1288.05,1290.73,1300.71,1307.66,1310.11,1319.64,1325.01,1327.41, 1335.10,1347.01,1351.41,1357.68,1367.48,1367.91,1378.91,1380.52,1385.06,1394.43, 1396.80,1404.13,1416.24,1417.92,1418.45,1431.54,1435.00,1441.31,1444.91,1453.00, 1462.25,1465.68,1465.59,1478.40,1485.86,1484.89,1495.22,1496.51,1504.11,1518.06, 1519.52,1529.75,1535.72,1535.00,1542.20,1548.98,1556.22,1565.48,1568.97,1570.80, 1583.49,1586.11,1591.12,1600.03,1603.38,1610.30,1619.85,1622.30,1625.63,1641.76, 1641.60,1645.05,1652.24,1657.89,1664.87,1669.08,1675.95,1683.53,1685.70,1693.19, 1701.00,1708.85,1713.88,1717.39,1729.29,1735.21,1737.61,1745.40,1748.87,1752.62, 1760.76,1766.76,1773.33,1779.62,1789.19,1795.07,1796.87,1810.64,1808.12,1817.59, 63.42,68.49,72.82,78.83,85.38,90.65,97.27,99.55,108.00,114.09, 119.78,124.92,129.50,135.92,142.22,144.40,152.77,161.75,164.54,170.59, 175.68,181.12,186.85,194.54,198.44,203.82,210.02,214.59,219.84,225.43, 233.02,237.06,242.16,250.59,257.28,263.91,268.74,274.02,276.97,284.66, 291.90,297.08,300.91,305.07,311.16,319.81,323.50,327.73,334.59,337.57, 347.04,354.95,357.49,363.30,368.07,378.69,385.34,384.38,394.33,394.09, 403.90,411.12,412.81,420.19,424.10,433.41,434.99,446.69,449.57,459.36, 459.37,462.02,469.28,475.98,483.76,490.89,496.65,496.79,506.75,513.60, 519.56,523.80,531.92,533.56,537.90,545.01,550.57,557.17,564.61,569.45, 572.75,579.28,584.80,594.28,596.19,605.81,609.38,617.09,619.72,623.17, 628.42,635.55,643.50,649.62,653.55,659.28,668.30,672.41,675.92,682.69, 685.16,688.40,697.06,705.73,712.62,716.96,725.67,728.67,734.97,738.23, 746.60,755.19,757.10,764.81,769.20,772.10,779.36,785.02,795.77,803.54, 805.16,808.50,812.58,819.20,826.30,830.66,834.43,843.29,848.65,854.64, 859.90,859.68,869.98,878.80,882.33,885.87,891.31,893.86,907.12,913.48, 915.51,925.41,929.09,933.06,937.28,947.74,949.44,949.22,965.11,969.25, 973.86,977.95,987.65,990.34,998.34,1001.75,1010.01,1011.75,1018.32,1023.26, 1026.08,1040.17,1045.14,1044.93,1052.63,1058.18,1065.62,1071.71,1077.39,1086.43, 1087.14,1094.34,1098.28,1103.57,1111.25,1116.58,1124.94,1129.01,1132.01,1138.88, 1143.88,1150.31,1156.17,1161.93,1165.24,1176.36,1183.10,1180.79,1192.32,1196.67, 1202.48,1203.52,1216.12,1217.03,1227.72,1231.22,1233.36,1241.51,1247.25,1255.34, 1258.64,1271.05,1268.09,1279.02,1284.64,1286.56,1295.68,1300.73,1306.07,1315.73, 1313.31,1321.22,1327.58,1336.55,1337.27,1340.04,1351.89,1349.06,1354.18,1367.19, 1373.96,1382.36,1384.24,1386.01,1393.35,1401.54,1408.91,1411.62,1417.88,1421.41, 1430.03,1438.05,1438.05,1448.61,1450.09,1454.91,1466.85,1463.60,1472.70,1477.43, 1490.46,1494.64,1499.59,1503.78,1507.29,1518.49,1519.79,1527.22,1532.61,1536.92, 1541.74,1550.12,1558.13,1559.49,1569.43,1574.01,1578.44,1588.32,1595.78,1592.07, 1596.90,1603.66,1613.62,1617.56,1620.01,1630.07,1625.95,1644.21,1645.68,1648.38, 1661.42,1663.54,1664.45,1670.05,1678.96,1682.63,1694.81,1691.84,1703.69,1708.21, 59.24,63.67,68.33,74.11,80.50,84.29,89.34,96.37,102.55,106.40, 112.38,116.88,122.63,126.55,134.01,138.43,143.25,150.96,154.53,160.57, 166.55,170.53,174.29,180.97,185.67,190.97,199.13,204.13,209.87,212.48, 217.50,224.60,228.99,234.84,239.68,244.86,248.39,256.36,260.60,268.10, 273.51,277.71,282.93,287.23,293.36,300.59,304.59,308.61,316.92,321.58, 328.93,332.82,335.19,341.33,346.07,355.12,360.33,361.97,369.77,374.98, 377.78,385.44,389.73,392.83,405.60,407.66,409.92,413.01,420.12,427.23, 434.35,437.45,443.49,447.24,452.23,457.29,465.06,469.77,476.19,481.27, 487.12,491.05,494.34,508.40,507.25,512.74,520.87,524.10,529.88,538.40, 545.11,542.26,551.07,555.86,559.33,565.22,572.81,577.65,586.08,588.43, 591.80,598.24,605.10,610.53,616.92,620.91,627.21,633.44,638.85,643.10, 645.35,652.73,655.76,659.23,671.15,677.84,682.02,684.19,690.00,692.03, 700.62,707.25,710.47,719.59,724.08,723.92,735.83,734.95,742.60,746.81, 753.05,751.48,767.92,769.53,771.80,782.50,786.08,793.06,799.31,801.49, 804.89,815.01,816.97,823.04,824.78,835.99,841.16,842.21,850.30,856.40, 860.15,864.50,874.75,877.69,881.99,888.23,894.28,899.38,903.83,908.96, 914.83,916.77,926.23,930.40,938.21,938.43,948.93,951.83,955.02,969.09, 970.62,972.06,977.25,984.71,989.01,991.73,1001.93,1006.54,1012.78,1019.67, 1019.63,1030.66,1028.61,1038.83,1052.02,1050.22,1051.48,1059.82,1066.94,1065.72, 1071.66,1080.06,1083.77,1085.75,1091.89,1103.04,1108.59,1114.36,1118.48,1122.95, 1129.27,1134.09,1142.12,1140.87,1147.78,1151.57,1161.40,1167.77,1171.87,1176.97, 1182.83,1181.31,1190.25,1203.80,1202.65,1204.92,1215.60,1223.59,1225.83,1230.77, 1239.71,1238.22,1245.18,1253.29,1253.19,1260.54,1269.65,1279.07,1275.18,1280.66, 1291.04,1295.38,1297.99,1303.96,1310.79,1316.29,1317.03,1328.47,1331.28,1344.04, 1342.04,1342.96,1349.97,1362.55,1356.27,1365.84,1376.64,1378.07,1384.39,1394.23, 1396.46,1407.44,1409.25,1410.26,1417.46,1415.71,1430.70,1438.41,1442.24,1447.25, 1448.63,1452.83,1456.85,1467.28,1473.15,1476.21,1486.87,1486.87,1494.93,1497.40, 1500.75,1508.54,1510.90,1518.34,1525.84,1531.93,1533.00,1535.65,1543.06,1545.31, 1559.73,1561.91,1566.99,1566.57,1575.95,1581.91,1586.21,1592.86,1592.40,1599.78, 53.82,59.06,65.90,68.94,75.61,79.22,85.22,88.85,95.42,99.75, 103.37,108.02,115.68,120.14,124.32,130.78,134.19,140.14,144.56,152.20, 154.18,162.21,167.04,171.84,175.31,180.70,186.01,190.19,196.02,200.70, 204.83,208.89,215.09,220.72,226.16,233.56,234.90,239.00,245.19,248.65, 256.67,263.74,267.31,270.89,274.47,280.88,284.07,293.97,294.62,298.32, 307.43,309.15,316.08,318.79,325.87,330.72,336.15,340.41,343.51,353.64, 355.39,362.19,366.35,370.36,376.49,381.75,387.54,391.48,397.50,401.00, 406.25,409.59,414.46,418.52,423.36,432.97,436.39,440.99,442.63,450.89, 455.49,460.98,464.59,471.31,473.25,483.31,490.35,491.89,494.83,502.18, 502.96,512.95,514.43,521.13,527.56,528.53,536.45,541.78,547.81,549.34, 554.29,562.15,567.84,573.38,576.57,581.38,588.49,590.47,599.79,600.33, 600.25,610.78,619.81,622.93,629.08,630.80,638.17,640.55,645.72,654.48, 658.63,658.55,665.47,671.43,674.26,681.50,685.95,691.73,696.80,700.53, 704.15,714.36,717.60,723.36,726.90,729.74,741.34,744.38,743.55,756.20, 757.62,763.14,766.38,773.60,781.71,779.84,786.00,792.25,797.62,805.78, 809.18,815.26,816.78,823.70,824.42,831.95,840.09,845.53,848.14,851.27, 856.93,866.07,869.38,876.57,877.36,880.72,887.14,891.75,896.61,902.17, 910.72,915.38,911.55,922.05,933.44,931.72,934.76,942.11,949.85,952.80, 960.33,961.31,969.70,978.19,977.57,984.85,988.62,990.26,1001.14,1003.54, 1007.80,1010.26,1019.37,1032.90,1025.95,1037.70,1041.70,1047.69,1046.80,1052.79, 1055.77,1062.75,1066.74,1073.66,1076.34,1082.92,1088.05,1094.86,1104.67,1098.41, 1110.56,1111.10,1120.17,1123.11,1134.65,1132.39,1132.35,1139.62,1151.82,1149.45, 1152.75,1165.18,1165.50,1174.47,1177.98,1180.86,1188.98,1192.72,1196.61,1201.31, 1210.26,1213.53,1217.86,1227.20,1228.59,1229.27,1241.41,1249.55,1251.84,1259.30, 1254.81,1263.91,1269.20,1272.84,1280.61,1276.39,1287.18,1294.78,1295.93,1309.64, 1312.19,1313.05,1317.56,1325.86,1327.59,1336.43,1341.35,1337.19,1347.01,1351.32, 1362.97,1366.21,1364.04,1377.16,1379.68,1385.54,1388.86,1391.86,1403.49,1404.28, 1404.68,1419.40,1412.31,1418.00,1424.94,1427.43,1439.16,1445.17,1456.08,1451.54, 1463.25,1457.62,1469.26,1477.56,1478.54,1487.84,1481.87,1491.97,1498.26,1495.32, 52.94,56.44,60.28,64.05,70.24,75.98,79.63,83.77,87.43,94.73, 98.87,101.08,108.93,111.79,119.28,122.57,126.53,130.81,138.17,139.82, 145.85,149.05,154.10,159.35,163.72,166.87,171.64,177.57,181.36,189.86, 190.29,197.18,200.82,202.80,209.56,216.39,218.41,225.16,231.26,233.65, 237.63,246.01,250.52,254.81,261.15,263.40,266.23,273.15,277.69,282.42, 284.42,289.38,294.88,302.39,304.23,309.02,313.43,319.04,327.34,331.74, 334.44,340.81,341.66,343.21,355.10,356.31,360.06,370.09,373.64,374.30, 379.07,384.61,387.98,388.63,399.51,402.78,407.10,414.08,421.47,424.17, 425.78,432.81,435.93,441.13,444.33,451.91,455.02,460.06,464.83,466.96, 473.18,476.41,485.48,488.86,488.96,499.57,499.90,503.53,514.35,515.94, 520.54,525.98,528.87,534.78,539.29,545.66,549.24,554.67,555.29,563.26, 568.72,574.63,577.77,582.35,584.62,590.94,598.54,605.32,604.43,613.86, 611.31,615.36,624.17,628.74,633.74,645.04,645.14,653.59,649.76,656.82, 660.17,668.87,669.91,678.57,685.59,692.10,690.17,694.60,692.42,699.92, 705.65,719.25,722.51,726.79,726.62,730.33,735.18,741.10,745.29,751.60, 759.14,762.87,765.61,767.95,774.49,781.82,782.82,786.32,792.33,796.92, 801.87,804.04,811.35,813.13,821.76,828.15,825.76,833.54,838.29,844.11, 848.96,859.94,867.66,859.81,871.89,870.97,877.57,887.23,886.09,889.48, 902.32,903.39,910.69,917.44,912.72,921.82,918.47,925.89,939.28,934.16, 947.36,945.90,951.49,958.48,961.52,967.78,972.61,974.74,977.62,982.63, 981.11,988.41,1000.74,1004.74,1014.34,1016.48,1013.94,1026.75,1024.82,1034.14, 1035.38,1040.49,1041.88,1050.44,1054.95,1062.82,1068.19,1070.06,1070.22,1082.94, 1080.22,1090.66,1098.56,1097.56,1102.56,1108.68,1106.53,1115.65,1122.74,1126.67, 1137.19,1137.43,1138.62,1147.85,1151.15,1159.63,1162.63,1169.84,1169.28,1183.35, 1179.79,1189.95,1188.61,1187.42,1191.46,1200.11,1202.89,1204.15,1217.08,1219.50, 1225.34,1227.78,1239.08,1245.33,1242.18,1250.62,1254.38,1258.96,1256.92,1265.62, 1277.12,1278.13,1279.41,1284.75,1287.00,1293.07,1302.12,1304.80,1308.28,1317.65, 1327.13,1325.41,1332.97,1334.11,1334.63,1340.93,1351.69,1351.59,1355.44,1359.00, 1368.26,1368.03,1377.96,1380.63,1387.36,1393.50,1382.98,1395.36,1403.95,1402.44, 48.56,51.11,54.57,60.44,65.36,69.72,74.87,77.90,82.74,87.75, 90.96,96.73,97.46,106.68,109.21,112.35,122.08,122.00,128.66,130.71, 132.32,138.88,145.63,150.66,151.39,158.22,159.53,166.22,170.68,175.14, 179.34,181.33,188.99,189.87,198.70,200.13,208.20,212.72,214.52,217.04, 226.34,228.29,232.77,233.35,239.19,247.73,249.60,252.79,258.07,265.50, 273.63,271.01,274.23,281.44,284.35,288.65,296.86,297.55,303.17,301.12, 310.16,316.73,321.33,324.25,329.06,329.94,339.72,343.28,343.45,351.85, 353.29,361.18,361.82,368.91,371.98,377.53,381.01,386.21,387.98,394.14, 402.69,403.49,405.01,410.29,416.04,420.19,424.91,427.72,436.75,440.82, 439.93,451.45,449.50,453.12,456.91,469.16,471.39,470.08,475.98,480.46, 483.48,494.03,496.45,500.50,507.12,508.64,511.07,511.46,526.25,527.21, 526.69,536.13,537.93,544.32,545.81,552.00,554.49,559.89,569.10,571.77, 571.47,578.94,586.15,587.83,590.34,595.92,601.95,601.98,613.53,611.78, 616.80,624.04,626.76,630.98,637.16,640.71,643.63,643.79,650.01,656.98, 661.78,666.61,668.22,671.44,674.96,685.75,683.30,693.03,693.93,705.29, 706.92,711.31,717.28,719.75,723.36,733.37,736.74,735.97,743.85,749.69, 748.31,760.01,754.96,761.86,760.58,771.07,780.94,778.53,784.88,786.93, 793.98,795.49,798.42,805.96,812.88,814.57,821.36,823.80,826.38,838.28, 840.83,837.62,841.82,847.40,860.41,862.21,864.97,874.73,871.18,880.90, 883.28,884.11,892.42,891.02,893.88,903.60,907.99,912.74,915.85,919.90, 927.60,932.79,935.61,941.32,946.62,942.99,946.40,957.21,965.37,956.28, 974.92,975.77,981.60,985.10,987.63,985.31,991.27,1002.34,1007.40,1003.10, 1011.67,1015.08,1020.58,1017.80,1031.78,1032.51,1047.05,1051.17,1048.74,1060.50, 1059.55,1068.25,1063.18,1077.60,1080.97,1076.95,1080.66,1086.00,1089.23,1096.42, 1097.95,1106.77,1106.11,1111.69,1117.38,1120.55,1128.06,1134.21,1137.74,1144.54, 1141.86,1154.88,1157.40,1155.96,1160.26,1163.48,1172.98,1173.73,1168.87,1184.62, 1187.23,1192.52,1199.39,1200.04,1211.10,1211.78,1213.09,1214.07,1218.69,1229.34, 1223.83,1238.68,1239.95,1237.86,1259.32,1256.64,1263.39,1267.09,1268.43,1272.13, 1279.70,1275.86,1291.09,1287.11,1290.02,1296.21,1300.41,1305.22,1311.15,1321.17, 45.59,49.05,52.52,57.71,60.48,66.09,68.32,74.15,77.11,81.78, 85.21,88.44,92.19,99.03,101.89,106.98,109.02,114.32,119.06,122.38, 127.48,129.44,132.87,139.90,140.60,146.43,149.22,157.00,156.48,164.00, 167.19,170.22,174.08,178.80,183.67,187.25,192.81,192.43,198.02,203.95, 210.40,209.81,213.98,218.66,227.85,231.79,237.08,236.05,243.15,245.42, 253.28,256.13,260.24,263.61,268.79,271.50,275.72,277.95,281.05,285.14, 289.58,293.57,298.16,301.48,305.81,311.46,316.07,321.55,325.39,330.45, 332.67,336.25,341.13,343.47,345.81,349.67,354.07,363.05,363.61,368.49, 371.62,376.27,383.02,380.82,386.83,394.98,398.12,398.03,405.61,404.24, 411.11,416.75,417.41,425.69,433.35,433.65,439.65,441.13,446.91,448.50, 458.95,457.39,461.19,466.74,473.80,473.03,479.63,484.56,486.46,488.88, 490.72,502.99,507.44,508.18,513.66,516.55,519.17,528.41,530.10,533.79, 533.65,541.38,544.40,542.74,552.20,555.57,558.73,568.45,567.48,570.08, 573.42,581.61,582.54,588.75,592.30,598.44,602.58,603.90,610.24,609.48, 618.79,620.95,626.07,630.56,636.02,632.64,642.68,650.74,652.62,650.39, 663.58,665.71,665.67,670.24,673.28,678.16,685.95,687.88,694.05,693.60, 698.18,700.30,712.17,713.72,716.67,727.69,731.07,721.54,730.60,734.15, 740.78,745.02,749.39,750.90,753.84,756.19,764.80,765.83,768.59,778.12, 780.42,785.79,793.08,801.08,802.16,804.86,806.49,805.38,813.91,816.74, 825.27,824.71,830.44,830.99,837.34,845.65,846.87,850.85,853.20,860.71, 870.74,872.16,871.04,877.46,880.79,874.37,883.08,890.13,893.50,895.50, 901.34,911.64,915.35,916.43,922.00,925.06,925.96,927.95,935.03,942.52, 950.46,952.11,948.41,954.11,966.21,961.15,972.34,980.61,979.77,990.22, 989.19,989.59,988.99,1002.57,1001.21,1001.53,1010.69,1018.42,1019.57,1026.77, 1026.93,1027.99,1036.46,1032.46,1048.41,1045.83,1049.10,1051.93,1067.69,1056.12, 1064.86,1069.77,1080.33,1085.96,1085.11,1091.25,1094.80,1101.85,1104.25,1108.35, 1107.27,1115.45,1114.77,1123.21,1125.63,1134.75,1129.20,1138.81,1151.88,1141.48, 1159.01,1159.84,1159.43,1160.11,1164.28,1165.27,1176.36,1183.12,1187.63,1182.95, 1191.48,1203.86,1200.74,1201.57,1212.03,1207.11,1213.87,1225.92,1222.42,1231.95, 41.41,43.59,48.44,53.28,58.26,62.16,63.60,67.14,71.93,76.45, 79.72,85.26,88.63,92.06,93.09,96.27,104.89,107.00,109.63,115.20, 117.29,122.90,124.86,127.99,131.28,138.64,143.69,145.85,150.67,150.36, 156.66,157.39,165.07,167.11,172.10,176.34,178.22,185.52,186.43,190.17, 192.91,198.37,198.84,207.69,211.34,212.63,218.99,220.04,224.70,226.03, 234.26,237.96,239.82,241.40,248.26,252.21,256.93,260.08,260.15,265.61, 272.16,274.31,277.90,282.89,286.44,290.10,295.65,297.34,304.87,307.11, 305.15,311.05,318.30,315.14,319.69,331.08,330.42,330.43,340.31,345.54, 347.72,352.76,352.24,360.12,360.90,370.10,375.28,371.61,374.24,384.05, 387.04,387.64,392.15,398.95,402.09,404.50,406.74,410.97,418.66,423.58, 424.65,426.15,433.51,434.65,439.86,441.42,448.17,447.91,453.64,456.78, 461.03,468.54,466.65,470.13,477.09,483.81,484.42,482.27,492.40,497.82, 499.89,500.59,511.86,509.76,515.17,516.42,521.35,528.75,534.05,532.34, 542.05,545.30,544.76,544.52,557.61,558.66,567.69,563.55,571.30,574.62, 575.35,579.91,588.18,590.85,592.78,591.22,600.05,606.79,610.51,612.77, 611.38,615.53,616.34,623.44,624.05,634.76,638.80,647.43,641.44,651.40, 649.60,654.47,656.78,663.43,669.07,670.59,674.38,678.83,688.01,691.18, 693.83,697.36,693.66,702.21,704.17,714.12,713.56,719.35,723.02,722.01, 729.39,731.84,739.90,739.72,743.79,751.80,753.59,757.62,761.57,762.97, 763.78,770.91,771.80,782.99,779.58,785.03,789.34,789.95,795.43,806.84, 805.85,802.12,812.25,822.52,824.06,822.05,823.93,827.33,840.43,840.66, 843.34,840.05,843.76,849.62,862.28,861.52,863.14,867.46,869.97,877.51, 881.97,882.62,882.25,886.13,891.77,902.22,905.50,899.47,909.26,912.19, 922.25,917.96,929.32,928.12,938.34,940.11,943.97,950.03,945.21,958.05, 970.08,957.16,966.67,962.97,978.11,980.84,980.21,983.73,987.07,988.73, 996.04,1006.76,1002.01,1007.89,1013.13,1013.24,1020.96,1027.03,1033.47,1032.11, 1031.84,1036.98,1041.14,1047.85,1053.15,1053.67,1059.11,1058.18,1075.91,1069.05, 1072.88,1070.11,1083.62,1082.95,1087.25,1094.68,1094.41,1100.16,1100.27,1109.14, 1108.13,1113.97,1117.67,1113.20,1124.42,1131.12,1131.84,1138.19,1141.53,1153.11, 38.72,41.76,46.19,49.80,53.13,58.78,61.08,63.86,69.62,71.32, 73.24,79.62,81.56,85.60,89.27,92.29,99.59,100.23,104.40,106.73, 108.19,114.54,116.66,122.46,124.91,127.75,132.43,135.36,139.83,142.51, 145.66,149.04,150.21,154.96,159.53,161.98,166.83,170.56,173.51,182.96, 178.69,184.19,187.16,193.38,197.46,197.26,202.49,203.03,209.70,211.25, 217.75,221.90,225.34,227.68,233.09,236.34,236.19,239.62,243.87,249.13, 257.70,255.88,256.28,264.28,270.08,271.72,269.36,278.60,278.54,281.54, 286.86,288.82,294.58,295.21,302.41,303.72,308.90,312.18,318.22,317.41, 322.15,324.24,330.12,332.83,337.75,343.85,343.47,346.53,352.91,352.70, 356.78,361.15,369.00,372.56,372.38,376.03,383.57,382.11,386.54,387.67, 391.92,402.61,400.43,402.69,406.34,411.30,415.55,417.65,426.26,428.34, 427.49,435.33,436.42,440.76,441.29,446.76,449.03,451.88,458.65,461.37, 464.01,466.81,473.70,479.18,478.88,483.37,483.89,490.70,488.11,497.46, 498.94,503.63,507.87,512.84,517.88,517.49,519.40,522.64,529.87,535.39, 538.74,536.48,547.83,544.02,554.72,556.27,559.00,561.19,563.86,567.26, 573.05,578.02,582.44,588.16,584.20,586.99,586.14,592.63,606.34,606.45, 601.26,610.19,615.16,621.99,617.28,623.02,626.51,631.02,635.26,633.49, 640.78,650.19,651.13,653.87,657.11,662.44,660.72,660.65,669.45,674.35, 678.45,679.84,687.97,690.01,691.07,691.81,700.45,703.31,707.52,705.43, 711.67,720.31,721.12,730.89,732.55,730.76,730.65,738.19,741.22,741.92, 752.44,759.04,759.41,754.46,759.50,762.69,770.11,781.83,779.55,780.01, 787.09,791.03,792.34,796.86,799.78,804.90,805.56,808.79,818.71,818.35, 831.71,829.04,828.75,838.22,835.85,842.22,842.23,840.13,844.53,853.96, 854.81,860.00,860.75,867.84,872.18,877.85,880.57,880.94,882.92,887.40, 899.11,899.38,899.59,904.10,904.45,904.02,916.44,912.46,918.80,921.63, 931.10,929.44,932.20,940.34,940.55,948.00,950.05,952.85,952.99,955.14, 962.77,969.03,963.84,977.20,973.80,973.64,983.26,990.92,993.81,998.79, 1005.68,1008.17,1009.35,1008.90,1012.95,1023.61,1023.20,1032.35,1022.34,1036.73, 1038.95,1036.73,1041.20,1046.69,1044.36,1047.00,1060.18,1066.11,1056.78,1059.03, 36.63,39.76,43.32,45.85,49.02,53.67,54.96,58.47,61.96,64.21, 69.13,73.17,73.87,79.03,84.00,87.48,88.89,92.44,96.07,97.84, 104.48,106.01,111.72,112.56,116.54,117.72,119.89,127.73,126.60,130.69, 133.62,138.75,141.27,141.31,149.48,153.97,154.34,156.62,161.61,164.30, 170.02,170.89,177.42,180.72,181.07,185.18,185.74,190.12,194.94,196.55, 199.13,203.36,205.92,210.10,214.69,216.30,222.80,224.71,229.59,230.36, 234.21,237.80,240.67,244.80,246.97,252.44,253.01,258.94,262.00,264.34, 269.89,270.01,274.66,274.65,280.44,287.54,288.80,292.32,290.98,297.69, 301.35,300.53,307.27,308.65,313.63,312.87,318.90,324.60,328.51,328.65, 333.44,335.55,336.25,341.08,344.93,346.29,353.67,358.21,359.07,367.32, 370.90,368.91,371.99,373.23,375.32,378.77,383.72,390.93,392.87,395.19, 399.46,402.79,403.79,412.12,412.19,414.50,417.89,423.71,425.55,434.84, 432.89,434.34,439.87,442.59,441.00,450.81,451.01,456.95,463.08,464.41, 464.95,464.89,472.26,477.00,483.70,479.19,484.51,490.44,494.95,493.90, 496.67,505.75,510.03,509.35,511.60,514.56,517.88,520.98,522.00,529.22, 532.70,539.87,539.12,534.63,541.35,546.95,548.99,556.20,557.94,560.25, 564.10,566.26,568.55,575.15,580.11,580.24,588.18,588.69,592.88,592.09, 596.45,597.07,605.81,603.07,614.47,610.73,620.23,624.27,618.39,629.85, 629.58,638.88,640.80,640.41,640.69,646.30,647.04,654.84,657.32,661.04, 666.51,669.60,671.74,673.60,678.46,678.29,682.15,691.29,688.75,694.47, 696.64,697.68,699.24,707.18,707.41,714.21,719.05,721.16,731.15,723.56, 731.84,738.88,732.34,736.40,744.06,748.84,749.65,750.61,756.14,757.19, 767.30,762.61,766.38,768.24,776.41,776.81,783.97,779.42,791.07,795.16, 796.52,800.97,802.93,812.98,813.72,811.20,812.23,815.69,827.49,829.16, 824.26,834.65,837.95,841.53,838.47,846.46,853.19,851.44,853.51,859.17, 869.38,868.29,871.03,871.17,878.87,877.74,883.56,881.54,886.40,901.30, 892.73,897.85,900.31,901.18,905.83,914.91,916.99,919.77,917.59,916.67, 933.76,931.15,934.89,936.31,948.24,955.83,950.13,952.44,950.26,959.58, 965.00,960.88,973.57,968.81,970.78,983.99,979.41,987.11,982.60,991.37, 32.57,36.54,41.04,44.06,46.73,48.82,50.84,54.95,56.51,62.33, 63.05,67.34,70.82,74.44,76.50,79.46,82.23,86.03,89.54,91.44, 93.71,100.56,100.63,104.45,108.17,109.35,113.09,113.78,117.75,121.30, 123.78,128.10,130.10,132.87,140.32,143.82,142.98,146.53,150.95,153.47, 155.34,160.43,164.05,163.59,170.69,173.06,179.81,177.07,180.70,185.51, 187.39,190.89,190.90,197.89,202.01,201.06,203.76,210.79,209.12,214.13, 218.83,221.39,225.87,226.41,229.41,232.83,236.10,243.07,240.10,246.28, 246.45,253.44,253.97,252.72,257.85,262.90,264.10,274.33,270.62,275.28, 280.43,284.81,283.94,287.31,292.21,293.93,299.98,298.00,304.61,305.68, 310.65,311.59,317.10,317.76,327.54,327.49,328.96,331.59,334.32,337.22, 339.99,343.79,344.54,352.33,352.14,353.75,360.43,359.31,364.64,373.84, 370.03,373.55,377.16,386.86,383.18,388.28,392.34,393.47,394.89,397.46, 405.06,405.40,407.26,413.10,415.26,417.77,417.37,419.08,427.09,430.63, 432.20,431.98,437.96,440.24,444.94,445.55,449.35,458.84,454.72,463.16, 465.79,468.83,472.41,470.64,478.39,472.97,479.21,482.80,483.78,495.18, 496.45,495.21,495.87,506.29,510.77,513.67,516.76,511.50,521.06,523.64, 521.64,528.36,536.01,531.20,535.32,539.22,543.00,541.60,546.36,553.82, 557.61,558.32,555.87,565.48,560.32,572.12,575.65,579.48,578.96,587.27, 586.34,590.03,595.70,592.84,597.13,605.43,602.44,611.50,607.74,617.85, 615.76,616.42,623.70,623.97,637.92,633.41,635.92,635.36,645.49,653.13, 646.82,651.98,650.04,654.87,660.30,656.88,667.05,677.04,675.05,676.24, 680.64,677.64,686.34,687.12,692.21,690.21,695.40,702.49,698.73,704.02, 709.28,717.57,707.95,716.68,722.76,728.29,730.28,734.20,728.94,738.27, 742.86,741.95,756.76,750.84,752.00,753.46,756.30,760.60,761.92,768.87, 767.89,774.63,775.47,780.95,779.89,785.93,791.69,792.09,797.10,794.50, 800.16,802.36,811.31,813.45,809.04,818.72,817.21,823.53,823.21,825.04, 832.63,833.74,842.79,838.94,843.39,854.10,849.95,855.60,858.39,868.09, 865.35,868.50,875.42,870.14,880.28,879.00,891.40,884.88,881.45,888.22, 895.72,899.31,899.39,904.56,909.13,917.60,914.21,925.32,919.80,924.79, 29.80,32.97,36.98,39.19,43.41,44.21,46.23,50.62,56.27,55.20, 58.15,63.67,65.56,70.65,71.53,74.66,76.02,79.01,83.71,84.06, 89.00,90.56,93.99,95.00,98.90,104.95,103.25,108.44,109.11,113.32, 116.92,118.96,123.55,125.75,126.78,132.35,135.62,137.22,137.69,140.00, 145.07,148.75,149.20,154.90,156.03,161.71,162.33,165.24,166.01,168.78, 175.80,173.43,180.70,184.29,180.07,188.95,193.80,194.02,194.69,196.84, 200.90,203.53,208.53,210.66,213.23,218.52,215.07,221.68,229.59,226.10, 230.04,234.91,236.62,239.69,242.97,243.56,247.03,250.43,254.66,258.73, 255.75,262.11,266.03,268.09,272.50,274.41,278.67,281.05,282.46,283.52, 283.52,290.42,292.40,295.78,298.19,302.08,299.58,307.43,313.01,314.65, 312.80,317.20,325.38,324.12,325.65,328.25,331.46,331.83,341.78,342.45, 346.56,346.36,352.87,354.05,355.87,364.30,363.05,364.93,370.48,366.19, 376.74,380.44,381.65,376.74,381.54,394.09,392.53,397.38,396.73,402.91, 401.73,404.15,411.98,415.47,412.27,415.65,423.11,426.61,418.40,423.79, 422.37,430.47,437.01,438.82,438.27,441.30,451.07,444.49,455.80,458.25, 457.32,465.24,464.26,463.30,466.98,471.15,472.48,470.28,485.04,484.86, 488.83,485.14,488.78,499.32,493.90,505.47,499.68,510.22,510.36,512.84, 519.61,519.72,523.21,524.31,530.14,529.28,530.24,542.70,539.18,542.40, 546.06,547.75,552.14,553.11,550.53,558.92,561.31,565.24,566.46,573.68, 573.32,578.41,577.07,588.62,587.55,582.66,590.55,597.50,590.83,594.55, 601.09,603.55,608.00,606.90,618.10,619.49,616.46,623.18,622.12,627.50, 626.36,632.14,632.02,639.00,641.64,648.76,652.04,648.13,650.82,652.36, 655.60,656.40,666.52,664.52,662.33,678.85,674.01,675.69,678.32,692.17, 681.40,693.51,690.94,688.67,696.22,698.37,700.97,705.31,705.03,714.52, 720.05,715.04,715.80,726.43,726.50,730.00,728.35,740.20,734.74,747.74, 741.88,742.09,745.55,752.89,757.40,756.73,754.75,763.89,769.04,764.94, 772.13,771.40,778.67,787.33,787.28,796.23,787.38,796.22,792.76,800.63, 804.47,801.07,802.16,804.27,813.70,811.70,819.12,814.07,821.65,826.68, 832.36,830.13,829.49,839.97,845.81,838.97,843.62,853.35,853.59,855.06, 83.90,91.66,98.51,106.71,114.77,121.79,129.61,136.50,145.12,152.05, 159.76,167.11,176.43,181.18,188.75,198.64,204.80,212.75,221.50,227.14, 235.10,243.86,250.61,257.47,266.55,272.67,281.50,288.56,297.28,303.77, 313.61,318.61,327.33,335.25,341.73,349.46,356.55,364.32,369.26,378.47, 386.70,396.36,402.31,408.78,418.33,424.80,432.55,439.54,447.66,455.98, 462.59,472.57,479.60,486.70,492.23,501.37,508.35,516.86,522.56,533.35, 540.82,545.01,553.30,562.49,569.26,576.57,585.94,593.13,597.19,606.92, 614.34,622.32,628.08,637.54,643.96,654.64,661.55,668.44,675.47,681.83, 690.36,698.63,706.42,713.78,722.74,726.04,737.95,741.67,750.78,759.47, 767.86,773.30,781.57,790.29,798.29,804.75,813.12,818.45,827.71,832.73, 842.47,851.43,856.98,867.03,873.32,879.71,889.71,894.41,905.00,910.16, 920.16,927.78,934.39,942.20,949.38,955.76,963.49,972.34,980.72,989.54, 993.83,998.96,1010.47,1017.53,1023.47,1030.93,1040.41,1048.33,1056.85,1061.10, 1065.57,1075.95,1085.21,1092.25,1100.56,1106.71,1116.75,1123.99,1131.30,1141.14, 1146.62,1151.97,1162.91,1169.02,1177.85,1183.09,1191.63,1198.56,1208.16,1213.32, 1223.98,1229.20,1236.13,1243.96,1250.98,1257.08,1268.40,1273.84,1286.65,1287.72, 1299.57,1307.35,1315.77,1319.48,1327.10,1335.60,1342.67,1353.63,1357.86,1366.32, 1379.43,1379.02,1393.08,1395.29,1404.92,1411.00,1418.57,1429.08,1436.75,1443.07, 1451.56,1457.04,1466.38,1474.99,1477.42,1486.72,1497.22,1499.55,1511.51,1516.34, 1523.40,1534.74,1541.81,1549.50,1555.87,1564.49,1571.32,1578.41,1583.82,1596.17, 1600.42,1606.69,1616.66,1624.47,1631.07,1640.86,1649.56,1654.07,1661.82,1664.83, 1676.07,1683.25,1692.96,1701.56,1708.61,1719.47,1721.40,1731.97,1735.98,1744.66, 1750.24,1761.52,1766.65,1777.90,1781.46,1786.51,1801.41,1809.47,1815.91,1820.49, 1828.10,1837.55,1846.58,1851.67,1862.57,1866.11,1874.13,1881.25,1891.24,1898.84, 1907.01,1910.64,1923.34,1929.82,1936.40,1945.08,1951.96,1962.34,1960.79,1971.43, 1982.14,1989.01,1991.82,2006.79,2012.01,2019.15,2029.33,2033.13,2045.03,2046.55, 2059.22,2063.58,2076.62,2081.47,2088.21,2095.96,2101.26,2109.32,2114.14,2125.26, 2131.94,2139.14,2153.92,2155.84,2164.62,2169.48,2177.67,2184.89,2193.75,2201.45, 2206.34,2217.41,2227.72,2231.36,2237.63,2245.70,2254.58,2258.51,2269.56,2274.51, 80.06,87.21,95.16,100.94,109.18,117.42,123.12,131.03,139.10,144.79, 152.87,159.32,167.12,173.59,181.96,187.49,195.56,202.16,210.25,217.85, 225.61,231.82,239.55,247.12,254.41,259.84,266.82,277.51,283.10,288.56, 296.56,303.31,314.36,320.22,327.40,334.38,342.59,350.28,354.58,362.99, 368.88,375.25,383.48,390.11,398.52,406.20,413.99,419.06,427.83,435.88, 441.92,452.51,457.36,462.29,472.17,475.34,487.28,494.92,499.42,507.85, 514.90,521.15,530.45,535.61,542.30,548.53,558.90,564.21,573.25,580.20, 588.02,594.98,602.35,609.65,616.70,624.76,631.31,636.89,646.26,650.07, 659.49,666.70,673.52,681.48,686.77,697.12,704.79,708.58,716.67,723.34, 733.21,739.74,746.90,753.56,760.39,771.64,776.67,784.95,789.73,795.97, 806.20,810.88,822.32,826.63,834.51,840.03,848.21,858.04,863.56,872.74, 880.76,886.89,894.58,898.01,905.18,912.63,919.01,928.49,937.52,938.52, 950.71,957.15,964.89,971.86,980.78,988.19,994.41,1000.17,1007.84,1012.29, 1022.69,1030.58,1039.71,1043.95,1050.33,1060.24,1066.35,1073.53,1082.08,1084.60, 1097.26,1100.59,1109.25,1116.81,1124.70,1131.09,1136.03,1145.26,1151.10,1161.65, 1167.80,1173.35,1179.64,1187.17,1193.88,1203.31,1209.93,1215.70,1224.46,1235.44, 1243.05,1244.74,1251.94,1259.31,1269.28,1277.16,1284.70,1292.73,1295.16,1305.82, 1314.71,1317.29,1325.78,1331.45,1339.86,1349.59,1355.38,1362.54,1370.12,1375.54, 1386.04,1393.10,1399.54,1405.20,1413.26,1418.39,1425.54,1436.94,1445.09,1451.27, 1457.48,1464.85,1472.05,1477.60,1488.29,1495.01,1498.57,1506.91,1515.69,1525.98, 1528.71,1539.28,1546.55,1552.45,1558.88,1569.41,1575.89,1581.40,1588.58,1592.60, 1601.78,1609.69,1613.81,1621.81,1632.01,1638.74,1644.05,1647.59,1662.32,1668.34, 1676.67,1686.46,1690.07,1698.15,1701.30,1710.57,1718.21,1727.76,1735.46,1739.40, 1745.49,1749.74,1763.99,1770.68,1775.33,1781.42,1792.27,1792.95,1808.98,1814.29, 1822.96,1826.55,1835.89,1841.82,1849.62,1856.96,1865.47,1875.39,1876.11,1883.73, 1894.18,1900.08,1905.76,1910.27,1922.45,1931.48,1936.42,1945.07,1946.10,1957.29, 1963.33,1973.67,1979.47,1987.42,1991.95,2002.26,2009.75,2013.24,2027.63,2032.59, 2035.42,2039.45,2055.64,2055.65,2063.98,2072.21,2081.71,2091.70,2091.22,2106.80, 2113.23,2115.22,2122.78,2134.49,2136.30,2147.56,2153.66,2159.46,2164.57,2178.56, 77.14,82.23,90.44,95.78,104.65,109.71,116.21,124.47,131.98,136.43, 143.68,152.09,158.26,165.99,172.09,178.15,186.99,194.62,201.02,207.98, 215.14,221.54,227.08,235.00,241.82,247.93,256.30,262.79,268.39,277.83, 283.78,290.66,297.16,304.72,311.48,319.04,323.24,331.35,339.16,346.48, 353.23,358.90,365.61,374.82,380.78,385.09,394.34,401.15,408.41,415.24, 421.16,430.08,434.14,444.86,449.97,455.14,461.70,467.24,478.33,482.02, 490.58,497.04,504.38,511.85,519.85,524.80,533.36,540.44,545.53,551.62, 559.05,564.83,575.95,580.48,584.54,595.07,602.02,608.88,615.87,620.28, 627.83,637.49,641.79,649.72,656.85,661.92,670.06,676.12,682.80,690.26, 697.15,705.36,707.63,719.15,727.16,733.55,740.12,746.99,753.03,761.67, 769.44,776.08,781.08,788.89,794.40,799.42,807.50,811.56,823.44,829.35, 837.62,843.77,851.99,856.11,863.07,872.25,875.56,882.39,892.31,899.53, 904.83,913.02,921.57,927.30,932.27,939.86,942.18,955.56,961.82,967.51, 977.99,982.72,985.32,991.99,1003.40,1007.84,1016.31,1021.90,1034.95,1039.56, 1042.89,1051.55,1057.98,1065.94,1069.08,1079.21,1085.16,1092.46,1100.41,1104.33, 1111.55,1117.82,1126.24,1134.11,1142.21,1147.58,1155.57,1160.02,1168.17,1172.88, 1181.91,1187.26,1193.72,1206.54,1208.20,1214.83,1215.01,1230.66,1235.53,1241.85, 1250.92,1258.26,1265.66,1269.14,1279.13,1284.97,1290.57,1298.80,1305.88,1313.89, 1319.95,1330.10,1333.69,1337.09,1349.44,1354.37,1364.55,1367.22,1374.33,1381.74, 1390.78,1395.08,1402.90,1409.66,1420.03,1425.53,1431.92,1433.79,1443.89,1451.23, 1462.18,1463.09,1471.80,1480.74,1486.03,1490.78,1499.30,1504.25,1513.97,1523.22, 1529.95,1533.73,1539.06,1548.53,1557.62,1565.38,1567.78,1571.33,1583.64,1594.05, 1598.02,1600.34,1606.42,1618.40,1629.74,1631.33,1635.16,1642.99,1652.39,1652.21, 1665.85,1672.20,1676.75,1686.12,1693.55,1700.57,1705.44,1707.20,1717.58,1728.38, 1733.49,1744.16,1749.02,1756.93,1765.85,1768.06,1782.15,1784.44,1787.15,1793.82, 1800.64,1813.11,1819.81,1827.82,1836.47,1835.61,1851.46,1852.23,1863.26,1865.62, 1869.82,1879.15,1887.56,1895.45,1902.37,1911.78,1910.90,1917.85,1935.62,1931.27, 1941.12,1949.11,1951.83,1962.82,1971.15,1974.27,1986.83,1988.48,1994.78,2002.83, 2007.67,2018.58,2025.65,2028.69,2038.99,2047.84,2050.61,2059.11,2066.59,2074.15, 72.77,80.70,85.16,91.58,98.49,105.49,111.02,118.41,124.41,131.34, 137.93,144.02,152.91,158.05,165.26,171.15,175.97,184.08,190.19,197.35, 204.68,212.29,215.76,222.06,226.99,235.79,244.13,247.81,256.70,263.83, 270.31,276.16,284.69,287.93,293.82,301.15,308.28,316.25,322.77,328.44, 335.28,342.44,349.88,356.29,359.80,369.09,373.46,380.41,386.85,394.59, 399.60,407.41,416.04,422.97,428.02,434.55,441.48,447.64,449.76,459.98, 465.71,473.21,479.03,486.02,494.04,498.01,507.80,512.87,517.40,528.05, 531.71,536.96,547.24,551.94,561.20,563.37,569.71,575.20,585.88,589.98, 598.63,600.17,614.57,618.91,623.77,630.13,637.17,644.59,652.67,653.86, 663.19,670.34,674.80,683.27,688.15,696.65,704.89,709.80,717.21,723.12, 730.97,738.34,742.65,751.20,753.02,761.22,773.21,775.08,778.32,786.05, 795.68,798.74,808.12,814.76,822.43,826.37,837.24,838.61,852.30,852.99, 863.81,868.43,872.77,881.95,886.58,890.41,897.94,906.12,912.04,920.62, 927.11,930.96,939.37,949.15,954.61,960.28,967.20,973.16,981.47,987.68, 991.33,998.64,1002.51,1011.56,1016.39,1026.50,1029.92,1037.92,1042.28,1052.79, 1059.25,1065.33,1071.20,1079.58,1083.43,1089.02,1097.06,1106.97,1110.90,1120.74, 1121.65,1132.56,1138.92,1139.52,1150.12,1157.55,1168.37,1164.93,1170.18,1184.02, 1189.65,1193.84,1201.99,1214.30,1213.95,1221.97,1231.62,1235.40,1243.56,1248.75, 1258.26,1263.38,1266.27,1274.29,1281.58,1288.68,1294.08,1305.11,1308.27,1312.63, 1319.15,1326.30,1329.29,1346.40,1349.14,1354.18,1359.13,1368.63,1372.43,1378.93, 1390.86,1388.77,1396.58,1407.38,1417.79,1419.51,1421.39,1431.89,1442.74,1445.89, 1447.45,1457.22,1464.42,1471.08,1480.77,1485.31,1494.40,1501.63,1507.29,1515.79, 1517.31,1524.69,1533.53,1538.67,1546.37,1550.11,1558.43,1565.56,1568.85,1581.49, 1583.99,1591.11,1596.35,1604.59,1611.96,1622.45,1624.53,1628.23,1636.53,1644.55, 1645.60,1654.98,1662.11,1670.53,1675.26,1677.42,1688.32,1696.79,1705.70,1704.64, 1716.42,1723.81,1729.35,1738.52,1743.25,1748.56,1757.56,1759.29,1764.09,1775.15, 1774.02,1789.07,1792.77,1801.38,1809.92,1810.42,1824.37,1822.51,1841.55,1838.61, 1847.38,1852.94,1864.97,1867.24,1879.55,1881.39,1881.73,1891.77,1907.06,1906.79, 1914.29,1918.89,1924.29,1936.41,1942.53,1946.54,1951.69,1957.34,1961.81,1975.93, 68.81,76.11,80.44,88.42,92.61,101.70,104.24,112.22,118.23,125.68, 132.89,138.31,143.73,149.21,156.27,159.63,168.33,173.78,180.44,184.88, 194.56,200.95,206.31,211.77,219.03,227.34,232.19,238.02,241.27,249.12, 254.75,262.27,270.38,276.64,281.34,287.14,292.62,298.07,305.03,312.73, 317.49,322.77,330.38,336.84,342.31,347.18,355.54,361.93,368.35,374.89, 378.94,388.80,392.44,398.36,407.83,410.95,416.32,420.13,428.38,438.33, 441.74,449.96,460.66,459.75,467.60,474.35,482.43,483.74,492.93,499.57, 506.05,510.14,518.66,526.76,530.26,534.85,542.83,547.47,555.33,559.04, 566.56,575.49,581.46,586.86,587.55,600.25,600.83,612.39,618.55,623.11, 627.08,633.60,641.83,648.99,655.57,659.17,670.75,675.48,682.55,688.67, 687.53,696.31,703.12,710.63,721.29,726.52,728.06,732.83,741.48,747.23, 755.54,761.43,766.32,771.30,778.93,781.77,792.84,801.58,806.30,811.35, 813.33,822.66,827.06,837.66,842.79,854.27,857.00,860.25,870.12,877.07, 875.67,884.18,890.22,899.58,908.02,908.44,914.46,923.57,928.73,936.64, 942.79,949.94,950.45,960.66,966.87,972.32,981.37,988.41,992.39,1000.76, 1001.79,1012.39,1018.82,1026.45,1029.37,1041.62,1043.61,1046.11,1052.25,1063.02, 1065.11,1072.22,1083.77,1082.37,1094.15,1096.37,1107.43,1112.90,1115.82,1120.93, 1129.23,1134.84,1143.33,1151.21,1151.66,1159.10,1163.30,1180.00,1181.47,1186.65, 1191.47,1202.14,1208.01,1209.63,1219.15,1224.87,1233.78,1235.98,1242.64,1247.18, 1249.24,1260.02,1265.29,1273.40,1280.79,1287.25,1294.27,1301.71,1299.17,1314.28, 1320.91,1317.31,1331.15,1332.14,1341.36,1343.34,1352.42,1360.92,1366.53,1372.44, 1377.81,1381.79,1388.85,1398.22,1399.64,1408.09,1414.29,1425.50,1430.10,1434.85, 1442.14,1446.11,1457.75,1460.35,1466.24,1474.15,1481.33,1491.91,1489.71,1495.83, 1499.30,1509.99,1517.62,1523.87,1526.55,1537.63,1538.87,1543.19,1549.06,1556.75, 1564.82,1574.81,1575.36,1583.17,1588.73,1597.57,1605.36,1606.46,1614.18,1629.51, 1630.34,1633.64,1640.19,1648.55,1657.31,1654.42,1671.05,1678.31,1674.91,1681.06, 1690.79,1698.86,1701.93,1712.23,1713.26,1721.04,1724.60,1737.53,1740.56,1752.76, 1765.90,1760.12,1765.17,1776.18,1775.09,1787.01,1789.94,1798.54,1808.18,1808.67, 1820.67,1821.51,1825.74,1836.98,1839.98,1848.33,1850.12,1862.42,1868.57,1868.82, 65.32,71.07,75.80,84.10,90.09,95.15,101.84,104.81,112.40,117.74, 125.15,130.58,136.56,141.78,148.37,154.15,158.67,165.11,171.51,177.91, 183.77,190.27,195.58,201.27,208.12,209.76,219.50,225.30,228.73,235.63, 240.66,248.86,255.42,259.81,267.85,273.01,276.87,285.48,289.81,294.88, 301.90,308.35,316.76,320.01,324.57,329.80,336.40,342.90,349.12,354.35, 361.38,367.97,373.23,377.80,382.74,389.96,397.72,401.68,408.98,415.04, 418.84,427.13,429.22,437.26,446.67,447.61,454.26,463.20,466.78,472.15, 473.70,483.96,492.63,493.33,503.82,506.52,514.98,519.96,525.74,535.62, 540.69,542.82,549.01,556.08,561.76,566.21,573.76,576.50,580.85,593.61, 596.18,606.60,605.10,611.94,622.83,629.78,633.61,639.33,645.29,653.27, 657.51,662.04,668.12,675.26,679.97,689.01,697.37,696.15,703.87,713.49, 714.19,721.96,726.73,736.27,741.23,744.76,748.81,757.72,764.91,768.76, 773.13,779.16,786.42,793.91,799.37,803.43,810.99,814.41,824.19,833.12, 835.23,841.19,848.61,853.20,856.79,862.28,868.68,877.04,882.29,891.15, 895.19,901.27,909.91,910.14,916.26,925.17,928.10,936.24,940.83,947.26, 950.97,960.92,962.39,968.85,973.64,979.32,992.47,992.87,1000.12,1004.25, 1009.51,1021.15,1025.62,1032.35,1037.71,1044.35,1044.59,1051.18,1058.56,1070.23, 1073.24,1072.67,1079.63,1084.86,1095.43,1102.44,1105.21,1110.50,1111.17,1123.70, 1130.99,1136.02,1142.32,1146.97,1151.90,1166.94,1163.31,1178.22,1177.74,1185.49, 1192.53,1189.95,1199.73,1202.02,1212.96,1220.08,1226.88,1227.96,1240.53,1241.18, 1247.59,1251.68,1258.50,1265.73,1268.06,1272.98,1287.76,1286.78,1296.52,1302.60, 1305.83,1311.32,1315.20,1322.56,1330.09,1340.04,1339.59,1348.93,1351.14,1358.12, 1364.42,1376.59,1375.57,1385.89,1388.95,1394.35,1406.49,1404.14,1410.07,1420.52, 1430.17,1435.77,1437.10,1447.26,1447.17,1458.45,1457.99,1462.98,1475.80,1480.04, 1484.75,1495.97,1495.35,1500.97,1504.47,1512.62,1516.61,1524.53,1532.77,1539.63, 1548.42,1552.76,1558.44,1556.61,1567.98,1580.19,1577.42,1592.56,1588.89,1595.68, 1603.92,1610.27,1617.97,1626.74,1624.07,1632.81,1641.67,1646.76,1648.70,1660.05, 1666.95,1669.46,1673.98,1679.39,1682.49,1691.74,1692.81,1702.36,1706.46,1716.18, 1720.79,1723.77,1731.92,1732.44,1739.04,1750.66,1757.93,1762.50,1769.96,1778.40, 62.00,67.32,73.18,78.91,84.47,90.37,95.05,101.26,105.23,111.21, 117.64,124.10,128.60,134.51,138.24,145.24,150.29,156.11,161.85,167.44, 170.96,178.67,183.59,189.73,193.21,201.96,207.54,212.27,220.58,225.11, 229.88,233.53,239.53,245.41,253.28,260.85,265.35,267.65,276.96,279.56, 285.58,290.13,296.88,304.01,306.79,312.79,317.71,322.11,331.61,334.61, 342.67,345.68,354.44,358.77,363.26,371.22,374.58,379.93,385.67,393.21, 394.32,401.29,410.51,414.79,418.59,426.80,429.76,438.66,442.29,449.44, 455.14,456.93,464.37,472.04,476.48,480.30,488.27,494.04,497.18,502.30, 508.73,513.96,523.82,527.15,530.55,537.97,540.54,551.63,554.98,557.82, 561.69,571.22,579.80,583.39,588.29,591.60,601.43,605.12,611.74,616.33, 620.28,627.06,631.51,636.38,641.16,648.91,659.44,661.75,669.11,666.46, 674.88,681.46,685.53,693.52,701.35,705.58,709.35,718.65,723.52,734.91, 733.90,738.79,744.22,750.29,756.07,762.31,766.26,769.84,777.16,786.14, 787.87,791.84,802.41,806.65,807.74,814.17,823.12,829.34,828.71,839.43, 846.39,850.95,857.10,866.60,868.27,869.86,877.20,882.92,891.48,892.94, 897.29,908.59,911.23,922.61,923.37,928.40,934.50,942.29,941.15,949.52, 956.63,960.02,969.75,971.45,982.17,983.67,995.08,995.04,1001.53,1009.84, 1016.22,1020.83,1026.75,1032.46,1033.66,1040.03,1048.78,1052.63,1058.05,1068.42, 1072.15,1073.91,1083.87,1084.30,1092.20,1097.39,1101.28,1108.94,1113.37,1114.60, 1129.75,1128.96,1131.71,1146.69,1140.71,1153.77,1160.80,1163.25,1171.27,1174.28, 1185.41,1187.77,1188.84,1197.44,1199.80,1206.15,1218.22,1224.58,1225.57,1232.70, 1231.13,1241.57,1250.07,1250.71,1264.53,1264.26,1270.58,1274.29,1279.90,1288.66, 1305.19,1300.64,1306.65,1312.89,1308.85,1324.41,1324.22,1333.94,1334.20,1342.19, 1347.94,1356.75,1360.17,1362.23,1371.59,1381.00,1384.41,1388.45,1392.46,1398.02, 1403.59,1409.83,1420.80,1421.84,1425.75,1433.50,1434.34,1440.69,1450.57,1456.67, 1466.70,1465.98,1466.17,1477.07,1482.97,1483.71,1494.63,1497.40,1503.30,1502.86, 1523.52,1522.64,1524.71,1529.89,1543.48,1546.79,1549.65,1556.07,1564.17,1565.70, 1572.66,1580.62,1589.56,1590.63,1599.04,1601.08,1608.40,1615.62,1613.36,1622.05, 1633.05,1631.13,1638.40,1639.13,1652.86,1657.90,1662.62,1676.10,1676.77,1674.35, 57.42,63.03,69.12,74.77,81.37,84.34,88.83,94.10,100.79,105.75, 111.48,117.07,123.08,126.24,132.92,137.49,141.59,147.60,153.78,159.20, 164.47,171.18,175.84,179.96,185.60,188.25,195.27,204.58,205.72,211.01, 218.24,222.46,226.76,229.62,239.74,242.39,250.54,256.33,260.78,264.05, 269.75,273.65,280.20,285.23,290.70,295.45,300.43,308.67,309.71,318.92, 323.03,326.54,335.53,339.40,343.31,348.31,353.05,357.80,365.11,367.87, 373.53,380.27,384.62,392.72,395.56,402.54,402.97,411.48,415.77,427.18, 427.78,433.05,439.93,443.63,444.02,457.67,459.95,466.68,470.29,473.10, 480.25,490.48,489.30,497.50,500.18,510.48,508.78,517.44,521.50,525.01, 536.70,538.62,538.76,547.24,553.51,562.94,570.90,570.36,573.68,583.06, 589.04,592.24,598.40,601.36,606.81,611.30,620.47,627.97,629.64,635.30, 639.23,646.21,647.59,653.53,660.74,666.11,669.57,681.12,678.76,689.00, 692.73,695.44,697.06,707.17,715.45,720.79,723.69,727.39,734.30,744.36, 745.12,748.17,756.28,760.39,764.54,773.25,776.03,780.20,790.98,792.32, 800.47,803.08,812.88,816.90,816.91,825.55,834.04,836.28,838.81,848.55, 853.30,859.54,863.10,867.25,871.94,874.45,885.93,889.09,898.51,898.52, 902.43,909.26,914.51,913.59,920.11,932.33,935.90,940.45,947.97,955.07, 957.72,965.00,967.79,978.81,982.64,986.37,994.73,994.07,999.39,1008.33, 1006.44,1013.76,1021.01,1030.88,1037.42,1043.71,1039.34,1045.14,1051.77,1054.79, 1067.03,1068.48,1079.62,1079.18,1085.39,1089.15,1097.41,1097.44,1104.47,1109.30, 1118.81,1118.94,1127.63,1130.37,1135.61,1139.26,1143.28,1153.31,1159.09,1167.73, 1165.37,1179.68,1189.24,1185.85,1190.49,1194.38,1203.10,1206.69,1210.80,1215.82, 1222.25,1226.20,1229.81,1233.73,1246.34,1244.98,1254.98,1255.19,1264.41,1265.53, 1270.92,1281.68,1290.75,1290.86,1292.02,1297.91,1306.11,1306.91,1317.55,1313.86, 1330.89,1333.19,1334.95,1344.47,1349.96,1354.73,1356.62,1366.49,1366.79,1372.08, 1378.31,1387.15,1383.60,1400.08,1399.12,1406.70,1415.32,1416.32,1420.81,1427.44, 1430.92,1440.25,1450.76,1448.92,1449.94,1464.85,1461.92,1466.44,1475.94,1481.17, 1492.56,1496.28,1498.17,1498.46,1505.85,1512.04,1518.99,1519.27,1528.23,1533.88, 1542.06,1541.61,1552.18,1555.08,1554.30,1565.42,1572.67,1575.19,1583.97,1580.08, 54.80,58.40,65.93,71.26,74.04,79.69,84.51,89.13,95.45,101.00, 105.31,108.94,115.36,119.46,124.13,132.12,133.64,141.06,143.42,151.08, 156.72,160.63,163.66,168.73,176.35,179.18,185.49,190.50,195.94,198.57, 204.96,210.24,215.71,218.53,224.25,226.94,234.72,239.25,245.17,248.06, 254.22,259.45,260.80,268.25,275.25,278.37,283.81,286.46,295.82,299.89, 304.14,310.61,314.46,319.46,324.94,327.83,334.70,340.37,345.31,347.33, 354.80,362.30,365.80,367.95,374.38,378.28,380.75,389.17,393.99,398.34, 406.21,410.51,417.28,419.50,424.29,432.01,437.10,440.33,441.83,445.51, 456.31,460.44,462.21,465.53,471.58,478.85,483.05,485.12,490.10,498.70, 504.10,511.48,515.72,524.40,523.54,528.31,533.45,540.08,540.45,548.02, 552.71,556.04,562.40,566.93,575.96,579.38,583.81,592.18,594.83,599.17, 606.82,609.57,610.49,619.16,621.10,629.63,635.67,642.61,648.74,643.70, 651.43,660.29,665.12,666.11,675.73,676.25,685.56,685.54,700.14,698.18, 702.30,707.00,709.37,719.77,716.17,729.43,731.10,736.98,741.50,752.99, 750.59,756.15,763.75,766.28,773.41,778.43,778.89,786.54,790.21,799.50, 805.52,810.19,816.10,813.80,827.29,825.49,836.47,833.41,842.23,855.11, 852.46,852.93,865.08,862.26,875.16,877.64,886.82,886.00,886.55,900.38, 903.73,902.90,918.47,917.58,918.66,928.14,932.21,932.31,947.08,945.32, 951.95,955.15,959.83,975.65,973.32,979.82,974.40,986.15,991.98,994.43, 1002.71,1005.23,1013.35,1012.62,1018.43,1029.85,1037.63,1037.91,1046.11,1043.49, 1053.82,1060.46,1065.11,1066.43,1077.45,1077.27,1074.08,1086.97,1093.74,1097.77, 1104.68,1103.51,1113.06,1114.44,1122.19,1125.96,1135.15,1135.92,1147.44,1149.71, 1151.78,1149.14,1166.67,1167.19,1176.84,1177.35,1184.75,1180.47,1191.18,1192.11, 1210.35,1209.20,1219.54,1216.68,1224.51,1227.92,1223.38,1237.78,1242.35,1241.41, 1251.34,1255.40,1259.13,1266.79,1265.75,1276.49,1285.06,1287.86,1295.54,1301.49, 1304.93,1310.81,1310.44,1319.69,1317.38,1319.45,1338.44,1330.83,1340.15,1347.84, 1353.88,1357.24,1360.89,1367.89,1370.21,1378.72,1386.85,1388.72,1390.94,1395.04, 1402.47,1405.88,1419.52,1423.49,1421.99,1429.72,1426.75,1432.81,1442.54,1446.11, 1451.82,1463.28,1465.06,1465.72,1469.80,1479.39,1480.70,1487.66,1485.26,1496.34, 52.36,58.70,60.19,66.30,71.28,75.10,81.01,84.37,87.25,93.43, 99.40,101.69,109.25,113.86,117.06,122.72,127.49,133.76,135.56,142.57, 145.71,151.17,155.36,162.37,163.47,166.60,174.39,179.29,185.85,188.58, 193.26,199.10,201.73,207.54,210.56,218.38,218.44,221.76,230.46,234.10, 239.47,246.28,249.98,252.88,259.95,262.49,266.59,273.48,276.16,283.94, 287.06,293.35,299.56,299.06,306.08,309.36,315.58,319.53,322.98,324.32, 329.94,340.11,338.81,349.55,353.91,356.22,364.00,369.14,368.45,375.00, 381.16,385.93,389.59,391.50,398.04,405.85,407.37,417.35,414.78,424.81, 425.15,436.02,440.01,438.00,442.38,450.90,455.55,459.10,462.98,470.06, 477.73,478.13,481.08,488.36,496.37,494.31,501.13,505.91,513.26,513.36, 521.13,528.69,531.32,537.88,543.20,543.27,554.60,553.34,563.75,564.95, 569.14,571.67,574.16,575.02,589.27,595.35,596.95,604.30,603.94,612.98, 615.29,620.77,629.88,626.51,634.50,640.29,647.53,647.98,653.17,654.80, 657.94,671.16,672.99,673.71,679.91,686.27,694.33,696.78,690.45,699.96, 713.40,716.77,715.53,717.57,721.82,730.33,734.60,746.38,752.36,749.48, 761.09,760.61,766.99,773.59,773.27,781.74,785.39,790.74,793.62,794.39, 801.68,805.01,810.80,821.38,816.37,826.52,833.20,838.37,842.86,852.20, 850.84,856.18,858.72,867.05,873.47,877.57,875.16,883.04,889.12,896.00, 899.21,900.23,906.91,904.34,918.89,927.30,927.86,928.93,939.04,942.46, 943.46,950.31,956.16,959.79,966.69,970.59,974.82,976.35,987.33,987.21, 993.39,998.29,1003.61,1009.40,1009.90,1012.15,1022.42,1019.94,1031.73,1034.10, 1037.73,1038.29,1047.52,1055.66,1058.62,1062.56,1066.61,1070.57,1076.21,1083.94, 1082.41,1091.77,1089.12,1095.66,1096.58,1105.38,1113.90,1121.22,1120.54,1124.59, 1131.83,1138.85,1139.99,1145.52,1153.79,1156.72,1159.16,1154.13,1171.92,1170.96, 1177.97,1189.14,1189.28,1194.67,1203.76,1204.34,1204.80,1210.53,1217.89,1221.96, 1220.80,1226.85,1239.63,1239.88,1250.31,1240.70,1264.77,1264.32,1263.77,1274.56, 1275.27,1285.94,1286.56,1286.55,1287.99,1300.48,1309.49,1303.50,1310.53,1321.18, 1322.56,1328.80,1332.45,1336.53,1338.49,1345.50,1347.02,1355.78,1362.19,1362.46, 1369.03,1374.58,1380.53,1381.99,1388.01,1397.21,1402.94,1404.92,1405.10,1408.12, 48.23,53.92,57.20,62.66,67.91,72.91,75.05,80.42,84.26,88.56, 92.91,96.51,100.30,104.96,109.59,113.48,120.06,122.10,132.28,134.99, 137.50,142.11,146.22,152.47,151.97,159.91,165.98,168.96,172.00,175.89, 180.58,184.67,191.18,194.94,200.77,201.96,207.94,212.80,215.01,220.40, 223.39,232.28,232.91,237.21,243.24,248.44,248.74,259.96,262.00,262.56, 271.41,275.34,278.38,280.94,286.77,294.03,294.85,300.75,304.76,310.71, 315.95,320.71,320.90,329.22,329.98,336.29,344.40,343.14,349.38,352.87, 360.51,361.39,367.04,371.76,374.48,383.12,385.96,386.89,396.39,400.87, 404.76,411.14,413.74,416.05,426.87,428.08,431.14,433.39,432.15,441.18, 445.88,454.53,457.06,458.85,462.37,465.49,478.36,478.62,481.50,490.68, 496.66,499.12,502.07,509.81,504.86,514.04,518.91,525.76,531.20,534.13, 532.86,539.78,544.41,544.38,553.25,558.61,563.44,563.11,566.63,571.62, 577.64,584.21,591.45,590.25,596.33,604.87,607.00,611.90,614.75,620.28, 623.55,624.74,629.56,638.55,637.79,642.55,651.23,653.96,660.04,661.11, 668.23,669.55,678.62,681.35,694.15,693.50,703.73,698.87,696.81,703.22, 712.99,712.45,721.62,734.74,726.85,734.12,742.16,743.09,748.82,745.95, 761.43,762.86,768.79,771.83,776.66,785.36,782.34,783.73,790.80,799.82, 799.65,814.89,806.95,814.18,814.83,821.74,831.69,830.67,839.84,840.96, 850.26,849.58,854.67,861.46,863.16,865.75,865.45,876.19,881.92,885.26, 888.42,897.26,893.10,902.54,911.60,907.52,917.79,919.93,917.32,931.91, 930.59,934.56,936.01,949.58,957.69,954.24,964.82,969.25,969.91,976.02, 977.41,983.52,985.82,991.54,991.41,1001.80,1007.57,1011.54,1009.59,1018.53, 1023.34,1023.83,1034.22,1040.97,1039.39,1049.42,1047.85,1050.75,1055.35,1062.84, 1065.91,1075.67,1074.52,1077.23,1086.95,1088.98,1085.47,1096.02,1097.02,1111.49, 1111.15,1113.21,1129.67,1127.38,1136.60,1129.21,1139.68,1154.27,1148.00,1154.95, 1150.46,1157.60,1167.21,1167.81,1173.07,1173.75,1186.73,1186.73,1192.53,1188.99, 1200.67,1200.31,1206.94,1211.49,1215.04,1224.19,1220.92,1226.96,1236.93,1241.21, 1242.07,1250.59,1251.57,1253.17,1257.01,1261.07,1262.05,1266.53,1276.65,1284.21, 1293.35,1289.33,1295.85,1297.26,1300.10,1311.61,1318.21,1320.32,1317.86,1325.01, 44.50,50.29,54.49,59.82,63.78,64.53,71.00,72.73,79.42,84.86, 88.14,90.17,95.72,102.56,101.65,106.65,113.94,115.55,121.12,124.85, 127.75,132.73,139.02,141.69,144.95,148.49,152.23,156.24,164.14,166.08, 172.68,175.56,178.65,188.15,188.93,193.69,196.32,199.43,204.56,207.64, 209.72,216.44,218.93,225.38,228.58,230.38,237.66,243.18,245.27,248.88, 254.48,260.65,259.20,264.87,273.18,271.93,278.96,285.25,284.51,291.22, 293.37,301.98,302.04,308.12,311.73,316.51,319.59,323.64,327.65,330.69, 335.75,342.09,350.16,349.49,356.91,358.57,357.20,368.49,371.07,373.48, 377.26,379.04,385.94,392.36,394.61,394.75,403.29,407.61,410.91,415.48, 424.68,422.25,431.20,432.09,437.18,442.46,440.93,442.60,449.13,458.22, 461.03,461.85,469.68,472.91,483.18,482.45,489.86,488.85,493.93,498.62, 503.91,509.06,508.64,517.94,514.69,522.62,531.72,537.14,540.45,543.04, 541.92,550.59,551.71,558.95,564.04,564.24,568.98,574.93,577.79,583.71, 583.40,591.49,594.13,600.03,601.16,612.90,614.16,618.66,620.02,626.23, 620.11,633.72,633.98,640.72,648.55,651.89,652.87,660.77,666.89,672.15, 675.77,678.16,678.87,682.35,687.66,693.08,697.87,699.43,703.97,712.54, 713.83,712.26,722.59,724.46,732.10,731.83,735.52,737.27,747.87,753.28, 751.51,757.91,759.80,765.83,772.52,773.07,777.71,784.00,785.12,788.66, 790.46,797.91,802.03,807.48,817.25,816.69,816.07,831.52,829.07,831.86, 833.22,837.85,843.08,841.58,860.88,857.13,858.73,864.55,862.75,872.08, 877.95,880.94,881.99,884.03,892.61,899.91,903.04,904.97,909.67,914.93, 919.65,926.54,924.44,941.14,938.48,940.92,942.32,945.22,953.59,957.33, 958.15,964.17,966.81,974.85,981.27,983.68,989.68,990.60,997.36,1000.65, 1000.93,1010.07,1016.89,1023.93,1020.05,1024.66,1032.02,1029.40,1033.16,1029.23, 1038.71,1047.86,1050.88,1051.41,1059.62,1062.65,1070.03,1067.45,1077.86,1075.21, 1084.22,1085.95,1093.07,1102.72,1101.46,1101.19,1109.95,1112.46,1120.27,1131.98, 1123.17,1135.54,1136.27,1142.13,1142.30,1149.66,1152.21,1162.10,1154.78,1168.88, 1168.47,1179.04,1166.73,1183.19,1181.99,1186.91,1193.53,1194.66,1207.14,1210.01, 1213.77,1216.89,1219.85,1226.21,1222.51,1231.37,1239.48,1239.00,1252.49,1249.71, 42.69,46.11,51.06,54.30,57.79,63.60,68.06,72.40,75.50,77.71, 83.11,86.99,89.71,92.02,97.00,102.28,103.82,107.62,112.87,117.96, 119.92,124.16,128.44,132.79,137.45,141.07,142.01,148.42,149.19,159.07, 159.23,166.17,170.10,174.37,174.04,181.69,184.34,185.54,190.43,190.56, 199.38,206.53,205.90,209.45,216.93,221.36,223.30,228.38,230.94,234.17, 235.72,241.37,246.51,251.01,251.61,259.84,263.21,260.65,268.65,274.73, 279.92,279.61,282.89,291.09,293.24,295.56,301.65,306.76,310.18,311.43, 316.51,319.44,326.25,326.76,334.87,334.33,339.31,346.41,348.63,354.36, 355.70,362.16,361.49,367.08,367.30,374.50,378.93,381.10,391.60,390.80, 396.16,400.60,405.38,406.92,413.30,416.75,414.86,422.61,427.34,428.03, 437.65,435.98,442.66,447.21,453.00,458.58,461.81,457.20,462.55,466.92, 470.31,476.55,480.52,484.47,487.90,497.93,495.34,501.05,504.14,508.94, 510.17,514.74,518.90,527.21,526.32,531.73,542.75,537.78,541.48,548.82, 549.30,560.13,563.93,564.36,571.25,567.24,573.03,579.93,576.71,584.69, 590.65,594.88,595.55,594.78,607.63,608.80,610.90,617.90,620.69,627.56, 625.67,635.35,635.68,640.92,639.36,647.05,657.49,654.88,662.29,658.81, 665.68,671.62,675.00,678.07,684.17,686.96,688.70,692.66,697.68,699.57, 710.03,713.10,713.90,723.87,720.99,727.57,733.16,732.16,739.17,746.23, 747.06,749.55,751.63,761.47,763.84,769.39,769.83,773.67,777.32,777.39, 788.09,790.78,797.19,795.76,798.45,803.09,809.35,808.80,813.80,821.58, 832.59,832.78,827.35,835.26,845.16,843.75,847.95,859.66,851.78,861.26, 862.12,870.50,877.37,876.00,874.81,888.02,889.00,890.96,897.78,907.38, 896.66,902.43,908.94,916.06,926.22,924.45,920.47,929.68,931.35,932.38, 942.93,946.57,946.06,954.26,963.05,967.90,966.59,967.65,973.29,971.42, 981.71,975.79,996.50,990.70,997.36,1003.77,1002.06,1010.01,1013.98,1015.25, 1024.59,1022.59,1025.87,1033.79,1036.05,1041.93,1048.64,1047.99,1053.48,1047.83, 1060.51,1066.45,1073.49,1071.61,1066.99,1082.88,1076.98,1092.53,1091.69,1094.69, 1094.83,1098.26,1110.80,1103.23,1110.03,1110.08,1122.04,1121.42,1126.32,1133.02, 1133.65,1143.05,1148.78,1147.83,1149.09,1156.07,1162.66,1162.90,1173.08,1177.02, 39.71,45.15,48.29,52.58,55.05,58.25,63.92,66.55,69.12,73.16, 77.79,81.76,85.14,86.94,92.87,93.54,100.30,101.63,104.51,109.17, 114.94,117.74,121.40,123.68,129.81,130.12,137.42,142.78,142.69,143.44, 150.25,156.55,156.16,161.02,162.11,168.33,174.90,173.93,179.90,186.06, 188.10,190.64,198.55,200.73,201.76,200.53,210.27,214.12,212.79,222.16, 226.60,228.13,231.88,233.14,239.07,242.72,247.87,251.35,250.81,255.78, 258.64,262.31,269.81,271.05,275.05,283.63,279.86,284.03,291.14,294.13, 295.30,301.98,305.53,304.39,312.23,316.13,314.61,323.29,325.84,331.25, 334.98,338.24,341.72,347.76,351.80,353.02,355.06,355.42,361.14,365.12, 374.53,376.58,380.65,379.83,389.19,385.58,389.26,395.20,401.08,402.68, 403.83,405.89,415.32,423.09,421.71,425.15,425.74,438.64,435.56,439.76, 443.20,448.86,449.50,453.79,459.58,464.62,467.78,472.53,474.11,479.03, 482.02,480.86,492.25,493.87,494.27,506.08,500.39,506.17,511.34,513.66, 517.51,519.30,522.01,529.43,533.76,536.47,546.19,539.81,547.63,551.64, 553.56,555.00,563.13,568.52,563.26,573.12,574.50,580.16,584.58,586.45, 590.80,599.32,598.68,606.33,601.20,612.59,611.98,616.98,619.93,620.23, 625.33,630.83,629.95,636.89,645.99,645.27,650.33,652.49,664.02,656.09, 664.91,666.08,673.50,674.97,677.82,682.59,683.70,693.95,696.02,702.74, 699.23,708.66,705.59,709.74,721.33,717.59,715.04,725.96,728.88,728.97, 732.26,746.11,742.35,746.61,748.65,759.23,754.55,764.91,764.73,766.55, 775.28,774.23,781.01,785.68,787.80,787.62,800.64,793.54,802.00,806.92, 811.01,815.64,814.23,823.71,823.89,828.65,829.04,840.42,842.64,851.11, 846.23,853.11,858.79,863.60,864.01,865.38,874.74,872.03,879.80,878.89, 886.11,884.25,883.69,899.49,901.68,892.64,913.14,913.99,912.72,918.73, 919.99,926.72,928.94,928.15,936.39,936.95,938.21,951.72,956.05,957.59, 956.12,962.96,964.47,971.26,970.80,978.17,978.95,985.89,981.94,994.52, 994.26,1001.67,999.16,1012.81,1014.25,1011.37,1014.42,1020.97,1023.55,1031.43, 1023.39,1035.63,1035.12,1041.41,1047.22,1051.21,1048.51,1053.97,1058.37,1058.14, 1068.97,1067.17,1075.89,1076.04,1076.72,1084.26,1080.79,1090.04,1090.34,1103.81, 38.39,41.17,45.09,46.95,49.66,54.85,56.53,63.51,65.06,67.55, 72.12,74.36,80.42,83.83,84.75,89.42,92.56,96.81,100.41,102.58, 105.70,109.53,113.51,116.99,120.43,121.65,125.11,127.46,132.15,137.99, 141.95,144.35,145.79,150.16,155.56,156.69,161.77,164.52,169.41,173.34, 174.58,179.28,183.09,187.64,186.78,191.61,193.14,199.60,208.72,208.75, 206.91,210.58,214.25,219.95,223.08,226.80,230.09,235.26,236.07,242.79, 246.67,249.81,253.45,253.15,257.19,263.39,263.18,267.87,270.25,272.03, 274.60,283.35,282.85,292.80,291.61,292.01,296.41,301.79,307.03,309.93, 311.87,315.06,318.30,321.11,324.23,331.75,331.89,341.54,344.86,344.74, 347.20,355.41,353.33,360.74,361.39,363.17,372.14,369.16,372.52,378.63, 382.32,380.35,388.94,393.32,398.93,405.77,400.48,406.95,408.43,411.06, 414.10,421.37,422.60,432.23,430.26,431.25,436.16,440.37,444.60,436.96, 449.51,457.40,455.56,456.72,469.26,470.03,469.68,471.97,479.92,476.81, 476.97,488.04,488.08,496.14,499.06,506.34,506.75,507.62,512.87,518.69, 518.89,522.61,524.96,529.93,531.22,539.52,539.61,545.41,547.16,550.71, 551.87,558.51,561.96,563.98,566.72,568.39,571.06,573.54,581.90,583.86, 590.23,593.57,594.57,600.79,603.14,603.03,609.27,613.68,618.94,620.73, 621.09,631.60,626.79,632.34,635.48,637.21,643.04,647.01,651.76,651.51, 660.67,659.75,663.34,665.49,671.38,676.59,673.98,678.69,680.10,683.52, 688.57,694.97,698.94,701.16,701.57,703.57,713.67,721.12,718.55,722.69, 720.38,732.91,730.15,733.09,737.72,737.70,743.33,751.23,754.20,749.75, 760.54,767.11,766.15,769.08,769.26,785.84,776.96,782.28,785.03,796.13, 791.07,793.61,807.33,804.04,810.68,820.57,820.97,814.61,823.98,822.24, 833.35,835.06,838.13,834.83,841.54,843.99,845.85,849.92,860.17,866.18, 857.34,874.05,870.44,869.32,877.03,880.94,889.72,885.60,882.84,895.11, 895.88,907.47,897.38,907.77,905.75,909.83,915.53,914.23,921.69,936.81, 932.06,935.39,936.73,946.20,945.09,944.46,949.34,963.81,958.10,966.72, 960.80,981.89,966.02,967.98,985.24,988.46,990.03,987.45,991.35,989.58, 1009.85,1005.10,1008.76,1009.59,1008.11,1019.53,1013.67,1027.63,1033.90,1027.23, 89.56,97.78,105.24,112.76,120.78,129.73,138.14,145.61,153.91,160.70, 169.26,177.05,183.57,192.76,202.54,208.68,217.66,225.15,233.22,241.24, 248.24,257.75,266.27,273.86,281.04,289.34,296.03,303.91,312.37,320.57, 327.29,336.96,345.18,353.77,360.69,368.31,378.20,385.22,394.67,399.46, 410.41,418.13,423.28,434.43,441.29,449.01,456.91,465.57,471.18,479.52, 491.28,497.75,505.31,513.11,519.63,528.63,537.54,544.63,553.13,559.41, 568.93,576.42,585.28,593.30,600.16,609.62,617.69,625.81,634.06,640.99, 647.41,656.34,665.18,671.14,679.74,689.19,697.59,705.31,713.25,722.70, 727.88,736.62,743.60,752.64,763.94,768.42,777.00,781.22,793.20,801.75, 808.98,815.50,824.03,832.09,841.40,848.14,856.19,863.37,870.80,882.38, 888.39,896.88,904.77,914.07,916.43,928.08,935.64,945.26,950.85,962.35, 972.63,976.71,985.45,993.22,999.13,1009.74,1017.90,1024.03,1034.45,1041.12, 1047.59,1058.77,1063.21,1070.59,1082.28,1088.31,1097.29,1104.49,1113.96,1120.02, 1127.81,1135.79,1145.41,1152.48,1162.25,1167.15,1174.99,1183.23,1189.67,1198.26, 1205.56,1217.56,1223.96,1235.53,1240.16,1246.26,1258.17,1264.08,1274.10,1275.43, 1289.80,1295.90,1304.74,1315.90,1319.64,1326.58,1338.16,1344.98,1353.14,1357.56, 1369.35,1373.43,1382.89,1393.18,1400.51,1408.36,1417.47,1425.38,1432.79,1439.46, 1446.01,1456.66,1466.51,1470.80,1479.06,1487.46,1496.71,1505.24,1511.35,1522.26, 1528.80,1538.33,1542.43,1552.65,1562.03,1569.06,1575.20,1578.58,1595.28,1600.91, 1608.19,1618.79,1621.90,1631.29,1638.53,1647.82,1653.44,1665.42,1669.89,1679.75, 1686.35,1696.21,1701.79,1712.07,1722.16,1726.18,1735.37,1743.90,1751.45,1760.33, 1765.44,1777.30,1781.87,1788.21,1800.34,1811.41,1815.66,1827.12,1833.89,1838.64, 1849.46,1852.01,1861.22,1872.79,1878.84,1890.32,1898.66,1906.10,1912.73,1922.59, 1929.64,1934.53,1946.41,1955.31,1959.78,1967.19,1975.16,1985.84,1990.99,1998.95, 2006.64,2014.52,2022.07,2030.66,2039.26,2047.14,2054.11,2060.25,2070.46,2081.14, 2089.12,2091.20,2106.29,2113.02,2119.65,2132.09,2137.37,2141.86,2154.07,2159.73, 2166.58,2173.40,2187.82,2193.54,2197.19,2203.84,2213.58,2224.66,2228.00,2242.65, 2246.30,2255.42,2261.80,2269.74,2280.62,2289.14,2293.84,2305.18,2310.47,2319.64, 2327.27,2336.51,2338.18,2350.86,2355.75,2369.83,2375.16,2382.94,2390.75,2399.39, 87.15,94.49,100.99,109.15,116.34,124.61,131.78,137.98,146.37,154.24, 162.54,170.70,178.65,186.38,193.36,201.09,208.43,215.79,224.06,232.11, 239.59,247.11,255.09,263.07,272.10,277.94,286.11,293.75,301.45,310.69, 315.93,324.99,332.88,340.10,345.20,356.42,362.44,369.90,379.37,386.63, 395.50,401.95,409.59,415.57,424.47,431.24,440.43,447.55,453.99,463.46, 470.25,478.92,485.78,494.31,500.84,508.01,516.49,524.70,532.86,539.48, 546.98,554.20,562.55,570.58,578.01,585.92,594.42,601.50,610.47,616.71, 624.85,634.57,640.94,645.22,653.65,662.38,669.81,677.30,685.78,693.20, 701.14,711.14,717.00,723.82,734.28,743.93,746.80,755.33,764.53,770.53, 779.35,786.62,795.42,803.52,808.33,819.33,824.78,836.00,838.60,848.20, 854.55,866.15,869.67,877.68,885.38,893.03,903.63,910.89,917.98,923.56, 930.22,940.59,945.12,956.21,963.94,971.11,977.77,987.58,996.32,1000.61, 1010.83,1019.64,1024.93,1036.27,1042.34,1045.12,1056.61,1064.18,1072.74,1077.65, 1086.57,1093.58,1100.60,1108.03,1117.04,1126.19,1134.61,1142.09,1145.85,1156.69, 1165.51,1172.60,1175.24,1188.07,1193.02,1198.85,1213.17,1217.06,1226.41,1230.73, 1238.92,1243.56,1258.22,1266.54,1272.40,1278.61,1286.30,1293.93,1303.53,1312.24, 1317.37,1323.93,1333.81,1340.03,1348.61,1352.48,1362.76,1371.74,1378.80,1390.77, 1394.66,1401.48,1408.15,1417.23,1424.51,1431.87,1438.84,1446.96,1458.29,1466.54, 1470.06,1479.82,1486.23,1493.57,1502.25,1505.64,1518.31,1522.42,1531.36,1542.05, 1546.92,1554.25,1562.56,1571.21,1580.66,1585.29,1595.38,1604.05,1609.03,1621.70, 1628.83,1631.09,1640.59,1650.20,1655.61,1668.71,1671.45,1682.55,1687.66,1694.50, 1702.95,1710.69,1715.85,1728.08,1734.22,1740.83,1750.39,1754.85,1765.97,1774.52, 1779.58,1786.83,1797.77,1801.40,1811.15,1817.72,1825.90,1829.22,1840.64,1849.46, 1862.08,1862.62,1871.00,1879.32,1886.99,1894.86,1898.32,1907.04,1919.39,1927.61, 1935.63,1942.00,1947.46,1958.39,1963.40,1972.28,1976.31,1989.64,1992.43,2002.64, 2011.40,2017.08,2022.71,2034.03,2042.32,2045.84,2054.59,2065.42,2068.58,2079.23, 2084.63,2094.07,2106.77,2110.89,2116.01,2122.98,2132.65,2142.26,2153.12,2155.55, 2159.38,2170.36,2181.48,2192.59,2193.96,2204.68,2211.46,2217.68,2227.51,2235.09, 2240.91,2247.51,2257.39,2263.03,2273.90,2283.91,2282.84,2293.93,2304.58,2311.15, 81.41,90.77,97.35,104.89,110.75,118.83,127.04,134.04,140.95,148.87, 156.17,163.24,170.01,179.18,186.58,193.43,200.33,207.99,215.82,223.69, 230.17,239.22,246.37,253.16,259.87,267.33,273.31,282.94,287.50,295.99, 305.43,311.16,318.43,328.28,335.56,341.42,347.46,356.37,362.55,371.51, 381.36,387.46,393.75,398.50,407.97,416.63,419.52,429.86,437.75,443.79, 453.61,458.59,466.17,476.27,480.64,488.76,499.70,503.27,509.31,519.76, 525.19,532.58,541.18,546.00,558.27,565.76,570.98,577.67,586.64,592.21, 596.83,609.82,613.76,622.79,629.52,636.98,645.29,653.90,657.35,665.66, 675.27,682.49,690.98,695.80,701.64,712.02,717.22,727.63,734.84,739.25, 745.23,754.25,761.00,771.63,777.37,785.21,796.38,800.26,805.24,814.01, 823.02,831.79,833.59,844.58,850.54,858.60,863.77,875.79,880.37,893.09, 895.38,902.32,909.40,917.09,922.74,933.72,937.79,948.17,951.55,961.59, 972.87,979.14,984.59,991.69,1000.47,1009.22,1014.09,1023.09,1029.09,1034.90, 1043.36,1052.00,1058.39,1065.32,1076.84,1083.38,1091.07,1095.50,1102.32,1112.27, 1119.47,1124.07,1130.65,1139.81,1144.33,1153.83,1162.90,1169.18,1175.70,1185.78, 1188.76,1195.77,1205.22,1216.04,1219.30,1224.65,1239.53,1239.96,1250.90,1260.37, 1265.90,1272.92,1278.22,1289.45,1292.27,1304.45,1308.08,1315.75,1323.00,1333.63, 1341.90,1345.15,1356.05,1363.63,1370.08,1378.50,1385.90,1392.96,1399.36,1406.86, 1415.00,1421.17,1431.32,1440.49,1440.97,1446.37,1458.48,1466.74,1472.26,1477.87, 1487.83,1491.69,1501.93,1511.70,1519.15,1523.58,1533.29,1536.69,1545.09,1554.16, 1560.46,1569.34,1574.44,1584.63,1591.49,1596.06,1605.96,1613.36,1620.95,1633.83, 1632.64,1642.66,1648.77,1656.71,1666.31,1669.90,1682.91,1686.03,1698.13,1701.08, 1713.44,1717.31,1723.65,1734.00,1739.41,1747.31,1755.82,1763.22,1770.11,1779.46, 1785.03,1788.27,1800.92,1807.64,1809.88,1817.77,1826.71,1841.82,1843.40,1855.05, 1852.25,1870.39,1865.73,1879.41,1887.71,1889.68,1901.29,1912.50,1911.59,1921.12, 1929.21,1933.63,1948.74,1954.76,1963.58,1969.59,1981.10,1984.79,1990.92,1998.89, 2008.49,2010.28,2018.44,2029.65,2034.37,2046.76,2048.01,2054.17,2064.77,2074.87, 2078.21,2082.70,2096.12,2103.02,2108.40,2114.92,2124.87,2123.97,2137.26,2146.29, 2154.44,2157.87,2169.17,2177.51,2185.86,2187.14,2199.18,2197.57,2217.61,2216.38, 80.39,85.75,94.34,100.62,107.78,113.96,120.66,129.59,136.14,142.54, 149.93,157.15,163.92,170.52,178.29,185.56,192.29,201.83,206.91,213.93, 220.03,226.13,235.64,241.68,249.65,257.25,263.48,271.61,277.65,285.62, 291.12,298.51,306.80,312.11,322.73,327.65,337.07,343.03,348.66,355.35, 364.25,369.09,377.07,385.37,389.81,395.56,405.19,413.51,417.65,426.96, 432.00,441.23,446.07,455.34,463.07,469.58,478.47,484.20,490.12,498.19, 503.45,512.29,521.21,527.32,532.02,539.21,549.73,555.45,559.84,569.39, 579.97,582.02,592.26,596.64,605.79,608.82,617.28,626.38,629.14,637.50, 647.66,652.29,659.38,668.15,673.96,681.95,689.21,696.88,700.04,707.13, 718.31,723.21,731.21,743.11,748.60,752.57,759.54,770.35,777.39,784.76, 788.88,795.33,801.48,810.32,816.91,823.04,831.18,835.89,843.61,854.04, 862.51,866.42,873.03,878.62,888.65,895.91,902.91,905.25,918.79,924.29, 928.94,938.94,946.54,950.14,959.98,967.62,970.32,979.74,985.85,993.23, 1002.29,1009.69,1016.20,1022.50,1027.59,1037.64,1043.22,1049.81,1053.42,1064.86, 1073.43,1080.23,1084.61,1093.79,1101.76,1109.11,1114.46,1123.49,1128.29,1138.77, 1143.67,1146.47,1159.64,1164.14,1173.31,1177.51,1189.49,1199.62,1201.58,1204.41, 1212.97,1222.16,1229.33,1238.70,1242.47,1251.76,1254.79,1261.08,1271.26,1279.22, 1278.31,1291.08,1302.55,1310.50,1307.44,1316.40,1326.06,1335.03,1342.81,1343.60, 1354.99,1360.34,1369.28,1376.86,1383.48,1391.22,1397.32,1406.73,1413.08,1418.43, 1428.67,1435.42,1439.08,1449.56,1455.49,1462.45,1468.76,1474.10,1483.53,1491.68, 1497.25,1502.99,1516.25,1519.45,1529.73,1529.99,1537.06,1546.14,1559.20,1564.04, 1569.62,1576.99,1581.40,1586.48,1602.82,1606.22,1609.07,1624.15,1624.76,1630.95, 1641.14,1645.22,1656.02,1661.87,1669.24,1678.61,1680.52,1690.43,1699.61,1704.58, 1713.52,1720.14,1730.06,1734.15,1737.65,1746.27,1757.90,1760.74,1767.11,1774.84, 1780.13,1790.61,1794.92,1802.11,1811.83,1820.18,1823.04,1834.30,1840.37,1849.57, 1853.95,1863.14,1863.80,1873.94,1876.82,1893.13,1894.12,1903.80,1909.91,1919.60, 1921.66,1934.77,1937.45,1944.11,1951.25,1958.13,1961.69,1978.84,1976.33,1988.41, 1994.57,1998.88,2007.35,2013.50,2027.88,2028.28,2039.45,2047.18,2056.13,2057.84, 2068.18,2068.04,2083.88,2092.12,2092.54,2098.52,2105.90,2111.27,2122.06,2136.28, 75.78,83.16,88.77,96.98,103.07,110.23,117.06,123.93,128.38,136.54, 143.78,150.27,156.78,164.05,170.13,179.33,183.26,191.77,198.07,205.43, 210.58,218.13,226.71,231.28,238.72,246.52,251.26,259.75,266.13,271.75, 278.81,285.32,293.61,298.54,308.09,313.27,320.41,325.30,334.18,341.54, 348.00,353.18,361.10,366.89,371.50,381.64,387.05,396.71,400.52,408.93, 413.73,424.89,429.36,434.84,441.14,447.13,456.35,461.20,466.80,476.50, 485.17,487.77,495.33,501.27,510.28,517.72,522.44,529.75,536.07,545.92, 550.37,556.79,563.77,570.04,578.75,584.99,596.19,599.18,608.49,609.37, 616.90,626.85,629.01,639.39,646.10,652.37,660.44,668.85,672.50,682.12, 688.09,693.18,700.05,707.08,718.28,719.98,727.26,735.59,740.62,746.87, 755.59,758.87,772.35,775.48,781.99,788.01,793.93,804.39,809.31,816.62, 823.84,831.34,837.09,843.05,850.69,856.33,863.40,876.73,876.46,884.27, 890.07,900.44,902.09,911.98,917.92,923.75,931.28,941.12,942.10,950.65, 953.46,970.93,971.28,980.20,986.59,989.55,998.01,1003.36,1014.01,1025.27, 1025.18,1037.69,1038.37,1046.26,1055.18,1061.51,1066.57,1072.01,1083.18,1090.03, 1091.99,1099.18,1108.93,1110.48,1121.00,1129.52,1138.31,1140.67,1149.94,1157.38, 1165.94,1174.16,1173.69,1181.39,1189.02,1201.63,1200.14,1210.57,1214.33,1226.78, 1232.19,1239.30,1245.23,1253.24,1259.86,1268.54,1266.82,1274.94,1286.09,1290.09, 1299.77,1307.17,1311.47,1319.14,1331.11,1332.30,1343.08,1340.20,1352.26,1356.14, 1366.93,1378.52,1377.73,1385.14,1395.75,1398.79,1404.82,1416.02,1422.62,1426.69, 1435.20,1439.05,1450.50,1453.45,1462.43,1469.00,1472.11,1485.85,1485.73,1496.96, 1504.57,1510.14,1516.21,1521.00,1527.73,1537.55,1545.94,1551.07,1556.55,1562.74, 1573.05,1575.53,1587.13,1588.27,1599.09,1610.14,1609.41,1617.80,1630.12,1632.45, 1639.59,1644.14,1655.58,1660.88,1666.07,1671.24,1677.44,1682.48,1689.50,1700.38, 1706.28,1710.12,1718.74,1722.77,1739.58,1736.82,1745.91,1747.59,1762.42,1760.62, 1779.10,1771.68,1783.95,1790.34,1800.77,1808.01,1812.97,1825.77,1829.94,1835.88, 1843.01,1851.38,1847.18,1864.07,1868.76,1874.91,1887.54,1888.81,1893.18,1902.59, 1912.61,1915.77,1923.54,1931.46,1938.06,1942.54,1955.05,1951.37,1966.72,1978.60, 1972.88,1990.03,1992.23,1992.45,2004.92,2017.13,2021.62,2024.61,2035.01,2039.01, 71.37,78.09,84.44,91.59,99.37,105.29,111.44,116.17,126.08,130.54, 137.45,143.02,151.73,156.88,161.83,169.88,178.47,184.11,188.79,196.14, 202.96,207.90,213.77,222.32,227.41,234.40,242.29,249.00,254.47,259.95, 268.36,274.82,280.48,285.57,293.32,298.50,307.07,310.15,320.05,326.31, 333.84,338.22,346.94,349.65,358.18,359.97,371.96,377.44,383.95,391.65, 399.66,406.15,410.00,418.67,417.80,428.02,436.13,444.82,447.48,454.24, 457.60,468.36,476.06,481.87,487.30,496.99,500.12,502.82,512.25,522.38, 524.71,532.77,541.86,551.39,549.34,559.83,564.62,569.19,578.90,587.09, 587.54,598.89,605.51,611.08,621.98,625.61,630.66,636.56,643.02,650.31, 657.61,664.98,671.51,678.43,682.65,691.99,695.31,702.91,706.87,713.15, 724.55,727.03,735.68,735.81,749.07,754.62,763.20,770.42,774.93,780.43, 788.18,795.79,799.81,808.32,810.51,818.45,823.40,830.67,840.90,848.33, 856.49,861.18,867.33,871.21,876.34,884.85,886.66,891.94,907.22,909.77, 916.75,923.12,933.23,942.29,946.43,949.95,952.74,960.53,969.09,972.30, 981.49,989.22,993.23,1000.59,1008.06,1015.20,1020.19,1029.58,1035.43,1040.75, 1047.74,1054.51,1056.13,1064.03,1071.28,1075.60,1089.98,1092.07,1097.62,1109.30, 1117.61,1120.73,1122.90,1130.18,1136.14,1147.24,1151.01,1158.40,1164.88,1164.31, 1170.49,1184.02,1188.21,1196.08,1203.32,1208.59,1212.31,1221.44,1228.21,1233.55, 1240.93,1242.40,1250.48,1262.48,1265.53,1278.82,1284.64,1284.22,1290.32,1306.22, 1309.17,1313.84,1320.60,1327.30,1335.73,1336.96,1344.67,1351.03,1359.14,1368.97, 1374.64,1382.37,1387.82,1389.23,1395.45,1404.41,1408.29,1415.96,1423.60,1430.79, 1435.70,1444.78,1453.13,1452.59,1457.10,1468.21,1470.82,1484.13,1484.99,1494.90, 1500.75,1510.69,1517.30,1520.62,1527.72,1534.64,1540.93,1552.27,1548.40,1564.58, 1569.41,1568.66,1575.07,1583.41,1589.91,1592.81,1605.18,1615.81,1616.02,1629.56, 1628.66,1636.88,1649.02,1648.16,1651.61,1663.09,1672.35,1674.25,1687.87,1691.24, 1693.47,1704.67,1707.59,1715.22,1721.30,1727.21,1737.52,1744.16,1747.97,1751.95, 1762.09,1763.60,1777.64,1782.07,1786.59,1799.68,1800.55,1803.90,1816.97,1824.53, 1824.38,1835.82,1838.71,1844.48,1850.47,1855.71,1866.47,1875.35,1877.26,1883.68, 1890.71,1900.32,1903.82,1905.53,1919.46,1920.38,1930.56,1938.77,1945.05,1946.76, 68.18,74.23,82.05,86.97,93.47,100.58,104.41,112.67,118.30,124.63, 131.50,137.37,143.57,151.32,153.68,161.44,168.47,174.32,182.13,186.57, 194.16,198.84,204.49,211.90,217.69,221.27,230.88,236.41,241.87,248.06, 254.89,263.35,266.30,274.45,279.38,286.27,289.76,298.13,306.23,311.91, 318.36,325.19,328.97,335.00,342.28,348.69,355.29,362.24,365.18,374.93, 378.80,384.39,392.44,396.87,406.56,410.24,418.68,422.90,428.66,435.76, 440.81,448.68,452.95,457.37,466.24,473.93,477.64,486.62,489.50,498.08, 503.01,512.02,515.03,521.55,527.16,535.88,534.42,546.68,549.02,560.35, 565.53,569.49,576.00,583.88,587.41,601.00,604.76,607.27,617.43,619.93, 628.00,637.27,644.02,647.77,652.50,659.29,665.74,670.13,679.03,681.72, 690.73,698.59,702.11,704.12,716.03,723.15,727.09,730.67,738.83,748.34, 756.50,758.51,766.37,768.37,775.06,787.80,787.03,792.27,803.30,806.12, 814.03,820.98,827.52,833.10,838.08,846.23,856.70,857.06,865.71,870.62, 874.09,881.87,889.82,891.88,902.43,905.14,912.89,918.65,924.23,928.94, 936.11,945.56,948.01,953.68,958.41,969.53,968.56,981.53,988.33,994.40, 999.79,1004.40,1013.54,1019.01,1028.40,1026.73,1038.54,1044.45,1049.72,1056.07, 1060.84,1070.15,1079.14,1073.53,1083.88,1097.53,1098.71,1106.08,1106.06,1118.58, 1127.65,1127.67,1134.48,1141.65,1149.18,1154.94,1158.01,1166.27,1168.88,1176.30, 1187.87,1198.41,1197.22,1206.15,1211.07,1212.94,1218.39,1229.11,1237.24,1239.95, 1245.58,1249.21,1256.68,1270.57,1275.24,1273.72,1279.48,1288.37,1297.30,1299.21, 1312.83,1315.85,1320.63,1321.75,1329.65,1342.00,1350.97,1353.19,1356.40,1358.63, 1368.23,1381.63,1388.03,1389.56,1389.44,1404.45,1409.95,1415.99,1424.21,1426.78, 1431.23,1444.88,1444.67,1446.77,1460.00,1459.44,1471.61,1476.43,1484.86,1489.17, 1494.66,1499.29,1511.16,1516.99,1523.66,1529.24,1535.75,1536.98,1544.65,1550.29, 1556.51,1563.73,1567.32,1576.15,1578.97,1588.48,1594.65,1598.15,1601.50,1614.42, 1626.61,1625.57,1635.27,1632.93,1647.42,1647.61,1655.04,1659.72,1671.94,1672.23, 1678.58,1692.00,1698.17,1700.55,1703.86,1705.61,1719.38,1722.36,1732.39,1739.15, 1745.55,1752.58,1760.93,1763.49,1765.89,1773.03,1782.59,1788.86,1793.54,1798.22, 1804.15,1814.31,1821.71,1818.86,1828.64,1835.85,1844.36,1851.23,1858.69,1856.82, 66.64,70.24,77.58,81.49,88.75,95.59,100.50,106.34,113.04,118.04, 125.21,132.23,137.20,141.05,147.84,154.56,158.76,167.25,173.09,178.88, 185.05,190.93,195.52,202.35,209.69,214.99,222.13,227.07,233.06,237.26, 244.28,248.30,255.05,260.87,269.60,276.29,279.18,282.54,293.42,296.78, 301.42,309.15,314.47,319.77,324.88,333.09,340.36,343.38,351.30,358.89, 361.25,371.12,375.34,375.36,384.19,389.07,398.19,400.77,410.85,414.29, 422.20,428.30,432.49,436.88,445.88,446.71,458.86,462.56,467.32,474.81, 480.42,487.33,490.13,497.91,506.42,508.58,510.88,520.87,526.91,529.81, 537.79,546.55,546.71,557.21,561.06,570.58,578.10,578.39,585.81,591.11, 601.96,604.56,609.81,613.74,622.32,626.53,627.37,639.10,644.76,654.50, 657.94,662.02,669.23,673.99,682.34,689.10,694.58,699.02,700.35,708.67, 718.81,722.98,726.12,736.26,737.32,744.30,752.91,758.00,765.60,773.35, 773.18,779.20,788.08,791.17,794.64,803.77,816.95,819.16,819.13,825.35, 834.89,839.72,847.95,852.43,860.72,863.22,871.11,874.59,885.64,885.23, 894.98,896.29,907.48,908.45,919.29,925.47,931.26,933.56,938.49,948.70, 949.49,962.16,967.39,969.34,973.36,989.26,989.21,991.02,995.67,1010.26, 1011.62,1016.88,1025.18,1026.77,1037.25,1037.27,1049.61,1056.11,1060.83,1064.60, 1072.48,1077.85,1083.43,1086.55,1093.41,1097.62,1105.84,1112.04,1119.37,1119.49, 1125.15,1140.10,1150.18,1145.41,1153.68,1164.37,1167.14,1168.34,1177.42,1180.88, 1187.89,1194.33,1200.69,1200.61,1207.66,1215.76,1225.86,1233.37,1237.89,1247.84, 1249.71,1251.14,1262.24,1260.29,1272.03,1281.10,1284.95,1287.44,1292.71,1304.98, 1310.28,1313.69,1328.97,1328.10,1332.26,1341.24,1345.30,1347.99,1349.11,1358.66, 1361.63,1368.81,1377.25,1387.26,1399.04,1400.72,1401.50,1409.57,1410.31,1412.71, 1427.88,1425.21,1435.04,1446.02,1448.43,1449.66,1456.90,1466.93,1473.58,1471.02, 1484.65,1487.53,1506.12,1506.95,1505.65,1517.82,1519.13,1536.39,1530.14,1542.02, 1541.46,1558.12,1551.12,1564.87,1567.83,1574.57,1578.40,1582.61,1593.81,1597.00, 1608.45,1611.36,1623.38,1619.19,1621.03,1629.63,1641.22,1643.90,1652.79,1656.34, 1660.32,1672.76,1676.03,1678.99,1690.15,1694.02,1693.05,1705.18,1711.32,1717.44, 1730.92,1727.49,1728.51,1740.83,1743.72,1746.56,1763.14,1757.64,1768.65,1770.07, 62.26,68.25,72.80,79.81,84.58,92.09,95.56,103.62,109.07,112.75, 118.00,126.13,129.40,137.51,142.14,145.64,151.69,158.99,164.22,170.03, 174.10,181.18,187.48,190.95,196.44,202.96,210.69,214.20,221.29,226.56, 230.97,236.75,241.85,250.07,252.85,259.55,266.65,273.42,275.37,282.66, 287.14,292.04,300.54,302.77,309.84,311.54,320.81,326.80,334.16,335.67, 341.76,351.63,352.05,359.62,364.89,375.84,377.32,385.86,390.57,398.01, 401.97,407.26,414.40,415.49,419.26,427.37,436.90,439.70,445.28,450.81, 457.54,462.67,466.18,471.92,479.37,488.99,493.15,496.47,500.28,507.40, 513.28,517.91,527.69,531.56,535.71,537.83,545.56,558.05,554.65,567.68, 570.27,572.38,580.85,590.50,588.73,596.65,603.84,601.91,616.93,619.17, 628.76,633.96,634.59,642.11,651.13,659.97,659.89,662.27,674.08,678.34, 680.90,686.85,694.20,699.64,706.01,713.70,713.21,719.02,726.50,733.57, 735.25,744.75,746.97,752.41,761.10,772.24,775.49,780.87,785.10,790.57, 797.97,803.70,808.26,815.26,817.12,821.74,832.18,833.53,836.08,852.27, 851.54,856.04,862.51,870.01,877.39,881.77,885.91,890.17,898.11,904.10, 904.84,909.14,917.49,928.51,935.14,933.56,943.09,942.85,957.69,960.62, 963.27,966.84,974.84,977.46,991.36,993.86,999.11,998.09,1007.78,1012.87, 1013.86,1028.09,1029.62,1038.10,1042.58,1046.83,1053.35,1064.80,1065.70,1070.34, 1073.52,1080.28,1084.64,1090.25,1099.35,1105.53,1111.55,1115.21,1117.09,1122.83, 1131.29,1139.75,1145.82,1150.07,1156.19,1156.20,1169.33,1168.73,1171.26,1181.52, 1188.76,1201.55,1202.55,1202.40,1207.20,1219.45,1220.10,1218.82,1236.98,1231.26, 1247.15,1248.39,1257.64,1263.51,1268.14,1271.41,1283.57,1284.79,1291.04,1295.49, 1306.65,1306.37,1310.13,1312.18,1328.73,1321.22,1336.61,1336.97,1345.62,1346.60, 1358.20,1362.35,1375.45,1371.87,1375.96,1389.64,1390.38,1397.50,1404.53,1410.26, 1408.71,1421.54,1425.06,1432.21,1435.47,1436.87,1448.93,1450.37,1457.65,1468.13, 1471.56,1475.28,1482.52,1490.50,1489.81,1494.23,1506.90,1513.46,1516.58,1521.36, 1524.13,1533.86,1531.96,1543.03,1548.12,1545.68,1555.07,1571.37,1566.45,1569.94, 1580.13,1590.89,1595.26,1606.73,1610.37,1609.79,1617.31,1623.98,1624.99,1630.45, 1635.75,1641.72,1645.53,1651.60,1664.03,1663.74,1672.77,1675.17,1679.04,1694.03, 59.53,63.77,70.16,75.03,78.37,86.23,92.03,98.20,104.73,106.20, 113.85,119.01,122.83,130.64,135.36,140.28,144.45,150.86,156.91,160.83, 168.61,173.86,177.29,184.42,190.21,193.53,196.89,205.03,211.69,214.46, 220.72,225.49,231.77,235.03,240.09,244.16,253.54,257.25,261.15,266.81, 275.34,280.63,283.99,287.19,294.44,301.17,307.66,310.84,316.31,321.15, 328.24,332.49,339.08,342.88,350.51,357.06,361.74,366.93,370.50,374.83, 380.58,384.78,389.84,400.89,399.98,405.48,414.12,420.01,421.08,429.72, 433.91,439.94,448.47,452.13,456.79,458.73,469.62,469.12,478.05,479.53, 492.63,494.97,502.32,506.59,507.14,515.20,521.95,526.86,531.98,535.95, 541.01,549.12,557.32,557.17,564.09,569.43,569.68,584.68,583.04,592.89, 596.05,598.43,607.39,611.43,614.24,620.87,630.05,630.67,639.89,642.21, 653.39,649.81,655.25,661.74,671.23,672.46,681.47,683.77,691.33,692.54, 698.01,708.18,715.41,717.18,722.21,731.31,731.72,738.34,741.05,747.37, 753.01,753.02,765.93,773.12,773.43,780.20,790.30,796.37,794.98,804.14, 808.57,816.93,823.70,820.88,831.87,838.19,842.69,847.33,848.06,856.57, 860.42,870.82,876.08,873.86,882.23,892.44,897.18,904.20,907.90,913.99, 916.30,918.33,931.18,927.99,938.71,939.28,948.76,952.62,957.57,960.44, 970.25,975.59,974.29,988.49,990.62,996.93,1001.33,1008.70,1013.64,1024.93, 1017.72,1029.87,1025.09,1039.43,1039.43,1048.86,1055.75,1062.78,1072.84,1075.40, 1080.30,1083.33,1087.66,1097.74,1096.59,1105.31,1109.76,1113.92,1121.46,1119.91, 1134.36,1133.44,1146.56,1146.12,1149.70,1151.40,1163.89,1173.75,1172.43,1179.46, 1181.41,1186.98,1200.05,1201.81,1206.47,1207.73,1213.93,1222.44,1227.56,1231.70, 1240.98,1246.67,1256.30,1252.12,1255.45,1262.04,1270.18,1275.50,1283.99,1292.03, 1293.74,1301.70,1299.65,1313.18,1317.70,1318.10,1327.76,1333.16,1333.88,1334.91, 1349.17,1354.16,1356.12,1360.26,1363.52,1374.28,1378.37,1393.65,1391.08,1388.36, 1395.40,1411.96,1410.81,1418.99,1421.13,1418.39,1430.03,1440.44,1442.44,1449.35, 1452.59,1458.28,1472.00,1467.12,1475.44,1483.61,1481.21,1493.06,1498.61,1503.85, 1504.27,1505.55,1515.28,1511.96,1534.03,1534.68,1539.44,1539.52,1551.94,1554.89, 1558.02,1571.28,1570.59,1579.71,1577.44,1582.38,1589.83,1600.53,1604.01,1603.70, 56.61,60.68,67.17,71.91,78.35,81.94,86.56,91.95,94.97,102.76, 104.84,113.89,116.64,123.61,127.52,132.43,137.67,142.69,149.29,151.27, 156.75,163.53,170.00,173.47,179.99,183.83,190.39,193.40,201.65,203.44, 210.79,215.04,217.88,224.69,227.09,235.42,242.60,245.23,248.78,254.07, 258.07,264.82,271.17,274.50,282.32,283.84,287.99,292.61,301.93,303.14, 312.37,315.85,320.22,325.95,329.15,336.20,341.11,343.87,349.93,354.70, 363.97,369.20,371.39,376.74,379.88,386.79,393.46,396.99,408.67,406.00, 412.95,419.38,426.73,431.70,434.24,438.56,442.63,447.94,455.43,459.17, 463.14,469.67,475.19,481.19,486.15,494.97,491.76,502.72,504.98,510.91, 515.21,522.67,523.10,528.15,535.54,537.73,547.63,550.58,558.08,563.78, 563.96,567.82,575.80,580.78,586.17,595.12,598.95,598.39,606.11,612.43, 613.82,621.86,625.00,633.93,629.99,640.99,643.95,652.33,657.90,659.08, 665.97,667.95,677.15,682.22,686.60,694.87,702.40,698.57,707.53,715.55, 716.09,723.75,728.96,730.80,733.88,746.09,747.58,754.53,759.08,762.55, 770.52,770.67,779.03,782.14,791.60,789.76,799.00,806.25,807.10,816.43, 824.10,827.47,830.06,838.22,843.03,846.84,849.00,856.92,856.12,866.19, 872.44,877.73,881.10,887.28,887.78,896.71,904.53,911.80,917.17,923.39, 917.45,924.41,932.51,939.36,938.88,950.31,954.01,961.70,959.79,965.34, 964.91,976.31,982.08,987.39,990.04,1000.88,1004.66,1007.67,1016.79,1015.32, 1026.19,1025.07,1037.94,1036.76,1040.79,1045.63,1050.53,1061.95,1062.45,1066.68, 1077.68,1087.61,1083.94,1088.37,1092.11,1103.10,1105.33,1110.29,1115.33,1117.00, 1127.31,1131.64,1133.86,1134.16,1148.18,1150.72,1154.54,1163.45,1170.42,1172.27, 1178.40,1180.87,1183.27,1195.22,1195.65,1201.47,1210.56,1212.68,1212.81,1230.26, 1226.09,1229.70,1239.69,1236.89,1245.71,1250.91,1257.78,1260.87,1266.01,1271.88, 1277.13,1274.93,1291.56,1289.37,1300.57,1300.44,1315.80,1315.05,1319.97,1329.52, 1328.84,1333.53,1342.55,1345.92,1357.72,1352.27,1362.53,1362.46,1364.98,1374.91, 1377.58,1375.88,1388.63,1390.09,1406.99,1406.78,1411.48,1415.00,1418.92,1434.48, 1429.33,1434.32,1438.83,1443.02,1455.21,1454.97,1460.73,1458.90,1474.50,1475.41, 1478.21,1486.11,1485.65,1492.25,1507.08,1511.21,1506.83,1512.76,1517.22,1527.55, 54.09,59.82,64.09,67.48,71.52,74.54,83.50,89.44,91.36,96.20, 102.37,107.63,112.80,115.86,119.85,125.74,131.19,135.10,140.24,145.50, 150.45,154.85,158.01,164.73,170.43,173.59,177.41,184.13,190.76,194.75, 199.44,204.13,209.86,210.14,214.11,221.73,228.46,233.97,235.70,241.75, 247.72,253.19,254.81,261.69,267.85,272.60,274.96,281.09,288.13,291.59, 299.94,301.55,305.63,307.70,312.73,321.36,323.24,331.18,328.43,337.02, 345.45,349.07,353.44,361.34,361.37,368.77,375.73,378.10,383.01,387.10, 389.12,399.23,403.05,406.33,415.28,420.05,417.87,426.98,431.34,439.78, 441.04,443.22,450.95,457.21,456.06,467.27,469.12,474.90,477.06,481.42, 483.89,490.96,498.88,502.83,506.22,514.17,516.43,523.56,527.54,534.32, 538.11,539.62,546.64,553.17,555.10,561.01,566.52,571.69,573.66,583.67, 587.92,588.38,595.26,598.59,605.48,610.79,611.27,619.59,623.78,627.69, 634.32,635.94,643.84,655.53,654.34,658.94,667.25,667.79,674.05,677.81, 683.90,686.61,691.87,692.11,696.16,706.11,710.27,718.14,720.33,725.41, 730.54,733.74,738.06,740.45,748.68,755.80,762.57,769.93,769.33,775.33, 780.40,780.62,786.13,793.40,802.07,803.11,809.47,809.27,822.54,821.12, 826.79,833.08,838.04,843.03,841.89,846.82,863.30,854.72,866.89,871.55, 875.83,878.03,881.58,888.47,895.56,897.00,906.01,910.35,915.86,914.96, 926.78,930.33,932.95,942.36,936.47,945.56,949.53,958.13,961.73,968.47, 968.87,978.99,982.03,978.70,989.49,994.57,998.51,1005.56,1012.95,1019.72, 1021.93,1026.41,1027.30,1030.39,1043.35,1040.75,1050.05,1052.37,1055.44,1061.29, 1067.20,1075.07,1074.39,1083.58,1090.47,1092.85,1094.54,1101.40,1109.48,1113.01, 1118.73,1121.27,1130.65,1129.87,1138.51,1143.10,1146.48,1150.04,1161.27,1162.12, 1165.80,1172.45,1169.38,1176.17,1183.74,1185.26,1194.61,1199.10,1199.99,1204.59, 1211.85,1215.20,1221.15,1227.47,1227.21,1239.28,1240.96,1245.36,1252.11,1258.69, 1252.66,1265.45,1269.18,1276.36,1281.08,1289.42,1286.35,1295.33,1298.90,1301.64, 1310.23,1320.61,1319.78,1328.56,1329.73,1333.65,1337.83,1344.07,1348.75,1356.85, 1356.95,1365.64,1370.18,1382.72,1382.72,1381.08,1390.34,1395.13,1396.81,1403.38, 1404.60,1408.16,1419.08,1419.88,1428.34,1435.59,1429.16,1437.33,1445.19,1448.39, 52.50,54.92,61.04,64.93,67.83,74.34,77.50,82.89,87.01,91.30, 96.38,101.43,106.41,108.66,114.22,119.99,125.29,130.65,133.24,137.44, 144.04,145.83,153.09,156.61,161.84,163.35,169.76,173.95,182.46,185.49, 184.49,194.08,199.84,198.85,207.75,210.77,215.32,219.28,223.72,229.07, 236.97,236.31,243.30,247.32,250.37,257.66,262.06,265.55,272.38,278.66, 278.70,284.49,289.20,293.58,296.43,305.43,306.83,316.35,319.52,321.51, 323.80,329.67,333.00,339.74,344.19,343.63,354.04,356.78,362.10,366.35, 371.08,379.92,381.91,387.48,390.53,391.65,395.58,404.33,412.23,415.07, 416.87,419.53,422.89,431.06,436.63,442.49,448.38,453.34,447.80,454.62, 459.82,465.58,470.99,475.66,481.47,484.12,494.82,494.08,498.32,507.73, 507.72,511.83,515.99,521.71,527.00,531.75,536.42,543.03,554.07,549.31, 554.42,559.15,563.02,568.49,571.01,576.70,580.00,588.49,591.38,596.94, 600.68,605.84,604.20,616.13,619.28,622.17,633.90,626.93,635.67,639.38, 647.14,653.13,655.92,656.23,664.05,674.44,668.05,677.57,685.41,687.06, 691.88,695.57,694.40,708.51,708.15,712.25,722.37,725.67,725.62,727.81, 739.80,742.33,745.32,751.69,757.28,763.81,766.32,772.73,778.39,775.45, 780.20,785.99,787.83,796.46,796.68,804.36,810.57,813.75,825.83,822.12, 825.30,832.92,833.26,839.78,845.60,848.51,857.10,863.61,868.57,876.70, 871.53,875.36,881.71,894.93,894.61,901.61,897.88,904.43,911.41,923.62, 919.81,923.81,938.53,930.20,943.56,945.18,943.33,955.47,963.35,961.54, 963.76,978.95,977.88,989.84,985.01,983.90,996.97,997.37,1007.46,1003.97, 1016.91,1018.57,1025.27,1023.48,1033.97,1038.15,1041.10,1042.44,1050.26,1055.19, 1061.70,1067.53,1068.51,1070.28,1081.18,1074.23,1091.52,1083.77,1093.65,1098.53, 1105.94,1105.83,1117.51,1117.87,1129.54,1131.96,1129.10,1142.31,1136.87,1146.16, 1151.15,1152.92,1161.68,1169.35,1173.53,1171.62,1186.80,1180.82,1182.47,1190.15, 1201.35,1205.13,1203.03,1210.66,1214.06,1216.57,1223.18,1232.65,1232.93,1231.82, 1245.78,1246.02,1250.36,1250.99,1261.96,1265.03,1267.37,1274.96,1281.82,1280.84, 1294.96,1287.72,1302.53,1294.67,1309.53,1299.56,1315.68,1316.63,1326.26,1327.77, 1331.19,1335.88,1349.78,1344.73,1341.85,1354.23,1361.46,1371.05,1362.17,1379.08, 49.41,53.82,55.86,60.31,67.77,69.48,74.41,78.68,82.13,85.88, 92.37,95.45,100.50,105.40,110.75,113.41,117.63,120.24,128.55,131.52, 134.75,139.77,142.44,149.03,154.25,159.57,162.96,163.65,168.82,173.71, 176.84,181.09,185.35,190.66,197.14,198.21,204.43,212.40,215.44,221.29, 220.35,222.80,230.01,234.85,237.87,239.52,242.39,251.80,254.58,260.38, 259.16,273.08,270.36,276.32,282.29,285.23,289.80,298.07,296.12,304.70, 312.24,311.49,321.17,322.20,329.38,328.42,338.01,340.15,342.48,352.14, 347.91,354.15,358.80,366.06,367.25,370.74,377.89,382.32,388.54,391.12, 395.15,403.36,407.09,409.10,410.32,414.00,420.57,427.55,430.02,429.53, 439.64,442.09,443.61,456.01,457.07,465.22,464.30,465.94,470.53,473.56, 479.20,486.00,488.93,493.16,497.32,503.19,508.62,516.31,516.54,522.21, 528.94,530.68,534.40,541.29,543.89,548.23,548.98,554.63,559.07,563.71, 569.28,574.03,576.31,578.19,583.01,594.31,593.00,600.57,602.19,604.17, 610.53,621.58,620.70,627.34,626.82,634.27,636.96,645.51,649.78,649.92, 648.67,655.59,662.01,667.17,671.64,675.22,686.37,690.08,692.22,695.40, 694.41,701.53,704.87,714.39,725.45,725.61,722.70,723.53,733.55,742.10, 742.88,745.49,753.19,756.61,755.98,768.46,772.17,775.46,781.30,780.12, 781.70,786.62,799.02,800.47,803.07,810.69,811.88,812.52,819.50,824.30, 829.00,832.58,835.02,835.15,841.32,855.72,855.30,859.68,859.44,862.67, 876.35,882.61,887.74,879.92,887.97,897.70,897.98,901.96,906.16,909.40, 919.49,914.62,927.18,918.10,936.32,937.64,942.84,947.46,955.10,959.08, 957.75,959.68,962.25,976.33,984.38,981.02,983.64,988.19,985.86,996.13, 1010.84,1009.16,1008.70,1016.64,1021.74,1024.57,1029.21,1035.49,1029.51,1050.36, 1043.09,1049.22,1051.65,1057.87,1060.82,1075.47,1075.13,1074.24,1081.92,1085.41, 1084.51,1103.43,1094.55,1098.16,1109.50,1114.85,1113.88,1113.07,1130.03,1126.88, 1134.74,1137.63,1144.63,1147.60,1149.37,1156.85,1154.76,1156.74,1165.58,1170.73, 1170.73,1170.43,1182.76,1194.31,1193.97,1195.49,1208.28,1209.13,1214.37,1209.11, 1215.28,1221.46,1234.82,1235.79,1238.68,1240.33,1257.58,1255.50,1258.84,1257.29, 1269.12,1263.15,1271.44,1280.43,1285.61,1282.84,1282.16,1290.87,1301.69,1301.64, 46.59,50.45,54.87,59.28,63.62,66.65,70.80,76.70,78.34,79.96, 85.79,91.21,93.43,99.25,103.27,106.35,112.18,117.12,120.81,123.24, 127.38,132.53,135.28,137.83,144.93,148.12,149.80,156.82,161.38,166.69, 170.34,171.53,178.44,179.66,188.54,187.98,193.50,200.44,199.81,208.18, 210.46,216.30,222.51,219.69,228.80,227.59,234.38,237.64,240.63,245.09, 249.45,257.91,264.98,262.19,265.64,274.44,274.99,276.63,283.89,289.50, 291.70,295.23,301.73,307.89,307.78,314.54,316.50,324.53,325.11,327.12, 335.17,339.82,341.12,343.30,349.67,355.13,360.44,363.44,366.55,369.47, 373.03,378.95,378.80,386.56,386.58,396.49,398.51,400.40,408.99,410.02, 414.94,419.52,418.64,428.14,433.16,433.92,436.49,448.18,450.98,452.82, 457.58,457.72,467.52,471.21,466.65,479.17,483.09,489.91,495.31,495.14, 498.50,496.86,507.67,512.92,513.89,516.12,522.32,525.34,534.00,535.53, 539.41,544.25,548.09,555.30,552.10,563.15,561.57,568.26,572.86,578.41, 578.74,586.57,583.23,589.39,599.91,599.73,605.83,603.78,614.84,616.13, 624.14,623.19,632.91,628.47,644.31,636.63,653.49,648.06,656.78,660.83, 660.77,669.29,670.76,673.40,679.05,681.88,683.77,688.07,693.85,695.08, 701.19,709.88,711.59,717.10,723.24,723.58,728.45,733.47,732.84,746.25, 741.03,744.72,758.06,763.19,762.51,769.46,770.04,774.63,776.02,786.76, 785.71,793.92,797.39,793.50,802.81,799.82,805.50,811.12,816.86,817.56, 821.22,833.74,834.37,840.48,844.73,841.78,853.83,857.69,866.18,863.63, 858.38,868.95,874.47,879.41,881.17,894.06,893.96,898.35,906.74,899.09, 910.15,913.44,919.55,917.01,921.46,930.91,933.35,933.30,939.89,947.63, 942.86,963.89,955.63,961.93,961.37,966.93,970.33,973.41,977.48,987.25, 983.55,998.79,1000.80,1012.76,1014.13,1005.98,1011.26,1010.30,1015.20,1029.87, 1036.94,1040.47,1044.23,1054.65,1040.32,1054.93,1056.24,1057.92,1070.99,1066.82, 1078.33,1079.69,1083.88,1080.76,1090.46,1101.08,1099.92,1101.85,1100.61,1113.68, 1106.24,1116.70,1123.82,1125.49,1130.50,1142.43,1143.61,1147.63,1149.71,1158.20, 1149.85,1155.65,1163.87,1164.01,1165.60,1174.26,1177.09,1180.94,1188.04,1188.87, 1198.67,1200.97,1202.68,1200.95,1204.72,1220.67,1222.73,1226.56,1225.28,1228.61, 95.81,102.89,112.36,119.76,129.09,135.86,145.12,153.65,163.28,169.63, 180.39,187.05,196.26,203.75,211.62,221.38,228.97,237.51,245.53,254.18, 262.41,270.52,280.62,289.19,296.70,305.17,312.87,321.74,329.77,337.58, 345.21,354.77,366.04,372.06,380.98,389.29,396.55,405.30,413.87,422.02, 431.05,436.47,444.89,454.55,465.68,473.97,481.77,489.62,498.24,504.76, 512.19,522.28,530.88,542.22,546.63,555.79,566.34,573.45,579.90,588.11, 599.32,607.16,615.02,623.12,631.78,640.98,644.74,656.60,666.06,673.94, 681.76,690.29,696.67,707.25,716.41,724.60,731.82,740.21,750.61,758.09, 765.88,771.95,782.64,788.22,798.67,809.30,814.31,826.00,832.46,843.65, 850.98,858.45,865.56,873.67,882.23,891.26,899.19,907.77,915.51,925.46, 935.10,943.03,949.71,956.99,967.18,976.82,984.61,993.35,1001.87,1007.71, 1015.49,1026.21,1033.91,1041.27,1049.80,1061.06,1069.90,1073.59,1083.67,1091.90, 1099.71,1107.33,1117.82,1126.49,1135.75,1141.72,1149.87,1158.86,1170.44,1178.03, 1182.11,1193.47,1201.97,1207.70,1221.40,1224.66,1236.31,1244.46,1246.62,1262.79, 1270.64,1275.00,1285.86,1291.16,1303.88,1311.46,1319.20,1328.05,1334.02,1345.41, 1350.35,1359.65,1371.13,1378.02,1385.17,1398.16,1404.54,1407.93,1419.46,1427.57, 1439.80,1444.13,1453.10,1463.13,1465.90,1478.12,1488.59,1494.76,1502.85,1511.17, 1520.86,1526.34,1537.64,1544.03,1553.89,1559.83,1572.69,1577.63,1587.81,1593.61, 1603.90,1611.76,1619.26,1629.14,1637.93,1645.09,1655.20,1660.56,1672.12,1675.84, 1687.85,1695.34,1705.89,1714.34,1723.12,1730.18,1738.21,1749.01,1753.40,1762.81, 1773.05,1778.22,1788.63,1796.93,1806.13,1813.85,1820.82,1830.97,1836.91,1844.95, 1855.27,1865.37,1875.70,1879.39,1887.85,1898.07,1905.61,1917.97,1927.02,1932.05, 1940.34,1942.90,1955.19,1964.95,1970.88,1981.73,1988.52,1999.09,2008.89,2014.99, 2022.31,2030.18,2041.47,2049.55,2056.30,2066.47,2070.79,2081.25,2092.47,2099.40, 2106.24,2116.40,2124.38,2132.99,2142.09,2148.44,2158.79,2168.17,2172.61,2180.72, 2195.06,2201.07,2207.84,2218.08,2223.87,2232.17,2241.47,2247.56,2259.68,2267.48, 2275.68,2284.16,2295.55,2302.62,2306.39,2318.56,2326.19,2332.74,2343.40,2349.11, 2359.16,2365.33,2373.43,2382.61,2394.79,2400.16,2408.47,2415.09,2421.55,2433.79, 2443.95,2445.79,2458.41,2467.98,2475.97,2484.43,2493.18,2501.33,2508.02,2518.63, 93.34,99.96,108.08,115.77,124.15,132.06,139.74,148.14,156.73,166.56, 172.68,182.07,189.38,196.64,205.50,213.86,222.30,230.09,239.55,246.29, 254.18,262.07,270.67,279.02,287.61,294.49,303.96,311.78,320.90,328.55, 336.85,343.61,351.76,357.93,370.53,376.68,384.61,391.48,402.93,407.81, 416.90,426.06,433.65,441.41,448.66,455.24,466.37,473.76,482.04,489.13, 497.07,506.59,514.51,523.71,531.85,537.00,545.77,557.27,563.33,573.83, 580.68,587.81,596.16,604.15,613.01,621.77,629.64,634.73,645.06,651.62, 660.93,670.40,676.99,686.50,692.78,703.84,709.92,718.93,727.09,734.48, 744.48,752.98,759.42,766.18,777.13,782.71,791.06,799.54,807.60,817.91, 820.96,832.61,840.64,847.82,857.15,866.02,874.37,879.87,888.42,896.85, 905.19,914.51,920.29,930.26,935.57,948.97,954.68,961.50,969.97,979.01, 987.10,995.28,1004.30,1010.29,1020.80,1024.83,1036.67,1041.21,1051.08,1063.86, 1066.48,1077.83,1085.33,1095.17,1101.20,1106.98,1114.38,1124.22,1131.54,1143.82, 1149.82,1157.23,1164.67,1172.02,1182.98,1191.14,1198.09,1208.34,1216.73,1224.78, 1229.90,1240.21,1245.58,1254.42,1261.24,1269.17,1277.58,1286.91,1296.48,1303.48, 1313.30,1321.21,1329.66,1335.81,1344.49,1352.23,1362.32,1369.51,1376.11,1384.64, 1393.38,1401.64,1408.35,1417.68,1426.21,1433.37,1444.40,1451.46,1455.98,1464.57, 1474.75,1484.36,1488.43,1502.12,1501.91,1513.66,1525.93,1533.56,1539.18,1548.22, 1554.15,1563.01,1570.85,1580.35,1586.91,1598.81,1605.91,1615.26,1618.70,1629.79, 1639.94,1646.57,1652.11,1659.63,1671.60,1676.13,1685.34,1692.39,1708.06,1704.42, 1718.40,1727.77,1736.64,1745.64,1753.23,1759.56,1765.30,1775.24,1784.16,1794.33, 1802.36,1806.83,1816.03,1824.48,1832.01,1842.40,1850.74,1857.42,1863.92,1874.43, 1881.39,1890.03,1898.49,1905.36,1907.98,1921.84,1929.11,1935.76,1948.21,1955.62, 1959.78,1968.21,1976.95,1985.64,1995.70,1999.84,2010.36,2019.39,2027.05,2034.30, 2042.74,2054.85,2061.06,2069.95,2080.52,2087.42,2089.43,2104.01,2105.60,2116.51, 2122.76,2131.18,2141.91,2146.42,2163.93,2168.39,2175.49,2182.49,2191.71,2198.68, 2207.20,2215.10,2225.02,2231.50,2235.44,2246.25,2253.74,2264.12,2275.05,2280.93, 2292.93,2295.15,2302.30,2309.30,2323.23,2334.01,2337.85,2346.44,2354.50,2363.04, 2368.57,2378.50,2387.41,2393.62,2397.68,2412.72,2420.01,2424.62,2435.21,2445.09, 88.63,96.76,104.88,113.96,120.35,129.00,136.37,144.39,153.00,158.44, 167.22,175.68,183.62,190.46,200.20,207.74,214.65,223.47,232.06,238.29, 246.84,254.65,263.25,270.99,277.28,285.31,294.69,301.77,309.70,316.58, 327.49,335.44,340.21,348.51,357.15,364.95,371.25,378.81,388.35,397.53, 404.77,413.13,419.63,426.59,438.04,445.40,449.54,457.60,468.27,475.81, 481.50,491.93,497.94,510.02,514.46,521.70,529.93,536.93,543.13,553.77, 562.85,569.47,577.25,585.39,592.93,600.94,609.60,617.14,625.44,632.70, 640.41,648.97,654.16,664.75,671.29,679.99,687.57,695.22,705.35,711.76, 720.67,727.45,737.75,742.27,750.58,758.83,768.27,774.88,782.31,790.50, 797.85,804.85,813.77,820.22,827.73,836.51,845.49,852.20,862.77,869.67, 878.10,882.60,890.31,900.96,910.02,916.92,923.43,933.65,939.05,946.83, 954.65,965.68,970.32,977.92,987.52,996.81,1003.67,1007.90,1018.30,1028.05, 1032.68,1041.57,1050.33,1062.86,1062.04,1072.84,1080.69,1089.45,1097.33,1104.53, 1114.78,1122.39,1129.85,1135.92,1141.43,1150.92,1161.64,1167.36,1176.54,1183.82, 1189.78,1197.06,1207.77,1212.26,1223.71,1230.36,1241.07,1244.97,1254.13,1260.69, 1269.52,1275.05,1285.54,1294.30,1304.49,1308.49,1319.82,1324.09,1335.30,1341.64, 1349.91,1357.52,1366.42,1375.02,1381.03,1389.62,1395.06,1404.14,1412.13,1418.75, 1428.52,1435.19,1443.17,1449.74,1460.85,1467.16,1472.13,1484.82,1491.91,1500.95, 1505.88,1513.90,1521.40,1529.66,1535.19,1544.64,1555.51,1561.10,1568.53,1581.03, 1585.67,1592.97,1602.12,1614.34,1619.34,1622.08,1631.56,1638.09,1648.40,1659.26, 1662.57,1670.13,1679.27,1687.94,1695.54,1703.27,1711.81,1717.63,1728.60,1729.65, 1743.00,1747.15,1758.77,1764.09,1774.05,1779.10,1791.24,1794.50,1806.94,1812.72, 1822.11,1831.04,1836.57,1842.32,1853.46,1860.52,1865.89,1881.65,1884.94,1890.01, 1899.72,1899.62,1910.90,1920.39,1934.50,1941.10,1943.64,1953.29,1964.44,1968.92, 1978.95,1984.10,1989.94,2001.59,2009.20,2017.18,2034.05,2034.90,2043.50,2048.68, 2055.70,2065.76,2071.84,2078.52,2088.57,2100.37,2103.22,2112.44,2117.26,2130.59, 2134.08,2141.93,2153.94,2157.23,2167.86,2177.93,2180.77,2188.70,2197.59,2204.99, 2210.37,2222.90,2233.07,2236.91,2246.10,2252.80,2262.07,2269.10,2282.74,2287.08, 2293.10,2299.02,2308.61,2316.54,2322.65,2334.00,2342.45,2349.05,2356.54,2366.83, 85.61,93.60,101.36,108.53,116.73,124.82,133.19,140.25,146.29,154.70, 162.46,169.52,176.67,183.48,193.32,201.41,207.33,214.22,224.77,230.53, 237.22,246.29,253.08,260.52,268.65,276.88,284.63,290.39,300.23,308.04, 315.07,321.43,329.41,335.76,343.71,352.86,362.61,369.05,375.00,384.23, 389.80,396.70,405.75,412.40,425.38,430.41,435.62,442.82,450.82,461.37, 466.55,475.22,482.13,489.00,500.02,504.36,511.17,518.12,527.42,537.93, 545.56,550.75,561.50,565.78,572.88,580.79,587.86,598.15,603.56,611.21, 619.68,626.29,633.82,641.79,649.26,658.30,664.37,673.22,677.37,686.65, 696.22,701.56,710.26,716.97,724.48,735.92,741.12,751.86,757.09,763.33, 772.56,779.41,786.14,793.51,800.47,807.66,817.31,826.34,832.18,837.55, 845.58,856.52,861.13,869.47,877.02,883.50,893.79,902.41,908.62,916.15, 923.84,927.45,938.24,947.14,953.32,962.40,973.15,979.10,982.65,989.71, 999.05,1009.77,1016.65,1022.80,1030.78,1036.66,1043.76,1055.03,1060.18,1067.69, 1074.67,1081.43,1092.24,1099.40,1107.46,1117.13,1122.43,1126.97,1136.12,1144.48, 1153.04,1160.74,1166.37,1176.81,1180.56,1191.64,1198.83,1202.34,1213.88,1220.93, 1230.30,1240.68,1243.56,1252.60,1256.90,1265.34,1276.73,1280.98,1290.84,1299.73, 1303.47,1308.74,1319.47,1325.18,1336.43,1341.89,1346.73,1356.54,1364.76,1373.52, 1378.12,1382.25,1396.99,1399.86,1413.74,1423.31,1429.00,1433.32,1440.51,1445.63, 1459.60,1463.10,1471.91,1481.19,1486.74,1493.40,1502.40,1506.89,1518.37,1522.37, 1530.92,1546.64,1546.64,1556.32,1562.16,1572.11,1577.98,1585.87,1594.74,1599.13, 1607.23,1619.89,1625.52,1632.50,1642.06,1647.98,1653.82,1660.84,1671.74,1678.85, 1683.39,1688.72,1703.61,1707.97,1714.34,1718.50,1732.61,1734.77,1749.00,1753.95, 1765.23,1767.16,1775.39,1784.52,1793.83,1800.19,1807.46,1814.80,1818.28,1827.19, 1840.88,1843.75,1851.72,1857.79,1871.66,1877.32,1885.76,1892.75,1895.32,1907.60, 1915.65,1920.81,1926.82,1936.65,1942.20,1950.09,1958.49,1960.90,1971.60,1985.06, 1989.14,1992.83,2007.78,2012.65,2017.36,2028.84,2037.51,2039.21,2046.46,2056.41, 2064.01,2073.76,2085.64,2086.07,2094.92,2105.57,2109.39,2113.31,2128.24,2136.08, 2142.41,2147.91,2157.96,2165.89,2174.46,2179.74,2191.42,2197.20,2204.41,2212.69, 2215.48,2223.79,2237.57,2238.34,2250.60,2257.04,2261.69,2268.43,2279.22,2286.82, 85.65,89.69,97.40,105.21,113.39,120.65,127.23,134.25,141.98,149.51, 155.25,162.77,170.84,179.47,186.30,193.31,201.82,208.98,216.48,221.66, 229.79,235.69,244.88,250.96,258.37,266.75,273.45,282.87,290.28,295.82, 302.92,313.48,318.65,324.50,334.55,341.62,346.81,357.01,364.65,371.31, 374.49,384.24,392.29,400.09,407.81,413.18,422.35,427.23,436.72,443.91, 453.02,457.77,466.38,476.05,477.79,486.40,492.16,503.51,509.50,519.50, 523.46,528.08,538.75,546.65,552.92,562.34,568.16,574.55,582.86,589.00, 596.66,604.36,613.17,619.23,627.32,630.99,641.06,648.57,657.80,663.12, 673.49,678.92,684.65,691.43,701.68,706.71,711.46,725.01,730.57,739.43, 743.31,753.38,759.99,767.34,776.26,780.92,789.18,796.38,799.01,812.38, 816.46,826.12,835.85,838.93,850.13,855.65,862.24,867.06,875.72,879.75, 890.71,898.75,902.58,913.62,918.43,931.07,936.61,939.63,952.92,958.06, 968.41,973.26,978.82,987.97,992.94,1002.14,1006.12,1015.57,1025.20,1031.14, 1039.75,1044.69,1052.15,1060.24,1069.36,1078.19,1082.92,1086.99,1095.61,1105.85, 1111.02,1120.20,1131.03,1131.91,1141.92,1148.26,1157.20,1162.06,1169.48,1175.54, 1185.89,1195.72,1204.51,1206.21,1215.84,1223.78,1226.00,1238.74,1240.96,1253.17, 1261.12,1266.79,1275.74,1281.30,1283.46,1293.81,1301.59,1308.62,1319.78,1322.84, 1337.94,1339.63,1343.44,1358.03,1362.94,1368.39,1377.13,1383.33,1393.07,1397.83, 1405.39,1413.48,1415.73,1428.10,1436.06,1438.91,1451.17,1459.13,1464.29,1473.72, 1477.16,1482.78,1493.94,1500.07,1511.11,1517.01,1519.10,1530.22,1538.33,1548.28, 1554.23,1560.52,1567.22,1577.55,1585.52,1589.61,1601.61,1604.68,1615.38,1620.03, 1627.32,1634.04,1637.10,1644.27,1655.73,1664.44,1669.47,1677.84,1684.66,1693.18, 1701.48,1710.86,1715.61,1719.22,1730.48,1735.61,1743.56,1749.29,1758.52,1761.12, 1769.43,1778.17,1792.27,1795.79,1802.14,1810.52,1814.65,1821.16,1835.02,1834.85, 1841.12,1858.82,1860.01,1870.11,1877.59,1884.73,1887.48,1902.16,1904.92,1912.04, 1922.03,1927.12,1932.24,1943.47,1950.93,1957.45,1969.83,1967.01,1977.92,1987.79, 1997.29,2005.81,2009.20,2013.19,2027.11,2030.31,2035.80,2044.22,2053.05,2066.20, 2067.18,2076.50,2081.11,2096.36,2097.59,2101.31,2114.07,2116.60,2126.10,2136.49, 2140.69,2152.87,2153.61,2160.88,2171.95,2175.60,2188.54,2192.57,2194.36,2209.20, 79.88,86.72,93.08,103.66,108.46,116.96,121.50,129.76,135.75,144.29, 151.62,157.49,164.54,170.81,180.06,186.77,192.39,198.40,206.19,213.81, 222.71,228.78,235.86,242.93,249.14,257.46,265.39,270.80,279.36,287.03, 291.81,299.63,308.30,313.21,320.25,328.04,337.69,342.46,348.83,357.36, 364.33,370.51,378.34,385.00,393.04,397.86,407.28,413.33,417.99,424.50, 434.59,442.61,447.78,454.59,462.24,469.72,476.90,484.38,492.18,496.39, 503.40,511.13,516.97,526.04,532.07,541.72,548.32,555.55,562.89,570.55, 576.49,584.38,590.40,597.12,604.17,613.84,617.29,622.97,632.75,640.26, 646.46,653.14,663.51,668.44,673.29,679.81,687.23,699.10,700.69,710.84, 718.91,724.67,731.92,738.33,747.88,752.81,759.47,767.83,775.66,781.45, 788.90,794.72,802.90,807.80,818.98,824.34,832.77,836.64,843.34,850.20, 861.84,868.17,871.73,882.07,888.21,893.90,897.61,906.26,917.03,925.61, 931.58,940.78,945.74,952.99,954.99,972.51,970.84,976.67,988.77,994.81, 1000.41,1010.43,1012.86,1020.77,1030.50,1034.81,1045.17,1053.60,1058.49,1065.57, 1072.09,1076.64,1085.62,1094.23,1098.55,1105.87,1114.36,1122.98,1130.17,1137.11, 1142.71,1149.23,1157.51,1168.21,1172.32,1177.44,1186.69,1194.47,1195.64,1208.08, 1214.25,1219.20,1226.59,1237.50,1241.54,1248.13,1255.84,1257.14,1271.72,1274.93, 1285.72,1290.18,1302.61,1307.27,1310.85,1319.59,1327.40,1334.09,1341.20,1349.32, 1356.22,1361.57,1366.34,1382.42,1379.35,1390.12,1400.36,1408.66,1409.79,1418.57, 1423.45,1434.05,1439.54,1446.89,1448.13,1461.13,1465.97,1478.32,1482.31,1489.06, 1497.08,1500.94,1513.99,1517.54,1527.79,1533.99,1542.11,1544.48,1559.30,1559.68, 1566.80,1573.83,1581.96,1590.26,1597.04,1600.45,1606.44,1615.65,1621.39,1632.88, 1637.70,1649.08,1658.21,1657.69,1667.95,1670.53,1678.13,1691.35,1694.93,1703.84, 1712.03,1715.00,1724.28,1731.90,1736.50,1748.02,1754.07,1755.14,1764.25,1772.16, 1777.21,1787.05,1787.85,1804.57,1810.40,1817.05,1818.17,1831.98,1840.52,1841.66, 1856.98,1863.47,1864.51,1870.90,1879.26,1889.87,1897.25,1906.51,1908.99,1909.24, 1926.24,1926.66,1934.76,1942.50,1954.43,1956.96,1966.86,1973.66,1978.46,1987.74, 1992.63,1999.70,2010.71,2015.99,2021.81,2029.48,2034.82,2038.34,2048.90,2059.60, 2065.06,2074.02,2077.42,2088.20,2093.61,2099.56,2104.60,2112.52,2124.63,2128.69, 77.41,82.33,91.56,98.49,103.91,110.70,117.05,126.56,132.75,137.75, 145.19,151.78,157.88,168.23,171.53,180.86,188.63,191.94,199.01,205.76, 214.85,219.92,226.59,235.47,240.92,247.84,255.09,263.25,269.31,277.24, 282.46,288.53,296.68,305.61,307.53,315.74,321.92,332.31,335.99,340.76, 347.06,357.05,361.31,371.56,375.49,382.22,390.35,398.56,403.01,412.16, 417.98,425.97,430.36,439.10,444.42,452.79,459.65,466.94,471.92,481.21, 489.36,491.14,499.02,509.42,516.06,519.88,528.04,534.00,539.55,545.95, 556.72,563.17,564.45,571.72,582.76,590.23,597.90,601.33,611.77,617.20, 622.69,627.29,636.52,639.85,649.41,658.74,662.61,672.88,676.24,686.02, 689.37,701.19,704.26,710.68,719.55,724.57,735.91,738.77,743.62,752.43, 760.20,766.51,774.57,776.44,790.01,793.58,800.25,809.03,815.19,821.20, 822.78,832.54,837.33,847.16,849.00,863.91,864.96,874.68,882.48,885.91, 895.28,899.86,911.45,918.63,921.19,926.33,935.75,941.30,948.72,958.26, 969.85,970.04,978.15,984.77,986.49,997.77,1004.05,1014.25,1018.13,1024.41, 1030.89,1040.11,1045.86,1046.23,1061.32,1067.77,1076.20,1081.09,1085.15,1093.48, 1102.44,1108.47,1114.22,1122.81,1128.73,1138.03,1142.54,1151.12,1153.44,1165.22, 1166.80,1177.98,1185.33,1189.71,1197.67,1199.37,1205.19,1219.93,1223.81,1228.99, 1233.84,1241.55,1252.23,1253.78,1263.09,1267.85,1272.98,1283.56,1295.19,1300.51, 1305.40,1309.95,1322.51,1325.14,1332.57,1337.33,1346.16,1352.57,1361.80,1370.01, 1371.58,1385.42,1382.27,1394.82,1397.58,1403.35,1412.59,1420.06,1428.40,1431.10, 1441.85,1445.34,1454.19,1461.58,1470.33,1475.62,1486.09,1493.77,1492.23,1503.57, 1511.81,1516.42,1520.24,1527.99,1536.47,1547.79,1546.77,1555.80,1564.29,1570.79, 1578.41,1585.06,1587.44,1596.18,1600.79,1609.34,1620.50,1628.04,1632.51,1640.53, 1646.97,1651.26,1666.08,1667.21,1668.41,1681.53,1687.70,1699.02,1698.62,1707.41, 1712.81,1722.43,1729.87,1735.63,1742.29,1746.59,1748.50,1763.39,1769.37,1778.56, 1783.07,1789.72,1800.75,1796.28,1809.63,1816.34,1818.82,1828.02,1835.88,1842.84, 1852.62,1861.89,1866.92,1869.32,1879.83,1887.18,1894.77,1900.50,1906.54,1908.05, 1919.42,1927.39,1933.72,1939.55,1944.06,1950.57,1959.93,1965.55,1966.62,1977.73, 1989.67,1994.01,2002.33,2010.63,2019.45,2019.94,2027.13,2031.96,2041.16,2048.58, 76.16,81.26,87.62,93.36,101.64,107.21,112.96,119.62,126.79,135.05, 140.42,146.81,153.78,160.38,166.04,173.40,178.64,182.96,193.15,198.40, 205.19,215.42,218.54,224.85,235.20,236.53,245.11,253.51,256.82,264.51, 269.66,276.99,283.57,291.93,297.74,303.40,311.13,319.14,321.65,329.88, 339.00,341.32,350.75,355.97,365.67,371.19,376.29,382.87,389.39,392.10, 405.01,410.12,416.93,421.09,429.55,437.00,441.95,448.81,457.64,460.87, 468.90,474.48,479.56,488.52,495.65,499.54,507.35,516.76,521.06,525.06, 530.88,544.54,543.58,551.02,558.23,566.67,573.68,580.04,585.88,592.93, 600.22,607.12,612.66,620.80,630.88,631.48,639.09,647.65,649.15,658.27, 668.66,674.82,678.19,682.75,685.77,698.96,705.96,710.10,716.62,725.23, 729.05,730.55,744.15,751.64,755.89,762.71,767.61,778.28,781.91,795.48, 793.34,802.20,816.30,817.70,817.66,826.98,834.37,844.52,847.73,856.14, 863.92,869.89,878.78,886.49,887.26,894.97,904.19,906.64,913.72,921.55, 924.16,936.12,947.36,950.20,954.45,957.23,968.16,972.64,979.36,985.76, 993.45,996.24,1007.54,1009.29,1019.42,1028.11,1032.29,1044.05,1051.81,1049.70, 1057.35,1064.59,1068.24,1078.82,1081.60,1089.66,1095.57,1100.61,1117.27,1116.79, 1122.22,1128.89,1138.24,1141.55,1148.72,1157.97,1160.62,1173.99,1177.77,1179.46, 1185.01,1201.40,1203.12,1214.86,1214.67,1221.94,1229.34,1233.89,1240.63,1250.29, 1257.38,1259.60,1273.68,1279.96,1280.10,1285.54,1298.38,1302.72,1308.64,1312.81, 1318.95,1328.25,1332.21,1335.87,1346.68,1354.74,1360.83,1365.79,1379.70,1374.96, 1385.19,1390.97,1397.21,1410.91,1413.15,1420.96,1426.30,1433.53,1433.59,1449.14, 1451.81,1463.86,1467.32,1477.90,1481.35,1487.80,1490.06,1496.83,1504.29,1509.79, 1517.98,1524.11,1536.74,1535.92,1542.28,1552.50,1561.88,1560.66,1565.00,1580.25, 1589.36,1592.43,1592.79,1602.46,1607.29,1613.92,1625.11,1634.45,1635.38,1644.03, 1648.58,1651.59,1656.98,1668.44,1675.89,1679.11,1694.08,1694.18,1701.88,1712.79, 1718.61,1722.57,1729.75,1731.53,1738.86,1743.60,1753.99,1761.40,1771.10,1776.23, 1780.57,1783.81,1791.07,1811.10,1806.30,1811.51,1818.35,1831.48,1838.09,1839.46, 1848.93,1851.92,1857.30,1871.32,1871.76,1882.04,1885.73,1888.41,1899.12,1903.34, 1910.39,1918.49,1924.82,1934.56,1933.68,1938.83,1951.47,1954.62,1960.69,1970.57, 70.48,78.42,83.65,90.94,96.89,105.22,109.55,115.48,120.34,128.70, 134.20,141.87,146.72,153.46,160.00,165.73,171.70,178.79,185.42,191.60, 196.61,203.72,210.25,215.24,224.42,229.27,234.69,240.04,248.67,253.20, 260.24,266.12,273.74,280.30,286.11,292.54,299.64,304.12,309.69,317.57, 321.73,327.21,333.72,345.09,347.88,353.76,359.59,367.64,371.78,378.83, 386.93,391.33,401.08,405.90,411.31,418.65,423.10,431.46,436.78,442.83, 446.64,454.91,462.98,468.78,477.72,479.59,487.81,494.06,499.55,508.43, 510.81,521.37,523.27,528.15,536.07,541.03,550.86,554.80,563.55,569.43, 574.81,585.97,590.34,594.98,604.19,610.58,613.85,616.73,625.94,632.32, 635.19,643.10,652.85,659.88,666.54,671.46,675.43,687.65,691.56,697.33, 703.50,706.83,717.46,716.27,728.59,734.20,736.03,741.50,749.98,760.86, 767.37,768.18,777.92,781.74,788.26,797.29,804.01,809.80,814.84,822.65, 826.27,834.52,841.44,844.17,850.22,856.56,867.52,869.36,877.31,884.56, 893.07,894.54,902.55,914.14,914.49,923.82,927.55,932.67,938.86,945.69, 956.24,960.55,966.50,967.26,981.25,988.25,993.13,993.39,1002.71,1012.31, 1016.92,1020.54,1030.37,1034.49,1044.67,1051.29,1053.18,1059.39,1060.95,1071.47, 1074.41,1089.45,1094.36,1103.34,1101.88,1108.77,1111.46,1123.07,1130.56,1138.43, 1145.02,1152.66,1153.08,1161.15,1165.08,1181.63,1177.38,1187.50,1196.39,1201.45, 1209.06,1211.84,1222.61,1222.31,1232.44,1241.12,1243.28,1249.69,1253.39,1260.51, 1271.94,1277.65,1285.33,1285.92,1292.35,1304.79,1303.95,1310.89,1316.00,1324.69, 1336.26,1337.09,1341.65,1354.40,1355.33,1365.05,1376.32,1375.17,1385.66,1383.03, 1391.94,1399.38,1401.33,1415.04,1419.60,1429.41,1437.29,1430.72,1449.27,1450.19, 1455.91,1467.61,1467.89,1476.61,1486.23,1492.35,1498.82,1508.92,1509.38,1517.17, 1517.15,1529.28,1530.79,1538.29,1549.43,1556.82,1556.26,1557.81,1571.04,1575.24, 1583.61,1589.53,1600.84,1603.91,1611.58,1621.72,1624.60,1620.68,1634.52,1652.29, 1647.42,1660.59,1665.77,1664.29,1673.69,1678.63,1683.72,1687.96,1704.16,1698.53, 1712.21,1714.01,1725.09,1727.62,1738.85,1734.23,1748.62,1746.92,1759.96,1765.49, 1776.03,1775.20,1791.36,1792.60,1797.94,1807.13,1807.49,1813.28,1823.95,1837.40, 1833.45,1838.34,1849.44,1856.02,1864.93,1863.17,1878.80,1876.19,1887.64,1889.26, 68.03,74.60,81.23,86.19,93.96,99.75,104.97,113.08,116.90,122.38, 130.05,135.14,141.56,147.53,152.09,159.17,164.14,172.13,179.12,182.07, 189.59,195.46,202.86,209.47,213.64,219.69,226.93,232.26,238.43,243.41, 248.12,258.41,260.07,266.74,276.82,277.43,286.65,290.17,296.64,305.76, 311.08,318.05,325.63,329.45,334.51,344.05,346.76,351.38,358.47,363.96, 370.13,375.25,386.29,388.83,393.66,402.60,407.04,412.79,419.33,426.09, 431.17,438.06,442.37,447.68,457.30,465.72,468.30,476.49,477.45,481.48, 494.32,498.92,508.81,508.67,513.20,522.35,528.34,535.77,536.19,546.31, 548.35,557.32,564.05,568.07,573.98,583.22,591.50,596.61,604.17,604.20, 611.39,620.11,621.25,633.62,631.55,640.33,647.90,653.99,666.17,662.29, 674.87,672.86,689.86,692.73,700.73,706.09,707.43,718.54,720.80,729.02, 731.65,738.01,742.54,752.74,760.77,769.84,772.35,777.16,781.95,785.97, 793.59,801.02,806.56,809.77,816.79,824.27,831.62,839.56,848.35,844.29, 859.63,856.31,867.20,875.60,885.24,885.75,893.25,901.25,904.90,908.29, 916.18,924.15,934.93,940.38,939.93,941.91,950.27,958.20,958.89,970.39, 977.40,981.71,987.80,997.94,1002.67,1003.74,1013.36,1014.07,1022.24,1030.91, 1039.75,1046.27,1046.96,1053.79,1061.55,1062.75,1069.73,1077.50,1081.88,1091.05, 1096.55,1103.45,1108.67,1110.87,1122.91,1126.72,1133.53,1135.50,1147.37,1145.95, 1158.66,1167.99,1170.35,1176.39,1181.39,1189.12,1190.61,1198.91,1201.72,1215.11, 1220.19,1218.44,1227.11,1237.34,1239.80,1245.29,1254.31,1262.20,1264.68,1266.68, 1281.36,1287.36,1289.18,1298.39,1303.87,1309.35,1310.81,1321.28,1326.92,1339.22, 1337.90,1347.90,1359.91,1355.19,1359.65,1372.14,1378.45,1381.46,1391.41,1388.86, 1398.05,1398.54,1414.31,1412.98,1423.58,1422.93,1431.02,1445.91,1442.34,1454.05, 1465.88,1468.68,1476.67,1481.01,1481.78,1492.12,1498.14,1506.29,1507.45,1511.00, 1521.30,1526.37,1536.36,1544.49,1547.10,1550.17,1559.21,1569.49,1569.18,1579.54, 1579.54,1591.65,1586.51,1596.25,1604.09,1612.55,1626.40,1622.46,1629.60,1632.35, 1636.37,1643.81,1654.48,1662.88,1660.98,1672.32,1682.42,1687.91,1694.80,1693.18, 1704.65,1708.57,1714.30,1719.19,1723.55,1731.50,1737.95,1744.08,1754.52,1751.06, 1761.62,1771.80,1777.95,1783.88,1783.92,1794.52,1804.78,1801.91,1816.14,1815.33, 65.21,72.66,77.25,81.58,90.78,95.71,100.97,105.10,113.04,121.58, 126.56,128.96,134.61,138.70,146.00,153.74,157.90,165.66,170.43,177.23, 183.71,185.78,191.33,200.60,204.07,209.90,215.81,222.02,229.72,234.45, 241.00,243.76,251.60,257.73,262.59,269.65,272.63,281.36,284.93,293.95, 295.95,303.08,308.75,314.82,319.96,327.95,333.08,338.58,343.26,347.84, 356.52,358.95,363.26,374.26,377.68,385.05,389.89,397.23,402.10,408.42, 413.04,421.41,425.35,435.98,438.00,441.64,444.94,455.99,460.98,467.13, 473.12,481.65,482.36,489.67,493.16,501.75,506.75,512.27,523.05,525.04, 529.03,534.71,539.25,548.90,557.54,558.49,561.48,570.31,576.21,582.21, 587.33,591.67,600.05,605.29,609.57,620.12,616.63,625.52,632.86,642.66, 645.51,650.12,660.04,660.96,669.72,673.66,678.98,684.47,691.70,700.26, 701.60,710.83,713.65,718.25,722.72,730.88,739.07,748.18,752.63,759.47, 757.38,770.46,771.74,782.25,780.71,788.81,799.20,801.65,807.52,819.19, 818.09,828.83,830.44,840.64,847.48,849.94,849.52,855.75,870.54,872.70, 875.54,883.32,888.91,892.68,898.40,908.49,910.95,917.25,924.09,933.17, 939.64,943.59,944.61,946.37,956.78,963.06,970.41,974.65,983.03,987.07, 994.43,999.83,1004.24,1005.97,1015.12,1022.20,1025.70,1041.96,1043.91,1045.90, 1051.87,1053.16,1064.09,1065.40,1078.14,1084.21,1083.47,1095.81,1097.42,1106.42, 1109.70,1111.27,1120.11,1127.43,1132.26,1143.44,1140.91,1139.14,1152.20,1159.81, 1170.69,1171.49,1180.15,1187.43,1195.51,1199.12,1205.22,1204.92,1209.79,1215.97, 1226.06,1233.96,1235.03,1244.24,1251.40,1250.91,1261.04,1265.86,1274.15,1278.38, 1280.35,1290.87,1293.96,1304.44,1302.03,1310.32,1317.24,1327.97,1324.21,1331.49, 1340.55,1346.82,1355.22,1358.99,1364.69,1365.52,1375.99,1382.42,1388.55,1388.69, 1398.56,1407.97,1408.69,1427.26,1421.44,1443.36,1432.43,1438.42,1443.87,1454.39, 1455.92,1461.05,1460.20,1477.00,1480.69,1490.56,1489.89,1498.31,1503.02,1507.45, 1516.95,1521.53,1528.75,1534.50,1541.03,1542.35,1545.15,1557.76,1566.80,1565.12, 1579.60,1578.04,1576.56,1592.95,1598.55,1596.54,1609.46,1608.76,1616.10,1622.06, 1638.21,1635.20,1643.93,1652.90,1653.72,1663.94,1660.66,1679.55,1682.16,1688.71, 1686.66,1692.50,1700.74,1701.61,1712.50,1724.11,1719.97,1735.35,1736.25,1739.38, 63.40,68.64,75.66,78.88,84.85,90.99,95.30,102.59,106.93,113.22, 118.56,124.89,131.36,134.79,141.81,147.02,153.36,159.01,164.16,169.76, 174.21,180.81,186.17,194.15,198.83,201.25,205.90,212.99,219.79,224.29, 229.98,232.06,241.62,247.18,253.02,256.36,260.99,264.64,274.42,277.00, 285.47,289.38,299.21,305.64,304.25,312.37,318.62,318.31,328.55,336.95, 337.70,347.69,351.99,358.50,363.21,369.33,373.67,378.19,382.06,389.77, 396.07,403.79,408.39,410.07,420.09,424.43,427.63,435.91,439.11,446.99, 450.91,455.98,468.54,470.62,475.60,484.07,487.80,485.97,493.62,501.96, 506.26,513.96,522.59,524.82,530.26,533.37,542.93,544.95,554.20,559.29, 566.16,570.05,571.02,577.69,587.68,588.76,593.64,601.92,607.68,613.34, 614.60,624.56,627.15,634.03,643.45,649.08,651.57,656.17,664.23,666.21, 673.86,676.50,688.53,692.09,698.88,702.85,705.89,708.86,718.61,726.24, 724.13,734.11,741.14,742.89,751.89,759.61,766.42,771.62,773.95,776.77, 783.77,791.50,795.35,804.16,810.77,812.26,821.20,820.70,829.62,832.12, 846.82,848.04,850.75,853.30,859.32,870.41,875.73,874.72,885.84,887.22, 896.03,903.00,909.16,911.09,914.82,926.04,928.59,937.99,940.73,951.01, 952.56,956.60,964.72,972.49,979.43,980.47,987.97,989.54,994.03,997.54, 1011.06,1008.15,1014.37,1027.50,1033.99,1032.25,1036.66,1051.23,1045.49,1049.67, 1074.15,1062.76,1074.54,1077.91,1085.02,1090.74,1095.16,1098.97,1108.86,1113.05, 1120.95,1119.99,1125.48,1137.18,1141.92,1148.97,1158.39,1155.62,1163.53,1169.35, 1175.96,1182.15,1185.74,1189.23,1202.41,1195.52,1210.78,1220.82,1216.85,1226.77, 1238.48,1232.08,1244.13,1243.03,1258.24,1261.67,1259.61,1262.93,1282.19,1281.74, 1279.61,1289.31,1300.52,1300.67,1304.98,1303.71,1317.47,1320.49,1331.97,1332.57, 1343.30,1345.77,1353.88,1359.08,1367.80,1367.12,1376.51,1380.66,1380.34,1391.70, 1389.16,1400.60,1407.43,1419.83,1416.39,1426.12,1435.29,1445.51,1443.84,1443.53, 1452.20,1452.92,1459.12,1470.05,1476.25,1473.53,1476.10,1491.30,1492.80,1508.35, 1508.05,1512.99,1518.81,1517.73,1528.80,1530.93,1545.74,1544.49,1553.34,1561.46, 1569.91,1574.32,1572.82,1581.79,1582.48,1602.67,1592.50,1601.87,1611.16,1610.32, 1619.46,1624.16,1630.64,1635.73,1644.00,1645.95,1652.68,1659.95,1663.26,1669.33, 58.03,64.38,70.15,74.47,81.31,86.78,89.88,97.15,101.81,105.87, 114.36,116.10,122.61,131.43,135.57,139.83,147.08,151.13,157.15,160.93, 170.21,172.46,174.94,183.21,188.87,191.09,196.15,204.60,207.83,215.62, 219.67,225.33,231.83,235.53,240.75,246.23,252.72,255.89,263.93,267.99, 271.78,278.25,285.81,288.54,294.36,299.87,304.33,310.41,316.60,321.82, 325.90,331.63,335.28,341.74,348.11,348.32,357.19,362.08,366.71,373.48, 379.40,382.73,390.29,394.42,401.59,405.68,414.12,415.56,422.02,426.83, 432.60,436.79,443.09,449.18,456.92,460.16,467.29,469.47,477.94,480.25, 488.31,490.18,494.61,503.45,507.89,510.43,513.11,524.11,525.90,532.29, 538.53,544.69,555.00,554.40,560.55,559.51,575.30,577.94,580.76,586.68, 591.83,594.18,603.83,606.03,613.92,619.71,622.75,628.36,638.99,637.35, 644.63,646.91,653.59,655.88,667.40,669.79,677.79,684.01,684.90,692.71, 698.78,703.93,705.81,712.30,722.25,722.24,728.89,738.30,742.80,744.72, 749.93,755.36,767.96,769.57,771.68,778.04,784.34,788.11,790.92,797.65, 803.11,808.46,816.85,815.87,828.49,830.97,836.58,840.56,843.44,846.40, 855.35,861.76,869.09,873.72,876.11,886.83,885.08,888.50,901.03,906.22, 907.89,912.98,925.05,929.33,930.07,934.82,940.73,953.75,950.71,963.26, 962.63,971.31,975.77,982.63,983.81,996.62,1000.52,1000.57,1010.07,1012.45, 1019.76,1021.58,1027.84,1029.07,1041.96,1043.31,1044.54,1055.99,1055.96,1068.29, 1074.27,1077.19,1076.03,1081.67,1092.15,1097.41,1107.56,1104.06,1112.75,1117.12, 1120.16,1132.36,1134.48,1145.07,1145.94,1144.70,1151.14,1159.01,1166.13,1169.96, 1177.01,1184.48,1181.63,1188.79,1199.19,1194.88,1204.72,1208.13,1216.26,1226.67, 1230.44,1236.47,1242.62,1250.09,1259.75,1246.70,1257.72,1266.86,1271.00,1278.39, 1281.27,1294.92,1291.51,1302.34,1305.76,1311.02,1321.91,1323.24,1334.19,1326.81, 1340.11,1338.59,1348.59,1347.77,1362.56,1367.90,1363.81,1373.49,1375.18,1387.46, 1392.28,1397.58,1397.16,1401.71,1399.23,1422.80,1414.35,1429.10,1433.85,1441.97, 1442.58,1452.18,1456.83,1457.77,1468.76,1467.75,1480.78,1475.27,1476.01,1486.12, 1491.33,1505.40,1499.20,1518.10,1520.24,1525.02,1531.10,1540.03,1543.62,1546.40, 1552.16,1556.72,1555.06,1565.63,1570.67,1575.72,1577.68,1589.22,1600.23,1599.26, 58.06,64.40,67.81,71.95,80.37,83.86,88.44,94.04,97.57,103.27, 107.77,112.77,116.93,120.95,127.75,131.76,139.22,145.14,148.04,152.64, 159.41,164.47,166.32,173.71,180.03,184.11,188.39,196.30,202.90,203.93, 210.27,210.56,221.97,223.74,229.16,234.44,239.67,247.81,253.59,258.63, 259.54,265.70,271.81,275.50,280.96,288.44,292.48,298.68,297.75,308.59, 313.90,314.53,322.96,329.29,334.11,334.43,342.97,349.27,352.80,356.34, 362.59,367.30,373.41,376.26,380.53,390.20,393.60,397.62,407.52,405.07, 411.77,415.90,423.70,428.08,436.13,438.86,445.09,447.25,453.22,459.06, 462.21,470.19,473.69,478.24,487.25,488.56,492.63,502.12,502.60,512.01, 517.06,524.10,528.13,528.67,532.59,536.01,545.81,548.59,554.85,562.17, 565.18,574.23,570.93,579.73,588.95,591.14,593.36,602.88,609.66,614.12, 620.43,619.22,627.97,632.11,638.03,640.20,644.92,651.97,654.55,663.27, 673.00,678.46,674.88,679.80,688.88,689.05,699.40,698.85,706.87,714.14, 718.57,726.69,726.24,731.84,743.55,744.88,748.40,752.63,760.00,766.39, 765.75,774.82,776.17,779.02,789.90,792.91,798.14,801.10,814.06,822.64, 822.95,822.31,830.87,834.80,839.48,847.08,850.70,858.85,862.41,860.11, 876.28,881.79,882.61,891.26,896.35,899.12,898.16,904.64,910.56,914.55, 924.28,928.22,927.85,932.84,943.23,945.82,945.75,944.77,962.58,972.91, 970.52,978.94,983.36,985.00,993.53,1000.78,1004.58,1010.57,1008.78,1017.93, 1018.90,1024.93,1034.42,1034.67,1052.87,1050.30,1057.68,1055.97,1060.24,1073.96, 1075.91,1083.04,1080.48,1084.26,1098.57,1100.83,1102.07,1108.87,1111.13,1128.52, 1119.63,1128.83,1131.12,1144.89,1147.42,1148.38,1156.67,1162.97,1167.30,1169.26, 1180.88,1182.56,1186.63,1190.51,1193.71,1198.62,1210.93,1207.33,1211.30,1221.70, 1225.35,1232.09,1239.86,1237.33,1250.41,1257.01,1258.52,1262.68,1263.80,1270.28, 1282.57,1290.57,1288.60,1291.68,1303.20,1297.50,1311.14,1321.83,1317.71,1327.35, 1327.39,1342.21,1334.19,1345.72,1349.48,1348.61,1356.54,1363.46,1372.88,1379.62, 1384.14,1377.55,1388.42,1395.97,1390.79,1405.34,1407.90,1408.69,1426.36,1416.87, 1440.88,1428.06,1446.25,1454.37,1449.78,1460.47,1463.63,1460.72,1473.24,1476.50, 1489.10,1483.18,1497.61,1503.30,1508.95,1509.20,1509.75,1521.46,1522.43,1528.20, 54.95,61.34,65.49,67.94,73.52,77.23,84.25,89.69,93.85,96.08, 103.77,110.28,114.15,118.08,124.29,126.42,132.27,137.53,142.03,147.08, 153.07,155.43,163.99,164.51,171.62,175.97,178.48,186.31,193.44,196.57, 199.82,203.97,211.55,213.56,224.28,226.71,228.92,232.35,237.93,242.79, 253.79,252.82,256.06,262.42,266.55,272.80,276.16,285.04,290.08,294.63, 296.30,302.23,304.40,311.46,316.97,324.55,327.66,335.66,340.12,338.43, 345.87,351.96,358.77,360.55,367.56,370.19,375.04,383.29,381.56,395.54, 397.34,401.92,406.99,411.02,413.99,420.63,424.58,426.02,434.19,441.31, 443.67,446.09,455.76,457.17,465.49,467.90,475.13,475.78,483.41,484.84, 495.76,493.70,503.33,507.75,511.70,517.60,523.35,527.43,530.99,534.74, 541.79,550.62,546.40,553.65,559.88,561.08,569.24,579.44,572.70,583.06, 591.60,595.31,602.49,605.79,613.38,615.56,620.15,625.01,629.84,639.02, 639.80,643.29,650.86,651.61,658.66,661.82,663.38,671.05,676.75,678.32, 677.32,692.82,700.83,704.99,713.46,715.61,720.10,720.73,722.16,729.60, 732.66,739.75,741.51,745.02,760.39,757.97,761.33,774.26,775.10,779.98, 787.46,789.27,794.94,805.24,803.79,806.79,818.86,825.21,822.14,824.75, 829.24,840.78,846.73,845.40,851.37,852.26,862.39,868.35,872.01,876.20, 883.17,883.00,887.36,894.14,907.90,908.96,913.17,911.48,920.72,923.86, 932.85,932.06,942.38,945.51,951.54,953.20,961.34,965.43,971.89,966.78, 979.02,993.34,993.00,997.67,995.37,996.19,1010.84,1014.17,1013.20,1021.58, 1026.33,1035.08,1039.62,1045.36,1041.95,1052.36,1051.39,1058.21,1064.11,1080.19, 1077.06,1082.61,1082.77,1082.29,1092.75,1106.67,1110.46,1108.48,1108.84,1121.55, 1121.65,1134.41,1135.52,1138.12,1136.91,1150.77,1158.04,1157.61,1165.83,1169.06, 1174.24,1174.25,1174.00,1186.18,1191.72,1195.63,1195.95,1200.42,1213.39,1214.75, 1223.15,1231.14,1231.29,1231.38,1238.54,1240.25,1246.13,1259.85,1266.06,1269.10, 1270.80,1277.20,1277.97,1285.65,1290.32,1291.99,1303.59,1306.74,1312.89,1314.97, 1320.44,1319.77,1331.04,1334.57,1343.13,1342.27,1349.54,1352.61,1358.23,1368.05, 1373.67,1374.99,1379.99,1379.36,1387.13,1381.86,1396.34,1395.25,1403.72,1413.80, 1420.93,1420.74,1428.10,1429.84,1428.35,1441.80,1454.55,1448.32,1453.14,1453.70, 100.90,109.86,117.81,126.28,136.87,143.78,153.04,162.47,170.98,180.74, 188.53,196.44,205.83,214.75,224.49,231.62,242.06,249.47,258.76,268.01, 277.24,283.84,293.88,302.52,310.60,320.16,329.58,339.01,345.07,355.15, 363.72,373.72,380.91,389.59,398.63,406.96,417.11,424.27,432.80,443.33, 452.83,459.63,467.86,477.35,487.43,493.04,503.98,511.72,521.24,528.21, 538.31,545.68,555.98,564.93,571.98,582.85,591.79,601.75,607.54,618.11, 626.01,636.90,644.26,652.59,660.14,669.19,677.42,689.53,695.48,706.88, 712.78,723.61,728.09,740.37,749.41,757.29,768.04,775.80,784.54,794.36, 801.66,811.68,818.26,827.41,835.81,844.78,853.56,861.14,873.83,880.54, 888.43,897.63,906.00,914.91,922.63,930.32,941.00,949.61,959.22,968.31, 978.15,983.66,993.09,1001.85,1012.69,1020.67,1028.13,1036.41,1045.53,1054.67, 1063.92,1073.19,1082.43,1088.59,1099.72,1107.61,1115.10,1125.41,1133.07,1145.15, 1152.19,1161.37,1166.68,1178.34,1183.37,1195.11,1202.69,1212.02,1220.87,1230.93, 1240.66,1245.94,1256.80,1265.15,1275.01,1281.60,1290.49,1302.24,1310.11,1317.95, 1325.29,1332.29,1344.05,1352.70,1360.41,1370.39,1378.48,1388.95,1398.14,1405.83, 1412.98,1421.84,1431.96,1438.21,1449.02,1459.95,1466.10,1477.28,1485.04,1487.66, 1500.91,1509.97,1518.90,1528.05,1534.84,1546.55,1553.78,1564.49,1569.78,1580.66, 1589.19,1596.35,1608.36,1615.06,1621.82,1633.84,1643.85,1649.16,1660.57,1667.16, 1676.10,1684.90,1690.69,1704.24,1715.41,1720.98,1726.00,1742.01,1744.67,1754.66, 1763.24,1771.77,1780.51,1790.72,1800.37,1807.16,1814.59,1826.46,1834.60,1842.51, 1849.07,1857.31,1868.24,1877.39,1885.15,1896.19,1904.05,1911.74,1924.65,1930.26, 1940.02,1947.38,1956.31,1968.22,1972.96,1983.70,1990.45,1996.75,2010.52,2017.88, 2023.91,2034.29,2042.43,2052.61,2064.03,2068.52,2081.40,2089.50,2094.42,2106.92, 2112.63,2122.39,2131.76,2141.04,2148.80,2160.83,2165.72,2170.79,2185.39,2191.41, 2204.21,2207.59,2217.57,2226.94,2236.74,2245.27,2252.03,2259.08,2272.72,2280.20, 2287.93,2301.93,2307.65,2316.89,2324.49,2333.52,2338.70,2349.27,2360.76,2367.04, 2374.85,2384.15,2393.81,2404.51,2412.06,2420.38,2429.13,2434.44,2446.74,2454.68, 2462.23,2471.42,2485.08,2491.39,2499.86,2506.50,2516.43,2526.48,2531.69,2538.41, 2553.97,2560.11,2568.29,2576.51,2584.44,2595.53,2603.58,2613.40,2622.81,2634.11, 99.45,107.46,115.64,123.06,133.84,142.01,149.55,158.95,165.95,175.65, 185.27,192.74,200.53,212.51,218.88,228.03,235.91,243.56,253.57,261.11, 267.96,278.62,288.00,294.68,303.73,310.71,320.61,328.94,337.04,345.85, 354.57,364.49,371.18,380.98,388.12,398.37,406.94,415.19,422.68,433.32, 440.50,449.86,459.41,466.36,474.82,484.93,492.38,499.73,507.75,518.06, 526.74,534.02,543.67,551.67,561.41,568.44,577.22,584.29,595.20,602.62, 611.17,621.12,630.58,636.22,646.23,656.06,662.40,671.90,678.32,688.75, 696.78,707.66,715.67,723.20,733.90,739.43,747.77,756.66,767.30,771.56, 782.63,790.46,798.28,807.68,815.77,825.24,834.71,844.23,850.50,860.92, 866.31,875.49,886.96,896.58,902.30,912.36,918.29,924.47,935.63,944.03, 954.02,962.92,970.82,979.36,988.16,995.89,1004.87,1015.51,1020.33,1028.81, 1038.33,1048.47,1056.57,1064.56,1072.61,1081.70,1090.45,1100.08,1107.58,1115.85, 1125.43,1131.01,1142.17,1148.52,1161.15,1166.38,1172.08,1182.65,1193.15,1200.60, 1210.63,1217.60,1228.04,1235.17,1245.39,1249.42,1261.55,1272.13,1278.29,1286.56, 1294.40,1306.45,1315.22,1318.11,1330.55,1336.14,1345.99,1354.68,1364.63,1371.65, 1379.71,1389.18,1399.42,1406.68,1414.75,1424.99,1430.10,1436.20,1449.57,1457.17, 1466.05,1477.01,1484.09,1494.38,1504.13,1509.90,1517.32,1523.15,1534.70,1543.52, 1550.41,1560.11,1565.56,1578.60,1583.74,1594.30,1604.36,1613.47,1618.86,1628.42, 1636.42,1646.09,1651.00,1662.05,1672.77,1681.57,1686.38,1698.23,1703.09,1713.98, 1724.33,1731.50,1738.95,1745.86,1756.07,1765.93,1772.14,1782.31,1789.82,1798.59, 1800.96,1811.85,1828.25,1831.47,1844.19,1848.40,1855.14,1868.95,1876.65,1886.38, 1894.33,1900.85,1905.75,1919.11,1923.72,1936.47,1945.34,1952.15,1961.03,1972.87, 1978.10,1987.98,1996.52,2003.75,2012.73,2024.31,2032.83,2036.43,2045.36,2057.97, 2062.32,2076.27,2084.84,2090.60,2098.89,2106.06,2115.24,2125.41,2133.85,2140.73, 2148.79,2158.63,2170.80,2176.11,2185.24,2191.69,2200.40,2209.46,2214.84,2223.63, 2235.94,2245.08,2252.35,2262.68,2269.15,2276.19,2282.52,2293.54,2304.64,2313.32, 2319.61,2329.42,2338.51,2347.70,2358.09,2363.87,2376.50,2381.32,2387.90,2399.03, 2407.43,2415.19,2422.66,2436.66,2442.74,2449.69,2458.76,2467.03,2477.00,2481.46, 2488.58,2499.57,2510.85,2518.27,2527.89,2537.69,2542.23,2551.28,2559.58,2569.15, 95.97,105.74,112.08,122.58,130.06,138.40,146.94,155.73,162.91,171.73, 180.49,187.99,196.30,205.37,213.13,222.56,228.50,238.64,245.28,255.97, 262.99,271.12,279.09,289.62,296.75,305.90,312.51,320.33,328.53,338.69, 345.98,354.60,363.93,370.73,379.43,388.14,395.39,404.04,413.58,420.94, 429.37,437.97,447.32,455.73,462.26,470.77,477.42,488.56,496.58,507.08, 513.62,523.22,528.33,537.75,546.40,555.74,562.65,569.86,579.75,587.23, 595.68,603.91,613.79,623.72,629.46,639.40,647.83,653.33,662.46,674.58, 681.00,686.75,694.62,704.18,711.99,719.96,731.20,737.56,745.79,752.95, 763.61,769.58,776.09,788.09,798.34,803.16,813.68,822.02,832.02,836.56, 846.43,854.42,862.71,870.66,880.09,887.16,896.01,903.54,917.47,921.55, 930.40,936.39,946.92,954.79,963.46,971.58,980.62,988.78,995.54,1005.13, 1014.44,1023.59,1029.35,1039.26,1044.86,1056.32,1062.74,1070.11,1082.07,1087.30, 1098.25,1103.95,1112.04,1124.53,1129.38,1138.59,1148.20,1151.31,1160.25,1172.38, 1181.54,1189.12,1195.73,1206.07,1213.66,1223.00,1228.38,1238.28,1245.18,1256.81, 1263.19,1270.28,1277.87,1287.43,1294.93,1303.78,1311.98,1321.66,1327.86,1337.91, 1346.68,1353.13,1363.08,1371.15,1380.72,1387.84,1395.91,1404.88,1412.31,1423.62, 1429.92,1437.24,1446.53,1457.96,1460.35,1470.81,1479.61,1489.88,1497.61,1506.84, 1509.61,1521.42,1533.10,1539.05,1545.32,1552.89,1565.29,1573.02,1582.84,1587.56, 1592.96,1603.97,1612.15,1621.12,1629.62,1641.94,1649.33,1652.48,1664.27,1669.64, 1679.79,1687.33,1696.88,1704.36,1712.08,1720.95,1729.95,1739.12,1746.04,1755.81, 1764.46,1769.00,1778.42,1787.35,1795.24,1808.00,1812.00,1819.29,1833.57,1837.33, 1841.57,1853.25,1864.71,1874.06,1877.58,1887.46,1897.14,1902.98,1915.23,1920.14, 1932.89,1940.33,1947.23,1952.95,1961.39,1970.52,1977.38,1988.16,1997.86,2004.02, 2014.24,2021.15,2032.21,2037.99,2047.33,2054.55,2063.25,2072.20,2080.02,2085.57, 2100.82,2107.02,2114.40,2122.40,2129.81,2139.10,2150.53,2155.22,2159.69,2172.03, 2181.82,2188.67,2192.58,2204.55,2209.07,2221.30,2234.35,2237.15,2249.14,2257.63, 2265.41,2272.60,2285.48,2288.45,2290.79,2305.02,2312.73,2319.59,2329.70,2338.31, 2345.71,2356.08,2362.89,2377.39,2376.63,2388.72,2393.32,2406.74,2413.26,2421.25, 2427.82,2437.95,2446.85,2453.99,2463.17,2469.11,2481.60,2489.19,2496.27,2503.60, 94.63,101.81,111.16,117.37,126.21,134.49,142.23,150.13,158.55,167.26, 174.06,182.59,190.72,198.21,206.24,215.06,223.46,233.44,239.71,249.43, 258.93,263.61,272.33,282.23,287.95,296.68,303.29,312.63,319.97,329.01, 338.16,344.37,351.49,361.32,369.32,379.17,385.22,394.05,401.37,408.88, 416.16,425.24,434.10,442.85,453.47,458.26,467.89,475.40,483.17,492.31, 499.24,509.75,516.69,524.53,532.59,541.20,549.54,556.39,565.79,574.71, 580.14,589.13,596.66,603.09,612.90,622.20,627.05,637.26,644.22,654.72, 660.66,672.10,679.18,687.76,696.78,701.77,710.55,718.48,726.73,733.60, 742.92,751.30,760.13,765.09,775.22,785.26,793.58,798.96,808.75,815.18, 823.04,832.96,837.68,847.48,854.32,867.08,873.09,881.81,891.24,896.43, 905.77,912.31,922.14,931.49,936.19,948.46,955.68,959.58,972.08,979.44, 986.92,995.23,999.35,1010.86,1018.80,1029.47,1035.32,1041.99,1053.50,1056.94, 1068.94,1076.07,1084.42,1092.31,1101.58,1108.12,1116.29,1124.86,1131.89,1139.97, 1145.62,1156.36,1166.02,1173.28,1181.82,1188.09,1198.24,1205.23,1215.20,1222.12, 1229.62,1236.28,1246.58,1254.85,1262.18,1270.34,1276.84,1289.04,1297.65,1305.63, 1310.30,1317.80,1325.39,1335.81,1342.47,1351.87,1359.96,1363.83,1378.55,1390.90, 1390.78,1404.13,1406.65,1415.23,1422.17,1432.85,1441.20,1451.62,1455.90,1468.86, 1473.84,1483.58,1487.66,1500.28,1507.08,1512.31,1520.25,1530.73,1538.24,1548.95, 1556.84,1564.23,1572.46,1579.37,1588.85,1591.41,1603.88,1613.26,1620.70,1630.37, 1636.55,1643.85,1651.73,1664.60,1669.24,1675.14,1685.34,1690.95,1698.88,1708.85, 1719.32,1727.48,1733.43,1741.37,1749.59,1759.47,1769.52,1771.07,1784.23,1792.42, 1796.66,1806.50,1813.66,1822.19,1828.21,1840.07,1844.17,1857.32,1866.38,1873.60, 1878.10,1885.46,1896.49,1904.54,1913.60,1920.43,1926.03,1935.35,1945.14,1951.01, 1960.92,1967.55,1974.98,1985.10,1991.87,2000.06,2010.12,2015.66,2025.50,2034.07, 2039.48,2048.66,2059.23,2067.78,2074.18,2083.64,2086.56,2098.47,2102.94,2115.66, 2125.17,2132.82,2138.14,2151.47,2154.23,2167.95,2174.66,2187.36,2185.74,2196.51, 2207.03,2215.01,2218.50,2225.45,2233.80,2243.67,2250.69,2259.97,2271.83,2272.56, 2282.92,2291.84,2305.95,2308.88,2317.45,2325.05,2334.21,2339.35,2350.85,2358.53, 2368.55,2380.66,2385.79,2391.22,2397.90,2407.03,2413.81,2417.46,2433.74,2441.32, 90.14,100.29,108.34,115.88,123.60,131.47,138.41,145.68,153.87,161.83, 171.39,177.82,185.14,194.66,203.74,210.95,216.02,225.75,233.57,242.51, 248.47,256.79,267.03,271.91,281.25,286.58,296.52,304.46,313.53,320.00, 329.06,336.26,345.75,350.17,359.12,368.24,375.82,383.05,391.29,399.62, 408.94,413.98,423.18,431.67,438.21,447.67,455.19,461.36,469.89,479.44, 483.89,491.64,501.16,510.18,516.30,525.61,535.63,540.21,550.15,558.09, 565.53,571.77,582.13,588.28,599.30,605.50,611.82,619.09,628.77,635.80, 644.72,653.24,659.43,668.09,676.11,682.86,691.04,698.37,706.94,716.84, 724.56,732.25,736.90,745.96,755.57,763.16,772.50,776.56,786.60,792.07, 798.19,810.19,818.37,822.60,835.57,840.75,849.08,856.34,864.84,873.42, 880.21,889.54,898.76,902.92,913.50,920.38,928.24,935.37,943.15,948.52, 961.43,967.76,973.95,983.76,992.09,1000.37,1009.51,1016.19,1024.67,1030.56, 1036.65,1046.61,1057.18,1060.58,1068.64,1080.16,1088.07,1093.59,1097.05,1110.31, 1119.40,1131.57,1130.65,1139.76,1146.55,1153.22,1163.25,1172.09,1177.49,1188.18, 1198.36,1207.62,1213.92,1217.36,1231.05,1235.10,1245.76,1252.74,1261.34,1268.28, 1275.86,1283.41,1294.47,1300.61,1306.42,1316.13,1325.33,1336.13,1337.68,1342.98, 1356.69,1360.41,1373.86,1375.08,1386.58,1395.22,1402.46,1411.15,1417.10,1424.37, 1432.40,1438.01,1449.06,1454.87,1463.07,1471.99,1479.10,1490.27,1494.61,1503.76, 1510.65,1517.31,1527.11,1538.55,1544.74,1553.75,1560.79,1569.20,1578.96,1584.31, 1589.84,1600.02,1607.50,1615.58,1620.76,1631.55,1640.41,1644.42,1652.22,1664.72, 1669.47,1675.98,1684.45,1697.05,1704.28,1708.95,1721.06,1725.57,1732.97,1741.45, 1753.39,1758.74,1768.24,1773.89,1782.66,1790.45,1792.09,1806.33,1812.15,1822.51, 1826.55,1835.55,1844.24,1851.59,1860.63,1864.59,1876.36,1888.72,1890.00,1896.96, 1906.41,1918.04,1920.99,1930.73,1938.68,1948.14,1958.58,1958.16,1966.92,1979.18, 1986.96,1993.26,2005.34,2014.62,2016.76,2024.64,2029.13,2041.59,2047.96,2054.58, 2066.32,2071.26,2083.58,2091.51,2097.25,2107.64,2118.80,2121.16,2129.80,2140.85, 2145.64,2149.38,2158.59,2173.57,2179.08,2187.81,2190.40,2200.47,2208.91,2216.68, 2228.24,2228.96,2239.91,2243.13,2253.89,2265.65,2270.18,2275.55,2285.22,2294.19, 2306.62,2306.00,2312.81,2324.75,2333.72,2346.31,2346.92,2358.05,2366.69,2369.08, 87.56,95.87,102.37,111.87,119.97,126.64,133.43,143.27,150.96,156.92, 166.25,174.09,180.47,188.69,196.25,203.85,212.41,218.91,227.91,234.44, 242.24,250.44,258.22,266.38,273.68,281.27,288.62,295.56,303.57,312.81, 320.39,325.34,334.12,340.96,348.56,357.42,364.56,373.18,377.44,390.29, 395.71,402.69,410.40,418.62,427.64,434.15,441.91,449.92,454.20,463.48, 474.82,480.47,486.35,497.79,501.62,510.91,518.39,525.57,535.73,543.75, 545.59,558.23,565.90,570.59,577.56,586.48,594.38,602.14,610.66,619.42, 625.69,631.78,636.04,648.55,655.77,663.97,671.85,677.67,686.59,696.19, 701.90,709.27,717.41,725.98,734.10,739.72,750.22,759.78,760.33,772.80, 780.44,784.98,797.24,802.32,808.49,817.25,824.39,833.78,841.74,847.55, 857.76,862.55,872.56,879.34,886.31,890.33,903.24,912.67,919.90,925.49, 931.79,939.07,950.75,955.38,960.97,970.69,977.36,989.28,991.54,1002.52, 1007.80,1014.51,1026.10,1032.59,1038.46,1046.13,1057.37,1063.20,1071.31,1081.30, 1085.56,1093.75,1097.48,1109.60,1120.22,1127.02,1132.70,1136.66,1147.07,1152.37, 1164.12,1169.91,1180.78,1184.29,1194.67,1199.05,1208.97,1215.40,1227.07,1230.32, 1240.28,1246.00,1258.50,1263.20,1269.55,1282.48,1285.39,1295.46,1302.35,1308.58, 1316.63,1321.82,1333.48,1338.07,1347.89,1350.80,1361.74,1369.75,1376.07,1389.28, 1391.57,1401.86,1408.78,1413.28,1419.88,1433.53,1437.89,1446.22,1458.16,1462.77, 1473.48,1477.92,1485.65,1490.67,1498.59,1509.30,1516.75,1523.40,1530.71,1538.15, 1550.66,1553.58,1562.83,1569.46,1575.67,1582.38,1594.74,1600.07,1612.31,1609.72, 1623.80,1628.76,1639.30,1644.98,1656.02,1656.70,1666.48,1674.98,1682.20,1692.98, 1708.40,1707.27,1711.98,1723.42,1731.45,1736.09,1746.80,1756.05,1764.97,1767.85, 1776.57,1785.33,1791.90,1798.75,1807.47,1811.45,1823.23,1827.76,1837.24,1846.04, 1854.06,1858.04,1869.52,1868.88,1886.98,1892.18,1902.32,1907.19,1912.26,1922.51, 1934.38,1936.33,1943.94,1956.78,1957.91,1966.40,1977.53,1982.01,1985.24,1997.47, 2008.12,2012.88,2024.37,2027.57,2042.94,2047.30,2056.29,2059.17,2069.00,2074.68, 2081.72,2084.51,2100.61,2110.54,2118.83,2121.21,2131.34,2138.20,2145.74,2157.16, 2157.84,2167.90,2173.84,2182.29,2189.66,2198.60,2206.99,2218.36,2221.48,2230.31, 2240.05,2245.30,2245.68,2257.68,2269.85,2277.76,2283.33,2291.59,2298.19,2299.08, 85.42,93.89,100.70,109.17,115.77,122.66,132.88,138.53,145.47,154.76, 160.62,166.86,175.14,184.45,191.11,197.07,203.44,211.47,220.89,227.09, 236.18,243.09,250.74,256.54,266.80,271.41,279.92,287.38,295.24,302.21, 310.23,318.55,323.95,335.46,336.51,346.34,353.41,361.17,369.67,379.36, 385.17,391.27,399.86,404.59,415.25,422.91,425.91,434.84,443.75,451.60, 460.59,466.63,473.11,481.85,488.92,496.82,503.20,512.38,517.78,526.15, 535.21,537.07,547.62,556.45,561.65,567.76,578.57,584.73,594.24,598.08, 607.73,614.06,624.17,631.76,640.23,644.03,653.08,661.47,666.57,674.20, 682.65,689.75,695.57,702.38,711.46,720.03,724.14,733.96,742.18,747.99, 759.03,763.07,770.16,779.97,787.04,793.55,803.57,812.38,813.87,822.65, 827.95,835.11,845.87,851.37,860.92,866.27,873.21,886.11,888.53,895.44, 901.22,907.87,921.46,925.56,931.16,942.71,950.77,958.61,963.74,975.05, 982.84,990.12,991.60,1002.69,1010.23,1021.08,1022.97,1030.95,1040.42,1050.98, 1055.48,1062.02,1069.74,1077.20,1083.01,1091.06,1099.91,1103.84,1112.25,1123.24, 1129.18,1137.31,1139.78,1154.18,1160.14,1167.19,1170.78,1178.78,1188.79,1196.84, 1203.90,1216.15,1221.67,1225.80,1231.57,1239.08,1247.56,1251.32,1261.80,1269.68, 1280.24,1282.34,1290.68,1300.49,1307.45,1314.51,1321.30,1327.70,1335.73,1347.67, 1349.39,1359.60,1374.10,1377.27,1377.49,1390.52,1398.95,1403.93,1408.97,1418.00, 1425.80,1432.06,1441.16,1445.69,1459.62,1462.51,1468.21,1477.72,1483.81,1494.37, 1502.68,1511.16,1514.51,1523.15,1524.26,1544.29,1549.07,1552.07,1559.04,1575.78, 1571.14,1582.51,1589.55,1594.34,1609.11,1615.74,1619.31,1629.55,1634.60,1639.39, 1650.51,1658.16,1667.19,1672.32,1681.33,1691.12,1695.88,1704.84,1707.73,1717.89, 1725.29,1732.08,1737.52,1748.52,1754.44,1761.63,1771.66,1773.74,1783.63,1794.61, 1801.08,1814.60,1813.09,1820.40,1829.56,1835.16,1844.78,1852.90,1863.78,1867.25, 1875.65,1882.57,1893.28,1894.61,1900.24,1911.05,1918.09,1927.93,1936.07,1951.76, 1953.73,1958.22,1962.73,1970.78,1978.50,1985.90,1992.94,1998.82,2002.54,2013.19, 2025.86,2035.08,2039.13,2045.14,2049.59,2055.65,2072.35,2078.85,2084.37,2091.07, 2097.18,2102.40,2114.87,2121.85,2125.07,2130.20,2142.77,2153.18,2153.98,2163.31, 2173.56,2182.07,2191.01,2192.25,2205.72,2206.72,2207.65,2228.48,2229.26,2235.59, 83.05,90.77,98.02,105.57,112.12,120.15,127.40,132.41,142.51,150.40, 157.26,163.91,171.26,178.43,184.88,191.44,203.82,206.58,212.68,219.51, 228.79,234.91,240.61,250.18,257.92,262.44,271.07,278.23,285.31,290.60, 301.56,306.73,313.24,321.24,330.56,335.36,343.93,351.08,359.76,364.75, 370.67,380.45,387.09,394.28,401.56,409.15,415.19,425.39,429.71,438.76, 442.87,452.20,459.68,465.55,474.23,479.92,487.03,493.96,502.51,507.63, 515.78,524.75,530.03,538.26,544.08,554.28,559.07,564.96,575.69,582.44, 589.49,596.50,600.73,610.26,618.25,623.29,632.03,637.57,646.36,654.33, 663.70,672.71,673.36,683.97,690.02,697.17,703.43,712.24,721.12,724.87, 734.33,743.31,745.30,756.34,761.79,767.97,777.87,783.59,791.69,796.18, 805.86,809.94,819.94,827.73,832.50,843.97,850.38,856.01,862.28,868.90, 876.66,885.15,898.50,898.08,905.84,911.02,921.89,926.82,940.93,946.30, 947.92,956.62,963.90,971.35,979.99,987.22,993.41,1001.32,1008.72,1016.01, 1023.20,1027.78,1036.61,1042.33,1053.07,1056.86,1066.49,1073.25,1081.85,1089.57, 1096.52,1102.78,1108.00,1113.42,1121.02,1131.85,1136.80,1145.52,1153.40,1162.12, 1164.60,1174.16,1180.52,1186.93,1194.16,1201.69,1209.79,1216.58,1227.72,1231.45, 1235.19,1242.80,1252.59,1263.55,1271.32,1275.70,1283.51,1288.50,1296.03,1304.50, 1309.18,1317.08,1323.09,1332.39,1340.77,1342.86,1353.23,1361.86,1372.86,1379.66, 1385.05,1389.39,1395.20,1406.83,1412.79,1418.62,1426.96,1439.03,1438.63,1449.60, 1452.27,1462.85,1466.36,1474.32,1483.06,1490.27,1499.23,1508.56,1514.37,1519.80, 1526.54,1536.38,1540.34,1544.79,1559.37,1568.81,1572.04,1581.17,1586.14,1591.87, 1600.14,1605.52,1617.13,1622.51,1631.37,1636.52,1647.18,1651.50,1657.65,1665.15, 1667.41,1679.78,1689.13,1696.23,1698.16,1712.83,1718.17,1723.20,1727.14,1739.40, 1744.98,1751.00,1755.82,1764.22,1775.59,1777.46,1790.95,1795.60,1802.12,1809.75, 1814.98,1825.18,1828.29,1835.01,1845.48,1852.07,1855.75,1864.25,1874.83,1876.00, 1893.96,1893.98,1901.03,1916.63,1913.63,1923.53,1931.86,1939.21,1944.08,1951.24, 1961.35,1975.78,1978.84,1988.63,1993.22,1999.01,2002.39,2014.81,2020.43,2026.46, 2029.95,2037.78,2049.92,2056.78,2061.52,2067.26,2077.35,2084.22,2091.31,2093.04, 2110.71,2109.83,2123.82,2128.10,2134.76,2140.93,2150.92,2153.88,2162.74,2169.23, 80.57,88.39,94.37,102.47,107.92,115.07,124.30,131.55,136.87,144.40, 149.73,159.70,165.80,172.32,181.71,186.32,194.93,201.06,205.90,213.37, 218.14,229.62,233.49,242.18,248.35,254.85,263.62,267.61,274.78,282.96, 291.62,297.39,305.49,313.02,322.30,324.36,332.51,342.16,346.53,353.82, 362.11,370.43,376.41,381.52,387.36,395.81,400.27,410.74,416.51,422.45, 429.64,437.77,443.57,449.82,459.71,466.38,472.12,481.17,488.65,495.72, 501.09,510.73,514.84,520.29,529.38,537.02,540.15,548.03,558.22,563.67, 571.29,580.83,584.22,589.24,602.67,603.99,613.92,619.28,625.82,638.32, 638.88,644.90,654.58,662.28,668.02,676.16,680.91,693.63,698.77,703.02, 708.35,716.37,729.30,728.38,735.90,743.46,754.92,757.98,766.95,771.82, 779.04,785.57,793.51,801.92,807.90,813.08,823.07,833.66,837.93,842.62, 848.35,860.79,866.03,874.67,874.97,891.97,892.16,898.24,904.79,915.40, 919.62,932.62,939.03,938.51,944.13,954.00,961.87,973.74,977.26,983.75, 988.88,998.35,1003.68,1012.31,1019.48,1023.85,1027.58,1042.10,1042.19,1055.19, 1060.24,1067.38,1075.29,1083.60,1085.47,1091.47,1103.43,1106.08,1120.77,1126.88, 1128.39,1136.59,1140.85,1146.39,1156.74,1171.00,1173.48,1182.40,1183.99,1193.70, 1203.30,1209.58,1213.18,1224.73,1227.80,1230.03,1243.62,1251.16,1253.77,1262.49, 1266.70,1282.01,1284.86,1292.24,1299.19,1306.97,1307.74,1320.20,1327.02,1330.16, 1338.18,1347.69,1354.00,1367.08,1365.88,1376.10,1382.95,1388.23,1397.83,1405.94, 1414.11,1420.96,1425.65,1429.00,1439.99,1449.34,1452.64,1457.24,1469.36,1473.05, 1477.59,1481.07,1493.39,1503.09,1505.69,1515.60,1523.34,1528.11,1532.62,1543.42, 1550.73,1553.25,1562.28,1571.16,1577.71,1582.35,1596.61,1603.73,1604.88,1615.12, 1619.86,1627.29,1634.16,1641.62,1647.82,1650.96,1663.12,1671.28,1673.77,1681.68, 1695.78,1699.57,1703.76,1709.06,1720.51,1724.28,1724.50,1737.58,1743.73,1756.75, 1757.67,1764.59,1770.68,1782.92,1792.85,1788.43,1798.54,1808.69,1815.82,1826.04, 1829.43,1839.45,1842.93,1849.22,1851.49,1864.58,1868.51,1877.61,1882.80,1894.37, 1897.08,1907.12,1908.22,1922.33,1929.05,1934.67,1941.94,1951.37,1954.62,1960.57, 1973.02,1974.76,1978.44,1994.47,1994.59,2007.58,2008.81,2014.95,2023.03,2029.23, 2039.83,2044.18,2051.76,2061.72,2062.92,2074.95,2079.37,2094.01,2099.43,2103.72, 79.08,85.56,91.25,97.85,105.15,111.59,119.65,125.85,131.87,139.55, 145.22,153.25,159.45,166.75,172.31,178.69,188.62,194.37,198.88,205.18, 214.31,220.53,226.41,235.49,241.82,246.24,255.28,258.91,267.27,274.51, 281.10,287.92,294.22,299.95,310.11,313.26,319.81,330.08,335.02,341.59, 351.48,355.44,362.67,370.57,378.99,384.86,390.74,394.87,402.75,409.26, 420.59,425.42,429.28,438.66,441.59,451.53,457.91,462.86,472.19,479.16, 480.90,489.89,497.16,506.64,510.19,517.57,524.53,532.85,535.74,545.41, 553.83,556.11,567.43,573.76,583.17,585.89,590.40,598.17,605.88,611.74, 617.29,625.92,632.85,640.65,649.31,653.56,658.96,668.70,673.97,677.27, 687.03,697.19,693.61,707.48,714.15,721.82,731.45,738.60,742.79,747.81, 749.14,764.59,769.12,774.37,781.52,791.14,801.73,801.45,811.19,818.28, 818.88,829.54,835.32,846.23,850.16,857.74,864.68,871.11,876.94,882.50, 890.18,901.22,905.29,919.11,923.41,925.52,932.25,937.44,944.51,952.11, 957.78,963.70,973.46,984.55,988.52,990.41,1001.45,1009.99,1012.84,1019.64, 1028.65,1028.41,1037.27,1047.72,1052.43,1058.82,1067.20,1072.85,1080.21,1087.74, 1093.10,1108.69,1104.06,1111.16,1121.15,1121.40,1131.87,1143.39,1149.93,1154.86, 1161.40,1169.08,1177.26,1181.05,1189.99,1194.07,1201.20,1211.00,1218.01,1221.90, 1232.45,1241.05,1247.27,1252.74,1258.59,1264.43,1270.80,1277.92,1283.30,1292.43, 1302.44,1300.28,1308.59,1317.02,1322.37,1332.99,1336.10,1346.57,1353.90,1356.69, 1362.36,1371.01,1374.37,1381.81,1392.72,1405.65,1404.07,1408.82,1415.54,1424.33, 1430.21,1439.99,1445.83,1453.94,1466.40,1463.50,1473.98,1475.40,1491.38,1495.25, 1495.76,1503.82,1514.64,1519.40,1525.39,1533.33,1539.35,1550.25,1554.00,1560.51, 1569.27,1572.91,1582.38,1593.41,1594.60,1599.41,1605.56,1615.82,1624.61,1631.61, 1637.59,1644.13,1653.52,1653.33,1671.30,1671.86,1673.65,1683.12,1693.66,1701.25, 1703.28,1713.66,1717.85,1720.22,1730.18,1742.67,1744.82,1744.10,1764.01,1761.61, 1770.07,1779.88,1786.91,1792.93,1795.75,1804.49,1815.81,1824.71,1818.27,1834.29, 1840.61,1845.51,1848.95,1870.39,1868.89,1873.26,1875.06,1889.85,1893.73,1897.05, 1911.96,1915.31,1922.64,1931.26,1931.64,1940.21,1945.43,1954.18,1957.05,1963.35, 1974.71,1985.09,1989.56,1994.90,1997.99,2004.12,2015.55,2016.75,2027.64,2033.85, 76.82,82.09,87.58,96.30,100.18,106.58,115.73,121.79,128.10,133.20, 141.62,148.50,153.55,161.41,167.48,174.12,180.84,186.40,193.19,201.06, 204.87,210.69,220.36,227.90,234.19,238.41,247.52,249.91,259.19,264.44, 272.35,277.82,285.32,290.95,300.05,305.85,312.19,319.12,326.68,332.69, 336.89,344.28,350.51,357.68,364.82,369.33,374.99,382.06,393.05,396.91, 406.39,409.43,414.98,422.92,430.48,437.26,438.77,448.65,453.37,462.73, 468.06,475.65,484.05,486.19,492.54,502.98,507.50,512.86,525.46,528.51, 536.02,541.44,546.97,557.33,562.18,563.29,571.16,579.09,582.11,590.67, 603.21,608.00,611.19,617.76,628.09,631.57,635.85,644.59,653.34,658.21, 659.27,672.15,677.66,685.07,693.66,696.34,707.87,710.12,715.20,724.54, 731.30,737.61,747.38,753.04,754.29,762.52,767.37,777.62,786.57,790.46, 798.95,801.66,807.38,817.83,820.48,829.42,838.73,838.18,847.04,852.25, 863.73,865.58,874.84,879.33,887.95,891.66,906.24,904.35,909.88,924.12, 924.83,934.00,937.58,944.29,957.45,963.68,966.61,980.38,978.43,988.73, 990.27,1000.28,1003.35,1009.91,1020.87,1031.88,1035.45,1032.65,1048.58,1051.03, 1061.16,1061.45,1067.42,1081.35,1085.09,1093.89,1097.22,1103.72,1118.51,1114.64, 1124.63,1132.33,1137.23,1141.89,1152.77,1161.51,1163.05,1168.59,1176.04,1187.82, 1190.10,1188.61,1205.99,1212.71,1215.69,1222.30,1230.23,1229.67,1241.43,1252.06, 1252.10,1258.34,1274.30,1277.87,1282.65,1283.05,1297.57,1299.93,1310.01,1313.24, 1321.21,1328.46,1328.18,1340.51,1346.09,1353.96,1356.64,1375.69,1373.83,1381.50, 1379.50,1397.79,1398.92,1402.48,1416.40,1418.45,1424.10,1437.07,1434.95,1444.75, 1450.66,1456.72,1470.99,1474.79,1473.51,1485.69,1488.84,1499.80,1500.51,1513.31, 1515.77,1519.31,1527.25,1544.63,1547.13,1548.62,1556.38,1561.75,1559.26,1582.14, 1583.17,1589.18,1593.62,1598.78,1612.49,1614.13,1627.78,1629.50,1632.28,1644.34, 1661.36,1656.84,1655.98,1670.85,1674.44,1683.55,1690.48,1688.80,1703.16,1709.41, 1712.33,1717.05,1725.21,1727.55,1736.22,1744.51,1749.34,1763.43,1765.19,1766.31, 1780.94,1786.04,1789.05,1795.87,1803.93,1807.49,1820.25,1819.87,1831.31,1828.01, 1850.67,1853.13,1858.83,1861.36,1868.25,1873.10,1887.63,1886.12,1896.44,1905.11, 1906.23,1917.83,1923.96,1927.48,1936.48,1935.45,1955.60,1955.76,1967.76,1970.96, 71.31,76.43,88.16,92.96,99.10,103.92,110.68,114.51,126.02,128.90, 136.95,142.16,148.04,154.83,163.62,168.19,174.19,181.31,186.62,191.48, 200.45,208.47,212.34,218.47,223.47,229.54,237.99,244.63,249.11,256.48, 261.39,266.87,277.53,281.96,285.77,293.32,299.57,306.74,315.65,321.90, 325.11,331.36,341.42,346.86,352.90,357.58,363.72,370.87,379.19,384.72, 391.98,395.36,400.94,408.93,416.03,417.77,428.14,437.09,435.81,448.58, 455.69,453.68,466.00,469.53,481.12,487.35,492.04,493.51,501.69,508.52, 516.83,521.65,525.92,534.68,540.73,548.55,553.01,564.79,566.10,572.34, 576.83,589.17,595.23,598.64,604.88,615.57,619.79,623.58,631.84,635.12, 646.36,652.02,659.12,660.84,666.48,671.70,680.40,690.05,693.27,699.23, 709.48,712.83,717.35,726.45,730.86,737.09,741.68,746.44,754.81,760.64, 771.67,775.72,786.17,790.06,794.59,803.78,807.83,816.12,820.58,830.07, 839.41,841.00,845.40,848.88,855.78,862.77,870.35,875.67,884.28,892.72, 890.55,901.43,912.26,912.76,922.34,928.79,936.51,943.47,946.80,951.13, 962.22,963.65,972.73,977.64,991.74,986.94,992.32,1002.43,1011.21,1013.16, 1023.40,1033.93,1036.51,1047.99,1045.59,1057.64,1061.85,1071.14,1077.07,1075.87, 1081.63,1096.65,1095.88,1103.77,1112.47,1114.78,1127.52,1131.90,1133.67,1143.35, 1154.25,1159.34,1165.03,1164.55,1179.80,1179.01,1186.45,1192.27,1199.74,1204.30, 1216.71,1217.00,1220.81,1231.55,1234.26,1243.72,1245.80,1258.29,1264.01,1266.33, 1271.13,1279.07,1286.15,1298.47,1302.60,1309.56,1309.07,1314.46,1320.10,1331.74, 1343.10,1345.05,1357.64,1359.19,1368.55,1379.45,1378.49,1383.57,1390.79,1395.74, 1403.84,1408.70,1413.24,1420.67,1430.66,1435.91,1440.91,1450.55,1444.83,1460.31, 1463.96,1472.53,1475.46,1490.31,1494.80,1497.37,1505.15,1512.07,1517.63,1521.97, 1527.73,1531.84,1546.97,1540.45,1552.39,1558.80,1567.63,1576.24,1587.80,1586.48, 1585.71,1604.35,1604.54,1602.42,1616.01,1622.26,1627.86,1633.68,1641.02,1655.65, 1660.28,1669.80,1664.01,1670.10,1678.73,1682.58,1692.27,1698.04,1704.14,1708.65, 1718.43,1726.39,1735.61,1744.19,1740.98,1752.31,1752.60,1762.02,1773.26,1779.07, 1782.56,1783.39,1795.96,1807.25,1810.98,1813.40,1817.86,1829.29,1837.63,1838.79, 1845.93,1856.59,1859.03,1863.06,1873.27,1875.34,1880.33,1893.52,1893.48,1900.32, 70.78,77.62,83.81,89.42,95.68,101.77,107.72,113.13,120.58,125.27, 131.48,136.86,141.03,151.59,157.63,161.44,168.30,176.23,178.56,186.51, 192.46,201.22,205.16,210.17,217.51,226.62,229.34,236.35,240.75,250.11, 253.61,261.01,268.24,275.42,278.98,285.91,288.99,296.97,304.61,307.93, 316.18,319.43,328.65,334.89,339.88,345.32,352.98,355.68,365.88,368.57, 376.33,382.39,389.45,397.35,399.86,404.72,411.82,420.29,427.33,431.60, 441.01,446.49,451.10,457.06,461.28,467.25,475.91,478.73,484.28,490.66, 497.70,504.83,508.81,517.49,528.31,530.43,534.66,542.03,550.64,554.76, 558.25,567.18,569.78,577.10,581.45,592.49,600.48,600.43,610.37,614.62, 619.80,633.05,631.21,636.71,644.73,653.63,659.03,667.97,667.23,676.98, 683.69,693.64,696.91,699.69,708.30,712.26,717.97,726.78,731.22,739.24, 739.50,745.84,755.38,758.43,772.55,769.76,775.97,787.77,793.51,799.09, 803.05,809.49,813.64,826.87,832.02,832.99,841.56,842.22,851.34,861.58, 864.93,873.85,878.16,883.43,889.98,893.69,901.95,908.92,919.15,921.26, 930.03,931.45,938.30,947.12,952.73,953.31,965.18,971.06,974.24,983.79, 985.03,992.83,994.84,1003.62,1011.01,1013.02,1026.41,1029.61,1042.70,1040.38, 1048.73,1056.21,1059.71,1064.05,1077.68,1080.78,1083.42,1091.15,1100.99,1108.61, 1111.93,1118.46,1116.47,1129.09,1125.82,1139.80,1145.91,1154.52,1163.96,1171.07, 1174.08,1175.18,1184.86,1190.13,1199.67,1198.97,1206.22,1217.90,1221.03,1227.94, 1229.18,1237.16,1242.45,1249.57,1256.94,1261.66,1271.27,1276.89,1277.07,1290.16, 1289.96,1295.08,1306.44,1303.40,1315.71,1325.44,1327.68,1330.55,1337.71,1345.91, 1353.59,1356.43,1367.56,1369.44,1379.82,1384.42,1393.68,1390.88,1402.94,1412.13, 1417.51,1419.81,1427.88,1431.27,1438.45,1441.74,1446.65,1459.32,1464.81,1471.41, 1474.76,1476.88,1492.71,1493.30,1498.66,1508.66,1514.53,1521.28,1524.16,1535.49, 1536.17,1543.06,1549.29,1559.54,1569.28,1564.93,1573.30,1582.74,1582.75,1591.19, 1596.31,1598.94,1613.01,1620.97,1625.65,1627.93,1637.37,1644.63,1641.96,1655.30, 1651.65,1663.34,1668.77,1681.20,1682.16,1691.06,1691.88,1696.42,1711.35,1713.25, 1722.62,1729.76,1731.94,1742.10,1752.78,1747.98,1764.70,1759.14,1768.48,1774.00, 1789.16,1787.42,1797.24,1790.92,1803.02,1803.52,1816.68,1828.18,1823.55,1838.21, 68.99,75.57,80.82,86.39,91.67,99.06,102.30,108.58,117.14,122.17, 127.44,133.27,139.30,143.97,152.44,155.55,161.26,170.53,176.49,183.08, 183.71,193.35,197.53,205.81,209.55,213.62,221.84,225.77,233.83,239.10, 244.26,249.69,258.58,261.63,266.87,274.37,279.90,285.98,291.94,300.05, 304.72,304.30,313.04,325.61,331.15,331.91,338.36,345.82,350.81,355.48, 365.73,368.85,374.88,381.62,387.03,394.34,399.29,405.11,409.69,416.55, 423.32,425.48,430.28,443.46,444.62,447.68,455.30,461.95,469.82,479.98, 479.95,484.89,491.84,498.03,500.41,505.68,519.77,522.03,534.53,533.48, 538.12,547.28,551.86,557.16,567.70,569.11,577.79,584.70,588.92,587.71, 602.16,605.32,613.42,615.45,622.44,631.36,637.46,641.84,647.23,656.75, 662.56,666.19,668.35,677.06,678.55,686.28,689.35,702.39,703.64,709.12, 713.71,724.59,730.66,735.96,743.50,747.14,756.93,758.39,763.28,772.58, 775.21,779.52,785.22,794.44,801.78,809.25,812.23,820.58,822.03,827.71, 837.10,837.78,849.69,854.62,861.62,865.66,873.10,881.54,874.84,885.98, 893.25,897.05,902.98,907.95,915.75,920.00,929.47,936.71,939.17,948.95, 945.55,959.81,965.54,966.75,984.45,984.39,983.05,993.55,1001.31,1002.78, 1012.24,1018.17,1020.99,1026.12,1035.86,1038.41,1045.79,1048.62,1060.47,1068.34, 1074.84,1081.18,1082.22,1084.84,1093.66,1105.88,1100.95,1109.86,1122.07,1126.34, 1125.95,1137.75,1141.15,1149.25,1141.95,1156.50,1163.11,1158.37,1172.70,1182.43, 1195.40,1198.24,1199.93,1205.77,1218.15,1225.35,1223.14,1233.94,1236.52,1243.63, 1249.65,1253.21,1262.41,1268.67,1272.06,1277.40,1281.37,1290.43,1292.42,1293.99, 1308.36,1308.62,1317.03,1324.92,1324.75,1335.07,1343.75,1345.07,1359.97,1357.57, 1371.87,1372.16,1379.59,1380.49,1395.82,1396.15,1398.93,1407.69,1414.57,1419.62, 1425.56,1428.14,1430.42,1443.91,1450.36,1455.25,1455.42,1458.54,1472.66,1476.97, 1485.09,1485.00,1497.87,1500.93,1507.19,1512.30,1514.73,1522.77,1531.75,1542.85, 1546.05,1544.58,1561.06,1563.94,1568.85,1570.72,1577.80,1583.11,1586.49,1591.42, 1601.22,1606.07,1616.84,1626.82,1627.35,1631.48,1635.82,1644.55,1652.59,1656.79, 1656.38,1663.88,1676.16,1680.95,1683.76,1683.31,1693.91,1708.35,1711.41,1706.64, 1720.50,1723.85,1730.71,1730.99,1744.97,1751.33,1759.00,1757.40,1768.76,1774.65, 66.00,70.54,76.11,85.05,86.87,96.40,98.33,104.78,111.11,119.07, 120.15,128.55,134.35,141.05,144.15,152.94,157.62,163.61,169.06,171.47, 177.80,187.09,190.74,197.50,202.54,206.76,214.29,219.74,224.63,231.59, 238.07,242.65,247.23,253.61,259.14,263.07,273.34,276.50,283.56,287.93, 292.55,299.88,304.41,308.73,314.75,320.52,326.35,333.38,339.38,344.53, 348.90,354.20,362.06,364.99,368.84,379.10,385.64,392.61,396.29,399.23, 406.23,412.29,420.65,423.89,431.49,436.15,442.89,445.90,453.14,461.19, 462.66,472.61,473.33,482.76,492.88,489.87,497.27,501.14,507.42,516.29, 523.26,524.57,531.21,542.22,545.29,546.17,552.36,562.58,560.24,568.63, 576.16,577.52,590.92,594.30,600.04,614.98,611.34,616.64,625.86,627.12, 639.53,638.94,648.14,651.96,652.85,666.46,668.31,671.31,681.99,687.33, 690.92,693.63,703.71,711.04,706.26,719.41,724.04,734.11,739.27,739.61, 750.48,756.44,760.80,767.62,777.68,773.27,785.83,784.38,791.48,801.79, 800.93,805.99,816.07,822.75,820.99,835.18,836.47,847.53,845.43,854.50, 863.32,874.84,875.50,876.08,881.49,886.58,892.57,906.55,910.96,909.52, 921.38,919.58,928.89,942.47,941.40,945.97,957.58,951.39,964.66,968.97, 978.63,976.65,983.72,996.95,999.18,1005.76,1012.90,1015.21,1019.70,1035.65, 1028.42,1037.27,1038.72,1048.43,1051.30,1059.47,1067.89,1070.06,1081.93,1089.63, 1088.31,1097.71,1101.47,1107.32,1115.18,1115.37,1124.96,1133.60,1134.28,1140.71, 1148.55,1155.00,1155.74,1162.02,1167.21,1171.55,1181.79,1176.55,1199.13,1198.18, 1199.69,1211.15,1217.21,1211.54,1229.53,1231.73,1237.83,1243.45,1246.79,1253.45, 1255.22,1266.87,1270.53,1272.34,1290.92,1295.04,1295.43,1298.63,1302.07,1307.07, 1320.93,1326.69,1323.76,1331.58,1339.15,1339.72,1350.64,1359.56,1370.62,1370.72, 1371.77,1375.06,1379.63,1391.66,1394.92,1402.73,1408.33,1415.74,1418.01,1421.34, 1435.18,1443.03,1445.00,1439.17,1451.48,1458.72,1468.56,1470.58,1481.48,1478.91, 1493.60,1493.41,1497.24,1504.36,1505.64,1520.55,1524.90,1531.80,1528.04,1533.72, 1540.61,1550.32,1551.69,1561.01,1572.25,1579.08,1576.55,1584.57,1595.91,1594.76, 1593.01,1604.16,1612.66,1614.56,1632.09,1626.81,1636.59,1640.22,1643.61,1653.83, 1664.35,1663.02,1669.93,1675.42,1687.93,1689.50,1689.51,1694.24,1707.42,1709.69 }; static float sdNumAnchorBases[] = { 10.47,11.01,11.78,12.26,12.43,13.04,13.75,14.08,14.11,14.49, 14.74,15.81,15.99,15.62,16.58,17.02,16.57,17.20,18.15,17.63, 18.48,19.41,18.70,19.14,19.41,20.03,20.56,20.43,20.46,21.47, 21.07,21.28,21.95,22.04,21.45,21.87,21.85,22.52,23.14,22.68, 24.44,24.88,25.07,24.79,24.77,24.21,24.11,25.63,24.57,25.71, 26.63,25.26,25.82,26.59,27.08,27.18,26.79,27.40,27.87,28.39, 28.63,28.69,28.37,28.13,29.13,28.40,28.26,28.58,30.29,29.36, 29.27,30.63,30.50,30.40,30.47,31.36,31.66,32.16,30.65,31.06, 31.33,33.04,31.60,31.30,32.57,32.25,33.19,34.46,33.39,33.76, 35.66,35.45,34.05,33.60,34.05,33.54,35.39,33.48,33.98,35.37, 35.47,35.37,34.47,34.45,35.48,37.37,36.96,35.51,35.45,36.88, 36.00,37.86,37.11,36.21,36.95,37.47,37.76,36.66,36.94,39.30, 38.64,40.25,37.89,39.25,39.20,39.72,38.75,38.20,39.80,38.60, 39.18,39.95,39.50,40.05,39.19,39.39,39.75,40.84,41.96,40.90, 41.09,41.94,42.65,42.19,42.44,41.95,43.42,40.38,41.79,42.58, 42.63,43.22,41.99,44.15,43.54,42.93,42.62,44.10,43.52,45.30, 44.53,43.04,43.82,41.83,44.01,45.10,43.07,43.83,44.61,44.22, 45.09,44.35,43.61,45.44,44.24,45.08,46.18,46.11,44.42,46.81, 47.87,46.86,47.20,46.83,47.57,47.77,46.85,48.27,47.12,45.91, 47.64,46.51,46.94,46.54,47.73,46.77,47.58,48.01,49.24,48.48, 49.64,50.33,47.30,49.43,49.17,49.16,49.40,49.20,50.15,50.35, 50.16,50.48,50.41,52.25,49.77,51.13,49.52,51.88,49.93,49.93, 51.53,51.99,50.03,52.41,52.12,52.67,51.51,52.13,53.48,51.00, 55.47,53.08,54.04,52.05,54.49,53.65,54.21,52.09,54.54,52.10, 53.39,52.05,53.08,52.88,53.47,54.10,55.17,53.77,53.75,52.87, 54.31,51.63,54.04,51.98,52.86,52.60,53.18,53.72,55.21,53.85, 55.10,55.41,55.97,54.85,57.14,55.80,54.56,54.35,57.05,55.40, 54.66,56.53,57.00,56.78,56.06,57.99,56.74,57.98,56.36,57.59, 57.44,56.94,58.87,58.33,59.83,56.46,59.84,58.13,60.17,58.25, 9.56,10.26,11.00,11.51,11.35,11.61,12.45,12.73,13.85,13.28, 13.99,13.89,14.51,14.99,15.52,15.43,15.91,16.43,16.34,16.38, 17.26,17.17,18.18,17.89,17.91,18.79,18.28,18.89,19.11,19.44, 19.34,20.24,19.36,20.00,20.52,21.07,21.31,21.57,20.92,21.12, 21.64,22.34,23.25,22.31,22.61,23.07,22.42,23.03,24.49,23.28, 23.62,24.21,23.22,24.50,25.41,23.47,25.75,25.26,26.43,25.67, 25.17,26.18,26.84,26.07,26.25,26.91,26.77,26.50,26.73,27.25, 27.76,28.47,28.64,28.50,28.44,27.56,28.56,28.85,29.96,29.16, 29.70,29.35,29.16,30.31,30.32,29.47,30.77,31.91,30.42,31.73, 31.24,31.25,32.16,30.70,29.87,32.96,31.23,32.38,31.45,32.33, 33.01,32.50,33.86,33.05,34.16,34.10,33.54,32.66,34.69,32.55, 33.77,32.95,34.95,35.38,34.65,33.64,33.58,35.00,35.10,35.93, 35.53,35.73,36.55,36.10,35.79,38.67,36.78,35.08,37.44,36.84, 36.39,35.96,37.65,37.51,36.47,36.38,37.70,37.51,37.72,38.30, 38.36,37.93,38.11,37.37,39.07,37.42,39.56,37.40,38.95,37.25, 39.43,39.32,38.83,37.60,39.77,39.52,39.34,39.11,42.60,40.24, 40.91,40.61,39.90,40.65,40.49,41.66,39.34,40.09,42.12,41.02, 41.20,41.84,42.77,42.42,43.18,42.32,42.25,42.62,42.26,43.06, 44.71,44.38,43.06,41.01,42.74,43.44,45.33,40.56,43.72,42.62, 44.02,44.73,43.79,41.65,43.55,43.57,44.97,43.39,43.64,45.97, 43.90,43.80,44.26,45.03,46.56,44.30,45.31,47.23,46.31,44.83, 44.93,46.23,46.43,45.11,46.11,46.02,46.77,46.56,46.11,44.88, 46.49,44.97,46.18,46.67,47.59,46.20,45.87,47.94,47.13,47.84, 47.02,47.81,47.10,49.44,47.11,47.08,48.83,47.29,49.14,49.03, 48.90,48.86,48.03,47.36,49.04,48.95,49.14,48.17,48.15,50.56, 50.42,47.08,49.83,50.17,50.29,50.88,51.74,51.25,51.04,51.66, 49.98,51.01,49.78,51.07,50.31,52.12,52.07,50.89,51.93,52.22, 50.90,49.80,51.78,51.46,51.85,52.67,51.15,53.96,53.38,53.17, 51.70,53.75,52.70,53.35,54.86,52.85,53.49,53.79,55.73,53.41, 8.69,9.29,9.82,10.40,10.37,10.74,10.97,12.08,12.15,12.39, 12.49,13.37,12.76,13.16,13.99,14.71,14.19,14.55,14.92,14.75, 15.45,14.99,16.85,15.16,16.58,16.37,16.64,17.00,17.21,17.92, 17.36,17.82,17.82,18.42,19.03,18.92,19.18,19.72,19.80,19.52, 20.78,20.42,20.34,20.73,21.22,20.80,21.00,20.59,21.84,20.55, 22.01,21.36,21.84,21.27,22.67,22.46,22.23,22.35,23.01,23.21, 23.70,23.97,23.89,23.05,24.39,24.13,23.86,24.10,25.42,26.32, 24.67,25.54,25.76,26.04,25.12,25.55,26.16,25.96,26.15,26.44, 27.04,26.08,26.38,27.94,27.95,27.48,28.91,28.04,26.95,28.03, 28.06,28.15,27.83,28.55,28.90,29.44,28.93,29.26,29.03,29.20, 29.47,30.00,28.76,31.08,29.00,29.51,30.36,29.94,30.07,29.81, 30.77,31.59,31.37,31.80,32.17,32.31,33.49,32.86,32.30,32.92, 32.15,33.49,33.59,32.62,33.99,33.24,31.62,34.42,33.03,33.84, 32.10,34.86,32.33,32.96,34.94,32.93,34.62,34.88,33.83,35.01, 34.46,35.90,34.49,33.69,34.40,35.77,35.23,35.97,35.11,36.22, 35.81,35.74,36.77,35.59,36.07,35.45,36.83,35.85,37.41,35.37, 35.89,36.75,35.54,36.98,35.41,38.07,36.69,36.67,39.06,38.60, 37.77,38.04,38.13,37.74,37.76,39.67,37.92,38.63,37.85,39.22, 38.83,38.73,38.44,38.46,38.85,39.29,38.90,40.86,37.43,39.20, 38.83,39.62,40.43,41.14,39.82,39.52,39.78,40.80,41.11,40.18, 39.97,40.05,40.96,41.72,40.55,41.80,40.45,40.50,40.48,40.82, 41.87,41.41,43.18,42.56,41.71,43.47,41.45,42.56,41.75,41.98, 41.38,42.93,41.69,43.82,41.82,44.09,42.65,43.07,44.55,44.37, 43.73,43.09,42.87,42.68,44.39,44.78,44.53,43.78,43.71,43.75, 44.69,44.83,45.66,45.52,44.70,42.64,46.14,45.22,44.08,45.28, 46.20,46.36,46.60,45.22,45.23,46.88,45.12,45.55,45.94,45.77, 45.08,47.70,47.10,45.16,46.24,46.30,48.71,44.74,46.16,46.23, 49.22,48.37,49.13,46.88,47.71,46.29,49.22,47.38,47.71,47.29, 46.92,48.50,49.40,47.63,47.81,47.61,49.05,47.33,49.09,48.72, 8.02,9.03,8.96,9.19,9.76,10.10,10.52,10.25,10.66,11.13, 11.88,11.55,11.99,11.76,12.80,12.32,12.18,13.14,13.76,13.83, 14.01,14.37,14.77,14.15,15.29,15.29,15.88,14.86,15.89,17.12, 16.18,16.06,15.60,16.65,16.74,17.46,17.49,17.53,17.67,18.14, 18.54,18.00,18.25,18.11,19.00,18.33,19.43,18.97,19.80,18.99, 19.29,19.50,20.15,20.15,20.47,20.81,20.83,20.53,20.31,20.75, 21.63,21.19,21.30,22.40,22.34,22.76,22.49,22.53,23.64,22.75, 21.91,23.19,22.61,22.27,23.28,22.80,23.82,24.02,24.65,24.39, 24.57,24.14,25.94,24.98,24.92,24.56,25.23,24.95,24.63,24.85, 26.19,25.60,26.20,25.71,27.19,25.00,27.19,26.25,26.55,25.75, 27.27,27.36,27.38,26.79,26.66,28.48,27.73,27.38,27.59,27.52, 27.48,28.11,29.52,29.32,28.55,27.46,28.02,29.49,29.03,28.86, 28.01,29.29,29.70,29.49,29.57,28.89,30.14,30.05,29.55,29.46, 30.51,30.64,29.75,30.29,31.83,31.25,30.85,30.20,30.58,30.41, 32.38,31.78,32.15,32.48,32.08,32.22,31.49,31.54,31.31,32.19, 31.45,32.27,33.73,32.72,33.20,31.46,32.63,32.15,32.84,32.11, 33.79,34.11,33.85,32.58,34.70,33.39,33.26,33.73,32.08,36.08, 34.24,34.35,34.55,35.32,33.89,33.98,33.69,35.67,33.21,33.27, 34.18,36.49,34.81,35.64,35.40,35.15,35.07,35.48,35.97,35.60, 34.97,36.79,38.13,36.25,36.20,37.01,34.80,35.88,35.97,36.29, 36.45,36.39,37.32,38.23,38.10,37.44,37.20,37.77,36.99,37.42, 38.40,36.59,35.61,39.24,38.46,37.78,37.20,37.93,38.11,38.18, 39.07,39.71,38.84,37.75,40.45,39.63,39.36,39.70,39.06,38.06, 40.69,38.95,40.75,39.81,38.19,39.11,39.41,39.81,39.71,38.80, 39.59,40.75,41.73,40.73,40.05,40.37,41.04,40.51,38.26,39.18, 39.82,39.30,41.84,42.37,42.42,40.89,41.78,41.47,41.65,41.37, 41.39,39.79,42.37,43.24,43.60,42.35,43.18,43.15,40.88,41.83, 41.43,40.46,42.80,42.29,41.16,42.19,45.37,42.82,43.56,43.49, 42.83,42.40,42.81,43.31,42.89,42.77,45.01,43.54,43.29,43.03, 7.17,7.75,7.57,8.13,8.50,8.79,9.66,9.41,10.40,10.53, 10.47,10.40,11.07,10.76,11.46,11.11,11.78,11.60,12.30,12.34, 12.56,12.34,13.27,13.45,13.95,12.46,14.63,14.36,15.16,14.39, 14.05,15.01,14.95,14.83,15.99,15.05,15.71,15.84,15.62,16.59, 16.16,16.09,16.28,16.59,16.51,16.46,16.88,16.72,17.33,17.86, 18.51,17.84,18.35,17.94,18.16,18.70,18.17,18.91,18.96,19.79, 18.48,19.07,18.77,19.56,19.74,19.37,19.95,20.16,20.22,19.72, 20.61,19.42,20.95,20.23,20.97,21.26,21.91,21.77,20.79,21.41, 21.89,21.12,21.93,21.48,22.16,22.78,22.26,22.62,23.02,22.49, 22.84,23.51,21.86,23.52,23.43,23.54,23.02,23.02,23.65,23.17, 23.90,23.76,24.33,24.40,23.56,23.38,24.03,24.49,24.95,25.30, 24.64,24.65,25.43,26.15,25.29,25.67,25.32,26.21,26.49,26.82, 26.09,25.34,25.30,26.62,26.97,26.65,25.77,26.39,26.78,27.78, 26.80,26.38,27.70,27.13,27.38,28.22,27.56,27.20,27.90,27.38, 28.45,27.78,27.91,29.54,28.74,28.19,29.41,28.91,27.81,29.47, 29.29,29.49,29.29,28.76,29.34,29.47,30.14,29.63,29.84,28.77, 30.25,30.68,29.88,30.42,31.51,30.33,29.94,29.50,29.37,31.81, 31.10,30.23,30.83,29.52,31.06,30.30,30.69,31.49,30.16,30.65, 31.66,31.65,32.29,30.79,31.49,32.81,32.28,31.97,31.71,31.67, 32.29,32.08,32.02,35.00,31.76,33.24,32.68,33.99,33.14,33.47, 34.35,33.60,33.68,32.16,33.21,32.60,34.88,33.61,34.83,34.29, 35.01,33.32,32.48,33.52,32.10,33.06,33.51,33.77,33.73,34.48, 34.34,33.58,33.71,36.69,34.62,33.81,34.22,34.72,33.63,35.19, 34.41,34.80,35.47,35.96,34.78,36.28,35.74,36.38,34.90,37.63, 36.98,36.05,36.95,37.96,36.57,36.56,37.94,36.97,37.06,37.10, 37.14,36.52,36.25,37.03,37.86,35.31,37.49,36.85,37.41,39.25, 36.79,38.41,37.12,38.33,37.49,38.34,36.96,37.71,37.45,39.72, 39.04,37.70,37.31,38.21,38.50,37.04,36.96,38.55,39.00,40.08, 38.83,39.36,38.54,39.31,38.83,41.77,39.01,38.49,38.57,41.40, 6.18,6.59,6.85,7.42,7.20,7.97,8.11,8.39,8.35,9.47, 9.40,9.12,9.03,9.79,10.07,10.65,10.20,10.69,10.76,11.07, 11.09,11.60,11.33,11.54,11.64,12.22,12.29,12.18,12.01,12.83, 12.63,13.00,12.87,14.51,13.70,14.27,13.63,13.74,14.52,13.79, 14.24,14.19,14.73,14.16,14.72,15.24,15.40,14.71,15.52,14.70, 15.62,15.96,16.25,16.24,15.85,16.01,16.72,17.01,17.13,16.98, 16.90,17.35,17.52,17.99,17.08,17.01,18.64,18.58,17.46,18.23, 18.38,17.82,18.52,18.15,19.42,19.37,18.37,18.98,18.06,19.38, 19.63,19.21,20.00,18.89,19.74,19.97,20.33,20.92,19.78,20.80, 20.61,20.36,21.14,21.29,20.56,21.98,21.10,20.59,21.49,21.35, 21.71,21.26,21.47,21.74,22.09,21.38,21.72,23.71,22.43,21.07, 21.86,21.54,21.95,22.84,23.04,22.79,21.34,22.58,23.05,22.78, 22.88,23.76,24.33,24.16,23.73,23.48,23.36,23.62,24.09,24.58, 24.54,24.75,24.25,25.46,25.99,24.75,24.35,25.42,25.09,24.53, 24.52,25.22,25.59,26.26,25.29,26.37,25.45,24.68,25.95,26.27, 26.00,25.37,25.82,25.92,26.09,26.73,26.49,25.32,25.54,25.83, 26.17,28.32,26.39,27.60,26.78,26.38,27.64,27.57,28.21,27.98, 26.34,27.21,26.69,26.57,27.62,26.68,28.06,27.91,27.86,28.49, 28.15,28.37,28.42,27.88,28.58,28.31,29.04,28.32,27.93,29.52, 28.71,29.28,28.92,29.70,29.02,28.96,29.12,29.38,28.51,29.52, 29.51,29.33,29.29,30.80,29.98,28.84,30.84,30.09,29.60,30.13, 30.71,30.71,30.45,31.67,30.42,29.60,31.27,30.58,31.42,30.33, 31.04,31.02,31.09,30.07,32.20,31.27,30.53,31.96,31.35,32.16, 31.42,32.19,31.58,30.05,30.80,31.05,31.65,31.94,32.05,30.87, 32.83,32.37,31.21,32.71,32.19,31.77,31.36,32.83,32.18,32.65, 31.91,33.01,32.28,32.45,34.65,32.32,32.38,31.68,32.94,34.11, 33.57,32.93,32.96,33.12,34.33,35.06,33.69,34.05,34.57,32.64, 34.35,34.42,34.32,32.94,35.26,33.53,35.25,35.38,34.48,35.29, 35.38,34.15,34.58,35.72,35.26,35.44,33.46,35.70,35.23,36.74, 5.22,6.39,6.40,6.96,6.62,6.71,7.25,7.59,7.82,7.97, 7.96,8.20,8.59,8.87,9.12,8.60,9.12,9.71,9.46,9.85, 9.74,9.88,10.56,10.19,10.51,10.63,9.92,11.47,10.31,11.48, 10.66,11.65,12.54,11.77,11.57,12.32,12.58,12.79,12.74,11.87, 12.40,12.80,12.86,13.79,13.04,13.58,13.62,14.16,13.70,14.00, 13.90,13.36,14.65,13.83,14.95,15.33,14.55,15.00,15.31,14.89, 15.87,15.13,15.13,15.52,15.07,15.47,15.42,16.10,15.58,16.04, 16.06,16.41,16.26,16.13,16.10,15.71,16.78,16.69,16.71,16.68, 17.04,17.62,17.16,16.60,17.60,17.52,18.01,17.50,17.93,16.58, 18.09,18.84,17.94,17.27,18.38,18.63,18.51,18.57,18.97,17.24, 19.59,19.84,18.74,19.10,19.83,20.01,19.85,19.19,20.48,19.59, 20.22,20.24,19.51,19.97,20.66,20.02,20.81,19.83,21.33,20.92, 20.87,20.46,20.97,20.50,20.34,21.05,20.94,20.81,22.20,20.32, 21.85,20.61,21.86,21.76,21.14,21.84,22.34,21.79,22.34,22.56, 21.92,22.50,22.59,22.15,22.66,21.91,22.48,22.42,23.38,22.05, 23.32,23.63,22.83,22.36,24.30,23.38,23.40,23.79,23.91,23.48, 22.98,22.97,23.97,23.76,24.40,24.06,23.40,24.84,24.05,25.33, 23.40,24.17,24.76,24.56,24.45,25.31,24.87,25.23,24.45,25.11, 24.68,25.32,24.29,25.24,25.35,24.51,26.24,25.98,24.52,24.42, 26.49,25.94,26.97,24.54,26.61,26.67,25.79,25.81,25.39,27.24, 26.18,26.67,27.60,25.53,26.31,26.64,26.96,27.71,26.44,28.82, 27.30,26.88,27.89,27.42,27.16,28.12,27.22,27.44,27.59,28.29, 27.32,28.55,28.44,26.85,27.79,27.09,29.37,27.13,29.35,27.90, 27.90,27.82,27.35,28.23,27.65,27.53,28.66,29.33,28.55,28.26, 29.01,28.85,29.56,28.44,28.59,28.46,28.33,29.86,30.67,27.71, 29.19,29.03,30.43,28.83,31.05,29.56,28.77,30.31,29.60,29.02, 29.69,29.31,28.25,30.07,29.45,29.51,29.96,28.95,30.24,29.08, 30.04,30.54,29.78,29.76,31.07,29.91,30.24,30.54,29.55,31.02, 31.52,32.30,29.75,29.41,29.59,31.46,30.65,31.48,31.64,32.84, 4.86,5.47,5.14,5.76,6.03,6.68,6.88,6.17,6.58,7.33, 8.23,8.24,6.82,7.81,7.71,7.84,8.59,7.98,8.76,8.89, 9.22,9.21,9.16,9.37,9.53,9.59,9.08,9.69,10.16,9.78, 10.93,9.39,10.31,10.55,9.75,11.26,10.95,10.60,10.97,11.18, 11.11,11.99,12.03,11.45,11.06,12.30,12.79,12.20,12.50,12.21, 12.57,12.51,12.45,12.83,13.22,13.52,13.42,13.53,13.64,12.72, 13.43,13.97,13.92,13.27,13.88,13.34,14.38,14.73,14.26,13.56, 14.57,14.52,13.81,14.71,13.89,15.72,15.30,14.43,15.06,15.16, 15.24,15.40,15.42,14.98,15.91,15.34,16.00,15.47,15.75,16.14, 15.91,15.96,15.93,16.54,16.46,15.88,16.94,16.55,16.66,16.09, 17.05,17.16,16.91,17.16,17.02,16.40,17.23,18.53,18.66,17.88, 17.61,17.59,17.75,18.34,17.20,18.46,18.19,18.28,17.68,17.97, 18.82,18.16,18.01,19.00,19.26,18.45,18.43,20.44,17.79,19.05, 19.43,18.95,18.83,19.73,19.73,19.54,19.06,19.64,20.31,20.62, 18.95,19.82,19.01,18.85,20.49,20.31,19.03,19.28,19.78,20.34, 20.00,19.78,20.98,21.25,19.51,20.18,21.44,20.65,20.77,20.35, 21.45,20.93,21.31,20.58,21.08,20.53,22.21,21.88,20.66,22.32, 21.32,22.31,21.32,21.93,22.18,22.15,22.38,21.28,20.99,22.64, 21.86,21.65,20.83,21.97,22.65,23.66,22.77,23.25,22.90,22.84, 22.08,22.83,22.39,22.39,24.37,23.12,23.03,22.45,23.93,23.47, 23.04,23.88,23.41,23.04,23.13,23.94,22.64,23.27,23.98,23.43, 23.23,24.66,23.52,23.79,24.36,24.69,23.94,24.22,25.92,24.51, 24.77,24.77,24.88,24.26,23.50,25.33,24.58,24.64,23.89,23.79, 24.70,24.17,25.62,24.99,24.88,24.93,26.32,24.90,25.20,25.50, 25.52,25.47,25.57,25.53,25.05,26.17,25.44,25.03,25.55,26.04, 25.66,26.40,25.72,24.61,25.62,26.82,26.52,26.96,25.66,25.85, 25.90,27.28,25.56,27.30,26.49,26.23,26.75,27.19,25.81,26.16, 26.45,26.64,27.76,26.06,27.72,27.25,27.62,27.12,27.74,26.97, 27.12,27.80,28.38,28.67,27.91,29.03,27.97,28.02,27.86,28.42, 4.36,4.42,5.27,4.94,5.70,5.91,6.17,5.40,5.95,6.60, 5.98,6.24,6.57,6.57,7.25,6.80,7.70,7.16,6.98,7.93, 8.06,7.46,7.93,8.41,9.19,8.27,8.08,8.18,8.43,8.66, 9.07,9.28,9.59,8.88,9.39,9.29,9.42,10.05,10.06,9.72, 9.68,10.58,10.13,10.81,10.92,10.01,11.44,10.93,10.82,11.20, 10.75,10.70,11.46,11.26,11.04,10.54,10.87,11.34,11.45,11.69, 12.19,11.69,11.60,12.09,11.77,11.88,12.35,12.90,12.75,12.46, 12.80,13.34,12.87,12.35,12.55,13.36,13.53,13.18,13.41,13.44, 13.81,13.38,13.51,13.26,12.85,14.35,14.39,13.77,14.16,13.95, 13.57,15.08,14.63,14.70,14.80,14.73,13.95,14.21,14.26,15.44, 14.67,15.18,14.84,14.79,14.81,15.00,16.24,15.69,16.00,15.29, 14.86,15.11,15.66,14.87,15.46,15.17,16.60,15.79,16.28,15.71, 16.92,16.76,15.52,16.63,16.44,16.70,15.38,17.05,17.15,16.49, 16.68,16.48,16.25,17.21,17.46,17.34,16.37,16.71,17.78,17.46, 18.23,17.36,17.19,17.75,17.39,17.40,18.05,16.86,17.31,17.88, 18.12,17.70,18.10,17.20,17.84,18.01,19.00,19.24,18.98,17.76, 18.22,18.45,18.42,18.99,18.87,19.23,18.89,19.63,19.49,19.78, 18.63,19.44,19.53,19.83,18.19,19.88,20.02,19.31,19.37,19.25, 19.15,19.98,19.09,20.56,19.17,20.56,18.72,19.04,18.59,19.36, 19.47,19.91,19.63,20.34,20.36,20.09,20.85,21.36,20.83,21.17, 21.03,20.31,20.93,21.29,20.49,20.42,19.28,20.61,20.83,21.25, 21.15,22.09,20.30,20.36,20.17,21.22,21.52,21.19,21.27,20.10, 21.63,21.25,22.09,21.27,21.01,21.04,20.36,20.83,22.80,22.12, 22.78,21.32,21.49,21.94,21.81,22.42,21.75,22.03,21.97,22.33, 22.28,23.73,22.35,21.44,22.29,22.13,23.27,23.03,23.09,22.27, 22.14,23.57,22.56,22.79,22.16,22.33,23.01,23.47,23.49,22.94, 23.87,24.15,23.08,23.14,23.58,23.67,23.51,23.61,23.73,24.58, 23.75,23.72,23.11,24.45,24.49,24.17,23.90,23.76,25.05,24.17, 23.06,24.63,24.65,24.36,25.37,25.40,24.22,23.42,24.55,24.13, 3.93,4.53,4.29,4.28,4.67,4.96,5.16,4.93,4.55,5.01, 5.39,6.02,6.04,5.15,5.87,5.33,6.22,6.12,6.42,7.03, 7.56,6.92,6.90,7.91,8.13,7.29,7.63,7.74,8.29,8.21, 8.18,7.72,7.78,8.17,8.49,8.78,8.46,8.36,8.60,8.63, 8.62,9.04,9.08,9.36,9.71,8.95,9.52,9.51,8.72,9.21, 9.28,10.01,10.43,9.81,10.35,9.71,9.57,10.15,11.15,9.81, 9.74,10.87,11.35,10.91,10.58,11.31,10.36,10.54,12.06,10.65, 11.76,11.42,10.94,11.27,10.79,11.67,11.79,11.77,11.23,11.34, 12.47,11.98,12.41,12.36,12.77,11.66,12.58,11.92,11.88,12.80, 12.85,12.88,12.51,12.43,12.81,12.99,12.97,13.12,12.62,13.13, 13.48,13.03,12.63,12.50,13.95,13.52,13.35,13.03,13.60,13.04, 12.92,13.98,12.71,13.38,13.62,14.30,14.69,13.76,13.82,13.98, 14.56,14.50,13.54,14.21,14.17,15.11,14.78,14.76,13.77,14.32, 14.25,15.05,13.96,14.58,15.03,15.00,15.33,14.95,14.78,15.01, 15.46,15.48,16.09,14.46,15.60,15.96,15.26,15.68,15.40,14.66, 16.37,15.89,16.01,15.48,15.62,15.80,16.05,15.55,15.39,15.81, 16.03,17.22,16.39,16.32,16.47,17.11,16.59,16.90,16.47,16.03, 17.80,16.44,15.78,15.95,16.38,16.44,17.41,16.90,17.75,17.46, 16.59,16.93,17.21,17.48,17.86,17.10,17.06,17.44,17.81,16.88, 17.13,16.80,18.04,17.37,17.30,17.51,17.09,17.66,18.67,18.37, 17.78,18.24,18.74,18.40,18.55,17.91,18.17,18.92,18.48,18.67, 19.68,18.89,18.32,18.19,18.01,18.15,18.33,18.98,18.66,18.44, 17.83,18.60,17.96,18.98,19.27,19.16,19.06,19.06,19.34,20.04, 18.50,19.07,19.26,19.45,19.72,18.68,19.44,19.44,20.86,18.65, 20.16,19.69,20.17,19.78,19.49,18.95,20.21,19.82,20.67,19.57, 19.40,20.25,19.89,19.83,19.99,20.09,20.51,20.47,20.29,20.32, 19.36,19.70,19.91,19.99,20.50,20.94,21.15,19.67,21.09,21.11, 21.43,20.83,20.67,21.27,22.02,20.90,20.12,21.85,21.47,20.55, 21.51,21.51,20.86,21.87,22.27,21.97,20.71,21.57,21.96,21.55, 3.33,4.25,3.45,3.87,4.18,3.70,4.56,4.42,5.05,5.31, 5.10,4.66,5.64,5.01,5.38,5.27,5.28,6.23,5.98,5.23, 5.87,6.14,6.14,6.70,5.74,6.61,6.15,6.75,6.66,6.52, 7.07,7.41,6.94,7.10,7.29,6.97,7.04,7.39,7.37,7.63, 8.01,7.42,7.99,8.94,9.06,8.07,7.50,8.57,8.96,8.85, 8.15,9.27,8.32,8.94,9.49,8.36,8.68,8.46,9.03,8.41, 8.94,8.97,9.07,9.71,9.61,9.75,9.23,8.73,9.42,10.47, 9.59,9.75,9.56,10.27,9.43,10.45,11.14,10.33,10.23,10.42, 10.63,10.97,10.62,10.70,10.31,10.46,9.70,10.82,11.32,10.37, 11.28,11.09,10.73,10.44,10.31,10.97,11.37,10.83,10.94,11.48, 10.84,11.55,11.47,11.32,11.97,11.61,12.36,11.83,11.74,11.53, 11.74,11.85,11.92,11.75,12.04,12.67,11.79,12.29,12.15,12.08, 12.92,13.06,12.52,12.23,12.10,12.91,12.71,12.79,12.94,12.74, 12.83,12.35,13.02,13.27,12.76,12.90,13.19,12.65,14.06,13.15, 12.58,14.00,13.13,14.07,13.50,13.98,14.74,14.80,13.75,14.18, 13.57,13.57,13.80,13.64,13.80,13.61,14.41,14.55,13.19,14.51, 14.26,13.58,14.56,13.77,14.89,13.84,14.97,14.02,14.30,15.54, 15.07,14.97,14.56,15.39,15.29,14.79,15.20,14.87,15.60,15.67, 15.12,15.28,14.45,15.66,14.97,14.93,15.10,15.27,15.09,15.82, 15.89,15.41,15.00,16.40,15.70,14.69,15.56,16.33,15.82,15.63, 16.27,15.66,15.40,15.77,15.89,16.37,16.20,16.22,16.94,16.57, 16.96,16.04,15.73,15.86,16.82,16.47,16.18,16.65,16.82,15.66, 16.57,17.01,16.89,16.07,16.15,15.87,16.50,17.04,16.57,16.29, 16.96,17.21,17.22,17.96,16.52,16.19,16.26,17.67,17.10,16.69, 16.59,16.65,17.38,17.41,16.75,17.91,17.46,17.31,17.61,17.69, 17.83,17.48,17.19,18.74,17.50,17.67,17.17,17.68,17.86,17.93, 19.10,18.62,17.29,18.19,18.17,18.35,17.69,17.57,18.45,16.86, 17.55,17.31,18.99,19.07,17.39,17.43,18.35,17.34,18.38,18.14, 18.98,18.66,20.02,19.51,18.44,17.94,19.26,18.70,18.78,18.63, 2.87,3.74,2.86,3.85,3.72,3.98,4.01,4.11,4.45,4.21, 4.97,4.49,4.23,4.44,5.35,4.52,4.32,4.82,4.99,4.66, 5.68,5.15,5.22,4.84,5.52,6.02,6.71,5.60,5.04,5.32, 5.48,5.96,6.10,6.47,6.20,6.57,7.14,6.87,6.72,6.46, 6.48,6.88,6.81,7.14,7.05,6.98,6.87,7.86,7.24,7.34, 7.28,7.57,7.81,7.20,7.06,7.72,7.67,7.75,7.95,7.67, 7.92,8.56,7.95,8.41,8.19,8.13,8.19,8.30,8.02,8.22, 8.63,8.57,9.29,8.84,8.67,9.04,9.04,8.92,9.20,9.25, 9.34,8.78,9.37,9.27,9.28,9.48,9.46,9.08,9.76,9.19, 9.80,9.62,10.07,9.73,9.43,9.31,9.82,9.41,9.41,9.87, 10.13,10.06,9.90,10.64,10.38,9.99,10.79,10.24,10.58,10.22, 10.46,10.63,10.56,10.38,10.92,10.88,10.66,10.32,10.90,10.95, 10.66,11.42,10.97,10.83,10.89,10.65,10.85,10.73,11.91,11.57, 11.23,11.85,10.71,11.40,10.61,11.02,11.35,10.96,11.67,11.66, 11.31,11.19,11.33,11.40,11.90,11.75,11.06,12.63,11.72,12.00, 12.20,12.42,12.14,12.84,12.89,12.91,11.58,12.00,11.75,12.45, 12.42,12.48,12.97,12.32,12.47,13.08,13.18,13.62,13.45,13.29, 12.64,12.61,12.86,12.51,12.35,12.38,13.10,13.59,12.33,13.25, 13.12,13.22,13.67,12.38,12.98,13.23,13.39,12.52,13.38,13.36, 13.10,13.78,13.24,13.78,14.87,13.31,13.22,12.91,14.16,13.45, 13.70,13.37,13.65,13.47,13.53,14.27,13.81,13.86,14.31,13.92, 13.02,14.69,15.24,14.27,13.96,14.26,13.92,14.23,14.72,13.99, 14.79,15.14,14.46,14.05,14.72,14.81,14.74,14.64,14.11,14.94, 14.74,14.48,15.28,14.48,13.90,15.00,14.36,14.75,16.35,15.84, 15.94,14.57,14.28,14.86,15.22,15.56,15.68,15.35,16.17,14.57, 15.21,14.72,15.53,16.41,16.76,16.45,15.96,15.46,15.38,15.31, 16.02,16.09,15.90,15.46,16.12,15.71,14.75,16.23,15.79,15.66, 15.37,16.24,14.86,15.50,16.00,15.89,16.13,15.14,16.04,16.12, 16.40,17.24,16.60,15.84,16.61,16.11,16.04,16.48,16.34,16.15, 3.40,2.98,2.72,2.75,3.11,3.59,2.23,3.60,3.60,3.70, 3.36,3.44,4.42,3.96,3.88,4.90,4.00,4.23,4.68,3.64, 4.94,5.32,5.33,4.87,4.91,5.32,5.35,6.64,5.23,5.47, 4.78,6.06,5.58,5.22,5.22,5.69,5.59,5.82,6.36,5.55, 6.53,6.28,6.89,6.45,6.46,5.15,6.56,6.79,5.83,6.35, 5.97,7.64,6.53,6.54,6.68,7.06,7.03,7.83,7.06,7.76, 6.57,6.86,7.41,7.11,6.60,6.68,6.73,6.91,7.48,7.27, 7.36,7.56,6.85,7.46,6.93,8.19,8.37,7.04,6.59,7.73, 7.57,7.37,8.57,7.43,8.26,8.57,8.34,7.91,7.76,8.25, 8.57,7.93,8.63,7.83,9.19,8.69,8.41,8.21,9.13,8.58, 8.77,8.53,8.65,8.61,9.04,8.50,9.00,8.73,8.71,8.93, 8.73,8.36,9.23,9.75,8.93,9.33,8.99,8.73,9.33,9.17, 10.25,9.23,9.88,9.52,10.31,9.39,9.54,9.57,10.22,9.73, 10.17,9.99,9.26,10.14,10.86,10.24,10.05,9.54,9.35,10.28, 10.43,10.00,10.25,10.08,10.14,10.58,10.71,9.88,10.82,11.08, 10.50,10.81,10.47,10.09,10.33,10.37,10.60,10.54,10.68,11.04, 11.64,10.52,10.70,10.73,11.47,11.78,12.13,11.28,10.97,11.29, 11.67,11.22,11.54,11.26,11.98,11.24,11.27,11.31,12.05,11.69, 11.40,11.50,10.69,11.30,11.36,11.83,11.02,12.38,12.40,11.57, 12.34,11.75,12.00,12.09,12.88,12.48,11.85,11.88,11.59,11.52, 11.77,12.60,11.69,11.75,12.01,12.57,12.04,12.04,13.01,11.96, 12.30,13.01,13.07,12.22,12.93,12.75,13.39,12.69,13.10,13.30, 12.41,12.82,12.16,13.10,13.17,13.61,12.63,13.03,13.55,13.34, 12.73,13.03,13.68,13.33,13.00,12.63,13.84,13.63,13.47,12.32, 14.28,13.50,12.44,13.17,12.68,12.49,12.86,12.99,12.92,14.69, 13.03,14.82,12.94,13.83,13.49,13.20,13.42,13.27,13.62,13.02, 13.04,13.62,13.94,12.70,14.43,14.36,14.18,14.55,14.39,14.10, 13.77,14.30,14.68,13.81,14.05,14.61,13.54,14.04,15.14,15.06, 14.78,14.77,13.75,14.60,13.69,13.77,15.45,14.88,14.05,14.87, 2.34,2.31,3.20,2.32,2.63,2.85,2.24,2.77,3.10,2.72, 3.87,3.19,2.48,2.96,3.36,4.14,4.06,4.28,3.77,3.70, 3.90,4.73,4.55,4.24,4.45,4.28,4.85,4.78,4.15,4.53, 4.86,4.54,5.24,4.96,4.73,4.03,5.50,4.80,5.88,3.88, 5.08,5.26,4.90,5.59,4.97,5.40,5.20,5.70,5.42,6.13, 4.72,5.73,6.79,6.27,6.16,5.74,5.25,5.59,6.50,6.11, 6.36,5.85,7.11,6.32,6.04,5.67,6.22,6.17,6.54,6.91, 7.03,5.74,6.82,7.11,7.40,7.13,6.51,7.17,6.87,6.28, 7.28,8.13,6.51,7.13,6.82,6.68,7.55,6.78,6.79,6.88, 7.82,7.22,7.88,6.79,7.23,7.57,7.72,7.24,7.28,6.92, 7.08,7.96,7.36,7.72,8.06,8.69,7.38,8.10,7.61,7.42, 8.20,7.97,7.70,7.81,8.86,7.94,8.42,8.21,7.78,8.64, 7.79,8.32,7.70,8.55,8.96,8.20,8.21,8.48,8.43,8.97, 9.27,8.64,7.92,8.61,8.50,9.29,9.44,8.24,8.59,9.04, 9.00,8.74,9.24,9.18,8.67,9.35,8.57,8.68,8.31,8.70, 9.10,9.20,9.69,8.67,9.14,9.15,9.91,10.14,9.01,9.20, 9.61,9.12,9.35,9.53,9.51,10.11,9.07,9.41,9.78,10.50, 9.98,9.90,8.75,10.01,10.24,9.49,10.06,10.26,10.80,10.01, 10.32,10.50,9.71,10.27,9.90,10.32,10.59,10.88,11.21,10.34, 10.97,10.20,10.61,10.38,10.56,10.20,9.82,10.59,9.58,10.74, 10.71,10.27,10.53,10.31,10.47,11.24,10.66,10.31,10.88,10.61, 11.01,9.92,11.60,10.89,10.84,9.95,11.08,10.71,11.44,11.22, 10.75,11.39,11.21,11.22,11.47,11.62,11.61,10.89,10.93,11.03, 11.34,12.05,11.38,11.08,10.70,12.32,10.73,10.81,12.03,11.25, 10.84,11.22,10.90,12.21,12.45,11.78,11.27,12.06,11.78,12.08, 11.47,11.87,11.36,11.55,12.25,12.27,11.90,11.75,11.22,11.46, 11.58,11.44,11.40,12.18,12.33,12.36,12.02,11.03,12.81,12.12, 12.15,12.82,11.34,12.02,11.04,12.79,11.46,13.21,11.85,11.83, 12.09,12.43,12.42,12.30,12.86,11.88,12.27,13.02,11.91,12.87, 1.39,2.60,1.96,1.37,2.50,2.63,2.37,2.74,2.66,3.13, 2.72,2.69,2.55,2.71,3.02,2.48,3.80,3.32,3.44,2.94, 3.61,3.90,3.31,3.36,2.78,4.79,3.19,3.60,3.76,3.60, 2.78,4.63,3.89,3.86,4.36,5.10,4.32,4.56,5.44,4.27, 4.80,4.44,4.45,4.46,4.63,4.26,4.24,5.15,5.12,5.11, 4.79,4.20,5.09,4.67,4.76,5.07,4.97,5.24,4.86,4.92, 5.06,5.37,5.17,5.92,6.33,5.53,5.05,5.36,5.64,5.89, 5.48,5.83,5.76,6.10,5.43,5.42,6.11,5.55,6.03,6.53, 5.65,4.82,6.24,5.94,5.92,6.07,5.97,6.36,6.05,6.19, 5.95,6.56,5.96,6.94,6.18,5.87,6.80,6.30,6.08,6.64, 6.78,6.98,7.00,6.23,6.75,6.60,7.39,7.02,7.17,6.33, 6.58,6.53,7.94,7.11,6.71,6.65,7.04,7.11,7.07,7.45, 7.17,7.23,6.78,8.04,7.38,7.06,6.92,8.59,6.97,7.36, 6.56,8.37,7.52,7.55,7.92,7.65,7.90,7.52,7.94,7.46, 7.62,7.82,7.66,8.24,7.58,7.39,8.11,7.84,7.42,7.72, 7.72,8.16,8.19,8.34,7.77,7.91,8.68,8.76,7.38,8.06, 8.97,8.61,8.06,8.21,9.00,8.38,7.74,8.25,8.97,8.91, 8.52,8.46,8.31,8.64,8.47,8.76,8.46,9.05,8.12,8.11, 8.23,9.23,8.75,9.73,9.15,7.79,9.32,9.35,9.03,9.33, 9.71,8.29,8.68,8.51,9.05,8.41,8.44,8.51,9.78,9.27, 9.01,8.77,9.70,9.63,9.66,9.23,9.28,9.93,9.11,9.88, 9.07,9.76,8.45,9.25,9.06,8.79,9.18,9.27,8.83,9.09, 9.37,9.73,9.38,9.11,9.31,9.38,8.77,9.27,9.83,10.29, 10.25,9.20,9.37,10.64,9.01,10.35,9.99,10.26,9.83,9.44, 9.87,9.78,9.19,8.84,9.64,10.67,9.56,10.33,9.81,9.77, 10.04,10.08,9.47,10.03,10.11,10.07,9.86,10.70,9.86,9.73, 10.03,10.58,10.95,10.49,10.66,10.71,10.28,10.44,11.18,10.73, 10.35,11.35,11.17,10.85,10.06,10.31,10.67,10.21,10.68,10.08, 9.85,11.73,11.02,10.69,11.52,12.02,11.07,10.65,10.99,11.15, 11.59,11.94,12.79,12.91,14.02,13.88,14.33,14.60,15.58,15.39, 15.81,16.09,15.80,16.81,17.61,18.07,17.96,17.62,19.20,19.01, 19.59,19.76,20.73,20.57,21.09,21.70,21.82,21.72,21.39,21.96, 22.74,22.89,22.44,23.62,24.18,23.63,24.61,25.84,25.55,25.69, 25.61,24.03,26.28,25.78,25.79,26.84,27.03,26.82,27.36,27.46, 26.99,27.70,27.67,28.68,28.40,29.09,28.92,28.98,29.27,28.80, 29.58,29.71,31.60,30.18,30.13,30.01,30.41,33.14,30.82,32.28, 31.85,31.69,30.90,33.58,31.48,32.87,32.94,34.42,32.69,32.90, 32.61,32.70,34.71,34.13,34.23,35.51,34.23,33.28,34.70,34.35, 35.26,34.55,35.44,37.96,35.87,36.69,35.55,36.21,36.44,36.52, 35.52,37.17,37.83,39.77,37.50,37.39,37.31,40.45,36.76,38.50, 38.76,37.76,40.92,39.42,40.60,40.38,38.65,38.80,40.60,41.66, 40.39,40.12,40.76,41.71,39.78,42.97,41.54,40.81,42.84,41.47, 41.00,42.87,41.76,42.99,43.98,42.08,43.44,41.85,43.54,42.93, 42.72,43.30,44.23,45.50,44.57,44.94,43.82,44.59,44.10,44.85, 45.81,45.73,43.96,45.05,45.38,47.02,46.09,47.03,47.35,46.21, 45.71,48.44,46.30,50.69,47.45,45.79,49.21,46.22,46.00,47.57, 47.89,47.73,46.70,49.02,48.08,47.15,45.78,48.03,49.45,47.42, 50.69,50.82,48.91,49.90,50.27,52.25,48.09,49.59,53.87,47.59, 50.63,49.23,50.20,51.71,51.04,52.23,49.78,50.76,48.25,53.07, 51.75,51.09,52.10,51.19,51.30,51.82,51.24,51.59,53.32,52.88, 51.40,51.24,51.79,54.37,53.02,52.41,55.97,54.83,54.29,53.56, 53.07,53.59,53.16,55.38,54.31,54.41,54.72,56.10,53.46,55.58, 54.99,54.92,55.17,55.57,53.69,55.94,55.87,55.79,56.46,56.30, 53.94,54.02,55.44,57.70,57.86,55.02,56.95,56.70,60.57,58.14, 57.98,57.21,57.58,56.41,58.57,59.38,56.19,57.42,56.74,57.66, 60.30,57.80,58.66,57.46,60.00,59.16,59.68,56.48,59.70,59.05, 60.13,60.87,58.96,58.73,60.26,59.09,60.85,58.22,61.76,61.16, 59.24,61.96,59.79,60.07,59.05,61.02,61.64,62.81,62.21,59.43, 10.51,11.49,11.52,11.77,12.67,12.77,12.84,13.75,14.44,14.21, 15.08,14.69,15.47,15.40,15.44,16.33,16.32,16.87,17.78,18.58, 17.88,18.51,18.15,19.02,19.10,19.75,20.53,20.41,20.51,20.31, 20.94,21.35,21.23,22.36,21.99,22.81,22.31,22.44,23.11,23.09, 22.75,24.00,23.40,23.18,24.38,24.42,23.82,25.14,24.90,25.40, 24.52,23.97,26.63,26.72,25.39,26.21,27.76,27.77,27.29,25.77, 28.42,27.78,28.29,27.89,27.65,28.49,30.34,28.89,30.09,28.73, 29.67,29.72,30.00,30.19,30.54,28.71,29.35,30.79,30.03,30.55, 31.17,31.74,31.54,32.43,32.69,31.70,32.35,32.39,33.47,33.71, 31.92,32.86,33.63,34.23,34.13,34.16,33.79,34.05,34.75,34.72, 35.48,34.28,34.57,35.66,35.73,35.83,34.71,36.75,36.83,36.16, 37.04,36.42,37.34,36.01,38.43,37.00,36.58,37.15,37.52,37.66, 36.65,38.20,38.94,39.94,38.55,38.44,38.25,39.32,37.46,38.38, 38.62,38.65,39.13,38.94,40.28,39.14,38.55,41.48,40.37,38.95, 41.03,40.54,39.79,40.52,41.08,41.87,39.90,41.21,42.16,42.00, 40.64,42.89,41.53,41.13,42.71,42.76,43.48,44.40,42.90,42.85, 43.01,43.76,42.91,44.35,44.73,42.78,43.61,43.46,43.98,44.29, 44.21,43.82,43.95,44.08,44.64,45.66,45.59,43.63,46.11,47.03, 46.55,45.34,46.36,46.44,45.47,44.94,45.26,46.03,46.68,48.18, 45.88,46.96,49.56,48.50,47.35,48.94,47.35,48.86,46.46,47.54, 47.32,46.87,47.77,47.17,47.22,47.59,48.18,50.58,50.59,49.98, 48.49,49.09,49.42,49.26,51.12,49.34,50.88,48.45,49.92,51.74, 50.46,50.37,50.81,50.91,49.78,51.65,50.07,51.52,51.83,49.92, 51.81,50.35,49.49,51.82,51.19,51.79,51.60,52.17,54.62,51.81, 52.42,55.27,55.31,52.47,52.59,52.05,51.13,54.79,51.83,56.06, 53.38,53.24,51.56,55.45,53.30,55.02,54.33,52.58,53.52,53.98, 53.97,54.89,54.40,54.48,55.48,52.44,53.92,56.31,53.62,56.22, 54.15,55.38,55.55,54.79,54.48,54.94,56.52,55.31,56.92,56.63, 54.81,57.35,56.90,54.91,57.43,55.96,56.42,57.71,55.02,57.16, 10.58,10.36,11.02,11.13,11.89,12.03,12.72,12.87,13.33,12.87, 13.38,14.05,14.25,14.81,14.50,15.17,15.87,16.08,17.47,16.53, 16.73,17.07,17.72,17.74,17.75,17.35,18.44,18.22,18.46,19.12, 19.72,19.60,19.73,19.53,20.24,19.85,20.79,20.53,20.47,21.43, 21.55,21.41,21.69,21.77,23.03,21.40,22.84,23.08,23.47,22.19, 23.24,22.84,24.24,23.11,23.78,24.89,24.41,24.06,25.23,24.37, 25.47,26.06,26.49,26.20,26.06,26.47,26.81,26.47,27.17,27.63, 27.62,26.31,27.36,27.32,27.49,28.34,28.59,28.78,27.45,28.06, 28.77,30.13,28.77,28.76,29.30,29.93,29.59,29.81,30.61,29.13, 29.85,30.99,31.55,30.86,31.26,31.39,32.34,31.31,30.97,32.46, 32.17,31.82,32.05,31.91,32.52,32.09,33.87,32.58,34.14,34.36, 33.62,32.99,32.22,32.49,34.27,33.32,32.97,34.09,34.22,34.26, 33.35,35.64,34.29,34.84,34.85,34.86,34.95,34.62,35.92,35.83, 36.58,36.37,36.07,37.47,36.45,36.16,36.97,36.72,36.65,37.32, 39.12,36.95,36.58,36.45,37.46,39.35,37.99,37.30,37.68,37.40, 38.15,40.49,38.88,38.63,38.39,38.89,38.44,40.68,38.91,39.26, 41.15,38.26,39.01,39.40,41.46,40.73,39.94,41.81,40.76,40.47, 40.77,41.17,40.23,39.37,40.85,42.46,43.02,42.35,41.01,40.95, 42.38,43.20,41.44,42.28,41.28,41.72,41.09,42.40,44.96,43.69, 41.35,43.29,41.16,44.26,42.44,42.80,42.20,44.41,45.35,43.01, 42.54,45.15,43.93,43.31,43.94,42.79,44.91,45.32,46.75,43.52, 46.38,44.69,45.59,46.02,46.47,46.52,46.87,46.37,45.65,45.98, 46.58,45.67,46.77,46.83,45.29,46.45,48.45,46.92,48.28,48.31, 47.43,46.55,46.52,47.09,46.38,49.53,48.86,48.95,45.30,47.68, 48.31,47.23,50.96,47.92,48.12,47.12,49.54,47.54,47.84,49.96, 49.37,50.11,49.33,50.03,49.40,48.90,49.71,49.62,50.22,50.66, 49.24,49.58,51.55,49.84,49.25,49.78,49.09,49.77,49.95,50.73, 49.21,51.04,49.99,50.46,49.63,49.55,53.75,52.09,51.45,52.15, 50.64,53.07,50.55,49.54,51.73,54.11,53.98,54.14,51.86,52.34, 8.61,9.69,10.03,9.49,10.38,10.99,11.76,11.11,11.29,12.49, 12.82,12.83,12.22,13.13,13.39,13.81,13.82,13.85,15.05,15.62, 15.45,15.95,15.87,15.50,16.21,16.55,16.93,16.99,16.70,17.39, 17.41,17.29,18.29,18.05,18.93,18.73,19.29,18.46,17.77,19.71, 19.28,20.53,19.58,19.69,20.19,20.85,21.53,20.80,21.56,21.46, 21.05,20.95,21.16,22.09,23.12,22.34,21.78,23.16,22.82,23.66, 22.83,23.74,23.30,24.39,22.93,23.37,23.31,23.61,23.61,26.03, 24.42,25.57,24.57,25.04,26.19,25.54,25.80,25.95,25.86,26.35, 25.84,26.29,26.13,26.54,26.59,27.55,27.01,25.97,28.10,27.58, 28.17,26.87,27.85,28.63,27.71,28.64,28.64,30.00,28.07,29.09, 28.72,29.21,29.27,28.58,29.65,29.77,29.74,30.50,30.57,30.73, 29.83,30.36,30.13,31.28,30.83,30.09,30.59,31.07,32.93,30.56, 31.55,32.17,31.62,31.86,31.79,32.20,33.23,32.09,32.62,33.78, 33.40,32.57,32.65,32.64,33.76,33.09,33.16,34.44,33.97,33.66, 33.96,34.17,34.67,33.30,33.82,33.80,34.87,34.77,35.34,35.36, 34.87,33.21,33.83,33.95,35.02,36.02,34.64,36.80,35.56,35.88, 34.51,36.13,35.63,36.19,37.10,35.68,37.15,36.13,36.33,36.50, 37.32,37.40,35.04,37.76,37.86,38.28,38.20,39.04,38.05,39.24, 38.32,39.00,38.13,36.62,41.25,38.92,38.24,38.47,39.19,38.16, 39.28,38.65,38.17,40.25,39.84,38.89,40.06,41.24,40.17,38.66, 40.64,39.75,40.36,39.02,42.02,42.40,41.92,39.90,41.85,41.84, 41.25,42.28,41.51,40.78,41.26,41.08,42.32,41.95,40.64,41.77, 40.99,41.85,42.72,41.80,41.37,42.31,42.58,41.63,42.20,42.75, 44.06,41.83,44.12,42.55,43.91,45.14,45.58,43.98,43.78,42.88, 44.53,43.03,43.68,43.63,43.35,44.03,45.14,44.58,44.02,44.57, 44.05,43.94,44.43,43.52,45.12,45.04,45.41,44.43,44.34,43.98, 44.64,44.70,45.07,47.83,47.32,45.56,47.39,47.28,46.55,48.91, 44.53,47.25,47.94,46.63,43.88,46.21,47.44,47.33,48.35,46.90, 45.44,46.64,46.75,45.71,47.43,46.60,48.67,46.98,47.26,46.18, 7.63,8.01,8.71,8.70,9.72,9.18,9.81,10.93,10.25,11.58, 11.69,11.10,11.89,12.09,12.06,12.41,13.10,13.14,13.05,12.97, 14.65,14.21,14.45,14.55,15.10,14.44,15.93,15.26,15.70,15.90, 16.59,15.85,16.25,16.51,16.66,16.66,17.22,16.50,17.14,17.59, 17.83,17.84,17.97,19.16,18.31,19.21,19.78,18.89,19.25,19.00, 19.88,20.69,19.19,19.82,20.25,20.26,19.91,19.98,20.64,21.14, 21.29,21.11,20.65,21.51,21.24,21.57,22.96,22.12,21.31,22.42, 22.39,23.93,22.34,22.51,22.96,24.46,22.77,24.24,22.76,23.18, 23.26,24.28,24.56,23.56,23.82,24.91,24.49,25.03,24.91,24.54, 25.93,26.02,26.07,24.73,26.36,25.74,24.89,26.09,26.44,26.51, 26.61,25.55,25.74,26.80,27.34,27.62,27.21,26.44,27.58,28.06, 27.81,28.02,27.71,28.29,27.81,27.42,26.56,27.74,27.51,29.07, 29.04,30.01,27.74,29.47,29.37,29.52,28.84,29.80,31.07,29.04, 30.53,30.08,29.76,30.87,30.20,29.39,29.41,30.03,29.74,29.93, 30.33,31.24,29.97,31.57,31.64,31.87,31.92,31.67,31.94,31.29, 32.01,32.38,32.82,31.89,32.25,32.33,31.54,31.47,32.98,31.09, 31.75,31.56,32.60,33.23,32.51,32.88,33.60,32.97,33.57,34.54, 34.69,33.14,34.45,34.90,34.04,34.34,33.38,35.53,33.01,35.08, 33.51,35.71,33.96,33.88,33.29,35.78,35.14,34.34,34.59,35.60, 34.51,36.79,36.17,34.76,36.86,35.29,36.19,36.68,36.31,36.32, 36.37,35.56,35.62,34.94,36.77,36.00,36.84,36.93,35.74,36.25, 36.27,39.37,38.91,37.86,40.27,37.02,38.55,39.08,37.37,39.75, 35.34,38.38,37.50,38.26,39.12,38.46,36.66,39.52,38.72,38.08, 39.07,39.46,37.97,40.20,39.47,38.88,38.19,39.40,40.45,39.16, 37.89,39.13,39.14,38.90,38.77,41.80,39.64,39.34,40.11,38.50, 40.28,39.20,39.91,40.97,39.81,41.19,39.88,40.14,40.91,41.10, 39.91,41.20,38.65,39.67,41.40,40.08,42.47,40.99,42.13,42.16, 41.37,41.89,42.64,40.80,42.72,41.79,43.11,41.15,42.39,43.25, 41.45,43.33,42.43,42.25,41.93,41.77,42.87,44.02,43.84,43.67, 6.78,7.62,7.72,8.34,8.48,9.00,8.57,9.35,9.48,9.61, 9.88,9.75,10.22,10.83,11.34,11.49,12.27,11.82,12.27,12.02, 12.34,13.22,12.71,13.25,13.15,13.23,13.32,13.63,13.94,14.51, 13.71,14.21,14.92,14.88,15.00,16.53,14.98,16.12,14.70,16.23, 16.00,16.64,16.17,16.25,16.24,15.99,16.96,17.50,16.99,17.48, 17.58,17.28,16.79,17.52,18.16,18.02,18.42,19.28,18.18,17.81, 19.54,19.55,19.45,18.59,19.25,19.58,19.35,19.81,19.10,20.75, 20.60,20.02,19.98,19.55,20.01,20.42,21.04,20.24,20.75,21.58, 21.07,21.16,21.28,21.18,22.47,22.21,21.59,22.63,21.85,22.78, 22.70,21.46,23.22,22.51,22.59,22.56,23.35,23.46,23.11,23.54, 24.13,23.74,22.73,23.87,24.18,24.34,24.84,24.11,23.91,23.96, 24.30,25.27,26.02,24.96,24.46,24.76,25.29,25.73,25.39,25.83, 25.79,26.03,24.67,27.04,26.80,24.73,25.59,27.06,27.19,27.33, 26.94,25.25,26.53,27.35,28.24,27.71,28.28,27.65,27.31,27.98, 28.18,26.61,27.93,28.66,27.52,27.97,28.68,28.40,28.88,28.00, 28.34,29.22,28.63,29.25,29.10,30.09,28.50,28.70,28.63,29.62, 28.80,28.86,30.51,30.36,29.11,29.21,29.58,29.36,30.21,30.25, 29.51,30.69,30.61,30.54,31.57,31.07,29.65,30.93,31.17,32.77, 32.00,30.95,30.71,32.02,33.02,30.89,31.51,31.22,30.10,30.07, 30.65,33.44,31.77,32.03,33.01,31.85,33.38,32.51,31.72,31.77, 31.82,34.82,32.33,32.63,32.60,32.68,33.82,33.90,34.66,32.21, 32.44,33.29,33.42,33.61,33.56,32.08,34.96,33.85,34.10,33.68, 33.80,34.54,34.92,34.69,34.40,34.72,35.49,34.56,35.13,35.51, 35.24,34.92,35.45,36.56,34.75,35.79,35.47,35.27,36.80,36.41, 35.08,36.34,35.15,36.84,35.99,36.66,35.73,35.90,34.59,35.44, 35.77,36.01,36.66,36.56,37.19,36.89,37.35,36.65,37.11,38.06, 37.41,36.40,36.88,38.07,37.59,38.32,38.59,38.62,38.43,36.80, 36.98,38.17,38.04,37.56,37.33,38.78,36.75,38.82,39.55,38.97, 39.57,36.75,38.93,39.15,36.91,39.91,39.19,38.07,39.49,39.06, 6.27,6.39,6.68,7.28,7.49,7.74,8.09,8.38,8.63,8.71, 8.77,9.36,9.58,9.74,10.10,10.39,10.44,10.97,11.05,10.48, 11.33,11.00,11.74,12.15,11.38,12.72,11.63,12.71,12.46,12.66, 13.17,13.24,13.76,13.27,13.36,14.01,13.33,14.38,14.01,13.64, 13.83,14.39,14.05,14.98,14.92,15.15,15.23,14.75,15.82,14.88, 15.59,16.24,15.18,16.03,15.70,16.67,16.72,16.67,16.54,17.46, 16.43,17.19,16.54,16.66,16.53,18.31,17.51,18.28,18.22,17.93, 18.13,18.62,18.76,19.80,18.87,17.90,18.09,19.66,19.16,19.32, 19.35,18.82,20.40,19.62,20.50,18.86,20.18,19.85,19.94,20.40, 19.63,19.60,19.45,20.30,19.99,20.07,21.09,20.71,21.50,20.40, 20.66,20.24,22.22,21.22,22.23,21.29,21.56,22.02,21.52,21.29, 20.63,22.31,21.86,22.53,22.46,22.26,23.52,23.37,23.63,22.70, 22.78,23.29,23.93,23.73,24.12,23.57,23.70,23.46,24.09,23.15, 24.07,23.51,24.56,24.16,24.50,24.21,24.09,24.30,23.38,24.83, 24.58,24.24,24.04,25.66,24.96,24.86,25.56,24.75,26.43,26.59, 25.47,25.72,26.00,26.04,26.18,25.50,26.35,26.16,24.35,25.46, 24.83,26.45,26.38,26.82,26.44,27.70,27.00,27.08,27.19,27.02, 28.31,26.79,28.41,27.86,26.63,27.12,27.43,28.43,27.89,28.50, 28.72,27.95,27.54,26.64,29.03,27.45,28.36,28.44,28.59,28.84, 28.74,28.62,28.22,28.40,28.96,28.46,27.73,28.67,29.22,28.28, 30.33,30.94,29.75,29.10,29.50,30.63,29.90,30.55,30.17,30.18, 30.55,30.41,29.98,29.26,29.91,29.30,29.94,30.27,30.72,30.42, 29.94,32.31,30.26,29.93,28.89,31.42,30.52,31.08,31.35,30.84, 31.46,32.79,31.88,32.37,31.73,33.03,32.21,30.82,32.47,31.56, 31.70,31.96,31.98,31.67,32.43,31.05,32.17,31.83,32.71,32.52, 33.60,31.82,32.79,33.33,33.37,32.88,31.73,33.71,32.95,32.50, 32.16,34.28,33.10,31.72,34.27,32.30,33.89,34.25,33.71,33.26, 34.36,35.48,34.90,33.62,33.56,32.45,33.12,34.04,34.22,34.15, 34.67,35.17,34.74,33.99,34.03,34.73,35.66,34.85,34.10,33.93, 4.91,5.35,6.24,5.90,7.36,7.47,7.25,7.53,8.01,7.19, 8.45,8.54,8.76,8.68,8.83,8.85,9.03,9.37,8.94,9.89, 10.80,9.89,9.85,10.73,10.86,11.45,10.70,10.47,11.13,11.14, 11.93,11.70,11.50,11.37,11.88,11.08,11.22,12.73,12.81,11.93, 12.54,12.61,12.81,12.89,13.17,13.47,13.26,13.87,13.75,14.29, 14.58,13.89,14.08,14.60,13.89,13.98,14.86,15.24,14.40,15.25, 15.23,14.29,15.68,16.20,15.44,15.65,15.57,14.85,15.93,15.47, 15.56,16.03,16.18,15.57,16.55,15.99,16.66,16.47,16.85,16.59, 16.72,17.73,17.50,18.09,17.41,16.51,17.29,18.27,18.31,18.33, 17.51,17.06,17.43,17.61,17.58,17.96,18.87,18.64,17.90,19.49, 18.73,19.44,19.00,19.92,19.17,19.18,20.42,18.91,19.53,20.07, 20.25,19.71,20.17,19.63,20.44,19.58,20.07,20.02,20.06,20.84, 21.64,20.84,20.96,21.02,22.56,20.48,20.48,20.78,21.09,21.26, 21.33,20.88,21.52,20.50,21.71,22.12,22.12,22.12,22.22,21.52, 22.07,21.98,21.62,21.85,22.67,22.71,23.40,22.46,23.23,21.52, 23.29,22.92,22.77,23.20,23.17,22.71,23.58,23.43,24.08,22.96, 23.62,24.63,23.98,23.84,23.75,24.18,22.52,23.34,24.26,23.81, 24.55,23.49,23.70,24.45,23.84,24.12,24.36,23.96,24.47,25.12, 24.12,24.14,24.83,25.78,25.85,24.89,24.81,24.98,25.59,25.41, 24.32,25.38,25.57,26.47,25.99,24.91,25.83,26.01,26.14,25.71, 25.47,25.52,25.49,25.88,26.85,25.62,26.02,27.24,26.90,24.50, 27.17,26.47,26.46,26.60,27.49,27.04,26.56,27.90,26.81,26.49, 26.68,27.69,27.79,28.44,27.27,27.29,28.26,27.29,28.12,27.56, 27.94,28.81,27.32,28.29,28.65,28.71,27.12,28.63,27.89,28.53, 28.03,29.06,28.83,28.87,28.49,28.01,29.44,29.51,27.24,28.79, 29.11,28.39,28.77,29.09,28.89,30.26,30.02,28.59,28.74,30.04, 28.76,30.09,28.36,30.05,29.81,29.33,28.85,30.10,30.05,30.34, 30.07,30.29,31.13,29.73,31.10,29.53,30.21,29.90,30.25,30.11, 31.19,31.70,29.86,30.15,30.85,30.04,31.11,30.85,30.91,31.17, 5.59,5.00,5.80,5.69,6.37,6.62,6.56,6.97,6.35,6.78, 7.82,6.84,7.21,7.40,7.68,7.90,7.94,8.30,8.29,8.88, 8.70,9.42,9.56,9.23,9.57,10.06,9.49,9.71,9.38,10.23, 9.50,10.57,9.71,10.32,11.36,10.79,10.76,10.60,11.02,11.01, 12.00,11.14,11.08,12.02,11.93,11.54,12.04,13.06,13.05,12.30, 12.19,12.22,13.05,13.01,13.17,12.53,13.41,13.82,12.62,13.01, 14.11,13.40,13.19,13.69,14.41,14.63,14.24,14.44,13.94,15.20, 14.94,14.00,14.97,14.75,14.71,14.84,15.19,14.45,15.40,14.09, 14.70,15.07,15.15,14.87,15.84,15.99,16.62,16.22,17.31,15.62, 15.73,16.52,16.18,16.25,15.52,15.97,15.80,16.71,17.05,17.42, 16.51,16.37,16.15,15.97,16.61,16.84,15.91,18.08,16.74,16.56, 16.98,17.45,17.51,18.45,17.59,18.25,17.90,17.90,18.09,17.13, 18.07,18.21,17.47,18.07,18.38,17.98,18.68,19.14,18.76,17.24, 17.81,19.03,18.59,18.98,19.81,18.94,18.82,20.20,19.36,19.40, 19.59,19.69,20.56,20.17,19.67,19.43,19.20,18.88,19.75,19.85, 19.51,20.03,19.31,19.71,20.46,20.41,20.64,20.20,19.90,20.87, 21.27,21.02,20.09,20.77,20.95,19.90,21.22,21.23,21.62,21.88, 21.45,22.30,21.05,20.08,20.98,21.33,21.80,22.12,21.71,21.91, 22.05,22.48,22.93,21.99,21.28,22.10,23.25,21.73,22.32,21.58, 21.01,22.61,22.32,23.10,22.08,23.21,22.81,23.84,24.00,22.08, 23.57,24.13,23.36,22.89,24.79,23.82,23.05,22.73,24.08,23.42, 23.52,24.32,23.76,24.36,24.40,23.08,23.73,24.01,25.08,24.59, 23.64,23.90,24.55,23.50,24.96,24.48,24.32,25.63,25.70,25.38, 23.16,24.24,24.67,25.34,24.37,25.38,24.60,25.40,25.34,25.14, 25.21,25.68,25.05,25.16,24.59,25.17,24.82,25.87,25.00,26.10, 25.90,25.53,25.28,25.24,26.19,25.12,26.23,26.09,27.03,26.70, 26.50,27.08,27.40,26.98,26.01,25.90,26.81,26.22,27.33,26.52, 27.47,27.15,26.70,26.70,26.98,26.91,26.09,27.99,27.02,28.47, 26.60,27.09,26.46,27.07,27.69,26.89,27.11,27.73,27.94,26.87, 4.65,3.99,5.09,5.20,6.22,5.62,5.69,6.04,6.71,6.44, 6.28,6.63,6.22,6.86,6.89,7.71,7.02,7.40,7.55,7.70, 7.25,8.22,8.42,8.30,7.78,7.20,8.31,8.94,8.42,8.86, 8.37,9.55,8.95,8.82,9.57,9.69,9.79,9.75,10.18,10.24, 9.85,10.35,10.37,10.79,10.56,11.15,11.12,11.01,10.60,10.63, 11.25,11.81,11.19,11.29,11.70,11.39,11.42,12.32,12.31,11.44, 12.00,11.54,12.21,12.09,12.74,12.54,12.13,13.23,11.84,12.72, 12.25,12.72,13.39,12.74,13.31,12.52,12.98,13.13,13.66,13.06, 12.40,12.89,14.14,13.34,14.27,13.73,13.09,13.59,14.60,13.29, 14.72,14.23,14.89,14.78,13.24,14.71,14.73,13.98,14.66,14.81, 15.02,15.94,15.06,15.20,15.15,15.11,15.13,15.17,15.17,15.98, 14.86,15.86,16.21,16.01,15.19,14.82,15.63,15.28,15.74,15.91, 15.55,15.68,15.64,15.66,15.89,17.04,16.42,17.29,16.41,16.72, 16.24,16.61,16.89,17.32,16.54,17.38,18.03,17.23,17.23,17.42, 16.80,17.82,17.63,17.30,16.23,17.25,17.74,17.81,18.38,18.80, 16.74,17.62,18.27,17.83,18.00,18.14,18.10,18.05,18.36,19.02, 18.69,18.52,18.64,18.98,18.79,18.44,19.53,18.84,18.55,19.39, 18.44,19.76,18.23,19.82,19.25,19.23,19.13,19.68,19.48,19.78, 19.48,19.46,20.14,19.44,19.70,20.02,20.18,20.17,19.82,20.55, 18.83,19.96,21.06,21.28,20.10,19.87,20.53,20.42,20.38,20.54, 19.54,20.76,21.33,21.89,20.40,21.11,21.25,22.43,20.53,21.59, 21.24,21.40,22.32,21.16,22.20,22.59,20.70,21.03,22.00,21.53, 21.74,22.34,20.62,21.58,20.87,22.34,21.88,20.89,20.75,22.40, 21.61,21.54,23.74,21.76,21.89,22.90,22.29,22.13,23.61,22.52, 22.03,22.69,23.25,22.21,23.17,23.30,22.44,22.95,22.66,23.22, 23.52,23.18,22.79,22.90,23.53,22.68,22.80,22.76,23.30,22.54, 24.18,24.03,22.24,22.75,22.41,22.92,22.66,22.91,22.88,23.75, 23.17,23.45,23.12,22.33,22.86,23.48,24.42,24.49,23.39,23.54, 23.82,25.48,24.57,23.93,23.95,23.50,24.17,24.45,23.99,24.99, 4.60,4.24,5.08,4.30,5.33,5.11,5.42,4.77,6.05,5.60, 6.46,6.29,5.55,6.04,6.17,6.17,6.51,6.36,7.01,7.41, 6.93,7.12,7.39,6.83,7.35,6.97,7.44,8.44,8.42,8.02, 7.77,8.31,8.02,7.71,8.07,8.53,8.94,8.96,9.18,9.36, 8.97,9.20,8.22,9.34,10.04,9.63,9.40,10.14,9.76,9.24, 9.54,10.95,10.34,9.63,10.19,9.96,10.14,10.89,10.14,11.46, 10.69,10.31,11.48,10.35,10.46,10.61,10.76,11.92,11.17,11.09, 11.63,11.13,12.07,11.37,11.53,11.28,11.16,11.54,11.06,11.67, 11.84,12.08,11.73,11.98,11.68,12.32,12.36,12.07,12.33,12.66, 12.49,12.63,13.60,12.45,11.90,13.17,12.31,12.77,12.96,13.00, 13.26,13.25,12.81,13.79,14.04,13.57,13.94,13.59,12.98,13.30, 12.93,14.29,13.25,13.96,14.34,14.18,13.66,14.08,13.83,14.21, 14.40,14.32,13.95,14.19,14.84,14.19,14.20,16.18,14.95,15.20, 15.39,15.02,14.39,14.83,16.02,14.71,15.01,15.22,15.35,16.04, 15.41,15.47,15.22,15.19,15.77,15.64,14.74,15.75,15.34,15.89, 16.52,16.20,15.37,15.88,14.99,16.49,16.30,15.82,17.00,15.64, 16.17,16.63,16.41,16.22,15.01,16.56,16.05,16.82,15.86,16.38, 16.51,17.06,17.07,17.24,17.83,16.56,16.30,16.84,17.61,17.63, 17.43,17.37,17.14,16.68,17.25,17.65,18.00,18.11,17.33,16.84, 17.84,17.40,17.26,18.65,17.48,17.66,17.33,17.28,17.92,17.51, 18.40,19.04,18.34,18.19,18.72,18.36,18.37,19.66,17.90,18.20, 18.17,18.77,19.01,17.92,19.10,18.84,19.47,18.04,18.42,19.33, 19.07,18.96,19.13,19.04,18.46,19.33,19.00,19.34,20.32,19.20, 19.68,20.77,19.19,19.39,18.01,19.72,19.40,18.92,20.30,19.93, 19.24,19.93,19.10,21.04,19.85,19.74,19.71,19.87,19.54,20.01, 19.82,20.25,20.33,20.73,20.67,21.63,21.68,20.15,21.01,20.02, 20.76,20.91,20.27,18.67,20.06,20.29,21.57,20.85,20.52,20.08, 20.49,21.21,20.53,21.34,20.96,21.99,20.88,22.40,22.47,20.09, 21.18,20.86,21.19,21.78,20.97,21.14,21.26,21.03,20.39,21.89, 3.52,3.82,3.93,3.87,4.80,4.42,4.88,4.99,4.78,4.45, 5.19,5.16,4.90,5.42,5.67,5.65,4.95,5.60,5.54,5.85, 5.56,5.80,6.03,6.74,5.97,6.50,6.28,6.96,6.72,6.90, 7.74,7.13,8.01,7.10,7.51,7.11,8.12,7.42,7.66,7.63, 7.92,7.29,7.78,7.89,8.46,7.96,7.90,8.07,7.47,7.86, 7.96,9.34,8.81,8.55,8.57,9.26,8.96,8.96,9.40,9.46, 9.59,9.32,8.54,9.80,8.95,9.43,10.16,9.21,10.30,9.42, 9.27,9.60,10.23,9.96,10.89,10.29,10.15,9.04,10.13,10.09, 10.74,10.72,10.87,10.91,10.65,10.90,11.19,11.20,10.91,11.21, 10.76,10.84,11.37,11.18,11.51,11.22,11.35,11.73,11.05,12.22, 11.34,12.20,11.56,12.43,11.69,11.85,12.62,12.05,12.43,11.90, 11.59,12.23,11.94,11.88,11.77,11.87,12.51,12.32,12.56,12.66, 12.57,12.55,12.83,13.39,12.46,11.90,12.70,12.54,13.71,13.05, 13.02,12.64,13.90,12.88,13.23,12.88,13.95,14.22,13.38,13.93, 13.74,12.78,13.17,13.83,13.73,13.47,12.85,14.40,14.32,13.56, 13.93,14.12,13.86,13.33,13.67,14.66,14.51,14.46,14.72,14.52, 14.69,14.17,15.44,13.63,14.68,14.50,14.19,14.84,15.59,15.36, 15.11,15.44,14.47,15.62,15.04,15.42,14.71,15.59,15.98,14.79, 14.92,15.72,15.62,14.99,15.47,14.83,14.75,14.85,15.28,16.07, 14.87,15.14,16.27,16.55,15.52,15.98,15.28,15.78,15.66,16.20, 16.39,16.29,15.74,15.27,15.84,16.06,15.35,15.94,16.11,16.55, 16.49,16.92,15.15,16.97,17.87,16.41,16.39,16.37,16.61,16.26, 16.74,17.85,16.71,16.33,16.67,16.79,16.56,17.47,17.52,17.45, 17.52,17.18,17.62,17.18,16.59,17.04,17.46,17.67,17.57,17.97, 18.09,17.78,18.30,17.51,17.97,16.86,18.06,17.40,17.39,17.19, 18.04,17.69,18.64,18.36,17.15,17.68,17.94,17.55,17.35,17.42, 18.56,18.42,18.36,17.64,18.00,18.09,18.74,17.96,16.53,18.69, 18.55,18.80,19.00,17.54,18.99,17.57,18.05,19.04,19.24,17.69, 18.52,19.19,18.19,18.64,18.89,18.31,19.31,19.18,19.57,20.12, 2.77,4.04,3.84,3.94,3.98,3.69,3.91,3.88,4.33,4.31, 4.36,4.83,3.97,4.54,4.72,4.56,4.94,5.84,4.90,5.18, 5.58,5.16,5.91,4.91,5.89,6.15,5.71,5.97,6.01,6.60, 6.12,5.93,6.83,6.47,7.05,5.34,7.27,6.22,7.28,6.35, 6.36,7.69,7.18,6.94,7.94,6.92,7.63,6.77,7.06,6.97, 8.34,7.96,7.35,7.60,8.10,7.75,8.01,8.21,8.02,8.64, 7.74,7.86,8.94,8.44,8.29,7.94,8.10,8.75,8.40,9.18, 9.41,8.50,8.36,8.95,8.60,8.96,9.52,8.42,9.12,9.30, 9.22,9.77,8.62,10.09,9.68,8.90,9.33,10.17,10.70,9.46, 10.23,9.84,9.30,9.80,10.63,9.53,9.98,9.39,10.31,9.58, 9.84,10.14,9.61,10.14,10.38,10.55,10.79,9.71,9.78,10.49, 10.88,10.49,10.74,10.07,10.68,10.75,11.33,10.34,11.06,10.27, 11.26,11.36,11.00,11.26,11.15,11.44,11.61,11.06,11.26,10.72, 11.16,11.28,11.45,11.20,11.37,11.56,11.90,10.63,11.56,12.29, 11.59,12.02,12.02,11.54,12.13,11.20,11.97,12.32,12.40,12.95, 12.00,12.09,12.54,12.01,12.87,12.20,12.76,12.06,12.54,11.89, 12.16,13.27,12.36,13.08,13.08,13.50,13.12,13.35,12.96,13.03, 13.94,12.42,13.00,12.41,12.90,12.92,12.88,13.08,13.14,12.87, 12.61,14.00,13.67,13.79,13.13,13.16,12.88,14.42,13.33,13.26, 13.76,14.06,14.03,12.69,13.39,13.25,14.75,14.49,13.33,13.88, 13.75,14.50,13.47,14.43,13.70,13.26,14.14,13.66,14.12,13.67, 15.10,14.83,13.96,13.91,15.12,14.87,14.71,14.52,14.35,15.41, 14.89,14.42,14.50,14.99,14.73,15.43,14.31,16.04,14.72,15.48, 14.65,15.19,15.36,15.07,15.60,14.83,15.48,15.15,15.93,15.95, 14.67,15.16,15.56,15.48,15.79,14.77,15.51,15.58,15.33,14.96, 15.11,14.69,16.92,15.58,15.35,15.90,16.41,14.38,15.13,15.12, 16.61,15.45,15.85,16.47,15.22,15.84,16.64,16.74,16.55,16.76, 15.86,16.98,15.31,16.56,15.96,17.12,15.87,16.93,16.60,15.99, 16.64,16.73,15.96,16.90,16.50,16.54,16.11,16.31,16.23,17.10, 3.02,2.74,2.97,3.31,2.72,3.80,3.04,3.00,3.12,3.60, 3.72,4.09,3.94,3.84,3.44,3.83,3.92,4.90,4.72,4.42, 4.99,4.56,4.46,5.94,4.94,4.54,5.59,4.97,5.04,5.57, 5.74,5.39,5.71,5.83,5.31,5.50,5.72,5.92,5.21,6.05, 5.75,6.14,5.77,5.58,6.35,5.81,6.75,6.63,5.45,6.69, 6.22,7.58,6.77,6.77,6.57,6.46,7.24,7.30,7.08,6.42, 6.92,7.12,7.38,7.28,7.30,7.86,7.62,7.61,7.40,7.92, 7.47,7.32,7.99,7.04,7.56,8.17,7.36,8.25,8.19,7.98, 7.87,8.18,8.03,7.50,8.83,7.86,8.54,8.33,7.81,8.75, 8.37,8.52,8.09,8.24,9.15,8.90,8.96,8.24,8.67,8.32, 9.26,8.93,9.01,9.47,8.86,9.28,9.08,8.51,7.87,8.94, 8.92,9.48,9.27,9.00,9.34,9.68,9.61,9.50,9.54,10.12, 9.27,9.87,10.45,10.15,10.62,10.18,10.56,9.03,10.08,10.14, 10.51,10.26,9.39,10.47,9.43,9.96,9.71,10.12,10.79,10.18, 10.63,10.56,9.99,10.05,10.51,10.18,10.69,10.63,11.01,9.97, 10.86,10.32,10.28,10.61,10.51,10.90,10.56,10.82,11.39,11.12, 11.23,11.43,11.24,11.68,11.28,11.39,11.39,12.07,11.37,11.39, 10.58,11.43,11.17,12.45,12.25,11.01,12.31,11.03,11.99,12.34, 11.76,11.36,11.20,12.65,11.14,11.68,11.80,12.44,11.97,12.83, 11.52,11.25,12.36,12.47,11.86,11.96,11.96,12.03,12.11,12.23, 12.36,11.62,11.96,12.72,12.77,12.41,12.15,13.07,12.33,12.37, 12.43,13.14,12.41,12.68,13.02,12.95,12.70,13.21,13.49,12.08, 12.32,12.42,12.79,12.84,13.13,12.13,13.12,11.77,13.14,11.62, 13.11,12.23,13.43,12.96,13.69,13.72,14.75,13.25,12.99,12.78, 13.49,12.41,13.33,13.30,12.70,13.57,13.80,13.64,13.47,14.26, 14.11,12.58,13.39,14.77,14.20,13.81,14.83,12.65,14.92,14.31, 14.47,14.57,13.33,14.27,13.53,13.13,13.79,15.10,13.28,14.89, 14.42,14.10,13.38,14.49,14.96,14.95,13.77,14.00,13.63,13.66, 14.75,14.60,13.79,14.75,14.87,14.57,14.64,14.04,14.62,15.04, 1.99,2.46,3.04,2.71,2.45,3.10,3.98,3.22,2.83,3.93, 3.24,3.17,2.80,2.72,3.68,3.38,3.62,4.12,4.39,4.09, 4.31,3.55,3.28,3.98,5.35,4.80,3.88,4.52,4.49,4.81, 4.58,3.98,4.24,4.81,4.99,4.85,5.08,5.34,5.48,5.44, 5.16,4.74,5.51,5.38,5.63,4.83,5.80,5.19,5.85,6.03, 5.92,5.18,5.61,6.08,6.28,5.54,6.10,5.61,6.42,5.38, 6.02,5.79,6.01,7.07,6.59,6.81,6.33,6.29,5.90,6.07, 7.10,6.92,7.01,7.36,7.40,6.71,6.45,6.63,6.80,7.43, 6.74,6.45,7.52,6.95,7.64,6.96,6.79,7.14,7.62,6.46, 7.48,7.09,7.50,7.74,7.86,8.14,7.66,7.44,8.03,7.71, 7.53,8.47,7.91,7.81,7.39,7.98,7.51,8.25,8.20,8.34, 8.73,7.66,8.75,8.74,8.94,8.97,7.81,7.59,8.00,8.11, 8.53,7.24,8.84,8.28,8.44,8.19,9.06,9.52,8.25,9.44, 9.51,8.09,9.47,9.64,9.33,9.84,9.34,9.45,8.67,9.20, 9.49,9.29,8.55,10.16,9.66,9.22,8.43,10.13,9.54,9.59, 9.72,9.82,9.16,9.31,8.46,9.63,9.37,9.72,8.71,9.54, 9.42,9.42,9.46,9.80,9.66,9.89,9.19,9.62,10.40,9.52, 9.58,10.26,9.64,11.70,10.08,10.32,9.64,10.18,10.78,10.29, 10.14,10.72,10.87,10.61,9.43,9.86,10.36,10.49,10.35,10.65, 10.11,10.84,10.63,10.24,10.95,11.13,11.09,11.32,10.26,10.90, 11.73,10.91,11.04,10.88,10.61,10.59,11.62,11.03,10.70,11.69, 11.56,11.03,9.96,10.65,11.91,11.32,10.87,11.56,10.73,12.35, 11.93,10.78,11.98,11.52,11.65,11.74,11.62,11.61,11.53,12.04, 11.18,11.47,11.77,11.59,11.76,11.18,11.67,11.66,11.34,11.48, 11.77,11.66,11.60,11.50,11.94,11.97,11.85,11.81,12.50,12.05, 11.11,11.46,11.87,12.07,11.53,12.06,12.30,11.18,12.72,11.18, 13.18,11.77,12.26,12.02,13.23,12.38,12.57,13.12,12.42,11.99, 12.57,12.39,13.13,13.00,12.85,12.64,13.35,12.09,13.10,12.71, 12.82,12.96,12.69,12.77,12.32,12.43,13.22,13.59,12.73,12.84, 11.98,12.14,12.46,14.29,14.45,14.29,14.72,15.31,16.07,16.49, 16.40,17.58,18.04,18.48,18.45,19.10,19.09,18.87,19.53,20.41, 19.39,21.39,21.44,22.36,21.13,21.80,21.83,23.05,22.95,24.18, 24.29,24.66,23.80,24.32,24.15,25.74,24.51,25.80,25.53,26.35, 26.39,27.16,26.82,27.34,27.55,28.52,27.56,28.41,28.67,28.80, 30.14,28.69,29.46,28.93,30.01,28.64,30.46,30.52,31.43,31.73, 31.84,30.88,30.64,31.27,32.16,32.99,31.92,33.10,32.76,33.86, 33.72,34.15,34.39,34.35,34.00,34.48,34.61,34.37,35.54,35.99, 36.92,34.84,34.29,36.16,36.75,37.73,37.36,37.21,36.98,36.06, 39.12,39.07,37.87,37.51,37.69,39.43,37.04,39.25,39.06,39.96, 39.42,38.03,39.64,39.88,39.91,40.65,40.74,42.64,39.88,40.70, 39.56,41.06,41.00,41.28,43.48,43.87,43.42,42.22,41.47,41.98, 43.64,43.54,43.94,43.65,42.19,43.65,45.00,44.01,42.98,42.82, 42.82,44.05,44.95,45.30,45.64,45.36,44.01,45.66,45.18,46.30, 45.79,45.58,48.93,46.18,46.77,46.45,47.69,48.06,48.37,47.50, 47.56,46.92,49.40,48.60,48.24,48.46,47.58,48.11,47.82,49.09, 50.28,49.62,48.01,50.40,49.42,49.20,52.51,50.93,50.07,49.08, 51.14,49.12,49.14,49.44,50.38,50.18,51.76,52.52,50.57,52.46, 50.60,50.61,52.27,51.64,53.33,53.57,55.31,52.40,51.32,54.09, 53.18,52.90,52.86,54.24,51.96,53.27,53.98,53.69,53.51,56.06, 53.85,53.13,54.89,56.00,54.40,54.13,53.34,55.20,56.25,55.28, 57.85,54.64,56.35,54.96,56.86,56.13,56.90,55.59,56.42,55.79, 56.85,56.14,54.69,54.92,56.72,56.51,60.54,56.78,57.12,55.32, 59.89,54.78,58.06,57.52,58.89,59.85,56.37,58.54,59.27,58.32, 58.49,59.64,59.22,59.31,61.60,58.58,60.12,59.11,59.19,60.36, 59.17,60.62,61.11,62.85,59.47,60.61,62.47,62.29,59.48,60.23, 61.97,60.35,59.80,64.15,61.39,61.28,63.47,59.62,61.16,60.34, 60.66,63.22,62.96,64.51,66.46,64.59,62.52,60.67,63.84,65.82, 64.22,62.48,62.65,64.16,64.41,63.04,65.37,64.90,65.17,66.11, 10.72,12.31,12.51,13.38,13.74,13.38,14.15,14.46,15.37,15.50, 15.86,16.11,16.14,16.56,16.99,17.76,17.86,19.21,18.49,18.87, 18.53,20.32,19.86,20.54,20.44,21.21,21.73,21.43,21.31,22.19, 21.47,22.50,23.43,23.94,23.65,23.84,24.51,24.26,24.08,24.15, 24.44,24.17,25.52,25.56,25.62,26.74,26.21,27.18,26.90,27.34, 29.46,27.97,27.59,27.85,28.67,26.73,28.86,29.07,28.03,29.71, 29.28,28.78,29.81,30.58,31.15,31.99,30.12,30.80,31.05,31.44, 30.88,31.53,30.62,32.06,33.21,33.55,32.53,31.85,32.84,32.76, 34.62,34.41,34.29,34.27,34.51,33.60,34.50,34.37,35.91,34.78, 34.70,36.03,35.57,36.16,36.46,34.65,37.46,36.52,36.15,35.90, 37.01,35.85,36.13,35.73,36.96,38.12,38.20,36.54,38.52,38.01, 38.28,38.92,39.02,38.79,37.65,40.89,38.80,42.14,41.00,40.06, 39.51,40.41,41.13,39.77,40.46,41.23,41.52,40.49,42.35,42.84, 41.63,41.54,41.10,41.40,43.03,43.66,43.34,44.10,44.01,43.39, 42.65,41.65,43.26,43.44,42.38,44.31,42.41,44.10,45.86,46.08, 41.63,45.22,44.25,44.52,43.19,46.87,44.66,45.57,44.39,47.80, 47.57,46.07,47.82,47.27,48.16,46.95,46.60,47.01,46.64,47.10, 46.91,45.41,48.93,48.59,47.61,47.86,46.58,47.22,46.08,48.21, 48.42,47.49,50.02,47.90,48.73,49.32,49.93,50.74,50.27,49.36, 49.81,49.38,48.61,51.82,49.66,52.30,53.46,52.32,48.57,48.82, 49.83,50.65,51.33,50.53,53.18,53.22,49.67,52.88,51.21,54.61, 51.81,52.18,53.03,52.55,52.31,52.52,51.71,52.78,53.76,54.00, 55.41,53.33,55.59,52.47,56.08,54.00,56.22,53.54,55.65,53.51, 55.58,54.01,54.10,57.56,54.92,54.13,54.38,52.19,55.36,55.97, 53.09,54.61,55.70,57.24,55.33,56.22,55.72,57.68,55.82,56.12, 55.51,57.40,59.82,57.84,56.94,59.40,57.23,58.13,57.06,56.91, 56.99,59.00,57.50,55.82,61.17,58.84,59.39,57.88,58.62,58.31, 59.19,57.97,60.65,57.93,57.71,58.57,59.42,61.58,59.30,60.53, 58.53,59.62,59.91,60.00,60.15,59.54,58.41,60.00,61.04,62.98, 10.29,11.46,11.37,11.72,12.27,12.83,13.63,13.81,13.93,13.87, 14.51,15.61,14.89,15.62,15.74,15.48,16.49,16.35,17.51,17.70, 17.74,18.49,18.56,19.51,18.32,19.78,18.88,19.24,20.39,20.26, 21.13,21.70,21.63,22.05,20.69,21.76,22.20,22.57,22.46,22.75, 23.89,23.08,23.54,24.16,24.13,24.72,23.78,23.82,24.94,24.44, 25.17,25.70,26.82,25.85,27.11,27.49,26.45,26.85,27.43,27.52, 27.06,28.58,28.03,27.69,27.28,27.59,28.69,29.85,28.82,28.43, 28.41,30.35,29.29,29.78,29.63,31.36,30.34,30.09,30.11,31.02, 30.70,30.24,30.93,30.84,31.83,32.63,31.26,32.50,31.81,32.99, 32.46,33.02,32.51,33.86,32.80,32.82,34.84,34.14,33.35,33.91, 34.15,35.73,34.43,34.24,35.47,34.60,33.87,35.68,35.52,36.66, 38.56,36.65,36.94,36.85,36.84,37.27,37.41,36.21,38.22,36.79, 37.08,37.51,37.02,37.50,38.64,39.38,37.01,38.40,38.48,37.33, 38.48,37.93,38.45,38.84,39.58,38.76,38.85,38.62,40.13,40.54, 38.98,40.01,41.36,41.59,40.25,39.20,40.56,41.35,41.60,42.06, 40.48,42.47,42.36,40.85,40.30,42.66,40.66,41.62,41.65,40.56, 42.12,41.93,42.89,44.32,41.91,44.03,41.84,44.33,42.00,44.77, 43.06,43.30,44.99,44.96,45.21,44.33,42.94,44.82,44.21,45.57, 45.92,44.96,45.03,44.50,44.52,46.29,44.69,46.53,46.84,46.55, 46.14,47.30,46.19,45.11,45.71,46.14,47.09,46.80,47.11,46.46, 46.59,47.40,46.84,48.35,46.26,48.21,47.51,47.82,47.73,48.11, 49.21,46.91,48.85,48.27,48.32,50.71,50.23,48.41,49.75,48.85, 47.69,48.52,49.71,49.48,50.33,49.93,50.18,50.69,50.24,51.63, 49.19,52.75,52.63,49.73,47.83,50.11,51.89,52.46,50.51,50.23, 50.49,52.56,51.83,52.09,51.52,52.96,52.69,52.96,51.84,52.70, 55.18,51.92,53.01,52.33,53.33,54.24,51.45,55.05,52.06,55.92, 53.60,54.60,52.95,53.97,55.27,52.69,55.29,54.27,55.62,54.82, 53.53,55.37,53.63,57.56,55.90,55.02,55.95,55.01,54.07,54.54, 54.87,53.22,56.26,58.64,57.37,55.82,56.43,58.05,57.03,58.11, 9.54,10.41,10.43,10.87,11.43,12.59,12.17,12.97,13.03,13.50, 14.12,13.60,13.52,13.47,14.29,15.07,15.25,16.24,16.33,15.93, 16.51,16.87,16.45,16.98,18.51,17.91,18.05,17.56,18.57,18.40, 20.25,18.71,19.20,19.58,19.38,19.52,20.26,20.93,20.74,21.33, 20.59,22.02,21.28,21.54,21.27,21.93,22.36,23.01,22.76,22.81, 23.27,24.02,23.86,23.03,23.85,24.04,25.27,24.55,24.70,24.17, 24.75,26.95,25.79,25.88,26.72,26.09,26.26,27.48,26.31,25.91, 25.90,26.62,27.74,27.32,27.63,27.23,27.37,27.80,27.87,27.70, 28.20,27.88,28.97,28.58,29.56,28.99,28.68,28.54,29.98,31.32, 31.02,30.17,29.39,30.76,31.08,30.40,32.33,31.02,31.38,31.01, 31.30,31.88,30.98,30.92,31.73,32.67,31.95,33.16,32.64,32.76, 34.20,32.42,30.59,34.23,33.17,33.44,34.46,34.44,34.66,34.03, 34.01,35.29,35.20,34.80,36.39,35.59,35.74,35.21,35.28,35.04, 37.06,35.75,36.14,36.54,36.17,36.20,36.84,36.73,37.13,36.21, 37.72,35.50,37.88,34.94,37.28,38.26,38.31,37.91,37.18,37.08, 39.08,39.77,39.43,40.02,39.26,38.60,40.28,39.18,38.65,40.26, 39.16,38.97,39.50,40.02,40.30,40.48,40.18,39.57,38.65,40.86, 39.79,40.52,41.13,41.24,41.99,41.48,41.10,40.72,42.50,40.30, 41.10,41.94,43.61,41.99,42.61,42.37,40.95,43.36,44.02,42.16, 42.30,42.39,42.05,40.55,42.13,41.93,43.21,44.26,42.30,41.95, 42.56,44.25,43.56,42.22,44.80,44.11,43.34,42.23,44.21,44.59, 44.28,44.58,44.18,45.81,46.13,43.73,45.91,45.33,45.38,44.63, 44.71,45.81,46.32,45.40,44.71,45.71,44.65,45.33,46.20,47.82, 45.56,45.33,47.00,44.20,47.71,45.89,46.60,46.71,49.30,48.17, 46.95,47.73,48.09,48.63,47.41,46.81,48.58,46.87,48.12,46.92, 47.35,48.17,47.41,47.27,48.70,49.48,47.03,49.40,50.23,48.94, 50.36,49.12,49.51,52.33,50.20,49.78,49.86,50.66,50.20,48.82, 48.67,51.59,48.56,52.25,50.20,51.17,51.86,51.14,50.62,50.78, 51.68,51.12,50.50,50.46,51.71,51.83,51.94,52.50,50.20,53.50, 9.08,9.21,9.04,10.57,10.56,11.13,10.16,11.39,11.39,12.39, 12.80,12.49,13.09,13.22,13.45,14.29,14.05,14.11,14.77,15.18, 14.83,15.52,15.89,15.16,16.28,16.16,16.46,16.87,17.24,16.95, 17.36,17.29,18.35,18.00,18.37,18.73,18.68,18.38,18.88,18.59, 18.68,19.86,19.38,19.48,20.08,20.27,20.47,20.62,21.52,20.66, 21.58,21.60,21.45,22.43,22.46,22.06,21.98,22.12,22.42,21.70, 22.76,22.80,23.25,23.81,23.29,23.40,24.80,23.64,23.34,23.90, 24.27,25.05,25.17,25.73,25.23,24.69,25.40,24.35,25.88,25.34, 26.30,27.42,25.54,26.45,26.19,25.54,26.09,26.48,26.81,27.97, 27.38,27.63,25.91,27.03,28.91,28.05,29.25,28.77,28.74,27.60, 29.04,27.61,29.12,28.26,28.98,27.57,29.56,29.85,29.39,30.43, 29.42,29.74,30.00,31.12,28.99,30.38,29.98,30.45,31.82,30.60, 30.92,30.87,31.71,31.37,30.79,32.41,31.32,32.55,32.57,33.43, 32.02,31.34,33.05,31.92,32.85,31.08,32.98,34.18,32.73,32.13, 32.96,34.54,34.29,34.03,32.98,33.89,35.20,32.80,34.69,33.71, 33.58,35.18,35.88,34.40,36.73,35.07,33.47,35.56,35.15,34.89, 35.42,33.94,36.47,36.04,34.24,35.68,36.98,35.95,37.18,36.94, 37.30,36.94,37.03,36.77,38.20,35.60,38.12,36.82,37.01,37.41, 36.24,36.15,37.44,38.44,39.42,38.83,38.88,37.69,39.60,39.98, 39.37,38.69,39.51,37.98,39.43,38.81,37.67,39.46,39.15,38.33, 38.68,39.92,39.52,39.48,39.58,40.04,40.04,42.01,38.34,40.97, 41.47,39.76,41.05,42.48,42.38,40.40,40.23,41.00,40.98,42.33, 40.82,40.51,42.30,39.93,44.64,40.73,42.10,41.95,43.76,42.59, 42.07,42.76,43.22,42.14,42.47,43.53,42.70,42.61,43.88,42.27, 43.07,42.49,42.30,42.35,43.62,42.65,44.99,43.83,44.06,42.69, 43.72,44.16,43.70,44.30,44.62,45.44,43.48,43.82,44.26,43.86, 44.23,43.40,45.77,44.64,45.62,42.79,46.16,43.86,45.18,44.74, 45.97,46.26,44.57,47.00,46.85,45.83,47.44,45.95,48.07,46.93, 46.59,47.17,46.58,45.17,45.40,46.95,47.00,48.47,47.48,48.74, 8.32,7.80,8.16,9.25,9.99,9.93,10.04,10.97,10.37,11.29, 11.29,11.55,11.65,11.88,12.03,12.47,12.46,12.90,13.25,13.29, 14.66,14.34,13.66,14.40,14.15,15.58,14.85,15.24,15.13,16.08, 16.15,16.10,16.33,15.96,16.74,16.91,16.58,17.66,17.34,16.98, 17.44,18.14,16.95,18.50,18.80,18.17,18.94,18.88,18.85,20.08, 19.11,19.03,19.11,20.33,19.57,20.54,19.95,20.49,20.55,21.50, 19.27,20.47,22.14,20.84,22.72,20.85,21.99,22.07,20.91,21.95, 22.21,22.36,22.09,22.42,22.33,22.32,23.27,23.55,23.75,21.66, 24.57,25.43,24.88,23.35,23.65,24.78,24.78,24.78,23.93,23.66, 25.81,25.05,25.36,25.29,24.95,24.21,25.16,25.17,26.20,25.86, 26.14,26.15,26.80,28.11,26.03,26.29,26.03,28.07,28.20,26.95, 27.71,27.01,26.15,27.98,29.02,27.54,28.77,27.58,29.25,27.29, 28.60,28.10,28.77,29.80,28.78,29.22,29.15,28.74,29.73,30.70, 29.88,30.60,29.29,29.48,30.00,29.77,29.75,29.22,30.07,31.49, 29.55,30.53,31.08,31.46,31.06,30.63,30.39,31.39,31.81,31.23, 31.38,31.79,32.24,32.12,31.74,31.86,32.88,32.64,31.19,33.38, 31.35,32.42,32.78,32.06,32.09,32.98,32.31,32.17,33.03,33.33, 33.43,33.84,32.31,35.42,33.49,33.70,32.64,32.19,34.73,34.33, 33.99,33.96,35.08,34.64,34.51,35.35,33.88,34.61,35.70,35.27, 35.85,34.82,36.74,35.06,36.06,35.73,36.84,35.98,36.40,35.84, 36.49,37.23,36.40,36.51,35.91,36.43,37.96,35.81,36.59,37.02, 36.82,36.72,36.94,37.24,36.69,35.71,37.17,37.84,37.23,37.14, 38.43,37.36,37.95,36.54,38.62,39.38,37.95,37.86,37.69,38.50, 38.41,38.95,37.74,37.80,37.60,38.28,38.02,40.27,38.93,38.92, 39.85,40.19,38.87,40.78,40.65,40.97,36.61,39.34,39.29,39.77, 40.36,40.03,40.31,39.99,39.20,40.53,41.26,40.60,39.82,41.38, 41.20,39.92,42.59,41.25,40.60,40.39,40.30,41.86,43.18,42.05, 41.70,40.44,41.99,39.70,42.79,41.01,41.71,42.03,42.48,41.72, 42.51,43.04,41.79,42.26,42.41,40.21,43.80,43.64,42.92,42.87, 7.32,7.84,8.11,8.22,8.36,8.77,8.76,9.41,9.62,9.97, 9.49,10.32,10.49,10.60,10.52,11.10,11.45,11.70,12.01,11.33, 12.05,12.27,13.07,12.63,13.17,13.57,13.49,13.32,14.23,13.55, 14.88,14.41,14.76,14.52,13.96,15.45,15.70,15.48,16.53,15.67, 16.13,16.33,16.80,15.68,16.21,16.16,16.42,16.65,17.63,18.09, 16.82,17.06,17.55,17.59,17.48,17.82,18.43,18.38,19.89,18.39, 19.26,18.96,19.26,19.76,19.00,18.92,19.12,19.87,19.52,19.69, 20.07,20.36,19.89,20.48,21.19,20.37,21.27,21.92,20.89,20.78, 21.54,21.19,21.41,21.04,22.31,21.78,22.15,22.31,22.22,21.27, 21.79,21.55,22.93,22.19,21.83,23.76,23.80,23.49,22.81,22.47, 22.94,23.56,24.16,25.19,23.82,23.79,24.10,24.64,24.15,24.55, 24.52,24.60,24.69,24.47,25.22,26.39,25.59,24.95,25.67,25.90, 25.75,27.21,25.82,25.75,25.47,25.85,26.04,25.55,26.16,26.22, 25.89,27.25,26.46,26.78,26.80,26.21,27.29,27.25,27.51,29.00, 28.18,27.36,26.74,27.31,28.88,29.61,28.02,27.80,28.08,27.82, 29.14,28.13,28.83,29.39,28.23,28.42,29.36,29.97,30.09,29.02, 29.04,30.16,29.47,29.86,28.93,30.97,29.87,29.00,29.56,29.83, 31.78,30.82,30.32,30.13,31.11,30.23,32.30,31.07,30.06,31.58, 30.40,31.48,31.65,32.65,31.61,32.19,32.54,32.23,32.75,31.04, 30.33,33.27,31.37,31.16,32.81,31.86,33.77,31.80,31.94,31.40, 32.30,32.36,32.70,32.53,32.99,32.36,32.48,32.83,32.62,32.77, 33.62,33.36,33.75,33.66,34.38,34.17,33.36,34.63,35.52,34.03, 33.19,35.22,33.78,35.44,36.15,34.01,35.32,34.59,35.59,34.39, 34.95,35.54,37.03,34.25,36.15,35.50,33.75,34.94,35.66,35.96, 36.67,33.95,34.26,35.13,34.78,35.95,35.39,37.19,37.05,36.27, 37.43,35.55,36.12,35.83,35.92,36.02,35.92,37.60,36.07,36.51, 37.12,37.28,36.33,35.77,37.13,35.86,37.50,37.43,37.49,38.07, 37.13,38.43,38.35,37.86,35.86,38.14,38.62,38.07,38.82,39.65, 37.79,37.69,39.09,39.76,37.39,40.68,38.67,37.43,39.04,37.04, 6.53,6.72,7.35,8.01,7.53,8.28,8.43,8.06,9.44,8.91, 9.27,9.00,10.16,9.65,9.79,11.10,9.82,9.97,10.55,10.43, 11.21,10.77,10.98,11.44,11.53,12.49,12.05,12.83,12.66,12.22, 12.71,13.54,12.94,12.79,13.51,13.67,14.10,13.32,14.13,13.79, 13.42,14.71,13.99,14.65,14.84,14.20,15.95,15.03,15.35,15.21, 15.16,16.04,15.50,15.31,16.07,15.63,17.29,16.69,16.47,16.66, 16.72,16.77,17.14,16.28,16.69,17.21,17.80,17.14,18.62,17.30, 17.60,17.58,18.68,18.54,18.97,18.41,18.19,18.41,19.68,17.69, 19.38,18.38,19.10,19.35,19.63,19.76,19.55,19.29,19.89,19.84, 21.27,20.36,19.84,20.82,20.72,21.06,19.82,20.90,20.77,21.00, 21.59,21.12,20.97,21.28,21.03,22.13,21.71,21.47,21.31,21.69, 22.06,21.64,22.45,23.49,22.99,22.64,22.71,22.58,23.12,22.62, 23.19,22.36,22.81,21.74,22.64,24.21,23.42,23.79,22.82,23.61, 24.52,22.69,23.94,24.07,23.43,24.40,23.58,24.19,24.56,24.26, 23.75,24.08,24.27,26.13,23.71,24.24,25.39,24.91,24.56,26.12, 25.15,26.02,26.51,24.99,25.72,25.56,25.13,26.42,26.38,25.45, 26.36,26.17,27.51,25.78,25.56,27.27,27.73,26.46,26.51,27.78, 26.90,25.83,26.71,27.28,27.94,27.23,26.98,27.46,27.64,27.74, 26.91,27.76,27.12,28.02,28.38,28.71,28.00,29.50,28.83,28.57, 28.41,29.68,29.06,28.86,29.36,29.18,28.63,29.45,28.18,29.27, 28.94,26.84,30.02,28.78,30.58,30.34,30.31,30.58,30.41,29.49, 29.69,29.95,29.89,31.11,29.43,30.40,30.46,30.64,30.75,30.28, 31.02,32.84,31.75,31.92,29.71,31.92,31.65,29.67,31.16,31.81, 31.09,30.29,32.04,31.69,31.00,32.00,32.63,31.46,31.81,31.63, 31.38,32.26,32.63,32.74,32.34,32.35,32.99,31.64,33.23,31.60, 31.52,34.17,32.55,32.35,34.18,32.30,33.11,32.86,33.62,32.68, 32.97,34.53,33.26,34.24,34.87,32.64,32.93,33.67,33.98,33.20, 33.77,33.82,34.76,33.35,33.22,33.47,34.29,35.60,34.89,34.18, 33.48,35.03,34.95,35.65,34.01,33.49,34.92,33.31,34.43,34.79, 5.78,5.85,5.93,6.13,7.71,6.21,7.61,6.97,7.51,8.47, 8.26,8.18,8.22,8.45,9.06,8.71,9.27,9.25,9.67,9.74, 9.74,10.03,10.44,10.75,10.53,10.34,10.34,11.06,10.94,11.69, 11.74,11.01,11.34,12.12,11.95,12.44,12.25,11.95,12.07,12.86, 12.43,12.95,12.37,12.82,12.99,13.93,13.30,13.85,13.22,13.81, 14.22,14.06,13.41,14.73,14.67,15.07,15.20,15.08,14.46,15.39, 15.14,15.72,14.68,15.99,14.62,15.09,14.90,15.80,16.60,15.70, 15.59,16.18,16.03,16.82,17.15,16.02,16.59,17.13,17.23,17.14, 16.63,17.20,18.02,16.64,16.55,17.62,18.43,17.60,17.34,18.69, 17.54,18.41,18.75,18.39,18.01,17.80,18.89,18.82,19.45,19.97, 18.96,19.59,19.02,18.99,19.17,18.98,20.50,19.35,19.05,19.37, 20.03,17.63,19.24,19.45,20.32,20.63,19.89,20.40,19.78,20.77, 20.61,20.13,20.81,20.00,20.61,21.14,22.07,20.02,21.04,21.77, 20.81,21.11,20.84,20.78,22.27,20.25,21.86,21.19,22.45,21.49, 22.52,21.57,21.73,21.93,21.90,22.46,23.39,22.02,22.18,22.94, 24.21,23.27,23.22,22.83,22.42,24.73,23.90,21.89,23.48,23.89, 23.26,22.97,22.08,23.48,23.19,23.80,23.42,23.97,23.73,23.47, 24.41,23.86,23.35,25.08,24.21,24.39,24.24,25.16,24.12,24.91, 24.43,24.69,24.65,24.17,25.08,25.74,24.97,25.92,25.68,24.53, 25.41,25.68,26.31,26.36,25.42,26.65,25.77,25.13,25.16,24.01, 26.96,26.26,25.67,25.99,25.72,25.39,26.73,27.25,26.60,26.62, 27.22,26.76,26.61,27.30,27.19,27.76,26.12,26.62,27.66,26.99, 27.95,26.75,27.08,27.60,26.82,28.97,28.44,27.59,29.63,26.91, 26.93,29.36,27.61,27.75,27.45,27.83,27.93,29.91,27.64,28.63, 28.72,28.16,28.68,28.57,29.01,27.92,28.57,30.08,28.78,29.47, 29.63,29.09,27.80,29.00,29.86,29.80,29.05,28.96,30.50,29.46, 30.13,31.62,28.84,31.61,29.81,30.01,30.50,30.26,28.86,30.03, 30.48,30.71,29.81,31.13,29.66,29.19,30.83,30.72,28.24,29.13, 30.50,32.34,30.33,30.87,30.77,30.89,30.82,32.22,30.46,30.87, 5.22,5.59,5.80,6.62,5.56,6.46,6.06,6.90,7.19,7.15, 7.26,7.63,7.73,6.76,8.20,8.69,8.91,8.39,7.79,8.82, 8.69,9.33,9.37,9.05,9.43,9.70,9.23,9.89,10.01,10.23, 9.98,9.98,10.22,10.52,10.72,11.18,10.87,11.48,11.09,11.42, 10.43,11.56,11.65,11.77,11.75,12.34,11.67,11.86,12.33,13.02, 12.55,11.71,13.72,12.73,13.28,13.02,13.27,13.78,13.50,13.57, 13.56,14.28,13.12,13.59,13.92,14.13,13.80,14.30,13.70,14.03, 13.95,14.84,14.83,14.71,14.86,15.59,13.67,14.87,15.24,15.65, 15.11,16.07,15.25,15.54,16.37,15.17,16.10,15.76,17.09,16.04, 16.57,16.42,16.10,16.15,17.29,16.92,17.38,15.92,17.44,16.97, 16.76,17.33,17.08,17.43,18.02,16.60,16.99,16.57,17.39,16.85, 16.99,17.48,17.82,17.84,17.77,18.52,18.23,18.49,17.74,19.44, 17.69,17.78,17.93,17.97,18.96,19.25,18.21,18.82,19.87,19.60, 18.97,19.22,19.48,19.17,19.68,19.41,19.26,19.42,19.52,19.73, 19.29,20.12,19.08,19.32,19.40,19.36,19.42,19.63,19.46,21.08, 20.13,20.53,21.06,20.36,20.22,19.98,20.72,19.04,21.34,21.06, 21.52,21.40,20.92,21.62,21.28,21.86,21.22,21.60,21.83,21.86, 21.70,21.49,21.76,22.22,21.81,22.25,22.00,21.42,21.18,23.06, 22.30,22.62,21.66,22.78,23.13,22.89,21.93,23.12,22.06,22.44, 23.42,21.12,23.37,23.09,22.78,22.63,23.83,23.13,23.40,22.41, 23.81,24.60,23.58,23.22,23.41,23.14,24.23,23.69,22.89,24.51, 24.39,23.89,24.28,23.65,22.91,24.51,24.27,23.92,23.39,23.82, 23.70,25.70,25.18,24.24,24.57,25.23,24.47,25.22,24.21,25.19, 24.74,24.94,25.77,25.22,25.40,25.08,25.60,25.01,25.06,25.26, 25.11,24.96,25.81,24.29,26.25,24.34,25.50,25.76,25.41,26.28, 26.57,26.35,27.47,26.59,28.38,27.28,26.83,25.93,27.26,26.32, 26.29,25.87,25.78,27.08,25.99,25.81,27.70,25.96,27.75,26.60, 26.69,28.75,26.32,27.31,27.16,28.11,27.89,27.25,26.96,25.90, 27.93,28.71,28.32,27.24,27.88,28.37,27.08,28.17,27.64,28.90, 4.76,4.64,4.99,5.29,5.35,5.82,5.61,5.36,6.50,5.45, 6.72,6.82,5.91,7.04,7.22,6.70,7.07,7.54,7.29,7.43, 7.92,7.74,8.33,7.74,8.86,8.47,8.47,8.40,8.90,9.02, 9.76,9.20,9.13,9.21,10.97,9.59,9.96,9.04,9.83,10.36, 10.59,10.23,10.46,10.35,10.52,9.63,11.50,9.86,11.14,11.09, 11.22,10.85,10.61,11.92,11.18,12.07,11.63,11.25,11.61,11.20, 11.60,11.78,11.70,12.56,11.92,12.73,12.63,12.89,11.96,12.49, 12.08,12.00,12.93,12.62,12.77,11.96,13.20,12.77,14.25,13.27, 13.24,13.81,14.28,13.87,14.50,13.85,13.93,13.46,14.47,12.98, 13.40,13.72,14.31,14.24,14.70,15.00,14.29,15.64,14.82,15.34, 15.19,14.98,14.74,16.17,14.26,15.65,14.84,15.66,16.23,15.74, 16.14,15.91,16.35,15.98,16.00,15.58,16.33,17.13,15.79,16.23, 15.87,16.24,16.21,16.82,17.30,16.18,17.03,16.73,16.80,16.91, 16.39,17.36,17.32,16.86,17.24,16.87,16.78,17.25,17.49,17.19, 17.79,16.71,18.28,17.51,17.44,16.76,18.40,18.29,19.65,17.38, 18.17,18.73,17.79,18.47,17.97,18.49,18.63,17.64,18.62,18.17, 18.75,17.71,17.83,18.85,18.99,19.69,18.34,19.03,19.67,19.26, 18.97,19.50,19.28,19.22,19.86,18.71,18.83,18.96,19.34,20.25, 19.49,19.28,18.96,20.24,20.25,20.25,20.25,20.13,19.83,20.94, 20.02,20.23,21.61,19.53,21.73,20.58,19.92,20.51,20.87,21.86, 19.41,20.84,21.69,19.82,21.15,20.88,20.72,21.08,19.80,20.33, 21.34,21.22,20.89,22.41,21.21,22.57,20.76,21.60,21.54,22.27, 22.24,21.86,21.66,21.28,21.95,21.43,21.65,21.64,20.61,23.08, 22.56,21.30,21.61,21.49,22.86,21.37,22.56,22.05,22.19,23.80, 21.50,22.16,22.00,21.91,22.48,23.17,23.33,23.65,22.63,22.33, 23.10,22.38,23.89,23.98,23.27,22.39,23.33,24.22,24.68,24.75, 23.76,23.95,23.60,23.91,23.35,23.01,23.63,24.07,23.32,22.78, 24.46,23.48,23.48,25.08,24.31,23.35,24.77,24.39,24.09,24.54, 24.36,23.22,24.51,25.06,24.80,24.99,23.99,23.67,24.64,25.05, 3.40,2.98,3.87,4.26,5.09,5.85,4.99,5.19,5.32,6.07, 4.81,5.65,5.75,5.81,6.31,6.53,6.99,6.19,6.18,6.27, 7.07,7.14,7.16,7.45,7.45,7.30,7.62,7.80,8.11,8.31, 8.14,7.57,8.34,7.90,8.50,7.61,8.38,8.26,8.45,8.17, 9.55,9.34,9.68,8.96,9.09,8.89,9.52,8.97,9.58,10.09, 9.63,9.56,10.13,10.17,9.37,10.13,10.11,10.54,10.48,9.94, 10.81,10.30,10.61,10.86,11.76,11.05,10.52,10.42,10.88,11.77, 11.33,10.85,12.00,12.15,11.47,11.90,11.23,12.08,12.19,11.16, 12.21,12.22,12.50,12.44,12.10,12.54,11.89,12.43,12.13,12.55, 12.79,12.85,12.53,12.68,12.91,12.77,14.00,14.31,13.06,13.34, 13.16,12.84,13.42,13.10,14.23,13.22,14.53,14.37,13.89,14.35, 13.29,14.14,14.36,14.70,14.86,14.12,14.99,14.00,14.86,14.99, 14.49,13.62,14.99,14.70,14.23,15.46,15.35,15.19,14.34,15.68, 15.69,14.95,15.06,15.08,14.63,15.45,14.33,15.60,15.55,15.26, 16.24,14.96,14.77,16.11,15.36,15.30,15.32,15.19,15.33,15.86, 16.69,15.79,15.35,17.08,16.17,16.41,15.36,16.41,16.54,15.90, 16.58,16.83,16.49,16.55,16.32,16.39,16.14,16.36,16.33,18.25, 17.07,18.03,17.34,16.77,17.27,16.65,17.40,16.88,17.44,18.04, 17.56,17.25,17.61,18.69,17.30,17.85,17.59,18.14,18.03,18.22, 17.93,18.23,18.87,18.05,18.59,19.04,18.39,19.41,19.23,18.76, 17.83,18.93,18.51,18.19,18.55,19.45,19.20,19.31,19.38,18.13, 18.41,19.24,18.70,19.78,18.69,18.42,18.76,17.85,18.88,18.65, 17.75,19.58,19.79,18.91,18.59,19.71,18.94,19.70,19.52,19.85, 20.85,20.48,20.92,19.87,19.48,19.81,20.12,19.53,19.09,19.94, 21.05,20.20,19.98,20.92,21.45,20.92,20.18,20.38,20.01,20.82, 19.83,20.93,20.90,22.14,20.63,21.04,21.21,20.22,20.25,20.95, 21.80,20.79,20.17,20.73,21.56,20.98,20.76,21.60,21.51,21.02, 21.31,21.33,20.29,21.55,20.50,21.52,22.00,21.81,23.27,21.41, 21.81,21.28,20.85,22.34,21.10,22.47,20.62,21.77,22.46,22.42, 3.95,3.60,4.48,3.94,4.54,5.03,4.95,4.89,5.34,4.55, 5.03,5.27,4.49,5.54,4.95,5.56,5.14,6.12,5.49,6.29, 6.80,5.88,6.72,6.97,6.46,6.77,7.37,7.15,7.63,6.76, 7.26,7.57,7.12,7.54,7.71,8.15,8.22,8.09,7.56,7.63, 7.64,8.44,8.71,8.52,7.50,8.64,7.97,8.13,8.40,8.63, 8.40,9.09,8.22,9.17,8.60,9.75,9.44,10.02,9.74,8.92, 8.74,9.88,9.47,9.98,9.37,9.88,10.50,9.63,11.18,9.76, 9.62,9.95,10.20,10.45,9.71,9.75,10.15,10.81,11.25,10.83, 10.20,10.47,10.19,9.74,10.72,11.25,10.31,10.46,11.21,12.07, 11.25,11.54,10.79,11.93,11.66,11.38,12.20,11.64,10.02,11.84, 11.18,11.90,11.51,11.77,12.01,13.01,11.73,11.73,12.24,12.32, 12.39,12.07,12.57,11.78,12.69,11.94,12.23,12.48,12.98,13.22, 12.01,11.95,13.29,14.24,13.66,12.36,12.60,13.62,14.06,13.86, 13.17,13.47,13.89,12.66,13.47,13.87,14.32,13.65,14.43,13.49, 13.02,14.18,13.69,13.79,14.00,13.84,13.36,13.88,13.69,13.80, 14.49,13.80,14.34,14.14,14.70,14.61,14.97,14.17,14.33,14.30, 14.90,14.28,14.92,14.89,15.27,14.99,14.92,14.33,14.88,15.16, 14.88,15.25,15.27,15.51,15.88,15.58,15.26,15.25,15.36,15.07, 14.99,15.73,14.86,16.84,15.86,15.92,16.42,14.94,14.72,14.30, 16.69,15.57,16.18,15.99,16.48,16.30,16.94,15.07,15.98,15.15, 17.15,16.76,15.91,16.53,17.30,16.45,16.53,17.11,15.69,16.81, 16.10,17.31,16.45,17.18,17.58,17.21,16.72,17.46,16.78,17.44, 16.82,17.39,16.67,17.04,17.46,17.73,17.95,17.45,16.70,17.78, 17.12,17.76,17.70,17.09,17.29,17.28,17.28,18.67,17.00,18.05, 18.21,17.83,17.71,17.56,17.61,17.71,19.13,18.15,18.67,17.91, 18.14,17.41,17.96,18.41,17.17,17.51,18.72,17.28,17.48,18.21, 17.48,19.65,18.94,18.10,18.97,18.63,18.86,18.24,18.11,18.63, 18.94,18.52,19.16,19.08,19.37,18.69,18.69,19.63,18.25,18.69, 19.49,19.13,19.06,18.57,18.93,20.23,19.49,19.90,20.96,20.10, 2.37,3.02,3.22,3.45,3.58,4.48,3.47,3.00,5.32,4.40, 4.35,5.22,4.23,4.88,4.63,4.87,5.70,5.66,4.69,5.32, 5.40,5.72,5.60,6.40,6.14,5.22,6.44,5.85,6.45,6.34, 5.97,6.44,7.04,7.18,6.72,6.52,6.66,7.03,6.73,5.88, 6.98,7.52,7.19,6.80,7.25,7.03,7.35,7.07,7.06,7.34, 7.86,8.23,7.49,6.81,7.96,7.72,8.65,7.59,8.53,8.69, 8.35,8.00,8.62,8.27,8.62,8.68,8.36,9.31,8.25,8.95, 8.45,9.11,8.94,9.53,9.46,9.33,9.19,9.39,9.85,9.63, 10.83,9.25,8.63,10.03,9.68,10.18,9.78,9.68,9.57,9.62, 10.22,9.82,10.60,9.75,9.96,9.84,10.33,10.77,10.70,10.47, 9.83,10.32,11.40,10.22,10.41,10.24,10.56,11.23,10.80,11.55, 11.30,11.06,10.84,10.95,11.99,11.42,10.90,10.64,10.97,11.80, 11.70,11.15,11.81,12.10,11.42,11.64,11.76,11.41,11.58,11.90, 11.79,12.67,11.82,12.08,12.21,12.72,12.03,12.47,13.19,11.99, 12.08,11.75,12.41,12.97,12.66,12.86,11.90,13.21,12.21,12.24, 12.20,12.51,12.48,13.39,12.53,12.02,13.72,13.30,11.72,12.45, 12.46,13.66,13.35,13.39,13.13,13.28,13.03,13.38,12.92,13.09, 12.79,14.24,13.01,13.55,13.46,13.69,13.44,13.30,14.27,12.99, 13.24,13.86,13.44,13.34,14.15,13.73,14.02,14.03,13.53,15.00, 13.65,12.29,14.30,14.36,13.79,14.58,15.44,13.75,14.36,13.91, 14.68,14.58,14.11,14.30,14.10,15.13,13.88,15.51,14.99,14.87, 15.33,14.27,14.72,15.39,15.60,15.65,15.26,15.40,15.16,15.05, 14.91,15.26,15.65,15.18,14.54,15.45,15.42,15.16,15.87,15.15, 15.35,14.62,15.64,15.55,15.45,15.75,15.34,16.07,15.94,15.56, 15.33,16.20,16.12,16.20,15.51,15.61,14.95,15.87,14.85,16.25, 15.82,16.26,16.04,15.27,16.45,15.41,16.65,16.51,15.45,15.64, 16.29,15.63,15.87,16.31,16.12,16.80,17.46,16.31,15.41,16.61, 16.46,16.38,17.35,16.88,16.78,17.10,16.65,16.52,17.53,17.79, 17.34,16.00,17.34,17.30,17.51,17.08,16.46,15.91,17.15,16.31, 2.44,3.32,3.05,3.41,2.88,2.41,3.71,3.83,3.64,3.30, 3.95,3.38,4.38,3.78,4.04,3.82,4.48,4.31,3.97,4.57, 4.67,5.18,5.40,5.58,5.06,5.30,5.69,4.96,5.11,6.62, 5.62,5.47,4.95,5.92,6.18,5.41,5.77,5.64,6.04,6.19, 5.69,7.35,6.25,6.98,6.52,5.92,6.11,6.66,7.15,6.76, 7.05,7.06,7.40,6.55,7.61,7.33,6.28,7.05,7.97,7.59, 6.67,7.69,7.06,7.15,8.37,7.98,8.18,8.94,8.11,7.51, 7.54,7.93,7.73,7.90,8.21,7.71,7.73,8.27,7.80,7.50, 9.03,8.58,7.55,9.01,8.71,9.18,7.81,8.22,8.83,8.24, 8.65,8.47,8.44,8.89,8.42,8.01,9.53,8.55,9.07,8.87, 9.76,9.36,8.60,9.05,9.40,9.32,9.88,9.71,9.51,9.92, 9.38,9.72,9.52,9.81,10.05,9.46,9.55,9.70,9.33,10.70, 10.47,9.50,9.88,10.48,10.18,10.53,10.09,9.68,10.45,10.41, 10.43,10.67,10.52,10.15,10.51,10.64,9.84,11.16,11.11,10.39, 11.42,11.03,10.96,9.90,11.38,10.79,11.29,11.33,11.01,12.70, 10.84,11.12,10.74,11.42,12.25,11.14,11.13,11.68,11.19,11.92, 11.03,10.52,11.57,12.27,11.57,11.23,12.16,11.23,11.55,11.60, 11.41,12.34,12.12,11.72,11.67,10.87,12.75,12.17,11.90,11.54, 11.77,12.31,12.07,12.54,12.35,12.43,11.63,12.01,12.56,13.28, 11.94,11.68,12.21,13.63,12.29,12.32,12.27,12.70,12.75,11.76, 13.13,12.54,13.23,13.20,13.60,13.00,13.04,13.15,12.49,12.36, 12.91,13.01,13.22,13.82,12.45,12.75,12.00,13.44,13.26,13.04, 13.02,12.79,12.96,13.21,12.45,12.42,13.62,14.29,13.74,14.39, 13.18,13.52,13.88,14.04,13.79,14.83,12.56,12.90,13.61,14.24, 14.35,13.85,13.48,14.77,14.55,14.95,14.20,13.25,13.74,12.91, 13.73,13.32,14.28,14.23,14.26,14.47,15.97,14.85,14.42,14.89, 15.24,14.16,14.76,13.82,14.64,14.52,14.67,14.68,14.75,15.08, 16.01,14.45,14.18,14.89,15.09,14.26,15.08,14.54,15.30,15.33, 14.49,15.14,15.42,14.69,15.53,14.91,14.80,14.27,14.85,14.78, 12.99,13.54,14.53,14.42,15.43,16.24,16.55,16.48,17.10,17.42, 18.82,19.34,17.80,19.49,19.00,20.27,20.17,20.41,20.12,21.09, 21.22,21.61,21.84,22.66,22.73,23.46,24.10,24.98,24.28,25.28, 24.68,25.25,25.34,26.34,26.49,26.97,26.66,28.47,28.93,27.32, 28.10,27.82,28.86,28.95,29.54,29.32,30.44,30.89,28.91,30.02, 30.77,30.62,32.06,31.77,33.40,31.26,32.00,33.02,33.53,32.79, 32.75,33.18,32.42,34.41,34.91,32.97,34.51,34.72,34.99,36.06, 35.33,35.53,35.32,35.60,35.32,35.78,36.34,35.37,37.50,38.66, 37.05,38.61,37.02,36.95,37.92,38.59,38.42,38.70,39.63,41.14, 37.98,38.75,39.94,40.60,40.20,39.45,41.76,39.99,41.97,41.41, 40.58,41.38,41.19,42.59,41.89,44.20,41.45,43.66,42.39,42.40, 44.26,42.57,43.17,45.28,45.38,44.83,44.37,44.83,43.50,44.13, 45.68,45.30,45.19,44.19,46.34,46.19,47.33,47.08,45.29,44.08, 45.10,49.06,48.15,48.42,48.60,47.65,48.93,49.50,48.46,47.57, 48.51,48.56,48.17,50.99,49.63,48.86,49.52,51.14,48.81,49.47, 49.50,49.57,49.55,48.60,51.56,50.13,50.68,53.07,49.32,49.15, 50.10,52.58,53.34,53.86,49.84,51.47,53.86,53.41,53.26,51.97, 53.11,52.56,52.65,53.49,52.62,51.30,53.52,53.45,52.34,55.28, 55.03,55.65,52.61,53.07,53.44,56.25,56.20,55.76,55.92,53.59, 56.28,56.82,57.10,56.99,56.22,57.65,55.74,58.57,56.42,59.04, 58.04,58.63,59.98,57.38,56.91,59.22,56.68,58.54,58.87,58.53, 58.64,59.41,58.75,61.02,60.91,59.57,58.29,60.06,59.32,59.08, 59.77,57.72,60.97,58.75,59.74,60.10,62.02,60.04,60.58,62.77, 56.83,63.03,60.29,60.95,61.61,64.43,61.14,63.94,61.90,61.79, 64.08,64.06,62.22,65.08,64.59,61.69,64.61,62.70,64.76,66.22, 63.28,63.76,63.89,65.16,65.31,65.80,62.34,63.72,63.38,63.39, 65.30,63.06,66.83,64.04,67.38,65.55,65.99,67.08,67.47,66.87, 66.86,63.38,66.34,66.86,64.45,68.61,64.39,67.23,66.03,68.55, 67.01,67.36,68.55,66.69,68.00,66.31,70.08,69.23,67.69,68.63, 11.62,12.39,13.49,13.84,13.87,14.44,14.83,15.60,16.14,16.86, 16.68,17.43,17.96,18.43,18.30,18.70,18.73,19.57,20.56,20.66, 20.60,20.66,20.57,21.06,21.66,22.07,22.47,22.83,23.19,24.23, 22.70,23.51,24.39,24.44,25.35,25.65,24.43,26.47,27.49,26.82, 25.95,25.39,27.51,26.85,27.19,27.85,28.38,27.30,28.43,27.96, 28.80,29.06,29.61,29.21,30.24,30.54,30.46,29.76,31.22,31.63, 31.55,32.75,32.02,31.86,32.00,33.25,32.08,32.98,34.73,32.76, 32.64,34.65,33.00,34.42,34.99,33.44,34.53,35.95,34.80,35.68, 35.67,34.46,34.37,35.80,35.64,36.14,36.72,37.47,38.63,37.12, 37.64,36.65,38.64,37.58,38.02,37.90,38.76,37.47,38.87,39.71, 38.71,40.33,39.07,38.91,39.60,40.59,40.86,40.93,40.35,40.82, 40.66,40.65,42.41,42.12,40.95,43.80,42.99,41.88,43.64,42.99, 43.29,40.63,43.55,42.78,45.04,42.60,42.44,43.36,44.14,43.38, 43.57,44.03,44.07,43.53,46.36,43.83,43.66,45.36,46.93,46.90, 46.26,43.96,45.99,45.30,46.25,44.85,45.73,46.60,47.08,47.75, 48.91,48.76,46.61,48.69,47.45,49.18,47.07,46.99,49.41,48.42, 49.95,50.07,48.09,51.70,51.10,48.93,49.40,50.99,48.25,49.12, 49.38,50.02,51.40,48.62,52.07,52.14,51.43,51.96,50.44,52.02, 51.95,50.47,48.86,51.66,51.53,51.88,53.35,53.08,52.56,53.95, 54.51,51.92,54.95,51.77,54.42,50.91,54.36,53.61,56.57,54.48, 54.78,53.08,55.53,54.61,56.36,55.15,56.03,54.50,55.43,55.85, 56.42,54.76,55.32,55.03,56.87,55.40,55.49,55.66,56.67,55.67, 59.31,55.47,55.26,55.94,56.49,56.88,61.07,56.68,58.36,57.64, 58.21,57.58,58.29,57.67,60.49,57.96,60.97,57.69,58.56,57.72, 58.07,59.49,58.95,60.54,58.76,59.43,61.76,59.34,61.34,57.38, 62.31,60.87,61.86,61.54,62.28,61.57,62.05,61.02,60.54,60.27, 60.95,60.34,60.98,60.84,62.59,63.75,60.48,63.25,61.89,61.38, 63.62,63.24,64.04,60.06,62.57,63.59,61.61,64.19,64.17,62.60, 64.90,62.65,62.39,63.67,64.16,62.92,66.17,63.48,65.72,65.46, 11.12,12.61,11.76,12.68,13.40,13.47,13.99,13.86,15.30,15.61, 15.82,15.96,16.15,16.96,17.15,17.90,18.32,18.21,19.18,18.86, 19.94,19.68,20.13,20.10,20.89,21.44,21.57,20.60,21.49,21.95, 22.72,22.23,22.48,23.35,23.63,23.85,23.56,24.21,23.66,23.69, 25.19,24.80,25.23,25.72,26.30,25.20,26.31,26.83,26.90,26.76, 28.30,26.81,27.93,27.74,28.50,27.35,28.54,28.61,28.48,28.48, 30.56,29.91,29.77,29.71,30.15,29.73,30.37,29.48,32.14,29.89, 31.30,32.27,32.32,31.87,32.25,32.30,33.03,32.03,31.62,33.74, 34.23,32.44,35.13,32.86,33.72,33.00,34.25,33.24,35.46,34.69, 34.22,34.75,36.05,34.83,36.26,35.56,36.03,36.24,36.67,35.75, 37.03,36.56,36.59,37.72,37.83,39.16,39.89,39.31,37.79,39.63, 37.78,37.36,37.56,39.16,38.08,38.67,39.67,39.89,39.08,40.23, 40.23,40.40,40.56,39.28,40.75,40.90,40.39,41.71,41.36,41.44, 41.61,40.90,42.47,41.36,42.61,41.73,43.09,39.73,42.33,43.27, 42.36,42.57,42.04,42.75,44.34,43.41,43.68,43.30,43.31,43.10, 43.72,44.19,46.46,45.25,45.08,45.35,44.90,45.06,46.07,46.82, 45.87,45.44,44.29,45.91,47.14,44.51,45.58,46.55,46.59,45.89, 48.06,46.18,48.20,47.76,49.09,47.00,50.32,48.50,48.09,46.91, 49.07,48.10,50.18,50.23,49.10,52.37,48.74,50.13,49.18,49.26, 48.49,50.78,48.38,50.14,51.48,50.71,52.09,50.01,50.50,51.39, 50.57,52.26,49.65,51.57,51.37,51.40,51.67,54.42,50.93,50.35, 51.44,52.67,52.38,52.07,53.67,50.94,52.09,51.81,53.35,53.84, 53.24,52.18,51.78,52.57,52.39,55.22,56.12,56.38,54.70,54.19, 55.28,54.42,55.74,54.40,52.43,54.76,55.01,55.26,54.85,53.71, 56.20,54.27,54.38,56.37,55.19,57.18,56.99,55.86,55.59,57.32, 56.98,55.75,59.59,57.22,55.66,55.94,56.80,56.98,56.38,58.78, 59.58,56.00,55.45,57.27,58.23,57.36,59.01,59.74,58.98,58.37, 60.07,57.78,58.70,58.19,58.08,58.32,58.42,59.18,56.30,59.80, 60.54,60.95,60.15,59.66,61.48,58.54,61.95,56.22,62.52,59.25, 9.99,11.02,11.51,11.57,12.75,12.65,13.03,13.68,13.60,14.38, 14.69,15.44,15.47,16.27,15.83,16.18,17.01,17.06,16.97,17.50, 18.32,17.68,18.83,18.51,18.82,19.13,19.57,20.22,20.19,20.84, 20.65,20.64,20.65,22.00,20.62,21.46,22.42,22.94,22.41,22.90, 21.90,23.08,23.60,23.87,22.73,23.85,23.76,23.90,24.65,24.99, 25.48,24.68,24.59,25.31,26.33,26.11,27.20,26.55,26.33,26.90, 27.63,27.66,25.99,28.97,27.04,28.65,27.90,29.75,28.74,29.70, 29.43,29.71,31.01,29.63,30.39,29.08,29.66,31.60,30.98,30.47, 30.23,31.25,31.94,31.86,31.00,32.91,31.81,32.29,30.32,33.47, 32.64,32.90,32.02,32.91,32.56,34.25,32.75,32.72,32.91,32.83, 33.87,34.03,35.22,34.21,33.74,33.96,35.21,35.15,35.48,35.39, 34.94,35.65,35.28,36.01,36.48,36.98,35.70,36.55,34.83,35.91, 36.94,37.43,36.85,38.27,38.16,39.29,37.88,37.82,38.12,36.44, 38.84,38.85,38.40,38.29,40.32,39.54,37.76,41.79,38.22,39.09, 40.74,41.13,40.12,39.30,40.89,39.70,40.92,39.25,40.95,41.63, 43.17,42.22,40.14,42.17,41.07,42.58,40.95,42.89,42.67,44.00, 42.47,41.60,42.32,43.04,44.59,43.52,43.64,42.85,41.51,42.98, 43.04,43.64,42.98,43.86,43.73,44.07,43.28,43.15,44.52,44.96, 45.66,45.22,47.27,43.92,44.58,44.42,46.46,46.03,45.41,45.87, 47.22,46.40,44.45,47.14,49.49,48.34,47.16,47.94,45.66,46.77, 47.40,46.18,47.24,48.03,48.03,47.81,47.96,45.93,47.16,47.42, 47.83,47.86,49.68,47.18,48.46,49.92,48.46,48.97,49.50,47.56, 48.14,49.69,47.07,49.17,49.86,49.85,50.39,51.45,52.08,49.23, 50.05,49.14,50.52,49.97,48.90,49.58,52.69,51.53,51.68,50.56, 50.67,52.98,51.49,52.26,53.03,51.64,51.53,53.04,53.03,54.38, 52.11,52.19,52.74,54.56,55.20,51.81,53.40,52.49,51.14,53.34, 52.50,52.50,52.26,52.40,56.43,52.06,53.80,55.56,53.43,53.59, 52.69,55.49,53.68,52.24,53.04,55.71,55.46,54.85,54.55,55.42, 56.16,54.39,56.54,56.70,56.82,54.01,57.18,54.20,56.64,57.50, 9.57,10.31,10.58,10.67,11.55,12.59,12.82,12.28,12.91,13.32, 13.53,13.78,14.09,14.31,14.70,14.54,15.39,15.09,16.27,15.85, 16.52,16.58,16.20,17.59,17.66,18.06,18.72,18.29,18.34,19.31, 18.90,18.64,18.93,19.76,19.54,19.66,20.66,19.97,20.62,21.99, 21.33,21.78,21.32,21.14,22.11,21.47,22.11,22.58,22.83,22.68, 22.99,23.46,24.41,23.36,24.35,23.32,24.20,24.56,24.67,25.53, 23.96,26.16,24.13,25.93,25.87,25.72,25.67,26.35,25.97,29.52, 26.43,26.44,26.72,27.10,27.11,26.49,27.35,27.87,28.18,28.36, 27.05,28.59,30.43,28.79,30.11,29.22,28.63,28.71,29.80,30.16, 29.42,31.55,31.21,31.47,30.51,31.04,29.94,31.56,31.98,31.32, 31.24,30.44,31.60,32.99,32.38,32.24,30.91,32.35,30.36,32.87, 33.64,33.33,33.27,33.17,34.17,33.02,32.78,33.99,33.62,33.64, 34.08,35.13,34.23,33.61,35.95,34.92,34.50,35.18,35.35,35.11, 35.51,35.00,34.45,35.89,36.38,35.93,35.45,36.71,36.08,36.99, 37.34,34.31,37.03,37.48,36.05,35.97,36.75,38.09,38.43,36.88, 37.15,38.50,38.11,37.83,37.83,36.70,37.73,37.76,39.63,37.10, 39.51,39.73,38.79,39.24,37.84,40.47,40.08,40.42,40.69,38.98, 39.39,40.26,40.89,39.46,39.35,39.94,40.83,40.59,40.34,41.24, 39.49,41.44,41.17,40.73,40.52,40.13,41.34,44.24,43.45,41.52, 42.43,43.20,41.78,41.89,40.50,41.64,44.54,43.48,43.92,45.89, 42.32,43.87,42.81,42.37,42.92,42.52,42.02,43.58,44.20,43.86, 42.57,45.62,45.65,44.47,46.93,44.10,44.42,45.78,44.20,44.67, 45.99,45.07,45.62,45.55,45.27,46.27,46.22,48.14,46.26,47.33, 46.96,47.60,47.68,46.89,45.68,47.84,46.52,48.14,45.85,46.63, 49.64,47.32,46.00,50.07,46.95,47.00,47.23,49.11,50.06,48.52, 47.86,48.64,48.22,49.12,49.10,49.02,48.57,49.10,48.38,49.59, 49.31,49.83,46.82,48.73,48.02,48.60,48.46,50.99,50.93,49.22, 50.01,49.23,48.45,51.21,50.86,51.05,49.28,51.36,48.00,51.80, 49.28,50.06,50.50,50.94,51.61,50.63,51.89,51.10,53.10,50.93, 8.90,9.03,8.81,10.01,10.06,10.88,10.93,11.17,11.55,11.18, 12.07,12.92,12.76,13.76,13.49,14.27,14.09,14.09,14.49,14.52, 14.97,15.57,15.59,15.60,16.26,16.27,16.70,16.56,17.34,17.17, 17.22,17.81,18.34,18.03,17.96,18.62,19.20,18.36,18.89,19.60, 19.41,19.88,20.42,19.72,20.54,20.94,20.49,20.14,19.96,21.28, 21.48,21.92,21.29,21.51,21.31,22.66,21.81,22.59,22.34,22.60, 22.79,22.22,23.86,22.77,24.05,23.91,24.22,23.94,24.05,24.95, 24.38,23.79,23.68,25.52,24.45,25.30,25.36,25.82,25.54,25.79, 25.92,26.35,26.21,26.89,27.49,25.93,25.42,27.10,26.17,27.25, 27.26,28.20,27.40,27.42,28.28,27.30,28.50,28.90,28.41,28.57, 28.80,28.34,29.44,29.59,28.88,30.20,28.51,31.07,30.35,30.77, 30.21,30.37,30.69,29.64,29.93,30.10,29.66,30.32,30.57,30.50, 29.85,31.22,31.04,31.71,31.21,31.56,31.63,31.01,33.80,32.15, 32.87,31.59,33.51,31.61,33.22,32.85,33.18,31.83,32.23,33.92, 31.67,33.69,32.65,33.37,32.99,34.06,33.79,33.11,35.48,35.52, 34.24,35.12,34.33,33.49,35.14,36.16,35.65,33.96,33.67,34.25, 34.36,34.83,36.56,36.11,34.99,35.87,36.15,35.99,36.94,36.44, 36.71,35.98,36.10,39.29,36.91,36.76,36.88,37.76,36.48,37.60, 38.61,37.17,37.45,38.40,36.45,38.04,37.66,38.63,38.57,39.44, 38.27,38.15,39.95,38.76,38.63,38.65,37.13,38.22,39.69,39.10, 39.40,41.02,38.76,40.80,38.17,41.46,41.50,40.82,40.27,40.87, 40.92,41.28,41.56,42.18,40.13,42.46,39.72,41.14,42.33,41.38, 42.97,42.14,41.69,42.09,42.00,41.82,40.74,41.97,42.44,42.78, 43.98,43.25,42.55,42.85,41.24,42.09,41.75,41.66,44.21,42.04, 41.49,43.02,41.80,42.76,44.79,45.30,43.65,43.39,43.54,45.14, 42.98,46.55,43.67,43.94,44.12,45.41,42.52,45.34,44.45,45.43, 45.68,44.92,42.83,45.57,45.81,43.61,45.30,44.65,44.26,45.56, 44.63,45.73,46.23,46.72,45.74,46.71,46.51,44.98,45.94,47.51, 46.74,44.86,47.70,47.09,46.40,46.12,47.38,47.04,49.14,47.38, 7.75,8.35,8.83,9.02,9.02,9.87,10.28,9.92,11.13,10.59, 11.28,11.94,12.08,12.77,12.05,12.76,13.28,13.09,13.43,13.41, 14.23,14.54,13.71,14.37,14.32,14.43,15.04,14.72,15.27,14.72, 15.31,15.36,17.08,16.07,16.84,16.85,16.22,16.98,17.59,18.23, 18.26,17.25,18.52,17.91,18.50,18.08,18.39,18.71,18.61,18.87, 19.36,20.58,19.85,19.57,19.62,19.95,20.25,20.41,19.81,22.03, 21.56,21.13,21.38,20.54,21.11,21.56,22.70,21.47,21.96,21.35, 22.45,21.58,21.69,22.94,22.53,21.68,24.09,23.55,23.49,23.77, 23.54,23.20,24.12,25.74,23.44,24.64,24.46,24.37,24.16,24.67, 26.07,25.61,24.87,25.17,26.18,25.45,25.42,25.40,25.53,25.39, 26.44,25.99,26.31,25.49,26.46,26.92,25.69,27.63,26.31,27.56, 26.51,28.04,27.99,27.45,27.34,27.53,28.55,27.88,28.85,28.35, 27.82,28.59,28.78,27.46,28.64,29.53,29.66,29.71,29.79,27.88, 29.59,29.67,29.29,29.67,31.06,30.61,29.25,30.25,31.19,30.85, 29.68,30.92,28.49,30.74,31.19,30.09,30.58,30.68,31.78,30.55, 30.84,32.58,30.38,32.64,31.35,31.28,33.42,32.92,33.36,33.20, 32.92,32.64,32.42,33.45,32.82,33.39,32.55,34.14,32.08,34.26, 34.03,34.55,32.83,33.62,33.21,34.00,33.14,33.11,34.23,35.30, 33.28,34.56,34.64,33.35,33.41,34.13,35.49,33.96,35.00,34.96, 34.63,35.45,37.06,35.51,37.19,34.01,35.88,36.04,35.88,36.64, 35.13,36.15,35.78,34.92,35.86,37.77,36.14,34.67,34.92,36.08, 38.03,37.43,36.29,37.70,36.37,37.34,37.13,36.58,38.84,38.74, 38.22,36.23,38.71,38.50,38.04,38.93,37.98,37.50,36.63,37.85, 37.12,38.98,38.29,39.04,38.62,38.87,37.94,37.84,40.49,39.59, 38.82,39.58,41.23,39.27,39.86,39.05,40.15,40.15,38.89,40.30, 40.67,41.57,40.52,40.60,39.21,38.60,39.41,40.70,41.07,40.32, 39.85,41.45,40.85,42.87,42.51,41.57,40.25,40.13,40.80,42.28, 40.91,41.42,41.19,42.38,41.60,42.32,41.30,42.46,42.82,41.92, 42.80,43.23,42.20,42.57,42.44,42.34,42.04,42.91,44.83,43.08, 7.29,7.33,7.88,8.23,8.54,9.17,8.90,9.18,9.17,10.05, 10.19,10.40,10.03,10.69,11.11,11.49,11.52,11.25,11.13,12.64, 12.79,12.23,12.67,13.29,12.75,13.41,13.58,14.48,14.19,13.67, 14.28,14.27,14.96,14.90,14.68,14.67,15.40,15.37,15.08,16.23, 15.71,15.98,16.13,17.14,17.08,16.34,16.76,18.06,17.27,17.80, 18.11,17.13,18.76,18.12,18.62,18.22,18.81,17.59,18.55,18.76, 19.24,18.93,20.06,19.31,19.77,19.51,18.94,19.66,20.74,20.88, 20.18,20.40,20.20,19.98,21.28,19.67,20.50,20.39,21.64,22.02, 21.92,21.86,20.89,21.28,23.08,22.32,21.53,21.74,22.97,22.03, 22.98,22.81,22.75,21.65,22.74,23.65,23.17,23.42,23.49,24.33, 23.77,23.01,24.85,23.38,23.91,23.79,24.01,25.37,24.40,25.03, 24.86,25.72,24.84,25.64,25.64,25.79,24.21,25.43,25.13,25.99, 26.25,25.98,25.95,25.41,25.65,24.89,26.28,25.50,27.52,26.53, 27.06,25.81,27.00,27.94,27.15,27.55,27.98,26.39,27.37,28.35, 26.55,29.13,26.27,27.28,28.51,28.09,28.50,27.51,28.59,27.26, 28.48,28.06,28.66,28.42,28.92,29.24,28.20,29.64,30.41,29.43, 29.97,29.41,30.43,29.25,29.01,30.58,29.50,30.60,29.34,28.44, 29.48,30.02,30.69,29.66,31.09,31.57,29.76,30.77,30.42,30.83, 31.79,31.56,32.28,30.07,32.25,30.06,31.46,31.06,33.08,32.44, 31.14,31.14,33.92,31.28,33.32,31.51,32.71,33.13,31.11,32.46, 31.67,33.29,30.80,32.85,31.91,32.07,31.65,31.70,32.83,33.98, 32.21,32.79,33.92,33.86,33.52,34.57,33.81,32.77,33.65,32.90, 34.11,34.19,32.75,33.98,35.53,34.88,34.30,35.32,33.72,35.32, 34.95,34.04,35.55,35.62,35.34,35.91,36.05,36.58,36.12,34.99, 36.06,33.52,36.02,33.55,36.84,35.87,35.36,37.06,35.08,36.47, 36.54,35.49,36.26,35.99,35.22,37.04,36.24,35.28,36.00,36.93, 37.84,36.50,36.28,37.78,35.66,37.91,36.58,35.52,38.29,37.27, 38.23,38.04,38.08,36.46,37.71,37.83,37.46,39.76,39.13,37.31, 37.32,37.76,38.91,39.75,38.64,37.86,40.15,38.82,38.35,37.08, 6.26,6.94,6.76,7.77,7.43,7.82,7.80,8.30,8.10,9.31, 9.10,9.77,9.21,10.22,10.01,10.62,10.68,10.22,11.20,10.68, 11.32,11.08,11.91,12.18,11.30,12.23,12.33,11.75,12.73,12.34, 12.75,12.62,13.74,13.31,13.31,13.52,13.22,14.12,14.21,13.90, 14.58,14.23,14.68,15.15,14.53,15.15,15.39,15.72,15.73,15.75, 15.63,15.00,16.47,16.50,15.82,16.90,16.49,16.55,17.04,17.44, 17.50,17.17,17.74,17.22,17.03,17.82,17.37,18.34,19.08,18.05, 17.86,18.52,18.19,18.24,18.97,19.20,18.98,18.76,19.18,19.37, 18.53,19.44,19.24,20.00,19.69,19.56,19.32,20.38,19.43,20.91, 20.15,20.40,20.36,19.74,19.94,20.80,21.46,21.24,21.90,20.46, 21.72,21.38,21.53,20.68,21.35,21.81,22.08,23.08,22.09,22.43, 22.02,21.21,22.86,24.11,22.46,22.15,22.69,23.20,21.63,22.47, 23.09,23.98,23.20,22.77,24.07,23.49,24.32,23.77,23.71,23.51, 24.05,23.42,24.02,23.86,25.00,25.02,25.60,24.37,25.21,23.85, 25.73,24.85,24.73,25.18,24.25,24.27,25.52,25.93,25.05,26.40, 25.41,25.71,24.72,26.89,26.13,25.65,25.97,27.33,25.66,26.17, 27.34,26.77,28.22,25.33,26.46,27.56,26.10,27.34,27.91,27.04, 27.30,26.50,27.64,27.24,28.80,26.99,26.53,29.04,26.98,29.00, 27.42,27.49,28.31,27.99,27.50,28.06,28.55,30.01,28.50,30.43, 28.30,29.70,28.68,29.16,28.03,28.86,29.63,28.77,27.91,29.87, 30.21,29.28,28.19,31.09,30.18,30.03,28.54,30.48,28.81,29.89, 29.80,29.81,30.02,31.00,30.03,30.80,29.35,30.03,32.40,30.76, 30.30,30.66,29.98,29.19,30.80,30.28,31.93,30.01,30.49,30.77, 31.39,30.89,30.63,32.09,32.88,31.14,31.91,31.83,32.12,32.30, 32.09,32.41,31.48,31.98,32.95,32.18,32.37,32.23,32.38,33.82, 33.00,32.23,33.09,32.81,32.64,32.04,32.15,31.95,33.82,32.76, 33.21,34.10,32.57,34.87,33.54,34.52,34.97,33.57,33.27,33.63, 32.61,33.91,33.95,33.87,35.56,34.12,33.64,33.70,35.41,33.67, 33.67,34.63,36.80,34.97,34.15,34.03,34.67,35.15,34.23,35.42, 5.47,6.26,6.39,6.72,6.32,6.97,7.00,7.06,7.95,7.82, 8.18,8.05,8.35,8.70,9.58,9.63,9.49,9.15,10.35,8.93, 9.21,9.71,10.30,10.13,10.15,11.30,9.90,11.27,11.73,11.73, 11.65,11.92,11.83,12.48,12.07,11.84,12.62,12.96,12.55,12.87, 12.96,12.54,13.15,13.39,13.74,13.34,13.69,12.82,13.88,14.53, 14.30,13.75,14.47,14.25,14.26,14.67,14.98,14.76,14.32,16.06, 14.99,15.09,15.79,15.21,15.56,15.01,15.73,15.60,16.21,16.55, 15.87,16.14,16.40,17.17,17.02,17.26,17.08,16.67,16.25,17.16, 18.02,17.17,18.00,17.90,16.81,17.96,18.73,16.97,18.46,17.80, 17.64,17.68,19.33,18.48,17.85,18.30,18.56,19.13,18.10,19.42, 19.21,18.85,19.57,20.47,19.11,19.45,20.42,20.56,19.95,20.01, 19.36,19.15,20.09,20.47,20.91,18.78,20.66,20.41,21.30,21.38, 19.99,21.26,21.22,20.76,21.27,20.34,20.60,20.33,20.26,21.54, 21.07,20.38,22.37,22.39,21.73,21.50,21.92,21.67,22.19,22.37, 21.69,22.06,22.71,22.63,22.39,22.56,23.62,23.32,22.38,23.23, 24.10,23.04,22.88,23.56,23.38,22.95,23.65,23.75,23.63,23.19, 24.06,24.16,24.61,23.76,23.79,23.36,24.28,25.24,23.29,23.90, 25.31,23.59,23.74,24.42,26.18,24.61,25.32,25.16,24.75,24.98, 24.55,24.14,25.85,26.14,25.53,25.30,24.65,25.85,25.54,26.05, 24.87,26.32,25.58,25.35,26.83,25.54,25.80,27.36,26.52,27.10, 26.40,25.78,27.80,26.65,26.89,26.99,26.54,27.27,27.16,27.52, 25.35,27.16,27.62,26.70,28.51,28.07,27.55,27.25,27.47,27.42, 26.43,27.16,28.12,27.59,28.17,27.27,29.28,28.07,27.48,28.67, 28.70,28.41,28.40,28.39,29.32,29.03,28.65,28.39,28.48,28.65, 29.86,29.58,29.44,29.29,29.53,30.49,28.73,27.63,28.53,29.68, 28.95,29.67,29.05,29.09,28.55,29.03,29.75,29.43,29.99,29.68, 29.93,31.54,29.48,28.93,30.12,29.33,29.74,28.76,30.25,30.46, 31.00,30.53,30.76,30.95,31.20,29.94,31.25,30.08,30.44,31.66, 31.19,30.86,29.98,30.58,31.04,30.23,31.98,31.25,30.43,32.80, 5.10,5.84,5.42,5.62,6.10,6.39,7.12,7.13,6.14,6.82, 6.86,7.59,7.00,8.05,8.35,8.46,8.66,8.62,9.11,8.97, 9.03,9.47,10.13,8.94,9.50,9.51,9.85,9.49,11.06,9.87, 10.68,10.07,10.91,11.10,10.43,10.70,11.02,11.22,11.50,10.68, 11.14,12.12,11.22,11.82,11.10,11.88,12.14,12.27,12.95,12.49, 12.37,13.40,13.51,12.68,12.21,14.01,13.59,13.23,12.92,13.65, 14.26,13.69,13.12,13.63,13.41,13.67,14.78,14.50,14.89,13.72, 15.09,14.25,14.33,14.56,14.81,14.50,14.81,15.41,15.57,15.58, 15.32,16.48,14.75,16.05,16.34,15.45,16.98,15.68,16.11,15.78, 16.36,17.45,16.29,15.77,16.05,17.05,16.74,17.35,18.04,16.82, 17.57,17.23,17.81,17.74,17.00,16.81,17.67,17.30,17.72,17.42, 17.94,18.36,18.44,18.63,18.16,17.83,18.45,17.73,18.94,18.34, 20.09,18.78,18.96,18.84,19.52,19.18,18.82,19.76,19.91,19.73, 19.61,19.69,19.98,19.19,19.06,19.79,21.46,19.25,20.80,19.16, 20.57,20.05,20.08,19.93,19.84,19.81,20.84,19.36,20.84,21.42, 20.31,20.52,20.50,19.96,20.98,21.38,20.87,20.45,20.48,22.59, 22.39,20.72,21.44,22.35,21.32,21.99,22.03,20.91,21.05,21.56, 22.45,22.23,21.85,21.49,21.54,23.09,21.73,21.89,22.44,21.72, 23.65,22.55,21.18,23.66,22.79,22.55,22.07,23.60,23.32,23.40, 23.15,23.54,22.89,23.07,23.48,22.66,23.85,23.91,22.17,23.80, 23.74,23.59,24.23,24.23,24.22,23.65,24.44,23.87,23.64,24.48, 23.60,24.52,24.30,23.54,24.47,25.62,25.15,24.26,24.32,23.91, 24.14,24.93,24.19,24.82,25.62,24.12,27.44,24.80,25.15,25.19, 26.00,23.68,25.87,25.05,25.58,26.21,25.21,26.04,25.37,25.36, 25.62,26.79,25.53,25.98,26.13,25.89,25.71,26.75,26.20,27.58, 25.81,25.41,26.65,25.68,26.99,27.12,25.83,27.81,26.88,26.27, 25.71,26.13,26.32,26.25,26.27,26.17,26.08,27.02,26.33,28.45, 26.71,26.21,26.77,26.42,28.72,28.54,27.56,28.46,27.19,27.34, 27.21,27.55,29.06,27.71,28.11,27.88,28.82,27.53,28.33,27.61, 4.67,4.42,5.92,4.88,5.78,5.64,6.00,5.27,5.17,6.73, 6.45,7.12,6.73,7.22,6.67,7.99,6.88,8.15,7.75,8.47, 8.35,8.23,8.38,7.88,8.26,9.24,9.14,8.58,8.93,8.85, 9.15,9.81,9.12,9.72,8.90,10.02,9.66,9.54,9.52,9.54, 9.76,10.40,10.37,10.37,10.78,10.91,10.72,11.26,11.79,10.99, 10.50,11.69,11.27,10.73,11.68,11.96,11.89,11.15,12.18,12.73, 12.02,12.34,12.66,12.15,12.48,13.00,12.30,12.45,12.71,12.90, 12.86,12.92,13.65,14.37,13.09,13.23,13.44,14.30,13.82,14.17, 12.72,13.98,13.56,14.52,13.57,14.38,14.75,13.81,14.01,15.00, 14.26,14.64,14.77,14.94,16.37,14.94,15.12,15.31,15.52,16.37, 14.45,15.23,15.34,15.45,15.12,15.58,15.46,15.39,16.30,16.34, 15.09,16.35,15.26,16.12,15.69,15.93,16.81,15.77,16.41,15.53, 15.45,16.66,16.95,16.44,17.28,16.67,17.67,18.04,17.50,16.35, 16.58,17.81,17.04,16.26,16.98,16.94,17.96,17.93,18.45,17.82, 16.87,18.37,18.33,17.79,17.46,19.06,17.61,18.05,19.11,18.86, 18.50,18.78,17.58,17.15,19.20,18.65,18.11,18.77,19.35,19.01, 19.01,18.85,19.19,19.34,19.44,18.03,18.76,19.39,18.81,19.94, 19.93,19.82,20.13,19.88,19.86,19.09,20.19,20.60,19.39,20.10, 20.84,19.78,20.14,19.85,20.32,20.50,19.88,20.37,22.23,20.65, 19.65,20.68,20.29,20.31,20.40,21.16,21.20,20.86,20.98,20.56, 19.95,20.67,22.02,21.41,21.13,21.80,22.47,21.64,21.50,21.93, 21.44,23.19,20.71,22.67,22.94,21.11,21.28,21.99,21.47,22.13, 22.20,21.74,22.46,21.90,22.36,21.93,21.72,21.04,22.89,22.07, 22.83,22.76,21.17,22.44,23.45,22.93,22.41,21.62,22.72,22.70, 21.65,22.39,23.10,23.23,23.83,22.30,23.61,23.18,24.15,22.62, 23.01,23.90,24.54,24.51,22.73,24.34,24.21,22.78,23.21,23.23, 24.03,24.23,23.70,24.09,24.52,24.28,24.44,23.36,24.21,23.34, 24.03,24.30,24.69,25.78,25.16,24.45,24.87,24.88,25.82,23.87, 24.30,25.73,25.84,24.68,24.65,25.34,24.50,25.16,25.11,25.62, 4.71,3.90,4.59,4.00,4.68,4.52,5.24,4.98,5.49,5.43, 6.03,5.72,6.41,6.64,5.92,6.74,6.25,6.81,6.40,6.96, 6.44,6.67,7.52,7.41,7.10,6.94,7.70,8.02,8.60,8.80, 8.10,8.40,7.98,8.56,8.04,8.25,8.71,9.77,9.15,9.51, 9.08,9.32,8.15,9.17,8.58,8.74,9.40,10.08,9.98,9.57, 9.93,9.92,10.28,10.31,10.71,10.10,10.95,10.59,10.46,11.50, 10.12,11.17,11.38,11.02,11.05,11.25,11.62,11.65,11.56,11.31, 12.15,11.48,11.79,11.77,11.18,12.26,11.99,12.02,12.82,12.68, 13.73,11.98,12.38,12.66,12.20,13.02,12.13,12.09,12.91,13.14, 12.80,13.26,13.14,13.22,12.65,13.64,13.68,12.77,14.74,13.58, 13.56,13.79,13.81,13.64,14.13,14.75,13.82,13.39,13.59,13.89, 13.91,13.85,13.72,14.33,14.57,14.47,14.18,14.55,14.24,15.42, 15.16,14.99,15.00,14.38,14.48,15.14,15.48,15.38,15.29,15.29, 15.03,16.65,14.71,16.20,15.19,15.23,15.22,16.37,15.45,14.76, 16.23,16.76,16.49,16.43,15.93,15.74,15.67,16.81,16.35,17.04, 16.60,16.81,15.80,17.60,16.72,16.23,17.44,16.52,17.35,17.00, 17.67,17.51,17.88,16.43,17.18,16.38,16.61,17.78,17.56,18.40, 16.97,17.72,18.02,17.05,16.89,17.22,17.45,17.33,17.18,18.44, 17.16,18.09,18.67,18.60,17.63,17.72,18.08,18.47,19.17,19.01, 18.15,18.71,18.61,18.40,19.31,18.23,18.60,17.63,18.95,19.36, 19.20,18.79,19.55,19.04,19.20,18.30,18.73,18.62,20.37,18.62, 19.54,20.20,19.13,18.75,19.64,18.55,20.81,20.06,19.50,19.48, 19.33,18.89,19.80,19.56,18.59,19.99,19.83,19.49,20.65,19.58, 19.53,21.38,21.06,20.15,20.73,19.40,20.89,20.35,20.74,19.90, 21.27,20.58,20.61,21.57,20.31,20.87,21.00,20.05,20.17,21.11, 20.87,20.45,21.48,21.79,20.64,21.43,20.12,20.89,21.05,21.15, 21.06,21.99,21.78,22.59,21.38,21.14,21.42,21.45,21.80,22.89, 21.82,22.56,21.30,20.54,21.62,21.62,22.59,22.05,22.15,22.14, 21.75,22.31,21.24,22.45,23.92,22.45,22.48,21.82,22.49,21.90, 2.78,3.96,3.96,4.56,4.32,4.14,4.16,5.04,5.36,4.18, 5.41,5.16,5.60,5.83,6.33,4.66,6.08,5.89,6.34,5.72, 6.30,6.68,7.00,7.18,6.81,6.78,7.12,7.50,6.18,7.67, 7.64,7.10,7.46,6.90,7.55,7.40,8.00,7.89,8.31,7.47, 8.22,8.40,7.99,8.08,8.83,7.65,8.49,8.64,8.70,8.47, 8.75,8.77,9.25,9.22,9.20,8.52,9.12,9.43,10.29,9.40, 9.24,9.81,10.76,9.80,9.82,10.04,10.85,10.35,10.22,10.51, 9.65,9.85,10.22,10.55,11.08,10.14,10.68,10.26,10.39,10.73, 11.36,10.73,10.93,11.28,10.84,11.31,11.20,10.57,11.16,11.82, 10.97,11.67,10.98,12.09,11.74,11.49,12.73,12.66,11.99,12.48, 12.33,12.90,12.32,13.01,13.05,12.26,12.10,12.38,11.96,12.68, 12.43,11.86,11.72,12.46,12.59,14.02,13.19,12.15,12.99,12.85, 12.30,12.33,12.55,13.60,13.14,13.43,13.97,14.49,13.18,13.91, 13.63,13.49,13.94,13.64,14.07,13.66,14.27,14.05,14.22,14.78, 14.96,13.99,14.64,14.04,13.25,14.08,14.76,14.65,15.18,14.53, 14.66,14.86,14.17,14.53,15.95,15.22,15.09,15.69,14.89,15.25, 15.49,15.66,15.24,14.89,14.98,15.06,14.73,14.62,14.89,15.73, 14.84,14.89,16.00,15.57,15.42,15.46,16.23,14.81,15.83,16.86, 15.03,15.51,15.15,17.17,16.63,15.77,15.35,16.88,17.19,16.77, 15.87,17.25,16.01,16.81,17.52,16.78,15.45,16.37,16.09,17.20, 16.38,16.68,16.52,17.69,17.23,16.02,17.16,17.43,17.71,16.81, 17.35,18.00,17.05,16.93,17.00,18.42,17.04,18.22,17.13,18.04, 17.84,16.84,18.10,18.45,17.81,17.06,18.65,17.15,18.29,17.99, 17.61,16.91,17.60,16.83,17.73,18.09,18.11,16.81,17.02,18.57, 18.24,18.22,18.23,18.57,19.17,18.17,17.69,18.25,18.75,18.65, 18.07,18.54,19.15,18.30,19.61,17.79,18.63,18.53,19.42,18.92, 19.00,18.04,18.99,19.12,18.00,18.79,19.22,19.26,19.10,18.94, 19.08,19.32,19.55,20.87,19.92,19.74,18.42,20.32,18.91,19.57, 19.02,20.00,19.38,20.63,19.27,19.84,20.49,19.24,19.69,20.41, 2.92,3.47,2.77,3.53,4.07,4.34,4.47,4.36,4.35,5.17, 5.11,5.27,4.85,4.04,4.78,5.49,4.99,5.54,5.67,5.56, 5.39,5.72,4.96,5.68,5.59,6.01,7.11,6.09,6.33,6.27, 6.75,6.88,6.85,6.50,6.73,6.61,6.65,6.66,6.86,7.68, 6.67,6.77,7.71,6.74,7.25,8.10,7.83,7.86,7.50,7.77, 7.75,8.33,7.91,8.44,7.96,7.60,7.52,8.91,8.02,8.16, 8.50,8.48,8.88,7.93,9.43,8.66,8.42,8.98,8.18,10.20, 10.02,8.14,8.64,9.80,9.38,9.56,7.92,8.69,9.59,9.17, 10.01,10.20,9.62,9.67,10.34,10.42,10.24,9.84,9.99,10.32, 9.80,11.34,10.30,9.67,10.36,9.80,9.56,9.67,10.63,10.78, 10.09,10.24,11.67,10.69,10.64,11.14,10.67,11.13,10.89,10.03, 11.69,10.55,12.09,11.95,11.68,11.17,11.54,11.78,12.47,11.49, 11.65,12.31,11.31,12.64,11.41,11.86,11.45,12.23,11.31,12.32, 12.39,12.00,12.42,12.89,12.24,11.97,13.60,12.07,12.64,12.94, 11.81,12.07,11.87,12.50,12.72,12.94,12.61,13.48,12.78,12.92, 13.46,13.75,13.58,13.73,12.93,13.31,13.42,13.90,14.43,12.52, 12.89,13.37,13.83,13.37,13.79,13.17,13.21,13.15,13.98,13.33, 13.26,12.96,14.16,14.30,13.34,14.82,14.24,14.04,14.30,13.94, 13.51,13.84,13.66,13.97,14.25,14.51,14.44,14.94,14.61,14.65, 13.41,14.12,14.95,15.43,15.89,15.28,14.82,14.28,15.14,14.76, 14.75,14.61,15.76,16.05,14.09,15.25,14.66,15.42,15.57,14.72, 15.44,15.84,16.58,15.40,14.60,15.70,16.34,15.11,15.85,14.62, 15.21,15.37,16.12,16.72,15.75,15.67,15.16,15.12,16.04,15.71, 15.89,16.52,14.85,16.43,16.22,16.01,16.63,16.34,16.18,17.14, 14.79,16.24,16.22,16.46,16.32,15.58,17.38,16.00,15.27,16.41, 16.78,16.04,17.14,16.33,15.98,16.46,16.27,16.67,17.89,17.06, 17.84,17.28,16.70,16.81,16.92,17.06,16.12,17.27,16.98,16.45, 18.14,17.51,16.04,16.85,17.73,16.53,17.80,18.14,17.05,17.05, 17.70,17.74,17.12,17.75,17.18,17.79,17.79,17.77,17.69,18.39, 13.77,14.11,14.38,15.05,16.32,16.79,16.23,17.30,17.41,18.21, 19.11,18.80,19.88,20.53,21.24,20.79,21.39,22.65,22.23,23.06, 22.76,23.03,23.07,24.09,25.23,23.87,25.22,26.03,25.99,26.19, 26.18,26.76,26.79,27.29,27.11,28.09,27.10,29.31,28.75,28.32, 30.50,29.55,28.97,29.88,30.40,31.95,31.20,31.66,32.56,33.15, 32.33,33.28,32.59,33.77,33.20,34.08,33.61,33.10,34.69,35.09, 34.51,33.65,36.05,36.32,35.78,35.57,36.76,36.17,36.71,36.63, 38.20,35.49,38.19,38.60,37.66,37.96,38.73,38.23,40.21,39.07, 40.58,39.31,38.76,39.46,40.40,40.55,41.18,42.32,41.58,41.48, 41.81,40.63,42.69,41.75,43.94,40.67,41.56,43.42,43.13,45.45, 44.74,43.39,43.77,46.05,43.84,44.60,44.80,46.06,43.59,44.97, 45.28,45.02,46.53,46.18,46.48,45.14,47.26,47.72,47.10,45.57, 45.21,46.13,49.29,46.42,48.57,46.99,47.97,47.53,47.08,49.05, 47.64,50.72,50.36,49.54,49.18,49.23,49.42,50.09,53.02,49.60, 50.60,49.80,50.50,50.48,51.93,51.88,52.84,51.64,52.58,55.88, 52.53,52.18,54.48,54.26,53.10,53.63,54.06,52.62,53.89,53.29, 54.92,53.04,52.67,54.18,53.99,57.19,53.66,57.14,53.88,55.73, 56.84,55.98,55.17,55.36,57.60,56.81,56.90,58.63,54.75,58.17, 57.37,57.50,54.48,56.62,57.34,56.62,58.69,58.00,58.87,59.52, 58.15,56.07,57.48,59.46,57.91,58.28,58.50,61.66,60.06,58.59, 57.87,61.69,58.81,62.91,59.17,60.11,61.94,63.60,61.69,60.14, 63.46,62.24,63.49,60.93,62.33,65.05,63.66,62.68,60.68,61.39, 63.69,62.58,60.82,61.47,61.24,64.35,63.65,62.76,63.80,63.87, 63.90,64.18,62.47,65.26,63.17,67.08,64.53,64.52,66.92,64.00, 66.19,64.91,65.58,66.11,65.38,65.84,66.16,66.74,67.44,67.22, 68.84,67.41,67.43,64.33,66.42,67.69,69.24,67.48,68.18,68.81, 66.82,68.56,68.62,69.72,69.59,68.63,70.29,67.46,69.03,70.86, 67.93,73.78,69.56,70.53,68.56,69.98,74.48,70.02,71.02,70.17, 70.18,70.58,69.76,73.51,73.63,68.26,72.07,72.70,69.34,73.82, 13.06,12.72,13.37,14.29,15.00,15.62,16.52,17.78,16.34,17.36, 18.00,17.82,18.79,19.48,20.00,19.96,21.00,21.47,21.79,20.82, 22.63,22.34,22.41,22.42,23.42,23.77,23.66,25.31,24.54,25.48, 26.05,25.22,25.11,27.04,25.67,27.36,26.64,27.91,27.03,27.94, 28.76,28.81,28.18,29.17,29.11,30.72,30.70,30.88,30.59,31.33, 30.19,31.35,31.73,31.83,31.29,31.91,32.70,32.98,31.65,33.49, 33.30,33.93,34.93,33.07,34.74,34.05,34.44,34.93,36.44,36.89, 35.60,34.62,35.67,35.83,37.07,37.83,37.12,38.08,36.45,37.28, 37.70,38.91,39.13,40.17,38.02,38.32,39.16,38.05,40.55,38.37, 40.32,41.33,40.34,41.51,41.06,41.13,41.17,40.53,41.86,40.21, 41.23,42.31,39.52,43.16,42.05,42.35,43.23,41.84,43.11,45.11, 45.38,44.42,42.45,44.08,45.23,43.30,44.72,43.05,44.90,46.27, 45.64,45.56,44.88,47.08,44.59,46.37,46.12,47.61,47.78,47.26, 47.05,48.56,47.84,46.87,47.46,48.38,47.54,47.64,48.21,48.89, 48.21,48.77,50.87,49.57,48.33,49.04,51.04,46.33,48.41,49.40, 50.09,49.21,50.73,48.23,51.07,51.89,51.17,51.64,54.48,51.89, 52.90,51.94,49.37,49.90,51.52,54.65,50.79,52.91,53.02,51.92, 52.06,54.54,53.66,53.56,51.75,54.49,52.44,55.30,54.37,54.59, 55.19,53.85,54.72,54.21,53.00,54.12,58.51,55.17,55.46,56.04, 57.66,55.37,57.35,55.93,58.87,55.32,57.53,56.19,57.47,55.59, 57.48,56.68,60.37,57.39,58.62,57.82,59.59,57.36,58.70,59.05, 58.85,58.77,59.40,60.65,58.83,60.73,60.34,61.23,59.20,59.73, 62.37,61.36,57.97,59.66,59.97,60.00,63.45,60.30,61.38,59.49, 62.01,61.25,62.00,61.07,61.06,62.77,64.24,61.02,62.94,64.19, 63.97,65.63,61.34,63.37,62.87,62.54,64.31,63.11,62.89,65.54, 62.19,64.07,64.05,65.19,64.34,61.04,66.38,63.67,67.85,63.49, 67.25,67.53,64.13,65.75,65.46,65.19,66.72,65.30,64.17,67.67, 65.98,66.36,65.34,64.22,64.82,65.78,68.15,68.91,66.38,66.66, 64.46,66.17,67.99,66.61,68.66,65.49,68.05,67.02,67.56,67.10, 12.05,12.86,13.11,13.86,14.10,14.41,14.30,15.50,16.77,16.30, 17.49,16.91,18.12,16.97,18.57,18.98,18.89,19.20,19.63,20.15, 20.68,20.80,21.38,21.87,21.54,21.97,22.70,22.96,22.54,23.55, 23.71,23.66,25.98,24.81,24.68,24.40,25.36,25.56,26.02,25.57, 26.64,27.24,26.65,27.71,27.08,26.28,27.56,28.52,28.82,28.62, 29.27,29.72,28.92,29.61,29.88,30.25,30.60,30.36,30.67,31.74, 32.04,31.53,31.27,32.78,32.68,33.00,33.58,33.39,33.47,32.74, 32.67,33.70,33.65,35.13,33.92,34.44,35.67,33.56,35.44,36.52, 35.38,35.09,37.42,35.68,36.94,36.74,36.31,36.88,38.92,37.20, 38.26,35.99,37.19,37.76,36.43,38.41,38.98,37.74,38.42,39.06, 39.35,39.60,39.89,39.20,39.79,38.54,40.64,42.63,40.81,41.78, 42.24,41.05,41.20,40.55,41.75,39.80,39.28,41.57,39.97,42.28, 40.67,42.03,42.87,42.95,43.09,43.76,44.04,44.94,43.68,45.33, 43.32,44.29,44.80,43.79,44.47,46.28,44.33,45.42,45.19,45.45, 46.55,46.36,45.76,47.70,47.01,45.45,45.68,47.91,46.34,47.29, 47.58,47.92,46.29,47.11,50.91,49.93,50.60,48.20,47.93,48.55, 50.03,48.26,48.87,50.34,51.46,49.49,49.61,50.45,48.84,49.70, 48.98,50.57,47.85,50.60,52.57,50.75,50.43,50.84,51.44,55.53, 52.05,51.70,52.89,51.35,51.81,52.22,54.23,51.72,50.84,53.65, 54.64,53.80,53.90,53.19,53.59,54.93,54.58,53.31,53.38,54.17, 53.65,54.61,53.71,54.13,54.73,54.49,52.96,53.93,54.04,55.74, 55.50,56.81,53.52,55.10,54.79,57.14,57.35,57.45,57.93,56.30, 56.31,58.37,58.77,57.51,55.39,56.76,58.16,55.38,59.23,56.92, 57.82,57.19,57.10,58.92,59.05,58.86,59.86,59.49,58.68,59.40, 57.16,59.87,59.46,58.98,61.35,62.00,59.91,59.19,60.55,58.81, 60.26,59.64,60.94,60.55,60.35,60.65,59.91,61.99,59.97,61.19, 61.48,60.34,61.63,64.90,60.89,61.18,63.03,61.20,65.55,65.22, 62.44,63.51,63.76,63.33,60.94,60.45,62.25,63.99,65.15,62.29, 63.43,64.47,63.79,64.32,64.03,62.87,64.31,63.43,65.27,66.69, 11.28,11.84,12.25,13.36,13.89,14.29,14.30,14.74,14.92,15.79, 15.64,15.69,16.89,16.08,16.79,17.49,17.54,18.54,18.57,19.12, 19.50,19.57,20.25,20.50,20.65,20.81,21.58,21.60,21.49,22.06, 21.09,23.03,22.35,23.01,23.66,23.65,24.12,23.63,24.48,24.66, 24.61,24.25,24.98,26.80,26.38,25.19,26.98,27.63,26.35,28.39, 27.65,27.36,26.95,27.96,27.22,28.42,29.79,29.11,28.65,29.90, 29.92,29.23,29.10,29.64,29.97,29.67,30.68,30.43,30.65,30.45, 31.21,31.99,31.55,32.14,31.47,30.94,33.25,32.96,32.47,32.47, 33.52,33.37,33.39,34.08,35.44,32.88,34.69,33.95,33.56,34.29, 36.31,34.80,35.06,34.58,35.80,37.01,35.60,38.04,37.03,34.20, 36.62,37.54,37.20,37.30,37.78,37.43,38.02,39.12,38.37,37.33, 39.15,39.76,38.61,38.33,39.36,38.32,38.44,40.50,39.12,39.58, 38.91,41.24,39.01,38.93,40.55,42.55,40.05,41.11,39.83,42.42, 40.04,41.28,41.27,41.74,41.61,42.96,42.64,43.72,42.20,42.98, 43.17,44.69,44.91,42.51,43.02,43.59,44.70,43.42,43.90,45.66, 44.80,43.11,46.23,45.42,44.83,45.63,45.61,44.48,45.20,44.20, 45.89,45.60,45.76,47.69,45.97,46.22,46.16,47.85,47.05,47.23, 46.58,49.31,48.18,48.17,45.86,45.83,47.10,48.56,48.05,47.96, 49.45,49.06,47.07,47.46,51.86,49.51,50.00,49.76,50.42,48.88, 50.39,51.52,50.76,48.89,47.87,51.06,49.56,48.59,48.58,50.70, 51.11,51.09,51.38,51.58,53.64,52.64,49.33,51.93,52.66,50.12, 53.10,50.50,50.66,51.15,51.24,52.82,51.13,52.03,52.08,52.42, 53.33,52.85,52.28,54.93,53.54,57.27,54.80,52.64,53.93,55.22, 55.23,53.77,53.59,55.60,57.19,54.97,56.88,56.33,54.93,55.17, 53.26,54.90,55.58,54.36,55.53,59.05,56.25,57.47,58.85,57.28, 58.12,56.75,57.80,56.93,57.10,56.82,57.47,57.37,57.22,56.58, 56.90,56.97,57.41,55.70,55.84,56.58,57.00,59.30,57.83,58.09, 58.17,57.83,57.89,58.01,58.81,59.37,60.92,59.98,57.35,58.67, 60.65,59.18,59.53,62.24,57.48,61.14,60.94,63.59,61.45,59.47, 10.23,10.99,11.62,11.71,12.86,12.50,13.16,13.73,13.58,14.38, 15.16,15.41,15.15,15.69,16.21,16.46,16.91,17.34,16.85,18.72, 17.68,17.67,18.04,19.28,19.15,18.90,19.44,20.96,21.22,19.78, 20.51,21.84,21.02,21.08,20.75,21.46,21.31,23.07,22.08,22.42, 23.09,24.14,23.70,24.29,24.28,22.69,24.70,24.27,25.05,25.29, 23.86,24.59,25.08,25.28,26.17,26.75,26.69,25.50,26.79,27.66, 27.31,27.75,27.77,27.69,28.68,27.08,27.95,28.75,29.44,27.85, 28.53,29.60,28.57,30.51,29.91,29.63,31.42,31.46,30.80,31.36, 30.35,31.63,29.62,30.42,31.43,32.56,32.55,31.00,31.61,32.23, 32.12,31.29,32.27,33.44,33.73,33.08,33.20,32.87,34.12,34.32, 35.05,34.87,34.40,36.26,35.62,34.50,36.01,35.16,35.33,36.50, 35.01,35.66,37.30,36.48,38.25,36.89,36.50,36.80,36.44,36.93, 36.76,37.91,37.44,36.79,37.64,38.99,39.41,38.15,38.54,38.61, 37.00,38.78,38.40,38.58,38.66,39.64,40.28,39.87,39.97,39.79, 40.36,39.47,39.30,40.01,39.40,41.17,39.54,41.22,41.60,40.79, 42.52,42.05,41.60,40.29,43.16,43.06,43.22,42.09,42.36,40.77, 42.93,43.37,42.98,42.80,41.24,44.07,44.17,42.27,43.76,43.49, 44.64,42.44,44.40,43.11,43.78,43.56,44.93,42.62,45.30,43.12, 44.38,47.31,45.50,45.44,45.90,46.61,47.05,45.44,47.43,46.21, 44.92,44.54,45.33,49.41,47.25,45.52,49.85,46.07,46.66,46.32, 45.76,46.39,46.89,47.18,46.18,48.63,48.24,48.16,48.93,46.14, 47.66,51.91,49.05,45.11,49.97,49.33,49.15,48.50,50.43,49.01, 50.62,50.88,50.59,48.36,51.52,51.64,49.32,50.47,49.10,50.80, 52.51,50.96,49.43,52.49,51.61,51.71,52.12,51.45,50.73,50.63, 51.12,51.36,52.06,54.15,50.57,51.50,53.17,50.38,51.25,50.66, 51.65,51.90,54.19,54.31,53.42,52.25,50.61,54.89,53.04,52.53, 51.52,52.65,50.00,52.59,54.24,54.72,52.19,54.00,55.01,54.46, 51.52,56.07,55.93,54.56,54.93,56.37,55.50,54.98,56.75,55.04, 58.15,56.33,56.46,57.10,55.54,55.33,56.23,55.38,51.93,56.97, 9.65,9.83,10.41,10.93,11.44,11.92,12.77,12.36,13.02,13.03, 14.16,13.89,13.38,14.34,14.17,15.15,15.57,15.70,14.97,15.71, 16.23,17.37,18.12,16.75,17.48,17.42,17.54,18.34,18.13,18.75, 18.82,18.26,18.43,19.64,20.36,20.35,20.40,20.15,20.83,20.81, 21.65,21.63,21.92,21.89,21.29,22.04,22.15,21.62,22.49,21.94, 22.67,22.12,22.66,24.80,24.55,24.56,24.41,23.81,25.27,24.35, 26.54,25.89,25.69,25.22,25.10,26.56,27.13,26.20,26.23,26.60, 26.95,27.12,26.87,27.93,28.73,27.33,27.89,29.00,27.69,29.89, 28.12,28.71,28.49,29.97,29.02,29.73,30.37,29.22,29.54,29.28, 29.64,29.49,30.11,30.46,30.69,29.07,31.94,30.96,29.99,29.69, 31.34,30.20,31.44,30.92,32.07,32.79,32.27,30.97,32.63,32.34, 31.44,32.14,33.46,33.37,33.70,33.36,34.38,34.93,33.75,32.21, 34.93,34.95,33.62,35.08,34.81,35.73,35.06,33.76,35.50,34.73, 36.14,36.25,37.07,35.36,35.31,37.16,35.53,36.91,37.64,36.29, 37.15,35.87,37.84,37.12,37.31,36.70,37.03,36.96,37.78,37.46, 36.95,37.41,38.26,39.87,39.20,38.54,37.79,37.32,39.96,39.27, 40.13,38.46,38.95,39.50,38.15,39.44,38.85,39.87,38.23,39.74, 41.06,39.96,39.97,39.82,39.95,40.03,39.82,40.49,41.20,42.00, 39.30,40.66,39.89,42.15,40.75,42.99,41.55,40.40,43.83,39.50, 43.31,44.59,40.67,42.14,43.87,44.80,41.95,41.56,43.64,43.25, 44.53,44.82,44.02,42.38,43.50,43.88,43.52,45.00,44.33,45.98, 44.39,44.48,44.83,44.25,44.29,46.28,44.55,45.23,44.32,44.54, 45.55,44.76,46.34,48.63,46.46,46.99,44.98,47.52,47.95,45.29, 44.60,46.92,43.28,45.64,46.94,48.21,46.54,47.71,47.40,47.40, 47.97,46.69,51.23,46.11,46.49,48.49,47.94,47.30,49.33,47.55, 46.35,48.82,46.84,50.47,50.34,47.97,48.75,49.88,50.08,49.00, 50.30,49.31,48.06,50.96,49.72,47.31,51.36,49.78,52.08,49.44, 49.28,48.41,50.88,51.07,49.08,51.95,50.12,48.56,51.24,50.63, 49.85,51.45,51.12,51.18,50.23,53.25,50.13,50.56,53.55,49.96, 8.98,9.28,9.66,10.60,9.75,10.81,11.40,11.73,11.98,11.87, 11.96,12.93,13.07,12.12,13.11,13.39,14.01,14.50,15.66,14.16, 14.91,14.99,15.21,16.34,16.15,16.29,16.96,16.99,17.04,17.26, 16.89,17.85,18.38,18.00,17.45,18.42,18.74,19.04,18.93,19.01, 19.06,19.53,19.93,20.27,20.22,20.52,20.36,21.53,21.91,21.37, 20.54,21.64,22.27,21.97,21.81,23.06,21.09,22.56,23.51,23.02, 22.63,23.10,23.72,22.30,24.66,24.41,23.96,24.16,24.76,24.76, 24.72,25.28,24.14,24.43,25.71,24.62,25.05,25.14,25.42,26.53, 26.66,25.70,26.97,25.87,27.41,25.38,27.11,27.06,27.09,27.85, 27.26,27.89,28.16,28.91,27.52,28.52,28.29,28.23,29.21,28.63, 27.72,29.11,28.18,28.84,30.90,28.58,29.91,29.57,29.71,29.91, 29.76,29.15,28.95,30.50,30.86,29.92,31.53,30.30,32.38,30.75, 31.05,32.84,32.19,30.70,31.25,31.47,32.54,31.76,32.50,31.90, 32.13,32.88,33.00,32.02,32.04,33.16,32.63,32.04,34.65,32.87, 32.90,32.36,33.61,34.51,32.54,32.66,34.63,35.38,33.49,35.60, 34.01,36.53,34.15,35.94,35.45,34.73,35.04,34.82,34.91,35.67, 35.13,36.41,35.85,37.03,36.15,37.11,36.06,35.58,37.14,36.94, 34.73,36.36,36.28,35.68,38.84,36.56,38.08,38.01,37.99,37.49, 37.81,37.30,38.40,37.78,37.85,38.96,38.75,38.54,37.72,39.33, 37.89,40.61,39.89,39.83,41.45,38.90,39.01,40.71,40.45,40.11, 37.91,39.57,40.60,38.80,39.97,38.37,39.36,39.68,40.71,40.65, 40.05,41.26,40.84,41.23,41.82,41.41,42.26,42.60,40.15,40.39, 42.79,43.16,42.50,41.24,41.83,42.85,43.77,42.24,42.73,40.98, 43.46,42.25,41.25,43.15,41.75,43.97,41.76,42.91,44.32,41.69, 42.41,44.37,43.95,43.84,43.99,43.64,42.98,44.60,42.86,44.92, 43.32,44.06,45.16,43.16,44.20,44.84,44.28,45.62,45.64,45.04, 44.90,46.68,45.49,45.70,45.48,44.70,45.46,45.45,46.49,46.04, 45.83,46.12,44.32,45.71,44.77,48.25,44.90,45.50,46.94,47.44, 46.72,47.94,47.40,46.62,47.87,47.28,47.26,45.51,46.78,47.77, 8.19,8.62,8.93,9.60,8.87,10.15,9.70,10.79,10.82,10.46, 11.25,11.19,11.90,11.68,11.74,12.27,12.97,13.41,13.51,13.22, 13.64,14.27,13.58,13.62,14.20,15.13,14.70,15.30,14.95,15.31, 16.04,16.40,16.41,16.80,16.28,16.37,17.27,17.99,17.85,17.33, 18.14,18.46,18.48,18.07,18.54,17.59,18.71,19.48,19.10,19.37, 18.99,19.39,19.71,20.19,21.19,20.40,19.97,21.55,21.29,20.88, 20.76,21.38,20.90,21.44,21.44,20.82,21.62,21.74,20.35,21.55, 22.40,22.73,22.91,22.92,22.86,23.44,23.11,22.71,22.89,23.78, 23.79,22.77,24.17,25.19,24.31,24.18,25.21,24.28,25.91,25.03, 25.02,24.90,25.31,25.11,25.02,25.76,25.86,25.21,26.42,26.67, 26.33,25.93,26.03,25.52,26.80,26.09,27.63,28.44,26.26,25.73, 27.19,26.64,26.72,26.74,27.79,27.47,28.51,28.31,27.52,28.44, 28.84,27.20,28.06,29.37,28.99,28.40,28.93,28.10,28.33,29.15, 28.92,29.72,29.38,29.51,29.60,31.42,30.76,30.96,30.81,31.34, 28.74,30.19,30.24,30.36,29.72,30.52,30.75,31.03,29.93,30.57, 31.52,30.41,31.65,32.68,31.73,32.31,32.21,31.64,32.91,33.84, 33.66,32.34,32.13,31.83,32.79,33.52,31.82,33.63,33.84,32.70, 32.96,33.52,33.81,34.51,32.73,34.11,34.57,33.16,32.89,32.97, 34.40,34.76,35.26,35.52,34.56,34.69,35.01,33.53,35.18,34.65, 35.26,33.79,34.61,34.52,35.74,35.98,35.36,36.38,36.58,35.92, 35.63,36.46,36.49,36.58,37.86,37.32,37.17,36.50,37.87,35.76, 37.07,36.77,36.96,36.42,37.19,38.64,36.55,37.18,37.28,37.32, 38.46,38.97,37.62,38.49,38.22,37.77,40.00,39.46,37.18,38.14, 38.29,40.12,39.73,39.25,39.93,38.59,37.52,39.12,38.81,38.40, 40.27,40.32,41.13,39.05,39.26,39.39,40.81,39.37,40.56,40.18, 40.68,40.64,40.50,39.06,38.89,39.95,41.06,40.27,40.73,42.23, 41.18,39.59,40.71,40.95,40.30,41.64,41.33,41.92,42.08,41.77, 41.98,41.15,42.59,42.40,39.95,40.35,41.43,43.24,42.57,43.19, 44.33,42.43,43.05,42.25,41.63,41.43,42.85,42.64,44.05,43.41, 7.20,7.73,8.01,8.18,8.49,9.15,9.02,9.57,9.96,9.21, 10.37,10.21,10.94,10.13,10.48,11.54,12.05,12.06,12.07,12.11, 12.81,13.09,12.86,13.15,13.34,13.84,13.71,14.22,13.65,13.68, 14.57,14.95,14.77,14.41,14.27,15.47,15.43,15.58,16.01,15.76, 16.16,15.84,17.27,17.56,16.47,17.37,16.91,17.24,17.41,17.31, 17.05,17.44,17.01,18.01,18.10,18.29,18.49,18.81,18.97,18.62, 18.46,19.00,18.45,19.75,19.98,19.05,19.84,20.66,19.56,19.59, 19.63,19.55,20.70,20.61,20.14,21.18,22.16,20.83,20.91,21.23, 21.79,21.76,22.69,21.94,22.24,22.03,22.76,21.02,23.59,22.60, 22.48,22.74,23.83,22.76,23.20,23.84,22.68,23.15,23.72,21.08, 23.43,24.27,25.09,24.28,23.84,24.21,24.76,25.17,24.98,24.90, 24.48,25.51,25.59,26.78,26.08,25.83,26.75,25.63,26.53,27.24, 25.19,25.58,26.06,27.65,25.96,26.32,25.35,24.15,26.14,27.08, 26.92,27.18,26.72,27.84,28.07,27.61,27.21,25.33,27.73,27.58, 27.82,28.77,28.14,28.70,27.88,27.53,28.51,27.91,29.29,28.70, 28.17,27.25,28.44,28.89,29.15,29.31,27.86,29.55,28.03,29.57, 28.49,29.30,30.49,31.16,30.02,30.44,30.12,30.10,29.71,30.93, 29.13,29.99,31.29,30.07,30.45,32.84,30.96,31.61,31.72,30.68, 31.39,31.73,31.75,32.41,33.33,32.79,31.22,32.09,31.37,32.89, 33.09,32.05,32.50,32.82,32.74,31.85,33.76,33.08,32.63,32.24, 31.98,34.32,34.19,32.70,33.30,34.29,33.82,32.23,32.06,33.30, 32.49,33.66,34.65,33.31,33.65,32.29,34.34,34.26,33.18,34.69, 34.58,35.12,33.86,35.20,35.35,35.99,35.42,35.50,33.84,34.27, 35.53,34.29,34.82,34.70,34.60,38.13,36.10,35.77,36.05,35.51, 35.02,36.09,37.10,36.59,34.84,34.33,34.61,37.64,36.18,37.04, 35.60,36.40,37.96,36.42,36.56,35.60,36.94,36.00,38.66,37.06, 36.30,38.80,37.72,37.71,38.61,37.03,37.89,36.86,35.77,36.59, 36.61,37.23,38.54,40.54,38.53,40.51,37.49,38.65,37.85,38.24, 38.58,37.25,37.10,39.93,38.78,39.33,40.16,38.72,38.61,40.24, 6.39,7.18,7.53,6.17,7.43,8.16,8.21,8.51,8.38,9.31, 9.54,8.99,9.54,10.38,9.90,10.67,10.56,11.07,11.16,10.88, 11.10,11.36,11.62,11.45,11.81,12.43,12.27,12.43,13.11,13.73, 13.89,13.26,13.35,13.41,13.47,14.26,13.95,14.00,14.68,13.87, 14.58,14.41,14.96,15.38,16.00,15.60,14.95,15.32,14.95,15.15, 15.78,16.34,16.03,15.39,16.07,16.30,16.03,16.39,16.49,17.80, 17.85,17.24,17.23,17.81,17.11,17.60,17.93,18.13,18.20,17.90, 18.89,18.41,19.89,18.68,18.73,18.16,19.45,19.31,20.05,19.23, 20.45,18.70,20.26,19.77,19.70,19.04,20.52,19.72,20.86,20.32, 20.23,20.85,21.63,21.29,21.03,20.93,20.80,21.74,21.23,20.63, 21.37,22.57,21.60,21.83,22.77,21.96,22.02,22.12,22.78,22.87, 22.93,23.75,22.79,22.27,23.56,22.84,21.44,23.76,22.91,23.77, 24.49,23.29,23.63,24.52,24.55,23.98,24.25,25.04,22.64,24.66, 24.61,23.14,24.57,24.45,24.07,25.29,24.80,23.65,24.15,24.88, 25.53,25.63,25.27,24.41,25.84,26.55,24.20,25.56,26.66,25.53, 25.45,26.35,26.81,25.69,25.91,28.20,26.53,27.44,25.43,26.77, 27.41,25.90,27.46,26.55,26.44,28.12,27.87,26.87,27.04,27.86, 27.91,27.44,26.27,28.24,28.75,27.71,28.72,28.38,28.51,27.38, 28.45,27.95,26.24,28.22,29.84,29.60,28.75,27.78,28.84,29.11, 28.95,29.39,28.84,27.49,29.29,28.67,29.07,29.97,30.29,29.70, 29.46,30.00,30.51,29.83,30.83,30.69,30.08,29.30,31.32,30.32, 29.75,30.15,30.42,32.01,29.32,29.94,30.50,30.34,31.74,28.91, 30.38,32.31,31.99,32.70,31.44,30.51,32.18,30.53,31.21,30.95, 32.93,31.50,33.14,31.84,32.33,31.37,33.22,32.81,33.06,33.07, 32.04,31.98,33.54,33.33,32.48,32.78,31.94,32.93,32.97,32.94, 33.79,33.69,33.19,33.32,33.18,32.83,33.50,33.24,32.78,33.25, 32.82,33.41,33.75,32.99,34.49,33.61,33.85,33.36,33.20,34.70, 34.83,34.13,34.94,36.18,32.95,35.48,34.86,34.07,33.84,35.83, 35.29,34.50,35.29,34.80,35.03,35.83,34.66,35.14,35.75,35.89, 5.70,5.69,6.82,6.76,7.19,7.06,7.55,7.74,7.61,8.51, 8.33,8.70,8.59,9.24,9.29,9.81,9.02,9.55,9.85,10.40, 10.04,10.21,10.18,10.60,10.43,11.58,10.49,11.54,11.33,11.54, 10.86,11.78,12.09,12.76,11.94,12.51,12.73,12.79,13.14,12.82, 13.13,13.68,13.08,12.87,14.12,13.18,13.51,13.71,13.73,13.92, 13.30,15.19,15.43,14.91,14.08,14.93,15.87,15.38,15.79,15.43, 15.72,15.85,15.85,15.88,16.08,15.85,16.36,16.10,16.39,16.97, 17.40,16.43,16.82,16.70,17.18,17.41,17.26,16.86,16.72,17.58, 17.29,17.61,17.80,17.85,17.89,16.77,17.94,18.05,18.63,19.10, 18.17,18.73,19.31,19.89,19.72,20.67,19.76,18.40,19.11,19.52, 21.15,19.58,19.58,19.56,19.42,18.95,20.04,19.51,19.82,19.69, 21.95,20.17,19.51,19.68,19.92,20.93,20.50,20.88,21.45,19.42, 20.42,21.42,22.66,20.29,20.98,21.92,21.45,23.12,21.12,21.31, 22.58,21.65,20.50,22.69,21.92,22.95,22.13,22.26,22.62,22.45, 23.46,22.32,23.29,22.79,23.47,22.65,23.35,23.72,23.19,23.25, 23.13,23.73,24.25,23.05,24.47,23.66,24.25,25.12,23.69,23.62, 23.14,24.07,23.96,25.46,23.42,24.58,25.25,24.31,24.59,24.32, 24.84,25.22,24.65,25.74,26.12,25.50,25.18,24.45,25.22,25.53, 24.03,25.58,25.90,26.17,26.31,24.58,26.73,25.33,26.10,24.79, 25.29,27.19,26.75,27.39,28.70,26.19,27.86,27.50,26.33,27.78, 26.53,25.83,27.64,26.11,26.47,26.76,27.07,26.83,27.83,27.67, 26.53,26.38,27.77,27.66,28.49,28.56,27.17,27.28,28.47,26.84, 28.76,29.26,28.38,26.92,28.21,28.58,28.22,27.19,28.34,28.06, 28.04,28.86,27.25,27.79,28.60,29.30,30.74,30.87,28.98,29.76, 28.90,28.69,29.71,28.98,29.12,28.37,30.33,30.41,30.75,30.13, 28.79,29.45,30.94,31.72,29.54,30.21,30.77,31.43,29.78,29.11, 30.23,31.24,30.31,30.45,31.41,30.61,31.09,30.73,32.19,31.15, 29.58,30.78,31.59,30.88,30.77,30.96,29.61,31.77,32.59,30.62, 32.76,31.22,32.22,31.32,32.26,32.36,31.00,32.08,31.81,33.14, 4.98,6.22,6.49,5.70,6.80,6.33,6.20,6.48,7.36,7.52, 7.44,7.59,8.09,8.27,8.07,7.99,8.49,9.31,9.32,9.03, 9.14,9.08,9.58,10.07,9.33,10.39,10.22,9.57,10.57,11.19, 10.44,11.14,10.79,11.02,10.95,11.77,11.53,11.65,11.81,12.51, 12.40,11.31,11.56,12.64,11.71,11.97,11.88,11.79,12.88,13.33, 12.50,13.09,13.65,12.50,12.93,13.71,13.31,13.71,13.26,14.30, 14.28,14.15,13.60,14.46,14.18,14.18,14.77,14.55,13.92,14.98, 15.29,14.96,15.64,15.57,15.29,15.02,15.65,15.35,15.97,15.97, 16.01,16.22,15.40,16.00,16.60,16.61,16.73,15.12,16.65,16.12, 16.03,15.88,17.24,16.35,18.29,17.11,17.52,17.01,17.26,17.78, 17.31,16.17,17.71,17.85,18.28,17.42,18.54,18.10,17.67,17.67, 17.96,17.65,18.46,17.73,19.15,19.34,18.76,19.11,18.14,19.30, 19.39,19.89,18.47,19.68,18.69,19.82,19.12,19.93,20.01,19.91, 21.27,19.17,20.09,19.60,18.90,19.12,19.94,20.30,21.38,20.94, 21.65,19.86,19.89,20.79,20.76,21.59,21.38,19.47,21.52,22.04, 20.19,21.84,20.08,21.25,21.84,19.77,22.30,22.12,22.20,20.88, 21.09,21.43,21.05,21.01,21.54,22.81,21.75,21.60,20.88,22.12, 22.43,23.08,22.13,23.03,22.36,22.99,22.61,23.21,22.89,21.99, 23.92,22.75,23.06,22.64,23.74,23.19,23.01,24.47,23.22,24.52, 23.02,23.30,23.51,24.98,23.81,24.32,24.35,23.93,23.88,24.48, 23.69,23.62,23.98,24.27,23.79,23.40,24.20,24.47,24.46,25.37, 24.23,24.72,24.47,24.64,24.64,24.70,24.85,24.89,24.15,25.22, 24.66,25.59,25.57,25.93,25.47,26.13,25.84,25.68,24.95,26.75, 26.89,25.07,26.37,26.56,25.29,25.95,25.44,26.39,25.96,26.88, 26.66,27.15,26.41,26.54,26.33,26.55,26.14,26.18,26.61,25.78, 26.85,26.15,27.76,26.11,27.13,26.48,26.49,28.01,26.89,27.64, 27.74,27.65,27.52,28.29,27.12,29.29,27.32,26.16,27.81,27.46, 26.20,28.05,27.55,26.83,27.48,28.27,27.03,27.21,29.74,28.02, 28.75,27.61,30.38,27.23,28.04,28.28,27.69,29.04,28.94,27.79, 4.58,5.66,5.34,5.85,5.68,6.22,5.83,6.68,5.76,6.54, 6.55,7.50,7.60,7.25,6.77,7.07,7.76,8.00,7.92,8.37, 7.72,8.14,8.48,9.42,8.74,8.69,8.89,8.83,10.28,9.52, 9.46,9.92,9.15,10.20,9.74,10.07,9.76,10.00,10.08,10.98, 10.58,11.69,10.89,9.62,10.35,10.97,10.79,11.34,11.08,11.17, 11.35,11.68,11.83,12.17,12.01,11.87,12.31,12.19,12.99,11.91, 12.19,12.89,12.73,13.33,13.36,12.55,13.62,13.23,12.99,13.56, 12.88,13.79,12.38,13.68,14.32,13.40,14.21,13.50,13.33,13.97, 13.05,14.02,14.06,13.67,14.30,14.18,14.83,15.38,14.57,15.82, 15.21,15.10,15.63,14.62,14.19,15.36,15.49,16.69,15.63,14.40, 15.62,16.06,15.53,15.67,16.59,15.95,16.09,16.41,16.99,16.45, 15.43,16.20,16.18,16.88,17.20,16.83,17.20,17.16,17.68,16.15, 16.31,17.29,17.24,17.91,18.94,17.14,16.95,17.88,17.75,16.93, 17.81,18.68,17.88,17.36,18.56,17.14,17.46,19.27,18.28,18.93, 18.62,18.42,18.26,18.49,18.67,18.29,18.59,19.09,19.33,19.03, 19.07,18.09,18.08,18.56,19.04,19.52,18.99,18.80,19.93,20.33, 20.42,20.14,19.62,19.47,20.10,19.48,20.78,19.44,18.77,19.86, 20.59,19.90,19.93,20.52,20.88,20.41,20.52,20.76,19.83,20.73, 20.20,20.10,21.28,21.59,20.53,20.94,21.18,19.70,22.13,20.30, 20.78,20.92,20.35,21.50,21.18,21.27,21.16,21.87,21.11,20.16, 22.27,22.23,21.87,21.15,23.18,22.15,21.29,22.37,22.34,21.89, 21.87,22.30,23.57,21.45,21.54,21.56,21.80,22.13,22.06,22.51, 21.77,21.57,23.08,23.58,23.11,23.41,23.90,23.45,23.16,22.91, 23.51,24.59,23.28,22.78,24.19,23.45,23.17,25.40,23.51,23.65, 22.17,23.78,24.18,23.45,23.33,24.16,24.56,23.70,24.30,22.74, 23.71,24.19,24.48,24.89,24.00,25.71,24.12,23.76,24.17,25.36, 24.61,24.27,25.74,24.43,24.79,24.16,23.99,23.84,24.91,24.61, 25.34,24.20,25.33,26.57,24.81,25.13,25.07,25.74,25.63,24.93, 26.38,26.66,25.33,26.19,25.81,26.35,25.04,25.32,25.43,25.85, 4.40,4.71,4.71,5.47,5.14,5.24,5.67,5.17,6.41,5.44, 6.11,5.91,6.66,6.25,7.05,6.20,5.88,6.81,6.82,7.32, 7.38,7.99,7.51,7.78,7.85,8.29,7.99,8.46,8.61,8.88, 8.24,8.97,8.77,9.69,8.29,8.86,8.49,8.76,8.73,9.21, 9.78,9.39,9.56,9.70,9.94,9.11,10.12,10.36,10.27,10.16, 10.11,10.38,10.23,11.28,10.75,11.64,11.34,11.26,10.92,10.49, 11.36,11.20,10.96,12.19,11.83,12.16,11.71,11.95,10.90,11.47, 12.06,11.45,11.73,12.66,11.50,11.99,12.87,12.36,12.51,12.89, 13.72,13.28,13.06,13.35,13.86,11.84,13.15,12.38,13.91,12.73, 13.20,13.67,12.36,12.39,13.78,13.44,13.82,13.72,13.64,13.40, 13.77,13.34,13.58,14.38,14.46,14.56,15.15,14.23,14.50,15.42, 14.83,15.31,15.32,15.18,14.62,14.31,15.34,14.54,14.51,15.00, 15.08,14.50,15.24,15.52,15.46,16.05,15.51,15.54,15.63,16.15, 16.32,16.14,15.91,15.70,15.80,15.05,15.64,15.52,16.13,16.69, 16.02,16.93,16.42,16.64,16.48,15.89,16.19,17.08,18.06,16.63, 17.58,17.04,17.35,17.16,17.47,17.18,17.10,17.67,18.09,16.17, 16.98,18.43,17.97,16.61,19.07,16.84,17.87,19.55,17.97,17.49, 17.42,18.92,18.49,17.78,18.45,17.83,18.57,18.95,18.31,18.47, 17.58,18.30,18.26,18.91,17.77,19.31,19.07,18.73,18.02,17.76, 18.54,19.12,20.02,18.70,18.20,19.09,18.56,19.46,19.93,18.58, 18.35,19.41,19.14,19.04,19.16,19.41,20.64,18.06,19.61,19.87, 19.36,19.16,20.81,19.37,20.35,20.63,20.28,19.83,20.66,20.37, 19.09,20.25,20.48,20.39,20.58,20.43,21.15,21.29,20.07,21.58, 21.45,20.35,21.77,21.88,20.72,21.61,21.41,20.29,22.36,20.77, 21.53,21.48,21.80,21.45,20.91,21.28,21.79,20.81,21.36,20.89, 20.34,22.09,21.51,21.58,20.85,22.14,22.06,22.04,21.68,21.88, 21.16,21.14,22.11,22.28,22.34,20.69,21.99,22.44,21.18,21.44, 22.74,22.60,22.82,22.39,21.09,21.55,22.41,22.21,22.38,23.91, 23.42,22.27,23.05,23.15,24.22,22.96,23.31,22.89,23.03,22.96, 3.96,3.46,3.87,3.62,4.99,4.79,4.25,5.64,5.11,5.03, 5.14,5.39,6.00,4.91,5.12,6.45,5.94,6.70,6.56,6.38, 6.77,6.35,6.90,7.39,6.69,6.11,6.68,7.47,8.25,7.60, 8.24,7.78,7.56,7.47,6.96,7.96,8.39,7.79,8.99,8.65, 7.97,7.69,8.20,9.20,9.08,8.62,9.41,8.51,8.93,8.73, 9.49,9.94,8.65,9.98,8.31,8.86,9.43,10.16,9.78,9.91, 10.11,9.69,10.64,10.25,10.74,10.10,10.16,9.11,9.56,11.61, 11.25,11.27,11.35,12.04,10.91,11.06,11.95,11.66,11.10,11.40, 10.92,11.23,11.14,11.22,11.95,11.43,11.50,11.44,12.04,11.75, 11.95,11.89,12.21,11.41,11.48,12.97,11.94,11.09,12.24,13.88, 11.58,12.33,12.22,11.81,13.44,12.62,13.04,11.97,13.57,12.69, 13.09,13.26,13.85,13.01,13.44,12.94,13.24,13.90,13.14,13.65, 13.63,13.27,14.44,13.28,14.10,12.88,13.43,13.87,13.88,14.20, 13.08,13.23,14.80,14.08,14.48,13.95,14.66,14.51,14.46,13.65, 15.01,15.09,14.76,14.00,14.18,15.77,14.76,15.01,15.53,15.25, 14.73,15.35,14.20,15.56,15.35,14.73,16.51,15.79,15.45,16.84, 15.50,15.86,15.57,15.83,14.77,15.53,16.01,16.20,15.65,15.89, 16.56,15.33,15.92,16.02,16.21,16.21,17.24,16.48,15.33,16.47, 17.05,16.90,16.42,16.55,16.78,15.83,16.12,16.23,17.22,17.38, 17.47,16.75,17.02,17.19,17.91,17.23,16.35,16.73,16.82,17.55, 16.75,17.25,17.31,17.76,17.98,18.20,18.58,18.43,17.86,17.38, 18.36,17.89,17.27,17.47,17.11,18.48,18.37,18.24,18.42,17.88, 18.50,18.27,18.36,17.97,18.16,18.91,18.89,17.56,20.40,18.73, 19.10,17.66,17.78,17.94,18.24,18.29,18.12,18.52,19.60,18.68, 19.33,18.54,19.76,19.44,18.99,18.42,18.90,19.69,19.32,18.41, 20.29,19.46,18.93,19.26,18.82,19.49,19.74,20.14,19.10,19.37, 19.91,18.66,19.26,18.40,20.07,20.93,20.23,19.06,18.72,20.64, 20.66,20.52,19.31,19.92,19.02,20.03,21.00,20.88,20.73,19.50, 20.29,19.63,19.52,20.06,20.27,20.76,21.25,20.67,20.59,20.81, 14.07,14.39,15.23,16.30,16.57,16.87,17.38,18.42,18.87,19.67, 19.53,20.27,20.72,21.48,21.66,22.11,21.91,22.32,22.76,24.44, 23.98,23.80,24.36,26.46,25.75,25.17,25.78,26.47,26.31,28.05, 27.35,28.69,28.53,28.29,28.54,29.36,31.16,27.98,30.35,31.07, 31.36,30.55,30.13,31.36,32.87,31.68,31.89,33.04,32.76,32.17, 34.50,34.95,34.49,34.22,35.21,34.78,34.35,36.27,36.61,36.12, 36.86,35.84,36.95,37.80,39.22,37.46,38.04,38.35,39.52,39.70, 38.97,38.94,41.20,38.07,41.03,40.44,40.76,39.51,41.04,41.05, 40.69,41.72,40.96,40.78,41.59,41.36,43.15,44.46,42.98,42.84, 44.02,44.66,43.24,44.08,45.77,45.18,45.19,44.63,43.67,44.65, 46.55,45.56,47.23,45.95,46.63,46.59,46.91,47.40,47.47,46.38, 47.35,46.74,46.69,48.27,49.74,48.90,49.04,49.08,49.91,49.77, 48.49,50.37,50.45,51.64,51.56,52.18,51.34,49.57,52.84,52.21, 52.11,49.54,52.89,54.27,52.45,53.13,52.08,53.64,52.42,54.70, 53.69,55.61,54.54,53.68,55.02,54.54,55.47,53.52,55.24,52.82, 54.56,54.68,55.41,53.47,56.09,55.26,56.26,56.59,54.37,58.75, 53.57,56.27,59.25,56.79,57.19,57.73,55.17,57.50,56.82,56.85, 60.09,59.90,59.02,59.68,59.41,60.30,59.16,60.37,60.92,60.38, 59.18,58.76,60.49,59.65,60.19,60.73,61.85,59.82,58.96,60.18, 63.13,60.41,61.22,63.70,63.74,62.14,61.70,66.66,62.47,64.87, 64.78,65.47,61.76,62.08,63.15,62.22,64.48,66.56,65.31,65.14, 63.47,62.73,63.25,68.80,64.62,63.98,66.65,69.04,65.71,65.61, 68.25,67.71,67.62,65.62,66.43,66.81,67.86,66.00,67.07,71.37, 68.78,64.31,70.46,66.93,66.73,68.00,67.47,67.28,68.61,65.85, 69.58,67.44,68.19,67.20,69.49,72.72,70.22,72.50,68.48,72.02, 70.55,69.68,67.62,69.67,73.29,71.25,69.00,70.90,73.90,71.92, 71.49,73.88,71.77,71.57,72.13,71.50,71.98,70.37,72.20,74.72, 70.35,71.51,71.11,74.54,75.28,72.30,76.16,75.39,73.06,74.77, 71.02,76.57,72.90,76.08,76.81,73.25,73.79,74.56,76.82,74.87, 13.23,14.15,15.53,15.66,16.46,16.25,17.55,17.21,17.72,18.33, 18.65,19.11,20.47,20.48,20.38,20.54,21.26,22.67,21.89,22.53, 23.03,23.02,23.22,23.36,24.76,24.60,25.47,24.64,26.14,25.69, 27.43,27.59,27.93,27.47,28.11,29.93,27.41,28.83,29.49,29.46, 30.02,28.72,30.81,29.77,31.08,31.60,32.16,31.72,33.11,32.18, 32.82,33.07,33.13,33.14,33.92,34.88,35.02,31.97,32.99,34.97, 34.39,35.48,34.27,35.42,34.98,36.88,36.84,38.20,38.45,37.13, 37.15,37.48,37.16,36.33,37.88,38.79,40.29,40.00,38.15,39.26, 40.24,41.20,38.93,40.14,41.68,41.28,40.23,41.34,42.45,43.34, 40.85,43.94,42.80,42.14,43.19,44.04,43.58,44.66,41.93,43.19, 44.08,41.86,43.47,43.35,45.97,45.13,45.44,47.25,45.93,45.81, 44.78,47.06,46.98,44.30,46.39,47.20,45.99,46.24,47.44,47.18, 47.43,49.77,48.97,48.72,49.37,49.37,50.47,47.51,49.62,49.32, 49.27,50.04,48.23,50.26,50.66,50.55,51.44,49.78,52.96,51.69, 52.33,51.82,52.77,51.05,51.00,51.55,50.76,52.50,52.80,51.96, 53.57,52.99,53.23,51.83,52.87,54.84,54.07,52.60,52.87,52.48, 54.52,54.65,54.00,55.37,53.58,54.54,55.67,54.10,56.39,56.24, 59.11,56.70,56.41,55.83,58.32,56.55,57.76,59.29,56.77,57.25, 56.96,57.48,57.41,58.69,57.82,58.20,60.30,59.65,58.49,59.14, 60.95,56.99,58.54,60.12,62.79,61.41,60.19,61.35,61.44,61.75, 60.53,59.74,60.85,62.16,61.47,62.87,63.14,61.67,60.52,61.01, 60.94,61.49,61.08,63.65,63.82,64.29,63.10,62.12,63.27,64.97, 62.69,64.08,62.54,63.82,62.63,62.37,65.37,67.79,64.20,62.49, 62.76,66.02,65.67,63.34,64.84,65.46,65.48,66.18,66.36,67.58, 67.85,65.63,65.13,66.62,68.44,67.07,66.66,66.53,70.43,68.74, 67.44,65.76,68.59,70.64,67.34,68.79,66.11,69.09,68.27,67.36, 70.05,69.38,71.77,70.31,69.96,69.25,66.84,70.02,70.70,72.75, 69.07,72.88,69.93,70.05,69.69,69.88,70.58,73.20,73.32,72.81, 70.84,71.59,72.68,73.25,70.46,73.67,70.46,71.45,70.57,70.08, 13.13,13.47,13.98,14.83,14.93,15.18,15.49,16.63,17.85,17.59, 18.22,18.50,19.30,19.47,19.66,19.92,20.07,21.05,20.86,21.82, 22.27,22.13,22.97,22.81,23.02,24.09,23.11,24.69,25.66,25.40, 25.65,25.40,26.24,27.33,26.99,26.31,26.61,27.10,27.14,27.43, 28.54,28.21,29.33,28.51,29.17,29.13,30.43,29.89,31.54,30.45, 31.85,31.57,30.65,33.17,31.58,31.74,33.31,32.44,31.99,33.57, 33.06,34.75,34.11,34.21,33.94,34.94,35.12,35.10,34.78,35.90, 35.80,35.17,38.82,36.64,34.72,36.97,37.37,35.75,38.22,37.10, 37.83,36.26,37.42,38.21,37.71,40.01,40.52,40.34,40.11,38.71, 40.36,41.07,39.84,41.05,40.87,43.57,40.09,43.16,41.62,41.68, 41.33,40.90,42.19,40.72,42.54,44.62,44.83,43.62,42.96,42.38, 42.53,42.78,44.13,43.26,45.35,44.61,44.37,45.34,44.60,45.50, 44.75,45.64,48.25,46.18,46.92,46.48,48.53,47.59,46.17,45.49, 46.29,45.50,46.96,47.30,49.49,48.41,47.84,47.04,51.17,47.72, 46.96,48.43,50.28,49.38,49.57,48.94,50.72,51.15,50.21,49.25, 49.44,50.44,52.97,52.12,50.06,53.06,49.34,50.18,49.96,51.78, 52.73,49.05,50.46,52.76,50.45,51.09,52.67,52.29,52.79,53.62, 54.54,55.46,53.17,54.43,54.85,54.91,53.70,56.59,56.44,55.38, 56.60,54.29,56.81,54.62,55.45,54.28,56.71,56.20,56.16,58.14, 56.27,54.87,54.60,54.68,56.68,57.38,56.91,57.72,58.31,59.12, 56.34,56.53,55.76,56.28,58.66,57.59,59.72,59.79,55.48,60.07, 59.87,59.28,58.86,59.85,59.98,60.49,60.62,58.83,59.90,61.84, 60.45,59.60,64.97,59.64,60.53,62.02,58.78,59.62,62.43,60.19, 62.36,61.64,61.43,59.98,62.48,62.15,64.89,64.26,63.88,61.90, 62.84,62.50,63.27,62.48,64.92,64.61,64.30,63.32,65.86,65.95, 68.02,63.54,64.54,65.54,65.55,66.49,65.17,64.49,64.36,65.89, 65.93,68.40,66.98,65.31,67.01,63.45,66.23,64.98,68.69,68.70, 65.99,66.75,67.58,65.68,67.56,64.87,67.45,65.80,66.60,68.58, 69.35,71.46,64.70,66.30,67.25,67.25,70.04,69.97,68.56,70.22, 12.07,12.81,13.46,13.15,13.72,15.15,15.50,15.50,15.69,16.35, 17.02,17.28,17.85,17.19,18.75,19.94,18.91,19.69,20.05,20.62, 21.10,21.70,20.96,21.94,22.15,23.06,22.76,23.36,22.91,23.72, 23.33,24.72,24.58,25.26,24.70,24.86,25.76,26.35,25.74,26.08, 26.20,27.16,27.15,28.01,27.40,29.32,27.51,29.54,28.47,28.73, 29.18,29.62,29.65,31.03,30.10,30.62,31.32,31.86,31.07,32.08, 31.59,31.24,32.54,32.76,33.03,33.40,34.11,33.05,33.79,34.67, 33.81,33.61,33.79,34.57,34.55,35.44,36.27,35.86,36.35,34.75, 35.09,36.22,35.89,37.29,36.01,37.12,36.91,37.44,37.43,37.55, 37.67,38.16,38.18,38.68,38.37,37.65,38.27,37.76,39.84,39.82, 39.38,38.78,39.97,39.83,40.12,39.81,40.58,40.56,40.84,43.04, 40.97,43.03,41.89,40.34,41.35,42.40,41.36,42.52,41.92,41.96, 42.84,43.52,41.97,42.72,42.62,42.89,43.32,43.56,45.79,46.24, 46.39,45.84,44.99,45.10,44.01,44.39,45.86,45.17,45.55,46.44, 47.11,46.70,46.66,47.28,44.46,45.52,45.82,45.28,48.46,46.17, 46.13,46.40,48.28,45.76,48.17,48.89,48.84,46.10,48.29,50.08, 48.73,51.44,51.09,49.53,48.31,50.38,49.40,49.81,49.87,50.64, 49.43,50.97,48.24,51.33,52.01,51.52,51.01,51.71,51.16,51.54, 51.27,53.39,53.90,51.88,50.80,50.32,51.87,53.38,54.01,54.48, 55.44,52.48,54.44,56.09,51.67,53.35,55.61,55.20,53.39,54.69, 56.33,57.61,54.12,56.41,54.50,55.56,54.90,56.85,54.89,54.76, 55.86,54.91,54.36,56.78,54.82,55.37,58.57,55.69,55.99,56.15, 58.58,58.35,58.48,61.00,57.49,59.64,55.72,60.23,60.07,58.23, 54.87,56.34,59.65,57.47,56.10,60.72,58.66,58.26,59.12,58.87, 62.42,61.07,58.69,61.15,60.55,59.35,61.97,61.70,57.47,60.91, 60.69,62.64,64.53,60.22,57.70,62.86,62.81,62.39,60.35,61.96, 61.48,60.68,62.56,61.49,60.79,60.40,63.90,63.13,62.10,61.34, 63.93,62.80,64.15,66.08,63.87,63.50,64.34,63.38,64.35,64.23, 62.42,62.70,65.95,65.20,65.12,62.67,64.49,62.63,65.13,67.08, 11.40,11.66,11.81,13.01,13.95,13.83,13.58,14.47,14.86,15.84, 15.49,16.36,16.79,16.86,17.44,17.70,17.80,18.31,18.57,19.22, 19.31,19.77,20.73,20.68,19.83,21.30,20.94,21.66,22.28,21.14, 22.03,22.77,22.64,23.15,23.45,23.95,23.43,24.38,24.64,25.76, 25.43,25.72,26.16,25.84,26.91,26.28,27.53,26.71,26.61,27.34, 27.97,27.77,27.51,29.10,28.55,27.27,28.29,29.18,28.88,30.25, 28.64,28.72,30.67,30.38,30.74,29.74,31.32,29.50,30.44,31.82, 31.51,31.29,32.88,31.76,33.48,33.11,31.57,33.19,32.46,33.88, 32.75,33.75,33.23,34.65,32.92,33.73,34.95,35.21,35.60,34.53, 35.33,35.57,36.37,35.48,37.78,35.29,36.74,36.66,37.49,35.71, 36.10,37.09,37.83,36.44,37.74,38.86,39.91,37.52,38.37,39.21, 38.17,37.93,38.10,40.13,38.82,38.93,39.10,40.01,39.77,41.43, 40.23,41.20,40.25,40.31,40.75,39.48,40.43,41.46,41.97,41.97, 42.41,42.05,42.24,41.03,38.76,41.78,42.00,43.65,40.16,43.51, 43.41,43.50,44.10,43.98,43.70,45.01,44.13,44.90,42.80,45.11, 43.48,43.68,45.30,45.11,42.80,45.00,43.72,43.13,44.61,46.88, 43.67,44.29,42.94,46.30,47.50,46.82,45.49,46.39,46.79,44.77, 48.45,44.99,45.67,47.35,48.26,47.35,46.65,49.48,48.22,45.80, 48.27,48.59,50.21,48.65,47.96,48.72,49.20,48.63,49.42,49.75, 50.48,48.62,50.07,49.52,50.63,51.83,52.92,51.86,50.50,52.19, 50.59,51.15,52.93,52.22,50.34,51.92,51.53,50.60,52.45,50.47, 51.77,50.61,52.12,50.26,52.08,51.41,51.92,52.06,52.65,52.90, 53.78,53.99,54.36,53.68,55.16,51.45,56.85,55.82,53.20,54.87, 55.56,52.51,54.87,54.28,56.31,55.39,56.45,54.26,54.24,55.99, 56.62,53.28,55.67,57.07,55.22,58.06,56.51,55.85,55.28,54.21, 58.55,56.74,55.10,58.87,57.51,56.65,56.00,58.36,57.11,60.66, 58.14,55.78,56.59,59.42,58.83,57.20,58.29,60.03,58.94,58.73, 59.32,57.69,56.94,60.15,58.58,58.56,59.60,59.52,58.57,59.89, 57.90,59.09,56.44,60.74,59.56,60.71,60.60,61.40,61.37,64.61, 10.38,11.27,11.61,11.71,12.00,13.11,13.70,13.32,13.55,14.56, 14.91,15.24,15.37,15.69,15.89,16.21,15.65,17.36,17.14,17.98, 17.91,18.24,18.60,19.26,19.75,19.37,19.63,19.60,19.40,20.85, 21.28,21.83,21.16,21.80,21.65,22.44,22.07,21.90,22.39,22.71, 23.45,23.59,23.08,23.73,23.39,23.65,25.04,25.17,24.22,25.24, 25.50,25.86,26.40,25.69,26.64,26.87,26.85,25.44,27.43,26.93, 27.19,27.99,27.43,29.48,29.22,28.14,28.00,29.63,29.41,28.28, 27.93,27.86,29.17,28.54,30.33,30.89,29.56,31.01,30.36,30.76, 31.59,30.55,31.18,30.69,31.05,31.04,31.56,31.25,31.05,32.24, 32.98,31.74,32.25,33.17,32.61,32.98,32.75,34.25,32.68,34.08, 33.87,34.35,34.01,35.33,35.43,34.99,34.37,35.14,35.09,35.81, 35.70,35.78,37.07,36.42,35.84,36.19,37.20,36.52,36.91,37.23, 37.48,37.44,37.84,37.26,38.35,37.95,37.16,36.67,36.62,38.27, 38.25,39.20,38.96,38.93,38.72,40.00,39.50,39.37,40.66,40.33, 39.31,41.66,40.89,41.03,41.47,40.24,40.42,39.75,41.75,41.45, 39.86,41.16,39.68,41.11,42.65,42.12,41.90,40.69,42.39,43.83, 40.76,41.39,43.87,41.38,43.97,41.83,43.30,42.27,43.90,44.69, 42.10,44.27,43.85,44.38,44.70,44.90,44.17,45.25,44.60,45.73, 45.26,44.87,46.75,44.61,46.43,46.65,46.48,45.36,45.15,46.99, 45.92,46.89,47.57,45.23,45.08,46.48,46.57,48.40,47.20,45.73, 47.23,47.64,48.28,47.28,49.30,46.00,46.92,47.86,49.45,49.68, 48.48,48.68,50.12,49.05,48.28,49.45,49.27,50.64,49.62,47.94, 50.02,50.85,49.38,49.29,50.90,49.96,50.18,51.08,50.28,50.44, 52.36,51.66,51.42,52.21,48.05,49.83,49.93,53.71,52.18,52.67, 53.27,51.46,52.53,52.58,52.19,50.20,51.63,52.55,52.87,52.21, 53.18,51.25,54.61,53.75,52.74,55.16,52.97,52.64,53.47,53.64, 52.95,53.63,55.79,54.95,54.08,55.52,53.84,53.46,54.77,52.69, 53.85,52.83,53.40,56.00,54.73,54.29,54.11,57.40,53.62,52.39, 54.03,57.55,54.58,57.03,55.98,55.39,58.13,55.90,57.86,54.00, 9.32,9.77,10.99,10.88,12.04,12.13,11.66,13.13,12.70,13.20, 13.36,13.89,13.56,14.37,15.14,14.61,15.21,15.88,15.87,16.31, 15.89,17.37,17.24,15.92,18.26,18.14,18.59,18.48,18.82,19.17, 18.95,19.17,20.21,18.75,19.29,20.04,20.54,21.53,20.82,20.15, 21.56,22.19,20.70,22.43,21.51,22.11,22.70,23.10,21.77,22.54, 23.23,22.85,25.22,25.05,24.07,24.49,25.16,24.91,25.87,24.03, 25.84,24.11,26.21,25.35,26.76,25.94,26.48,26.13,26.41,27.00, 26.65,28.04,26.82,26.83,27.72,27.34,28.54,29.25,28.20,29.42, 28.72,27.82,29.40,29.10,29.79,29.26,30.10,30.90,29.22,29.95, 30.34,29.93,30.85,30.09,30.24,30.32,30.43,30.43,30.95,31.74, 31.86,31.24,31.42,31.38,32.25,33.49,32.41,34.19,31.79,32.90, 32.85,34.12,34.74,34.32,33.19,34.41,32.89,34.51,35.56,33.59, 35.86,34.62,34.89,34.81,35.07,34.39,34.25,34.52,35.27,36.11, 35.75,36.42,36.83,36.63,36.15,37.57,35.40,37.32,36.63,36.66, 35.95,37.18,37.70,37.21,37.67,36.81,37.49,37.26,37.25,40.29, 38.85,40.56,37.59,38.45,40.31,38.65,39.66,39.22,40.20,36.95, 39.96,41.02,39.52,39.17,39.71,39.86,40.02,40.37,39.83,40.20, 39.80,39.21,39.91,40.63,41.00,40.82,40.90,43.02,41.84,39.64, 41.06,40.05,41.23,41.22,42.73,40.39,42.30,43.34,41.17,42.27, 42.10,40.97,44.33,44.93,42.62,42.50,43.21,42.61,42.27,42.92, 43.51,43.96,42.61,43.92,45.88,43.47,44.43,45.59,40.96,42.34, 46.08,43.31,42.94,45.88,44.25,44.99,45.56,45.04,44.59,45.21, 47.36,44.93,47.21,45.46,45.58,47.15,45.51,46.01,44.85,48.58, 45.83,47.11,46.68,46.96,46.88,46.47,46.56,47.00,47.58,47.40, 47.39,50.07,48.63,46.27,48.34,47.43,47.48,48.32,48.92,49.55, 48.37,48.84,48.50,49.09,48.38,49.57,49.24,47.79,50.20,50.65, 49.10,49.73,48.91,48.85,49.95,50.06,49.23,48.82,49.74,50.15, 52.42,50.56,50.93,51.04,50.07,48.63,50.73,50.04,50.05,53.44, 50.32,53.02,52.34,50.38,52.36,51.33,50.81,52.68,50.79,52.10, 9.33,9.15,10.17,9.67,10.11,11.02,11.22,11.46,11.77,11.96, 13.25,13.30,12.42,13.01,13.47,14.25,14.56,15.02,14.92,15.28, 15.53,15.81,16.04,15.92,15.58,16.79,15.87,16.32,16.92,17.56, 18.08,17.21,18.56,18.01,17.45,17.82,17.71,19.42,18.37,19.63, 19.78,20.73,20.86,19.83,19.94,20.20,20.91,21.06,20.92,20.35, 21.94,21.12,20.94,22.03,21.78,22.67,22.83,22.96,22.72,23.85, 22.62,22.86,23.08,23.07,23.49,24.86,24.40,23.54,24.07,25.14, 23.95,24.87,24.56,26.08,24.25,25.89,25.34,25.58,26.03,26.48, 26.61,26.28,26.23,27.71,25.93,28.33,26.54,27.12,26.81,25.76, 27.78,27.32,27.86,28.65,27.88,26.93,27.36,28.36,28.41,28.87, 28.32,28.44,27.89,30.92,30.25,29.38,30.03,29.13,30.38,30.28, 30.20,30.15,31.50,30.98,31.65,30.65,31.01,31.78,31.42,30.89, 31.42,31.66,31.13,30.14,30.99,32.28,31.91,32.96,34.09,33.04, 34.13,33.82,33.51,32.86,32.57,34.85,34.36,33.32,33.11,32.41, 34.14,35.03,33.55,34.76,33.51,33.43,35.24,33.25,33.83,34.80, 34.76,35.18,33.90,35.49,36.51,35.90,35.67,36.37,36.77,35.47, 35.89,35.31,36.07,36.55,37.35,38.35,35.46,35.87,37.06,35.90, 36.98,38.44,36.92,36.93,37.38,37.97,36.70,38.02,37.87,37.94, 38.26,38.79,39.35,39.42,39.33,40.37,39.94,41.49,38.57,39.58, 38.49,38.66,38.75,39.10,39.80,38.75,38.92,39.74,38.98,39.92, 40.12,41.26,40.28,40.61,39.96,40.77,40.09,38.58,40.77,41.90, 40.96,39.75,40.36,41.53,41.13,41.92,40.64,42.73,41.53,40.86, 40.34,42.28,42.07,41.46,43.08,42.81,43.40,41.69,42.95,43.42, 42.06,44.70,42.55,44.24,44.81,44.08,43.08,42.26,42.18,43.65, 43.34,43.17,42.89,46.87,43.86,43.18,44.12,44.16,45.98,43.13, 45.20,44.32,44.76,45.91,44.98,43.48,43.28,44.49,44.04,43.78, 45.46,45.22,48.23,44.88,46.66,45.24,44.40,44.25,47.06,45.90, 43.54,44.34,47.70,46.19,46.88,47.62,46.11,47.12,46.70,47.36, 46.71,46.88,47.49,49.20,46.42,48.11,47.25,48.14,47.64,49.43, 8.16,8.68,8.84,9.71,9.86,9.99,10.91,10.57,11.46,10.99, 11.08,11.68,12.16,12.34,12.24,12.89,13.08,13.55,13.49,13.95, 14.09,15.44,14.61,13.90,14.21,15.61,14.68,14.99,16.01,15.88, 16.65,16.02,15.92,16.76,17.07,16.46,16.84,16.93,16.18,17.64, 17.47,18.71,18.17,18.27,20.20,17.05,19.28,18.69,20.06,20.14, 19.22,19.94,20.90,20.57,19.36,20.28,20.48,19.88,20.44,21.17, 20.77,21.63,20.98,21.10,21.32,22.43,22.01,22.24,22.09,22.33, 22.73,22.49,23.42,22.78,22.57,23.36,23.27,22.78,24.12,23.58, 24.67,24.07,25.37,25.20,24.72,25.15,24.93,25.79,25.08,24.37, 25.75,25.38,24.66,25.02,25.69,26.66,26.69,25.76,24.69,27.06, 25.84,26.60,27.25,27.47,27.24,26.24,26.00,27.18,27.30,25.88, 27.05,27.24,28.27,28.54,29.37,28.81,27.70,28.75,28.56,27.09, 28.47,28.14,30.36,30.15,28.05,29.47,30.09,30.05,29.65,30.43, 29.24,30.06,30.21,29.12,30.44,31.33,30.24,30.32,31.59,30.97, 30.74,31.70,30.81,31.45,30.51,32.14,31.79,32.50,33.04,32.77, 32.76,31.68,31.67,32.88,32.55,33.06,33.01,31.99,33.96,32.03, 32.11,32.62,33.34,33.28,33.88,34.31,33.54,32.17,35.46,34.53, 33.13,34.39,35.29,33.78,34.68,34.17,34.79,34.66,35.62,34.13, 35.46,35.05,35.45,34.36,36.41,34.36,34.35,33.96,36.11,36.18, 36.29,34.12,35.25,34.62,37.31,36.56,34.77,39.63,36.62,36.05, 35.81,37.95,37.25,36.88,39.15,36.41,39.41,36.97,38.39,38.44, 37.62,38.85,37.15,37.21,37.80,37.58,37.43,38.45,37.07,37.57, 37.77,39.52,39.04,38.70,39.39,39.30,38.66,38.98,38.48,39.02, 39.58,39.31,40.69,40.64,41.03,40.65,40.43,39.73,39.36,38.82, 41.36,38.89,41.00,40.76,39.44,41.60,41.22,39.83,38.56,40.79, 41.79,40.57,40.93,42.55,41.65,42.79,41.24,41.08,42.97,43.22, 41.44,41.10,41.90,41.30,42.75,42.25,43.01,42.15,42.21,41.27, 44.07,42.08,42.27,42.42,41.64,41.96,44.13,42.52,42.93,42.93, 43.04,42.79,43.18,43.02,42.63,43.87,43.42,41.65,41.15,44.26, 6.97,7.80,8.38,8.52,8.28,8.77,9.45,9.34,9.98,10.88, 10.63,10.82,10.21,11.25,11.90,11.91,12.39,11.85,12.45,12.55, 12.98,12.64,13.46,13.16,13.45,13.11,13.03,14.40,14.32,13.80, 15.15,15.24,14.82,16.02,15.93,15.56,16.26,15.40,16.14,15.68, 16.62,16.23,16.01,17.13,16.87,16.34,17.23,17.67,17.27,18.29, 18.93,18.50,17.18,18.56,17.87,18.86,18.79,19.26,19.24,18.94, 18.85,19.97,19.13,19.88,19.94,20.56,19.11,19.97,20.58,20.11, 20.47,21.32,21.19,21.19,21.26,20.83,21.08,21.87,21.92,21.48, 20.77,22.36,23.05,22.07,22.13,22.57,22.17,22.48,22.81,22.48, 22.85,23.80,23.21,23.85,23.77,24.05,23.91,24.07,25.00,24.86, 25.07,24.41,23.73,24.80,25.40,25.96,25.13,24.67,23.63,25.85, 25.26,25.83,25.56,24.84,25.75,25.34,25.21,26.60,27.14,26.23, 26.43,25.62,24.96,27.26,25.66,25.49,26.80,26.95,27.05,26.29, 27.12,27.71,27.35,27.86,27.79,27.08,27.77,27.83,29.07,27.72, 28.76,28.81,27.52,29.45,29.38,29.58,30.14,29.21,29.09,28.07, 29.70,30.09,28.29,29.70,28.33,29.86,30.13,30.46,29.92,31.00, 29.09,30.65,31.37,30.64,31.54,31.39,30.45,30.36,30.09,31.07, 31.69,31.83,31.24,32.12,30.94,31.43,30.97,32.29,30.83,31.42, 31.82,31.88,33.10,31.41,33.37,32.97,31.28,31.56,32.93,30.36, 33.06,31.38,32.10,33.05,32.68,33.06,32.56,33.40,34.42,34.49, 33.07,32.46,32.64,34.40,34.37,32.76,33.34,34.36,35.93,34.29, 33.51,33.09,33.94,33.34,33.90,33.86,33.47,34.01,37.25,34.47, 34.22,35.85,34.92,35.53,36.48,35.26,34.98,35.10,35.16,35.06, 35.68,36.14,35.39,36.71,36.73,36.46,35.43,36.85,35.22,37.84, 36.77,36.35,36.35,36.82,36.77,36.00,37.85,37.88,38.18,37.83, 36.22,36.62,37.45,38.56,37.38,37.69,37.32,38.57,38.38,38.49, 38.61,40.50,38.96,37.94,38.38,37.30,36.72,37.32,38.18,36.91, 39.16,38.72,39.09,39.04,38.81,41.15,38.87,37.35,38.26,39.85, 38.37,39.42,39.21,40.79,39.50,38.85,38.88,39.53,39.51,40.03, 6.49,6.92,7.18,7.94,7.94,8.24,8.83,8.36,8.68,9.65, 9.67,9.57,10.15,9.89,9.85,10.63,10.52,11.17,10.43,12.42, 12.20,11.42,11.80,11.94,11.28,12.60,11.96,13.10,12.75,12.71, 12.94,12.83,13.51,13.04,13.79,14.70,15.38,13.75,14.65,14.72, 14.29,14.18,14.97,14.45,15.86,14.17,15.60,16.20,15.86,15.68, 15.56,16.04,16.88,17.35,17.67,16.22,17.39,16.78,17.09,16.73, 18.41,17.07,17.00,18.47,17.49,17.79,18.05,18.75,18.62,19.09, 19.67,19.05,19.53,18.75,19.86,19.62,19.68,19.50,19.88,19.26, 20.38,19.69,19.59,19.60,20.92,20.14,19.85,21.33,20.90,20.67, 21.13,21.68,21.64,20.93,20.92,21.54,21.29,21.62,20.86,22.49, 21.23,21.42,23.28,21.90,22.95,23.72,21.79,23.38,23.28,22.95, 23.59,23.62,24.74,22.82,24.40,23.76,24.67,24.12,23.96,23.75, 23.89,23.93,23.70,24.00,23.95,25.07,24.05,24.71,24.27,24.29, 24.03,25.97,24.80,25.39,25.00,24.72,24.40,26.01,25.90,26.47, 24.93,26.00,25.32,26.31,26.74,25.38,24.72,26.28,26.15,25.81, 26.74,26.38,27.05,25.98,26.74,27.55,26.72,25.48,27.31,26.41, 28.09,28.62,27.19,27.24,28.44,27.54,28.14,29.11,28.77,28.11, 27.02,28.51,29.18,28.89,27.41,27.50,27.70,27.92,28.14,28.39, 28.03,28.69,28.30,27.51,28.15,29.10,29.06,28.13,29.25,30.02, 29.68,29.22,30.38,28.55,30.55,29.93,31.25,31.96,31.31,30.36, 30.79,30.62,30.63,31.73,31.41,30.33,31.36,30.75,30.99,32.40, 32.19,30.63,32.00,31.15,31.11,32.34,31.97,31.27,31.80,31.90, 30.57,32.80,31.46,31.23,32.10,30.76,32.36,31.92,32.43,32.57, 32.45,32.56,32.93,32.76,33.04,33.17,33.49,33.89,34.02,34.41, 32.31,32.64,32.81,32.54,33.07,33.22,33.06,33.36,33.99,34.42, 34.21,33.20,33.39,34.42,33.36,33.53,35.90,32.48,35.13,34.97, 34.48,34.07,35.27,33.89,35.15,34.70,34.36,34.50,35.42,33.23, 35.38,34.35,35.18,34.81,35.08,36.46,36.17,35.14,35.04,34.56, 35.78,33.66,36.39,37.28,34.12,36.96,35.70,36.68,35.43,36.25, 6.67,5.88,6.42,7.08,7.47,7.04,7.35,8.05,8.10,9.00, 8.24,8.39,8.80,9.06,8.82,9.71,9.32,9.71,9.79,10.42, 10.30,10.64,11.39,11.06,10.89,11.09,11.24,10.99,11.18,11.95, 11.55,12.38,12.33,13.10,13.45,13.13,12.21,13.06,12.56,12.69, 12.28,13.89,13.32,13.42,14.02,14.94,13.33,14.04,13.74,14.43, 14.36,14.10,15.02,15.63,15.85,15.61,15.60,16.09,16.04,15.73, 16.51,15.56,16.25,16.56,16.09,15.37,15.98,16.14,16.62,17.53, 17.17,18.03,18.18,17.68,17.89,17.73,17.04,17.95,17.28,18.21, 18.52,17.84,18.08,19.57,18.05,18.27,18.05,18.70,19.18,18.28, 18.85,18.71,20.10,19.32,19.18,20.25,19.46,19.43,20.59,19.68, 20.63,19.70,20.37,20.13,20.52,22.21,20.38,21.11,20.86,20.06, 20.28,21.79,22.09,20.57,21.65,20.77,22.09,20.77,20.89,21.43, 22.91,21.37,21.89,21.94,22.06,21.32,22.32,22.97,22.95,22.05, 22.37,21.93,21.68,22.82,21.94,23.17,23.19,23.96,24.02,21.97, 22.75,23.65,23.80,22.19,23.70,23.48,23.70,22.96,22.71,23.99, 24.14,23.39,23.44,23.46,25.23,23.41,23.72,22.71,24.90,24.27, 24.43,25.31,25.91,25.40,25.21,23.86,25.10,24.08,25.27,25.65, 24.99,26.00,24.42,24.58,26.65,25.59,25.74,25.49,26.01,26.75, 26.79,26.69,25.66,27.15,26.87,27.23,26.90,27.61,26.59,26.44, 28.27,27.10,25.97,26.92,27.04,27.80,27.21,27.35,26.96,27.77, 27.90,27.46,27.74,27.62,27.38,28.21,28.24,28.93,29.30,27.64, 27.22,30.16,28.55,27.89,28.07,28.51,28.45,29.62,28.04,28.10, 27.15,28.43,28.53,28.80,29.06,28.95,29.50,29.18,29.83,30.18, 29.87,30.54,28.65,30.39,27.86,30.73,29.73,29.29,29.78,30.48, 30.41,29.30,31.41,29.98,29.50,30.57,30.38,30.42,30.64,30.72, 30.47,30.71,32.93,31.22,30.70,30.35,30.13,30.69,30.62,31.57, 31.21,29.23,31.67,30.26,31.60,33.18,31.75,32.78,31.72,31.41, 32.04,30.98,33.01,31.42,31.36,32.20,31.61,32.30,32.79,31.23, 32.54,32.19,32.75,31.79,32.81,32.30,32.60,32.46,32.79,32.41, 5.42,5.71,6.55,5.67,6.20,7.19,7.54,6.81,6.05,7.88, 7.35,8.58,8.19,8.01,9.06,8.39,8.09,9.63,9.30,10.25, 10.13,9.59,9.93,8.97,9.18,9.97,10.38,11.33,10.01,10.46, 10.43,10.48,11.65,11.16,11.84,12.50,11.48,10.82,11.59,11.24, 11.16,11.69,12.45,12.30,12.47,13.32,13.46,12.45,13.87,12.90, 12.80,13.97,13.28,12.51,13.54,13.38,14.80,13.33,14.26,15.00, 15.01,13.94,13.83,15.12,15.58,14.88,14.22,15.93,15.97,16.21, 16.19,14.35,15.21,15.09,15.72,16.20,15.18,16.25,15.89,15.85, 16.23,15.63,16.40,16.70,17.26,17.35,17.07,16.36,17.43,15.96, 17.81,17.72,17.05,18.57,16.67,16.79,18.58,17.38,16.80,18.16, 17.92,17.96,17.72,18.33,18.53,18.95,17.96,17.23,18.05,19.19, 18.11,19.47,18.85,18.55,18.71,18.71,19.50,18.46,19.67,19.82, 19.01,20.14,19.74,21.49,20.22,20.05,19.60,18.70,21.04,19.41, 20.31,20.06,19.75,21.06,20.20,20.50,21.26,19.81,20.23,20.21, 19.93,20.91,21.44,20.95,21.17,21.59,21.36,21.81,21.42,21.90, 22.46,21.63,22.39,21.52,21.36,22.56,23.02,22.02,22.46,22.05, 21.84,21.98,22.18,23.22,22.87,22.94,22.45,23.06,22.63,23.58, 23.14,22.43,23.15,23.41,22.10,23.65,23.11,23.35,23.27,23.93, 23.56,23.06,24.36,24.46,24.21,23.65,23.40,24.16,25.08,25.01, 22.98,23.09,24.13,24.10,22.91,23.47,24.22,25.26,26.29,23.95, 25.15,24.26,25.99,25.22,25.80,25.35,25.07,25.36,24.98,25.08, 25.47,25.86,26.02,26.20,25.85,25.80,26.45,26.47,26.39,24.99, 26.00,26.51,26.95,26.37,26.51,27.48,26.01,27.18,26.33,25.44, 26.71,27.47,26.41,27.85,26.15,27.93,26.64,26.47,26.16,26.65, 26.60,27.84,26.01,27.58,25.72,27.80,28.12,27.88,27.34,26.73, 27.29,28.93,28.35,27.13,28.42,27.52,28.39,27.04,28.05,28.78, 28.25,28.33,28.17,27.67,28.14,28.50,29.97,29.72,27.99,28.32, 29.30,27.99,29.61,28.04,28.95,29.20,28.20,29.85,28.23,28.13, 29.20,30.10,28.67,29.57,28.64,28.83,29.45,29.48,30.30,31.02, 4.50,4.89,5.44,5.74,6.05,6.03,7.39,6.47,6.27,7.06, 6.85,7.35,8.02,7.80,6.84,8.05,7.47,8.56,8.02,7.91, 9.09,9.21,9.64,9.00,8.54,9.02,9.13,9.83,9.14,9.99, 9.87,9.80,9.79,9.89,10.30,9.75,10.84,11.04,10.54,11.14, 10.97,10.26,10.14,11.06,12.12,11.77,11.72,12.29,13.28,12.36, 12.32,12.46,11.96,12.09,12.21,13.13,12.47,13.24,13.62,13.28, 13.34,12.78,12.73,13.13,12.79,13.38,13.97,13.80,12.89,13.22, 13.84,13.73,14.22,13.43,14.47,13.28,14.97,14.38,14.21,14.09, 14.48,14.72,13.68,15.53,14.36,15.93,15.02,15.80,16.14,15.36, 15.93,14.81,15.49,16.35,15.76,16.28,16.22,15.72,15.78,16.41, 16.84,15.88,15.95,16.63,16.08,15.74,16.54,16.64,16.40,16.51, 17.58,16.78,16.83,16.50,17.55,16.38,16.73,16.61,17.01,17.13, 17.75,17.92,18.53,18.32,17.62,18.69,17.84,17.53,18.77,18.26, 18.09,19.12,19.07,18.54,18.56,19.22,19.38,18.80,19.35,19.14, 18.25,18.22,19.10,18.81,18.88,19.42,18.96,19.62,18.77,19.34, 19.23,19.80,20.30,19.06,19.94,20.25,21.20,19.74,20.58,20.99, 20.28,20.27,19.30,20.15,20.32,21.36,19.58,20.48,19.58,21.57, 20.27,20.28,21.61,21.12,20.69,20.53,21.72,21.15,21.50,21.40, 21.33,20.82,21.17,22.51,21.86,20.76,21.99,21.28,21.91,21.70, 22.00,22.04,22.58,21.36,21.18,21.65,21.91,22.00,22.39,22.96, 20.88,21.99,22.63,23.80,23.10,21.68,22.38,22.68,23.03,23.29, 23.83,23.54,22.54,22.01,23.41,23.69,23.43,21.90,23.56,23.79, 23.52,23.28,22.95,23.49,24.10,24.23,23.48,24.08,23.76,22.08, 23.33,24.40,23.55,24.06,23.49,24.50,25.50,24.74,24.27,24.59, 25.95,24.75,24.93,24.34,25.89,24.92,24.61,24.35,25.15,25.25, 25.35,24.72,25.71,25.89,25.32,26.04,25.23,25.21,24.20,25.20, 26.09,25.74,25.22,25.03,24.97,26.34,25.48,25.57,25.56,25.09, 26.03,26.36,25.10,26.89,26.18,26.76,27.04,26.04,26.19,26.71, 27.21,27.76,27.17,26.69,27.00,26.75,26.64,26.78,26.97,27.58, 4.68,4.49,5.06,4.84,5.87,6.40,5.92,6.57,6.07,6.83, 5.91,5.62,7.03,6.49,7.22,7.04,7.06,7.16,7.18,7.21, 7.17,7.09,7.56,7.65,8.67,9.11,8.68,8.36,8.13,8.30, 8.92,9.14,9.71,8.98,9.41,8.75,9.38,9.74,9.77,9.86, 9.40,10.20,10.47,10.32,10.02,10.66,10.66,10.07,11.54,11.17, 10.36,10.80,11.45,10.34,11.76,11.29,12.05,11.47,11.55,11.57, 11.03,11.82,11.63,11.81,11.75,12.27,12.95,12.78,12.17,12.82, 11.89,13.04,11.98,12.74,12.41,12.56,12.79,12.98,13.91,13.21, 12.72,14.38,13.11,13.19,13.70,13.12,14.30,14.00,13.15,13.87, 13.20,13.90,13.55,12.80,14.17,15.28,14.31,14.85,14.52,15.00, 15.40,14.72,14.16,13.41,14.09,14.43,15.30,15.34,15.15,16.11, 15.68,15.67,14.44,15.45,15.33,15.95,15.44,15.91,15.12,15.10, 16.47,16.48,15.99,15.55,16.39,16.60,17.81,15.50,16.27,16.00, 15.86,16.26,16.72,16.38,16.98,16.33,17.29,16.99,16.71,16.98, 17.29,16.73,17.57,17.10,17.55,18.07,17.74,17.07,17.65,17.64, 18.19,17.38,17.35,18.71,17.21,17.99,17.22,17.49,18.12,17.48, 18.63,19.76,17.93,18.55,18.49,19.33,18.83,17.55,18.35,18.74, 16.79,19.43,19.34,18.57,19.35,19.23,19.55,18.82,19.63,19.60, 19.39,19.38,18.65,19.72,19.71,19.63,20.71,19.99,20.42,19.62, 20.95,20.00,20.33,20.03,20.14,20.64,20.52,20.26,20.15,21.07, 20.71,19.23,20.37,19.91,21.55,20.43,20.26,21.13,20.20,19.98, 20.77,20.01,20.28,21.63,22.69,20.42,20.53,20.65,20.58,21.16, 20.90,22.39,22.64,21.63,21.37,21.78,20.56,21.11,21.50,21.79, 21.71,21.40,22.35,21.41,21.60,21.85,21.25,21.07,22.29,22.17, 22.24,21.86,22.02,22.55,20.93,23.18,23.42,21.84,22.18,22.61, 22.30,21.73,23.35,22.44,21.16,23.46,21.90,22.48,23.68,22.23, 23.39,23.19,22.01,23.70,23.50,23.86,23.91,24.55,24.43,23.24, 23.35,22.91,23.59,22.99,23.37,23.24,24.22,23.24,23.19,23.20, 22.95,24.68,24.50,22.79,24.64,22.84,23.46,23.83,24.86,24.10, 14.53,15.33,16.66,16.88,17.68,17.93,18.59,18.30,19.21,20.24, 20.17,20.76,22.35,22.05,22.72,22.13,23.47,24.90,24.38,24.38, 25.11,25.36,26.02,26.20,27.07,26.62,25.97,27.19,28.19,29.34, 28.81,29.61,29.45,29.05,30.72,31.18,31.65,31.50,31.48,31.92, 31.67,32.51,31.68,32.31,34.43,33.08,35.18,34.13,33.84,35.44, 34.83,35.28,36.96,35.96,36.65,36.14,39.50,34.96,36.92,37.39, 38.51,38.72,39.33,40.02,39.13,39.40,39.10,39.06,39.61,40.96, 40.04,39.78,39.99,42.44,39.92,40.72,41.57,42.28,41.62,42.54, 43.71,43.72,44.55,44.69,43.08,44.04,43.99,45.32,45.36,43.76, 44.38,46.30,45.14,45.10,46.91,47.43,46.37,46.75,47.05,44.65, 47.56,46.72,47.14,48.15,50.20,48.05,50.40,48.38,49.27,48.35, 49.37,50.26,49.61,51.12,51.53,49.40,51.26,52.88,51.59,51.22, 49.62,49.62,52.56,51.82,53.54,52.02,51.88,51.92,53.06,54.65, 53.42,52.23,54.58,53.08,54.44,55.41,55.71,56.57,55.05,54.98, 53.17,55.39,55.63,55.94,57.49,57.86,57.12,56.02,55.83,56.02, 55.78,57.33,58.16,57.43,57.92,58.49,57.47,58.68,59.94,61.09, 61.16,60.34,57.41,60.25,60.14,60.88,60.72,57.12,59.15,61.96, 64.47,62.44,61.51,58.97,63.10,61.50,63.58,62.12,62.44,60.91, 62.92,62.82,63.14,62.18,62.03,62.72,62.62,61.29,68.98,65.91, 62.44,66.66,62.66,64.17,63.96,61.98,63.50,64.67,66.08,60.08, 66.35,65.46,67.09,70.46,65.93,65.84,66.53,65.75,65.19,67.59, 67.87,68.48,67.08,69.63,66.56,69.00,69.61,69.02,67.48,68.71, 68.02,66.60,70.21,69.20,68.71,67.53,71.22,69.87,72.94,71.23, 69.53,71.15,68.87,73.60,71.86,69.85,68.93,74.40,69.87,69.14, 70.74,72.10,71.54,69.51,74.33,73.96,71.56,69.70,75.32,72.95, 69.98,72.35,73.16,75.08,74.04,75.59,76.28,75.07,75.53,72.59, 72.41,75.10,71.98,72.45,77.08,76.22,73.33,71.75,74.45,75.21, 73.57,75.13,75.26,77.19,76.25,75.26,75.55,78.91,78.02,74.58, 73.54,77.97,77.42,75.94,77.04,77.53,76.05,78.70,79.28,81.11, 14.05,14.90,15.54,16.33,16.99,17.54,17.79,18.21,19.46,19.40, 20.40,21.04,21.23,20.31,21.79,22.60,23.01,23.48,23.44,24.39, 24.25,24.46,25.73,25.36,26.07,26.42,26.47,26.24,27.59,28.19, 27.92,28.36,28.52,30.25,29.49,30.27,30.52,30.16,30.85,31.23, 30.79,29.79,31.48,32.75,31.88,32.46,31.90,32.88,33.84,34.01, 33.47,34.51,35.46,34.42,34.51,35.67,36.69,35.32,37.87,34.94, 37.38,37.06,38.50,36.81,37.03,37.58,38.03,39.65,38.35,39.11, 39.24,40.24,39.54,39.93,40.48,42.55,42.17,41.12,44.11,41.93, 40.77,43.58,41.15,42.53,41.08,42.98,42.18,43.24,41.10,43.26, 41.85,44.01,45.12,45.85,43.83,45.56,45.27,46.10,44.04,47.03, 47.22,46.33,47.23,48.68,46.37,47.64,48.05,50.61,50.41,47.19, 47.36,47.97,47.28,48.26,49.70,48.49,49.42,50.17,49.90,49.99, 51.35,52.35,51.66,51.10,51.42,49.69,54.50,51.12,50.49,51.69, 51.26,52.70,51.67,52.70,52.56,51.92,53.33,53.63,53.50,54.05, 51.86,55.73,52.74,53.16,53.23,53.99,56.10,54.14,57.21,58.82, 58.66,55.64,56.65,55.79,56.43,55.71,56.10,57.90,57.27,58.49, 58.63,57.28,55.36,60.20,56.85,54.99,59.04,60.01,57.43,57.93, 60.86,59.88,58.12,59.82,61.07,58.42,62.45,62.71,61.56,60.33, 61.88,59.86,60.92,60.66,62.10,61.38,61.74,62.13,64.58,63.72, 61.54,62.74,63.32,63.01,62.62,62.90,62.52,61.67,60.07,64.65, 65.26,65.05,62.53,66.16,63.51,65.96,65.37,68.30,64.36,65.08, 64.23,65.69,65.30,68.19,64.70,65.42,67.46,67.89,65.67,67.64, 69.62,69.31,66.48,68.37,67.84,68.83,70.24,67.92,66.82,66.53, 70.21,68.10,69.93,70.31,69.62,68.14,67.11,70.85,72.17,71.80, 67.53,70.27,71.12,71.41,71.56,73.77,70.10,68.75,69.61,74.52, 72.80,68.87,69.53,68.66,72.32,72.20,70.77,70.81,72.50,73.42, 73.58,75.00,71.76,72.01,72.20,73.17,72.08,73.68,75.20,72.29, 73.02,71.49,74.41,74.71,76.76,76.13,75.65,72.19,74.81,74.18, 73.86,76.05,73.80,75.40,77.86,76.82,74.68,77.10,74.38,77.01, 13.22,14.41,14.15,15.31,16.79,16.76,17.49,16.77,17.44,18.99, 18.86,19.72,20.96,20.21,20.13,20.52,21.71,21.94,22.29,23.23, 22.27,24.05,23.85,24.47,25.67,25.37,25.26,25.99,26.31,26.37, 26.50,27.64,29.23,28.73,28.52,28.37,28.02,28.64,29.30,29.45, 28.98,30.53,30.02,30.74,31.44,31.17,31.40,31.53,32.36,32.52, 32.82,32.07,34.50,34.37,33.89,35.33,35.23,34.73,36.52,34.18, 34.36,36.94,36.94,35.13,36.10,36.18,38.63,37.04,37.36,37.74, 37.16,39.09,38.42,39.11,38.55,39.00,38.45,40.63,39.87,36.28, 41.61,41.34,38.56,39.94,41.62,40.91,41.01,39.94,42.26,42.37, 43.76,41.61,44.13,43.66,42.74,43.11,42.89,44.07,44.90,44.71, 45.71,44.98,44.37,43.87,45.82,44.86,44.88,45.52,43.67,47.15, 47.56,44.74,47.43,46.10,45.45,46.30,46.42,48.15,48.18,47.40, 48.94,48.90,48.98,47.37,49.49,48.81,50.64,50.68,49.47,50.62, 50.32,49.15,50.75,50.33,51.55,49.65,51.00,52.58,50.33,54.16, 50.11,52.28,50.39,51.40,52.17,52.77,53.23,50.58,51.76,55.02, 53.23,52.58,53.07,53.09,56.28,55.66,55.08,56.85,54.84,54.61, 54.15,55.04,56.73,56.34,56.16,57.54,56.01,55.53,57.43,55.94, 58.52,55.38,55.59,57.42,57.67,56.10,56.04,58.30,57.40,59.05, 59.50,59.46,58.93,58.96,60.89,61.23,60.14,61.69,59.02,60.26, 57.96,61.14,60.95,61.14,59.60,59.87,62.32,61.84,59.49,59.92, 60.68,63.15,63.05,60.63,63.46,64.33,62.06,62.76,61.51,62.06, 60.78,66.11,62.55,64.46,62.31,63.83,66.51,65.28,61.83,65.15, 62.62,62.94,63.31,63.71,66.15,66.44,65.31,64.75,64.20,66.59, 66.36,67.04,64.44,66.84,64.05,65.67,61.71,63.86,65.55,67.81, 67.07,66.93,66.83,69.33,68.86,67.89,69.50,65.63,69.85,69.69, 68.30,69.27,70.98,66.90,69.37,68.12,67.80,67.72,67.41,69.88, 71.26,69.95,68.74,69.25,72.22,69.44,71.61,69.68,71.63,70.10, 70.12,70.29,73.18,70.74,73.60,69.19,73.99,72.60,71.37,73.16, 75.04,72.85,71.89,71.34,70.28,73.33,69.73,72.85,70.93,72.64, 13.30,13.71,14.07,14.02,15.68,15.50,16.37,16.62,16.82,17.31, 17.71,19.04,19.20,19.70,19.51,20.34,20.39,21.14,20.81,22.58, 22.68,23.60,22.66,23.02,23.43,23.91,23.52,25.18,24.64,26.16, 24.61,25.47,26.66,26.65,25.90,26.42,26.61,26.94,27.54,28.05, 28.75,28.08,29.79,28.58,29.12,29.23,29.71,30.56,29.79,30.85, 31.59,31.86,32.53,31.01,32.38,33.23,33.37,33.32,33.87,31.74, 33.39,33.89,33.65,34.38,35.17,36.79,36.02,35.18,35.91,36.17, 34.46,35.98,36.64,36.41,36.49,37.40,35.32,37.85,37.55,37.53, 36.97,38.79,37.97,39.43,39.33,39.94,38.93,39.76,39.48,40.63, 39.05,41.91,40.77,41.72,40.67,39.46,40.55,41.92,41.76,42.09, 40.91,42.33,43.09,42.70,41.57,43.47,42.69,43.72,44.45,44.73, 43.56,43.99,42.94,45.00,43.29,43.63,45.16,44.05,45.71,46.55, 43.47,46.41,45.90,45.43,49.31,48.56,46.87,47.26,48.41,47.01, 47.89,47.87,46.83,46.93,48.04,47.21,47.33,47.94,47.20,49.19, 48.63,48.45,50.22,50.86,48.76,49.84,50.71,48.67,50.38,50.97, 50.50,51.56,50.74,51.65,50.22,50.77,53.05,50.46,51.04,53.43, 51.70,52.45,51.45,49.92,52.27,53.20,54.16,52.77,53.51,54.72, 56.33,54.04,53.38,54.80,55.03,55.75,55.50,53.59,56.00,56.70, 53.50,53.26,55.25,56.66,56.07,56.60,57.51,57.64,57.18,57.39, 55.50,56.20,57.57,57.01,58.17,58.27,56.65,57.50,55.78,55.79, 59.83,55.67,58.43,59.70,59.91,57.61,60.18,58.99,60.00,58.41, 60.93,58.77,58.85,62.53,58.64,61.28,57.74,60.64,59.50,64.01, 58.48,60.13,62.97,64.37,62.01,61.75,63.13,61.98,60.56,62.85, 62.13,62.39,61.56,63.50,61.97,62.49,64.22,64.18,62.56,64.70, 62.89,64.59,60.42,67.32,62.28,63.24,64.17,64.11,64.86,62.90, 62.79,65.91,66.27,66.72,66.02,64.33,65.18,63.41,64.08,65.46, 63.68,64.22,69.05,67.56,65.02,68.36,67.77,67.34,66.93,66.12, 69.25,68.61,67.48,65.96,67.37,66.52,67.78,67.38,69.22,66.61, 67.70,69.93,72.07,66.64,68.99,69.38,68.75,70.17,73.36,68.72, 11.87,12.84,13.35,13.99,14.26,14.93,14.99,15.59,17.27,17.25, 16.13,18.47,17.90,17.79,18.65,18.75,19.07,19.70,19.70,20.15, 20.75,21.00,20.79,21.14,23.51,24.15,22.49,23.70,23.38,23.85, 22.81,24.08,25.57,25.38,25.37,26.05,25.57,26.16,26.02,26.96, 27.75,27.69,26.67,26.98,27.24,27.52,27.73,29.35,29.44,29.25, 29.38,29.63,30.24,29.57,30.95,31.80,30.32,31.05,32.27,31.23, 32.97,32.43,33.31,31.44,34.10,33.71,32.44,34.10,32.69,34.23, 33.17,33.85,34.69,33.73,35.55,35.85,34.81,35.81,36.53,37.25, 34.27,33.87,37.39,35.52,37.73,38.97,37.72,38.60,36.57,38.33, 37.71,38.75,37.95,37.48,39.56,39.11,39.02,38.87,39.11,39.31, 38.55,39.26,39.83,40.25,40.42,40.36,41.15,39.84,41.29,43.24, 42.19,41.44,41.13,42.27,40.77,42.02,43.37,43.11,43.16,41.54, 43.42,43.51,41.34,45.66,44.92,43.44,43.68,44.26,45.47,45.51, 44.98,43.89,45.44,48.53,46.56,48.25,46.52,46.36,44.44,47.14, 46.19,45.90,45.87,47.68,45.13,45.84,45.57,47.62,48.05,49.11, 46.63,46.32,47.11,50.23,48.53,49.34,49.29,48.34,49.17,50.97, 48.12,50.18,49.99,49.40,48.15,48.08,51.27,49.85,51.30,50.99, 52.01,49.62,51.64,51.49,53.24,52.69,51.24,51.64,52.76,53.71, 54.09,53.82,52.88,50.61,52.19,52.85,53.84,52.51,55.18,52.32, 51.30,52.12,56.50,56.03,52.98,55.35,53.38,54.82,53.95,54.15, 54.34,54.43,55.74,54.44,55.26,55.74,55.84,56.98,56.02,57.23, 55.42,54.02,57.55,58.00,55.14,57.31,56.92,58.30,53.76,56.25, 58.32,57.81,56.82,55.84,58.58,56.99,57.36,58.42,61.36,59.63, 57.37,60.88,59.28,57.81,59.16,60.73,57.44,61.72,58.62,59.64, 61.33,59.99,61.60,62.31,61.25,58.75,60.52,58.01,63.49,59.28, 60.22,60.67,64.14,59.29,63.10,59.87,62.25,61.00,60.99,60.19, 59.44,61.12,62.97,62.34,61.94,64.62,62.30,63.91,63.03,64.85, 63.72,65.34,63.91,61.57,63.94,64.35,64.87,63.65,61.72,61.74, 63.85,64.47,65.78,63.46,66.69,63.06,63.58,63.80,63.74,64.78, 11.46,11.44,12.63,13.28,14.14,14.32,14.62,14.82,15.50,16.25, 16.01,16.32,17.11,17.51,17.45,18.85,18.59,19.17,19.96,19.69, 18.83,20.20,20.56,21.29,20.50,20.56,21.37,20.95,22.00,21.76, 22.49,23.39,22.12,23.00,23.59,24.11,24.33,23.09,25.05,24.82, 25.01,25.50,24.93,26.80,25.81,26.91,27.68,27.70,26.93,27.81, 27.55,27.99,27.40,27.27,27.90,28.51,28.17,28.61,29.33,29.77, 30.13,30.79,29.94,29.47,30.70,30.52,30.84,30.13,30.31,32.14, 32.36,32.44,31.51,32.25,32.11,32.94,32.99,32.99,34.15,33.73, 33.32,33.33,33.13,34.28,35.32,33.48,35.32,34.76,33.75,35.62, 36.61,35.72,36.05,36.50,35.94,36.24,36.05,35.93,38.44,36.84, 38.28,38.01,36.37,37.57,37.60,38.35,38.57,40.33,38.10,37.23, 39.93,38.64,39.72,40.34,38.64,41.29,39.14,42.00,38.65,40.22, 41.41,41.00,42.08,38.66,40.48,40.19,41.29,42.48,40.49,41.14, 43.54,40.87,43.84,41.50,42.45,42.81,42.65,43.87,42.12,43.47, 41.84,44.14,43.26,42.80,43.12,43.88,45.96,44.67,43.92,45.37, 44.46,45.30,44.71,45.41,45.51,44.99,45.82,46.69,45.49,46.45, 46.75,46.08,47.45,47.27,45.60,48.37,46.72,46.54,46.91,47.05, 47.99,47.49,47.43,46.06,49.28,49.07,50.88,47.36,49.27,47.87, 49.51,49.02,49.44,47.66,51.13,51.21,49.25,50.19,48.90,49.93, 48.67,51.39,50.70,51.15,51.56,51.25,50.72,53.20,48.42,51.06, 52.00,52.89,51.67,53.27,51.34,51.07,52.15,51.20,51.42,51.30, 52.25,51.30,53.23,53.49,54.77,51.59,56.08,54.67,56.74,51.98, 55.50,53.35,55.31,53.10,54.67,52.75,51.93,54.77,55.15,55.91, 56.13,53.58,55.12,56.71,54.31,56.29,55.45,56.56,55.21,53.85, 55.03,55.93,56.76,56.20,57.22,54.94,57.17,57.01,57.20,57.50, 57.16,58.40,56.10,56.88,58.91,58.63,59.25,57.42,60.09,58.18, 59.33,59.64,56.19,56.90,59.22,62.49,58.83,61.21,58.72,58.96, 57.16,59.96,59.45,60.17,59.96,58.63,60.37,60.46,61.84,59.73, 60.61,58.26,60.58,60.75,62.50,61.13,61.45,64.33,64.49,62.57, 11.37,11.29,11.49,12.04,11.95,13.27,13.27,13.65,13.94,15.11, 14.84,14.78,16.19,15.47,16.37,15.88,17.15,17.70,17.66,17.85, 18.55,17.85,18.86,19.24,19.44,19.00,19.52,20.37,21.22,20.93, 20.69,20.69,22.07,21.55,21.00,21.38,21.97,21.97,21.35,23.12, 23.87,23.73,24.45,24.17,24.45,23.69,25.07,25.76,26.22,24.88, 25.65,25.54,25.18,25.69,26.99,26.80,26.91,27.24,27.73,27.59, 27.96,28.27,28.73,27.39,27.97,27.54,29.98,29.36,29.56,29.74, 29.11,30.28,29.05,30.79,29.69,30.18,30.29,30.86,30.49,30.55, 30.83,30.84,31.15,31.34,32.11,32.50,32.07,31.31,31.56,32.88, 33.47,34.86,32.99,32.67,32.90,34.19,33.82,34.31,34.39,35.70, 33.36,35.95,34.68,35.12,35.15,36.94,33.89,37.20,35.22,35.93, 37.59,36.84,36.84,35.41,35.48,36.80,36.89,36.64,37.23,37.65, 37.18,36.48,37.47,38.15,35.98,38.84,36.84,38.34,38.30,39.11, 39.63,39.18,39.76,39.57,37.55,38.72,39.50,39.75,39.09,39.64, 41.31,40.41,41.22,41.31,41.15,40.81,38.47,41.90,42.63,42.27, 41.44,41.66,42.24,42.42,43.54,44.19,41.09,44.70,43.05,43.20, 41.72,42.55,43.73,45.19,43.34,44.59,43.79,43.17,41.74,43.32, 43.73,43.92,45.15,43.78,46.01,45.18,44.02,44.45,46.90,46.46, 47.07,45.07,45.09,46.95,44.58,44.65,46.16,43.96,48.36,46.49, 45.79,46.58,44.23,47.74,45.40,45.99,45.59,45.70,46.52,48.19, 48.75,48.01,48.84,48.59,49.49,47.73,47.68,49.26,49.18,47.89, 47.30,47.73,48.34,50.21,49.04,50.42,51.42,50.57,48.62,48.83, 49.48,49.17,50.23,50.28,49.94,48.61,51.34,52.77,48.57,50.44, 51.78,51.62,50.82,52.01,53.09,48.48,49.97,51.07,52.77,53.01, 51.86,52.01,54.73,52.93,54.67,52.33,54.37,52.75,53.30,53.93, 51.26,54.36,53.12,53.86,54.45,51.32,53.70,57.32,53.77,54.34, 56.06,52.82,54.05,57.67,53.82,55.95,53.79,54.87,55.53,55.36, 55.54,54.64,54.00,58.66,54.80,53.40,56.76,55.11,56.18,53.99, 55.58,59.16,56.42,56.04,54.28,55.15,58.12,55.64,57.50,58.78, 9.99,10.50,11.15,11.97,11.51,11.70,13.08,12.11,12.63,13.28, 14.04,13.98,13.93,14.42,14.38,15.35,15.51,15.49,16.30,16.85, 16.88,17.72,17.07,17.68,18.27,17.07,18.65,18.26,19.96,18.93, 18.96,20.12,19.56,20.38,19.70,21.63,20.55,20.99,21.03,21.31, 21.32,22.11,22.10,23.55,22.26,22.32,23.22,23.52,23.39,22.53, 23.56,24.07,23.58,24.66,23.54,25.08,24.67,25.48,26.93,25.98, 26.59,25.01,26.81,26.54,25.66,26.85,26.17,25.78,26.46,26.64, 27.51,29.01,28.20,26.87,28.04,28.07,27.64,27.95,28.25,28.25, 28.79,29.05,29.48,28.95,27.64,30.29,30.24,30.75,31.29,29.15, 29.48,30.03,30.46,31.93,30.63,31.94,31.09,29.99,32.42,32.54, 30.43,31.96,31.83,31.24,32.69,31.67,31.95,33.16,32.56,33.64, 33.80,33.70,33.47,33.52,33.76,35.79,32.96,34.92,35.27,36.53, 34.87,34.93,35.43,35.27,36.19,36.54,35.10,35.47,35.07,34.81, 37.36,35.91,36.31,35.30,36.41,36.85,35.89,35.14,37.60,37.36, 38.12,36.88,37.52,38.05,37.93,38.33,39.14,38.41,37.74,37.61, 37.84,37.39,38.69,38.49,37.71,36.51,39.09,39.07,40.39,40.05, 40.15,39.38,39.13,38.00,39.67,41.57,39.76,39.44,41.18,39.30, 41.27,40.04,42.19,40.44,41.10,41.54,42.02,42.26,41.97,41.45, 41.67,43.00,42.17,42.51,43.92,42.06,42.62,43.93,43.34,44.41, 45.02,42.93,43.64,42.47,44.56,43.24,43.30,43.78,44.31,45.12, 43.84,43.45,44.79,45.50,43.85,44.67,43.04,47.24,45.12,43.78, 45.08,45.18,45.14,45.87,46.88,46.44,46.86,47.48,45.83,47.92, 46.89,45.65,45.39,45.78,46.97,46.06,46.26,46.19,47.07,46.80, 47.30,49.80,48.26,47.96,46.36,47.90,47.36,47.82,46.54,46.59, 48.50,48.37,46.96,49.38,47.48,50.11,49.28,50.35,48.56,49.11, 47.78,50.33,50.33,47.99,48.43,49.76,49.93,50.33,50.23,48.50, 49.95,48.14,49.80,50.52,50.02,50.75,52.41,48.97,52.34,52.60, 52.72,50.51,51.13,52.42,51.12,50.32,51.92,51.83,52.51,53.69, 51.81,52.56,51.85,52.58,53.08,52.19,51.14,54.55,51.98,54.21, 9.38,9.31,9.39,9.74,10.66,11.07,11.25,11.82,12.44,12.60, 12.51,13.31,13.61,13.36,14.05,13.88,14.54,14.61,15.09,14.83, 15.78,15.53,16.17,16.34,17.44,16.76,16.28,17.96,17.27,17.42, 18.13,18.35,18.33,19.15,19.28,18.89,19.90,20.22,19.46,19.60, 20.28,20.93,18.44,21.19,21.16,20.54,20.40,21.29,21.45,22.97, 21.68,23.15,21.39,23.21,23.01,22.88,21.80,23.53,22.82,23.27, 24.10,24.32,23.87,22.92,23.86,24.88,24.52,24.29,25.74,25.12, 26.34,25.68,26.20,25.77,25.67,27.19,26.02,25.80,25.28,26.97, 26.66,25.88,26.11,27.89,27.15,26.54,26.82,28.07,28.28,27.57, 27.29,27.38,27.97,27.67,28.74,29.07,28.80,29.35,30.37,30.15, 29.99,30.07,30.16,30.89,30.45,30.12,30.55,29.25,31.82,31.63, 31.05,31.36,30.98,30.66,32.93,31.01,30.88,31.22,31.75,31.68, 31.96,32.27,32.30,32.28,32.70,33.24,32.97,33.33,33.27,32.02, 32.32,33.80,32.45,33.17,33.29,34.61,33.48,34.35,33.56,34.25, 32.83,33.63,34.44,34.35,36.59,34.68,36.91,35.72,35.91,35.63, 34.76,34.38,36.87,36.55,36.46,36.70,35.41,35.66,36.12,36.22, 36.74,36.17,35.74,37.99,36.17,35.97,36.76,36.67,36.61,37.57, 36.62,37.49,38.01,38.83,38.43,37.27,38.55,39.23,38.74,40.21, 39.77,38.68,38.32,38.36,38.71,38.51,39.56,40.86,40.06,39.37, 39.49,40.52,37.24,39.71,39.79,39.52,40.35,40.51,42.08,40.06, 41.04,40.65,41.55,43.04,40.77,38.56,40.47,39.34,41.96,41.11, 41.27,43.33,41.70,41.04,42.55,42.58,40.04,43.00,42.27,40.73, 43.18,41.05,43.15,43.04,43.29,42.71,43.86,42.62,43.56,43.75, 44.56,44.54,43.60,43.85,45.22,42.59,44.45,43.37,43.52,44.39, 42.62,46.61,44.62,44.73,45.82,45.33,43.38,44.38,45.06,46.31, 45.94,46.32,44.64,44.18,44.86,46.20,46.05,48.64,45.12,45.91, 47.94,46.76,47.38,47.38,44.94,46.87,46.73,47.71,46.15,46.72, 47.22,47.36,46.59,47.58,48.23,47.68,47.01,47.25,48.39,48.01, 49.46,45.92,45.21,48.05,48.61,46.78,50.03,46.47,50.15,49.01, 7.87,8.78,8.76,9.91,9.68,10.41,9.72,10.17,10.95,12.19, 12.43,11.67,11.82,12.83,12.88,13.62,13.16,14.04,14.29,14.40, 13.89,15.27,14.73,15.25,14.46,15.64,15.47,16.19,15.67,16.28, 17.17,16.33,16.36,17.71,17.07,17.37,17.82,17.49,17.57,18.58, 17.90,19.21,18.46,18.55,18.94,18.82,19.16,20.13,19.77,20.30, 20.49,20.69,21.12,20.24,19.73,20.05,20.99,21.04,21.93,21.56, 20.74,22.69,22.21,22.89,21.88,22.66,22.90,22.31,23.00,23.86, 23.35,23.39,22.67,23.43,24.45,23.44,24.30,24.18,24.76,24.59, 24.08,25.21,25.10,25.97,26.58,24.94,25.81,25.25,26.31,25.98, 25.25,25.83,26.35,26.05,27.14,25.54,27.19,26.24,27.34,27.17, 27.57,26.41,27.46,27.59,28.10,27.37,26.84,27.54,26.74,27.33, 28.39,28.37,27.47,28.65,27.18,30.39,29.13,29.85,28.65,28.79, 30.57,30.44,29.61,29.20,29.94,28.12,30.33,29.24,30.13,30.99, 30.33,30.18,31.12,31.04,29.35,31.84,32.43,29.82,31.63,30.46, 31.66,32.57,31.52,31.59,32.90,30.78,32.12,33.65,32.26,32.30, 32.74,33.82,32.03,31.31,33.92,32.18,33.16,33.91,33.00,32.49, 33.98,32.72,33.95,33.63,33.91,34.06,34.35,33.17,34.17,34.83, 34.95,33.71,34.40,37.03,35.41,35.18,34.68,36.66,35.11,36.08, 37.67,36.97,37.75,34.10,35.12,35.54,35.70,36.46,36.32,36.59, 34.93,35.77,36.14,37.23,36.68,34.66,38.17,37.72,36.41,36.79, 37.66,38.33,39.40,37.88,39.18,37.23,38.79,36.90,38.11,37.31, 37.47,38.42,35.93,38.88,38.58,37.57,40.15,39.98,38.85,40.27, 38.44,39.73,40.22,38.28,38.45,37.64,40.56,40.92,39.40,40.81, 39.12,38.58,40.59,40.35,40.64,39.98,39.85,40.25,40.94,39.16, 40.93,41.42,39.88,39.50,41.80,41.53,40.35,41.02,43.24,42.96, 41.18,40.01,41.07,42.12,42.07,41.96,42.60,40.51,40.95,42.16, 41.07,43.68,41.28,42.56,40.39,42.43,43.86,41.80,43.26,42.02, 42.65,42.46,43.71,43.50,44.30,45.31,44.60,41.54,43.38,42.43, 43.66,43.15,44.46,43.50,45.34,43.53,43.03,45.41,43.80,45.76, 7.41,8.46,7.87,8.73,8.89,9.37,9.90,10.16,10.46,10.87, 11.04,11.39,11.36,11.75,11.89,11.29,12.09,12.54,12.90,12.57, 13.60,14.23,14.21,13.49,14.09,14.62,14.19,13.68,13.97,14.76, 14.79,14.60,15.46,15.74,15.19,16.65,15.88,16.32,16.63,16.24, 16.66,16.42,16.66,17.44,17.10,17.95,17.48,17.52,18.11,18.80, 18.43,19.57,18.87,18.62,18.74,18.61,19.36,19.62,19.08,20.02, 19.57,19.89,19.14,19.73,20.31,20.55,20.28,20.22,21.12,21.89, 20.49,21.46,20.95,21.57,20.18,22.66,22.37,20.85,22.52,22.09, 22.76,22.73,22.55,23.01,23.05,23.02,22.59,23.67,22.64,22.80, 24.35,23.81,23.50,24.44,23.74,24.79,25.31,24.43,25.00,25.10, 24.74,24.89,25.26,25.15,26.72,25.72,26.12,25.57,25.77,25.89, 25.12,25.60,25.80,25.84,26.26,25.06,26.95,26.75,26.24,26.83, 27.12,26.92,26.58,26.48,28.67,27.69,28.23,27.22,27.91,27.57, 27.46,28.48,27.93,29.59,28.46,28.78,27.96,27.89,29.14,28.52, 29.06,29.68,29.99,28.57,29.83,29.33,29.11,28.54,28.92,29.83, 29.25,30.53,30.55,28.91,29.03,31.48,31.27,31.39,30.64,30.27, 30.07,30.77,31.24,30.79,31.08,33.12,31.98,30.61,31.12,30.40, 30.72,30.44,32.32,32.61,31.55,33.24,31.39,33.81,33.23,32.28, 31.29,33.18,34.19,32.15,34.67,33.64,32.63,33.60,33.43,34.12, 33.38,34.30,34.89,34.38,33.15,33.47,33.39,34.29,35.30,33.83, 35.62,34.02,33.39,35.97,35.42,36.02,32.88,34.48,36.66,34.75, 35.13,34.45,37.16,35.16,35.05,37.22,37.31,33.68,35.54,33.39, 34.91,35.49,35.06,36.50,35.81,36.85,36.15,36.22,36.72,36.95, 37.31,36.38,36.43,37.92,36.62,36.42,38.03,37.03,36.57,37.09, 39.21,36.48,37.03,36.23,37.58,36.85,38.47,37.17,38.19,40.35, 37.40,39.24,36.49,37.27,38.75,37.94,39.02,39.40,38.72,37.15, 38.14,38.64,39.15,39.98,38.02,39.15,37.58,38.47,38.83,40.69, 39.75,38.42,39.03,40.36,40.68,41.23,39.37,39.27,40.40,39.98, 39.47,40.88,40.17,39.43,42.76,40.77,39.55,41.89,40.09,40.17, 6.95,7.11,6.95,7.92,8.02,8.20,8.52,9.33,8.86,9.52, 10.34,9.93,9.74,11.00,9.75,10.51,11.07,11.51,11.37,12.23, 11.09,12.35,12.63,11.81,12.29,13.02,12.70,13.18,13.39,13.33, 13.45,13.76,13.20,13.54,13.84,14.71,15.38,15.59,14.63,14.82, 15.31,15.15,16.28,15.24,14.75,16.22,15.56,15.60,16.28,16.56, 17.12,17.02,16.82,17.10,17.00,18.38,17.38,17.28,18.18,18.62, 19.34,18.94,17.62,18.26,19.41,19.07,18.94,18.85,19.40,19.04, 19.31,19.07,19.64,20.17,21.75,20.93,18.53,20.88,19.56,20.42, 21.37,20.73,21.15,21.62,21.17,22.86,19.81,21.42,22.04,21.84, 21.90,22.12,21.42,21.48,20.89,22.59,22.42,23.04,22.72,23.20, 23.12,22.67,23.01,23.67,23.90,22.14,23.47,23.02,23.02,22.95, 24.26,22.76,23.10,23.72,24.63,24.05,24.08,24.34,25.17,24.39, 24.63,25.41,24.97,25.30,25.09,25.55,24.60,25.16,24.64,26.60, 25.94,25.46,26.03,26.80,26.14,27.43,26.29,26.28,26.56,27.25, 25.11,26.38,27.77,27.77,27.24,27.34,26.21,27.59,26.51,26.72, 26.93,27.01,27.24,27.59,28.13,27.45,26.57,28.51,28.13,27.10, 27.06,28.69,28.66,29.03,29.29,29.21,27.45,29.79,29.03,29.03, 28.26,29.07,27.76,29.15,29.42,30.37,29.05,28.80,28.26,29.90, 29.48,29.86,29.13,29.60,31.52,29.07,31.90,30.15,31.86,29.50, 30.35,30.17,30.83,32.17,31.15,29.73,31.32,31.33,29.97,30.56, 31.95,31.12,30.92,31.45,31.86,31.55,33.09,31.83,31.72,32.47, 31.58,31.41,31.79,32.52,32.79,32.34,31.98,32.27,31.96,31.78, 33.11,32.13,33.45,32.51,33.57,32.87,33.08,35.18,31.86,33.50, 33.27,35.30,34.70,33.14,33.72,33.44,33.97,33.71,33.57,34.03, 33.56,35.33,35.28,35.06,34.73,34.39,34.87,35.85,35.10,34.70, 33.82,34.83,33.68,34.13,33.80,34.53,34.57,35.10,35.50,34.91, 34.88,34.52,33.44,35.00,35.42,35.68,35.11,36.34,34.40,35.54, 36.57,36.48,36.56,37.63,36.26,35.30,35.22,36.53,37.76,35.10, 36.94,37.41,34.87,36.71,36.68,38.44,37.54,36.61,38.75,37.50, 6.25,7.11,6.37,7.54,7.13,8.03,7.52,8.27,8.58,8.62, 9.28,8.68,10.00,9.86,9.33,9.50,10.38,9.98,12.19,11.09, 10.35,11.10,11.01,11.73,11.87,12.34,11.94,13.11,11.85,12.14, 12.22,13.43,13.02,12.78,13.52,12.86,13.17,13.02,13.79,13.95, 14.44,14.34,14.49,14.87,14.75,14.47,14.55,14.83,15.02,14.67, 14.91,15.46,15.50,16.05,14.92,16.74,15.71,16.07,16.21,16.16, 16.39,16.82,16.82,15.91,16.00,17.40,17.16,16.87,16.77,17.58, 17.02,17.13,17.17,17.35,17.36,17.18,18.59,18.41,18.77,19.18, 18.90,18.22,19.14,18.63,18.80,18.99,19.40,18.57,19.62,19.74, 19.92,19.39,19.40,20.53,19.38,19.93,20.93,21.78,20.95,20.21, 20.40,21.88,20.35,20.74,21.03,21.97,21.77,22.13,20.27,21.13, 21.62,21.96,21.72,22.04,22.46,22.08,22.87,21.55,22.42,22.39, 22.06,22.71,22.68,22.23,22.22,23.82,22.72,22.41,23.05,23.78, 24.47,23.77,23.20,24.02,23.25,24.06,22.87,23.23,23.59,24.83, 23.56,24.45,24.25,26.30,24.18,23.76,23.56,24.38,24.05,24.48, 24.26,25.43,24.60,25.42,25.37,25.31,25.66,24.24,27.13,24.54, 26.33,26.00,26.41,25.73,26.35,26.60,25.52,25.91,27.33,26.80, 25.64,26.64,25.32,26.01,26.17,26.30,26.39,25.72,27.41,27.29, 26.25,26.21,27.32,26.73,27.28,27.86,26.63,28.55,26.45,27.65, 28.84,28.18,28.41,28.15,27.34,27.64,28.89,27.17,28.54,28.24, 27.26,27.00,28.74,28.41,30.74,28.58,28.63,28.84,27.92,27.81, 28.84,29.80,29.48,29.99,29.52,28.99,29.28,30.39,29.06,29.86, 28.84,28.89,30.00,29.94,30.63,30.15,29.61,30.70,29.76,29.35, 30.78,31.10,30.88,30.33,30.13,31.18,31.08,31.01,31.47,32.01, 30.44,31.02,32.17,30.55,31.90,30.37,31.87,30.66,31.87,31.10, 30.91,32.71,32.65,31.94,30.80,30.94,32.31,33.18,32.04,33.09, 33.04,31.68,33.39,31.92,33.83,32.36,31.30,31.29,33.36,33.30, 32.43,31.56,32.95,32.97,33.82,33.48,31.99,33.95,33.55,32.67, 33.78,32.43,34.16,33.18,32.98,34.52,33.68,33.66,34.89,34.54, 5.91,5.87,6.26,6.73,6.49,7.10,6.63,7.49,7.19,8.15, 8.66,8.61,8.41,8.41,7.75,9.09,8.84,9.67,9.17,9.16, 9.17,9.65,10.16,9.35,10.35,9.87,10.84,11.03,10.28,10.67, 11.44,11.56,11.41,12.35,11.95,11.73,12.06,11.74,12.57,12.86, 12.67,11.78,13.01,12.93,12.81,13.55,13.05,13.01,13.99,14.18, 14.61,14.42,13.46,14.59,14.67,15.14,14.35,14.84,15.40,14.37, 14.45,15.39,15.42,14.99,15.25,15.24,14.69,15.22,15.27,16.53, 15.54,16.73,15.75,15.84,16.34,17.70,16.29,16.74,16.99,17.10, 17.59,17.65,17.24,16.74,17.65,17.71,18.74,18.05,17.57,18.74, 17.17,17.61,17.90,17.74,19.15,18.39,18.73,17.41,19.33,18.06, 17.74,18.64,20.29,19.00,17.88,19.35,18.45,19.47,19.57,19.51, 19.25,19.14,20.13,20.68,19.32,20.90,19.84,19.50,21.23,20.11, 20.26,19.76,19.42,20.62,19.87,20.39,21.57,21.59,22.18,21.79, 21.22,21.03,20.56,21.83,21.55,21.09,21.65,22.34,21.57,20.97, 22.06,21.82,22.95,22.29,23.02,22.43,22.47,22.03,23.34,22.80, 22.72,22.34,22.50,24.48,23.29,22.94,23.71,23.05,23.86,23.43, 24.67,23.08,22.64,23.72,24.55,23.89,23.41,24.22,22.97,24.76, 23.22,25.25,23.72,23.74,23.76,23.83,24.07,24.90,23.58,24.80, 25.05,25.41,25.34,25.85,24.84,25.33,24.86,25.11,25.02,24.23, 24.95,24.70,24.61,25.79,25.08,25.32,26.75,26.08,25.22,24.69, 25.90,26.82,24.83,26.66,25.97,24.93,26.51,26.95,25.67,25.36, 26.02,25.85,25.53,27.59,27.09,26.91,26.65,25.88,27.28,27.16, 26.88,26.25,28.65,26.68,26.43,26.79,26.81,26.89,27.58,26.56, 27.57,27.85,27.27,28.86,27.60,27.06,28.40,28.22,28.19,28.76, 29.46,28.26,28.07,27.39,29.37,28.14,28.74,28.09,29.01,28.86, 29.49,28.54,29.02,28.77,27.75,29.09,29.12,29.78,27.47,28.72, 29.34,29.09,29.46,29.15,28.84,30.71,29.01,28.77,28.98,30.17, 30.99,29.88,31.07,29.22,30.00,30.03,30.86,29.80,29.08,29.95, 30.09,31.60,30.15,29.93,30.79,30.65,30.25,31.38,29.98,31.93, 5.12,5.46,6.01,5.13,6.12,5.91,6.47,6.81,6.87,7.27, 7.27,7.21,7.80,7.43,7.80,7.79,7.75,9.40,8.11,9.03, 8.93,9.23,9.05,9.39,9.24,9.54,10.30,10.74,9.85,9.52, 10.51,9.14,10.08,10.75,10.53,10.98,10.66,11.68,11.78,11.76, 10.61,11.76,11.93,11.35,12.40,12.01,11.02,12.47,12.30,12.58, 12.10,11.94,12.63,12.80,12.46,13.09,13.43,13.22,14.13,12.45, 12.03,14.50,13.40,12.97,14.04,13.82,14.89,14.85,13.92,14.30, 14.30,14.65,14.93,14.41,14.03,14.90,15.00,14.15,14.79,16.05, 15.76,15.00,14.82,15.42,14.82,16.27,15.93,16.13,15.38,16.16, 15.50,15.55,15.16,16.93,16.00,15.79,16.37,16.41,17.82,16.59, 16.56,17.64,16.98,17.42,17.79,16.96,18.19,17.13,16.13,17.18, 17.97,18.52,17.40,17.34,18.28,17.85,18.40,18.64,18.63,17.47, 17.33,20.45,18.49,18.14,17.21,18.08,18.74,18.79,18.95,17.55, 19.35,19.98,18.27,19.68,19.55,18.39,19.60,19.82,19.54,19.42, 18.88,19.76,21.17,19.85,20.11,19.50,20.71,19.42,20.61,19.48, 21.39,19.79,20.46,21.13,21.51,20.82,21.36,20.91,21.01,21.10, 21.86,20.83,20.71,21.31,20.77,21.26,21.86,22.65,21.29,21.52, 22.12,22.19,21.51,22.99,21.58,22.33,21.62,22.82,23.08,22.65, 21.71,23.15,22.23,22.05,21.87,23.46,23.32,24.20,22.67,22.94, 22.40,22.16,23.12,23.75,22.56,23.04,23.73,25.11,22.96,24.79, 21.74,22.24,23.55,23.17,22.92,23.14,25.67,24.20,23.91,24.75, 24.80,23.56,25.25,23.50,23.85,22.72,24.72,24.18,23.84,25.62, 24.50,25.70,24.73,24.55,25.15,24.74,24.81,24.32,25.87,25.82, 24.14,25.94,24.31,25.89,25.01,25.13,25.26,24.53,26.18,25.72, 26.31,26.57,25.21,25.22,25.43,26.44,27.34,25.86,26.19,25.83, 27.74,26.54,27.42,25.85,26.83,26.20,25.41,25.61,26.13,26.19, 26.89,25.76,26.60,27.01,26.64,26.59,26.97,27.10,27.28,27.94, 27.41,28.12,25.94,27.18,26.68,26.07,27.55,26.82,27.54,26.10, 27.13,26.74,27.28,27.17,27.67,28.56,26.84,27.89,28.37,27.85, 15.05,15.98,16.71,17.57,17.89,18.79,19.32,19.80,19.22,20.50, 21.36,21.40,22.23,22.60,22.95,24.06,24.96,24.22,25.91,26.07, 25.67,27.46,27.88,26.93,26.86,27.35,27.76,28.60,29.77,29.97, 30.44,30.83,30.15,30.34,32.39,31.85,31.93,32.88,32.33,33.32, 33.91,33.26,33.73,34.49,35.34,34.25,35.05,35.28,35.34,36.04, 35.22,36.63,37.43,38.20,37.27,38.16,38.53,38.12,39.05,38.04, 39.22,39.54,40.25,39.26,40.62,41.29,40.87,40.65,39.16,42.28, 42.40,43.27,42.75,44.31,41.72,42.69,43.10,44.39,44.62,43.54, 43.40,44.01,47.60,44.78,45.15,46.10,46.63,47.65,46.32,46.55, 47.79,47.49,48.27,50.13,47.34,48.25,50.47,47.67,49.36,49.67, 49.95,48.98,50.12,48.27,51.11,50.52,49.59,50.60,50.95,51.68, 50.12,51.21,52.87,51.92,51.68,54.40,53.42,53.28,52.71,54.34, 53.06,55.12,55.50,54.64,55.95,53.50,53.46,55.63,54.20,54.47, 57.41,53.84,56.07,56.82,55.41,56.90,56.64,57.25,56.49,58.29, 57.51,56.23,56.96,60.38,57.65,56.09,58.60,61.03,57.44,59.88, 59.26,60.20,61.95,59.84,60.99,59.34,62.81,62.33,60.73,60.37, 61.38,60.44,59.87,60.92,60.77,62.04,60.76,61.23,61.92,62.62, 64.60,64.27,64.91,63.14,63.30,65.53,62.51,62.60,65.14,64.86, 65.52,65.63,64.40,65.69,65.08,67.54,67.59,67.81,66.50,66.38, 66.56,67.18,65.24,68.10,68.21,65.32,68.87,66.50,68.00,70.79, 71.26,69.53,68.03,68.50,68.44,69.74,67.89,70.99,67.50,68.68, 69.23,70.64,68.18,70.04,71.21,70.22,69.21,69.95,71.31,72.64, 68.25,69.07,75.22,73.57,70.31,73.43,71.89,72.16,73.94,72.97, 74.03,72.85,71.61,73.93,74.52,72.59,76.51,74.42,72.76,74.20, 75.25,76.28,77.76,73.50,75.86,75.70,76.26,72.32,78.20,76.53, 76.68,75.88,75.45,75.67,78.29,76.97,74.84,76.29,77.54,76.86, 74.77,76.52,75.18,78.98,75.21,76.92,81.31,76.63,78.52,81.30, 76.31,78.07,80.17,79.49,80.88,78.39,80.00,76.27,80.22,78.70, 82.71,81.88,79.42,80.32,79.06,78.99,81.98,83.66,82.24,83.05, 14.39,15.87,15.83,17.43,17.05,18.47,18.99,19.16,19.73,20.64, 21.64,21.84,21.44,21.50,22.47,23.16,23.65,23.71,24.61,25.15, 25.49,26.07,26.37,26.86,27.78,27.21,27.98,27.81,28.29,28.43, 29.20,30.59,30.33,30.56,30.06,29.70,31.98,30.86,31.23,32.41, 31.75,33.07,33.98,32.86,33.75,34.47,34.86,35.92,34.79,35.47, 37.23,37.09,37.84,35.11,38.09,35.74,36.61,37.58,37.34,37.94, 37.12,39.53,39.37,39.80,40.88,42.56,41.08,40.79,41.16,41.51, 40.63,42.38,42.59,43.53,41.26,41.55,40.95,43.56,44.52,42.06, 43.73,43.26,43.74,44.54,46.14,44.25,46.32,46.95,46.53,49.24, 45.19,46.13,47.39,45.61,46.58,47.55,48.02,48.50,48.10,48.08, 48.24,48.37,47.06,48.60,48.66,50.23,49.46,50.58,49.28,51.02, 50.05,53.06,50.71,51.14,53.25,50.68,52.35,52.71,53.05,51.19, 50.81,53.66,52.38,53.31,53.14,53.96,53.91,53.87,52.03,55.06, 55.52,52.89,56.55,55.94,54.24,53.45,55.87,56.95,54.42,54.12, 57.81,57.43,59.64,55.91,58.14,58.56,56.46,57.44,59.86,55.95, 57.29,61.32,57.12,57.51,58.82,62.18,58.67,59.37,59.92,57.42, 61.39,59.90,59.98,59.47,62.99,62.39,60.79,61.74,59.10,64.98, 61.07,63.80,62.51,59.18,62.59,62.64,62.01,62.67,59.63,63.06, 63.48,64.32,66.71,66.31,63.30,63.06,63.57,64.08,65.71,64.34, 66.04,66.05,67.17,65.87,63.31,66.12,65.36,68.53,67.39,66.85, 65.83,65.42,68.48,67.51,68.60,70.61,68.76,68.86,67.61,67.80, 70.04,70.24,68.60,72.14,67.32,68.61,68.98,67.44,69.51,68.96, 69.86,69.44,69.37,69.32,72.06,68.87,70.30,70.41,69.82,73.25, 71.42,70.33,71.48,72.53,74.34,70.03,71.47,73.79,72.52,70.06, 73.58,72.26,73.86,72.81,74.29,73.60,74.47,73.30,74.79,72.67, 74.23,77.33,76.22,75.13,75.74,77.89,76.30,75.55,76.85,77.14, 76.37,76.25,74.85,75.16,75.69,77.87,76.52,76.38,76.79,76.70, 79.95,81.29,74.87,78.10,77.90,76.07,78.65,76.02,77.96,79.71, 79.55,76.59,78.38,81.56,77.90,80.89,78.61,81.11,81.43,78.03, 15.00,14.76,15.35,16.59,16.75,17.77,18.52,18.25,19.51,19.20, 20.79,20.75,21.12,21.76,22.77,23.32,22.63,23.64,24.21,25.03, 24.56,24.62,25.76,25.91,27.13,25.84,27.32,26.81,28.19,27.85, 29.04,28.93,29.25,29.09,29.54,30.02,29.46,30.29,30.53,30.99, 32.27,32.38,33.06,31.71,33.48,33.38,33.88,34.22,35.23,33.82, 35.21,35.31,34.74,36.32,36.18,37.26,36.12,35.24,35.03,38.41, 35.74,38.41,37.34,38.45,37.79,38.84,38.71,37.53,41.06,39.06, 41.08,40.77,39.84,41.56,40.22,42.54,42.13,41.73,41.57,42.03, 42.60,42.13,42.69,43.37,44.96,43.91,41.98,43.59,43.89,43.13, 43.91,44.83,46.03,45.22,44.30,45.33,45.23,45.90,46.23,46.76, 46.71,49.32,48.53,48.70,47.63,45.64,48.24,47.40,47.56,48.49, 48.19,48.47,49.95,48.98,50.89,47.65,51.95,48.93,48.64,50.34, 51.40,50.79,52.50,50.46,51.81,51.10,51.78,53.11,51.57,51.88, 53.11,52.82,54.30,53.68,52.32,52.80,53.70,51.33,54.95,53.23, 54.72,55.03,56.40,53.44,55.57,55.25,56.90,55.47,55.05,56.99, 55.77,55.85,57.77,56.56,57.79,56.95,55.34,58.15,56.75,58.78, 57.40,59.95,58.94,57.11,57.90,58.67,60.92,59.57,61.12,58.30, 59.40,61.76,61.11,58.52,60.29,62.38,60.78,61.43,60.09,61.11, 60.30,61.18,62.58,61.42,64.17,62.13,62.94,62.02,62.22,60.27, 64.76,64.62,64.19,63.95,63.63,62.41,64.51,64.79,66.40,64.74, 64.54,64.46,68.64,61.98,66.22,64.07,67.61,66.44,67.79,68.40, 68.11,68.56,67.50,64.90,66.85,66.69,66.93,68.21,66.24,70.81, 68.61,67.19,71.17,69.18,65.94,67.67,71.59,68.70,73.50,67.56, 68.29,67.98,72.29,70.77,69.88,71.12,69.01,70.94,70.06,69.12, 69.69,70.31,68.39,71.62,71.65,72.92,72.60,72.45,72.03,73.21, 74.05,74.55,71.49,71.28,75.30,72.23,74.45,74.52,74.60,71.96, 72.14,73.43,72.88,75.87,70.55,73.93,70.83,72.67,72.88,73.75, 74.30,75.96,74.47,75.00,77.12,77.50,76.90,78.66,74.17,76.42, 74.40,76.90,76.19,77.67,75.32,77.83,77.66,76.31,78.02,76.44, 14.20,14.99,15.17,15.05,15.95,16.47,17.02,18.15,18.09,18.08, 19.28,20.13,20.08,19.83,20.89,21.71,21.73,21.84,22.54,22.66, 23.99,23.37,24.12,24.87,25.12,25.59,25.98,27.50,26.68,26.21, 27.25,27.17,28.32,28.67,28.81,29.53,28.43,29.73,30.63,29.72, 30.24,29.72,31.15,30.11,30.50,32.85,30.77,33.12,32.36,33.62, 34.13,31.84,34.72,34.83,34.74,35.74,33.45,33.84,33.82,34.57, 35.69,36.52,36.92,35.48,36.84,37.81,38.81,39.17,38.00,38.90, 38.57,38.74,38.29,39.29,40.85,38.83,40.23,40.15,41.46,39.46, 40.75,40.16,40.98,40.16,41.10,42.66,41.01,43.00,41.31,42.58, 42.51,43.76,43.04,41.74,45.64,43.58,44.17,45.26,44.87,42.70, 44.82,44.60,44.71,45.18,45.82,46.20,44.74,45.30,46.10,47.02, 47.11,47.13,47.91,48.22,48.74,49.39,48.60,47.52,48.78,47.60, 48.46,47.94,49.72,49.35,49.22,49.71,48.69,49.46,49.36,48.85, 51.44,50.43,51.95,51.89,49.45,52.89,51.42,53.74,52.13,53.04, 51.55,53.81,54.13,53.21,52.40,54.36,51.90,52.19,55.29,52.85, 55.99,54.00,53.50,57.09,54.84,55.81,53.87,54.51,55.39,57.76, 53.43,56.92,56.81,53.27,55.52,56.68,55.92,57.00,56.07,58.27, 57.29,59.26,60.05,56.10,58.99,57.81,58.37,59.09,58.13,57.33, 59.31,56.57,58.27,60.48,58.97,59.84,62.66,60.26,60.95,60.99, 59.74,60.69,58.85,60.44,61.11,62.06,60.02,60.42,61.86,59.78, 61.13,63.89,61.96,62.07,64.53,61.73,61.05,62.98,61.40,63.54, 63.41,65.52,64.64,60.88,65.92,64.47,65.84,65.36,63.22,64.24, 68.37,64.12,66.84,63.05,66.54,65.72,63.19,66.82,66.30,63.73, 65.28,66.07,66.82,66.96,65.91,68.54,67.56,68.74,69.33,69.32, 68.54,66.51,70.22,69.94,67.38,70.20,68.78,71.43,67.51,72.35, 68.22,72.36,70.69,67.99,70.27,69.54,69.05,71.54,69.15,72.33, 68.65,70.73,71.40,70.52,71.63,70.74,73.23,72.40,70.22,68.67, 71.54,72.58,69.20,72.75,70.38,72.46,69.94,72.56,70.27,73.80, 73.09,71.87,76.10,74.93,73.42,71.50,74.03,73.33,73.90,75.29, 13.50,13.87,14.92,14.79,15.64,16.05,16.14,17.22,17.45,18.07, 19.15,18.81,19.00,19.64,19.87,20.30,21.14,21.96,21.51,22.46, 23.00,22.87,22.56,24.63,24.47,25.03,24.07,24.95,25.96,26.34, 25.51,26.23,25.44,26.38,28.47,28.18,27.69,27.90,29.07,28.91, 28.02,27.97,29.10,30.81,29.36,30.48,31.18,29.37,31.94,30.38, 32.26,33.03,33.22,31.82,30.93,32.07,33.16,33.31,33.20,34.55, 33.58,34.89,34.85,35.07,33.75,36.55,36.04,35.72,36.14,36.38, 37.16,37.35,36.69,36.63,38.06,37.88,38.22,37.70,38.17,38.25, 38.86,40.33,38.94,38.50,39.74,39.75,39.54,38.77,38.31,41.01, 41.32,41.39,40.46,42.00,41.12,42.21,42.58,43.01,40.32,41.05, 43.77,42.56,42.72,42.68,45.69,44.74,44.19,44.02,45.56,45.07, 43.69,45.03,44.07,46.00,45.45,45.45,45.47,45.21,46.33,47.71, 45.86,46.55,46.21,44.54,47.05,47.50,46.21,47.17,45.35,48.37, 49.25,48.98,48.57,46.84,48.98,48.96,48.66,47.41,50.35,52.18, 49.06,49.63,51.52,51.03,50.32,50.76,49.77,50.13,51.34,53.59, 50.43,51.95,51.21,51.92,53.10,50.94,52.21,53.22,54.79,51.24, 53.88,54.75,52.28,55.19,55.17,55.23,54.12,53.35,54.09,54.69, 54.21,54.37,54.89,54.30,56.18,55.11,57.85,57.14,55.21,56.86, 54.78,57.13,57.29,57.20,56.85,56.69,55.17,57.92,56.06,57.77, 58.60,59.08,57.43,57.01,59.79,54.38,55.87,58.12,58.86,59.37, 60.14,60.87,59.84,58.39,58.55,60.16,57.69,61.30,59.97,58.09, 59.96,59.24,58.88,59.81,61.06,57.56,60.43,60.82,60.69,61.31, 60.38,62.41,61.39,60.34,61.00,61.02,62.04,62.61,63.95,58.98, 63.06,64.80,62.20,63.90,66.41,66.22,63.53,63.53,64.21,65.92, 65.35,66.14,63.01,64.36,64.07,65.87,66.07,65.76,63.80,66.23, 65.54,66.80,65.62,63.17,66.97,65.12,67.10,65.41,67.01,65.00, 69.01,69.54,67.09,69.14,67.61,63.80,67.23,68.97,67.09,68.06, 70.94,67.07,69.81,69.98,67.57,67.23,65.55,66.72,70.39,68.65, 67.37,68.68,68.28,75.61,69.01,70.81,70.02,69.26,69.83,67.85, 13.18,12.89,13.28,14.74,13.84,15.26,15.50,16.32,15.78,17.08, 16.51,18.64,18.58,19.08,18.65,19.30,19.22,19.59,20.32,21.07, 22.48,20.85,21.66,23.02,22.78,22.32,23.83,23.51,23.67,23.98, 24.29,24.77,24.81,25.28,25.66,26.49,25.72,26.35,26.56,27.07, 26.49,26.56,27.88,28.89,29.35,29.43,30.27,29.01,28.36,29.64, 29.97,30.12,30.33,30.72,30.21,30.09,32.45,30.51,31.92,31.39, 31.71,31.85,33.36,32.95,32.20,32.89,32.87,33.26,33.76,32.96, 34.40,34.71,35.23,36.62,35.49,35.37,35.26,36.83,36.45,35.94, 35.66,36.93,37.32,37.82,37.53,37.98,36.93,37.59,39.07,37.73, 38.51,38.46,38.88,40.42,40.24,39.97,36.82,37.89,39.28,41.07, 40.11,40.02,41.54,40.16,40.74,39.85,41.69,41.98,40.22,42.06, 41.83,42.55,41.57,40.11,41.23,42.13,42.42,44.07,43.85,43.78, 43.99,42.82,45.17,43.81,44.06,45.12,45.43,45.37,46.93,46.49, 45.86,44.72,45.00,44.63,45.94,47.50,46.13,47.67,46.83,46.16, 48.31,47.10,46.54,48.83,46.48,49.13,47.27,49.87,49.86,49.50, 48.12,49.59,50.54,49.04,48.27,48.68,48.06,49.52,49.79,48.96, 49.36,49.32,49.90,48.83,49.46,51.62,50.28,51.33,52.78,51.07, 51.57,51.29,53.08,53.27,50.55,52.09,50.35,51.48,52.47,53.43, 54.07,51.70,51.58,54.74,53.50,52.98,54.91,53.25,54.01,52.83, 54.32,54.94,56.11,54.00,54.55,55.04,53.39,56.19,54.83,56.65, 55.32,55.36,57.00,55.34,57.65,55.56,56.00,57.53,58.46,55.98, 58.02,57.27,57.00,57.45,55.45,57.58,58.02,58.14,58.51,56.16, 56.83,59.45,60.12,57.44,58.80,56.42,59.29,58.40,61.22,58.32, 61.03,59.45,58.74,58.17,60.20,58.63,60.44,61.58,59.57,60.24, 61.25,60.33,62.42,63.11,63.10,59.98,62.27,63.01,60.52,60.77, 61.67,62.14,60.98,62.03,61.56,63.77,62.20,63.21,62.51,64.44, 61.80,61.94,64.40,63.16,62.45,65.01,63.35,61.82,63.60,65.68, 62.24,65.87,64.79,64.19,61.77,63.48,61.47,63.35,66.55,66.17, 63.88,65.68,65.57,65.96,66.75,64.81,67.24,66.62,65.87,65.86, 11.22,11.79,12.96,12.57,13.47,14.32,14.67,14.92,15.31,16.02, 16.44,16.25,16.70,18.23,17.64,18.75,18.17,18.61,19.49,19.35, 20.69,19.52,19.63,21.26,21.73,21.71,21.80,21.17,21.78,22.87, 22.96,23.26,24.79,24.50,25.13,22.59,23.79,24.57,24.98,25.77, 25.32,25.41,27.28,27.51,27.31,26.69,26.96,26.43,28.26,26.93, 27.92,27.52,28.74,26.79,29.14,29.19,29.44,28.06,28.98,29.52, 27.97,31.00,28.53,31.44,31.44,31.16,32.51,32.03,31.80,31.88, 32.79,31.00,32.40,33.38,31.75,32.70,33.71,34.92,32.67,35.49, 34.50,35.40,33.76,33.25,34.53,34.77,33.34,35.42,36.44,34.97, 35.25,36.35,35.86,36.36,36.68,38.79,36.53,36.15,38.10,37.10, 36.51,38.24,36.67,37.65,37.36,38.57,39.25,40.30,39.55,38.65, 38.91,38.69,38.73,39.48,40.20,40.34,40.13,41.39,41.28,40.81, 41.46,42.18,41.45,40.58,42.84,43.22,40.94,41.84,42.11,41.93, 42.29,43.74,42.55,42.89,43.39,45.70,42.45,43.49,44.76,43.29, 41.82,43.43,44.45,44.39,43.44,44.08,43.13,46.59,46.99,46.70, 45.80,46.99,47.37,45.57,46.71,46.86,48.60,45.78,47.36,48.91, 46.87,46.92,47.70,48.91,46.57,47.87,46.32,46.71,48.87,49.46, 47.08,48.95,47.51,48.06,49.97,50.10,49.73,48.99,49.47,49.00, 51.12,49.00,50.12,48.28,50.21,47.92,48.72,50.30,52.17,50.55, 51.58,50.07,51.39,52.85,53.15,51.49,50.04,52.41,51.36,50.49, 51.68,52.92,51.58,52.22,54.17,52.58,51.61,54.90,53.80,56.70, 55.48,55.04,53.53,55.73,53.87,53.19,55.70,54.02,55.34,53.59, 54.82,52.83,55.06,55.34,56.52,56.21,56.14,56.14,57.84,53.70, 53.76,56.44,54.69,55.68,56.35,57.46,56.78,56.11,55.88,54.85, 57.96,55.67,56.56,53.80,57.24,59.60,55.46,57.82,58.79,57.82, 53.60,59.95,58.23,57.83,59.06,61.19,61.83,58.76,55.07,59.38, 57.54,57.71,60.54,60.98,59.62,58.13,58.02,59.52,63.58,62.53, 58.73,60.89,59.04,61.36,58.33,60.63,60.71,61.80,58.31,61.46, 62.09,62.81,61.55,59.04,61.55,62.95,62.61,61.25,63.83,63.36, 10.90,11.32,12.03,12.51,13.43,13.70,13.84,13.69,14.36,15.45, 16.15,16.06,15.87,16.35,16.78,17.35,16.82,17.74,17.58,17.52, 17.87,18.00,19.46,19.62,19.85,21.69,19.48,20.51,21.06,21.39, 20.54,20.89,22.30,21.88,21.66,22.29,22.96,23.47,24.08,24.61, 24.23,24.57,23.81,25.35,24.87,25.61,24.96,25.62,26.47,25.35, 26.50,26.13,25.26,27.68,27.89,26.80,27.12,28.42,27.94,27.99, 28.45,27.91,29.73,28.02,28.69,29.62,31.21,30.25,30.57,30.94, 30.34,29.28,29.82,30.48,31.54,30.28,31.22,30.70,31.09,30.46, 31.30,30.85,32.33,34.60,34.21,32.96,32.35,33.33,33.12,32.79, 34.77,34.20,33.64,33.42,35.58,34.55,36.28,35.99,35.22,35.15, 35.30,35.57,35.37,36.22,37.13,34.72,36.92,37.27,36.43,37.72, 37.40,37.27,36.50,37.21,36.36,36.74,37.99,36.87,38.17,39.54, 37.59,39.58,37.88,37.01,39.06,38.84,39.35,39.62,39.59,38.07, 40.38,39.12,39.92,41.37,41.27,41.24,40.53,40.00,40.46,40.31, 39.85,41.50,40.76,40.95,43.45,41.83,40.93,41.74,41.72,43.21, 42.97,43.61,43.24,42.69,43.11,44.65,42.30,43.69,43.72,43.14, 44.76,42.00,42.86,43.22,44.69,44.66,45.62,44.12,45.54,44.45, 44.09,46.22,45.16,45.20,45.20,45.08,44.00,46.92,45.72,45.44, 46.04,46.84,46.15,46.63,44.96,46.01,47.44,48.49,46.38,46.29, 47.48,49.42,49.70,48.90,45.82,46.68,48.20,49.02,46.65,45.19, 50.10,48.68,47.52,48.87,51.42,47.78,49.63,48.82,49.39,50.87, 48.45,51.06,49.22,49.37,49.96,50.02,51.63,49.54,50.74,50.19, 51.10,52.41,49.42,51.63,52.53,53.69,49.91,51.34,54.20,52.83, 51.60,51.99,51.61,49.73,52.24,51.65,52.42,51.33,54.81,54.62, 52.81,52.88,54.76,51.51,55.63,53.58,52.47,55.96,52.98,54.32, 54.16,54.24,55.89,53.70,55.56,55.76,54.71,54.92,53.08,56.11, 55.22,53.82,55.25,56.38,57.59,55.21,55.85,55.95,56.30,55.32, 53.15,57.07,55.65,56.60,55.39,57.64,59.12,57.04,55.62,55.07, 58.46,60.17,57.46,57.46,57.62,58.70,59.01,57.80,58.76,57.36, 9.63,9.82,10.52,11.37,11.57,12.24,12.58,13.39,12.87,14.10, 14.08,15.11,14.62,15.45,15.32,15.55,15.85,16.59,16.60,16.37, 17.73,17.57,17.55,17.62,18.41,18.65,19.98,18.81,19.49,18.60, 20.44,19.26,20.29,21.24,20.49,20.79,21.50,22.22,22.47,22.79, 21.79,22.21,22.57,23.12,23.23,23.15,23.22,24.78,23.19,24.65, 23.52,24.83,25.11,25.12,24.48,25.05,25.08,24.31,25.75,24.69, 26.08,26.49,26.20,27.23,27.10,26.47,27.00,27.21,27.57,27.71, 29.02,27.33,28.82,29.43,29.38,28.22,29.06,28.16,29.28,29.21, 29.82,29.56,30.43,30.23,30.62,31.72,29.80,30.81,31.29,30.94, 31.83,30.58,30.95,33.11,32.64,33.47,32.03,31.61,33.26,33.22, 32.76,34.63,33.96,33.02,33.48,33.37,34.19,35.11,32.05,33.75, 33.28,33.49,36.89,34.60,34.43,35.32,33.80,34.28,35.74,34.86, 34.96,36.43,36.47,35.10,37.01,35.95,36.57,35.65,36.74,35.43, 36.47,37.70,35.71,37.57,37.99,37.02,37.16,38.50,38.35,37.14, 38.00,37.11,37.87,39.28,39.27,38.34,39.24,40.17,38.66,39.62, 40.03,40.07,39.94,38.22,40.08,40.93,41.74,42.21,40.49,42.72, 41.69,40.95,42.55,42.06,40.31,40.40,40.24,41.35,40.39,40.80, 40.80,41.33,42.09,44.11,40.67,42.25,42.06,42.45,42.33,43.35, 43.52,42.93,42.98,44.46,42.15,43.62,42.71,43.74,43.67,42.86, 43.83,44.60,44.00,45.47,45.36,45.26,45.59,45.31,45.46,45.57, 46.98,43.67,44.91,46.93,46.22,43.33,46.02,45.37,45.47,47.38, 45.77,47.03,46.07,47.07,45.30,48.15,47.15,46.26,46.89,46.97, 48.09,47.70,49.48,48.16,48.94,46.58,47.71,49.35,48.37,49.63, 48.26,49.12,48.32,47.47,47.46,47.77,49.04,48.32,49.51,47.12, 50.78,48.30,50.17,47.83,47.73,49.89,51.24,48.09,50.79,48.64, 51.65,50.70,50.20,50.12,51.25,48.72,51.92,50.56,51.36,51.74, 53.82,54.80,49.47,51.29,53.10,51.53,51.02,52.83,52.89,51.65, 52.67,53.14,52.54,51.61,53.20,53.29,50.51,52.72,52.86,54.82, 53.59,51.74,53.44,51.79,53.54,52.19,53.25,56.70,53.67,54.33, 8.86,10.07,9.96,11.08,10.64,11.15,11.29,11.40,12.20,12.56, 12.57,13.48,13.54,13.90,14.69,14.95,15.21,14.78,15.32,15.70, 16.70,15.84,16.27,16.86,16.52,16.09,16.58,18.05,17.72,17.51, 17.61,18.28,18.89,18.15,19.20,19.07,20.03,20.09,20.40,20.04, 20.62,21.20,21.26,21.20,22.34,21.95,20.99,21.08,22.18,21.10, 23.24,22.29,23.46,22.86,23.34,23.26,22.47,23.96,23.35,23.85, 22.58,23.99,24.50,24.87,24.86,25.71,26.12,26.35,24.94,26.86, 25.47,25.75,26.16,25.85,25.90,26.43,25.91,26.28,26.92,26.35, 27.10,28.13,27.50,28.32,28.16,27.88,27.59,27.94,28.75,29.62, 28.79,28.63,26.43,29.58,29.34,29.66,29.35,30.94,29.08,29.29, 30.76,30.11,31.10,30.81,30.93,29.83,30.90,32.86,31.58,31.40, 30.89,31.91,31.05,32.15,32.46,31.43,32.78,31.17,34.05,34.93, 31.70,34.01,33.66,32.31,33.49,33.17,32.95,34.74,34.39,33.09, 33.04,33.88,34.38,34.12,35.41,35.01,35.15,34.90,36.03,34.67, 36.68,35.74,35.58,35.39,36.56,36.79,35.50,35.15,37.90,36.50, 35.22,36.68,37.22,35.87,36.00,36.14,36.94,37.09,37.26,38.03, 38.12,37.70,37.54,38.58,40.57,37.49,38.08,39.11,38.14,39.31, 37.50,38.38,39.02,37.78,39.51,40.09,39.11,39.05,40.33,39.97, 38.64,38.89,38.73,40.91,40.97,39.09,40.35,40.21,40.79,39.86, 40.32,42.22,40.48,39.60,39.93,39.99,40.81,40.43,40.87,40.60, 42.06,43.27,43.89,40.86,41.33,41.79,42.50,45.21,42.90,41.98, 42.24,44.78,43.01,41.64,40.68,41.40,43.74,43.02,43.41,42.06, 43.90,43.82,44.56,42.97,44.11,44.03,43.77,45.82,45.39,43.75, 44.42,44.23,45.45,44.29,44.22,44.11,45.57,43.97,46.47,46.36, 45.61,46.43,44.95,45.17,45.59,45.63,46.68,43.57,44.59,47.29, 46.71,46.58,47.89,45.84,46.35,46.14,49.11,47.84,46.49,47.12, 48.42,46.66,47.52,49.49,48.96,46.99,50.02,47.17,46.17,47.24, 46.83,46.98,47.46,48.73,47.66,48.85,49.90,49.76,50.32,47.08, 48.44,48.41,48.76,48.48,48.84,48.63,50.59,50.64,49.52,50.07, 8.48,9.15,9.40,10.24,10.34,10.36,10.65,11.68,11.41,12.05, 12.32,11.61,12.95,13.46,13.55,12.59,14.43,15.07,14.70,14.44, 14.71,14.77,14.96,15.82,15.92,16.12,15.55,17.25,16.39,16.01, 16.20,15.91,17.62,17.23,17.19,19.02,17.00,18.53,18.61,18.11, 18.65,19.90,19.32,19.68,20.04,20.93,19.98,19.56,19.13,20.32, 19.75,21.29,20.68,21.19,20.76,22.25,21.12,21.68,21.06,21.29, 21.92,23.17,22.02,22.67,22.32,23.08,23.22,24.23,23.89,24.10, 23.88,24.24,25.76,23.91,23.22,23.35,24.72,24.66,24.15,25.98, 25.52,26.36,25.25,25.65,25.85,26.42,25.93,25.66,26.92,27.21, 25.53,26.52,27.58,26.98,27.24,28.22,27.68,27.80,28.48,28.75, 28.01,29.43,28.99,28.89,30.00,27.79,28.58,29.59,28.76,29.15, 27.74,28.17,29.26,29.34,28.02,29.87,29.11,31.36,30.79,30.99, 30.24,30.84,30.76,30.31,29.53,31.67,31.38,28.97,30.97,31.24, 30.63,30.27,32.88,32.08,31.49,32.72,31.45,32.79,32.33,31.88, 32.81,33.46,33.36,34.58,34.65,32.53,34.07,33.55,33.17,33.71, 33.33,33.18,33.49,32.98,34.17,33.99,33.91,33.93,34.78,33.93, 34.40,34.87,35.05,33.97,35.06,35.86,34.32,36.02,36.12,35.68, 35.07,35.41,35.54,36.26,35.13,36.36,35.03,36.40,35.39,37.25, 36.33,37.13,36.47,37.73,36.77,37.56,37.02,38.21,37.86,36.64, 38.48,37.52,38.78,38.21,36.81,38.69,37.88,38.67,37.22,36.80, 38.59,40.29,38.50,38.02,38.27,39.44,37.81,39.08,39.34,39.25, 39.58,41.31,39.16,40.07,40.12,38.28,40.03,38.78,38.71,40.44, 38.70,41.61,40.94,40.96,40.58,40.98,39.97,40.68,40.46,40.76, 40.83,40.63,41.93,43.14,41.11,40.91,43.07,43.66,42.85,41.54, 42.10,42.02,42.60,43.60,43.47,43.24,44.10,41.91,41.63,45.50, 42.62,42.48,43.58,42.14,43.77,44.01,44.20,43.15,45.46,42.76, 46.64,41.08,43.23,43.24,45.62,45.60,42.62,45.03,43.80,43.17, 44.05,45.35,44.80,44.83,46.74,44.65,44.45,44.33,42.50,46.36, 45.88,44.59,47.07,44.62,45.54,46.38,46.81,46.66,45.62,46.48, 8.57,7.86,8.67,8.59,9.78,10.15,10.08,9.76,9.97,11.17, 11.19,11.17,11.68,12.26,12.33,12.12,12.17,13.44,13.07,13.96, 12.24,13.21,14.12,13.82,15.42,14.67,13.84,15.00,15.20,15.50, 15.51,15.82,16.09,16.14,15.99,16.37,16.89,16.31,15.94,17.44, 17.20,16.83,17.95,17.12,17.74,17.45,18.54,18.96,19.39,18.88, 19.31,19.11,18.38,20.21,19.20,20.14,19.40,20.49,20.35,20.12, 20.91,20.55,20.90,20.45,21.78,20.92,20.49,21.73,20.85,21.99, 20.94,22.83,22.73,22.29,22.62,22.55,22.45,23.38,21.31,23.22, 23.32,23.00,24.53,23.82,23.29,24.02,22.87,23.75,24.22,24.43, 23.70,25.08,24.07,24.61,25.12,27.21,24.74,25.16,25.64,24.91, 25.49,26.36,25.33,25.59,25.23,26.08,26.76,26.15,26.02,27.83, 26.56,26.08,26.38,27.24,27.59,27.19,27.77,26.66,26.89,27.34, 28.54,28.57,28.33,28.30,28.58,28.55,27.67,29.39,29.11,29.82, 27.89,29.29,28.19,29.17,29.50,30.08,28.88,28.56,29.22,30.56, 31.16,30.27,29.65,29.41,29.27,31.43,30.65,31.67,30.79,28.52, 31.10,33.16,31.20,30.12,31.90,30.48,31.75,30.68,33.10,32.32, 30.95,33.17,31.53,30.51,32.47,30.50,32.34,32.31,34.33,31.59, 32.91,33.74,32.17,31.67,32.65,34.25,33.57,33.98,34.39,32.86, 34.23,33.85,33.18,34.12,33.64,35.75,34.23,34.23,34.68,34.07, 35.34,35.60,34.13,37.20,34.01,34.73,33.92,35.61,34.84,35.29, 35.95,37.06,35.56,36.14,36.23,35.10,36.38,35.95,36.80,36.47, 36.04,38.18,35.37,36.89,36.09,38.21,36.82,37.79,36.20,35.02, 37.45,37.64,35.67,37.53,39.12,37.32,37.90,37.29,36.50,37.93, 37.56,37.22,38.56,36.94,38.35,37.54,38.36,38.02,38.92,38.17, 38.45,38.91,40.24,39.69,36.90,38.80,38.91,37.34,39.20,39.47, 40.53,40.43,40.29,40.33,41.85,40.21,38.86,39.63,39.34,39.00, 40.34,40.09,40.55,39.12,40.33,40.25,39.54,40.91,40.60,40.05, 40.62,40.70,41.36,40.32,41.58,39.42,41.73,41.34,41.73,42.50, 42.28,42.94,42.71,39.82,40.05,43.52,40.61,42.17,42.92,42.29, 7.10,7.23,7.21,7.99,7.62,8.37,9.73,9.24,9.83,9.65, 10.36,10.28,10.96,10.70,11.64,11.14,12.46,12.45,11.98,11.70, 12.53,11.97,12.58,13.85,13.41,13.33,14.10,13.67,13.33,13.38, 14.85,14.37,13.90,15.44,15.34,14.69,14.55,15.02,15.49,15.49, 16.36,16.27,16.09,15.33,15.86,16.20,18.04,16.80,16.97,17.56, 16.52,17.54,17.75,18.58,17.30,17.09,18.75,18.19,19.13,19.22, 18.43,19.11,18.68,19.19,18.42,19.73,18.74,18.54,18.97,18.77, 19.62,20.66,21.27,20.17,21.03,20.91,20.84,21.98,21.16,20.89, 21.43,21.46,21.40,21.95,21.72,20.65,21.38,22.25,21.98,21.60, 22.06,22.13,22.76,23.07,22.84,23.01,23.85,22.71,23.04,22.76, 23.27,23.56,22.79,24.18,23.90,24.07,23.44,23.75,25.11,24.70, 24.43,24.86,24.99,26.43,24.63,25.19,24.75,25.79,25.76,25.95, 25.93,26.55,24.84,26.76,26.26,26.60,27.34,27.36,26.46,26.95, 25.90,28.23,27.78,27.19,27.67,26.79,26.16,26.97,27.56,27.23, 28.63,26.91,27.47,28.61,29.34,28.06,28.86,28.63,27.49,26.65, 27.37,29.43,27.60,29.75,28.98,29.07,28.50,27.66,30.05,28.64, 29.77,30.02,31.21,29.56,29.62,30.48,29.25,29.75,32.34,31.14, 30.05,29.95,30.78,30.69,30.39,29.84,29.87,29.87,30.43,31.32, 31.94,28.95,30.36,31.37,31.40,30.37,31.45,31.80,31.89,30.92, 33.63,32.12,32.81,32.17,31.73,31.82,32.01,32.13,33.96,33.44, 33.08,33.00,31.74,33.52,32.25,32.97,33.53,33.59,34.11,34.37, 33.18,33.80,33.37,33.05,33.37,33.02,33.58,35.20,33.97,33.04, 33.71,34.40,34.34,35.26,34.34,35.33,33.40,34.31,35.35,33.07, 33.94,33.38,34.64,34.31,36.10,34.65,35.17,35.19,34.38,34.21, 35.75,35.55,35.06,34.66,35.12,35.32,36.59,36.37,36.48,35.89, 35.70,35.67,36.85,36.73,37.42,36.81,35.83,36.68,37.21,36.82, 36.89,36.63,36.76,37.92,36.78,36.36,38.29,35.88,38.97,37.27, 37.63,38.28,37.94,38.83,36.89,38.23,37.85,38.09,38.63,37.57, 37.49,40.16,37.71,38.43,39.16,39.11,39.13,39.64,36.70,40.13, 6.63,7.19,7.56,7.33,7.35,7.98,7.63,7.82,8.29,9.29, 8.75,9.92,9.07,9.83,10.71,10.91,9.44,10.74,11.17,10.55, 11.74,12.14,11.62,12.10,11.91,13.07,11.77,12.17,12.78,12.18, 11.96,13.41,13.77,13.78,13.59,13.17,14.00,14.48,14.23,14.46, 14.68,15.07,14.52,14.72,15.28,16.06,15.21,15.00,15.86,15.99, 15.85,15.61,16.08,17.01,16.34,16.89,16.67,17.07,17.05,17.21, 17.79,17.52,17.84,16.82,17.72,17.53,17.19,18.46,17.48,18.86, 17.34,18.85,18.95,18.65,18.40,19.49,19.89,19.75,19.16,19.49, 19.89,19.34,19.24,19.82,20.16,20.07,19.27,19.41,20.40,21.42, 21.25,20.94,21.00,21.90,20.42,20.53,21.83,20.93,21.43,22.74, 21.66,21.54,21.66,22.06,21.90,22.38,21.69,22.54,22.11,22.33, 22.21,22.49,22.95,21.42,21.63,23.25,23.99,24.91,22.89,23.54, 23.34,22.36,23.03,23.21,23.30,23.23,24.68,24.80,23.65,24.13, 23.95,24.65,22.98,25.21,24.73,24.68,24.65,24.62,26.06,26.10, 24.20,24.84,23.91,25.98,25.82,24.56,25.47,26.10,26.03,25.90, 26.80,27.23,26.30,26.36,26.57,26.35,25.21,26.43,26.19,26.03, 27.31,27.17,27.03,26.67,27.01,27.66,28.22,27.89,26.82,28.43, 26.68,26.81,27.94,27.35,27.73,28.40,27.92,27.22,27.91,27.99, 28.99,27.18,29.29,27.94,28.57,28.45,28.64,28.88,28.83,29.03, 28.43,30.15,29.63,28.14,29.24,27.73,28.28,30.64,29.93,29.63, 29.81,30.55,29.54,30.40,29.75,29.93,30.19,30.85,30.65,29.89, 29.41,28.88,31.80,31.40,29.67,31.62,31.09,31.61,31.28,30.46, 30.50,31.43,30.62,30.69,31.98,30.95,30.93,30.31,31.33,33.48, 31.48,31.32,32.78,33.18,33.26,32.96,31.33,32.86,31.62,32.16, 31.26,31.65,31.33,32.10,31.73,32.82,30.65,33.59,33.55,32.68, 32.38,32.58,33.66,32.70,33.23,34.16,32.69,34.04,30.99,33.24, 31.58,33.75,33.52,35.43,33.22,34.43,33.59,33.33,33.53,34.86, 34.11,32.65,34.81,34.63,33.06,34.12,32.10,32.82,32.77,33.61, 33.52,32.95,34.99,35.43,33.25,35.20,35.26,35.29,36.63,35.68, 5.95,6.87,6.73,6.88,7.30,6.67,7.50,7.55,7.92,8.29, 8.10,8.45,8.81,8.70,9.27,9.52,8.84,10.31,10.07,9.63, 9.44,10.20,11.55,11.26,10.78,10.52,10.92,11.87,12.10,11.00, 10.99,11.13,12.68,12.17,12.39,12.79,13.35,12.18,12.54,12.48, 13.50,14.51,13.67,13.81,13.68,13.95,13.99,14.38,14.85,14.07, 14.39,14.67,14.86,14.13,14.27,15.37,14.93,14.36,15.74,16.26, 15.71,16.34,15.98,15.49,16.70,16.09,16.87,16.00,17.18,17.07, 17.49,15.27,16.84,16.98,17.51,17.14,17.23,17.80,16.76,18.18, 17.48,17.57,17.85,17.06,18.57,17.85,18.24,18.79,19.08,19.05, 18.14,18.87,19.87,19.61,18.38,19.13,19.03,18.83,19.60,19.00, 19.82,18.94,20.61,20.65,20.98,20.32,20.34,20.36,20.43,18.94, 19.60,19.91,21.11,20.75,20.90,20.67,21.50,22.25,21.82,21.63, 21.48,20.39,22.04,21.11,20.59,22.93,20.83,22.09,21.92,22.28, 21.89,22.39,22.01,22.52,22.41,22.47,23.26,22.39,22.64,23.01, 23.12,22.72,22.90,22.36,24.03,23.28,23.68,22.77,23.23,23.01, 23.89,23.96,23.89,24.52,23.93,23.67,23.16,24.71,24.55,23.50, 23.54,24.44,24.41,24.59,25.09,23.87,24.54,24.47,24.32,26.18, 24.59,24.48,25.32,24.30,25.36,25.28,25.75,24.53,25.37,24.82, 25.23,25.50,26.95,25.93,26.77,26.44,27.79,24.90,25.66,26.19, 25.58,26.02,26.27,26.91,26.47,27.77,26.54,26.08,25.84,28.47, 27.78,27.00,26.81,26.03,28.55,27.13,26.56,26.64,27.99,27.92, 28.50,28.24,28.88,28.35,27.98,29.95,26.42,28.84,28.00,27.77, 27.30,27.70,28.44,27.64,28.96,28.75,27.79,29.31,29.96,30.10, 27.39,29.37,29.43,29.15,28.98,28.94,29.55,29.21,30.82,27.40, 29.62,28.81,30.69,30.54,29.72,29.89,30.68,29.53,30.66,30.56, 29.85,29.46,29.25,30.40,29.94,29.52,29.36,29.93,30.64,29.88, 30.10,29.39,30.88,31.01,31.74,30.27,30.70,32.02,30.18,31.38, 30.65,29.78,31.29,30.76,30.78,30.97,32.28,31.38,31.95,32.74, 31.47,33.10,31.81,32.26,32.00,32.93,32.52,30.77,32.33,33.63, 16.48,16.48,17.86,18.04,18.79,19.50,19.74,21.08,20.65,21.36, 22.00,22.77,23.65,23.73,24.51,24.96,25.37,26.04,26.34,26.63, 25.91,28.00,28.13,28.14,29.60,29.41,29.26,29.89,30.48,30.33, 31.70,30.98,30.73,33.08,33.96,33.69,32.78,32.59,32.82,34.10, 34.52,35.76,35.73,36.18,36.47,36.43,38.18,35.91,37.24,36.63, 37.88,37.44,39.11,39.29,39.22,39.62,40.77,39.64,39.68,41.19, 40.15,43.57,41.35,41.45,41.70,42.31,42.91,43.35,41.57,44.23, 45.26,45.56,45.82,44.41,43.42,45.77,45.82,43.49,46.16,47.64, 45.26,47.20,45.90,46.25,46.40,46.42,46.58,47.55,45.88,50.18, 49.74,47.87,49.42,50.11,49.90,50.69,51.45,51.18,48.11,50.47, 50.38,49.95,49.87,52.29,51.34,52.93,51.05,51.28,54.43,53.54, 52.36,54.51,54.51,55.80,55.46,56.75,54.36,54.35,55.20,53.34, 53.90,54.75,53.03,55.75,55.34,56.33,56.03,57.31,57.62,57.95, 57.03,56.61,55.82,58.93,58.45,58.20,60.50,58.29,60.95,59.91, 57.80,58.33,59.77,60.02,59.82,62.09,60.59,63.05,59.15,60.69, 60.50,62.42,62.58,60.46,63.25,62.08,62.04,62.99,64.64,64.44, 63.08,63.54,64.17,62.18,63.32,62.92,66.93,63.71,63.54,63.45, 66.77,66.56,64.30,65.45,65.04,66.32,65.85,66.84,66.89,69.66, 67.22,68.64,68.70,66.18,68.32,68.60,67.96,68.61,66.47,68.39, 69.74,69.78,67.76,70.11,70.38,72.37,65.73,66.19,70.40,68.66, 70.16,72.22,71.71,70.63,72.08,69.25,72.89,72.07,73.32,70.05, 72.80,72.86,69.80,73.79,70.97,75.68,73.04,72.36,74.33,73.44, 74.94,73.70,72.43,72.44,75.33,75.61,77.05,74.60,72.92,74.52, 76.60,76.01,76.41,74.35,76.83,75.31,75.37,74.52,76.77,74.84, 77.01,80.26,75.49,76.93,78.50,76.46,79.10,77.28,77.19,75.81, 79.55,79.24,76.18,76.63,78.17,75.32,78.05,79.65,79.39,80.11, 78.45,79.14,81.73,81.27,80.21,82.81,79.79,75.55,81.81,83.48, 79.89,80.84,84.86,82.06,83.55,80.21,81.43,80.57,81.97,85.07, 83.66,84.56,83.90,83.92,86.10,83.77,84.31,81.66,81.88,80.81, 15.42,16.44,15.87,16.88,18.18,18.92,19.41,20.66,20.36,21.59, 21.52,22.62,22.17,24.19,23.62,24.86,24.92,25.50,26.63,26.17, 26.23,27.54,27.83,27.70,28.53,27.71,29.43,30.10,29.97,32.02, 30.05,30.59,33.44,31.90,32.05,32.78,31.79,32.72,32.30,34.94, 34.04,33.19,36.34,35.74,34.77,36.42,36.25,37.27,38.00,37.67, 37.80,37.31,38.28,38.41,38.57,37.74,39.14,40.18,40.09,38.62, 40.51,40.70,40.56,39.91,41.59,42.36,41.29,42.90,42.09,42.45, 43.15,43.31,41.23,43.53,45.41,43.06,44.95,46.01,44.08,46.71, 47.34,44.22,46.30,45.70,45.56,47.14,47.34,46.95,49.31,48.11, 46.93,49.46,49.29,49.05,47.17,49.33,48.84,49.19,52.34,49.43, 50.53,50.60,53.19,51.94,51.62,52.51,51.50,49.55,51.86,52.96, 53.89,51.85,53.01,53.65,52.91,53.89,54.45,53.87,54.48,55.76, 56.38,54.40,55.17,54.62,56.32,53.80,54.64,55.83,58.43,56.59, 56.76,59.04,55.96,58.91,58.27,58.52,56.43,58.14,57.90,59.80, 59.17,60.99,58.87,57.01,58.89,59.45,60.15,62.16,57.66,59.96, 61.88,62.54,58.92,62.73,61.70,61.98,62.15,63.44,63.21,62.44, 61.89,62.85,63.51,65.30,62.62,66.58,61.78,63.12,62.94,64.35, 64.41,64.19,64.80,64.32,62.97,64.79,68.39,65.07,64.29,65.25, 64.22,68.30,68.57,67.96,68.17,66.43,70.90,65.64,64.91,68.79, 67.06,70.78,70.22,64.93,68.89,70.63,71.62,70.41,68.62,70.58, 68.98,68.14,69.75,70.99,70.77,71.09,70.51,70.63,72.33,71.30, 71.24,69.73,71.76,73.22,72.16,69.61,71.71,71.39,71.78,71.28, 73.33,72.03,70.38,71.84,74.66,74.30,75.18,78.16,71.09,73.89, 73.37,73.96,77.09,73.11,76.35,76.82,74.84,75.83,78.71,76.71, 77.08,77.30,77.53,73.87,73.74,75.10,76.97,72.55,79.60,75.84, 81.14,76.62,74.86,77.42,76.73,76.08,78.85,77.90,79.02,77.75, 80.21,79.60,82.32,78.51,81.62,80.19,80.95,83.64,80.15,80.05, 80.48,79.04,79.47,83.67,83.46,82.41,80.84,78.47,83.62,80.89, 82.11,83.54,82.54,82.92,82.19,81.80,81.34,82.70,84.61,85.16, 15.50,15.56,16.43,17.66,17.58,18.52,19.51,19.65,19.98,20.67, 22.08,22.92,22.69,23.44,23.14,24.78,24.29,24.10,24.88,25.95, 26.66,26.17,27.42,27.42,28.58,28.91,28.53,28.46,27.88,29.44, 29.36,29.31,30.28,32.55,31.82,31.33,32.99,33.16,33.14,32.16, 33.06,33.79,33.06,33.52,34.33,34.42,35.41,35.40,36.10,36.17, 36.80,37.93,37.51,37.71,38.04,37.62,39.19,39.47,38.69,38.99, 39.07,40.06,39.56,41.24,38.62,40.19,40.78,42.91,42.03,40.87, 43.25,43.63,42.22,44.15,42.38,43.28,43.63,43.75,44.10,44.14, 43.12,43.64,43.42,44.17,46.54,46.72,45.46,47.79,47.04,47.47, 49.04,47.15,47.68,48.18,47.95,46.32,47.24,49.06,49.06,48.43, 50.09,51.83,49.72,47.52,49.63,50.64,51.63,51.75,52.72,50.40, 50.87,51.28,50.27,52.94,53.56,51.46,50.27,51.45,52.94,52.86, 53.18,53.28,57.39,52.40,57.35,55.30,55.39,53.95,55.96,57.09, 56.26,55.89,56.17,56.52,55.46,56.17,57.46,57.59,54.62,55.55, 57.79,57.72,56.61,59.04,58.27,58.54,57.93,58.02,60.24,57.90, 61.58,60.41,60.52,59.99,59.07,60.00,60.90,61.43,60.86,59.80, 61.59,59.77,59.58,64.37,60.98,59.96,63.02,62.57,62.21,60.68, 61.98,60.57,62.88,64.71,65.35,66.19,63.81,63.12,64.32,64.17, 64.87,67.69,64.59,66.59,68.35,65.02,65.89,67.13,66.98,66.14, 67.97,64.45,65.56,67.20,68.22,71.38,70.11,67.87,67.60,66.45, 69.27,65.93,68.50,65.91,67.98,67.46,69.91,68.52,69.40,68.39, 71.08,68.99,69.35,72.15,71.04,69.83,74.63,73.03,71.28,69.71, 73.54,72.43,71.32,73.57,74.73,70.45,74.25,71.87,73.29,74.28, 70.74,72.51,75.22,71.41,73.76,72.33,75.51,74.03,72.45,74.72, 74.25,74.00,78.66,75.93,76.04,74.57,74.57,74.36,73.36,78.29, 76.55,76.10,74.30,74.33,76.67,76.53,77.33,78.27,73.86,79.62, 79.42,74.58,77.03,75.35,77.24,77.38,76.97,75.63,77.55,78.49, 76.15,81.26,79.53,80.44,80.17,79.77,80.97,77.65,80.01,78.22, 79.93,78.71,81.16,78.59,80.93,79.98,84.33,81.24,82.78,83.71, 14.84,15.33,16.14,16.93,18.41,17.74,18.41,19.27,19.49,20.29, 20.56,20.80,21.41,21.77,22.70,23.55,22.86,23.99,25.19,24.67, 24.99,25.92,26.08,26.16,26.97,26.35,27.84,26.87,27.18,29.92, 28.61,28.73,28.36,30.11,30.29,30.20,30.12,31.72,31.71,31.42, 32.78,32.43,32.91,33.07,33.49,33.61,33.77,33.74,35.24,33.28, 36.04,35.43,34.60,34.57,37.68,38.29,37.07,36.39,36.61,37.54, 36.55,38.51,39.96,38.85,38.72,39.44,39.74,40.02,40.55,40.95, 41.07,41.87,39.97,40.84,40.81,40.93,42.81,41.69,42.35,42.19, 43.12,43.03,43.09,43.69,47.41,44.22,45.18,45.85,44.53,44.90, 45.78,45.47,46.30,44.03,46.51,45.17,47.57,47.50,47.55,46.91, 48.78,48.32,48.53,48.44,49.81,49.51,50.16,49.82,46.95,48.33, 50.24,49.49,49.04,49.38,49.18,50.38,49.40,52.71,52.73,53.49, 50.73,50.93,51.53,52.55,52.90,53.63,55.22,55.08,53.15,52.62, 54.53,53.38,54.95,54.54,55.18,54.65,53.67,56.67,55.14,56.55, 56.19,53.74,54.22,56.22,58.48,55.34,57.65,57.25,58.80,57.50, 58.08,56.34,56.17,55.89,56.38,60.28,57.40,58.19,58.14,59.72, 59.91,59.72,57.58,60.15,58.66,62.65,59.56,60.47,60.61,63.65, 61.62,59.67,61.11,62.09,63.29,62.15,60.03,60.76,63.52,63.42, 63.67,63.46,63.62,64.62,63.84,63.09,61.53,61.60,66.65,65.88, 65.01,65.19,65.73,64.46,63.63,64.58,64.46,67.22,66.20,65.75, 63.84,65.29,68.75,64.88,64.76,67.12,64.47,66.03,67.85,69.39, 66.46,67.71,68.25,69.95,69.41,68.47,70.47,67.91,68.39,68.12, 68.49,68.67,71.25,68.28,68.14,71.19,68.59,71.33,67.07,69.52, 72.10,71.22,73.04,68.56,68.63,70.62,69.65,68.81,71.71,71.54, 69.17,71.71,70.58,73.31,71.62,74.20,73.03,72.10,71.88,74.73, 72.33,76.06,72.62,73.87,71.41,69.98,73.27,74.79,73.98,74.12, 75.77,75.43,73.79,76.51,75.20,74.72,76.00,77.00,77.14,77.11, 76.44,78.74,77.77,78.81,79.47,74.18,76.34,76.80,76.65,77.19, 77.41,82.39,78.87,79.33,73.31,78.50,77.22,79.64,83.14,80.64, 13.78,14.61,15.44,16.50,16.43,17.66,17.38,18.98,18.73,18.47, 18.90,19.89,20.81,21.52,21.15,21.55,23.27,22.99,22.92,23.96, 24.02,24.61,24.99,25.41,24.55,27.33,25.33,26.03,27.17,26.20, 28.39,28.53,27.90,29.27,29.65,28.76,29.03,30.82,29.82,30.50, 30.30,30.16,31.09,31.33,32.65,33.13,33.00,33.10,33.38,33.17, 33.55,33.67,34.80,36.37,35.36,34.20,35.48,36.07,35.03,35.29, 35.30,36.30,37.90,36.72,37.74,37.78,36.96,39.39,38.08,38.76, 39.07,38.34,40.05,39.01,42.61,40.33,40.64,40.22,40.90,41.50, 41.12,40.68,41.18,41.91,41.61,44.89,42.35,42.73,42.02,43.97, 45.63,43.17,44.77,44.37,44.10,42.71,44.03,45.66,46.46,43.44, 45.02,47.44,47.15,45.70,46.01,47.11,45.91,45.16,48.83,47.81, 47.15,48.33,48.21,48.40,49.41,48.31,51.36,52.05,49.99,47.04, 52.93,49.26,51.23,50.75,50.96,49.87,52.13,50.97,50.72,51.87, 51.14,54.34,51.99,51.81,52.73,53.76,53.09,52.14,53.77,51.33, 54.64,52.16,54.58,53.89,51.55,54.03,53.33,51.46,54.22,55.81, 53.60,56.48,56.19,56.09,54.18,57.99,56.15,57.49,57.58,54.88, 58.79,58.27,57.05,55.98,58.71,58.08,54.67,56.24,58.69,60.32, 59.09,59.97,59.37,59.45,59.62,55.64,60.44,59.99,59.30,60.67, 59.13,59.00,58.38,59.60,61.63,60.41,61.05,63.26,59.15,63.14, 61.91,61.98,61.73,61.42,61.98,63.04,61.51,63.96,63.99,61.25, 62.83,63.84,61.57,62.13,64.21,65.62,64.98,63.84,64.24,66.78, 65.34,67.64,66.24,63.23,63.67,68.08,66.34,64.72,66.60,67.02, 66.47,66.30,66.01,66.42,65.80,66.91,66.76,69.24,67.94,66.44, 70.64,66.26,64.58,66.63,66.81,68.61,67.34,69.40,69.41,69.69, 67.63,68.03,68.12,68.54,70.24,68.46,67.77,71.78,71.36,69.75, 75.65,72.89,73.07,68.54,74.49,69.59,72.92,69.87,72.09,72.39, 71.60,72.90,70.72,70.43,70.99,71.77,74.84,73.83,72.36,75.32, 72.09,71.77,73.46,73.07,71.96,72.35,74.73,72.16,74.33,75.11, 74.85,74.78,75.29,75.42,74.21,74.77,73.76,74.79,75.30,80.79, 13.90,13.85,14.17,15.19,16.14,15.73,16.71,17.33,17.90,18.82, 19.98,18.95,19.51,20.63,20.52,20.66,21.08,21.71,22.38,22.07, 23.67,22.81,23.68,23.86,24.68,24.61,25.21,25.76,26.17,25.13, 25.12,26.83,27.09,28.16,27.69,27.10,28.17,27.87,28.25,28.76, 29.46,29.43,28.66,30.99,30.89,30.93,30.88,33.04,32.41,30.60, 32.54,32.45,32.84,32.98,33.21,33.11,34.07,33.43,34.43,33.83, 33.68,35.33,35.21,34.81,34.37,35.46,37.41,35.64,38.26,36.73, 36.86,36.34,37.73,38.63,36.44,38.54,40.08,39.44,39.38,39.75, 39.21,39.10,39.76,38.38,41.24,40.53,40.39,40.82,41.45,41.13, 40.28,42.15,42.06,43.87,42.71,42.01,41.45,43.06,43.71,44.88, 44.59,44.51,43.61,42.70,44.57,44.22,45.84,44.03,43.91,45.81, 45.55,46.64,47.94,44.49,46.20,46.94,44.62,46.41,47.87,45.84, 47.34,49.19,45.29,47.28,48.34,49.89,48.79,48.44,47.20,50.38, 48.97,51.31,49.01,50.90,48.07,48.36,50.65,51.19,50.68,48.62, 52.55,51.40,52.96,52.81,51.64,53.23,51.72,51.54,50.71,53.11, 52.70,52.58,53.42,52.86,51.99,53.62,52.96,50.87,54.67,54.38, 52.89,53.12,56.67,53.42,54.19,54.45,56.02,55.02,57.06,54.76, 53.13,55.42,56.53,56.63,57.87,57.75,56.67,56.98,58.40,56.22, 56.92,59.08,57.08,57.30,58.61,59.33,58.04,58.64,60.06,58.30, 59.54,56.94,60.93,61.35,61.09,58.88,61.87,59.37,61.07,62.58, 60.06,60.49,59.99,59.18,60.57,59.59,61.43,60.74,62.47,61.52, 62.50,61.81,61.39,61.57,62.10,62.21,63.20,61.13,61.83,65.30, 62.69,61.20,63.33,63.72,61.70,62.67,66.71,66.58,65.93,63.40, 63.59,64.73,66.12,64.88,66.77,66.44,62.68,66.40,65.87,68.08, 62.29,65.53,63.30,66.11,64.40,67.80,67.46,67.02,65.83,67.92, 68.89,67.84,65.75,64.92,66.07,64.10,67.80,68.85,64.92,66.61, 66.77,68.54,67.67,69.18,66.45,68.73,69.58,67.66,67.99,72.53, 71.96,68.99,70.06,69.90,72.10,71.07,68.34,70.19,68.78,69.80, 70.78,69.87,72.91,74.63,69.62,70.77,70.81,70.14,72.75,71.40, 12.87,13.26,14.01,14.79,14.85,14.75,15.47,15.21,16.57,17.24, 18.10,18.28,18.38,18.72,19.54,19.87,20.60,20.58,20.67,21.35, 21.81,21.96,22.35,23.37,23.97,22.86,23.38,23.79,24.68,23.20, 24.62,25.19,25.31,26.35,26.56,26.08,25.98,26.11,28.46,27.44, 28.85,28.26,27.58,28.94,29.70,29.60,28.68,29.60,29.18,29.49, 30.87,30.79,31.33,30.39,30.92,31.77,32.32,32.66,33.43,34.17, 34.18,32.57,32.68,34.14,33.06,33.12,34.16,35.20,35.55,34.93, 34.51,34.56,37.00,34.58,36.13,35.31,35.96,35.73,37.87,36.24, 37.55,37.10,37.70,39.08,38.34,38.35,36.71,38.33,37.92,39.93, 39.58,38.10,38.75,39.98,39.44,39.50,40.00,41.40,39.39,40.17, 40.16,41.14,40.82,41.42,41.56,41.35,42.15,42.08,42.26,42.04, 42.91,43.25,43.13,44.85,45.45,43.30,43.77,43.08,42.74,45.35, 44.51,45.27,45.16,44.75,46.80,45.34,45.11,44.69,44.67,48.03, 47.25,45.29,46.38,46.32,44.99,47.75,45.65,45.98,45.60,46.79, 47.01,50.29,47.83,48.13,49.20,48.12,48.61,48.74,50.68,48.80, 50.88,50.36,48.07,48.91,51.44,49.24,50.09,49.87,49.58,49.37, 53.57,50.92,51.79,51.40,52.96,52.35,51.72,52.93,50.93,51.48, 53.83,52.97,52.82,53.37,53.25,53.49,52.35,53.74,54.84,54.08, 52.04,56.66,51.79,54.94,53.68,57.00,55.70,56.91,55.07,54.85, 53.99,54.71,53.92,58.29,57.15,57.30,53.60,57.44,55.10,56.87, 55.98,56.83,55.44,56.51,58.08,58.83,58.17,56.23,56.76,57.89, 56.92,57.61,58.84,58.84,58.51,60.66,60.35,60.38,59.62,58.28, 60.10,59.30,59.56,62.46,58.40,60.10,58.93,60.84,60.24,60.30, 61.54,60.03,61.90,59.96,60.22,59.96,61.92,62.26,63.20,62.76, 63.86,60.80,62.83,62.99,61.60,61.33,63.19,62.25,61.79,62.64, 63.09,62.81,63.52,65.28,63.53,64.52,65.47,62.35,64.14,66.50, 66.10,65.59,65.28,63.61,66.33,62.90,65.61,66.84,64.74,64.12, 65.88,66.07,68.35,66.64,62.19,65.06,66.80,67.10,66.31,66.09, 63.73,66.20,65.22,68.57,65.88,68.50,65.67,65.92,68.74,68.10, 11.05,11.99,12.65,13.88,14.47,14.79,15.01,15.24,15.86,17.07, 16.95,17.06,16.89,17.80,17.83,18.95,19.78,18.99,20.02,19.10, 21.10,19.88,20.89,22.03,21.08,21.47,22.37,23.46,22.80,22.91, 24.01,23.52,24.00,23.60,24.22,24.45,25.64,26.15,24.20,25.09, 27.49,26.35,26.00,27.17,28.04,28.27,27.15,29.00,30.17,28.46, 29.04,27.18,28.94,27.61,29.73,29.59,30.66,30.24,30.22,31.10, 32.08,30.84,31.01,31.81,30.60,31.88,31.77,32.35,31.73,32.42, 33.52,33.81,34.91,33.55,34.35,34.49,34.84,32.68,34.95,35.84, 34.68,36.43,33.86,35.34,34.95,35.54,37.40,37.33,36.33,36.26, 37.68,36.02,37.10,37.81,37.41,37.94,37.43,38.75,38.36,37.41, 36.73,39.13,40.32,39.05,39.49,39.76,40.01,39.35,41.17,39.87, 39.63,40.91,41.24,40.46,42.25,42.14,42.04,42.26,41.73,42.30, 40.99,40.15,41.87,41.73,44.04,45.53,42.68,43.70,43.91,45.63, 44.56,44.29,45.46,43.12,43.31,45.91,44.74,45.41,45.15,44.79, 44.64,44.84,44.75,46.27,45.15,43.95,45.35,47.11,47.47,46.63, 45.58,45.89,46.68,44.82,46.46,47.70,45.36,47.01,48.90,46.53, 48.38,48.69,50.27,48.81,47.53,47.80,48.45,49.39,49.75,48.60, 50.00,49.74,49.54,49.43,51.96,50.20,51.18,48.85,51.14,49.93, 49.74,48.22,51.54,49.17,50.32,53.02,50.87,53.63,48.84,52.10, 53.84,51.73,51.66,52.86,51.07,53.62,51.09,53.06,52.03,51.33, 55.99,53.15,54.69,53.93,51.92,54.47,53.35,55.11,54.85,55.18, 54.85,55.91,55.21,53.27,55.20,54.45,55.27,55.09,55.84,54.91, 55.56,59.29,54.73,56.22,55.85,54.82,57.09,54.54,56.20,55.83, 58.50,55.60,56.29,60.18,58.71,54.92,58.20,55.99,59.18,56.03, 57.25,61.55,57.49,58.42,56.17,59.27,60.11,58.57,59.18,59.98, 61.80,59.51,58.92,59.29,58.90,59.90,61.20,59.31,59.73,58.61, 58.43,59.67,59.95,61.47,62.41,63.65,64.10,60.52,61.41,62.46, 62.30,62.06,61.11,60.69,62.81,62.38,60.99,61.58,62.51,63.66, 63.33,61.63,62.03,61.67,63.15,62.97,63.20,64.33,62.59,66.85, 10.80,11.48,11.57,12.73,13.71,13.53,13.57,14.20,14.87,15.19, 15.51,15.66,15.63,16.57,16.64,17.59,17.17,18.97,17.44,18.75, 18.63,18.61,19.37,19.73,19.09,21.11,20.79,20.99,21.39,21.86, 22.26,22.56,23.03,23.47,22.39,23.27,22.98,23.67,24.40,23.90, 22.98,24.91,24.63,24.26,24.67,26.03,25.39,25.22,26.32,26.14, 25.98,27.78,27.66,28.02,28.21,27.15,27.26,27.38,27.95,29.31, 29.67,28.52,28.71,28.68,29.67,28.72,29.94,29.69,29.83,29.91, 30.45,31.30,29.49,32.19,31.33,32.74,31.10,32.95,31.63,32.84, 32.28,31.07,34.05,34.85,33.42,32.52,33.64,36.89,34.15,33.23, 35.17,33.64,35.49,33.60,35.79,36.25,35.98,34.91,34.60,36.22, 33.51,35.84,37.88,36.99,36.81,36.91,38.23,37.24,36.36,35.78, 37.38,38.48,38.44,38.33,38.18,39.16,38.00,38.60,38.12,39.67, 38.35,38.95,39.65,38.50,40.64,41.92,41.07,41.52,41.68,41.53, 42.42,40.99,40.71,41.76,42.46,41.73,41.95,40.68,40.82,40.61, 40.96,42.01,43.26,43.85,42.13,42.21,40.70,43.71,42.08,42.90, 42.31,43.96,42.23,42.99,44.14,44.34,44.60,42.78,44.34,44.88, 45.02,43.44,44.27,45.27,45.50,44.35,44.89,46.67,44.71,46.24, 45.72,46.86,43.95,46.09,45.77,46.09,45.81,46.38,49.86,48.04, 46.46,49.88,45.86,47.16,47.44,49.22,48.46,48.99,49.99,49.27, 49.51,47.58,47.66,49.00,47.63,49.99,49.81,50.68,50.40,49.13, 50.64,48.51,50.61,48.70,50.84,51.51,49.94,50.04,52.21,49.98, 50.58,51.78,51.98,53.15,52.00,50.73,50.96,52.29,51.65,50.04, 49.52,51.98,51.47,52.47,54.09,51.46,50.03,53.33,52.77,54.41, 55.47,52.01,53.86,52.45,52.92,53.21,51.79,51.13,53.79,52.43, 52.78,55.47,54.66,53.62,55.27,55.03,54.09,55.46,54.77,57.93, 55.48,55.26,56.05,58.06,56.55,55.37,57.19,55.49,56.74,57.46, 56.85,57.01,56.60,56.93,53.50,57.44,57.31,55.96,56.48,58.65, 56.58,54.03,59.96,59.04,56.90,59.05,57.33,57.20,59.63,57.76, 57.59,59.64,60.29,61.40,59.91,60.18,60.22,56.44,59.17,60.28, 10.50,10.47,11.05,12.01,11.95,13.04,12.57,13.17,14.32,13.43, 14.05,14.52,15.21,16.16,15.92,15.82,16.59,16.80,17.01,16.58, 17.67,16.96,17.92,18.31,19.28,19.02,19.50,19.62,20.55,19.02, 20.62,20.31,19.62,21.23,22.11,22.38,21.28,22.68,22.42,21.60, 22.89,23.35,23.39,22.07,23.23,23.20,23.73,24.56,24.61,24.06, 24.30,25.64,27.04,24.99,25.33,25.61,26.01,26.35,26.05,26.87, 27.05,28.08,26.62,28.10,30.34,28.18,28.08,27.06,28.66,28.14, 28.30,28.47,29.01,28.73,29.08,29.75,29.16,30.81,30.12,30.44, 31.48,30.67,32.18,30.26,32.29,31.48,31.73,32.24,32.16,31.56, 31.11,31.62,32.16,33.19,32.80,32.17,32.48,33.64,34.77,33.15, 31.59,33.11,34.19,32.72,33.45,34.00,33.30,33.61,35.00,32.65, 35.78,36.34,34.37,35.20,35.72,34.85,35.35,35.81,35.50,35.11, 37.49,37.27,36.47,35.98,37.56,38.63,38.39,38.56,37.93,35.95, 38.08,36.79,38.07,40.02,36.83,38.99,37.61,35.95,38.73,38.32, 38.29,39.96,39.24,38.53,40.48,40.33,37.84,40.19,39.47,40.50, 40.95,41.25,40.71,39.49,41.77,40.12,42.46,40.10,40.74,42.35, 40.79,43.84,42.59,43.51,41.89,42.39,42.37,42.29,43.82,43.18, 43.85,41.55,43.14,43.45,44.13,44.72,43.47,44.06,45.02,45.11, 44.21,44.36,43.97,46.43,44.71,45.60,44.39,44.23,46.81,44.38, 44.23,44.03,46.61,45.49,45.00,45.95,46.23,45.53,48.23,45.76, 48.28,47.02,45.98,47.34,44.59,47.89,46.82,46.27,47.51,48.12, 46.67,47.25,46.81,45.60,48.35,47.35,46.64,48.14,47.87,47.29, 48.22,48.95,48.74,48.77,49.41,47.55,49.82,48.28,49.92,47.43, 48.47,48.92,50.71,48.37,50.38,50.00,50.70,49.90,52.58,49.43, 49.00,50.74,51.84,51.12,51.82,49.66,50.71,51.98,51.87,51.29, 49.90,51.57,50.83,52.23,50.45,52.65,52.57,52.44,50.97,53.21, 52.56,55.29,54.23,52.11,51.34,52.42,53.62,52.50,51.82,53.65, 51.72,52.59,52.43,52.09,53.68,55.00,54.87,54.65,56.53,55.93, 53.25,53.02,54.60,55.99,56.68,55.31,53.88,52.56,54.42,54.73, 8.97,10.75,10.49,11.26,10.75,12.07,11.47,12.38,11.97,12.96, 14.20,14.99,14.36,14.55,13.84,14.82,15.75,15.25,16.37,16.49, 17.01,16.46,16.49,17.27,16.93,17.10,18.30,18.46,19.42,17.61, 19.53,19.38,18.81,20.33,18.95,20.62,20.60,20.78,21.83,20.58, 19.80,21.43,20.75,21.43,21.56,22.41,23.03,23.76,22.28,23.07, 23.26,21.90,23.85,23.77,24.13,24.63,25.18,24.62,24.26,24.99, 25.72,25.80,25.53,25.42,26.05,26.62,27.44,25.08,26.00,26.14, 26.74,26.66,27.35,28.19,27.95,28.29,27.09,28.39,27.48,28.12, 29.24,29.03,28.58,29.49,29.01,29.89,27.51,29.09,28.61,29.86, 30.39,29.06,30.43,29.52,29.98,29.76,29.97,32.20,32.00,31.58, 31.11,30.11,31.76,31.86,31.21,32.07,31.07,32.20,31.75,31.50, 32.79,31.38,33.28,33.09,32.30,35.31,34.01,33.78,33.08,32.96, 33.67,34.56,32.81,33.95,34.06,34.80,34.93,35.97,35.40,35.54, 36.43,35.85,34.52,33.03,35.02,35.79,36.53,35.99,36.06,36.21, 37.40,34.94,35.44,38.36,37.32,38.05,38.08,38.24,38.35,36.35, 36.85,37.85,39.06,37.14,39.40,36.26,37.69,39.27,38.15,39.28, 37.91,39.32,38.63,39.03,41.04,37.78,40.11,40.08,37.66,40.15, 39.00,40.38,39.37,40.55,41.34,39.31,39.42,40.34,39.51,39.81, 40.55,39.19,40.58,41.64,42.30,41.24,42.76,41.59,40.12,42.00, 41.49,43.06,43.88,41.43,42.11,43.56,43.46,40.48,41.92,43.08, 42.71,42.87,42.65,41.43,42.96,43.44,43.13,45.74,44.67,45.10, 44.36,45.80,43.04,45.35,46.33,45.11,44.54,44.26,45.76,42.26, 45.06,45.06,44.37,46.92,43.67,46.08,44.51,44.48,46.31,45.56, 47.16,44.77,45.76,45.76,46.62,46.57,45.26,46.02,46.64,46.88, 45.35,47.15,47.63,47.60,45.91,47.07,47.11,49.11,48.38,48.84, 47.56,47.79,46.98,48.75,48.60,47.22,48.78,47.70,48.86,48.87, 49.05,51.62,46.57,49.13,50.29,50.79,50.34,48.44,49.63,49.77, 49.89,50.80,49.15,51.10,49.00,49.51,48.31,52.51,47.70,49.87, 50.70,51.59,51.18,50.79,50.14,49.60,49.48,50.47,51.96,52.22, 8.01,9.73,9.64,10.32,10.62,10.68,10.76,10.37,12.12,11.73, 12.31,12.42,13.53,13.31,12.91,13.98,13.61,14.98,14.77,14.95, 15.08,14.78,14.85,16.09,17.03,16.41,16.52,16.67,16.43,16.88, 16.62,17.82,17.77,18.43,18.85,17.51,18.86,18.47,19.31,19.75, 18.94,20.05,19.74,18.74,19.50,20.99,21.58,21.26,20.54,21.32, 20.62,20.95,21.93,21.76,22.08,21.21,22.60,22.93,22.49,23.81, 23.76,22.90,24.46,23.28,23.25,24.66,24.21,25.09,24.70,24.74, 24.30,24.80,24.84,24.37,24.66,25.57,24.97,24.91,27.02,27.47, 26.82,27.01,26.73,26.30,26.14,26.88,26.85,27.57,26.30,25.86, 27.25,27.14,29.60,28.83,26.74,26.41,27.50,28.99,27.85,29.14, 29.06,28.51,28.22,29.41,29.50,29.20,29.43,28.08,29.36,30.43, 30.99,30.96,30.62,31.26,31.38,29.78,31.38,30.73,30.79,31.94, 30.69,30.96,31.32,32.76,31.07,31.38,31.23,33.24,31.51,32.29, 31.21,32.70,33.06,33.43,34.14,32.05,33.74,33.87,32.54,32.69, 33.85,34.74,35.07,32.79,33.83,33.81,34.29,35.98,35.56,33.71, 35.54,33.67,36.11,33.63,35.57,35.72,36.40,36.28,35.45,36.81, 35.16,36.94,37.19,37.58,37.67,36.84,35.47,34.96,36.92,37.06, 37.17,36.03,35.61,37.92,38.09,36.35,37.58,37.20,38.05,38.92, 37.03,37.92,38.68,39.42,38.56,37.56,39.86,38.74,38.02,37.72, 38.90,38.90,40.04,39.37,38.86,39.18,39.88,40.14,39.46,41.23, 41.34,38.85,40.70,41.31,40.71,42.43,39.92,40.65,39.30,40.05, 40.32,40.76,42.27,39.11,40.66,41.42,41.20,41.79,41.56,41.03, 40.53,41.93,43.07,41.60,41.16,41.04,41.85,42.99,40.50,41.13, 42.70,42.58,43.21,43.28,43.71,44.58,41.90,42.08,42.60,42.94, 45.11,42.30,44.02,44.48,42.73,45.19,43.78,44.07,43.23,43.05, 44.17,43.93,44.57,43.36,46.42,44.45,45.24,44.12,43.47,44.78, 45.43,43.95,43.18,47.05,45.31,44.30,45.43,46.95,44.32,46.02, 45.65,44.41,46.87,47.01,44.43,46.60,48.23,45.62,47.08,44.84, 47.07,46.32,47.19,47.08,48.98,47.43,48.12,48.31,49.45,44.97, 8.02,7.90,9.41,9.39,9.50,9.79,10.09,10.93,10.93,11.37, 11.84,12.48,12.08,12.72,12.57,12.32,13.46,12.86,13.68,13.65, 14.38,14.58,15.51,14.72,14.87,15.00,15.90,15.06,15.17,16.16, 16.18,15.88,14.95,16.81,16.40,16.89,17.58,16.36,18.10,17.93, 17.72,18.12,18.21,18.74,19.83,19.37,19.41,19.44,19.04,20.22, 19.58,20.60,19.82,19.73,21.09,20.61,20.88,21.27,20.48,19.84, 21.10,21.37,23.00,21.95,21.34,21.27,21.28,22.81,23.20,22.30, 23.35,21.94,22.40,23.75,23.10,23.52,23.80,23.25,24.14,25.67, 23.40,24.90,24.53,25.50,25.39,24.65,24.23,24.95,24.40,24.82, 26.02,25.24,25.62,25.22,26.21,25.52,26.38,26.08,25.62,26.63, 25.64,25.95,28.24,26.74,27.42,27.95,26.51,28.21,27.60,28.94, 27.93,27.78,28.03,29.22,27.26,27.81,28.01,28.46,29.27,28.87, 28.15,28.68,29.72,30.84,28.76,29.96,30.24,29.10,30.50,27.97, 30.46,31.44,29.50,29.94,29.89,30.26,32.00,30.19,32.05,31.65, 32.06,31.22,30.85,31.49,31.53,31.74,31.78,31.67,32.38,31.43, 31.59,32.28,31.42,32.82,32.69,31.37,32.83,32.00,31.65,32.70, 32.35,32.14,33.22,34.54,33.20,32.87,34.34,33.19,34.04,33.82, 33.53,33.07,34.63,33.60,34.80,36.08,34.85,34.40,34.37,35.56, 36.18,37.09,34.92,35.06,36.31,35.67,35.20,35.14,34.88,34.99, 35.36,35.78,34.90,35.88,35.76,35.88,36.85,36.19,36.20,36.32, 36.25,35.67,36.41,37.25,36.00,37.11,38.21,37.52,37.38,37.33, 37.30,36.96,37.68,37.22,38.39,39.29,37.45,38.72,38.29,37.74, 37.93,37.73,37.14,38.79,41.36,36.59,38.99,38.25,38.32,39.41, 41.29,38.78,39.38,38.58,39.95,40.01,41.20,40.71,39.31,40.78, 39.77,40.24,40.92,40.80,39.92,40.63,39.13,40.95,39.94,40.40, 41.82,41.22,39.43,41.99,41.95,39.66,42.26,40.32,40.03,41.09, 42.62,41.76,40.46,42.41,41.46,41.84,42.19,42.09,41.89,42.67, 42.93,43.34,43.65,42.79,43.45,43.79,42.97,43.43,44.64,42.10, 42.44,42.96,41.75,44.62,43.39,42.25,44.07,45.10,44.35,44.24, 7.50,8.59,8.51,8.44,8.40,9.10,9.22,9.93,10.63,9.79, 10.79,10.83,11.00,11.06,11.67,11.27,11.80,12.50,13.12,12.14, 13.17,11.35,13.09,13.53,13.37,13.97,13.19,14.82,14.21,15.11, 15.76,15.80,14.67,15.89,15.74,16.37,15.69,16.01,15.82,16.51, 16.84,16.82,16.37,17.04,17.06,16.89,17.90,17.93,18.31,17.78, 17.37,18.29,18.18,17.82,18.29,17.10,18.89,20.01,19.61,17.96, 19.52,19.88,20.46,20.27,19.61,19.95,20.46,20.18,20.93,21.95, 20.57,20.62,21.96,21.11,21.06,20.40,21.48,21.56,21.98,21.89, 21.49,22.30,22.79,22.24,20.86,22.59,23.29,22.79,23.18,24.05, 24.40,24.53,23.48,23.88,24.49,23.16,24.70,22.93,24.03,24.00, 24.36,24.27,24.19,25.63,25.57,24.15,26.11,24.99,25.56,26.22, 25.29,25.95,24.09,26.61,26.27,26.72,28.21,25.99,24.62,27.16, 27.51,26.75,26.85,26.90,26.06,27.44,27.56,26.57,28.48,28.19, 27.94,27.11,28.76,27.75,27.85,27.55,27.33,28.93,28.41,29.08, 29.09,29.32,29.19,28.93,28.02,28.00,28.47,28.99,30.99,28.66, 29.12,31.21,30.58,29.46,30.24,30.13,30.32,29.92,28.72,30.49, 30.09,31.58,30.49,30.14,30.74,30.72,30.36,32.62,32.29,31.51, 31.34,31.27,31.36,33.41,30.54,31.37,31.64,31.31,32.28,31.89, 32.64,32.54,33.01,32.61,33.41,31.89,32.95,31.67,34.52,32.32, 32.29,35.00,32.81,33.07,34.88,32.41,34.47,33.94,33.24,33.07, 35.30,33.80,34.48,33.78,34.80,33.11,34.80,34.41,34.49,35.25, 34.04,34.17,35.36,34.28,35.72,34.01,34.84,35.84,34.66,34.13, 36.07,36.40,35.09,35.95,35.32,37.72,36.21,34.56,38.35,35.85, 36.72,36.50,35.18,35.14,36.76,36.85,37.21,37.59,38.63,38.61, 36.33,36.92,35.26,38.63,36.85,37.56,37.99,38.24,38.44,35.85, 37.47,37.76,36.95,37.58,39.18,39.11,40.71,39.88,38.03,39.09, 38.60,37.79,37.94,39.00,38.80,37.17,37.91,38.42,38.94,38.91, 36.00,40.74,40.92,39.50,39.49,40.01,40.35,40.60,38.63,40.26, 39.30,40.90,39.71,40.77,41.59,38.43,41.17,40.07,39.67,40.99, 6.45,7.31,7.37,7.81,8.46,8.58,8.35,8.01,9.19,9.00, 9.40,9.79,11.06,11.34,11.20,11.05,11.09,11.30,11.41,10.73, 12.68,11.21,13.01,11.82,12.96,13.19,13.66,12.16,12.90,13.04, 13.90,13.26,13.33,13.28,13.74,14.70,14.57,15.09,14.06,14.94, 15.53,14.63,14.82,16.64,16.29,16.90,16.80,16.11,15.90,16.22, 17.35,17.54,16.32,17.45,18.07,17.58,17.85,17.41,17.37,17.89, 17.08,18.42,17.00,18.55,18.75,18.50,18.95,19.18,19.71,17.69, 19.25,19.10,19.86,19.51,20.70,19.73,20.52,19.26,20.59,20.50, 20.09,20.39,19.69,20.40,19.98,22.43,20.98,21.64,21.46,20.91, 21.28,22.85,22.54,21.60,21.58,21.98,22.17,22.10,22.51,22.79, 22.55,23.48,21.78,23.00,22.79,23.80,23.00,23.78,22.62,22.91, 25.01,23.97,24.07,23.56,23.68,24.96,24.92,23.51,23.18,23.18, 25.05,24.58,24.61,24.26,24.39,24.22,24.51,25.43,24.47,25.98, 26.07,26.84,25.60,25.75,26.25,26.46,25.61,26.35,26.93,26.53, 26.75,26.18,27.12,27.05,27.12,26.51,27.15,27.59,25.43,27.40, 28.17,26.66,27.71,27.50,28.61,27.33,28.82,27.40,29.02,27.07, 27.73,28.48,27.69,28.66,29.88,29.35,28.26,28.70,28.80,28.45, 29.02,29.76,29.52,28.54,28.36,30.16,31.06,29.33,29.29,28.76, 29.98,29.02,29.18,30.19,31.46,30.75,30.63,31.18,29.78,30.55, 29.07,29.65,30.75,30.45,31.82,31.69,30.02,30.12,30.53,30.10, 30.59,31.05,30.69,30.64,31.73,32.17,31.74,32.28,31.74,31.34, 31.41,32.26,31.62,31.71,32.13,33.33,32.22,32.13,31.65,33.97, 32.35,34.92,31.64,32.51,33.32,32.62,33.30,33.27,32.06,31.96, 32.33,33.75,32.79,32.84,35.13,33.69,34.18,33.92,32.84,34.31, 34.48,34.60,34.09,33.06,34.58,34.72,35.24,33.99,34.02,35.81, 35.69,34.85,33.59,35.34,35.80,34.86,33.81,33.65,37.26,34.80, 35.08,35.99,35.97,37.39,35.37,36.19,35.71,35.46,35.51,35.01, 35.29,34.34,36.75,34.73,36.36,36.51,36.88,37.11,36.06,35.93, 36.37,36.17,37.70,37.50,37.52,37.27,36.58,37.80,36.49,37.25, 16.46,17.16,17.76,19.41,18.78,20.20,20.57,21.10,21.11,22.74, 22.50,22.54,23.86,24.49,24.37,24.40,25.97,27.10,26.76,26.82, 27.90,27.79,28.03,28.55,29.95,30.13,29.72,30.14,31.04,31.42, 32.92,32.10,32.75,33.71,33.35,33.50,33.62,34.86,32.93,35.10, 36.26,36.03,36.16,36.57,37.29,36.16,38.60,38.25,37.52,38.53, 37.61,38.32,39.69,40.38,38.67,41.45,40.15,42.21,40.49,41.80, 42.53,42.97,42.70,44.21,45.22,43.07,42.34,43.81,45.03,45.22, 44.86,44.37,44.56,44.04,45.04,46.58,46.62,46.99,49.06,48.11, 48.56,48.73,46.37,49.67,48.08,50.17,49.06,51.38,50.43,50.22, 49.51,50.68,49.16,50.79,51.89,52.42,54.15,52.24,52.46,48.78, 49.85,54.91,51.51,51.38,53.04,53.26,53.51,55.19,54.95,57.14, 54.80,56.49,59.75,56.20,54.15,58.00,54.41,58.51,56.60,57.09, 56.85,58.80,56.98,57.94,58.78,57.87,59.46,58.76,59.96,60.24, 57.91,60.77,57.63,61.61,59.35,60.47,59.22,60.84,62.82,62.35, 59.76,58.96,62.23,60.56,62.79,62.04,61.41,62.98,64.35,60.90, 63.53,60.52,60.69,63.09,64.08,65.32,64.80,65.97,66.44,65.45, 63.34,66.26,67.97,66.53,67.85,66.98,65.04,65.24,65.20,70.01, 66.37,67.31,68.26,64.97,68.13,68.14,67.86,66.68,65.60,69.44, 67.88,67.87,68.47,67.49,68.97,72.81,67.90,67.70,71.29,69.92, 73.68,71.70,71.35,73.38,71.10,73.43,68.42,75.46,73.79,71.88, 73.89,70.25,71.52,73.94,75.95,74.78,72.55,72.36,74.19,77.05, 74.56,74.16,75.42,74.41,74.64,74.94,72.35,74.39,74.88,77.82, 75.69,75.21,75.57,76.72,77.01,78.36,75.24,79.49,77.76,75.78, 76.52,77.31,78.29,76.68,80.13,79.90,79.09,80.36,78.60,79.31, 84.20,80.24,79.37,81.28,81.71,79.75,81.03,79.30,80.19,80.04, 82.29,84.02,79.39,80.16,83.64,80.05,81.37,82.92,79.24,82.32, 79.85,85.93,80.19,84.95,82.72,79.93,83.05,84.33,81.10,82.24, 83.46,84.02,83.37,85.35,81.04,81.99,83.68,83.32,88.08,87.30, 86.95,91.38,88.14,83.43,88.05,85.43,86.83,87.97,90.06,88.66, 16.28,16.66,17.62,18.54,19.71,19.65,21.52,21.15,22.30,22.55, 21.78,24.16,23.49,24.37,24.95,24.80,25.70,25.01,26.26,26.00, 26.83,27.14,28.76,29.78,28.89,30.37,30.75,31.17,31.74,31.05, 32.91,32.36,31.58,32.43,34.44,34.30,34.03,33.77,34.82,35.92, 36.91,36.76,35.77,36.20,37.50,38.67,36.43,40.44,38.32,39.04, 38.24,39.42,38.98,39.01,39.57,41.09,39.66,40.90,40.93,42.45, 41.45,42.53,42.63,42.72,43.89,42.83,43.39,44.23,44.39,45.05, 45.41,45.60,45.68,46.13,44.85,46.37,46.94,47.07,47.01,48.89, 47.32,47.93,47.37,46.68,49.58,49.60,48.22,48.54,48.25,48.82, 49.31,52.06,49.61,53.14,51.47,50.39,51.48,52.07,51.24,52.67, 52.11,52.33,54.24,53.77,54.37,54.34,54.70,53.40,54.88,53.55, 53.67,56.28,54.75,55.74,52.70,55.20,57.50,55.22,59.48,57.00, 54.56,57.24,58.49,56.54,58.64,56.00,58.44,56.98,59.71,60.81, 58.07,59.23,57.53,58.31,60.26,59.60,60.26,62.16,62.88,62.38, 60.17,61.05,63.23,62.14,66.25,62.88,61.51,62.83,62.26,63.96, 61.41,63.34,62.41,64.90,62.21,67.32,66.46,62.20,64.97,67.15, 64.74,63.42,66.43,62.55,63.83,69.00,65.75,66.62,68.42,65.23, 65.68,64.42,65.23,65.12,69.07,70.76,70.14,68.10,71.09,70.27, 70.92,67.66,69.73,69.81,71.48,71.17,69.88,69.07,70.14,71.21, 73.80,69.19,72.05,69.47,71.71,70.81,70.68,71.22,70.39,70.34, 73.39,70.96,75.78,70.61,74.75,70.82,72.45,76.53,72.39,76.50, 71.69,72.62,72.83,76.58,76.29,72.62,74.33,73.39,72.86,74.75, 74.52,75.61,76.32,79.55,79.75,76.95,76.77,76.63,76.31,77.38, 76.73,78.51,75.91,76.78,77.57,81.88,78.66,80.21,80.82,78.10, 79.41,80.37,79.91,79.43,79.11,80.87,80.59,80.17,78.95,81.20, 78.83,81.66,76.40,80.80,76.72,78.52,82.74,79.81,82.27,82.87, 82.40,79.09,81.38,85.36,81.75,84.09,81.91,82.72,82.19,83.38, 86.39,84.55,84.69,84.24,83.82,86.81,85.12,83.71,84.54,82.01, 84.03,87.88,86.38,85.34,84.97,86.58,84.16,85.81,85.64,86.49, 16.91,16.80,16.77,18.14,18.95,18.93,20.90,21.27,21.67,21.85, 22.83,23.63,23.10,23.41,24.87,25.12,25.09,26.29,26.25,27.94, 27.35,27.26,28.39,28.57,29.55,29.94,30.42,30.96,30.07,31.17, 32.16,31.51,32.42,32.31,33.12,32.94,33.73,33.98,35.28,34.70, 35.64,35.32,35.58,35.89,36.52,37.10,36.43,37.39,39.87,37.96, 39.34,38.68,38.79,38.84,40.42,39.70,39.10,41.43,39.56,40.78, 41.27,43.33,42.54,40.76,41.31,42.44,43.71,42.16,42.65,42.56, 45.93,44.18,45.73,44.49,47.04,45.91,46.89,45.71,43.94,47.29, 46.89,45.10,48.54,47.49,48.30,47.04,47.20,48.04,50.03,49.54, 50.11,49.73,50.31,51.19,48.71,50.35,51.26,50.95,51.23,52.66, 51.98,52.68,52.62,55.24,52.38,53.23,56.29,53.95,54.02,57.24, 54.79,53.49,56.50,54.56,54.74,55.04,55.58,57.36,56.74,56.31, 56.24,55.62,54.92,57.24,58.44,55.29,59.62,57.74,56.61,60.44, 60.68,59.10,59.52,57.40,58.50,58.44,62.48,59.41,58.57,59.94, 59.95,62.42,63.63,60.26,62.19,59.46,60.96,62.70,63.56,61.75, 62.13,63.27,63.16,62.74,62.99,60.38,66.33,63.53,62.10,65.40, 62.12,66.28,64.50,64.22,63.05,65.59,66.17,64.95,67.16,63.81, 68.73,65.62,63.24,67.11,66.34,67.53,64.45,69.34,68.40,67.45, 68.71,66.93,68.02,70.24,68.00,67.21,70.31,67.93,70.20,69.87, 69.09,69.13,72.10,73.35,68.34,68.89,69.46,70.80,70.52,70.88, 74.63,73.03,72.23,70.77,72.84,74.70,72.40,72.05,71.90,72.04, 74.12,74.14,70.47,71.22,71.46,74.09,73.65,72.12,72.90,71.91, 76.95,75.48,75.69,75.65,73.68,75.54,74.49,76.29,79.03,74.19, 74.45,74.89,76.01,75.25,78.56,76.12,76.72,74.01,76.34,77.75, 79.55,79.76,79.04,77.97,81.07,78.16,77.71,81.05,79.48,81.18, 82.02,79.72,81.08,80.66,77.26,80.43,79.33,81.22,78.67,78.13, 83.69,81.62,79.98,79.52,80.48,85.38,83.28,80.45,82.09,83.00, 83.42,78.68,81.67,84.72,83.74,85.50,82.48,81.52,85.02,79.12, 83.98,86.23,82.04,81.54,85.11,86.32,84.74,84.18,82.40,82.44, 15.69,16.36,17.15,17.68,17.70,18.68,19.05,20.01,21.46,20.91, 21.89,22.45,22.77,22.99,23.92,24.24,24.13,24.90,26.46,25.94, 27.18,26.60,27.40,28.03,28.26,29.26,28.68,29.13,29.45,30.67, 30.69,31.26,30.96,32.29,31.93,32.26,33.10,33.64,32.29,33.54, 34.31,35.35,33.56,33.39,35.68,36.08,36.12,35.80,36.84,37.04, 37.75,36.57,37.93,38.76,37.89,37.77,37.70,39.58,40.78,40.13, 40.05,40.25,41.17,41.49,42.70,40.91,42.61,43.36,41.82,43.67, 44.67,44.10,43.71,44.53,43.25,45.14,45.83,44.66,44.18,43.91, 45.99,44.41,45.33,45.77,46.91,46.98,47.82,48.30,48.50,47.47, 48.71,48.61,49.11,50.15,46.92,47.30,49.33,51.06,47.14,51.40, 51.30,49.95,50.13,50.48,49.89,49.60,51.40,52.04,53.72,52.43, 51.52,53.16,51.95,49.83,54.72,55.89,54.02,55.30,54.74,54.21, 55.44,54.64,54.86,54.33,56.79,58.17,59.06,54.71,57.54,55.32, 57.32,56.63,59.53,58.16,56.58,58.34,58.31,60.32,58.68,58.16, 58.32,58.44,61.12,61.57,59.74,60.43,58.02,59.51,63.46,59.20, 60.05,61.33,61.78,60.33,60.23,62.23,61.38,60.02,61.77,59.97, 62.05,63.98,63.86,63.84,61.73,65.34,62.06,64.55,67.21,64.05, 64.71,63.94,63.98,65.68,63.06,65.73,65.41,65.67,68.83,67.04, 66.29,67.80,65.34,68.78,65.68,68.64,67.50,67.35,69.81,69.81, 69.01,67.58,70.15,67.97,68.86,69.56,69.91,68.11,71.13,69.00, 69.82,70.17,68.21,69.97,71.51,68.92,69.18,69.76,70.79,73.02, 71.35,69.17,72.15,72.90,72.42,69.93,74.02,73.08,71.84,73.40, 74.17,74.64,72.98,72.35,72.89,71.88,73.39,69.88,71.99,75.15, 71.91,75.93,74.55,75.23,76.40,72.94,75.26,73.61,77.82,72.90, 76.30,77.76,78.42,78.50,74.17,76.94,76.03,76.24,75.21,76.76, 78.03,77.68,79.43,76.87,78.96,78.45,77.42,79.97,75.85,80.98, 80.31,79.45,79.36,82.79,80.45,81.64,80.86,80.35,78.04,77.93, 79.43,81.11,80.89,78.75,83.27,79.77,79.99,80.08,81.64,81.79, 82.51,81.05,81.31,82.89,80.85,80.28,81.85,81.67,82.76,84.36, 15.48,15.59,15.28,17.19,17.34,17.46,18.87,19.06,20.10,20.54, 20.19,22.05,22.56,22.16,23.17,24.47,23.49,23.93,24.04,25.23, 25.49,25.82,26.17,26.75,28.64,27.85,28.47,27.97,30.11,29.03, 29.93,29.71,30.43,30.96,32.10,31.77,31.94,31.74,32.45,31.93, 32.23,32.69,33.05,35.04,33.70,33.19,35.84,36.10,35.92,35.57, 36.93,37.54,36.56,37.10,37.02,37.91,38.33,37.85,38.31,37.95, 38.69,40.23,37.93,39.50,40.03,39.74,40.07,42.00,41.51,40.03, 40.20,40.89,43.18,42.21,42.11,43.16,42.61,41.85,42.64,44.80, 45.26,45.39,44.66,43.87,45.70,45.31,46.20,46.43,44.94,47.26, 46.65,47.26,48.88,48.15,48.44,47.11,49.21,46.38,47.50,45.93, 47.63,49.57,50.76,49.94,50.49,51.09,49.64,50.66,49.04,50.83, 49.97,51.60,50.91,51.12,50.33,53.64,52.38,52.59,52.46,54.51, 52.00,52.19,51.97,55.31,53.35,52.61,55.95,55.94,52.68,55.33, 53.60,56.03,55.57,55.61,55.45,54.54,56.57,56.37,56.77,55.84, 56.28,58.19,56.30,55.83,58.72,59.00,58.73,60.17,60.25,56.81, 58.92,57.42,58.39,59.77,59.06,61.87,57.34,58.04,60.12,60.39, 59.51,61.70,60.56,61.33,60.81,61.92,59.64,61.96,60.96,61.72, 64.75,63.98,62.91,62.88,63.42,63.80,61.04,64.22,61.34,63.62, 64.61,64.19,67.73,63.55,68.19,64.90,64.27,64.46,64.50,64.71, 65.46,63.38,66.23,65.19,69.80,63.50,67.57,66.31,64.93,68.64, 67.72,66.76,67.36,64.72,68.48,68.93,69.89,68.45,67.08,66.54, 67.34,68.27,71.44,69.90,67.99,72.93,68.80,72.23,69.26,68.58, 70.68,74.75,72.49,71.29,71.32,72.35,72.20,70.92,70.38,73.28, 71.13,71.48,69.88,70.49,70.10,72.53,72.44,72.65,74.40,73.78, 71.08,71.18,73.28,73.94,74.91,75.06,73.05,76.60,76.12,73.22, 72.03,73.12,73.20,75.94,75.36,74.18,77.68,77.67,75.49,76.64, 74.75,76.00,75.04,77.77,77.03,77.60,76.40,75.09,79.48,76.99, 76.65,77.09,78.61,74.94,79.21,79.70,78.23,81.44,79.76,77.52, 81.39,80.05,76.99,80.08,80.07,76.95,80.05,82.54,77.56,79.47, 14.29,15.18,15.66,16.40,16.37,17.25,17.72,18.86,19.28,19.57, 20.35,20.70,20.89,22.10,22.21,22.32,23.75,23.27,23.22,23.68, 24.81,25.74,24.58,26.60,26.48,25.85,26.34,27.09,26.14,28.06, 28.08,28.49,29.34,29.53,30.45,29.88,31.10,30.36,32.18,30.89, 31.26,32.00,31.81,31.78,33.19,33.04,32.91,32.86,32.90,33.03, 33.95,34.17,34.74,36.38,36.64,37.00,35.73,37.59,37.61,37.43, 37.79,38.33,38.27,38.89,38.56,40.22,38.62,39.04,38.34,39.44, 39.12,40.79,38.76,41.76,41.15,39.00,41.92,40.48,43.51,42.84, 42.11,42.17,42.86,42.99,42.33,41.12,44.39,43.22,43.11,41.86, 44.68,45.01,43.70,45.56,42.93,46.29,44.91,46.24,45.95,48.79, 46.70,47.50,48.41,47.73,46.94,47.57,47.68,49.12,47.03,49.90, 48.15,50.44,49.11,48.97,50.57,50.50,49.58,51.08,50.25,50.24, 50.77,50.98,49.88,51.02,51.85,51.80,54.10,52.13,54.30,51.75, 54.05,54.16,53.91,52.63,53.73,53.80,52.32,52.40,54.58,56.47, 54.96,54.89,54.11,53.82,53.81,55.34,56.89,56.66,55.64,57.75, 56.83,59.11,57.52,58.61,56.86,57.97,57.37,58.57,57.98,58.39, 56.40,57.00,56.75,60.45,57.95,59.11,58.17,58.45,59.74,60.11, 59.12,58.80,60.78,59.75,62.06,59.48,59.66,61.04,61.46,59.90, 62.05,62.00,62.72,62.23,57.92,61.35,60.32,63.31,59.95,60.98, 61.22,60.44,63.00,64.13,62.74,64.21,65.87,63.85,63.27,64.29, 64.62,64.60,66.28,65.11,65.57,65.66,62.85,65.34,63.95,66.36, 66.96,67.21,65.51,66.26,64.28,68.38,67.20,65.77,67.67,66.58, 69.49,66.07,66.49,69.03,68.00,66.74,65.75,69.62,68.29,70.84, 69.95,69.11,70.07,70.27,70.01,70.26,68.17,69.54,70.11,68.05, 67.50,70.59,72.34,70.91,69.01,70.93,68.00,69.78,70.70,71.73, 71.06,71.43,74.64,72.27,74.45,72.67,70.62,72.22,71.53,73.99, 73.89,73.15,73.59,71.98,70.74,71.93,74.58,71.73,77.13,73.11, 73.72,77.21,74.35,72.28,77.94,77.09,75.61,76.39,74.80,76.94, 75.81,78.51,74.96,76.15,74.94,79.96,77.07,73.81,77.16,76.80, 14.18,14.05,14.70,15.19,16.16,17.06,17.18,17.22,17.72,18.64, 18.92,19.85,20.17,20.59,21.32,21.08,21.47,21.91,22.35,22.57, 24.66,23.35,25.65,24.18,25.07,24.42,26.56,26.10,25.65,25.83, 26.41,27.12,27.97,29.62,27.00,28.91,29.03,29.27,29.76,30.39, 29.89,29.44,30.16,30.21,30.60,30.79,31.98,31.48,32.02,32.88, 33.99,33.01,33.04,33.68,34.41,34.28,32.94,34.54,35.50,33.95, 34.15,35.55,35.58,36.88,37.53,35.93,36.08,38.44,38.22,38.17, 38.70,38.43,39.24,37.96,38.97,39.32,40.35,40.25,40.20,38.49, 40.69,39.74,40.67,40.49,38.16,41.63,42.03,41.24,42.12,41.49, 42.22,42.50,41.62,43.88,44.15,44.22,43.49,41.87,44.94,44.34, 42.04,45.86,44.03,45.25,44.55,43.45,45.53,45.29,44.62,44.30, 45.81,47.23,47.35,46.19,47.00,47.68,46.59,47.04,46.16,47.08, 48.27,47.83,49.74,49.22,50.67,49.00,50.34,48.28,49.72,51.19, 49.78,50.36,50.52,50.63,50.83,52.25,50.56,51.45,51.60,53.41, 50.80,50.41,51.32,52.44,51.97,52.64,52.25,52.50,52.42,54.27, 54.35,53.01,53.56,54.78,56.01,54.84,54.30,55.86,53.58,53.98, 56.54,54.07,54.95,55.18,55.99,53.17,56.99,56.18,57.27,57.53, 57.48,60.20,57.19,56.66,58.08,58.31,57.88,55.20,57.71,58.29, 59.17,57.18,57.12,58.71,57.99,59.83,58.58,61.47,60.34,60.47, 61.81,60.20,60.90,59.51,58.99,59.29,60.19,61.79,61.03,63.55, 60.43,63.39,65.85,61.37,60.99,61.94,62.19,60.67,63.63,61.52, 62.34,63.48,65.00,62.96,61.57,63.70,65.41,63.63,62.73,63.54, 63.17,65.76,62.52,66.02,64.00,64.46,64.27,65.55,64.66,65.26, 66.20,66.39,66.16,65.24,65.72,67.53,66.44,67.37,66.36,67.57, 66.36,67.68,67.77,67.70,68.51,69.49,66.11,70.61,66.44,69.81, 69.54,65.74,66.49,71.30,66.66,70.16,64.88,66.82,71.91,68.39, 72.11,69.12,69.80,71.24,71.32,71.97,72.65,73.06,69.20,69.27, 68.32,68.09,69.96,70.36,69.40,70.22,69.07,73.00,70.84,72.25, 70.26,70.10,72.97,73.61,71.59,73.84,71.87,72.85,69.93,72.41, 13.12,13.52,14.67,15.53,16.00,15.18,15.71,16.78,17.38,18.24, 17.71,18.48,18.74,19.75,20.52,18.96,21.29,21.03,21.66,22.65, 22.16,22.75,22.21,23.04,23.10,24.96,24.60,24.12,24.84,25.18, 25.74,25.55,26.81,25.68,26.65,28.23,27.00,27.61,28.04,27.14, 29.29,28.53,28.45,28.63,29.89,29.51,30.44,30.14,32.07,29.79, 31.33,31.05,32.17,31.39,31.78,31.31,32.02,33.74,32.71,33.64, 33.40,34.73,34.07,34.97,34.98,34.79,35.38,35.56,35.19,35.39, 36.05,35.39,37.71,35.72,35.50,36.66,37.06,38.13,35.97,37.46, 38.99,39.28,37.19,37.98,38.87,40.02,39.96,38.10,38.58,40.56, 39.80,39.87,41.66,41.56,38.72,39.97,42.34,40.75,40.27,41.92, 43.54,43.77,41.57,42.49,43.55,42.31,42.34,42.00,44.74,45.40, 44.15,44.49,44.73,43.50,45.14,46.70,45.67,45.49,45.16,44.78, 43.79,45.55,45.45,46.48,45.52,46.03,46.00,45.13,47.88,46.78, 49.40,47.03,47.09,46.51,47.95,49.29,45.95,48.85,47.99,49.80, 47.85,50.82,50.35,49.89,50.19,49.74,48.35,50.79,49.13,52.24, 48.85,50.26,51.28,52.73,50.98,51.83,51.62,51.91,53.23,52.58, 54.93,52.96,53.13,52.83,52.04,52.97,50.79,53.24,51.22,52.14, 53.00,53.22,55.38,54.27,53.02,54.43,53.81,55.13,55.30,54.92, 56.80,53.72,53.83,54.81,56.50,55.78,56.29,57.73,56.85,57.35, 56.64,55.72,56.57,58.95,59.31,59.39,57.58,57.55,57.85,58.12, 59.03,56.47,57.16,57.29,58.83,57.96,60.59,61.34,59.42,60.36, 59.25,58.41,60.10,59.77,61.65,60.17,60.95,58.72,61.16,60.81, 59.99,61.47,59.99,61.12,59.11,61.62,62.18,62.33,62.40,62.76, 60.40,61.72,61.56,63.80,60.58,58.60,65.72,62.93,62.67,62.89, 61.27,62.79,63.57,64.68,63.49,61.97,67.23,62.12,64.29,64.29, 67.21,63.76,63.31,64.60,66.06,64.63,66.23,62.57,66.68,63.91, 65.22,66.13,63.77,64.93,69.32,68.48,67.92,65.20,67.46,69.46, 65.87,65.84,68.48,65.59,64.66,65.07,67.17,69.56,67.20,68.39, 69.52,68.92,68.45,68.04,68.29,67.68,67.71,66.36,69.64,65.68, 12.37,13.13,13.84,13.79,14.69,14.83,14.66,15.61,16.48,17.05, 16.76,18.13,17.98,18.77,18.29,18.36,19.35,20.29,20.00,21.00, 21.28,20.34,21.20,21.87,21.07,21.98,23.68,22.94,24.37,23.38, 25.11,24.70,24.17,24.81,25.38,25.34,25.59,26.26,25.98,27.24, 27.12,26.58,26.86,26.99,27.44,28.30,29.33,29.52,28.09,28.85, 30.26,29.29,29.77,30.41,29.52,31.65,29.88,31.12,31.90,30.56, 30.68,33.14,33.58,31.80,31.68,32.35,33.44,34.11,33.64,33.58, 33.90,33.39,34.89,33.77,32.60,33.84,36.74,35.67,33.70,34.77, 34.78,37.53,37.26,37.20,36.43,38.64,37.43,37.18,38.06,37.90, 36.66,37.71,38.55,38.83,37.80,38.46,40.12,37.07,39.65,39.90, 39.25,40.27,39.52,41.07,41.31,39.85,39.96,40.27,41.65,40.95, 41.44,40.14,43.63,41.61,42.74,41.74,43.23,43.35,43.33,43.08, 42.87,43.31,41.59,42.56,43.51,43.99,43.76,45.74,44.89,45.62, 44.85,45.24,44.41,47.43,46.58,47.21,44.04,46.88,44.99,45.44, 47.32,47.75,45.44,44.75,47.59,45.54,49.10,46.12,46.50,47.74, 48.66,48.29,46.95,49.89,50.56,49.03,46.98,49.22,52.03,48.05, 49.47,50.33,49.82,48.59,50.81,48.27,51.45,49.09,50.72,50.97, 53.17,49.28,51.52,51.89,49.34,49.16,50.67,51.63,52.09,52.50, 54.47,50.60,51.67,53.89,52.80,52.31,53.16,54.96,52.65,51.28, 56.35,55.81,54.29,53.35,55.10,53.69,55.06,52.02,54.16,54.82, 56.49,56.22,55.28,55.77,54.39,55.40,54.46,56.30,56.90,57.17, 56.72,54.68,55.17,56.82,56.20,58.79,57.50,56.92,56.02,57.60, 54.95,57.13,57.45,59.32,57.72,58.25,58.52,56.78,62.17,57.44, 57.09,57.98,56.87,59.09,59.90,58.48,59.79,60.62,58.98,60.36, 60.35,58.67,58.85,59.45,61.02,60.69,63.11,62.65,63.85,60.38, 60.68,62.64,60.87,59.42,60.27,61.49,62.25,60.99,62.46,62.81, 60.94,63.30,62.08,61.42,61.99,62.05,65.71,60.80,62.21,64.37, 63.09,60.78,64.60,63.54,60.90,64.07,62.60,63.92,65.51,63.40, 62.61,65.13,63.56,66.16,64.86,65.72,66.01,66.09,62.69,68.32, 12.02,12.32,12.68,13.45,13.70,14.21,14.23,14.09,15.20,15.68, 16.98,16.89,16.64,18.70,17.18,18.13,17.63,18.78,18.86,18.82, 19.18,19.50,19.82,20.92,21.67,20.42,20.94,21.53,22.86,22.85, 22.34,23.62,23.01,23.25,22.27,23.45,24.51,23.63,24.57,24.62, 24.99,24.41,25.59,26.00,26.18,25.83,27.03,27.60,26.84,28.26, 26.63,28.04,28.66,27.98,28.28,29.75,29.19,27.83,29.78,30.00, 29.94,30.15,30.35,28.94,30.29,30.83,30.96,31.61,30.66,32.14, 32.31,32.17,31.56,33.57,32.50,33.38,32.61,34.48,33.99,33.24, 33.81,35.17,34.45,34.22,36.01,34.88,34.00,34.97,34.99,35.27, 35.60,35.89,35.83,37.34,36.67,34.87,37.03,35.28,35.88,36.76, 38.46,37.35,36.88,38.41,38.30,38.47,38.83,39.57,38.89,38.05, 38.26,39.85,40.25,38.80,39.18,39.10,40.14,41.24,41.07,39.63, 40.12,40.24,40.34,40.77,40.27,40.37,41.63,40.16,42.58,43.09, 41.33,42.01,41.80,42.53,42.45,44.63,44.31,44.84,43.27,43.57, 43.42,44.66,42.82,43.00,44.31,43.39,43.88,45.13,43.41,45.27, 45.23,46.08,46.98,46.46,44.59,44.82,46.82,45.21,44.48,46.29, 46.07,47.73,47.08,45.79,46.09,46.29,44.70,47.72,46.82,49.01, 47.23,47.83,45.20,48.84,49.86,50.70,48.02,47.48,50.02,48.41, 50.63,48.46,47.20,46.30,51.50,48.33,50.23,51.82,51.18,49.95, 49.71,50.33,51.40,50.32,50.63,50.68,48.61,51.33,51.20,50.25, 52.37,51.12,49.89,52.99,50.58,51.62,53.44,52.63,49.50,52.92, 55.36,53.44,50.84,53.15,53.85,53.65,53.87,53.07,53.09,55.48, 52.89,52.76,55.64,51.64,54.16,53.75,55.34,53.47,54.24,55.62, 56.28,53.86,54.40,53.73,56.60,54.81,55.48,55.84,55.87,56.33, 56.14,54.30,55.82,56.51,55.92,58.17,54.75,57.57,57.02,56.74, 58.26,55.84,59.39,56.31,57.37,57.56,56.42,56.79,57.98,58.86, 60.22,59.82,59.42,58.75,59.19,58.99,57.74,59.86,57.83,58.53, 59.62,59.93,60.92,59.43,63.31,60.21,60.28,62.05,59.86,59.01, 60.53,62.84,60.49,59.12,60.85,62.03,60.21,59.80,62.85,59.76, 10.91,11.72,11.62,12.02,12.38,12.32,13.06,13.89,14.56,14.38, 15.59,15.42,15.57,15.62,15.56,17.41,17.66,16.64,17.53,17.12, 18.66,19.29,18.48,19.84,19.21,20.26,19.05,20.41,20.81,21.49, 20.78,22.65,21.01,21.72,21.89,22.45,21.87,23.08,22.84,23.18, 23.60,24.85,23.71,25.27,24.34,24.24,25.43,24.57,24.65,25.41, 25.42,25.46,25.63,24.89,26.36,25.64,28.29,26.73,28.90,28.09, 26.90,27.32,28.45,27.20,28.34,29.49,30.05,28.84,30.28,30.06, 30.02,29.76,30.08,30.25,29.28,30.63,30.75,29.71,30.96,30.54, 31.24,31.11,31.87,31.49,32.20,31.67,33.28,34.05,32.82,31.95, 32.18,32.68,33.08,32.28,33.32,34.60,34.94,33.13,34.16,34.92, 33.13,35.49,33.58,35.19,36.64,35.17,35.89,35.71,35.80,36.66, 37.61,37.75,37.12,37.67,38.93,36.69,36.79,36.26,39.82,38.59, 38.18,35.71,38.06,38.04,39.76,40.02,38.94,37.79,39.59,39.36, 39.09,41.68,39.26,40.64,39.50,40.51,40.41,42.17,41.37,39.43, 40.20,40.62,41.00,42.14,39.59,39.92,40.13,42.68,41.06,41.47, 41.99,42.95,40.30,43.85,43.59,43.76,42.57,43.65,43.16,43.79, 41.17,43.51,43.66,44.13,43.73,43.70,42.64,42.93,44.35,43.99, 44.98,42.85,43.97,44.16,45.22,46.07,46.37,44.80,45.80,45.68, 45.52,44.98,47.04,46.02,46.78,46.03,46.22,46.00,49.36,45.26, 47.11,45.79,47.33,46.42,46.81,48.92,47.55,49.86,48.05,48.14, 47.08,47.28,46.92,49.01,50.29,50.31,49.04,47.72,48.01,49.49, 48.82,48.25,51.61,50.31,49.49,50.06,49.43,49.40,48.56,49.88, 49.20,49.41,50.56,50.61,52.38,48.54,50.93,49.45,53.34,52.03, 52.46,51.50,48.87,52.38,52.66,52.28,52.92,50.79,51.37,52.19, 50.59,52.93,51.38,52.13,54.04,52.16,52.90,51.65,52.42,54.53, 52.02,54.25,55.21,53.39,54.93,53.19,54.62,54.84,56.21,54.66, 54.01,53.97,54.21,55.28,54.29,54.10,55.41,55.60,56.71,56.34, 55.46,56.59,53.87,56.19,54.44,57.44,56.13,56.84,57.07,56.37, 56.61,54.68,56.56,55.68,57.90,59.23,57.56,57.91,55.79,56.47, 10.26,11.11,11.30,11.53,11.41,12.47,12.71,12.91,13.55,13.28, 15.15,14.79,14.21,15.26,15.39,15.07,14.96,16.98,16.67,17.00, 16.47,17.57,18.17,17.44,17.98,18.95,18.47,19.55,19.42,20.31, 19.56,19.82,20.37,20.21,20.48,20.68,20.85,21.75,21.53,22.29, 22.82,22.30,22.39,22.77,23.83,23.33,22.89,23.69,23.66,23.45, 23.19,23.60,24.22,23.93,24.38,24.89,25.04,24.99,26.46,24.90, 26.22,26.38,25.78,26.19,26.10,26.71,27.32,27.91,27.11,28.20, 27.66,28.47,28.82,28.46,27.25,29.87,29.82,29.08,29.98,29.44, 30.28,28.63,30.19,28.52,29.30,30.69,30.80,29.39,29.99,30.87, 31.19,31.13,31.63,32.23,32.30,31.06,30.71,32.78,30.79,31.91, 31.97,34.30,33.21,33.12,33.38,32.67,33.00,33.13,32.73,34.05, 33.42,33.59,35.27,33.27,34.91,33.44,34.59,32.62,35.32,35.42, 34.99,35.59,35.03,35.46,36.22,36.31,37.22,35.89,35.74,36.84, 36.33,37.76,36.41,36.35,36.40,37.21,36.80,37.65,36.93,38.57, 38.98,37.53,39.71,36.19,38.52,38.66,38.19,39.10,39.40,39.01, 38.90,39.00,39.82,40.43,39.45,40.30,39.80,40.63,39.07,40.81, 39.29,40.79,40.68,40.52,40.21,39.71,42.04,40.93,42.12,41.61, 42.24,38.41,42.24,42.22,41.15,39.81,41.09,40.57,42.54,42.48, 43.07,41.99,42.82,43.46,43.13,42.36,43.93,43.87,42.89,44.52, 43.05,44.64,43.46,42.41,45.21,43.21,43.77,42.41,46.50,46.14, 45.45,45.32,44.17,45.66,43.78,44.22,45.30,45.54,45.94,45.55, 48.17,46.59,45.80,44.38,45.38,45.91,45.82,46.25,45.52,47.20, 45.83,46.79,47.07,45.58,47.30,46.77,46.43,47.94,47.62,47.22, 47.86,47.14,49.05,48.34,49.90,48.87,47.93,46.50,47.90,49.60, 49.84,49.32,49.78,48.32,47.84,49.26,49.27,48.54,49.15,48.21, 51.80,50.74,49.17,50.40,52.92,50.72,47.48,50.44,49.41,51.68, 48.99,51.54,51.37,49.59,52.86,52.41,50.19,52.38,49.75,50.46, 50.82,51.35,51.61,50.66,53.44,53.00,54.17,54.26,53.61,52.08, 52.57,50.72,53.63,53.56,51.47,52.87,55.35,50.28,51.51,53.92, 8.47,10.21,10.68,11.55,10.34,10.88,11.13,11.69,12.36,13.26, 12.18,13.13,14.19,13.79,14.07,14.97,14.46,14.70,15.71,16.36, 15.75,15.54,16.33,16.85,16.54,17.16,16.91,17.95,18.62,17.91, 18.67,19.47,18.48,19.25,19.89,19.15,19.67,20.11,20.11,20.38, 20.35,19.90,20.42,21.29,22.66,21.35,20.55,21.64,23.62,20.70, 21.68,22.53,22.46,22.10,24.41,23.08,22.58,23.76,22.94,22.95, 23.15,25.85,25.06,24.54,24.59,24.98,24.80,24.56,25.90,25.25, 26.11,26.13,26.85,27.89,26.99,26.44,28.08,26.71,26.55,27.71, 25.94,26.73,27.86,27.50,28.21,29.09,27.06,28.22,28.46,29.17, 29.06,28.28,27.93,27.61,28.96,28.71,29.36,30.41,30.15,31.06, 30.51,30.00,30.28,30.48,30.96,29.40,31.94,29.04,30.95,30.78, 32.81,32.84,31.30,30.48,30.73,32.50,33.08,32.63,31.80,32.91, 32.70,31.87,33.86,34.47,34.59,33.51,34.39,33.11,33.10,34.43, 32.40,35.34,34.23,33.78,33.93,33.91,34.72,33.24,35.38,34.64, 35.56,35.22,35.38,34.67,36.62,33.52,37.10,35.98,36.39,36.01, 37.42,37.78,36.75,37.14,36.12,37.70,37.18,37.68,37.48,37.58, 38.42,39.01,38.82,37.43,36.74,36.50,38.58,37.33,39.40,37.63, 37.31,38.09,39.39,38.07,39.75,39.26,39.61,40.06,39.69,38.01, 39.58,41.60,39.43,39.26,39.96,40.86,39.79,40.32,39.66,41.33, 41.24,40.84,41.62,40.96,41.08,42.52,41.74,41.24,40.80,41.18, 41.66,41.11,40.97,41.01,41.79,42.13,40.91,41.79,43.38,41.46, 42.80,43.17,44.08,42.29,43.96,42.97,42.25,44.40,44.61,44.12, 43.49,43.84,42.14,42.88,44.10,45.16,44.79,43.77,43.85,45.51, 44.10,45.33,44.46,44.06,45.29,47.08,45.12,46.34,44.13,45.51, 46.22,45.79,45.21,46.67,46.12,46.93,44.33,44.35,44.57,45.94, 47.15,44.40,46.41,46.59,48.19,45.66,47.71,46.10,46.52,46.14, 45.73,46.55,46.83,46.27,47.59,46.13,48.96,46.55,48.28,46.86, 48.81,49.60,48.05,48.44,47.38,50.14,47.51,46.22,49.17,49.67, 50.61,48.47,48.51,47.99,50.56,50.54,49.58,51.24,50.58,50.80, 8.31,8.45,9.70,10.13,10.20,10.23,10.79,10.17,10.90,11.71, 11.97,12.45,12.95,13.78,13.74,13.16,14.93,13.62,13.65,14.76, 15.22,14.76,15.15,15.09,15.35,16.85,15.96,16.35,15.26,16.70, 16.76,18.17,18.06,16.22,18.08,18.19,18.63,18.27,17.91,18.06, 19.03,20.00,19.27,20.06,20.41,18.93,19.48,20.45,19.53,20.32, 21.16,21.50,21.60,20.21,21.99,22.37,22.10,22.86,22.94,22.55, 22.03,22.02,22.34,23.10,23.14,22.18,24.12,23.42,23.28,23.58, 23.31,23.13,24.41,24.40,25.03,24.02,24.32,24.71,25.34,25.25, 24.85,26.39,26.04,26.25,25.45,25.26,26.91,25.19,26.55,25.94, 27.68,27.32,26.36,27.59,27.21,28.68,27.17,27.66,27.57,28.01, 27.02,28.07,28.21,28.48,28.19,26.51,28.70,29.30,29.32,28.97, 28.55,28.54,28.49,30.61,30.39,29.64,28.00,30.60,31.89,31.88, 29.11,31.41,30.54,30.87,31.80,31.46,31.28,30.29,32.19,32.54, 33.07,31.52,32.84,31.39,32.53,31.32,32.35,31.81,32.31,32.64, 32.34,32.09,31.25,31.78,33.02,32.15,33.81,35.05,32.45,33.47, 34.57,31.99,33.89,34.69,32.41,36.31,34.68,34.54,33.58,34.19, 34.86,34.77,34.59,34.30,35.56,35.19,35.19,37.06,35.14,36.53, 35.84,35.74,36.44,37.18,36.50,36.13,36.10,35.16,36.51,37.24, 37.95,37.68,37.23,37.62,35.77,36.12,36.73,37.99,37.32,38.49, 35.09,39.65,38.43,36.44,38.99,36.55,39.07,38.93,36.98,38.56, 39.11,38.67,38.82,39.49,38.37,40.98,39.45,39.86,39.32,40.97, 38.23,39.45,38.64,39.35,38.41,39.29,40.42,39.40,41.06,41.69, 39.22,42.03,41.04,41.58,40.11,41.72,40.25,39.96,40.54,40.65, 40.86,40.73,40.37,41.51,41.84,41.38,42.19,41.59,42.68,40.92, 41.53,43.52,40.42,41.65,44.01,42.41,40.45,41.05,43.42,43.85, 43.40,42.32,42.54,43.12,43.27,44.22,45.27,43.26,42.47,43.78, 45.82,43.17,43.03,43.93,42.62,44.97,44.09,43.22,44.57,42.95, 42.75,43.39,45.98,43.62,46.04,43.14,44.24,45.24,45.76,43.47, 45.96,46.06,46.18,46.63,48.33,46.23,42.82,44.24,47.12,46.03, 7.90,8.36,8.26,9.75,9.15,10.35,9.75,10.44,10.84,10.56, 11.64,11.95,11.75,11.26,12.69,12.11,12.22,13.02,12.83,13.17, 12.99,13.27,14.17,13.92,13.70,14.63,14.95,14.54,14.99,15.20, 15.05,16.43,15.91,15.69,16.72,16.94,17.92,16.57,17.61,17.41, 16.49,17.32,18.95,18.64,18.39,18.42,19.36,18.71,18.68,18.47, 19.47,19.63,19.41,19.90,20.54,19.93,20.96,20.55,20.42,20.87, 21.09,22.03,21.74,21.22,21.32,22.05,21.20,22.09,21.84,22.72, 22.40,21.92,22.10,21.84,23.26,23.29,22.41,22.47,22.47,24.92, 23.16,24.36,24.19,23.68,22.20,24.06,24.45,23.77,24.86,24.43, 24.36,24.43,23.66,25.53,24.43,25.64,25.52,26.07,24.40,24.54, 25.44,26.38,27.15,25.85,26.63,25.65,26.79,27.22,27.14,25.74, 25.86,25.97,27.67,27.75,27.44,26.36,26.39,27.62,29.91,27.51, 28.27,28.77,27.47,29.31,28.71,29.69,28.94,29.23,29.01,28.40, 29.58,29.77,29.77,30.62,29.40,30.43,30.78,29.77,30.02,31.21, 30.81,30.60,30.79,31.02,29.05,29.50,29.46,31.57,31.03,29.88, 31.36,31.21,31.20,30.63,31.22,31.00,32.26,34.17,32.17,31.36, 32.28,31.49,32.36,32.01,32.59,32.62,32.17,32.40,32.21,33.82, 32.79,32.86,33.21,32.56,34.11,33.55,35.18,34.24,34.39,32.23, 34.09,33.72,34.41,35.02,33.44,34.64,34.19,33.64,34.22,35.62, 34.02,33.50,33.80,36.13,34.87,36.33,35.06,34.35,36.22,35.88, 34.96,35.58,35.45,35.24,36.12,35.55,34.97,35.91,36.81,36.43, 38.67,38.03,36.26,36.01,39.36,37.80,35.78,36.88,36.70,37.14, 36.91,38.08,37.55,37.29,38.89,38.43,37.13,37.89,37.30,38.04, 39.71,38.90,39.88,37.72,38.04,38.52,38.35,39.41,39.18,39.90, 36.99,38.72,37.27,42.00,39.06,38.57,40.03,39.60,39.59,39.90, 38.55,37.70,38.93,39.45,40.18,38.80,40.76,41.23,41.24,40.27, 40.99,39.76,41.90,42.29,40.92,41.10,40.98,41.68,42.22,42.37, 41.22,42.35,41.40,41.83,42.32,40.57,42.57,39.38,40.49,41.89, 41.75,44.18,42.40,41.82,42.19,42.02,43.13,43.48,42.22,43.27, 16.95,18.05,18.66,19.34,19.89,20.62,20.79,21.14,22.21,21.80, 23.83,23.93,24.18,24.18,26.32,26.26,25.70,27.11,28.44,28.33, 27.51,27.93,29.29,29.62,29.77,30.70,31.44,31.92,30.71,32.43, 31.85,33.27,35.43,34.33,34.27,35.45,35.49,35.70,35.20,36.58, 37.54,36.35,37.03,38.00,37.79,37.43,38.70,39.01,39.21,40.04, 40.08,39.62,41.34,41.43,40.99,40.67,41.94,42.59,42.57,44.38, 42.26,44.31,43.89,45.45,44.16,44.34,44.42,45.66,46.57,44.92, 47.73,45.05,47.88,47.12,48.18,46.87,48.76,47.89,48.22,48.45, 48.71,49.61,51.48,49.82,48.98,50.18,52.05,51.62,50.96,49.98, 52.48,50.50,51.07,53.63,50.59,53.30,51.61,51.92,54.50,52.65, 55.71,51.24,51.92,54.05,54.88,55.54,53.77,55.05,55.61,54.90, 54.43,55.56,56.10,56.95,57.63,58.14,60.34,57.03,57.24,59.53, 59.13,59.51,59.12,58.11,57.02,59.66,62.68,58.29,61.25,58.96, 60.63,59.26,61.01,60.40,60.60,60.45,63.40,62.14,62.29,62.64, 64.80,64.04,62.70,63.68,64.18,61.54,63.63,65.16,62.97,63.86, 63.61,64.66,65.84,64.64,64.64,67.54,65.24,66.43,67.16,65.58, 62.76,66.32,68.04,68.17,70.73,70.06,68.47,69.87,68.19,68.67, 71.27,69.75,69.38,71.02,71.20,70.72,67.49,70.73,70.96,72.45, 72.32,72.13,72.64,70.48,72.90,70.72,71.73,70.57,71.55,69.36, 70.46,72.66,74.88,72.88,73.93,68.82,74.42,74.35,74.39,73.42, 76.36,77.61,73.82,76.87,74.14,75.16,74.96,73.10,75.51,75.55, 74.28,76.12,78.79,79.52,75.76,76.07,77.06,76.38,78.17,79.88, 78.61,78.96,76.59,83.28,75.44,80.44,78.77,80.94,79.14,77.69, 77.61,78.72,81.89,79.55,78.41,82.15,81.72,80.40,82.64,83.01, 80.93,80.85,80.05,79.50,83.24,84.38,85.58,85.33,82.16,85.13, 82.33,83.08,85.44,85.19,82.26,83.86,82.01,82.37,89.17,79.32, 81.88,83.86,83.82,85.13,81.68,84.32,87.38,87.13,87.79,85.32, 85.11,85.68,84.86,88.17,88.64,89.46,86.75,86.83,85.93,89.47, 84.75,88.06,86.50,86.42,89.03,92.80,88.89,88.46,89.51,89.67, 16.85,17.53,18.65,19.28,19.67,20.30,20.70,21.92,22.67,22.66, 22.63,23.71,23.60,24.99,26.10,26.94,25.85,27.80,28.66,28.02, 27.72,29.53,30.55,29.86,29.34,31.31,31.46,32.18,30.57,33.88, 32.79,33.07,32.94,33.27,34.87,33.14,35.88,34.32,34.84,36.62, 36.67,36.27,35.93,38.18,37.05,38.95,39.38,40.45,40.49,40.42, 41.21,40.72,41.67,42.68,42.67,41.51,42.26,42.99,43.77,44.12, 42.88,43.89,42.80,44.13,44.66,45.83,43.43,45.80,45.67,46.43, 48.51,46.21,47.35,46.54,45.94,47.21,48.59,47.25,48.91,49.51, 50.66,49.67,50.42,48.77,49.69,52.05,51.16,50.53,51.13,51.56, 54.02,50.83,52.34,53.43,52.04,53.73,52.09,53.47,54.51,51.60, 55.95,53.48,56.56,55.67,55.42,54.95,56.52,55.32,56.51,52.70, 56.52,57.53,56.01,59.01,57.57,57.34,57.71,56.96,60.33,60.66, 56.24,59.84,58.00,58.53,61.82,59.59,61.23,61.81,60.40,60.99, 59.69,61.86,61.57,62.33,63.51,61.23,63.95,63.33,60.99,61.42, 63.81,63.65,63.90,64.93,65.65,62.22,64.52,61.85,64.08,63.84, 63.45,64.71,64.82,65.59,62.31,67.18,65.70,64.44,67.91,66.78, 64.65,66.72,67.91,67.83,69.18,68.42,71.88,68.63,67.28,68.78, 69.72,68.86,70.54,70.38,69.89,71.20,69.53,70.26,69.45,70.58, 72.08,71.11,71.05,69.54,74.24,70.94,74.88,73.68,72.51,74.83, 74.58,74.01,76.47,70.50,76.51,74.82,75.07,72.59,74.10,77.32, 73.72,72.24,73.53,74.81,77.66,74.30,77.82,75.15,74.08,79.63, 76.65,73.67,74.93,76.57,76.31,78.61,77.75,77.99,79.17,77.38, 80.79,79.76,78.61,78.56,78.99,78.68,80.73,81.10,81.53,81.58, 77.90,81.82,79.02,80.55,79.34,83.64,81.10,83.75,80.51,81.40, 81.79,80.16,84.37,78.88,82.17,81.15,81.82,80.49,83.10,80.73, 81.71,83.12,82.23,83.66,82.62,82.06,83.24,85.87,84.02,83.78, 85.90,81.73,82.83,85.98,85.91,84.85,86.11,86.27,85.62,85.12, 87.17,90.24,88.03,88.50,88.80,89.04,86.45,84.20,85.78,89.89, 88.42,89.68,86.59,91.55,88.26,90.52,88.77,92.57,91.27,90.97, 16.90,17.42,17.81,18.25,20.58,20.87,20.78,21.59,21.17,23.14, 23.16,23.80,24.68,24.88,26.64,26.53,27.06,27.17,28.05,28.44, 29.38,28.05,28.89,28.91,30.56,31.46,30.27,30.69,32.99,32.96, 33.30,33.65,33.46,33.99,34.23,34.30,35.85,34.95,35.53,37.34, 35.95,36.96,37.87,39.03,37.31,38.78,37.59,39.65,40.37,39.15, 39.33,40.20,42.49,41.37,40.97,41.49,42.01,42.32,42.10,43.13, 43.33,44.06,43.07,43.59,44.26,46.36,45.50,47.23,43.58,46.78, 44.81,47.90,46.21,47.42,47.89,48.65,49.32,48.70,47.77,46.17, 48.24,49.88,47.82,49.42,49.12,50.24,49.97,50.76,50.46,51.47, 53.03,53.24,52.05,50.98,53.55,52.70,53.20,51.72,53.03,53.22, 51.98,53.39,52.62,54.70,55.17,53.49,54.56,56.55,55.06,56.64, 54.66,56.88,55.31,57.17,58.12,57.88,57.41,57.72,57.46,57.11, 59.58,61.21,59.61,58.84,58.29,59.40,60.31,62.98,59.93,60.37, 60.23,58.09,59.04,63.17,62.46,63.52,62.57,59.75,62.12,62.20, 61.84,65.11,63.32,63.84,62.49,63.63,66.43,63.68,64.75,66.69, 63.34,65.55,66.77,66.60,65.41,64.41,66.49,65.50,66.66,65.06, 65.61,67.45,66.28,66.49,68.61,70.33,66.25,66.08,65.25,67.88, 68.51,66.78,74.17,69.21,70.93,70.28,70.17,69.88,68.43,71.63, 70.74,70.70,68.50,70.23,74.58,69.90,71.38,69.67,73.33,71.57, 75.19,73.06,74.66,75.74,72.07,72.21,73.77,74.04,74.12,70.27, 74.74,75.57,74.48,77.30,77.56,73.61,74.34,79.06,76.27,73.34, 76.50,76.88,79.11,74.11,75.40,77.29,77.95,77.17,78.18,75.30, 79.45,77.54,77.61,80.98,80.73,79.27,78.99,80.69,80.75,79.89, 77.59,76.81,82.96,80.53,79.20,79.50,81.76,78.29,82.81,86.26, 80.53,81.43,80.10,82.83,82.23,83.34,84.33,81.30,82.78,78.96, 86.05,83.51,82.50,80.50,83.34,80.97,85.08,81.90,83.48,85.54, 82.02,84.12,81.48,83.09,82.40,82.28,84.68,81.68,87.82,86.34, 85.89,87.82,88.28,88.20,90.25,87.90,90.00,87.99,85.97,89.84, 86.05,88.47,84.99,86.58,88.05,86.35,86.60,87.01,87.51,86.22, 16.16,17.33,18.13,18.12,19.65,19.88,20.80,20.71,21.32,21.86, 21.99,23.97,24.34,24.95,25.34,23.65,26.01,25.79,27.18,26.96, 27.13,28.06,29.94,29.86,30.09,29.66,31.24,30.87,30.26,32.02, 31.18,32.31,32.01,33.84,33.97,34.37,34.49,35.79,35.90,34.34, 37.35,35.70,34.95,36.92,36.97,38.28,39.05,37.37,37.22,39.25, 39.37,39.84,41.68,41.24,40.53,38.34,39.43,40.53,42.29,42.12, 39.95,40.58,43.66,43.06,43.24,44.26,41.88,43.57,46.42,43.75, 43.34,45.80,43.88,46.65,46.88,47.10,46.87,48.01,49.27,46.77, 47.03,48.33,47.45,50.40,47.87,49.68,50.32,49.46,51.75,50.48, 50.03,52.12,50.54,48.73,53.01,50.70,52.45,52.69,52.60,53.99, 53.46,54.35,52.37,52.58,55.11,53.73,56.66,53.21,54.83,56.66, 53.92,55.74,53.69,53.11,55.36,53.94,58.57,56.78,56.78,58.58, 56.54,59.96,57.32,59.16,55.63,57.62,57.89,61.38,61.71,60.51, 61.77,57.28,60.40,59.94,62.18,59.79,62.28,62.18,59.83,61.65, 60.01,59.82,59.79,64.44,62.91,63.49,65.33,64.19,62.75,61.53, 65.23,60.71,63.33,63.05,63.75,65.33,64.78,64.15,66.38,66.78, 66.54,66.80,67.09,67.86,67.32,68.10,65.15,69.45,65.80,67.04, 67.28,69.99,67.83,68.78,67.07,69.38,70.51,67.65,73.54,69.49, 68.74,70.59,68.25,68.00,68.40,72.56,71.33,70.14,70.91,71.11, 69.77,73.10,71.34,71.46,73.02,75.41,72.83,70.66,72.40,70.20, 71.89,72.40,72.75,73.67,77.05,72.16,74.59,73.42,78.15,77.70, 72.87,75.18,70.67,74.25,73.00,75.67,76.93,76.10,74.71,80.57, 78.19,81.91,73.81,77.66,75.04,79.37,76.35,75.90,77.44,77.45, 80.09,79.47,79.28,77.10,80.43,80.10,78.02,77.94,78.51,77.46, 81.74,77.61,76.61,79.09,77.60,77.76,82.65,81.71,81.07,83.22, 82.47,81.74,83.24,83.28,81.33,79.71,82.47,81.10,84.28,83.61, 80.97,81.47,83.65,85.25,81.70,82.13,83.09,85.65,81.98,87.27, 85.24,85.84,87.63,84.82,85.85,88.67,86.04,84.58,86.07,88.15, 88.78,91.44,88.09,86.44,86.33,85.80,86.67,87.65,86.43,85.31, 17.08,17.29,17.44,18.48,18.74,19.43,20.42,21.28,20.48,21.87, 21.49,22.86,24.18,23.63,24.20,25.18,25.21,26.73,25.91,26.40, 27.30,27.31,28.02,28.60,28.65,29.35,28.98,29.91,30.50,30.36, 30.25,32.67,31.60,32.12,31.64,34.25,34.06,33.13,32.85,34.59, 36.00,36.19,35.88,36.09,36.30,36.32,37.68,36.44,37.61,37.03, 37.74,38.56,39.16,37.81,38.94,40.35,42.22,39.95,40.83,41.30, 40.48,41.56,41.66,41.20,43.94,43.56,42.82,43.52,43.10,44.28, 42.87,45.35,44.61,47.14,46.32,45.06,45.92,44.90,45.96,44.63, 47.66,45.50,47.30,47.31,47.97,51.07,48.55,48.60,49.83,50.35, 47.65,51.26,50.82,49.96,48.91,52.16,50.76,48.51,50.97,49.79, 51.72,50.81,52.33,51.86,52.32,52.54,52.65,52.85,52.07,55.03, 55.02,53.10,56.44,55.17,57.85,58.04,54.10,57.00,54.07,55.49, 55.50,56.22,54.50,55.69,57.93,58.57,57.19,58.40,58.24,57.15, 56.96,58.10,58.68,57.58,58.20,60.47,58.67,59.48,58.34,60.28, 60.01,61.88,61.24,62.23,59.77,61.55,61.31,61.76,63.52,60.83, 64.09,62.28,61.42,63.10,60.83,61.15,63.28,62.73,62.76,64.32, 63.18,60.11,64.75,65.66,66.23,64.72,63.10,66.87,65.77,65.18, 64.95,68.89,66.60,68.21,67.78,65.44,65.08,66.38,66.58,66.53, 67.35,68.70,67.50,67.98,68.24,70.65,68.81,69.64,68.07,70.04, 69.05,69.22,70.41,70.59,68.65,67.99,71.77,71.55,72.15,71.04, 71.07,72.39,73.81,72.24,70.29,71.51,72.94,72.58,72.84,73.73, 72.18,72.43,73.20,70.72,69.65,74.02,75.66,72.74,74.73,76.64, 75.20,76.73,76.32,75.07,74.75,74.95,73.97,71.94,76.89,77.50, 76.77,78.18,74.73,76.49,72.96,79.87,79.74,76.70,75.05,76.14, 79.14,79.93,78.39,76.34,80.85,79.02,75.84,75.90,79.77,79.75, 79.45,77.06,80.62,80.80,81.36,84.41,80.20,81.68,77.59,80.62, 82.52,81.23,82.25,78.03,81.91,79.94,80.11,81.26,81.35,81.15, 83.38,86.53,83.26,84.98,84.91,81.24,83.26,82.40,83.32,87.10, 85.38,84.07,80.85,83.88,86.15,83.81,86.59,81.63,84.84,83.92, 14.98,15.93,17.31,17.39,18.21,17.99,19.20,19.63,20.85,20.58, 21.18,22.31,22.57,23.11,22.73,23.60,25.47,25.83,25.73,25.61, 27.27,27.22,27.19,28.40,27.13,28.56,28.35,30.58,28.88,30.83, 29.87,29.35,29.72,32.44,30.89,31.82,33.92,33.19,34.04,33.93, 33.11,33.84,34.80,36.05,35.92,35.65,35.48,35.77,35.73,36.67, 35.95,37.02,37.64,36.38,36.74,37.48,40.84,38.34,39.80,39.15, 40.78,40.07,40.65,39.59,40.62,41.20,40.61,41.67,41.34,41.82, 40.96,42.50,42.91,42.24,43.14,44.25,45.22,43.98,45.16,44.46, 44.18,45.24,46.22,46.56,46.67,46.83,48.30,46.24,45.03,46.55, 47.42,47.60,47.95,48.86,47.87,50.42,49.30,46.98,49.30,51.08, 49.65,50.51,49.74,51.64,50.30,47.37,52.14,53.24,50.62,50.02, 51.61,51.17,52.47,51.57,54.23,51.88,53.83,55.27,53.23,55.50, 54.38,54.99,54.75,53.98,53.61,55.46,57.96,55.89,56.42,55.56, 55.48,58.13,56.54,56.75,55.16,53.86,56.27,58.94,57.57,58.18, 57.59,56.60,58.59,57.23,59.48,56.83,61.56,58.24,61.14,59.79, 59.95,62.45,59.97,57.94,59.86,59.90,61.04,60.38,62.28,63.01, 61.90,61.92,64.49,62.21,63.67,62.90,61.66,62.56,62.36,65.13, 62.99,63.28,62.63,63.76,62.92,66.26,63.59,65.76,65.55,65.11, 64.63,66.20,65.14,63.28,64.39,67.39,69.85,64.91,71.23,65.13, 67.19,67.07,66.19,66.43,71.81,67.81,69.81,67.23,69.89,68.73, 67.04,70.21,67.61,66.89,68.78,69.88,70.14,69.35,68.94,71.41, 67.62,71.29,69.48,70.45,69.00,70.30,70.91,71.65,72.30,72.71, 69.69,69.26,69.80,72.49,71.11,73.29,73.20,74.80,73.02,73.19, 73.61,75.12,73.44,72.19,75.88,76.36,74.96,75.52,75.11,72.61, 75.84,77.33,74.11,76.94,76.02,70.96,74.91,76.10,78.74,79.15, 80.50,75.30,77.15,76.54,77.63,77.63,78.92,77.40,80.49,77.88, 78.54,78.65,77.28,79.13,78.19,79.94,78.81,74.38,75.49,77.24, 78.82,79.67,78.61,78.00,78.34,76.39,79.55,79.43,83.07,81.29, 79.87,81.46,84.73,79.14,80.88,83.56,78.94,81.17,79.19,84.15, 15.29,15.20,15.53,17.21,16.81,17.78,18.46,18.83,20.24,19.91, 20.87,21.19,21.71,22.85,22.80,23.39,23.03,23.19,23.92,23.81, 24.44,25.14,26.23,25.85,28.74,26.91,26.88,28.41,28.58,29.13, 29.93,29.72,30.18,29.61,29.32,32.57,28.81,31.60,31.33,32.57, 32.72,32.75,32.21,33.33,32.27,34.36,34.98,35.53,35.10,36.15, 34.67,35.97,35.93,36.62,36.38,36.24,38.28,37.84,37.67,37.87, 39.09,38.23,38.22,39.62,39.81,40.01,38.66,40.31,40.00,41.08, 41.32,40.88,39.97,41.07,41.98,41.68,44.25,43.87,42.10,42.52, 44.18,42.71,44.01,46.11,43.45,44.78,44.37,44.83,45.96,47.93, 45.62,46.56,46.37,42.73,47.46,47.64,47.73,46.72,50.14,46.85, 48.94,47.43,49.02,50.01,47.95,48.91,48.30,47.54,48.64,49.50, 48.88,49.67,51.39,52.25,50.57,50.31,51.73,51.21,48.81,52.12, 55.04,52.48,52.54,53.47,52.82,51.75,52.17,53.97,51.78,52.53, 54.44,53.52,54.03,53.77,54.77,53.85,56.39,53.31,55.22,56.14, 58.39,56.21,55.66,56.86,57.31,55.56,56.52,59.91,56.96,56.67, 56.96,57.98,56.61,57.14,60.20,59.89,59.67,56.77,58.36,57.75, 57.88,56.81,59.75,61.72,61.23,59.64,61.51,60.90,63.21,60.71, 61.00,62.60,63.64,60.37,63.47,62.92,62.94,62.88,60.82,65.79, 61.94,64.53,63.15,61.19,62.33,62.07,64.50,62.34,64.20,65.95, 63.95,64.75,64.71,65.70,62.06,67.56,66.00,66.45,67.66,65.69, 67.98,65.91,66.23,67.46,66.60,68.56,67.59,66.90,65.97,67.51, 70.87,67.48,65.14,67.31,71.10,69.57,69.07,66.90,70.71,68.02, 67.58,69.74,67.48,71.23,70.37,69.34,70.15,68.35,69.48,70.26, 72.28,71.38,71.96,72.63,73.37,72.34,69.87,72.06,72.09,70.80, 69.48,71.02,73.19,73.06,74.58,73.60,72.58,74.92,73.42,73.78, 73.07,72.44,74.85,74.37,73.05,72.16,77.80,74.06,76.95,76.54, 74.07,74.71,75.89,75.76,73.31,76.36,75.51,75.01,76.32,74.87, 77.04,75.46,76.01,76.35,77.48,75.71,76.80,76.70,76.83,77.48, 81.38,80.17,78.84,76.93,75.83,79.50,77.57,78.99,78.06,76.58, 14.33,15.02,15.15,15.55,17.04,17.69,17.77,18.08,18.43,19.44, 18.91,20.06,20.96,20.28,21.13,21.37,22.64,23.57,22.22,22.43, 23.22,25.02,24.74,25.18,25.09,26.29,26.01,26.23,27.13,27.72, 27.29,27.63,27.72,28.10,28.66,29.09,30.40,30.48,30.11,30.76, 30.45,30.57,31.79,31.36,31.96,31.78,31.95,33.27,33.42,33.33, 34.44,32.41,33.82,34.86,34.46,35.74,35.33,35.66,36.65,36.39, 35.88,35.40,38.19,38.65,39.03,37.01,38.42,39.51,38.67,38.35, 38.48,39.75,39.77,39.72,39.10,40.25,41.14,40.83,40.42,41.56, 41.05,43.95,42.06,40.73,42.32,42.24,43.18,43.81,42.79,41.84, 43.76,43.58,42.51,45.54,46.33,43.82,44.74,44.92,44.80,47.32, 46.12,44.40,45.47,44.69,47.82,47.70,47.75,45.96,46.21,47.99, 47.30,47.97,49.25,46.92,48.00,50.18,50.72,48.84,48.67,50.51, 49.98,50.85,50.30,48.57,49.71,50.63,51.24,50.80,49.53,50.93, 51.40,51.72,51.27,52.63,53.97,51.26,49.31,53.66,54.98,53.12, 54.54,53.80,51.25,52.45,52.45,54.84,52.58,55.17,52.87,51.74, 54.84,54.26,55.28,56.51,55.38,57.16,56.88,55.90,56.08,58.67, 56.08,53.66,57.63,54.89,58.17,57.97,56.47,59.26,57.90,60.55, 58.16,58.22,59.30,61.89,61.03,60.86,59.14,61.03,58.60,62.81, 59.33,60.83,62.34,57.74,61.55,60.66,62.53,59.86,62.46,62.08, 64.89,62.25,62.78,59.71,62.77,61.78,61.34,63.45,62.26,64.17, 60.97,63.44,62.30,64.86,64.35,64.04,58.96,63.92,62.33,64.90, 65.29,65.99,63.27,67.06,62.84,65.27,65.43,63.26,66.40,66.44, 64.89,64.51,65.01,67.77,68.53,67.12,67.03,69.17,69.26,66.60, 68.71,69.23,68.12,65.16,68.43,66.70,69.76,69.94,68.69,67.89, 68.96,68.58,68.25,68.65,67.71,69.90,69.16,68.51,70.82,71.52, 70.67,70.93,69.70,71.36,70.86,69.71,69.98,68.39,72.77,70.95, 71.12,71.76,70.96,72.32,74.23,69.59,72.81,69.12,72.91,70.53, 74.72,72.38,71.76,74.69,70.20,73.94,74.42,72.41,75.04,74.05, 71.85,73.46,76.82,74.41,74.20,76.17,75.32,79.57,73.16,74.46, 12.58,13.56,15.05,15.38,15.49,15.96,17.51,18.31,17.55,18.12, 19.25,18.68,20.33,19.51,19.92,20.75,21.35,22.05,22.38,22.69, 23.47,22.51,23.25,23.42,23.99,23.51,24.94,24.75,26.30,26.19, 27.38,27.01,26.50,27.58,27.84,26.72,28.84,28.80,28.58,28.53, 29.49,29.65,29.74,30.07,30.40,30.07,30.56,30.37,32.65,32.67, 31.81,33.23,32.10,32.13,33.02,33.50,33.16,34.39,34.24,33.69, 34.67,36.18,35.02,33.55,35.43,37.61,34.69,37.57,37.07,37.24, 37.86,37.81,37.11,37.79,38.37,37.53,36.53,39.32,39.11,38.77, 39.38,40.48,38.74,39.80,42.14,40.36,41.89,41.88,41.27,41.72, 40.16,41.25,42.18,41.57,42.45,42.17,43.18,41.83,43.07,40.76, 44.95,43.85,42.63,43.79,43.11,44.45,45.93,43.87,44.35,46.25, 43.79,46.10,48.76,44.96,45.61,45.06,45.48,46.49,46.87,49.18, 46.41,46.44,47.55,46.58,47.13,47.77,48.34,47.53,46.35,51.43, 46.99,49.13,49.03,48.31,48.82,50.74,47.73,50.07,50.65,52.14, 50.74,50.87,53.04,49.19,53.61,51.77,52.59,50.68,51.95,52.40, 51.80,51.07,50.22,52.42,50.93,53.92,56.48,54.96,53.27,54.08, 54.26,55.45,54.97,54.79,54.17,55.73,53.26,55.26,55.14,57.77, 56.47,56.65,56.83,56.02,54.93,57.31,55.51,54.02,55.19,57.27, 57.39,55.27,56.45,55.84,59.34,59.56,58.25,58.26,56.20,61.11, 58.98,56.89,59.29,59.21,57.72,60.93,61.15,61.67,59.08,59.01, 59.50,58.89,59.41,59.72,60.54,59.98,62.00,59.62,59.59,61.70, 61.86,63.18,59.96,62.84,61.16,60.47,62.81,61.12,62.46,63.06, 63.02,64.51,61.73,64.14,64.99,63.43,64.06,63.26,64.41,61.81, 64.18,62.42,66.09,68.19,64.37,65.84,66.20,68.28,63.64,62.96, 65.06,64.64,66.57,66.04,67.27,65.65,63.29,65.58,67.53,66.21, 67.21,65.44,66.47,63.12,70.30,66.29,67.09,67.77,66.75,66.68, 67.45,70.08,69.15,66.27,69.46,68.77,68.24,69.47,67.66,70.67, 67.91,69.49,70.07,72.26,67.91,70.86,70.94,70.52,70.55,70.06, 69.94,67.49,72.26,72.17,70.82,70.48,70.94,71.35,69.52,70.06, 12.53,12.73,13.34,14.16,14.92,15.60,15.32,16.15,17.63,16.91, 17.40,17.80,18.41,18.57,19.90,20.07,19.46,20.33,21.94,21.05, 21.77,22.39,21.68,22.27,22.50,24.25,22.97,24.76,24.22,25.00, 23.98,24.42,24.31,26.67,25.95,27.47,25.82,26.73,26.72,27.91, 27.82,27.18,27.63,29.26,28.97,28.55,29.54,28.08,30.03,30.09, 29.97,29.84,31.82,30.31,31.68,32.45,30.93,32.54,33.00,32.46, 31.38,33.42,33.13,32.64,34.46,33.74,34.43,35.11,35.46,34.12, 33.26,34.75,35.44,35.68,36.18,37.98,37.32,37.44,37.09,36.21, 36.78,37.29,37.00,37.66,36.31,38.41,39.27,38.42,38.61,38.21, 39.52,39.16,40.73,38.61,39.67,40.37,39.36,39.84,39.98,41.02, 41.17,39.50,40.34,42.46,43.12,41.73,41.61,41.92,41.70,42.16, 41.59,43.45,42.78,42.26,43.95,44.11,43.02,45.09,44.38,43.43, 43.83,45.27,45.92,44.25,47.04,45.87,44.70,45.42,46.22,46.89, 47.30,48.07,46.62,47.04,47.09,48.11,50.14,47.24,49.24,50.53, 48.56,48.41,49.99,47.51,46.60,47.83,48.38,48.93,48.92,48.73, 48.17,48.89,50.24,50.97,48.82,48.23,51.50,48.69,50.05,50.23, 50.56,51.13,51.80,50.30,50.76,54.00,50.85,51.52,52.49,52.55, 53.35,54.62,51.73,53.99,50.78,53.76,53.67,52.81,54.29,52.93, 52.47,54.07,55.93,52.21,54.20,54.18,54.74,56.20,54.92,56.23, 55.02,54.65,55.24,54.33,54.75,56.66,54.86,55.51,56.43,55.70, 55.90,54.86,57.21,56.02,58.68,57.46,59.92,58.37,57.71,59.15, 58.27,58.00,59.11,57.65,55.76,58.89,58.54,60.48,59.50,60.07, 58.33,61.84,60.03,62.04,60.22,60.51,60.18,62.04,58.74,59.30, 57.85,61.62,60.56,58.50,63.45,61.04,61.58,61.93,63.51,62.16, 61.98,61.09,62.13,61.90,62.89,64.24,62.15,62.32,64.43,64.75, 63.00,59.94,64.84,64.27,61.55,64.12,61.66,61.50,65.38,63.30, 64.31,62.77,64.90,65.16,65.84,62.77,67.70,64.96,63.37,64.89, 67.84,65.00,64.31,66.26,67.02,65.24,66.79,65.40,66.21,64.41, 66.05,66.06,66.08,63.86,66.75,70.40,67.17,68.31,68.59,64.69, 11.85,12.48,13.00,13.89,14.53,14.37,14.98,15.56,15.07,15.22, 16.63,16.94,17.70,17.84,18.10,18.79,19.04,19.50,18.99,19.79, 20.46,20.58,21.34,21.51,21.74,23.25,21.86,22.04,22.66,22.54, 23.26,23.11,24.76,23.50,24.37,25.31,25.16,24.87,26.95,26.56, 26.07,25.70,27.20,27.06,27.42,27.08,27.81,26.94,28.70,29.58, 29.63,29.17,29.71,30.06,29.81,28.93,30.83,29.57,29.72,31.64, 32.00,32.81,31.38,32.44,31.61,31.58,30.23,32.43,32.50,32.91, 31.91,33.15,32.56,32.04,34.85,34.15,34.50,35.15,34.75,33.47, 34.86,34.96,35.94,36.23,34.58,33.82,36.29,35.67,36.40,37.59, 37.42,36.93,38.40,37.65,37.73,40.52,38.80,37.31,38.89,39.33, 39.66,38.29,37.65,41.03,38.76,38.28,39.00,40.92,39.70,40.64, 41.00,38.94,41.00,38.94,40.66,41.41,42.23,43.19,42.44,40.13, 41.08,41.54,42.92,43.73,43.18,42.93,42.40,43.41,42.54,42.54, 44.71,41.96,43.74,44.74,43.26,45.41,45.84,44.85,44.27,44.98, 43.03,43.73,45.55,45.39,46.06,45.44,44.06,45.26,47.77,46.49, 44.73,47.41,48.40,46.12,46.09,46.15,47.25,48.40,47.30,47.57, 48.74,46.30,47.37,47.62,47.18,48.36,49.15,47.51,50.38,50.39, 47.41,50.75,49.20,48.54,50.59,51.64,51.22,49.61,51.17,50.79, 51.06,49.61,52.16,54.81,49.58,51.85,52.70,50.83,52.42,49.75, 51.16,53.42,53.03,51.57,54.05,53.38,52.70,52.90,51.02,56.25, 50.79,53.70,54.58,52.58,53.16,52.39,51.24,54.70,54.22,56.17, 55.72,55.28,54.51,53.93,55.06,54.89,57.12,52.85,54.70,56.43, 55.16,53.97,56.49,57.91,55.81,55.06,56.02,53.60,56.84,57.53, 57.00,58.75,56.57,56.19,55.62,56.45,58.56,56.74,56.75,60.51, 59.21,59.25,55.89,59.89,59.20,61.48,58.30,58.48,60.20,57.37, 58.83,58.82,58.70,60.47,61.21,61.23,61.53,61.30,59.24,61.53, 62.54,61.90,59.55,60.85,60.83,59.56,61.11,62.85,63.52,61.37, 60.86,60.25,62.84,61.83,62.25,61.75,63.23,61.42,63.15,63.67, 62.67,64.62,61.49,63.83,66.70,62.96,63.67,62.22,64.59,65.03, 10.36,12.43,11.71,12.30,12.91,12.83,14.10,14.88,15.60,15.04, 15.78,16.10,16.75,17.14,17.81,17.59,17.86,18.67,18.63,19.16, 19.12,18.55,19.51,19.35,20.25,20.53,20.59,20.43,21.11,20.99, 21.92,23.04,22.74,22.47,23.41,23.30,24.30,23.81,23.21,24.61, 25.25,24.85,24.01,24.76,25.66,25.91,26.30,26.44,25.26,26.62, 26.82,27.73,27.67,26.99,27.90,28.01,28.70,26.98,29.17,29.18, 28.61,29.79,29.84,28.82,30.70,29.22,29.93,30.23,30.54,30.77, 31.27,31.47,32.08,31.46,33.06,31.04,31.24,32.52,32.16,32.42, 33.50,33.39,36.23,32.76,33.98,34.63,34.21,34.59,34.96,34.28, 33.84,34.90,33.43,34.50,35.37,37.50,35.07,34.81,38.45,36.88, 35.93,36.90,37.51,36.56,33.98,36.19,38.11,38.03,37.92,38.44, 36.04,37.78,38.10,39.53,36.93,39.12,38.72,39.34,38.44,39.41, 39.98,40.60,39.63,40.36,38.12,38.72,39.69,42.76,39.89,42.06, 41.07,41.14,39.90,40.29,41.35,41.42,43.32,42.84,42.46,42.62, 44.01,41.64,42.12,42.11,44.57,42.76,42.59,41.79,44.02,42.31, 42.69,43.41,41.97,43.77,42.99,44.16,44.76,44.72,46.85,46.77, 43.58,45.20,46.19,45.93,48.01,46.44,44.75,44.76,45.09,47.68, 47.27,45.55,47.42,46.27,46.53,48.34,46.85,46.33,46.77,45.42, 46.98,48.63,48.59,51.25,49.15,48.66,49.62,48.39,49.02,48.47, 49.79,48.85,50.41,48.96,50.08,50.52,48.44,49.46,50.40,50.01, 50.47,50.39,52.55,50.59,50.23,51.67,50.92,50.42,50.32,49.71, 51.82,51.29,50.80,50.94,50.79,52.83,51.83,51.22,52.02,53.22, 54.61,52.58,53.52,53.75,53.40,54.90,52.90,52.99,53.98,55.30, 54.72,51.67,52.84,55.23,54.77,55.34,54.97,54.76,54.29,54.70, 57.13,54.79,54.87,55.31,54.31,57.83,55.88,56.25,57.21,55.89, 57.25,55.39,54.99,56.47,57.64,55.10,57.76,57.74,55.21,55.66, 57.19,59.06,61.65,57.88,58.40,58.22,56.85,56.71,56.00,57.91, 58.64,57.52,57.39,57.71,57.46,59.83,58.71,56.69,58.77,59.59, 56.78,60.60,58.32,57.92,58.34,57.85,58.19,60.16,60.09,61.26, 10.63,10.32,11.02,12.23,12.24,13.64,13.35,13.44,14.22,14.71, 15.02,15.00,16.34,15.95,15.33,15.55,16.56,17.09,18.14,18.63, 17.81,17.51,18.59,18.88,18.71,18.85,19.79,19.32,20.00,20.90, 20.63,21.46,20.89,20.95,22.55,22.74,21.73,21.96,23.20,23.74, 23.40,24.18,23.14,22.80,22.63,23.49,25.01,23.93,24.76,25.90, 24.33,24.72,25.42,25.41,27.73,26.33,27.09,28.28,26.85,26.28, 27.46,28.11,28.45,27.53,28.55,27.39,27.91,28.33,28.24,28.05, 29.17,29.53,28.28,28.69,30.27,30.34,30.26,30.92,31.34,31.87, 31.24,30.36,31.25,30.95,31.26,32.02,31.66,33.01,32.65,31.76, 32.41,31.42,32.28,32.73,34.06,33.34,33.04,33.21,33.98,33.33, 35.66,34.29,34.51,33.96,34.47,34.04,34.00,34.61,34.37,34.92, 35.47,34.03,36.02,36.06,36.65,36.29,38.27,36.89,36.95,37.91, 36.38,37.03,36.84,37.99,36.83,37.26,39.40,38.60,39.10,38.54, 38.42,39.01,37.70,39.12,39.21,39.75,39.08,40.12,38.60,39.75, 40.02,39.53,40.14,38.11,39.16,40.07,40.74,38.79,39.28,39.96, 40.67,40.43,39.58,42.96,42.86,42.00,42.27,42.43,41.60,42.42, 41.97,43.02,43.27,42.51,41.40,42.73,44.29,43.88,42.55,42.99, 45.60,43.66,45.05,42.82,44.27,46.19,45.53,42.75,45.49,45.42, 45.05,45.07,44.50,46.20,46.02,45.17,45.10,46.33,45.15,45.74, 45.69,43.51,45.42,45.78,46.12,47.48,45.58,47.19,45.49,46.92, 47.24,48.67,48.89,45.31,47.44,49.04,49.07,47.88,46.05,46.97, 46.57,47.76,49.20,46.84,48.76,49.31,49.27,50.42,47.35,45.64, 48.51,49.06,49.38,49.61,48.27,50.17,52.13,51.32,49.48,50.01, 49.14,50.63,51.05,50.61,48.99,50.17,49.97,51.07,53.39,51.98, 51.23,51.79,51.53,50.53,51.84,49.74,51.48,52.81,51.99,51.03, 51.28,53.64,52.87,53.00,51.69,51.14,52.37,51.51,53.21,53.17, 53.54,55.26,52.64,52.61,51.22,53.54,53.34,54.69,50.55,53.68, 53.92,53.14,51.98,53.26,52.42,54.32,53.83,54.23,53.35,55.38, 56.45,54.04,54.70,54.92,54.35,57.82,56.24,56.54,56.31,55.48, 9.60,10.05,11.73,10.63,10.87,12.52,12.71,12.64,13.47,13.37, 13.63,13.22,14.49,14.95,15.08,15.02,16.06,15.75,15.91,16.62, 17.45,17.09,16.59,18.91,18.13,17.65,19.99,17.64,19.09,19.18, 18.80,20.07,19.80,20.97,20.07,20.37,19.87,20.98,21.68,22.34, 20.59,21.48,22.12,21.43,21.76,21.58,23.31,21.39,24.01,23.57, 24.06,24.76,23.24,23.54,24.12,24.42,23.93,24.66,25.87,25.17, 24.81,26.02,25.14,25.58,26.80,27.26,24.97,26.13,27.95,26.85, 27.28,27.11,28.08,27.92,27.59,28.21,28.91,27.53,28.21,26.66, 29.47,28.34,27.99,28.90,28.14,29.56,29.04,28.94,30.13,31.27, 31.10,29.81,30.92,29.43,30.54,30.87,30.52,33.21,31.32,32.24, 30.89,31.32,31.94,32.79,32.48,33.33,32.80,33.18,33.20,31.95, 33.21,32.62,32.85,34.12,32.99,35.23,34.57,34.49,34.03,34.72, 33.57,34.00,35.49,34.35,34.50,35.21,36.43,33.71,35.36,36.31, 36.31,36.66,35.91,36.16,35.64,36.51,36.48,37.49,37.97,38.18, 36.49,37.37,36.81,37.51,36.66,36.62,37.89,36.58,37.55,39.95, 38.69,38.71,36.95,37.77,37.31,39.35,39.49,40.39,38.53,39.64, 39.11,40.86,39.65,39.02,39.99,40.03,40.39,40.02,40.87,39.27, 41.10,42.18,41.17,40.90,41.26,40.62,41.85,41.08,39.84,40.71, 42.75,42.91,40.52,41.74,42.05,40.28,41.63,43.03,42.96,41.89, 43.46,43.77,42.71,43.06,42.05,43.78,42.78,43.26,44.88,42.43, 43.90,42.20,41.99,42.70,44.80,44.55,44.45,42.70,45.97,45.24, 43.86,44.35,43.69,44.91,46.78,46.35,46.53,47.37,45.29,45.61, 45.11,46.54,45.18,47.06,47.99,48.21,46.15,47.46,48.03,46.71, 46.51,46.30,47.78,48.32,46.23,45.23,46.43,47.00,48.71,47.67, 47.43,46.68,48.13,48.13,48.64,47.91,48.86,48.79,50.72,49.32, 46.53,47.98,49.20,49.11,48.18,48.53,49.36,50.98,49.91,51.66, 49.79,49.18,50.93,51.62,52.21,50.42,49.20,48.46,50.06,49.54, 49.61,49.67,52.30,49.82,49.51,50.65,54.83,51.56,53.09,50.27, 51.78,50.98,51.59,53.28,52.14,52.84,51.70,53.80,51.18,52.05, 8.37,10.00,10.46,11.08,10.56,10.91,11.87,12.15,11.28,13.09, 12.36,12.47,12.92,13.65,13.48,14.22,14.58,13.51,15.21,15.46, 16.25,15.35,15.12,16.07,16.66,16.74,17.23,16.53,17.14,17.75, 17.12,18.00,18.08,19.38,17.73,19.26,19.69,19.37,20.28,19.10, 19.11,20.03,20.94,21.57,21.32,20.95,22.81,21.97,21.43,21.90, 22.34,22.31,22.26,21.72,21.45,22.38,23.51,22.87,24.24,23.46, 24.23,23.10,23.25,24.30,24.33,23.33,24.18,25.82,24.74,24.84, 24.91,25.36,24.83,25.13,27.03,26.71,26.30,26.57,25.52,26.91, 25.99,26.57,28.44,26.44,26.22,27.74,27.04,28.43,28.97,28.50, 28.01,27.50,28.42,27.77,29.28,28.73,28.17,30.20,30.41,30.21, 29.95,29.82,29.73,29.40,29.38,30.84,30.56,30.54,29.70,30.18, 31.11,31.19,31.55,31.49,32.42,33.47,32.38,31.68,32.14,32.14, 31.14,31.50,32.97,32.11,31.75,33.02,33.98,33.27,32.10,33.59, 34.18,32.38,34.45,33.80,34.96,34.50,33.22,33.68,34.17,35.04, 35.28,35.86,35.88,34.70,35.53,33.48,33.61,35.14,34.54,34.84, 35.69,35.99,37.28,36.05,37.08,36.64,34.31,36.72,36.13,36.78, 36.84,38.73,36.79,36.52,37.88,35.25,37.23,37.54,36.05,37.95, 38.05,36.05,37.26,37.96,37.73,38.31,39.25,37.84,37.72,37.35, 38.18,38.40,39.10,38.18,39.38,38.56,38.93,40.70,39.05,39.59, 38.00,40.46,39.94,41.86,38.72,39.17,41.64,37.81,40.92,41.99, 39.76,40.59,42.17,40.73,39.29,41.03,42.66,42.21,42.34,42.11, 41.37,43.00,41.46,42.04,41.09,42.09,42.03,42.35,43.50,42.46, 42.71,43.75,44.26,42.52,45.01,42.04,43.67,42.42,44.24,42.11, 43.51,43.75,43.95,43.78,42.66,43.81,44.09,44.51,43.73,43.65, 41.82,43.86,44.67,46.74,44.83,46.58,45.19,47.08,44.06,45.49, 44.67,46.01,45.74,46.38,44.98,46.97,45.34,46.89,46.74,45.96, 45.87,45.06,46.63,46.86,47.88,47.72,46.91,49.33,46.95,44.90, 49.68,47.63,46.66,47.69,48.66,48.11,47.06,47.79,49.29,47.24, 48.06,48.05,47.82,46.24,49.75,47.84,49.47,49.70,49.61,49.36, 17.30,18.29,18.73,19.31,19.92,21.52,22.26,22.53,22.46,24.71, 23.97,24.67,25.18,25.02,26.20,27.20,27.26,27.47,28.66,28.76, 28.34,29.42,29.21,31.43,31.10,31.36,31.95,31.27,32.18,33.55, 34.07,34.43,34.39,34.94,34.40,34.48,36.16,37.01,36.65,36.53, 36.33,37.94,37.32,39.35,39.36,39.95,37.95,39.12,39.84,41.50, 40.14,41.78,40.94,42.58,43.09,42.93,43.72,43.27,43.16,42.27, 42.72,44.54,44.04,44.91,44.99,45.59,46.25,45.22,46.71,48.50, 46.18,46.39,47.91,47.60,46.94,48.14,48.09,48.11,49.88,48.99, 51.16,51.17,45.92,50.79,51.87,50.81,51.94,51.98,51.88,53.77, 53.49,51.65,53.24,54.03,53.86,53.49,54.21,54.72,56.99,53.96, 55.45,57.08,54.08,52.95,57.20,56.98,54.65,58.11,56.93,57.25, 56.96,57.97,59.12,57.59,58.96,60.13,58.08,58.10,61.04,59.42, 60.33,60.95,61.56,60.61,62.22,59.42,63.46,59.60,62.58,60.30, 60.01,61.47,62.77,63.18,61.68,62.93,62.89,61.05,62.31,65.64, 62.33,64.25,65.03,64.61,66.30,67.81,64.36,64.88,67.56,64.98, 68.69,66.25,66.61,68.03,69.09,65.27,69.42,68.50,67.30,67.59, 69.70,69.98,69.80,69.08,68.11,67.71,72.32,68.88,68.87,70.66, 72.11,71.75,68.92,70.04,71.49,72.10,69.03,68.78,70.20,72.48, 72.76,74.81,72.96,70.72,72.11,72.40,72.00,74.08,74.16,74.81, 73.28,75.73,74.48,75.30,75.97,75.79,77.17,74.99,77.57,77.78, 76.38,73.89,76.19,75.48,74.95,78.75,78.16,78.05,78.69,76.10, 76.89,77.89,78.91,78.88,74.86,77.69,79.39,78.39,78.75,81.34, 82.68,79.67,78.71,80.44,81.54,80.12,79.39,78.95,78.41,82.67, 84.31,80.22,80.75,80.92,80.91,81.29,81.83,82.01,85.42,84.64, 81.03,83.84,84.41,83.89,83.17,82.19,84.71,84.57,86.46,85.83, 87.49,86.36,83.66,85.25,86.61,85.95,84.97,85.34,86.07,85.59, 83.56,84.61,82.33,82.26,88.40,85.24,85.94,85.54,88.73,88.75, 88.31,87.17,84.88,86.46,91.52,88.71,86.30,88.82,87.21,92.61, 87.18,86.89,88.62,90.89,86.69,90.39,90.17,89.38,91.61,94.18, 17.78,17.70,19.05,19.51,20.68,21.47,21.01,22.22,23.08,23.58, 24.25,24.57,25.26,24.69,26.58,27.20,27.07,29.00,28.58,29.45, 28.96,29.37,30.38,30.25,30.95,32.20,31.49,31.93,34.05,33.77, 33.09,35.01,34.10,35.40,35.69,36.09,36.00,36.52,35.25,37.94, 37.76,37.00,38.16,39.30,38.55,40.27,40.91,39.91,41.17,40.70, 42.36,41.13,41.41,42.47,44.33,41.74,42.97,42.50,43.05,45.92, 44.94,46.34,46.58,43.66,46.42,47.56,45.94,44.61,46.83,47.69, 47.68,47.98,46.96,47.44,51.37,48.32,48.92,48.85,50.27,50.56, 51.09,49.99,50.26,52.83,49.33,51.17,54.78,52.56,51.41,55.10, 56.11,53.56,52.12,54.19,55.88,54.11,55.02,57.58,57.59,54.34, 55.60,57.13,56.60,54.34,58.24,55.91,58.30,60.29,58.11,57.10, 58.08,56.26,58.62,58.63,60.41,59.31,57.39,59.31,58.09,60.23, 61.37,59.66,59.67,61.51,60.05,62.19,63.29,63.16,62.44,64.42, 65.27,62.54,64.13,66.16,63.03,65.64,64.34,64.71,63.78,65.05, 67.50,65.26,64.78,66.07,64.25,68.67,64.44,67.36,65.71,66.16, 65.96,69.72,66.61,68.71,68.94,72.06,66.95,69.98,68.85,68.52, 69.16,67.66,73.04,69.88,72.29,71.89,72.49,69.26,73.02,70.03, 69.97,72.06,68.97,71.25,68.92,73.63,72.66,71.30,71.58,74.11, 73.59,76.83,74.02,75.75,74.06,73.76,73.85,72.68,75.63,73.42, 73.27,74.65,77.50,74.31,75.25,74.60,72.72,75.04,76.52,75.75, 75.77,78.61,80.70,77.92,76.48,78.08,82.14,76.73,75.43,81.25, 78.59,80.34,80.98,78.61,80.56,76.45,79.84,82.99,81.31,79.77, 81.70,81.73,80.82,81.06,80.90,86.38,80.07,81.55,82.39,84.66, 85.78,79.76,81.23,84.93,84.67,84.48,88.67,85.96,85.32,83.67, 82.72,85.20,86.57,84.82,85.54,83.09,85.81,86.18,86.99,86.99, 85.63,88.17,84.76,86.34,85.84,86.23,84.07,84.60,82.44,87.26, 89.49,87.12,90.73,86.74,87.77,90.29,86.74,88.04,85.62,86.43, 88.48,89.41,92.70,89.83,88.89,87.99,91.04,88.39,91.29,90.35, 91.50,89.07,91.95,93.59,90.50,89.35,93.37,90.98,91.55,89.86, 17.51,17.58,18.64,20.11,20.31,20.79,21.65,22.10,22.68,24.31, 24.17,24.76,24.83,25.77,26.80,26.36,27.06,28.22,28.35,27.75, 28.15,30.99,31.46,30.48,32.68,31.92,32.69,34.00,33.29,34.82, 34.87,35.12,35.37,34.32,35.36,33.84,36.31,36.09,38.27,37.69, 38.18,38.59,37.83,39.03,38.94,40.64,41.00,41.00,41.04,39.36, 41.51,41.74,42.35,44.12,42.47,43.69,44.98,43.90,46.02,43.79, 46.16,45.95,46.32,47.38,45.77,49.00,47.83,47.50,47.71,49.86, 46.86,49.26,48.76,50.16,49.75,50.54,50.84,50.18,52.01,52.00, 49.58,52.68,52.47,49.41,51.70,53.27,51.83,52.37,53.95,53.80, 54.03,52.07,56.25,52.65,56.06,53.68,54.92,54.00,55.28,54.98, 54.14,54.66,55.99,56.85,58.70,58.24,59.83,59.22,55.96,57.45, 58.41,58.45,60.14,59.42,59.95,60.05,58.53,60.27,57.69,60.55, 61.19,61.11,62.52,60.63,61.46,62.63,61.05,60.10,60.45,63.77, 62.26,63.80,62.72,63.63,64.30,64.66,63.91,64.75,66.94,67.70, 65.41,66.67,66.66,64.34,66.04,65.62,65.11,65.98,65.51,68.25, 68.50,69.27,70.14,67.92,66.30,66.10,68.30,66.53,70.00,68.27, 69.28,71.99,69.42,68.54,70.79,71.33,73.44,69.22,73.09,68.59, 72.61,72.16,73.83,74.84,72.03,71.64,72.99,72.90,73.55,71.13, 74.28,75.02,74.54,75.66,72.88,74.37,73.75,75.88,75.69,75.09, 76.63,75.02,78.60,76.16,77.11,75.65,74.47,73.64,76.96,75.24, 75.52,73.74,78.97,81.37,78.84,78.18,77.48,79.44,82.50,79.41, 80.15,78.56,76.61,82.81,78.29,81.49,81.57,81.85,83.27,79.60, 78.31,80.74,83.79,80.08,81.35,83.53,81.16,81.02,82.29,81.45, 82.81,83.38,83.59,81.03,81.41,84.97,81.42,86.84,82.29,84.32, 83.02,87.56,83.65,82.75,83.24,82.94,90.15,88.69,84.65,87.47, 83.84,86.42,88.31,86.25,83.11,89.88,86.22,88.84,84.55,87.14, 88.04,90.50,86.72,87.19,85.62,87.38,88.44,88.09,91.33,88.85, 90.05,90.33,90.92,88.38,88.98,88.22,93.38,87.95,90.64,90.26, 89.16,91.40,92.02,89.55,89.26,95.08,94.20,94.88,90.56,91.49, 17.42,17.60,19.05,20.57,20.14,21.38,22.40,22.00,23.01,23.10, 24.69,24.93,24.81,25.47,26.28,27.30,26.90,27.27,28.19,28.93, 28.75,30.48,30.64,30.35,31.93,30.63,32.12,32.36,31.72,33.02, 34.57,33.88,33.53,35.68,34.01,35.93,35.08,36.36,36.57,38.59, 38.52,38.69,40.08,37.17,39.33,40.15,40.01,39.75,40.42,41.09, 40.55,42.02,42.07,43.31,43.38,43.97,41.83,42.22,46.34,43.98, 44.55,44.05,47.02,46.67,45.10,46.35,45.98,45.31,46.20,47.16, 46.99,47.91,47.33,47.37,49.47,49.21,49.16,50.22,51.48,50.85, 50.09,49.65,47.82,50.65,50.68,51.74,51.89,50.70,52.43,53.69, 53.94,53.38,54.75,52.43,55.34,55.79,53.34,52.92,54.31,54.37, 57.20,54.91,56.71,57.52,58.12,56.76,56.88,55.19,57.66,56.51, 60.01,58.94,58.64,58.03,57.64,57.67,59.59,58.08,60.19,60.00, 58.83,60.13,63.40,59.74,61.93,60.63,60.38,59.11,59.26,59.88, 63.39,62.08,63.50,63.26,65.04,64.46,63.93,64.09,65.89,61.73, 64.60,61.51,64.97,68.60,68.29,64.65,69.34,65.83,64.97,64.33, 68.87,66.62,67.12,69.43,68.01,69.67,67.79,67.78,70.39,66.89, 69.71,71.72,68.26,72.22,68.56,68.96,68.57,67.63,72.39,71.69, 71.82,71.64,72.67,71.72,72.87,72.90,71.36,70.87,74.63,73.54, 72.18,75.14,73.16,70.94,72.90,75.44,75.87,75.61,76.92,73.10, 73.15,72.98,76.32,73.85,76.47,75.90,76.04,73.41,75.88,77.78, 73.91,76.10,75.60,75.20,76.02,75.30,80.38,78.20,78.42,78.75, 78.85,75.76,82.50,77.74,79.11,76.48,79.47,80.76,80.19,77.66, 78.95,80.40,80.15,78.78,79.11,81.38,82.82,79.22,82.77,85.35, 80.98,82.84,81.81,79.97,82.29,81.72,84.27,80.24,80.87,80.34, 81.11,82.37,83.73,84.21,88.90,84.31,81.25,86.13,86.01,86.82, 82.27,86.85,82.06,84.20,84.87,86.52,88.69,88.87,86.04,87.22, 84.34,84.86,84.10,85.95,86.72,88.59,88.32,87.57,89.00,85.10, 87.21,90.12,85.54,87.35,89.90,87.35,87.07,89.37,88.34,92.03, 90.42,91.01,90.11,90.20,90.74,92.29,92.66,89.09,92.52,89.89, 16.24,17.74,18.75,18.79,19.08,20.70,21.07,21.29,22.57,23.24, 23.05,23.65,25.00,26.09,25.26,25.58,27.16,28.15,28.05,28.69, 28.39,28.45,28.60,30.80,31.09,31.50,30.83,31.49,31.91,32.61, 31.95,33.93,32.22,35.29,34.38,36.15,35.36,35.30,35.15,36.57, 35.80,37.15,38.83,37.89,38.27,37.84,38.81,38.55,39.07,39.35, 40.08,41.21,40.76,41.09,40.89,42.94,43.90,40.54,41.57,43.72, 43.42,44.19,44.34,44.50,45.14,45.85,44.98,44.78,48.16,47.03, 44.87,47.18,47.36,48.31,49.05,48.28,47.85,49.45,47.61,49.39, 51.69,50.21,52.69,50.33,49.98,53.24,51.36,51.19,51.12,52.71, 50.25,54.20,52.69,52.39,53.54,52.54,52.92,54.81,54.43,53.28, 55.52,57.27,57.54,54.73,54.97,54.99,56.55,56.78,56.06,57.74, 56.18,59.45,57.73,59.49,60.08,58.78,61.26,59.70,60.64,60.68, 58.49,58.66,58.47,60.78,59.45,60.82,59.93,60.77,61.26,62.26, 63.37,62.48,63.95,62.08,60.94,60.57,62.86,61.09,67.10,65.76, 64.24,65.07,64.63,62.56,65.50,63.57,62.93,62.21,62.57,65.87, 64.76,66.25,64.97,67.35,67.92,67.23,65.23,65.34,67.08,67.76, 69.79,66.62,70.09,67.63,68.39,67.04,70.83,68.08,67.01,67.18, 68.30,65.39,72.02,71.78,71.12,70.13,68.84,70.63,73.27,69.33, 72.18,74.03,72.42,70.08,70.99,72.07,72.12,72.77,74.15,72.43, 70.68,74.06,71.39,73.98,73.08,75.99,73.82,75.95,76.66,74.65, 77.12,76.29,77.16,75.27,74.59,75.05,79.04,77.22,76.95,80.00, 80.64,80.54,76.47,75.27,77.34,78.36,75.06,78.95,78.25,78.27, 77.37,77.00,79.53,80.31,82.08,82.14,79.70,82.22,79.88,82.26, 79.14,78.13,81.45,82.46,82.96,79.36,79.80,83.80,82.29,80.48, 82.90,79.30,84.75,82.83,82.85,84.58,84.78,83.20,83.98,85.24, 86.64,84.50,81.98,84.53,87.18,85.01,86.05,83.20,88.54,85.48, 84.04,87.94,86.61,85.75,84.44,85.95,85.57,85.25,88.12,87.27, 86.26,87.85,88.08,90.00,89.58,89.72,85.74,87.02,91.67,86.27, 91.22,90.34,89.62,87.90,87.55,88.60,92.02,89.55,87.73,91.55, 16.70,16.88,17.90,18.20,19.29,20.18,20.91,20.66,22.38,21.37, 22.68,24.89,22.77,24.61,24.60,25.57,25.71,26.07,26.27,28.38, 27.44,28.51,29.59,29.00,30.80,30.26,30.51,30.63,29.95,31.25, 31.39,32.97,33.58,32.76,34.63,34.20,34.27,34.99,35.22,34.76, 35.08,36.34,37.92,36.79,36.48,38.27,37.65,37.18,39.42,37.81, 39.18,40.96,39.64,38.72,42.23,41.11,42.64,40.63,41.36,41.83, 42.98,41.67,42.56,43.04,41.14,44.19,43.41,44.12,44.00,46.20, 44.61,45.63,45.23,45.78,47.99,46.85,45.60,47.21,47.66,45.92, 48.92,48.90,49.02,50.56,47.74,50.27,49.58,50.15,51.52,48.85, 51.60,54.15,52.56,52.64,51.29,53.25,51.00,51.47,52.13,52.10, 54.16,53.82,55.66,52.77,53.82,53.45,54.22,57.05,55.25,53.95, 54.70,55.51,54.78,55.73,55.31,57.38,58.07,57.68,56.95,56.71, 58.52,55.94,57.02,57.71,58.56,57.11,58.24,58.53,59.50,64.24, 60.82,62.55,58.08,60.86,59.40,61.53,63.64,62.24,62.34,62.25, 61.98,60.60,62.47,63.31,62.15,60.05,66.18,62.90,62.15,63.44, 62.52,64.63,64.64,63.22,65.24,66.35,61.34,63.78,68.74,65.25, 66.17,70.40,64.03,67.38,68.27,68.86,66.19,68.56,64.49,66.63, 68.58,67.89,65.89,68.16,70.70,65.31,70.41,67.72,68.06,67.57, 69.05,66.77,71.72,69.45,69.02,69.69,71.29,71.98,69.24,70.59, 71.04,72.16,71.28,72.86,68.55,73.40,72.01,71.76,72.33,72.93, 75.33,74.27,70.73,73.37,72.66,72.49,73.37,74.39,75.06,74.62, 75.82,72.09,73.69,75.72,75.07,77.00,74.84,75.98,75.56,73.87, 75.59,77.45,78.13,77.30,78.12,75.46,77.14,79.05,75.96,76.87, 77.47,78.90,79.55,74.83,78.22,77.16,78.74,78.80,79.21,76.04, 80.04,78.64,78.85,82.81,81.62,79.74,82.31,81.66,83.08,84.20, 82.77,81.60,82.28,80.83,82.78,82.25,81.28,78.77,83.30,82.46, 82.17,80.11,82.88,82.24,80.31,83.82,84.27,82.43,82.86,84.76, 84.69,85.52,84.11,86.35,82.06,85.48,86.19,86.61,83.32,88.15, 87.13,83.16,82.13,89.30,87.60,90.46,85.61,88.20,88.75,86.24, 16.14,16.61,18.04,18.55,18.76,18.89,20.25,19.87,21.02,21.56, 22.35,21.76,22.82,24.13,24.21,24.39,25.94,26.12,25.69,26.26, 27.06,28.12,27.39,27.78,29.10,30.37,28.40,30.53,31.31,32.46, 30.81,31.76,32.41,32.46,33.20,30.93,33.22,34.05,34.02,33.80, 35.51,35.84,36.54,36.79,37.35,36.45,36.06,35.92,36.69,37.65, 39.07,37.83,37.77,40.72,39.08,38.03,41.13,41.11,40.36,40.64, 42.64,41.52,42.50,41.71,40.34,41.89,42.34,44.13,43.70,41.81, 44.77,44.40,44.45,42.01,45.33,45.34,45.78,43.67,46.31,45.95, 46.18,47.33,47.88,47.04,46.94,48.43,47.23,49.45,48.53,49.16, 50.71,47.99,49.84,51.05,48.75,49.69,50.38,51.37,50.77,50.76, 48.81,51.13,50.49,52.11,50.78,54.20,51.05,53.05,52.73,54.76, 54.67,54.06,54.08,54.66,55.42,53.46,56.10,56.91,56.30,55.08, 54.09,57.84,58.13,54.73,56.73,56.34,57.06,57.28,58.70,56.80, 58.26,58.16,59.78,57.96,56.93,58.74,58.36,62.44,60.12,60.17, 61.11,61.59,59.82,61.95,59.35,62.72,61.19,63.07,61.18,63.78, 62.13,63.04,62.69,62.86,62.72,63.19,64.67,63.06,62.42,59.38, 63.97,64.04,64.51,64.25,63.41,65.87,67.03,66.59,64.13,65.04, 67.12,65.74,68.24,66.00,63.19,64.38,64.74,66.85,67.48,64.33, 66.79,71.51,67.08,67.08,68.77,66.33,68.22,68.81,68.84,70.06, 66.57,68.24,68.70,69.96,70.35,68.67,70.57,73.08,73.42,71.38, 70.54,72.91,71.02,71.88,70.12,70.37,74.97,74.71,72.79,75.19, 75.01,71.47,74.31,72.56,76.63,72.04,74.82,74.45,78.07,72.79, 77.02,75.37,75.27,72.97,76.17,74.45,77.26,77.03,72.95,73.40, 73.91,73.92,77.25,74.74,71.81,75.89,74.40,75.18,76.84,76.00, 78.04,78.37,77.57,76.85,74.79,77.43,77.61,77.75,78.39,77.59, 78.98,79.17,79.58,77.62,77.18,79.35,77.18,79.52,80.72,79.15, 80.67,78.69,82.39,79.20,78.16,83.31,85.00,78.69,84.00,80.86, 82.18,81.42,81.91,81.11,81.20,85.92,82.19,78.16,77.77,81.27, 82.77,82.91,83.95,85.18,82.37,84.80,85.26,84.53,85.02,81.88, 15.15,15.67,17.00,17.62,17.34,17.97,18.98,19.20,20.16,21.77, 21.42,22.06,22.75,23.00,23.43,23.04,25.14,25.42,24.52,26.53, 26.92,26.47,26.44,27.36,28.39,28.39,27.93,28.59,29.70,30.31, 30.63,31.08,31.81,30.30,31.84,32.09,30.59,32.08,32.99,32.59, 33.66,33.99,34.19,33.64,34.83,34.94,35.32,38.09,36.09,37.39, 36.24,37.80,37.72,37.06,37.08,37.42,37.63,39.44,37.60,39.48, 40.03,39.53,39.56,39.57,41.12,42.61,41.36,40.16,41.74,42.48, 41.19,42.12,41.27,42.11,43.70,44.95,45.07,43.77,44.38,45.69, 44.28,45.80,45.31,44.80,45.50,44.22,45.44,46.63,45.19,45.47, 47.09,46.13,46.05,47.14,48.08,47.86,48.04,48.95,50.64,51.89, 48.09,51.22,49.58,50.40,50.46,52.65,50.25,50.51,49.76,52.08, 51.52,52.04,52.25,52.18,51.75,52.09,54.36,53.77,54.76,55.00, 54.73,53.99,53.10,56.23,53.95,56.45,57.47,53.95,55.98,57.00, 56.26,56.43,54.92,57.58,55.63,58.51,57.08,54.83,58.88,57.76, 55.06,60.39,58.03,58.38,59.41,58.95,58.36,57.76,58.41,57.90, 58.85,59.58,58.44,59.10,58.37,60.81,63.84,61.36,60.23,62.20, 61.10,58.83,59.80,64.12,63.32,63.91,62.12,63.44,61.67,62.52, 63.69,63.21,64.78,64.12,64.59,64.32,63.44,67.06,64.63,64.52, 66.21,63.07,64.36,67.21,68.50,64.13,69.81,66.02,66.22,66.45, 67.06,67.83,66.57,68.16,68.06,67.40,64.73,68.63,68.27,69.84, 66.68,68.87,70.48,70.07,67.84,72.24,67.28,67.55,69.38,70.53, 71.13,70.82,68.21,71.60,71.16,68.64,71.13,71.33,71.93,72.74, 69.27,69.00,72.04,71.73,69.93,72.68,70.13,73.19,74.27,71.70, 72.60,71.55,73.37,75.45,75.08,71.02,73.98,74.69,71.40,72.97, 71.82,73.15,75.68,74.39,76.34,77.44,74.15,76.06,75.97,75.87, 76.55,78.11,76.65,77.57,75.88,76.56,75.20,75.98,72.85,77.05, 77.76,74.99,77.89,76.33,78.09,80.48,74.95,79.82,78.93,77.83, 79.25,79.89,81.25,80.19,79.38,79.36,78.71,82.62,79.11,81.52, 80.39,83.80,78.34,82.28,81.79,84.60,84.01,80.75,82.93,81.02, 14.73,15.07,16.35,16.38,16.84,17.33,18.72,18.65,18.98,18.75, 20.07,20.61,21.37,22.71,22.75,22.25,23.38,23.31,23.34,24.43, 26.25,25.27,26.53,25.84,25.22,28.46,28.50,27.96,28.44,29.30, 28.88,28.63,29.46,30.10,29.46,31.87,30.49,32.14,32.13,31.81, 31.47,33.93,32.70,33.27,33.99,33.74,35.64,34.57,34.12,33.62, 33.70,34.46,34.81,37.87,35.86,35.66,37.78,35.72,37.80,36.96, 37.86,36.99,40.18,38.98,38.40,39.21,38.73,39.74,39.83,40.07, 41.15,40.22,40.71,42.28,43.07,40.57,43.03,42.79,43.34,41.70, 43.46,41.62,44.66,42.53,42.28,44.08,44.02,43.62,46.45,42.47, 46.46,47.09,44.09,44.81,46.62,44.75,46.27,46.55,47.84,46.45, 46.74,44.83,46.49,49.25,46.49,48.09,48.36,48.48,48.70,46.17, 48.79,49.81,50.14,50.39,50.97,49.87,51.42,52.11,51.12,49.35, 49.92,49.87,50.16,51.50,48.96,53.82,53.13,52.52,53.26,53.71, 51.96,54.60,51.89,52.72,52.63,54.53,57.67,55.46,53.28,58.53, 59.45,55.29,54.81,53.87,56.52,55.45,58.06,57.15,55.34,56.22, 57.62,58.49,55.48,57.39,56.24,59.98,59.02,57.84,57.10,56.89, 60.85,59.18,59.46,59.94,58.57,59.80,59.46,59.90,60.16,58.06, 61.16,61.48,61.81,62.32,63.07,63.33,61.23,61.27,61.07,58.82, 60.59,64.79,61.29,63.42,62.68,63.05,60.95,61.76,64.85,64.20, 63.09,63.65,62.61,64.07,64.59,64.86,65.48,64.70,68.17,66.51, 64.51,67.91,65.01,67.18,66.82,64.26,67.01,63.37,64.01,66.54, 66.92,66.32,67.00,65.08,65.93,67.38,67.66,65.98,63.46,65.38, 64.63,65.92,70.37,70.13,68.01,66.84,67.97,69.76,68.05,66.84, 72.15,69.98,71.25,70.64,71.72,73.19,71.08,70.24,69.85,70.38, 71.56,71.73,71.72,72.34,68.75,73.22,70.71,73.58,71.36,71.30, 75.62,75.58,72.34,72.59,72.71,70.29,73.34,74.98,73.05,73.37, 72.61,73.94,71.00,73.74,75.28,74.26,74.33,77.13,75.61,76.20, 75.78,73.71,74.06,77.59,78.14,73.48,76.28,76.58,76.74,76.45, 77.34,77.59,77.92,78.67,77.54,80.94,77.19,74.53,78.02,78.21, 14.48,14.63,15.10,15.53,16.12,17.21,17.26,18.28,19.08,18.88, 19.22,19.01,20.32,20.93,21.31,21.61,22.07,22.49,22.80,23.65, 24.07,24.18,24.89,25.11,26.13,25.38,25.25,26.63,27.19,27.15, 27.12,27.70,27.50,27.42,28.08,29.16,29.26,30.65,29.58,29.42, 29.61,31.39,29.57,31.84,30.74,31.37,31.81,32.51,33.18,32.88, 33.08,32.68,33.75,33.59,34.29,34.07,34.14,35.03,36.82,36.82, 35.80,34.95,36.48,37.58,37.85,36.90,37.95,38.54,38.03,36.61, 39.07,38.30,39.21,38.19,38.53,40.90,38.48,40.36,41.59,41.82, 42.55,40.26,40.57,42.72,38.30,42.29,41.21,41.98,41.72,43.41, 44.07,44.25,43.55,45.03,44.79,47.44,42.94,44.58,43.52,44.20, 43.13,43.76,44.60,45.70,45.46,46.95,47.70,45.87,47.33,48.78, 47.40,49.03,46.23,47.35,46.92,48.73,48.43,48.07,48.06,49.39, 49.23,50.68,50.61,50.04,50.00,51.34,49.94,50.23,49.28,50.78, 52.31,50.52,51.00,50.94,51.22,50.64,53.03,53.23,52.10,53.22, 52.40,52.99,51.18,54.16,52.04,54.30,53.80,52.30,53.75,54.19, 54.95,54.28,55.32,55.57,56.24,55.61,54.48,54.22,55.74,54.03, 53.40,58.01,54.80,54.96,56.29,56.39,57.15,56.65,54.91,57.39, 58.44,57.10,60.12,57.29,58.97,58.28,58.40,56.99,60.09,58.38, 58.29,57.65,58.76,58.98,59.11,59.64,59.80,61.39,58.61,60.82, 60.32,60.80,59.34,61.70,60.17,60.53,63.75,62.37,61.62,61.62, 62.50,62.42,61.55,61.89,62.84,65.93,63.44,63.65,63.32,64.91, 63.74,63.36,64.82,63.60,61.99,64.41,63.64,66.69,64.43,63.33, 65.12,64.08,64.60,66.43,64.71,64.11,66.46,63.43,67.45,65.15, 67.98,68.63,65.61,66.63,65.11,66.61,65.74,67.81,64.67,66.22, 66.73,66.75,69.21,69.80,69.37,68.81,69.32,68.65,66.85,69.48, 66.97,71.93,70.62,72.53,70.99,70.94,71.91,71.50,69.67,70.80, 72.43,69.13,70.58,68.14,71.80,72.26,69.33,70.86,73.69,71.25, 71.30,72.29,68.33,70.24,70.40,72.69,73.42,73.26,74.66,72.71, 72.02,72.43,72.50,75.15,75.07,75.17,72.91,72.18,72.43,75.39, 12.93,14.17,14.43,14.65,15.85,16.76,16.69,17.04,17.43,17.85, 19.05,18.99,19.29,19.64,20.84,20.74,21.13,21.88,21.67,22.24, 22.68,22.35,24.10,23.65,23.69,23.59,25.19,25.98,25.96,25.24, 26.05,26.22,26.49,27.11,27.08,27.93,27.81,28.00,27.90,28.98, 28.72,28.56,28.80,28.55,28.68,28.93,31.43,29.82,30.97,30.02, 32.28,32.62,31.77,32.00,32.21,32.23,32.27,32.93,32.19,34.23, 33.23,33.26,33.33,34.91,34.52,34.60,34.96,36.35,35.08,35.46, 35.97,38.21,37.52,37.47,37.82,39.14,37.19,37.57,37.85,38.78, 37.62,39.16,40.92,38.10,40.17,39.58,39.06,41.26,38.55,40.31, 40.36,43.32,41.12,39.88,40.01,41.49,42.58,41.41,44.11,40.91, 41.47,41.94,42.03,44.09,43.96,44.30,44.92,43.50,45.10,44.34, 45.08,44.01,44.55,46.27,46.90,44.76,44.25,45.33,45.33,46.68, 47.60,46.72,49.07,47.43,47.19,46.45,48.52,48.33,46.39,46.94, 46.21,48.09,49.74,47.74,48.71,48.91,48.64,49.04,50.12,51.70, 49.53,51.86,51.16,49.25,50.78,48.15,49.57,50.77,51.07,52.84, 50.87,51.35,49.91,52.02,52.67,51.54,50.40,51.97,54.16,53.50, 51.89,51.35,53.23,55.19,52.44,54.09,51.74,54.14,54.67,52.80, 53.72,56.26,53.69,56.01,54.50,55.55,54.45,55.39,54.02,56.11, 56.01,55.75,57.97,54.34,56.01,56.66,57.55,58.21,54.78,56.29, 58.50,58.72,59.46,57.21,57.57,56.66,57.92,58.80,59.36,57.72, 60.36,59.15,58.72,59.47,59.79,60.29,61.08,60.56,60.20,60.08, 61.11,58.50,62.45,57.03,60.15,60.06,60.92,60.07,62.93,60.52, 63.31,61.55,64.31,62.77,62.55,62.45,63.85,65.45,63.47,60.44, 62.80,63.88,63.38,66.88,63.24,63.44,63.28,64.77,64.33,63.07, 64.74,64.76,66.53,66.01,65.55,62.76,65.54,63.70,66.04,66.12, 64.71,66.40,64.94,67.54,66.42,68.19,66.15,67.76,65.46,66.56, 67.27,66.38,65.84,68.37,66.13,69.19,66.04,66.47,69.01,68.29, 69.41,63.87,70.29,68.97,66.95,66.39,68.05,67.46,69.38,70.81, 68.45,71.46,72.05,70.70,68.54,70.68,69.26,71.18,71.48,69.75, 12.39,13.38,13.81,14.15,13.90,15.05,15.80,16.94,16.95,17.38, 17.50,17.60,18.09,18.84,18.17,18.90,19.72,19.72,20.03,19.64, 21.00,20.67,22.37,23.17,23.32,22.55,23.91,23.08,22.39,23.53, 24.00,25.38,26.06,25.92,25.77,25.31,25.38,27.36,26.54,28.39, 26.87,26.69,27.87,27.77,28.72,28.92,29.06,28.52,30.01,30.58, 30.26,30.82,30.26,30.20,31.00,32.29,31.92,31.15,33.54,32.18, 31.69,33.49,32.59,32.13,33.45,32.99,35.17,35.19,34.61,34.55, 32.84,34.86,34.33,36.43,36.94,35.46,35.19,36.33,37.22,35.70, 36.54,37.45,37.23,37.61,38.89,38.45,37.11,36.99,38.02,37.48, 38.04,39.05,39.70,39.25,38.27,37.95,39.53,39.13,39.14,39.69, 42.40,39.12,41.05,40.79,39.61,41.87,41.52,40.41,41.94,41.90, 42.27,43.08,43.11,42.09,43.62,43.98,42.53,42.39,42.10,43.85, 44.99,44.27,44.63,44.72,43.47,45.34,44.19,44.42,44.23,45.49, 45.73,43.40,45.71,44.56,47.47,47.10,46.06,44.81,48.43,47.76, 47.13,46.86,46.20,46.99,49.23,47.20,49.03,48.46,50.41,47.79, 49.79,47.48,47.96,50.29,50.92,49.27,51.45,47.62,52.74,48.95, 51.46,50.18,51.33,50.91,50.87,51.63,50.36,49.68,51.44,53.45, 51.37,52.74,51.90,51.26,52.98,51.39,53.71,52.04,54.15,52.24, 52.46,54.88,51.88,51.97,53.78,53.88,56.09,53.20,53.97,54.33, 54.94,54.60,54.35,52.65,57.52,55.18,54.95,55.34,54.44,57.93, 57.32,54.54,56.14,56.15,55.37,58.05,55.14,58.08,57.17,56.25, 55.60,56.23,55.40,58.39,55.82,56.70,56.28,57.59,58.24,58.84, 60.59,57.26,56.41,60.83,57.15,57.95,59.00,58.70,60.77,60.91, 60.23,57.33,59.87,61.20,58.70,57.52,61.31,59.33,62.37,61.41, 61.83,59.88,58.62,60.53,62.92,61.50,60.41,62.75,64.44,59.87, 64.55,57.75,59.04,61.80,62.13,63.05,63.81,64.47,61.84,66.46, 62.19,64.33,65.54,60.95,64.63,63.33,63.45,63.02,65.66,65.48, 66.46,62.40,64.42,64.29,66.57,65.98,65.50,66.08,65.05,66.44, 66.16,65.85,65.52,65.27,64.88,63.10,66.69,68.42,67.09,65.84, 11.54,12.06,13.34,13.77,14.18,13.81,15.20,14.19,16.23,16.43, 16.13,16.90,17.56,17.65,17.07,18.13,18.48,19.23,20.03,19.57, 19.08,20.78,20.58,20.32,20.77,21.41,21.36,22.71,22.23,21.97, 23.07,24.00,24.19,23.71,24.33,23.79,24.88,24.23,24.46,25.40, 25.45,26.16,26.47,25.97,26.31,27.24,27.97,28.54,28.10,27.59, 29.23,27.69,28.22,29.75,28.33,29.02,30.58,29.60,29.58,30.80, 29.22,30.41,32.46,30.50,31.57,31.81,29.66,31.67,34.14,32.30, 33.21,31.83,33.43,32.95,33.52,33.46,34.69,33.95,35.30,33.98, 35.49,35.28,33.89,34.88,36.40,33.68,34.95,35.36,34.89,36.34, 34.51,36.47,38.26,36.69,38.95,37.27,39.21,38.60,37.94,38.67, 37.68,37.04,38.51,37.47,38.64,38.06,39.56,39.68,39.83,38.50, 40.43,40.25,40.70,39.83,40.14,41.74,40.51,39.47,40.40,42.35, 41.81,41.95,41.49,42.01,43.21,41.70,43.44,43.63,44.75,42.75, 43.05,42.52,42.65,43.20,45.34,44.83,43.15,43.70,43.92,42.06, 44.15,42.92,46.06,44.79,42.82,45.73,45.89,44.90,43.90,46.59, 46.81,45.59,44.98,43.84,46.89,46.65,46.58,46.13,48.74,46.44, 46.87,48.42,45.90,47.79,48.45,48.65,48.94,48.84,48.90,48.55, 47.21,49.02,48.10,48.48,49.87,50.28,47.49,49.45,49.49,51.53, 51.33,49.62,47.80,49.17,52.70,52.48,49.53,51.75,48.58,48.73, 51.15,53.22,52.18,52.37,50.43,51.25,53.40,52.24,50.22,53.52, 52.64,51.08,54.64,52.14,53.22,53.65,53.28,56.07,53.93,50.77, 53.39,54.13,52.66,53.62,52.73,55.01,52.85,54.17,52.71,56.61, 54.77,54.68,54.91,56.11,56.01,55.30,53.79,54.94,56.44,56.96, 57.47,56.07,56.08,53.47,55.73,55.54,57.13,55.03,54.97,58.73, 55.24,54.70,57.33,56.29,56.54,56.16,57.22,56.82,59.21,57.47, 58.18,59.69,59.75,59.96,57.09,54.31,61.48,60.65,61.03,57.64, 60.46,59.26,59.98,58.53,61.98,61.65,61.58,61.08,57.71,61.08, 61.04,59.90,60.21,62.60,62.42,61.27,60.50,61.88,60.53,61.51, 61.13,63.63,59.84,63.81,61.53,59.10,62.51,59.89,62.61,60.23, 11.08,11.15,12.35,12.84,12.88,12.95,12.88,14.03,13.90,15.28, 15.48,15.85,16.19,16.20,16.37,17.84,17.58,17.82,18.13,17.81, 18.42,19.34,19.49,21.15,19.45,20.35,20.41,22.24,21.63,21.50, 21.08,21.79,21.49,21.91,23.31,23.64,22.65,23.48,22.40,23.78, 25.46,25.91,24.20,25.36,25.49,25.76,25.27,25.64,26.55,25.23, 26.40,28.98,28.05,27.57,26.56,27.65,27.96,27.81,28.31,28.43, 28.69,30.09,30.08,29.87,29.84,30.16,28.40,31.15,29.70,30.72, 29.94,30.98,30.28,29.90,32.77,31.71,30.47,32.21,32.13,32.72, 31.64,31.37,32.75,32.73,33.57,33.60,33.48,34.77,34.52,33.62, 33.18,33.30,34.90,36.09,33.94,34.70,34.25,35.16,37.22,35.44, 33.95,35.24,36.86,35.59,35.37,37.19,36.52,37.43,38.01,37.83, 37.84,37.56,38.19,37.72,38.40,37.31,38.58,37.67,39.59,38.84, 39.67,38.90,38.69,39.49,38.44,40.22,40.87,39.61,39.08,40.55, 41.51,40.74,40.61,42.00,41.22,42.04,41.73,40.23,40.91,40.35, 42.89,41.22,42.35,43.30,43.26,43.95,40.78,43.11,42.54,42.92, 41.74,43.72,42.34,41.38,43.09,41.35,42.52,46.45,43.35,44.19, 44.29,44.13,44.36,43.99,44.38,46.05,45.62,46.52,45.71,45.69, 46.82,45.58,45.69,46.26,45.87,45.96,46.90,47.43,48.24,47.06, 46.11,46.56,46.42,47.32,47.51,45.71,48.66,47.10,45.45,48.40, 48.76,48.07,49.05,48.82,48.59,49.09,49.59,50.42,48.48,50.49, 48.13,49.81,49.90,50.03,49.11,51.27,51.33,51.48,51.17,49.39, 51.13,51.18,50.82,51.26,49.51,51.47,53.62,52.40,51.08,49.02, 53.65,51.12,51.93,52.01,52.38,50.29,52.61,51.04,53.72,53.40, 53.39,53.81,53.00,53.20,53.25,51.44,52.24,56.09,53.55,55.25, 56.85,56.56,53.21,54.43,55.33,51.49,53.80,54.34,54.74,53.90, 55.11,58.13,52.87,54.45,54.37,57.01,57.62,55.90,55.18,57.13, 57.14,57.62,54.96,57.04,56.98,56.07,57.90,57.47,58.40,57.81, 57.18,57.08,55.04,56.13,57.66,55.75,57.07,56.88,57.99,57.67, 58.85,57.13,57.55,56.36,56.77,58.32,59.43,59.44,58.90,60.71, 11.00,10.85,10.57,11.65,12.42,12.91,13.07,14.29,13.90,13.53, 14.31,14.71,15.14,15.60,15.86,16.77,16.77,16.86,17.18,17.13, 18.71,18.08,17.77,17.92,19.04,20.00,18.57,19.33,19.69,20.47, 20.51,21.80,19.90,20.59,22.25,20.10,22.08,23.59,23.76,21.78, 21.80,23.61,23.50,23.49,24.01,22.89,24.01,25.42,24.74,25.63, 24.22,25.95,24.05,24.57,26.42,24.38,26.30,27.26,26.23,26.05, 28.18,25.83,26.19,27.16,27.62,28.95,27.98,28.29,27.23,28.50, 27.53,27.97,28.77,27.46,29.75,28.14,29.28,29.35,30.56,30.31, 30.68,30.99,28.95,30.21,30.20,30.92,31.10,30.90,31.94,31.61, 31.96,32.34,32.17,31.96,32.79,33.30,33.55,33.24,34.54,34.72, 32.46,33.84,34.20,34.00,34.96,36.45,34.64,33.84,33.62,33.32, 36.40,35.74,34.60,36.51,36.10,36.74,36.04,35.82,35.59,35.29, 36.93,37.88,37.58,37.13,37.15,36.80,37.42,37.55,37.73,38.83, 38.67,38.06,38.22,39.05,37.75,39.61,38.26,39.52,38.24,38.47, 39.60,39.86,38.95,38.51,41.77,40.21,41.72,40.40,39.82,38.65, 40.40,40.25,42.02,41.04,42.20,41.77,39.35,41.55,41.65,41.96, 41.73,39.88,43.86,40.94,42.73,42.71,41.98,42.85,42.71,42.24, 41.53,42.12,43.39,43.52,42.45,43.08,43.25,43.67,45.61,42.79, 43.25,43.20,44.58,44.27,45.18,44.09,45.16,44.96,44.55,45.30, 44.06,45.83,45.14,46.22,46.31,46.76,45.18,46.10,47.44,45.67, 45.70,46.12,44.77,47.94,46.89,45.79,47.47,46.18,47.77,49.15, 45.93,45.70,46.76,48.05,47.93,47.83,48.26,50.06,45.99,47.81, 49.04,49.53,48.44,48.38,46.51,49.92,51.79,50.40,49.81,49.76, 50.43,49.06,49.26,48.88,49.91,49.82,48.60,49.62,52.23,52.78, 48.56,51.57,52.09,51.02,52.22,51.92,52.32,50.48,51.61,52.61, 51.93,53.21,52.11,51.36,52.31,54.63,53.92,51.43,51.50,52.07, 54.47,52.99,53.02,53.34,52.02,53.28,54.48,53.70,52.57,54.18, 52.22,52.08,54.20,52.24,52.82,54.63,52.34,56.23,56.41,53.89, 53.83,56.93,56.96,53.84,56.01,55.83,56.45,56.69,54.48,54.80, 17.51,18.70,19.25,20.45,21.21,21.10,21.98,21.95,22.93,24.09, 24.41,24.17,25.44,26.48,25.17,27.32,26.77,28.25,27.20,29.22, 29.36,30.17,29.68,31.38,31.43,31.35,33.27,32.79,32.24,32.95, 33.80,35.10,34.94,35.06,36.00,37.25,36.11,36.35,37.27,37.30, 37.33,38.49,38.70,38.73,40.04,40.99,37.91,40.23,39.55,41.08, 40.87,42.27,43.14,41.41,42.59,43.31,44.62,43.60,42.70,46.06, 45.25,45.71,45.85,45.54,46.28,45.72,47.69,47.08,45.74,49.17, 47.99,46.62,49.19,49.66,48.17,48.99,50.76,49.21,49.74,48.49, 50.27,50.72,52.49,52.41,53.25,50.21,54.80,53.43,54.64,53.79, 53.79,54.79,55.20,52.83,53.50,54.30,56.04,53.75,56.30,54.98, 56.51,56.04,55.32,59.58,58.91,56.91,56.05,57.72,58.31,58.74, 59.20,58.64,61.13,58.54,58.67,58.59,57.79,60.64,60.70,59.75, 61.13,59.89,63.74,61.72,61.29,62.17,61.08,61.07,61.79,64.28, 62.07,62.18,62.87,61.84,63.95,62.33,66.42,65.23,63.11,65.38, 64.89,67.20,65.71,65.07,65.94,66.88,67.36,66.23,65.73,69.23, 65.74,67.56,68.50,67.32,67.34,69.35,68.34,68.63,66.58,66.53, 69.26,71.69,68.92,73.35,69.32,69.01,69.63,68.52,71.90,68.42, 71.92,73.07,71.64,70.85,72.20,74.33,70.93,72.11,70.14,72.75, 70.96,73.12,77.32,74.75,74.90,75.32,75.95,71.48,72.49,73.85, 74.57,75.37,74.85,74.96,74.09,78.42,76.84,76.99,74.48,74.88, 78.51,76.61,79.31,79.87,77.25,77.93,79.83,77.58,76.29,79.58, 79.52,79.23,80.23,85.28,76.52,75.47,79.77,78.54,78.95,78.93, 82.72,79.34,81.81,81.16,83.24,80.09,83.36,84.44,83.49,84.00, 82.89,81.28,84.45,86.19,83.18,83.96,82.18,84.47,80.60,84.67, 85.62,82.84,83.15,84.40,84.52,86.43,88.16,84.19,83.86,84.17, 85.57,88.43,86.52,86.41,86.87,84.49,85.77,86.67,88.23,87.67, 89.47,85.97,87.64,87.54,85.66,85.77,89.82,86.79,88.91,90.69, 88.69,92.93,91.22,89.96,91.79,90.62,91.47,92.80,92.25,91.59, 92.65,90.43,88.52,96.28,90.65,91.94,92.43,94.53,93.54,90.32, 18.27,19.72,19.90,20.40,21.05,22.87,21.79,23.38,24.17,24.87, 24.78,24.86,26.39,26.68,26.82,28.35,28.60,28.98,29.73,30.63, 30.01,31.10,32.16,30.74,31.97,31.68,32.95,33.01,34.53,34.01, 36.18,34.20,35.91,36.85,37.00,37.26,37.39,38.16,38.80,38.50, 38.91,38.98,37.32,38.09,39.23,42.05,40.38,40.64,41.75,40.56, 42.26,43.26,44.21,44.17,43.60,43.89,43.55,45.47,45.49,44.11, 45.66,46.36,45.87,46.40,47.23,46.69,49.23,47.27,48.50,47.90, 48.83,48.81,47.71,49.65,50.41,48.99,49.44,52.82,50.82,51.36, 49.87,52.59,51.85,54.45,53.01,53.05,53.92,53.61,55.08,54.20, 53.36,55.69,55.04,55.46,56.55,55.84,57.80,55.96,55.73,59.61, 58.60,58.13,59.05,61.37,58.55,56.60,61.32,57.73,57.56,58.41, 60.48,61.82,58.82,60.93,60.77,60.36,60.35,62.18,61.95,61.95, 62.32,63.90,62.18,63.31,64.18,63.14,63.04,63.12,66.70,65.74, 65.24,65.34,63.37,64.13,65.51,67.64,63.78,65.76,66.22,67.04, 67.89,66.74,66.42,68.88,65.47,67.89,65.16,69.42,67.74,69.40, 69.81,69.61,71.01,72.06,70.49,70.41,71.60,72.47,72.01,73.46, 69.88,71.67,69.96,71.08,73.63,70.17,72.43,72.58,74.04,74.19, 73.06,74.89,70.91,73.02,76.36,74.79,72.86,73.41,77.13,76.95, 74.26,75.67,72.59,75.29,70.88,76.43,76.61,77.46,79.39,75.49, 74.89,76.43,74.87,78.82,77.14,77.83,79.05,78.63,79.31,77.01, 80.10,79.62,81.78,81.83,80.15,79.47,78.92,79.79,78.49,80.66, 81.89,82.55,82.52,81.78,79.64,80.87,81.69,81.45,79.19,82.50, 81.84,84.60,79.82,83.37,83.03,84.78,83.11,87.10,83.36,85.02, 84.67,86.08,82.68,86.03,82.95,85.39,86.17,86.06,86.31,85.96, 86.29,84.26,85.93,91.02,87.40,91.01,90.90,86.63,91.63,90.59, 87.94,86.19,87.92,86.74,88.29,91.03,88.98,88.45,91.85,87.08, 89.17,89.75,92.21,92.98,88.01,88.33,91.73,90.53,89.46,88.79, 92.26,91.60,87.61,92.15,91.28,90.56,93.05,93.64,94.25,91.37, 94.12,90.43,97.48,90.04,93.52,95.93,94.45,93.71,92.19,95.67, 18.27,18.65,19.91,20.61,20.76,21.90,23.18,23.45,24.00,24.61, 25.62,25.92,26.84,26.87,27.34,28.48,28.31,27.54,30.39,29.75, 29.64,32.11,31.91,33.73,31.56,33.15,33.59,33.82,33.40,34.65, 35.41,35.05,36.38,36.21,36.47,36.41,38.12,37.20,38.38,39.60, 40.42,40.55,41.34,39.89,42.07,41.33,41.69,42.53,42.17,41.42, 43.20,43.37,42.97,43.38,45.55,45.18,44.79,46.30,44.24,46.19, 45.98,45.50,47.27,47.02,48.27,45.97,47.79,48.91,46.88,48.71, 47.68,49.69,48.78,50.07,50.45,51.45,50.59,49.64,52.06,50.41, 49.99,51.37,52.90,55.13,53.87,54.27,52.53,55.51,54.49,55.92, 55.59,55.03,55.58,56.75,55.68,57.05,56.69,55.33,58.16,58.09, 59.28,54.46,59.08,57.43,59.32,59.17,60.15,59.41,61.45,59.55, 62.31,60.56,56.83,61.04,61.36,59.81,60.58,62.91,63.60,63.86, 62.77,63.51,62.71,63.15,65.58,65.12,63.73,65.42,64.00,64.28, 66.71,66.26,66.21,65.81,65.00,65.94,66.74,67.52,64.51,67.53, 67.53,71.19,68.99,66.02,69.03,67.54,66.96,71.66,68.46,71.61, 71.04,72.54,69.01,72.85,69.47,69.85,69.91,70.57,71.20,70.32, 71.76,70.52,70.57,72.67,74.69,73.18,75.86,72.14,71.76,70.64, 75.24,74.14,74.45,75.04,74.90,75.35,75.27,76.56,77.37,76.80, 74.89,77.53,74.55,77.76,75.11,78.82,77.86,77.28,74.63,76.05, 80.52,76.46,81.04,76.49,80.25,76.75,79.13,78.74,78.82,81.40, 79.98,80.85,77.98,78.39,81.40,80.60,81.10,82.53,79.00,82.18, 78.54,78.35,81.09,78.57,82.96,83.65,83.03,84.10,83.56,79.89, 85.02,82.19,82.12,82.94,84.82,85.79,88.48,83.04,83.97,83.34, 88.41,87.76,87.60,85.80,88.94,87.48,83.04,85.26,86.70,87.88, 81.05,88.83,87.15,85.07,85.21,87.36,87.32,88.49,87.55,89.83, 88.36,90.43,87.89,88.68,87.41,88.19,88.53,88.46,89.72,92.06, 90.51,87.79,88.23,95.35,89.30,89.38,93.37,89.94,93.23,93.99, 94.79,93.49,94.46,91.54,96.24,90.21,92.30,93.30,93.04,93.12, 91.43,91.54,96.67,94.29,92.19,93.42,95.07,97.97,93.49,95.49, 18.37,19.14,19.39,20.54,21.32,21.53,21.42,22.56,23.99,24.44, 25.46,25.52,25.79,25.96,26.78,28.27,28.42,28.35,29.18,29.40, 30.28,30.07,32.13,32.66,33.06,31.95,33.65,34.28,33.35,35.52, 36.06,36.45,35.14,36.97,37.97,37.06,37.39,37.42,38.21,39.20, 40.08,39.35,40.51,41.51,40.83,41.56,39.67,40.85,43.64,41.63, 43.97,43.68,41.72,45.44,43.85,45.35,45.02,42.26,45.86,45.94, 49.01,47.70,47.33,47.98,45.85,47.37,47.49,48.27,50.48,49.36, 48.98,50.99,51.60,50.47,51.93,52.65,51.33,50.52,49.84,52.80, 53.43,51.98,51.74,51.49,53.46,54.95,53.08,57.54,55.78,55.45, 55.90,56.11,55.08,55.12,56.36,57.08,55.09,55.84,56.15,59.78, 56.13,58.62,59.34,57.29,58.36,59.95,58.65,60.13,59.20,60.76, 58.31,58.17,61.75,60.10,62.98,60.42,59.92,63.08,61.36,61.07, 62.72,61.11,63.76,63.63,63.85,61.24,64.89,64.57,65.74,64.79, 62.54,65.64,64.67,63.72,65.71,66.71,69.39,67.00,66.59,67.38, 68.58,69.19,65.76,66.58,69.44,69.28,67.50,71.43,70.52,69.56, 68.34,70.91,66.72,72.20,69.51,72.76,73.35,68.87,70.83,72.69, 69.23,73.09,75.59,72.21,73.03,73.05,73.67,73.35,70.92,73.90, 73.78,77.74,74.99,74.54,76.01,75.70,75.35,74.54,75.56,77.02, 76.75,74.27,75.11,75.02,78.71,78.98,78.24,75.88,78.67,77.09, 76.70,76.52,77.62,79.05,76.19,79.88,77.24,81.45,81.81,77.01, 78.93,80.67,77.75,80.63,80.60,79.84,81.47,82.76,80.51,80.04, 80.21,82.92,80.97,82.96,82.30,83.00,81.85,82.74,79.42,85.73, 83.84,84.72,86.34,82.20,85.80,83.69,85.83,82.63,83.60,86.28, 85.39,84.45,85.07,88.70,85.73,86.48,85.03,86.73,87.40,87.81, 85.78,85.59,89.05,85.67,85.05,86.37,86.96,88.64,89.74,88.69, 90.01,91.87,88.64,86.97,89.04,93.45,92.70,86.51,93.23,92.07, 91.09,92.76,89.07,88.10,90.75,92.72,93.50,90.32,90.04,91.28, 93.02,94.86,91.08,91.37,87.70,95.14,93.41,87.20,91.04,91.40, 96.81,90.62,98.04,91.00,93.09,94.26,94.60,91.91,95.37,91.87, 17.95,19.25,18.95,20.53,21.21,21.80,21.95,23.63,22.83,24.08, 25.79,25.82,25.91,26.79,26.30,26.87,27.74,27.67,29.23,30.07, 30.93,30.87,31.18,31.17,33.13,32.55,32.88,33.42,32.63,35.60, 35.39,34.64,34.96,37.37,37.26,38.31,37.14,37.24,38.17,37.35, 38.31,39.11,38.47,39.65,38.87,41.26,40.70,41.25,41.71,44.51, 43.65,41.40,42.46,44.68,42.98,43.33,44.94,46.03,46.89,45.45, 46.02,46.94,47.05,46.82,47.51,48.79,47.88,47.03,49.99,48.98, 47.81,47.18,50.10,49.37,48.97,49.64,52.01,51.42,53.96,52.59, 53.24,52.31,51.39,52.74,52.02,50.52,53.83,55.96,51.75,54.35, 53.43,56.54,53.27,53.79,56.14,58.18,55.63,57.74,55.37,56.66, 56.48,58.34,59.61,58.92,59.07,58.99,57.10,57.63,58.27,60.21, 60.39,59.15,61.38,60.00,60.90,60.44,62.72,59.44,62.64,62.23, 63.60,64.00,61.38,62.74,64.65,62.46,65.47,62.33,61.79,61.03, 64.91,62.78,64.52,64.73,66.60,65.44,68.15,66.17,66.74,66.11, 66.76,71.36,67.97,68.23,64.59,66.97,66.70,68.25,69.13,69.28, 70.49,71.25,68.87,65.79,68.97,70.35,71.22,70.55,70.87,70.68, 70.84,73.45,70.08,72.46,70.45,74.31,73.87,72.63,71.34,73.59, 72.94,71.99,75.36,71.43,74.04,75.31,76.19,71.53,76.14,74.96, 74.90,73.78,76.58,75.09,73.89,74.92,76.73,75.00,75.19,76.61, 79.09,77.20,78.64,79.08,80.39,81.01,79.74,76.35,79.33,82.22, 79.17,78.84,78.78,77.09,77.68,81.91,81.81,83.04,85.67,80.12, 79.55,86.27,79.86,80.64,80.93,79.61,83.30,83.10,81.90,80.70, 82.99,85.44,82.71,82.26,83.72,83.75,81.06,84.58,86.59,86.04, 84.53,82.49,82.96,86.61,82.74,84.50,83.78,84.07,82.39,85.83, 85.54,85.26,86.56,86.45,84.90,88.48,85.61,88.36,87.30,86.66, 84.96,85.39,88.23,89.51,90.37,90.59,86.77,86.98,86.32,88.45, 91.10,90.65,92.95,88.89,91.56,91.28,89.68,87.21,90.88,92.08, 86.48,92.28,92.87,91.67,95.50,94.20,92.23,91.73,93.57,91.31, 91.74,96.71,94.11,91.01,93.27,92.13,92.91,90.82,94.96,95.84, 17.06,17.89,18.82,20.21,19.88,20.17,22.13,22.91,22.98,23.63, 24.82,24.64,24.75,25.56,26.10,26.66,26.85,27.29,29.31,28.90, 31.63,28.79,30.39,30.38,31.94,33.13,33.58,33.93,33.75,33.33, 33.85,33.20,35.28,34.73,35.99,36.94,37.44,37.72,37.11,37.77, 37.78,39.26,37.70,39.31,39.71,41.17,38.71,41.02,41.01,41.22, 41.49,41.31,42.93,42.47,43.37,44.89,44.23,43.44,43.44,44.83, 44.83,44.66,43.37,45.62,47.92,47.05,45.98,46.74,46.68,47.85, 48.70,48.45,49.01,48.47,47.16,49.51,51.53,49.12,49.38,49.23, 51.30,50.44,53.61,53.51,51.91,49.31,51.81,51.95,52.97,50.78, 53.58,53.90,53.94,56.30,56.09,53.79,55.55,55.90,55.76,57.28, 55.46,55.93,57.50,57.84,56.65,56.61,56.88,58.03,58.78,59.23, 59.60,58.82,59.38,59.66,57.31,61.62,60.51,62.68,58.14,62.47, 62.99,58.93,60.74,59.22,63.09,61.97,62.20,59.19,64.14,64.77, 63.64,61.67,62.87,64.24,65.45,63.38,62.83,61.68,65.65,67.94, 66.90,64.51,63.98,68.18,66.03,67.55,67.28,65.99,70.15,66.61, 68.12,67.90,67.55,66.99,68.24,69.82,70.99,70.11,68.45,68.74, 68.90,69.18,68.22,70.65,73.35,72.00,67.83,72.50,69.68,70.31, 72.95,70.19,71.99,72.12,73.86,71.91,71.30,72.80,75.07,74.56, 72.95,71.85,74.90,70.37,76.00,73.93,74.10,75.36,74.07,74.27, 73.79,75.51,76.48,78.13,74.09,76.30,78.07,77.21,79.56,75.76, 76.44,78.25,77.23,77.58,78.88,80.78,77.84,74.76,76.48,81.17, 78.99,79.59,79.38,80.89,76.56,75.51,78.67,82.39,76.52,79.45, 80.17,82.02,83.11,83.73,82.56,85.19,84.82,82.09,80.92,84.18, 84.23,84.65,85.79,83.74,84.23,82.66,84.24,84.85,86.17,84.96, 86.43,83.39,84.66,82.24,82.57,82.34,86.58,83.06,87.08,89.54, 87.36,87.83,87.08,87.06,85.69,84.29,87.60,87.89,86.57,84.18, 90.00,86.02,89.63,88.24,88.22,87.60,88.86,87.76,88.64,89.65, 93.27,91.38,89.31,92.44,94.48,91.37,91.14,89.21,89.67,90.04, 91.44,92.05,92.54,92.31,95.03,94.61,91.64,91.62,90.61,90.84, 17.49,18.03,18.92,19.83,19.53,20.48,21.25,21.92,23.21,22.49, 24.29,24.65,25.45,25.44,25.09,26.50,25.79,27.93,28.33,28.78, 29.35,30.40,30.13,30.89,30.55,30.93,32.17,33.18,33.08,33.31, 33.46,35.49,34.72,32.59,33.99,35.16,35.70,37.21,35.81,37.39, 37.21,37.66,38.31,39.08,38.05,37.98,39.21,38.88,40.26,39.12, 39.89,41.80,40.06,42.93,42.34,41.51,43.38,42.90,44.16,44.52, 45.46,44.27,43.54,46.21,44.27,45.01,44.19,46.71,46.54,47.33, 47.64,44.71,46.92,48.08,45.92,46.75,45.84,49.06,49.25,48.21, 50.35,49.79,47.84,50.13,50.77,52.12,51.79,49.03,51.42,51.61, 53.46,51.07,52.12,52.29,54.46,51.74,52.32,54.76,52.45,54.29, 55.59,55.22,56.84,56.25,55.01,55.97,58.57,56.48,56.40,57.30, 56.02,56.50,59.54,55.76,60.42,59.06,61.16,58.54,59.52,59.18, 57.25,61.80,59.36,61.52,57.20,60.41,62.52,62.80,63.45,59.11, 61.10,62.64,59.54,67.28,62.41,61.30,65.20,64.25,64.07,65.25, 63.63,64.94,63.87,62.77,65.92,63.89,64.87,66.87,65.99,66.17, 69.34,67.86,68.49,67.65,67.92,68.93,64.68,64.32,67.07,67.37, 69.04,65.66,66.76,68.18,65.38,68.41,67.26,68.98,68.94,69.65, 68.46,69.61,69.83,70.29,73.24,68.02,72.17,68.64,73.06,72.76, 76.92,75.78,71.38,69.49,73.98,75.24,74.68,74.91,71.42,74.69, 75.20,76.09,74.01,76.67,75.82,77.04,75.16,75.20,73.90,74.61, 74.53,73.76,77.87,79.68,73.34,78.45,79.10,74.28,75.90,77.36, 78.86,78.56,77.94,78.97,77.34,78.31,79.17,78.60,79.48,77.57, 79.14,81.15,78.13,80.28,81.85,78.10,81.85,79.14,80.60,79.35, 82.76,82.23,79.80,81.16,79.09,77.08,82.69,80.24,80.20,80.03, 79.75,83.43,83.51,80.93,85.52,79.95,83.89,83.07,83.15,85.12, 83.30,88.52,83.77,83.50,81.59,84.86,81.47,82.59,89.18,85.72, 85.90,83.30,88.07,90.30,85.08,87.19,89.31,84.89,84.38,86.37, 88.63,87.25,85.60,84.76,87.62,88.93,88.19,86.42,87.65,94.12, 90.63,87.64,86.65,87.24,89.57,91.76,85.77,88.26,89.90,91.76, 16.34,17.42,18.40,18.77,18.61,20.49,19.95,21.27,21.24,22.50, 23.11,24.06,23.45,24.88,24.74,25.84,26.80,26.50,26.93,28.31, 29.00,27.98,28.82,28.24,28.57,30.14,30.48,31.04,31.23,31.82, 32.39,31.62,32.54,32.30,33.41,34.42,34.62,34.32,34.13,35.93, 35.11,36.56,36.62,37.22,37.86,37.69,39.36,38.14,38.81,39.91, 39.98,40.90,40.19,40.00,39.45,41.13,42.51,41.45,41.28,42.41, 42.31,41.68,44.36,43.96,43.31,44.68,44.53,44.82,44.86,45.45, 43.99,45.67,44.31,47.21,46.47,47.34,46.76,47.15,46.49,45.27, 49.27,48.49,50.08,47.65,48.99,48.36,49.54,49.80,50.72,50.58, 50.87,50.07,49.60,52.06,52.70,51.38,52.09,56.03,52.51,53.05, 53.14,52.23,52.05,53.39,55.06,56.90,57.07,55.04,55.46,55.45, 54.16,53.10,57.17,56.39,55.56,56.53,56.86,60.39,55.42,55.93, 57.89,56.52,56.29,58.41,55.43,61.46,59.12,60.56,59.45,59.12, 59.75,61.00,60.83,59.11,62.09,62.61,60.73,62.48,59.68,61.08, 60.92,61.66,62.52,64.99,60.28,62.63,60.81,63.51,65.98,63.88, 65.37,65.53,65.11,64.20,64.04,62.42,62.97,64.84,66.61,65.87, 69.27,69.62,66.57,62.92,61.99,65.66,65.72,65.59,67.68,68.84, 67.67,68.54,71.61,65.97,68.08,70.99,71.71,68.04,69.41,69.01, 70.06,72.82,71.99,70.80,70.72,69.78,71.00,70.42,72.87,67.86, 72.36,71.98,70.41,73.12,73.04,72.53,73.68,70.44,70.88,74.45, 72.14,74.02,74.09,76.38,74.61,71.37,76.64,72.94,73.58,75.99, 73.01,72.77,73.31,75.91,75.65,75.99,79.07,77.85,76.93,76.33, 77.36,76.33,77.74,78.10,78.11,77.25,79.10,77.86,77.70,77.28, 78.03,78.86,77.37,79.12,77.45,81.08,81.16,80.82,79.14,80.60, 82.26,82.15,85.07,81.43,79.82,82.92,79.19,81.38,79.85,80.90, 80.63,85.58,80.59,79.46,79.98,86.79,81.12,81.99,85.97,79.44, 83.43,88.82,84.07,80.76,82.91,85.15,85.97,83.84,84.88,81.69, 83.14,86.18,85.00,84.59,84.36,83.99,86.92,81.94,88.90,82.57, 89.45,85.35,83.28,88.04,83.88,88.82,88.27,85.13,82.74,85.57, 16.03,16.51,17.21,18.35,18.55,18.79,19.99,20.81,20.98,20.96, 22.31,23.67,23.85,23.68,24.52,25.03,25.02,24.81,26.57,26.41, 26.08,26.74,28.26,27.70,27.97,29.37,28.20,29.75,29.99,30.27, 31.34,30.83,32.31,31.96,33.00,33.39,33.47,34.27,32.74,33.97, 35.31,35.38,34.68,34.53,36.01,36.03,35.43,37.35,36.49,36.89, 38.72,39.09,39.73,36.68,38.94,39.30,40.39,40.84,39.38,41.88, 42.14,41.06,40.02,41.35,43.61,42.68,42.94,43.60,44.39,44.35, 41.84,42.42,45.43,43.87,45.23,44.88,44.93,44.99,45.02,45.34, 45.81,46.81,45.57,47.57,46.65,47.22,48.02,48.35,49.35,46.32, 47.62,49.36,49.41,49.28,50.94,49.95,50.54,49.87,50.48,52.48, 50.49,49.72,52.30,53.84,54.09,54.08,51.49,53.86,53.72,52.33, 52.84,54.33,53.80,54.71,52.67,53.11,55.51,55.15,55.53,55.96, 55.81,59.83,53.64,58.97,57.73,56.05,55.79,58.93,56.63,55.96, 57.36,55.63,57.59,57.79,57.63,58.35,59.09,57.84,59.89,61.49, 60.10,59.36,61.21,61.69,58.96,60.94,61.42,63.14,62.35,62.25, 61.14,60.86,62.22,64.10,61.69,64.91,63.74,64.04,65.04,63.60, 62.22,62.76,64.14,66.59,65.19,63.11,65.08,65.34,66.17,64.52, 66.50,66.66,68.43,67.77,67.52,68.57,66.93,70.64,67.98,67.01, 70.86,71.46,67.22,69.07,66.98,67.27,68.44,66.62,70.22,67.99, 69.34,68.95,70.42,73.43,68.49,71.58,66.54,71.09,72.34,70.27, 70.26,68.77,72.89,71.78,73.50,72.16,70.27,70.95,69.92,72.59, 72.85,74.61,71.08,72.07,75.73,73.73,70.91,74.51,72.86,74.61, 77.53,75.13,72.93,75.10,75.20,72.77,75.97,74.83,74.96,75.37, 75.08,77.04,78.00,74.31,78.25,75.11,76.34,78.76,72.06,75.88, 76.77,77.09,80.74,77.43,75.42,79.35,77.70,78.49,77.75,80.86, 76.69,79.81,73.17,77.91,77.05,81.83,78.43,80.51,77.71,79.01, 81.55,79.79,82.95,81.24,79.64,81.17,82.97,79.65,81.06,81.00, 77.21,83.83,80.59,82.68,81.90,81.26,80.65,82.16,83.83,83.72, 81.76,86.36,83.05,86.46,83.69,86.84,81.42,84.08,84.77,84.32, 14.89,15.68,16.55,17.89,18.15,18.88,19.07,20.80,21.38,20.25, 20.73,21.42,22.15,22.57,23.41,24.04,23.73,23.97,25.24,25.61, 25.65,26.09,26.10,27.29,26.26,28.16,29.01,29.63,28.95,28.97, 30.25,28.82,30.19,32.62,31.46,32.82,32.18,32.72,33.04,34.01, 34.16,32.60,33.82,34.24,35.40,34.60,34.47,34.75,35.72,35.51, 36.18,36.90,35.38,37.84,37.81,39.36,40.07,36.26,39.57,39.42, 38.48,38.88,38.73,40.56,41.93,41.74,41.87,42.41,41.25,42.88, 41.53,41.56,41.88,42.78,41.04,43.89,43.36,43.69,43.22,46.19, 45.22,45.63,45.25,44.17,44.23,46.22,45.71,45.02,45.87,47.66, 48.36,47.10,47.14,47.84,47.33,46.66,48.16,47.72,49.14,47.92, 48.28,50.59,51.04,49.38,49.21,49.92,49.89,51.96,48.56,50.66, 51.17,52.89,50.12,51.72,52.76,49.39,51.78,51.87,52.66,52.97, 55.22,53.20,53.67,53.25,53.67,54.47,56.36,51.61,55.24,56.75, 54.06,55.12,57.18,55.02,55.77,55.55,57.56,59.65,57.05,57.35, 55.64,58.98,58.64,57.15,55.00,58.41,58.38,57.38,58.57,59.77, 60.47,60.25,58.46,56.16,60.67,60.77,59.72,61.78,59.65,60.84, 59.93,62.18,62.77,61.57,62.90,64.43,62.30,61.43,64.50,63.97, 62.89,62.58,62.36,62.47,64.18,64.04,63.13,62.58,65.56,61.08, 64.55,64.80,65.75,63.46,65.41,65.92,66.86,65.77,66.60,65.78, 64.35,63.96,64.72,64.14,65.44,68.14,68.00,64.22,67.92,66.22, 66.75,68.88,68.65,66.69,68.39,69.65,67.07,68.33,70.01,69.53, 72.73,70.54,70.75,74.45,69.85,71.82,70.00,70.14,67.86,69.64, 70.71,68.83,73.12,74.89,73.66,71.08,73.70,73.45,71.86,71.74, 74.79,72.10,72.69,72.99,70.83,77.11,69.97,74.12,70.90,72.13, 72.56,74.86,77.05,78.48,76.58,73.54,72.34,73.58,77.33,74.52, 75.15,76.99,74.68,73.59,74.61,76.84,72.96,75.48,77.43,75.11, 77.74,77.36,75.05,75.46,78.01,76.94,78.24,79.56,76.22,79.68, 82.10,77.40,78.92,77.10,79.26,78.98,79.80,79.52,80.91,78.70, 78.44,79.37,81.18,80.20,82.56,79.28,78.16,79.57,79.28,78.81, 14.10,15.04,15.54,17.41,16.71,18.30,18.37,18.59,19.07,20.89, 20.08,21.35,21.02,21.39,22.27,21.86,22.27,22.72,23.30,24.65, 25.59,24.79,25.26,26.03,26.98,26.05,27.28,27.70,27.44,28.67, 28.64,30.27,30.08,30.15,29.63,31.21,29.99,30.39,32.79,30.54, 32.04,31.99,32.47,33.30,33.17,33.61,33.69,33.62,33.77,34.38, 33.83,36.87,35.13,34.64,34.99,36.42,36.57,37.08,38.03,37.09, 37.86,40.44,38.25,39.46,38.24,39.18,37.81,39.41,39.74,39.97, 40.52,38.73,41.29,42.19,39.34,41.09,40.55,42.31,41.52,42.81, 42.31,41.69,42.68,43.35,43.86,43.39,42.83,45.29,45.19,42.31, 47.28,45.67,43.93,47.13,46.39,45.64,45.45,47.03,47.00,45.19, 47.77,45.85,46.14,46.62,47.85,48.00,48.04,47.25,48.96,50.60, 47.82,49.34,50.19,47.75,50.20,49.92,51.04,51.04,51.89,52.24, 51.20,51.83,51.82,51.08,52.27,53.01,52.37,51.88,53.06,52.65, 53.15,54.31,53.87,52.91,52.45,54.04,52.99,52.79,54.65,55.75, 53.17,56.58,57.59,55.94,55.01,54.08,53.55,54.66,54.40,58.12, 55.03,57.22,55.99,58.48,55.56,55.94,57.64,56.35,56.54,57.52, 58.65,56.79,56.98,60.67,59.22,62.16,59.56,55.97,59.12,62.01, 61.88,59.95,58.71,58.12,58.65,61.20,63.42,60.76,59.84,60.98, 61.36,62.77,62.22,61.47,63.79,61.02,61.85,60.35,62.20,65.12, 61.26,64.28,63.66,64.26,62.54,61.43,64.53,64.68,65.50,63.87, 64.90,62.25,66.32,65.52,67.02,66.74,65.65,65.17,67.89,66.52, 66.30,64.58,68.54,65.09,67.38,68.98,67.33,69.61,68.59,66.75, 66.45,66.21,69.39,66.37,68.52,68.70,69.40,68.11,67.83,71.40, 71.15,69.99,69.54,68.28,71.82,68.68,71.64,68.02,72.63,70.92, 75.06,71.69,72.54,75.59,69.16,74.22,70.09,74.15,74.19,74.35, 71.01,72.47,74.81,71.36,72.66,73.06,73.93,73.32,72.85,71.29, 70.72,73.56,71.29,71.70,74.67,75.24,75.41,73.54,75.03,73.06, 76.03,76.47,74.87,75.39,77.07,71.85,76.33,73.23,73.73,77.43, 79.64,76.87,75.36,77.14,76.87,79.58,79.02,75.84,79.65,78.46, 13.85,14.82,15.38,16.24,15.99,16.71,17.97,17.83,19.28,18.10, 19.17,20.05,21.27,21.36,21.93,21.27,22.45,22.95,22.81,23.44, 23.62,24.15,24.69,24.40,25.15,24.96,25.73,26.65,27.75,27.08, 28.16,27.54,27.93,28.45,29.14,29.54,29.79,29.65,30.49,30.19, 30.45,31.90,31.29,31.26,32.02,31.13,32.08,33.29,32.83,31.24, 35.07,33.34,34.50,33.40,34.17,34.71,33.65,34.63,36.41,36.12, 33.39,36.84,38.43,35.55,38.00,37.93,36.99,39.01,36.43,37.61, 37.83,38.70,38.90,39.77,39.46,39.22,40.69,40.69,38.04,38.94, 40.37,41.38,41.80,42.31,40.80,40.02,42.17,41.00,42.13,43.29, 42.54,41.91,43.94,45.54,44.02,43.34,43.67,44.23,43.06,44.86, 45.93,46.31,44.51,46.21,45.29,44.15,43.79,45.67,47.65,46.43, 46.80,47.70,48.47,47.52,46.98,46.78,46.20,48.77,48.88,48.15, 48.74,47.60,48.67,49.22,49.88,49.93,49.57,53.15,50.18,50.64, 51.75,52.75,49.53,51.60,50.31,49.69,51.34,52.69,52.57,50.28, 51.28,52.78,54.40,50.92,53.02,53.47,52.00,54.31,53.91,54.29, 52.85,55.74,53.87,56.21,54.90,53.59,54.37,53.44,52.78,55.06, 55.22,55.32,54.30,57.02,54.96,55.65,55.35,57.25,57.21,56.58, 55.58,56.71,61.25,58.15,58.17,60.18,56.89,59.61,57.31,57.86, 60.48,57.74,59.40,59.46,59.42,59.67,58.10,57.80,62.03,59.20, 62.20,58.38,62.28,60.34,60.73,60.48,61.43,62.10,58.70,62.83, 59.85,64.18,63.97,59.86,63.63,60.11,62.02,64.13,62.99,61.51, 63.74,64.09,63.42,64.08,64.62,62.27,64.87,65.73,64.41,63.38, 66.11,65.73,62.53,65.09,65.63,65.01,66.16,65.97,65.99,68.42, 62.70,66.66,67.33,65.28,69.64,66.79,67.85,67.41,68.97,66.97, 68.48,69.16,68.02,69.68,69.53,68.48,68.82,67.51,70.14,67.79, 68.01,71.32,68.24,67.70,70.34,67.59,68.59,69.18,68.12,69.42, 69.21,71.34,70.72,72.84,70.94,73.73,69.58,69.99,71.67,72.15, 71.52,74.88,74.67,72.07,71.06,72.18,69.42,72.95,73.33,74.06, 71.10,77.31,71.46,73.02,74.52,73.72,73.89,75.65,72.87,72.82, 11.96,13.97,14.69,15.96,14.85,15.99,16.21,17.50,16.67,17.92, 18.48,19.02,19.49,19.21,20.69,21.21,20.19,20.60,22.86,21.92, 21.44,22.97,22.95,23.14,24.05,24.14,25.32,25.17,25.21,25.73, 26.16,25.93,26.60,27.24,25.57,27.60,26.99,27.56,26.98,27.41, 29.20,28.32,29.80,29.00,29.35,30.14,30.48,31.25,30.43,30.62, 31.91,32.09,30.91,32.86,33.37,33.27,34.09,32.09,33.91,33.87, 33.43,33.40,34.79,34.83,34.16,35.30,33.97,35.58,34.39,36.21, 36.10,36.81,36.51,37.45,36.89,38.13,37.37,38.16,37.26,38.53, 38.29,38.84,41.55,40.36,39.82,38.66,42.24,39.77,41.17,39.06, 38.56,41.79,42.93,41.12,41.85,40.09,41.82,43.00,41.86,42.30, 43.78,42.64,42.09,43.05,43.89,45.95,42.60,41.98,42.94,43.97, 44.66,45.81,44.30,45.10,45.95,46.35,45.34,46.72,43.87,45.64, 47.43,45.03,45.60,46.46,48.60,48.03,49.01,46.50,48.79,47.91, 47.51,47.86,50.70,46.21,49.28,48.06,49.58,49.11,49.90,49.27, 48.99,51.08,49.88,51.60,49.77,50.48,50.67,51.54,50.46,50.18, 51.42,49.41,51.31,52.17,53.05,52.25,51.93,52.44,52.87,54.17, 54.73,52.62,53.56,52.92,51.96,53.31,53.39,53.34,54.62,54.70, 54.36,53.19,56.11,56.50,55.95,54.35,54.26,56.57,55.76,55.08, 55.23,55.61,54.17,56.42,55.93,55.87,54.34,57.21,55.62,57.16, 55.59,57.98,57.60,57.70,59.18,56.63,58.43,58.86,57.34,59.60, 57.26,61.44,58.93,58.99,59.33,58.87,60.87,60.94,58.10,60.42, 60.90,62.57,60.61,57.36,60.22,61.54,59.43,60.23,61.65,62.28, 62.85,57.93,63.56,61.19,61.32,62.65,64.78,62.30,63.98,63.04, 61.89,63.36,63.18,65.60,60.93,64.13,61.37,66.07,63.33,65.60, 60.77,65.92,65.02,66.23,67.40,63.84,64.25,65.18,62.06,63.45, 67.43,65.80,66.01,65.68,65.07,68.35,62.98,65.73,65.92,66.10, 66.01,61.72,66.30,65.04,69.78,68.05,68.04,67.22,66.25,65.26, 68.14,70.03,68.95,67.76,67.29,69.30,67.68,68.79,66.26,70.92, 68.94,69.45,67.61,69.17,68.51,68.85,69.25,72.37,72.23,71.40, 12.20,13.09,13.17,14.04,14.18,15.35,15.29,15.81,16.55,16.56, 17.14,18.61,19.04,18.97,18.32,19.43,20.09,20.03,20.52,20.82, 21.22,20.79,21.45,21.63,23.09,22.19,22.23,23.90,23.91,23.50, 23.22,25.61,24.08,25.32,25.00,26.53,27.65,26.29,25.59,27.93, 26.33,27.41,27.59,29.03,28.37,27.42,29.52,30.31,28.60,30.26, 30.51,29.93,29.58,31.57,30.72,31.94,30.97,31.84,32.77,31.46, 32.18,32.36,30.90,32.39,33.98,33.99,33.28,33.40,33.90,34.97, 33.78,33.88,35.28,34.76,34.82,34.74,36.10,34.86,37.74,37.23, 36.40,37.16,38.01,36.65,37.38,36.02,36.60,36.99,38.83,37.39, 38.97,37.18,37.06,39.30,39.21,39.31,40.16,38.35,40.18,38.57, 39.76,39.68,40.78,38.62,39.62,42.25,42.05,41.34,39.95,42.24, 40.58,43.11,41.65,44.00,41.79,41.61,43.83,42.98,45.20,43.60, 42.38,42.84,44.66,43.00,45.73,45.12,45.55,44.93,46.27,44.11, 45.77,45.71,45.15,46.81,45.40,47.08,45.77,48.18,46.28,44.32, 47.99,44.97,45.89,47.53,45.73,46.61,47.05,47.27,46.26,49.93, 48.02,46.31,49.83,50.33,49.49,49.12,49.22,49.79,49.17,49.25, 49.08,50.53,48.63,50.97,50.29,48.89,53.38,49.07,50.17,53.50, 51.50,50.81,53.55,52.90,52.30,50.80,51.67,52.74,53.30,51.97, 51.71,54.23,54.40,56.02,55.61,56.51,54.64,56.28,51.55,53.04, 54.45,53.57,53.99,53.34,55.33,56.13,56.38,56.88,56.76,57.52, 56.08,53.89,56.21,55.76,56.68,55.12,57.36,55.43,56.70,57.23, 56.19,58.21,56.77,58.72,57.63,57.06,58.84,57.75,56.57,53.84, 55.98,55.08,58.59,58.47,56.66,57.33,57.59,59.10,60.28,58.81, 59.92,58.92,60.14,60.40,60.11,60.33,62.04,61.43,60.14,60.39, 59.21,61.41,63.17,62.09,59.72,62.48,61.92,60.54,61.67,60.63, 61.13,60.12,63.21,66.01,62.77,64.66,61.61,62.44,64.95,61.29, 64.76,63.63,61.58,62.95,63.87,67.22,64.46,62.26,63.88,62.00, 66.31,65.28,66.16,65.95,65.94,65.70,65.72,64.62,67.01,63.89, 66.01,64.01,65.21,67.68,64.08,65.41,64.50,65.65,67.37,65.60, 12.36,12.11,12.83,13.30,14.36,14.66,15.22,14.94,15.78,16.14, 15.88,16.55,16.77,17.62,17.66,18.84,18.42,18.54,18.89,20.04, 19.72,20.14,20.08,20.03,20.75,20.94,22.20,22.37,22.93,22.70, 22.49,23.37,23.54,23.86,23.74,24.05,24.49,24.87,25.65,23.94, 25.21,26.50,25.98,26.65,25.97,27.19,26.98,27.54,27.89,27.61, 26.77,27.92,28.16,29.31,29.62,28.93,28.98,29.19,30.24,30.66, 30.75,31.73,30.58,31.37,31.71,30.59,32.36,31.35,31.70,31.55, 31.37,30.33,32.35,32.60,32.05,33.00,33.73,32.72,32.78,33.05, 33.92,35.88,35.74,34.31,33.93,34.82,36.18,35.66,36.42,36.73, 36.30,35.00,36.10,36.06,37.90,39.00,37.01,37.87,37.63,37.63, 37.22,38.44,38.04,39.87,39.17,40.19,39.09,40.90,39.20,40.56, 39.13,39.81,41.31,40.32,41.35,40.56,40.28,42.46,41.67,40.51, 41.35,40.06,40.64,43.48,40.05,42.55,41.80,41.41,42.42,45.03, 42.94,44.99,43.05,43.40,42.35,44.40,42.28,45.15,43.08,43.51, 44.58,44.19,45.75,45.18,46.44,46.17,46.38,45.09,45.66,44.43, 45.74,45.96,45.61,45.17,47.05,45.63,45.58,46.13,47.61,49.05, 48.75,47.98,47.14,46.74,48.76,46.89,47.51,49.30,48.71,47.79, 47.70,46.61,49.13,47.31,48.95,48.29,50.33,50.49,49.46,50.56, 51.07,52.48,50.38,49.91,50.38,51.08,50.63,49.76,49.88,50.53, 51.28,48.47,51.87,51.27,51.68,53.28,52.65,51.23,51.40,51.32, 51.95,52.14,51.15,52.76,55.33,54.38,53.78,52.65,53.13,53.15, 54.65,54.31,52.78,52.52,52.36,53.96,53.73,55.18,55.18,54.38, 52.35,54.07,54.35,54.23,56.31,54.74,55.40,54.69,56.20,57.85, 58.50,56.25,58.77,56.92,55.33,60.12,56.41,54.24,57.95,58.77, 59.46,56.68,59.04,56.74,59.52,62.28,61.49,59.28,57.75,57.94, 57.21,58.59,57.21,60.73,60.00,59.06,58.34,58.20,57.86,59.27, 59.81,57.87,59.26,57.78,56.61,58.43,60.71,60.08,59.20,60.41, 58.63,59.71,63.12,60.43,60.32,62.07,61.73,59.97,59.84,63.30, 61.51,60.80,64.08,61.88,63.37,63.03,60.94,63.18,62.30,60.45, 18.19,19.53,19.51,20.50,20.29,20.86,22.27,22.19,24.00,24.85, 24.54,25.84,26.60,26.37,27.25,27.67,28.27,28.98,28.78,28.34, 29.95,30.34,29.83,30.39,31.89,32.31,33.50,33.35,34.60,34.22, 34.02,36.24,36.29,36.09,36.48,35.36,36.47,39.17,37.12,37.93, 38.81,38.38,39.56,38.01,40.55,39.02,40.54,40.23,40.26,41.48, 42.56,41.68,41.49,42.10,43.12,43.99,44.05,45.21,45.23,44.47, 44.69,45.15,45.28,45.96,47.42,47.78,47.02,48.12,49.92,48.26, 48.25,49.92,49.10,49.15,49.44,51.19,52.29,51.79,50.43,50.38, 52.13,52.66,53.51,51.73,51.40,50.51,52.38,53.30,53.19,53.13, 52.52,53.12,54.84,55.66,55.91,55.52,55.28,57.67,54.68,57.62, 56.47,58.27,57.00,57.28,57.89,57.97,56.74,58.51,56.74,57.95, 58.88,57.10,60.80,58.26,58.49,62.15,62.03,61.03,60.79,59.55, 60.47,60.99,59.48,61.48,63.56,61.80,63.96,60.67,63.52,63.10, 64.26,65.24,64.96,64.95,66.19,65.06,64.96,63.94,67.21,63.54, 66.47,65.49,64.63,66.79,63.89,69.20,68.16,67.65,67.28,67.89, 67.23,69.04,69.09,66.24,67.56,67.84,67.68,72.09,70.32,68.47, 69.15,73.46,71.06,73.01,68.05,67.95,72.67,70.72,70.93,72.41, 70.43,70.89,72.99,72.09,74.82,73.83,70.91,75.31,73.64,74.94, 74.42,74.60,75.32,73.10,73.37,75.25,71.96,75.73,79.09,75.59, 72.98,75.39,77.33,78.82,73.88,78.48,79.01,73.21,78.91,75.90, 76.40,78.42,78.59,79.72,77.83,82.03,79.96,79.72,79.38,83.00, 82.03,80.53,82.87,79.52,81.38,82.36,82.01,80.83,83.80,84.88, 80.89,81.79,82.68,81.09,81.74,81.55,83.78,85.75,83.03,85.68, 81.99,86.95,85.14,80.51,85.48,85.65,82.64,83.36,86.46,82.88, 82.71,86.86,81.46,84.15,88.71,85.19,87.15,87.06,84.58,84.12, 82.40,83.58,88.58,85.02,87.59,90.01,88.12,88.84,87.22,87.02, 88.11,91.88,85.07,89.89,89.59,87.38,90.01,86.77,88.21,89.41, 88.83,90.74,88.11,89.51,93.42,87.75,96.42,89.75,88.61,89.56, 90.68,90.88,91.27,90.77,92.05,92.35,93.57,96.86,89.28,91.46, 17.64,18.90,19.29,20.91,22.49,22.19,22.52,24.36,25.44,24.80, 25.31,26.62,25.95,26.45,27.41,27.48,28.29,29.51,29.11,29.18, 31.16,31.38,32.94,33.22,33.48,34.06,34.33,34.19,35.30,36.27, 34.62,36.20,36.58,36.56,38.10,39.05,38.55,37.25,39.52,36.40, 39.32,40.74,40.67,39.93,40.94,41.40,40.53,40.72,43.22,43.10, 42.11,42.29,43.65,46.73,42.86,45.75,45.09,45.09,46.44,46.73, 46.57,47.03,47.48,47.16,47.79,46.20,48.19,50.22,50.10,48.01, 48.64,50.14,49.29,51.07,50.82,50.76,51.70,51.90,51.59,51.75, 52.42,53.73,53.93,54.32,53.00,56.76,55.39,56.45,55.20,55.35, 56.56,55.66,56.94,54.78,57.56,57.77,57.43,58.02,58.16,59.02, 59.38,57.06,60.49,59.11,60.07,58.62,60.56,59.77,61.35,60.92, 61.86,61.81,61.59,64.01,64.74,61.12,61.89,63.58,62.58,63.53, 64.48,63.75,63.45,64.27,65.30,62.59,64.27,65.39,66.77,64.67, 67.75,66.03,66.53,67.11,63.87,66.04,71.22,67.24,66.55,68.48, 67.94,67.58,73.10,70.72,67.69,68.85,68.83,69.03,69.97,70.43, 68.82,71.59,68.52,69.40,70.33,71.16,72.21,71.64,71.08,71.73, 74.93,74.26,72.41,71.30,73.32,70.72,72.52,73.34,72.30,72.42, 75.01,72.73,74.70,76.01,76.69,71.98,72.32,75.47,76.42,76.96, 76.13,77.87,74.49,79.76,75.89,76.95,77.81,77.19,78.74,76.46, 80.82,77.19,78.39,77.54,79.35,78.63,82.78,80.56,78.59,79.04, 80.47,80.67,79.23,79.96,80.78,83.98,86.27,82.17,81.62,86.34, 78.81,83.27,80.50,82.31,81.51,81.02,84.37,82.22,86.06,84.68, 84.93,86.01,85.93,83.71,86.77,85.44,85.65,86.07,85.80,89.21, 83.83,85.06,83.88,85.58,87.42,91.21,84.27,84.14,86.21,86.65, 86.11,86.01,92.27,89.24,88.03,91.77,87.06,87.22,91.78,86.51, 90.34,90.25,90.97,91.71,92.08,89.15,90.59,88.44,90.14,93.73, 91.10,92.87,91.68,90.63,92.71,93.68,91.06,89.16,89.76,96.00, 91.77,95.88,97.11,93.90,96.38,95.33,95.38,94.60,90.62,93.56, 98.67,97.57,92.91,93.75,95.12,93.36,93.36,95.52,93.00,96.38, 17.90,20.24,21.12,20.87,21.21,23.05,24.29,24.19,25.67,26.62, 24.82,26.75,27.42,27.98,27.54,29.20,30.06,29.32,30.53,31.29, 31.06,32.04,33.14,33.04,33.17,34.20,34.66,35.10,34.83,35.81, 35.53,38.17,36.61,36.76,38.80,37.07,38.50,38.42,39.18,40.85, 39.69,40.26,41.00,41.88,41.40,41.98,43.91,42.67,43.52,43.43, 42.87,42.72,43.08,45.39,45.33,45.71,47.10,45.38,45.91,45.70, 47.93,46.39,47.34,48.50,49.04,49.38,48.92,49.89,50.14,50.71, 48.12,51.91,51.09,51.74,51.82,52.31,53.83,51.52,51.84,53.12, 54.69,52.57,54.68,53.60,54.67,56.54,56.85,55.02,54.55,56.52, 57.04,56.75,55.96,57.23,56.73,56.06,60.10,60.20,58.22,62.02, 61.17,60.10,59.69,58.84,59.89,62.72,62.29,63.26,61.54,62.77, 61.84,63.36,63.70,61.75,63.12,61.74,65.53,63.04,63.58,63.59, 63.60,64.64,63.71,65.50,66.50,64.69,66.26,67.06,65.75,66.02, 66.53,69.18,66.53,66.58,67.86,69.23,68.05,69.41,68.58,67.42, 68.50,67.58,68.50,67.56,68.53,72.64,71.14,71.23,68.50,72.72, 71.72,74.86,73.29,70.15,73.44,72.73,72.28,71.59,72.88,73.38, 72.59,75.58,74.06,75.28,74.14,74.69,78.10,77.45,77.40,75.83, 77.97,74.83,75.99,76.79,77.47,78.25,75.96,79.13,80.62,79.25, 80.71,78.27,78.18,78.91,79.63,80.68,79.92,77.94,77.57,77.33, 79.35,80.35,81.72,78.48,78.50,83.31,83.16,81.76,83.52,84.83, 82.39,83.24,81.96,82.13,82.04,80.46,82.13,81.38,80.04,80.20, 81.47,82.78,86.06,86.14,85.05,84.37,83.90,84.22,84.53,84.17, 90.17,86.17,84.03,87.17,85.40,86.40,86.71,86.18,83.17,86.98, 87.17,83.63,86.86,87.72,91.41,89.47,88.66,89.58,88.40,85.93, 84.83,89.38,89.39,87.13,92.57,90.35,88.96,90.44,91.70,91.10, 86.58,89.66,94.76,89.78,90.45,94.36,88.05,90.96,94.03,94.16, 93.25,96.31,90.62,93.98,94.09,93.69,89.87,88.07,96.82,97.75, 89.94,93.91,94.82,94.15,95.02,92.34,94.24,98.75,91.95,99.09, 99.44,99.25,93.68,95.61,94.75,94.25,98.27,93.69,97.02,102.31, 19.00,19.49,20.11,21.27,21.76,22.71,23.18,23.54,25.82,25.11, 26.00,26.95,27.57,27.55,27.99,29.04,29.66,30.63,30.39,32.45, 32.80,32.49,32.64,34.73,33.59,33.29,34.63,36.14,33.92,37.49, 35.20,37.86,36.23,36.51,37.42,38.90,39.25,38.76,39.67,39.92, 38.20,41.38,41.48,41.55,43.67,42.39,42.11,41.85,44.17,43.04, 45.23,44.64,45.38,46.16,46.61,47.07,48.35,45.87,47.43,45.99, 48.86,48.94,48.19,48.94,49.25,48.31,51.10,51.36,52.30,50.36, 50.86,51.35,52.84,52.67,51.37,54.79,53.45,52.59,55.11,57.98, 54.64,52.32,55.49,56.40,57.68,55.29,55.86,56.00,55.17,56.67, 56.07,58.67,57.29,57.14,59.80,57.41,58.81,58.03,58.14,60.65, 60.84,58.13,59.30,60.41,58.19,61.31,59.17,61.65,63.08,62.02, 62.65,63.38,61.64,63.02,64.86,61.80,65.32,64.91,67.81,66.14, 65.47,66.26,68.21,66.37,65.92,67.91,65.58,65.38,65.25,68.58, 66.33,67.24,67.75,70.73,70.19,69.90,67.80,69.29,69.56,70.35, 71.04,74.08,71.60,70.60,71.49,72.41,71.23,76.28,72.34,71.06, 72.16,71.43,75.37,72.04,73.29,74.14,72.98,72.25,75.73,74.79, 74.65,75.72,77.09,76.25,77.36,76.60,73.34,73.64,77.77,76.54, 78.48,75.83,79.05,80.31,76.29,74.55,75.77,77.23,78.33,76.90, 79.06,79.02,76.90,82.13,78.08,78.79,78.27,78.86,76.55,81.28, 80.67,77.58,78.52,80.65,82.43,80.19,78.24,80.83,84.48,82.14, 78.03,80.04,84.03,80.02,84.37,85.18,84.30,84.21,82.82,88.25, 84.09,84.74,85.56,84.19,87.74,85.51,87.85,84.01,84.36,86.24, 89.09,85.26,85.37,88.54,94.44,87.20,86.57,87.73,90.61,86.77, 87.84,87.20,91.50,86.79,91.70,88.43,88.19,90.61,90.07,92.21, 90.58,90.84,89.82,87.86,94.41,89.53,90.00,93.07,92.29,92.68, 95.30,92.26,92.30,92.47,93.47,92.18,92.88,89.87,94.66,95.07, 97.46,97.06,93.81,94.56,92.24,96.85,96.09,96.85,95.91,94.44, 96.84,98.00,91.38,98.73,95.72,97.59,97.31,97.97,98.36,96.54, 95.02,102.06,90.31,96.64,102.39,98.92,105.10,97.62,96.72,100.54, 18.56,19.36,20.84,20.98,23.07,22.43,23.12,24.71,25.48,25.02, 25.54,26.33,27.98,29.36,27.32,29.05,29.69,29.96,30.02,32.58, 31.66,32.95,33.02,32.60,34.52,34.10,34.66,35.58,35.57,35.11, 35.11,36.21,36.99,36.94,38.10,38.01,38.87,39.14,38.49,39.43, 39.73,40.19,41.28,40.01,42.53,40.36,42.61,43.69,44.16,42.97, 43.69,44.88,44.56,44.06,44.30,45.02,45.30,48.74,48.77,48.46, 48.51,48.57,49.47,48.24,50.74,49.83,49.16,47.99,50.09,50.28, 49.71,50.67,52.91,51.85,53.53,52.24,50.98,54.08,53.08,53.62, 53.81,55.04,53.02,54.49,54.78,54.89,58.07,55.73,58.45,55.24, 56.74,56.46,58.21,59.34,58.08,57.31,55.93,57.65,57.38,56.69, 59.20,59.95,58.47,60.28,59.96,62.84,60.66,62.97,61.01,61.86, 62.65,63.16,61.09,61.41,62.19,63.14,63.40,66.59,62.47,66.19, 61.67,68.53,62.70,64.98,67.41,68.32,68.85,68.88,67.68,66.63, 67.76,65.49,68.79,68.03,68.22,66.79,69.35,68.07,66.52,69.98, 70.95,68.28,71.47,72.19,69.40,69.84,71.97,67.47,71.22,73.67, 73.93,73.62,73.43,73.55,71.31,75.27,71.31,76.46,74.90,72.95, 72.67,74.31,75.88,70.91,71.88,71.73,75.36,80.42,81.63,76.61, 77.66,73.70,76.95,77.13,74.90,77.94,79.24,74.59,75.91,79.37, 77.92,79.35,76.61,79.57,78.95,77.23,78.35,78.22,82.58,81.29, 82.21,84.58,78.68,81.94,79.63,82.56,83.10,82.15,82.73,82.64, 82.21,81.94,83.16,85.78,81.56,83.86,81.59,87.63,86.79,84.43, 83.70,85.14,84.47,85.10,83.56,82.14,85.87,85.30,84.46,87.81, 88.29,87.11,87.27,88.81,83.24,88.85,88.66,86.23,90.33,86.13, 87.71,89.17,88.39,88.68,89.40,82.05,90.33,89.33,87.72,91.20, 90.01,88.98,92.52,92.74,88.61,89.46,90.73,88.50,87.25,94.02, 89.84,92.05,92.31,92.19,91.82,96.49,95.33,94.46,94.92,93.73, 96.94,97.05,92.17,93.02,90.20,92.02,97.04,93.95,90.19,95.43, 97.82,94.48,97.06,95.29,94.32,96.10,96.19,96.73,96.16,98.90, 94.56,98.30,100.22,99.47,95.22,98.14,98.28,101.23,91.13,96.60, 18.96,19.47,20.10,20.71,21.94,22.58,23.47,24.37,24.48,24.57, 25.55,25.57,27.45,27.02,28.02,28.80,28.46,29.29,30.29,30.85, 31.11,32.62,32.71,33.49,32.90,34.47,33.91,33.24,36.88,36.96, 35.73,36.44,35.97,38.14,37.90,38.89,38.63,38.50,39.88,39.97, 40.27,40.56,40.99,42.12,40.96,40.05,42.71,43.81,42.60,44.89, 43.65,44.19,44.77,45.68,44.88,44.37,45.57,46.53,47.05,45.66, 48.02,46.31,46.86,49.64,49.28,47.97,49.37,50.66,49.18,49.09, 51.85,50.77,52.85,52.14,50.70,52.24,52.58,51.86,54.17,53.12, 52.68,52.36,55.27,53.69,54.98,53.15,55.95,56.13,57.54,56.15, 57.31,53.39,57.25,58.42,57.88,58.99,57.64,59.23,60.56,58.17, 59.05,60.68,58.68,61.69,59.14,60.31,63.18,62.18,61.82,58.87, 61.40,62.16,62.74,63.74,64.85,61.67,62.08,61.93,63.61,64.21, 66.37,66.03,63.99,64.89,64.96,66.25,66.48,66.60,65.21,66.08, 66.73,68.64,67.04,69.69,67.85,67.25,66.78,69.27,66.01,66.64, 69.12,68.88,70.12,71.34,71.15,70.57,69.45,71.67,70.43,68.63, 70.24,73.46,71.90,71.63,71.43,69.27,72.77,74.99,72.18,73.34, 74.78,73.05,76.49,73.56,76.49,76.78,74.29,73.83,75.39,75.90, 75.15,76.19,76.24,75.89,81.35,76.49,77.96,78.87,76.52,77.31, 77.09,76.36,76.98,78.19,78.48,77.09,78.61,79.67,78.21,80.01, 77.87,78.05,80.59,78.36,79.58,77.46,82.48,81.86,80.45,79.44, 82.17,82.48,79.38,81.04,85.09,84.31,79.28,85.18,86.76,82.39, 84.27,82.16,83.99,86.80,84.47,85.86,85.93,84.57,80.76,86.11, 83.94,87.06,86.18,86.60,87.20,85.79,87.85,88.89,87.20,91.69, 89.53,86.89,86.70,84.93,88.93,85.11,91.28,89.99,88.94,87.59, 88.58,89.94,87.32,88.28,90.19,93.80,87.06,90.92,89.36,91.03, 92.15,90.89,88.98,93.35,92.43,95.39,93.44,95.48,91.85,92.18, 89.58,95.16,91.64,93.09,90.96,94.14,93.73,93.39,91.36,91.84, 94.49,94.95,94.70,93.04,95.81,95.81,94.91,99.52,93.37,95.99, 96.07,101.56,97.79,97.68,97.10,95.32,94.35,92.89,99.71,99.77, 18.47,19.53,19.27,21.04,21.00,21.84,22.49,23.67,23.67,24.24, 25.37,24.87,25.67,27.05,27.76,29.07,27.91,30.00,29.06,30.68, 31.55,31.05,31.67,33.72,33.55,33.84,34.55,33.21,35.06,33.08, 34.73,36.99,35.88,36.02,37.29,37.44,37.67,37.67,38.21,39.65, 38.77,38.98,40.34,41.63,41.00,40.31,41.49,42.01,41.22,45.10, 41.56,44.10,43.86,42.82,42.51,45.22,45.99,44.32,47.77,47.58, 47.11,48.26,48.70,46.38,47.11,47.18,48.43,50.42,47.94,49.42, 48.11,50.14,50.81,51.64,49.58,49.06,51.31,51.68,50.26,52.53, 54.71,53.44,52.59,54.20,56.53,57.14,54.82,54.10,56.34,53.82, 55.62,55.34,57.43,55.21,54.88,55.78,57.94,56.19,57.39,59.92, 58.05,58.66,59.36,58.78,61.12,60.37,59.29,59.32,59.19,61.15, 59.23,59.32,63.48,61.25,63.51,63.09,62.38,63.22,60.56,63.70, 62.71,63.85,65.46,66.44,63.69,65.11,64.77,64.74,66.65,66.82, 66.00,68.35,65.27,64.11,65.93,66.06,67.15,67.36,66.85,68.07, 67.72,69.81,67.67,67.55,67.34,68.05,69.10,67.88,71.42,70.57, 70.11,74.07,71.90,68.97,69.77,71.94,72.64,73.73,71.72,73.34, 73.28,75.63,72.28,73.73,74.25,74.49,71.46,74.09,74.19,74.78, 75.51,76.05,75.78,74.87,71.62,77.93,74.90,75.19,76.08,76.43, 77.43,78.90,75.53,78.31,77.53,80.56,75.55,77.65,78.03,75.98, 79.90,75.97,77.27,82.17,81.29,77.23,79.73,79.21,80.09,80.13, 80.57,82.42,79.58,78.96,81.89,79.75,80.17,82.60,84.07,85.36, 84.63,82.06,82.70,83.72,83.16,84.26,80.88,85.85,80.90,84.88, 84.18,84.85,83.64,84.89,83.02,81.36,84.52,87.80,84.71,88.10, 85.45,83.43,87.32,88.63,84.35,84.79,87.28,84.98,87.34,84.34, 88.12,87.12,91.24,85.86,83.88,90.39,90.86,90.60,90.70,89.84, 90.75,91.05,89.53,90.36,90.32,94.33,90.88,94.13,89.06,89.18, 92.87,88.60,93.82,89.12,93.58,97.67,92.24,92.78,92.83,93.86, 91.84,93.78,92.57,94.46,92.08,90.54,93.96,91.69,93.95,93.01, 94.47,96.30,94.25,93.08,100.35,95.78,98.05,96.44,97.89,97.59, 17.76,19.01,19.23,19.86,20.04,21.88,21.59,23.20,23.86,24.52, 24.31,24.54,25.88,25.78,26.74,27.34,27.24,28.19,28.38,30.18, 29.62,30.09,30.80,31.99,32.16,32.52,34.06,33.85,33.58,34.54, 35.06,34.64,33.52,36.33,36.92,35.71,36.07,36.68,37.70,39.00, 38.87,39.59,40.30,40.16,39.71,39.86,41.52,41.34,41.97,42.56, 41.89,43.69,44.84,42.80,44.83,43.04,43.21,45.02,43.88,44.77, 42.90,45.30,46.66,45.59,47.80,48.26,46.92,46.40,47.28,50.30, 47.84,47.89,50.53,49.47,52.08,47.18,51.44,51.41,50.67,50.65, 51.86,52.22,51.54,52.57,53.78,52.76,55.57,52.28,52.06,52.77, 54.07,55.46,57.47,53.07,55.83,52.96,54.81,53.74,57.39,55.96, 57.13,59.06,57.62,57.09,59.82,58.49,57.14,59.72,60.47,58.45, 61.47,61.69,60.10,62.33,59.28,59.14,59.97,58.75,61.33,61.96, 61.53,61.83,62.78,64.22,61.89,60.99,62.35,64.34,66.38,62.62, 63.24,65.77,64.09,67.26,65.43,65.74,66.29,66.68,66.02,67.54, 63.70,65.85,67.49,67.39,64.44,66.52,66.61,69.24,67.58,66.38, 66.68,67.66,70.06,69.76,70.62,69.34,73.45,69.36,71.64,69.53, 70.79,72.31,71.89,71.81,73.05,71.93,68.43,73.43,73.14,72.16, 71.87,70.97,77.66,73.40,71.14,69.54,76.66,75.65,73.68,75.23, 76.41,73.42,74.13,72.55,75.06,77.23,77.75,78.82,73.82,74.32, 75.59,77.13,76.37,77.81,76.27,76.00,77.42,78.47,76.15,75.17, 78.71,78.57,78.31,80.91,76.52,77.24,78.33,78.14,80.53,82.36, 80.43,80.79,77.44,76.64,81.34,79.77,81.91,80.50,78.44,81.70, 80.13,80.05,83.61,82.95,81.26,80.77,84.25,79.91,85.54,87.44, 83.28,84.46,83.12,86.17,86.10,85.88,85.99,86.14,84.87,83.26, 85.84,88.14,86.76,87.23,85.49,88.10,86.69,86.22,88.98,85.73, 86.15,85.55,87.98,86.61,87.83,87.84,87.88,85.97,91.35,85.23, 88.81,88.42,88.40,88.08,89.70,91.76,86.76,90.87,90.82,91.91, 90.77,93.71,91.26,91.97,92.61,87.11,92.43,93.18,91.90,91.98, 92.84,92.90,91.39,89.03,96.78,90.10,92.07,91.89,89.92,92.69, 17.40,17.73,17.93,19.26,19.75,21.05,21.51,22.13,23.36,23.97, 23.59,25.30,25.27,26.00,27.40,27.47,27.77,27.04,28.08,28.45, 30.36,29.15,30.17,29.48,31.07,32.29,32.18,31.85,33.27,31.59, 34.10,35.28,34.31,34.03,33.64,35.61,36.76,36.62,37.80,38.74, 37.17,36.87,36.13,37.69,38.87,37.57,39.22,39.83,40.14,40.99, 41.49,40.67,41.61,42.13,42.97,43.99,42.04,44.14,43.53,44.89, 43.33,43.79,44.44,46.00,46.04,44.82,45.96,46.72,46.53,46.43, 47.76,45.92,47.22,47.88,48.97,48.10,49.40,47.93,49.49,48.22, 49.86,49.66,48.90,49.27,51.63,51.14,50.78,52.97,52.64,51.21, 52.54,52.91,51.43,53.59,54.83,55.13,52.48,53.68,54.04,54.21, 54.18,55.78,57.10,55.32,57.64,57.89,56.76,55.21,55.36,56.95, 59.72,57.08,57.76,56.18,59.56,60.98,60.27,57.87,57.80,59.32, 59.95,58.52,63.43,60.85,60.29,62.77,56.51,60.63,63.62,60.95, 62.17,62.36,64.47,61.38,65.64,64.13,62.57,63.09,65.31,62.66, 66.78,64.84,64.38,63.53,66.78,66.95,67.72,66.17,64.83,66.07, 69.72,66.02,67.13,67.12,65.82,66.94,66.65,65.86,66.00,68.90, 67.06,67.58,67.50,70.76,70.55,69.06,67.73,69.98,69.58,66.86, 68.26,69.82,70.37,73.53,69.66,71.83,72.04,70.79,71.23,72.22, 74.01,71.27,71.16,73.98,74.51,71.02,76.03,72.13,73.23,73.75, 73.67,76.08,77.54,73.56,76.29,74.24,75.63,74.69,76.94,74.14, 73.79,77.50,81.55,77.49,75.46,76.60,77.75,75.10,77.52,78.36, 81.01,78.27,78.12,76.27,80.11,76.35,80.68,80.92,81.15,80.13, 81.96,77.71,77.44,81.98,81.41,78.89,80.39,82.89,81.00,81.72, 82.56,80.97,77.79,80.03,78.06,77.45,80.96,80.03,84.17,82.96, 83.74,86.85,83.96,82.97,79.84,83.56,81.80,81.99,83.85,80.40, 86.19,86.92,83.95,84.96,84.20,84.23,83.26,86.32,85.71,88.06, 91.80,84.05,89.82,82.92,87.38,85.84,88.92,90.93,89.34,84.46, 91.05,87.09,89.14,89.38,88.23,90.75,85.91,88.24,90.66,92.75, 88.59,91.05,92.17,92.34,94.96,92.35,87.53,90.13,91.85,91.42, 16.69,17.08,18.44,18.27,19.30,20.61,21.83,21.37,22.21,22.94, 23.99,23.58,24.96,24.85,24.14,24.82,26.26,26.68,26.80,28.61, 28.40,28.75,28.97,29.48,30.20,29.80,31.76,30.88,31.16,31.96, 32.54,32.68,33.28,34.64,33.18,34.45,34.67,34.88,35.25,35.66, 36.00,37.88,36.06,36.22,37.30,38.41,38.66,37.85,39.15,38.86, 39.28,38.62,41.17,39.62,39.93,40.32,40.90,43.03,43.11,42.08, 42.29,44.21,44.65,44.01,46.67,44.65,44.31,44.12,44.34,45.72, 45.24,47.65,45.77,45.91,46.59,46.80,47.04,46.18,47.16,49.78, 49.94,49.95,49.17,48.26,49.81,49.83,48.77,51.26,49.78,49.56, 50.81,50.82,52.13,52.89,51.51,51.56,51.10,52.23,53.30,53.26, 55.27,53.00,54.31,53.57,53.60,53.61,55.19,57.42,52.96,54.85, 56.45,55.47,53.09,58.25,58.67,55.30,57.76,56.45,60.32,57.40, 57.57,58.28,59.52,59.00,56.91,58.38,59.40,59.77,60.30,60.35, 61.04,60.79,60.76,61.45,62.24,61.00,65.29,61.68,62.90,61.71, 60.75,63.37,62.80,61.02,63.44,65.66,63.28,67.82,63.35,63.17, 63.36,61.52,64.51,63.80,65.53,64.91,63.80,66.21,65.85,68.45, 63.42,65.54,66.70,66.44,66.92,67.81,68.13,68.74,66.83,70.21, 68.85,70.25,66.70,65.58,67.02,68.94,71.45,67.92,70.41,68.81, 70.67,69.29,70.88,70.82,72.05,68.13,69.71,72.47,71.45,69.77, 70.95,73.83,73.01,72.80,71.83,72.47,70.20,77.32,74.60,78.08, 74.50,72.46,72.71,78.06,75.66,70.23,71.02,77.68,75.12,75.16, 72.94,77.17,75.37,75.86,74.84,78.26,74.38,76.42,78.35,74.93, 76.53,74.19,76.19,76.36,76.50,72.95,78.39,79.09,80.75,80.45, 80.71,80.58,76.92,77.76,79.40,78.01,82.80,79.45,81.47,78.90, 80.16,81.11,79.81,82.66,80.03,81.27,82.25,82.75,82.89,80.00, 83.37,82.80,83.87,82.52,80.12,80.31,82.83,85.90,81.90,81.95, 82.43,84.00,84.91,84.51,85.85,81.45,84.66,85.06,86.12,82.09, 82.72,85.22,86.92,82.84,85.58,88.61,83.71,85.65,85.51,86.32, 89.38,85.86,87.35,89.00,88.61,87.49,87.97,87.21,85.73,88.03, 16.41,16.39,18.00,18.58,18.58,19.02,19.93,21.04,22.43,21.59, 21.59,23.95,23.18,23.23,24.09,25.23,25.69,26.74,26.43,26.73, 27.92,27.56,27.57,27.36,29.51,29.60,28.65,30.43,30.24,30.38, 31.30,32.23,31.44,32.95,32.68,33.67,33.26,33.51,33.78,35.59, 35.59,33.81,34.88,36.67,37.13,37.32,37.39,38.93,37.82,38.71, 36.46,38.01,37.67,36.77,39.24,40.31,40.75,40.94,40.07,38.52, 41.85,42.18,41.40,41.66,40.50,43.52,43.30,41.76,41.68,43.40, 42.46,43.51,45.90,45.14,46.38,45.57,47.24,45.50,47.09,45.51, 48.54,45.39,46.23,47.40,47.19,47.85,48.79,49.12,48.92,49.12, 49.59,50.48,49.19,50.95,50.28,49.23,50.86,52.01,54.90,52.26, 50.81,53.00,52.81,54.23,51.74,53.01,52.94,54.48,55.29,53.59, 55.15,53.75,52.61,54.82,53.60,54.91,54.26,54.16,55.72,56.74, 56.13,55.78,56.94,58.46,55.46,56.11,56.43,55.86,58.04,59.75, 55.54,56.64,57.40,59.74,59.00,60.58,60.78,59.39,58.83,58.83, 59.12,61.86,60.99,58.94,64.37,62.78,61.19,62.86,61.71,62.72, 63.82,62.93,60.40,62.31,62.27,62.84,61.36,64.79,64.25,63.20, 63.03,63.02,64.35,63.70,63.65,63.93,63.45,67.64,64.88,68.32, 66.08,64.67,67.37,66.25,67.01,67.05,65.63,67.61,66.98,66.48, 68.60,71.70,68.60,70.79,65.72,65.78,65.48,70.12,65.31,70.19, 69.17,69.89,70.38,70.97,69.76,69.54,70.10,71.33,72.36,71.70, 69.30,70.67,70.80,70.98,67.75,70.00,69.57,75.03,70.49,72.85, 71.03,72.28,71.71,74.62,77.21,73.41,73.23,75.33,75.35,75.52, 75.34,72.36,70.88,74.44,71.94,75.39,76.61,75.68,76.96,70.56, 76.76,74.51,77.41,77.74,77.90,77.31,77.94,77.91,74.91,79.86, 78.77,73.64,79.98,76.47,75.97,79.17,77.37,76.46,78.39,80.98, 79.94,80.17,79.66,78.91,76.68,80.25,80.61,80.93,77.71,77.66, 83.50,79.87,80.13,81.84,76.20,80.34,80.75,82.32,81.03,81.47, 81.34,82.31,83.85,77.93,80.94,83.38,81.26,82.50,81.93,82.72, 86.70,85.46,85.00,82.97,84.40,87.38,80.29,84.64,87.09,82.88, 15.66,16.45,16.39,18.11,17.89,18.51,19.63,19.01,20.43,20.97, 20.46,20.98,22.70,22.69,22.40,24.27,23.58,24.75,25.37,25.78, 27.16,26.32,27.08,26.65,29.08,27.93,28.07,27.63,29.18,29.69, 29.47,30.42,31.02,30.42,30.87,32.49,31.78,33.16,33.30,32.79, 33.62,33.03,34.38,33.59,33.35,34.75,34.95,35.74,35.68,35.48, 37.26,36.47,38.10,36.68,37.22,39.21,37.80,38.65,39.49,39.70, 39.94,39.79,40.13,39.71,40.17,41.89,41.27,41.88,42.29,41.19, 42.57,42.32,45.41,43.78,43.60,42.53,44.01,43.18,45.31,47.10, 43.53,45.95,45.47,43.72,46.56,45.83,45.59,44.94,47.31,47.34, 46.85,46.13,47.86,46.83,48.74,48.66,48.74,51.11,49.48,50.09, 50.17,50.45,50.41,50.06,51.46,49.32,50.61,51.76,51.48,51.37, 50.42,52.39,50.46,53.79,51.87,53.05,52.67,51.77,54.92,54.80, 53.09,55.07,54.58,53.29,54.62,52.66,55.79,56.71,57.28,58.00, 55.87,55.75,54.47,56.64,55.24,58.75,55.73,57.52,57.56,57.58, 59.76,57.97,59.05,56.67,58.48,60.28,59.02,58.22,58.96,58.21, 57.72,61.45,57.40,60.68,60.45,58.12,62.02,61.76,59.75,61.28, 61.90,60.43,62.51,62.24,59.54,60.71,61.73,61.25,63.77,63.98, 62.00,64.54,60.86,59.07,64.91,64.17,65.68,65.85,66.15,64.13, 62.80,62.99,63.76,65.53,67.48,64.95,66.46,62.27,65.12,69.58, 66.23,65.85,64.47,66.46,70.64,66.38,69.67,67.45,66.78,65.62, 68.48,68.79,70.55,66.98,64.96,66.92,67.32,68.43,69.16,68.77, 68.36,68.86,71.53,72.67,72.07,71.00,69.59,69.68,71.30,67.56, 70.80,72.89,71.65,71.18,70.19,72.34,72.39,74.29,73.84,71.10, 74.94,72.26,72.94,72.73,72.72,73.26,76.66,76.23,72.27,69.76, 73.22,74.96,74.33,75.35,74.03,73.91,75.49,75.49,73.91,78.99, 74.16,77.21,73.76,76.17,75.07,77.34,77.65,78.97,72.60,77.00, 76.77,74.55,76.70,80.29,77.94,76.92,77.90,75.73,77.61,80.17, 79.09,81.88,75.41,75.87,81.93,79.21,78.83,80.92,78.45,80.01, 83.53,79.36,80.07,78.59,81.82,77.23,76.95,82.93,85.76,80.13, 14.94,15.28,16.13,16.51,17.57,18.10,18.15,17.54,18.82,20.09, 20.86,19.55,21.28,22.42,21.54,22.60,23.11,23.44,23.83,24.87, 24.13,25.25,24.95,25.90,26.33,27.93,28.54,26.94,27.80,28.69, 29.13,28.56,28.00,29.39,30.27,29.64,29.14,29.97,31.53,30.77, 31.83,32.64,32.63,31.48,34.59,34.80,32.76,33.47,34.05,33.30, 33.56,35.33,35.16,35.76,36.42,36.64,36.65,36.94,36.94,37.95, 39.76,38.38,37.02,38.61,38.57,39.03,39.30,38.95,39.30,40.25, 41.12,42.34,41.19,40.21,40.63,40.97,40.34,41.57,42.98,39.90, 42.52,43.49,43.11,43.41,44.52,44.90,44.86,43.84,45.43,44.68, 43.28,45.35,44.59,47.49,45.27,45.63,44.84,47.99,48.24,47.16, 46.98,47.62,48.19,48.77,48.65,49.40,49.62,47.18,51.35,48.60, 47.70,49.16,50.59,49.35,50.45,52.12,50.35,51.07,50.21,51.85, 54.05,51.19,49.37,49.83,52.32,51.11,51.54,53.81,54.26,54.11, 53.48,54.30,53.86,53.59,53.86,51.70,54.86,53.55,54.08,55.95, 56.77,53.75,55.04,55.63,55.16,56.40,58.45,55.75,56.65,57.80, 57.66,55.99,58.49,58.54,60.23,57.25,56.99,59.30,59.45,59.36, 60.77,60.15,59.01,58.20,56.90,58.63,58.98,59.00,60.95,61.19, 58.37,62.12,59.76,58.18,61.55,60.62,59.43,61.09,61.89,62.18, 61.57,62.28,61.24,61.69,64.30,62.57,63.14,61.86,63.01,62.62, 65.39,64.75,66.36,62.49,62.64,65.23,67.55,65.82,64.79,66.04, 63.27,62.60,67.61,65.70,61.68,68.25,65.87,65.28,66.89,66.34, 69.93,65.73,68.81,68.55,67.81,68.42,67.65,65.20,70.87,65.61, 65.97,67.85,69.97,69.92,68.32,68.44,69.68,68.86,70.20,69.17, 67.90,69.98,71.28,71.97,68.62,69.58,73.39,68.53,70.14,74.13, 70.09,72.86,67.53,73.13,71.60,73.31,70.40,69.44,72.78,69.90, 70.78,74.21,73.07,75.35,71.82,70.30,73.71,71.04,74.42,76.14, 72.13,73.68,74.97,75.19,70.98,75.17,72.28,76.36,78.88,73.33, 75.38,73.40,73.55,75.37,76.09,77.27,79.40,76.48,74.86,74.37, 75.91,74.98,74.87,77.78,77.13,77.61,79.94,78.88,76.96,79.97, 13.88,14.66,15.66,16.21,16.28,16.41,17.05,18.44,18.17,18.66, 19.94,19.21,20.15,20.69,19.36,20.76,21.86,23.17,22.80,22.78, 24.18,23.24,24.41,25.44,25.01,25.37,25.97,27.17,27.66,28.19, 27.91,27.23,28.94,29.04,28.75,27.67,29.21,30.04,30.21,29.52, 29.80,31.10,31.41,32.30,32.50,31.99,31.64,32.29,32.02,32.31, 33.42,33.53,32.83,32.39,34.95,35.47,33.57,36.18,34.13,35.77, 35.98,36.45,36.01,36.32,37.58,36.11,38.21,37.30,37.98,39.11, 39.82,38.86,39.18,38.07,38.60,39.13,39.28,40.16,41.38,39.61, 42.09,40.46,39.93,39.56,41.69,40.53,43.21,42.30,42.25,41.11, 43.34,43.62,44.86,43.25,43.84,45.75,41.64,43.82,45.29,44.26, 44.04,44.83,45.17,44.90,44.84,47.24,45.80,47.66,45.61,46.73, 46.06,47.46,47.09,45.58,47.50,50.22,46.09,47.93,48.06,50.87, 48.72,50.07,51.16,49.91,50.82,49.19,48.61,48.75,49.39,51.87, 49.67,50.15,50.04,52.40,53.36,51.86,51.49,51.43,52.37,48.64, 50.63,49.79,53.67,53.65,52.69,55.52,53.22,54.45,54.73,52.94, 52.64,54.09,56.09,55.13,56.09,53.33,55.29,55.47,56.01,55.61, 54.43,53.91,59.33,55.12,54.82,57.45,56.41,57.20,56.92,59.19, 57.02,56.64,55.82,57.02,57.02,57.20,56.87,60.05,59.56,57.05, 56.76,58.57,58.38,60.52,58.28,59.32,59.74,59.93,59.22,63.52, 61.38,62.62,62.64,60.86,62.12,61.96,61.98,58.12,60.98,61.42, 62.64,60.88,61.61,62.27,63.95,64.77,64.37,62.31,64.35,63.24, 63.62,66.19,62.14,63.66,65.24,66.18,64.25,66.68,67.60,65.88, 63.73,64.55,65.68,65.78,65.14,64.27,66.80,69.77,63.98,65.81, 65.71,69.47,67.42,66.50,65.40,69.42,68.49,65.92,69.54,64.82, 67.01,67.20,69.70,68.32,67.27,64.41,69.94,69.31,67.20,67.89, 69.24,69.81,67.94,67.16,67.41,66.80,71.09,69.37,70.28,70.65, 70.45,69.67,64.89,72.39,71.86,72.22,72.79,71.98,69.50,74.45, 69.91,70.50,70.06,71.84,71.45,71.14,73.30,76.14,72.66,74.57, 75.77,70.84,73.00,73.66,70.91,72.14,77.03,73.98,72.80,74.92, 13.07,14.10,13.52,15.57,15.55,16.65,15.86,16.98,17.42,17.82, 18.79,18.93,20.33,20.69,19.82,20.18,21.50,21.30,22.12,21.69, 21.92,22.74,23.25,23.03,24.13,24.68,24.08,25.54,26.09,26.25, 25.04,26.01,26.23,25.25,25.85,27.97,28.12,28.14,29.35,27.00, 29.01,28.07,30.46,30.67,30.14,29.66,31.26,31.20,30.85,31.21, 30.93,30.37,32.38,31.11,31.75,32.83,32.39,33.13,33.34,33.42, 36.45,33.57,34.44,35.50,35.66,36.03,35.13,34.04,35.25,34.92, 36.06,37.54,37.04,36.48,37.60,39.41,37.60,38.77,37.10,40.29, 38.17,38.29,39.30,41.00,39.16,39.73,41.81,39.68,39.66,39.15, 41.77,40.58,40.21,41.57,42.08,42.89,42.91,40.90,41.20,41.24, 41.45,41.31,42.48,42.33,42.98,42.74,43.71,43.48,43.86,46.48, 43.59,46.43,46.36,42.80,44.04,44.58,46.01,46.81,47.09,46.26, 47.61,46.94,46.78,45.85,49.05,48.13,49.20,46.59,49.75,47.92, 49.70,47.28,48.53,47.89,48.72,48.90,49.88,49.28,50.47,48.00, 50.49,49.91,51.29,48.65,52.24,53.11,49.16,50.50,50.33,50.27, 50.82,53.65,51.84,50.33,52.28,51.45,52.74,50.20,54.12,53.42, 51.74,52.74,54.53,52.11,53.55,54.53,54.50,54.98,55.69,55.14, 53.85,53.98,54.44,57.15,53.38,55.06,55.71,55.88,56.46,56.36, 57.15,56.30,58.74,58.43,58.68,56.06,56.25,56.97,57.61,56.91, 57.58,56.06,59.79,57.39,59.76,60.91,58.98,58.04,58.04,59.70, 58.91,58.18,59.58,59.36,59.07,60.24,58.88,59.12,59.39,58.82, 60.46,61.20,61.07,59.62,59.88,60.57,60.18,61.63,61.86,59.82, 59.36,60.89,62.25,61.24,60.32,64.09,64.13,63.08,64.23,61.48, 63.43,61.79,61.66,65.06,59.81,64.47,63.83,61.88,63.21,64.89, 63.00,65.15,64.60,65.16,62.48,66.18,67.23,67.54,66.16,67.06, 63.49,66.39,64.48,66.59,68.69,65.40,64.89,66.76,65.87,65.83, 69.33,66.27,66.15,65.71,66.49,70.99,67.95,65.77,69.61,66.15, 66.22,69.11,69.31,68.99,69.26,68.56,67.87,71.40,68.03,69.06, 69.76,67.21,72.66,71.48,71.78,72.25,70.29,70.36,71.95,69.66, 18.07,19.51,19.90,21.20,20.85,21.64,22.25,22.37,24.33,24.17, 24.82,25.69,26.35,26.75,26.72,28.77,28.02,28.13,29.04,28.74, 30.39,30.18,32.06,32.44,32.37,32.35,32.50,33.70,33.49,33.57, 35.15,35.36,34.50,34.99,36.39,36.75,36.34,37.71,37.93,37.70, 39.23,38.53,37.94,38.65,39.67,39.24,42.00,40.46,43.71,41.86, 40.81,41.84,42.18,41.72,43.82,44.21,44.88,46.06,48.00,46.76, 46.44,44.90,46.35,47.26,47.33,47.03,46.98,46.85,48.91,48.11, 46.38,47.57,48.98,48.65,51.52,50.48,50.88,50.63,52.09,50.16, 51.13,51.07,51.02,51.67,53.28,52.82,55.26,54.59,53.61,53.71, 52.77,53.09,53.18,54.54,54.96,56.58,53.83,55.65,56.63,58.20, 56.32,56.74,58.87,59.88,57.29,55.89,58.04,58.40,59.20,57.08, 60.18,60.05,59.10,58.53,62.03,57.35,61.56,61.28,63.75,60.84, 62.50,63.40,64.48,63.36,61.04,63.14,64.94,62.27,62.24,62.67, 61.18,65.26,65.02,64.49,67.86,66.46,63.66,63.42,66.56,65.62, 65.88,67.54,61.64,67.66,66.13,69.76,65.25,66.90,68.17,66.81, 68.07,66.47,68.64,68.06,70.15,69.21,73.06,70.46,70.59,69.83, 71.80,72.28,72.06,72.52,70.38,69.99,71.68,70.57,73.37,72.92, 73.13,72.89,72.95,74.01,74.07,75.02,69.45,74.10,72.03,75.04, 77.92,75.44,75.10,72.05,71.89,71.56,75.80,73.12,77.73,74.66, 76.17,79.88,76.27,77.22,78.04,74.71,76.78,76.11,78.78,76.95, 78.14,80.35,78.26,78.00,78.74,78.84,76.29,80.41,76.74,80.63, 79.58,78.78,79.90,79.21,80.38,80.99,80.12,80.78,82.29,84.21, 84.66,80.73,83.10,81.66,81.20,80.63,81.33,85.27,85.37,81.86, 83.52,85.38,83.15,86.44,83.56,87.38,86.15,86.23,83.48,86.01, 83.51,85.90,85.70,85.58,82.25,86.19,87.83,83.34,87.22,85.56, 82.38,87.28,88.30,85.39,88.24,87.97,93.09,88.33,88.60,90.53, 88.76,88.90,87.67,89.80,91.04,88.27,87.74,85.36,90.96,90.29, 89.42,87.44,87.05,94.56,92.04,91.41,88.47,94.22,91.15,93.22, 91.14,95.85,90.51,89.17,93.10,92.85,90.54,96.20,94.15,94.40, 18.87,19.35,20.08,21.31,22.08,22.81,23.49,24.37,25.23,25.46, 25.83,26.53,27.43,28.26,28.16,28.69,28.32,29.61,30.20,31.24, 32.15,32.21,32.94,33.36,33.03,34.06,34.09,35.03,34.42,34.88, 36.65,37.84,37.42,35.95,38.56,38.73,38.41,38.45,39.73,39.61, 40.12,40.12,39.84,41.08,40.93,42.14,42.58,42.29,42.84,44.08, 45.99,46.43,43.84,43.48,44.25,46.64,48.29,43.61,46.85,47.24, 47.47,46.85,49.42,47.76,48.18,48.22,48.21,48.14,48.19,48.99, 50.33,51.15,54.28,52.36,50.35,53.71,52.68,52.41,51.77,55.22, 52.54,54.42,57.14,52.88,55.76,54.28,55.33,54.50,56.50,54.53, 56.07,57.80,57.20,55.44,60.04,58.15,57.87,57.90,60.01,59.09, 55.32,61.56,58.46,60.92,60.33,60.09,60.18,62.20,63.11,60.94, 63.23,60.37,61.26,61.51,64.07,63.41,66.07,61.20,64.03,64.15, 64.62,62.88,65.14,65.88,66.04,68.08,65.96,68.69,63.54,65.37, 66.73,66.31,67.62,66.38,65.44,65.97,66.52,65.71,67.08,68.09, 65.91,67.67,69.08,71.38,70.81,68.37,71.71,70.90,69.65,72.80, 70.63,72.71,73.21,71.58,71.35,70.86,68.62,74.45,73.09,72.90, 74.04,73.58,71.95,73.15,74.74,77.47,74.37,77.46,74.64,74.38, 77.06,71.86,77.14,76.72,75.72,76.17,77.46,74.75,76.89,77.28, 76.47,81.87,75.12,78.48,74.96,78.33,78.17,77.15,79.21,82.60, 78.45,80.58,79.88,79.73,79.80,81.45,81.40,81.69,82.32,83.60, 83.25,82.43,83.05,84.25,81.02,86.31,81.99,85.05,85.50,84.26, 83.42,83.08,84.41,83.22,84.88,83.52,85.22,84.62,88.24,84.78, 85.62,82.15,84.43,87.03,86.57,85.69,84.36,89.69,88.06,87.79, 86.05,83.57,87.00,85.85,87.04,88.82,84.05,89.21,87.88,86.63, 88.81,86.01,88.04,87.64,90.20,88.81,88.10,88.27,88.61,93.65, 91.66,89.30,90.78,91.74,91.99,92.27,91.86,94.75,91.98,89.43, 93.83,91.33,95.72,94.97,91.49,92.12,89.02,96.96,97.49,95.83, 96.15,95.51,90.27,92.20,98.49,96.21,92.74,95.81,97.42,96.65, 94.29,94.37,96.09,96.99,93.12,95.79,96.92,97.03,97.88,95.35, 19.56,19.86,21.61,21.67,21.76,22.56,24.08,24.65,24.22,26.94, 27.47,26.74,27.33,28.97,28.31,30.10,31.68,29.60,30.91,32.20, 34.20,32.87,32.76,32.96,33.75,34.56,36.46,36.13,35.23,37.15, 37.17,36.45,37.62,37.55,39.33,38.22,40.36,39.61,42.17,39.88, 40.73,42.45,41.18,42.56,42.27,42.58,44.75,43.43,44.03,44.47, 44.98,45.78,45.85,43.93,47.97,46.59,46.34,46.25,49.71,49.25, 48.03,47.36,49.07,50.69,51.00,50.19,49.79,51.61,51.25,51.51, 52.03,52.47,52.50,53.68,54.12,52.52,54.03,55.63,54.20,53.58, 56.00,55.15,54.37,55.97,56.48,56.71,53.34,57.07,56.39,58.50, 57.74,57.34,59.93,59.86,58.28,61.42,58.18,58.46,59.11,61.51, 63.81,62.21,61.71,59.85,61.55,61.65,60.30,60.14,63.90,60.83, 63.04,63.02,64.08,69.02,64.05,65.44,67.07,64.69,66.82,66.11, 65.89,65.34,67.29,66.54,64.43,68.76,65.79,65.89,68.70,67.33, 69.14,68.19,71.56,68.46,68.75,70.76,70.31,69.64,71.82,71.46, 70.89,70.69,71.09,73.90,70.40,70.03,72.92,72.44,75.45,74.52, 73.33,72.78,72.43,70.44,75.07,75.53,71.67,75.06,73.50,74.83, 76.59,76.48,75.47,72.67,73.64,71.66,79.30,78.82,76.61,77.85, 76.33,79.05,80.56,75.79,74.36,79.20,82.67,78.67,78.34,80.05, 79.61,80.81,80.83,80.29,82.48,78.75,82.10,79.96,84.09,85.00, 81.60,79.10,81.98,82.79,81.33,82.64,84.24,82.72,85.10,84.92, 87.57,82.61,85.97,84.25,85.20,84.26,84.60,86.11,83.45,89.06, 86.31,84.31,86.36,86.66,80.82,89.01,86.54,86.69,86.84,88.62, 87.30,86.39,87.07,86.38,87.07,87.95,92.70,90.90,92.37,89.87, 89.49,89.52,86.96,91.10,88.62,89.33,90.89,88.31,93.64,90.67, 91.52,89.46,90.28,90.13,93.66,94.43,94.47,95.89,88.95,95.55, 90.93,97.14,93.01,91.90,95.34,96.59,94.97,93.09,93.68,93.76, 96.90,95.70,97.61,92.07,98.57,95.94,95.11,94.74,98.17,95.16, 92.12,94.61,95.11,102.49,98.12,93.63,96.33,99.26,96.85,98.04, 95.53,99.44,94.46,99.07,97.60,99.07,97.51,101.88,98.47,99.81, 20.24,20.60,20.86,22.28,23.05,24.31,23.51,24.27,25.48,26.71, 26.53,27.33,28.44,28.96,29.01,29.92,30.28,29.85,31.48,31.46, 32.73,32.28,33.68,33.85,33.37,35.52,36.08,35.19,37.24,37.40, 38.04,37.59,38.75,40.09,39.93,38.94,41.38,42.69,39.75,41.84, 42.03,42.73,42.56,44.09,44.11,43.99,44.98,43.69,45.00,46.39, 45.81,46.73,44.59,48.83,46.26,47.88,47.26,47.80,49.90,48.61, 49.30,49.74,51.97,50.12,50.03,50.15,51.64,53.10,52.94,54.96, 54.80,53.74,51.16,53.92,55.33,51.96,52.44,54.36,56.18,54.29, 56.70,55.11,54.17,57.83,57.38,57.01,56.56,55.41,60.35,57.45, 60.74,58.19,60.31,59.57,57.57,59.85,61.16,61.36,61.91,61.78, 62.91,62.00,62.69,63.70,62.01,63.05,61.13,62.28,61.61,64.48, 67.34,64.63,66.97,65.54,65.76,67.82,67.27,66.27,65.64,66.88, 68.74,68.84,65.60,68.05,70.75,67.41,68.25,71.05,69.59,66.93, 71.95,70.39,69.52,72.64,68.06,70.76,71.32,72.53,72.88,70.71, 71.60,70.80,70.35,72.19,73.97,71.54,72.23,74.57,74.55,73.13, 72.31,72.47,73.61,74.93,76.37,73.75,77.46,76.82,76.11,78.59, 76.79,78.10,77.72,75.40,80.27,76.75,78.45,76.58,78.26,81.25, 82.44,75.80,80.60,79.43,79.48,79.58,79.45,79.06,78.13,79.97, 81.63,82.06,82.09,81.71,78.28,82.83,83.70,83.05,79.66,81.33, 82.09,84.29,80.41,86.36,84.00,84.90,85.92,82.74,85.61,86.78, 84.39,87.48,85.76,86.39,87.57,84.13,85.75,85.60,85.88,88.63, 89.83,89.60,88.44,87.77,88.15,87.34,89.45,86.21,89.46,87.68, 84.09,88.70,93.45,90.07,86.85,86.04,89.44,90.29,87.17,92.27, 91.26,88.87,92.31,92.02,89.79,91.94,90.15,90.72,96.91,89.48, 96.14,96.01,93.52,93.29,94.89,97.57,92.31,96.74,95.82,94.05, 93.78,93.52,99.18,94.22,94.47,97.48,92.43,98.13,98.59,96.56, 96.01,98.15,97.81,93.07,97.64,97.09,94.07,100.19,97.19,98.58, 96.42,99.76,101.00,94.68,97.63,100.36,95.61,93.28,100.06,99.76, 103.02,101.38,101.40,102.78,101.44,97.80,96.34,96.92,99.70,102.91, 19.77,20.69,21.26,22.81,23.92,23.50,24.70,25.70,26.01,26.22, 27.62,28.08,27.20,27.60,29.37,29.19,31.82,31.38,32.72,32.89, 33.36,34.48,33.83,34.86,35.13,34.94,36.00,36.18,36.17,38.64, 37.48,37.68,38.47,39.51,38.81,41.77,40.63,41.04,39.37,42.80, 41.21,43.22,43.06,44.12,44.15,43.38,44.68,45.32,44.97,46.88, 46.98,46.27,45.91,48.77,48.84,47.95,49.14,46.71,49.71,49.38, 49.12,50.09,47.66,51.93,50.27,52.55,50.02,53.42,52.17,54.03, 51.25,53.74,54.07,54.71,54.06,53.02,55.92,57.54,54.88,55.95, 56.39,56.14,57.26,56.31,56.72,61.39,57.82,56.82,57.40,59.40, 61.21,60.11,59.45,59.28,58.38,61.99,58.60,60.59,63.92,63.34, 60.76,63.21,61.86,63.25,63.90,63.77,61.50,63.41,67.47,65.69, 66.76,64.45,63.82,67.68,63.62,65.79,64.99,67.12,66.52,68.21, 69.91,65.71,69.13,68.90,66.60,66.79,69.91,71.15,71.01,70.84, 70.27,68.70,70.18,72.63,71.95,68.57,67.98,70.61,72.87,71.27, 70.91,73.11,69.95,70.25,71.78,73.38,74.37,74.94,71.75,74.46, 74.93,75.40,74.11,74.83,74.59,74.79,76.95,77.90,77.81,77.73, 78.66,76.51,77.81,76.52,77.76,77.58,78.75,77.13,77.77,80.50, 78.19,80.16,80.93,81.64,80.05,79.28,83.86,80.24,82.49,81.93, 81.04,82.09,82.68,85.78,83.74,82.85,82.25,81.25,83.45,85.94, 86.09,87.07,85.30,84.08,86.27,82.99,82.67,85.09,81.15,84.88, 83.35,86.78,90.08,87.26,84.35,88.97,86.69,89.29,88.11,87.24, 89.55,89.09,85.84,92.82,89.97,87.73,87.17,87.37,88.86,85.99, 90.39,87.79,95.69,89.57,94.38,91.47,91.53,95.91,92.68,94.66, 89.16,90.28,94.48,92.27,93.66,89.11,92.80,94.62,93.22,92.11, 94.56,90.50,90.50,96.07,95.59,95.57,94.70,94.23,92.63,95.96, 96.85,95.48,94.39,93.51,97.97,93.32,95.67,101.36,95.48,97.94, 99.81,97.19,100.86,95.92,99.26,98.94,96.89,99.06,99.06,95.89, 96.30,97.24,100.45,99.58,100.11,99.11,100.02,99.20,98.77,94.39, 102.20,99.63,100.23,99.37,106.17,101.47,102.18,101.36,101.57,102.87, 19.75,19.82,21.38,21.64,23.52,23.34,24.65,25.54,25.51,26.82, 25.91,27.88,28.03,29.20,29.62,29.72,30.73,31.71,31.55,32.60, 33.77,32.78,32.51,34.59,34.33,35.04,36.89,37.46,36.66,37.51, 36.82,37.71,38.66,38.83,39.56,41.52,39.69,40.14,41.55,42.40, 41.40,42.44,43.39,43.56,44.09,44.48,44.07,45.72,45.31,45.31, 46.28,47.14,48.17,46.78,48.15,47.71,47.80,46.67,49.04,48.84, 48.60,49.71,50.35,49.43,50.62,52.51,50.57,52.25,53.61,51.36, 52.45,53.31,53.16,53.83,55.70,54.61,54.76,56.96,56.31,55.88, 56.43,54.30,56.46,56.57,57.80,57.66,59.42,55.15,59.12,59.84, 60.62,60.35,59.48,61.04,59.97,61.70,60.41,60.53,60.43,63.06, 61.85,63.23,64.89,63.94,61.63,60.08,64.66,64.27,65.05,66.64, 64.29,67.35,66.37,67.10,66.60,68.60,67.63,68.04,64.99,68.34, 67.17,66.58,70.49,68.07,66.16,68.58,68.53,67.50,68.84,70.30, 68.77,68.45,73.06,68.40,70.26,71.85,71.53,69.54,68.78,72.62, 73.73,73.74,71.01,73.25,72.02,73.56,74.08,75.24,74.29,73.29, 76.08,75.31,74.51,77.04,73.93,76.81,75.42,75.51,74.77,75.87, 73.32,77.00,77.16,76.58,80.88,76.89,80.07,77.53,80.38,75.64, 79.21,79.95,81.34,79.88,77.70,83.78,79.34,80.61,86.30,80.81, 81.90,84.48,83.05,83.73,86.30,78.70,82.24,82.26,82.53,82.80, 84.67,85.73,83.39,81.72,82.47,85.35,82.20,85.24,83.20,84.90, 82.20,82.07,87.71,83.79,87.15,86.51,84.13,88.14,90.96,83.63, 87.10,84.84,87.02,87.22,84.43,90.43,85.59,90.81,89.37,86.36, 89.39,88.77,89.32,90.96,93.52,91.81,90.34,92.66,86.40,92.36, 89.80,90.64,91.07,97.59,91.10,92.32,96.98,91.99,92.24,92.79, 93.57,92.49,95.13,89.56,92.44,96.36,94.20,95.83,92.82,93.65, 93.41,94.83,92.34,92.63,97.50,95.11,95.76,99.64,94.39,97.24, 92.07,96.92,95.28,100.16,100.01,95.14,98.80,97.63,95.76,101.02, 95.04,100.15,102.92,99.85,95.60,97.59,98.91,99.77,99.16,102.95, 98.37,100.62,105.25,101.77,103.55,100.01,103.01,101.57,98.75,101.17, 19.21,20.33,21.23,22.90,22.42,23.58,23.41,24.14,25.51,25.85, 26.94,27.99,27.39,28.77,28.80,29.19,30.57,31.67,31.32,31.63, 31.93,33.33,34.52,34.45,33.59,35.16,34.39,36.19,36.02,35.42, 36.70,37.57,37.85,40.41,38.72,41.00,40.48,38.86,40.10,40.62, 42.24,40.77,43.47,43.87,43.43,43.57,42.82,45.10,43.95,45.52, 44.40,45.97,46.80,45.76,47.43,47.86,47.81,48.00,46.81,49.19, 51.29,49.85,49.29,50.37,47.51,50.17,50.75,51.09,51.49,51.16, 53.16,52.51,53.45,54.20,54.95,55.64,52.83,56.16,52.64,56.29, 53.37,56.08,55.81,56.40,56.43,56.71,56.81,58.48,59.43,61.17, 57.88,59.95,58.06,60.14,57.70,61.51,61.10,60.39,60.25,62.09, 61.63,60.90,60.82,63.40,64.91,61.84,65.59,62.89,63.94,66.04, 63.66,65.54,65.32,65.38,66.88,65.89,67.72,66.63,67.00,68.45, 67.35,65.68,63.41,65.84,70.07,71.21,70.23,68.94,68.46,69.12, 71.19,70.42,67.59,67.30,70.58,70.39,70.85,71.22,70.77,69.81, 71.85,71.18,74.78,72.46,72.84,71.14,74.63,76.02,73.71,70.64, 75.24,75.52,74.83,73.77,76.63,78.95,78.20,74.53,76.22,76.22, 75.03,77.80,76.25,80.13,80.73,75.99,77.38,75.66,79.76,80.10, 78.97,75.78,78.86,74.29,79.30,79.23,78.44,79.09,79.10,79.29, 80.96,78.79,84.41,81.42,80.52,79.40,78.44,79.44,81.96,79.60, 83.25,83.81,79.81,82.72,82.37,83.13,82.32,83.14,83.97,82.62, 84.89,85.01,84.30,88.06,87.39,84.83,85.56,89.94,84.57,87.05, 87.32,85.23,87.20,88.18,84.48,83.67,88.72,88.97,86.85,86.94, 87.44,87.63,91.86,88.23,88.54,88.54,91.04,90.46,89.29,90.41, 92.06,87.59,95.71,91.52,89.23,89.30,90.37,91.42,88.99,93.13, 95.03,94.98,89.48,90.53,91.13,96.68,94.83,93.70,98.71,90.19, 91.50,92.66,93.09,94.99,92.41,96.03,93.45,96.55,94.07,94.10, 97.83,94.43,96.03,97.59,96.74,94.56,95.47,99.02,96.23,97.58, 99.07,98.75,98.28,101.25,93.05,100.09,103.09,99.34,99.83,95.45, 98.39,101.20,100.28,97.96,100.86,98.79,101.82,102.93,100.31,100.92, 18.98,20.40,20.31,21.38,22.10,23.03,23.59,23.52,25.27,26.15, 25.66,28.09,26.21,27.75,28.94,29.44,29.23,30.78,32.15,31.65, 32.02,31.78,31.72,33.75,34.87,33.19,36.21,34.75,36.18,35.72, 36.04,36.51,37.74,37.80,38.54,38.48,38.49,39.14,40.22,40.74, 40.51,40.76,41.47,41.08,41.57,42.86,42.75,44.29,45.00,44.25, 42.96,46.24,46.03,46.84,46.39,44.97,47.37,46.57,47.82,46.82, 46.53,49.43,48.77,51.26,49.28,50.40,51.15,49.78,50.88,50.17, 50.92,50.20,51.69,49.78,54.59,52.02,53.28,55.80,52.82,55.16, 56.17,56.67,55.33,56.69,55.49,56.70,57.34,57.06,57.44,56.94, 59.37,58.55,57.11,60.96,58.66,58.39,56.83,60.00,59.94,56.17, 61.35,60.81,63.80,61.28,59.26,61.13,62.44,61.28,62.39,62.01, 61.76,64.00,62.18,66.64,63.70,65.64,65.47,62.78,66.85,65.64, 63.54,67.49,67.21,66.97,66.71,67.58,65.97,67.58,69.46,67.98, 69.18,68.66,69.59,67.48,70.19,69.34,69.68,68.89,67.04,72.56, 70.73,68.23,69.37,71.93,71.39,69.87,70.98,73.48,74.43,72.28, 72.70,71.90,75.66,73.30,71.08,72.05,73.83,71.66,74.62,76.60, 75.66,73.85,79.53,74.12,76.41,74.28,76.44,75.37,78.42,77.57, 75.72,77.44,79.86,77.13,79.42,77.83,81.43,80.05,76.38,81.06, 81.01,81.44,78.43,79.27,79.44,81.00,82.81,78.52,82.25,80.74, 81.67,79.44,80.38,83.65,79.66,85.73,82.43,82.69,83.09,80.99, 80.23,81.30,81.43,85.37,84.22,83.12,83.04,85.20,90.89,86.09, 85.37,82.48,84.82,84.74,84.38,84.24,87.36,89.54,87.79,87.08, 88.72,86.18,88.31,88.03,88.56,87.84,88.53,89.55,87.69,86.44, 92.47,88.31,89.22,88.51,91.91,87.78,91.42,92.76,88.93,91.42, 90.72,93.50,93.99,91.54,92.15,92.48,92.58,95.82,92.09,92.83, 90.17,92.30,94.84,93.83,93.24,94.66,95.57,91.32,96.10,93.65, 95.23,94.72,95.54,100.51,99.67,96.38,95.25,95.24,100.00,94.87, 98.48,94.22,99.41,97.14,98.12,96.19,98.03,95.26,98.51,99.57, 98.99,100.14,98.86,95.92,102.47,101.96,99.85,100.54,98.73,99.83, 18.74,19.38,20.53,20.96,21.68,23.26,23.23,22.98,24.37,25.55, 25.68,25.31,26.24,26.95,28.87,28.71,29.12,31.30,29.84,30.98, 31.06,32.22,32.06,32.51,32.15,34.31,35.04,36.06,34.43,35.50, 35.29,36.79,35.94,37.66,37.64,37.39,39.49,37.67,37.99,40.33, 41.15,41.40,41.42,41.69,39.54,42.03,42.15,44.38,42.57,43.38, 44.23,45.57,44.68,43.94,43.25,46.44,43.82,47.32,46.35,46.80, 45.97,48.25,48.75,49.80,47.82,49.79,48.49,48.76,50.13,51.19, 50.94,48.06,51.38,52.00,50.39,52.39,50.97,54.56,54.67,53.34, 52.26,55.15,54.06,52.82,52.61,55.20,59.44,55.94,57.42,55.87, 56.18,57.97,57.40,57.73,60.51,58.22,59.24,59.60,60.08,60.43, 57.57,59.80,60.33,60.37,60.59,62.16,59.00,61.41,61.31,58.33, 60.73,60.34,62.73,63.40,64.89,63.53,63.21,62.57,64.19,64.23, 64.47,64.49,65.64,64.63,65.37,63.77,66.00,65.03,65.76,64.90, 68.39,68.43,66.69,64.90,66.47,68.33,72.06,66.36,67.87,70.48, 68.35,69.43,67.65,70.64,69.56,71.25,69.65,68.85,71.40,71.18, 71.52,72.20,72.90,72.16,72.37,73.51,70.72,74.33,73.05,71.65, 72.73,70.75,74.38,74.31,76.64,75.61,77.13,76.65,73.38,76.42, 78.21,78.22,73.59,78.25,78.86,76.26,75.83,75.15,78.03,80.23, 78.46,78.01,74.87,79.19,77.49,79.73,77.19,78.98,75.01,78.88, 78.18,81.00,82.18,81.08,75.83,82.50,80.32,80.12,82.13,82.16, 84.64,80.40,83.81,83.76,85.36,81.13,83.92,81.14,80.02,84.85, 83.23,86.77,86.26,81.05,82.94,85.81,84.80,83.52,84.73,82.17, 83.31,84.82,86.75,87.66,84.98,88.64,86.98,86.94,88.06,90.15, 87.81,87.98,86.09,89.60,90.47,88.58,85.49,90.60,87.51,88.28, 89.58,88.85,92.39,88.62,92.01,87.80,90.83,89.35,88.60,90.04, 87.85,87.29,89.74,90.91,88.40,90.12,91.02,93.05,90.66,92.09, 91.86,92.91,96.00,88.47,91.78,88.40,93.26,90.57,92.93,95.50, 91.84,97.74,92.29,94.49,94.51,93.41,89.89,94.15,93.65,93.05, 99.51,100.25,94.97,93.81,97.07,99.80,98.30,97.01,96.96,100.34, 18.10,19.33,20.20,19.68,21.21,22.25,23.40,23.41,23.75,24.81, 24.88,25.34,24.72,26.76,26.99,27.69,28.77,29.25,30.69,28.94, 29.74,31.18,30.86,31.13,32.06,32.12,33.07,34.28,34.00,34.51, 34.47,35.13,35.67,36.81,37.77,38.15,36.54,37.86,38.92,39.01, 40.67,39.46,40.75,40.75,41.70,40.02,41.26,39.25,41.08,41.62, 43.74,41.35,44.22,45.02,44.75,43.71,43.92,44.54,45.93,45.85, 44.93,46.54,45.54,47.18,47.87,46.53,47.89,48.28,46.50,47.25, 50.94,49.45,49.68,49.32,51.57,50.28,49.93,50.54,50.20,53.05, 53.07,53.87,53.23,51.34,54.73,52.17,54.74,54.93,53.96,54.94, 56.43,55.50,56.85,57.38,56.91,56.44,58.35,57.14,57.28,57.96, 58.15,57.18,59.38,60.58,59.18,59.19,56.40,58.80,58.85,60.05, 61.08,59.51,60.09,59.32,60.26,61.00,64.63,59.67,62.44,61.26, 62.65,59.71,63.19,66.06,62.48,62.47,62.26,62.77,66.36,62.26, 66.76,63.21,66.36,65.18,65.03,69.98,66.06,67.74,66.82,69.05, 65.90,66.93,67.96,67.67,70.47,68.92,66.76,66.77,68.58,68.27, 68.64,68.79,67.72,69.20,68.84,72.57,69.59,69.43,70.89,74.41, 74.66,73.83,77.34,76.37,71.95,70.89,74.51,73.81,71.75,76.99, 73.43,73.81,75.86,73.41,77.44,75.31,76.06,74.45,73.15,74.80, 75.79,77.36,78.38,73.79,77.76,75.52,77.22,78.32,76.96,79.42, 78.45,79.64,78.32,78.88,78.92,81.18,81.42,79.99,80.84,78.27, 81.93,79.25,78.19,80.23,83.90,79.86,77.74,81.20,81.16,79.46, 82.74,85.87,83.49,80.54,81.36,79.33,83.75,81.54,85.30,82.13, 86.18,87.26,84.50,80.41,82.77,85.37,86.01,80.98,87.10,88.37, 83.93,85.36,87.06,85.82,85.34,83.06,84.95,84.81,88.41,83.24, 88.60,86.29,88.13,89.13,89.46,87.76,85.61,89.09,88.66,87.38, 87.38,88.64,86.53,89.96,87.32,91.60,94.11,91.22,87.67,88.34, 92.12,90.64,91.91,90.69,90.90,92.35,89.90,90.37,88.73,94.72, 91.90,92.00,93.13,92.32,92.39,92.22,88.20,88.40,95.80,94.83, 96.39,95.77,90.60,92.41,92.77,93.27,91.07,95.15,96.13,94.35, 17.40,18.48,19.81,20.15,20.92,21.04,21.17,22.70,23.11,23.84, 25.44,25.01,25.05,25.44,25.82,27.43,28.59,26.98,29.70,28.96, 29.93,31.79,30.29,30.09,32.32,31.52,31.84,32.88,33.48,32.96, 35.15,34.39,36.27,34.29,35.47,34.83,35.99,36.63,37.49,36.65, 39.30,39.15,38.89,40.01,39.30,39.46,40.07,41.02,38.64,41.39, 40.43,42.59,41.66,42.60,42.47,43.62,41.79,43.56,44.04,45.29, 42.89,45.02,45.17,46.87,47.05,46.15,45.60,46.30,46.48,48.30, 47.02,47.60,51.55,49.91,47.02,51.07,51.24,49.40,52.03,51.03, 49.87,50.73,50.49,50.57,52.98,51.91,53.05,52.83,53.80,52.36, 53.55,54.17,54.15,52.08,56.02,55.40,55.80,55.45,54.99,57.73, 54.31,56.25,57.12,55.85,58.88,57.49,58.77,58.37,58.52,61.07, 56.46,57.24,58.44,58.90,59.41,59.50,60.68,61.54,60.51,59.37, 59.00,60.83,59.10,61.34,59.13,63.39,62.19,62.52,62.95,62.66, 62.04,64.84,64.92,64.00,62.66,62.44,67.08,63.24,63.14,66.61, 64.22,66.02,63.55,66.26,67.06,67.06,67.29,66.17,67.62,65.51, 69.73,70.40,69.13,70.70,65.88,67.25,69.59,69.46,70.08,69.45, 70.26,71.81,68.03,67.83,70.97,71.22,67.25,72.06,70.99,72.25, 71.08,70.74,70.71,72.86,72.92,73.44,75.17,71.49,71.29,73.05, 74.80,73.87,75.18,73.14,75.72,75.71,72.13,76.59,75.79,74.41, 75.23,74.81,74.85,80.37,75.97,76.77,77.24,73.63,77.97,77.40, 76.57,75.40,75.66,80.84,78.65,80.81,79.69,79.06,77.77,79.89, 77.62,78.75,80.92,76.36,82.82,80.04,79.11,79.69,80.81,80.86, 77.79,82.31,83.05,83.15,81.91,81.13,83.44,79.15,80.41,83.14, 83.65,83.68,83.64,81.87,83.00,84.24,84.58,82.70,84.17,83.81, 85.30,83.28,84.30,85.24,84.59,83.81,84.38,83.06,85.68,88.18, 86.19,85.84,82.10,84.58,89.37,85.31,84.14,87.84,86.03,85.76, 87.23,87.10,87.86,87.08,86.33,88.08,88.87,85.00,92.86,90.39, 86.08,89.44,88.12,88.47,86.40,89.81,91.62,92.28,90.65,93.62, 92.38,91.85,90.19,97.64,90.03,92.12,94.02,92.11,90.99,94.41, 17.24,18.06,18.45,19.61,18.96,20.22,22.18,22.12,22.32,23.70, 23.63,23.97,23.98,24.82,25.34,26.03,26.08,26.73,27.67,27.32, 29.02,29.05,29.40,29.28,30.85,30.55,31.78,30.92,32.35,32.64, 33.52,34.28,33.25,36.07,34.87,34.60,36.89,35.43,35.46,35.88, 35.55,37.29,37.91,36.48,38.29,38.69,39.37,38.92,39.20,41.24, 40.32,41.18,42.19,41.46,41.37,41.72,42.19,41.91,44.69,42.85, 44.14,43.06,42.18,43.75,43.72,45.24,45.91,44.90,46.06,45.92, 45.71,48.86,45.19,47.13,50.20,47.79,48.89,46.61,48.48,48.62, 49.01,48.05,48.36,49.53,48.46,50.00,50.73,51.70,48.07,50.53, 51.83,51.22,52.92,54.68,51.32,52.97,51.92,51.67,53.40,55.27, 54.35,54.02,55.70,54.77,54.36,54.23,53.72,55.61,57.22,57.45, 55.17,56.53,56.49,57.56,54.88,56.11,57.91,58.79,60.60,56.66, 54.69,56.77,59.86,59.15,59.65,59.47,61.13,62.37,60.72,60.35, 62.46,60.57,64.00,62.47,62.85,61.37,62.65,62.54,63.15,58.66, 64.54,63.08,58.06,62.61,64.30,62.99,64.90,67.99,64.41,63.16, 67.80,67.73,64.79,65.53,65.30,65.71,70.68,67.04,69.67,65.64, 66.62,68.01,67.77,66.32,66.90,65.69,68.49,68.28,67.82,67.93, 68.90,67.41,70.11,68.73,67.84,69.06,71.26,68.58,68.68,66.59, 74.81,70.26,75.03,72.38,71.23,69.61,73.17,71.80,72.61,74.02, 71.30,71.52,72.20,72.07,69.74,73.38,74.52,72.33,72.86,76.56, 74.26,73.37,74.88,73.96,75.96,73.57,75.60,77.04,73.52,76.89, 74.94,77.43,73.15,73.98,77.86,76.58,75.16,77.84,77.23,79.02, 78.24,78.87,78.40,78.16,81.24,76.92,78.53,78.77,81.07,79.84, 75.70,81.74,79.86,81.02,79.38,82.22,84.61,81.26,79.98,81.81, 81.60,83.59,80.49,81.35,81.23,82.61,84.30,81.34,82.48,84.26, 81.13,77.84,81.70,83.24,86.52,81.26,87.71,84.05,82.75,82.99, 85.79,85.48,84.22,83.88,86.27,85.45,84.51,87.09,85.15,86.57, 90.69,89.55,83.35,83.87,83.44,86.16,88.34,88.63,85.92,89.53, 85.03,85.91,90.20,84.25,88.17,88.99,85.29,88.25,89.17,88.61, 16.27,16.93,17.71,18.91,18.91,19.01,20.19,20.75,21.80,21.67, 23.23,23.15,23.77,23.79,23.18,26.14,25.28,26.12,26.70,27.47, 26.68,26.51,27.33,28.34,28.83,29.38,30.13,30.46,30.10,31.94, 30.72,32.74,32.68,31.92,32.08,32.84,33.16,33.33,34.51,35.51, 35.02,34.46,37.29,35.76,36.06,36.67,37.46,36.44,38.47,37.98, 38.60,39.26,39.82,39.17,39.86,41.23,42.71,39.62,41.59,39.52, 40.46,42.35,41.70,44.16,43.07,42.67,43.83,42.74,44.86,46.25, 41.87,45.03,44.77,44.21,46.23,46.39,45.51,46.12,47.85,45.90, 49.62,49.75,47.10,47.31,47.00,49.31,48.08,48.71,51.13,49.64, 47.38,49.82,47.78,51.60,50.02,50.57,54.28,49.68,52.62,53.36, 53.45,53.39,51.55,51.07,52.84,53.20,53.82,52.83,51.15,53.55, 52.97,55.09,57.55,55.54,57.22,55.28,54.42,55.79,57.07,57.48, 56.48,56.62,54.91,56.17,56.17,59.06,58.24,58.14,59.19,60.54, 58.91,57.89,57.66,60.03,59.43,60.28,59.26,59.38,61.22,60.59, 60.98,60.66,62.78,63.03,62.56,62.36,61.89,64.31,62.04,63.68, 61.49,64.30,61.22,63.41,62.37,64.67,63.51,63.48,66.11,64.64, 64.63,64.29,66.65,64.98,61.69,66.85,65.37,64.42,68.39,66.94, 65.79,67.85,66.08,68.20,63.90,67.48,68.18,68.56,65.48,67.80, 67.68,69.58,69.82,70.14,69.42,69.44,70.44,68.45,69.66,68.51, 71.82,72.60,71.78,70.48,69.41,71.14,74.84,68.94,70.29,69.36, 72.07,74.35,72.60,74.21,71.32,72.25,73.54,73.64,72.67,73.83, 73.69,77.02,73.46,74.85,71.97,73.04,75.21,73.74,77.21,74.22, 75.79,75.07,71.97,74.27,74.55,75.32,75.21,78.12,76.75,76.86, 77.63,80.68,76.64,76.06,76.35,76.59,79.26,70.98,79.70,75.53, 78.24,78.76,79.86,76.15,78.67,78.61,77.94,78.09,77.77,81.30, 80.64,79.84,80.78,81.14,80.72,78.82,79.50,79.92,84.47,82.09, 79.51,81.62,77.94,81.19,79.51,83.13,80.39,81.56,82.48,83.25, 81.04,80.83,82.58,84.97,82.71,80.86,84.64,82.35,87.98,82.92, 87.81,89.28,85.68,84.37,88.70,90.03,84.66,82.45,84.88,85.21, 14.77,16.46,16.48,17.98,18.66,18.51,18.11,19.80,19.92,20.95, 22.02,21.88,22.10,22.53,25.17,23.44,23.78,24.35,25.15,26.42, 25.69,25.56,26.54,27.95,28.19,29.70,28.51,29.05,29.71,30.83, 31.00,30.04,31.38,32.04,31.85,32.19,31.69,32.19,33.99,33.42, 33.18,34.12,35.25,34.47,35.41,34.65,36.51,36.48,37.50,36.64, 38.08,37.55,37.08,38.15,38.21,37.58,39.29,39.82,36.24,39.95, 37.86,40.93,39.96,42.09,40.54,40.38,41.31,43.30,44.33,42.78, 43.19,41.30,41.67,43.77,42.54,46.54,44.12,44.24,44.38,46.16, 44.44,45.42,45.83,48.48,46.12,46.69,46.24,46.80,47.98,45.87, 49.11,48.16,47.97,49.75,49.27,49.07,50.60,49.96,49.94,48.61, 50.26,51.05,46.93,51.24,51.64,50.14,53.92,50.01,52.19,52.83, 51.79,52.66,53.84,55.15,53.81,53.12,53.98,52.14,54.65,57.62, 54.28,54.67,53.00,55.50,54.26,58.47,56.30,54.97,57.05,54.51, 56.31,57.85,56.89,58.56,57.94,57.30,55.86,57.29,59.49,56.15, 58.37,59.83,58.89,59.25,57.14,58.40,58.89,58.27,62.30,61.06, 60.44,61.48,60.68,60.83,59.79,60.68,61.66,62.84,59.83,63.11, 61.04,61.61,64.46,64.91,61.72,62.41,62.16,63.14,65.74,66.00, 63.67,66.88,60.47,67.41,63.11,63.11,66.00,64.34,67.60,63.57, 63.60,61.76,65.55,65.48,66.68,66.41,67.89,64.53,66.99,68.81, 66.46,68.67,68.17,67.26,66.96,66.17,69.62,69.40,69.75,69.70, 72.35,66.20,69.14,70.04,69.14,70.59,71.67,69.37,71.53,67.83, 71.01,66.80,72.77,71.67,73.32,71.54,72.55,70.58,71.41,70.74, 71.89,72.70,69.67,74.18,73.85,73.72,71.68,75.89,76.20,72.44, 73.57,75.27,74.24,72.72,73.25,75.09,73.08,73.81,74.61,77.98, 73.04,75.95,76.02,77.39,74.89,73.40,77.63,73.71,75.96,74.56, 74.06,76.58,77.79,79.27,78.25,74.61,79.76,76.44,79.20,78.97, 79.74,76.76,76.35,78.99,79.32,78.21,78.42,85.04,78.05,77.84, 79.47,76.02,80.43,80.83,80.42,78.06,80.68,81.28,77.93,80.10, 79.60,83.40,82.00,78.75,78.06,86.42,83.64,83.21,84.53,82.16, 14.64,15.60,15.86,17.17,17.85,17.76,18.53,19.18,19.01,20.25, 20.89,20.69,21.60,22.55,22.85,24.73,24.40,24.28,25.05,25.64, 25.62,25.23,25.48,27.14,27.09,27.18,28.09,27.26,28.05,28.18, 28.65,29.58,30.38,30.39,31.30,30.46,30.24,31.93,31.18,32.56, 33.63,32.84,32.43,32.12,34.73,34.71,35.50,34.37,34.89,35.24, 36.42,35.36,34.74,36.25,35.82,37.99,36.57,38.08,36.87,37.99, 37.43,38.47,38.77,39.23,38.94,40.91,39.07,40.50,41.10,40.77, 42.21,41.39,41.80,41.36,42.54,41.39,43.07,42.05,42.11,41.43, 44.12,42.90,43.31,42.31,43.86,43.87,43.97,43.76,44.23,44.20, 47.02,44.70,46.59,45.47,45.76,48.67,46.56,46.65,47.60,47.54, 46.79,47.38,48.71,48.58,48.31,48.36,48.42,50.09,49.75,49.19, 50.24,49.66,50.46,49.36,50.15,50.90,53.09,50.37,52.49,50.24, 52.96,52.06,53.21,54.03,53.13,53.09,52.70,53.98,52.94,53.39, 53.30,54.13,53.75,53.49,55.26,54.51,54.36,55.57,56.49,55.81, 56.88,56.31,56.07,57.75,55.72,55.91,58.87,58.41,58.94,58.75, 56.94,55.36,55.87,59.67,58.42,58.19,55.95,59.55,59.44,59.24, 60.92,57.83,58.78,58.78,59.92,58.14,59.78,61.18,60.77,61.71, 61.40,63.32,63.30,61.59,63.10,62.17,63.46,64.15,63.41,61.97, 61.40,64.06,62.52,64.82,63.80,62.41,63.60,65.52,66.22,67.55, 62.12,64.31,64.79,65.42,65.31,64.93,64.20,65.62,64.90,67.67, 67.28,66.55,66.34,68.74,67.78,66.06,66.87,67.53,66.82,65.85, 64.38,68.15,67.50,71.67,64.33,66.73,64.64,69.43,69.03,66.05, 69.43,72.03,71.41,70.16,70.63,70.82,70.51,68.95,73.32,69.57, 72.68,71.04,72.00,73.35,71.76,69.30,70.38,73.90,69.87,68.56, 74.48,72.62,72.05,73.54,71.65,71.35,73.37,74.05,71.30,74.57, 72.58,74.71,72.99,74.37,72.58,74.55,76.79,70.17,76.80,79.55, 77.30,73.40,76.25,76.89,74.87,73.74,76.44,77.19,76.22,72.13, 74.19,77.64,76.98,78.42,75.66,79.81,76.99,75.24,77.42,79.46, 73.42,74.88,76.54,75.47,80.64,73.51,81.20,78.01,78.06,76.63, 18.18,18.89,19.36,20.61,21.58,22.59,23.30,23.34,24.10,24.37, 25.25,24.19,25.89,27.06,26.39,27.67,28.24,27.85,28.85,30.40, 30.22,30.87,31.34,30.85,33.19,32.66,33.68,33.34,33.41,33.47, 33.71,34.51,34.47,36.86,36.67,37.22,37.14,37.69,38.52,38.32, 39.27,38.98,38.67,40.36,39.67,41.42,40.31,41.83,39.55,41.61, 43.06,42.07,42.12,43.80,44.38,46.07,45.42,45.41,45.25,44.98, 45.24,46.06,45.65,46.36,47.05,45.01,46.34,49.29,48.50,49.65, 50.08,48.47,48.58,49.94,48.00,52.24,49.66,50.06,48.81,50.89, 50.34,52.60,51.78,51.73,51.75,51.31,54.88,52.07,51.69,52.47, 54.07,54.75,54.96,54.52,55.75,55.24,56.08,55.82,56.91,56.60, 56.69,56.22,56.79,57.75,55.47,57.39,58.38,58.48,60.00,58.83, 59.76,59.86,59.45,59.75,60.63,60.67,59.37,63.19,59.45,60.19, 59.99,63.46,61.19,62.37,63.47,61.28,63.99,62.25,62.59,63.16, 63.58,60.44,64.49,65.87,65.48,64.27,65.94,65.09,66.58,63.34, 66.39,65.26,66.42,68.40,63.34,66.59,69.08,66.71,64.38,70.76, 68.73,68.46,68.75,71.57,67.40,67.11,69.40,70.26,70.17,69.76, 70.30,70.37,70.33,70.88,69.72,69.08,71.09,69.20,74.48,73.25, 70.34,71.65,72.15,71.89,70.88,72.82,73.39,75.51,73.83,72.14, 71.38,75.83,76.03,78.39,73.58,71.70,74.78,73.43,74.76,73.12, 73.84,75.29,77.99,75.68,76.35,82.27,77.26,78.62,78.34,78.32, 79.09,78.30,78.79,81.82,80.87,82.82,82.25,80.15,78.59,79.65, 79.54,82.68,78.22,80.84,82.05,81.54,80.57,81.20,83.53,79.38, 80.06,78.90,79.80,80.94,82.35,85.06,80.56,85.28,85.27,81.93, 85.41,80.50,83.56,82.86,81.68,82.73,84.70,84.48,89.57,85.18, 86.05,87.38,85.60,82.01,83.87,88.73,86.56,85.89,84.82,86.86, 84.60,83.57,88.93,85.60,85.36,87.22,85.75,89.19,88.18,86.37, 93.38,85.66,87.59,86.89,89.53,86.31,85.53,89.71,90.38,87.00, 89.17,92.96,92.05,91.05,91.98,93.18,89.73,87.76,94.27,91.23, 92.41,92.35,94.03,94.81,95.09,93.26,89.74,90.71,91.23,89.74, 19.93,20.03,20.94,21.45,22.27,22.91,23.51,24.06,25.53,26.58, 26.55,26.23,27.04,28.14,28.64,29.25,29.50,29.05,29.88,30.68, 31.39,31.96,32.28,32.33,33.34,34.39,33.71,34.45,36.42,35.31, 36.15,36.68,38.01,36.87,38.91,38.67,39.36,38.88,41.46,40.03, 40.38,40.49,41.69,42.03,42.13,42.81,42.83,43.39,43.46,44.75, 44.66,44.62,45.76,45.02,44.51,46.85,47.14,45.55,48.42,47.49, 47.65,48.13,49.25,48.73,47.82,48.43,51.27,49.13,50.28,52.16, 50.78,51.49,50.43,51.84,51.09,54.32,55.15,54.35,54.71,53.66, 52.48,53.61,55.72,54.01,54.17,56.99,56.02,55.80,56.01,58.14, 55.45,57.19,57.94,59.46,56.76,59.93,58.78,59.85,61.32,59.24, 59.12,57.60,58.67,59.64,59.19,59.68,59.09,60.64,61.09,62.86, 60.95,61.78,62.49,60.97,64.88,62.46,64.34,63.43,62.76,64.43, 66.87,64.04,64.48,65.71,66.72,66.26,65.76,67.92,66.62,64.48, 67.71,67.61,68.03,67.16,68.85,66.01,70.41,65.54,69.39,69.36, 69.75,71.56,72.84,71.19,70.30,70.41,75.04,72.05,68.52,73.64, 71.55,69.25,73.84,73.02,71.39,71.73,73.50,72.57,71.86,72.24, 71.84,76.50,71.98,72.52,74.10,74.16,74.94,76.98,73.73,75.80, 72.86,74.35,79.36,78.06,74.55,79.78,77.03,80.43,77.73,76.22, 78.91,76.37,79.05,79.17,76.42,77.07,80.02,82.85,82.48,82.19, 81.33,76.88,83.08,80.94,77.67,81.27,82.58,80.50,81.44,82.63, 79.33,84.73,82.34,85.86,81.89,82.38,84.75,83.57,84.36,83.58, 80.98,82.81,86.88,84.21,86.80,83.18,87.78,85.71,87.03,82.80, 88.97,89.68,87.16,82.99,87.68,89.91,86.94,87.02,88.55,86.52, 90.30,88.27,87.75,87.61,88.94,90.22,91.11,89.06,94.75,88.92, 93.81,93.71,86.92,90.03,90.31,87.48,91.20,87.19,89.64,94.56, 89.72,91.53,92.64,92.84,92.25,89.84,90.31,92.00,93.08,91.93, 91.48,94.92,92.97,93.52,89.73,91.84,95.05,92.30,98.09,92.31, 96.69,95.07,95.06,95.63,101.94,94.53,95.13,92.77,98.53,94.69, 92.42,98.94,96.44,93.60,90.51,94.49,98.05,96.87,97.99,100.82, 19.58,20.88,21.05,22.11,23.32,23.45,24.93,24.61,25.33,25.61, 27.53,26.38,28.75,28.09,29.37,29.55,31.17,31.31,30.58,31.61, 32.88,33.26,34.48,34.06,35.48,36.01,36.81,34.67,35.75,36.66, 38.32,37.42,39.62,41.32,38.59,39.59,39.38,41.33,39.02,43.17, 43.02,44.09,43.00,42.23,43.88,43.67,43.42,44.81,44.32,45.64, 46.02,45.33,46.58,47.49,47.93,47.91,46.77,49.53,51.38,48.49, 50.62,47.92,50.18,51.44,52.38,50.90,52.32,50.68,52.72,52.57, 52.99,53.00,53.47,51.53,53.00,54.06,53.00,51.51,55.31,54.60, 58.38,55.17,57.41,56.56,57.58,58.28,58.06,57.36,58.89,57.90, 55.83,58.67,60.61,60.84,58.67,61.99,58.89,60.05,60.37,59.49, 61.66,63.86,62.39,62.05,62.57,62.32,65.36,63.50,63.71,63.57, 63.88,66.58,63.56,66.07,64.46,65.41,67.13,64.49,66.97,65.22, 64.50,66.12,66.28,65.06,68.15,69.05,66.67,69.42,65.56,68.45, 71.25,71.04,68.61,72.59,67.12,72.77,71.08,70.19,72.29,71.11, 70.67,73.00,71.03,70.03,70.07,70.26,75.56,70.77,71.84,75.41, 76.45,73.72,74.47,73.59,75.32,74.10,74.24,76.59,74.32,75.85, 77.75,78.76,74.55,76.21,76.57,76.29,73.62,77.12,79.99,80.04, 77.52,79.87,76.54,77.25,79.52,79.14,78.93,80.15,79.83,77.61, 82.24,83.83,82.22,83.22,83.57,81.35,83.88,85.29,81.96,79.47, 81.04,81.52,84.88,84.35,80.78,85.63,86.19,83.30,86.54,88.10, 85.82,84.81,82.54,84.60,89.18,83.20,86.66,88.12,86.60,81.59, 89.26,86.77,87.11,88.32,88.89,90.58,85.48,85.48,87.70,89.98, 86.55,88.36,87.10,91.17,85.72,88.73,90.71,90.23,90.74,90.88, 91.61,92.28,90.10,95.64,95.30,94.57,91.32,93.11,90.08,93.94, 92.06,94.13,91.84,92.76,92.02,94.32,94.76,97.15,97.54,95.78, 93.30,93.21,97.22,95.21,96.32,98.67,96.10,98.63,99.96,95.23, 95.02,93.42,97.67,95.79,97.04,96.91,101.60,98.65,94.41,101.95, 98.51,100.12,96.73,98.25,98.73,96.44,96.22,96.15,96.62,99.74, 99.03,99.34,100.31,100.63,100.62,104.30,100.21,106.30,98.92,100.20, 20.16,20.73,22.17,22.92,22.88,24.21,25.33,24.90,26.95,26.92, 27.16,29.32,28.39,28.24,30.14,30.13,32.24,32.76,33.06,32.39, 32.92,34.38,35.19,34.95,36.31,35.76,37.34,37.03,38.59,37.34, 38.90,38.13,39.30,41.25,43.05,39.82,41.87,40.65,42.71,41.92, 43.52,44.84,43.09,42.61,42.49,44.28,44.55,45.26,45.96,46.49, 46.02,48.31,48.53,47.23,50.97,50.21,49.58,49.27,49.63,50.91, 50.83,49.95,49.44,53.32,51.03,51.22,51.45,51.76,53.33,55.25, 53.40,55.36,55.40,56.53,57.70,57.02,55.81,56.63,57.63,57.18, 57.08,59.84,58.17,58.46,58.46,56.84,58.93,58.43,60.93,59.54, 60.00,61.56,61.13,62.63,60.88,62.82,61.99,60.80,62.88,62.06, 62.06,62.90,64.00,62.15,65.40,65.66,63.93,66.27,65.97,67.38, 66.21,69.39,67.65,66.68,67.94,66.85,66.00,64.07,67.67,67.76, 68.26,67.89,70.98,69.61,70.10,68.78,70.83,68.86,71.57,71.11, 73.52,71.07,72.36,71.48,72.57,74.08,71.71,73.20,76.45,74.03, 73.00,75.92,75.55,73.93,72.61,75.39,73.16,77.34,75.34,79.98, 74.86,75.47,77.87,78.39,80.83,78.48,74.00,77.44,76.47,78.46, 77.72,78.03,76.84,79.87,81.63,82.66,74.78,79.69,81.12,80.97, 81.65,81.29,80.98,83.86,77.91,84.75,81.72,79.48,86.14,80.52, 80.12,83.19,82.06,84.45,82.16,83.19,83.99,83.94,85.03,90.40, 82.64,83.98,91.32,82.38,88.25,87.44,87.27,88.75,87.66,89.48, 87.65,85.43,86.25,89.62,88.07,86.30,89.79,89.37,86.52,87.83, 91.37,87.30,90.05,93.32,90.26,88.13,92.52,91.87,88.65,93.00, 86.59,91.79,91.04,89.59,91.82,91.01,94.31,89.68,92.47,95.21, 95.40,93.04,88.48,89.56,91.51,94.06,90.72,96.23,92.21,93.17, 96.76,95.87,98.62,98.26,92.05,98.07,98.29,95.64,95.68,100.10, 95.59,94.32,94.53,99.72,98.29,99.58,103.91,103.00,96.73,95.23, 98.73,104.84,96.98,98.41,99.24,99.84,96.59,97.86,98.11,96.08, 103.37,98.68,99.46,106.39,100.88,102.25,100.81,103.43,98.30,102.12, 101.19,101.60,104.47,101.98,102.68,98.23,103.04,104.80,106.15,101.13, 20.12,20.77,21.91,23.13,24.13,24.43,24.60,26.43,27.32,27.63, 27.91,27.82,29.71,29.42,30.08,31.90,32.51,32.67,32.64,33.74, 33.78,36.09,34.73,34.35,35.56,36.28,37.99,38.63,36.86,37.78, 40.26,40.23,40.01,39.76,40.24,41.94,42.48,42.17,42.74,43.25, 44.76,44.67,45.50,45.01,47.01,48.15,44.99,43.74,44.93,47.58, 47.95,47.73,49.45,48.41,49.51,47.28,51.06,49.80,50.73,49.51, 51.07,50.89,52.80,51.48,50.28,54.69,55.04,53.47,53.66,53.66, 54.56,55.42,54.99,53.35,54.38,56.13,58.05,56.42,56.64,58.33, 58.23,58.44,57.91,58.20,60.31,61.54,60.14,62.17,61.18,62.21, 63.06,62.33,62.00,60.33,62.56,61.94,62.93,64.00,63.04,65.34, 63.73,62.97,65.08,65.30,65.87,66.56,64.65,66.44,66.79,68.53, 64.87,69.14,67.96,65.68,66.71,66.98,71.36,68.90,66.35,68.86, 68.06,67.49,73.77,70.17,70.77,70.54,71.65,71.05,70.84,70.98, 71.41,71.10,73.31,73.98,71.61,74.11,75.25,75.07,72.52,72.88, 73.78,75.21,77.79,75.11,72.36,78.00,75.16,76.90,72.99,76.07, 76.66,74.04,79.13,77.57,78.04,77.08,80.14,80.23,79.34,77.20, 76.56,83.74,79.79,79.82,77.84,79.50,80.08,83.55,80.98,78.46, 82.31,80.69,84.56,82.57,86.50,85.18,86.60,82.94,83.34,86.65, 84.10,85.87,81.52,85.50,87.56,84.87,85.99,87.47,86.81,88.58, 84.63,90.02,89.00,85.53,87.89,85.47,89.17,83.85,89.37,87.58, 89.40,91.68,89.36,88.23,91.87,87.26,92.24,88.11,90.01,87.54, 91.31,90.92,92.18,89.90,92.08,92.36,92.26,94.48,94.99,92.98, 94.13,93.26,93.16,91.10,91.33,91.97,93.62,93.28,92.57,93.24, 90.83,94.90,95.60,96.88,93.11,96.92,96.42,95.03,97.29,95.99, 94.05,95.73,92.95,94.39,95.95,97.19,95.80,98.31,99.46,96.93, 99.72,97.23,94.82,94.92,99.24,102.06,99.44,98.05,100.02,99.08, 97.69,99.34,101.57,97.12,101.41,102.97,99.14,101.50,101.42,100.81, 102.78,101.51,101.53,101.82,102.90,101.41,101.41,101.64,104.34,102.01, 99.68,105.90,102.02,102.67,104.74,106.57,101.42,102.72,103.46,103.85, 19.52,20.51,21.99,23.53,23.89,25.12,24.88,26.21,27.34,28.37, 27.97,28.95,29.47,30.15,31.73,30.03,31.60,32.14,31.84,33.63, 34.10,34.57,34.94,36.58,35.97,36.33,37.36,37.24,38.28,39.25, 40.10,41.09,39.86,39.34,39.89,41.97,41.14,43.66,44.74,43.84, 43.52,44.69,44.92,45.33,45.89,46.22,46.35,47.14,46.30,46.31, 48.13,48.37,50.31,48.60,48.35,49.19,51.03,49.95,52.03,52.01, 52.25,52.68,52.97,53.47,53.11,52.56,53.85,51.73,56.68,55.63, 55.27,57.25,56.06,56.62,56.14,55.91,56.86,56.56,58.82,58.90, 58.98,59.22,59.89,59.65,58.51,57.53,59.49,59.05,62.98,63.94, 60.10,62.72,62.58,61.33,64.45,63.27,65.86,63.76,63.60,62.45, 64.68,66.42,67.15,65.13,65.79,66.88,68.41,63.28,66.05,65.87, 66.09,68.22,67.54,68.02,70.03,70.58,70.71,68.05,66.24,71.11, 70.53,68.75,71.27,73.96,71.19,72.53,72.16,77.13,71.60,73.11, 73.04,70.75,70.96,68.94,73.76,74.57,72.98,74.78,72.51,76.55, 75.84,75.86,75.49,76.33,76.82,77.46,76.72,76.32,76.23,79.19, 79.37,75.45,80.53,79.71,77.56,80.61,78.08,77.44,79.78,80.32, 77.67,81.20,83.90,80.68,82.44,81.62,83.02,77.40,82.61,84.72, 82.74,80.86,83.18,82.93,84.38,82.40,84.98,85.04,85.68,83.23, 82.95,80.74,85.43,81.80,89.15,87.29,87.58,87.20,85.38,88.37, 87.86,82.88,87.17,86.46,89.76,88.95,87.27,89.69,88.00,92.86, 89.74,92.60,88.84,91.20,90.61,93.35,89.92,88.70,88.55,90.07, 93.72,91.31,92.12,91.12,91.77,92.11,93.93,95.26,90.97,93.47, 95.29,90.10,94.04,93.38,92.19,97.36,94.19,95.55,95.41,94.26, 91.88,91.16,95.45,93.78,97.93,92.47,92.37,97.58,95.53,94.80, 96.39,97.81,98.16,99.58,98.94,97.10,98.39,98.72,103.06,94.89, 97.73,97.28,97.95,96.49,103.43,100.56,100.11,95.67,100.57,101.38, 101.85,102.63,100.64,105.25,102.90,104.44,101.08,103.74,104.34,102.04, 101.86,103.39,106.26,104.49,103.96,100.66,104.29,105.97,103.63,104.35, 104.04,102.43,105.97,107.12,100.63,106.58,103.35,105.93,111.35,105.14, 21.12,20.87,21.92,23.26,24.59,25.23,24.29,26.24,27.11,27.18, 29.34,28.78,30.25,30.09,30.32,31.18,31.28,33.58,31.22,32.49, 34.97,33.74,35.02,36.27,36.65,36.84,38.51,37.05,38.67,39.33, 39.45,40.70,41.31,40.13,40.25,40.83,43.62,42.86,43.61,42.58, 43.46,44.20,44.69,45.99,45.98,45.71,46.46,46.89,46.91,46.33, 48.66,48.90,48.58,49.45,47.33,49.15,48.70,48.64,49.29,52.90, 49.35,53.22,49.46,54.97,52.66,52.14,50.62,54.28,53.80,53.43, 55.35,54.27,53.42,54.50,57.80,55.45,59.36,57.13,58.66,57.20, 59.01,58.30,56.68,58.58,60.91,62.25,60.32,60.09,59.72,59.29, 62.10,60.84,64.08,62.57,62.46,61.44,62.03,66.00,62.57,62.80, 62.93,65.25,67.01,66.65,66.49,65.75,66.42,66.78,70.11,67.72, 68.19,71.29,65.00,67.46,65.38,69.58,72.85,69.19,67.35,68.94, 69.65,70.27,70.56,71.79,71.48,72.92,70.91,73.77,70.01,71.81, 74.89,71.44,73.61,74.87,73.48,76.46,72.55,75.02,74.34,74.86, 74.28,77.81,75.55,75.20,76.57,75.78,73.83,78.26,76.98,76.53, 77.21,77.65,77.09,79.12,78.57,76.79,80.86,75.76,77.43,81.24, 79.68,82.66,79.41,82.71,80.91,81.18,84.31,81.53,78.62,83.66, 83.62,80.06,86.44,83.38,82.61,82.81,83.60,81.81,86.86,87.10, 87.36,84.30,88.31,86.55,83.60,88.19,85.36,85.90,84.25,87.70, 85.34,85.25,86.83,88.29,88.55,91.69,88.03,88.43,90.46,87.20, 87.95,87.41,92.13,86.13,89.60,88.20,88.44,88.04,90.07,90.45, 93.29,92.17,92.69,91.12,97.44,91.80,92.62,91.32,89.73,91.61, 92.33,93.20,93.28,93.30,95.00,95.20,94.33,95.25,93.65,95.24, 95.04,96.14,97.48,98.30,96.12,92.34,93.39,98.02,95.66,97.30, 92.89,99.48,100.86,102.31,101.42,96.10,97.16,97.46,102.00,95.62, 98.60,100.25,100.05,96.81,100.60,97.13,98.76,99.62,103.57,100.85, 102.13,97.06,107.17,103.37,101.16,98.39,103.72,103.04,104.01,102.19, 99.12,95.25,100.66,106.10,101.33,100.73,102.50,105.33,104.61,106.91, 106.23,101.15,107.21,105.49,104.03,104.92,103.39,109.18,108.14,106.19, 20.03,22.03,21.47,22.15,23.44,24.73,25.52,26.66,26.85,27.72, 28.65,27.59,28.76,29.12,30.78,31.44,31.33,31.85,33.54,33.23, 33.53,32.57,35.49,36.33,34.99,37.07,39.07,39.51,38.85,36.43, 38.00,39.97,38.32,39.31,39.22,39.45,41.98,42.26,42.04,44.45, 43.16,45.99,46.39,44.89,43.21,45.94,44.90,44.05,46.41,46.87, 46.07,48.51,46.79,47.97,50.03,49.05,49.06,49.87,48.45,51.34, 52.54,51.73,50.44,51.61,53.58,54.82,55.52,54.21,51.66,53.17, 54.31,53.34,55.39,54.39,54.98,57.13,57.57,56.72,57.20,57.52, 56.47,56.87,58.10,58.72,61.09,56.65,59.20,60.03,60.47,61.22, 61.17,60.44,63.35,62.10,61.32,62.31,60.95,64.58,63.22,63.50, 62.31,65.13,63.43,66.47,66.61,63.17,62.31,66.02,65.52,66.94, 64.09,68.08,67.82,68.35,65.13,70.81,67.73,65.96,67.31,68.65, 69.70,69.96,71.71,73.44,70.54,70.09,70.47,72.14,73.16,71.13, 71.17,72.97,72.69,70.61,71.01,74.15,71.17,78.36,72.97,73.98, 73.06,74.20,73.71,76.06,72.93,76.66,75.03,74.56,76.07,75.19, 77.89,77.14,76.74,81.64,79.21,79.19,77.04,80.34,78.79,79.71, 80.28,82.95,80.85,80.78,78.45,78.89,82.24,83.41,82.15,80.46, 84.49,82.62,81.40,82.89,82.53,84.79,85.10,84.44,86.36,86.67, 81.79,81.80,86.49,87.38,86.42,84.98,82.68,82.42,82.14,86.72, 87.69,88.58,87.39,86.27,84.92,90.67,86.33,87.49,86.11,88.16, 86.77,90.06,92.15,89.17,89.65,89.95,91.87,88.91,92.19,90.02, 85.39,93.53,90.21,92.85,89.77,93.04,91.95,94.14,94.02,92.75, 93.54,92.49,93.80,90.18,93.81,90.67,89.91,94.49,90.63,95.62, 94.88,95.87,96.85,95.98,94.03,93.02,94.72,96.09,98.23,95.68, 97.11,95.53,94.67,98.48,94.01,100.26,100.95,97.51,92.11,96.61, 99.65,100.20,94.94,100.77,97.65,93.14,96.60,99.72,102.00,103.19, 97.10,100.51,100.24,100.19,97.54,101.14,98.54,99.94,103.78,100.48, 104.70,98.74,108.46,106.10,104.55,102.77,102.08,102.49,104.53,107.29, 104.07,102.34,104.21,99.70,103.12,105.95,100.65,105.19,105.59,105.34, 19.96,20.42,21.98,22.27,23.46,25.03,24.45,26.10,27.58,26.85, 27.92,27.88,28.94,27.94,31.03,31.72,30.31,32.55,33.77,33.19, 35.08,33.67,33.59,35.39,36.59,34.50,35.90,36.33,38.41,38.34, 37.61,38.01,41.04,40.02,41.67,39.71,39.52,43.17,41.30,42.78, 40.87,43.45,43.61,45.78,45.37,46.71,44.91,45.10,45.86,45.07, 46.17,47.31,47.61,46.34,49.68,49.11,48.26,50.37,48.21,49.37, 50.71,50.39,50.55,52.11,51.29,51.56,52.65,54.40,55.45,54.34, 54.06,53.65,53.37,53.62,53.66,56.58,54.72,58.68,57.34,56.58, 55.42,58.73,55.67,57.99,58.20,55.78,59.19,59.28,60.38,56.26, 61.59,59.08,60.03,61.83,60.16,60.80,60.19,60.15,61.61,63.47, 64.43,65.42,63.08,64.02,64.14,62.81,63.53,66.34,65.28,64.19, 68.70,65.18,66.36,66.20,70.19,67.46,67.63,68.91,68.01,68.02, 66.63,68.02,72.29,69.67,69.26,70.48,72.09,69.82,70.25,71.89, 70.75,72.21,73.72,69.04,69.32,72.48,74.75,70.32,75.34,71.04, 71.07,75.87,74.83,74.33,75.94,75.09,74.81,74.61,76.81,74.73, 75.23,74.88,74.13,76.11,73.18,79.53,76.99,79.34,79.42,76.91, 77.63,76.93,77.81,77.50,78.38,76.36,79.07,80.82,79.00,77.60, 83.00,83.81,83.57,81.12,79.70,82.26,80.58,82.62,82.10,81.17, 82.40,81.43,82.82,81.35,85.40,83.31,83.91,86.71,82.49,84.26, 86.54,83.47,83.52,85.71,88.41,86.15,89.25,83.24,86.21,88.10, 89.17,86.56,85.00,88.63,89.30,87.91,85.80,89.07,87.65,86.17, 89.86,88.26,88.36,91.40,87.98,89.59,87.94,89.41,91.90,88.50, 93.13,91.90,92.29,90.42,93.06,93.69,93.71,89.33,94.74,91.68, 96.08,92.10,90.83,91.69,92.63,91.45,98.11,94.41,95.29,95.05, 95.56,92.83,95.37,93.20,94.96,99.02,94.17,97.01,94.39,96.93, 98.15,97.24,96.96,97.89,101.23,98.37,100.01,98.04,98.08,96.13, 101.30,99.24,99.06,102.65,99.96,100.28,99.51,98.69,96.46,96.98, 98.63,102.31,98.90,100.51,102.68,102.85,101.93,107.17,98.54,101.31, 102.09,104.30,102.48,103.17,103.00,103.70,106.30,107.19,103.60,100.07, 19.11,20.71,21.23,21.25,22.32,22.52,23.31,24.43,25.33,27.08, 27.69,26.96,28.05,28.65,29.30,29.87,29.26,31.54,31.22,31.46, 32.86,33.49,33.44,34.04,34.18,33.95,36.03,36.34,35.70,37.94, 35.93,38.77,37.86,38.17,39.63,39.29,39.96,39.35,38.69,41.84, 41.58,41.58,42.95,42.86,43.70,44.37,44.47,44.56,44.12,44.93, 46.45,46.16,45.70,47.47,46.95,48.69,50.44,47.51,49.88,48.28, 50.13,49.49,50.27,50.90,49.91,51.67,51.41,52.11,51.29,52.67, 53.02,52.79,50.46,55.75,53.83,54.45,56.11,56.60,53.41,54.61, 56.75,59.12,56.42,56.88,55.27,56.05,56.30,56.54,59.26,59.20, 59.20,59.06,60.52,61.83,61.64,61.20,61.11,60.87,62.18,62.21, 62.88,61.92,62.60,62.69,63.48,61.53,63.65,62.32,64.37,64.20, 64.34,66.26,66.28,64.42,65.59,65.33,66.69,67.24,65.61,67.17, 66.19,67.75,69.92,66.60,67.80,67.71,67.57,68.62,68.37,69.90, 68.74,69.14,68.16,71.57,73.79,70.41,70.17,71.94,74.08,70.86, 75.94,69.50,77.83,72.97,74.32,72.95,75.88,75.39,77.02,72.28, 75.93,73.73,73.60,76.90,77.36,74.72,75.83,75.43,76.50,77.08, 76.61,74.16,76.17,73.19,78.21,79.09,77.19,77.42,76.38,77.16, 78.99,78.82,84.52,81.40,81.68,80.63,81.03,82.39,81.63,80.92, 78.48,84.39,84.01,82.09,79.17,80.56,80.37,86.26,82.15,81.88, 81.35,82.70,81.88,86.65,84.63,85.41,83.55,82.67,90.50,84.95, 87.24,83.16,84.94,86.32,86.23,84.27,86.09,84.83,88.05,84.16, 86.64,90.61,87.21,91.55,83.43,88.92,88.44,90.00,92.62,90.51, 88.32,86.94,88.76,86.83,92.36,88.82,92.30,93.19,93.95,94.37, 92.74,94.30,91.46,90.98,92.00,92.72,92.25,92.13,90.98,95.05, 92.35,94.02,96.65,93.49,95.54,93.42,93.23,96.53,98.83,93.96, 96.75,95.06,96.17,98.03,90.85,97.47,95.86,97.14,96.59,96.44, 99.17,96.90,94.26,97.32,95.57,94.33,98.29,94.59,100.70,98.97, 98.46,101.09,98.40,100.12,99.75,99.53,101.94,99.55,104.03,101.77, 98.25,98.71,102.52,100.41,97.09,102.96,98.16,100.44,101.55,98.84, 19.22,19.29,21.21,21.57,22.27,22.41,23.60,25.00,24.79,25.98, 26.65,26.79,26.66,28.42,29.06,29.71,30.13,31.21,30.11,31.97, 33.54,32.07,33.49,32.99,34.14,35.49,36.35,33.25,35.94,35.55, 37.79,38.43,38.25,36.68,37.57,38.49,38.65,39.76,39.07,41.34, 40.31,40.66,40.45,42.30,42.59,41.90,43.52,42.91,43.53,42.82, 46.77,45.40,46.48,44.10,45.86,46.11,47.91,47.94,46.61,48.01, 47.25,47.25,49.80,51.06,49.74,48.71,50.50,49.17,50.18,50.89, 53.00,50.39,52.93,51.79,51.77,53.89,52.27,54.03,53.29,53.43, 56.20,55.16,55.17,53.84,56.71,53.88,56.86,57.07,54.90,60.00, 59.09,58.54,57.35,58.86,59.50,61.22,60.42,60.51,60.25,57.65, 57.52,62.04,59.72,60.64,59.20,62.90,61.92,62.06,61.41,61.49, 64.49,62.37,63.90,64.37,63.33,66.30,64.43,64.08,63.58,67.00, 65.03,69.27,67.60,64.48,66.23,65.84,67.94,68.89,65.24,68.81, 68.55,72.34,67.17,66.15,69.31,69.63,70.44,70.45,70.79,71.51, 70.73,73.47,71.98,70.81,72.46,70.06,73.62,70.16,72.47,72.76, 72.79,73.24,73.07,73.67,73.00,74.31,74.70,75.90,72.12,74.31, 76.01,74.18,74.09,75.89,75.27,78.91,77.21,73.44,80.28,77.51, 79.98,78.75,78.58,76.72,78.34,77.03,80.45,77.94,76.93,76.46, 80.38,80.53,83.16,80.19,80.22,81.72,80.15,79.21,79.02,80.24, 80.42,82.10,83.10,86.14,82.52,84.16,86.45,84.29,82.20,83.06, 79.85,82.86,82.59,87.40,83.88,82.52,81.06,86.68,84.21,82.72, 86.97,84.17,86.76,89.24,85.71,85.41,85.06,85.77,86.75,85.40, 88.21,86.49,84.59,90.74,84.46,89.71,92.38,88.73,89.84,86.26, 91.39,85.26,87.91,88.87,92.67,86.80,90.27,88.30,89.06,91.06, 92.75,90.07,94.61,92.49,93.69,92.01,91.82,88.90,90.18,93.29, 92.91,93.04,94.50,90.66,95.47,92.54,95.36,95.87,91.49,100.06, 94.13,95.90,94.24,93.98,94.51,94.61,99.04,94.97,100.68,94.76, 96.35,96.80,97.12,98.77,99.90,95.68,96.39,98.72,101.19,96.33, 99.55,94.40,102.58,101.82,97.93,93.47,102.82,100.50,98.06,101.67, 19.33,19.33,20.35,20.84,21.56,21.24,23.28,23.98,24.35,25.02, 26.30,25.38,26.96,27.00,29.71,28.51,28.07,30.22,29.41,30.31, 31.39,32.19,33.30,33.80,32.77,33.84,35.14,34.38,36.10,34.84, 37.03,36.49,35.69,35.66,37.70,37.81,38.37,39.54,39.82,39.20, 39.86,40.71,40.99,41.97,41.99,41.62,42.56,42.62,43.20,43.46, 44.94,44.61,44.47,45.02,45.10,44.55,45.53,46.74,46.52,48.63, 47.26,47.84,46.75,46.75,47.85,47.60,48.89,49.51,47.38,50.21, 50.54,51.32,49.40,50.81,51.29,53.10,51.79,51.65,52.66,52.71, 52.91,54.65,51.91,53.45,53.08,52.52,56.47,55.40,55.76,56.69, 56.25,56.32,55.80,55.72,53.88,57.58,58.73,58.96,57.30,59.14, 60.45,62.12,59.21,59.13,59.75,59.99,61.82,60.13,62.24,60.84, 60.78,61.51,62.65,62.46,64.08,62.56,64.68,63.74,60.35,64.43, 62.30,64.66,65.66,64.31,65.94,64.10,64.69,63.60,66.47,65.49, 66.54,67.47,70.44,67.15,66.53,67.48,69.96,66.73,65.98,67.34, 67.30,68.81,68.82,67.69,71.05,68.80,68.12,71.44,69.81,71.41, 69.94,69.92,70.31,74.68,72.04,70.54,72.13,73.17,72.92,72.11, 72.77,72.27,74.73,72.50,74.50,75.32,76.46,75.29,72.07,74.89, 74.65,74.32,77.32,76.58,73.64,76.33,75.44,77.92,77.46,77.35, 76.85,77.83,77.40,76.22,77.98,75.84,77.90,73.60,79.81,81.08, 79.20,80.05,78.66,81.20,77.63,80.57,78.42,81.20,82.18,80.43, 79.17,81.32,81.33,80.90,82.13,83.50,79.11,82.25,78.71,84.47, 84.83,83.13,85.31,82.76,87.74,81.99,87.82,83.26,85.90,84.65, 86.36,88.54,86.06,88.41,86.41,87.86,88.15,83.09,89.71,85.61, 84.65,87.95,88.59,88.73,90.67,88.79,90.26,89.30,86.78,88.55, 87.56,88.29,92.16,86.72,85.66,87.93,90.48,93.08,89.11,90.69, 90.32,87.94,88.94,89.45,92.53,89.90,92.25,87.53,93.65,94.99, 90.65,92.05,92.92,93.62,92.74,92.80,89.40,94.06,97.63,95.74, 96.29,92.19,94.20,93.94,94.83,93.37,93.47,95.15,94.65,94.35, 98.23,97.77,95.60,99.78,93.55,99.28,95.81,100.11,95.19,95.71, 17.92,18.69,19.72,21.22,21.05,21.46,22.21,23.33,24.32,25.07, 23.87,24.49,25.36,26.53,27.13,27.67,28.48,28.21,29.14,28.91, 31.63,30.05,31.41,32.62,31.57,31.76,32.14,32.54,33.09,34.07, 34.99,36.52,37.02,35.88,36.84,37.77,38.41,38.58,38.69,38.62, 39.00,38.28,40.84,39.86,40.41,41.63,41.02,38.85,41.37,42.05, 41.96,42.25,42.39,43.13,44.97,40.99,44.96,44.75,45.58,45.48, 45.08,45.21,47.35,46.49,46.61,48.62,46.99,49.57,48.29,49.39, 49.31,49.82,50.92,51.24,49.96,50.10,50.19,51.47,51.66,51.32, 52.05,51.01,51.88,52.46,54.12,53.17,53.98,53.72,54.08,54.43, 53.01,54.17,53.97,56.39,54.42,57.17,57.32,54.41,54.58,56.22, 56.76,55.74,56.62,56.89,60.69,61.38,59.33,58.15,58.63,60.56, 59.64,60.22,57.91,58.45,60.98,60.88,62.99,61.56,60.48,62.94, 61.08,60.26,61.35,62.38,62.04,62.43,62.10,65.48,63.00,63.59, 63.56,65.56,64.81,65.29,63.05,65.52,65.67,66.04,65.18,68.48, 67.20,67.18,67.62,66.58,69.67,69.29,70.68,69.15,67.50,66.21, 68.29,73.36,67.63,69.92,69.66,67.89,72.30,68.94,70.85,68.51, 71.70,71.17,71.46,72.69,72.38,69.43,70.51,72.66,75.00,74.46, 72.87,74.40,74.18,74.36,73.14,74.07,73.50,72.92,73.39,77.23, 74.40,78.00,77.46,73.76,74.48,77.20,74.43,78.99,70.84,80.65, 76.18,78.90,76.75,78.74,78.48,76.46,80.10,79.10,76.82,78.04, 76.43,76.10,80.40,81.08,78.21,81.74,83.02,78.75,79.92,81.06, 79.26,80.65,81.23,83.19,83.21,82.80,82.05,79.16,80.12,79.75, 82.50,80.35,81.85,81.08,82.38,85.31,84.62,83.54,81.44,82.76, 83.47,82.00,86.08,83.70,86.35,84.34,83.77,86.12,87.99,83.24, 84.84,85.85,90.77,85.44,86.92,87.24,87.40,86.36,89.09,86.09, 85.78,88.68,90.36,92.61,84.76,90.17,88.78,90.82,89.90,89.08, 89.77,87.95,88.47,90.25,90.91,88.52,92.42,93.54,87.07,89.76, 92.54,92.91,92.49,93.25,91.55,91.34,92.58,93.20,93.71,92.18, 91.23,91.97,88.17,94.22,94.23,92.39,90.12,92.20,93.49,92.08, 16.28,19.07,18.23,19.02,20.72,20.48,21.51,22.60,22.29,22.89, 24.21,24.47,25.99,24.97,24.38,26.68,26.89,27.99,29.48,30.47, 28.94,28.33,29.56,31.18,30.70,31.58,31.15,31.89,32.54,32.06, 33.24,34.15,33.04,33.99,35.67,34.44,36.26,37.56,34.93,36.16, 34.95,37.28,37.79,38.52,37.97,39.69,39.84,39.41,39.73,38.16, 41.19,41.68,40.17,43.41,42.89,42.19,41.95,42.88,42.60,43.62, 44.78,42.59,44.35,45.87,44.44,44.18,44.88,47.10,46.00,46.70, 46.97,47.05,47.17,47.00,47.48,49.15,49.05,49.67,47.99,47.96, 50.17,52.44,49.01,50.43,51.04,52.05,51.50,51.34,50.55,52.89, 52.63,54.42,52.01,53.23,56.20,55.81,55.13,54.31,57.15,54.67, 55.27,55.24,59.77,57.95,56.24,55.96,56.45,56.79,59.63,56.33, 57.19,56.47,59.77,58.44,57.99,57.23,58.36,60.88,59.51,59.48, 61.24,59.79,61.18,59.83,59.50,62.88,61.08,62.27,62.51,62.22, 64.91,61.33,63.80,65.22,62.83,62.49,62.95,63.15,62.30,62.57, 65.04,64.47,63.44,65.99,63.78,66.46,65.57,66.78,66.07,67.83, 67.37,67.54,66.28,64.06,66.85,69.09,67.50,67.80,67.88,70.16, 70.23,68.41,69.39,68.74,70.15,69.25,73.94,70.08,72.97,70.83, 67.74,72.01,70.29,73.02,71.22,72.11,76.04,74.24,73.72,72.71, 72.06,74.15,71.14,72.50,76.61,72.12,74.26,72.24,73.14,72.63, 75.00,76.40,74.38,76.76,76.83,75.56,75.94,74.82,75.25,76.16, 77.37,76.80,75.16,78.12,72.77,77.22,79.46,79.24,77.83,77.32, 75.49,79.49,76.57,78.50,78.57,80.75,79.57,78.82,78.39,81.58, 84.02,78.75,78.48,80.26,78.80,78.81,79.96,79.82,82.57,77.33, 82.09,82.71,80.35,85.71,78.24,82.52,86.35,85.45,81.31,80.46, 81.82,81.64,82.79,79.30,82.45,83.31,82.79,83.59,83.72,83.65, 84.08,85.79,83.29,83.02,86.66,84.33,87.84,85.87,84.10,85.29, 86.25,88.20,87.09,85.44,86.72,87.41,88.12,89.00,88.03,88.03, 89.16,86.59,90.33,88.39,89.03,88.28,86.29,89.93,91.49,87.66, 90.42,90.75,89.67,88.38,90.16,89.13,88.92,92.03,93.61,90.33, 16.16,17.67,17.93,19.40,18.47,19.55,20.08,21.01,21.96,22.93, 22.55,23.04,25.00,25.25,25.40,25.40,28.13,26.36,26.58,27.54, 27.61,27.65,28.35,29.06,30.44,30.07,31.07,31.10,32.16,32.26, 32.53,31.03,33.31,33.34,32.60,33.37,35.32,34.38,34.21,36.25, 37.38,35.26,38.14,35.99,37.00,38.51,38.35,38.30,37.87,37.94, 39.44,37.07,40.45,40.62,40.13,41.07,41.68,41.71,41.97,43.11, 42.93,43.15,44.35,43.42,43.41,44.31,44.53,45.11,46.20,45.96, 44.90,46.30,46.42,45.15,46.06,46.34,47.01,47.97,46.93,47.66, 48.63,49.61,49.56,51.67,51.00,49.73,49.26,51.63,50.27,51.62, 52.51,52.49,52.26,51.51,53.17,51.40,53.89,53.92,52.73,52.75, 55.00,54.67,49.34,54.01,53.91,53.95,55.19,54.37,54.48,55.94, 54.03,54.83,56.77,54.87,58.47,53.82,55.85,57.53,57.65,57.66, 59.27,59.51,59.76,56.92,59.19,58.11,60.06,61.21,60.26,61.14, 60.25,60.69,60.90,61.29,60.61,60.40,62.31,62.28,60.36,62.85, 60.04,62.21,61.73,64.36,60.49,61.34,61.63,63.91,63.01,61.58, 64.26,63.80,65.61,66.34,65.28,64.25,63.98,66.52,68.39,63.69, 65.45,66.37,67.19,65.43,67.50,64.25,67.56,64.55,68.27,68.86, 70.06,68.73,70.07,69.50,67.39,69.48,69.54,71.36,72.43,70.85, 66.85,71.91,71.17,70.27,72.35,69.07,73.00,70.46,68.86,68.17, 70.29,74.06,70.65,72.57,71.02,72.82,71.22,74.29,72.10,74.28, 72.70,70.53,73.11,72.69,75.87,76.30,78.17,73.04,75.92,76.25, 79.12,77.38,76.00,72.04,74.18,76.64,76.59,77.35,74.70,75.18, 78.69,77.64,78.23,78.74,79.92,76.53,76.61,80.43,78.96,79.29, 78.58,77.06,80.05,79.21,79.49,80.43,78.23,80.37,80.23,79.16, 80.81,82.15,80.40,77.92,78.53,83.35,86.37,82.46,81.68,79.76, 80.10,82.86,82.28,83.32,83.03,80.60,80.84,81.59,83.04,85.07, 82.60,81.50,82.22,82.17,82.15,86.00,83.07,85.33,85.25,85.27, 87.66,84.43,82.18,86.47,83.61,82.83,84.73,88.19,86.05,84.45, 89.08,84.78,86.05,86.26,84.42,87.97,87.87,92.37,88.40,85.38, 17.82,19.44,18.44,21.19,21.52,21.42,23.46,22.63,22.92,25.02, 25.87,26.28,25.96,26.61,26.56,28.59,28.30,29.49,29.94,29.57, 29.48,29.64,30.82,31.80,31.47,31.77,32.02,33.18,32.97,33.76, 33.63,34.96,35.64,36.60,34.33,36.27,36.76,37.08,36.77,37.80, 38.46,39.06,38.99,39.71,38.42,41.18,39.83,40.15,40.77,39.48, 41.51,43.45,42.53,42.83,43.77,42.94,47.13,45.04,43.83,43.85, 45.62,45.31,43.92,46.16,45.37,46.19,45.95,47.45,47.75,47.74, 46.04,50.45,48.61,47.07,46.71,49.20,48.65,49.82,49.12,51.92, 50.69,53.71,50.14,53.78,50.57,50.73,53.09,54.68,52.14,53.90, 52.51,55.13,54.48,52.99,54.69,56.82,54.20,53.73,55.84,57.09, 56.29,56.16,52.67,58.67,57.73,59.33,56.66,59.09,59.88,58.61, 57.61,57.37,61.06,58.91,60.89,60.04,59.65,59.38,60.55,59.35, 60.69,61.79,62.24,61.90,64.33,65.56,61.37,61.96,65.35,63.56, 63.07,60.88,61.46,62.93,65.21,64.91,65.77,63.88,63.28,66.05, 65.68,65.93,64.80,65.68,65.00,67.12,65.43,64.03,66.23,66.52, 66.86,67.27,68.92,65.35,67.32,68.71,70.87,68.56,69.11,69.79, 70.16,67.65,69.68,68.06,68.67,67.59,67.64,71.68,73.05,75.39, 68.24,72.95,70.90,70.73,73.16,73.55,74.28,70.85,74.45,73.70, 72.82,73.84,70.64,70.81,74.31,73.94,74.50,72.59,73.68,73.06, 71.31,75.61,74.91,77.60,77.04,76.44,73.83,75.41,77.87,80.65, 78.55,76.95,76.27,76.20,74.66,81.53,76.54,75.97,80.19,76.05, 79.69,79.10,79.61,77.42,81.67,81.94,77.97,82.94,82.02,82.94, 77.63,81.16,82.11,82.97,79.48,78.76,81.76,84.55,82.22,78.84, 80.96,83.26,80.39,82.60,82.16,86.03,86.68,82.45,82.11,84.81, 84.78,82.10,84.48,84.11,84.11,87.48,85.68,85.87,85.47,86.05, 82.49,86.35,88.13,87.36,87.19,90.89,85.91,87.48,86.81,87.54, 83.05,90.36,86.85,87.12,86.32,88.04,90.28,88.47,89.52,85.31, 88.96,91.95,87.50,91.79,91.24,88.59,90.86,90.01,87.06,86.41, 90.09,87.61,87.18,92.92,92.86,89.98,86.01,90.42,89.77,90.35, 18.91,20.23,21.28,21.20,22.98,22.73,23.80,24.23,25.36,25.25, 26.94,27.51,27.93,27.64,29.57,29.09,30.00,29.16,30.78,32.38, 31.89,31.56,33.61,32.70,34.69,34.88,34.89,34.30,36.16,37.47, 37.08,36.07,37.15,37.59,38.34,38.19,39.25,39.73,39.69,39.80, 41.27,40.04,40.08,43.30,41.67,42.78,43.72,42.70,41.91,42.80, 44.44,44.99,45.23,47.05,47.85,45.63,46.23,47.53,47.26,46.64, 47.15,49.47,49.68,49.76,49.08,50.79,47.46,50.52,49.70,49.84, 51.96,51.52,51.55,50.37,52.87,51.01,53.39,52.57,53.33,52.81, 54.66,56.72,55.79,55.20,54.54,54.61,56.95,54.47,56.97,56.32, 57.47,56.96,58.27,57.42,58.25,57.42,57.45,57.29,58.79,59.88, 60.12,59.95,59.99,61.78,61.14,59.90,60.86,59.80,64.14,63.57, 63.03,63.19,62.34,62.65,63.91,63.57,62.88,61.36,62.37,63.69, 62.54,64.58,65.62,64.20,66.94,67.14,66.47,65.44,63.68,67.30, 66.34,70.10,67.37,67.69,66.40,67.36,69.34,67.00,68.44,67.73, 70.78,69.61,71.56,67.90,69.79,71.93,67.83,71.63,71.31,72.80, 72.29,74.29,71.39,71.84,72.70,74.95,72.01,74.61,72.75,74.45, 75.20,70.95,74.18,73.57,77.50,74.63,76.15,72.65,77.38,72.83, 78.92,72.68,75.00,77.71,76.26,77.19,77.57,79.07,79.05,77.76, 77.04,79.45,81.75,72.93,77.93,78.84,80.57,82.95,80.01,78.20, 78.86,78.51,79.40,79.29,79.02,77.85,79.58,79.12,82.44,83.71, 81.79,85.13,81.16,83.47,80.20,83.34,82.85,89.32,82.44,86.14, 79.80,82.46,83.43,86.79,84.73,81.66,87.37,84.08,86.95,85.98, 87.52,84.52,84.14,87.80,84.18,87.76,85.48,89.21,88.09,89.15, 90.42,88.91,88.12,87.47,87.92,89.53,86.08,89.43,87.31,92.22, 86.58,87.87,92.00,91.15,89.31,88.24,91.33,90.12,92.30,94.39, 93.82,88.27,88.78,88.03,92.44,89.24,88.84,92.69,92.19,93.50, 93.58,93.79,90.09,94.17,95.07,94.25,91.84,95.31,92.55,96.55, 95.03,96.73,94.31,95.71,96.53,94.57,98.91,98.37,96.20,97.94, 99.45,95.46,99.73,99.66,94.76,95.90,92.96,97.47,96.34,98.06, 20.37,20.77,21.93,22.34,23.17,24.51,24.74,26.80,26.53,27.09, 28.14,27.82,29.23,30.27,31.08,31.13,29.41,31.27,31.93,33.59, 33.38,33.31,32.76,34.44,34.08,34.11,37.79,36.06,37.95,38.55, 38.52,37.87,39.05,38.46,38.91,41.03,41.35,41.10,40.19,43.56, 41.93,42.13,46.41,43.93,43.67,43.69,46.01,44.30,44.83,46.21, 45.68,47.77,47.12,47.11,47.91,46.62,46.72,47.89,49.26,49.35, 51.06,49.17,48.67,49.34,50.74,50.38,52.47,52.51,51.93,52.99, 52.02,55.18,54.08,53.86,53.24,55.43,54.22,56.10,56.17,55.30, 57.15,55.60,56.79,57.27,58.09,58.59,59.54,57.90,58.52,60.72, 58.59,58.71,59.19,58.02,61.42,62.34,61.45,61.25,61.56,61.83, 63.34,63.61,62.39,63.12,63.26,61.38,66.52,60.87,65.48,66.43, 64.91,63.54,66.14,65.90,64.40,66.70,68.44,68.65,66.70,65.32, 71.17,66.86,68.87,66.65,69.38,68.35,69.48,66.80,73.22,70.18, 72.71,71.32,70.63,70.65,70.57,72.69,72.15,71.03,72.23,73.38, 72.86,73.39,73.50,73.65,71.23,73.16,72.77,73.93,73.90,75.02, 74.12,73.22,72.68,78.11,77.34,76.35,75.23,76.61,77.22,79.46, 74.46,78.97,78.26,77.39,76.93,74.87,75.84,81.67,78.41,76.01, 80.02,79.99,81.93,78.32,80.22,80.25,80.61,79.62,82.24,79.05, 82.17,79.09,82.45,80.85,79.08,82.00,85.00,82.10,80.20,81.91, 83.95,85.31,82.28,81.13,84.13,81.55,83.91,85.77,82.73,87.35, 86.65,84.98,87.93,86.75,85.71,84.11,85.37,89.32,87.02,91.72, 87.77,87.28,87.85,86.87,89.94,86.64,89.41,91.38,92.83,89.07, 92.57,91.42,90.89,90.08,86.35,86.36,90.54,91.35,93.49,94.33, 89.24,92.23,91.83,94.56,92.11,91.19,94.51,91.87,93.78,93.18, 97.27,87.46,91.19,94.72,93.78,91.46,94.50,95.19,96.06,93.72, 95.77,95.25,100.00,97.52,95.17,96.14,92.55,100.95,97.74,100.67, 92.19,93.59,97.38,98.93,98.08,99.10,99.12,97.57,97.24,98.13, 100.96,96.89,98.41,96.83,98.18,100.59,97.85,99.35,99.45,99.11, 101.52,105.16,101.38,98.09,100.95,102.46,101.21,98.77,99.95,102.83, 20.28,22.05,21.84,23.15,23.76,24.93,25.72,26.60,26.03,26.71, 28.33,29.50,29.43,30.27,30.06,30.61,32.59,32.00,33.00,33.95, 34.58,34.50,34.09,36.14,36.28,35.40,38.41,37.97,38.93,38.33, 38.95,39.42,39.39,41.72,41.89,41.34,42.24,43.23,43.85,42.90, 43.28,44.81,44.39,45.21,44.82,44.99,46.21,45.75,47.16,46.76, 48.99,48.07,49.47,49.11,47.49,49.04,52.18,50.98,50.92,50.10, 52.12,53.45,52.89,52.85,53.93,53.16,53.43,54.45,52.99,55.80, 54.82,53.36,54.07,53.19,57.21,56.10,56.33,58.54,58.59,59.71, 58.61,59.04,56.79,59.10,56.99,58.47,60.85,58.88,58.26,60.93, 61.12,58.59,63.05,64.04,62.17,61.52,64.72,61.38,62.52,63.26, 62.20,62.35,65.81,62.37,68.09,63.50,65.56,67.19,68.18,67.63, 67.12,69.80,65.23,67.57,65.90,69.72,67.89,70.46,65.94,70.73, 68.85,68.46,71.79,71.04,69.00,68.40,71.74,74.04,67.99,72.07, 74.20,72.15,72.46,70.76,75.22,74.62,72.63,74.98,77.66,77.54, 75.76,75.56,76.57,78.62,74.85,73.43,76.61,76.48,79.89,76.04, 78.11,77.74,77.49,80.99,75.70,75.83,79.77,78.06,78.60,78.40, 78.47,80.89,79.70,82.05,81.75,80.47,81.86,80.72,79.02,82.51, 82.66,83.01,82.67,84.31,81.19,81.75,87.58,85.72,86.06,84.82, 86.93,82.10,85.14,84.24,83.13,85.42,85.10,85.17,84.83,84.76, 86.80,86.64,85.69,86.28,93.27,91.32,86.48,83.34,89.48,92.02, 89.33,86.72,89.00,91.70,89.91,92.95,89.82,87.90,89.32,91.02, 86.01,88.42,92.12,95.48,91.88,92.90,92.52,89.19,96.84,90.50, 92.28,93.51,93.36,90.79,94.11,92.39,90.59,90.60,95.55,92.20, 94.23,95.28,97.12,91.99,91.96,93.22,92.83,93.99,98.07,95.76, 98.04,94.34,92.45,94.33,95.13,95.15,96.14,94.57,96.99,95.40, 96.31,97.66,93.96,97.03,102.71,101.08,102.27,100.14,97.66,98.26, 98.93,101.09,102.90,102.53,99.77,103.32,100.83,97.99,103.27,99.71, 100.06,105.72,100.91,100.17,101.59,101.82,102.76,100.51,103.29,104.63, 108.54,100.80,103.58,105.54,107.75,105.91,103.03,108.73,110.84,104.46, 21.94,22.01,22.74,23.49,24.14,25.02,26.18,26.31,26.92,29.15, 28.20,30.31,29.77,30.73,31.90,31.92,34.01,33.22,34.00,35.06, 34.05,35.41,35.46,38.66,37.24,38.26,36.53,37.79,38.99,39.47, 39.96,41.11,43.32,41.53,42.43,43.50,43.16,43.61,42.84,42.83, 44.76,45.98,47.37,45.83,46.66,47.18,48.13,45.03,46.37,47.44, 49.04,49.16,49.78,50.67,52.03,48.64,51.68,52.23,51.39,51.89, 51.82,53.71,56.74,53.54,53.58,54.79,55.42,54.97,54.48,55.28, 56.43,58.04,59.70,59.64,55.42,55.59,58.06,58.81,58.19,60.72, 61.08,59.16,60.36,61.49,60.30,60.84,58.97,60.30,62.93,62.58, 63.65,61.27,63.46,64.30,62.45,62.95,62.90,65.84,63.32,63.36, 65.70,65.34,67.33,66.95,66.26,67.83,67.08,64.76,66.22,68.52, 67.14,68.19,69.58,67.93,70.21,70.77,73.11,70.01,71.59,70.19, 71.87,72.49,70.23,72.50,71.45,73.43,74.20,73.85,74.38,74.69, 72.22,72.95,71.60,74.77,78.98,77.58,73.83,74.81,77.18,74.28, 75.73,75.89,79.39,78.61,81.30,80.81,79.80,77.64,75.43,79.61, 78.90,80.51,79.51,83.45,79.02,78.76,80.81,80.09,82.50,80.22, 80.75,83.96,83.61,81.99,84.80,85.09,82.92,82.38,81.77,82.36, 83.97,85.59,83.80,83.30,84.30,85.95,83.62,86.78,86.38,85.13, 87.62,85.51,86.15,85.88,86.18,85.27,88.49,89.84,89.57,87.30, 88.32,87.79,91.75,89.96,87.13,88.66,93.19,88.44,92.72,88.93, 88.73,88.94,89.58,91.94,93.09,92.13,87.43,92.47,91.01,94.26, 91.73,93.55,93.82,94.24,94.71,93.76,97.82,98.29,94.52,94.32, 97.32,91.38,94.81,95.14,97.22,97.41,96.97,95.34,97.26,100.48, 97.60,95.27,95.99,96.38,98.62,96.33,94.37,101.01,94.22,96.21, 95.42,95.11,100.42,99.88,100.69,98.78,97.72,103.45,100.76,101.80, 103.94,101.19,98.48,101.57,104.36,97.64,100.82,102.64,99.39,100.86, 102.31,98.73,98.65,103.93,102.76,104.23,100.63,105.96,102.34,104.10, 103.88,108.74,104.45,106.32,102.51,104.38,104.70,102.29,110.20,110.91, 106.99,106.61,108.50,106.44,100.65,101.45,108.12,110.17,105.68,109.04, 21.52,22.50,22.81,24.67,24.71,24.90,25.53,26.25,27.20,27.56, 28.55,29.34,30.46,31.72,31.94,32.35,34.73,33.95,33.41,34.37, 34.65,35.81,37.24,37.33,37.79,37.29,37.68,39.60,39.90,39.67, 40.32,40.94,41.61,40.83,43.64,43.02,43.83,42.81,44.81,43.28, 44.96,45.48,45.78,46.01,46.55,46.52,48.45,47.86,49.50,47.52, 49.15,48.30,50.98,51.89,50.27,53.06,52.12,50.97,52.57,54.64, 56.87,55.79,53.79,53.82,52.87,55.60,55.51,55.59,54.56,55.68, 55.87,56.04,56.33,59.83,55.90,58.20,58.66,59.85,60.16,60.29, 59.13,60.16,59.96,59.81,60.39,62.40,62.51,64.58,63.63,65.56, 63.38,64.94,65.94,62.19,66.18,64.77,65.10,67.65,63.80,64.14, 65.53,65.44,69.49,69.85,64.59,68.48,68.12,70.89,66.83,67.72, 67.11,68.81,70.97,69.39,70.70,70.79,70.75,69.98,74.08,73.41, 74.60,68.01,72.36,73.21,72.50,73.84,76.36,74.23,75.41,76.07, 74.30,72.34,75.33,74.39,79.34,74.29,74.85,77.18,78.28,76.11, 76.87,80.47,77.08,77.75,79.90,77.80,79.79,80.89,79.00,79.93, 78.82,81.51,81.18,77.59,80.63,81.42,83.35,81.02,79.86,79.85, 79.93,83.99,82.36,84.11,82.09,81.85,83.92,84.30,86.21,87.16, 81.54,88.00,84.10,88.91,83.44,87.69,90.51,85.82,83.08,83.82, 88.80,88.57,90.40,86.74,89.83,87.04,88.48,85.55,90.00,87.08, 88.50,91.14,94.07,88.33,89.02,91.48,90.98,89.13,90.55,88.90, 92.68,91.00,93.34,91.83,90.71,93.85,89.12,92.28,92.36,92.52, 95.47,90.88,97.95,97.99,91.97,94.81,96.40,99.21,91.22,96.13, 97.32,94.33,97.91,94.00,96.31,92.74,96.67,98.73,93.65,97.47, 97.44,97.31,98.04,101.18,100.35,100.42,96.85,100.96,101.01,99.47, 96.35,99.87,102.07,100.94,96.41,103.17,101.76,100.18,102.30,99.72, 103.11,103.38,103.80,103.72,101.36,102.45,101.23,104.49,101.71,107.15, 104.83,100.15,103.85,99.54,100.84,106.96,103.82,100.78,104.77,106.06, 105.59,105.67,105.79,107.92,104.92,108.48,104.42,107.82,108.90,109.19, 111.44,108.26,107.83,108.32,116.42,110.11,109.60,108.14,108.72,106.91, 21.28,22.41,22.94,23.79,25.32,24.82,25.84,26.92,27.90,28.32, 30.07,30.20,30.24,31.24,32.79,32.66,33.82,33.96,34.75,34.72, 35.61,35.60,37.99,36.91,36.61,38.00,39.03,40.36,39.17,39.52, 41.41,42.60,42.45,42.44,43.49,42.63,43.73,43.14,43.47,47.46, 45.17,45.41,48.82,44.74,45.51,48.60,47.35,48.48,49.02,49.01, 51.35,50.94,49.64,52.02,51.07,53.02,51.20,52.63,53.26,52.73, 51.49,55.51,53.63,54.21,54.74,53.46,57.66,57.63,58.03,54.33, 57.77,57.43,60.22,58.11,61.97,59.11,59.11,60.98,58.73,62.16, 59.88,62.32,63.01,61.62,62.24,63.82,64.34,63.01,62.01,63.13, 62.44,65.10,66.65,64.84,64.59,64.79,67.41,65.34,65.78,66.43, 67.76,66.00,69.36,69.66,65.78,67.70,68.31,72.38,68.14,67.48, 70.75,70.80,70.54,71.36,72.45,72.31,75.15,71.56,68.84,71.34, 74.76,75.21,75.09,74.93,73.81,71.65,72.31,74.61,76.06,74.70, 73.85,77.26,77.98,77.06,76.23,75.01,75.61,74.69,78.72,78.56, 75.99,80.45,78.61,77.50,80.39,78.03,79.35,78.33,82.36,79.87, 82.98,82.43,81.63,83.59,80.56,84.32,82.29,83.91,80.98,81.75, 83.17,85.93,82.82,87.60,81.94,82.87,85.64,85.95,87.61,85.90, 85.38,83.99,88.90,86.07,90.23,85.35,88.49,85.08,88.87,84.57, 86.69,84.45,89.94,89.04,87.68,90.33,90.89,88.49,91.43,90.64, 90.63,87.83,88.29,91.19,87.92,91.48,90.89,95.81,91.57,90.99, 93.52,90.47,91.99,91.04,95.07,95.31,92.82,93.34,97.01,94.64, 95.12,95.12,94.92,94.69,100.86,97.37,93.39,97.32,95.52,98.20, 98.08,90.77,95.66,98.92,96.45,99.56,93.75,97.57,97.90,98.39, 96.69,99.88,100.34,101.76,97.81,97.55,98.88,91.96,97.38,99.91, 101.30,98.91,98.54,104.76,102.44,101.20,100.96,104.58,99.79,105.25, 102.03,101.94,103.06,100.84,100.76,102.34,108.08,102.61,108.86,102.61, 103.94,102.58,105.40,109.82,103.95,104.05,107.82,104.71,109.94,106.78, 107.46,109.97,105.80,104.81,108.12,105.65,105.44,107.52,110.21,108.11, 111.10,108.59,106.99,109.08,112.75,114.15,108.62,114.50,110.56,108.78, 21.27,23.22,23.34,24.64,23.96,24.57,26.78,28.24,28.16,29.04, 30.24,30.29,30.87,30.65,32.15,32.20,32.98,33.69,34.54,35.22, 35.27,36.25,36.24,37.02,37.86,38.51,38.54,39.74,40.80,41.53, 40.37,41.13,43.13,43.10,42.70,42.66,44.18,42.73,45.59,46.50, 45.45,44.79,47.88,47.38,44.99,47.84,49.03,47.26,50.39,49.60, 48.74,49.10,51.09,51.34,49.43,51.23,52.12,52.08,55.25,52.75, 55.30,53.36,54.97,56.65,56.64,55.22,55.59,58.05,54.28,57.39, 57.53,58.49,59.11,60.31,58.95,58.79,61.39,61.14,58.73,57.89, 60.05,62.68,60.99,61.97,62.78,64.05,61.87,64.06,64.58,62.10, 63.03,67.22,64.92,66.25,65.21,62.91,66.62,64.25,63.97,68.29, 65.28,70.26,69.26,70.30,67.63,68.89,72.24,69.69,68.52,69.98, 68.03,69.26,72.98,71.71,69.13,71.44,72.17,70.03,67.99,73.86, 74.91,73.83,69.48,75.22,73.94,72.82,75.12,74.39,76.87,75.41, 76.04,72.26,76.35,76.81,78.07,75.49,74.43,77.85,79.63,77.42, 79.08,78.82,80.35,80.29,80.36,78.10,80.40,77.73,80.99,78.87, 80.45,80.04,81.71,81.48,79.29,81.81,81.15,82.26,83.88,82.91, 85.05,85.04,88.01,82.68,84.44,84.72,84.24,83.58,86.46,86.40, 85.81,86.57,86.90,88.17,85.30,87.38,85.25,85.46,92.23,90.79, 92.90,90.02,91.37,90.09,91.23,92.90,91.38,94.04,88.19,86.38, 92.12,90.91,93.93,89.91,88.54,89.41,92.07,91.14,87.05,91.24, 95.43,91.16,94.46,93.91,95.19,91.48,99.53,88.40,93.53,98.05, 94.70,95.95,95.47,98.63,98.13,98.47,91.85,96.20,93.57,98.24, 95.18,99.07,98.74,100.54,98.56,98.61,95.07,100.65,95.65,100.59, 99.72,98.45,96.15,96.46,100.64,100.00,100.33,98.60,99.83,97.43, 105.52,103.06,105.52,101.36,103.06,102.07,107.38,103.61,105.87,105.27, 101.31,102.38,105.51,103.45,103.43,103.72,103.26,104.28,102.39,102.66, 102.83,106.95,106.60,105.28,107.67,107.02,108.94,106.31,103.07,106.27, 108.77,105.79,105.22,107.73,108.18,108.31,107.58,107.75,108.57,108.00, 108.00,109.33,107.44,111.96,110.13,108.91,107.66,106.77,110.76,110.70, 21.28,21.76,24.08,23.80,24.13,25.15,26.00,26.57,27.52,28.98, 30.32,29.91,29.74,30.58,30.66,33.02,33.84,33.58,34.29,35.61, 36.08,36.20,37.20,36.69,37.29,37.40,39.47,38.68,39.33,41.07, 42.05,41.68,41.67,41.51,42.15,42.71,44.06,43.19,45.54,45.19, 45.87,46.37,46.86,47.15,46.60,47.23,49.66,50.55,47.86,50.86, 49.01,49.48,49.99,51.13,51.12,51.27,52.10,53.27,53.89,53.72, 54.80,50.64,51.76,53.88,53.90,55.98,56.32,55.93,55.68,57.81, 56.55,57.69,58.36,58.32,59.06,58.43,61.70,58.90,61.08,59.81, 64.19,61.15,60.93,63.19,62.02,60.43,62.81,63.93,61.69,61.68, 64.26,62.33,64.98,65.42,63.22,67.68,66.63,65.86,68.43,68.21, 67.42,66.18,67.08,68.39,69.83,66.95,65.76,68.82,66.21,69.61, 69.44,68.54,70.80,69.78,69.24,71.51,68.89,76.58,71.10,73.03, 71.48,70.02,72.44,74.55,69.73,73.75,71.88,78.11,76.92,75.72, 72.25,76.35,75.08,74.73,77.17,76.49,80.96,76.39,75.84,79.50, 79.32,79.37,76.38,79.05,80.29,75.03,78.80,80.16,81.30,79.11, 82.15,82.96,80.14,80.02,81.73,79.35,82.69,82.58,80.91,83.73, 81.46,84.38,83.23,82.91,81.04,83.48,86.09,82.38,80.31,85.23, 84.78,84.97,87.81,87.35,87.26,85.92,89.41,83.82,87.25,88.18, 88.91,90.10,91.27,88.69,87.77,88.97,90.16,90.33,92.14,90.07, 90.82,88.09,92.22,91.01,92.72,89.50,89.71,96.53,91.42,88.61, 92.80,94.43,90.02,94.49,91.75,95.05,91.17,91.11,92.50,91.10, 93.40,94.13,95.47,95.44,96.32,91.97,97.96,100.46,95.95,99.31, 95.09,95.35,95.20,97.45,98.82,94.05,95.64,98.48,100.46,100.82, 98.28,96.95,100.18,96.85,102.52,99.42,100.83,100.37,97.83,103.18, 96.31,101.45,101.25,104.49,101.24,99.07,103.63,104.87,106.14,100.39, 101.71,103.40,103.03,106.94,103.64,101.64,104.97,100.02,105.71,106.46, 103.20,106.92,105.76,101.24,103.19,105.02,104.80,105.79,104.78,105.81, 108.98,105.26,104.77,105.18,103.49,104.09,105.44,107.23,105.33,107.66, 110.12,110.84,111.24,105.69,108.24,109.33,109.16,107.85,113.15,113.66, 21.18,22.09,22.31,24.01,24.39,24.78,25.45,26.97,28.10,28.84, 28.33,27.81,29.33,31.04,30.13,32.28,32.67,33.14,32.79,34.34, 35.56,36.11,35.64,37.45,36.85,37.25,37.94,36.44,39.81,39.65, 41.71,39.30,42.53,41.49,41.77,42.52,42.92,42.89,44.05,45.25, 44.85,43.54,45.12,45.51,45.95,48.36,47.58,48.18,46.62,48.32, 48.47,46.63,49.21,50.32,52.07,52.64,49.98,51.40,53.06,53.67, 53.22,52.71,52.19,52.86,53.58,55.18,54.91,54.53,56.57,58.68, 55.95,56.62,58.04,57.51,58.10,59.29,59.95,57.31,60.42,61.21, 62.56,59.54,60.51,59.18,61.05,60.07,63.74,63.19,61.07,62.42, 62.20,63.65,63.25,63.11,63.73,65.64,65.60,67.58,65.88,67.30, 66.84,66.95,64.95,67.64,66.68,67.57,66.10,67.73,66.02,70.80, 69.40,67.97,69.04,68.44,71.64,70.65,70.33,70.82,73.92,76.67, 71.44,68.09,71.16,69.80,71.22,74.29,75.43,76.11,75.04,72.91, 74.71,75.65,74.87,74.21,76.86,74.37,73.19,77.77,78.41,77.74, 77.17,77.15,78.71,76.49,76.23,76.17,79.32,79.66,80.91,82.37, 78.19,80.21,79.41,79.81,81.14,76.64,81.82,79.44,82.43,80.42, 81.60,79.56,83.39,86.64,82.14,86.70,80.10,86.05,84.66,85.45, 86.30,85.84,82.76,87.87,85.19,86.98,84.05,87.21,84.68,87.99, 89.19,85.77,89.19,86.85,87.86,88.13,87.80,86.75,89.46,88.30, 94.38,89.47,88.50,88.15,89.24,91.26,89.48,87.35,91.61,96.50, 88.35,87.84,90.19,90.16,87.89,90.77,92.87,91.73,92.21,89.93, 93.36,90.34,91.82,96.43,96.43,99.20,91.49,93.82,97.12,95.74, 96.82,95.21,96.03,92.91,95.88,97.02,97.10,99.74,93.49,97.75, 99.27,99.65,98.42,99.17,102.49,97.61,99.71,99.73,97.73,101.59, 99.63,97.26,102.20,97.93,99.52,97.91,101.10,94.99,97.69,102.72, 100.70,104.03,105.34,106.13,100.55,105.34,103.60,108.86,104.56,103.57, 105.02,102.49,105.72,103.49,104.66,104.08,107.65,101.72,108.67,102.27, 105.96,103.82,105.02,104.79,103.85,102.88,104.95,109.03,105.92,104.76, 110.18,107.02,109.48,104.33,105.33,108.78,103.78,110.41,108.55,111.13, 20.60,21.03,21.33,23.33,24.94,24.24,25.09,25.34,26.10,28.03, 28.91,29.08,29.84,29.61,30.67,31.53,32.12,31.11,34.05,34.68, 33.94,36.53,35.37,36.58,36.21,36.18,37.16,38.28,37.14,39.41, 37.82,40.13,38.83,42.24,40.60,42.16,42.18,43.39,43.05,44.16, 43.72,45.82,45.07,46.22,45.71,48.36,45.32,46.79,46.47,46.42, 48.57,47.22,51.11,47.66,49.67,49.14,49.20,50.46,51.52,52.22, 52.14,53.62,53.23,52.27,54.78,54.09,56.44,52.03,56.01,55.51, 55.81,55.94,56.86,57.11,54.44,58.37,57.43,60.17,58.16,57.57, 57.59,60.24,59.24,58.29,60.97,60.80,62.16,62.15,62.14,62.57, 61.53,64.64,63.71,64.87,63.57,64.13,65.20,62.17,65.50,64.30, 65.48,67.37,67.43,65.90,66.08,66.35,68.19,68.73,66.46,70.30, 68.97,68.88,67.69,67.13,66.12,71.09,68.95,68.48,67.46,75.80, 68.82,71.38,71.10,73.29,72.14,69.42,70.94,73.91,76.81,70.68, 75.02,76.36,74.21,74.21,75.95,73.28,75.18,75.67,75.06,76.44, 75.81,74.78,75.39,77.16,73.97,77.84,76.89,81.20,81.31,79.90, 78.38,80.14,78.51,76.47,78.93,78.85,80.93,81.17,79.93,81.77, 80.57,79.77,81.22,81.33,79.53,84.23,82.41,80.98,81.28,83.90, 81.90,85.08,82.56,82.19,85.60,85.73,84.58,83.27,87.66,85.62, 86.75,86.65,81.29,89.20,88.18,85.50,87.41,88.22,91.47,85.65, 86.64,90.31,86.92,90.16,91.08,88.63,89.02,92.39,92.68,95.32, 89.07,87.21,91.44,87.38,89.97,94.07,88.76,90.94,93.70,93.54, 92.98,89.61,91.89,94.05,91.80,90.95,93.71,94.13,90.93,92.34, 88.64,93.66,92.61,93.06,94.51,94.52,94.50,96.29,96.07,96.80, 99.61,98.15,96.81,97.01,96.06,98.46,96.62,96.09,98.72,96.65, 97.81,94.88,95.29,96.33,99.12,98.55,99.63,102.15,97.73,99.08, 97.29,99.89,101.91,103.54,98.54,97.19,96.15,103.16,102.32,99.68, 102.25,103.79,103.00,101.13,101.82,103.40,106.34,104.19,106.10,102.29, 106.57,108.76,103.43,104.29,104.25,99.94,103.20,103.53,107.09,104.15, 106.74,105.13,106.08,108.01,106.55,110.58,104.76,108.32,107.26,108.56, 20.38,21.33,22.07,22.40,23.60,25.09,26.03,26.96,26.50,27.47, 27.60,30.01,29.11,28.98,29.91,31.57,31.78,32.84,33.37,34.10, 33.17,33.93,36.52,36.89,34.63,36.36,37.27,37.38,37.59,38.07, 38.66,39.12,39.25,39.22,41.18,40.98,43.00,42.57,42.37,43.68, 41.68,44.93,44.39,44.05,44.66,42.84,45.82,47.88,47.84,46.32, 49.16,47.71,47.03,46.39,49.18,48.94,48.12,49.82,50.80,51.81, 51.56,49.92,53.06,52.68,52.09,52.89,51.66,52.14,53.91,55.14, 56.16,52.77,53.97,58.18,57.42,55.25,57.35,56.63,55.47,57.92, 56.25,58.72,58.52,59.77,57.55,57.10,60.82,61.34,59.69,59.17, 60.47,61.92,61.79,61.76,60.12,61.37,63.14,62.15,62.14,63.67, 63.37,62.43,63.70,67.29,65.50,66.58,63.92,65.57,63.08,68.38, 68.69,66.24,67.46,65.65,68.64,67.46,66.66,66.71,68.93,67.81, 70.27,66.35,69.90,68.36,70.33,72.20,70.28,72.04,73.14,71.98, 71.93,69.43,73.37,74.13,73.45,73.93,71.19,73.08,72.76,73.30, 74.83,73.89,75.42,75.28,77.39,76.75,73.92,74.54,78.27,77.93, 73.63,74.15,78.53,75.89,78.42,77.14,77.66,76.50,79.96,81.31, 77.93,77.51,80.99,81.08,81.07,80.79,82.83,84.31,81.65,80.62, 79.63,80.92,83.06,83.54,81.82,81.77,82.04,83.94,83.52,82.26, 82.42,86.07,83.98,83.87,84.20,87.89,83.25,85.43,88.62,88.46, 87.76,86.01,84.76,91.75,85.30,86.93,85.47,88.30,88.58,85.55, 90.45,89.57,89.39,89.79,90.30,87.54,90.66,88.47,88.71,90.77, 90.08,91.48,91.81,90.45,92.35,89.62,91.91,89.70,89.88,88.83, 91.48,92.09,94.61,96.27,96.72,93.77,95.25,92.32,92.92,94.81, 92.50,90.25,96.99,95.15,93.67,95.73,98.96,96.54,96.81,94.99, 95.84,97.73,93.82,94.07,95.99,95.84,101.49,98.90,99.58,97.63, 98.25,97.68,98.76,102.43,96.74,102.62,97.52,100.17,97.61,104.03, 102.61,94.23,103.02,101.92,105.30,97.43,98.89,98.85,105.07,103.89, 97.55,106.73,95.79,105.20,103.52,103.51,97.02,105.30,103.72,101.34, 102.72,102.88,103.28,99.83,104.10,103.91,103.56,107.57,101.00,106.77, 19.74,21.90,20.88,21.60,22.17,23.78,24.28,24.86,25.95,26.23, 27.01,27.68,27.62,28.23,30.50,29.47,30.43,31.22,32.66,31.13, 32.56,32.33,33.39,34.74,34.65,34.49,36.14,36.28,35.87,37.23, 39.20,38.94,36.98,39.28,39.82,39.98,40.52,39.90,41.04,42.02, 43.04,41.70,43.68,44.29,43.68,43.20,46.74,45.52,45.17,44.21, 46.23,46.08,47.82,47.74,48.10,46.91,47.31,49.20,50.07,49.83, 49.59,50.29,50.28,49.95,52.39,51.03,52.54,53.47,52.80,53.25, 50.25,52.32,53.18,56.36,54.29,54.10,55.63,56.26,54.91,58.04, 55.10,58.14,56.63,55.18,59.35,57.50,57.58,58.33,56.87,57.61, 62.08,61.62,60.10,59.71,58.79,60.53,60.24,62.59,60.09,61.22, 64.37,61.44,65.37,64.86,66.53,64.88,60.81,63.17,63.82,64.82, 67.21,64.32,66.40,68.25,65.56,65.88,66.41,67.57,68.43,69.66, 67.78,66.55,67.15,71.30,68.96,66.97,71.27,72.51,69.94,69.51, 71.39,70.29,69.04,72.49,70.37,73.90,73.41,71.40,70.63,73.30, 75.75,75.65,74.76,71.80,72.30,71.41,76.04,75.28,74.74,75.64, 76.40,77.26,73.78,72.25,75.96,77.02,79.97,72.17,78.82,76.57, 76.80,75.09,78.77,83.38,72.56,77.67,79.39,79.22,79.96,80.49, 76.66,76.91,82.27,78.97,81.53,81.37,78.00,83.18,83.08,78.32, 82.43,87.67,82.36,79.83,79.69,86.68,85.16,84.19,83.66,83.37, 81.18,83.43,85.20,85.24,82.28,83.75,87.01,87.29,89.88,85.94, 86.62,89.00,91.02,86.65,88.49,84.92,85.57,83.57,86.36,86.86, 90.46,90.34,90.82,87.82,89.12,91.43,89.70,90.45,86.25,91.33, 92.57,88.22,93.38,97.68,91.51,86.25,88.44,94.73,90.48,92.42, 89.87,93.84,93.61,92.97,88.38,94.66,92.99,93.58,92.78,94.29, 96.34,94.79,92.28,98.47,91.91,96.80,96.06,90.90,96.24,94.86, 98.94,93.68,95.66,95.51,95.02,97.84,94.73,95.31,101.65,99.14, 95.23,99.13,99.31,100.50,100.98,98.53,97.75,99.45,100.52,97.83, 100.92,101.45,98.67,100.14,96.41,98.46,102.27,97.09,99.37,99.65, 101.23,97.50,102.75,103.15,100.08,102.06,98.85,101.67,101.90,98.28, 19.06,20.46,20.88,21.69,22.32,22.06,23.94,23.94,25.32,25.42, 26.71,27.61,27.10,28.10,28.28,28.27,30.69,32.06,29.77,32.02, 32.89,33.20,33.07,32.91,33.50,34.30,34.97,36.77,34.17,36.19, 35.14,37.91,38.72,38.46,38.20,39.31,39.54,40.38,39.72,40.48, 40.60,42.06,43.15,42.21,42.08,43.42,43.22,42.70,44.72,45.23, 44.12,45.68,46.94,47.77,45.79,47.04,48.06,47.41,49.37,48.61, 47.23,48.37,49.20,48.11,51.02,51.80,51.29,50.37,50.18,51.54, 50.09,53.31,53.23,53.22,55.83,52.88,53.70,53.81,54.81,54.74, 55.82,55.92,53.68,54.41,55.47,55.98,57.37,56.74,57.92,57.10, 56.05,57.54,59.78,58.23,61.33,61.10,57.61,61.53,61.54,60.38, 60.80,60.86,61.07,61.65,61.08,61.24,64.60,62.60,61.97,65.59, 63.66,60.74,63.43,66.63,62.14,65.88,62.83,64.41,65.45,65.83, 63.37,64.98,65.98,67.65,64.91,68.47,67.90,65.27,67.87,67.21, 68.98,64.96,69.22,69.74,69.37,70.45,67.50,70.30,71.01,70.54, 71.22,73.25,71.98,70.48,68.10,74.27,70.21,71.85,73.25,72.52, 72.30,70.89,72.87,73.70,72.54,73.72,74.07,71.83,71.50,73.84, 76.11,75.52,76.64,73.40,75.28,78.71,78.83,76.60,78.78,76.17, 77.17,79.78,80.73,76.70,78.03,80.23,79.01,79.01,80.85,77.68, 79.53,79.09,80.71,79.86,80.70,83.52,82.00,81.65,84.40,82.07, 81.86,84.29,79.92,83.11,80.43,83.40,80.67,81.17,85.97,78.64, 82.03,81.55,83.13,86.12,85.36,84.34,84.59,86.03,84.67,83.30, 86.65,81.96,88.74,84.25,88.75,86.95,87.32,88.67,85.43,90.06, 87.12,89.23,86.79,84.67,86.45,85.58,88.25,89.83,86.33,86.40, 90.40,91.21,91.70,89.59,91.41,91.09,92.12,91.14,91.33,90.52, 89.93,93.38,90.09,91.27,92.79,91.68,93.28,93.37,92.09,92.77, 91.65,96.60,94.10,92.97,92.22,95.33,95.82,93.93,95.01,91.94, 99.34,94.20,94.77,92.85,95.20,92.64,92.98,97.55,95.42,99.61, 90.76,100.95,96.44,97.98,101.89,97.05,93.15,102.97,96.57,99.51, 98.12,98.96,99.32,97.63,97.92,96.68,101.57,100.96,101.63,104.81, 17.95,18.75,20.20,21.22,22.04,23.34,22.31,23.08,24.23,25.74, 25.54,26.15,27.37,28.42,28.51,28.50,28.81,29.64,29.63,30.36, 31.53,32.88,32.66,32.50,31.91,32.78,35.21,34.15,34.76,34.98, 35.61,36.47,35.42,36.58,37.75,38.76,38.32,38.60,39.60,39.16, 39.71,40.04,41.02,40.98,42.02,43.11,42.32,42.26,43.07,43.64, 43.33,44.24,44.42,45.05,45.64,46.43,46.48,45.83,44.63,46.32, 47.29,49.09,48.06,47.42,47.84,47.05,49.57,50.72,49.96,49.56, 50.18,50.86,53.24,50.65,50.38,51.57,54.00,52.68,52.71,52.93, 54.09,53.53,53.40,53.48,53.48,56.41,56.73,56.96,55.65,55.81, 58.14,54.20,56.11,58.06,59.19,57.07,56.57,57.72,59.76,57.69, 60.42,58.47,59.93,61.20,59.96,57.87,61.29,59.06,61.50,61.04, 61.05,61.28,62.28,63.60,60.49,62.83,61.94,60.15,65.47,63.37, 62.76,65.45,67.59,65.25,65.82,62.72,63.48,65.04,65.60,64.16, 66.93,68.05,67.65,69.00,67.98,69.81,67.07,68.54,67.34,67.03, 68.49,68.62,69.83,69.64,71.37,72.48,68.66,71.16,70.46,68.81, 69.56,72.57,71.46,70.24,72.33,74.38,73.26,74.80,73.28,71.03, 75.12,75.70,73.03,73.84,77.51,73.05,73.88,73.25,76.53,74.32, 77.20,73.22,74.20,75.51,73.70,72.95,74.07,76.31,78.64,78.60, 75.78,78.07,79.55,78.59,77.89,80.96,78.13,79.03,77.82,79.94, 77.31,81.40,79.10,80.11,82.06,79.57,80.18,83.28,82.38,76.90, 78.78,82.18,82.47,81.19,81.88,79.50,83.23,83.68,84.48,85.43, 83.19,83.40,80.24,85.56,86.85,86.50,82.13,84.67,83.56,80.26, 86.52,83.59,85.60,85.66,82.22,83.75,83.96,84.19,86.32,87.89, 89.40,90.32,85.92,85.84,89.17,89.38,83.73,89.35,88.83,86.74, 91.56,86.94,89.89,92.08,90.42,91.25,90.58,90.88,90.45,91.28, 86.54,89.93,89.55,88.57,90.53,90.72,93.20,96.24,90.28,90.04, 90.95,92.52,94.55,95.59,93.66,93.50,92.70,90.47,91.13,94.88, 95.16,92.19,96.86,95.57,92.49,93.65,91.50,96.34,96.28,92.89, 93.27,97.64,93.07,92.49,98.61,92.55,98.91,96.56,99.80,96.64, 18.46,19.77,20.07,20.25,21.15,21.68,21.58,23.10,23.85,23.35, 25.21,26.02,26.04,26.43,27.19,27.37,27.45,28.77,28.79,30.11, 28.91,30.81,31.12,31.04,30.12,31.84,32.75,33.23,34.29,33.76, 33.99,36.03,35.06,36.11,35.42,35.80,37.32,36.30,36.70,36.95, 36.63,38.65,38.20,37.51,39.61,39.28,40.43,39.98,39.00,41.28, 41.56,41.70,42.79,42.12,43.96,41.36,43.78,43.31,43.64,42.67, 46.06,44.08,46.13,45.88,45.94,45.41,44.88,46.67,45.40,46.38, 48.03,45.61,47.43,47.98,47.87,47.57,52.36,48.13,51.48,49.59, 51.64,52.43,50.00,51.29,51.43,52.23,52.54,52.13,52.23,53.90, 54.38,54.91,52.47,54.28,55.48,52.18,56.12,53.34,53.44,55.86, 56.43,60.60,56.79,56.38,57.15,55.71,55.66,57.19,56.42,56.41, 56.38,56.13,59.37,57.48,59.33,60.07,59.93,59.89,58.80,59.74, 60.09,62.48,60.97,59.97,61.13,61.06,60.91,59.43,62.28,61.19, 60.33,63.88,62.84,63.17,63.56,63.11,63.06,64.56,64.45,63.02, 62.94,67.05,65.30,63.58,63.25,64.69,66.06,68.03,66.70,64.39, 65.29,69.02,65.93,66.51,67.58,66.54,67.66,64.87,68.76,67.27, 69.18,67.85,68.28,71.54,70.96,69.44,68.51,68.61,69.75,70.00, 71.63,69.46,69.06,70.34,73.15,70.60,74.20,71.70,72.17,75.91, 75.25,74.64,72.39,76.14,74.45,73.29,71.47,74.28,76.46,73.24, 74.73,73.03,71.39,73.37,75.30,74.73,77.96,74.87,74.96,76.64, 79.17,75.02,80.83,76.50,76.16,79.88,78.32,76.82,74.68,78.50, 74.47,76.55,75.13,76.03,76.91,76.53,80.08,78.28,76.74,80.67, 80.10,80.08,78.48,77.82,80.39,77.36,79.67,81.59,81.95,84.30, 79.86,82.39,81.50,82.33,79.57,82.12,84.88,81.75,82.13,83.44, 80.68,81.02,83.31,83.14,82.83,82.72,81.46,83.30,81.57,83.95, 83.82,83.30,84.18,84.39,86.21,85.89,81.68,85.46,89.05,87.42, 85.27,84.90,84.48,86.23,87.83,83.86,87.06,85.27,85.35,87.01, 87.47,86.23,86.46,86.61,90.18,90.77,86.71,86.33,88.14,88.35, 88.33,91.02,87.44,90.18,86.99,86.67,89.01,89.42,92.05,92.51, 19.52,19.66,20.82,21.01,22.56,23.04,23.46,23.46,25.95,25.43, 26.03,27.08,27.57,28.15,27.24,29.47,29.68,30.66,30.29,30.50, 31.95,31.11,32.17,33.95,34.41,32.74,34.02,34.67,34.92,35.82, 36.89,37.28,37.75,37.34,37.69,38.22,38.52,39.37,40.69,39.68, 40.06,40.54,41.34,41.51,41.13,41.40,42.73,43.14,43.87,41.94, 43.68,44.15,43.92,45.02,46.55,44.67,46.97,44.71,44.59,47.06, 47.31,46.23,46.03,47.94,48.18,49.92,49.86,48.41,49.92,48.52, 51.25,47.88,51.47,52.70,50.18,51.85,52.07,53.70,51.43,52.81, 54.69,53.37,58.24,54.52,53.83,57.30,53.17,56.43,56.46,55.78, 56.26,56.80,56.02,58.56,57.77,59.53,58.61,57.56,57.12,60.19, 58.62,57.54,57.03,58.52,60.74,57.73,62.13,60.77,59.27,59.41, 61.57,60.61,65.35,63.06,64.35,63.30,63.07,61.63,62.35,66.20, 65.05,64.54,63.63,66.59,65.81,66.54,66.72,63.02,66.53,66.77, 67.63,67.79,65.49,66.56,65.32,69.91,64.86,66.74,68.92,69.61, 68.57,66.99,65.94,71.40,68.99,67.60,69.96,69.90,71.09,68.69, 71.30,69.34,71.32,71.52,71.38,72.91,72.50,69.55,76.47,70.03, 72.22,73.88,72.58,71.23,69.26,72.98,76.02,77.35,76.62,77.54, 75.28,75.73,75.01,75.03,75.91,74.05,76.30,76.12,78.70,79.87, 78.77,75.67,77.53,75.24,78.57,76.61,77.09,77.66,77.77,81.82, 79.19,80.18,82.56,79.71,78.11,79.64,81.82,81.11,77.85,78.60, 82.52,82.75,81.31,81.53,80.85,78.76,82.96,84.09,78.98,82.93, 82.73,83.81,83.81,80.70,82.79,82.95,86.63,85.94,84.89,85.08, 81.53,82.78,85.35,86.19,89.19,86.02,86.29,90.18,86.51,84.80, 87.61,90.83,83.95,90.64,87.77,86.84,90.74,90.65,86.58,89.24, 87.28,85.40,88.62,89.58,88.02,88.40,90.29,87.68,90.16,86.29, 92.15,91.38,89.11,90.75,89.05,87.71,89.52,91.11,92.79,95.02, 88.07,92.91,92.64,92.51,90.59,93.38,92.67,92.55,92.65,92.64, 91.45,92.28,95.14,93.19,92.86,93.49,93.15,97.57,95.92,92.71, 92.29,96.39,93.02,96.64,96.31,99.37,95.86,97.25,95.17,95.46, 19.89,21.21,22.49,22.90,23.82,23.71,25.37,26.19,26.53,28.69, 27.86,27.83,29.69,28.95,28.94,30.98,31.00,31.48,32.22,32.36, 32.74,33.14,34.10,34.48,34.48,34.77,35.94,35.83,35.36,37.50, 38.38,37.64,38.93,39.22,39.45,40.53,40.69,41.58,42.01,42.09, 44.41,42.77,42.54,42.15,44.57,43.24,44.62,45.48,46.32,47.61, 43.62,45.36,45.39,47.51,46.30,47.74,50.46,47.92,50.09,48.43, 50.88,50.37,50.42,51.53,51.08,52.29,52.27,51.04,53.14,52.05, 51.74,53.41,54.89,57.03,52.24,55.28,56.04,56.12,55.88,55.60, 56.73,57.69,53.82,55.65,56.54,56.78,56.67,59.92,56.09,58.93, 59.02,61.03,61.23,60.82,60.29,60.45,61.54,60.49,61.10,62.00, 62.29,63.97,63.48,61.97,63.82,64.50,65.87,63.62,62.72,64.95, 63.14,64.99,65.57,65.76,68.01,68.15,66.06,67.07,65.53,65.01, 68.55,67.64,68.32,66.96,66.63,71.54,69.56,66.90,67.73,68.53, 69.61,69.99,67.41,70.75,71.22,71.94,71.42,71.10,70.88,73.39, 73.84,68.79,70.07,72.78,72.13,72.79,76.43,73.48,73.71,75.88, 73.91,78.35,77.68,73.77,75.00,75.12,76.68,75.27,74.48,75.73, 76.53,79.63,77.74,77.51,78.17,79.18,80.09,79.33,78.65,78.82, 82.21,80.55,80.68,76.60,83.13,79.04,75.88,80.67,81.54,81.68, 80.08,81.82,85.27,82.44,82.47,81.32,81.89,85.10,82.28,82.97, 86.40,82.65,82.51,81.91,80.93,86.05,84.45,83.01,87.42,86.92, 88.60,79.70,86.68,83.01,84.84,85.72,87.15,87.38,85.28,87.33, 87.76,90.48,85.01,87.05,87.97,88.54,87.72,87.91,87.78,91.05, 91.36,89.28,91.07,91.48,90.56,90.91,88.45,92.02,89.77,88.97, 90.38,89.88,93.18,94.23,94.98,91.61,94.83,93.76,89.29,93.20, 91.94,91.72,93.03,96.43,92.60,95.22,93.50,96.86,95.57,95.82, 92.87,96.77,95.07,97.38,97.87,96.56,100.96,98.18,94.15,95.50, 97.17,98.83,98.81,94.70,95.86,95.46,99.25,96.81,100.28,100.45, 93.43,101.96,99.64,99.78,100.60,101.73,98.27,104.25,100.96,98.54, 100.80,101.89,103.83,97.35,99.92,102.90,101.00,102.67,99.13,104.70, 21.32,22.09,22.46,24.13,24.40,25.53,26.92,25.99,27.44,26.86, 28.37,29.90,30.30,30.89,31.04,32.07,32.03,32.35,32.08,34.07, 34.21,34.23,35.73,36.47,36.98,38.13,37.69,38.11,39.17,38.52, 38.02,40.27,40.16,40.66,42.26,42.40,42.28,44.50,41.31,42.55, 45.21,44.23,43.82,45.75,45.92,47.38,45.44,48.25,46.16,48.72, 48.88,48.20,49.99,49.76,48.10,50.76,53.08,49.91,51.55,52.73, 51.60,53.56,53.95,52.00,53.25,53.42,52.98,53.37,54.44,56.03, 53.00,53.23,56.78,57.16,56.42,56.23,56.87,56.22,60.37,56.32, 60.43,59.69,59.12,60.99,61.66,59.56,60.16,61.53,61.99,61.93, 60.66,60.26,64.08,63.31,62.54,62.93,65.87,64.21,62.62,65.22, 66.42,63.43,67.09,65.50,66.22,65.79,66.51,66.96,70.04,67.15, 68.91,66.33,66.64,69.72,68.04,70.47,70.73,67.77,68.96,71.11, 71.60,68.78,69.64,68.81,72.52,72.40,72.41,72.27,72.39,74.81, 71.44,73.35,72.15,72.43,72.58,73.88,71.94,73.17,73.97,72.43, 70.35,76.82,74.86,76.32,81.55,76.12,75.35,77.33,77.25,74.67, 74.43,77.74,76.18,80.07,81.04,79.80,77.26,79.53,77.78,81.85, 79.70,78.11,80.77,82.49,79.95,82.28,85.67,84.44,81.32,80.30, 85.42,82.83,81.94,82.67,84.68,81.01,84.64,85.26,85.66,85.66, 86.48,87.07,89.52,82.36,82.13,83.54,83.01,85.19,86.61,87.08, 86.87,86.71,86.85,89.32,88.63,87.30,84.91,92.41,90.61,86.15, 84.59,89.03,92.36,91.66,90.68,88.46,90.02,93.65,93.69,89.35, 91.97,93.96,94.86,94.33,92.67,93.87,94.77,90.20,93.67,94.57, 94.44,92.58,96.67,94.60,96.34,93.50,93.52,91.71,100.55,93.32, 99.41,94.62,95.87,98.06,96.94,96.71,96.18,97.84,96.90,97.72, 99.73,93.09,96.39,98.56,95.86,100.30,101.35,94.00,100.82,100.62, 98.63,97.52,100.35,99.59,101.65,97.81,101.06,96.68,101.23,103.44, 96.09,102.73,101.27,99.79,100.61,103.02,104.02,102.95,98.77,101.45, 103.45,96.93,102.70,101.39,107.26,105.06,107.23,105.77,100.95,103.08, 102.18,104.43,104.05,103.27,105.10,108.28,107.00,106.23,103.86,107.09, 22.02,22.24,23.31,24.23,25.12,25.77,26.38,26.95,28.20,28.57, 29.57,30.60,30.98,31.74,32.40,33.45,33.84,33.89,35.00,35.49, 36.55,36.53,37.08,37.13,37.68,37.97,38.72,38.38,39.73,38.53, 40.43,41.33,41.59,42.45,42.10,44.31,44.20,43.28,42.40,45.31, 46.17,44.94,47.72,46.73,47.55,45.97,49.45,48.95,49.38,51.24, 50.60,50.16,51.20,51.73,54.02,49.89,51.34,52.17,54.37,53.80, 51.72,53.89,55.46,52.81,56.20,53.96,55.50,56.11,56.40,57.22, 58.65,57.05,59.89,56.98,58.49,59.88,60.28,60.33,60.92,64.12, 60.43,61.48,60.47,60.19,59.43,63.44,63.23,61.46,63.84,61.15, 64.45,65.14,63.43,64.73,66.49,67.75,63.79,66.68,66.45,65.66, 65.14,65.83,66.95,70.18,67.83,67.08,68.17,68.08,70.07,70.24, 72.36,69.65,71.50,69.67,66.55,71.06,72.66,74.97,73.21,75.94, 74.98,71.45,70.27,74.85,76.60,73.00,76.24,77.19,75.73,77.99, 74.40,73.65,73.56,76.35,78.07,76.87,77.94,77.55,78.79,75.30, 77.46,78.12,84.77,79.11,77.75,80.89,80.27,80.79,79.39,80.83, 77.74,81.18,79.36,79.49,82.44,82.17,81.10,81.94,84.61,78.99, 83.10,79.24,88.13,87.01,84.59,83.52,84.80,86.75,84.18,87.22, 82.76,85.66,86.62,87.74,84.83,86.96,85.29,84.56,84.33,89.29, 91.39,86.86,88.11,89.15,88.96,90.09,91.36,91.52,90.47,86.95, 89.49,87.32,88.60,87.60,89.25,92.49,90.55,90.73,88.65,95.16, 92.43,89.94,90.96,93.40,95.45,92.33,91.56,93.14,94.73,93.24, 96.18,92.78,93.16,94.16,95.08,94.79,96.94,94.76,93.80,96.09, 91.88,95.65,97.30,99.58,97.88,94.97,94.81,102.99,100.65,98.87, 98.89,95.86,97.90,95.52,105.19,98.44,98.16,102.06,97.73,104.49, 101.20,101.01,97.79,100.88,102.88,104.02,102.82,102.04,103.94,101.46, 103.85,101.34,104.10,104.70,99.64,107.03,103.50,108.72,104.51,103.48, 104.11,102.09,106.90,105.03,106.87,106.79,100.79,105.66,102.05,107.98, 106.90,102.77,108.93,103.49,101.11,109.16,105.47,106.40,108.94,111.03, 107.45,107.93,105.11,111.45,105.13,108.59,111.91,103.80,110.63,108.64, 21.48,23.79,23.82,25.29,24.96,25.55,26.91,26.86,28.13,28.93, 30.96,30.14,31.23,32.02,33.91,33.68,35.04,34.08,34.19,35.59, 36.31,37.71,36.69,38.62,38.76,38.26,40.78,39.15,41.40,40.44, 41.88,42.87,43.22,42.42,43.29,44.23,45.58,43.60,46.86,45.01, 45.99,47.90,47.81,47.53,46.89,48.98,48.85,50.37,49.89,52.05, 52.71,51.37,51.85,51.08,52.64,52.72,53.00,52.13,52.91,55.51, 54.13,53.00,57.30,55.70,57.99,58.64,56.36,56.20,59.83,58.77, 57.01,60.12,59.29,59.06,59.52,60.94,62.04,64.05,61.79,62.54, 64.96,61.98,62.01,64.32,63.39,64.79,66.61,65.76,60.38,66.46, 63.44,63.15,66.86,67.94,65.11,67.63,65.93,70.62,66.81,67.43, 67.51,68.45,68.89,66.92,66.90,69.78,68.67,70.06,67.44,73.13, 69.79,70.55,71.97,70.14,71.78,69.71,73.58,71.97,74.64,73.68, 76.52,74.39,74.23,75.08,75.46,77.01,77.36,77.40,76.01,76.50, 78.57,78.20,78.86,78.55,79.03,80.39,74.78,79.16,77.56,81.13, 81.73,79.89,79.85,82.20,80.06,79.64,83.71,81.09,83.06,80.21, 82.97,82.33,82.37,82.81,82.96,81.41,83.85,84.14,85.85,86.41, 85.55,86.53,83.69,86.38,86.59,87.87,87.77,87.98,86.60,84.46, 90.93,86.60,89.41,88.71,87.93,90.23,89.83,89.02,88.91,89.41, 92.55,89.27,89.24,87.45,92.28,87.52,90.25,91.33,91.51,91.33, 89.96,93.19,91.13,90.66,93.57,94.16,92.88,94.03,91.84,92.91, 92.43,97.55,92.32,95.92,92.15,95.02,93.68,95.15,95.95,92.05, 98.11,100.28,94.42,97.13,94.87,98.20,98.53,99.58,98.26,99.76, 102.20,98.17,99.27,100.64,97.38,100.99,99.90,97.68,98.58,99.71, 98.44,104.40,98.34,100.82,103.75,105.78,99.21,103.06,101.64,101.07, 99.82,107.14,106.16,106.59,102.46,105.64,102.31,107.37,106.14,100.05, 105.47,106.06,104.82,107.82,105.98,105.73,99.57,107.30,106.46,105.75, 107.79,104.61,109.30,104.98,105.13,103.59,107.67,109.53,108.17,106.47, 111.94,109.29,109.08,107.19,104.88,103.29,109.05,109.47,110.08,109.31, 109.86,111.23,105.99,110.98,109.07,111.93,116.03,112.74,118.47,109.70, 22.84,23.47,23.72,24.86,26.12,25.66,26.27,28.22,28.16,30.10, 31.17,30.74,31.69,34.26,33.71,34.19,34.22,36.51,37.51,36.16, 35.44,35.69,37.73,38.54,38.33,40.27,40.37,41.38,40.41,43.38, 41.94,42.91,43.88,43.90,43.93,45.59,45.49,45.01,46.22,48.29, 47.15,45.60,48.44,48.03,48.94,50.25,49.99,49.99,50.66,50.90, 50.75,52.29,52.37,53.17,53.66,52.65,55.68,54.97,54.22,58.20, 55.43,55.59,56.30,57.49,55.57,57.72,56.44,57.45,59.35,59.12, 58.62,58.23,60.48,60.25,60.43,59.77,60.31,62.35,59.86,61.26, 63.25,61.35,62.87,63.79,63.29,64.52,65.58,65.35,65.98,65.00, 65.81,66.56,67.81,67.25,66.19,69.36,69.12,68.22,69.00,69.72, 67.64,69.12,72.35,69.20,70.94,68.56,71.72,73.44,70.54,69.22, 70.31,74.52,69.70,73.21,74.39,74.86,73.18,74.23,70.77,74.66, 75.62,74.62,76.73,76.98,75.42,74.67,76.46,80.85,77.94,74.50, 75.52,79.41,78.42,81.20,79.41,81.06,79.86,78.18,80.88,80.39, 80.50,80.45,85.59,81.37,83.19,85.02,83.47,83.28,83.90,82.42, 81.27,84.53,83.16,84.04,85.31,85.31,89.00,84.61,85.58,87.33, 86.21,84.88,84.02,89.67,86.79,87.42,85.24,86.00,87.69,88.68, 86.56,86.82,93.35,90.00,87.51,89.70,90.78,88.05,91.14,91.75, 91.59,92.42,91.42,90.53,90.15,93.60,93.49,89.47,95.12,91.14, 94.71,94.86,93.79,95.51,94.69,93.39,92.80,95.36,91.82,96.03, 95.10,97.36,100.84,95.72,93.74,100.13,98.24,93.17,98.29,99.60, 95.95,97.65,94.13,98.25,95.69,97.97,98.78,104.48,98.23,100.79, 97.92,100.55,97.78,102.82,102.10,102.38,99.24,102.24,105.03,103.97, 102.07,102.14,99.78,102.25,102.52,103.22,104.00,105.49,107.47,99.36, 103.36,105.54,108.73,106.28,99.86,99.82,102.57,106.37,103.93,109.21, 108.02,108.74,104.86,108.51,106.19,104.63,105.97,103.73,107.83,106.22, 107.95,106.85,110.53,109.69,106.82,108.20,107.82,106.74,111.52,106.39, 112.45,114.59,109.41,108.10,110.99,111.02,110.29,106.84,107.97,113.75, 108.83,115.23,119.12,111.82,111.60,114.86,111.01,114.38,114.57,114.31, 22.36,23.20,24.26,25.27,26.25,26.68,28.10,28.47,29.61,30.03, 30.40,32.25,32.75,33.02,33.46,34.22,35.67,34.93,36.45,36.20, 36.56,37.66,38.25,38.81,37.44,41.65,41.34,39.94,42.71,43.38, 43.08,42.96,42.30,45.01,43.09,44.42,46.59,48.52,45.98,47.70, 48.33,47.38,49.50,48.25,48.61,50.52,50.95,49.92,49.77,51.26, 53.04,54.16,52.54,53.75,52.57,52.46,57.34,54.57,53.56,58.20, 54.88,56.16,57.26,56.87,56.88,60.22,58.65,59.46,58.60,59.71, 60.23,60.17,63.89,61.20,63.91,61.76,61.20,62.09,61.78,63.13, 64.75,65.17,64.58,62.94,64.69,62.89,64.71,65.66,67.67,66.08, 69.08,67.44,67.63,67.52,66.75,68.36,69.69,68.23,66.66,67.40, 72.29,71.21,68.53,70.59,71.18,72.66,69.94,71.60,70.20,73.38, 71.68,73.20,73.49,75.19,73.94,78.11,73.82,72.51,72.20,78.45, 72.82,76.95,75.90,74.38,79.91,76.24,75.03,80.47,77.12,75.99, 78.63,82.08,76.91,78.48,80.57,83.39,81.05,82.56,77.71,77.34, 80.17,86.14,80.45,79.99,81.86,82.18,84.72,79.15,84.08,84.07, 85.75,87.96,83.28,83.01,86.87,83.19,87.28,85.02,83.59,87.00, 87.87,88.76,86.08,88.58,83.49,89.15,87.59,87.29,88.30,91.25, 89.57,91.25,92.62,90.96,87.13,92.38,92.57,86.79,87.40,92.16, 91.92,90.70,94.20,93.92,92.62,94.75,94.86,91.79,95.44,93.65, 91.42,90.67,93.53,95.03,91.92,94.94,97.00,97.80,98.30,95.16, 95.85,95.13,96.88,99.60,95.18,98.23,100.38,99.24,98.37,94.81, 102.00,98.36,100.56,101.24,98.23,99.55,101.58,101.25,98.31,100.43, 97.89,102.28,99.36,101.46,100.54,99.48,101.84,101.23,101.99,103.81, 103.30,107.85,100.58,102.55,100.62,105.76,104.93,105.00,104.45,104.87, 105.41,102.74,102.52,106.88,107.08,108.44,108.93,106.82,108.95,109.01, 107.49,108.14,106.40,109.67,111.07,109.80,108.77,106.40,108.38,110.70, 107.87,110.51,109.90,110.86,109.33,107.54,109.72,111.14,113.76,114.84, 113.79,110.52,110.89,114.29,110.51,109.85,110.23,113.84,110.28,115.46, 112.73,116.16,110.46,110.83,110.27,118.97,114.49,112.12,114.83,121.90, 22.93,23.46,24.32,24.99,25.42,25.84,27.79,28.07,30.11,30.80, 30.38,31.38,32.57,32.17,32.73,34.62,34.56,33.63,35.17,35.87, 37.74,37.44,39.15,39.95,39.85,38.66,42.22,41.31,42.75,42.41, 42.41,43.81,43.45,42.95,43.12,45.61,45.37,44.49,47.50,45.08, 47.86,46.71,46.48,49.53,49.53,51.08,50.23,52.71,51.20,51.12, 53.20,53.67,52.70,53.40,53.50,54.59,53.24,56.74,53.74,58.16, 57.72,56.47,56.72,57.22,57.71,57.93,59.92,57.71,59.20,61.75, 60.38,58.92,61.32,62.35,63.02,61.13,60.54,59.10,62.29,64.43, 64.54,62.74,63.22,62.86,65.22,65.81,64.55,66.88,65.69,66.70, 66.76,67.79,71.89,70.17,68.55,71.68,68.59,68.94,70.29,67.98, 68.00,70.44,72.47,73.59,70.69,70.77,71.28,73.22,72.94,73.91, 72.07,73.37,74.37,73.79,76.41,73.96,72.65,75.53,75.74,76.97, 79.05,76.95,76.30,74.93,77.68,75.76,80.53,78.81,77.47,77.85, 81.99,80.99,76.32,80.37,81.58,80.30,80.07,81.76,79.17,85.19, 83.89,83.50,83.49,81.92,86.60,83.41,81.23,86.49,83.83,80.94, 85.55,88.72,84.43,82.82,81.75,85.69,86.23,83.27,87.23,86.05, 86.82,84.97,89.31,86.70,87.88,90.71,87.63,89.40,93.46,85.56, 86.94,89.69,87.88,88.78,89.65,88.89,88.80,90.48,91.47,87.71, 94.13,92.91,89.53,95.01,92.62,91.94,92.40,96.24,93.70,94.48, 93.21,94.91,93.84,92.16,96.87,93.80,96.85,95.65,94.00,96.31, 94.57,94.80,96.77,97.03,94.40,98.73,98.49,98.46,94.88,100.26, 94.01,96.05,98.37,105.79,98.22,95.79,103.18,99.89,103.39,99.68, 98.02,99.60,103.55,100.65,100.66,104.12,101.66,99.70,105.31,103.34, 105.49,102.66,106.11,101.66,106.25,103.48,105.95,103.48,104.86,106.67, 109.64,106.87,108.14,107.49,104.91,102.38,108.18,105.99,110.73,106.27, 106.95,109.68,106.03,105.48,108.47,110.51,109.30,112.05,109.57,109.30, 110.11,112.57,109.74,108.83,106.81,110.44,111.48,114.28,111.81,106.01, 113.89,109.63,111.48,112.33,114.42,113.66,115.31,115.19,109.64,114.98, 111.36,111.06,114.85,112.95,112.83,114.39,110.48,117.30,115.48,116.60, 22.39,23.11,24.55,25.06,24.75,26.90,28.38,27.46,31.21,30.60, 30.92,32.42,30.97,33.96,32.83,33.29,33.67,35.72,35.26,36.43, 37.07,37.82,37.02,39.15,39.25,39.21,39.03,40.83,42.46,42.42, 43.68,41.99,44.28,44.11,42.70,45.68,45.21,47.30,46.03,47.44, 47.74,46.54,48.26,48.17,49.53,49.86,48.41,50.38,52.11,51.12, 52.76,50.98,51.86,52.54,53.33,52.37,54.89,54.63,55.90,56.78, 56.42,56.60,56.39,55.69,56.38,56.22,56.55,58.63,60.01,59.67, 58.77,59.55,59.56,62.91,60.17,61.56,63.38,61.33,62.33,64.12, 64.42,63.61,64.38,62.64,64.30,64.62,63.55,64.98,65.54,65.23, 65.23,64.16,66.35,65.53,69.04,67.93,69.22,69.18,69.42,71.64, 67.92,70.74,71.98,70.83,72.20,70.94,72.15,71.82,73.76,69.56, 71.11,76.21,72.98,71.12,71.59,73.28,74.88,77.35,78.49,74.97, 76.84,75.38,77.00,73.52,77.25,79.34,76.50,79.83,80.83,76.78, 79.81,78.98,78.53,79.28,78.67,81.29,80.90,80.62,82.77,83.99, 83.58,82.90,79.11,82.74,82.70,82.26,80.36,85.24,82.57,84.04, 88.06,86.46,84.93,87.36,83.49,87.30,84.28,87.14,84.57,85.09, 86.96,87.75,86.39,93.83,87.55,87.83,87.94,86.73,90.23,85.83, 90.90,87.72,86.79,90.03,89.41,89.19,91.02,89.30,87.99,89.74, 90.28,94.28,90.80,89.87,92.21,91.56,91.33,96.54,94.31,96.15, 90.65,92.10,93.32,97.10,96.95,95.69,96.58,93.92,94.01,94.39, 97.69,95.43,93.71,94.73,94.20,100.10,101.31,97.29,99.93,97.64, 101.09,97.76,98.41,99.33,100.82,104.39,102.71,101.02,102.80,99.85, 99.49,100.57,98.84,101.78,100.77,101.55,99.32,107.26,102.81,103.25, 103.87,103.74,107.66,103.02,103.48,102.39,104.46,105.46,104.14,107.37, 106.01,103.89,105.98,111.12,104.38,109.94,113.58,106.89,107.85,107.34, 108.56,108.34,110.25,109.64,105.03,107.55,107.68,114.05,106.90,110.82, 107.39,113.58,112.87,109.49,109.52,110.76,108.32,107.03,107.98,111.28, 114.26,109.24,109.28,114.70,112.87,116.19,110.22,107.81,110.39,115.50, 113.46,114.37,115.32,112.56,117.16,110.77,111.94,116.42,110.49,114.92, 22.89,23.44,24.36,24.39,25.40,27.07,26.91,29.20,28.16,30.09, 30.24,31.16,31.33,31.27,32.93,34.57,32.96,35.25,35.88,35.66, 35.45,36.16,38.10,38.61,38.64,39.28,39.42,39.66,40.31,41.73, 40.95,41.10,43.59,44.11,42.32,43.91,46.35,44.14,45.11,44.69, 47.36,48.41,47.89,48.81,49.30,51.03,51.36,52.13,50.40,52.56, 50.74,50.06,52.02,51.74,51.64,53.70,54.86,53.51,55.40,55.42, 56.01,56.90,55.68,55.93,56.71,59.30,53.49,58.46,57.00,59.27, 61.01,58.22,60.71,60.39,62.74,60.55,62.30,62.13,60.70,62.07, 61.74,63.40,64.16,63.73,65.21,64.18,63.40,67.73,65.85,66.67, 66.89,65.45,67.13,66.57,69.59,69.41,69.05,68.42,70.02,69.63, 71.89,67.99,70.22,72.35,68.78,69.94,68.88,71.89,72.15,70.15, 73.94,74.08,71.52,75.01,72.63,73.86,75.57,73.78,74.04,75.28, 73.65,72.21,76.01,78.10,76.91,77.93,76.36,77.40,73.29,77.21, 77.31,78.43,77.24,76.18,78.43,79.65,79.69,80.61,83.90,79.61, 82.10,83.69,83.13,83.72,83.10,82.05,83.93,84.32,82.82,83.59, 83.49,83.62,81.67,84.75,89.02,85.24,82.28,87.26,85.53,84.75, 82.73,85.02,87.90,87.58,89.83,90.06,84.03,90.30,89.78,89.00, 89.85,87.68,91.99,89.21,90.64,90.07,91.55,93.20,90.94,89.23, 90.92,93.55,87.11,92.21,91.98,90.99,95.81,94.57,93.02,94.36, 93.63,94.52,95.21,92.10,94.69,94.81,98.88,95.48,94.29,94.63, 96.33,95.46,95.56,101.04,98.76,97.21,95.31,95.35,92.59,95.14, 97.72,93.58,101.11,95.10,98.79,99.80,101.84,100.21,100.31,97.49, 96.75,101.28,96.40,97.54,99.92,101.59,101.95,100.06,102.54,101.71, 101.67,100.99,99.94,101.45,100.96,104.90,103.66,102.54,103.13,102.67, 106.46,105.29,103.60,104.58,107.06,103.69,103.31,104.58,105.20,106.22, 109.17,106.33,106.97,106.69,109.30,107.40,107.64,112.14,107.89,107.71, 106.12,110.30,108.73,111.43,110.61,106.52,108.53,110.31,109.07,116.00, 112.17,108.89,107.17,111.08,110.84,113.76,113.25,112.03,113.06,109.85, 117.72,111.37,112.65,109.79,119.11,111.24,110.50,113.51,115.14,117.76, 22.35,23.09,23.23,25.13,24.87,26.41,26.97,27.62,28.95,29.12, 30.76,30.47,31.19,32.42,32.50,33.65,33.34,33.70,35.77,35.19, 36.67,37.41,35.38,38.36,36.66,38.41,39.73,41.63,39.10,39.23, 40.85,42.62,43.28,43.02,43.60,44.28,44.75,45.92,46.93,46.61, 46.58,45.73,45.69,49.17,46.98,49.70,50.13,48.32,49.16,52.65, 49.98,51.91,53.13,50.71,52.71,54.88,53.60,54.94,54.23,54.56, 55.99,54.37,55.23,56.58,57.43,58.29,55.80,55.33,57.10,56.69, 59.41,58.14,57.79,58.56,61.03,57.30,60.47,60.89,60.62,62.46, 60.05,62.53,63.15,64.74,62.28,64.45,62.58,64.07,66.40,62.23, 64.61,66.96,67.01,67.11,66.44,69.50,69.46,68.75,69.15,68.73, 67.49,67.29,67.56,69.27,67.81,71.35,69.05,70.72,72.14,70.35, 70.48,72.56,71.80,71.38,72.70,72.97,72.51,71.75,72.08,71.98, 75.39,74.86,72.70,76.82,76.47,75.84,76.85,78.41,77.47,76.99, 75.97,76.75,80.70,79.54,76.52,76.91,76.27,79.66,77.68,76.80, 78.99,79.71,79.95,81.08,81.95,84.12,79.54,83.05,82.34,83.49, 82.18,82.99,83.56,85.88,81.33,83.61,84.06,82.50,81.28,84.73, 85.58,83.80,84.79,82.44,84.49,90.90,85.83,86.98,86.46,86.05, 86.43,90.82,88.85,89.04,88.58,87.97,87.13,88.13,89.57,87.95, 88.40,91.85,90.96,87.24,90.94,92.16,90.19,91.83,92.17,93.94, 92.10,91.93,95.89,92.39,93.30,93.55,91.71,96.30,89.99,95.23, 93.77,93.48,92.43,96.52,94.36,94.99,96.67,93.13,95.03,95.77, 100.10,96.43,94.23,94.05,99.64,99.76,94.32,95.78,96.97,95.21, 99.72,97.56,94.37,100.47,96.77,101.24,100.14,100.37,96.27,101.96, 101.29,97.80,101.32,100.10,103.54,102.98,108.97,102.74,101.48,104.27, 102.47,102.12,102.43,103.35,102.97,101.05,101.84,100.94,106.45,106.63, 103.67,103.26,108.27,102.72,101.66,105.17,106.41,112.62,106.09,106.34, 104.88,105.28,109.60,107.80,105.84,104.23,108.49,106.97,101.99,108.84, 106.50,111.60,107.53,108.31,110.77,110.78,112.32,115.57,107.93,112.49, 113.13,111.56,115.27,109.03,107.05,110.76,117.21,112.64,109.34,112.34, 21.20,22.16,23.75,25.04,23.60,26.80,26.00,26.37,28.12,29.66, 29.14,30.21,31.00,30.54,31.49,33.54,32.58,34.50,34.08,34.91, 35.71,35.14,37.31,37.14,39.15,39.16,38.93,38.84,41.92,40.97, 40.57,42.09,41.78,42.75,42.64,44.60,43.94,43.48,44.77,43.85, 45.75,47.59,45.95,47.39,47.31,46.93,46.17,50.24,48.79,50.30, 50.94,50.38,50.06,51.42,53.12,53.06,52.89,53.71,52.81,52.08, 54.31,54.64,54.65,52.98,55.23,53.28,55.09,57.92,58.94,57.31, 56.09,63.26,58.48,57.25,59.97,57.61,60.50,60.65,59.19,62.95, 61.29,62.41,61.38,60.58,62.71,61.76,64.48,62.08,61.55,65.57, 64.49,62.69,66.72,66.19,66.48,67.28,64.49,67.44,68.39,68.39, 67.55,67.78,68.08,70.35,67.45,67.93,72.86,68.09,70.26,70.87, 69.31,71.73,71.27,71.61,71.06,70.11,72.70,72.65,75.07,70.66, 72.24,72.96,73.88,75.18,73.57,76.08,74.30,75.67,73.13,77.26, 78.98,75.16,76.19,75.23,76.16,74.09,77.83,76.98,76.23,76.19, 78.45,79.79,80.79,76.61,80.43,83.09,80.02,81.21,80.70,82.28, 81.19,83.08,81.29,81.41,82.04,82.71,84.89,80.58,85.31,80.79, 85.70,80.18,83.71,87.17,85.27,86.21,84.00,88.33,84.40,88.89, 86.94,88.43,87.89,87.64,85.85,89.32,89.17,84.66,86.87,92.74, 88.36,88.48,87.34,91.57,91.68,90.58,90.50,92.44,92.46,90.20, 87.22,90.82,93.83,89.32,91.07,90.93,90.59,89.50,91.94,91.66, 89.65,91.65,92.72,88.63,93.54,95.79,94.04,96.46,91.25,92.50, 93.13,96.92,95.50,90.03,94.78,96.38,95.23,97.47,97.73,98.09, 98.29,97.54,101.86,97.26,99.19,98.74,98.43,102.63,97.96,100.74, 99.60,98.35,98.97,100.43,100.60,100.59,99.89,98.10,95.80,103.69, 100.08,96.83,100.64,98.24,104.72,99.46,103.46,103.58,103.61,105.08, 107.67,102.69,100.24,103.87,102.74,103.24,104.08,103.95,106.01,106.79, 105.44,103.97,106.66,107.04,102.52,109.94,104.09,105.30,101.32,108.84, 109.75,107.20,108.66,106.26,104.85,110.06,106.17,110.14,109.41,108.00, 108.55,110.55,110.59,108.40,110.95,106.40,107.38,110.83,112.02,112.06, 21.42,21.36,22.19,23.89,24.40,25.41,24.74,26.78,27.33,27.83, 27.87,29.48,29.79,31.78,33.00,31.53,32.58,32.48,34.20,35.03, 33.82,36.94,35.03,37.10,37.73,37.08,38.16,38.30,39.28,39.79, 40.26,40.90,42.29,41.87,43.40,44.06,43.49,43.65,43.89,44.87, 45.81,46.32,45.14,43.55,46.43,45.26,47.07,47.10,47.30,50.82, 48.84,48.96,49.34,50.61,50.10,51.66,50.93,54.48,53.87,52.56, 51.19,53.23,53.26,53.14,52.53,54.97,56.12,55.84,56.55,55.63, 57.21,59.82,56.63,56.86,59.16,57.39,59.11,58.32,61.03,60.06, 59.94,59.98,61.03,59.91,60.91,60.98,61.84,62.69,61.29,61.98, 65.12,62.87,64.77,64.02,67.71,65.64,65.20,64.10,64.77,66.35, 65.45,67.86,66.43,68.27,69.10,68.89,68.29,69.62,65.88,67.50, 68.16,69.72,66.84,69.01,69.18,69.78,70.66,71.31,71.28,71.92, 70.39,68.41,70.90,72.02,75.18,75.34,74.02,76.32,76.72,77.42, 71.53,76.14,77.28,73.83,72.37,76.31,74.42,76.51,77.09,79.11, 78.26,79.74,78.24,82.59,76.09,75.57,78.23,80.85,78.23,81.60, 77.72,78.36,79.09,81.02,78.60,85.29,82.24,80.52,82.97,79.37, 80.40,86.55,84.16,85.67,85.21,84.14,86.19,84.19,85.14,84.86, 84.10,86.81,83.55,85.99,86.76,85.74,86.64,85.78,85.30,87.59, 85.29,88.94,84.71,87.93,89.83,90.35,90.03,88.94,88.03,86.49, 91.73,89.60,92.01,89.15,86.61,89.61,91.18,89.96,88.42,96.07, 92.89,90.74,94.88,89.40,92.85,93.24,90.32,92.05,92.13,92.27, 93.35,92.58,94.89,92.97,96.27,96.62,91.05,93.25,92.84,93.27, 95.74,97.69,96.97,95.35,97.56,99.46,97.18,99.12,97.21,95.41, 98.78,102.27,97.43,101.10,99.25,97.31,99.20,101.46,98.68,101.53, 97.39,99.39,101.59,100.24,100.63,99.04,103.91,101.04,101.04,102.49, 99.96,101.94,100.30,100.58,105.34,102.49,98.37,101.44,103.87,103.65, 105.51,101.91,106.70,104.01,104.60,106.04,102.23,103.74,103.25,102.84, 101.91,107.24,105.92,103.05,107.90,111.68,104.58,107.34,105.35,105.81, 109.64,106.44,106.45,110.62,111.83,109.37,105.34,108.41,112.49,109.67, 19.47,20.50,22.44,23.25,23.93,24.18,24.96,25.78,28.17,27.54, 26.77,29.22,29.40,29.32,31.57,32.78,32.03,33.11,34.62,33.42, 33.56,35.75,35.49,37.19,36.17,35.82,37.54,38.10,38.24,38.22, 38.38,40.77,40.78,41.62,40.41,41.53,42.29,44.75,42.44,41.17, 45.42,45.60,44.70,44.68,44.66,46.94,46.17,48.53,48.46,48.53, 48.10,48.28,47.85,50.87,47.70,50.95,50.38,50.09,50.49,50.21, 53.52,53.37,52.22,52.06,52.86,54.60,56.93,53.11,55.12,54.87, 55.10,55.09,57.44,56.84,58.28,55.93,55.71,57.97,56.42,55.83, 58.65,58.84,58.29,61.23,58.62,59.66,60.27,60.57,60.77,61.51, 60.29,60.95,61.71,62.72,62.99,64.09,62.29,64.23,64.58,63.42, 63.44,65.90,66.61,69.34,63.18,62.14,65.29,67.61,65.56,69.07, 69.06,66.06,71.19,70.54,69.66,67.20,68.73,70.50,71.06,70.50, 70.43,72.44,72.30,70.15,70.91,70.87,72.60,74.25,72.87,72.12, 71.63,74.25,71.72,72.04,76.51,75.42,74.20,72.94,75.66,76.65, 74.01,75.33,76.94,75.10,76.78,79.89,74.61,76.64,77.72,75.27, 78.69,76.92,78.29,77.76,77.67,80.78,77.02,79.46,78.26,79.33, 84.72,80.76,82.69,82.03,79.04,81.27,82.17,80.09,85.32,82.47, 82.13,82.52,83.05,80.65,84.25,83.65,84.02,88.56,85.79,82.15, 85.40,85.54,84.26,84.02,84.27,87.00,85.99,88.61,91.28,86.15, 87.87,85.11,88.28,88.64,86.84,91.91,88.77,88.05,87.34,89.60, 88.61,88.60,87.59,90.26,89.25,89.26,88.03,89.99,88.59,91.67, 91.09,93.14,93.29,92.37,90.59,92.16,91.41,95.55,92.24,96.05, 92.47,94.91,98.08,94.83,95.64,91.05,96.06,94.39,94.07,96.79, 91.43,96.84,95.85,90.69,96.62,95.67,100.49,96.71,98.31,97.73, 97.50,96.61,98.46,94.08,99.66,92.40,99.03,100.23,97.99,99.74, 103.12,98.20,101.17,100.68,103.63,98.86,103.48,100.80,98.93,101.54, 99.93,103.76,101.29,102.89,100.03,99.95,101.85,105.33,105.36,105.62, 103.60,103.25,101.69,102.85,102.83,102.86,101.46,106.52,102.09,103.24, 102.68,102.43,108.11,105.46,107.28,106.12,106.53,105.53,112.61,104.09, 18.39,19.12,20.02,20.31,21.01,22.15,22.04,22.22,22.98,24.43, 24.39,24.49,24.78,26.33,25.86,27.36,27.42,27.75,29.68,30.38, 30.02,29.36,29.85,29.81,32.18,31.98,31.15,31.84,32.65,32.37, 33.83,33.58,33.81,34.41,34.59,35.26,36.49,37.15,36.30,36.20, 37.00,35.87,38.17,38.38,37.42,38.32,38.28,40.40,39.02,40.17, 38.97,40.73,39.79,40.14,41.20,41.90,43.46,42.52,42.42,44.55, 42.01,43.27,44.08,42.89,44.32,44.75,45.84,45.91,46.22,47.38, 46.55,45.26,45.94,46.27,46.80,47.81,46.24,49.27,46.93,49.14, 48.50,49.16,49.64,51.48,48.20,51.23,52.60,46.96,51.21,50.45, 51.67,51.53,52.06,51.87,53.46,54.83,51.60,51.84,51.58,54.74, 53.11,53.96,55.07,54.40,54.06,53.70,56.05,56.03,54.72,54.52, 54.38,57.28,56.82,57.14,57.09,56.27,58.08,58.93,56.76,53.15, 57.12,60.36,56.93,57.80,58.92,60.06,58.99,60.98,60.44,59.67, 61.20,59.45,59.66,61.59,62.68,63.24,63.46,62.21,60.29,62.08, 61.73,64.48,61.86,63.33,64.95,64.00,62.82,64.41,65.31,63.99, 65.35,66.12,62.83,62.90,66.59,64.29,63.74,65.16,65.53,64.23, 67.80,65.78,67.28,66.79,69.96,69.79,67.25,71.00,68.67,69.07, 70.83,67.84,68.01,68.37,68.43,71.14,66.02,69.61,69.06,68.40, 72.40,71.71,72.72,70.52,72.83,71.51,71.76,73.44,73.98,72.02, 70.70,72.10,72.15,71.87,74.64,74.01,71.90,74.06,74.18,73.93, 73.15,74.69,70.44,74.41,72.96,76.42,72.74,74.62,75.88,74.47, 72.83,76.22,77.64,75.87,73.52,76.57,74.58,76.84,76.72,78.32, 78.19,80.38,77.37,78.10,77.83,77.63,80.36,77.09,78.16,78.35, 80.47,81.72,79.19,79.23,80.16,78.53,79.21,79.25,79.58,82.73, 83.39,81.49,79.24,82.87,79.65,80.06,84.76,83.99,85.72,83.82, 82.15,81.10,82.75,82.77,82.40,84.83,82.45,81.10,83.46,82.36, 84.04,86.64,83.65,84.01,84.69,83.15,83.42,81.79,87.10,88.50, 86.30,84.86,83.92,84.41,84.30,87.05,83.01,86.31,87.54,88.43, 88.14,86.27,88.71,83.63,89.11,85.60,87.62,82.16,86.49,81.20, 19.41,19.76,20.87,21.55,21.33,22.58,23.80,24.80,24.97,26.00, 25.82,26.52,26.33,26.49,27.61,29.32,30.25,30.23,30.45,31.45, 30.04,32.05,32.93,33.09,33.29,33.99,34.24,34.26,36.07,36.07, 35.09,35.43,37.75,37.02,36.47,38.39,39.36,39.77,39.17,39.25, 39.43,40.34,40.05,41.71,41.41,42.41,41.75,41.95,41.91,43.16, 43.01,44.58,43.31,43.98,45.28,45.79,45.89,44.14,47.10,47.93, 45.52,48.17,47.39,47.05,47.93,48.22,47.69,49.28,49.37,48.29, 48.89,48.45,52.67,50.23,51.71,49.98,52.62,51.31,53.84,54.28, 54.72,52.41,52.88,51.15,52.12,53.50,53.60,52.76,52.72,54.33, 56.20,54.81,53.43,54.00,56.57,57.24,55.76,56.02,58.17,57.43, 57.05,57.58,57.90,62.26,61.30,57.91,60.23,59.76,60.24,58.47, 60.61,59.70,61.34,59.98,60.07,61.47,63.17,65.21,62.79,61.35, 62.57,62.21,62.25,64.04,63.74,60.87,64.10,62.80,65.28,65.99, 64.68,65.57,65.09,67.84,64.06,64.85,66.93,65.45,67.85,66.62, 66.60,68.91,69.20,70.40,68.50,66.08,70.32,68.77,68.46,69.36, 68.26,70.42,69.67,70.87,71.03,70.40,70.44,70.24,67.97,70.74, 72.30,69.81,74.24,69.17,71.40,74.76,73.46,75.06,72.01,72.43, 77.34,73.83,75.04,74.44,78.76,75.09,75.95,70.55,74.97,72.98, 72.75,73.89,74.69,76.32,74.71,78.85,77.36,77.21,77.44,77.68, 77.40,77.11,77.30,76.37,79.95,77.66,79.06,78.08,77.96,82.85, 80.29,80.55,81.28,78.61,81.98,80.81,79.59,80.30,83.25,78.07, 83.33,78.10,78.40,83.61,83.88,80.52,83.69,83.49,82.65,85.70, 84.22,82.58,84.24,83.76,84.73,84.71,81.85,79.21,85.80,81.36, 85.60,84.31,84.25,87.57,86.92,87.14,84.87,87.54,83.77,84.21, 89.30,89.47,87.68,88.34,87.05,87.96,85.42,84.50,85.41,88.08, 86.26,84.24,88.94,91.31,87.36,90.51,90.71,87.85,92.27,89.24, 86.37,86.46,93.32,90.87,90.36,90.06,88.59,92.33,91.68,93.84, 91.02,90.30,93.09,91.08,91.69,94.42,91.96,94.47,94.14,92.75, 91.78,95.50,89.89,92.02,95.92,94.16,96.39,96.25,90.37,98.22, 20.11,21.00,23.02,22.08,23.35,25.21,24.60,26.13,25.79,26.80, 27.72,28.48,28.86,29.21,29.90,30.20,30.92,30.35,34.05,32.48, 33.50,33.51,35.09,34.04,34.01,36.44,37.22,36.24,35.75,36.41, 37.41,37.19,38.78,39.71,40.10,39.08,41.14,42.22,41.50,41.16, 42.65,42.93,44.20,45.02,43.55,44.22,44.35,43.82,44.17,43.52, 43.68,47.23,46.41,47.41,48.57,48.52,48.26,49.14,49.58,49.77, 48.74,49.39,48.67,51.48,53.00,50.49,50.99,50.93,52.52,50.60, 51.40,52.00,51.92,53.91,54.42,55.13,54.52,56.63,57.25,56.86, 57.27,54.81,56.04,58.75,57.80,58.07,57.02,59.86,56.41,58.29, 59.11,61.29,60.35,57.50,62.96,60.94,59.02,59.16,62.70,62.61, 62.24,63.05,61.82,61.85,62.48,63.24,61.20,62.31,62.72,62.28, 65.63,66.00,61.19,67.41,64.01,66.78,67.57,65.46,67.89,70.58, 66.89,65.11,64.97,71.92,68.75,67.83,67.78,67.58,67.25,71.13, 69.14,68.82,71.59,68.63,68.66,69.47,70.91,71.64,74.34,68.90, 71.16,71.27,72.90,72.85,72.37,73.93,73.30,73.44,72.69,75.93, 73.69,75.05,73.96,73.37,73.97,76.53,74.91,75.24,76.88,75.33, 77.17,77.60,74.99,73.38,78.58,74.22,76.03,80.28,78.72,75.92, 80.97,77.04,78.56,79.95,82.16,80.48,80.01,81.37,81.20,78.49, 79.27,81.25,79.00,77.74,83.88,83.76,83.31,80.13,82.29,80.41, 79.31,87.06,83.50,85.62,82.34,81.76,82.94,83.76,84.18,83.42, 84.02,82.90,84.49,84.22,85.19,82.80,88.05,86.39,83.76,83.62, 85.13,85.82,87.57,86.89,85.78,88.05,86.09,88.53,89.47,86.02, 88.95,89.29,87.75,94.73,93.32,87.69,91.27,88.57,85.86,93.31, 95.07,89.08,92.44,89.38,93.07,93.02,90.43,92.42,92.90,92.20, 92.37,93.64,92.15,94.31,91.50,91.57,97.45,95.55,92.08,93.20, 94.36,94.65,94.99,98.49,95.70,93.71,93.48,94.97,95.65,93.62, 96.91,95.63,98.27,94.90,96.76,99.29,96.89,102.17,97.54,99.06, 97.65,103.14,97.53,99.95,97.92,98.22,94.77,100.56,95.90,98.78, 101.48,99.17,99.40,103.94,98.45,100.58,100.22,99.87,99.19,100.06, 21.34,21.89,23.34,23.76,24.39,26.15,25.01,27.70,27.42,29.71, 29.51,29.09,29.19,31.40,31.67,32.09,32.18,32.65,33.82,33.78, 34.62,35.65,37.20,37.02,35.95,36.13,37.71,38.90,38.11,40.26, 39.02,39.77,41.85,40.00,41.50,42.01,42.09,43.12,42.89,44.64, 45.97,45.93,45.67,45.89,47.54,46.19,46.33,47.44,46.76,45.79, 48.21,48.75,50.28,48.85,50.02,51.69,50.11,49.62,50.94,51.32, 54.07,50.41,51.09,53.63,51.79,53.73,52.32,54.44,55.99,55.10, 55.02,55.65,55.98,54.93,58.68,57.31,57.29,59.35,56.43,58.75, 60.22,56.05,56.09,60.50,61.64,60.54,60.04,60.05,60.59,60.01, 64.14,61.04,63.56,61.12,62.58,64.16,61.95,63.72,64.87,62.68, 64.57,66.24,67.54,65.12,65.04,68.50,64.66,68.21,65.45,66.24, 67.70,65.70,69.78,67.22,70.78,70.83,70.28,70.45,68.68,71.02, 72.91,69.05,70.16,71.99,71.47,72.83,72.14,73.10,73.22,74.41, 71.73,70.69,74.68,74.63,70.38,74.06,78.40,72.47,76.60,75.31, 75.96,77.15,75.67,78.01,78.13,76.83,74.51,77.69,79.38,78.18, 79.16,76.77,75.89,77.17,79.34,81.82,79.98,79.49,80.87,80.42, 77.54,82.26,79.26,79.78,79.96,79.48,83.48,82.69,81.03,79.96, 80.52,79.57,83.33,82.39,81.09,83.12,82.93,84.05,83.41,83.52, 84.25,84.48,86.60,84.09,87.77,85.32,86.48,86.09,91.44,88.98, 85.34,86.07,89.15,88.25,87.16,89.53,86.89,86.32,89.59,87.85, 89.54,85.85,87.48,89.72,89.90,90.00,90.20,88.95,86.75,87.64, 89.12,91.24,89.30,92.68,93.99,96.98,88.53,93.41,92.59,93.10, 90.72,93.14,94.32,95.21,93.77,93.43,93.50,93.42,94.96,97.83, 92.74,95.06,96.08,97.15,92.56,96.53,99.09,95.69,93.94,98.23, 99.20,98.31,101.88,97.79,98.70,99.01,98.91,100.45,99.22,97.54, 97.23,98.40,98.32,100.78,103.83,98.95,100.71,103.29,101.88,102.90, 97.10,98.98,102.65,100.37,103.97,102.20,100.16,102.48,104.98,100.66, 101.28,104.27,103.29,106.66,103.79,110.96,102.49,102.72,102.27,100.31, 100.83,101.66,107.68,100.74,106.37,106.16,103.47,105.72,107.07,101.73, 22.11,23.23,24.22,24.21,26.29,25.94,26.11,28.08,29.72,28.88, 29.42,31.14,31.03,34.06,32.33,31.54,34.08,33.85,33.63,34.79, 35.54,36.00,36.39,38.44,38.83,38.17,38.96,41.49,41.56,40.08, 41.86,40.97,40.23,42.32,42.43,44.91,44.48,43.25,46.55,46.73, 46.18,46.30,45.83,47.18,46.75,47.91,46.77,48.57,50.89,50.02, 49.22,49.83,52.03,49.74,51.69,51.80,52.57,52.93,55.07,51.65, 54.71,53.59,54.45,56.97,57.38,54.96,54.81,58.21,58.91,58.68, 57.59,56.56,56.17,57.43,59.43,56.38,60.89,59.45,59.26,63.22, 59.09,61.79,60.70,62.85,61.36,61.73,61.51,62.65,65.24,65.10, 62.56,65.59,63.36,65.51,63.19,62.88,67.55,65.22,65.83,65.45, 67.88,67.42,68.92,67.57,70.13,67.39,68.48,68.94,71.64,69.45, 67.27,68.93,71.58,68.16,73.87,72.68,70.45,73.38,72.15,71.90, 72.11,72.58,73.35,73.77,74.63,75.37,75.44,75.93,76.34,76.23, 77.04,75.71,75.31,76.17,78.46,75.38,78.41,78.93,81.68,78.56, 77.24,78.29,78.66,74.55,78.99,76.70,79.14,79.93,78.90,81.17, 81.80,80.32,81.90,78.25,83.33,83.82,82.73,82.66,84.46,83.22, 80.71,83.47,83.78,86.78,87.94,83.51,83.93,84.00,87.27,84.77, 87.46,84.18,86.54,84.84,86.73,87.21,86.03,88.26,84.22,87.24, 85.93,86.27,90.76,89.55,88.75,91.38,84.41,88.39,88.31,92.03, 89.29,90.14,91.87,86.98,94.85,87.79,89.16,89.96,90.77,93.34, 93.97,90.27,95.17,91.72,89.99,96.43,95.25,93.90,95.83,93.90, 94.91,93.97,94.77,94.14,93.46,92.90,95.28,99.43,95.63,101.72, 98.25,98.69,95.36,99.05,93.21,97.18,99.60,100.40,100.08,94.82, 100.33,98.10,100.18,98.16,100.35,99.38,104.11,101.57,101.55,96.82, 100.04,99.94,98.89,100.41,102.09,101.22,101.71,101.87,102.07,104.26, 101.39,103.58,103.46,101.76,105.04,104.69,105.39,106.50,99.02,101.65, 105.56,106.65,107.50,107.81,103.97,106.28,107.58,104.56,108.03,110.26, 107.99,104.79,106.33,106.84,107.40,110.15,106.37,108.51,105.32,109.44, 109.13,108.98,113.00,111.96,108.87,110.20,107.61,108.93,112.31,111.62, 22.59,23.11,24.13,25.30,25.78,27.76,27.96,29.01,30.04,29.97, 30.92,31.30,31.31,34.07,35.33,33.53,33.10,35.02,37.22,35.81, 37.66,38.32,38.53,39.65,38.32,39.89,39.99,41.01,38.11,40.16, 42.37,44.03,44.17,43.32,43.87,45.07,45.36,46.21,45.94,46.18, 46.79,48.69,49.63,49.31,47.80,48.81,51.69,53.06,50.43,51.29, 51.99,52.50,52.67,53.59,54.96,52.52,52.09,55.82,55.00,56.41, 55.69,55.67,57.36,54.93,58.60,56.63,57.80,58.45,57.61,57.81, 61.94,61.11,59.20,59.88,60.64,62.09,60.31,60.81,61.95,61.40, 63.44,66.77,64.33,64.96,63.57,65.37,64.35,65.21,65.37,64.84, 64.94,69.19,66.39,66.21,68.06,65.98,67.47,65.17,68.98,70.28, 68.15,66.03,69.55,67.85,69.78,71.19,68.72,69.03,73.64,71.37, 73.52,71.68,71.89,72.38,74.64,74.78,75.24,73.53,76.75,77.43, 73.59,77.98,73.33,78.58,76.31,82.34,77.94,79.80,77.02,76.98, 79.84,79.41,76.39,76.45,79.08,78.73,80.19,82.67,79.56,79.50, 80.52,80.15,81.95,80.03,84.52,86.02,82.30,83.05,83.94,82.99, 86.33,82.65,85.66,81.45,83.26,82.77,85.61,82.72,86.92,83.40, 86.24,86.44,86.04,83.12,86.80,88.98,86.27,89.20,86.62,86.84, 87.28,88.19,87.09,91.34,88.62,89.75,94.68,91.29,88.54,89.99, 89.12,93.72,90.60,89.61,91.65,91.73,92.78,94.73,94.22,95.53, 94.18,92.63,93.87,97.72,97.78,90.72,91.02,93.76,98.12,94.81, 95.33,96.47,95.67,96.32,97.94,101.86,99.13,98.52,95.73,94.96, 101.32,95.69,100.67,95.67,97.32,96.58,99.72,99.64,98.90,98.51, 103.48,99.07,99.99,101.74,97.56,100.81,102.97,99.32,102.25,102.30, 104.54,105.91,100.89,100.51,105.32,103.32,103.97,102.84,106.12,105.08, 106.51,104.51,106.33,104.07,101.33,104.14,103.17,106.49,104.35,106.31, 105.02,112.58,107.75,106.57,109.25,109.76,108.76,111.14,109.47,112.14, 107.87,105.66,109.41,109.20,107.11,109.66,108.08,109.93,110.88,112.34, 108.66,107.48,113.43,111.41,107.35,111.66,108.87,111.51,109.63,109.01, 109.29,106.83,110.77,115.28,112.16,111.27,114.30,111.08,114.92,110.02, 22.40,23.95,24.06,25.20,26.02,27.58,27.76,29.30,30.61,29.50, 31.35,31.81,31.42,32.65,34.92,35.20,35.28,36.69,36.77,37.12, 36.79,37.19,39.48,38.95,39.64,41.90,42.51,41.84,41.37,43.43, 42.54,43.18,44.44,45.52,43.50,45.55,45.49,46.75,46.63,49.20, 49.23,49.24,50.88,49.07,50.16,48.16,50.78,49.85,50.43,51.58, 51.67,54.03,53.71,53.81,54.86,55.20,57.17,55.38,53.84,58.23, 56.03,57.49,56.86,57.63,59.75,58.61,59.73,60.07,59.92,60.78, 57.64,60.94,63.13,61.45,62.44,61.86,63.31,65.13,61.34,63.58, 61.04,63.97,63.45,66.71,64.94,64.76,66.09,66.18,67.74,69.14, 68.95,67.19,68.03,69.06,70.40,68.59,71.24,68.57,72.93,70.63, 72.56,69.34,73.25,72.23,71.81,74.01,74.14,72.17,73.33,74.79, 76.57,75.63,74.48,74.64,76.06,75.28,76.24,75.78,77.12,75.87, 77.38,77.00,78.12,79.69,80.25,80.10,79.76,79.27,76.82,79.47, 81.91,80.47,79.39,76.50,81.10,80.68,81.08,83.74,84.59,84.83, 82.19,81.09,83.26,84.56,80.43,81.05,84.21,85.68,82.41,84.67, 84.66,84.98,87.65,88.05,84.46,85.71,83.78,83.61,86.86,91.16, 88.75,89.06,86.15,94.46,92.79,92.03,86.48,88.03,90.45,91.73, 92.77,94.41,89.64,93.22,88.40,95.62,92.35,92.88,96.22,91.72, 91.42,93.35,95.82,96.51,93.93,99.23,92.54,95.52,93.55,98.21, 95.68,97.79,99.91,97.83,93.25,97.62,96.23,95.66,97.93,96.80, 95.68,96.92,98.86,101.09,101.56,97.95,97.80,99.06,101.37,96.35, 100.13,98.80,101.14,99.30,102.40,99.78,102.76,103.67,102.23,104.54, 100.30,99.40,102.40,104.78,105.54,103.72,97.81,106.91,102.41,102.92, 104.12,104.31,105.90,106.04,104.62,102.73,105.76,108.04,104.63,107.52, 104.30,109.17,101.86,104.78,108.39,106.29,108.51,107.09,104.19,109.26, 105.07,110.78,105.85,111.12,114.32,104.26,107.54,112.59,111.19,108.55, 114.50,111.22,106.90,111.62,115.45,106.42,114.47,115.52,112.34,110.83, 110.86,115.89,118.44,114.38,111.51,114.46,112.21,115.28,111.14,115.23, 118.94,116.74,116.71,115.07,116.11,112.81,120.36,117.83,116.27,118.75, 24.09,24.81,25.74,26.23,26.92,28.33,29.01,28.97,30.85,31.94, 31.71,32.55,32.56,33.33,34.42,36.23,36.70,35.62,37.79,37.48, 37.95,38.59,40.64,39.66,41.34,40.67,40.00,42.30,42.57,43.38, 44.35,45.76,44.92,44.04,48.10,45.66,46.86,47.89,48.68,49.07, 48.61,47.82,50.22,51.01,50.55,50.83,52.99,53.45,52.26,51.46, 53.06,55.44,52.27,52.44,54.85,55.02,56.56,58.01,55.81,56.08, 56.99,57.58,57.30,58.80,59.75,57.67,58.83,62.85,59.22,63.96, 61.72,62.69,64.29,64.02,63.16,63.24,63.53,65.54,66.23,62.08, 69.76,66.73,66.40,67.62,66.37,66.14,68.29,67.90,68.19,69.93, 69.36,69.39,70.40,71.40,70.84,68.04,69.15,70.74,71.72,73.17, 73.55,74.07,69.68,74.35,71.89,72.36,74.55,75.59,74.49,79.11, 77.35,76.53,76.68,76.41,76.53,76.80,77.64,78.68,78.33,76.98, 80.41,76.87,80.99,81.64,85.78,79.77,81.74,78.97,83.61,80.88, 81.81,83.76,84.20,80.82,81.67,82.90,80.50,82.55,83.85,82.74, 84.95,84.43,83.93,88.25,82.97,91.38,86.78,87.78,86.88,87.27, 87.88,86.61,87.59,90.78,87.51,88.34,88.93,88.08,89.62,91.48, 94.18,87.63,89.03,87.73,93.70,94.42,93.21,90.52,90.38,88.27, 92.64,91.76,92.93,93.08,96.22,93.56,92.10,94.91,95.50,92.39, 97.30,93.77,95.87,94.22,98.32,95.07,98.63,98.06,96.58,96.99, 96.49,98.36,101.20,97.64,103.07,99.58,97.51,98.15,93.82,99.43, 98.05,102.68,100.54,98.91,102.33,100.90,100.00,100.52,100.95,102.64, 100.06,100.62,105.12,101.85,99.89,104.12,102.87,105.30,101.89,104.42, 108.27,104.34,102.27,102.31,105.29,109.33,104.89,106.55,106.01,106.79, 106.58,104.80,105.71,105.64,107.54,105.69,110.65,108.26,107.78,108.37, 103.85,110.39,112.86,110.86,109.75,110.56,107.63,107.27,114.70,112.96, 111.73,109.35,103.27,111.47,114.23,109.09,106.82,110.86,114.61,115.46, 109.09,114.46,112.95,116.31,109.19,114.36,117.70,115.33,114.59,114.92, 114.51,115.47,118.99,113.14,109.90,116.06,114.55,117.67,114.99,121.65, 115.70,116.75,119.32,115.92,113.14,118.09,118.01,123.15,112.64,117.88, 23.55,25.13,26.25,27.20,26.48,28.12,27.87,30.54,29.92,31.69, 32.87,32.46,33.99,34.27,35.71,36.77,38.58,36.29,37.71,37.64, 39.20,38.67,40.08,42.02,40.36,40.96,42.71,43.55,43.43,43.23, 45.75,45.10,45.95,47.89,45.39,45.35,46.67,47.81,48.86,49.53, 50.14,49.82,52.33,52.46,52.17,52.46,51.68,51.97,51.55,53.39, 53.54,55.75,53.05,56.47,57.89,56.56,56.58,56.57,56.56,55.99, 59.50,56.70,60.97,59.09,60.75,61.11,62.76,60.53,58.33,62.63, 60.31,60.91,64.18,65.15,63.96,65.50,65.72,64.22,67.21,66.24, 64.78,65.83,66.86,65.18,67.02,67.88,70.06,67.92,64.86,68.06, 71.06,68.86,70.08,69.16,71.09,73.39,70.37,71.57,73.16,70.65, 75.67,73.04,74.08,75.48,71.51,74.57,74.59,74.80,78.49,74.39, 75.00,75.27,80.17,77.93,77.52,74.98,80.96,77.80,77.83,76.42, 77.19,79.79,78.89,80.31,80.05,82.19,82.09,82.74,84.95,81.11, 84.63,81.19,82.05,86.76,85.58,82.98,85.08,84.08,84.58,82.65, 81.85,83.64,84.58,84.90,88.62,89.77,84.87,88.68,88.11,89.40, 87.82,86.62,86.09,89.64,94.18,89.76,88.50,89.11,89.87,92.46, 89.74,88.67,91.70,91.78,91.70,93.63,95.14,94.12,93.71,90.16, 95.54,93.18,93.09,97.68,98.88,96.69,94.15,93.59,96.23,91.85, 94.63,98.40,94.00,96.50,99.15,95.89,95.72,94.76,95.97,102.81, 97.62,98.57,97.52,101.19,103.65,99.06,101.15,97.28,99.17,96.52, 99.88,100.99,100.18,100.86,101.81,98.53,102.84,103.42,102.81,101.07, 100.50,102.48,103.35,103.74,106.35,105.99,106.94,107.45,105.09,106.50, 107.12,103.85,107.01,104.01,103.74,105.44,111.85,113.12,107.29,104.43, 104.80,105.88,112.44,106.90,111.57,108.87,108.66,104.32,107.93,108.67, 110.03,107.50,109.92,113.46,110.97,108.47,111.72,114.15,113.36,116.13, 115.02,113.69,108.74,116.63,111.93,109.01,114.22,110.19,111.24,114.70, 113.80,116.33,108.68,114.27,116.54,118.08,117.22,115.51,117.12,117.60, 119.04,115.37,119.81,114.73,118.18,115.20,121.20,117.50,116.17,121.41, 120.24,120.82,123.41,116.56,118.88,118.47,115.73,119.33,121.13,119.82, 22.80,24.01,25.76,26.20,26.18,27.89,29.15,31.58,30.55,31.15, 32.48,33.03,33.27,34.87,34.67,35.32,36.53,37.08,37.83,37.97, 38.71,39.00,40.19,40.26,42.33,42.34,42.54,42.56,41.62,44.47, 45.11,46.30,45.14,46.08,46.28,45.78,47.96,46.28,48.44,48.32, 49.61,50.15,50.34,50.82,52.69,52.02,53.24,52.57,53.81,53.63, 54.16,54.42,55.87,55.71,55.64,55.89,57.13,57.58,58.35,58.59, 57.11,59.01,60.28,58.75,60.95,60.13,63.33,60.57,60.82,60.22, 60.31,61.50,63.81,64.31,63.77,64.72,63.88,66.95,66.58,66.97, 66.95,68.55,68.27,67.80,68.24,67.07,66.39,66.11,68.76,68.53, 70.15,69.58,70.53,73.06,73.20,70.36,70.36,69.67,73.53,72.24, 73.00,75.93,74.91,75.19,73.82,75.33,71.74,75.26,75.65,76.30, 75.82,74.18,75.48,77.07,78.32,78.04,78.20,80.63,81.73,77.93, 77.57,80.91,79.81,81.56,79.08,79.70,82.92,80.41,84.23,78.23, 81.55,80.57,84.34,85.92,83.77,83.77,85.45,86.13,86.31,82.66, 84.43,86.47,84.44,83.28,86.45,88.58,84.58,85.33,85.53,88.08, 89.92,84.86,89.13,88.15,89.11,89.15,91.52,91.25,89.75,88.24, 92.54,95.68,91.86,92.11,92.85,95.39,91.04,93.12,91.62,90.42, 95.89,94.77,92.50,91.82,97.06,94.37,95.04,100.29,94.10,98.35, 93.99,94.71,96.98,95.13,99.25,95.93,95.06,95.54,97.11,100.33, 99.17,97.76,102.07,99.99,98.05,99.54,102.38,101.25,99.43,100.26, 101.99,102.36,100.12,100.90,103.82,96.93,101.93,105.28,103.57,102.61, 104.48,103.21,104.46,107.47,101.50,103.86,101.42,107.15,103.11,105.58, 108.31,102.32,109.20,107.35,109.14,105.29,107.41,103.68,106.10,110.72, 102.41,107.25,105.69,106.19,106.46,110.44,105.52,108.56,108.40,108.54, 112.33,109.50,108.29,115.38,113.93,110.58,107.38,111.85,110.25,115.38, 110.75,110.08,114.69,110.54,115.12,108.74,112.77,114.90,111.23,113.32, 116.29,118.53,114.28,114.49,113.79,114.89,112.90,113.95,116.56,119.35, 118.60,119.59,119.77,117.58,111.37,114.02,116.63,122.02,123.01,115.86, 117.00,120.05,115.65,117.81,115.59,115.86,122.75,114.81,117.81,120.62, 24.06,24.41,24.98,26.48,27.58,28.42,30.12,29.47,29.90,31.28, 33.09,33.28,33.01,34.37,33.94,36.65,36.13,36.85,37.20,38.56, 39.98,39.01,40.10,42.77,40.68,41.15,44.01,42.67,43.66,45.06, 44.63,45.94,45.81,46.31,47.49,47.40,48.52,48.17,49.49,50.50, 49.16,49.27,48.87,49.25,50.15,50.18,54.61,52.83,52.16,52.29, 53.47,53.32,52.01,55.88,55.24,57.87,58.08,57.89,55.11,59.21, 58.31,60.70,60.39,58.63,62.62,60.28,61.28,61.63,62.72,63.25, 66.14,63.61,63.27,63.61,64.64,64.39,61.91,66.29,64.41,65.97, 66.26,63.52,68.15,66.41,68.65,68.22,70.18,68.25,71.88,70.90, 72.20,68.02,70.54,70.48,69.96,73.07,71.47,75.57,70.52,69.48, 75.83,73.52,76.61,71.93,75.94,75.81,76.56,73.83,74.08,75.67, 75.58,73.76,77.56,75.53,78.05,78.87,79.80,79.95,76.59,79.41, 77.71,76.70,79.27,77.20,80.39,81.40,80.31,81.74,81.04,81.81, 85.57,82.40,84.95,80.71,81.80,83.61,87.77,83.41,85.21,84.47, 86.07,85.64,84.21,87.02,86.57,84.44,87.39,85.60,83.89,90.00, 89.17,86.46,91.00,87.28,89.61,87.00,92.55,90.24,87.67,86.12, 90.87,90.83,90.60,90.87,91.94,95.07,91.53,92.33,93.53,92.23, 93.88,96.32,94.89,94.43,94.27,91.36,92.01,93.67,97.69,97.93, 96.40,90.72,98.92,97.36,100.97,96.60,95.90,101.13,96.47,96.92, 100.35,102.28,99.95,98.76,99.64,103.14,100.43,96.74,102.57,101.01, 101.80,103.45,102.51,100.75,101.38,103.55,100.84,103.01,103.20,104.19, 105.62,103.49,105.05,107.30,103.61,105.41,107.49,103.72,107.25,105.36, 105.31,104.56,107.67,107.81,103.23,105.69,108.16,106.18,102.77,108.47, 106.09,106.33,105.18,110.28,110.36,108.90,108.42,106.87,110.44,109.37, 109.30,115.29,115.38,110.42,109.93,112.20,111.68,113.45,115.15,113.29, 115.20,112.71,107.07,117.04,112.16,114.09,116.14,110.75,110.76,114.10, 112.18,112.82,118.10,111.56,112.34,112.83,115.30,112.70,112.95,117.19, 115.49,121.48,118.31,112.02,115.22,116.72,120.82,113.37,118.99,117.91, 116.98,117.29,120.27,120.73,118.62,120.22,120.43,120.82,118.19,117.20, 23.10,24.37,25.35,26.38,26.47,27.17,28.60,28.40,30.85,29.86, 32.08,32.10,33.21,34.23,35.85,34.65,36.57,36.81,37.27,36.49, 39.53,38.62,39.17,41.74,39.58,41.45,41.02,42.77,43.86,43.76, 44.48,44.07,44.79,46.16,45.21,48.32,47.47,47.45,46.78,47.78, 50.50,52.41,52.07,54.20,51.26,50.89,52.99,53.60,51.76,55.94, 53.23,53.16,51.93,52.95,54.79,55.55,56.01,58.11,57.46,58.75, 57.80,60.27,59.16,61.48,58.95,60.74,58.63,60.54,60.74,59.36, 61.87,62.36,64.32,63.53,63.09,63.91,63.38,67.94,69.89,68.19, 67.27,66.86,68.73,66.55,66.28,68.71,70.96,70.26,69.11,68.75, 69.78,70.37,70.31,71.83,69.45,70.36,72.76,70.17,74.16,71.14, 76.87,72.84,72.06,74.84,71.97,71.73,76.12,72.96,73.31,76.56, 77.07,71.03,75.29,75.06,77.56,79.30,77.12,78.67,77.27,79.73, 80.95,77.39,76.88,81.49,82.50,82.33,83.32,85.31,80.79,81.04, 80.19,82.46,85.10,87.96,84.81,80.18,83.86,84.13,84.92,84.44, 83.24,85.35,84.26,85.46,86.00,84.44,85.33,89.18,84.87,91.46, 89.82,90.05,89.08,89.76,90.56,84.98,88.76,92.34,90.35,89.15, 89.87,96.73,89.04,90.88,91.75,94.99,92.65,91.80,91.91,93.45, 93.97,95.40,92.02,93.94,96.62,95.42,96.04,96.35,97.37,98.35, 91.96,96.68,96.50,93.31,96.62,96.92,99.51,98.69,97.57,98.77, 96.61,98.65,98.98,97.52,98.01,100.13,97.98,102.02,99.09,99.10, 103.46,102.23,102.26,99.50,101.97,101.72,103.99,104.17,103.83,96.79, 99.50,104.84,96.86,100.21,105.32,104.35,103.64,107.41,104.55,106.38, 103.71,107.94,100.73,110.92,106.77,102.87,105.47,110.40,107.83,103.01, 107.36,106.27,109.55,107.08,107.62,107.65,110.88,111.17,114.83,112.27, 108.11,110.10,110.80,111.73,110.77,109.48,109.65,112.91,112.09,113.78, 114.23,107.34,111.94,113.57,114.70,117.68,113.10,111.98,107.55,116.24, 114.27,111.17,116.60,115.44,111.03,115.08,114.98,113.04,112.87,115.75, 115.71,116.58,113.39,113.90,119.70,115.66,118.89,116.09,114.78,117.98, 115.71,117.79,118.62,119.98,113.55,124.16,121.33,117.83,120.24,117.93, 22.96,24.06,24.39,25.84,26.57,27.38,28.66,29.95,29.78,30.79, 30.04,31.65,32.95,33.47,34.58,35.42,37.40,35.93,37.65,36.77, 37.60,39.62,39.56,41.04,39.34,40.46,42.88,41.37,44.58,43.73, 44.00,46.12,45.16,45.77,46.85,46.19,46.55,50.11,47.91,46.46, 49.07,49.84,50.85,51.11,50.89,52.64,51.21,50.86,53.44,52.51, 54.79,51.86,52.52,55.22,56.37,54.54,57.95,55.46,56.75,58.72, 59.93,59.17,60.17,56.53,61.12,59.78,59.81,63.04,62.29,61.22, 60.40,62.73,63.33,60.24,62.29,62.07,64.22,63.38,64.05,67.45, 65.93,66.45,65.18,68.09,65.85,67.34,69.78,68.63,69.57,73.15, 71.24,67.90,70.87,71.04,69.96,71.10,68.91,70.71,70.40,69.03, 69.75,74.46,73.03,73.77,73.86,74.92,75.84,75.75,72.67,74.22, 75.80,73.63,74.26,77.05,78.96,76.40,79.73,77.23,78.59,75.79, 77.05,74.07,78.33,81.37,78.29,77.12,80.28,80.55,81.10,84.21, 81.38,82.75,84.06,83.05,84.92,84.53,83.10,82.04,86.87,81.93, 85.92,85.12,83.50,80.77,84.79,83.66,90.54,82.68,89.52,88.23, 89.30,91.28,86.37,87.05,84.71,88.95,89.33,91.56,88.45,88.25, 92.31,87.32,88.71,92.65,88.24,92.46,89.13,92.50,87.49,93.38, 91.64,95.87,94.47,92.00,93.85,97.19,94.05,95.72,93.49,91.63, 92.97,94.90,97.84,92.00,96.54,94.09,100.35,93.46,94.54,91.41, 99.44,94.24,100.18,96.39,102.75,100.68,98.48,98.95,100.67,98.61, 101.81,96.58,96.01,96.04,99.46,99.89,104.04,100.95,101.43,101.34, 100.33,104.36,105.99,103.25,102.25,101.79,103.50,103.87,103.50,103.55, 102.94,102.97,104.17,105.80,106.52,103.60,107.19,105.74,107.16,102.34, 102.57,108.72,106.09,105.79,104.72,104.51,107.72,110.38,108.22,107.16, 108.48,111.93,108.46,108.63,110.61,108.92,108.63,109.86,111.29,106.47, 112.67,113.94,111.98,106.97,111.72,116.10,112.63,115.88,113.74,111.30, 115.69,112.20,112.34,113.70,116.92,112.49,115.28,112.09,116.32,115.33, 113.77,119.03,118.95,118.31,115.06,117.28,120.22,115.16,115.31,117.31, 113.02,113.85,116.10,114.29,118.52,116.93,116.94,115.22,122.19,122.59, 22.51,23.71,25.02,26.25,26.65,27.87,27.88,29.07,29.57,30.23, 31.13,32.87,32.28,32.71,33.58,34.54,35.53,36.00,36.41,38.93, 38.32,37.76,39.51,40.28,39.06,40.29,41.63,42.07,43.73,45.52, 43.28,44.47,44.81,46.15,45.56,46.43,45.91,47.98,46.38,49.45, 47.91,47.80,51.57,50.96,52.12,51.05,50.93,52.15,53.37,52.35, 52.21,55.71,54.10,55.68,53.98,56.04,57.28,55.37,57.04,58.45, 59.10,57.41,59.11,57.54,60.47,59.70,59.91,58.07,61.19,60.74, 60.47,62.19,62.01,61.20,62.64,62.54,61.13,64.39,63.39,66.44, 65.37,64.09,65.97,65.31,67.01,65.87,66.90,65.34,69.13,67.11, 67.80,68.36,69.12,73.70,69.85,68.63,69.70,72.73,73.24,70.57, 70.90,74.18,70.83,72.95,71.66,73.18,72.12,73.22,75.91,74.13, 72.39,75.22,77.64,75.74,74.82,75.48,72.87,75.42,76.86,77.86, 78.60,77.01,75.00,81.37,78.17,78.16,77.71,78.81,80.68,79.48, 79.39,80.07,82.49,80.18,78.80,83.28,81.84,83.54,86.46,81.16, 83.26,84.86,85.28,84.25,87.90,85.30,87.62,83.06,85.59,85.18, 87.70,87.27,86.63,85.43,86.81,88.78,91.44,87.47,86.18,87.68, 87.43,85.08,89.65,86.76,91.01,93.10,86.86,89.45,88.06,90.77, 91.58,93.61,90.55,90.67,90.56,93.40,90.93,96.38,94.56,96.79, 92.96,91.53,97.58,94.54,93.16,94.69,94.88,97.41,92.91,98.46, 96.68,93.47,97.03,100.59,95.84,98.52,97.72,98.45,101.82,100.19, 102.13,97.42,100.18,96.87,99.51,102.05,101.97,102.08,99.55,101.43, 98.11,101.01,99.46,97.54,101.48,105.45,99.12,99.74,101.64,106.00, 102.07,106.23,101.94,105.04,103.48,107.61,104.49,104.35,105.51,102.22, 107.75,105.96,107.40,104.95,106.54,104.14,107.59,109.38,105.44,106.95, 105.33,109.05,106.08,108.01,107.65,107.66,108.60,108.87,105.12,107.56, 112.37,111.31,113.70,113.06,108.92,109.63,108.33,110.93,111.00,116.82, 110.14,110.10,113.85,111.70,115.79,113.57,117.09,114.68,107.01,115.89, 111.01,111.30,116.18,114.61,112.33,113.94,115.53,114.12,118.68,117.48, 114.68,118.52,118.65,121.10,118.56,116.66,114.91,116.82,117.32,121.38, 21.41,23.90,24.60,25.01,26.70,27.06,28.31,28.37,28.09,31.17, 30.29,32.79,32.27,31.69,33.05,34.61,34.75,34.85,36.36,37.28, 37.93,37.61,38.04,38.89,39.04,41.77,40.97,41.86,41.48,41.59, 43.26,42.06,44.39,44.79,44.61,44.45,46.64,45.24,46.93,46.91, 47.08,49.76,49.32,49.90,49.82,48.38,50.11,49.72,49.88,49.35, 53.95,54.32,53.84,51.93,53.84,54.73,57.27,55.45,55.40,54.81, 57.31,56.60,57.84,56.70,56.94,58.75,58.18,58.51,58.96,60.52, 62.73,62.43,62.54,61.07,63.37,61.61,62.86,63.42,62.73,63.66, 63.96,65.17,63.15,64.20,64.53,68.06,64.49,67.65,69.56,69.34, 69.10,68.78,67.92,65.57,69.46,71.04,71.78,70.70,71.50,68.29, 69.99,70.33,71.14,71.38,72.25,72.53,69.80,72.58,75.16,75.21, 73.11,72.79,73.73,75.74,76.58,77.99,75.89,77.25,73.92,74.89, 75.07,76.16,76.25,78.07,77.42,76.55,79.96,79.88,79.93,78.65, 81.51,79.39,76.81,81.42,78.28,84.25,80.29,80.54,83.46,81.52, 81.55,81.76,82.50,81.80,84.52,84.88,84.38,84.71,83.12,86.85, 84.40,84.01,86.22,82.91,81.43,87.45,82.64,85.48,88.96,86.63, 87.65,85.30,88.77,84.44,89.49,89.09,85.49,89.46,89.83,93.52, 88.56,88.90,91.21,91.51,90.24,89.04,91.31,94.04,89.48,88.25, 95.75,94.57,92.02,92.12,92.76,94.65,95.92,92.39,91.97,97.62, 93.55,92.70,97.99,96.27,99.48,97.55,95.09,95.74,98.26,96.37, 98.86,95.76,100.06,102.23,99.05,99.94,97.67,98.10,101.29,97.64, 99.62,101.69,98.36,99.62,104.86,103.41,100.70,100.34,100.66,102.37, 97.45,98.96,98.16,100.44,104.68,102.57,104.22,102.51,103.49,104.65, 106.73,106.50,100.93,101.95,107.38,107.52,100.88,108.19,105.07,108.70, 104.35,105.36,106.70,103.96,107.44,109.01,105.51,108.23,109.05,106.78, 107.70,111.58,107.87,111.63,108.09,105.91,111.71,111.53,107.73,104.07, 112.51,111.52,112.05,112.17,113.23,111.95,113.21,109.67,111.61,109.69, 110.99,115.21,108.41,114.80,112.96,112.25,116.19,111.77,116.36,119.05, 111.52,121.32,114.17,115.13,115.07,115.02,115.08,111.26,118.50,113.72, 18.18,19.02,19.55,20.83,21.01,21.99,22.04,21.83,23.10,23.32, 23.07,24.34,26.13,25.18,25.85,27.14,27.14,27.16,26.63,28.68, 28.00,28.82,28.69,30.07,29.64,30.51,31.20,31.12,31.07,32.40, 32.43,32.95,31.91,33.10,35.05,33.77,34.08,34.56,35.79,34.59, 36.67,35.31,36.97,37.72,38.48,36.29,37.36,38.94,38.64,38.43, 37.09,37.39,38.86,40.35,39.89,41.83,39.66,41.97,41.50,41.82, 40.08,42.70,42.24,42.10,43.05,43.51,43.60,45.03,44.73,43.66, 44.72,44.75,46.03,45.73,47.97,46.53,46.40,47.37,46.98,46.91, 48.49,47.01,47.66,48.16,47.42,48.95,49.66,49.27,50.01,50.50, 48.92,50.37,51.30,51.34,50.86,48.62,52.44,50.51,52.30,51.40, 50.94,54.41,52.42,54.06,53.56,53.15,54.22,52.47,53.13,56.22, 52.78,56.65,55.39,55.48,54.72,56.04,55.81,55.40,53.73,55.12, 55.30,58.03,59.62,57.31,58.85,56.43,60.77,56.80,57.69,56.97, 58.14,61.56,59.67,60.39,58.46,58.20,57.74,59.52,60.76,57.19, 61.98,61.20,59.91,60.47,60.34,61.99,63.65,62.35,62.02,59.63, 60.76,64.29,63.92,62.18,62.94,63.87,63.72,64.42,64.76,63.11, 63.10,64.43,65.03,67.62,65.33,64.83,66.15,69.59,65.67,65.89, 68.44,66.30,64.48,66.69,67.28,70.63,67.37,66.76,67.61,65.83, 66.36,68.23,68.63,67.19,69.62,70.56,66.92,71.95,69.62,68.84, 70.30,72.62,72.80,71.26,71.89,70.71,70.65,69.76,73.17,71.08, 70.83,68.91,69.86,70.01,70.38,74.39,71.10,77.01,72.73,74.88, 73.57,72.95,71.38,72.22,75.16,73.96,74.32,74.60,74.81,71.08, 73.79,75.60,74.79,74.36,77.84,77.32,76.04,76.76,75.65,76.29, 79.01,76.82,76.69,76.59,75.51,73.05,80.95,76.90,76.37,80.16, 76.21,78.31,78.86,79.06,78.54,77.65,83.74,81.66,78.45,78.29, 77.08,74.22,82.22,81.43,76.60,82.64,79.62,79.45,81.43,83.91, 84.78,80.82,82.16,80.81,80.49,80.32,81.98,82.08,81.93,79.82, 80.15,84.92,82.27,85.92,84.45,82.25,84.65,84.50,84.11,87.49, 82.48,84.36,83.00,85.26,84.09,82.85,83.97,84.76,83.78,85.19, 18.83,20.14,20.88,22.03,21.67,22.98,23.46,23.75,25.88,24.53, 25.88,25.82,26.34,27.19,27.64,28.60,28.64,28.46,30.54,31.07, 31.23,30.93,31.08,33.18,31.83,32.38,32.07,33.91,33.87,34.36, 35.86,35.24,35.64,34.62,35.66,36.69,37.78,37.96,37.64,39.23, 39.05,39.49,40.47,37.65,40.07,38.92,41.00,41.89,41.11,41.64, 40.97,43.51,43.92,44.15,43.60,44.41,46.08,44.49,44.71,44.88, 46.49,47.39,46.93,47.20,47.58,47.98,46.07,47.96,46.01,49.17, 47.42,47.21,47.19,49.33,49.75,50.38,50.93,50.53,49.77,50.74, 53.92,50.52,52.56,53.15,50.40,50.43,53.23,54.88,54.78,56.16, 53.04,54.94,54.01,54.46,57.49,54.22,56.43,54.25,56.55,55.76, 56.77,55.36,57.50,57.99,55.72,56.77,57.51,56.57,58.66,59.16, 59.30,61.35,55.88,60.46,58.93,59.31,59.81,62.95,60.49,60.04, 61.76,60.99,58.64,61.66,61.02,62.03,65.02,63.42,62.76,63.19, 64.54,63.29,63.29,60.37,62.05,63.01,64.34,65.76,68.05,64.91, 64.87,66.42,65.97,65.92,65.47,69.04,66.65,69.71,67.07,68.69, 69.67,68.43,69.66,66.82,69.82,68.48,67.74,69.64,70.18,69.53, 70.19,69.74,69.76,70.99,69.36,68.35,71.12,70.68,70.18,71.68, 72.47,71.20,72.75,73.61,74.02,74.25,76.68,72.83,71.38,75.24, 76.94,71.29,74.47,75.15,73.04,71.15,72.27,74.22,75.80,74.18, 74.87,77.62,74.54,75.13,76.94,79.21,75.30,76.20,77.79,79.21, 80.31,75.76,75.28,78.12,79.96,76.56,77.86,80.10,77.42,81.36, 79.33,80.60,75.95,80.11,79.72,80.75,80.02,82.30,81.84,83.22, 80.84,79.76,82.36,83.40,82.60,80.60,83.61,81.74,81.39,82.52, 80.52,85.95,85.77,81.32,81.02,85.18,82.92,86.29,83.64,88.29, 86.27,87.75,83.99,85.85,82.47,87.98,83.01,85.40,85.89,86.83, 88.56,87.46,83.74,86.83,86.50,87.08,86.59,88.13,84.96,88.48, 90.30,86.95,86.49,89.68,88.80,83.20,87.92,88.63,91.43,92.52, 89.27,89.23,88.80,90.05,91.89,92.35,88.48,89.71,90.61,91.22, 89.24,90.83,92.47,93.45,90.72,90.78,91.53,92.53,93.44,94.97, 20.91,21.61,22.38,23.28,24.01,24.06,24.11,24.82,25.61,26.14, 28.31,27.85,29.62,29.74,30.19,31.15,29.77,30.69,31.19,32.65, 33.83,34.07,33.39,34.46,34.69,34.92,35.61,37.15,37.01,36.49, 38.60,37.80,37.95,40.79,38.82,39.76,40.38,40.05,39.61,41.18, 40.92,41.70,42.42,42.47,44.54,43.02,43.64,43.98,44.91,45.56, 44.38,47.71,46.20,47.55,47.33,44.96,47.11,46.53,49.48,48.63, 49.76,49.23,50.67,49.44,49.74,49.40,52.26,50.96,51.79,51.73, 52.46,50.09,51.44,52.50,52.95,53.46,52.25,53.98,56.64,54.70, 57.50,58.64,55.56,56.01,58.16,53.79,57.20,56.73,57.02,56.99, 55.94,57.72,57.89,58.71,58.94,59.50,59.74,60.24,60.28,59.96, 62.11,62.37,59.34,63.42,61.06,60.30,61.35,62.83,64.03,62.33, 65.14,64.60,62.93,64.80,63.18,65.96,65.57,63.28,65.40,67.25, 64.40,68.69,65.98,68.80,66.27,67.43,66.03,68.83,67.83,67.76, 67.80,70.77,64.80,68.18,67.07,66.81,68.64,68.64,69.41,71.32, 70.99,71.86,73.00,71.57,70.06,72.70,73.85,69.00,68.92,72.05, 70.99,71.47,74.14,74.81,74.45,71.75,75.22,71.99,72.86,74.95, 74.92,74.48,76.92,76.09,74.09,75.74,78.31,76.52,76.46,79.94, 76.73,77.42,75.96,79.56,75.71,77.78,78.10,77.16,78.38,76.18, 77.99,79.04,79.05,78.75,81.10,80.98,80.82,79.53,82.09,81.46, 81.34,82.46,81.22,80.26,82.30,83.22,81.79,83.19,83.05,85.63, 85.74,81.15,83.92,82.81,81.39,81.83,87.65,88.14,81.55,83.97, 83.66,86.87,85.73,84.75,87.10,85.27,88.41,85.08,86.87,89.68, 86.64,91.54,83.51,87.83,87.23,90.48,91.93,91.62,89.15,86.73, 87.38,91.41,92.64,88.89,92.87,87.02,89.09,89.52,90.82,90.54, 94.56,90.31,90.63,93.67,91.10,91.09,89.86,91.99,90.03,88.01, 90.71,93.78,94.76,93.32,94.88,93.56,95.43,92.64,90.70,92.47, 97.44,91.01,99.51,96.35,94.09,95.42,93.72,92.48,98.74,98.97, 94.70,91.13,94.79,97.47,99.10,96.95,94.72,93.29,96.91,102.62, 98.78,98.08,96.55,100.06,92.01,102.03,100.62,102.03,95.54,97.07, 21.64,22.64,23.39,24.08,25.38,25.37,26.47,25.49,27.36,28.21, 29.59,29.00,29.96,29.86,31.39,32.04,31.51,33.10,32.75,33.91, 33.62,35.42,35.20,36.57,35.51,35.98,38.34,37.88,38.62,39.39, 39.05,39.67,41.48,42.44,42.06,42.62,42.37,42.44,43.46,42.69, 42.08,42.46,44.69,44.17,45.70,45.72,47.46,47.73,48.13,46.52, 48.60,49.00,45.87,48.08,47.28,50.77,48.32,50.73,50.82,51.19, 51.73,51.70,50.50,54.31,51.98,54.26,53.69,52.33,53.67,55.98, 52.86,55.54,57.00,57.89,57.21,58.47,55.90,55.82,57.32,56.59, 56.08,59.44,56.68,59.50,62.17,57.09,61.54,61.08,60.15,61.27, 59.81,62.93,60.05,61.32,61.14,63.26,64.41,64.10,63.03,62.83, 63.25,65.27,67.11,62.92,64.12,64.39,63.26,67.89,66.82,68.50, 66.46,66.85,68.42,65.69,70.08,69.54,67.81,71.56,68.16,69.59, 66.88,70.59,69.04,67.30,72.29,68.22,69.37,70.07,71.42,71.90, 75.22,73.34,73.13,69.19,73.33,72.06,73.12,74.55,73.46,73.62, 73.86,73.25,77.08,73.55,76.88,77.40,75.36,77.37,77.26,75.02, 77.79,78.73,81.53,78.35,76.92,77.46,75.95,80.24,77.84,76.70, 78.90,80.99,83.11,79.75,78.57,83.04,81.23,82.37,82.33,86.22, 82.23,82.18,82.64,80.60,82.42,81.27,84.61,82.16,79.56,82.18, 82.30,85.37,86.41,83.38,81.39,83.83,83.41,86.17,88.08,88.73, 88.36,86.38,84.47,82.84,86.19,87.80,85.63,88.13,86.69,86.38, 88.31,88.09,89.43,87.08,87.26,88.61,88.35,90.04,89.58,91.18, 89.37,91.30,89.63,90.84,91.22,91.93,93.32,94.34,92.60,90.48, 87.75,89.84,87.69,92.99,95.45,91.30,92.45,93.63,96.94,91.23, 98.10,91.76,91.96,93.79,95.09,93.94,91.74,95.19,93.58,94.08, 96.93,93.11,95.68,97.03,94.44,93.92,100.06,97.75,101.98,95.67, 97.92,97.15,97.85,97.47,98.85,100.30,97.89,99.37,101.75,99.21, 99.24,98.70,97.79,99.46,99.57,98.26,101.73,102.18,100.57,103.32, 101.78,99.98,103.20,108.01,100.67,104.06,97.96,104.33,102.76,103.76, 104.70,102.47,102.01,102.24,106.60,105.04,106.03,103.05,106.10,102.75, 22.78,23.57,23.35,24.94,25.49,26.46,26.18,28.70,28.16,28.28, 31.22,30.61,30.11,32.16,32.95,32.52,34.28,35.54,34.09,34.60, 36.29,36.07,37.03,38.06,38.83,39.93,38.88,42.21,39.25,39.98, 41.41,41.77,42.26,42.56,43.06,44.39,43.29,43.39,46.11,43.66, 47.34,45.58,46.60,46.93,49.40,48.43,47.97,50.38,49.23,50.67, 51.80,50.57,49.92,51.91,51.90,51.57,55.33,52.86,50.45,52.63, 54.10,55.71,53.97,53.93,54.85,54.75,54.69,56.58,58.09,57.83, 59.58,58.22,58.92,60.44,58.63,61.25,59.91,59.26,61.14,61.86, 61.35,61.09,60.74,62.98,61.58,63.59,62.75,61.94,65.00,64.04, 65.27,65.27,63.01,63.73,66.19,63.47,66.57,67.14,65.74,65.44, 66.93,68.40,66.56,67.59,68.32,68.81,71.06,70.53,70.62,69.51, 70.68,73.24,71.82,71.64,73.17,71.29,71.97,72.87,74.48,73.09, 70.37,75.95,73.12,73.39,74.82,73.08,74.46,73.81,73.88,75.36, 74.43,76.40,73.51,76.72,78.28,78.67,78.44,77.73,79.93,78.74, 81.31,77.60,77.79,79.59,78.31,77.97,80.71,81.43,83.98,79.43, 79.74,79.29,82.59,83.31,77.65,80.42,84.20,80.92,83.50,81.93, 86.46,85.94,84.79,84.71,84.48,83.87,83.36,85.71,86.39,85.06, 83.93,86.37,85.64,82.06,84.58,85.03,86.39,88.35,88.83,87.29, 86.63,88.58,90.06,86.46,88.13,86.55,87.14,89.35,89.12,90.92, 84.71,93.14,92.91,90.40,93.23,93.40,90.50,92.77,92.47,93.91, 90.07,90.24,91.88,90.88,90.96,92.52,90.84,94.88,92.48,94.63, 92.97,93.85,94.09,98.85,92.73,93.59,97.31,95.09,94.02,94.75, 95.98,93.88,100.81,99.73,96.13,98.87,96.81,97.04,98.05,98.09, 95.33,97.51,98.64,100.80,97.90,98.42,101.67,98.55,99.83,99.73, 101.10,100.34,100.91,101.58,103.44,98.13,103.56,98.11,102.56,102.56, 101.43,101.00,105.08,103.20,102.73,108.38,103.87,105.81,106.37,103.24, 101.90,105.27,106.70,109.26,105.70,106.02,107.16,106.47,107.21,109.04, 106.62,104.44,107.33,108.82,106.25,109.16,108.35,106.84,109.37,108.86, 107.39,107.16,111.28,109.87,103.89,111.80,112.65,106.69,106.63,109.59, 22.96,23.98,25.77,25.81,27.30,27.97,28.19,28.91,30.04,29.44, 30.28,31.84,32.32,32.49,33.68,34.62,33.63,35.25,37.25,36.95, 37.67,37.77,39.67,36.97,38.16,40.42,38.73,40.61,40.38,41.11, 42.67,44.42,44.06,44.68,44.84,45.55,46.19,47.61,47.53,45.50, 48.90,48.64,50.43,51.10,49.40,50.74,50.06,52.58,50.93,50.21, 50.00,54.87,52.21,52.14,53.19,54.36,53.56,54.28,54.22,55.73, 55.63,55.57,56.50,57.24,57.48,59.21,61.12,58.58,59.56,60.14, 58.59,61.92,60.85,62.43,60.77,63.01,62.94,62.39,60.29,66.15, 61.99,63.70,61.99,66.10,67.48,66.44,65.67,64.80,66.31,68.90, 66.48,65.76,66.85,69.33,67.69,68.56,68.63,67.67,69.49,67.84, 70.32,71.37,71.47,69.01,69.60,70.66,73.13,73.51,71.69,74.60, 71.97,75.15,74.45,71.14,75.00,74.48,75.03,76.28,75.35,76.10, 75.50,74.88,76.40,75.53,76.82,75.93,78.91,79.88,79.50,78.66, 78.80,78.32,80.14,80.47,78.38,81.22,80.02,78.80,80.98,82.08, 81.62,82.75,82.96,79.50,81.39,79.81,79.56,84.36,86.24,83.66, 85.73,83.08,84.73,83.08,82.10,83.36,86.19,87.37,86.22,83.25, 86.71,87.98,85.78,87.84,89.13,87.64,89.07,88.28,88.56,86.09, 88.91,85.50,93.09,90.52,91.80,91.99,88.61,91.79,88.34,87.57, 92.22,90.20,90.08,88.59,95.12,99.34,95.01,92.71,91.67,93.91, 97.35,93.64,93.66,97.34,93.18,91.16,94.81,94.48,95.66,93.66, 97.24,95.70,92.57,96.66,98.39,96.27,98.96,94.94,98.16,98.19, 97.91,100.94,97.17,99.28,97.22,101.33,101.69,97.13,99.05,94.84, 101.21,100.00,100.94,98.40,102.51,103.26,99.43,102.24,101.11,101.18, 102.97,102.72,102.77,109.41,104.01,106.55,104.58,103.18,101.82,107.83, 100.61,104.25,108.82,101.68,108.69,103.61,103.61,107.19,106.16,105.44, 104.79,108.99,107.11,109.35,106.18,105.44,103.69,112.03,108.81,112.50, 106.94,110.04,108.82,106.83,109.81,113.53,111.41,107.63,111.59,109.93, 113.61,111.98,109.62,111.98,110.48,114.31,108.85,106.57,113.52,113.38, 114.90,115.36,113.12,110.27,116.11,111.14,114.90,110.53,111.21,115.34, 24.06,24.08,25.87,27.12,27.00,26.34,29.25,29.51,30.20,30.98, 31.48,32.22,32.58,33.86,34.55,35.63,35.66,36.20,37.26,39.42, 38.34,38.98,39.00,41.49,41.97,43.39,41.95,41.76,42.68,44.01, 45.92,45.83,44.80,46.12,46.20,47.77,47.05,48.92,48.94,47.74, 48.19,49.81,51.17,52.22,52.01,51.02,51.89,53.11,51.54,51.55, 51.88,53.30,56.01,54.45,55.97,54.15,55.43,56.11,56.45,57.52, 57.19,57.97,56.33,58.87,60.73,58.73,58.60,62.47,62.80,61.06, 59.58,59.27,62.04,60.26,64.13,62.30,63.72,62.78,65.09,64.95, 64.56,63.68,67.39,67.31,65.72,66.20,68.19,66.64,67.57,69.60, 68.45,68.46,70.80,69.37,68.39,71.22,72.82,70.24,70.68,69.90, 71.09,72.67,72.99,71.95,72.30,73.54,71.72,72.63,74.29,73.67, 78.01,76.16,77.34,74.36,77.59,76.49,76.58,80.70,80.47,77.96, 77.54,82.23,82.95,76.51,78.92,81.72,78.50,80.67,79.75,78.14, 81.49,80.25,79.93,82.59,82.41,79.78,83.06,84.39,83.39,83.41, 87.80,84.25,83.13,82.73,85.70,87.74,84.07,86.25,85.26,88.56, 88.90,88.17,87.49,87.02,88.07,86.38,88.95,90.49,87.02,85.59, 91.30,87.99,88.34,91.02,93.72,89.07,94.09,88.52,89.06,94.00, 88.47,94.24,88.46,91.45,90.56,91.91,93.78,95.03,95.22,92.91, 91.58,92.61,91.76,96.12,95.46,97.36,93.44,95.57,92.99,100.29, 98.38,101.11,98.07,97.05,97.46,98.47,95.04,99.67,102.76,98.34, 99.22,98.29,101.85,100.31,101.87,101.33,103.87,100.90,101.80,100.44, 100.69,105.46,100.43,102.12,101.91,101.38,104.36,103.21,100.69,101.23, 101.65,106.68,102.44,100.63,108.16,104.72,103.49,103.18,101.48,101.65, 109.92,105.11,103.71,102.47,108.10,108.61,109.78,108.80,110.67,106.43, 109.83,108.76,105.04,109.96,105.99,105.24,108.08,112.39,109.84,112.87, 106.91,112.17,109.60,110.82,109.48,110.61,116.01,108.33,116.20,114.18, 114.02,113.31,113.02,109.48,113.34,112.37,109.86,109.98,110.87,117.15, 110.23,111.78,114.00,113.21,117.93,116.47,113.71,117.08,118.60,112.88, 118.18,118.92,119.74,115.30,115.64,117.01,114.78,118.74,119.36,116.05, 23.88,24.47,25.61,27.15,27.55,28.07,29.05,29.27,31.41,32.29, 31.91,33.01,34.58,35.19,35.25,36.38,38.04,37.79,39.05,36.98, 39.02,40.81,41.04,38.95,41.41,42.98,43.34,44.12,43.53,45.86, 46.00,45.91,46.26,47.34,45.85,48.00,48.78,50.03,46.95,49.09, 50.32,50.56,51.26,52.01,50.83,52.90,54.03,54.44,53.24,53.66, 55.29,54.15,56.78,56.68,55.72,57.55,55.57,57.45,58.05,58.84, 60.95,59.34,58.43,60.44,62.42,59.88,61.40,62.08,60.02,62.87, 62.39,63.23,62.86,64.68,65.35,65.95,64.92,63.84,66.36,66.66, 66.47,66.39,68.11,69.87,65.66,69.67,66.94,69.02,70.04,68.32, 69.19,72.43,70.42,73.70,71.84,72.73,70.13,70.17,71.87,72.66, 74.36,73.86,76.31,77.59,73.23,77.57,78.04,75.98,77.64,78.96, 75.57,76.07,81.77,78.16,76.15,77.07,80.56,79.24,78.37,80.44, 80.12,80.67,83.06,81.06,83.19,83.58,79.72,82.96,80.07,78.78, 83.24,82.26,83.25,85.26,86.36,83.95,87.59,86.41,87.88,82.90, 87.01,85.27,86.75,87.33,86.04,88.07,87.73,90.51,89.22,90.12, 90.10,91.81,84.97,90.89,90.01,87.87,85.31,86.70,92.66,87.78, 90.18,88.52,90.51,91.90,90.04,93.81,93.01,96.43,94.32,92.28, 94.11,95.28,97.56,94.46,94.61,95.47,94.42,97.34,94.40,99.23, 98.22,96.63,96.05,96.11,100.43,92.86,98.35,100.89,98.27,100.72, 101.47,99.31,97.68,97.08,98.07,98.91,102.83,100.39,102.01,104.58, 100.28,103.20,106.28,102.07,100.10,103.66,100.60,104.19,105.99,103.60, 103.39,103.42,102.56,106.45,106.42,107.90,104.19,103.35,109.02,107.41, 106.35,106.23,106.71,107.62,108.86,107.72,111.08,107.01,109.32,102.18, 110.13,112.67,110.31,114.07,115.54,107.34,105.88,104.44,111.43,111.81, 110.57,110.71,109.02,111.96,109.65,115.67,111.29,115.03,116.90,113.49, 112.61,113.24,114.03,114.73,111.86,112.76,115.14,120.80,113.35,110.34, 116.97,116.02,114.28,118.70,114.44,113.78,113.55,113.80,118.27,121.09, 115.58,118.01,122.40,117.55,123.14,118.64,116.21,120.81,119.01,118.22, 119.00,116.46,120.79,125.37,117.56,121.46,120.33,120.19,125.88,118.23, 24.53,25.70,26.37,26.79,28.40,30.50,30.35,31.36,32.37,31.96, 33.67,32.77,34.45,35.29,37.21,36.06,36.75,38.37,37.05,38.00, 41.03,42.11,40.20,42.53,41.86,43.57,43.70,44.21,43.25,44.53, 45.43,45.92,46.24,48.32,48.52,49.69,49.65,50.86,50.95,52.29, 53.69,51.89,53.39,52.23,53.93,51.92,53.86,53.58,54.08,55.79, 56.14,56.37,58.00,60.36,57.76,59.81,58.17,56.61,60.34,63.79, 62.24,60.14,61.10,63.82,61.98,61.97,62.67,60.73,64.73,61.93, 64.95,66.78,62.78,64.65,66.49,68.30,68.16,67.65,69.38,66.46, 69.32,66.33,68.33,70.29,70.99,69.36,69.81,71.30,72.03,71.19, 71.55,70.69,74.06,73.16,72.73,71.11,72.07,75.03,74.58,75.13, 73.65,75.80,75.68,72.46,71.15,77.30,76.73,77.56,80.17,78.72, 77.63,79.55,81.40,79.02,78.85,81.25,82.12,79.78,82.53,85.13, 82.58,77.15,83.61,82.29,80.47,80.34,83.05,85.84,88.40,85.00, 84.53,83.55,83.98,85.71,84.83,83.92,82.92,88.56,85.75,83.94, 86.49,88.98,88.33,88.13,88.57,91.12,89.09,91.60,87.48,88.40, 90.46,90.39,90.29,87.50,89.12,89.21,88.24,88.05,94.81,93.78, 92.65,98.06,90.88,92.64,96.15,94.00,96.32,92.10,97.73,95.78, 94.61,99.46,101.26,97.70,92.86,95.01,98.93,99.57,95.11,98.45, 99.68,98.26,97.98,99.63,96.97,97.75,100.49,98.36,101.25,99.24, 100.48,98.72,102.36,102.52,104.43,104.64,98.58,101.27,101.18,105.90, 107.63,104.26,104.79,101.90,105.82,103.31,104.39,102.75,104.64,103.60, 103.99,104.24,104.17,107.03,105.25,105.47,107.70,107.74,109.36,107.70, 107.69,102.49,110.13,105.98,111.08,113.64,113.71,108.11,110.29,109.05, 113.64,110.67,114.08,108.22,110.60,107.68,113.14,112.21,113.23,108.87, 116.47,115.57,108.12,110.07,108.09,113.70,111.65,116.26,114.23,110.62, 116.63,113.52,115.79,116.96,114.56,116.49,119.82,116.43,116.82,117.44, 116.52,119.22,117.21,120.95,118.37,122.37,116.49,118.51,124.38,118.81, 118.52,124.13,120.36,123.21,119.50,117.61,124.13,126.45,123.27,120.92, 127.73,123.84,121.23,121.18,123.52,124.30,124.45,124.49,125.01,124.78, 24.51,25.56,27.62,27.56,28.47,28.97,29.91,31.99,33.22,32.35, 33.76,35.24,34.96,35.86,37.02,37.87,38.25,39.28,39.48,40.53, 40.74,40.22,41.72,41.90,41.81,43.06,42.89,46.52,45.69,45.56, 44.67,47.75,47.47,49.74,47.19,49.95,49.12,50.54,51.42,51.93, 51.89,52.93,53.16,51.65,52.08,53.80,55.34,54.61,55.79,55.46, 55.88,58.30,57.01,59.33,58.85,57.34,56.07,59.94,61.27,61.63, 63.32,62.19,60.81,62.48,59.39,61.19,63.25,64.08,63.88,63.61, 62.67,66.29,64.21,66.15,65.39,67.07,66.13,65.66,68.31,70.44, 67.22,69.20,67.15,69.61,68.59,68.65,72.57,68.98,69.76,75.07, 73.02,70.02,70.38,71.92,73.67,72.81,75.75,75.52,72.99,74.27, 74.56,75.58,74.03,77.23,77.36,77.65,78.08,76.93,78.32,75.76, 79.17,78.78,79.34,80.40,83.75,80.83,81.71,81.63,80.63,82.48, 84.83,79.44,83.96,81.49,84.68,84.25,82.58,82.06,83.84,84.50, 85.35,79.77,84.72,86.06,89.02,84.77,86.72,91.27,87.52,88.76, 87.06,84.65,89.91,87.15,91.35,88.55,86.79,93.68,92.36,89.30, 95.79,92.04,92.19,92.41,92.73,90.53,93.78,96.24,96.00,94.41, 92.32,94.44,96.86,93.45,94.69,95.14,92.19,97.53,92.89,96.69, 96.50,101.51,95.58,96.34,98.25,99.15,95.93,96.07,97.51,99.72, 102.75,100.83,98.73,100.74,102.58,100.40,96.23,101.58,104.05,99.17, 100.63,100.12,102.48,104.48,102.13,99.36,106.05,103.85,101.46,104.17, 105.26,101.31,104.00,108.06,109.03,105.44,105.98,104.33,104.96,108.82, 108.91,105.77,109.51,110.01,107.82,108.33,112.19,107.63,112.81,108.56, 112.47,103.81,108.85,110.20,107.27,112.84,113.91,112.79,113.66,115.97, 113.87,110.39,110.95,108.73,111.35,111.35,114.74,113.03,111.63,115.47, 114.19,112.63,114.75,114.68,118.09,113.45,115.63,112.02,115.56,121.39, 115.52,119.13,120.23,117.77,110.68,115.64,119.09,114.99,119.26,119.11, 117.17,117.84,115.35,119.05,121.41,120.16,122.38,121.16,124.53,117.75, 123.07,123.76,123.99,120.39,115.38,130.68,120.46,119.44,120.52,121.91, 119.21,118.30,119.67,121.24,122.35,121.68,126.83,124.42,124.46,128.58, 24.21,26.43,26.31,26.56,29.13,29.70,30.54,32.52,31.66,32.14, 33.56,34.85,34.87,37.35,37.25,37.65,39.17,37.94,40.86,40.22, 40.25,41.21,43.35,43.39,42.07,43.03,44.24,45.63,45.49,44.98, 47.61,47.51,48.82,49.42,49.55,47.39,49.40,49.86,49.58,50.92, 54.05,53.30,51.94,50.53,53.87,54.29,54.21,54.63,56.03,58.74, 55.70,57.21,56.75,57.15,59.88,59.12,59.60,61.52,59.22,60.08, 61.72,61.61,59.63,61.32,64.24,60.84,67.62,62.57,63.99,67.45, 65.83,66.23,66.63,67.06,65.77,68.15,66.85,67.91,68.75,69.91, 67.77,73.52,72.97,72.66,71.55,72.84,75.38,70.16,72.87,72.73, 71.02,72.32,73.63,77.12,73.75,71.58,74.20,73.63,72.19,75.97, 78.92,78.71,77.74,77.89,78.75,78.60,79.87,77.94,80.41,80.28, 81.36,81.20,83.79,80.90,81.01,84.72,81.16,83.02,81.37,84.05, 83.57,83.26,85.91,85.15,87.36,83.70,85.01,88.39,88.07,83.79, 84.66,89.52,86.19,86.86,89.16,84.24,85.45,89.75,89.15,85.93, 89.69,90.31,91.09,93.25,90.13,90.54,89.65,90.71,89.15,93.17, 94.32,92.60,93.46,94.02,92.12,93.41,96.20,93.02,92.93,92.45, 96.26,92.50,96.58,96.36,94.35,98.14,96.98,96.71,98.96,100.98, 96.90,95.29,94.93,98.05,98.95,98.15,97.72,103.13,103.14,99.44, 99.90,102.70,98.40,99.59,98.07,100.70,99.72,99.50,100.36,101.26, 103.14,102.38,101.03,106.24,103.19,109.16,104.92,107.16,106.93,101.49, 107.93,108.22,107.38,102.04,103.61,107.20,107.34,102.74,108.37,106.92, 107.06,107.13,108.80,113.01,108.18,113.76,109.75,107.24,112.18,112.16, 107.01,108.51,111.29,113.07,104.81,112.18,113.25,111.73,110.76,110.35, 112.40,114.90,110.66,112.62,117.15,112.05,110.84,114.95,114.57,113.83, 115.28,115.83,115.57,117.11,112.17,119.61,111.14,114.85,120.66,118.48, 116.20,117.61,119.61,118.77,117.11,117.59,116.17,118.83,118.11,117.26, 115.91,120.26,122.96,116.54,125.03,121.40,120.55,124.77,123.29,118.12, 126.53,122.49,121.01,116.63,118.88,120.55,119.68,125.95,125.66,119.47, 123.13,124.41,124.69,129.31,123.54,128.37,122.14,126.81,124.13,118.83, 24.69,25.45,26.44,27.81,29.48,29.85,31.13,31.71,31.33,32.17, 34.34,34.86,35.23,35.98,35.50,37.23,37.19,38.61,40.40,40.93, 40.91,40.86,41.29,43.09,44.11,44.70,46.34,45.23,46.16,45.57, 46.10,49.34,48.12,49.60,48.06,49.11,49.82,50.39,50.12,51.35, 53.99,52.15,52.81,51.47,53.30,56.78,54.29,56.09,55.72,57.17, 55.88,57.51,57.87,60.05,59.00,61.75,60.41,59.79,62.51,60.28, 62.55,66.38,62.90,63.33,63.39,65.29,63.10,61.81,62.78,64.47, 65.94,65.57,67.13,65.48,66.40,68.75,66.86,68.01,69.00,69.44, 70.65,70.72,65.37,73.70,68.97,72.42,76.17,71.04,73.47,70.34, 75.47,77.64,76.12,74.52,75.74,76.50,78.77,75.99,73.52,78.73, 77.78,76.62,79.11,73.49,76.94,75.51,79.04,81.52,80.44,78.46, 81.09,81.35,78.08,81.52,81.31,86.33,81.53,80.08,80.22,87.46, 81.33,81.65,85.70,83.01,83.57,85.15,81.39,90.40,86.70,85.86, 88.86,86.90,87.45,88.85,86.67,88.65,89.89,90.71,85.06,88.84, 88.49,89.21,91.55,91.31,90.65,94.11,91.37,91.33,88.07,94.08, 92.67,91.86,93.03,95.31,96.87,90.36,97.36,94.69,93.87,94.90, 97.87,95.49,94.65,97.97,94.57,101.53,97.73,95.37,99.99,96.14, 98.65,100.67,100.07,98.49,97.91,98.80,101.57,98.77,97.86,99.95, 102.00,105.44,102.35,102.51,107.70,103.16,101.34,109.40,101.70,102.05, 100.47,104.24,102.27,102.02,104.10,104.14,105.79,101.44,105.54,103.04, 104.36,109.09,106.74,109.04,104.02,107.11,106.24,110.82,111.46,108.98, 109.95,107.36,111.91,112.45,106.57,109.00,112.80,109.70,105.89,107.08, 109.45,108.12,109.48,111.65,113.32,111.82,114.56,110.34,112.33,113.07, 113.73,108.56,115.28,113.94,114.80,116.39,119.96,112.24,109.82,120.47, 114.07,115.68,114.79,112.53,116.80,115.10,115.51,113.90,119.96,120.12, 119.49,118.17,123.51,122.23,114.43,118.49,115.45,118.71,119.66,121.44, 118.51,122.55,121.45,123.09,120.40,125.34,122.25,124.81,122.35,121.83, 124.45,115.56,119.77,116.53,123.89,120.18,121.54,118.62,119.03,124.41, 123.32,127.22,126.25,130.43,123.40,124.12,128.16,130.41,124.06,127.52, 24.47,25.36,25.52,28.11,28.61,29.64,30.68,31.95,30.73,31.96, 34.62,33.78,35.73,35.65,37.48,37.51,38.61,41.05,40.00,39.55, 40.47,41.29,41.17,41.96,43.70,44.43,43.59,45.09,44.75,43.77, 47.87,47.89,46.81,49.80,47.73,49.38,50.51,51.78,52.69,50.15, 51.25,53.33,51.61,55.27,54.38,55.24,57.28,56.02,56.86,56.98, 58.07,57.02,57.23,58.11,60.66,61.06,59.60,61.06,60.35,61.11, 62.10,61.73,62.39,63.08,63.46,63.74,61.38,63.35,66.61,64.88, 66.09,68.02,68.43,66.63,66.76,69.73,66.74,68.69,70.05,66.41, 71.21,69.61,71.43,69.66,72.11,70.82,73.10,71.19,72.25,73.59, 72.45,73.92,72.78,73.36,72.92,73.32,72.08,75.46,77.16,76.97, 78.56,76.41,78.10,75.70,78.40,81.08,79.56,78.97,81.26,82.34, 80.42,77.75,80.83,80.76,82.74,84.09,83.48,82.03,84.45,81.38, 83.36,85.55,82.51,81.21,82.57,87.24,86.69,86.73,87.40,83.92, 86.92,81.24,85.01,87.54,87.47,85.42,89.36,88.27,85.81,86.95, 89.10,92.35,94.03,93.03,90.69,91.77,91.65,91.74,92.87,91.50, 94.00,94.59,91.82,92.88,93.23,93.49,95.54,94.05,90.49,94.16, 95.23,94.03,97.16,94.27,97.28,95.03,95.14,99.27,97.45,100.42, 95.26,96.20,96.26,95.31,99.14,96.76,101.63,100.29,98.59,102.28, 98.74,102.42,100.40,102.71,99.65,102.28,100.84,101.36,99.62,103.92, 102.89,104.31,104.57,100.00,101.36,105.39,103.70,106.38,106.71,103.75, 105.42,104.08,107.08,108.35,108.00,104.33,110.69,109.43,110.82,108.87, 106.06,108.19,110.32,107.15,107.75,108.95,107.42,109.46,108.78,110.48, 110.46,107.25,112.22,108.39,115.17,113.22,111.55,114.03,112.46,110.54, 112.57,111.93,110.94,114.29,112.99,114.40,117.63,115.58,116.80,118.31, 113.72,111.84,115.09,118.94,119.18,114.71,117.78,115.13,116.51,116.94, 120.56,118.24,118.06,116.67,117.90,112.46,124.31,122.25,127.57,122.68, 120.45,122.37,120.75,119.71,125.02,120.33,123.07,123.16,120.10,118.37, 123.90,122.05,116.02,123.98,120.15,125.53,124.46,126.61,125.25,124.13, 123.33,124.57,125.93,129.51,123.93,119.93,125.08,123.46,130.41,132.77, 24.04,25.85,26.59,27.67,28.20,29.02,30.86,31.82,31.56,34.06, 33.76,34.44,35.84,36.31,37.94,35.76,37.20,40.44,39.43,41.03, 41.91,41.42,42.10,41.94,42.46,45.23,46.09,44.67,45.01,45.88, 45.61,45.36,46.28,47.95,50.06,48.86,49.73,49.79,50.11,50.73, 53.01,51.68,51.17,52.92,55.19,53.86,56.01,56.34,55.79,53.84, 58.00,58.74,58.92,55.81,59.29,57.95,59.19,60.23,61.56,60.07, 62.39,62.07,63.16,61.16,63.73,61.80,62.74,65.84,67.73,66.93, 67.18,66.31,66.86,69.90,66.77,67.06,66.66,67.15,67.81,70.51, 70.85,69.34,70.86,71.42,70.39,72.03,71.84,70.90,72.87,72.87, 73.40,71.71,74.60,73.59,71.46,76.68,75.72,78.10,75.83,78.02, 75.62,75.16,77.75,74.83,74.78,76.40,76.87,78.03,78.10,78.73, 81.26,80.91,81.72,79.03,80.78,83.50,83.00,84.06,84.60,79.51, 82.86,84.46,83.64,84.11,87.64,87.31,85.85,85.93,87.42,86.65, 84.91,89.84,83.88,89.82,86.26,86.50,87.47,88.44,88.30,90.36, 89.67,88.32,86.71,91.48,90.69,91.57,91.21,92.69,95.32,89.21, 89.24,94.03,91.78,89.62,91.42,92.22,95.55,91.51,95.12,97.29, 94.85,96.69,97.76,98.91,91.37,97.46,94.16,97.37,95.75,96.93, 98.81,98.04,99.95,99.75,102.85,95.65,98.23,97.68,99.10,102.02, 96.11,99.50,104.52,99.56,100.61,99.00,99.94,100.01,99.59,101.22, 105.06,105.17,104.26,104.30,105.02,103.57,107.03,102.54,106.86,112.63, 104.49,102.93,107.29,110.06,103.73,105.16,112.64,105.74,107.21,106.47, 108.51,109.65,107.73,111.47,106.92,107.57,105.87,107.95,111.41,111.92, 111.16,110.21,108.65,114.39,106.53,112.64,110.29,113.25,113.06,112.95, 112.97,114.00,112.30,111.05,112.01,114.40,111.74,111.77,113.51,115.62, 113.92,114.03,113.59,116.91,116.05,116.51,115.58,118.95,119.62,117.06, 116.53,116.19,121.31,121.33,123.14,113.13,116.09,116.87,123.01,113.23, 119.99,117.95,116.65,117.74,123.57,121.42,123.92,121.28,120.77,117.62, 122.93,121.07,126.82,118.75,120.47,123.38,117.95,122.66,118.71,122.99, 123.59,122.16,129.54,125.51,126.84,126.15,125.87,122.15,122.52,126.39, 24.57,24.66,26.35,27.46,28.91,29.40,28.54,30.00,32.49,32.24, 33.69,33.83,35.20,35.39,36.79,35.83,38.46,37.47,38.20,39.07, 39.97,40.67,42.11,42.11,44.06,44.14,44.13,43.32,45.61,45.81, 45.26,47.68,48.65,48.54,48.24,49.45,48.98,50.80,50.51,50.70, 50.34,51.85,53.10,52.37,53.01,55.23,56.20,55.52,54.57,55.73, 57.85,58.39,56.69,57.94,58.08,58.37,58.88,60.98,57.83,59.49, 59.26,60.51,62.29,62.33,61.81,62.33,62.47,65.07,66.84,61.18, 64.57,63.17,66.88,66.53,65.26,65.71,67.40,65.88,66.77,70.40, 69.86,68.29,72.32,70.38,72.21,71.88,70.44,71.48,73.56,71.91, 71.07,71.93,71.51,73.88,73.00,73.64,74.03,75.17,79.17,75.14, 76.43,75.76,76.76,75.91,77.18,78.71,74.48,79.27,80.34,79.76, 77.16,78.35,79.13,82.15,80.51,82.15,83.55,83.78,83.98,80.31, 82.02,81.05,83.38,82.38,83.51,85.42,84.44,87.08,85.53,89.11, 86.75,85.27,85.82,87.28,87.13,86.56,84.80,86.12,89.00,89.57, 90.79,88.30,91.96,87.69,91.71,90.25,91.12,92.53,91.19,87.11, 90.14,93.60,93.03,92.14,94.48,93.02,90.24,93.87,93.30,89.59, 94.30,95.87,96.02,93.06,92.81,97.66,95.48,98.09,96.80,93.50, 92.15,99.51,95.63,97.98,95.11,99.15,98.34,99.51,99.03,97.69, 102.44,102.29,97.32,98.60,98.90,98.80,101.15,99.22,97.24,98.24, 99.24,104.51,99.63,102.08,100.29,104.76,104.60,104.99,101.21,102.60, 103.08,102.11,105.98,105.27,108.64,105.11,110.70,105.54,109.42,108.72, 110.21,106.16,108.07,110.21,108.00,104.50,104.60,107.61,109.83,110.78, 111.14,107.33,113.30,113.64,112.24,113.04,110.80,108.41,108.02,108.10, 107.33,112.62,112.28,108.77,113.01,114.28,111.89,111.52,114.67,113.43, 119.15,117.29,117.19,120.36,121.93,113.47,118.85,121.69,113.50,117.34, 118.75,117.02,116.62,114.97,118.00,115.14,115.45,117.57,117.69,115.58, 120.43,121.30,119.88,120.49,115.61,119.48,121.74,121.98,123.55,125.50, 121.02,123.73,123.48,120.83,122.71,120.21,124.25,131.40,122.80,123.72, 127.47,119.91,124.68,126.23,124.22,121.03,122.53,126.63,125.64,126.15, 17.45,18.84,19.18,19.81,20.36,20.70,21.75,23.14,21.99,23.05, 23.47,23.76,24.24,25.18,24.82,25.93,25.60,26.50,28.11,27.52, 28.12,28.53,27.72,28.73,29.78,30.61,30.01,30.47,29.96,31.83, 30.47,31.88,30.84,33.09,31.78,33.31,32.55,35.12,33.50,32.38, 33.84,36.30,34.30,34.57,33.86,37.38,35.94,36.09,35.91,38.14, 36.44,37.39,38.05,38.03,38.98,39.45,39.38,41.37,40.60,39.66, 40.35,38.43,41.30,41.78,41.56,41.28,41.99,42.43,42.93,42.52, 42.53,43.73,42.35,43.12,43.10,43.28,44.11,45.30,42.40,45.58, 45.44,47.34,46.39,45.79,46.05,47.31,46.29,45.78,50.67,46.68, 47.79,48.55,48.44,46.28,48.94,47.66,48.40,51.00,48.49,49.46, 50.05,49.71,49.54,49.65,51.35,50.33,50.24,49.95,51.84,51.58, 54.08,50.57,53.57,52.21,53.12,52.05,53.03,53.53,53.06,53.56, 53.10,55.17,53.95,52.77,55.71,53.93,56.73,55.66,56.94,56.52, 53.99,55.67,55.55,57.92,54.69,57.70,58.59,55.99,58.42,57.01, 57.35,58.35,58.64,58.14,57.67,57.84,57.44,59.40,59.85,59.37, 61.51,57.33,58.93,58.94,57.77,63.35,60.59,62.85,63.51,58.24, 63.24,61.73,63.19,59.31,62.37,61.30,61.21,62.93,65.33,63.39, 61.26,61.92,65.77,65.07,63.74,65.53,63.44,65.61,65.02,64.50, 65.04,63.74,63.10,63.83,66.61,65.75,66.45,63.34,65.02,66.09, 65.36,67.05,66.44,67.03,66.93,67.27,68.48,65.12,67.98,66.69, 68.13,67.86,67.18,69.18,69.67,69.57,66.27,68.48,71.00,68.84, 69.52,69.86,71.41,70.23,71.89,69.70,71.00,72.75,71.31,70.01, 69.72,70.21,71.34,73.09,73.00,76.16,71.59,71.21,72.78,74.62, 72.86,72.99,72.69,71.49,72.70,73.19,73.66,73.99,77.02,74.14, 73.15,78.52,74.74,72.71,76.53,75.59,76.51,77.77,73.95,76.09, 74.32,74.51,78.27,78.86,76.60,75.84,78.01,76.02,75.82,78.87, 74.23,77.83,76.08,78.95,77.77,81.22,77.58,76.22,77.40,78.89, 77.23,78.40,77.19,79.40,77.92,79.40,77.16,78.84,79.55,79.15, 78.84,83.50,82.62,77.99,80.14,82.56,78.65,79.36,80.43,81.98, 19.17,18.95,19.55,20.37,21.71,22.35,23.56,23.04,24.35,25.42, 25.56,25.72,26.50,26.91,28.67,28.51,28.49,29.24,28.19,28.83, 28.26,30.90,31.21,30.06,32.79,31.61,32.13,32.64,34.13,32.17, 34.00,34.69,34.44,35.74,35.66,35.61,35.51,35.66,37.64,36.80, 37.55,36.03,39.24,38.29,38.07,38.55,38.90,40.10,40.03,38.90, 42.90,42.98,40.41,40.67,42.01,43.65,42.33,44.44,43.64,44.81, 43.79,46.58,44.80,45.80,46.13,44.45,46.04,46.99,44.65,46.98, 47.20,46.27,46.56,48.64,47.83,47.52,50.36,47.89,48.94,49.12, 47.95,49.90,50.38,49.34,50.31,51.74,52.19,52.20,52.91,50.41, 52.37,51.78,53.57,52.09,52.02,52.99,55.04,54.30,54.80,53.05, 54.76,55.31,55.88,54.95,54.58,55.07,57.76,57.08,56.77,55.05, 57.55,57.53,59.55,56.47,53.83,57.65,58.56,59.53,57.64,58.26, 58.54,57.85,61.47,59.68,59.42,59.40,59.07,62.62,59.88,61.19, 62.64,61.62,61.06,62.46,61.95,61.41,62.61,63.14,63.59,62.12, 63.26,62.58,62.27,66.70,64.00,63.69,64.48,61.01,62.15,66.54, 68.41,66.80,64.40,64.57,62.84,67.18,67.76,66.56,67.16,69.10, 66.40,67.11,66.14,67.58,69.35,65.69,67.58,67.64,68.18,70.72, 70.19,70.65,71.35,67.96,71.61,69.38,66.72,72.51,70.68,72.28, 71.90,70.65,70.17,73.71,70.21,70.68,75.48,69.02,72.47,72.18, 71.87,73.04,73.07,72.03,72.66,74.41,71.39,74.34,76.71,74.76, 78.33,73.51,74.89,75.21,76.10,74.73,75.63,75.20,76.69,77.27, 74.67,75.70,74.99,75.56,77.14,78.32,74.89,77.74,79.60,76.78, 76.56,76.86,80.77,78.01,78.47,79.66,80.56,79.29,77.67,78.81, 79.68,80.59,83.46,80.97,80.42,80.05,79.30,79.27,81.26,83.59, 81.77,79.63,84.55,83.42,78.03,85.01,84.41,83.51,81.03,83.43, 83.66,81.64,81.58,84.85,81.09,82.05,81.82,85.12,86.39,84.38, 86.93,82.70,85.86,81.71,84.33,85.01,86.67,84.10,85.10,87.64, 85.66,84.23,84.02,86.81,84.80,85.53,89.62,86.31,85.59,88.82, 83.90,88.65,84.82,90.15,87.82,87.65,86.79,90.22,91.52,90.17, 20.57,21.49,22.53,22.69,23.18,24.20,23.97,25.18,25.63,26.33, 27.53,27.31,27.16,27.76,30.57,30.53,30.04,30.96,31.16,32.62, 32.94,31.86,33.43,32.82,33.33,35.39,34.98,35.16,34.88,36.90, 36.41,37.27,36.60,37.14,38.23,39.02,37.65,40.02,39.84,40.53, 40.89,39.54,42.24,41.24,41.68,42.36,42.80,41.92,43.02,42.52, 44.28,44.09,44.25,44.59,45.46,45.90,45.76,46.31,45.63,46.34, 48.38,46.48,46.97,48.76,48.57,48.97,47.91,50.56,50.51,49.98, 52.20,50.48,49.68,50.43,52.33,50.89,53.52,52.62,55.70,52.89, 53.17,56.26,54.90,53.94,54.44,54.41,57.76,56.68,54.45,57.21, 56.73,57.45,54.54,58.25,58.34,57.78,57.34,56.13,58.14,58.38, 58.07,58.45,56.97,62.08,60.85,60.35,57.62,58.60,62.41,58.88, 61.73,60.37,60.62,63.04,63.35,63.11,62.48,64.83,63.28,60.94, 62.32,63.43,66.02,64.46,62.42,62.35,63.71,62.12,63.05,66.98, 66.07,65.14,64.73,66.48,66.78,66.15,67.05,66.46,71.24,70.73, 71.51,67.29,68.33,70.06,67.25,66.72,69.44,71.72,69.44,68.05, 68.11,70.72,70.00,71.08,71.90,71.66,74.27,72.03,69.00,71.32, 71.71,72.72,73.14,73.50,71.34,70.80,72.22,76.72,75.23,75.16, 73.86,78.52,74.22,78.06,76.27,75.33,75.34,76.19,77.83,78.27, 77.10,76.17,78.76,76.80,78.08,77.35,76.76,76.69,79.06,76.42, 78.01,77.40,80.53,75.33,83.01,79.05,80.27,81.61,78.79,80.42, 79.95,78.56,78.72,81.35,77.14,81.23,81.70,80.88,84.33,82.35, 83.49,82.29,83.43,81.44,84.11,81.87,82.90,82.50,81.85,81.88, 83.37,83.90,87.98,83.37,85.81,84.51,82.80,87.86,83.22,82.51, 86.36,86.80,89.39,87.03,84.50,88.05,88.81,87.54,85.87,86.85, 88.64,88.44,88.19,85.63,88.36,89.08,88.77,91.69,90.58,91.11, 87.17,90.68,89.72,88.33,89.30,88.80,89.59,92.30,92.22,87.38, 91.10,92.80,94.05,87.45,91.58,93.39,91.29,92.87,92.75,92.05, 89.86,94.62,97.85,92.58,94.24,93.55,91.36,95.05,93.17,93.51, 91.88,95.54,94.57,94.11,90.04,98.49,94.53,90.99,95.94,94.87, 21.96,23.23,22.95,23.62,24.29,25.26,26.73,27.18,25.76,27.10, 28.84,30.18,30.14,30.29,30.70,32.46,33.06,33.02,32.36,34.76, 33.49,35.60,34.51,33.55,36.06,36.22,36.13,37.22,37.62,38.25, 40.56,39.79,40.35,40.67,41.25,39.21,40.19,42.52,43.28,40.24, 42.76,44.31,43.81,44.71,43.22,44.48,45.41,46.57,44.90,45.67, 47.62,47.47,45.82,49.97,47.17,49.39,51.09,49.13,49.62,50.15, 50.29,50.65,51.99,49.07,52.69,51.26,52.71,53.31,51.61,52.73, 54.17,52.85,52.02,53.57,54.35,55.88,56.22,55.87,58.38,56.65, 56.58,56.07,59.56,58.61,60.60,57.88,60.06,58.28,60.04,61.42, 60.36,60.93,58.93,60.29,63.68,62.67,62.88,62.43,63.09,61.94, 61.10,60.73,63.99,63.14,63.98,67.55,66.60,63.32,66.83,67.32, 65.17,65.84,66.75,65.57,67.42,67.34,65.51,66.53,68.45,69.43, 67.46,69.61,71.22,69.04,70.98,71.15,69.96,69.23,70.75,71.50, 74.58,71.37,71.29,70.67,74.11,71.84,75.31,69.34,73.89,75.13, 70.90,72.29,74.98,72.49,71.44,69.87,75.08,73.76,73.78,75.91, 73.97,77.39,75.38,77.95,75.58,76.67,75.57,73.41,78.82,78.99, 80.82,79.59,81.03,76.61,79.03,78.96,79.14,79.61,75.83,79.76, 82.04,80.07,81.79,82.18,78.53,81.50,81.51,80.98,80.31,83.82, 80.31,80.89,84.60,82.12,80.40,81.35,82.67,83.66,85.55,83.00, 83.07,82.25,83.10,85.55,82.75,83.47,86.60,87.19,84.59,83.79, 85.28,86.30,87.60,87.26,83.43,84.10,86.00,90.37,87.13,87.60, 89.17,86.97,90.80,87.88,90.89,87.98,86.64,88.30,92.15,87.54, 91.66,92.64,89.17,90.64,92.39,88.48,89.74,89.52,92.57,92.64, 94.34,91.05,91.62,94.36,92.66,93.98,91.85,94.54,94.60,94.14, 94.97,94.45,91.45,93.27,91.40,92.69,90.60,91.60,95.70,93.61, 98.70,94.32,96.64,100.12,94.33,95.56,96.74,95.31,95.67,98.45, 94.20,93.76,99.60,95.61,98.05,95.79,94.71,96.40,99.96,99.87, 98.76,103.53,97.93,101.98,100.68,98.84,100.60,98.89,101.72,103.58, 99.27,104.07,101.48,101.11,99.34,103.79,102.44,100.45,99.75,98.02, 23.95,23.44,23.74,25.73,25.27,26.30,26.30,28.59,27.50,29.54, 29.91,30.50,32.19,31.62,33.12,33.24,32.98,35.17,35.33,36.07, 37.79,36.86,35.91,37.12,38.54,38.60,40.07,40.13,39.78,40.36, 40.59,40.88,42.69,43.68,42.66,44.19,42.08,43.74,44.09,45.81, 45.96,44.42,46.53,47.34,45.64,46.39,49.45,47.19,50.25,49.26, 50.88,51.17,47.77,50.92,51.27,53.30,53.68,50.59,52.01,52.10, 51.24,53.00,55.04,55.37,56.06,55.59,55.41,56.25,57.13,56.15, 57.05,57.15,57.74,59.62,59.72,60.12,58.59,58.90,59.84,60.29, 58.42,62.39,61.12,60.26,62.90,61.72,62.09,63.63,61.80,63.46, 63.61,61.54,62.82,63.44,63.69,62.83,63.86,65.05,67.52,66.80, 65.79,64.38,65.38,66.70,69.78,67.82,67.50,65.47,69.00,70.20, 70.20,69.85,67.25,71.87,70.18,68.69,70.17,71.58,73.98,73.07, 71.95,72.57,72.19,71.63,74.78,72.92,73.36,72.91,73.10,71.43, 76.32,74.37,78.22,78.37,74.73,75.41,77.43,79.02,75.25,75.33, 78.29,79.45,77.91,80.37,77.32,76.75,80.37,78.38,79.47,77.89, 82.14,79.82,83.42,77.74,80.19,79.14,80.09,81.30,82.49,81.88, 82.87,80.05,82.56,84.95,79.61,83.03,81.52,85.12,85.28,86.72, 85.93,83.58,81.55,84.83,87.40,88.22,83.82,83.32,86.04,84.88, 86.41,89.86,85.51,86.60,85.82,85.38,86.76,91.00,89.78,83.30, 87.16,89.82,90.03,88.71,87.55,94.26,92.65,87.51,91.75,89.65, 88.89,89.80,92.35,91.44,93.82,96.87,91.99,90.62,93.07,89.71, 93.26,89.57,90.55,88.22,92.38,97.15,94.70,92.23,92.93,94.43, 96.66,96.91,95.40,94.26,96.82,97.11,95.38,96.72,96.68,97.92, 95.48,98.77,93.54,96.06,98.76,97.56,99.94,98.62,97.81,100.05, 95.37,97.17,98.06,101.66,100.74,100.20,101.15,98.32,100.37,102.42, 103.29,100.82,100.22,100.45,99.10,99.22,99.20,102.36,104.36,102.93, 101.59,102.92,106.98,105.49,105.39,99.80,104.55,103.30,102.61,106.87, 105.05,101.41,106.96,108.45,103.07,108.31,107.52,108.85,106.35,106.57, 107.89,110.14,110.17,108.88,109.28,110.01,107.65,108.20,107.82,108.43, 22.67,24.47,25.07,26.43,27.75,27.57,28.12,28.50,29.58,31.69, 30.91,31.14,32.54,33.26,32.16,33.83,34.26,36.75,36.68,37.91, 37.54,38.09,38.29,37.96,39.71,39.17,41.58,41.98,41.79,41.54, 42.40,42.58,42.31,43.91,44.27,44.92,45.29,46.23,48.35,46.65, 47.58,48.05,46.82,47.49,50.34,48.94,50.74,49.41,50.67,52.13, 51.71,52.72,55.14,55.12,53.50,50.80,53.61,53.90,54.96,57.13, 52.62,54.36,56.22,55.93,57.09,55.96,62.14,59.15,60.16,57.39, 61.86,61.10,60.38,62.52,59.93,59.89,60.00,62.21,62.99,65.24, 61.94,64.40,63.09,66.44,63.38,64.15,65.84,68.97,65.96,66.42, 66.51,66.90,67.83,67.29,70.50,69.15,68.35,69.41,68.26,67.17, 70.63,68.72,68.93,71.25,69.61,68.89,71.25,72.61,74.01,71.92, 74.42,72.52,71.27,71.49,70.60,74.94,70.62,77.32,75.13,75.97, 75.59,73.52,78.40,74.16,75.67,77.06,75.87,74.36,75.10,79.03, 76.44,79.11,79.87,77.43,78.98,79.30,81.60,82.64,78.94,76.29, 81.02,80.14,82.82,85.21,81.24,79.55,82.90,81.94,83.24,82.74, 82.19,84.08,81.94,85.74,83.95,85.23,85.87,83.49,87.16,83.36, 85.05,88.62,85.07,88.33,86.88,84.88,88.34,86.32,88.39,89.08, 88.56,91.92,86.38,87.43,90.89,92.89,89.04,91.19,86.11,92.11, 92.42,92.41,93.38,94.71,92.57,94.00,90.16,94.25,93.16,96.12, 93.95,95.29,94.21,93.45,95.39,95.91,94.94,97.28,96.79,95.40, 94.20,95.28,96.68,95.40,93.09,98.30,96.61,95.57,98.75,100.62, 97.01,99.98,97.43,100.01,99.10,94.22,98.97,100.60,99.96,98.81, 98.83,101.81,102.66,102.09,103.09,102.42,101.64,97.80,101.09,103.36, 101.21,103.08,107.42,103.74,104.42,105.08,106.25,101.50,102.26,104.89, 99.46,100.13,102.09,107.10,106.59,105.26,101.89,104.66,107.86,103.28, 106.16,103.72,105.85,106.00,105.99,107.83,106.23,106.18,101.85,106.67, 109.02,103.73,110.50,107.17,107.72,107.38,113.78,109.48,105.44,114.24, 111.17,110.25,108.42,112.49,110.84,111.16,115.74,109.00,113.83,112.40, 111.90,114.25,111.49,108.73,115.90,115.71,113.03,113.62,111.04,108.01, 23.90,25.19,25.03,26.33,27.13,28.39,29.22,29.85,31.00,32.15, 32.89,34.68,34.43,34.60,35.53,35.63,36.16,37.14,36.94,39.30, 38.86,38.64,40.33,40.89,42.48,40.57,43.87,43.14,43.46,42.78, 42.92,43.76,45.52,47.25,46.50,45.20,46.52,48.89,47.96,46.28, 49.13,49.21,50.24,50.85,50.61,51.08,53.28,52.65,50.25,52.56, 53.29,54.21,54.63,55.50,56.42,57.32,54.97,56.68,57.86,57.22, 59.03,57.59,58.59,60.31,59.34,58.00,59.30,61.67,62.50,61.72, 63.03,62.88,64.12,62.11,60.95,65.54,62.91,62.59,63.05,65.01, 66.48,66.40,67.23,65.67,64.76,69.98,67.80,66.58,67.99,66.26, 65.69,70.96,69.78,70.54,69.70,68.96,72.41,72.43,72.49,73.68, 70.40,71.33,72.45,75.13,75.74,75.55,73.00,77.31,74.73,73.57, 73.09,73.93,73.80,73.15,76.42,80.35,78.98,79.82,78.64,78.41, 77.19,79.26,76.70,78.61,83.56,77.48,78.98,79.51,82.28,82.48, 79.87,80.42,81.47,82.81,82.32,80.80,82.89,86.79,81.06,80.64, 86.43,84.12,84.81,85.21,86.28,87.02,83.77,86.70,86.28,87.33, 88.04,83.79,87.10,90.68,86.56,89.03,89.39,88.10,86.60,84.51, 87.70,92.39,89.45,88.16,89.46,91.47,90.90,92.70,95.70,89.25, 92.38,90.30,92.16,93.77,94.65,95.19,95.56,96.02,91.40,90.49, 94.87,95.30,96.73,95.84,94.20,91.38,96.85,99.25,95.99,100.53, 98.72,94.84,95.17,94.63,96.38,97.94,93.62,97.90,98.53,101.52, 98.33,101.11,100.24,101.85,97.09,100.72,99.91,98.03,98.61,98.24, 99.72,102.18,104.04,100.75,101.92,102.31,104.92,102.21,100.13,102.89, 104.49,107.02,105.63,105.74,105.91,108.03,103.43,105.43,106.49,103.48, 108.96,104.97,102.82,105.91,104.63,107.70,107.33,109.47,107.81,103.69, 110.43,106.70,105.61,107.76,108.82,110.73,107.71,107.53,107.08,106.69, 110.46,109.72,111.33,113.41,112.61,111.92,111.67,115.54,112.89,112.95, 116.64,109.57,112.22,112.34,114.41,112.32,114.19,115.94,112.17,112.98, 112.04,114.25,110.94,109.79,117.80,109.94,113.30,112.28,119.75,114.51, 118.25,117.37,117.60,116.12,120.02,116.16,119.16,117.50,116.89,120.73, 24.94,26.35,26.74,27.41,29.31,28.16,30.92,29.92,32.52,32.42, 33.93,34.44,35.45,36.68,37.17,35.27,37.37,37.70,39.62,39.64, 40.60,42.09,43.07,40.52,44.39,43.92,42.61,44.04,43.64,47.00, 45.26,49.13,46.55,48.56,49.63,48.61,48.04,50.18,48.49,51.18, 50.23,50.40,52.69,54.11,54.24,52.15,54.73,52.93,53.87,54.66, 53.50,55.65,58.64,57.36,58.64,57.48,60.42,57.95,58.43,58.16, 59.83,58.51,60.97,59.54,62.51,61.25,63.34,64.04,62.40,63.96, 62.60,65.44,62.85,66.68,63.26,64.76,69.21,66.37,66.68,68.62, 66.04,68.90,67.96,66.99,69.38,68.57,68.48,69.64,68.28,71.99, 73.70,70.37,70.83,67.77,71.96,71.96,73.68,69.73,72.33,73.18, 74.66,76.36,76.78,76.14,73.97,76.04,79.44,74.53,76.49,76.57, 76.71,78.87,74.73,76.61,81.12,77.80,80.78,79.49,78.74,80.58, 79.21,81.73,82.17,85.64,80.81,83.98,85.15,82.99,81.29,80.04, 84.44,84.07,85.70,85.63,84.59,81.91,82.45,84.17,88.09,87.16, 86.55,90.81,90.94,86.25,91.29,88.45,89.62,88.53,88.13,87.71, 85.61,87.16,91.80,91.62,93.56,88.55,90.10,87.33,93.26,92.86, 92.79,92.34,89.65,91.39,95.95,95.76,93.68,97.54,92.69,95.24, 99.25,95.66,94.49,98.28,93.96,96.24,97.63,93.05,94.92,97.45, 100.88,95.30,98.71,98.91,102.20,98.56,100.38,96.54,98.11,100.59, 98.30,99.18,101.91,98.60,98.51,102.63,105.91,97.47,105.85,99.47, 101.96,106.30,102.41,109.57,102.02,102.36,101.40,104.85,108.37,102.84, 107.31,105.29,107.24,104.25,107.35,109.33,103.02,106.70,105.00,106.71, 109.52,104.66,107.69,107.54,109.28,107.90,109.09,107.93,106.24,109.76, 108.42,106.98,109.16,110.16,111.19,109.24,114.77,110.62,113.54,112.18, 115.03,113.00,112.93,110.38,115.05,114.97,115.49,114.93,112.82,113.52, 112.19,113.86,113.89,114.37,115.12,114.85,118.98,115.60,113.06,117.46, 116.47,115.44,114.14,117.92,114.76,118.55,119.39,116.00,118.78,118.72, 121.38,117.93,115.82,120.23,121.29,118.08,120.24,118.65,119.65,124.05, 120.42,123.52,117.01,118.58,117.73,125.57,118.34,122.46,123.57,122.59, 25.19,25.63,27.59,28.32,28.67,30.64,32.24,31.71,32.11,32.85, 35.05,34.54,36.16,36.81,37.57,38.58,38.26,39.62,40.05,41.05, 41.50,42.15,43.10,41.79,42.57,45.53,44.59,46.50,47.61,45.82, 45.17,48.11,47.81,48.49,48.93,50.55,50.08,50.50,50.19,48.94, 50.34,53.69,53.88,55.12,52.67,52.36,53.45,55.11,56.55,56.80, 56.84,58.34,58.77,58.50,58.18,57.65,59.49,59.64,59.04,60.95, 61.72,63.90,59.58,61.71,61.11,62.06,63.08,62.14,64.77,65.33, 67.44,65.72,64.78,66.66,66.78,69.20,67.08,67.42,68.31,68.89, 69.55,69.19,68.15,74.13,70.44,70.25,71.32,67.63,72.40,72.11, 72.75,70.75,73.54,72.84,74.29,73.87,78.44,74.26,77.40,76.50, 75.55,76.36,77.45,77.64,76.38,76.45,80.41,81.15,81.31,78.76, 81.87,78.47,78.87,80.19,82.44,80.02,83.89,83.43,79.45,81.78, 83.71,84.69,80.85,84.89,86.36,86.79,83.74,83.91,86.41,86.15, 87.49,85.81,86.03,85.19,86.50,88.32,88.97,86.88,85.65,90.71, 90.33,89.95,91.29,88.69,92.55,87.24,93.06,87.96,91.88,89.98, 91.10,92.16,94.05,94.33,93.82,93.23,90.07,92.29,92.76,100.21, 95.93,92.73,98.56,96.12,96.61,96.62,95.01,97.11,93.65,100.26, 97.40,95.79,96.25,97.96,98.68,97.65,99.09,94.62,97.18,100.32, 102.11,98.61,101.55,100.46,98.68,98.38,99.32,103.33,100.00,104.03, 105.20,108.43,101.07,103.64,99.03,102.75,102.77,100.20,104.05,102.67, 107.15,108.59,105.95,104.89,104.24,103.73,109.04,104.75,107.76,106.22, 105.94,109.02,108.67,107.89,111.20,116.76,113.16,109.32,106.41,108.08, 106.43,103.39,109.20,110.55,112.65,110.35,110.12,111.29,113.79,114.11, 110.71,114.50,116.06,112.47,118.22,114.28,115.75,112.07,117.51,112.93, 112.49,112.91,115.02,115.66,113.17,113.68,118.38,112.73,117.40,118.73, 117.53,113.98,117.78,117.33,114.08,119.61,118.90,117.88,120.46,120.36, 115.28,117.99,118.36,124.42,120.58,114.94,117.78,120.31,123.31,124.62, 117.19,120.29,121.01,119.96,119.31,115.59,119.80,128.51,127.92,128.03, 122.65,123.78,126.98,127.68,123.89,122.42,125.20,119.59,126.95,125.16, 26.45,26.46,28.61,28.57,29.47,29.15,31.68,31.46,33.98,33.12, 36.28,35.28,35.79,37.25,38.21,38.33,39.00,38.61,39.56,43.64, 41.84,41.02,44.77,43.13,42.67,46.55,45.34,47.19,47.45,48.13, 47.21,48.47,49.70,48.50,49.13,51.60,51.46,49.97,53.35,52.71, 52.80,53.12,52.68,53.61,54.79,54.53,54.99,57.67,59.77,58.10, 55.75,57.30,58.72,60.52,59.80,59.97,62.10,60.11,62.33,59.45, 61.35,62.18,65.17,61.99,64.22,64.54,66.80,62.51,68.35,66.80, 67.09,68.08,69.18,66.87,65.76,68.94,67.07,68.72,71.90,70.33, 71.52,70.54,72.36,68.76,72.68,72.69,71.63,73.00,78.07,72.12, 75.75,74.62,74.22,74.67,76.67,74.30,78.66,76.30,75.74,75.88, 78.37,77.72,80.27,78.60,79.24,80.17,81.03,80.67,83.58,79.21, 81.40,77.86,82.11,82.27,82.82,82.72,77.97,83.52,85.31,84.23, 84.63,84.45,84.34,82.69,86.01,87.94,87.53,86.23,86.93,86.32, 86.98,88.85,87.40,90.18,91.22,89.22,89.38,90.25,90.54,91.50, 88.79,87.80,94.72,94.31,92.62,91.58,92.10,90.53,94.81,92.12, 91.03,96.79,95.00,95.00,90.34,96.01,95.13,94.91,98.00,97.10, 94.03,97.11,98.64,94.82,96.97,98.36,102.56,97.46,101.24,99.45, 99.14,103.34,98.68,99.96,97.90,99.31,101.74,104.84,99.82,101.26, 102.13,101.62,103.05,101.67,106.66,103.44,102.41,107.52,104.32,105.74, 105.74,104.23,106.19,106.98,107.83,105.11,109.57,108.37,106.25,107.33, 106.25,109.11,109.65,109.35,109.06,105.44,105.34,109.98,103.21,110.23, 110.93,113.22,107.91,113.45,111.67,113.35,107.91,106.94,115.51,111.69, 109.08,111.10,111.90,113.09,111.58,114.09,116.29,114.60,113.56,113.75, 114.68,122.19,114.09,118.33,114.09,113.02,114.48,114.09,118.75,115.93, 114.69,115.84,117.36,117.57,117.95,117.82,117.47,120.82,118.65,115.90, 117.75,119.11,123.15,117.84,114.58,121.34,121.88,122.05,119.40,117.19, 124.47,121.52,121.19,127.90,123.82,128.99,119.77,118.46,123.44,120.66, 126.71,126.63,119.01,123.63,124.34,126.29,124.60,126.32,127.04,129.27, 128.00,126.34,127.38,123.51,127.72,128.78,127.66,128.43,123.74,126.82, 26.12,26.82,28.05,28.74,30.90,30.88,32.62,33.41,32.94,34.25, 34.34,35.59,37.71,37.49,37.58,40.89,38.66,41.54,40.34,41.96, 40.94,43.70,45.26,45.74,43.61,45.62,46.42,48.67,48.37,47.16, 48.78,48.59,50.46,47.50,51.32,50.16,51.65,51.59,52.43,53.21, 54.64,53.21,54.38,54.55,55.73,56.92,57.99,55.86,57.46,56.11, 60.70,59.62,60.15,58.13,59.15,61.42,63.64,63.19,62.30,64.28, 64.96,65.29,60.62,66.21,67.82,65.34,64.52,68.34,66.80,68.79, 69.35,67.12,70.86,69.13,70.03,68.91,67.58,71.59,73.16,73.53, 73.12,72.01,73.73,71.01,73.29,72.94,70.83,73.14,71.44,74.89, 73.26,74.85,78.04,79.11,71.84,76.26,75.42,76.95,77.91,81.14, 80.80,79.77,77.87,81.56,82.41,80.67,82.59,83.19,81.71,86.24, 81.90,81.76,79.87,83.22,83.78,86.61,87.06,85.47,83.22,86.21, 86.79,86.50,85.22,85.44,83.79,88.99,87.39,88.03,92.51,91.77, 93.01,88.09,88.94,89.52,90.87,90.35,89.02,92.63,89.60,91.38, 90.44,93.68,91.50,89.11,94.30,95.12,94.28,92.80,96.81,93.62, 92.50,96.42,93.80,98.28,94.44,94.97,96.94,97.83,98.65,101.50, 98.79,99.35,98.28,98.23,100.54,99.76,102.21,101.11,99.93,102.73, 100.96,102.55,99.57,101.02,101.12,105.38,98.67,103.23,99.80,101.48, 105.04,104.12,108.13,105.15,107.72,105.92,104.42,105.68,105.79,107.41, 112.65,108.00,105.93,104.76,107.72,107.94,107.87,108.47,105.67,110.67, 106.40,111.76,108.82,113.92,106.97,111.93,112.20,109.95,111.97,111.63, 114.35,112.06,113.59,112.53,114.72,111.94,112.54,114.79,109.16,112.65, 114.83,115.55,115.91,117.93,114.92,120.79,122.66,115.15,116.17,121.71, 116.85,114.48,114.77,114.53,114.90,113.58,117.07,115.35,118.57,116.39, 121.13,117.16,118.74,121.32,119.91,126.43,117.84,124.85,123.46,125.48, 118.30,123.55,124.23,121.11,119.92,121.87,124.49,120.43,119.96,124.37, 123.49,124.38,128.51,126.62,124.69,126.45,131.17,124.91,128.27,128.80, 126.04,122.45,123.93,126.40,126.02,126.73,124.25,127.59,129.48,125.22, 128.19,126.12,132.50,131.02,128.19,128.74,123.45,129.04,127.83,125.50, 27.23,26.13,28.74,28.96,29.96,31.25,31.81,32.13,34.25,35.64, 34.59,37.13,38.08,38.15,39.45,38.29,41.39,42.89,40.41,40.50, 43.87,43.52,44.79,44.68,44.02,46.80,45.74,49.62,46.89,51.19, 49.09,49.87,48.38,49.73,52.47,52.98,52.30,52.56,52.46,56.06, 54.13,56.31,55.55,55.61,57.29,57.40,57.58,56.35,58.29,59.83, 58.47,63.86,61.16,61.76,63.30,64.00,61.49,60.92,64.09,61.99, 63.23,64.22,63.05,65.14,68.03,65.35,69.52,69.95,68.39,69.87, 69.19,67.92,68.04,71.83,69.85,70.91,71.08,70.32,72.31,71.83, 72.35,72.92,72.65,71.59,74.36,75.21,75.37,73.60,75.56,76.06, 74.33,78.46,75.25,80.15,78.09,79.67,79.42,79.05,78.26,81.36, 75.79,81.82,81.24,79.36,81.73,80.05,84.00,82.89,84.71,85.32, 83.75,86.84,82.37,85.41,86.07,84.51,87.83,86.50,87.38,87.88, 88.11,89.77,87.58,90.71,88.88,86.78,88.62,87.96,91.04,90.84, 92.24,91.58,93.39,92.63,91.01,92.51,92.51,92.99,93.26,95.92, 94.08,93.52,93.06,96.64,94.09,92.53,93.26,95.60,95.69,96.89, 92.79,96.27,97.68,96.62,97.88,98.39,96.86,99.34,101.19,98.57, 100.75,99.97,105.06,100.15,101.68,98.08,102.62,100.24,101.72,99.14, 100.91,103.58,103.62,103.60,102.04,104.57,107.33,101.57,105.95,103.85, 105.71,104.31,104.24,104.23,106.96,107.98,102.54,107.59,109.08,108.41, 109.19,104.30,105.48,111.09,111.07,111.86,104.74,106.56,109.89,105.80, 108.43,109.11,111.25,109.61,109.59,111.21,109.96,109.61,116.05,110.96, 115.21,111.72,114.87,118.18,110.02,118.08,114.78,112.94,118.87,116.18, 117.12,115.08,117.40,116.70,117.02,119.02,116.32,114.26,121.12,120.19, 117.51,122.28,114.39,116.78,119.15,118.35,118.66,120.09,120.44,115.53, 117.79,114.68,126.54,122.46,122.11,123.06,119.24,120.19,123.07,120.17, 123.39,128.66,125.01,121.64,125.15,126.26,127.61,122.57,128.61,128.59, 126.22,128.69,125.53,129.87,124.59,127.39,124.56,124.36,127.92,127.80, 125.90,127.87,131.83,126.16,128.63,127.40,130.34,126.27,127.98,123.66, 128.37,129.99,129.22,131.46,132.28,130.81,130.23,130.00,128.13,129.89, 27.36,27.66,28.74,28.18,30.21,32.43,32.86,34.57,33.15,34.06, 35.74,36.95,35.49,37.35,38.51,40.35,40.62,42.08,39.88,44.02, 44.51,44.18,45.07,45.74,44.44,46.68,45.72,48.40,48.41,48.32, 50.60,50.96,50.53,50.28,51.52,52.61,53.44,52.96,56.35,55.56, 56.42,55.61,55.77,56.83,54.98,57.74,56.63,57.93,58.35,60.17, 59.50,60.23,60.97,60.63,63.39,62.49,63.00,64.42,61.31,61.30, 61.68,66.07,65.19,65.86,64.52,66.68,67.86,67.21,66.57,67.42, 69.74,69.76,68.81,67.89,69.55,72.04,72.01,74.62,70.66,68.27, 75.52,70.23,73.85,75.81,76.16,75.70,75.78,75.38,77.73,75.89, 75.75,76.81,77.82,78.25,78.35,79.97,80.04,76.95,77.95,78.83, 80.81,82.33,79.52,79.95,83.67,82.00,85.06,83.75,83.04,84.45, 84.28,83.14,82.47,83.45,84.17,87.21,82.93,91.09,83.59,86.24, 87.11,88.30,92.24,86.85,84.99,90.39,92.47,87.88,92.04,92.34, 88.99,87.28,91.50,92.51,92.07,89.53,91.96,95.09,91.20,95.74, 93.89,95.44,95.36,95.86,97.56,95.00,95.60,98.92,99.04,97.78, 99.42,95.84,95.72,96.59,96.27,96.05,98.43,97.96,100.77,99.16, 98.16,103.85,97.84,106.59,101.04,101.04,98.90,102.83,103.83,104.23, 102.14,104.42,108.21,103.75,107.41,100.32,106.63,103.80,107.67,105.08, 103.77,107.57,108.44,105.93,107.32,109.64,110.28,106.38,105.62,105.61, 111.56,112.32,111.61,109.86,108.22,107.14,111.33,108.14,113.80,108.25, 110.06,112.93,112.32,110.06,111.42,109.58,115.35,115.37,115.20,115.65, 114.20,114.51,114.00,115.46,114.17,113.31,114.59,114.13,112.40,119.98, 111.26,115.98,119.10,116.71,112.86,111.42,117.46,118.46,116.48,123.73, 116.45,119.23,120.04,117.96,113.09,119.77,117.21,121.13,122.64,130.27, 118.73,125.11,119.76,125.36,122.62,120.14,125.87,125.60,122.83,123.17, 117.44,129.05,123.21,124.79,123.76,126.41,124.51,128.03,124.55,124.04, 120.84,123.19,122.39,123.98,128.09,128.57,124.58,127.44,128.72,129.18, 132.03,132.48,131.53,127.88,128.05,130.74,123.61,133.29,127.20,131.16, 129.26,128.21,128.84,136.90,132.44,132.88,132.09,131.26,134.47,131.45, 25.66,27.76,28.22,29.76,30.72,30.87,32.64,34.30,33.52,35.05, 34.55,35.77,37.03,38.22,39.54,39.50,39.71,41.88,41.81,44.05, 44.51,44.45,44.30,45.62,45.34,46.20,48.35,48.28,48.12,49.25, 47.30,51.81,49.47,51.30,53.36,52.68,51.76,55.97,53.56,55.15, 54.19,53.76,56.46,58.41,56.17,57.66,59.00,60.13,62.40,60.71, 59.82,62.13,60.24,60.55,63.25,63.41,60.34,61.02,65.00,65.57, 63.00,64.38,66.09,65.73,67.84,67.07,68.36,66.28,68.43,69.47, 69.74,70.78,70.90,70.56,71.52,71.67,72.28,70.96,71.43,74.36, 74.45,74.81,74.31,74.58,75.89,73.18,74.74,78.49,79.93,76.89, 76.77,78.47,76.61,80.42,81.27,79.74,78.41,82.75,81.88,81.89, 79.40,80.46,80.64,83.89,79.00,84.55,84.62,78.73,84.24,83.71, 82.22,87.40,87.35,82.75,85.30,83.56,84.85,87.80,88.29,84.36, 87.48,90.01,87.85,87.59,88.55,90.19,90.34,92.07,91.87,89.49, 93.15,94.38,92.27,91.29,95.63,95.44,95.66,95.09,92.77,91.61, 96.17,94.90,94.27,91.57,94.86,95.70,96.62,98.27,97.88,96.91, 93.67,97.58,97.74,100.87,94.81,99.24,98.66,99.62,99.79,97.94, 102.50,101.66,100.05,107.74,100.83,102.26,103.75,102.05,104.21,100.63, 108.33,103.74,99.93,102.81,102.46,101.19,103.87,106.04,107.15,104.96, 106.00,108.93,103.22,107.86,106.31,109.11,102.45,108.34,106.25,112.74, 110.72,108.25,104.90,113.99,113.95,113.58,111.80,112.37,114.11,109.65, 113.70,112.46,112.86,108.75,113.29,113.67,112.13,113.23,112.66,114.93, 115.86,116.04,117.49,119.41,112.51,119.42,115.38,116.86,111.67,117.60, 115.90,116.40,119.50,117.66,121.23,114.56,118.57,114.79,118.38,118.44, 121.60,116.05,118.27,118.23,118.67,124.47,122.42,126.37,122.44,121.55, 118.48,116.35,122.80,124.18,121.63,120.91,114.60,121.86,122.30,121.52, 121.82,121.83,124.70,124.42,122.78,126.74,127.80,126.88,128.70,124.88, 128.19,126.26,129.81,128.80,123.96,130.14,126.86,126.85,124.18,127.92, 133.11,127.84,127.59,128.57,128.14,124.64,127.15,130.18,127.09,133.49, 130.81,132.11,129.38,130.90,130.01,131.87,128.65,131.34,133.82,131.61, 25.47,26.92,28.73,29.13,29.94,30.16,33.13,32.98,34.56,35.26, 36.11,37.58,38.09,38.62,38.37,39.99,40.94,39.99,42.56,41.76, 41.64,42.52,44.03,45.62,46.38,47.02,48.93,47.54,49.01,48.47, 50.53,51.39,49.35,52.70,53.16,53.20,52.38,57.00,54.63,52.56, 56.13,54.70,56.97,59.91,58.96,57.70,57.73,58.47,60.06,60.91, 61.50,59.98,61.67,62.80,60.68,62.05,63.24,63.45,60.37,64.97, 64.11,64.87,65.69,67.71,68.05,64.52,65.81,68.48,71.13,71.11, 68.89,68.11,69.05,72.92,70.46,70.42,69.60,72.68,72.75,70.95, 75.31,70.73,73.89,74.01,76.01,77.61,76.24,75.48,72.89,77.14, 76.13,75.77,79.05,79.76,78.60,81.75,82.93,78.26,82.60,79.68, 84.72,84.22,85.72,81.22,86.38,81.81,84.28,85.07,85.54,83.83, 83.60,86.25,82.07,83.48,86.85,85.74,88.89,85.97,87.55,88.91, 89.19,87.68,85.69,89.62,89.32,92.01,89.11,92.88,92.09,91.34, 91.05,91.29,92.12,92.26,93.07,94.14,98.85,90.81,94.17,92.98, 94.06,92.29,97.98,96.54,95.38,98.08,98.41,92.57,94.62,100.10, 102.59,98.50,97.78,101.21,97.68,99.54,99.60,94.58,103.50,97.57, 99.79,99.97,102.90,105.42,100.94,99.43,96.94,100.39,101.94,101.33, 103.68,105.79,107.85,103.21,106.68,106.13,101.87,104.50,110.90,108.29, 104.77,104.71,110.05,107.89,106.04,109.73,107.45,109.54,101.32,111.05, 104.01,109.60,111.28,109.00,109.88,115.60,108.76,107.62,111.39,107.53, 111.43,113.35,113.22,113.24,108.19,107.24,111.48,111.72,115.37,112.97, 118.06,111.65,114.90,113.70,114.46,115.48,113.77,115.92,113.81,115.69, 119.83,116.19,112.76,118.79,115.40,120.59,120.76,118.52,114.32,116.32, 123.60,117.88,121.16,120.86,121.27,121.14,120.99,121.48,122.67,120.10, 123.48,124.19,124.28,124.27,122.42,121.03,123.97,119.13,121.65,122.98, 118.79,122.80,124.50,125.67,126.56,126.47,126.38,124.99,127.32,132.21, 124.90,126.07,122.74,124.67,123.94,125.68,126.57,122.64,128.14,127.12, 126.47,124.25,126.65,127.97,132.58,129.33,133.71,131.11,130.16,128.23, 131.62,132.54,130.99,134.98,132.27,127.19,134.04,134.82,132.82,132.24, 18.31,18.58,18.78,20.26,19.17,20.72,20.65,22.10,22.01,23.18, 22.29,22.36,23.33,24.09,25.20,25.43,25.63,25.94,25.14,25.31, 26.80,26.88,27.26,28.44,28.78,28.47,28.80,29.03,29.97,29.87, 29.97,30.00,31.77,30.85,31.11,31.04,31.71,31.94,32.89,32.70, 32.37,31.40,33.51,33.51,33.84,33.98,33.96,35.56,35.96,34.65, 35.76,35.17,37.24,36.03,37.31,36.09,37.83,37.26,37.93,38.77, 39.17,37.80,38.90,39.65,39.05,38.72,39.08,39.13,40.29,39.71, 39.86,41.74,40.04,42.36,40.92,43.08,42.89,42.23,42.06,43.29, 42.58,41.81,42.30,42.68,44.16,43.06,45.15,45.11,44.78,46.18, 45.36,45.40,45.55,45.84,46.44,45.71,46.50,47.52,46.65,47.98, 50.34,46.99,48.11,46.61,47.92,47.20,47.98,47.52,50.44,49.91, 49.51,49.72,50.11,49.97,51.36,49.61,51.21,48.56,50.55,51.32, 50.62,50.86,53.12,51.94,50.62,52.56,53.67,53.60,53.41,52.63, 52.49,52.98,51.72,53.21,54.24,55.32,53.90,53.65,53.94,57.41, 55.73,55.44,57.04,57.02,54.78,55.35,56.00,57.05,55.26,56.80, 57.80,57.30,54.88,57.65,57.97,57.08,56.45,57.35,55.91,56.89, 57.70,58.44,59.52,59.91,59.29,59.87,61.31,58.38,59.95,59.49, 58.80,58.70,59.66,59.57,61.23,59.41,58.98,62.11,61.89,59.04, 59.86,59.72,64.91,61.62,62.17,64.53,63.74,64.68,60.30,62.23, 61.04,60.24,63.67,63.25,62.75,65.25,63.62,62.23,62.83,63.73, 64.02,64.97,61.56,63.47,64.85,65.78,63.82,65.61,69.05,66.44, 65.71,64.76,65.81,65.79,66.35,65.69,68.75,67.54,66.40,65.66, 68.88,66.49,69.45,66.38,66.95,68.96,66.76,66.86,67.60,68.54, 69.72,67.24,68.13,68.51,64.67,70.44,70.06,68.61,70.05,73.06, 68.11,67.29,72.47,70.46,72.45,70.57,71.39,69.89,71.35,72.87, 70.65,73.45,71.74,68.81,71.35,71.49,72.31,71.66,74.23,74.87, 72.17,71.97,71.66,73.49,72.78,73.10,71.95,71.57,74.27,74.19, 73.85,72.55,75.29,76.75,74.35,76.57,73.16,72.33,74.64,76.75, 71.99,74.90,75.72,73.71,75.10,75.32,75.63,75.65,73.87,77.10, 19.64,19.83,21.13,21.12,21.76,22.57,22.65,23.59,23.52,24.02, 25.41,25.42,25.23,25.93,26.51,26.50,27.35,27.74,28.26,28.63, 29.59,30.24,29.63,29.80,30.40,30.77,30.89,30.68,32.79,32.54, 32.06,32.19,33.47,33.06,34.50,34.72,34.22,34.11,35.19,34.30, 35.93,36.59,37.91,36.03,36.34,37.18,38.66,38.35,39.63,38.85, 40.00,39.94,41.14,39.23,39.63,39.54,42.74,40.03,41.63,42.42, 41.92,41.56,42.48,44.35,42.64,44.33,43.06,45.00,44.25,44.44, 45.29,44.98,44.76,43.21,46.40,46.15,44.33,46.01,47.98,45.51, 48.10,47.19,47.14,49.06,46.50,48.21,50.90,50.00,49.06,50.49, 50.99,51.35,51.15,50.55,48.64,50.57,50.86,51.22,50.01,52.79, 51.07,53.49,53.10,51.09,53.60,52.48,52.31,53.30,54.05,52.49, 54.98,54.20,54.84,53.97,56.38,54.78,55.71,57.03,55.39,58.56, 57.02,56.56,58.39,56.23,56.62,56.64,59.87,57.89,58.22,58.18, 59.90,57.63,55.60,60.74,60.22,57.45,58.33,61.73,60.52,57.24, 61.18,60.21,59.81,61.32,60.52,61.07,61.65,63.48,61.69,61.73, 62.79,61.68,62.84,62.22,61.85,63.19,64.21,66.56,64.30,64.37, 66.82,62.57,63.72,63.55,64.65,62.94,63.58,64.77,65.99,67.24, 63.29,67.25,67.21,64.05,65.30,66.10,65.66,69.00,67.74,66.35, 68.61,66.93,67.39,68.70,68.93,66.78,68.86,67.79,68.62,71.74, 69.96,68.12,70.56,71.01,71.01,71.49,69.35,69.13,71.66,70.72, 70.06,73.72,70.21,73.03,71.20,72.66,70.23,69.51,74.10,73.23, 73.06,72.92,74.30,71.60,73.19,73.13,71.54,71.81,73.48,71.41, 74.81,74.90,77.62,75.31,77.23,75.41,71.98,73.62,77.16,75.75, 78.14,74.91,76.49,76.92,75.44,78.45,77.66,75.60,74.43,76.34, 77.77,79.45,79.13,79.38,77.40,77.74,81.94,78.12,78.84,77.39, 78.99,77.89,82.82,78.85,79.88,78.89,78.97,76.28,80.80,77.51, 78.64,81.30,83.61,75.98,78.20,82.43,81.99,80.03,79.04,82.44, 84.24,83.91,80.24,81.23,82.60,83.56,78.83,80.75,87.83,82.34, 81.19,86.04,86.43,84.33,81.66,82.88,86.54,84.30,85.99,83.33, 20.28,20.50,21.55,21.44,24.00,24.23,24.38,24.08,25.18,26.72, 27.05,27.43,28.16,28.52,28.70,28.93,29.55,29.53,31.29,32.19, 31.50,32.67,32.52,32.76,32.56,33.01,34.56,33.72,35.30,33.62, 35.94,35.28,35.46,35.79,37.65,37.26,38.66,37.18,37.20,40.41, 40.17,39.32,40.26,39.63,40.57,39.98,40.49,39.53,41.44,41.79, 42.94,42.61,44.07,42.94,42.94,42.44,44.03,43.87,45.72,45.79, 45.19,44.62,46.11,46.48,46.86,48.59,47.11,47.89,49.95,47.54, 48.98,49.12,49.63,48.37,51.02,49.98,50.98,51.11,49.38,50.81, 51.58,52.12,52.50,53.86,52.83,53.54,53.06,53.34,53.38,53.75, 55.52,56.65,54.94,54.58,54.86,55.11,54.37,54.79,57.48,55.34, 53.77,57.32,54.88,56.93,56.04,57.64,58.67,59.24,59.50,59.76, 58.78,61.67,59.24,60.43,58.23,60.91,59.44,59.69,60.25,61.30, 59.92,60.04,59.23,63.04,62.65,60.08,64.68,66.68,65.78,60.94, 61.44,64.11,66.24,63.61,63.62,61.42,62.74,66.61,66.54,65.08, 66.47,65.23,67.41,66.32,66.11,65.70,65.26,69.56,68.67,66.60, 69.56,66.26,68.49,69.08,65.51,69.39,67.07,67.23,69.63,67.58, 69.72,70.67,70.87,69.25,70.16,68.63,74.73,67.13,71.85,73.66, 72.10,70.33,71.69,73.16,70.94,72.79,73.16,76.06,72.90,77.31, 75.85,74.00,75.89,76.22,74.34,75.89,73.79,73.77,74.41,75.33, 74.38,77.25,76.61,74.32,76.43,74.60,75.93,77.15,77.50,77.89, 76.84,79.24,76.47,79.24,74.40,78.36,74.82,80.71,79.27,79.85, 77.50,77.47,78.77,81.33,76.18,79.47,80.17,77.42,81.48,79.30, 80.79,83.44,76.55,81.35,80.11,84.08,82.47,80.65,82.16,84.12, 83.04,83.35,84.77,82.89,83.71,82.18,85.31,82.86,83.66,83.70, 86.15,83.83,86.43,83.40,85.77,81.06,82.76,81.30,86.31,83.84, 87.75,83.49,86.81,84.65,86.58,89.14,83.26,87.63,84.03,85.30, 85.46,86.94,85.01,85.48,89.52,84.93,86.29,88.68,89.74,90.92, 83.56,86.70,91.65,87.64,91.48,86.74,88.04,91.09,90.13,91.47, 91.06,88.20,88.28,92.66,90.60,92.54,90.45,89.59,91.25,94.07, 21.50,22.58,23.69,24.10,24.28,25.03,26.27,28.14,27.31,27.54, 28.65,29.01,29.36,29.54,30.56,31.10,32.10,32.29,32.31,33.17, 33.96,33.96,32.87,34.62,35.88,35.78,36.62,36.15,37.22,37.23, 38.78,37.55,37.74,38.03,40.48,39.90,39.78,39.42,40.42,42.01, 40.62,44.11,44.24,43.81,43.92,44.04,45.02,44.18,44.45,44.83, 45.37,45.26,44.66,44.93,45.02,47.70,47.13,47.90,48.00,47.67, 47.45,51.22,50.12,48.72,50.69,50.31,49.57,51.95,52.99,51.83, 53.11,52.74,51.82,51.22,52.87,54.74,54.90,53.76,55.27,53.46, 54.59,54.75,56.16,56.10,57.79,56.33,56.64,60.80,60.49,57.28, 58.93,58.34,57.20,58.18,59.50,59.70,57.85,60.61,60.61,62.45, 60.11,62.98,60.42,62.99,63.63,62.12,60.98,62.50,61.47,65.50, 64.76,63.33,63.16,67.38,63.42,64.18,64.33,66.21,62.62,66.15, 65.13,63.01,65.95,66.32,66.39,66.49,66.86,67.96,68.97,70.14, 66.77,69.88,66.25,69.35,70.41,68.04,68.28,69.25,69.44,68.84, 68.17,70.12,70.43,72.28,73.88,71.26,69.19,71.81,74.13,70.51, 71.17,74.89,74.46,72.89,75.96,69.98,75.15,73.29,74.64,73.98, 73.72,73.66,75.00,77.07,72.76,75.71,78.70,74.14,76.33,76.52, 74.31,80.78,77.13,73.55,78.26,74.83,76.61,75.11,75.76,80.82, 80.05,77.07,82.36,81.06,78.69,79.65,81.61,78.65,81.25,81.84, 79.16,82.46,81.39,79.41,84.82,82.94,80.99,80.43,82.82,85.32, 80.30,83.95,82.87,82.99,83.90,88.73,85.04,84.83,82.36,83.64, 85.28,88.30,85.18,86.02,85.94,88.48,86.88,84.23,84.06,90.96, 84.51,88.19,89.14,87.18,87.57,89.96,85.94,88.07,83.38,90.17, 88.97,89.38,89.97,94.78,87.87,88.30,90.08,90.61,92.20,89.86, 88.85,90.50,91.19,92.78,92.27,93.00,88.83,92.40,88.02,91.90, 93.77,90.18,91.40,96.75,93.39,92.85,93.18,90.39,89.26,94.55, 93.92,92.83,93.91,94.06,88.72,95.92,93.74,96.00,89.61,96.27, 95.60,97.41,96.74,92.28,96.76,96.48,98.30,95.06,94.59,95.68, 97.47,98.89,97.59,98.08,99.51,96.76,100.04,100.66,98.93,97.82, 22.70,23.01,24.32,25.13,25.60,25.99,28.36,28.54,27.51,29.36, 29.56,30.58,30.18,31.56,31.62,32.88,34.30,34.00,35.52,34.88, 35.13,35.30,37.29,38.23,36.89,38.03,38.32,38.79,39.59,39.46, 41.10,41.49,41.27,42.31,41.62,42.45,43.52,46.20,44.59,44.68, 45.15,44.25,45.30,45.09,46.76,47.63,47.27,47.27,47.58,48.58, 48.93,47.80,48.15,50.70,48.12,49.71,53.11,51.00,51.61,50.82, 51.38,55.75,54.32,52.71,53.63,53.03,54.15,55.78,54.51,56.65, 56.53,58.52,55.40,57.86,55.15,55.95,59.98,59.73,57.32,57.35, 57.00,59.82,57.99,58.08,57.84,59.82,61.45,61.50,59.05,62.02, 64.81,62.93,63.05,64.40,60.61,62.12,63.35,63.85,64.96,64.57, 65.70,66.96,62.97,63.70,65.36,67.14,68.78,66.35,66.70,71.62, 69.79,67.24,67.47,70.23,66.26,67.05,68.80,70.65,70.51,70.93, 70.03,70.20,68.43,69.40,70.11,71.82,72.48,71.56,73.68,68.90, 73.75,70.97,74.68,70.60,71.21,77.65,75.95,74.14,74.01,72.85, 75.48,76.54,71.74,75.16,76.00,77.05,75.48,76.99,74.46,74.59, 76.13,80.67,78.05,77.60,78.73,77.14,81.83,78.55,77.04,80.44, 79.63,80.31,80.84,81.92,81.45,83.62,78.62,79.66,83.60,80.59, 81.20,79.30,83.66,83.67,79.84,85.72,85.61,81.33,84.48,84.25, 88.29,83.08,86.59,84.26,86.50,86.68,86.26,82.90,86.18,85.14, 84.73,91.75,84.05,86.56,88.86,91.57,81.48,88.92,89.07,88.11, 88.42,87.29,89.81,89.08,87.17,87.76,92.70,84.87,89.30,88.69, 91.51,90.82,87.95,91.42,91.29,95.51,92.85,87.22,89.94,90.91, 94.89,89.15,91.87,95.12,94.07,91.85,93.86,93.90,97.92,94.49, 96.37,93.38,94.14,97.15,94.59,97.26,96.44,95.01,94.20,94.51, 95.51,99.02,97.82,94.17,97.13,100.60,96.09,96.58,100.29,95.89, 101.39,97.89,96.71,100.09,101.86,98.03,102.08,97.52,100.84,102.70, 101.53,107.40,101.55,99.51,102.17,99.99,102.17,100.70,102.32,103.67, 104.90,98.41,100.87,104.71,101.30,100.23,100.08,105.46,102.73,101.44, 104.98,102.34,100.37,104.77,104.09,102.21,100.39,105.42,103.75,105.89, 25.24,23.27,25.83,25.62,27.41,26.66,27.62,29.58,30.18,30.88, 31.01,31.05,31.52,32.83,32.96,35.03,35.71,35.06,36.34,37.05, 37.70,37.08,38.59,40.72,38.66,39.04,39.45,40.78,40.12,41.73, 42.03,42.79,43.45,43.31,43.63,44.76,44.95,46.00,46.91,46.66, 46.47,46.81,47.32,48.65,49.42,50.28,49.30,50.90,52.86,51.78, 49.77,51.83,53.03,54.31,53.33,53.10,52.09,54.00,56.04,52.66, 54.04,54.47,57.23,55.94,54.88,57.78,59.08,57.83,57.43,57.90, 57.68,58.73,57.80,59.23,58.21,61.86,62.87,63.20,62.00,59.90, 61.34,63.93,62.32,64.07,64.18,61.76,66.43,63.52,66.06,64.03, 62.96,64.72,65.24,67.79,66.50,66.90,68.92,67.42,68.81,69.18, 68.46,65.65,68.52,67.58,68.77,66.49,68.83,71.58,71.10,69.73, 70.57,72.11,73.36,70.47,72.11,70.61,72.13,76.57,72.01,75.73, 74.54,74.90,72.47,74.29,73.71,76.51,76.10,72.96,78.21,77.21, 77.55,75.15,76.39,77.65,76.46,77.87,80.58,79.06,79.01,81.63, 77.12,78.52,78.78,81.70,80.28,79.72,82.46,82.66,82.83,81.52, 82.24,84.49,79.76,84.85,84.16,80.88,81.90,83.04,79.33,82.60, 87.16,81.77,86.48,82.68,84.25,86.25,87.51,86.54,86.30,87.17, 85.83,89.57,85.92,89.07,87.30,89.10,86.52,87.07,90.92,87.90, 88.40,89.98,88.95,89.42,90.39,88.70,88.36,87.64,90.64,90.87, 92.85,91.09,87.39,93.68,93.17,90.69,97.21,90.02,91.04,88.82, 95.73,92.72,92.99,93.46,94.74,98.29,95.07,95.97,95.00,95.34, 93.55,94.21,97.78,94.87,94.29,96.43,100.21,97.72,99.39,100.99, 98.18,93.59,102.43,94.64,98.13,100.32,102.05,102.23,98.48,99.35, 98.50,101.87,97.56,102.25,98.90,103.08,103.10,105.69,100.28,103.57, 98.08,96.98,102.42,103.51,101.25,104.33,102.40,107.38,105.44,106.14, 103.37,105.75,107.28,107.03,101.15,108.57,108.57,102.70,104.53,104.98, 106.92,102.33,105.45,104.91,104.68,105.17,105.19,108.83,102.92,105.91, 107.11,106.30,107.16,107.89,105.69,106.34,111.14,114.75,107.91,108.89, 108.76,114.70,111.12,111.89,107.48,110.52,112.50,110.07,109.38,112.78, 25.21,24.81,25.57,27.24,27.43,27.97,29.42,30.46,32.26,31.19, 31.72,32.28,32.86,34.26,34.60,35.78,36.64,37.41,37.35,38.82, 38.98,39.66,40.32,40.61,41.96,41.24,41.21,43.82,44.54,42.13, 44.36,43.00,45.92,45.37,45.87,45.69,45.20,48.73,47.74,47.50, 48.91,48.55,51.09,51.60,51.02,53.56,50.09,52.15,51.41,53.86, 53.85,53.69,55.46,56.07,53.31,53.30,56.70,56.17,55.85,56.84, 58.25,60.31,56.53,58.32,59.00,59.09,59.07,60.21,59.74,64.01, 61.26,59.83,62.57,61.69,61.18,61.41,62.31,62.63,64.92,60.51, 65.37,64.40,65.90,63.31,69.79,66.00,67.65,67.07,64.91,69.89, 69.66,67.98,70.05,67.47,70.90,69.68,69.63,70.62,71.18,70.11, 72.09,73.25,72.43,72.81,70.41,71.89,73.15,74.27,73.21,75.01, 72.44,74.65,79.12,76.50,79.94,75.96,77.49,77.63,77.40,78.64, 80.70,77.17,76.24,76.33,81.23,79.39,79.19,76.43,82.41,79.75, 81.59,77.20,77.73,79.80,82.38,81.66,83.24,83.12,82.56,82.96, 80.14,83.28,85.96,81.03,86.70,87.73,86.02,85.76,84.19,87.35, 84.53,84.80,89.45,86.49,86.58,88.15,91.17,86.32,87.05,88.20, 91.14,87.75,87.20,84.78,87.95,90.65,88.95,91.38,91.60,93.20, 90.38,84.58,88.63,91.00,94.39,90.83,92.25,90.44,92.02,89.82, 93.55,92.03,93.26,89.77,94.48,95.38,92.90,91.94,95.70,95.34, 93.28,94.89,96.41,91.78,97.30,93.06,99.11,99.67,96.17,96.97, 95.28,95.46,97.64,94.95,97.01,99.20,99.81,97.73,99.93,97.57, 99.39,100.85,104.16,100.15,101.92,97.32,101.57,100.65,103.97,97.55, 104.85,106.24,104.89,106.23,102.54,104.19,103.80,103.81,102.72,103.28, 102.72,104.60,104.85,107.95,102.85,109.54,104.62,102.77,103.63,105.04, 105.87,103.50,109.09,105.32,107.00,108.11,110.35,106.28,110.42,110.33, 115.97,110.03,115.40,107.80,109.36,107.09,106.98,110.47,110.35,110.76, 112.43,113.22,111.55,112.92,111.23,115.25,112.99,113.86,114.32,112.02, 115.22,113.76,109.19,112.29,110.52,114.76,118.87,118.11,113.73,115.76, 116.86,111.55,111.71,107.94,114.60,118.24,114.65,117.15,115.41,118.26, 25.40,26.18,26.92,27.54,28.18,29.51,30.24,33.47,32.33,32.70, 34.68,33.62,34.86,35.12,35.90,37.30,38.35,38.52,39.65,39.89, 39.54,41.13,42.02,42.33,42.35,42.04,43.59,44.11,45.80,47.19, 44.92,46.15,47.16,46.92,48.75,48.09,49.56,48.73,50.71,49.23, 50.76,52.64,53.86,52.26,52.35,52.46,54.41,55.64,53.27,54.53, 55.60,55.62,56.62,54.53,57.16,56.57,56.83,57.42,61.02,57.44, 58.71,61.63,62.75,59.31,61.28,60.96,63.30,62.51,65.21,62.95, 64.35,62.21,65.09,68.22,64.82,67.49,66.44,66.32,69.64,65.23, 68.32,67.04,70.03,68.07,69.36,69.72,70.20,71.85,69.57,71.55, 68.83,71.66,70.10,72.99,73.96,71.87,71.41,72.64,74.07,74.25, 74.91,74.34,73.80,71.94,73.76,76.74,81.38,81.32,73.68,76.99, 80.05,79.94,77.64,76.34,80.05,78.76,77.33,78.86,81.00,81.23, 81.92,79.61,80.16,80.83,80.27,82.80,85.55,82.82,84.15,86.05, 83.45,81.57,84.09,83.45,84.06,82.80,84.25,84.39,86.63,84.69, 84.56,87.39,86.61,84.42,86.64,90.37,86.01,89.10,88.36,89.03, 87.35,89.90,89.85,86.94,90.08,86.15,89.18,89.60,90.05,90.38, 93.48,93.43,92.93,90.89,92.87,94.50,91.00,94.68,95.39,94.81, 96.87,94.88,94.25,91.85,94.67,93.93,94.67,98.48,96.67,99.56, 97.88,99.80,98.87,95.32,96.83,95.44,99.38,97.11,97.62,102.76, 102.41,103.47,101.34,99.77,96.33,97.51,101.16,106.00,99.89,100.78, 104.21,100.40,106.24,99.63,102.51,104.57,100.60,102.66,103.32,106.15, 104.48,106.67,108.82,103.33,104.19,105.69,100.26,108.15,107.39,104.20, 104.31,104.42,105.92,110.46,110.95,109.90,106.54,106.62,106.61,105.47, 110.56,105.34,107.18,109.33,108.84,113.77,107.74,111.34,109.00,110.64, 105.70,107.49,108.32,112.81,107.49,111.50,115.56,113.07,114.79,116.41, 115.92,112.43,113.97,113.88,118.70,115.41,115.69,111.77,115.77,116.17, 118.67,116.94,118.10,112.54,116.18,118.84,117.57,116.45,118.61,114.64, 120.03,119.76,116.09,120.94,119.77,117.28,120.48,117.49,119.16,120.68, 121.00,125.39,119.48,120.70,118.83,120.18,118.78,124.21,117.99,118.36, 26.08,27.22,28.03,29.20,29.45,31.04,30.92,31.79,33.79,34.17, 33.94,37.07,35.42,37.02,38.22,38.46,39.41,40.35,41.32,40.51, 41.24,42.63,43.49,43.55,43.70,44.57,44.51,47.79,44.64,47.75, 49.33,50.11,49.51,47.30,50.33,50.92,49.05,50.19,49.70,53.38, 52.07,53.97,55.07,53.59,54.18,53.95,55.74,56.65,56.21,57.59, 56.36,59.45,57.31,59.94,58.24,59.57,61.69,59.16,62.03,62.13, 58.24,62.43,61.59,63.12,64.38,64.50,64.04,63.84,64.87,63.79, 66.81,65.52,66.65,68.88,66.33,66.13,67.01,68.45,67.73,69.68, 67.58,71.33,69.13,70.61,70.99,67.60,70.46,70.68,71.42,71.76, 73.62,72.16,71.30,74.26,75.93,76.52,76.28,78.30,74.86,76.64, 77.55,78.36,74.99,78.17,75.81,82.30,77.04,78.79,80.12,77.37, 79.84,80.39,80.21,79.95,83.01,86.83,78.10,83.31,82.22,83.14, 84.94,87.93,85.28,85.06,85.35,84.82,83.27,82.82,86.61,86.40, 88.51,88.33,86.21,88.25,88.72,89.67,85.19,88.00,88.55,92.29, 88.35,87.17,85.88,89.95,87.27,90.14,92.99,90.72,92.48,94.52, 93.08,93.64,92.77,90.34,92.28,91.81,94.73,95.46,92.73,92.34, 94.05,95.33,97.93,100.22,96.91,99.33,94.31,94.79,98.36,98.38, 97.22,97.50,98.68,102.32,96.98,98.93,102.70,102.94,101.67,100.55, 97.25,101.53,97.92,101.03,101.72,101.06,103.81,98.61,98.63,102.96, 97.96,101.58,102.58,106.62,105.43,105.67,105.12,99.54,101.63,106.44, 97.41,109.43,104.63,109.29,104.70,106.37,108.24,108.09,105.46,110.46, 109.78,111.43,112.80,109.01,108.43,107.97,109.43,112.07,110.07,110.11, 109.03,111.60,111.16,115.59,114.17,111.57,110.74,115.49,110.79,112.33, 111.36,115.09,115.07,117.16,115.84,114.20,113.55,115.84,112.06,115.89, 111.83,113.22,118.63,112.42,118.25,119.23,117.66,115.64,112.35,115.14, 119.54,116.17,117.41,119.88,119.72,116.58,117.06,122.73,120.89,121.28, 119.95,126.63,120.05,120.09,117.07,121.78,119.16,123.17,125.00,119.24, 121.86,119.66,121.02,124.44,124.00,124.87,124.85,116.02,123.38,125.02, 115.96,120.72,122.61,126.21,121.01,123.59,120.52,129.82,128.69,124.44, 27.21,27.77,28.76,29.48,29.57,32.04,31.76,33.43,34.52,35.42, 34.32,36.42,36.04,37.21,38.35,38.38,39.99,40.41,40.61,44.50, 40.22,42.87,43.76,42.75,45.57,44.61,46.74,46.92,47.93,48.45, 50.31,50.32,49.81,50.24,52.49,51.87,52.85,50.94,53.62,53.19, 54.94,54.00,56.09,56.78,56.62,55.12,58.13,58.79,59.37,57.59, 59.43,57.39,55.72,59.52,59.56,61.06,60.59,62.49,62.36,62.21, 62.84,66.42,64.31,64.49,64.96,65.99,65.78,65.75,67.96,68.77, 69.82,65.88,68.16,66.61,69.31,70.25,70.84,70.75,69.47,73.49, 69.06,70.79,73.45,72.60,75.92,74.58,74.44,73.88,74.22,75.31, 74.94,74.18,77.26,77.78,80.17,75.98,78.93,79.02,79.28,78.35, 81.71,79.27,77.99,78.87,78.58,81.55,79.57,79.63,83.83,82.98, 83.11,82.22,79.59,81.17,83.04,78.98,84.54,82.45,85.32,84.34, 85.90,85.45,86.11,86.74,86.67,85.08,89.35,85.87,90.45,89.51, 88.98,88.07,91.85,90.27,88.86,91.43,94.45,90.72,90.53,93.72, 89.81,91.77,94.50,91.60,92.26,91.63,91.89,90.65,97.61,90.63, 92.51,92.08,92.54,97.68,93.82,95.32,95.86,95.43,95.13,97.57, 100.74,97.31,97.98,99.78,96.77,96.61,97.42,100.19,101.25,102.44, 102.42,105.39,101.23,103.38,99.43,104.23,103.43,102.49,100.42,102.05, 103.63,103.31,101.86,106.63,104.20,104.83,105.79,103.89,102.76,112.54, 106.69,106.36,110.37,107.17,106.41,110.61,107.16,110.23,101.74,106.72, 109.15,111.38,110.65,107.80,112.88,113.80,109.60,113.97,111.29,109.00, 115.09,113.13,115.88,112.61,114.25,112.07,109.31,108.13,112.66,113.37, 113.25,114.71,115.72,115.65,114.24,112.74,117.69,114.54,111.85,118.17, 114.72,120.16,119.17,116.12,110.39,120.42,119.28,112.73,117.22,120.50, 114.57,118.51,113.70,119.08,114.75,118.68,123.06,114.82,121.15,119.66, 111.94,117.35,120.85,118.40,124.54,122.77,122.83,123.54,123.43,126.64, 122.35,125.43,122.53,119.84,125.82,127.34,122.82,124.47,125.52,125.12, 128.40,127.51,124.03,131.00,121.31,127.06,123.28,123.28,126.20,126.45, 128.75,128.82,129.43,126.22,131.97,128.29,127.89,128.89,126.55,129.26, 27.20,27.90,28.93,30.87,29.66,31.58,33.81,34.41,34.42,36.18, 35.59,37.33,38.29,38.14,39.78,39.66,40.54,43.47,42.83,41.73, 43.80,43.88,45.18,45.78,45.76,44.76,47.39,46.90,47.42,49.64, 50.75,48.53,50.75,52.48,52.16,51.64,54.91,53.28,54.19,54.83, 55.14,57.13,54.68,57.04,56.75,59.30,58.58,58.52,60.80,58.07, 60.25,62.69,61.49,62.47,61.09,61.75,63.43,62.14,64.91,65.10, 64.84,63.98,65.84,68.00,67.87,67.29,66.70,67.90,67.32,70.36, 68.73,70.76,70.39,66.36,69.35,72.54,71.49,70.44,72.15,71.68, 73.47,71.68,73.39,74.29,75.10,74.76,78.48,75.43,76.61,77.53, 80.74,78.24,76.90,76.67,79.63,81.03,79.04,81.58,80.07,81.01, 80.41,79.40,80.17,79.83,82.48,81.30,84.32,82.27,81.99,83.25, 87.13,83.88,83.83,84.88,84.62,85.52,87.45,85.12,85.67,87.44, 86.08,88.14,87.83,89.63,90.07,88.76,86.70,88.16,93.10,93.36, 92.13,90.21,89.09,90.02,90.33,93.65,93.82,93.67,97.73,93.32, 95.18,91.32,92.96,95.67,95.76,96.77,92.89,97.58,97.63,100.16, 95.83,100.62,97.32,98.98,99.58,99.57,100.40,97.11,101.19,103.65, 98.22,98.89,103.26,98.87,102.22,99.44,99.12,100.01,100.89,103.74, 100.60,104.92,103.59,106.62,102.43,105.41,105.36,103.17,106.89,104.47, 109.12,105.01,108.66,111.80,104.92,103.47,104.34,106.92,114.75,112.17, 108.76,110.86,110.62,106.92,106.13,108.66,109.75,112.05,107.28,108.62, 110.62,111.14,109.35,112.07,112.33,109.53,110.88,113.60,112.85,112.64, 114.42,114.60,113.33,118.17,116.20,111.46,117.19,115.19,117.88,113.76, 114.36,115.86,115.21,117.54,118.48,117.24,119.25,120.57,114.33,118.45, 120.07,122.32,119.48,123.44,115.62,115.57,119.22,118.44,118.14,120.80, 118.13,119.97,122.97,118.46,123.51,123.17,120.12,116.83,123.41,124.59, 126.25,125.16,124.23,122.96,124.08,126.40,121.10,125.07,128.03,120.76, 127.30,125.41,125.97,131.03,128.41,123.65,127.75,125.63,130.19,123.15, 131.91,127.23,127.92,126.73,126.44,125.18,126.22,130.77,133.21,122.92, 133.13,133.33,131.30,132.97,129.15,131.45,132.16,132.66,126.10,128.76, 26.95,28.42,29.60,30.00,31.26,32.52,33.98,33.75,36.21,35.64, 36.86,37.82,37.70,38.52,39.63,39.95,41.71,42.63,43.09,42.62, 44.95,45.30,46.59,46.21,48.00,46.92,46.03,46.85,50.31,48.74, 49.47,50.13,53.38,52.87,52.50,53.77,54.37,53.72,54.19,57.53, 55.79,59.19,55.47,55.16,58.79,58.54,59.81,61.29,61.22,60.08, 61.29,62.02,64.90,63.34,64.21,63.32,64.04,63.71,63.90,63.34, 67.67,66.10,67.18,68.05,66.12,68.63,69.27,70.55,71.01,67.00, 70.71,68.69,74.48,73.44,72.68,75.70,76.38,72.66,72.42,75.49, 72.73,75.20,79.06,73.47,74.68,76.94,81.04,77.42,78.32,79.55, 77.12,78.76,81.18,78.40,79.85,78.96,80.34,83.27,80.19,82.29, 82.81,80.96,82.67,81.55,82.82,84.48,80.78,83.89,85.02,87.99, 88.33,83.94,87.86,89.87,86.72,88.49,90.05,91.58,87.59,87.71, 91.41,88.91,89.46,89.96,90.10,89.92,89.51,96.06,92.88,92.62, 93.55,94.50,91.18,94.61,95.08,92.88,92.89,97.88,97.46,94.59, 97.81,94.53,95.87,94.99,97.88,103.76,97.19,99.28,96.89,98.41, 98.63,93.09,98.51,97.30,99.20,101.12,100.32,102.43,101.33,101.00, 104.20,104.40,103.38,100.94,103.32,107.15,98.78,105.89,102.04,102.63, 104.13,101.75,105.60,101.72,106.33,104.64,103.06,105.90,102.65,105.54, 106.24,102.68,108.13,106.34,113.49,105.90,110.82,112.86,111.55,109.92, 110.73,109.25,114.28,111.79,113.18,110.31,112.98,113.66,111.22,114.78, 112.36,112.36,113.34,121.08,115.67,113.97,111.90,115.29,114.87,112.48, 118.43,116.72,116.32,115.13,114.64,120.53,121.53,122.28,117.77,116.50, 119.22,124.36,114.71,118.55,118.04,119.69,118.03,122.44,121.85,116.32, 123.89,126.05,126.56,123.78,126.17,120.97,124.81,128.42,120.81,124.80, 121.87,126.30,125.14,120.44,119.86,123.43,120.39,122.21,126.95,125.58, 121.88,129.32,122.62,123.47,125.98,124.33,125.93,125.70,134.75,131.66, 131.62,128.57,129.53,132.91,128.83,129.60,128.16,126.35,130.52,131.30, 128.50,126.53,127.50,130.48,135.70,131.65,129.91,133.76,134.64,135.39, 131.97,132.88,131.66,131.07,133.63,132.23,135.52,132.89,134.06,130.80, 28.47,28.90,29.25,30.58,33.18,32.74,34.23,34.12,36.39,34.42, 37.70,38.28,40.03,38.88,40.42,42.97,42.31,42.89,44.01,43.84, 45.20,45.48,45.81,47.89,48.47,47.44,48.62,49.80,49.12,49.83, 50.53,51.91,51.56,52.57,54.64,55.06,56.54,56.40,55.96,56.42, 57.26,57.57,59.71,58.58,59.18,59.57,59.74,62.02,63.10,61.80, 62.67,61.46,65.73,63.81,63.15,66.31,62.36,67.35,66.70,64.85, 68.38,66.19,67.06,66.71,68.19,68.53,68.80,70.25,69.85,69.75, 73.19,75.99,71.01,73.34,70.15,76.45,71.36,75.54,76.87,75.25, 75.60,78.44,79.41,72.39,77.57,75.77,77.84,80.52,76.65,75.45, 78.54,84.05,78.04,78.53,82.05,83.11,84.46,83.74,84.23,85.31, 85.64,82.45,89.24,86.51,87.71,83.61,83.71,89.10,86.82,85.76, 87.03,88.17,88.63,89.54,87.95,94.37,91.26,87.30,93.03,87.77, 93.18,91.76,93.06,90.87,92.81,91.85,96.47,94.13,91.96,96.24, 90.28,92.97,92.39,96.93,97.27,92.87,99.17,101.16,95.52,100.45, 95.76,98.45,99.94,99.40,97.44,98.27,100.03,99.89,98.78,100.46, 105.84,99.28,105.84,103.84,102.27,102.08,100.15,99.40,103.99,108.19, 106.24,105.16,100.38,104.71,100.83,106.96,103.13,106.84,104.60,107.59, 110.74,105.54,105.25,106.28,109.83,110.30,107.92,105.87,108.94,107.13, 110.35,108.41,106.31,110.64,111.69,107.22,109.59,109.27,109.12,111.50, 111.73,113.02,112.40,109.15,113.95,112.23,114.05,114.96,111.52,116.78, 112.60,115.71,113.96,115.39,116.71,113.01,117.19,117.07,118.76,116.25, 118.98,120.41,116.10,118.16,119.98,118.43,118.67,120.66,119.68,118.37, 117.38,122.07,119.42,116.95,117.57,123.77,120.02,125.46,122.69,123.15, 126.06,125.08,119.50,125.17,122.34,123.44,124.66,125.57,120.92,122.70, 125.52,128.27,125.20,126.11,127.94,124.61,130.21,127.69,129.17,131.11, 134.05,136.97,125.32,130.08,131.84,127.72,125.31,131.69,132.86,130.93, 134.93,129.32,126.93,132.78,132.06,130.63,131.05,130.28,129.22,133.78, 128.81,134.49,131.68,130.86,133.66,126.24,136.45,132.35,131.33,134.56, 138.48,137.02,140.43,141.21,136.96,130.01,136.28,139.11,142.58,141.76, 26.93,28.91,30.31,30.65,30.94,32.73,33.77,35.79,35.70,37.00, 38.07,37.58,41.23,39.06,42.98,40.33,41.58,43.44,45.25,44.77, 45.66,46.74,44.67,46.52,47.80,49.81,48.04,49.30,52.62,52.75, 53.05,53.29,51.61,53.28,54.94,52.82,55.36,56.04,55.31,57.71, 58.11,58.48,57.74,61.48,59.61,61.92,60.74,62.84,60.18,62.86, 63.51,63.17,65.88,63.41,64.82,65.84,66.57,65.91,64.56,64.09, 69.80,69.81,67.89,68.70,70.78,69.60,70.91,69.72,71.78,71.25, 74.54,73.11,74.54,72.90,74.89,71.99,76.93,75.96,74.86,76.69, 76.28,76.79,77.61,77.83,80.47,75.82,80.28,76.11,79.84,77.85, 80.12,78.86,82.02,79.64,82.10,82.88,83.74,84.32,82.26,84.42, 85.34,82.37,85.71,86.60,85.48,85.08,86.82,87.92,85.14,85.04, 86.45,89.85,86.94,93.29,89.71,89.22,90.17,92.19,95.46,89.39, 89.78,91.76,91.32,95.34,92.56,93.33,95.59,95.65,92.24,96.36, 93.13,96.43,96.54,95.48,94.36,96.52,98.04,100.46,98.39,98.34, 101.20,103.62,100.36,97.70,102.80,100.53,100.80,96.41,104.74,97.19, 99.84,102.65,102.62,100.54,102.62,106.95,98.34,100.98,102.86,104.16, 101.08,109.86,105.86,99.28,100.91,99.64,105.81,110.38,104.53,107.83, 107.84,110.89,110.97,110.25,108.03,113.43,113.05,109.97,107.77,104.90, 111.23,112.25,108.12,110.30,115.90,105.97,114.08,107.55,111.48,112.87, 109.84,112.60,110.66,116.84,115.23,116.50,113.62,114.46,115.49,117.99, 113.72,112.27,113.43,117.39,120.24,118.46,117.37,116.32,120.08,114.32, 118.83,121.38,121.95,124.85,119.49,122.54,117.92,120.66,120.39,118.82, 121.45,126.41,121.58,121.68,120.93,122.65,119.10,125.29,129.47,131.91, 122.56,124.34,126.19,127.79,132.78,125.65,123.79,124.41,124.63,129.84, 124.77,134.52,128.35,126.41,125.35,130.13,126.22,131.53,128.51,132.69, 126.24,132.26,129.21,132.78,126.08,129.83,131.87,129.78,137.61,131.39, 130.26,131.76,128.70,133.94,132.91,131.94,134.95,136.67,133.05,133.69, 132.69,129.18,132.92,133.49,130.25,136.04,133.99,138.79,135.13,140.84, 132.85,138.23,132.56,135.46,135.22,142.65,140.74,137.53,140.21,138.81, 27.96,29.29,30.88,30.14,32.37,33.14,33.75,36.46,36.19,36.84, 38.10,38.95,38.94,39.65,40.02,43.84,41.73,41.96,43.93,46.27, 46.81,46.27,45.71,48.47,48.52,48.61,51.45,51.64,51.84,51.84, 53.45,54.25,54.40,53.78,55.54,56.10,56.32,56.55,57.78,56.88, 56.14,59.10,60.12,59.93,60.53,58.72,62.03,61.58,63.48,65.28, 63.39,65.79,61.59,65.78,66.56,66.01,66.79,68.33,67.10,67.00, 67.26,69.98,68.66,66.95,70.23,69.08,70.84,72.94,72.64,72.95, 73.09,72.41,72.37,74.92,75.55,74.39,73.43,74.11,76.95,77.53, 79.30,75.76,79.43,76.91,78.06,78.48,77.78,81.69,83.51,79.09, 82.85,85.40,86.80,78.88,84.21,83.53,84.19,83.33,86.63,86.96, 82.85,87.26,84.84,85.29,86.70,82.72,86.40,87.19,91.80,85.48, 89.47,90.16,91.60,86.75,92.71,92.07,89.42,93.46,89.41,89.72, 89.56,93.65,95.22,94.91,92.76,97.96,95.54,93.14,95.57,92.75, 95.54,95.18,98.83,97.07,95.99,95.69,95.19,98.54,96.79,96.90, 101.16,97.71,99.12,99.93,102.20,102.87,98.21,104.09,101.21,102.66, 101.97,101.62,102.94,102.11,105.04,102.24,101.98,105.12,105.25,105.52, 108.19,103.69,104.21,104.89,111.08,105.26,106.26,107.30,107.34,104.82, 108.15,109.77,111.65,108.38,110.30,111.32,111.88,109.72,113.40,112.52, 106.14,113.77,108.52,113.60,111.31,119.44,112.12,116.47,114.10,115.57, 116.97,112.45,110.50,116.56,117.68,107.03,112.40,114.02,116.99,120.61, 112.10,119.14,116.21,121.63,121.58,119.92,117.25,120.88,118.23,116.97, 121.97,118.59,118.93,119.90,124.76,124.18,118.59,119.09,121.18,121.17, 120.54,124.78,122.95,124.10,120.93,119.70,121.87,123.38,122.48,125.54, 123.20,129.38,122.54,123.44,123.95,127.56,127.67,126.36,128.55,131.25, 128.47,126.08,130.93,125.40,128.86,131.94,129.64,133.99,130.64,129.81, 129.53,128.36,131.11,134.39,131.91,137.50,133.19,128.81,131.33,134.63, 125.86,130.19,132.14,134.17,130.31,132.31,133.73,136.22,133.00,131.13, 129.78,133.77,136.93,137.55,132.69,134.95,137.24,134.42,140.25,137.69, 134.17,139.31,138.90,139.41,136.57,140.26,142.96,142.76,138.65,142.34, 18.42,20.37,19.94,19.74,19.29,21.46,20.75,20.45,21.56,21.62, 22.23,23.39,23.26,23.21,23.60,24.22,24.40,25.24,25.59,24.38, 27.06,26.43,27.08,26.44,27.64,26.86,27.92,27.98,28.91,27.29, 28.28,27.96,28.65,29.37,30.00,30.24,29.61,32.24,29.40,30.91, 31.84,31.79,31.52,32.09,31.42,32.37,33.54,33.22,32.85,34.56, 32.32,32.72,35.18,36.24,34.15,33.50,34.94,35.67,35.00,34.68, 36.46,36.77,38.08,38.39,39.51,37.22,36.94,36.62,36.72,38.23, 38.83,37.79,37.72,39.58,38.48,39.59,38.60,38.96,39.57,40.73, 38.64,40.26,41.00,40.14,40.84,39.93,42.58,41.30,42.99,44.45, 42.10,44.13,42.78,42.98,43.38,42.99,43.96,42.27,44.41,43.54, 43.98,44.24,45.31,44.32,44.67,45.01,44.66,45.46,43.81,44.36, 45.76,46.38,48.25,45.84,46.25,47.76,45.78,46.71,47.15,47.02, 48.37,48.96,46.43,47.42,48.09,50.16,47.23,50.14,46.57,48.97, 49.17,50.47,49.80,49.25,49.40,51.47,50.26,51.86,48.72,52.93, 50.25,51.81,51.37,51.40,52.50,52.60,49.83,52.39,52.28,51.46, 53.14,52.22,51.16,52.17,55.25,53.09,54.93,53.66,53.41,54.74, 52.97,54.21,54.35,53.88,55.65,55.38,55.15,55.55,54.78,58.04, 54.47,54.45,55.64,54.31,56.36,59.11,55.87,55.60,57.24,54.89, 57.18,56.27,56.37,57.32,59.57,55.52,56.89,58.53,58.33,57.48, 57.93,57.33,57.21,60.98,58.66,62.01,63.68,60.68,60.74,61.00, 59.43,59.90,60.32,61.22,60.25,60.58,59.11,62.37,60.33,62.34, 60.55,61.91,61.86,61.32,59.57,61.42,63.26,61.24,61.44,63.40, 59.55,64.43,65.97,62.62,62.44,65.48,61.28,65.34,63.99,62.77, 63.72,65.25,63.38,64.16,62.62,62.82,67.38,61.95,65.65,64.07, 63.37,66.15,64.35,66.36,67.68,63.90,65.69,64.55,65.63,68.47, 66.61,67.73,66.90,66.25,69.76,69.04,66.82,69.53,69.00,66.37, 67.17,67.53,69.31,67.10,67.17,69.57,66.82,70.06,68.27,68.72, 70.33,69.61,70.74,69.07,67.99,70.51,67.81,72.96,69.66,69.96, 69.98,70.85,68.28,72.03,73.64,70.73,71.51,72.84,73.40,69.07, 19.52,20.40,20.36,20.38,22.09,22.67,22.78,22.60,22.97,23.16, 22.77,25.01,25.22,25.23,27.67,26.74,26.10,26.68,27.64,27.17, 27.98,26.46,29.76,30.45,29.50,30.49,30.03,29.89,31.30,31.41, 31.25,31.78,31.29,31.83,32.68,35.16,34.25,33.41,34.54,34.59, 35.21,34.45,35.97,35.38,35.57,34.56,36.76,36.13,36.48,36.42, 37.29,38.76,38.62,38.58,37.97,38.35,39.81,39.81,39.92,39.26, 40.39,40.87,41.15,41.43,41.16,41.53,42.88,41.72,41.27,42.17, 43.08,41.37,43.84,43.97,43.95,42.42,44.71,43.31,43.63,44.66, 45.63,43.26,44.66,45.25,44.38,45.41,46.10,46.00,46.73,48.17, 46.36,47.05,47.63,47.16,49.75,50.84,47.36,50.19,48.97,48.58, 48.82,48.64,48.47,49.92,50.33,49.47,49.67,50.29,49.85,53.23, 50.44,52.39,51.90,51.20,51.86,54.08,52.07,53.92,52.09,55.01, 51.67,54.87,53.96,53.61,53.84,52.58,52.57,52.63,56.60,54.60, 54.89,55.39,54.58,57.33,54.53,55.40,55.65,56.66,57.59,57.51, 56.51,55.04,55.74,58.02,57.88,57.15,60.08,57.74,56.94,59.14, 58.54,58.77,57.40,59.98,57.84,60.42,58.78,57.71,58.61,60.92, 59.75,58.59,59.82,61.60,59.36,61.06,58.28,63.27,61.47,61.59, 63.98,61.36,64.85,63.59,62.43,64.48,66.11,62.35,61.37,61.94, 62.62,61.79,62.54,63.97,63.13,66.89,65.90,62.48,61.70,65.22, 66.18,65.09,65.50,64.88,64.70,62.89,64.18,66.91,66.13,66.23, 67.70,66.74,68.82,66.63,66.01,66.92,69.23,70.77,65.57,67.48, 67.98,68.11,69.69,68.47,67.69,70.40,69.71,67.54,71.62,67.31, 69.80,68.59,70.36,70.29,70.71,69.05,69.58,72.05,69.15,71.37, 68.29,72.31,71.94,69.14,70.28,70.58,73.15,70.93,73.83,72.96, 72.49,71.02,73.10,71.54,71.56,72.30,72.37,74.00,78.49,75.46, 74.46,75.42,74.19,74.52,73.38,76.65,77.03,75.23,77.07,74.93, 77.07,75.40,74.64,75.20,76.29,73.94,75.13,75.95,73.94,74.79, 75.93,74.33,77.33,75.92,81.26,77.58,78.91,77.10,76.64,75.23, 76.82,77.31,80.42,78.32,80.35,74.38,80.10,77.69,75.88,80.88, 20.37,20.86,21.84,23.07,21.78,24.25,24.24,23.95,25.57,25.77, 25.80,25.76,26.38,28.69,28.15,29.65,29.38,29.38,30.27,29.49, 30.52,30.87,31.01,31.51,32.04,31.53,32.18,32.00,34.33,34.93, 34.37,34.70,33.99,37.27,35.35,35.19,36.19,35.66,36.72,36.14, 38.37,38.94,38.66,39.51,38.08,38.74,39.82,38.61,39.15,40.08, 40.25,41.71,40.43,42.51,42.43,42.61,42.51,42.27,42.99,42.66, 42.07,43.00,44.48,44.09,45.70,44.47,45.40,44.09,45.10,45.18, 47.32,47.13,47.83,45.97,45.99,47.08,46.96,47.01,50.93,47.60, 48.24,48.90,48.54,50.83,49.72,49.87,48.48,50.21,48.96,50.78, 53.40,53.40,52.76,50.13,53.42,51.90,50.79,52.90,52.22,52.92, 54.51,53.31,54.30,54.46,54.20,55.66,55.10,54.71,54.39,54.75, 56.71,57.81,55.95,56.74,57.85,58.70,55.64,57.17,58.67,55.95, 57.24,56.82,57.64,58.54,60.53,58.31,60.74,60.28,59.33,58.56, 60.84,60.45,60.17,61.78,59.05,63.26,60.81,59.54,60.90,59.24, 60.41,62.96,62.15,65.15,62.27,62.07,62.19,64.88,64.84,61.26, 63.73,63.40,64.63,63.11,66.43,63.54,65.84,65.82,64.20,63.44, 66.79,67.13,65.98,64.35,68.94,68.35,68.27,67.44,65.61,67.10, 67.05,66.19,68.12,68.94,67.01,68.02,70.53,68.50,65.97,69.48, 68.07,69.58,67.68,68.94,71.65,72.54,68.04,71.71,71.62,73.18, 71.29,75.88,72.67,71.72,68.14,72.89,72.08,72.59,72.73,74.37, 71.71,74.39,74.81,73.95,74.34,71.56,71.53,72.30,76.07,74.20, 74.59,75.28,77.73,74.88,76.45,76.05,73.94,75.81,70.97,76.69, 73.78,75.88,77.89,76.06,75.50,76.66,73.77,78.46,74.70,77.58, 79.15,79.02,74.68,76.47,77.37,80.08,74.65,75.50,78.36,73.91, 82.82,77.87,75.20,79.07,79.10,80.59,80.14,79.72,81.16,81.40, 78.10,79.13,85.74,82.80,80.55,81.26,81.47,82.62,82.85,85.14, 83.97,85.35,83.17,78.97,82.50,81.49,82.46,86.19,81.58,83.18, 84.30,81.53,81.96,82.87,83.54,84.78,86.78,84.64,86.02,84.11, 85.24,85.56,87.23,87.07,86.85,87.10,85.40,88.99,86.98,90.76, 21.62,22.32,22.93,25.85,24.09,25.27,25.57,26.76,25.78,26.03, 27.51,28.73,28.50,30.08,29.24,29.96,30.29,31.03,31.69,32.82, 32.97,32.31,33.92,34.08,34.14,35.28,33.88,34.36,36.80,34.70, 36.78,36.59,36.95,37.26,38.21,39.09,39.26,37.04,38.20,39.05, 39.96,40.55,42.04,40.77,40.46,40.67,42.96,41.90,44.34,44.16, 45.32,43.71,45.20,46.61,45.83,45.62,46.26,46.53,46.47,47.00, 46.60,47.41,46.48,48.41,50.69,49.63,48.07,48.61,50.77,48.47, 49.92,48.44,49.00,51.46,51.21,52.30,51.65,50.54,53.67,50.83, 54.19,53.00,53.29,53.67,53.65,55.62,53.33,55.28,55.01,55.26, 55.32,53.37,57.73,54.96,55.98,55.41,57.37,58.51,56.79,57.58, 56.85,58.36,57.32,58.31,59.73,60.20,60.48,57.51,60.58,58.52, 61.85,59.97,60.09,62.52,62.64,61.32,64.84,61.38,62.14,62.67, 63.02,64.23,64.18,63.76,61.98,63.93,66.56,62.91,64.48,66.09, 63.04,65.14,65.09,66.05,66.01,69.44,65.35,66.75,67.74,67.00, 65.73,64.04,66.76,68.12,68.05,68.85,68.38,68.44,69.53,69.47, 69.27,69.62,69.70,68.83,68.73,70.91,68.94,69.60,70.00,71.56, 71.72,70.27,70.55,71.36,70.33,77.67,72.14,69.91,74.81,71.13, 75.45,74.52,75.35,74.76,76.91,72.59,74.82,76.75,74.78,76.79, 75.70,77.63,73.79,77.31,75.47,75.42,75.78,76.78,72.55,75.59, 79.68,76.89,76.10,75.94,77.70,75.69,75.69,78.15,78.87,79.71, 79.37,81.18,76.91,78.91,81.43,79.34,80.65,81.10,79.51,80.12, 79.97,82.34,77.59,83.18,80.12,81.41,82.99,81.98,82.78,86.19, 84.33,81.97,83.78,82.04,83.57,84.24,83.29,83.65,85.33,84.67, 85.40,83.10,86.04,84.77,86.51,83.05,86.73,89.29,82.87,85.37, 85.81,85.21,87.92,84.88,87.40,81.74,89.08,89.56,89.44,86.95, 86.04,82.54,91.14,90.08,89.79,89.25,91.05,89.66,91.99,90.97, 91.61,91.21,86.48,89.39,86.34,90.87,92.33,88.91,88.60,90.69, 89.01,89.87,89.83,87.34,90.39,92.52,89.01,90.28,90.71,94.30, 91.42,91.37,88.06,92.94,94.13,90.74,94.05,93.09,94.65,94.57, 23.47,21.82,24.72,25.06,25.62,27.45,27.45,27.64,28.17,27.87, 29.11,29.02,30.98,32.53,32.15,30.71,33.13,32.27,32.12,33.92, 34.69,34.40,36.60,36.41,37.27,37.03,37.33,37.95,37.26,38.75, 39.59,41.29,38.93,41.28,39.15,39.40,41.41,41.65,42.64,43.45, 42.81,43.44,42.11,42.63,45.06,45.40,45.58,45.72,46.21,46.96, 45.18,45.94,49.26,48.25,47.05,47.76,47.58,49.40,51.97,48.40, 49.49,50.94,50.61,51.24,51.05,52.03,53.55,50.33,53.02,53.51, 54.23,53.42,54.97,54.69,56.76,56.25,56.83,56.84,56.05,54.78, 57.02,57.84,57.35,58.42,57.75,58.58,56.65,57.43,57.96,58.28, 60.22,59.94,59.92,61.03,61.42,61.73,60.55,59.28,61.83,59.21, 61.75,62.09,63.30,62.87,66.24,66.51,65.17,65.95,63.25,60.51, 65.45,65.36,64.90,64.07,66.25,66.36,64.94,67.27,66.54,69.34, 67.92,67.67,69.77,67.39,67.24,68.21,70.12,69.32,70.67,67.90, 70.66,69.09,74.10,71.05,67.37,69.46,70.52,67.30,69.04,73.12, 72.67,73.36,69.85,74.38,71.31,73.03,73.79,72.05,71.58,76.14, 77.03,75.31,74.84,77.12,76.08,74.57,74.01,78.93,74.33,78.18, 74.39,78.86,76.90,74.99,72.63,74.98,79.87,79.42,76.36,75.96, 76.56,78.85,75.73,81.10,79.76,76.09,83.09,79.25,81.03,81.16, 82.04,79.45,80.06,81.75,81.91,80.77,81.89,85.64,81.91,82.54, 82.80,83.08,84.33,82.98,83.88,81.47,82.33,80.52,85.43,84.04, 85.92,84.68,87.05,84.99,86.89,83.38,85.01,85.82,84.85,87.28, 87.30,90.21,85.72,85.35,88.50,89.43,89.51,87.10,85.59,91.14, 88.68,86.37,88.15,90.14,91.11,85.89,90.59,85.96,87.92,87.68, 92.03,94.21,89.21,88.36,88.63,89.07,89.82,96.44,91.69,93.12, 96.42,89.77,92.93,97.00,93.37,95.54,92.76,89.93,91.80,97.72, 97.09,95.77,99.18,93.02,97.47,93.72,95.89,97.48,96.59,97.22, 94.07,94.05,96.97,93.23,97.60,97.43,99.08,93.00,98.89,96.01, 94.88,103.05,95.92,97.86,97.11,97.70,98.90,95.09,104.54,98.15, 107.25,100.46,102.88,99.21,99.79,104.84,97.65,94.98,102.42,97.76, 23.92,24.30,25.39,26.66,28.08,27.35,28.49,28.97,29.71,31.48, 30.29,31.83,31.80,32.10,32.85,34.96,32.35,36.20,35.06,34.03, 36.50,36.96,37.51,38.19,38.43,38.45,40.97,41.51,41.36,39.38, 40.97,42.43,40.35,42.89,43.59,45.38,44.05,44.19,44.41,45.09, 46.16,46.32,47.39,46.57,46.83,47.78,46.81,48.63,51.03,47.58, 49.38,50.87,51.28,52.39,51.51,50.39,53.43,52.23,52.74,53.21, 53.28,53.94,55.55,54.16,54.96,55.08,54.38,56.57,57.02,56.58, 54.46,59.14,59.00,55.95,58.83,58.41,59.28,59.75,58.47,62.12, 60.22,60.56,58.57,58.26,61.11,59.73,60.89,60.39,62.38,62.56, 62.03,63.67,65.90,63.66,64.20,65.02,64.45,63.38,64.54,66.28, 67.76,66.78,67.44,65.02,66.54,68.22,66.29,66.46,69.93,69.81, 68.54,67.72,67.37,68.91,70.04,69.22,70.71,69.14,69.35,72.00, 71.16,70.07,71.68,71.76,71.74,71.58,74.59,75.58,70.87,73.11, 75.34,75.34,74.10,74.74,77.26,75.50,76.83,74.89,78.19,76.93, 77.49,76.76,77.81,76.11,74.90,80.67,76.37,79.59,77.59,79.02, 79.82,78.91,78.72,79.22,77.69,78.48,76.62,82.09,82.03,81.79, 81.34,86.07,79.36,83.96,80.63,78.97,79.44,80.74,78.88,84.10, 84.42,83.10,83.46,85.77,83.84,84.96,87.94,83.36,83.50,86.54, 88.83,86.31,85.66,87.84,89.86,88.16,89.41,90.31,90.49,83.43, 83.67,86.38,91.23,91.20,88.70,91.92,90.20,90.64,91.28,88.77, 86.79,91.93,89.59,91.63,92.17,88.83,89.10,94.08,91.28,94.97, 90.27,98.10,93.54,93.28,91.68,93.07,93.38,94.34,96.33,95.53, 93.73,96.08,95.73,92.32,93.92,94.46,96.81,94.35,94.40,97.07, 96.04,97.09,94.54,95.86,96.36,95.38,96.31,102.32,100.28,98.13, 93.87,96.60,99.65,101.14,101.10,100.47,103.09,96.22,98.79,98.17, 99.22,101.73,99.05,98.32,99.33,101.05,102.05,105.15,98.26,103.50, 102.53,100.42,104.78,105.04,103.15,100.71,107.22,106.03,99.93,104.36, 103.76,104.91,101.99,101.81,105.10,103.93,101.41,105.82,106.60,108.99, 106.81,107.02,104.02,102.93,103.80,104.63,104.66,104.94,108.03,110.19, 24.29,25.14,26.56,26.51,28.95,27.97,30.71,29.74,31.16,32.17, 32.93,32.34,32.30,34.24,36.67,35.00,37.50,36.35,37.90,38.24, 38.12,38.96,39.26,39.65,41.02,39.60,42.51,42.69,42.62,40.62, 42.41,44.10,44.23,44.89,47.37,44.57,47.02,47.95,46.59,46.34, 47.16,48.41,48.15,48.76,49.00,48.57,49.36,49.51,51.37,52.44, 52.61,52.89,55.46,52.34,54.94,54.69,55.46,55.87,55.40,56.89, 57.42,56.89,59.64,56.01,59.79,57.75,56.25,60.22,58.35,59.12, 60.89,59.29,59.97,61.92,61.17,61.45,60.76,64.23,63.52,64.70, 62.84,62.22,61.90,64.05,64.06,64.04,65.40,66.95,64.78,63.57, 65.09,63.50,67.95,71.69,67.76,67.54,71.66,67.51,68.20,69.19, 69.29,70.07,68.03,71.14,71.02,71.33,69.09,69.49,74.85,72.38, 73.49,73.89,75.90,75.86,74.89,73.30,76.23,75.87,72.71,72.98, 76.15,73.94,74.65,75.77,75.79,77.90,75.60,79.15,76.19,77.11, 76.27,77.44,77.81,78.79,78.44,79.62,80.70,81.62,81.80,80.60, 85.28,79.57,81.10,79.31,82.74,80.99,84.96,81.62,81.76,81.86, 84.07,83.48,86.46,87.85,84.34,85.15,86.70,86.94,87.50,87.01, 84.33,87.13,89.33,83.83,87.34,85.53,85.65,87.78,83.73,85.74, 88.17,87.03,84.95,89.74,88.18,88.11,89.42,91.21,91.06,88.57, 90.77,91.04,92.90,88.81,92.14,92.05,92.03,94.63,90.19,95.12, 91.55,94.28,95.87,97.40,94.88,91.45,95.80,90.02,95.79,94.49, 93.05,94.61,96.50,94.24,96.89,94.84,95.75,100.59,96.27,96.90, 100.14,95.14,96.55,97.87,94.93,94.63,99.90,100.08,98.92,98.56, 103.12,99.20,105.84,100.69,101.32,100.86,103.10,102.29,100.58,101.24, 100.15,102.02,103.89,104.11,103.15,100.22,103.16,105.77,101.15,104.47, 106.52,105.81,101.43,103.75,105.62,106.66,109.05,106.48,108.88,103.46, 105.84,105.34,105.80,106.55,104.75,107.76,104.87,110.19,108.38,109.78, 110.99,107.08,104.49,106.70,103.23,109.48,109.06,109.77,111.28,111.21, 110.81,111.77,114.46,107.66,113.13,110.25,111.94,116.14,112.90,112.15, 107.69,108.63,112.29,109.97,107.88,112.88,111.32,115.76,114.68,114.40, 26.22,26.28,27.99,28.67,28.99,30.54,31.09,32.03,33.48,33.20, 33.41,34.68,35.57,35.76,36.34,37.84,38.66,37.78,38.79,38.46, 40.72,39.96,40.77,41.60,40.72,42.38,42.03,44.41,43.79,45.28, 45.82,46.76,46.94,46.78,46.88,48.15,48.19,46.68,50.14,49.62, 52.19,50.74,50.88,52.29,52.23,50.58,54.69,54.23,54.33,54.11, 52.22,55.41,54.65,55.43,53.47,56.98,57.13,56.64,57.73,58.08, 57.78,59.57,58.59,62.66,61.27,58.36,63.67,60.29,62.52,63.07, 61.24,63.97,65.00,66.41,63.63,63.58,65.43,68.02,66.65,67.55, 65.96,66.10,66.86,65.86,67.46,65.16,68.53,66.45,69.32,68.44, 72.86,67.98,73.02,71.02,68.69,70.09,70.52,72.89,71.43,71.02, 75.96,74.39,75.00,71.75,71.27,75.30,73.94,73.26,78.33,77.45, 75.79,74.72,77.50,76.73,80.26,76.00,75.73,77.75,78.43,79.48, 80.30,79.34,77.22,80.26,80.33,79.75,77.19,78.97,84.88,84.43, 81.43,77.02,80.22,84.10,81.98,82.11,82.84,84.13,83.88,81.63, 81.43,87.03,85.12,87.87,84.42,83.79,82.79,89.24,86.47,91.17, 90.76,90.57,87.85,85.42,88.67,89.86,90.46,92.69,92.86,91.61, 91.70,91.83,91.37,92.03,95.34,94.38,94.28,93.34,95.79,92.37, 88.08,93.52,91.44,88.66,92.24,92.83,92.42,90.26,95.00,96.06, 96.07,96.59,97.32,97.38,96.89,95.39,97.08,95.40,95.82,94.95, 94.19,96.12,97.13,98.22,95.79,97.02,103.68,101.05,97.80,99.97, 98.63,98.58,101.63,97.09,102.12,99.24,97.04,103.58,103.43,102.17, 103.60,100.28,98.53,100.48,105.69,102.21,101.20,103.48,102.83,104.45, 105.13,104.90,102.26,105.11,105.60,100.42,100.29,104.43,105.12,106.14, 105.58,107.06,106.98,113.73,108.75,106.39,108.45,107.29,103.39,109.78, 105.42,106.59,108.41,112.82,110.28,106.13,108.52,110.59,106.90,105.10, 107.66,114.01,109.69,111.13,112.86,113.84,112.19,113.04,111.78,111.52, 110.69,114.52,113.65,110.47,109.55,114.36,115.56,118.13,113.88,111.58, 114.73,114.79,113.48,115.49,113.31,115.33,115.51,116.79,112.85,116.87, 114.88,111.75,114.42,114.37,117.54,118.78,119.48,117.94,120.62,121.82, 26.80,27.37,28.51,29.43,29.78,31.18,32.12,32.83,32.45,34.23, 34.51,35.36,35.56,35.69,38.20,37.92,38.94,40.85,39.80,41.92, 41.25,42.67,41.92,43.32,46.71,43.86,43.70,45.67,45.89,45.45, 48.35,46.48,47.21,49.52,49.46,49.91,51.72,51.39,49.62,53.30, 54.19,52.55,53.08,53.69,53.91,53.50,54.22,58.77,58.26,56.59, 56.86,57.44,56.18,59.05,61.87,59.40,59.78,60.12,58.12,59.25, 64.16,60.36,61.19,61.04,63.43,63.77,63.97,63.72,62.47,63.77, 63.74,65.25,65.13,67.73,66.46,68.34,68.31,67.17,67.81,70.01, 71.92,68.94,67.58,71.49,68.77,72.34,70.46,71.04,70.36,71.94, 73.28,72.66,70.27,73.59,74.87,73.71,76.91,74.85,76.94,75.80, 74.41,73.90,77.91,77.47,79.11,77.07,77.75,74.55,79.02,77.61, 80.04,77.49,76.93,79.44,80.96,80.11,80.98,80.25,83.57,84.57, 82.02,83.41,81.65,84.49,84.09,82.48,83.20,81.68,85.80,86.62, 84.01,87.83,84.74,82.53,84.32,86.60,87.58,88.24,90.36,89.64, 88.04,89.99,86.06,88.26,89.85,90.83,91.80,90.72,91.47,88.30, 91.39,88.35,93.25,88.32,92.03,89.82,94.22,92.39,91.56,93.82, 96.08,97.36,97.20,95.67,94.61,98.46,95.81,99.02,95.03,96.90, 98.75,102.13,96.52,99.78,98.22,100.62,98.68,94.75,98.37,99.00, 101.20,98.53,100.99,96.40,98.97,98.78,99.50,101.06,102.71,101.07, 101.67,101.42,100.03,102.22,103.22,104.34,103.03,102.89,105.21,103.45, 102.87,108.49,102.66,107.24,103.96,105.07,104.76,104.25,104.60,108.38, 106.18,106.68,105.63,109.96,108.76,103.92,109.80,103.58,108.98,109.77, 107.81,108.30,110.08,106.89,108.04,111.55,108.65,114.22,112.66,113.89, 111.80,113.30,115.95,110.10,111.95,116.38,111.92,110.04,112.11,114.78, 112.19,112.87,106.91,116.59,114.99,115.69,110.86,111.97,112.84,115.30, 115.09,116.12,116.02,117.04,118.68,117.84,115.11,118.57,116.97,119.40, 113.38,115.96,116.09,118.85,123.44,115.34,125.45,120.27,120.96,120.58, 120.83,123.22,119.37,121.50,117.24,116.28,122.16,123.63,122.63,124.54, 121.69,121.46,122.73,124.35,123.14,126.23,122.59,125.04,124.36,123.41, 27.71,29.01,28.53,29.81,31.29,30.94,32.72,33.23,35.18,35.67, 36.03,36.24,36.03,38.26,40.92,40.78,40.17,41.16,41.88,42.63, 43.31,42.63,43.69,43.77,46.34,46.75,46.47,47.02,45.50,49.01, 50.85,47.92,51.06,50.21,49.16,52.44,52.84,50.54,53.96,53.15, 53.76,54.43,56.22,54.55,56.33,54.62,57.13,55.90,57.36,57.56, 56.55,55.38,58.76,58.86,61.25,58.80,62.06,60.22,61.85,63.93, 64.43,64.23,61.64,65.52,65.56,64.27,64.91,66.54,67.55,70.50, 67.45,67.00,67.61,66.69,70.25,65.99,69.54,70.76,69.64,72.34, 69.06,72.04,71.72,73.66,73.01,75.93,72.07,71.04,72.12,73.65, 76.45,74.65,74.95,74.50,77.46,77.40,77.19,76.04,76.67,77.58, 77.85,80.26,78.18,81.89,80.38,81.20,82.62,84.12,85.19,79.22, 82.99,84.71,80.16,82.76,85.78,82.76,83.90,82.62,79.94,87.56, 85.24,89.92,85.24,88.40,84.12,88.76,86.71,84.44,89.44,87.63, 85.51,91.63,88.46,90.04,91.44,92.50,91.64,90.75,89.69,87.62, 89.76,93.29,92.09,88.98,94.33,91.43,94.14,95.06,96.89,94.44, 96.19,92.62,97.48,95.64,97.20,96.13,97.76,95.10,98.82,97.49, 97.42,98.83,98.28,95.84,96.69,98.04,98.08,99.95,102.10,101.41, 102.63,102.81,99.30,102.29,99.19,100.73,106.91,103.29,100.66,96.95, 104.07,104.34,104.41,101.86,103.20,105.64,105.42,103.43,106.94,102.37, 103.37,106.30,106.13,105.92,105.95,106.17,105.53,106.31,107.76,107.51, 108.92,107.54,109.24,105.06,104.50,106.77,108.79,112.90,111.91,106.13, 109.92,109.70,108.52,110.39,111.47,113.50,114.74,111.90,112.58,114.54, 113.92,113.74,115.24,111.94,115.10,112.26,115.17,115.04,111.94,118.45, 118.60,114.68,117.59,112.00,118.21,114.21,113.67,117.97,114.25,112.36, 117.39,111.84,117.01,119.18,120.23,120.11,125.73,118.62,119.87,114.63, 121.48,121.23,122.68,118.44,121.04,120.58,120.91,121.13,123.33,120.31, 125.17,120.72,124.16,122.12,121.66,121.13,124.59,120.62,123.73,125.50, 122.18,125.97,126.79,124.37,124.84,123.68,122.89,123.56,126.86,127.27, 126.97,122.91,129.08,126.58,122.30,133.12,128.87,127.53,125.65,130.93, 28.07,28.92,30.82,30.55,32.07,31.46,34.82,34.49,34.56,35.90, 37.10,38.01,37.94,39.15,39.93,41.10,41.22,42.27,42.36,43.56, 43.53,45.05,42.77,45.79,46.43,48.06,48.43,50.02,48.43,47.42, 49.73,50.79,52.25,51.84,52.11,53.28,54.08,52.11,52.90,55.13, 55.47,57.12,57.06,58.14,58.95,59.12,57.79,59.04,59.78,63.03, 62.04,62.63,63.32,63.39,61.68,61.19,64.61,63.26,64.46,65.62, 61.66,67.95,67.14,69.76,69.86,66.40,66.43,68.45,65.19,69.76, 67.96,69.90,70.36,72.62,70.01,75.26,72.59,75.24,74.12,73.54, 72.92,75.12,74.54,75.27,76.07,75.10,77.26,75.59,79.06,77.98, 77.40,73.40,77.92,77.56,80.87,79.70,78.05,78.36,81.62,78.96, 78.38,82.90,79.82,79.35,82.24,81.54,82.32,84.47,88.25,83.97, 84.69,83.18,84.11,86.85,89.73,83.97,88.49,89.89,87.02,86.32, 87.49,87.38,89.53,89.25,86.63,90.17,88.25,91.40,87.31,90.83, 89.22,91.61,92.85,96.37,91.70,91.49,91.21,96.78,93.83,92.03, 95.11,99.09,94.34,94.47,93.30,98.40,92.92,98.51,97.21,97.71, 92.34,94.22,95.78,97.96,100.34,99.91,95.60,97.51,101.40,102.10, 97.45,99.70,102.60,103.57,100.88,102.82,100.41,103.16,103.90,103.57, 101.28,105.93,102.72,106.85,105.13,105.88,105.70,105.80,106.83,101.87, 102.06,104.49,108.65,102.39,106.11,108.03,109.30,107.53,107.88,109.42, 107.65,108.11,109.91,106.20,112.54,106.84,114.18,111.65,113.21,109.59, 112.89,107.88,109.77,113.03,111.87,114.38,112.69,111.94,117.16,110.64, 119.83,115.97,114.28,120.05,114.26,112.45,116.38,108.09,114.36,111.97, 118.22,116.81,116.65,121.57,120.85,119.67,116.03,112.90,119.70,116.20, 119.91,120.02,123.41,122.31,122.29,117.40,122.27,127.13,114.97,115.27, 122.58,120.89,124.03,124.38,123.67,120.47,120.78,125.23,120.28,125.58, 126.10,122.33,120.41,120.95,120.73,124.03,126.98,125.42,122.52,129.08, 119.59,126.19,125.40,130.99,130.50,126.49,128.15,123.56,129.82,126.54, 131.10,126.13,130.57,127.62,128.40,127.93,130.31,127.09,129.86,126.14, 127.41,129.86,133.19,128.93,129.87,132.24,135.24,127.42,136.87,133.21, 28.28,30.67,30.12,31.34,31.96,33.43,35.71,35.33,36.56,37.01, 38.46,38.85,39.71,41.27,44.15,42.06,42.58,43.57,44.54,44.05, 46.48,44.96,46.11,44.96,50.14,49.48,49.37,49.71,50.42,49.16, 50.58,51.63,51.66,53.00,56.20,56.35,57.84,53.60,56.00,57.90, 57.66,58.65,58.42,58.05,57.36,60.49,59.98,61.92,63.29,62.50, 62.72,60.47,63.28,62.51,64.28,65.67,65.15,69.42,65.20,67.59, 67.96,65.86,68.90,67.51,67.81,66.98,70.71,70.65,70.78,70.32, 72.39,73.57,71.77,72.65,74.23,72.40,73.20,76.70,76.68,74.41, 76.76,77.04,78.13,79.66,76.21,76.73,78.34,79.28,78.29,81.62, 79.64,81.90,82.42,80.93,82.14,80.11,81.04,82.89,79.58,80.53, 82.55,84.49,83.68,86.65,84.93,84.87,85.86,86.95,85.75,87.88, 88.60,87.02,87.93,90.10,86.30,89.37,88.97,88.33,87.14,85.55, 93.99,90.64,86.13,90.84,89.37,89.86,94.68,90.28,89.78,94.86, 98.38,90.90,95.37,94.43,93.98,98.68,97.84,92.27,97.44,95.63, 99.06,98.76,99.97,95.48,93.22,101.70,96.99,98.09,103.26,98.26, 101.57,100.88,99.62,99.39,100.65,103.88,105.23,100.18,102.45,102.02, 96.48,102.20,100.46,108.63,100.65,107.76,102.10,109.27,104.75,104.71, 101.70,109.58,107.91,103.56,109.85,105.75,107.04,106.65,107.38,109.74, 108.12,107.33,108.34,108.25,111.56,113.20,112.20,112.19,112.50,108.97, 110.37,113.33,112.59,111.55,117.44,113.96,110.90,112.41,114.48,115.47, 113.86,113.70,113.51,113.41,114.38,111.96,120.05,116.80,117.57,112.75, 121.84,117.06,114.40,112.81,112.82,117.31,116.28,113.15,122.44,115.48, 119.05,114.08,117.91,114.95,122.27,123.19,120.20,120.58,124.16,122.92, 123.22,120.31,124.64,124.27,117.85,124.03,120.08,122.08,119.10,129.15, 127.88,124.55,126.06,128.06,129.31,127.35,128.48,130.54,124.77,129.79, 126.47,129.38,131.28,122.37,127.16,126.13,128.90,127.26,130.66,126.69, 131.92,131.73,133.70,133.51,134.39,139.49,131.47,131.32,131.82,132.52, 126.20,132.28,131.42,135.59,130.96,136.13,130.20,134.28,136.96,133.17, 138.69,142.80,126.42,136.27,135.43,136.28,140.25,130.68,135.17,134.17, 29.25,30.51,32.56,34.07,33.92,33.79,35.74,36.59,37.59,38.38, 40.55,39.85,39.99,42.34,41.33,44.04,44.13,44.17,44.67,45.22, 46.73,47.55,48.35,46.91,49.02,49.77,50.96,50.84,50.91,50.67, 53.30,53.94,54.31,53.88,55.56,58.17,55.81,52.69,55.33,55.27, 56.16,59.39,58.02,58.04,61.10,61.52,60.69,63.18,62.74,63.69, 62.46,62.88,66.31,65.32,65.28,67.52,68.83,67.66,66.60,69.27, 69.51,70.98,66.85,70.59,69.46,72.11,71.67,75.80,73.04,72.61, 71.75,71.25,74.80,73.82,71.31,74.03,74.58,75.57,74.69,77.57, 75.52,77.10,79.26,79.47,78.50,83.47,79.05,82.11,79.35,80.03, 83.89,83.35,80.29,81.86,85.17,82.16,83.32,84.82,87.76,83.82, 83.99,84.23,83.60,86.04,83.91,88.46,86.70,87.25,85.85,86.74, 90.07,89.36,90.27,89.71,90.62,92.47,89.56,93.50,91.48,94.24, 90.22,88.30,92.17,95.73,96.50,91.68,95.50,94.07,91.00,95.37, 95.36,97.66,96.74,97.90,98.19,95.97,96.20,95.88,98.50,93.60, 100.71,100.58,97.54,103.04,102.35,101.80,102.83,104.06,101.00,102.10, 102.21,101.60,101.15,104.32,103.31,104.41,103.59,113.50,104.85,105.51, 101.17,109.72,108.18,102.88,110.18,108.53,110.47,109.16,108.48,104.23, 108.84,107.82,108.02,105.30,110.74,107.14,110.10,109.17,112.10,110.90, 109.11,110.69,117.37,106.90,110.62,115.28,115.49,115.51,115.08,111.29, 112.58,115.57,114.82,119.25,114.01,116.03,113.90,117.10,115.08,117.11, 117.09,116.07,121.73,117.37,114.31,114.68,115.57,121.05,116.26,124.38, 123.85,120.14,117.45,115.59,117.80,113.67,120.64,120.54,118.12,119.72, 121.77,123.93,120.23,118.75,127.88,123.35,126.13,122.14,125.52,123.95, 120.69,125.41,122.63,126.95,126.00,130.29,131.62,131.40,126.61,129.77, 127.51,122.81,134.14,134.29,130.51,129.54,130.52,124.47,136.22,130.02, 126.47,126.44,131.76,135.27,128.51,126.78,132.47,131.46,129.50,131.76, 135.13,133.34,131.91,138.06,133.93,131.95,129.41,132.10,134.47,131.36, 132.42,136.18,135.57,130.04,140.48,142.44,128.18,135.62,134.60,140.07, 131.96,144.00,138.48,141.60,135.31,132.64,136.52,140.58,135.47,141.09, 29.29,30.98,32.14,31.67,34.30,35.20,37.49,37.71,37.17,38.23, 38.87,38.84,39.75,42.57,41.76,43.65,44.15,43.68,45.61,46.59, 46.85,46.66,49.12,48.57,49.00,52.23,50.99,53.35,53.59,54.04, 53.15,53.38,54.16,56.07,54.50,56.90,56.52,58.82,56.85,59.89, 59.30,59.63,58.74,60.75,60.91,60.50,60.68,64.03,65.34,63.68, 64.86,65.61,65.10,67.69,65.38,67.83,68.40,68.19,70.14,68.07, 70.72,68.19,70.59,71.51,72.96,70.29,70.62,71.61,73.28,71.27, 75.23,74.18,74.16,74.53,77.43,79.54,79.49,76.03,77.70,76.41, 80.33,77.13,79.75,78.03,78.22,77.74,82.19,78.71,82.88,83.00, 81.49,79.44,84.68,81.17,80.95,87.81,87.57,83.54,85.44,84.66, 86.30,86.94,85.02,90.77,87.98,90.33,91.14,87.35,87.75,88.90, 94.63,93.05,93.20,93.62,93.89,93.80,87.88,95.32,93.62,94.40, 93.68,94.46,92.60,95.07,96.60,97.08,100.00,97.46,96.35,98.40, 100.29,98.94,93.98,99.99,98.30,96.87,98.92,101.62,102.54,100.37, 99.55,102.31,102.98,99.80,103.59,102.15,104.12,99.87,103.55,103.65, 107.03,104.71,98.21,106.52,106.02,103.04,105.70,107.08,108.29,108.08, 107.34,103.74,106.62,104.45,109.92,108.41,110.87,110.27,107.80,110.22, 110.60,111.79,107.98,110.91,113.25,114.55,113.96,114.19,113.82,113.83, 110.48,114.11,118.09,112.19,114.48,116.33,111.58,122.41,115.55,113.98, 117.52,116.53,116.05,115.29,116.41,122.19,117.48,114.81,122.37,115.54, 119.24,120.55,115.49,120.48,117.27,120.86,118.78,119.28,120.16,122.31, 120.79,119.19,127.94,123.40,123.58,121.76,133.43,124.80,122.81,127.70, 130.90,127.13,126.66,123.56,123.20,128.00,127.67,124.70,126.25,126.27, 123.10,127.56,128.15,123.51,132.69,125.85,129.63,131.16,133.45,129.52, 128.07,128.86,124.07,134.90,127.61,132.98,135.23,134.70,132.96,129.61, 132.34,131.23,131.68,134.55,135.21,131.13,137.09,130.10,128.86,140.95, 137.82,136.12,133.71,140.37,138.89,131.76,135.31,138.34,134.98,140.51, 136.92,134.88,145.42,134.98,140.28,131.38,136.69,143.09,137.27,138.81, 136.91,136.96,141.40,141.77,143.82,141.43,143.29,141.57,147.71,142.83, 29.70,30.63,31.39,32.44,33.39,34.43,35.79,37.16,38.54,38.93, 40.87,40.49,40.88,41.78,43.74,43.10,45.62,44.37,46.90,45.88, 48.69,48.67,48.78,48.92,51.92,51.82,51.28,52.62,50.82,54.77, 54.65,53.71,55.61,57.51,56.08,57.76,57.64,58.08,58.86,58.65, 60.55,61.55,62.64,61.36,62.54,63.66,62.36,67.60,63.26,68.55, 65.69,65.93,65.70,66.48,67.85,68.46,67.61,70.43,68.81,69.58, 71.11,70.98,70.81,77.01,72.88,70.38,74.15,75.60,75.31,73.34, 77.13,76.25,74.57,75.14,78.45,76.45,77.75,78.05,78.03,79.58, 77.76,79.27,80.35,82.62,84.69,81.66,78.54,86.15,83.55,82.63, 84.59,85.30,84.61,88.04,83.11,84.90,87.18,88.28,83.87,87.39, 87.41,88.00,84.77,87.59,90.06,89.73,87.55,90.90,93.86,93.72, 89.66,94.20,91.07,95.66,94.37,94.43,90.25,92.65,96.79,96.93, 95.26,96.80,97.35,96.18,97.65,95.97,100.30,97.78,97.51,97.04, 101.24,102.66,99.52,100.86,101.96,97.88,98.86,100.24,102.42,101.02, 100.13,102.80,99.12,99.17,98.47,100.77,103.84,104.35,106.44,105.23, 107.76,103.36,103.49,105.12,105.73,110.05,110.04,107.13,110.45,107.12, 108.94,107.96,111.14,108.99,108.07,105.53,115.58,113.03,112.27,110.07, 108.54,108.80,112.88,111.77,115.67,111.03,112.16,113.70,112.89,114.78, 110.03,113.36,117.23,119.80,118.29,118.75,114.38,122.33,115.58,116.89, 116.12,117.83,118.77,114.42,119.19,124.89,123.77,117.88,119.82,116.62, 120.39,120.78,123.31,121.68,129.28,123.60,117.48,122.24,122.55,118.97, 122.17,121.47,124.85,122.85,129.60,128.91,125.71,124.14,123.71,124.39, 127.65,131.59,125.71,123.86,123.15,126.32,128.34,131.22,124.54,137.72, 133.25,125.73,129.93,134.15,131.71,133.20,130.19,127.66,132.50,129.34, 134.25,135.93,133.35,130.10,140.81,130.14,131.84,133.64,133.45,133.24, 130.68,135.92,131.94,137.59,133.82,136.81,132.54,140.41,138.04,139.79, 133.96,137.97,139.57,137.35,133.34,140.84,135.85,138.68,140.76,139.13, 131.74,142.96,136.02,139.54,141.91,139.18,137.46,138.54,142.51,141.78, 138.50,140.93,144.79,138.75,142.85,139.59,141.64,148.37,145.61,137.31, 19.23,18.71,19.33,19.78,19.94,19.76,20.24,21.42,21.21,22.06, 23.45,22.17,22.53,23.19,22.03,23.00,23.81,24.91,24.78,23.67, 25.71,25.11,25.56,26.30,26.69,26.30,27.06,27.01,27.91,27.36, 26.39,27.65,26.78,28.56,27.41,29.42,29.11,28.85,28.57,31.17, 29.62,31.33,30.54,31.06,29.19,31.45,29.96,30.99,32.53,32.12, 31.21,32.75,33.20,32.12,32.26,33.29,33.01,32.55,34.91,34.56, 35.25,33.71,32.78,34.56,35.21,33.69,36.23,34.70,36.63,34.35, 34.54,36.01,35.94,36.16,36.40,36.98,37.49,38.42,37.27,37.25, 38.10,38.26,38.15,38.89,38.37,37.72,37.41,38.82,37.97,37.60, 39.41,38.73,40.18,40.13,39.24,39.95,39.63,40.32,41.68,41.42, 39.66,39.92,40.72,40.74,40.91,39.52,42.88,42.11,41.16,42.54, 42.92,41.91,40.75,44.10,43.06,43.92,42.05,42.97,43.26,40.71, 43.12,42.99,45.66,43.95,43.96,44.67,46.40,44.75,45.81,46.43, 47.22,44.85,46.07,45.52,47.41,48.46,48.92,47.20,46.15,46.60, 46.94,46.84,48.58,46.79,48.40,47.04,48.37,47.35,47.48,48.00, 48.25,48.88,48.18,51.18,49.13,48.97,48.80,48.62,49.93,49.80, 48.41,49.65,48.80,50.39,50.59,48.17,51.92,52.21,51.35,48.43, 49.97,51.85,52.09,53.33,52.45,50.81,52.91,54.15,50.84,49.15, 51.17,51.43,53.70,52.72,52.74,54.63,53.04,55.64,54.50,54.03, 54.06,54.60,53.57,54.40,52.94,56.70,53.80,55.03,56.37,54.48, 55.87,53.73,57.03,54.46,53.36,55.14,55.98,55.94,55.45,56.67, 54.18,58.03,53.28,57.96,55.67,55.01,58.30,55.30,57.73,57.34, 57.61,58.79,58.16,57.50,56.88,57.66,57.94,57.15,59.51,59.71, 57.58,58.95,59.21,60.60,57.51,58.52,58.74,58.09,58.15,56.11, 61.27,57.45,58.08,60.62,60.40,59.59,61.01,63.45,60.87,60.20, 61.33,61.40,62.12,60.26,61.45,60.36,61.38,61.29,62.23,60.04, 62.30,59.67,61.72,63.97,64.87,62.44,61.29,60.48,62.88,63.10, 61.45,64.22,63.34,62.82,61.94,63.35,60.93,60.81,63.62,65.49, 62.67,65.11,64.57,64.17,61.61,62.20,65.55,62.97,62.73,65.17, 20.57,20.58,21.34,21.19,21.57,21.64,22.70,21.66,22.91,23.47, 23.55,23.95,24.44,23.81,25.20,25.04,25.88,25.24,26.83,26.74, 26.45,28.19,28.42,28.17,27.35,28.37,27.98,29.22,29.52,30.97, 30.75,29.38,29.08,31.27,30.30,30.14,31.79,32.36,32.15,32.69, 31.92,33.37,32.55,34.12,33.30,35.31,33.79,33.13,34.12,34.31, 34.40,35.21,37.40,38.27,36.98,35.93,36.50,37.30,37.26,37.55, 36.69,36.82,38.01,38.90,38.70,37.39,38.56,40.50,38.49,39.57, 39.30,38.92,40.14,42.14,39.84,40.54,40.81,39.78,40.98,41.24, 41.17,40.22,41.20,43.96,42.54,42.22,41.47,42.62,44.04,43.37, 44.59,43.28,43.76,43.65,46.01,44.98,44.79,44.81,44.41,44.90, 46.98,46.16,45.48,44.93,46.47,47.61,46.17,46.69,45.69,46.74, 46.49,48.43,48.85,46.81,48.41,47.94,46.91,47.59,51.35,48.98, 47.09,47.06,48.78,49.46,51.74,51.45,53.55,51.19,50.07,51.11, 52.03,49.24,51.16,50.61,50.74,51.29,52.68,50.59,52.20,52.13, 53.34,51.63,52.87,51.67,52.96,53.25,54.09,53.67,56.03,54.29, 54.43,55.34,53.63,51.19,54.06,53.53,54.23,56.41,55.26,55.90, 55.27,56.34,55.13,58.04,58.14,57.32,55.89,58.21,57.71,56.99, 56.26,56.46,57.40,56.97,57.47,58.41,57.79,60.08,57.78,57.32, 57.75,58.48,58.93,59.64,59.03,60.34,58.29,61.21,60.99,58.72, 62.06,61.79,59.17,61.33,61.43,63.65,63.20,58.85,60.00,60.70, 59.87,59.99,62.08,61.99,61.75,62.03,64.34,60.92,65.17,64.67, 60.62,62.53,62.91,61.68,63.96,60.83,62.00,62.82,62.42,64.32, 63.98,65.33,62.70,65.96,66.61,62.25,65.25,64.37,62.57,63.86, 64.88,65.76,63.47,63.51,66.28,65.59,66.45,66.21,65.62,68.42, 64.10,66.75,69.50,68.62,65.39,66.47,68.58,66.03,66.78,66.95, 67.66,68.89,68.86,69.35,71.29,68.97,67.19,67.96,70.41,71.00, 67.54,70.36,71.26,66.68,70.14,66.91,69.91,70.89,67.84,69.54, 70.60,72.90,70.47,69.78,71.59,68.74,72.03,68.30,72.36,70.59, 72.31,71.84,74.16,72.43,74.01,72.63,71.84,73.79,73.61,75.52, 20.44,20.99,20.93,22.63,21.76,23.33,22.88,24.79,24.62,25.84, 24.33,25.45,26.12,26.95,25.82,27.81,29.20,26.89,28.13,29.39, 27.79,28.61,30.18,30.16,29.55,32.60,30.11,31.94,31.62,31.16, 31.88,33.83,33.55,33.12,34.43,34.71,33.91,34.07,34.00,32.99, 36.27,37.17,35.54,35.78,35.44,36.32,36.99,36.73,39.38,37.29, 37.71,37.76,40.26,37.69,40.50,39.54,40.42,39.99,41.67,40.72, 40.40,39.19,39.62,42.14,40.13,43.13,44.28,41.33,42.66,44.09, 44.21,42.59,43.73,45.31,43.90,45.95,45.85,45.45,44.75,46.41, 46.49,46.18,46.11,47.34,47.34,48.07,47.64,48.36,50.75,46.03, 47.34,49.56,48.26,49.63,48.77,50.19,46.14,50.04,49.96,48.09, 49.82,50.04,49.54,47.81,50.81,51.41,51.37,52.33,50.28,49.88, 52.42,53.17,52.56,53.20,54.83,51.79,52.30,54.58,56.41,54.91, 52.02,54.96,55.06,54.40,56.99,54.94,55.38,55.24,56.74,55.61, 54.73,55.82,56.73,55.68,53.84,56.95,58.02,57.87,53.77,57.66, 60.19,58.93,58.77,58.62,60.70,55.68,57.59,58.71,58.32,59.46, 59.28,58.88,57.94,59.18,58.97,62.98,61.97,60.79,61.81,60.70, 60.56,60.31,60.58,58.16,62.97,61.25,59.90,60.62,64.48,61.07, 62.13,64.11,62.24,60.93,63.40,62.56,64.44,61.93,64.60,65.36, 64.56,64.52,67.17,63.60,68.13,67.04,65.33,64.38,66.27,68.08, 62.10,66.90,68.01,66.00,64.69,66.73,67.97,69.93,65.12,66.68, 67.31,71.75,68.33,67.63,67.51,68.33,69.85,69.52,68.78,70.94, 72.28,70.43,72.49,70.48,70.87,71.85,69.95,70.88,72.91,72.17, 69.62,70.47,70.05,69.57,68.32,69.18,72.46,72.66,73.67,72.08, 72.60,72.10,74.40,73.41,71.68,72.97,72.31,74.73,73.71,71.99, 75.04,75.19,74.41,73.24,71.27,76.35,71.83,74.24,79.01,75.70, 77.76,73.62,72.72,73.25,73.18,77.07,77.04,77.51,75.87,80.10, 75.53,74.77,76.22,81.35,79.00,75.33,77.65,78.23,76.38,80.91, 76.69,79.23,79.77,78.23,76.88,79.73,78.33,77.78,81.73,76.92, 78.24,78.87,82.25,77.90,82.91,78.59,76.11,81.30,79.56,83.22, 22.75,23.51,24.48,24.81,23.33,24.76,25.27,25.99,26.18,26.61, 28.82,27.92,28.16,27.85,28.06,30.73,30.64,29.91,29.93,30.64, 30.16,32.55,32.22,34.24,33.14,32.90,33.86,33.86,34.61,36.29, 35.19,35.21,36.20,35.83,37.61,37.46,37.39,37.07,37.89,38.30, 37.99,38.99,38.80,40.15,41.38,39.27,40.25,39.79,40.02,41.86, 42.52,41.91,41.21,43.11,43.03,43.36,44.74,43.52,44.02,44.38, 43.70,45.60,45.15,45.05,46.09,45.62,45.77,45.29,47.91,47.13, 45.03,47.02,48.48,50.06,46.67,48.99,49.53,50.42,48.55,50.56, 50.60,49.56,50.17,51.18,52.15,51.35,49.77,50.95,52.64,49.05, 49.26,52.25,53.32,51.99,52.78,57.53,51.73,52.04,54.27,54.13, 54.62,55.16,56.20,54.05,55.58,56.67,55.47,56.18,58.32,58.41, 58.26,54.98,57.38,57.23,58.38,56.68,56.71,58.52,57.45,59.34, 59.00,58.45,57.69,56.61,60.13,60.78,59.80,61.93,58.65,62.69, 61.47,58.28,60.10,61.11,62.68,60.94,61.89,62.20,63.62,63.93, 58.79,64.51,61.91,60.16,64.98,65.05,64.04,64.65,65.65,64.23, 64.81,64.99,66.93,67.94,67.29,64.13,64.20,64.01,65.62,66.40, 64.21,67.51,65.76,67.99,67.87,67.14,69.66,68.51,65.09,68.32, 68.88,67.94,69.23,71.27,68.84,67.43,68.92,73.27,68.53,67.76, 71.82,69.22,70.93,68.81,72.92,71.10,70.50,73.54,71.84,71.03, 73.66,72.14,73.51,72.15,71.54,73.91,74.46,74.99,75.32,73.09, 71.82,74.83,75.87,74.22,72.94,74.92,73.47,75.42,76.17,78.41, 75.37,73.79,74.44,75.45,79.82,78.45,76.58,75.48,78.40,77.58, 75.68,75.93,74.59,78.71,75.29,79.05,78.63,78.31,78.12,78.75, 78.36,79.25,80.28,78.18,79.05,78.59,78.87,78.07,80.99,79.94, 79.92,80.78,82.14,81.10,78.99,84.54,81.37,81.30,84.55,83.33, 83.02,79.76,79.88,83.52,83.41,83.40,83.54,83.84,85.40,85.22, 82.17,80.68,80.53,83.53,88.25,85.48,84.86,84.64,83.00,86.29, 87.11,84.94,80.73,86.40,84.62,86.58,87.09,86.02,85.56,86.49, 86.85,85.65,87.71,85.97,84.85,86.47,83.71,83.79,88.78,89.99, 22.64,23.73,24.10,24.85,25.98,25.49,27.25,26.29,26.57,28.42, 29.59,28.73,29.87,30.17,30.52,30.97,30.56,32.12,31.07,32.66, 32.23,34.12,35.34,35.08,33.22,35.94,37.55,35.68,36.64,38.45, 36.78,37.94,38.24,39.01,40.68,38.24,40.35,40.90,41.83,40.82, 39.39,41.03,42.46,43.05,42.66,43.53,43.80,45.00,45.36,44.61, 43.84,44.75,45.75,46.27,46.42,45.05,47.37,48.66,46.26,47.92, 48.62,46.35,49.07,47.94,47.85,49.47,51.47,48.53,50.18,52.56, 50.47,52.23,50.10,52.73,52.93,51.78,51.19,53.31,52.42,53.88, 53.29,54.27,55.94,51.37,56.09,54.13,56.87,52.70,56.54,54.43, 56.98,54.80,57.78,57.82,56.58,54.95,59.11,58.56,57.36,59.92, 58.77,55.84,56.81,59.31,60.11,57.84,59.05,61.38,58.71,60.91, 63.11,60.83,61.06,61.72,61.66,61.61,61.96,62.36,61.27,61.81, 62.58,63.29,65.38,63.67,64.03,64.19,66.68,65.80,66.64,63.94, 66.66,62.44,65.53,66.50,66.18,65.81,66.65,68.96,67.33,65.13, 66.89,70.16,67.87,69.59,70.09,68.78,69.63,71.16,68.99,74.83, 67.46,69.26,67.05,70.95,72.82,68.06,72.09,70.13,71.81,68.92, 70.11,70.85,71.70,72.40,73.41,68.95,71.90,71.45,75.81,73.98, 72.11,72.30,72.01,73.90,74.78,76.98,73.41,72.88,78.24,77.32, 77.32,80.32,77.35,75.32,78.95,74.27,76.68,79.13,79.49,76.53, 77.98,81.75,80.30,78.16,78.29,77.64,77.73,81.88,77.32,82.12, 80.81,79.49,79.66,78.84,79.95,79.49,78.42,80.56,81.30,80.45, 81.54,78.25,84.11,82.63,81.09,81.17,82.27,84.26,83.66,82.31, 82.60,82.90,81.40,83.38,82.47,82.27,89.86,81.68,87.28,87.37, 85.05,85.05,83.98,85.58,83.12,84.94,85.74,86.47,85.22,88.63, 86.67,85.31,85.87,86.19,88.49,85.58,88.93,89.48,93.44,89.16, 86.18,88.96,87.96,90.97,88.48,90.16,90.05,89.86,91.05,88.65, 93.07,92.27,90.37,87.33,89.21,94.15,88.23,88.65,94.61,89.06, 87.64,91.44,95.92,92.05,92.38,89.92,90.81,90.39,94.30,89.47, 95.64,91.85,93.93,95.18,90.33,94.59,91.25,96.64,96.63,91.13, 24.03,23.43,25.66,26.86,26.70,29.46,27.23,28.31,28.98,29.89, 30.64,32.19,29.87,32.78,31.59,32.83,32.38,31.97,36.90,34.79, 35.27,34.06,36.21,37.59,37.26,38.29,38.78,39.11,39.50,39.30, 39.08,39.68,40.24,40.14,42.02,40.50,42.52,41.95,42.27,43.55, 43.60,44.77,45.31,47.01,44.96,46.34,46.59,46.81,46.80,47.19, 47.20,47.11,48.09,49.30,49.97,47.66,49.02,49.83,51.17,51.80, 49.04,53.48,52.21,52.10,52.31,53.34,52.85,52.97,52.57,54.10, 54.94,53.81,54.24,55.95,55.56,57.39,56.54,57.52,57.13,57.07, 58.72,56.07,59.51,59.07,58.78,59.34,56.63,58.31,59.08,58.93, 60.81,60.59,59.73,58.55,60.69,61.50,61.04,64.65,61.36,62.12, 62.30,64.70,63.62,62.81,63.76,63.16,65.63,61.10,63.39,66.87, 65.70,61.50,66.80,66.48,63.52,67.37,66.90,67.57,66.25,68.25, 68.66,67.38,69.35,68.40,67.87,70.08,68.14,70.18,69.05,71.62, 69.70,69.00,70.13,68.62,69.56,71.19,70.94,69.81,71.03,72.66, 69.88,72.51,71.22,73.20,68.51,76.44,72.97,76.46,74.01,76.78, 78.45,74.49,76.81,74.00,76.42,77.77,73.76,78.59,78.07,76.68, 76.54,74.31,77.68,78.82,79.22,79.07,80.43,78.86,78.75,79.01, 81.63,81.69,81.58,81.20,78.83,77.15,80.24,78.26,80.73,82.85, 80.94,81.07,81.36,83.27,77.71,79.21,85.29,84.35,83.53,82.93, 86.92,86.32,81.06,84.49,82.88,84.11,86.23,86.03,87.43,82.79, 84.60,85.76,87.36,83.32,85.58,84.88,87.55,86.54,90.42,87.44, 88.07,92.49,85.23,89.90,86.67,91.48,90.07,87.88,87.03,92.08, 90.10,86.48,90.81,85.78,91.49,89.53,88.16,89.75,87.91,89.30, 92.96,93.13,93.27,91.08,90.92,94.08,90.35,93.42,86.01,91.77, 91.75,96.09,94.38,92.35,95.83,91.57,95.21,93.53,94.12,93.83, 94.84,93.10,97.14,96.85,94.40,96.01,93.61,94.31,96.21,98.20, 98.80,99.09,100.50,94.80,98.54,99.71,97.94,98.15,96.07,97.00, 101.77,107.76,103.40,97.85,98.02,98.42,103.14,105.38,101.76,102.64, 101.70,104.17,98.21,98.70,102.27,103.21,99.36,102.98,100.58,100.36, 26.51,25.14,26.85,25.84,28.69,28.49,29.69,29.53,31.71,31.70, 32.29,32.77,32.66,32.87,32.55,34.75,34.74,35.56,36.89,36.76, 38.83,36.52,39.81,39.62,38.64,39.13,39.91,40.07,41.05,41.59, 40.92,43.26,43.22,43.39,44.58,43.60,43.79,45.95,45.36,46.42, 44.73,46.30,47.91,47.41,46.73,49.06,48.30,47.93,51.19,50.59, 52.08,50.62,54.17,52.02,53.71,53.87,54.52,52.33,52.31,55.69, 53.79,54.95,56.07,55.43,55.89,54.42,55.85,57.89,57.57,56.14, 56.79,56.87,54.77,58.87,58.74,58.94,58.55,60.72,60.25,61.41, 63.03,62.50,59.34,62.39,63.27,62.14,61.09,61.31,63.81,64.62, 63.67,63.03,64.42,65.73,63.08,62.07,63.07,65.80,65.08,65.00, 66.01,65.80,66.11,69.59,65.81,69.65,69.20,67.60,69.75,70.85, 69.67,70.95,67.80,66.36,69.99,70.51,73.05,73.22,72.40,70.48, 71.71,74.06,71.30,75.28,73.64,74.46,77.04,76.31,73.25,73.63, 73.10,75.21,74.53,74.79,79.60,78.41,77.03,74.74,75.20,78.47, 77.34,76.54,77.12,80.93,77.81,80.67,78.78,80.15,77.00,80.67, 79.94,78.97,80.56,84.35,82.80,81.53,82.76,84.27,82.59,80.26, 82.82,84.07,81.68,82.04,82.40,85.30,84.06,82.86,79.79,83.41, 84.43,82.58,85.21,86.82,86.58,85.48,83.81,87.82,82.99,86.62, 86.99,84.37,85.73,87.46,88.16,86.05,92.92,86.98,87.60,88.02, 84.41,85.00,92.81,82.61,88.39,89.29,89.56,89.32,93.99,92.61, 92.94,90.48,90.20,91.40,95.48,90.48,92.45,94.25,94.47,94.79, 93.97,90.76,92.50,94.33,92.77,95.18,93.29,92.34,97.37,94.16, 92.85,93.48,93.67,94.09,94.71,100.92,94.03,98.37,91.21,93.61, 97.53,98.37,97.24,97.93,95.00,96.98,97.15,96.66,97.73,96.20, 99.01,100.17,99.30,101.80,99.11,99.13,98.36,95.30,99.78,100.09, 101.57,99.93,99.82,102.25,103.09,96.10,101.86,99.34,98.00,101.37, 99.58,103.63,100.58,103.46,104.35,100.32,103.96,105.59,101.95,103.99, 105.06,103.91,105.49,104.85,106.02,101.99,110.36,106.02,106.68,101.44, 105.23,106.18,104.02,102.96,104.54,112.49,108.02,102.09,104.11,106.21, 27.26,26.61,27.31,28.23,30.98,29.93,30.03,32.29,31.69,32.29, 33.28,33.42,35.44,32.76,35.90,36.65,36.66,36.98,36.89,40.07, 40.42,39.54,38.68,41.41,42.28,42.46,43.43,43.19,42.58,44.26, 42.81,43.62,45.42,44.08,44.01,47.18,47.46,46.57,47.06,48.62, 48.56,48.77,50.02,50.75,52.31,51.85,52.70,51.59,51.60,53.69, 52.71,52.61,55.59,55.11,53.68,52.46,57.48,55.23,56.74,55.77, 56.65,56.96,57.37,56.90,57.43,59.48,58.45,58.43,59.15,63.01, 60.07,59.08,60.77,61.20,59.53,61.87,60.59,64.81,64.73,64.19, 64.48,63.60,65.45,65.77,63.89,63.89,61.95,65.94,66.09,66.34, 68.37,67.20,69.58,68.72,72.08,67.75,72.53,70.75,69.97,69.62, 70.67,69.65,73.03,71.65,72.68,72.06,71.85,72.65,74.32,73.28, 74.65,75.41,73.55,73.10,74.77,75.80,74.15,74.33,74.18,77.89, 74.97,76.02,75.91,77.80,73.79,75.96,76.82,75.28,76.47,77.36, 79.95,77.06,81.03,78.72,79.06,79.41,82.82,80.92,81.23,78.12, 81.52,80.16,84.08,83.78,81.13,81.78,82.18,84.14,83.32,84.30, 83.32,82.76,84.25,83.44,82.26,81.30,83.73,85.40,81.73,83.04, 86.56,87.60,86.87,90.22,85.46,91.16,88.89,89.61,86.04,87.93, 88.95,86.65,91.88,92.79,91.65,91.87,91.78,85.29,86.67,88.82, 89.17,89.30,93.17,92.26,91.49,92.74,94.01,91.26,92.13,96.34, 94.35,94.03,92.09,95.69,98.89,96.60,95.50,90.46,96.30,99.49, 97.67,97.69,96.71,96.20,98.72,93.02,95.31,95.97,93.03,101.35, 95.19,101.48,100.11,98.69,97.05,99.68,100.24,103.01,99.91,100.58, 102.36,100.41,103.57,99.41,97.70,99.30,97.23,101.88,102.49,101.99, 101.93,97.60,100.04,104.45,101.85,98.07,103.40,103.33,101.34,103.49, 103.43,107.44,103.70,102.26,105.34,110.58,104.25,106.16,106.36,107.05, 107.62,108.32,105.04,108.81,104.64,106.57,103.11,110.61,105.87,107.90, 110.99,107.18,109.11,106.78,108.74,113.25,110.52,112.68,108.99,109.07, 108.19,109.20,109.31,115.16,113.05,111.33,111.79,111.77,115.85,112.35, 112.79,113.04,113.49,112.52,111.07,111.36,114.28,113.54,112.75,112.81, 26.97,27.61,29.14,29.27,29.59,30.68,32.10,33.09,33.20,34.79, 34.31,36.61,35.99,37.13,35.94,35.91,37.63,39.02,40.27,40.97, 40.10,41.16,43.56,42.60,41.83,44.79,43.68,45.51,44.80,46.45, 45.26,45.76,48.20,46.95,48.63,49.22,51.74,49.51,50.63,48.98, 49.38,50.59,51.48,51.53,54.18,52.57,53.63,54.22,55.13,56.39, 55.64,56.76,57.09,56.46,59.10,59.03,59.24,58.55,60.18,58.82, 62.21,58.57,58.72,61.61,61.63,61.22,62.38,63.62,61.71,64.52, 64.01,63.14,65.00,63.98,66.67,67.56,65.56,65.50,64.72,66.27, 65.60,66.33,67.59,67.12,66.71,67.51,68.24,70.90,69.47,70.92, 69.09,71.11,71.73,71.67,69.49,73.85,75.00,72.90,73.71,71.08, 74.95,73.08,74.47,77.57,73.72,73.70,76.19,75.07,75.60,74.02, 74.75,75.01,78.32,79.60,80.35,80.04,77.10,78.08,76.84,81.05, 81.49,82.59,79.50,78.77,82.00,81.85,82.92,79.15,82.77,80.12, 83.72,82.55,85.13,82.87,81.41,81.82,85.06,83.78,84.85,87.30, 86.96,81.63,88.94,86.73,85.51,90.30,86.63,86.61,88.89,87.37, 90.11,86.29,90.58,90.34,89.34,87.31,90.20,85.76,93.89,90.22, 91.55,93.63,93.20,88.93,94.80,88.23,92.63,90.06,94.57,88.77, 94.76,92.12,91.36,98.13,97.07,96.32,97.30,90.23,93.41,95.54, 96.60,96.68,99.54,97.68,95.79,96.41,96.37,97.90,98.13,98.15, 102.16,100.73,103.27,96.03,94.06,96.15,99.68,96.02,98.50,100.86, 97.87,100.60,104.44,104.22,103.00,99.56,103.30,102.16,100.57,107.83, 104.97,106.44,102.24,101.08,106.02,103.02,106.69,106.09,103.62,103.98, 105.27,108.12,106.35,104.97,106.96,104.08,108.89,110.88,109.17,103.13, 104.97,108.52,110.63,107.34,104.19,107.26,111.69,105.87,109.32,105.02, 112.20,111.45,109.46,109.53,113.57,108.83,113.61,112.49,113.77,107.46, 111.49,112.54,114.61,113.31,116.71,115.87,114.76,115.92,114.03,110.30, 112.05,113.01,109.03,114.60,116.26,114.24,117.66,118.49,114.91,115.03, 120.20,112.86,117.65,115.29,114.24,111.17,119.83,114.07,114.70,114.16, 116.70,119.10,115.00,120.84,117.92,119.26,118.70,122.80,117.59,122.15, 28.52,29.09,28.74,30.53,30.68,31.88,34.84,33.58,33.66,35.59, 37.67,36.35,38.24,37.17,39.29,38.72,42.37,41.05,41.25,41.27, 43.46,42.05,44.07,43.43,43.59,45.21,46.70,46.94,46.18,48.83, 48.84,50.00,50.81,49.92,50.21,50.95,51.81,51.48,52.96,52.46, 52.95,54.97,54.46,53.47,54.03,55.82,53.49,53.73,57.24,57.58, 59.93,59.27,59.27,59.60,59.24,59.53,61.96,60.01,61.24,62.63, 63.64,62.28,63.21,60.89,63.26,63.98,63.46,63.93,64.82,67.51, 66.07,66.55,66.80,68.48,66.87,68.34,67.80,70.39,68.19,69.09, 69.26,69.98,68.03,69.54,69.10,71.04,69.86,72.17,70.29,74.20, 70.16,71.55,74.60,74.18,75.49,74.98,80.24,75.03,74.51,74.03, 77.93,73.09,78.32,78.53,80.57,78.79,79.42,83.42,80.52,76.10, 80.40,81.00,81.34,80.62,79.84,81.48,81.07,85.31,84.48,84.36, 82.08,80.88,84.95,86.08,85.74,83.94,85.85,88.53,85.51,85.67, 84.89,88.06,88.51,83.16,86.01,86.85,88.34,90.81,87.88,92.23, 89.07,87.66,89.09,92.19,91.82,93.10,89.50,90.33,89.21,92.31, 91.89,94.86,90.44,90.90,93.85,92.03,93.11,94.68,94.67,92.12, 94.99,97.83,93.48,94.47,100.89,94.79,96.69,94.57,98.13,94.74, 99.74,99.55,96.31,97.73,100.12,99.77,94.43,97.24,94.43,100.19, 99.78,96.47,102.08,103.67,99.32,103.48,97.76,106.48,103.49,104.33, 101.59,101.43,100.41,106.20,105.60,105.07,103.36,104.15,102.41,104.27, 108.22,106.81,109.03,105.13,108.15,108.88,106.33,109.53,104.91,107.19, 106.69,105.83,106.82,110.48,108.02,110.76,108.53,110.92,110.61,111.24, 114.10,112.59,107.45,111.36,108.15,115.41,110.35,110.99,110.40,113.61, 112.58,115.23,115.62,112.16,111.33,112.70,114.29,114.81,117.85,113.13, 114.06,115.75,112.10,115.67,109.51,114.63,115.54,114.17,116.39,117.65, 117.48,116.87,121.75,121.87,119.54,120.53,117.77,120.44,122.67,118.93, 126.37,122.82,120.45,126.21,116.99,120.95,124.98,118.75,125.18,118.09, 123.27,119.76,117.91,118.72,120.67,120.16,121.88,118.17,123.52,127.17, 124.87,124.58,127.78,119.45,124.82,121.32,123.18,119.89,123.50,120.46, 29.97,28.33,31.40,30.98,31.53,32.65,33.37,34.87,35.82,35.25, 36.04,36.81,38.18,39.62,40.27,40.89,39.34,42.52,44.72,42.85, 43.93,44.81,45.67,46.32,46.15,48.12,46.58,46.87,49.22,50.37, 51.41,51.48,52.81,52.51,51.45,54.26,53.44,55.13,53.20,54.54, 54.46,55.71,54.62,54.85,56.85,56.38,59.60,58.33,61.08,60.86, 59.14,61.23,58.29,62.16,62.91,63.55,62.47,63.85,61.03,64.91, 65.49,66.25,64.50,65.08,67.19,65.52,67.72,66.57,66.43,68.74, 67.24,67.77,67.90,71.73,68.78,72.88,71.72,70.13,72.04,72.20, 71.36,73.41,73.04,76.65,73.76,75.03,73.34,75.70,77.73,76.98, 75.93,76.73,74.56,79.94,79.87,78.22,78.07,82.59,79.64,77.79, 78.59,80.30,83.04,78.80,82.18,79.64,79.54,81.81,80.98,80.43, 81.20,83.43,84.91,87.28,83.30,84.39,85.93,84.93,87.54,85.85, 87.32,85.95,87.91,90.22,88.92,91.25,85.92,93.20,87.62,86.86, 88.33,86.42,91.15,87.39,93.73,88.40,90.28,96.60,91.95,93.51, 91.62,92.24,95.26,96.58,93.62,93.34,92.15,94.14,93.48,95.74, 96.29,93.45,97.73,95.86,99.73,98.38,98.98,94.18,99.28,98.96, 100.13,103.76,97.69,100.72,94.06,103.51,100.44,101.53,103.25,96.12, 102.59,102.05,103.13,99.93,102.97,100.83,106.37,101.86,99.75,100.18, 103.27,103.53,105.28,104.14,105.19,103.43,103.87,104.36,105.57,110.80, 104.62,109.57,107.45,109.65,105.43,107.93,105.36,108.83,110.07,110.93, 109.23,111.21,107.18,108.58,110.03,108.45,103.65,112.56,105.06,113.02, 113.83,110.51,113.06,116.76,113.81,110.36,117.43,109.89,117.40,112.16, 119.15,117.52,115.81,115.12,111.79,114.33,118.77,118.44,115.12,117.50, 119.14,111.67,113.43,115.42,117.96,116.07,122.50,113.28,114.87,115.88, 116.13,115.20,120.77,121.68,121.05,124.44,125.08,123.22,123.53,121.77, 120.45,123.17,121.22,123.14,120.48,116.65,125.06,126.60,119.30,123.91, 124.01,124.99,121.09,126.86,124.66,127.04,125.76,127.69,124.37,123.54, 120.49,123.17,125.54,125.76,119.55,125.98,126.08,125.11,132.53,130.94, 131.63,127.16,131.77,128.23,128.90,125.40,132.73,134.56,124.68,130.91, 29.60,31.00,31.81,31.86,32.55,33.18,35.55,35.27,36.31,37.76, 38.57,38.07,39.73,41.96,42.96,42.56,42.17,42.49,45.54,43.66, 44.82,47.73,48.42,47.58,48.98,49.29,48.06,50.95,48.13,51.47, 52.85,53.34,52.69,51.17,53.41,52.57,54.11,56.31,55.77,56.09, 56.11,57.87,58.36,61.93,59.09,59.90,59.70,59.38,59.58,58.66, 62.66,62.62,64.04,63.22,67.10,62.80,62.82,65.50,65.82,67.75, 64.82,65.34,69.11,67.77,70.51,64.95,69.15,70.68,69.39,70.69, 70.48,74.15,70.22,72.20,72.06,75.36,74.65,74.97,74.73,73.95, 73.16,77.03,77.46,76.81,75.03,77.28,73.95,77.92,74.85,79.58, 76.62,79.36,78.88,79.11,79.99,81.14,83.19,83.53,84.18,81.87, 83.63,84.00,84.43,83.61,82.65,88.38,83.68,83.67,84.52,86.12, 86.30,87.99,86.87,87.75,87.86,85.62,91.85,90.19,88.49,87.89, 90.25,90.28,86.60,89.10,91.57,88.79,88.60,90.72,90.76,92.72, 93.96,93.30,95.94,95.33,98.01,93.02,95.10,92.36,97.54,93.60, 94.50,94.88,99.21,100.12,94.57,96.50,97.27,95.81,96.52,99.95, 96.98,96.64,97.75,100.84,97.07,99.69,101.34,102.56,103.77,105.19, 102.30,103.90,102.14,103.03,107.18,102.83,99.23,99.84,100.09,107.56, 107.29,104.15,106.89,104.75,107.32,105.34,104.13,108.31,106.94,108.11, 107.13,108.81,106.66,112.29,108.35,112.51,108.06,106.94,105.13,104.88, 107.71,112.74,110.35,109.80,112.18,113.63,113.57,110.43,108.29,114.47, 110.60,115.69,110.92,115.65,113.21,114.96,113.60,113.99,117.62,114.01, 113.65,116.15,114.50,119.13,111.90,115.99,114.57,120.61,116.19,121.73, 121.04,120.58,115.51,121.48,117.76,122.80,117.52,116.70,123.51,121.01, 117.76,124.54,119.03,123.53,124.91,116.73,122.17,121.89,125.79,124.50, 123.56,123.50,124.86,123.80,126.33,120.44,122.40,120.30,127.78,125.68, 127.41,126.27,126.32,123.70,128.27,123.05,123.93,127.86,130.87,125.70, 121.30,128.71,130.62,129.47,128.91,132.16,130.56,129.32,131.23,126.27, 126.13,128.62,127.59,135.51,128.40,131.60,129.35,130.13,128.69,132.13, 128.26,129.42,133.94,132.97,128.87,137.27,130.42,140.67,139.99,130.72, 29.46,30.68,32.38,34.16,33.38,36.19,35.64,36.40,36.84,37.14, 38.67,39.35,40.25,40.08,40.74,43.66,44.86,45.14,45.15,47.04, 47.39,49.49,47.74,48.19,49.08,49.81,51.14,52.26,50.86,51.81, 55.07,52.94,51.54,54.01,57.24,55.31,57.25,56.26,55.90,58.03, 59.25,60.11,58.43,59.99,63.06,59.28,63.30,61.25,65.52,63.37, 61.94,64.61,65.85,65.31,64.42,62.76,65.19,67.14,68.29,67.19, 65.21,68.12,72.27,71.50,71.03,71.86,67.05,70.56,70.38,72.72, 72.09,71.94,77.94,77.74,74.67,73.81,73.60,74.92,75.50,75.61, 77.34,78.44,79.32,76.39,82.81,78.29,79.95,79.72,81.07,78.89, 80.64,82.98,83.79,79.62,84.36,84.78,83.04,82.21,89.28,84.96, 85.88,85.90,87.72,87.41,86.25,87.22,87.41,85.24,87.31,88.96, 87.97,90.55,83.92,84.99,91.25,90.07,87.92,95.22,93.38,92.07, 92.48,93.59,86.70,92.36,92.32,93.53,95.66,95.08,94.90,92.79, 93.85,95.44,96.73,99.40,95.99,96.74,97.19,96.14,97.84,98.42, 102.65,96.07,99.93,102.21,100.49,102.96,102.15,100.32,102.98,101.01, 106.60,107.70,102.90,103.63,103.16,102.80,101.29,104.34,104.04,108.33, 106.42,105.89,104.29,108.54,105.12,101.77,105.53,107.16,109.44,106.26, 110.83,110.36,112.82,108.85,107.29,112.38,110.63,109.01,111.57,112.53, 110.85,111.52,116.16,115.54,116.12,113.43,111.77,119.15,117.08,116.53, 113.21,110.69,112.91,116.46,112.92,119.79,113.56,114.06,112.02,120.28, 114.22,110.47,119.02,118.17,119.78,119.51,119.47,119.49,116.83,115.03, 116.19,118.69,122.83,122.02,117.62,119.38,118.57,120.91,122.92,126.01, 118.68,124.60,118.07,123.08,126.03,118.88,123.64,117.75,125.09,126.46, 124.72,124.81,127.39,123.92,122.62,126.52,125.80,125.72,126.49,130.87, 128.35,122.70,124.68,129.44,124.91,127.61,124.76,127.04,129.30,132.15, 129.85,128.27,128.47,129.40,130.40,133.88,131.78,133.05,132.35,126.78, 128.49,129.39,135.07,125.32,130.09,137.06,127.80,138.06,130.14,135.43, 127.87,132.46,135.82,139.25,131.94,138.26,136.92,138.41,136.04,136.79, 136.32,139.07,135.07,134.08,136.40,136.08,136.81,135.92,141.38,131.79, 31.00,32.43,33.05,32.83,34.49,36.04,36.16,36.22,40.65,39.93, 40.83,41.90,40.66,43.59,43.46,42.21,42.65,44.99,45.42,47.34, 47.22,47.91,48.64,49.70,50.09,51.06,52.54,52.18,51.17,54.41, 55.76,54.89,56.27,56.81,55.73,57.32,58.11,57.99,60.39,59.63, 59.89,59.61,62.30,61.26,62.35,63.67,63.05,64.53,61.79,64.43, 67.56,65.03,66.74,66.26,67.89,67.26,68.84,70.29,67.85,70.95, 68.35,71.98,71.00,74.31,73.41,74.89,72.80,73.26,72.95,75.25, 76.96,74.69,78.23,76.75,79.28,79.23,77.28,77.15,78.07,79.58, 77.75,78.79,78.81,79.44,81.25,75.61,79.23,83.87,78.56,82.79, 80.58,82.42,84.02,84.95,85.09,90.15,87.84,85.35,86.93,83.83, 90.87,87.98,91.79,90.79,89.72,86.95,91.06,94.39,88.05,93.21, 92.38,92.41,94.29,94.50,93.97,88.81,91.80,92.29,93.98,93.29, 96.11,93.78,99.17,98.68,94.95,93.35,96.75,97.34,100.75,98.93, 97.05,96.91,98.52,101.86,98.52,100.03,101.24,101.43,101.05,105.00, 103.16,102.48,102.85,103.78,105.12,101.75,101.52,104.57,106.48,105.85, 101.11,101.97,102.15,101.06,102.37,102.65,105.96,108.19,105.83,111.60, 103.10,107.12,107.46,105.86,114.61,108.23,107.52,108.72,107.24,112.45, 109.41,104.28,105.78,105.96,116.87,113.93,112.37,114.55,116.72,118.20, 114.35,112.19,112.03,111.29,110.92,113.61,117.31,114.11,115.10,112.18, 117.02,119.28,117.79,119.71,119.60,118.23,122.70,118.74,121.90,120.31, 116.84,118.29,119.51,119.68,118.94,123.60,118.23,117.74,121.80,127.29, 122.00,121.90,126.14,120.03,126.56,124.15,117.54,127.28,124.20,126.07, 123.47,128.48,119.93,124.80,127.49,123.52,128.55,125.23,123.86,125.65, 127.47,124.98,125.55,130.55,129.04,129.29,125.51,125.15,127.95,133.91, 132.25,130.50,132.93,129.52,130.45,129.21,129.88,128.97,134.01,131.78, 128.39,129.02,133.74,130.27,133.14,135.14,130.33,133.11,138.34,137.26, 135.10,142.69,134.62,135.68,136.25,135.12,136.43,139.86,136.53,137.61, 139.48,134.92,141.70,137.42,136.70,140.51,140.25,138.13,144.08,140.64, 137.50,140.35,138.09,142.43,145.69,143.69,142.88,140.99,140.90,144.20, 31.54,33.09,34.07,34.39,35.97,35.62,37.79,38.69,39.97,39.32, 41.59,41.49,41.73,42.81,45.29,45.20,44.53,46.03,47.48,47.60, 48.09,49.42,50.70,50.29,50.98,51.39,52.71,54.33,56.36,56.68, 56.84,57.33,56.61,55.38,57.95,60.43,59.27,59.12,62.07,61.23, 60.46,61.43,64.43,61.59,63.90,64.79,65.55,62.55,66.05,66.87, 65.73,67.97,69.57,66.70,71.17,68.26,72.27,69.35,70.97,72.95, 71.25,72.14,74.04,72.54,74.90,75.43,76.45,75.73,78.06,75.28, 77.89,75.20,76.53,77.28,77.67,78.92,81.15,80.87,80.47,78.10, 79.01,78.06,80.32,81.11,80.89,82.88,85.53,83.67,85.10,87.66, 83.99,86.86,88.55,88.57,86.83,89.06,88.50,88.53,89.46,88.29, 87.95,92.17,87.86,91.52,89.73,88.88,92.80,92.09,94.41,93.50, 94.48,92.10,96.57,94.05,97.27,93.95,92.50,98.87,96.19,93.42, 97.21,98.57,97.80,97.22,97.44,96.67,100.08,96.22,100.09,98.08, 100.24,101.81,102.79,104.51,104.00,103.07,100.41,100.92,103.71,104.91, 108.01,101.01,104.26,103.95,103.64,104.91,110.62,108.22,106.33,106.56, 106.93,109.23,106.45,104.44,119.20,106.58,108.12,108.82,109.42,108.14, 109.24,111.14,114.82,111.34,116.59,109.23,109.09,109.89,113.14,117.38, 112.97,117.43,113.42,115.78,108.86,119.61,113.78,115.78,116.67,113.15, 112.26,118.74,114.19,118.90,123.29,119.60,118.56,118.43,117.99,123.24, 116.52,118.65,117.34,118.30,121.36,122.15,121.24,119.24,121.33,123.61, 118.12,125.56,116.73,116.08,125.24,126.48,124.14,126.50,121.10,123.61, 122.32,120.63,125.63,128.14,128.77,126.38,129.39,125.48,124.53,125.21, 133.02,123.16,129.48,121.77,137.20,131.92,136.02,125.27,128.35,125.35, 131.09,130.24,126.73,131.61,132.70,134.07,130.42,131.34,132.41,136.66, 136.06,133.15,139.81,134.84,135.39,132.77,136.08,138.45,135.20,139.15, 132.64,133.81,132.35,137.94,135.45,138.95,138.75,141.51,138.00,139.74, 137.20,138.90,136.58,132.15,137.60,136.89,139.56,137.83,143.77,145.39, 143.19,143.34,144.82,143.18,140.10,142.98,140.69,145.12,145.73,144.16, 144.19,144.18,145.91,144.21,150.67,145.06,146.99,145.92,148.89,142.37, 19.84,20.91,19.29,21.12,21.58,20.78,21.79,21.37,21.35,21.87, 22.04,22.16,21.88,22.31,23.55,21.83,23.87,23.44,24.29,23.73, 24.54,24.81,25.28,24.38,25.12,25.53,26.31,25.86,27.09,27.07, 26.72,28.11,26.31,26.82,26.90,26.02,26.90,28.08,28.32,29.61, 28.90,27.84,27.51,29.98,29.97,28.67,29.24,30.76,29.91,30.07, 29.83,30.72,29.76,30.51,29.87,31.62,30.30,31.68,32.01,33.60, 32.25,32.04,31.35,32.86,32.50,33.30,33.50,33.25,32.56,34.59, 33.66,33.27,33.94,35.14,34.26,33.11,33.99,36.21,33.90,34.42, 34.85,34.47,36.32,35.30,35.20,35.89,35.78,36.76,36.66,37.45, 35.57,37.53,36.47,37.76,36.40,38.56,38.23,37.50,36.88,36.13, 37.31,38.62,39.44,38.49,38.56,38.42,38.09,38.61,38.65,39.16, 39.53,37.70,39.81,38.53,39.10,38.68,39.17,38.31,39.91,40.51, 41.29,40.78,43.18,40.08,41.41,41.34,41.93,41.46,41.07,41.48, 40.68,40.78,41.77,41.05,43.73,43.20,43.32,43.40,40.68,42.52, 43.33,43.81,43.26,42.79,43.91,43.36,42.13,43.68,44.23,42.98, 45.01,42.78,46.71,45.29,43.22,44.74,46.30,45.00,44.84,45.83, 46.39,44.75,44.42,47.12,47.74,45.12,45.99,46.03,44.86,45.71, 45.87,47.67,47.68,46.01,47.10,48.16,46.51,47.90,46.46,47.22, 47.41,46.77,49.41,47.64,47.61,51.03,47.69,49.42,49.90,48.11, 47.30,49.96,48.95,49.09,48.60,48.83,50.12,50.66,47.97,48.82, 47.60,48.13,49.57,50.28,50.06,50.73,49.04,48.06,50.22,49.22, 52.17,50.45,48.07,50.66,51.58,50.68,49.85,54.17,50.67,52.64, 51.85,51.56,50.59,50.14,53.51,53.31,53.67,52.06,54.60,51.94, 54.11,51.96,51.98,51.77,52.22,52.06,54.32,53.91,52.61,52.69, 53.09,51.57,55.00,54.41,54.12,54.83,51.42,54.09,52.66,53.57, 53.48,53.88,56.18,52.18,57.11,53.87,55.91,54.63,55.69,55.44, 58.75,52.98,55.44,54.72,56.05,56.85,56.50,55.67,58.99,56.56, 58.70,58.18,57.41,58.18,59.60,57.33,57.60,56.12,56.80,56.97, 58.24,57.51,58.40,59.01,60.48,58.49,58.40,58.08,58.39,57.73, 21.81,21.11,20.49,20.68,22.90,21.49,22.16,22.66,22.12,22.47, 23.55,23.69,25.20,25.01,25.50,25.26,25.01,25.98,25.39,27.30, 25.40,26.38,27.72,27.82,27.57,27.33,26.98,29.21,28.62,29.17, 27.80,29.38,28.90,29.91,29.54,29.12,30.97,30.05,31.19,31.00, 31.70,30.98,31.62,31.29,31.57,31.57,33.05,33.53,32.89,33.61, 32.89,33.62,33.80,33.59,32.88,33.91,34.71,33.85,33.87,35.12, 35.94,35.52,34.59,35.15,35.84,36.75,35.69,37.19,36.38,36.87, 37.46,37.33,36.17,38.92,37.01,36.45,39.14,39.17,37.43,41.18, 38.83,39.30,39.36,39.28,39.69,40.39,40.35,40.64,39.17,40.51, 40.96,40.27,40.06,40.97,41.39,41.86,43.15,41.57,42.65,41.14, 41.19,43.38,42.73,40.99,42.60,42.14,42.40,42.86,44.11,43.43, 42.89,43.01,45.62,43.68,45.39,45.16,44.96,46.13,44.14,44.97, 43.43,44.39,44.98,46.61,46.72,45.39,45.43,45.12,45.52,46.54, 45.85,47.03,47.21,45.90,48.66,47.02,47.24,46.88,48.50,46.75, 47.01,50.09,45.69,48.05,49.73,48.16,48.29,49.24,47.78,51.91, 48.77,48.21,50.26,48.21,47.94,50.94,51.20,52.32,49.63,48.55, 51.77,50.72,50.52,51.51,52.49,49.40,50.64,53.55,51.41,54.01, 52.93,51.85,50.94,51.95,52.28,52.06,51.46,53.37,51.76,52.81, 55.10,54.73,52.07,54.95,52.33,54.00,52.18,54.02,54.69,51.75, 53.55,54.05,54.95,54.67,56.07,57.93,55.89,56.38,55.47,54.26, 54.48,56.49,55.98,56.03,55.26,56.39,57.78,56.08,57.63,58.23, 55.33,57.73,56.58,56.01,57.64,56.14,57.55,55.57,56.73,61.49, 59.39,57.11,55.52,56.32,57.65,58.06,56.89,60.86,59.56,57.90, 58.89,57.94,56.31,59.56,58.85,58.28,61.05,59.40,59.45,60.95, 57.74,61.76,62.69,59.06,61.31,61.01,59.91,61.83,64.20,59.73, 61.19,61.13,59.39,61.21,61.77,63.68,61.73,65.44,62.70,62.35, 59.95,61.91,62.77,63.68,63.28,60.37,61.79,63.79,61.99,64.56, 63.44,63.28,66.18,62.46,65.38,65.58,62.59,66.06,62.92,64.59, 65.52,64.41,65.76,62.25,67.42,64.48,67.61,67.06,69.50,65.68, 22.41,22.83,21.96,22.86,23.12,24.01,23.90,23.86,24.53,25.22, 25.07,25.23,26.11,26.02,26.41,26.83,26.38,28.18,26.62,28.42, 28.44,29.02,28.22,29.47,30.68,29.53,29.06,27.79,32.30,30.54, 31.65,30.36,31.92,32.58,33.38,31.95,32.22,32.13,34.56,34.16, 34.45,33.34,34.04,35.65,34.71,34.61,35.58,35.68,35.07,35.70, 35.21,35.54,36.35,38.71,36.59,36.02,38.65,39.24,37.45,39.03, 36.67,38.28,37.29,38.68,38.62,38.74,39.90,40.42,41.28,39.98, 40.82,39.43,41.04,42.02,41.27,39.76,41.38,40.75,44.00,43.56, 41.94,43.11,42.40,42.03,43.28,42.77,43.37,44.61,42.19,44.59, 44.38,47.29,44.65,45.00,46.67,43.23,45.86,45.62,45.84,44.64, 46.92,45.21,47.14,46.64,46.33,45.46,48.65,48.42,46.88,49.01, 46.31,47.59,47.83,49.47,49.91,45.30,48.68,49.00,50.73,49.67, 51.04,49.32,49.95,51.02,50.27,49.55,50.62,51.80,49.71,51.02, 50.88,51.88,52.97,50.85,51.55,51.89,53.66,51.51,52.94,53.82, 52.99,53.08,53.87,54.28,53.51,53.22,55.44,54.22,52.72,52.18, 54.37,54.59,52.11,55.13,54.92,56.71,57.40,53.44,55.29,56.01, 55.31,55.80,57.28,58.17,56.06,57.27,55.41,55.44,57.32,55.28, 58.65,59.71,56.68,57.89,57.72,57.46,59.19,58.82,57.52,57.71, 57.03,60.14,58.69,57.21,57.55,59.56,60.36,59.25,61.39,58.34, 60.31,60.64,61.35,59.75,60.77,61.93,60.98,61.21,61.19,65.07, 63.08,62.01,62.91,63.07,62.61,59.74,63.75,63.73,65.92,61.94, 64.44,65.19,63.31,64.25,59.60,62.69,64.83,64.92,62.93,64.12, 63.54,67.25,64.59,63.21,64.48,64.35,65.17,66.76,64.66,67.70, 63.95,64.07,64.88,66.61,64.19,65.71,63.59,69.59,67.48,65.40, 66.17,66.09,66.78,66.50,65.50,65.95,67.44,68.45,68.07,68.11, 68.10,68.64,68.92,71.95,70.40,68.81,67.31,67.96,69.39,68.89, 68.78,69.33,70.24,68.13,69.96,69.45,69.78,71.94,69.39,69.03, 72.29,70.34,72.56,71.11,72.63,70.95,69.79,69.86,69.39,70.56, 71.60,75.20,71.85,73.16,72.54,69.66,71.81,72.21,71.64,70.40, 22.46,23.72,24.62,23.27,25.38,24.84,25.52,25.38,26.13,26.84, 26.62,26.51,28.47,26.15,28.20,27.66,28.27,29.74,29.82,30.26, 30.54,29.93,30.24,30.84,32.03,30.81,33.16,31.82,33.92,32.64, 33.73,34.36,33.85,35.03,34.37,34.29,36.06,35.02,37.75,35.21, 37.08,36.15,35.91,35.73,36.74,37.43,36.97,38.64,39.82,38.68, 38.94,38.25,39.98,39.13,39.66,41.18,39.98,40.72,41.36,40.86, 41.95,42.28,41.53,41.20,42.42,42.35,42.93,44.33,44.63,45.57, 44.19,43.87,44.02,46.03,45.84,45.81,45.71,44.85,45.27,45.75, 46.81,47.04,47.67,48.01,45.08,46.32,46.83,47.32,47.21,48.68, 48.25,47.96,46.98,49.72,48.46,48.97,47.55,50.94,49.75,50.21, 49.79,51.77,52.07,51.08,51.85,51.66,50.32,52.04,52.28,51.09, 53.40,52.61,51.52,54.05,51.60,51.15,53.60,52.90,55.64,54.87, 54.32,53.43,55.65,54.90,55.74,54.06,55.40,54.25,56.33,55.80, 56.33,54.44,56.51,55.08,58.35,56.45,53.91,57.10,56.56,59.09, 56.21,59.22,60.11,59.13,57.49,58.04,59.12,58.62,59.05,57.05, 58.60,60.09,59.29,59.97,60.41,62.85,59.06,62.34,58.89,59.11, 62.18,61.21,61.14,61.42,63.68,63.11,62.66,62.66,61.72,61.34, 62.95,64.24,60.21,63.04,63.64,62.46,65.69,61.96,63.46,65.34, 63.22,63.90,64.74,64.81,63.90,66.51,63.56,64.09,66.89,65.07, 68.52,65.58,67.46,67.00,64.52,66.29,68.13,66.42,66.08,64.62, 66.02,65.79,67.51,70.83,65.90,65.44,66.63,67.89,70.02,69.49, 69.49,68.64,69.83,69.42,70.34,69.14,69.15,69.05,68.44,67.51, 70.90,70.30,71.14,70.37,68.70,67.48,67.87,70.15,72.47,69.50, 69.74,71.95,75.81,69.54,72.19,72.28,74.40,72.54,69.34,70.71, 73.79,75.62,77.17,74.51,71.02,73.13,72.70,77.93,73.25,76.87, 73.16,76.38,72.70,75.77,75.17,77.63,73.22,77.18,73.92,73.49, 74.28,76.48,76.94,75.38,77.50,76.92,76.62,77.61,76.04,74.30, 76.09,78.20,75.04,76.31,75.96,79.68,79.28,76.11,79.05,80.28, 78.96,79.35,77.02,78.59,79.68,78.43,82.32,78.04,79.52,82.33, 22.59,23.11,24.93,25.65,25.05,26.66,26.15,27.30,27.89,28.00, 27.21,27.02,29.10,30.79,29.32,29.62,31.25,31.00,31.58,31.45, 31.29,33.52,33.41,32.62,32.24,33.12,35.02,35.06,35.31,35.50, 35.97,36.09,34.42,38.07,37.43,37.36,37.47,38.26,39.62,38.56, 39.71,39.35,39.42,38.46,40.04,39.98,39.59,42.57,41.07,41.76, 40.79,42.47,42.51,42.26,40.76,42.78,46.02,44.10,44.05,44.49, 44.15,47.07,44.42,45.68,44.84,44.60,46.49,44.95,46.77,46.23, 47.73,47.85,48.94,48.17,47.85,47.80,48.18,50.97,49.74,49.43, 51.00,47.37,49.33,51.01,51.30,48.95,52.70,54.70,52.92,54.42, 53.50,51.38,51.93,51.21,54.91,53.10,53.33,55.13,54.93,55.34, 56.16,55.13,54.33,54.50,55.07,55.30,57.13,55.49,57.44,57.23, 53.45,57.48,56.88,57.49,55.46,57.55,53.74,57.68,56.08,60.41, 57.26,60.49,57.61,58.70,61.15,61.10,59.85,59.27,61.40,60.98, 60.29,57.09,59.26,61.15,63.02,62.71,64.56,61.27,62.49,63.20, 64.55,64.13,62.60,65.27,60.99,61.66,66.18,63.22,64.35,65.39, 62.74,65.65,63.98,63.10,63.25,65.71,67.09,65.84,66.24,68.20, 65.35,65.56,66.06,68.24,67.33,65.82,67.90,68.48,70.03,68.83, 68.32,68.79,70.62,68.62,72.51,69.09,69.99,69.36,67.19,68.62, 70.51,69.68,68.27,71.71,69.31,71.50,72.27,72.38,70.86,69.38, 70.20,68.87,72.03,70.74,70.89,70.50,73.92,70.13,74.60,75.61, 73.39,75.29,74.09,72.66,74.07,72.06,75.94,74.29,76.06,75.14, 75.29,76.85,74.21,75.92,75.81,74.39,76.51,73.98,76.03,76.93, 78.00,76.71,77.97,75.97,78.84,76.34,75.05,76.38,77.63,77.34, 76.11,80.33,79.68,76.85,80.80,74.49,83.22,81.34,79.53,79.73, 84.92,78.98,76.98,78.23,80.35,80.96,77.59,82.25,80.35,80.42, 79.96,80.36,83.26,80.46,81.35,83.74,80.97,80.13,79.17,81.25, 84.12,84.82,86.06,82.20,83.84,81.45,85.38,85.31,84.55,83.32, 84.58,81.77,83.40,86.31,86.35,81.52,83.44,82.61,88.57,83.46, 87.44,88.49,86.63,83.84,86.31,87.13,87.31,87.62,83.96,89.46, 23.62,24.66,26.44,25.32,28.13,26.47,26.15,29.04,28.67,31.22, 30.15,30.06,29.37,31.58,31.02,32.89,33.31,31.41,33.20,34.00, 32.85,32.79,33.70,35.86,35.06,35.90,35.66,37.48,35.78,38.18, 38.17,37.87,40.79,40.83,39.68,37.87,38.75,42.11,41.06,39.72, 42.47,40.49,42.82,41.87,42.57,42.74,44.34,45.08,44.37,44.12, 44.51,47.02,46.26,46.35,45.95,46.30,46.61,48.04,46.99,47.45, 47.98,44.71,50.06,47.91,49.77,49.92,49.24,51.93,51.53,47.97, 48.96,52.46,51.54,52.29,51.08,51.96,51.95,54.22,53.10,52.48, 54.11,53.85,54.30,53.68,53.28,55.89,57.32,57.33,56.81,55.86, 57.34,56.52,57.93,56.98,54.32,58.72,58.36,58.33,57.97,57.75, 59.29,59.91,58.99,57.39,58.04,58.49,57.77,60.47,63.27,61.92, 60.88,62.30,61.10,63.14,59.84,62.24,65.38,63.76,62.25,63.20, 62.03,62.90,63.24,62.82,62.97,63.55,62.43,63.58,65.47,65.61, 63.13,64.22,68.96,64.37,66.09,66.06,65.71,67.80,69.42,69.75, 65.65,66.98,68.97,68.49,69.72,69.87,68.74,67.87,67.73,67.93, 68.54,69.76,67.42,73.75,71.76,70.85,70.75,68.71,72.00,70.33, 72.30,70.72,69.27,73.20,71.41,70.93,71.58,76.25,73.21,73.91, 72.89,73.09,73.09,74.93,73.79,74.21,75.73,76.98,77.28,75.84, 77.21,75.52,74.54,74.30,79.88,76.17,78.23,77.28,77.28,74.41, 76.68,76.63,77.73,77.91,75.31,81.81,76.97,80.69,78.33,79.99, 78.40,77.29,80.06,81.69,79.12,76.38,80.01,77.26,80.14,83.22, 78.38,79.87,84.57,83.52,82.57,85.47,82.84,81.24,83.61,84.54, 83.06,83.72,83.13,81.63,85.58,83.06,86.72,87.88,83.08,86.90, 82.67,84.43,84.90,84.84,83.92,86.14,82.74,88.91,83.55,84.94, 83.27,83.09,87.54,85.64,86.11,88.18,88.38,87.47,90.11,89.63, 88.26,90.66,89.68,87.10,85.45,86.56,89.21,92.70,87.42,94.88, 91.09,91.96,91.32,85.98,90.07,90.09,87.13,89.03,87.39,91.18, 90.62,90.59,93.53,91.81,93.02,90.30,92.28,92.84,88.71,92.21, 92.18,88.04,91.54,91.73,87.81,92.75,88.29,93.41,96.65,93.95, 24.56,26.23,26.96,27.07,27.36,28.75,29.12,29.20,31.25,31.21, 32.14,31.23,31.57,34.71,32.54,34.22,34.28,35.42,34.45,35.44, 36.33,37.27,36.90,37.66,37.92,39.04,38.19,38.69,37.92,38.82, 40.31,40.04,41.09,42.42,41.56,42.48,42.81,42.26,44.72,46.07, 43.96,44.11,44.96,45.65,43.99,45.10,46.07,46.22,49.45,47.62, 46.17,48.31,49.97,48.76,48.68,49.83,49.88,49.07,49.70,49.64, 49.93,50.46,51.32,52.40,55.15,52.28,52.65,54.19,55.49,52.74, 54.07,54.19,53.88,54.34,54.37,55.12,54.49,53.16,56.39,55.75, 55.67,58.84,56.46,59.70,59.45,60.33,59.40,58.79,60.24,60.21, 57.24,59.96,59.77,58.13,61.83,61.62,60.69,59.75,63.72,62.50, 65.02,63.17,62.60,64.49,63.52,63.68,65.08,63.31,65.26,67.43, 66.32,65.07,65.75,65.68,66.04,67.06,68.63,66.92,68.04,67.70, 66.47,67.49,67.56,70.86,69.92,69.03,70.41,67.50,72.53,71.57, 67.75,69.28,70.03,68.31,71.49,74.00,68.90,69.45,69.55,74.05, 73.24,72.33,73.21,76.71,66.98,73.87,73.49,71.00,75.09,75.16, 71.87,74.07,74.97,76.32,76.49,76.72,74.65,78.47,75.44,77.33, 79.02,73.88,76.96,77.63,76.31,77.54,81.64,76.55,79.66,77.74, 79.80,78.50,79.50,78.93,79.06,83.60,80.44,78.21,80.20,77.27, 81.31,80.15,79.51,83.12,77.07,78.23,80.70,80.81,85.46,79.16, 84.98,82.90,83.85,81.30,83.48,83.00,84.50,83.45,85.27,85.71, 83.33,87.17,83.91,83.93,84.52,85.52,86.06,90.88,87.73,88.21, 88.91,86.86,88.24,89.97,87.04,85.87,85.90,86.41,89.12,87.69, 85.48,91.03,90.19,92.46,90.67,93.50,90.45,91.26,93.35,90.98, 89.51,90.50,89.59,89.74,92.85,90.42,92.05,88.66,93.17,94.51, 88.59,91.10,89.76,91.46,89.37,92.42,89.87,89.46,95.96,94.36, 90.42,93.67,95.48,96.13,97.52,95.90,98.72,94.31,97.43,96.03, 96.85,97.86,97.99,96.43,96.87,97.13,93.92,96.76,95.86,95.41, 91.09,97.60,98.15,98.96,95.40,97.52,100.33,101.10,94.28,100.80, 97.22,96.86,98.12,103.33,100.96,100.42,100.18,96.20,96.61,105.08, 26.78,26.44,28.54,28.38,29.30,30.96,30.22,31.53,30.81,31.95, 33.24,34.73,33.71,35.02,34.48,35.57,35.74,37.52,37.18,37.24, 39.25,38.87,41.38,38.93,40.52,40.43,39.70,42.45,39.76,41.71, 43.41,42.60,44.19,43.55,43.82,45.36,45.39,44.68,46.04,43.96, 46.14,47.20,45.92,46.80,47.75,49.21,50.39,47.52,50.16,50.56, 50.53,50.77,51.60,53.04,50.43,51.08,52.52,53.92,51.51,54.21, 55.97,53.21,52.72,54.88,56.57,55.36,56.71,55.29,56.81,58.50, 56.85,57.48,58.44,58.21,58.60,60.11,59.48,59.33,57.95,59.56, 62.17,62.75,61.92,61.60,62.52,61.27,62.98,64.98,62.46,63.36, 59.88,65.11,64.66,63.73,66.56,62.21,65.85,64.80,64.93,63.61, 66.90,67.44,65.31,66.29,67.25,67.94,70.78,68.15,69.19,69.17, 68.32,69.06,67.42,68.54,70.59,69.22,69.07,69.67,69.77,69.19, 71.58,70.96,71.05,73.36,72.64,75.83,71.98,73.50,73.04,75.50, 77.47,73.60,73.57,73.36,79.01,75.39,74.58,75.10,75.53,74.05, 72.38,75.75,80.25,78.93,78.56,77.47,77.96,75.36,76.75,76.02, 81.75,77.74,78.65,79.10,78.51,80.53,80.77,82.62,78.94,81.44, 82.08,80.45,84.74,83.28,82.22,84.79,85.74,81.08,82.34,86.79, 85.32,81.11,83.84,83.85,81.64,85.79,87.30,83.93,86.66,85.80, 82.45,86.82,89.51,85.54,87.19,85.34,86.09,87.12,86.06,85.13, 87.91,89.02,89.58,90.22,83.82,87.75,91.86,88.55,90.43,88.58, 88.98,92.59,93.50,91.92,88.72,90.04,88.97,88.34,91.95,95.27, 87.13,95.00,92.41,94.15,95.21,92.80,94.74,93.43,92.36,92.48, 93.97,95.10,96.86,95.08,97.92,94.07,96.09,92.17,94.42,95.45, 94.85,93.56,99.31,95.96,96.78,96.78,95.32,95.23,96.00,96.50, 96.93,99.29,94.54,97.55,96.88,97.26,97.62,100.37,99.48,98.92, 101.53,99.68,101.17,101.28,101.86,102.17,98.86,102.22,102.58,100.72, 98.51,101.85,105.20,100.30,103.36,100.13,106.27,101.43,105.37,102.04, 102.38,102.84,106.27,104.52,105.69,102.26,104.22,107.77,104.05,99.64, 102.28,104.37,107.02,105.66,106.10,104.22,106.10,103.68,104.73,106.90, 27.85,29.01,29.10,30.03,31.26,31.96,31.79,33.25,32.95,35.18, 34.86,33.60,37.45,35.83,35.79,36.22,38.25,38.74,38.52,40.27, 39.16,38.96,41.36,40.69,43.33,41.96,42.21,43.27,44.17,41.58, 44.04,43.17,45.71,46.34,44.82,47.50,49.15,47.69,50.09,49.23, 49.86,49.03,48.26,52.52,49.92,52.04,51.17,50.69,52.62,51.38, 51.80,54.17,53.19,55.23,54.58,57.20,56.50,53.01,56.24,58.08, 56.10,57.14,55.83,59.18,57.03,59.48,59.18,57.92,57.94,60.55, 59.73,61.22,61.32,61.50,60.12,61.57,63.38,65.52,63.86,62.64, 63.93,65.94,65.33,61.41,65.32,68.48,68.49,65.28,67.27,63.60, 68.54,67.91,66.20,69.01,68.39,70.88,68.60,71.14,70.60,69.76, 69.79,67.17,70.30,67.57,72.20,71.75,71.33,70.84,71.85,71.22, 70.24,71.72,73.52,75.10,77.68,70.82,72.11,75.86,75.55,73.35, 77.36,74.89,75.64,78.75,75.69,76.58,77.67,77.46,79.76,78.05, 77.27,77.39,74.95,78.65,74.56,78.47,80.63,80.07,82.52,80.82, 78.72,84.62,79.92,83.32,78.36,81.65,81.35,80.52,84.60,84.68, 85.21,81.04,83.99,86.77,85.21,83.36,83.47,83.64,87.17,88.65, 89.77,85.73,87.11,88.07,85.50,86.35,84.33,84.23,86.35,89.59, 86.12,87.07,87.73,86.87,90.57,93.24,85.25,88.65,92.74,90.89, 92.25,88.40,91.40,94.09,89.79,89.84,86.82,90.94,93.27,91.16, 95.34,93.25,91.81,91.83,95.45,97.86,93.29,93.79,97.87,97.98, 95.04,95.39,97.87,92.83,92.53,100.00,100.36,96.51,97.93,94.95, 97.34,95.84,101.70,98.82,94.57,96.54,98.46,97.89,99.89,97.71, 101.40,101.71,103.24,96.00,100.45,100.97,100.98,101.02,96.12,103.09, 100.44,102.51,96.85,103.89,99.81,102.69,100.84,102.56,103.00,101.26, 102.27,102.76,102.19,102.02,104.04,103.10,102.27,107.40,106.89,105.89, 106.56,110.42,104.13,109.42,107.16,106.13,102.58,105.15,105.46,111.89, 105.31,110.36,109.99,108.91,114.69,109.20,107.86,111.11,105.81,109.65, 109.30,104.89,107.06,111.51,111.05,113.23,108.38,117.83,107.53,110.23, 112.14,109.26,116.43,111.28,109.20,107.28,115.43,114.38,112.04,113.57, 28.18,29.75,28.87,29.08,30.73,32.29,32.66,32.97,33.82,35.32, 36.05,35.04,36.33,35.15,38.83,39.36,39.29,39.38,42.21,38.94, 43.25,41.39,42.78,43.90,43.52,43.34,44.17,43.52,46.97,45.39, 46.78,48.30,47.03,48.33,48.69,48.51,50.25,48.56,51.39,51.49, 50.99,51.23,49.54,51.89,51.56,53.14,54.82,53.42,54.58,55.72, 53.73,56.91,56.62,56.93,56.80,57.08,58.78,60.19,57.11,59.85, 58.51,57.96,59.44,58.92,64.88,60.76,62.69,58.70,62.80,64.62, 62.36,63.84,65.05,66.90,65.78,65.77,67.08,66.82,65.47,67.04, 66.54,68.49,70.28,68.05,69.04,67.70,67.24,67.68,69.19,68.84, 69.40,70.00,68.98,68.64,71.82,74.02,73.83,72.48,73.33,74.81, 71.38,77.75,71.21,75.98,75.71,72.59,71.15,76.32,71.54,75.98, 76.29,77.27,76.18,77.40,78.91,79.35,78.00,76.45,78.73,82.00, 80.64,81.31,77.85,80.55,82.19,80.53,78.44,78.71,81.92,81.99, 83.55,77.29,80.89,84.83,86.40,84.68,83.29,84.13,85.42,85.89, 86.30,84.37,85.42,84.91,86.54,87.72,85.59,87.91,88.93,84.99, 85.69,85.25,87.77,87.10,90.79,92.82,87.79,86.52,87.87,88.82, 90.32,91.69,93.62,93.07,90.30,91.08,91.72,91.73,90.78,89.13, 91.20,94.16,93.54,91.64,90.06,94.84,94.33,93.57,93.28,94.51, 92.67,95.28,93.74,97.34,98.12,99.94,97.53,99.02,97.42,95.66, 97.02,98.59,96.42,96.10,95.60,95.34,97.16,97.68,100.29,102.32, 98.70,102.77,101.98,101.74,98.41,99.72,98.11,101.60,97.43,99.92, 101.87,103.58,100.94,102.17,104.88,105.24,107.12,104.58,104.15,104.35, 102.90,102.44,104.70,105.74,109.94,106.07,104.78,106.55,109.74,107.53, 109.12,104.58,103.44,105.37,104.07,108.79,112.13,104.32,105.72,111.03, 103.44,110.68,106.34,114.26,109.41,108.80,107.77,107.12,108.56,109.47, 107.51,107.42,109.20,113.30,113.42,114.79,113.30,106.54,113.03,114.91, 115.79,112.88,112.03,111.65,110.47,113.41,112.49,111.90,115.42,114.71, 112.93,112.92,120.47,117.14,114.98,115.45,117.70,119.16,116.69,117.55, 116.24,116.80,114.45,114.99,113.60,121.16,120.07,117.19,116.24,116.59, 28.15,30.01,31.04,31.29,33.03,34.73,33.70,33.57,35.90,35.96, 36.71,36.91,37.30,38.55,38.20,40.36,39.62,43.44,42.87,41.81, 42.57,43.76,43.28,42.33,46.99,46.19,46.76,47.51,45.71,48.12, 47.76,50.38,51.71,51.04,52.05,49.88,49.00,53.23,49.98,53.57, 54.09,55.09,54.94,56.19,58.19,57.44,57.41,58.17,55.31,57.92, 59.17,58.42,55.99,59.31,61.67,57.74,62.54,62.13,61.09,60.19, 62.01,60.31,63.81,64.18,63.72,64.57,65.66,65.26,66.57,65.65, 67.96,65.35,67.97,65.59,66.06,67.28,69.32,70.11,70.44,72.06, 68.74,70.40,70.50,69.97,71.61,69.15,71.79,72.21,74.97,73.71, 73.33,71.82,72.19,75.77,74.46,75.49,74.75,74.13,77.58,74.70, 78.41,78.28,79.44,76.83,76.73,74.82,79.20,78.95,80.79,80.98, 77.82,81.94,82.78,79.29,80.35,79.88,82.63,83.35,86.41,84.85, 83.40,83.72,81.60,81.99,84.94,89.29,85.70,83.12,88.96,87.48, 89.39,83.61,88.89,83.83,83.94,85.37,89.05,88.09,92.18,87.93, 88.19,88.19,87.80,93.31,86.49,92.13,90.65,90.78,88.38,90.03, 88.52,93.77,90.11,97.86,92.62,94.12,94.65,95.56,94.39,97.10, 92.41,97.00,95.78,93.97,94.46,94.07,94.34,95.15,97.22,96.00, 96.73,95.16,98.23,102.83,98.64,100.91,99.66,96.92,100.54,98.69, 97.41,100.00,100.73,101.09,101.22,101.12,101.33,98.90,100.49,104.94, 101.73,97.44,100.52,100.98,101.95,108.88,106.41,101.79,102.97,98.47, 106.77,106.05,101.58,105.00,103.87,107.98,103.98,105.97,108.00,107.04, 105.78,106.82,108.53,108.53,110.13,106.77,104.15,106.72,113.07,109.60, 110.88,107.12,111.85,112.47,110.97,106.60,111.60,111.99,112.42,110.96, 110.33,107.02,111.01,113.58,117.53,113.40,110.98,112.14,118.05,114.62, 115.06,115.84,113.46,111.80,114.64,115.84,117.74,115.55,115.68,113.65, 111.44,112.36,113.37,117.77,116.25,121.47,116.77,119.45,118.73,118.05, 116.77,114.18,121.77,114.94,115.38,123.77,119.66,120.26,124.09,120.95, 121.08,117.23,120.63,118.38,118.95,123.81,121.24,114.08,125.51,121.66, 121.66,125.38,123.75,122.85,124.47,122.00,125.48,128.26,122.78,124.62, 30.28,31.03,32.90,32.55,33.09,33.40,34.32,35.62,37.33,38.46, 38.55,38.63,38.72,39.28,39.82,41.00,41.01,43.38,43.54,44.91, 44.92,46.72,47.10,46.86,46.85,47.36,47.91,49.10,47.90,49.35, 50.33,51.80,51.17,53.82,53.08,50.36,54.18,55.06,52.84,54.70, 56.58,55.62,54.87,56.67,59.72,59.09,57.49,60.62,59.21,63.71, 58.55,62.96,60.21,58.13,64.13,63.50,65.60,65.14,60.64,64.30, 65.38,66.69,66.82,64.70,67.19,66.20,70.26,67.65,68.28,71.36, 68.23,68.16,69.74,68.19,70.31,71.31,72.08,70.14,72.72,70.41, 72.77,74.36,76.88,72.50,77.03,75.25,74.52,74.66,77.70,79.14, 75.67,76.41,75.89,76.17,78.05,78.29,80.26,77.02,78.24,80.87, 76.83,78.97,81.21,79.89,81.64,80.42,84.05,81.08,86.00,82.57, 82.74,82.96,83.16,84.97,80.26,87.60,86.93,86.44,89.54,86.04, 89.02,86.60,87.83,89.65,89.12,88.67,86.19,87.69,86.39,89.51, 89.61,90.82,89.26,89.65,92.75,88.59,91.47,92.90,92.67,96.06, 90.77,91.98,91.27,92.45,93.53,93.68,95.88,95.14,94.04,93.80, 93.78,95.70,94.58,96.84,97.26,95.24,96.15,96.03,95.61,98.81, 98.93,95.44,97.75,98.64,98.50,97.83,100.94,101.24,98.56,96.41, 95.97,97.71,104.12,103.14,101.91,103.95,103.14,99.33,106.55,100.12, 100.09,101.88,104.27,104.44,105.06,103.67,106.49,106.13,103.33,106.65, 102.43,100.43,105.17,108.26,111.53,109.17,109.90,107.14,108.67,109.50, 107.90,103.48,111.11,113.36,108.00,108.69,106.43,111.26,110.99,110.60, 113.38,112.10,109.35,113.93,117.11,114.90,110.53,112.83,113.91,113.89, 114.16,113.50,116.81,115.60,114.64,115.28,111.39,115.71,119.82,115.68, 116.55,117.26,120.74,114.94,119.22,118.79,116.93,116.39,118.27,122.66, 114.62,119.79,124.45,115.56,124.34,123.14,118.06,123.21,115.61,122.47, 119.95,125.07,123.82,123.24,121.78,125.00,125.22,115.62,121.01,122.08, 121.02,127.14,120.72,125.58,127.86,128.75,120.24,121.63,126.31,120.88, 129.95,124.37,124.71,125.17,125.68,127.43,130.23,126.05,125.86,127.51, 126.22,130.06,126.17,128.38,129.92,131.65,131.61,129.86,132.72,123.27, 32.28,31.60,33.90,33.35,35.54,35.28,36.01,36.84,37.66,40.48, 38.11,39.94,39.23,42.17,43.01,43.07,43.58,43.83,44.93,47.06, 45.70,47.80,47.19,48.65,48.98,45.95,49.43,49.76,52.53,50.58, 51.74,52.52,52.15,54.61,57.38,54.01,54.72,55.08,57.75,56.59, 55.53,59.28,58.27,58.11,58.91,59.40,61.98,61.66,62.82,63.10, 60.10,67.81,65.16,65.56,66.85,63.20,63.47,66.07,66.65,66.93, 67.58,71.81,68.36,66.39,68.08,70.10,68.66,71.15,72.38,70.48, 71.85,70.92,70.17,73.85,73.67,73.97,75.92,74.75,72.68,74.20, 76.28,74.75,77.39,75.05,76.12,77.74,78.03,76.48,78.57,77.49, 77.71,78.69,80.62,84.54,79.51,80.37,81.82,86.65,80.92,82.51, 82.59,82.15,84.46,81.26,84.10,83.81,85.63,83.79,89.23,85.47, 87.06,87.17,85.96,88.66,89.38,89.44,89.03,90.50,90.33,90.59, 91.93,87.61,91.01,90.00,89.02,90.56,95.39,92.77,90.69,91.80, 91.18,95.52,90.64,95.81,92.02,92.41,93.92,98.13,93.64,97.57, 94.50,96.95,95.05,95.97,98.16,96.55,98.17,99.48,98.64,100.42, 101.67,102.87,101.72,98.49,101.43,101.41,100.22,103.89,100.99,105.75, 101.07,98.99,104.25,102.52,104.86,103.80,104.92,103.79,101.65,103.20, 102.89,104.67,106.89,105.80,105.61,104.55,107.32,103.27,107.57,110.36, 109.51,109.84,107.80,109.31,110.47,109.96,109.94,107.07,108.45,109.20, 108.50,113.23,108.78,106.94,113.69,113.44,112.49,111.78,110.61,116.81, 112.93,116.00,113.52,111.28,115.21,113.07,113.20,119.81,115.68,114.04, 116.31,118.31,114.34,115.67,117.17,118.59,115.31,118.66,113.93,118.53, 117.43,119.18,117.39,118.27,118.75,124.14,121.16,122.18,122.06,119.87, 122.61,120.04,117.15,120.14,118.33,118.92,122.24,122.57,121.25,123.10, 125.56,125.13,118.02,123.79,125.28,126.20,121.65,130.40,123.33,122.77, 121.70,124.70,127.60,128.75,127.56,128.62,126.73,128.47,124.05,131.51, 129.88,128.05,128.05,127.04,130.92,128.43,132.38,129.23,130.55,130.54, 129.32,126.45,131.19,130.83,131.27,130.50,128.80,132.68,132.52,128.92, 132.20,129.82,126.80,135.35,130.81,132.95,137.47,132.99,139.06,133.83, 31.15,32.18,32.96,33.25,35.89,37.73,36.70,36.97,38.94,38.77, 39.05,40.46,41.50,42.74,42.60,44.42,45.83,46.11,46.05,48.09, 49.91,46.24,47.46,50.36,50.83,51.57,51.36,51.30,52.46,54.36, 53.05,54.40,54.88,52.29,55.46,56.15,59.74,59.26,58.87,58.01, 60.00,59.94,58.71,62.05,62.57,61.68,62.01,64.98,64.13,64.76, 63.80,65.43,63.94,65.09,66.64,66.31,68.95,67.71,69.00,68.81, 67.83,69.49,69.50,68.41,68.23,70.00,71.61,72.73,72.34,71.13, 74.33,73.18,73.60,76.67,75.45,77.67,76.93,80.32,81.15,76.90, 77.58,77.64,79.05,78.06,78.58,80.70,81.93,76.72,81.60,82.41, 75.70,81.11,82.93,82.21,81.57,80.88,83.84,83.64,84.85,86.48, 85.82,85.00,91.27,86.79,89.92,90.21,90.73,88.19,87.84,89.28, 89.44,89.02,91.07,91.29,91.81,92.17,92.00,92.69,87.45,92.50, 97.21,91.01,88.76,92.59,95.41,94.74,95.42,94.34,94.21,97.13, 95.78,97.01,97.27,100.79,97.02,95.24,97.86,99.36,100.30,99.46, 96.97,99.21,99.66,102.67,99.27,102.79,103.69,99.81,105.94,103.94, 99.41,102.09,104.51,104.37,99.28,102.10,102.67,98.87,104.03,110.31, 106.01,106.46,103.60,105.32,111.15,100.73,111.34,107.33,107.77,105.41, 106.86,112.07,105.77,113.30,108.58,110.84,113.72,113.70,108.91,108.18, 109.85,113.10,112.23,109.72,111.94,113.73,113.55,108.71,112.32,111.10, 115.29,116.44,117.04,117.96,110.54,114.02,114.92,116.56,118.31,119.67, 114.59,113.30,119.13,116.20,114.33,118.37,116.17,122.87,116.69,119.60, 122.21,118.53,115.21,124.30,121.20,123.83,123.06,122.06,120.36,119.05, 120.74,123.03,125.51,124.44,121.47,123.77,123.84,123.71,119.65,124.97, 123.11,126.26,130.56,122.92,125.60,129.52,126.61,127.46,131.10,127.14, 123.96,121.82,128.71,128.22,127.73,123.29,130.06,134.08,129.99,134.65, 130.96,129.56,130.86,124.83,134.81,133.56,129.82,128.73,135.25,129.51, 132.05,128.24,127.19,124.63,134.01,130.53,133.15,135.62,135.53,131.90, 134.43,130.84,139.00,134.91,139.50,142.51,134.94,131.09,131.75,134.35, 136.27,137.18,141.53,141.95,144.69,132.68,139.84,139.42,138.14,140.61, 32.56,33.78,34.40,35.26,36.89,37.98,39.92,39.63,40.88,38.80, 44.34,41.43,41.30,43.13,44.34,45.41,47.62,48.66,49.39,47.81, 48.61,49.53,48.52,52.05,51.20,52.22,50.65,53.52,54.80,55.07, 55.10,54.90,55.15,56.51,58.41,59.16,60.96,59.95,57.81,61.74, 62.85,62.61,62.53,62.07,66.00,65.67,64.88,66.97,66.94,67.98, 65.10,69.09,67.27,67.74,65.91,70.75,71.25,71.07,71.09,69.64, 72.31,71.65,70.26,74.12,74.00,75.32,74.69,74.36,72.52,75.59, 76.18,78.10,77.59,78.98,75.59,76.98,79.45,83.27,77.44,80.27, 80.38,77.46,79.43,82.25,81.55,81.23,81.24,86.26,83.55,86.09, 85.69,85.16,87.15,87.02,82.29,84.94,85.36,85.18,87.82,87.93, 88.63,87.98,88.81,86.28,84.82,88.52,92.73,94.47,93.04,93.47, 93.42,92.59,95.44,92.25,96.62,94.60,96.60,96.35,99.72,95.62, 97.16,96.53,96.91,97.07,98.21,97.24,96.49,100.91,96.51,99.24, 98.93,95.39,101.25,102.29,99.22,104.09,103.30,101.05,101.45,101.80, 100.09,101.10,105.86,103.40,103.87,104.29,102.40,105.46,105.01,106.80, 104.76,102.67,104.84,109.24,108.00,110.64,108.25,106.28,103.07,111.12, 108.53,106.61,104.90,112.56,109.56,112.56,107.99,109.76,111.88,107.66, 113.42,114.14,109.06,113.78,111.60,115.14,115.21,109.81,111.06,115.63, 115.40,117.98,115.55,116.75,116.37,116.10,119.78,118.33,120.86,118.94, 120.01,116.34,121.32,120.29,121.30,123.21,115.70,119.25,117.94,119.76, 118.91,120.00,122.10,121.63,124.11,123.75,126.05,117.82,126.20,121.50, 121.64,122.51,124.65,116.36,125.67,123.12,120.58,123.72,122.23,124.26, 128.57,128.47,127.19,128.18,126.31,124.79,126.36,124.76,128.86,124.83, 130.10,128.93,131.75,132.86,127.38,132.50,128.23,127.54,131.49,130.07, 131.14,132.10,133.72,130.69,129.55,130.86,137.71,131.30,137.55,135.08, 135.05,128.49,136.52,134.24,138.05,138.98,135.00,140.70,128.21,133.84, 131.77,138.31,133.84,134.99,141.56,142.82,135.64,140.69,137.72,136.90, 141.85,141.14,140.50,141.03,145.70,134.28,141.08,143.15,137.94,135.65, 143.94,139.25,135.97,142.05,146.51,140.13,144.63,139.89,145.76,143.92 }; #endif blasr_libcpp-master/alignment/statistics/LookupAnchorDistribution.cpp000066400000000000000000000037541260756663100267100ustar00rootroot00000000000000#include "statistics/LookupAnchorDistribution.hpp" int LookupAnchorDistribution(int readLength, int minMatchLength, int accuracy, float &mn, float &sdn, float &mnab, float &sdnab) { int kIndex, accIndex, lengthIndex; int returnValue = 0; // Major index is by accuracy if (accuracy < anchorReadAccuracies[0]) { returnValue = -2; accuracy = anchorReadAccuracies[0]; } else if (accuracy >= anchorReadAccuracies[1]) { returnValue = 2; accuracy = anchorReadAccuracies[1] - anchorReadAccuracies[2]; } accIndex = ( ((int)accuracy) - anchorReadAccuracies[0]) / anchorReadAccuracies[2]; // middle index is by k if (minMatchLength < anchorMinKValues[0]) { returnValue = -1; // signal too low minMatchLength = anchorMinKValues[0]; } else if (minMatchLength >= anchorMinKValues[1]) { returnValue = 1; // signal too high minMatchLength = anchorMinKValues[1] - anchorMinKValues[2]; // max match length } kIndex = (minMatchLength - anchorMinKValues[0])/ anchorMinKValues[2]; // last index is by read length if (readLength < anchorReadLengths[0]){ returnValue = -3; readLength = anchorReadLengths[0]; } else if (readLength >= anchorReadLengths[1]) { returnValue = 3; readLength = anchorReadLengths[1] - anchorReadLengths[2]; // max read length } lengthIndex = (readLength - anchorReadLengths[0]) / anchorReadLengths[2]; int nLengths = (anchorReadLengths[1] - anchorReadLengths[0]) / anchorReadLengths[2]; int nAccuracies = (anchorReadAccuracies[1] - anchorReadAccuracies[0]) / anchorReadAccuracies[2]; int nAnchors = (anchorMinKValues[1] - anchorMinKValues[0]) / anchorMinKValues[2]; int index = accIndex*(nLengths*nAnchors) + kIndex*nLengths + lengthIndex; mn = meanNumAnchors[index]; sdn = sdNumAnchors[index]; mnab = meanNumAnchorBases[index]; sdnab = sdNumAnchorBases[index]; return returnValue; } blasr_libcpp-master/alignment/statistics/LookupAnchorDistribution.hpp000066400000000000000000000004641260756663100267100ustar00rootroot00000000000000#ifndef _BLASR_LOOKUP_ANCHOR_DISTRIBUTION_HPP_ #define _BLASR_LOOKUP_ANCHOR_DISTRIBUTION_HPP_ #include "statistics/AnchorDistributionTable.hpp" // not ported int LookupAnchorDistribution(int readLength, int minMatchLength, int accuracy, float &mn, float &sdn, float &mnab, float &sdnab); #endif blasr_libcpp-master/alignment/statistics/StatUtils.cpp000066400000000000000000000020401260756663100236230ustar00rootroot00000000000000#include "StatUtils.hpp" void InitializeRandomGenerator(int value) { srandom((unsigned) value); } unsigned int RandomUnsignedInt(unsigned int randMax) { // // step 1, pack an unsigned integer with a random value, this // unsigned int randVal = RAND_MAX * (1.0*random())/RAND_MAX; // step 2, unsigned int lastBit = random() % 2; lastBit = lastBit << ( __WORDSIZE/2-1); // This should never overflow, add a 31-bit number into a 32. randVal+= lastBit; double fpRandVal = 1.0*randVal; return (randMax * fpRandVal / UINT_MAX); } unsigned int RandomInt(int randMax) { int randVal = (randMax * ((1.0*random()) / RAND_MAX)); return std::min(randMax-1, randVal); } unsigned int RandomInt(unsigned int min, unsigned int max) { return RandomInt(max - min) + min; } float Random() { return (RandomInt(0,RAND_MAX)*1.0)/RAND_MAX; } bool FindQNorm(float prob, float & nStdDev) { if (prob < 0.5 or prob > 1.0) { return false; } else { nStdDev = qnorm[(int)((prob - 0.50) * 500)]; return true; } } blasr_libcpp-master/alignment/statistics/StatUtils.hpp000066400000000000000000000152561260756663100236450ustar00rootroot00000000000000#ifndef _BLASR_STAT_UTILS_HPP_ #define _BLASR_STAT_UTILS_HPP_ #include #include #include #include #include #include #include static const long FactorialTableLength = 21; static const long long FactorialTable[] = { 1L, //0 1L, //1 2L, //2 6L, //3 24L,//4 120L, //5 720L, //6 5040L, //7 40320L,//8 362880L, //9 3628800L,//10 39916800L,//11 479001600L,//12 6227020800LL,//13 87178291200LL,//14 1307674368000LL,//15 20922789888000LL,//16 355687428096000LL,//17 6402373705728000LL,//18 121645100408832000LL,//19 2432902008176640000LL//20 }; static const float qnorm[] = { 0.00, 0.00250, 0.00501, 0.00751, 0.0100248, 0.0125393, 0.0150457, 0.0175408, 0.0200506, 0.0225647, 0.0250611, 0.0275717, 0.0300891, 0.0325931, 0.0351088, 0.0376059, 0.0401181, 0.0426244, 0.0451313, 0.0476466, 0.0501537, 0.0526685, 0.0551768, 0.0576842, 0.0601966, 0.0627038, 0.0652137, 0.0677392, 0.0702467, 0.0727575, 0.0752699, 0.0777852, 0.080295, 0.0828113, 0.0853292, 0.0878418, 0.0903688, 0.0928765, 0.095392, 0.0979195, 0.10043, 0.102954, 0.105478, 0.107994, 0.110512, 0.113035, 0.115563, 0.118083, 0.120607, 0.123137, 0.125664, 0.128186, 0.130713, 0.133244, 0.135772, 0.138305, 0.140837, 0.143367, 0.145904, 0.14843, 0.150967, 0.153507, 0.15604, 0.158573, 0.161116, 0.163651, 0.166199, 0.168748, 0.171287, 0.173822, 0.176371, 0.178922, 0.181467, 0.184019, 0.186569, 0.189112, 0.19167, 0.194223, 0.196777, 0.199337, 0.201891, 0.204451, 0.207017, 0.209579, 0.212134, 0.214704, 0.217263, 0.219839, 0.222406, 0.224971, 0.227549, 0.230116, 0.232695, 0.235260, 0.237849, 0.240428, 0.243002, 0.245581, 0.248173, 0.250756, 0.25334, 0.255933, 0.258520, 0.261118, 0.26371, 0.266315, 0.268900, 0.271509, 0.274117, 0.276717, 0.279314, 0.281921, 0.284532, 0.287145, 0.289754, 0.292374, 0.294996, 0.29761, 0.300232, 0.302859, 0.305487, 0.308105, 0.310732, 0.313366, 0.316003, 0.318635, 0.321276, 0.323913, 0.326563, 0.329201, 0.331857, 0.334502, 0.337157, 0.339807, 0.342461, 0.345122, 0.347787, 0.350451, 0.353119, 0.355785, 0.358454, 0.361132, 0.363806, 0.366484, 0.36917, 0.371855, 0.374543, 0.377232, 0.379927, 0.382624, 0.385328, 0.388027, 0.39072, 0.393437, 0.396148, 0.398857, 0.401579, 0.404289, 0.407016, 0.409731, 0.412465, 0.415197, 0.417922, 0.420666, 0.423403, 0.426148, 0.428892, 0.431646, 0.434391, 0.437152, 0.439914, 0.442672, 0.44544, 0.448219, 0.450981, 0.45376, 0.45654, 0.459323, 0.462117, 0.464905, 0.467698, 0.470491, 0.473297, 0.476105, 0.478915, 0.48172, 0.484549, 0.487361, 0.490189, 0.493015, 0.495853, 0.498682, 0.501528, 0.504372, 0.507226, 0.510075, 0.512938, 0.515798, 0.518651, 0.521522, 0.524401, 0.527279, 0.530169, 0.533049, 0.53594, 0.53883, 0.541737, 0.544649, 0.547551, 0.550462, 0.553383, 0.556308, 0.559237, 0.562176, 0.565104, 0.568053, 0.570997, 0.573953, 0.576911, 0.579874, 0.582846, 0.585819, 0.588790, 0.591776, 0.594768, 0.597768, 0.600759, 0.60376, 0.606775, 0.60979, 0.612817, 0.615842, 0.618879, 0.621914, 0.624957, 0.62800, 0.631069, 0.63412, 0.637195, 0.640264, 0.643347, 0.646437, 0.649525, 0.652621, 0.655723, 0.658838, 0.661952, 0.665073, 0.668203, 0.671345, 0.674482, 0.677636, 0.680795, 0.683962, 0.68713, 0.690304, 0.69349, 0.696681, 0.699881, 0.703089, 0.706308, 0.709528, 0.712753, 0.715985, 0.719224, 0.722473, 0.725735, 0.729009, 0.73227, 0.73555, 0.738844, 0.74214, 0.745449, 0.748769, 0.752081, 0.75541, 0.758751, 0.762107, 0.765458, 0.768822, 0.772195, 0.775574, 0.778965, 0.782367, 0.785774, 0.789192, 0.792612, 0.796053, 0.799507, 0.802953, 0.80642, 0.809898, 0.813384, 0.816873, 0.820371, 0.823897, 0.827412, 0.830958, 0.83449, 0.838056, 0.841624, 0.84519, 0.848787, 0.852385, 0.855992, 0.859611, 0.86325, 0.866898, 0.870544, 0.874213, 0.877899, 0.881584, 0.885292, 0.889005, 0.892736, 0.896476, 0.900224, 0.903991, 0.907766, 0.91156, 0.915364, 0.91918, 0.92301, 0.926854, 0.93071, 0.93458, 0.938479, 0.94237, 0.946296, 0.950225, 0.954165, 0.958123, 0.962092, 0.966083, 0.970097, 0.97411, 0.978152, 0.98220, 0.986279, 0.990355, 0.994453, 0.99857, 1.00271, 1.00686, 1.01103, 1.01522, 1.01942, 1.02365, 1.02789, 1.03215, 1.03643, 1.04073, 1.04504, 1.04938, 1.05374, 1.05812, 1.06251, 1.06693, 1.07137, 1.07583, 1.08031, 1.08482, 1.08934, 1.09389, 1.09846, 1.10306, 1.10768, 1.11232, 1.11698, 1.12167, 1.12639, 1.13113, 1.13589, 1.14068, 1.14550, 1.15034, 1.15522, 1.16011, 1.16504, 1.17000, 1.17498, 1.18000, 1.18504, 1.19011, 1.19522, 1.20035, 1.20552, 1.21072, 1.21596, 1.22122, 1.22652, 1.23186, 1.23723, 1.24264, 1.24808, 1.25356, 1.25908, 1.26464, 1.27023, 1.27587, 1.28155, 1.28727, 1.29303, 1.29883, 1.30468, 1.31057, 1.31651, 1.32250, 1.32853, 1.33462, 1.34075, 1.34693, 1.35317, 1.35946, 1.36580, 1.37220, 1.37865, 1.38517, 1.39174, 1.39837, 1.40507, 1.41183, 1.41865, 1.42554, 1.43250, 1.43953, 1.44663, 1.45380, 1.46105, 1.46838, 1.47579, 1.48328, 1.49085, 1.49851, 1.50626, 1.51410, 1.52203, 1.53006, 1.53819, 1.54643, 1.55477, 1.56322, 1.57178, 1.58046, 1.58926, 1.59819, 1.60724, 1.61643, 1.62576, 1.63523, 1.64485, 1.65462, 1.66456, 1.67466, 1.68494, 1.69539, 1.70604, 1.71688, 1.72793, 1.73919, 1.75068, 1.76241, 1.77438, 1.78661, 1.79911, 1.81191, 1.82500, 1.83842, 1.85217, 1.86629, 1.88079, 1.89569, 1.91103, 1.92683, 1.94313, 1.95996, 1.97736, 1.99539, 2.01409, 2.03352, 2.05374, 2.07485, 2.09692, 2.12007, 2.14441, 2.17009, 2.19728, 2.22621, 2.25712, 2.29036, 2.32634, 2.36561, 2.40891, 2.45726, 2.51214, 2.57582, 2.65206, 2.74778, 2.87816, 3.09023, 10000}; inline int Choose(int a, int b); void InitializeRandomGenerator(int value); template void MeanVar(std::vector &values, float &mean, float &var); inline void InitializeRandomGeneratorWithTime() { time_t t; srandom((unsigned) time(&t)); } unsigned int RandomUnsignedInt(unsigned int randMax); unsigned int RandomInt(int randMax); unsigned int RandomInt(unsigned int min, unsigned int max); float Random(); bool FindQNorm(float prob, float &nStdDev); #include "StatUtilsImpl.hpp" #endif blasr_libcpp-master/alignment/statistics/StatUtilsImpl.hpp000066400000000000000000000022501260756663100244550ustar00rootroot00000000000000#ifndef _BLASR_STAT_UTILS_IMPL_HPP_ #define _BLASR_STAT_UTILS_IMPL_HPP_ #include #include inline int Choose(int a, int b) { // A quick choose for small values. assert(a >= b); if (a < FactorialTableLength and b < FactorialTableLength) { return (FactorialTable[a] / (FactorialTable[b] * FactorialTable[a-b])); } else { // // Less quick choose for numerically stable values. // unsigned long al =a, bl=b, fact=0; fact = al; // // The full value of b! must be able to be computed. // if (b >= FactorialTableLength) { return 0; } while (al > bl) { --al; if (ULONG_MAX / al < fact) { // there is overflow in the computation of a!/(a-b)! return 0; } else { fact = fact * al; } } return fact / FactorialTable[b]; } } template void MeanVar(std::vector &values, float &mean, float &var) { T sum = 0; T sumsq = 0; int i; if (values.size() == 0) { mean = 0; var = 0; return; } for (i = 0; i < values.size(); i++) { sum += values[i]; sumsq += values[i]*values[i]; } mean = (1.0*sum) / values.size(); var = sumsq / values.size() - (mean*mean); } #endif blasr_libcpp-master/alignment/statistics/VarianceAccumulator.hpp000066400000000000000000000006471260756663100256370ustar00rootroot00000000000000#ifndef _BLASR_VARIANCE_ACCUMULATOR_HPP_ #define _BLASR_VARIANCE_ACCUMULATOR_HPP_ template class VarianceAccumulator { public: int nSamples; T sumSqVal; T sumVal; T maxVal; T minVal; VarianceAccumulator(); T GetMean(); T GetVariance(); void Reset(); float GetNStdDev(T value); void Append(T v); }; #include "statistics/VarianceAccumulatorImpl.hpp" #endif blasr_libcpp-master/alignment/statistics/VarianceAccumulatorImpl.hpp000066400000000000000000000021431260756663100264520ustar00rootroot00000000000000#ifndef _BLASR_VARIANCE_ACCUMULATOR_IMPL_HPP_ #define _BLASR_VARIANCE_ACCUMULATOR_IMPL_HPP_ template VarianceAccumulator:: VarianceAccumulator() { Reset(); } template void VarianceAccumulator::Reset() { sumSqVal = 0; sumVal = 0; nSamples = 0; maxVal = minVal = 0; } template T VarianceAccumulator:: GetMean() {return ((1.0)*sumVal)/nSamples;} template T VarianceAccumulator:: GetVariance() { return (1.0*sumSqVal)/nSamples - GetMean()*GetMean(); } template float VarianceAccumulator:: GetNStdDev(T value) { T variance = GetVariance(); T mean = GetMean(); if (variance > 0) { return fabs(value - mean)/(sqrt(variance)); } else { return 0; } } template void VarianceAccumulator:: Append(T v) { if (nSamples == 0) { maxVal = minVal = v; } else { if (maxVal < v) { maxVal = v; } if (minVal > v) { minVal = v; } } sumSqVal += v*v; sumVal += v; nSamples++; } #endif blasr_libcpp-master/alignment/statistics/cdfs.cpp000066400000000000000000000024301260756663100226110ustar00rootroot00000000000000#include "cdfs.hpp" float NormalCDF(float mu, float sigmaSq, float x) { float nStdDev = (x - mu)/sqrt(sigmaSq); if ((int) nStdDev <= -10.0) return 0; if ((int) nStdDev >= 10.0) return 1; int cdfindex = 1000 + 100*nStdDev; assert(cdfindex >= 0); assert(cdfindex <= 2000); if (cdfindex == 2000) { return 1; } // cout << "nstdev: " << nStdDev << " mu " << mu // << " sigma " << sigmaSq << " x " << x // << " norm cdf index: " << cdfindex << endl; return NormCDFTable[cdfindex]; } float PoissonCDF(float lambda, int a, int b) { float cdf = 0; int i; for (i = a; i <= b; i++ ){ // cout << "poiss " << lambda << ", " << i // << " " << Poisson(lambda, i) << endl; cdf += Poisson(lambda, i); } return cdf; } float PoissonCDF(float lambda, int a) { float cdf = 0; int i; float p; float epsilon =0.000000000001; if (lambda > (int)(FactorialTableLength*2/3)) { // lambda is too large, use normal approximation. // cout << "using table: lambda: " << lambda // << " a: " << a << endl; return NormalCDF(lambda, lambda, a); } for (i = 0; i <= a; i++ ){ p = Poisson(lambda, i); if (p < epsilon and i > (int) lambda) break; // cout << "p: " << p << endl; cdf += p; } return cdf; } blasr_libcpp-master/alignment/statistics/cdfs.hpp000066400000000000000000001113131260756663100226170ustar00rootroot00000000000000#ifndef _BLASR_CDFS_HPP_ #define _BLASR_CDFS_HPP_ #include "pdfs.hpp" static const float NormCDFTable[2000] = { 7.61985302416053e-24, 8.42908720044307e-24, 9.32333910390851e-24, 1.03114418389443e-23, 1.14031357813280e-23, 1.26091606702069e-23, 1.39413569342072e-23, 1.54127771659480e-23, 1.70378087485724e-23, 1.88323087358676e-23, 2.08137521949321e-23, 2.30013953380610e-23, 2.54164548995384e-23, 2.80823053544230e-23, 3.10246957313482e-23, 3.42719879411367e-23, 3.78554187290007e-23, 4.18093875618591e-23, 4.61717729854569e-23, 5.09842802303871e-23, 5.62928231137653e-23, 6.21479435763827e-23, 6.860527251602e-23, 7.57260359288958e-23, 8.3577610755683e-23, 9.22341352493942e-23, 1.01777179142962e-22, 1.12296479398304e-22, 1.23890747870050e-22, 1.36668557820343e-22, 1.50749316881020e-22, 1.6626433478118e-22, 1.83357994947588e-22, 2.02189039948453e-22, 2.22931981695015e-22, 2.45778648347233e-22, 2.70939880997893e-22, 2.98647394442484e-22, 3.29155817689778e-22, 3.62744931340731e-22, 3.99722120572624e-22, 4.40425064223392e-22, 4.85224682392038e-22, 5.34528367069058e-22, 5.88783522602465e-22, 6.48481445307726e-22, 7.14161574262827e-22, 7.86416148313604e-22, 8.65895307572446e-22, 9.53312681249342e-22, 1.04945150753626e-21, 1.15517133550207e-21, 1.27141536357825e-21, 1.39921847426015e-21, 1.53971603015202e-21, 1.69415350248814e-21, 1.86389700981111e-21, 2.05044485163175e-21, 2.25544012968370e-21, 2.48068455788088e-21, 2.72815357134612e-21, 3.00001285497641e-21, 3.29863642301526e-21, 3.62662639309896e-21, 3.98683461131598e-21, 4.38238629906651e-21, 4.81670590802906e-21, 5.29354538645474e-21, 5.81701507843054e-21, 6.39161749781974e-21, 7.02228424044163e-21, 7.71441632185196e-21, 8.4739282539989e-21, 9.30729620224586e-21, 1.02216105949631e-20, 1.12246335913280e-20, 1.23248618493586e-20, 1.35315950758093e-20, 1.48550108826456e-20, 1.63062465217032e-20, 1.78974881201405e-20, 1.96420680947798e-20, 2.15545714837844e-20, 2.36509519997439e-20, 2.59486586796199e-20, 2.84667740846022e-20, 3.12261650872937e-20, 3.42496473753623e-20, 3.75621649004811e-20, 4.1190985609727e-20, 4.51659149143546e-20, 4.95195284787818e-20, 5.42874260516386e-20, 5.95085082117206e-20, 6.52252780657133e-20, 7.1484170112697e-20, 7.83359086839063e-20, 8.5835898576284e-20, 9.4044650726485e-20, 1.03028246019560e-19, 1.12858840595384e-19, 1.23615216307614e-19, 1.35383380306580e-19, 1.48257218061103e-19, 1.62339204507009e-19, 1.77741178414554e-19, 1.94585185505699e-19, 2.13004396328083e-19, 2.33144105408587e-19, 2.55162818769100e-19, 2.79233437493965e-19, 3.05544545696482e-19, 3.34301811945149e-19, 3.65729513983357e-19, 4.00072197414327e-19, 4.37596479930904e-19, 4.78593013653989e-19, 5.23378619209301e-19, 5.7229860632712e-19, 6.25729297000645e-19, 6.84080768593555e-19, 7.47799835754742e-19, 8.1737329158706e-19, 8.93331430237564e-19, 9.76251874938821e-19, 1.06676373754749e-18, 1.16555213780823e-18, 1.27336311293298e-18, 1.39100895064098e-18, 1.51937398157053e-18, 1.65942086996478e-18, 1.81219744477020e-18, 1.97884411678722e-18, 2.16060193129749e-18, 2.35882130968722e-18, 2.57497153801189e-18, 2.81065106523422e-18, 3.06759867904084e-18, 3.34770563273514e-18, 3.65302880274925e-18, 3.98580496284818e-18, 4.34846626815861e-18, 4.74365704977974e-18, 5.17425202897168e-18, 5.64337606881557e-18, 6.15442559085038e-18, 6.71109179457108e-18, 7.31738582887958e-18, 7.97766607668324e-18, 8.69666772689607e-18, 9.47953482220332e-18, 1.03318549861686e-17, 1.12596970496900e-17, 1.22696518145366e-17, 1.33688762108225e-17, 1.45651411259094e-17, 1.58668832044827e-17, 1.72832609435602e-17, 1.88242154320746e-17, 2.05005361125985e-17, 2.23239319728804e-17, 2.43071086073182e-17, 2.64638516234818e-17, 2.88091169065084e-17, 3.13591282948427e-17, 3.41314832645815e-17, 3.71452672668869e-17, 4.04211774137699e-17, 4.39816562623235e-17, 4.78510365064786e-17, 5.20556974489026e-17, 5.66242341940844e-17, 6.15876405773299e-17, 6.69795069237318e-17, 7.2836233816555e-17, 7.91972631464248e-17, 8.61053278116287e-17, 9.36067215463159e-17, 1.01751590467945e-16, 1.10594248058595e-16, 1.20193515427359e-16, 1.30613088843666e-16, 1.41921936684837e-16, 1.54194728106090e-16, 1.67512295918692e-16, 1.81962136352663e-16, 1.97638948585499e-16, 2.14645217138836e-16, 2.33091840481832e-16, 2.5309880943477e-16, 2.74795939239823e-16, 2.98323659460026e-16, 3.23833866183229e-16, 3.51490841347056e-16, 3.81472244365282e-16, 4.13970181627315e-16, 4.49192359862693e-16, 4.87363329813632e-16, 5.28725827143121e-16, 5.73542218025806e-16, 6.22096057427178e-16, 6.74693768675356e-16, 7.31666453572489e-16, 7.93371842982395e-16, 8.60196398570778e-16, 9.32557577168123e-16, 1.01090627007634e-15, 1.09572943055325e-15, 1.18755290368805e-15, 1.28694447393013e-15, 1.39451714665926e-15, 1.51093268139136e-15, 1.63690539550678e-15, 1.77320625877395e-15, 1.92066730042609e-15, 2.08018635213939e-15, 2.25273215196613e-15, 2.43934983610145e-15, 2.64116684731894e-15, 2.85939929100417e-15, 3.0953587719587e-15, 3.35045974754833e-15, 3.62622743534104e-15, 3.92430631613157e-15, 4.24646927619696e-15, 4.59462743577860e-15, 4.97084071416196e-15, 5.37732918533406e-15, 5.81648528206159e-15, 6.29088691036376e-15, 6.80331154077401e-15, 7.35675134750924e-15, 7.9544294717215e-15, 8.59981749040868e-15, 9.29665417833992e-15, 1.00489656565263e-14, 1.08610870273690e-14, 1.17376856036716e-14, 1.26837858462427e-14, 1.37047961328694e-14, 1.48065374900481e-14, 1.59952744280531e-14, 1.72777480297408e-14, 1.86612114539743e-14, 2.01534680257531e-14, 2.17629120970858e-14, 2.34985728754111e-14, 2.53701614299986e-14, 2.73881211013013e-14, 2.95636815537589e-14, 3.19089167291090e-14, 3.44368069749374e-14, 3.71613056420548e-14, 4.00974104643949e-14, 4.32612400565811e-14, 4.66701158871906e-14, 5.03426501101292e-14, 5.42988396625522e-14, 5.85601670654849e-14, 6.3149708392861e-14, 6.80922489062002e-14, 7.34144068857165e-14, 7.91447662244323e-14, 8.53140183899803e-14, 9.19551143994013e-14, 9.91034274954757e-14, 1.0679692725923e-13, 1.15076365942292e-13, 1.23985477855031e-13, 1.33571192702046e-13, 1.43883863815759e-13, 1.54977512301920e-13, 1.66910088177930e-13, 1.79743749656217e-13, 1.93545161800965e-13, 2.08385815867207e-13, 2.24342370717358e-13, 2.41497017801669e-13, 2.59937871286364e-13, 2.79759385016643e-13, 3.01062798111745e-13, 3.23956611106135e-13, 3.48557094675241e-13, 3.7498883311623e-13, 4.03385304894755e-13, 4.33889502717806e-13, 4.66654595751316e-13, 5.01844636769645e-13, 5.3963531720292e-13, 5.80214773238327e-13, 6.23784446333159e-13, 6.70560001711864e-13, 7.20772308646748e-13, 7.74668486563648e-13, 8.32513021270262e-13, 8.94588955876992e-13, 9.6119916126894e-13, 1.03266769129427e-12, 1.10934122815914e-12, 1.19159062386450e-12, 1.27981254388584e-12, 1.37443121968512e-12, 1.47590031705553e-12, 1.58470492773607e-12, 1.70136369219568e-12, 1.82643106197697e-12, 1.96049971050927e-12, 2.10420310185185e-12, 2.25821822741171e-12, 2.42326852129899e-12, 2.60012696563817e-12, 2.78961939784764e-12, 2.99262803263505e-12, 3.21009521223458e-12, 3.44302739923701e-12, 3.69249942723561e-12, 3.95965902543588e-12, 4.24573163435442e-12, 4.55202553076802e-12, 4.8799372811693e-12, 5.23095754414459e-12, 5.60667724331564e-12, 6.00879413378503e-12, 6.43911978639591e-12, 6.89958701556968e-12, 7.39225777801782e-12, 7.91933157124842e-12, 8.48315436250203e-12, 9.08622808056533e-12, 9.7312207048268e-12, 1.04209769879652e-11, 1.11585298507993e-11, 1.19471124900909e-11, 1.27901712424794e-11, 1.36913792502502e-11, 1.46546509773028e-11, 1.56841576264994e-11, 1.67843435125431e-11, 1.79599434476731e-11, 1.92160012007750e-11, 2.05578890939952e-11, 2.19913288046425e-11, 2.35224134440417e-11, 2.51576309891186e-11, 2.69038891468201e-11, 2.87685417360433e-11, 3.07594166765647e-11, 3.28848456795426e-11, 3.51536957395174e-11, 3.75754025334884e-11, 4.01600058385912e-11, 4.29181870861797e-11, 4.58613091767249e-11, 4.90014586869096e-11, 5.23514906076399e-11, 5.59250757594271e-11, 5.97367510397311e-11, 6.38019726654473e-11, 6.81371725827341e-11, 7.27598182259036e-11, 7.76884758170981e-11, 8.29428774090212e-11, 8.85439918840776e-11, 9.45141001349502e-11, 1.00876874663930e-10, 1.07657463851216e-10, 1.14882581156030e-10, 1.22580599528633e-10, 1.30781651326424e-10, 1.39517734043067e-10, 1.48822822176231e-10, 1.58732985576987e-10, 1.69286514642305e-10, 1.80524052731342e-10, 1.92488736206550e-10, 2.05226342521894e-10, 2.18785446802903e-10, 2.33217587386751e-10, 2.48577440815301e-10, 2.6492300679994e-10, 2.82315803704329e-10, 3.00821075119684e-10, 3.20508008137342e-10, 3.41449963954737e-10, 3.63724721484069e-10, 3.87414734667567e-10, 4.12607404239677e-10, 4.3939536471467e-10, 4.67876787418161e-10, 4.98155700423128e-10, 5.30342326294884e-10, 5.64553438595807e-10, 6.00912738148843e-10, 6.39551250109663e-10, 6.80607742950414e-10, 7.24229170513764e-10, 7.70571138354246e-10, 8.19798395645136e-10, 8.72085353992974e-10, 9.27616634569113e-10, 9.86587645037698e-10, 1.04920518783315e-09, 1.11568810141717e-09, 1.18626793622573e-09, 1.26118966710109e-09, 1.34071244409187e-09, 1.42511038359657e-09, 1.51467340192265e-09, 1.60970809343425e-09, 1.71053865556700e-09, 1.81750786309943e-09, 1.93097809418531e-09, 2.05133241077260e-09, 2.17897569616056e-09, 2.31433585257856e-09, 2.45786506180803e-09, 2.61004111201292e-09, 2.77136879409463e-09, 2.94238137104436e-09, 3.12364212393002e-09, 3.31574597832617e-09, 3.51932121517463e-09, 3.73503127024975e-09, 3.96357662659765e-09, 4.20569680452203e-09, 4.46217245390161e-09, 4.73382755384558e-09, 5.02153172492455e-09, 5.3262026594555e-09, 5.64880867557094e-09, 5.99037140106353e-09, 6.35196859327198e-09, 6.73473710155753e-09, 7.13987597921841e-09, 7.56864975199771e-09, 8.02239185066354e-09, 8.50250821547506e-09, 9.01048108069906e-09, 9.54787294770427e-09, 1.01163307555414e-08, 1.07175902583109e-08, 1.13534806190322e-08, 1.20259292301549e-08, 1.27369667712999e-08, 1.34887325152785e-08, 1.42834798939228e-08, 1.51235823357610e-08, 1.60115393880909e-08, 1.69499831365509e-08, 1.79416849358471e-08, 1.89895624658877e-08, 2.00966871281765e-08, 2.12662917979592e-08, 2.25017789482686e-08, 2.38067291627004e-08, 2.51849100544611e-08, 2.66402856099673e-08, 2.81770259760399e-08, 2.97995177105363e-08, 3.15123745170822e-08, 3.33204484854287e-08, 3.5228841859843e-08, 3.72429193588712e-08, 3.93683210707590e-08, 4.16109759498197e-08, 4.3977115940059e-08, 4.64732907534413e-08, 4.91063833312853e-08, 5.18836260184242e-08, 5.48126174809566e-08, 5.79013403996459e-08, 6.1158179972306e-08, 6.4591943259825e-08, 6.82118794118624e-08, 7.20277008096596e-08, 7.60496051648871e-08, 8.02882986149588e-08, 8.47550198568288e-08, 8.94615653629075e-08, 9.44203157244297e-08, 9.96442631693347e-08, 1.05147040303541e-07, 1.10942950126346e-07, 1.17046997372632e-07, 1.23474921236516e-07, 1.30243229533202e-07, 1.37369234357842e-07, 1.44871089302508e-07, 1.52767828294566e-07, 1.61079406122137e-07, 1.6982674071476e-07, 1.79031757249834e-07, 1.8871743415806e-07, 1.98907851103713e-07, 2.09628239018370e-07, 2.20905032269544e-07, 2.327659230486e-07, 2.4523991806537e-07, 2.58357397639973e-07, 2.72150177285582e-07, 2.86651571879194e-07, 3.01896462520848e-07, 3.17921366185283e-07, 3.34764508273617e-07, 3.52465898176424e-07, 3.71067407963333e-07, 3.90612854318327e-07, 4.11148083843931e-07, 4.32721061861702e-07, 4.55381964840732e-07, 4.79183276590321e-07, 5.04179888357536e-07, 5.30429202975094e-07, 5.57991243209782e-07, 5.86928764466638e-07, 6.17307372009198e-07, 6.49195642861335e-07, 6.82665252561663e-07, 7.177911069469e-07, 7.54651479146372e-07, 7.93328151975595e-07, 8.3390656592291e-07, 8.76475972929203e-07, 9.21129596167143e-07, 9.67964796032733e-07, 1.01708324256870e-06, 1.06859109454593e-06, 1.12259918543618e-06, 1.17922321651640e-06, 1.23858395735247e-06, 1.30080745391728e-06, 1.36602524460614e-06, 1.43437458442013e-06, 1.50599867759616e-06, 1.58104691897051e-06, 1.65967514437147e-06, 1.74204589034466e-06, 1.82832866352416e-06, 1.91870021997090e-06, 2.01334485480934e-06, 2.11245470250285e-06, 2.21623004811754e-06, 2.32487964993441e-06, 2.43862107377942e-06, 2.55768103945153e-06, 2.68229577963886e-06, 2.81271141172421e-06, 2.94918432289151e-06, 3.09198156895618e-06, 3.24138128735339e-06, 3.39767312473006e-06, 3.56115867959756e-06, 3.73215196051449e-06, 3.9109798602807e-06, 4.09798264663636e-06, 4.29351446997187e-06, 4.49794388856792e-06, 4.71165441189724e-06, 4.93504506253327e-06, 5.16853095722413e-06, 5.41254390770387e-06, 5.66753304182674e-06, 5.93396544562466e-06, 6.2123268269015e-06, 6.50312220099279e-06, 6.80687659933406e-06, 7.12413580149534e-06, 7.45546709135513e-06, 7.80146003810134e-06, 8.16272730276308e-06, 8.53990547099181e-06, 8.933655912827e-06, 9.34466567019636e-06, 9.77364837291759e-06, 1.02213451839841e-05, 1.06885257749344e-05, 1.11759893321206e-05, 1.16845655947074e-05, 1.22151159252530e-05, 1.27685344137350e-05, 1.33457490159063e-05, 1.39477227268813e-05, 1.45754547908670e-05, 1.52299819479779e-05, 1.59123797190822e-05, 1.66237637296523e-05, 1.73652910736041e-05, 1.81381617181309e-05, 1.89436199505532e-05, 1.97829558682240e-05, 2.06575069125468e-05, 2.15686594481806e-05, 2.25178503885254e-05, 2.35065688685956e-05, 2.45363579664098e-05, 2.56088164740415e-05, 2.67256007194921e-05, 2.78884264405639e-05, 2.90990707119310e-05, 3.03593739266182e-05, 3.16712418331199e-05, 3.30366476294024e-05, 3.44576341150531e-05, 3.59363159028538e-05, 3.74748816910734e-05, 3.90755965977875e-05, 4.07408045585508e-05, 4.24729307887612e-05, 4.42744843120707e-05, 4.61480605562088e-05, 4.80963440176028e-05, 5.01221109961885e-05, 5.22282324018202e-05, 5.44176766336997e-05, 5.66935125342568e-05, 5.90589124189226e-05, 6.15171551832553e-05, 6.40716294888745e-05, 6.67258370296846e-05, 6.94833958798653e-05, 7.234804392512e-05, 7.53236423786833e-05, 7.8414179383585e-05, 8.16237737026862e-05, 8.4956678497998e-05, 8.84172852008039e-05, 9.20101274741054e-05, 9.57398852689147e-05, 9.96113889759167e-05, 0.000103629623674031, 0.000107799733477388, 0.000112127025982247, 0.000116616976815368, 0.000121275234285358, 0.000126107624138487, 0.000131120154420485, 0.000136319020445802, 0.000141710609875819, 0.000147301507907473, 0.000153098502573756, 0.000159108590157534, 0.000165338980720110, 0.000171797103745931, 0.000178490613904847, 0.000185427396933278, 0.000192615575635633, 0.00020006351600732, 0.000207779833480621, 0.000215773399294718, 0.000224053346991093, 0.000232629079035525, 0.000241510273567836, 0.000250706891280538, 0.000260229182427467, 0.000270087693963475, 0.000280293276816177, 0.000290857093290744, 0.000301790624608638, 0.0003131056785812, 0.000324814397418878, 0.000336929265676882, 0.000349463118337972, 0.000362429149033044, 0.000375840918400083, 0.000389712362582032, 0.000404057801864022, 0.00041889194945037, 0.000434229920381655, 0.000450087240592117, 0.00046647985610755, 0.000483424142383777, 0.000500936913785722, 0.000519035433206972, 0.000537737421829696, 0.000557061069024622, 0.000577025042390767, 0.000597648497934415, 0.000618951090386836, 0.000640952983660057, 0.000663674861439968, 0.000687137937915848, 0.000711363968645365, 0.000736375261553932, 0.000762194688067235, 0.000788845694375573, 0.000816352312828564, 0.000844739173458628, 0.000874031515631568, 0.00090425519982234, 0.000935436719514101, 0.000967603213218358, 0.00100078247661401, 0.00103500297480284, 0.00107029385467892, 0.00110668495740925, 0.0011442068310227, 0.00118289074310441, 0.00122276869359226, 0.0012638734276723, 0.00130623844876947, 0.00134989803163009, 0.00139488723549225, 0.00144124191734002, 0.00148899874523747, 0.00153819521173806, 0.00158886964736487, 0.001641061234157, 0.00169481001927726, 0.0017501569286761, 0.00180714378080643, 0.00186581330038404, 0.00192620913218786, 0.00198837585489433, 0.00205235899493975, 0.00211820504040462, 0.00218596145491324, 0.00225567669154232, 0.00232740020673155, 0.00240118247418925, 0.00247707499878586, 0.00255513033042793, 0.00263540207790495, 0.00271794492270126, 0.00280281463276503, 0.00289006807622615, 0.00297976323505456, 0.00307195921865049, 0.0031667162773578, 0.00326409581589132, 0.00336416040666919, 0.00346697380304067, 0.00357260095239974, 0.00368110800917499, 0.00379256234768549, 0.00390703257485278, 0.00402458854275831, 0.00414530136103605, 0.00426924340908935, 0.00439648834812131, 0.00452711113296733, 0.00466118802371875, 0.00479879659712618, 0.00494001575777064, 0.00508492574899103, 0.0052336081635558, 0.00538614595406669, 0.0055426234430826, 0.00570312633295069, 0.00586774171533257, 0.00603655808041266, 0.00620966532577613, 0.00638715476494317, 0.00656911913554677, 0.00675565260714066, 0.00694685078862432, 0.00714281073527142, 0.00734363095534836, 0.00754941141630921, 0.00776025355055365, 0.00797626026073373, 0.00819753592459614, 0.0084241863993457, 0.00865631902551655, 0.00889404263033678, 0.00913746753057268, 0.00938670553483859, 0.00964186994535833, 0.00990307555916425, 0.0101704386687197, 0.0104440770619511, 0.0107241100216758, 0.0110106583244114, 0.0113038442385528, 0.0116037915219036, 0.0119106254185471, 0.0122244726550447, 0.0125454614359466, 0.0128737214386020, 0.0132093838072563, 0.0135525811464200, 0.0139034475134986, 0.0142621184106689, 0.0146287307759893, 0.0150034229737322, 0.0153863347839254, 0.0157776073910905, 0.0161773833721661, 0.016585806683605, 0.0170030226476328, 0.0174291779376571, 0.0178644205628166, 0.0183088998516590, 0.0187627664349377, 0.0192261722275173, 0.0196992704093769, 0.0201822154057044, 0.0206751628660701, 0.0211782696426723, 0.0216916937676468, 0.0222155944294315, 0.0227501319481792, 0.0232954677502118, 0.0238517643415085, 0.0244191852802225, 0.0249978951482205, 0.0255880595216387, 0.0261898449404527, 0.026803418877055, 0.0274289497038368, 0.0280666066597725, 0.0287165598160018, 0.0293789800404094, 0.0300540389611999, 0.030741908929466, 0.0314427629807527, 0.0321567747956137, 0.0328841186591639, 0.0336249694196283, 0.03437950244589, 0.0351478935840388, 0.0359303191129258, 0.0367269556987264, 0.0375379803485168, 0.0383635703628713, 0.0392039032874827, 0.0400591568638171, 0.0409295089788074, 0.0418151376135949, 0.0427162207913289, 0.043632936524032, 0.0445654627585431, 0.0455139773215499, 0.0464786578637201, 0.0474596818029473, 0.0484572262667228, 0.0494714680336481, 0.0505025834741036, 0.0515507484900895, 0.0526161384542521, 0.0536989281481198, 0.054799291699558, 0.0559174025194695, 0.0570534332377542, 0.058207555638553, 0.059379940594793, 0.0605707580020589, 0.061780176711812, 0.0630083644639785, 0.0642554878189359, 0.0655217120889165, 0.066807201268858, 0.0681121179667254, 0.0694366233333317, 0.0707808769916854, 0.0721450369658939, 0.0735292596096484, 0.0749336995343271, 0.0763585095367391, 0.0778038405265464, 0.0792698414533924, 0.080756659233771, 0.0822644386776688, 0.0837933224150144, 0.085343450821967, 0.0869149619470851, 0.0885079914374021, 0.0901226724644525, 0.0917591356502808, 0.0934175089934717, 0.095097917795239, 0.0968004845856105, 0.098525329049748, 0.100272567954442, 0.102042315074819, 0.103834681121300, 0.105649773666855, 0.107487697074587, 0.109348552425692, 0.111232437447834, 0.113139446443977, 0.115069670221708, 0.117023196023109, 0.119000107455201, 0.121000484421018, 0.123024403051343, 0.125071935637150, 0.127143150562798, 0.129238112240018, 0.131356881042731, 0.133499513242747, 0.135666060946383, 0.137856572032035, 0.140071090088769, 0.142309654355939, 0.144572299663909, 0.146859056375896, 0.149169950330982, 0.151505002788344, 0.153864230372735, 0.156247645021255, 0.158655253931457, 0.161087059510831, 0.163543059327692, 0.166023246063529, 0.168527607466838, 0.171056126308482, 0.173608780338625, 0.176185542245258, 0.178786379614372, 0.181411254891797, 0.184060125346759, 0.186732943037172, 0.189429654776712, 0.192150202103696, 0.194894521251808, 0.197662543122692, 0.200454193260450, 0.203269391828068, 0.206108053585813, 0.208970087871601, 0.211855398583397, 0.214763884163637, 0.217695437585733, 0.220649946342650, 0.223627292437600, 0.226627352376868, 0.229649997164791, 0.232695092300897, 0.235762497779251, 0.238852068089987, 0.241963652223073, 0.245097093674310, 0.248252230453571, 0.25142889509531, 0.254626914671336, 0.257846110805865, 0.261086299692861, 0.264347292115678, 0.267628893468983, 0.270930903783006, 0.274253117750074, 0.277595324753465, 0.280957308898564, 0.284338849046324, 0.287739718849027, 0.291159686788347, 0.294598516215698, 0.298055965394877, 0.301531787546966, 0.305025730897519, 0.308537538725987, 0.312066949417390, 0.315613696516222, 0.319177508782556, 0.322758110250348, 0.326355220287920, 0.329968553660594, 0.333597820595458, 0.337242726848250, 0.340902973772323, 0.344578258389676, 0.348268273464017, 0.351972707575838, 0.355691245199453, 0.359423566782009, 0.363169348824381, 0.366928263963972, 0.370699981059346, 0.37448416527668, 0.378280478177981, 0.382088577811048, 0.385908118801123, 0.389738752444203, 0.393580126801961, 0.39743188679824, 0.401293674317076, 0.405165128302204, 0.409045884857994, 0.412935577351785, 0.416833836517558, 0.420740290560897, 0.424654565265205, 0.428576284099099, 0.432505068324962, 0.436440537108567, 0.440382307629757, 0.444329995194093, 0.448283213345439, 0.452241573979416, 0.456204687457683, 0.460172162722971, 0.464143607414828, 0.468118627986013, 0.472096829819479, 0.476077817345893, 0.480061194161628, 0.48404656314717, 0.488033526585888, 0.492021686283098, 0.496010643685368, 0.5, 0.503989356314631, 0.507978313716902, 0.511966473414112, 0.515953436852831, 0.519938805838373, 0.523922182654107, 0.527903170180521, 0.531881372013987, 0.535856392585172, 0.539827837277029, 0.543795312542317, 0.547758426020584, 0.551716786654561, 0.555670004805907, 0.559617692370243, 0.563559462891433, 0.567494931675038, 0.571423715900901, 0.575345434734795, 0.579259709439103, 0.583166163482443, 0.587064422648215, 0.590954115142006, 0.594834871697796, 0.598706325682924, 0.60256811320176, 0.60641987319804, 0.610261247555797, 0.614091881198878, 0.617911422188953, 0.62171952182202, 0.62551583472332, 0.629300018940654, 0.633071736036028, 0.636830651175619, 0.640576433217991, 0.644308754800547, 0.648027292424163, 0.651731726535983, 0.655421741610324, 0.659097026227677, 0.66275727315175, 0.666402179404542, 0.670031446339406, 0.67364477971208, 0.677241889749653, 0.680822491217444, 0.684386303483778, 0.68793305058261, 0.691462461274013, 0.69497426910248, 0.698468212453034, 0.701944034605123, 0.705401483784302, 0.708840313211654, 0.712260281150973, 0.715661150953676, 0.719042691101436, 0.722404675246535, 0.725746882249926, 0.729069096216994, 0.732371106531017, 0.735652707884323, 0.738913700307139, 0.742153889194135, 0.745373085328664, 0.74857110490469, 0.75174776954643, 0.75490290632569, 0.758036347776927, 0.761147931910014, 0.764237502220749, 0.767304907699103, 0.77035000283521, 0.773372647623132, 0.7763727075624, 0.77935005365735, 0.782304562414267, 0.785236115836363, 0.788144601416603, 0.791029912128399, 0.793891946414187, 0.796730608171932, 0.79954580673955, 0.802337456877308, 0.805105478748191, 0.807849797896304, 0.810570345223288, 0.813267056962828, 0.81593987465324, 0.818588745108203, 0.821213620385628, 0.823814457754742, 0.826391219661375, 0.828943873691518, 0.831472392533162, 0.83397675393647, 0.836456940672308, 0.838912940489169, 0.841344746068543, 0.843752354978745, 0.846135769627265, 0.848494997211656, 0.850830049669019, 0.853140943624104, 0.85542770033609, 0.85769034564406, 0.85992890991123, 0.862143427967965, 0.864333939053617, 0.866500486757253, 0.86864311895727, 0.870761887759982, 0.872856849437202, 0.87492806436285, 0.876975596948657, 0.878999515578982, 0.880999892544799, 0.882976803976891, 0.884930329778292, 0.886860553556023, 0.888767562552165, 0.890651447574308, 0.892512302925413, 0.894350226333145, 0.8961653188787, 0.897957684925181, 0.899727432045558, 0.901474670950252, 0.90319951541439, 0.904902082204761, 0.906582491006528, 0.908240864349719, 0.909877327535548, 0.911492008562598, 0.913085038052915, 0.914656549178033, 0.916206677584986, 0.917735561322331, 0.919243340766229, 0.920730158546608, 0.922196159473454, 0.92364149046326, 0.925066300465673, 0.926470740390352, 0.927854963034106, 0.929219123008315, 0.930563376666668, 0.931887882033275, 0.933192798731142, 0.934478287911083, 0.935744512181064, 0.936991635536021, 0.938219823288188, 0.93942924199794, 0.940620059405207, 0.941792444361447, 0.942946566762246, 0.94408259748053, 0.945200708300442, 0.94630107185188, 0.947383861545748, 0.94844925150991, 0.949497416525896, 0.950528531966352, 0.951542773733277, 0.952540318197053, 0.95352134213628, 0.95448602267845, 0.955434537241457, 0.956367063475968, 0.95728377920867, 0.958184862386405, 0.959070491021193, 0.959940843136183, 0.960796096712517, 0.961636429637129, 0.962462019651483, 0.963273044301274, 0.964069680887074, 0.96485210641596, 0.96562049755411, 0.966375030580372, 0.967115881340836, 0.967843225204386, 0.968557237019247, 0.969258091070534, 0.9699459610388, 0.97062101995959, 0.971283440183998, 0.971933393340228, 0.972571050296163, 0.973196581122945, 0.973810155059547, 0.974411940478361, 0.97500210485178, 0.975580814719778, 0.976148235658492, 0.976704532249788, 0.977249868051821, 0.977784405570569, 0.978308306232353, 0.978821730357328, 0.97932483713393, 0.979817784594296, 0.980300729590623, 0.980773827772483, 0.981237233565062, 0.98169110014834, 0.982135579437183, 0.982570822062343, 0.982996977352367, 0.983414193316395, 0.983822616627834, 0.98422239260891, 0.984613665216075, 0.984996577026268, 0.98537126922401, 0.985737881589331, 0.986096552486501, 0.98644741885358, 0.986790616192744, 0.987126278561398, 0.987454538564053, 0.987775527344955, 0.988089374581453, 0.988396208478096, 0.988696155761447, 0.988989341675589, 0.989275889978324, 0.98955592293805, 0.98982956133128, 0.990096924440836, 0.990358130054642, 0.990613294465161, 0.990862532469427, 0.991105957369663, 0.991343680974483, 0.991575813600654, 0.991802464075404, 0.992023739739266, 0.992239746449446, 0.99245058858369, 0.992656369044652, 0.992857189264729, 0.993053149211376, 0.99324434739286, 0.993430880864453, 0.993612845235057, 0.993790334674224, 0.993963441919587, 0.994132258284667, 0.99429687366705, 0.994457376556917, 0.994613854045933, 0.994766391836444, 0.99491507425101, 0.99505998424223, 0.995201203402874, 0.995338811976281, 0.995472888867033, 0.995603511651879, 0.99573075659091, 0.995854698638964, 0.995975411457242, 0.996092967425147, 0.996207437652315, 0.996318891990825, 0.9964273990476, 0.99653302619696, 0.996635839593331, 0.996735904184109, 0.996833283722642, 0.99692804078135, 0.997020236764945, 0.997109931923774, 0.997197185367235, 0.997282055077299, 0.997364597922095, 0.997444869669572, 0.997522925001214, 0.99759881752581, 0.997672599793268, 0.997744323308458, 0.997814038545087, 0.997881794959595, 0.99794764100506, 0.998011624145106, 0.998073790867812, 0.998134186699616, 0.998192856219194, 0.998249843071324, 0.998305189980723, 0.998358938765843, 0.998411130352635, 0.998461804788262, 0.998511001254763, 0.99855875808266, 0.998605112764508, 0.99865010196837, 0.99869376155123, 0.998736126572328, 0.998777231306408, 0.998817109256896, 0.998855793168977, 0.99889331504259, 0.998929706145321, 0.998964997025197, 0.998999217523386, 0.999032396786782, 0.999064563280486, 0.999095744800178, 0.999125968484368, 0.999155260826541, 0.999183647687171, 0.999211154305624, 0.999237805311933, 0.999263624738446, 0.999288636031355, 0.999312862062084, 0.99933632513856, 0.99935904701634, 0.999381048909613, 0.999402351502066, 0.99942297495761, 0.999442938930975, 0.99946226257817, 0.999480964566793, 0.999499063086214, 0.999516575857616, 0.999533520143892, 0.999549912759408, 0.999565770079618, 0.99958110805055, 0.999595942198136, 0.999610287637418, 0.9996241590816, 0.999637570850967, 0.999650536881662, 0.999663070734323, 0.99967518560258, 0.999686894321419, 0.999698209375391, 0.99970914290671, 0.999719706723184, 0.999729912306036, 0.999739770817572, 0.99974929310872, 0.999758489726432, 0.999767370920964, 0.999775946653009, 0.999784226600705, 0.99979222016652, 0.999799936483993, 0.999807384424364, 0.999814572603067, 0.999821509386095, 0.999828202896254, 0.99983466101928, 0.999840891409842, 0.999846901497426, 0.999852698492093, 0.999858289390124, 0.999863680979554, 0.99986887984558, 0.999873892375862, 0.999878724765715, 0.999883383023185, 0.999887872974018, 0.999892200266523, 0.999896370376326, 0.999900388611024, 0.99990426011473, 0.999907989872526, 0.9999115827148, 0.999915043321502, 0.999918376226297, 0.999921585820616, 0.999924676357621, 0.999927651956075, 0.99993051660412, 0.99993327416297, 0.999935928370511, 0.999938482844817, 0.999940941087581, 0.999943306487466, 0.999945582323366, 0.999947771767598, 0.999949877889004, 0.999951903655982, 0.999953851939444, 0.999955725515688, 0.999957527069211, 0.99995925919544, 0.999960924403402, 0.99996252511831, 0.999964063684097, 0.999965542365885, 0.99996696335237, 0.999968328758167, 0.999969640626073, 0.999970900929288, 0.99997211157356, 0.99997327439928, 0.999974391183526, 0.999975463642034, 0.999976493431131, 0.999977482149611, 0.999978431340552, 0.999979342493088, 0.999980217044132, 0.99998105638005, 0.999981861838282, 0.999982634708926, 0.99998337623627, 0.99998408762028, 0.999984770018052, 0.99998542454521, 0.999986052277273, 0.999986654250984, 0.999987231465586, 0.999987784884075, 0.999988315434405, 0.999988824010668, 0.999989311474225, 0.999989778654816, 0.999990226351627, 0.99999065533433, 0.999991066344087, 0.999991460094529, 0.999991837272697, 0.999992198539962, 0.999992544532909, 0.999992875864198, 0.9999931931234, 0.9999934968778, 0.999993787673173, 0.999994066034554, 0.999994332466958, 0.999994587456092, 0.999994831469043, 0.999995064954938, 0.999995288345588, 0.999995502056111, 0.99999570648553, 0.999995902017353, 0.99999608902014, 0.99999626784804, 0.99999643884132, 0.999996602326875, 0.999996758618713, 0.999996908018431, 0.999997050815677, 0.999997187288588, 0.99999731770422, 0.99999744231896, 0.999997561378926, 0.99999767512035, 0.999997783769952, 0.999997887545298, 0.999997986655145, 0.99999808129978, 0.999998171671336, 0.99999825795411, 0.999998340324856, 0.99999841895308, 0.999998494001322, 0.999998565625416, 0.999998633974755, 0.999998699192546, 0.999998761416043, 0.999998820776783, 0.999998877400815, 0.999998931408906, 0.999998982916757, 0.999999032035204, 0.999999078870404, 0.999999123524027, 0.999999166093434, 0.999999206671848, 0.99999924534852, 0.999999282208893, 0.999999317334747, 0.999999350804357, 0.999999382692628, 0.999999413071236, 0.999999442008757, 0.999999469570797, 0.999999495820112, 0.999999520816723, 0.999999544618035, 0.999999567278938, 0.999999588851916, 0.999999609387146, 0.999999628932592, 0.999999647534102, 0.999999665235492, 0.999999682078634, 0.999999698103538, 0.999999713348428, 0.999999727849823, 0.999999741642602, 0.999999754760082, 0.999999767234077, 0.999999779094968, 0.999999790371761, 0.99999980109215, 0.999999811282566, 0.999999820968243, 0.99999983017326, 0.999999838920594, 0.999999847232172, 0.99999985512891, 0.999999862630766, 0.99999986975677, 0.999999876525079, 0.999999882953003, 0.99999988905705, 0.99999989485296, 0.999999900355737, 0.999999905579684, 0.999999910538435, 0.99999991524498, 0.999999919711701, 0.999999923950395, 0.9999999279723, 0.99999993178812, 0.999999935408057, 0.99999993884182, 0.99999994209866, 0.999999945187383, 0.999999948116374, 0.999999950893617, 0.99999995352671, 0.999999956022884, 0.999999958389024, 0.99999996063168, 0.99999996275708, 0.999999964771158, 0.999999966679551, 0.999999968487626, 0.999999970200482, 0.999999971822974, 0.999999973359714, 0.99999997481509, 0.99999997619327, 0.999999977498221, 0.999999978733708, 0.999999979903313, 0.999999981010438, 0.999999982058315, 0.999999983050017, 0.99999998398846, 0.999999984876418, 0.99999998571652, 0.999999986511268, 0.999999987263033, 0.99999998797407, 0.99999998864652, 0.99999998928241, 0.99999998988367, 0.999999990452127, 0.999999990989519, 0.999999991497492, 0.999999991977608, 0.99999999243135, 0.999999992860124, 0.999999993265263, 0.999999993648031, 0.999999994009629, 0.99999999435119, 0.999999994673797, 0.999999994978468, 0.999999995266172, 0.999999995537828, 0.999999995794303, 0.999999996036423, 0.999999996264969, 0.999999996480679, 0.999999996684254, 0.999999996876358, 0.999999997057619, 0.999999997228631, 0.99999999738996, 0.999999997542135, 0.999999997685664, 0.999999997821024, 0.999999997948668, 0.999999998069022, 0.999999998182492, 0.999999998289461, 0.999999998390292, 0.999999998485327, 0.99999999857489, 0.999999998659288, 0.99999999873881, 0.999999998813732, 0.999999998884312, 0.999999998950795, 0.999999999013412, 0.999999999072383, 0.999999999127915, 0.999999999180202, 0.999999999229429, 0.99999999927577, 0.999999999319392, 0.99999999936045, 0.999999999399087, 0.999999999435447, 0.999999999469658, 0.999999999501844, 0.999999999532123, 0.999999999560605, 0.999999999587393, 0.999999999612585, 0.999999999636275, 0.99999999965855, 0.999999999679492, 0.99999999969918, 0.999999999717684, 0.999999999735077, 0.999999999751423, 0.999999999766782, 0.999999999781215, 0.999999999794774, 0.999999999807511, 0.999999999819476, 0.999999999830714, 0.999999999841267, 0.999999999851177, 0.999999999860482, 0.999999999869218, 0.99999999987742, 0.999999999885117, 0.999999999892343, 0.999999999899123, 0.999999999905486, 0.999999999911456, 0.999999999917057, 0.999999999922311, 0.99999999992724, 0.999999999931863, 0.999999999936198, 0.999999999940263, 0.999999999944075, 0.999999999947649, 0.999999999950999, 0.999999999954139, 0.999999999957082, 0.99999999995984, 0.999999999962425, 0.999999999964846, 0.999999999967115, 0.99999999996924, 0.999999999971231, 0.999999999973096, 0.999999999974842, 0.999999999976478, 0.999999999978009, 0.999999999979442, 0.999999999980784, 0.99999999998204, 0.999999999983216, 0.999999999984316, 0.999999999985345, 0.999999999986309, 0.99999999998721, 0.999999999988053, 0.999999999988841, 0.999999999989579, 0.999999999990269, 0.999999999990914, 0.999999999991517, 0.99999999999208, 0.999999999992608, 0.9999999999931, 0.99999999999356, 0.999999999993991, 0.999999999994393, 0.99999999999477, 0.99999999999512, 0.999999999995448, 0.999999999995754, 0.99999999999604, 0.999999999996308, 0.999999999996557, 0.99999999999679, 0.999999999997007, 0.99999999999721, 0.9999999999974, 0.999999999997577, 0.999999999997742, 0.999999999997896, 0.99999999999804, 0.999999999998174, 0.999999999998299, 0.999999999998415, 0.999999999998524, 0.999999999998626, 0.99999999999872, 0.999999999998808, 0.99999999999889, 0.999999999998967, 0.999999999999039, 0.999999999999105, 0.999999999999167, 0.999999999999225, 0.99999999999928, 0.99999999999933, 0.999999999999376, 0.99999999999942, 0.99999999999946, 0.999999999999498, 0.999999999999533, 0.999999999999566, 0.999999999999597, 0.999999999999625, 0.999999999999651, 0.999999999999676, 0.999999999999699, 0.99999999999972, 0.99999999999974, 0.999999999999759, 0.999999999999776, 0.999999999999792, 0.999999999999806, 0.99999999999982, 0.999999999999833, 0.999999999999845, 0.999999999999856, 0.999999999999866, 0.999999999999876, 0.999999999999885, 0.999999999999893, 0.9999999999999, 0.999999999999908, 0.999999999999915, 0.99999999999992, 0.999999999999927, 0.999999999999932, 0.999999999999937, 0.999999999999941, 0.999999999999946, 0.99999999999995, 0.999999999999953, 0.999999999999957, 0.99999999999996, 0.999999999999963, 0.999999999999966, 0.999999999999968, 0.99999999999997, 0.999999999999973, 0.999999999999975, 0.999999999999976, 0.999999999999978, 0.99999999999998, 0.999999999999981, 0.999999999999983, 0.999999999999984, 0.999999999999985, 0.999999999999986, 0.999999999999987, 0.999999999999988, 0.99999999999999, 0.99999999999999, 0.99999999999999, 0.999999999999991, 0.999999999999992, 0.999999999999993, 0.999999999999993, 0.999999999999994, 0.999999999999994, 0.999999999999995, 0.999999999999995, 0.999999999999995, 0.999999999999996, 0.999999999999996, 0.999999999999996, 0.999999999999997, 0.999999999999997, 0.999999999999997, 0.999999999999997, 0.999999999999998, 0.999999999999998, 0.999999999999998, 0.999999999999998, 0.999999999999998, 0.999999999999998, 0.999999999999998, 0.999999999999999, 0.999999999999999, 0.999999999999999, 0.999999999999999, 0.999999999999999, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; // Normal cumulative distribution function float NormalCDF(float mu, float sigmaSq, float x); // Poisson cumulative distribution function float PoissonCDF(float lambda, int a, int b); // Poisson cumulative distribution function float PoissonCDF(float lambda, int a); #endif blasr_libcpp-master/alignment/statistics/pdfs.cpp000066400000000000000000000012601260756663100226260ustar00rootroot00000000000000#include "pdfs.hpp" float Binomial(float p, int x, int n) { return pow(p,n) * pow(1-p,x-n) * Choose(x,n); } float Poisson(float lambda, int n) { if (n < FactorialTableLength) { float lambdaToN = pow(lambda, n); if (lambdaToN == HUGE_VALF) return 1; return (pow(lambda, n) * exp(-lambda)) / FactorialTable[n]; } else { return 0; } } float Gamma(float lambda, float t, int n) { if (n <= FactorialTableLength) { return (pow(lambda, n) * pow(t,n-1) * exp(-lambda*t)) / FactorialTable[n-1]; } else { return 0; } } float Exponential(float lambda, int t) { return lambda * exp(-lambda*t); } float Normal(float mu, float sigma, float x) { assert(0); return 0; } blasr_libcpp-master/alignment/statistics/pdfs.hpp000066400000000000000000000005131260756663100226330ustar00rootroot00000000000000#ifndef _BLASR_PDFS_HPP_ #define _BLASR_PDFS_HPP_ #include #include #include "StatUtils.hpp" float Binomial(float p, int x, int n); float Poisson(float lambda, int n); float Gamma(float lambda, float t, int n); float Exponential(float lambda, int t); float Normal(float mu, float sigma, float x); #endif blasr_libcpp-master/alignment/suffixarray/000077500000000000000000000000001260756663100213405ustar00rootroot00000000000000blasr_libcpp-master/alignment/suffixarray/LCPTable.hpp000066400000000000000000000137051260756663100234450ustar00rootroot00000000000000#ifndef _BLASR_LCP_TABLE_HPP_ #define _BLASR_LCP_TABLE_HPP_ #include #include #include "utils.hpp" template class LCPTable { // // Change the following TWO type defs if // the max LCP is changed. // typedef short SignedPrefixLength; typedef unsigned short PrefixLength; typedef std::map LongPrefixMap; PrefixLength maxPrefixLength; LongPrefixMap llongPrefixMap, rlongPrefixMap; int tableLength; public: PrefixLength *llcp, *rlcp; LCPTable() { tableLength =0; llcp = rlcp = NULL; } LCPTable(T* data, unsigned int pTableLength) { Init(data, pTableLength); } inline int LengthLongestCommonPrefix(T* a, int alen, T* b, int blen) { int i; for (i = 0 ; i < alen and i < blen; i++ ) if (a[i] != b[i]) break; return i; } void Init(T* data, unsigned int pTableLength, unsigned int *index) { tableLength = pTableLength; maxPrefixLength = (PrefixLength) (SignedPrefixLength(-1)); llcp = ProtectedNew(tableLength); rlcp = ProtectedNew(tableLength); std::fill(llcp, llcp + tableLength, 0); std::fill(rlcp, rlcp + tableLength, 0); FillTable(data, index); } int SetL(int index, int length) { assert(index >= 0); assert(index < tableLength); if (index >= maxPrefixLength) { llcp[index] = maxPrefixLength; llongPrefixMap[index] = length; } else { llcp[index] = length; } return llcp[index]; } int SetR(int index, int length) { assert(index >= 0); assert(index < tableLength); if (index >= maxPrefixLength) { rlcp[index] = maxPrefixLength; rlongPrefixMap[index] = length; } else { rlcp[index] = length; } return rlcp[index]; } int GetL(int index) { if (llcp[index] == maxPrefixLength) { assert(llongPrefixMap.find(index) != llongPrefixMap.end()); return llongPrefixMap[index]; } else { return llcp[index]; } } int GetR(int index) { if (rlcp[index] == maxPrefixLength) { assert(rlongPrefixMap.find(index) != llongPrefixMap.end()); return rlongPrefixMap[index]; } else { return rlcp[index]; } } ~LCPTable() { if (llcp != NULL) { delete[] llcp; llcp = NULL; } if (rlcp != NULL) { delete[] rlcp; rlcp = NULL; } // the two maps automatically go away. } void WriteLCPTable(std::ofstream &out) { out.write((char*) &tableLength, sizeof(tableLength)); out.write((char*) llcp, sizeof(PrefixLength)*tableLength); out.write((char*) rlcp, sizeof(PrefixLength)*tableLength); typename LongPrefixMap::iterator llcpTableIt, llcpTableEnd; int llongPrefixMapSize = llongPrefixMap.size(); out.write((char*) &llongPrefixMapSize, sizeof(llongPrefixMapSize)); for((llcpTableIt = llongPrefixMap.begin(), llcpTableEnd = llongPrefixMap.end()); llcpTableIt != llcpTableEnd; ++llcpTableIt) { out.write((char*) &llcpTableIt->first, sizeof(typename LongPrefixMap::key_type)); out.write((char*) &llcpTableIt->second, sizeof(typename LongPrefixMap::mapped_type)); } typename LongPrefixMap::iterator rlcpTableIt, rlcpTableEnd; int rlongPrefixMapSize = rlongPrefixMap.size(); out.write((char*) &rlongPrefixMapSize, sizeof(rlongPrefixMapSize)); for((rlcpTableIt = rlongPrefixMap.begin(), rlcpTableEnd = rlongPrefixMap.end()); rlcpTableIt != rlcpTableEnd; ++rlcpTableIt) { out.write((char*) &rlcpTableIt->first, sizeof(typename LongPrefixMap::key_type)); out.write((char*) &rlcpTableIt->second, sizeof(typename LongPrefixMap::mapped_type)); } } void ReadLCPTables(std::ifstream &in) { in.read((char*) &tableLength, sizeof(tableLength)); in.read((char*) &llcp, sizeof(PrefixLength)*tableLength); in.read((char*) &rlcp, sizeof(PrefixLength)*tableLength); int longPrefixMapSize; in.read((char*) &longPrefixMapSize, sizeof(longPrefixMapSize)); int i; int index, lcpLength; // The rest is stored as a tree, but read and construct this on the fly. for (i = 0; i < longPrefixMapSize; i++) { in.read((char*) &index, sizeof(index)); in.read((char*) &lcpLength, sizeof(lcpLength)); llongPrefixMap[index] = lcpLength; } // Read the rlcp in.read((char*) &longPrefixMapSize, sizeof(longPrefixMapSize)); for (i = 0; i < longPrefixMapSize; i++) { in.read((char*) &index, sizeof(index)); in.read((char*) &lcpLength, sizeof(lcpLength)); rlongPrefixMap[index] = lcpLength; } } void FillTable(T* data, unsigned int *index) { // // This assumes that the index table is now in sorted order. // FillTable(0, tableLength, data, index); } void FillTable(unsigned int low, unsigned int high, T* data, unsigned int *index) { if (low == high) return; unsigned int mid = (low + high) / 2; assert (mid != low); SetL(mid, LengthLongestCommonPrefix(&data[index[low]], tableLength - index[low], &data[index[mid]], tableLength - index[mid])); FillTable(low, mid, data, index); assert(mid != high); SetR(mid, LengthLongestCommonPrefix(&data[index[mid]], tableLength - index[mid], &data[index[high]], tableLength - index[high])); FillTable(mid+1, high, data, index); } }; #endif // _BLASR_LCP_TABLE_HPP_ blasr_libcpp-master/alignment/suffixarray/SharedSuffixArray.hpp000066400000000000000000000051661260756663100254530ustar00rootroot00000000000000#ifndef _BLASR_SHARED_SUFFIX_ARRAY_HPP_ #define _BLASR_SHARED_SUFFIX_ARRAY_HPP_ #include #include #include #include "SuffixArray.hpp" #include "ipc/SharedMemoryAllocator.hpp" #include "tuples/DNATuple.hpp" #include "tuples/CompressedDNATuple.hpp" #include "algorithms/compare/CompareStrings.hpp" template, typename Tuple = DNATuple > class SharedSuffixArray : public SuffixArray { public: std::string shmIdTag; SAIndex *indexShared; int indexID; std::string indexHandle; SAIndex *lookupTableShared; int lookupTableID; std::string lookupTableHandle; int lookupPrefixLength; void InitShmIdTag() { std::stringstream tagStrm; tagStrm << "_" << getpid(); shmIdTag = tagStrm.str(); } void ReadSharedArray(std::ifstream &saIn) { std::cout << "reading a shared suffix array index." << std::endl; saIn.read((char*) &this->length, sizeof(int)); indexHandle = "suffixarray.index." + shmIdTag; AllocateMappedShare(indexHandle, this->length + 1, indexShared, indexID); std::cout << "the shared index is: " << indexShared << std::endl; this->index = indexShared; std::cout << "the index used is: " << this->index << std::endl; this->ReadAllocatedArray(saIn); } void ReadSharedLookupTable(std::ifstream &saIn) { this->ReadLookupTableLengths(saIn); lookupTableHandle = "suffixarray.lookuptable." + shmIdTag; AllocateMappedShare(lookupTableHandle, this->lookupTableLength + 1, lookupTableShared, lookupTableID); this->lookupTable = lookupTableShared; this->ReadAllocatedLookupTable(saIn); } void ReadShared(std::string &inFileName) { std::ifstream saIn; InitShmIdTag(); saIn.open(inFileName.c_str(), std::ios::binary); this->ReadComponentList(saIn); if (this->componentList[SuffixArray::CompArray]) { this->ReadSharedArray(saIn); } if (this->componentList[SuffixArray::CompLookupTable]) { this->ReadSharedLookupTable(saIn); } saIn.close(); } void FreeShared() { if (this->componentList[SuffixArray::CompArray]) { shm_unlink(indexHandle.c_str()); } if (this->componentList[SuffixArray::CompLookupTable]) { shm_unlink(lookupTableHandle.c_str()); } } }; #endif // _BLASR_SHARED_SUFFIX_ARRAY_HPP_ blasr_libcpp-master/alignment/suffixarray/SuffixArray.hpp000066400000000000000000001155401260756663100243220ustar00rootroot00000000000000#ifndef _BLASR_SUFFIX_ARRAY_HPP_ #define _BLASR_SUFFIX_ARRAY_HPP_ #include #include #include #include #include #include #include "LCPTable.hpp" #include "defs.h" #include "utils.hpp" #include "tuples/DNATuple.hpp" #include "tuples/CompressedDNATuple.hpp" #include "qvs/QualityValue.hpp" #include "DNASequence.hpp" #include "NucConversion.hpp" #include "algorithms/compare/CompareStrings.hpp" #include "algorithms/sorting/qsufsort.hpp" #include "algorithms/sorting/LightweightSuffixArray.hpp" /* * Suffix array implementation, with a Manber and Meyers sort, but * that is typically not used. * */ typedef enum E_SAType {manmy, slow, mcilroy, larsson, kark, mafe, welter} SAType; template class CompareSuffixes { public: T t; int refLength; CompareSuffixes(T tref, int prefLength) { t = tref; refLength = prefLength; } int operator()(int a, int b) { int aSufLen = refLength - a; int bSufLen = refLength - b; int abMinLength = MIN(aSufLen, bSufLen); int cmpRes = memcmp(&(t[a]), &(t[b]), abMinLength); if (cmpRes == 0) { if (aSufLen < bSufLen) { return 1; } else { return 0; } } else { return cmpRes < 0; } } }; typedef uint32_t SAIndex; typedef uint32_t SAIndexLength; template, typename Tuple = DNATuple > class SuffixArray { public: SAIndex *index; bool deleteStructures; T* target; SAIndex length; SAIndex *startPosTable, *endPosTable; SAIndexLength lookupTableLength; SAIndex lookupPrefixLength; TupleMetrics tm; unsigned int magicNumber; unsigned int ckMagicNumber; typedef Compare CompareType; enum Component { CompArray, CompLookupTable, CompLCPTable}; static const int ComponentListLength = 2; static const int FullSearch = -1; int componentList[ComponentListLength]; // vector leftBound, rightBound; inline int LengthLongestCommonPrefix(T *a, int alen, T *b, int blen) { int i; for (i = 0 ; i < alen and i < blen; i++ ) if (a[i] != b[i]) break; return i; } SuffixArray() { // Not necessarily using the lookup table. // The magic number is linked with a version magicNumber = 0xacac0001; startPosTable = endPosTable = NULL; lookupPrefixLength = 0; lookupTableLength = 0; deleteStructures = true; ckMagicNumber = 0; length = 0; int i; for (i = 0; i < ComponentListLength; i++) { componentList[i] = false; } // Must create a suffix array, but for now make it null. target = NULL; index = NULL; } ~SuffixArray() { if (deleteStructures == false) { // // It is possible this class is referencing another structrue. In // this case, do not try and delete in the destructor. // return; } if (startPosTable != NULL) { delete[] startPosTable; } if (endPosTable != NULL) { delete[] endPosTable; } if (index != NULL) { delete[] index; } } int StringLessThanEqual(T *a, int aLen, T *b, int bLen) { return Compare::LessThanEqual(a, aLen, b, bLen); } int StringEquals(T *a, int aLen, T *b, int bLen) { return Compare::Equal(a, aLen, b, bLen); } int StringLessThan(T *a, int aLen, T *b, int bLen) { return Compare::LessThan(a, aLen, b, bLen); } void InitAsciiCharDNAAlphabet(std::vector &dnaAlphabet) { int i; for (i = 0; i < 127; i++) { dnaAlphabet.push_back(i); } } void InitTwoBitDNAAlphabet(std::vector &dnaAlphabet) { dnaAlphabet.push_back(0); dnaAlphabet.push_back(1); dnaAlphabet.push_back(2); dnaAlphabet.push_back(3); } void InitThreeBitDNAAlphabet(std::vector &dnaAlphabet) { // // This is initialized to have ACTG-0123, N=4, and EOF=5 // dnaAlphabet.push_back(0); dnaAlphabet.push_back(1); dnaAlphabet.push_back(2); dnaAlphabet.push_back(3); dnaAlphabet.push_back(4); dnaAlphabet.push_back(5); } void PrintSuffices(T *target, int targetLength, int maxPrintLength) { std::string seq; seq.resize(maxPrintLength+1); SAIndex i, s; seq[maxPrintLength] = '\0'; for (i = 0; i < length; i++) { DNALength suffixLength = maxPrintLength; if (index[i] + maxPrintLength > length) { suffixLength = length - index[i]; } std::cout << index[i] << " " << suffixLength << " "; seq.resize(suffixLength); for (s = 0; s < suffixLength; s++ ){ seq[s] = TwoBitToAscii[target[index[i] + s]]; } seq[suffixLength] = '\0'; std::cout << seq << std::endl; } } void BuildLookupTable(T *target, SAIndexLength targetLength, int prefixLengthP) { // // pprefixLength is the length used to lookup the index boundaries // given a string. // SAIndexLength i; tm.tupleSize = lookupPrefixLength = prefixLengthP; tm.InitializeMask(); lookupTableLength = 1 << (2*lookupPrefixLength); if (startPosTable) {delete [] startPosTable;} startPosTable = ProtectedNew(lookupTableLength); if (endPosTable) {delete [] endPosTable;} endPosTable = ProtectedNew(lookupTableLength); deleteStructures = true; Tuple curPrefix, nextPrefix; SAIndex tablePrefixIndex = 0; for (i = 0; i < lookupTableLength; i++) { startPosTable[i] = endPosTable[i] = 0; } i = 0; VectorIndex tablePos; SAIndex indexPos; indexPos = 0; do { // Advance to the first position that may be translated into a tuple. if (targetLength < lookupPrefixLength) break; while(indexPos < targetLength - lookupPrefixLength + 1 and index[indexPos] + lookupPrefixLength > targetLength) { indexPos++; } if (indexPos >= targetLength - lookupPrefixLength + 1) { break; } while (indexPos < targetLength - lookupPrefixLength + 1 and curPrefix.FromStringLR((Nucleotide*) &target[index[indexPos]], tm) == 0) { ++indexPos; } startPosTable[curPrefix.tuple] = indexPos; indexPos++; while(indexPos < targetLength - lookupPrefixLength + 1 and index[indexPos] + lookupPrefixLength < targetLength) { nextPrefix.tuple = 0; nextPrefix.FromStringLR((Nucleotide*) &target[index[indexPos]], tm); if (nextPrefix.tuple != curPrefix.tuple) { break; } else { indexPos++; } } endPosTable[curPrefix.tuple] = indexPos; } while ((indexPos < targetLength - lookupPrefixLength + 1) and (uint32_t(curPrefix.tuple) < uint32_t(lookupTableLength - 1))); } void AllocateSuffixArray(SAIndexLength stringLength) { assert(index == NULL or not deleteStructures); index = ProtectedNew(stringLength + 1); deleteStructures = true; length = stringLength; } void LarssonBuildSuffixArray(T* target, SAIndexLength targetLength, Sigma &alphabet) { assert(index == NULL or not deleteStructures); index = ProtectedNew(targetLength+1); deleteStructures = true; SAIndex *p = ProtectedNew(targetLength+1); SAIndexLength i; for (i = 0; i < targetLength; i++) { index[i] = target[i] + 1;} SAIndexLength maxVal = 0; for (i = 0; i < targetLength; i++) { maxVal = index[i] > maxVal ? index[i] : maxVal;} index[targetLength] = 0; LarssonSuffixSort sorter; sorter(index, p, ((SAIndex) targetLength), ((SAIndex) maxVal+1), (SAIndex) 1 ); for (i = 0; i < targetLength; i++ ){ index[i] = p[i+1];}; length = targetLength; delete[] p; } void LightweightBuildSuffixArray(T*target, SAIndexLength targetLength, int diffCoverSize=2281) { assert(index == NULL or not deleteStructures); index = ProtectedNew(targetLength+1); deleteStructures = true; length = targetLength; DNALength pos; for (pos = 0; pos < targetLength; pos++) { target[pos]++; } LightweightSuffixSort(target, targetLength, index, diffCoverSize); for (pos = 0; pos < targetLength; pos++) { target[pos]--; } } void MMBuildSuffixArray(T* target, SAIndexLength targetLength, Sigma &alphabet) { /* * Manber and Myers suffix array construction. */ length = targetLength; VectorIndex a; std::vector prm; std::vector bucket; std::vector count; // To be changed to bit vectors std::vector bh, b2h; bucket.resize(alphabet.size()); prm.resize(targetLength); count.resize(targetLength); bh.resize(targetLength+1); b2h.resize(targetLength+1); std::fill(bh.begin(), bh.end(), false); std::fill(b2h.begin(), b2h.end(), false); std::fill(count.begin(), count.end(), 0); assert(index == NULL or not deleteStructures); index = ProtectedNew(targetLength); deleteStructures = true; for (a = 0; a < alphabet.size(); a++ ) { bucket[a] = -1; } SAIndexLength i; for (i = 0; i < targetLength; i++) { index[i] = bucket[target[i]]; bucket[target[i]] = i; } int j; SAIndex c; std::fill(prm.begin(), prm.end(), -1); // // Prepare the buckets. // c = 0; int b; for (a = 0; a < alphabet.size(); a++) { b = bucket[alphabet[a]]; // position of last suffix starting with 'a' while (b != -1) { j = index[b]; prm[b] = c; if (b == bucket[a]) { bh[c] = true; } else { bh[c] = false; } c = c + 1; b = j; } } b2h[targetLength] = bh[targetLength] = true; // fill the index with positions sorted by the first character. for (i = 0; i < targetLength; i++) { index[prm[i]] = i; } SAIndex h; h = 1; SAIndex l, r; while (h < targetLength) { // re-order the buckets; l = 0; int bstart; while (l < targetLength) { bstart = l; r = l + 1; count[l] = 0; // bh[l] = 0; while (bh[r] == false) {r++;} // find the begining of the next bucket. while (l < r) { assert(l < targetLength); prm[index[l]] = bstart; l++; } } SAIndex d = targetLength - h; SAIndex e = prm[d]; /* * Phase 1: Set up the buckets in the index and bh list. */ // // suffix d needs to be moved to the front of it's bucket. // d should exist in the bucket starting at prm[d] SAIndex i; l = 0; r = 1; // // Move each d that is h backwards up in it's 2h bucket. // d = targetLength - h; e = prm[d]; bh[e] = true; // e is bstart, the beginning of the bucket. prm[d] = e + count[e]; count[e] = count[e] + 1; b2h[prm[d]] = true; for (c = 0; c < targetLength; c++ ){ // d is T_i d = index[c] - h; if (index[c] >= h and d < targetLength) { e = prm[d]; prm[d] = e + count[e]; count[e] = count[e] + 1; b2h[prm[d]] = true; } } // // Fix the bucket boundaries. // l = 0; while(l < targetLength) { // First assign b2h to be 1 on the entire portion of the // current bucket (from l ... bh[c]==true). for (c = l; c == l or bh[c] == false; c++) { d = index[c] - h; if (d < targetLength) { b2h[prm[d]] = true; } } // // Mark the start boundaries of the 2h bucket. // for (c = l; c == l or bh[c] == false; c++) { d = index[c] - h; if (d < targetLength) { if (b2h[prm[d]] == true) { j = prm[d] + 1; // advance j to the next bucket. while (!(bh[j] == true or b2h[j] == false)) { j++; } e = j; SAIndex f; for (f = prm[d] + 1; f <= e - 1; f++) { b2h[f] = false; } } } } l = c; } for (i = 0; i < targetLength; i++) { index[prm[i]] = i; } for (i = 0 ; i < targetLength; i++) { if (b2h[i] == true and bh[i] == false) { bh[i] = b2h[i]; } } h <<= 1; } } void BuildSuffixArray(T* target, SAIndex targetLength, Sigma &alphabet) { length = targetLength; assert(index == NULL or not deleteStructures); index = ProtectedNew(length); deleteStructures = true; CompareSuffixes cmp(target, length); SAIndex i; for (i = 0; i < length; i++ ){ index[i] = i; } std::sort(index, index + length, cmp); } void WriteArray(std::ofstream &out) { out.write((char*) &length, sizeof(int)); out.write((char*) index, sizeof(int) * (length)); } void WriteLookupTable(std::ofstream &out) { out.write((char*) &lookupTableLength, sizeof(SAIndex)); out.write((char*) &lookupPrefixLength, sizeof(SAIndex)); out.write((char*) startPosTable, sizeof(SAIndex) * (lookupTableLength)); out.write((char*) endPosTable, sizeof(SAIndex) * (lookupTableLength)); } void WriteComponentList(std::ofstream &out) { // // First build the component list. // if (index != NULL) componentList[CompArray] = 1; else componentList[CompArray] = 0; if (startPosTable != NULL) componentList[CompLookupTable] = 1; else componentList[CompLookupTable] = 0; out.write((char*) componentList, sizeof(int) * ComponentListLength); } void WriteLCPTable(std::ofstream &out) { std::cout << "NOT YET IMPLEMENTED." << std::endl; exit(1); } void Write(std::string &outFileName) { // // The suffix array is written in 2 or more parts: // 1 - a preamble listing the components of the // array that are written // 2 - The components. // // std::ofstream suffixArrayOut; suffixArrayOut.open(outFileName.c_str(), std::ios::binary); if (!suffixArrayOut.good()) { std::cout << "Could not open " << outFileName << std::endl; exit(1); } WriteMagicNumber(suffixArrayOut); // write the preamble WriteComponentList(suffixArrayOut); // write the components if (componentList[CompArray]) { WriteArray(suffixArrayOut); } if (componentList[CompLookupTable]) { WriteLookupTable(suffixArrayOut); } suffixArrayOut.close(); } void WriteMagicNumber(std::ofstream &out) { out.write((char*) &magicNumber, sizeof(int)); } int ReadMagicNumber(std::ifstream &in) { in.read((char*) &ckMagicNumber, sizeof(int)); if (ckMagicNumber != magicNumber) { return 0; } else { return 1; } } void ReadComponentList(std::ifstream &in) { in.read((char*) componentList, sizeof(int) * ComponentListLength); } void ReadAllocatedArray(std::ifstream &in) { in.read((char*) index, sizeof(int) * length); } void LightReadArray(std::ifstream &in) { in.read((char*) &length, sizeof(int)); // skip the actual array in.seekg(length*sizeof(int), std::ios_base::cur); } void ReadArray(std::ifstream &in) { in.read((char*) &length, sizeof(int)); assert(index == NULL or not deleteStructures); index = ProtectedNew(length); deleteStructures = true; ReadAllocatedArray(in); } void ReadAllocatedLookupTable(std::ifstream &in) { in.read((char*) startPosTable, sizeof(int) * (lookupTableLength)); in.read((char*) endPosTable, sizeof(int) * (lookupTableLength)); } void ReadLookupTableLengths(std::ifstream &in) { in.read((char*) &lookupTableLength, sizeof(int)); in.read((char*) &lookupPrefixLength, sizeof(int)); } void ReadLookupTable(std::ifstream &in) { ReadLookupTableLengths(in); tm.Initialize(lookupPrefixLength); assert(startPosTable == NULL or not deleteStructures); assert(endPosTable == NULL or not deleteStructures); startPosTable = ProtectedNew(lookupTableLength); endPosTable = ProtectedNew(lookupTableLength); deleteStructures = true; ReadAllocatedLookupTable(in); } void ReadLCPTable(std::ifstream &in) { std::cout <<" NOT YET IMPLEMENTED!!!" << std::endl; exit(1); } bool LightRead(std::string &inFileName) { std::ifstream saIn; saIn.open(inFileName.c_str(), std::ios::binary); int hasMagicNumber; hasMagicNumber = ReadMagicNumber(saIn); if (hasMagicNumber == 1) { ReadComponentList(saIn); LightReadArray(saIn); ReadLookupTable(saIn); saIn.close(); return true; } else { saIn.close(); return false; } } bool Read(std::string &inFileName) { std::ifstream saIn; saIn.open(inFileName.c_str(), std::ios::binary); int hasMagicNumber; hasMagicNumber = ReadMagicNumber(saIn); if (hasMagicNumber == 1) { ReadComponentList(saIn); if (componentList[CompArray]) { ReadArray(saIn); } if (componentList[CompLookupTable]) { ReadLookupTable(saIn); } saIn.close(); return true; } else { saIn.close(); return false; } } int SearchLCP(T* target, T* query, DNALength queryLength, SAIndex &low, SAIndex &high, DNALength &lcpLength, DNALength maxlcp) { // cout << "searching lcp with query of length: " << queryLength << endl; lcpLength = 0; if (startPosTable != NULL and queryLength >= lookupPrefixLength) { Tuple lookupTuple; int left, right; // just in case this was changed. lookupTuple.FromStringLR(query, tm); left = startPosTable[lookupTuple.tuple]; right = endPosTable[lookupTuple.tuple]; // // When left == right, the k-mer in the read did not exist in the // genome. Don't even try and map it in this case. // if (left == right) { low = high = 0; return 0; } // // Otherwise, the sequence of length 'lookupPrefixLength' was found // in the genome. The bounds of this prefix in the suffix array // are stored in the lookup tables, so begin the binary search there. // lcpLength = lookupPrefixLength; low = left, high = right; } else { low = 0; high = length - 1; lcpLength = 0; } int prevLow = low; int prevHigh = high; int prevLCPLength = lcpLength - 1; // When the boundaries and the string share a prefix, it is not necessary // to use this as a comparison in further lcp searches. prevLCPLength = lcpLength; Search(target, query, queryLength, low, high, low, high, 0); DNALength lowLCP = lookupPrefixLength, highLCP = lookupPrefixLength; while (lowLCP < queryLength and index[low]+lowLCP < length and target[index[low] + lowLCP] == query[lowLCP]) lowLCP++; while (highLCP < queryLength and index[high]+highLCP < length and target[index[high] + highLCP] == query[highLCP]) highLCP++; DNALength minLCP = highLCP; if (lowLCP < highLCP ) { minLCP = lowLCP; } while (minLCP >= (lookupPrefixLength -2 )and low > 0 and high < (length - minLCP) and high - low < 10) { while(low > 0 and StringEquals(&target[index[low]], minLCP, &target[index[high]], minLCP)) low--; while(high > 0 and StringEquals(&target[index[low]], minLCP, &target[index[high]], minLCP)) high++; --minLCP; } // // The LCP is not an exact match to the end of the string. // prevLow = low; prevHigh = high; low = prevLow; high = prevHigh; if (low < high and high - low < 100) { return queryLength; } else { high = low - 1; lcpLength = 0; } return lcpLength; } int Search(T* target, T* query, DNALength queryLength, SAIndex left, SAIndex right, SAIndex &low, SAIndex &high, unsigned int offset=0) { if (offset >= queryLength) { return high - low; } SearchLow(target, query, queryLength, left, right, low, offset); SearchHigh(target, query, queryLength, left, right, high, offset); return high - low; } int Search(T* target, T* query, DNALength queryLength, SAIndex &low, SAIndex &high, int offset = 0) { int left = 0; int right = length - 1; // // Constrain the lookup if a lookup table exists. // if (startPosTable != NULL and queryLength >= lookupPrefixLength) { Tuple lookupTuple; lookupTuple.FromStringLR(query, tm); left = startPosTable[lookupTuple.tuple]; right = endPosTable[lookupTuple.tuple]; } return Search(target, query, queryLength, left, right, low, high, offset); } long SearchLeftBound(T* target, long targetLength, DNALength targetOffset, T queryChar, long l, long r) { long ll, lr; ll = l; lr = r; long m; long targetSufLen = 0; while (ll < lr) { m = (ll + lr) / 2; targetSufLen = targetLength - index[m]; if (targetSufLen == targetOffset) { ll =m + 1; continue; } // // The suffix at index[m] is shorter than the lengths of the // two sequences being compared. With the Larsson // implementation, that means that the target suffix is lex-less // than the read. int comp; if (targetSufLen < targetOffset) { comp = -1; } else { // // There is enough sequence to compare the target suffix with // the query suffix. // assert(index[m]+targetOffset < targetLength); /* if (ThreeBit[target[index[m]+targetOffset]] >= 4 or ThreeBit[queryChar] >= 4) { lr = ll; break; } */ comp = Compare::Compare(target[index[m]+targetOffset], queryChar); } if (comp < 0) { ll = m + 1; } else { lr = m; } } return ll; } long SearchRightBound(T* target, long targetLength, DNALength targetOffset, T queryChar, long l, long r) { long rl, rr; rl = l; rr = r; long m; long targetSufLen; while (rl < rr) { m = (rl + rr) / 2; targetSufLen = targetLength - index[m]; if (targetSufLen == targetOffset) { rr = m; break; } if (targetSufLen < targetOffset) { rr = m ; } else { /* * Do not try and map stretches of N. These do not add * infomrative anchors. */ /* if (ThreeBit[target[index[m]+targetOffset]] >= 4 or ThreeBit[queryChar] >= 4) { rl = rr; break; } */ int comp = Compare::Compare(target[index[m] + targetOffset], queryChar); if (comp <= 0) { rl = m + 1; } else { rr = m ; } } } return rr; } /* * Search the suffix array for the bounds l and r that specify the * indices in the suffix array that have the longest common prefix * between the read and the genome. */ int SearchLCPBounds(T*target, long targetLength, T*query, DNALength queryLength, SAIndex &l, SAIndex &r, DNALength &refOffset, DNALength &queryOffset) { // l = 0; r = targetLength; for (; refOffset < targetLength and queryOffset < queryLength and l < r; queryOffset++, refOffset++) { std::cout << "bounds: " << l << ", " << r << std::endl; // // Band l by the character at query[offset] // l = SearchLeftBound(target, targetLength, refOffset, query[queryOffset], l, r); // // If the current search is past the end of the suffix array, it // will be impossible to extend. // if (index[l] + refOffset >= targetLength or Compare::Compare(target[index[l] + refOffset], query[queryOffset]) != 0) { break; } r = SearchRightBound(target, targetLength, refOffset, query[queryOffset], l, r); if (Compare::Compare(query[queryOffset], target[index[l]+refOffset]) != 0 or Compare::Compare(query[queryOffset], target[index[r]+refOffset]) != 0) { break; } } return refOffset; } int StoreLCPBounds(T *target, long targetLength, T *query, long queryLength, SAIndex &low, SAIndex &high) { DNALength targetOffset = 0; DNALength queryOffset = 0; DNALength lcpLength = 0; low = 0; high = targetLength; for (; index[low] + targetOffset < targetLength and targetOffset < targetLength and queryOffset < queryLength and low < high ; targetOffset++, queryOffset++, lcpLength++) { // // Band l by the character at query[offset] // low = SearchLeftBound(target, targetLength, targetOffset, query[queryOffset], low, high); // // If the current search is past the end of the suffix array, it // will be impossible to extend. // if (index[low] + targetOffset > targetLength or Compare::Compare(target[index[low] + targetOffset], query[queryOffset]) != 0 or ThreeBit[query[queryOffset]] > 3) { break; } high = SearchRightBound(target, targetLength, targetOffset, query[queryOffset], low, high); } return lcpLength; } int CountNumBranches(T* target, DNALength targetLength, DNALength targetOffset, SAIndex low, SAIndex high) { // // look to see how many different characters start suffices between // low and high at targetOffset // // Check some easy boundary conditions. // // 1. No branches (indices do not define any subset of the suffix // array). if (high <= low) { return 0; } // 2. One branch, if (target[index[low] + targetOffset ] == target[index[high-1] + targetOffset]) { return 1; } int numBranches = 1; // More than one branch. while ( low < high ) { // // Find the band where the suffices share the same chatacter // 'targetOffset' bases into the suffix as the first suffix in // the band given to this function. // SAIndex curCharHigh = high; curCharHigh = SearchRightBound(target, targetLength, targetOffset, target[index[low]+targetOffset], low, high); if (curCharHigh != high) { ++numBranches; } low = curCharHigh; } return numBranches; } int StoreLCPBounds(T *target, long targetLength, // The string which the suffix array is built on. T *query, DNALength queryLength, // The query string. search starts at pos 0 in this string bool useLookupTable, // Should the indices of the first k bases be determined by a lookup table? int maxMatchLength, // Stop extending match at lcp length = maxMatchLength, // Vectors containing lcpLeft and lcpRight from 0 ... lcpLength. std::vector &lcpLeftBounds, std::vector &lcpRightBounds, bool stopOnceUnique=false) { // // Precondition: target[l][0] >= query[offset] // long l, r; l = 0; r = targetLength; DNALength lcpLength = 0; Tuple lookupTuple; lookupTuple.tuple = -1; /* * Various parameters may make the search through the SA not use * the full binary search. If priorLCP is > 0, the search for an * LCP is limited to lcpLeftBounds[priorLCP] and lcpRightBounds[priorLCP]. * This is the case when continuing a search using branched * re-uses previous lcp searches. */ if (useLookupTable and startPosTable != NULL) { // just in case this was changed. if (lookupTuple.FromStringLR(query, tm)) { l = startPosTable[lookupTuple.tuple]; r = endPosTable[lookupTuple.tuple]; lcpLength = lookupPrefixLength; } else { // // Not able to find a match for this sequence, so do not // register a hit. // l = 0; r = 0; lcpLength = 0; return 0; } // // the values of startPosTable and endPosTable are the same when // there are no matches. When they are not equal, a valid range // has been found, so store this. // if (l < r) { VectorIndex off_i; VectorIndex boundLength = lcpLeftBounds.size(); lcpLeftBounds.push_back(l); lcpRightBounds.push_back(r); } else { // // No exact match found in the lookup table, do not bother // searching, and return 0 lcp length. // return 0; } } // // Search the suffix array for the longest common prefix between // the read and the genome. // while( l < r and lcpLength < queryLength // stop searching when the end of // the query is reached. ) { // // If there is only one match in the suffix array, and and not // extending matches as far as possible (stopping the search once // they are unique), halt the search. if (stopOnceUnique and l == r - 1) { break; } // // If there is a maximal match length and it is reached, stop // searchign as well. // if (maxMatchLength and lcpLength >= maxMatchLength) { break; } // // If the match extends into one or more N's, stop. The reason // for this is that sometimes people will set up genome databases // by appending a stretch of N's between matches (although they // should just use a multi-fasta file). Since the reads also // have stretches of N's, this tends to slow the search down // dramatically. if (ThreeBit[target[index[l] + lcpLength]] >= 4) { break; } // // Find the bounds in the suffix array matching query[0... lcp] // and target. // l = SearchLeftBound(target, targetLength, lcpLength, query[lcpLength], l, r); r = SearchRightBound(target, targetLength, lcpLength, query[lcpLength], l, r); // // If the current search is past the end of the suffix array, it // will be impossible to extend. // if (l == r or // if this point is reached, stop loop now since // otherwise the lcp length will be incremented by // 1, which will give one longer than the actual // LCP length. index[l] + lcpLength >= targetLength or // This shouldn't // happen // End on a mismatch. ThreeBit[query[lcpLength]] >= 4 or Compare::Compare(target[index[l] + lcpLength], query[lcpLength]) != 0 ) { break; } // // Store the bounds for the current offset. These are used later // to expand the search if necessary. // lcpLeftBounds.push_back(l); lcpRightBounds.push_back(r); lcpLength++; } return lcpLength; } int SearchLow(T *target, T *query, DNALength queryLength, SAIndex l, SAIndex r, SAIndex &low, unsigned int offset=0) { long midPos; int high; int numSteps = 0; // // Boundary conditions, the string is either before (lexicographically) the text // or after. // if (StringLessThanEqual(&query[offset], queryLength-offset, &target[index[l]+offset], length - index[l]-offset)) { low = l; return low; } else if (StringLessThan(&target[index[r]+offset], length - index[r] - offset , &query[offset], queryLength - offset)) { low = length; return low; } // // The string fits somewhere in the text. // low = l; high = r; long diff = ((long) high) - ((long) low); while (diff > 1) { ++numSteps; midPos = ((long) high) + ((long) low); midPos = midPos / 2; if (StringLessThanEqual(&query[offset], queryLength-offset, &target[index[midPos]+offset], length - index[midPos]-offset)) { high = midPos; } else { low = midPos; } diff = ((long) high) - ((long) low); } // // The search is for the least position such that the query is greater than or equal to the text. // High tracks the positions that may be equal to the query, and low is strictly less than the query. // At the end of the search, high is either pointing to the query, or the first element where the query // could be placed before high without changing the order of target. // low = high; diff = ((long) high) - ((long) low); return low; // cout << "search low took: " << numSteps << endl; } int SearchHigh(T *target, T *query, DNALength queryLength, SAIndex l, SAIndex r, SAIndex &high, unsigned int offset=0) { // // Find the last position where the query is less than the target. // long midPos; int low; int numSteps = 0; // // Boundary conditions, the string is either before (lexicographically) the text // or after. // if (StringLessThan(&target[index[r]+offset], length - index[r] - offset, &query[offset], queryLength-offset)) { high = -1; return high; } // // The string fits somewhere in the text. // low = l; high = r; long diff = ((long) high) - ((long) low); while (diff > 1) { ++numSteps; midPos = ((long) high) + ((long) low); midPos = midPos / 2; if (StringLessThan(&query[offset], queryLength - offset, &target[index[midPos]+offset], length - index[midPos] - offset)) { high = midPos; } else { low = midPos; } diff = ((long) high) - ((long) low); } // // The search is for the last position where the query is less than or equal to the text. High is // strictly greater than or the query. Low is less than or equal to the query. At the end, low will be // the last spot where query could be inserted after and not wreck the ordering of the array. // high = low; // cout << "search high took: " << numSteps << " steps." << endl; } }; #endif // _BLASR_SUFFIX_ARRAY_HPP_ blasr_libcpp-master/alignment/suffixarray/SuffixArrayTypes.hpp000066400000000000000000000010601260756663100253360ustar00rootroot00000000000000#ifndef _BLASR_SUFFIX_ARRAY_TYPES_HPP_ #define _BLASR_SUFFIX_ARRAY_TYPES_HPP_ #include #include "SuffixArray.hpp" #include "SharedSuffixArray.hpp" #include "CompressedSequence.hpp" #include "Compare4BitCompressed.hpp" #include "FASTASequence.hpp" typedef SuffixArray > DNASuffixArray; typedef SuffixArray, Compare4BitCompressed, CompressedDNATuple > CompressedDNASuffixArray; #endif // _BLASR_SUFFIX_ARRAY_TYPES_HPP_ blasr_libcpp-master/alignment/suffixarray/ssort.hpp000066400000000000000000000353551260756663100232360ustar00rootroot00000000000000/**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the name Lucent Technologies or any of its entities not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ****************************************************************/ /* Suffix sort Peter M. McIlroy M. Douglas McIlroy Prototype int ssort(int a[], int s[]); Purpose Return in a[] a suffix array for the original contents of a[]. (The original values in a[] are typically serial numbers of distinct tokens in some list.) Optionally return in s[] an array of shared lengths between adjacent sorted suffixes. Precondition Array a[] holds n values, with n>=1. Exactly k distinct values, in the range 0..k-1, are present. Value 0, an endmark, appears exactly once, at a[n-1]. Pointer s is 0 or points to an array of n elements. Postcondition Array a[] is a copy of the internal array p[] that records the sorting permutation: if i0, permutation p[] lists h-grams in lexicographic order: if i #include "utils.hpp" enum { ORIG = ~(~0u>>1), /* sign bit */ BUCK = ~(~0u>>1) }; void shared(SAIndex a[], SAIndex n, SAIndex p[], SAIndex q[], SAIndex s[], int h); #define pred(i, h) ((t=(i)-(h))<0? t+n: t) #define succ(i, h) ((t=(i)+(h))>=n? t-n: t) inline int ssort(SAIndex a[], SAIndex s[]) { SAIndex h, i, j, l, n, t; SAIndex k = 0; /* initialized for lint */ SAIndex *p = 0; int result = 0; SAIndex *q = 0; # define al a # define pl p # define finish(r) if(1){result=r; goto out;}else for(j=n=0; a[n]>0; n++) /* find n */ if(a[n] > j) j = a[n]; /* and max element */ if(a[n++]<0 || j>=n) finish(2); p = ProtectedNew(n); if(p == 0) finish(1); for(i=0; i(n); if(q == 0) finish(1); } for(h = 0; ; h = h==0? 1: 2*h) { for(i=0; i=0; ) { /* (2) order */ j = pl[k]; do p[--i] = j; while(!((j=al[j]) & ORIG)); p[i] |= BUCK; } for(i=0; i= n) break; } for(i=0; i0. For each new bucket i created in the current pass, q[i] is (notionally) made to point to the previous bucket, j. The shared length between the i-1st and i-th smallest suffix is stored in s[i]. The shared length between two arbitrary buckets is the minimum of the stored shared lengths on the paths to their nearest common ancestor (excluding that ancestor). For efficient search, paths are compressed by making each bucket point to the next bucket on the path to the root with a strictly smaller stored shared length. This may change the identity of the nearest common ancestor, but does not affect shared lengths. Cost There are 3 serial passes and 1 random pass over size-n arrays per call, plus the inner loops of steps (2) and (3), each of which is executed n times fpr each call of ssort(). The asymptotic worst case has not been analyzed, however the code has always been seen to be at least as fast as a guaranteed O(n log n) method that takes twice as much code. (That method keeps in element i of an integer array the minimum value of s[] over the largest aligned power-of-2 interval beginning at i.) (0) On the first pass, with h=0, the shared length between buckets is zero, and every bucket bcomes a child of the root node, 0. (1) On subsequent passes the old bucket that each potential new bucket refines is remembered in a[]. Array a[] is ordered by substring places, while q[] is ordered by substring values. If the values placed in a[] were kept in another array, the loops of shared() could be combined with loops of lssort(). (2) When an h-gram bucket is split, the shared lengths between adjacent subbuckets is h+u, where u is the shared length between the h-successors that differed (causing the split). To find u, we locate the nearest common ancestor. The common ancestor is found by searching the path from the higher-numbered bucket, k1, until reaching a bucket whose number does not exceed that of the lower-numbered bucket, k0. This method is justified by two observations. All the new subbuckets have strictly longer shared lengths than all the old buckets. All the subbuckets of a bucket fall between the bucket head and its next higher numbered sibling. (3) After new buckets have been processed, the tree q is updated. New buckets are recognized by having mark BUCK and q[i]<0. */ inline void shared(SAIndex a[], SAIndex n, SAIndex p[], SAIndex q[], SAIndex s[], int h) { SAIndex i, j, k0, k1, t, u; if(h == 0) { /* (0) initialize */ for(i=0; i= 0) j = i; a[p[i]&~BUCK] = j; } for(i=0; i= 0) continue; for(u=n; k1>k0; k1=q[k1]) if(s[k1] < u) u = s[k1]; s[i] = h + u; } for(i=0; i s[t]) break; } j = i; } } blasr_libcpp-master/alignment/tuples/000077500000000000000000000000001260756663100203115ustar00rootroot00000000000000blasr_libcpp-master/alignment/tuples/BaseTuple.cpp000066400000000000000000000023031260756663100226770ustar00rootroot00000000000000#include #include "Types.h" #include "TupleMask.h" #include "TupleMetrics.hpp" #include "BaseTuple.hpp" ULong BaseTuple::HashPowerOfFour(int nBases, TupleMetrics &tm) { // // When the hash can fit inside the entire tuple, just return the // tuple. // if (tm.tupleSize > nBases) { return tuple; } else { return ((tuple & TupleMask[nBases]) + (tuple % 1063)) % (1 << (nBases*2)); } } int BaseTuple::operator<(const BaseTuple &rhs) const { return tuple < rhs.tuple; } int BaseTuple::operator==(const BaseTuple &rhs) const { return tuple == rhs.tuple; } int BaseTuple::operator!= (const BaseTuple &rhs) const { return tuple != rhs.tuple; } BaseTuple BaseTuple::ShiftLeft(TupleMetrics &tm, ULong shift) { tuple = tuple << shift; tuple = tuple & tm.tupleMask; return *this; } BaseTuple BaseTuple::ShiftRight(ULong shift) { tuple = tuple >> shift; return *this; } BaseTuple BaseTuple::Append(ULong val, TupleMetrics &tm, ULong nBits) { tuple = tuple << nBits; tuple = tuple & tm.tupleMask; tuple = tuple + val; return *this; } long BaseTuple::ToLongIndex() { long tempTuple = tuple; return tempTuple; } blasr_libcpp-master/alignment/tuples/BaseTuple.hpp000066400000000000000000000010571260756663100227110ustar00rootroot00000000000000#ifndef _BLASR_BASE_TUPLE_HPP_ #define _BLASR_BASE_TUPLE_HPP_ #include "tuples/TupleMetrics.hpp" class BaseTuple { public: ULong tuple; ULong HashPowerOfFour(int nBases, TupleMetrics &tm); int operator<(const BaseTuple &rhs) const; int operator==(const BaseTuple &rhs) const; int operator!= (const BaseTuple &rhs) const; BaseTuple ShiftLeft(TupleMetrics &tm, ULong shift=1L); BaseTuple ShiftRight(ULong shift=1L); BaseTuple Append(ULong val, TupleMetrics &tm, ULong nBits); long ToLongIndex(); }; #endif blasr_libcpp-master/alignment/tuples/CompressedDNATuple.hpp000066400000000000000000000034161260756663100244670ustar00rootroot00000000000000#ifndef _BLASR_COMPRESSED_DNA_TUPLE_HPP_ #define _BLASR_COMPRESSED_DNA_TUPLE_HPP_ #include "DNATuple.hpp" #include "CompressedSequence.hpp" template class CompressedDNATuple : public DNATuple { static const unsigned char mask = 0xf; public: int FromStringLR(Nucleotide *strPtr, TupleMetrics &tm) { // // Make sure the sequence contains all valid characters. // if (!CompressedSequence::Only4BitACTG(strPtr, tm.tupleSize)) return 0; if (tm.tupleSize == 0) return 1; tuple = 0; Nucleotide *p; Nucleotide *endPtr = &strPtr[tm.tupleSize - 1]; for (p = strPtr; p != endPtr; p++) { tuple += TwoBit[*p & mask]; tuple <<=2; } // // The tuple size is guaranteed to be at least // 1, so it's safe to add the last value. // This cannot be in the previous loop since // the shift shouldn't happen. tuple += TwoBit[*p & mask]; return 1; } int FromStringRL(Nucleotide *strPtr, TupleMetrics &tm) { if (!CompressedSequence::Only4BitACTG((CompressedNucleotide*)strPtr, tm.tupleSize)) return 0; if (tm.tupleSize == 0) return 1; tuple = 0; Nucleotide *p; for (p = strPtr + tm.tupleSize - 1; p > strPtr; p--) { tuple += TwoBit[*p & mask]; tuple <<=2; } // // The tuple size is guaranteed to be at least // 1, so it's safe to add the last value. // This cannot be in the previous loop since // the shift shouldn't happen. tuple += TwoBit[*p & mask]; return 1; } }; #endif // _BLASR_COMPRESSED_DNA_TUPLE_HPP_ blasr_libcpp-master/alignment/tuples/CountedTuple.h000066400000000000000000000003161260756663100230750ustar00rootroot00000000000000#ifndef COUNTED_TUPLE_H_ #define COUNTED_TUPLE_H_ #include "tuples/DNATuple.h" class CountedDNATuple : public DNATuple { public: int count; int IncrementCount() { count = count + 1; } }; #endif blasr_libcpp-master/alignment/tuples/DNATuple.cpp000066400000000000000000000041571260756663100224400ustar00rootroot00000000000000#include "tuples/DNATuple.hpp" int DNATuple::FromStringRL(Nucleotide *strPtr, TupleMetrics &tm) { // // Tuples are created with the right-most character // in the most significant bit in the sequence. // DNASequence tmpSeq; tmpSeq.seq = strPtr; tmpSeq.length = tm.tupleSize; if (!OnlyACTG(tmpSeq)) return 0; if (tm.tupleSize == 0) return 1; tuple = 0; Nucleotide *p; for (p = strPtr + tm.tupleSize - 1; p > strPtr; p--) { tuple += TwoBit[*p]; tuple <<=2; } // // The tuple size is guaranteed to be at least // 1, so it's safe to add the last value. // This cannot be in the previous loop since // the shift shouldn't happen. tuple += TwoBit[*p]; return 1; } int DNATuple::MakeRC(DNATuple &dest, TupleMetrics &tm) { int i; ULong tempTuple = tuple; dest.tuple = 0; ULong mask = 0x3; if (tm.tupleSize == 0) return 0; for (i = 0; i < tm.tupleSize - 1; i++ ) { dest.tuple += (~tempTuple & mask); tempTuple >>= 2; dest.tuple <<= 2; } dest.tuple += (~tempTuple & mask); return 1; } std::string DNATuple::ToString(TupleMetrics &tm) { int i; std::string s; ULong tempTuple = tuple; for (i = 0;i < tm.tupleSize;i++) { s.insert(s.begin(), TwoBitToAscii[tempTuple & 3]); tempTuple = tempTuple >> 2; } return s; } bool CompareByTuple::operator()(const DNATuple &lhs, const DNATuple &rhs) const { return lhs.tuple < rhs.tuple; } int PositionDNATuple::operator==(const DNATuple &pTuple) const { return tuple == pTuple.tuple; } PositionDNATuple::PositionDNATuple() : DNATuple() { pos = -1; } PositionDNATuple::PositionDNATuple(PositionDNATuple &tupleP, DNALength posP) { tuple = tupleP.tuple; pos = posP; } int OrderPositionDNATuplesByPosition::operator()( const PositionDNATuple &lhs, const PositionDNATuple &rhs) const { return lhs.pos < rhs.pos; } int OrderPositionDNATuplesByTuple::operator()( const PositionDNATuple &lhs, const PositionDNATuple &rhs) const { return lhs.tuple < rhs.tuple; } blasr_libcpp-master/alignment/tuples/DNATuple.hpp000066400000000000000000000047221260756663100224430ustar00rootroot00000000000000#ifndef _BLASR_DNA_TUPLE_HPP_ #define _BLASR_DNA_TUPLE_HPP_ #include #include #include #include #include #include "Types.h" #include "SeqUtils.hpp" #include "DNASequence.hpp" #include "NucConversion.hpp" #include "tuples/BaseTuple.hpp" #include "tuples/TupleMetrics.hpp" #include "tuples/TupleList.hpp" #include "tuples/TupleOperations.h" class DNATuple : public BaseTuple { public: DNALength pos; inline int FromStringLR(Nucleotide *strPtr, TupleMetrics &tm); int FromStringRL(Nucleotide *strPtr, TupleMetrics &tm); inline int ShiftAddRL(Nucleotide nuc, TupleMetrics &tm); int MakeRC(DNATuple &dest, TupleMetrics &tm); std::string ToString(TupleMetrics &tm); }; class CompareByTuple { public: bool operator()(const DNATuple &lhs, const DNATuple &rhs) const; }; class CountedDNATuple : public DNATuple { public: int count; }; class PositionDNATuple : public DNATuple { public: PositionDNATuple& operator=(const PositionDNATuple &rhs) { pos = rhs.pos; tuple = rhs.tuple; return *this; } int operator<(const PositionDNATuple & pTuple) const { if (tuple < pTuple.tuple) return 1; else if (tuple == pTuple.tuple) return pos < pTuple.pos; else return 0; } int operator==(const PositionDNATuple &pTuple) const { return tuple == pTuple.tuple and pos == pTuple.pos; } int operator<(const DNATuple &pTuple) const { return (tuple < pTuple.tuple); } int operator==(const DNATuple &pTuple) const; int operator!=(const DNATuple &pTuple) const { return tuple != pTuple.tuple; } PositionDNATuple(); PositionDNATuple(PositionDNATuple &tupleP, DNALength posP); }; class OrderPositionDNATuplesByPosition { public: int operator()(const PositionDNATuple &lhs, const PositionDNATuple &rhs) const; }; class OrderPositionDNATuplesByTuple { public: int operator()(const PositionDNATuple &lhs, const PositionDNATuple &rhs) const; }; template int SearchSequenceForTuple(Sequence &seq, TupleMetrics &tm, DNATuple &queryTuple); template int SequenceToTupleList(Sequence &seq, TupleMetrics &tm, TupleList &tupleList); template int SequenceToTupleList(Sequence &seq, TupleMetrics &tm, TupleList &tupleList); #include "DNATupleImpl.hpp" #endif // _BLASR_DNA_TUPLE_HPP_ blasr_libcpp-master/alignment/tuples/DNATupleImpl.hpp000066400000000000000000000142661260756663100232710ustar00rootroot00000000000000#include #include "NucConversion.hpp" inline int DNATuple::FromStringLR(Nucleotide *strPtr, TupleMetrics &tm) { DNASequence tmpSeq; tmpSeq.seq = strPtr; tmpSeq.length = tm.tupleSize; if (!OnlyACTG(tmpSeq)) return 0; if (tm.tupleSize == 0) return 1; tuple = 0; Nucleotide *p; Nucleotide *endPtr = &strPtr[tm.tupleSize - 1]; for (p = strPtr; p != endPtr; p++) { // If it is not possible to convert this string, return null. if (ThreeBit[*p] > 3) { return 0; } tuple += TwoBit[*p]; tuple <<=2; } // // The tuple size is guaranteed to be at least // 1, so it's safe to add the last value. // This cannot be in the previous loop since // the shift shouldn't happen. tuple += TwoBit[*p]; return 1; } inline int DNATuple::ShiftAddRL(Nucleotide nuc, TupleMetrics &tm) { if (ThreeBit[nuc] > 3) { return 0; } else { tuple >>= 2; tuple += (TwoBit[nuc] << ((tm.tupleSize-1)*2)); return 1; } } template int SearchSequenceForTuple(Sequence &seq, TupleMetrics &tm, DNATuple &queryTuple) { DNALength p; PositionDNATuple tempTuple, upperTuple; p = 0; DNALength cur = 0; DNALength curValidEnd = 0; // // Construct the mask-off bit pair for the shifted tuple. // PositionDNATuple maskLeftTuple; maskLeftTuple.tuple = 3; maskLeftTuple.tuple = maskLeftTuple.tuple << 2*tm.tupleSize; maskLeftTuple.tuple = ~maskLeftTuple.tuple; PositionDNATuple testTuple; while (curValidEnd < seq.length) { // // Search for the next available window that can be translated into a tuple. // cur = curValidEnd; while(curValidEnd < seq.length and IsACTG[seq.seq[curValidEnd]]) { curValidEnd++; } if (curValidEnd - cur >= tm.tupleSize) { // // Found a span that does not have N's in it, // assert (tempTuple.FromStringRL(&(seq.seq[cur]), tm) == 1); p = cur; if (tempTuple.tuple == queryTuple.tuple) { return 1; } for (p++; p < curValidEnd - tm.tupleSize + 1; p++) { tempTuple.tuple >>=2; // tempTuple.tuple &= maskLeftTuple.tuple; upperTuple.tuple = TwoBit[seq.seq[p+tm.tupleSize-1]]; upperTuple.tuple = upperTuple.tuple << (2 * (tm.tupleSize-1)); tempTuple.tuple += upperTuple.tuple; if (tempTuple.tuple == queryTuple.tuple) { return 1; } } } else { ++curValidEnd; } } } template int SequenceToTupleList(Sequence &seq, TupleMetrics &tm, TupleList &tupleList) { DNALength p; PositionDNATuple tempTuple, upperTuple; p = 0; DNALength cur = 0; DNALength curValidEnd = 0; // // Construct the mask-off bit pair for the shifted tuple. // PositionDNATuple maskLeftTuple; maskLeftTuple.tuple = 3; maskLeftTuple.tuple = maskLeftTuple.tuple << 2*tm.tupleSize; maskLeftTuple.tuple = ~maskLeftTuple.tuple; PositionDNATuple testTuple; while (curValidEnd < seq.length) { // // Search for the next available window that can be translated into a tuple. // cur = curValidEnd; while(curValidEnd < seq.length and IsACTG[seq.seq[curValidEnd]]) { curValidEnd++; } if (curValidEnd - cur >= tm.tupleSize) { // // Found a span that does not have N's in it, // assert (tempTuple.FromStringRL(&(seq.seq[cur]), tm) == 1); p = cur; tupleList.Append(tempTuple); for (p++; p < curValidEnd - tm.tupleSize + 1; p++) { tempTuple.tuple >>=2; // tempTuple.tuple &= maskLeftTuple.tuple; upperTuple.tuple = TwoBit[seq.seq[p+tm.tupleSize-1]]; upperTuple.tuple = upperTuple.tuple << (2 * (tm.tupleSize-1)); tempTuple.tuple += upperTuple.tuple; //testTuple.FromStringRL(&seq.seq[p], tm); //assert(testTuple.tuple == tempTuple.tuple); tupleList.Append(tempTuple); } } else { ++curValidEnd; } } return tupleList.size(); } template int SequenceToTupleList(Sequence &seq, TupleMetrics &tm, TupleList &tupleList) { DNALength p; PositionDNATuple tempTuple, upperTuple; p = 0; DNALength cur = 0; DNALength curValidEnd = 0; // // Construct the mask-off bit pair for the shifted tuple. // PositionDNATuple maskLeftTuple; maskLeftTuple.tuple = 3; maskLeftTuple.tuple = maskLeftTuple.tuple << 2*tm.tupleSize; maskLeftTuple.tuple = ~maskLeftTuple.tuple; PositionDNATuple testTuple; while (curValidEnd < seq.length) { // // Search for the next available window that can be translated into a tuple. // cur = curValidEnd; while(curValidEnd < seq.length and IsACTG[seq.seq[curValidEnd]]) { curValidEnd++; } if (curValidEnd - cur >= tm.tupleSize) { // // Found a span that does not have N's in it, // assert (tempTuple.FromStringRL(&(seq.seq[cur]), tm) == 1); p = cur; tempTuple.pos = p; tupleList.Append(tempTuple); for (p++; p < curValidEnd - tm.tupleSize + 1; p++) { tempTuple.tuple >>=2; // tempTuple.tuple &= maskLeftTuple.tuple; upperTuple.tuple = TwoBit[seq.seq[p+tm.tupleSize-1]]; upperTuple.tuple = upperTuple.tuple << (2 * (tm.tupleSize-1)); tempTuple.tuple += upperTuple.tuple; tempTuple.pos = p; //testTuple.FromStringRL(&seq.seq[p], tm); //assert(testTuple.tuple == tempTuple.tuple); tupleList.Append(tempTuple); } } else { ++curValidEnd; } } return tupleList.size(); } blasr_libcpp-master/alignment/tuples/DNATupleList.h000066400000000000000000000026441260756663100227400ustar00rootroot00000000000000#ifndef TUPLES_DNA_TUPLE_LIST_H_ #define TUPLES_DNA_TUPLE_LIST_H_ #include #include "DNATuple.h" template DNALength StoreTuplePosList(Sequence seq, TupleMetrics &tm, vector &tupleList) { // // Do this faster later on with a suffix tree -- faster than n log n construction time. // DNALength s; PositionDNATuple tempTuple; for (s = 0; s < seq.length - tm.tupleSize + 1; s++) { if (tempTuple.FromStringLR(&(seq.seq[s]), tm)) { tempTuple.pos = s; tupleList.push_back(tempTuple); } } std::sort(tupleList.begin(), tupleList.end()); // // Be nice and leave the pos list in ascending sorted order, // even though the top of this function does not specify it. // return tupleList.size(); } void WriteTuplePosList(vector &tupleList, int tupleSize, ofstream &out) { DNALength tupleListLength = tupleList.size(); out.write((char*) &tupleSize, sizeof(tupleSize)); out.write((char*) &tupleListLength, sizeof(DNALength)); out.write((char*) &tupleList[0], sizeof(PositionDNATuple) * tupleList.size()); } void ReadTuplePosList(ifstream &in, vector &tupleList, int &tupleSize) { DNALength tupleListLength; in.read((char*) &tupleSize, sizeof(int)); in.read((char*) &tupleListLength, sizeof(DNALength)); tupleList.resize(tupleListLength); in.read((char*) &tupleList[0], sizeof(PositionDNATuple) * tupleListLength); } #endif blasr_libcpp-master/alignment/tuples/HashedTupleList.hpp000066400000000000000000000023531260756663100240670ustar00rootroot00000000000000#ifndef _BLASR_HASHED_TUPLE_LIST_HPP_ #define _BLASR_HASHED_TUPLE_LIST_HPP_ #include "tuples/TupleList.hpp" #include "tuples/TupleMetrics.hpp" #include "DNASequence.hpp" template class HashedTupleList { public: long mask; std::vector > hashTable; int hashLength; int hashTableLength; typedef T_Tuple Tuple; // // Provide a default constructor with a small // tuple size for testing. // HashedTupleList(); void Initialize(int _hashLength); HashedTupleList(int _hashLength); void clear(); void Clear(); void Sort(); void Append(T_Tuple tuple); void Insert(T_Tuple tuple); int Find(T_Tuple tuple); void Print(); // // Provide a version of find that stores easy access to // the original tuple. // int Find(T_Tuple tuple, int &hashValue, int &index); void FindAll(T_Tuple &tuple, typename std::vector::const_iterator &firstPos, typename std::vector::const_iterator &endPos); int GetHashLength(); }; template void SequenceToHash(DNASequence &seq, HashedTupleList &hash, TupleMetrics &tm); #include "tuples/HashedTupleList.hpp" #endif blasr_libcpp-master/alignment/tuples/HashedTupleListImpl.hpp000066400000000000000000000062241260756663100247120ustar00rootroot00000000000000#ifndef _BLASR_HASHED_TUPLE_LIST_IMPL_HPP_ #define _BLASR_HASHED_TUPLE_LIST_IMPL_HPP_ template HashedTupleList:: HashedTupleList() { Initialize(5); } template HashedTupleList:: HashedTupleList(int _hashLength) { Initialize(_hashLength); cout << hashTable.size() << endl; } template void HashedTupleList:: Initialize(int _hashLength) { mask = 0; int i; hashLength = _hashLength; hashTable.resize(1L << (hashLength*2)); hashTableLength = hashTable.size(); for (i = 0; i < hashLength; i++ ){ mask = mask << 2L; mask = mask + 3L; } } template void HashedTupleList:: clear() { // Synonym. Clear(); } template void HashedTupleList:: Clear() { int i; for (i = 0; i < hashTableLength; i++ ){ hashTable[i].tupleList.clear(); } } template void HashedTupleList:: Sort() { int i; for (i = 0; i < hashTableLength; i++ ){ sort(hashTable[i].tupleList.begin(), hashTable[i].tupleList.end()); } } template void HashedTupleList:: Append(T_Tuple tuple) { int hashValue = tuple.tuple & mask; std::cout << "htl adding " << tuple.tuple << std::endl; hashTable[hashValue].tupleList.push_back(tuple); } template void HashedTupleList:: Insert(T_Tuple tuple) { std::cout << "htl adding " << tuple.tuple << std::endl; int hashValue = tuple.tuple & mask; hashTable[hashValue].Insert(tuple); } template int HashedTupleList:: Find(T_Tuple tuple) { int hashValue, index; return Find(tuple, hashValue, index); } template void HashedTupleList:: Print() { int i; for (i = 0; i < hashTableLength; i++ ){ hashTable[i].Print(); } } // // Provide a version of find that stores easy access to // the original tuple. // template int HashedTupleList:: Find(T_Tuple tuple, int &hashValue, int &index) { hashValue = tuple.tuple & mask; if (hashTable[hashValue].size()) { return ((index = hashTable[hashValue].Find(tuple)) != -1); } else { return 0; } } template void HashedTupleList:: FindAll(T_Tuple &tuple, typename vector::const_iterator &firstPos, typename vector::const_iterator &endPos ) { int hashValue; hashValue = tuple.tuple & mask; hashTable[hashValue].FindAll(tuple, firstPos, endPos); } template int HashedTupleList:: GetHashLength() { return hashLength; } template void SequenceToHash(DNASequence &seq, HashedTupleList &hash, TupleMetrics &tm) { int i; T_Tuple tuple; int res = 0; for (i = 0; i < seq.length - hash.hashLength + 1; i++ ) { if ((res and (res = tuple.ShiftAddRL(seq.seq[i+tm.tupleSize-1], tm))) or (!res and (res = tuple.FromStringRL(&seq.seq[i], tm)))) { hash.Insert(tuple); } } } #endif blasr_libcpp-master/alignment/tuples/TupleCountTable.hpp000066400000000000000000000012531260756663100240750ustar00rootroot00000000000000#ifndef _BLASR_TUPLE_COUNT_TABLE_HPP_ #define _BLASR_TUPLE_COUNT_TABLE_HPP_ #include #include #include #include #include "tuples/TupleMetrics.hpp" using namespace std; template class TupleCountTable { public: int *countTable; int countTableLength; int nTuples; TupleMetrics tm; bool deleteStructures; void InitCountTable(TupleMetrics &ptm); TupleCountTable(); ~TupleCountTable(); void Free(); void IncrementCount(TTuple &tuple); void AddSequenceTupleCountsLR(TSequence &seq); void Write(ofstream &out); void Read(ifstream &in); }; #include "tuples/TupleCountTableImpl.hpp" #endif blasr_libcpp-master/alignment/tuples/TupleCountTableImpl.hpp000066400000000000000000000055051260756663100247230ustar00rootroot00000000000000#ifndef _BLASR_TUPLE_COUNT_TABLE_IMPL_HPP_ #define _BLASR_TUPLE_COUNT_TABLE_IMPL_HPP_ #include "utils.hpp" using namespace std; template void TupleCountTable::InitCountTable(TupleMetrics &ptm) { Free(); tm = ptm; tm.InitializeMask(); assert(tm.tupleSize > 0); // create the mask just in case the ptm is not initialized // properly. countTableLength = 4; countTableLength = countTableLength << ((tm.tupleSize - 1)*2); assert(countTableLength > 0); countTable = ProtectedNew(countTableLength); deleteStructures = true; fill(&countTable[0], &countTable[countTableLength], 0); nTuples = 0; } template TupleCountTable::TupleCountTable() { countTable = NULL; countTableLength = 0; nTuples = 0; deleteStructures = false; } template TupleCountTable::~TupleCountTable() { Free(); } template void TupleCountTable::Free() { if (deleteStructures == false) { // // Do not delete this if it is referencing another structure // return; } if (countTable != NULL) { delete [] countTable; countTable = NULL; } countTableLength = nTuples = 0; } template void TupleCountTable::IncrementCount( TTuple &tuple) { long tupleIndex = tuple.ToLongIndex(); assert(tupleIndex < countTableLength); countTable[tupleIndex]++; ++nTuples; } template void TupleCountTable::AddSequenceTupleCountsLR( TSequence &seq) { VectorIndex i; TTuple tuple; if (seq.length>= tm.tupleSize) { for (i = 0; i < seq.length - tm.tupleSize + 1; i++ ) { if (tuple.FromStringLR(&seq.seq[i], tm)) { IncrementCount(tuple); } } } } template void TupleCountTable::Write(ofstream &out) { out.write((char*) &countTableLength, sizeof(int)); out.write((char*) &nTuples, sizeof(int)); out.write((char*) &tm.tupleSize, sizeof(int)); out.write((char*) countTable, sizeof(int) * countTableLength); } template void TupleCountTable::Read(ifstream &in) { Free(); // Clear before reusing this object. in.read((char*) &countTableLength, sizeof(int)); in.read((char*) &nTuples, sizeof(int)); in.read((char*) &tm.tupleSize, sizeof(int)); tm.InitializeMask(); countTable = ProtectedNew(countTableLength); deleteStructures = true; in.read((char*) countTable, sizeof(int) * countTableLength); } #endif blasr_libcpp-master/alignment/tuples/TupleList.hpp000066400000000000000000000022251260756663100227500ustar00rootroot00000000000000#ifndef _BLASR_TUPLE_LIST_HPP_ #define _BLASR_TUPLE_LIST_HPP_ #include #include #include #include #include #include #include "Types.h" #include "tuples/TupleMetrics.hpp" template class TupleList { int listLength; TupleMetrics tm; public: typedef T Tuple; std::vector tupleList; TupleList(); void Reset(); T &operator[](int index); void GetTupleMetrics(TupleMetrics &ptm); void SetTupleMetrics(TupleMetrics &ptm); int size(); int GetLength(); int InitFromFile(std::string &fileName); void clear(); int WriteToFile(std::string &fileName); // // Find one instance of a match. // int Find(T& tuple); // // Find the boundaries of all instances of a match. // void FindAll(T &tuple, typename std::vector::const_iterator &firstPos, typename std::vector::const_iterator &endPos ); void Append( T&tuple); void Insert(T&tuple); void Sort(); void Print(); }; #include "TupleListImpl.hpp" #endif // _BLASR_TUPLE_LIST_HPP_ blasr_libcpp-master/alignment/tuples/TupleListImpl.hpp000066400000000000000000000062331260756663100235750ustar00rootroot00000000000000 template TupleList::TupleList() { listLength = 0; } template void TupleList::Reset() { std::vector().swap(tupleList); } template T& TupleList::operator[](int index) { return tupleList[index]; } template void TupleList::GetTupleMetrics(TupleMetrics &ptm) { ptm = tm; } template void TupleList::SetTupleMetrics(TupleMetrics &ptm) { tm = ptm; } template int TupleList::size() { return tupleList.size(); } template int TupleList::GetLength() { return tupleList.size(); } template int TupleList::InitFromFile(std::string &fileName) { std::ifstream listIn; listIn.open(fileName.c_str(), std::ios_base::binary); if (!listIn) return 0; listIn.read((char*) &listLength, sizeof(int)); listIn.read((char*) &tm.tupleSize, sizeof(int)); tm.InitializeMask(); tupleList.resize(listLength); listIn.read((char*) &tupleList[0], sizeof(T) * listLength); return 1; } template void TupleList::clear() { tupleList.clear(); listLength = 0; } template int TupleList::WriteToFile(std::string &fileName) { std::ofstream listOut; listOut.open(fileName.c_str(), std::ios_base::binary); if (!listOut) return 0; listLength = tupleList.size(); std::cout << "writing tuple lis of length " << listLength << std::endl; listOut.write((char*) &listLength, sizeof(int)); listOut.write((char*) &tm.tupleSize, sizeof(int)); listOut.write((char*) &tupleList[0], sizeof(T)*listLength); return 1; } // // Find one instance of a match. // template int TupleList::Find( T& tuple) { typename std::vector::const_iterator begin, end, matchIt; begin = tupleList.begin(); end = tupleList.end(); matchIt = lower_bound(begin, end, tuple); if (*matchIt != tuple) { return -1; } else { return matchIt - tupleList.begin(); } } // // Find the boundaries of all instances of a match. // template void TupleList::FindAll(T &tuple, typename std::vector::const_iterator &firstPos, typename std::vector::const_iterator &endPos ) { firstPos = lower_bound(tupleList.begin(), tupleList.end(), tuple); typename std::vector::const_iterator firstPos2; endPos = tupleList.end(); endPos = upper_bound(firstPos, endPos, tuple); while (endPos != tupleList.end()) { if (*endPos != tuple) { return; } else { endPos++; } } } template void TupleList::Append( T&tuple) { tupleList.push_back(tuple); } template void TupleList::Insert(T&tuple) { // insert and maintain order. typename std::vector::iterator pos; pos = std::lower_bound(tupleList.begin(), tupleList.end(), tuple); tupleList.insert(pos, tuple); } template void TupleList::Sort() { sort(tupleList.begin(), tupleList.end()); } template void TupleList::Print() { int i; for (i = 0; i< tupleList.size(); i++) { std::cout << tupleList[i].tuple << std::endl; } } blasr_libcpp-master/alignment/tuples/TupleMask.h000066400000000000000000000010611260756663100223650ustar00rootroot00000000000000#ifndef TUPLES_TUPLE_MASK #define TUPLES_TUPLE_MASK // // Each f is conveniently 2 bases. // // static unsigned long TupleMask[] = {0, 0xf, 0xff, 0xfff, 0xffff, 0xfffff, 0xffffff, // 0 - 6 0xfffffff, 0xfffffff, 0xffffffff, 0xfffffffff, // 7 - 9 0xffffffffff, 0xfffffffffff, 0xffffffffffff, // 10-12 0xfffffffffffff, 0xffffffffffffff, 0xfffffffffffffff, // 13-15 0xffffffffffffffff}; // 16 #endif blasr_libcpp-master/alignment/tuples/TupleMatching.hpp000066400000000000000000000014471260756663100235740ustar00rootroot00000000000000#ifndef _BLASR_TUPLE_MATCHING_HPP_ #define _BLASR_TUPLE_MATCHING_HPP_ #include "tuples/TupleMetrics.hpp" #include "tuples/TupleList.hpp" #include "tuples/BaseTuple.hpp" #include "tuples/DNATuple.hpp" #include "tuples/TupleMatching.hpp" template int SequenceToTupleList( Sequence &seq, TupleMetrics &tm, T_TupleList &tupleList); template int StoreMatchingPositions( TSequence &querySeq, TupleMetrics &tm, T_TupleList &targetTupleList, std::vector &matchSet); template int StoreUniqueTuplePosList(Sequence seq, TupleMetrics &tm, std::vector &uniqueTuplePosList); #include "TupleMatchingImpl.hpp" #endif // _BLASR_TUPLE_MATCHING_HPP_ blasr_libcpp-master/alignment/tuples/TupleMatchingImpl.hpp000066400000000000000000000064271260756663100244210ustar00rootroot00000000000000#include #include #include #include #include #include "Types.h" #include "NucConversion.hpp" #include "DNASequence.hpp" #include "SeqUtils.hpp" using namespace std; template int SequenceToTupleList(Sequence &seq, TupleMetrics &tm, T_TupleList &tupleList) { int s; typename T_TupleList::Tuple tempTuple; if (seq.size() < tm.tupleSize) { return 1; } // Otherwise, there is at least one tuple tupleList.Append(tempTuple); int res = 0; for (s = 0; s < seq.length - tm.tupleSize + 1; s++ ) { if ((res and (res = tempTuple.ShiftAddRL(seq.seq[s+tm.tupleSize-1], tm))) or (!res and (res = tempTuple.FromStringRL(&seq.seq[s], tm)))) { tempTuple.ShiftAddRL(seq.seq[s + tm.tupleSize - 1], tm); tempTuple.pos = s; tupleList.Append(tempTuple); } } return 1; } template int StoreMatchingPositions(TSequence &querySeq, TupleMetrics &tm, T_TupleList &targetTupleList, vector &matchSet) { DNALength s; // TQueryTuple queryTuple; typename T_TupleList::Tuple queryTuple; queryTuple.pos = 0; if (querySeq.length >= tm.tupleSize) { int res = 0; for (s = 0; s < querySeq.length - tm.tupleSize + 1; s++) { if ((res and (res = queryTuple.ShiftAddRL(querySeq.seq[s+tm.tupleSize-1], tm))) or (!res and (res = queryTuple.FromStringRL(&querySeq.seq[s], tm)))) { int targetListIndex = 0; typename vector::const_iterator curIt, endIt; targetTupleList.FindAll(queryTuple, curIt, endIt); for(; curIt != endIt; curIt++) { matchSet.push_back(TMatch(s, (*curIt).pos)); ++targetListIndex; } } } } return matchSet.size(); } template int StoreUniqueTuplePosList(Sequence seq, TupleMetrics &tm, vector &uniqueTuplePosList) { // // Do this faster later on with a suffix tree -- faster than n log n construction time. // int s; vector > tuples; Tuple tempTuple; for (s = 0; s < seq.length - tm.tupleSize + 1; s++) { tempTuple.FromStringRL(&(seq.seq[s]), tm); tuples.push_back(make_pair(tempTuple, s)); } std::sort(tuples.begin(), tuples.end()); int curUnique = 0, curPos = 0; // // Filter out the repetitive tuples. // while ( curPos < tuples.size() ) { int nextPos = curPos; while (nextPos < tuples.size() and tuples[nextPos] == tuples[curPos]) nextPos++; if (nextPos - curPos == 1) { tuples[curUnique].first == tuples[curPos].first; uniqueTuplePosList.push_back(tuples[curUnique].second); ++curUnique; ++curPos; } else { curPos = nextPos; } } // // Be nice and leave the pos list in ascending sorted order, // even though the top of this function does not specify it. // std::sort(uniqueTuplePosList.begin(), uniqueTuplePosList.end()); return uniqueTuplePosList.size(); } blasr_libcpp-master/alignment/tuples/TupleMetrics.cpp000066400000000000000000000004741260756663100234420ustar00rootroot00000000000000#include #include "TupleMask.h" #include "TupleMetrics.hpp" TupleMetrics::TupleMetrics() { tupleSize = tupleMask = 0; } void TupleMetrics::InitializeMask() { tupleMask = TupleMask[tupleSize]; } void TupleMetrics::Initialize(int pTupleSize) { tupleSize = pTupleSize; InitializeMask(); } blasr_libcpp-master/alignment/tuples/TupleMetrics.hpp000066400000000000000000000004461260756663100234460ustar00rootroot00000000000000#ifndef _BLASR_TUPLE_METRICS_HPP_ #define _BLASR_TUPLE_METRICS_HPP_ #include "Types.h" class TupleMetrics { public: unsigned int tupleSize; ULong tupleMask; TupleMetrics(); void InitializeMask(); void Initialize(int pTupleSize); }; #endif //_BLASR_TUPLE_METRICS_HPP_ blasr_libcpp-master/alignment/tuples/TupleOperations.h000066400000000000000000000001031260756663100236110ustar00rootroot00000000000000#ifndef TUPLE_OPERATIONS_H_ #define TUPLE_OPERATIONS_H_ #endif blasr_libcpp-master/alignment/tuples/TupleTranslations.h000066400000000000000000000000721260756663100241540ustar00rootroot00000000000000#ifndef TUPLE_OPERATIONS_H_ #define TUPLE_OPERATIONS_H_ blasr_libcpp-master/alignment/tuples/tuple.h000066400000000000000000000034761260756663100216250ustar00rootroot00000000000000#ifndef TUPLE_H_ #define TUPLE_H_ #include #include #include "Types.h" #include "tuples/TupleMetrics.hpp" template BuildTupleList(Sequence seq, vector &tupleList) { BuildTupleList(seq, 0, seq.length, tupleList); } template BuildTupleList(Sequence seq, int seqStart, int length, vector &tupleList) { } template BuildCountedTupleList(Sequence seq, int seqStart, int length, TupleMetrics &tm, vector &tupleList) { int s; CountedTuple tuple; for (s = 0; s < seq.length - tm.tupleSize + 1; s++) { } } template StoreUniqueTuplePosList(Sequence seq, TupleMetrics &tm, vector &uniqueTuplePosList) { // // Do this faster later on with a suffix tree -- faster than n log n construction time. // int s; vector > tuples; Tuple tempTuple; for (s = 0; s < seq.length; s++) { tempTuple.FromStringLR(&(seq.seq[s]), tm); tuples.push_back(make_pair(tempTuple, s)); } std::sort(tuples.begin(), tuples.end()); int curUnique = 0, curPos = 0; // // Filter out the repetitive tuples. // while ( curPos < tuples.size() ) { int nextPos = curPos; while (nextPos < tuples.size() and tuples[nextPos] == tuples[curPos]) nextPos++; if (nextPos - curPos == 1) { tuples[curUnique].first == tuples[curPos].first; uniqueTuplePosList.push_back(tuples[curUnique].second); ++curUnique; ++curPos; } else { curPos = nextPos; } } // // Be nice and leave the pos list in ascending sorted order, // even though the top of this function does not specify it. // std::sort(uniqueTuplePosList.begin(), uniqueTuplePosList.end()); } #endif blasr_libcpp-master/alignment/utils/000077500000000000000000000000001260756663100201355ustar00rootroot00000000000000blasr_libcpp-master/alignment/utils/FileOfFileNames.cpp000066400000000000000000000060711260756663100235750ustar00rootroot00000000000000#include "utils/FileOfFileNames.hpp" #include "HDFNewBasReader.hpp" #include void FileOfFileNames::StoreFileOrFileList(std::string fileName, std::vector &fofnList) { std::vector tmpList; if (IsFOFN(fileName)) { FOFNToList(fileName, tmpList); } else { tmpList.push_back(fileName); } for (int i = 0; i < int(tmpList.size()); i++) { if (FileOfFileNames::IsFOFN(tmpList[i])) { std::cout << "ERROR. Nested File of File Names are not allowed. " << std::endl; exit(1); } else if (FileOfFileNames::IsBasH5(tmpList[i])) { std::vector baxFNs = FileOfFileNames::Bas2Bax(tmpList[i]); fofnList.insert(fofnList.end(), baxFNs.begin(), baxFNs.end()); } else { fofnList.push_back(tmpList[i]); } } } void FileOfFileNames::FOFNToList(std::string &fofnFileName, std::vector &fofnList) { std::ifstream fofnIn; CrucialOpen(fofnFileName, fofnIn); while(fofnIn) { std::string name; getline(fofnIn, name); if (name.size() > 0) { fofnList.push_back(name); } } } bool FileOfFileNames::IsFOFN(std::string &fileName) { std::string::size_type dotPos = fileName.rfind("."); if (dotPos != std::string::npos) { std::string extension; extension.assign(fileName, dotPos+1, fileName.size() - (dotPos+1)); if (extension == "fofn") { return true; } } return false; } bool FileOfFileNames::IsBasH5(std::string & fileName) { // Return true if file ends with bas.h5 if (fileName.size() > 6) { if (fileName.rfind("bas.h5") == fileName.size() - 6) { return true; } } return false; } std::vector FileOfFileNames::Bas2Bax(std::string & basFN) { // There are two types of bas.h5 files. // Before SMRT 2.0, bas.h5 files contain all the /PulseData data, // in this case, return the bas.h5. // After SMRT 2.0, bas.h5 files have been changed to only contain // paths to bax.h5 files (in the /MultiPart/Parts group), while // all base calls and QVs are in bax.h5 files. In this case, // return path to the bax.h5 files. Assumption is that bax.h5 // files are in the same directory as bas.h5 file. vector baxFNs; HDFNewBasReader reader; if (reader.Initialize(basFN) != 0) { baxFNs = reader.GetBaxFileNames(); } else { baxFNs.push_back(basFN); } reader.Close(); return baxFNs; } int FileOfFileNames::ExpandFileNameList(std::vector &fileNames) { int rfn; std::vector expandedFileNames; for (rfn = 0; rfn < fileNames.size(); rfn++) { std::vector tmpList; FileOfFileNames::StoreFileOrFileList(fileNames[rfn], tmpList); expandedFileNames.insert(expandedFileNames.end(), tmpList.begin(), tmpList.end()); } fileNames = expandedFileNames; return fileNames.size(); } blasr_libcpp-master/alignment/utils/FileOfFileNames.hpp000066400000000000000000000012331260756663100235750ustar00rootroot00000000000000#ifndef _BLASR_FILE_OF_FILE_NAMES_HPP_ #define _BLASR_FILE_OF_FILE_NAMES_HPP_ #include #include #include #include #include "utils.hpp" class FileOfFileNames { public: static void StoreFileOrFileList(std::string fileName, std::vector &fofnList); static void FOFNToList(std::string &fofnFileName, std::vector &fofnList); static bool IsFOFN(std::string &fileName); static bool IsBasH5(std::string &fileName); static std::vector Bas2Bax(std::string &basFN); static int ExpandFileNameList(std::vector &fileNames); }; #endif blasr_libcpp-master/alignment/utils/FileUtils.cpp000066400000000000000000000030221260756663100225360ustar00rootroot00000000000000#include "utils/FileUtils.hpp" using namespace std; bool FileExists(string &fileName) { FILE *fp = fopen(fileName.c_str(),"r"); if( fp ) { // exists fclose(fp); return true; } else { return false; } } void CriticalOpenRead(string &fileName, ifstream &file, std::ios::openmode mode) { file.open(fileName.c_str(), mode | std::ios::in); if (!file.good()) { cerr << "Could not open file:" << fileName << endl; exit(1); } } int OpenRead(string &fileName, ifstream &file, std::ios::openmode mode) { file.open(fileName.c_str(), mode | std::ios::in); return file.good(); } void CriticalOpenWrite(string &fileName, ofstream &file, std::ios::openmode mode) { file.open(fileName.c_str(), mode | std::ios::out); if (!file.good()) { cerr << "Could not open file: " << fileName << endl; exit(1); } } int OpenWrite(string &fileName, ofstream &file, std::ios::openmode mode) { file.open(fileName.c_str(), mode | std::ios::out); return file.good(); } int CountLinesInFile(string fileName) { char* filePtr; long fileSize; int fileDes; fileDes = open(fileName.c_str(), O_RDONLY); fileSize = lseek(fileDes, 0, SEEK_END); lseek(fileDes, 0, SEEK_SET); filePtr = (char*) mmap(0, fileSize, PROT_READ, MAP_PRIVATE, fileDes, 0); long pos; int numLines = 0; for (pos = 0; pos < fileSize; pos++, filePtr++) { if (*filePtr == '\n') { numLines++; } } return numLines; } blasr_libcpp-master/alignment/utils/FileUtils.hpp000066400000000000000000000013311260756663100225440ustar00rootroot00000000000000#ifndef _BLASR_FILE_UTILS_HPP_ #define _BLASR_FILE_UTILS_HPP_ #include #include #include #include "sys/fcntl.h" #include "sys/mman.h" #include // for lseek #include // for lseek #include using namespace std; bool FileExists(string &fileName); void CriticalOpenRead(string &fileName, ifstream &file, std::ios::openmode mode=std::ios::in); int OpenRead(string &fileName, ifstream &file, std::ios::openmode mode=std::ios::in); void CriticalOpenWrite(string &fileName, ofstream &file, std::ios::openmode mode=std::ios::out); int OpenWrite(string &fileName, ofstream &file, std::ios::openmode mode=std::ios::out); int CountLinesInFile(string fileName); #endif blasr_libcpp-master/alignment/utils/LogUtils.cpp000066400000000000000000000031251260756663100224040ustar00rootroot00000000000000#include "LogUtils.hpp" double LogSumOfTwo(double value1, double value2) { // // value1 and value2 are in log space already. // double minValue, maxValue; minValue = value1, maxValue = value2; if (maxValue < minValue) { minValue = value2; maxValue = value1; } // convert to log10 minValue *= LOG10; maxValue *= LOG10; double difference = minValue - maxValue; if (difference < LOG_EPSILON) { return maxValue / LOG10; } else if (difference < LOG_EPSILON2) { return (maxValue + exp(difference))/LOG10; } else { float expv = exp(difference); float log1pv = log1p(expv); return (maxValue + log1pv)/LOG10; } } double LogSumOfThree(double value1, double value2, double value3) { double minValue, maxValue, middleValue; if (value1 > value2 and value2 > value3) { maxValue = value1; middleValue = value2; minValue = value3; } else if (value1 > value3 and value3 > value2) { maxValue = value1; middleValue = value3; minValue = value2; } else if (value2 > value1 and value1 > value3) { maxValue = value2; middleValue = value1; minValue = value3; } else if (value2 > value3 and value3 > value1) { maxValue = value2; middleValue = value3; minValue = value1; } else if (value3 > value1 and value1 > value2) { maxValue = value3; middleValue = value1; minValue = value2; } else { maxValue = value3; middleValue = value2; minValue = value1; } return LogSumOfTwo(maxValue, LogSumOfTwo(middleValue, minValue)); } blasr_libcpp-master/alignment/utils/LogUtils.hpp000066400000000000000000000005641260756663100224150ustar00rootroot00000000000000#ifndef _BLASR_UTILS_SUM_OF_LOG_HPP_ #define _BLASR_UTILS_SUM_OF_LOG_HPP_ #include #define LOG_EPSILON -30 #define LOG_EPSILON2 -8 #define LOG_EPSILON4 (logEpsilon/4.0) #define LOG10 2.3025850929 double LogSumOfTwo(double value1, double value2); double LogSumOfThree(double value1, double value2, double value3); #endif // _BLASR_UTILS_SUM_OF_LOG_HPP_ blasr_libcpp-master/alignment/utils/PhredUtils.cpp000066400000000000000000000003651260756663100227300ustar00rootroot00000000000000#include #include "PhredUtils.hpp" double InversePhred(double phred) { float num = 1; float denom = (1+pow(10,phred/10)); return num/denom; } double Phred(double pvalue) { double v = log10(pvalue); return -10*v; } blasr_libcpp-master/alignment/utils/PhredUtils.hpp000066400000000000000000000002711260756663100227310ustar00rootroot00000000000000#ifndef _BLASR_UTILS_PHRED_UTILS_HPP_ #define _BLASR_UTILS_PHRED_UTILS_HPP_ double InversePhred(double phred); double Phred(double pvalue); #endif // _BLASR_UTILS_PHRED_UTILS_HPP_ blasr_libcpp-master/alignment/utils/RangeUtils.cpp000066400000000000000000000054501260756663100227220ustar00rootroot00000000000000 #include #include "RangeUtils.hpp" using namespace std; Range::Range(UInt pStart) { start = end = pStart; } Range::Range(UInt pStart, UInt pEnd) { start = pStart; end = pEnd; if (start > end) { cout << "ERROR: start of a range should be less than the end." << endl; exit(1); } } bool Range::contains(const UInt & query) { return (start <= query && query <= end); } bool Range::operator < (const Range & pRange) const { if (start == pRange.start) { return (end > pRange.end); } return (start < pRange.start); } // // Input is a comma-delimited string of ranges. // e.g. 1,2,3,10-20 bool ParseRanges(string & rangesStr, vector & ranges) { ranges.clear(); bool parseSucceed = true; vector strList; ParseSeparatedList(rangesStr, strList, ','); for(int i=0; i start_end; ParseSeparatedList(str, start_end, '-'); if (start_end.size() != 2) { parseSucceed = false; break; } ranges.push_back(Range(atoi(start_end[0].c_str()), atoi(start_end[1].c_str()))); } } if (parseSucceed) { sort(ranges.begin(), ranges.end()); } else { ranges.clear(); } return parseSucceed; } Ranges::Ranges(string rangesStr) { if (!ParseRanges(rangesStr, ranges)) throw std::invalid_argument("bad range"); } bool Ranges::setRanges(string rangesStr) { return ParseRanges(rangesStr, ranges); } int Ranges::size() { return ranges.size(); } UInt Ranges::max() { if (size() == 0) { cout << "ERROR, could not determine the maximum value " << "of an empty Ranges object." << endl; exit(1); } return ranges.back().end; } bool Ranges::contains(const UInt & query) { if (ranges.size() == 0) return false; vector searchRanges; searchRanges.push_back(Range(0, ranges.size()-1)); while (searchRanges.size() > 0) { Range searchRange = searchRanges.back(); searchRanges.pop_back(); UInt mid = (searchRange.start + searchRange.end) / 2; if (ranges[mid].contains(query)) { return true; } if (mid > 0 && searchRange.start <= mid - 1) { searchRanges.push_back(Range(searchRange.start, mid - 1)); } if (ranges[mid].start <= query and searchRange.end >= mid + 1) { searchRanges.push_back(Range(mid + 1, searchRange.end)); } } return false; } blasr_libcpp-master/alignment/utils/RangeUtils.hpp000066400000000000000000000024401260756663100227230ustar00rootroot00000000000000/* * ============================================================================ * * Filename: RangeUtils.h * * Description: Parse a list of ranges separated by commas. * Designed for specifying a set of holeNumbers to analyze. * * Version: 1.0 * Created: 05/02/2013 12:51:27 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include #include #include "StringUtils.hpp" #include "Types.h" class Range { public: UInt start; // Start position of a range, inclusive UInt end; // End position of a range, inclusive Range(UInt pStart); Range(UInt pStart, UInt pEnd); bool contains(const UInt & query); bool operator < (const Range & pRange) const; }; // Input is a comma-delimited string of ranges. // e.g. 1,2,3,10-20 bool ParseRanges(string & rangesStr, vector & ranges); class Ranges { public: std::vector ranges; Ranges(std::string rangesStr=""); bool setRanges(std::string rangesStr); int size(); UInt max(); bool contains(const UInt & query); }; blasr_libcpp-master/alignment/utils/RegionUtils.cpp000066400000000000000000000176471260756663100231240ustar00rootroot00000000000000#include "utils/RegionUtils.hpp" // General functions. bool LookupHQRegion(int holeNumber, RegionTable ®ionTable, int &start, int &end, int &score) { if (regionTable.HasHoleNumber(holeNumber)) { RegionAnnotations zmwRegions = regionTable[holeNumber]; if (zmwRegions.HasHQRegion()) { start = zmwRegions.HQStart(); end = zmwRegions.HQEnd(); score = zmwRegions.HQScore(); return true; } } start = end = score = 0; return false; } // Given a vecotr of ReadInterval objects and their corresponding // directions, intersect each object with an interval // [hqStart, hqEnd), if there is no intersection or the intersected // interval is less than minIntervalLength, remove this object and // their corresponding directions; otherwise, replace this object // with the intersected interval and keep their directions. // Return index of the (left-most) longest subread interval in the // updated vector. int GetHighQualitySubreadsIntervals( std::vector & subreadIntervals, std::vector & subreadDirections, int hqStart, int hqEnd, int minIntervalLength) { // Avoid using vector.erase() when possible, as it is slow. int ret = -1; int maxLength = 0; assert(subreadIntervals.size() == subreadDirections.size()); std::vector subreadIntervals2; std::vector subreadDirections2; for(int i = 0; i < int(subreadIntervals.size()); i++) { int & thisStart = subreadIntervals[i].start; int & thisEnd = subreadIntervals[i].end; int & thisScore = subreadIntervals[i].score; if (thisStart >= hqEnd or thisEnd <= hqStart) { continue; } if (thisStart < hqStart and thisEnd > hqStart) { thisStart = hqStart; } if (thisStart < hqEnd and thisEnd > hqEnd ) { thisEnd = hqEnd; } if (thisEnd - thisStart >= minIntervalLength) { if (maxLength < thisEnd - thisStart) { ret = subreadIntervals2.size(); maxLength = thisEnd - thisStart; } subreadIntervals2.push_back(subreadIntervals[i]); subreadDirections2.push_back(subreadDirections[i]); } } subreadIntervals = subreadIntervals2; subreadDirections = subreadDirections2; return ret; } // Given a vector of subreads and a vector of adapters, return // indices of all fullpass subreads in the input subreads vector. std::vector GetFullPassSubreadIndices(std::vector & subreadIntervals, std::vector & adapterIntervals) { std::vector indices; // Indices of fullpass subread. for(int i = 0; i < subreadIntervals.size(); i++) { ReadInterval & subread = subreadIntervals[i]; bool ladapter = false, radapter = false; for(int j = 0; j < adapterIntervals.size(); j++) { ReadInterval & adapter = adapterIntervals[j]; if (abs(subread.start - adapter.end) < 10) { ladapter = true; } else if(abs(subread.end - adapter.start) < 10) { radapter = true; } if (ladapter && radapter) { indices.push_back(i); break; } } } return indices; } bool cmp_index_len_pair(std::pair x, std::pair y) { if (x.second == y.second) { return x.first < y.first; } else return x.second < y.second; } // Given a vector of subreads and a vector of adapters, return // index of the (left-most) longest subread which has both // adapters before & after itself. If no full-pass subread available, // return -1; int GetLongestFullSubreadIndex(std::vector & subreadIntervals, std::vector & adapterIntervals) { std::vector indices = GetFullPassSubreadIndices(subreadIntervals, adapterIntervals); if (indices.size() == 0) return -1; std::vector> indices_lens; for (int i = 0; i < indices.size(); i++) { ReadInterval & subread = subreadIntervals[indices[i]]; indices_lens.push_back(std::make_pair(indices[i], subread.end - subread.start)); } std::sort(indices_lens.begin(), indices_lens.end(), cmp_index_len_pair); return indices_lens[int(indices_lens.size()-1)].first; } // Given a vector of subreads and a vector of adapters, return // index of the typical fullpass subread which can represent subreads // of this zmw. // * if there is no fullpass subread, return -1; // * if number of fullpass subreads is less than 4, return index of the // left-most longest subread // * if number of fullpass subreads is greater than or equal 4, // * if length of the longest read does not exceed // meanLength + 1.96 * deviationLength // then, return index of the longest left-most subread // * otherwise, return index of the second longest left-most subread int GetTypicalFullSubreadIndex(std::vector & subreadIntervals, std::vector & adapterIntervals) { std::vector indices = GetFullPassSubreadIndices(subreadIntervals, adapterIntervals); if (indices.size() == 0) return -1; // no full-pass subread in this zmw std::vector> indices_lens; std::vector lengths; for (int i = 0; i < indices.size(); i++) { ReadInterval & subread = subreadIntervals[indices[i]]; indices_lens.push_back(std::make_pair(indices[i], subread.end - subread.start)); lengths.push_back(subread.end - subread.start); } std::sort(indices_lens.begin(), indices_lens.end(), cmp_index_len_pair); int longestIndex = indices_lens[int(indices_lens.size()-1)].first; int secondLongestIndex = (indices_lens.size() <= 1)?(-1): (indices_lens[int(indices_lens.size()-2)].first); if (indices.size() < 4) { // very few fullpass subreads, use the longest subread anyway. return longestIndex; } else { // if length of the longest falls out of 95% CI of all other // fullpass subreads, use the second longest. sort(lengths.begin(), lengths.end()); float meanLength, varLength; MeanVar(lengths, meanLength, varLength); if (lengths[int(lengths.size()-1)] > meanLength + 1.96 * sqrt(varLength)) { return secondLongestIndex; } else { return longestIndex; } } } // Given a vector of subreads and a vector of adapters, return // index of the median length subread which has both // adapters before & after itself. If no full-pass subreads are // available, return -1. int GetMedianLengthFullSubreadIndex( std::vector & subreadIntervals, std::vector & adapterIntervals) { std::vector indices = GetFullPassSubreadIndices(subreadIntervals, adapterIntervals); if (indices.size() == 0) return -1; std::vector> indices_lens; for (int i = 0; i < indices.size(); i++) { ReadInterval & subread = subreadIntervals[indices[i]]; indices_lens.push_back(std::make_pair(indices[i], subread.end - subread.start)); } std::sort(indices_lens.begin(), indices_lens.end(), cmp_index_len_pair); return indices_lens[int(indices_lens.size()/2)].first; } // Create a vector of n directions consisting of interleaved 0 and 1s. void CreateDirections(std::vector & directions, const int & n) { directions.clear(); directions.resize(n); for(int i = 0; i < n; i++) { directions[i] = i % 2; } } // Flop all directions in the given vector, if flop is true. void UpdateDirections(std::vector & directions, bool flop) { if (not flop) return; for (int i = 0; i < int(directions.size()); i++) { assert(directions[i] == 0 or directions[i] == 1); directions[i] = (directions[i] == 0)?1:0; } } blasr_libcpp-master/alignment/utils/RegionUtils.hpp000066400000000000000000000063461260756663100231230ustar00rootroot00000000000000#ifndef _BLASR_REGION_UTILS_HPP_ #define _BLASR_REGION_UTILS_HPP_ #include #include #include "SMRTSequence.hpp" #include "statistics/StatUtils.hpp" #include "reads/ReadInterval.hpp" #include "reads/RegionTable.hpp" bool LookupHQRegion(int holeNumber, RegionTable ®ionTable, int &start, int &end, int &score); template bool MaskRead(T_Sequence &fastaRead, ZMWGroupEntry &zmwData, RegionTable ®ionTable); template bool GetReadTrimCoordinates(T_Sequence &fastaRead, ZMWGroupEntry &zmwData, RegionTable ®ionTable, DNALength &readStart ,DNALength &readEnd, int &score); // Given a vecotr of ReadInterval objects and their corresponding // directions, intersect each object with an interval // [hqStart, hqEnd), if there is no intersection or the intersected // interval is less than minIntervalLength, remove this object and // their corresponding directions; otherwise, replace this object // with the intersected interval and keep their directions. // Return index of the (left-most) longest subread interval in the // updated vector. int GetHighQualitySubreadsIntervals( std::vector & subreadIntervals, std::vector & subreadDirections, int hqStart, int hqEnd, int minIntervalLength = 0); // Given a vector of subreads and a vector of adapters, return // indices of all full-pass subreads. std::vector GetFullPassSubreadIndices( std::vector & subreadIntervals, std::vector & adapterIntervals); // Given a vector of subreads and a vector of adapters, return // index of the (left-most) longest subread which has both // adapters before & after itself. If no full-pass subreads are // available, return -1. int GetLongestFullSubreadIndex( std::vector & subreadIntervals, std::vector & adapterIntervals); // Given a vector of subreads and a vector of adapters, return // index of the median length subread which has both // adapters before & after itself. If no full-pass subreads are // available, return -1. int GetMedianLengthFullSubreadIndex( std::vector & subreadIntervals, std::vector & adapterIntervals); // Given a vector of subreads and a vector of adapters, return // index of the typical fullpass subread which can represent subreads // of this zmw. // * if there is no fullpass subread, return -1; // * if number of fullpass subreads is less than 4, return index of the // left-most longest subread // * if number of fullpass subreads is greater than or equal 4, // * if length of the longest read does not exceed // meanLength + 1.96 * deviationLength // then, return index of the longest left-most subread // * otherwise, return index of the second longest left-most subread int GetTypicalFullSubreadIndex( std::vector & subreadIntervals, std::vector & adapterIntervals); // Create a vector of n directions consisting of interleaved 0 and 1s. void CreateDirections(std::vector & directions, const int & n); // Flop all directions in the given vector, if flop is true. void UpdateDirections(std::vector & directions, bool flop = false); #include "utils/RegionUtilsImpl.hpp" #endif blasr_libcpp-master/alignment/utils/RegionUtilsImpl.hpp000066400000000000000000000031221260756663100237320ustar00rootroot00000000000000#ifndef _BLASR_REGION_UTILS_IMPL_HPP #define _BLASR_REGION_UTILS_IMPL_HPP //FIXME: move all functions to class SMRTSequence template bool MaskRead(T_Sequence &fastaRead, ZMWGroupEntry &zmwData, RegionTable ®ionTable) { if (not regionTable.HasHoleNumber(zmwData.holeNumber)) { return false; } else { RegionAnnotations regions = regionTable[zmwData.holeNumber]; // Mask off the low quality portion of this read. DNALength readPos; for (readPos = 0; readPos < std::min(regions.HQStart(), fastaRead.length); readPos++) { fastaRead.seq[readPos] = 'N'; } for (readPos = regions.HQEnd(); readPos < fastaRead.length; readPos++) { fastaRead.seq[readPos] = 'N'; } return regions.HasHQRegion(); } } /// \params[in] - fastaRead, zmwData, regionTable /// \params[out] - readStart /// \params[out] - readEnd /// \params[out] - score /// \returns Whether or not read coordinate trimmed according to HQRegion template bool GetReadTrimCoordinates(T_Sequence &fastaRead, ZMWGroupEntry &zmwData, RegionTable ®ionTable, DNALength &readStart ,DNALength &readEnd, int &score) { if (regionTable.HasHoleNumber(zmwData.holeNumber)) { RegionAnnotations regions = regionTable[zmwData.holeNumber]; if (regions.HasHQRegion()) { readStart = regions.HQStart(); readEnd = regions.HQEnd(); return true; } } readStart = 0; readEnd = fastaRead.length; return false; } #endif blasr_libcpp-master/alignment/utils/SimpleXMLUtils.hpp000066400000000000000000000037521260756663100235100ustar00rootroot00000000000000#ifndef _BLASR_SIMPLE_XML_UTILS_HPP_ #define _BLASR_SIMPLE_XML_UTILS_HPP_ #include #include /* * WARNING !!! The functions here use TONS of temoprary variables and are * very slow. Do not use for high-throughput xml generation. */ /* * none of this is really used... just the keyword value pair items. */ template int OutputKeywordValuePair(T_String title, T_Value value, std::ostream out) { out << title << "=\"" << value << "\" "; return out.good(); } template int OutputBeginElement(T_String title, std::ostream out) { out << "<" << title << " "; return 1; } template int OutputEndElement(T_String title, std::ostream out) { out << "/" << title; return 1; } template int OutputElement(T_String title, std::ostream out) { out << "<" << title << " "; return 1; } inline void OutputEnd(std::ostream out) { out << "/>"; } template T_String CreateKeywordValuePair(T_String title, T_Value value) { T_String keywordPair; std::stringstream sstrm; sstrm << title << "=\"" << value << "\""; keywordPair = sstrm.str(); return keywordPair; } template T_String BeginDataEntry(T_String id, T_String data) { T_String entry; entry += "<"; entry += id; entry += " "; entry += data; entry += ">"; return entry; } template T_String EndDataEntry(T_String id) { T_String entry; entry = "<" + id + ">/"; return entry; } template T_String CreateDataEntry(T_String id, T_String data) { T_String entry; entry += "<"; entry += id; entry += " "; entry += data; entry += " />"; return entry; } template T_String CreateStartEntry(T_String id, T_String data) { T_String entry; entry = "<" + id + " " + data + ">"; return entry; } template T_String CreateEndEntry(T_String id) { T_String entry; entry = "<" + id + "/>"; return entry; } #endif blasr_libcpp-master/alignment/utils/TimeUtils.cpp000066400000000000000000000013441260756663100225620ustar00rootroot00000000000000#include #include #include // std::setfill setd::setw #include "utils/TimeUtils.hpp" std::string GetTimestamp() { time_t timer; time(&timer); // t is an integer type // Prepare timestamp in the format : 2012-04-05T09:26:02.689093 std::stringstream timeStrm; struct tm t; localtime_r(&timer, &t); timeStrm << t.tm_year + 1900 << "-" << std::setfill('0') << std::setw(2) << t.tm_mon + 1 << "-" << std::setfill('0') << std::setw(2) << t.tm_mday << "T" << std::setfill('0') << std::setw(2) << t.tm_hour << ":" << std::setfill('0') << std::setw(2) << t.tm_min << ":" << std::setfill('0') << std::setw(2) << t.tm_sec; return timeStrm.str(); } blasr_libcpp-master/alignment/utils/TimeUtils.hpp000066400000000000000000000001661260756663100225700ustar00rootroot00000000000000#ifndef _BLASR_TIME_UTILS_HPP_ #define _BLASR_TIME_UTILS_HPP_ #include std::string GetTimestamp(); #endif blasr_libcpp-master/configure.py000077500000000000000000000255311260756663100173630ustar00rootroot00000000000000#!/usr/bin/env python """Configure the build. - Fetch HDF5 headers. - Create libconfig.h - Create defines.mk This is not used by './unittest/'. """ import commands import contextlib import os import sys thisdir = os.path.dirname(os.path.abspath(__file__)) def log(msg): sys.stderr.write(msg) sys.stderr.write('\n') def shell(cmd): log(cmd) status, output = commands.getstatusoutput(cmd) if status: raise Exception('%d <- %r' %(status, cmd)) return output def update_content(fn, content): direc = os.path.abspath(os.path.dirname(fn)) if not os.path.isdir(direc): shell('mkdir -p %s' %direc) current_content = open(fn).read() if os.path.exists(fn) else None if content != current_content: log('writing to %r' %fn) log('"""\n' + content + '"""') open(fn, 'w').write(content) def compose_libconfig(pbbam=False): if pbbam: content = """ #define USE_PBBAM """ else: content = """ """ return content def compose_defines_with_hdf(HDF5_INC, HDF5_LIB): """We have to use := for HDF5_LIB b/c blasr is using it to mean the directory, not the file, and it's in the environment. """ return """ HDF5_INC:=%(HDF5_INC)s HDF5_LIB:=%(HDF5_LIB)s #CPPFLAGS+= -I../pbdata -I../hdf -I../alignment LIBPBDATA_INC ?=../pbdata LIBPBIHDF_INC ?=../hdf LIBBLASR_INC ?=../alignment LIBPBDATA_LIB ?=../pbdata LIBPBIHDF_LIB ?=../hdf LIBBLASR_LIB ?=../alignment """%(dict( thisdir=thisdir, HDF5_INC=HDF5_INC, HDF5_LIB=HDF5_LIB)) def compose_defines_with_hdf_headers(HDF_HEADERS): return """ HDF_HEADERS:=%(HDF_HEADERS)s #HDF5_INC ?=${HDF_HEADERS}/src CPPFLAGS+= -I${HDF_HEADERS}/src -I${HDF_HEADERS}/c++/src CPPFLAGS+= -I../pbdata -I../hdf -I../alignment LIBPBDATA_LIB ?=../pbdata/ LIBPBIHDF_LIB ?=../hdf/ LIBBLASR_LIB ?=../alignment/ """%(dict(thisdir=thisdir, HDF_HEADERS=HDF_HEADERS)) def compose_defines(): """ Note that our local 'hdf' subdir will not even build in this case. """ return """ LIBPBDATA_INC ?=../pbdata LIBPBIHDF_INC ?=../hdf LIBBLASR_INC ?=../alignment LIBPBDATA_LIB ?=%(thisdir)s/pbdata/ LIBPBIHDF_LIB ?=%(thisdir)s/hdf/ LIBBLASR_LIB ?=%(thisdir)s/alignment/ nohdf ?=1 """%(dict(thisdir=thisdir)) def get_OS_STRING(): G_BUILDOS_CMD = """bash -c 'set -e; set -o pipefail; id=$(lsb_release -si | tr "[:upper:]" "[:lower:]"); rel=$(lsb_release -sr); case $id in ubuntu) printf "$id-%04d\n" ${rel/./};; centos) echo "$id-${rel%%.*}";; *) echo "$id-$rel";; esac' 2>/dev/null""" return shell(G_BUILDOS_CMD) def get_PBBAM(env, prefix): """ key = 'PBBAM' if key in env: return env[key] cmd = 'cd $(THIRD_PARTY_PREFIX)/../staging/PostPrimary/pbbam 2>/dev/null && pwd || echo -n notfound' %( THIRD_PARTY_PREFIX=prefix) return shell(cmd) """ def get_HTSLIB(env, prefix): """ key = 'HTSLIB' if key in env: return env[key] cmd = 'cd $(THIRD_PARTY_PREFIX)/../staging/PostPrimary/htslib 2>/dev/null && pwd || echo -n notfound' %( THIRD_PARTY_PREFIX=prefix) return shell(cmd) """ def ifenvf(env, key, func): if key in env: return env[key] else: return func() def setifenvf(envout, envin, key, func): envout[key] = ifenvf(envin, key, func) def setifenv(envout, envin, key, val): envout[key] = envin.get(key, val) def setenv(envout, key, val): envout[key] = val def update_env_if(envout, envin, keys): for key in keys: if key in envin: envout[key] = envin[key] def compose_defs_env(env): # We disallow env overrides for anything with a default from GNU make. nons = ['CXX', 'CC', 'AR'] # 'SHELL'? ovr = ['%-20s ?= %s' %(k, v) for k,v in sorted(env.items()) if k not in nons] nonovr = ['%-20s := %s' %(k, v) for k,v in sorted(env.items()) if k in nons] return '\n'.join(ovr + nonovr + ['']) def append_common(envin, content): """Dumb way to do this, but this whole thing is evolving. """ # This is the original libconfig.h. However, in case somebody (like # pbdagcon) builds libpbdata in-place, we need to drop a copy of # libconfig.h wherever pbdata is actually built, which we will not # know until later. This can all be cleared up later, when we are # more clear about where things are built. libconfig_h = os.path.abspath(os.path.join(os.getcwd(), 'libconfig.h')) content += """ LIBCONFIG_H:=%s # Use PREFIX dir, if available. INCLUDES += ${PREFIX_INC} LIBS += ${PREFIX_LIB} """%libconfig_h env = dict(envin) # Some extra defs. if 'PREFIX' in envin: PREFIX = envin['PREFIX'] setenv(env, 'PREFIX_INC', os.path.join(PREFIX, 'include')) setenv(env, 'PREFIX_LIB', os.path.join(PREFIX, 'lib')) poss = [ 'CXXFLAGS', 'SH_LIB_EXT', 'EXTRA_LDFLAGS', 'PREFIX_LIB', 'PREFIX_INC', ] vals = ['%-20s := %s' %(k, v) for k,v in sorted(env.items()) if k in poss] return '\n'.join([''] + vals + ['']) + content def compose_defines_pacbio(envin): """ This is used by mobs via buildcntl.sh. """ env = dict() setenv(env, 'SHELL', 'bash') setifenvf(env, envin, 'OS_STRING', get_OS_STRING) setifenv(env, envin, 'LIBPBDATA_INC', '../pbdata') setifenv(env, envin, 'LIBPBIHDF_INC', '../hdf') setifenv(env, envin, 'LIBBLASR_INC', '../alignment') setifenv(env, envin, 'LIBPBDATA_LIB', '../pbdata/') setifenv(env, envin, 'LIBPBIHDF_LIB', '../hdf/') setifenv(env, envin, 'LIBBLASR_LIB', '../alignment/') if 'nohdf' in envin: env['nohdf'] = envin['nohdf'] # Otherwise, do not define it at all. TODO(CD): Remove nohdf, as it is not used. nondefaults = set([ 'CXX', 'AR', 'HDF5_INC', 'HDF5_LIB', 'PBBAM_INC', 'PBBAM_LIB', 'HTSLIB_INC', 'HTSLIB_LIB', 'BOOST_INC', 'ZLIB_LIB', 'GCC_LIB', 'GTEST_INC', 'GTEST_SRCDIR', ]) update_env_if(env, envin, nondefaults) return compose_defs_env(env) @contextlib.contextmanager def cd(nwd): cwd = os.getcwd() log('cd %r -> %r' %(cwd, nwd)) os.chdir(nwd) yield os.chdir(cwd) log('cd %r <- %r' %(cwd, nwd)) def fetch_hdf5_headers(): """Fetch into ./hdf/HEADERS directory. This should not be used when an external build-dir is needed. Return actual directory path, relative to subdirs. """ version = 'hdf5-1.8.12-headers' version_dn = os.path.join(thisdir, 'hdf', version) if not os.path.isdir(version_dn): with cd(os.path.dirname(version_dn)): cmd = 'curl -k -L https://www.dropbox.com/s/8971bcyy5o42rxb/hdf5-1.8.12-headers.tar.bz2\?dl\=0 | tar xjf -' shell(cmd) return version_dn # Relative path might help caching. def update(content_defines_mk, content_libconfig_h): """ Write these relative to the same directory as *this* file. Unfortunately, we need to record the exact path of libconfig.h in defines.mk, so we know how to copy it. """ fn_libconfig_h = os.path.join('.', 'libconfig.h') update_content(fn_libconfig_h, content_libconfig_h) #content_defines_mk += 'LIBCONFIG_H:=%s\n' %os.path.abspath(fn_libconfig_h) fn_defines_mk = 'defines.mk' update_content(fn_defines_mk, content_defines_mk) if thisdir == os.path.abspath('.'): # This was run in the root directory, so symlink defines.mk # in sub-dirs, which now include defines.mk from CURDIR # in order to facilitate building in external output directories. for sub in ('pbdata', 'hdf', 'alignment', 'unittest'): lname = os.path.join(sub, 'defines.mk') if not os.path.lexists(lname): os.symlink(os.path.join('..', 'defines.mk'), lname) def configure_nopbbam(envin): """Use HDF5 from env-vars. This is the path used by blasr in a GitHub build, for now. """ HDF5_INC = envin.get('HDF5_INC') if not HDF5_INC: HDF5_INC = envin['HDF5_INCLUDE'] HDF5_LIB = envin['HDF5_LIB'] content1 = compose_defines_with_hdf(HDF5_INC, HDF5_LIB) content1 = append_common(envin, content1) content2 = compose_libconfig(pbbam=False) update(content1, content2) def configure_nopbbam_skip_hdf(envin): """Fetch HDF5 headers. We lack HDF5 libs, so we cannot build our hdf/ subdir. But the others are fine. """ HDF_HEADERS = fetch_hdf5_headers() content1 = compose_defines_with_hdf_headers(HDF_HEADERS) content1 = append_common(envin, content1) content2 = compose_libconfig(pbbam=False) update(content1, content2) def configure_nopbbam_nohdf5(envin): content1 = compose_defines() content1 = append_common(envin, content1) content2 = compose_libconfig(pbbam=False) update(content1, content2) def configure_pacbio(envin): content1 = compose_defines_pacbio(envin) content1 = append_common(envin, content1) content2 = compose_libconfig(pbbam=True) update(content1, content2) def get_make_style_env(envin, args): envout = dict() for arg in args: if '=' in arg: k, v = arg.split('=') envout[k] = v envout.update(envin) return envout class OsType: Unknown, Linux, Darwin = range(3) def getOsType(): uname = shell('uname -s') log('uname=%r' %uname) if 'Darwin' in uname: return OsType.Darwin elif 'Linux' in uname: return OsType.Linux else: return OsType.Unknown def update_env_for_linux(env): env['SET_LIB_NAME'] = '-soname' env['SH_LIB_EXT'] = '.so' def update_env_for_darwin(env): env['SET_LIB_NAME'] = '-install_name' env['SH_LIB_EXT'] = '.dylib' env['EXTRA_LDFLAGS'] = '-flat_namespace' # -flat_namespace makes BSD ld act like Linux ld, finding # shared libs recursively. def update_env_for_unknown(env): env['SET_LIB_NAME'] = '-soname' env['SH_LIB_EXT'] = '.so' update_env_for_os = { OsType.Linux: update_env_for_linux, OsType.Darwin: update_env_for_darwin, OsType.Unknown: update_env_for_unknown, } def main(prog, *args): """Include shell environ plus KEY=VAL pairs in args. """ ost = getOsType() envin = get_make_style_env(os.environ, args) update_env_for_os[ost](envin) if 'NOPBBAM' in envin: if 'NOHDF' in envin: configure_nopbbam_nohdf5(envin) else: if 'HDF5_LIB' in envin: if 'HDF5_INCLUDE' in envin: if 'HDF5_INC' not in envin: envin['HDF5_INC'] = envin['HDF5_INCLUDE'] else: print("WARNING: Found both HDF5_INC and HDF5_INCLUDE in environ!") assert 'HDF5_INC' in envin, 'Hey! You have HDF5_LIB but not HDF5_INC!' configure_nopbbam(envin) else: configure_nopbbam_skip_hdf(envin) else: configure_pacbio(envin) if __name__=="__main__": main(*sys.argv) blasr_libcpp-master/hdf/000077500000000000000000000000001260756663100155605ustar00rootroot00000000000000blasr_libcpp-master/hdf/BufferedHDF2DArray.cpp000066400000000000000000000057751260756663100215330ustar00rootroot00000000000000#include "BufferedHDF2DArray.hpp" /* * * Implementation of a 2-D array for IO from an HDF array. * This is templated, but specialized for a few data types, so that * the HDF data types do not need to be specified by somebody when reading. * * Currently no support exists for reading non-contiguous blocks of data, and * the main intended use is to read in increments of rows. int main(int argc, char* argv[]) { if (argc < 1) { cout << "usage: testHDFReading hdfFile" << endl; exit(0); } string hdfFileName = argv[1]; H5File hdfFile; hdfFile.openFile(hdfFileName.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); BufferedHDF2DArray xyArray; xyArray.Initialize(hdfFile, "PulseData/BaseCalls/ZMW/HoleXY"); int curX = 0; xyArray.Read(curX, curX + 1, 0, 2, holeXY); or, to read a row: xyArray.Read(curX, curX+1, holeXY); */ UInt GetDatasetNDim(H5::CommonFG &parentGroup, std::string datasetName) { HDFData tmpDataset; tmpDataset.InitializeDataset(parentGroup, datasetName); H5::DataSpace dataspace = tmpDataset.dataset.getSpace(); UInt nDims = dataspace.getSimpleExtentNdims(); dataspace.close(); tmpDataset.dataset.close(); return nDims; } #define DEFINE_TYPED_WRITE_ROW(T, Pred) template<>\ void BufferedHDF2DArray::TypedWriteRow(const T *data, const H5::DataSpace &memorySpace, const H5::DataSpace &fileSpace) {\ dataset.write(data, Pred, memorySpace, fileSpace);\ } DEFINE_TYPED_WRITE_ROW(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_WRITE_ROW(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_WRITE_ROW(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_WRITE_ROW(uint16_t, H5::PredType::NATIVE_UINT16) DEFINE_TYPED_WRITE_ROW(int16_t, H5::PredType::NATIVE_INT16) DEFINE_TYPED_WRITE_ROW(float, H5::PredType::NATIVE_FLOAT) #define DEFINE_TYPED_READ_ROW(T, Pred) template<>\ void BufferedHDF2DArray::Read(int startX, int endX, int startY, int endY, T* dest) {\ Read(startX, endX, startY, endY, Pred, dest);\ } DEFINE_TYPED_READ_ROW(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_READ_ROW(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_READ_ROW(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_READ_ROW(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_READ_ROW(uint16_t, H5::PredType::NATIVE_UINT16) DEFINE_TYPED_READ_ROW(int16_t, H5::PredType::NATIVE_INT16) DEFINE_TYPED_READ_ROW(float, H5::PredType::NATIVE_FLOAT) #define DEFINE_TYPED_CREATE_ROW(T, Pred) template<>\ void BufferedHDF2DArray::TypedCreate(H5::DataSpace &fileSpace, H5::DSetCreatPropList &cparms) {\ dataset = container->createDataSet(datasetName.c_str(), Pred, fileSpace, cparms);\ } DEFINE_TYPED_CREATE_ROW(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_CREATE_ROW(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_CREATE_ROW(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_CREATE_ROW(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_CREATE_ROW(uint16_t, H5::PredType::NATIVE_UINT16) DEFINE_TYPED_CREATE_ROW(int16_t, H5::PredType::NATIVE_INT16) DEFINE_TYPED_CREATE_ROW(float, H5::PredType::NATIVE_FLOAT) blasr_libcpp-master/hdf/BufferedHDF2DArray.hpp000066400000000000000000000117461260756663100215330ustar00rootroot00000000000000#ifndef _BLASR_HDF_BUFFERED_HDF_2D_ARRAY_HPP_ #define _BLASR_HDF_BUFFERED_HDF_2D_ARRAY_HPP_ #include #include #include #include "H5Cpp.h" #include "Types.h" #include "HDFConfig.hpp" #include "HDFData.hpp" #include "HDFGroup.hpp" #include "HDFWriteBuffer.hpp" /* * * Implementation of a 2-D array for IO from an HDF array. * This is templated, but specialized for a few data types, so that * the HDF data types do not need to be specified by somebody when reading. * * Currently no support exists for reading non-contiguous blocks of data, and * the main intended use is to read in increments of rows. int main(int argc, char* argv[]) { if (argc < 1) { cout << "usage: testHDFReading hdfFile" << endl; exit(0); } std::string hdfFileName = argv[1]; H5File hdfFile; hdfFile.openFile(hdfFileName.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); BufferedHDF2DArray xyArray; xyArray.Initialize(hdfFile, "PulseData/BaseCalls/ZMW/HoleXY"); int curX = 0; xyArray.Read(curX, curX + 1, 0, 2, holeXY); or, to read a row: xyArray.Read(curX, curX+1, holeXY); * */ template class BufferedHDF2DArray : public HDFData, public HDFWriteBuffer { private: hsize_t nDims; hsize_t *dimSize; int maxDims; int rowLength, colLength; public: BufferedHDF2DArray(H5::CommonFG *_container, std::string _datasetName); BufferedHDF2DArray(); unsigned int GetNRows(); unsigned int GetNCols(); void Close(); ~BufferedHDF2DArray(); int InitializeForReading(HDFGroup &group, std::string datasetName); /* * Initialize HDF2D for reading. No write buffer initialization is * required. The assumption is that the dataspace is in two * dimensions, and this exits without grace if it is not. */ int Initialize(HDFGroup &group, std::string datasetName, unsigned int _rowLength=0, int _bufferSize=0, bool createIfMissing=true); int size(); /* * Read rows in the range (startX, endX] in to dest. */ void Read(int startX, int endX, H5::DataType typeID, T*dest); void Read(int startX, int endX, T*dest); /* * This is the non-specialized definition. Since this should only * operate on specialized types, report an error and bail. */ void Read(int startX, int endX, int startY, int endY, T* dest); void Read(int startX, int endX, int startY, int endY, H5::DataType typeID, T *dest); void Create(H5::CommonFG *_container, std::string _datasetName, unsigned int _rowLength); void TypedCreate(H5::DataSpace &fileSpace, H5::DSetCreatPropList &cparms); // Append void TypedWriteRow(const T*, const H5::DataSpace &memoryDataSpace, const H5::DataSpace &fileDataSpace); /* * This code is copied directly form BufferedHDFArray. I'm not sure * how to set up the objects nicely to share the code between the * two since the Flush() function is different. There probably is a * design pattern or simply better way to engineer this, but for now * it's 15 lines of code. */ void WriteRow(const T *data, int dataLength, int destRow=-1); void Flush(int destRow = -1); }; UInt GetDatasetNDim(H5::CommonFG &parentGroup, std::string datasetName); #define DECLARE_TYPED_WRITE_ROW(T, Pred) template<>\ void BufferedHDF2DArray::TypedWriteRow(const T *data, \ const H5::DataSpace &memorySpace, const H5::DataSpace &fileSpace) ; DECLARE_TYPED_WRITE_ROW(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_WRITE_ROW(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_WRITE_ROW(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_WRITE_ROW(uint16_t, H5::PredType::NATIVE_UINT16) DECLARE_TYPED_WRITE_ROW(int16_t, H5::PredType::NATIVE_INT16) DECLARE_TYPED_WRITE_ROW(float, H5::PredType::NATIVE_FLOAT) #define DECLARE_TYPED_READ_ROW(T, Pred) template<>\ void BufferedHDF2DArray::Read(int startX, int endX, int startY, int endY, T* dest); DECLARE_TYPED_READ_ROW(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_READ_ROW(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_READ_ROW(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_READ_ROW(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_READ_ROW(uint16_t, H5::PredType::NATIVE_UINT16) DECLARE_TYPED_READ_ROW(int16_t, H5::PredType::NATIVE_INT16) DECLARE_TYPED_READ_ROW(float, H5::PredType::NATIVE_FLOAT) #define DECLARE_TYPED_CREATE_ROW(T, Pred)template<>\ void BufferedHDF2DArray::TypedCreate(H5::DataSpace &fileSpace, \ H5::DSetCreatPropList &cparms) ; DECLARE_TYPED_CREATE_ROW(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_CREATE_ROW(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_CREATE_ROW(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_CREATE_ROW(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_CREATE_ROW(uint16_t, H5::PredType::NATIVE_UINT16) DECLARE_TYPED_CREATE_ROW(int16_t, H5::PredType::NATIVE_INT16) DECLARE_TYPED_CREATE_ROW(float, H5::PredType::NATIVE_FLOAT) #include "BufferedHDF2DArrayImpl.hpp" #endif blasr_libcpp-master/hdf/BufferedHDF2DArrayImpl.hpp000066400000000000000000000266631260756663100223610ustar00rootroot00000000000000#ifndef _BLASR_HDF_BUFFERED_HDF_2D_ARRAY_IMPL_HPP_ #define _BLASR_HDF_BUFFERED_HDF_2D_ARRAY_IMPL_HPP_ #include #include #include "utils.hpp" template BufferedHDF2DArray::BufferedHDF2DArray(H5::CommonFG *_container, std::string _datasetName) : HDFData(_container, _datasetName) {} template BufferedHDF2DArray::BufferedHDF2DArray() : HDFData() { maxDims = 0; nDims = 2; dimSize =NULL; rowLength = -1; colLength = -1; } template unsigned int BufferedHDF2DArray::GetNRows() { return rowLength; } template unsigned int BufferedHDF2DArray::GetNCols() { return colLength; } template void BufferedHDF2DArray::Close() { // // Clean up the write buffer. // // Flush(); if (dimSize != NULL) { delete[] dimSize; dimSize = NULL; } this->HDFWriteBuffer::Free(); } template BufferedHDF2DArray::~BufferedHDF2DArray() { Close(); } template int BufferedHDF2DArray::InitializeForReading(HDFGroup& group, std::string datasetName) { return Initialize(group, datasetName, 0, 0, false); } /* * Initialize HDF2D for reading. No write buffer initialization is * required. The assumption is that the dataspace is in two * dimensions, and this exits without grace if it is not. */ template int BufferedHDF2DArray::Initialize(HDFGroup &group, std::string datasetName, unsigned int _rowLength, int _bufferSize, bool createIfMissing) { bool groupContainsDataset = group.ContainsObject(datasetName); if (groupContainsDataset == false) { // // Do some error checking. // if (createIfMissing == false) { std::cout << "ERROR! Could not open dataset " << datasetName << std::endl; exit(1); } if (_rowLength == 0) { std::cout << "ERROR! Improper usage of BufferedHDF2DArray::Initialize. The 2D Array "<(nDims); dataspace.getSimpleExtentDims(dimSize); rowLength = dimSize[0]; colLength = dimSize[1]; if (rowLength == 0) { dataspace.close(); return 1; } fullSourceSpace = H5::DataSpace(2, dimSize); dataspace.close(); } catch(H5::Exception &e) { std::cout << e.getDetailMsg() << std::endl; exit(1); } } return 1; } template int BufferedHDF2DArray::size() { dataspace.getSimpleExtentDims(dimSize); return dimSize[0]; } /* * Read rows in the range (startX, endX] in to dest. */ template void BufferedHDF2DArray::Read(int startX, int endX, H5::DataType typeID, T*dest) { Read(startX, endX, 0, dimSize[1], typeID, dest); } template void BufferedHDF2DArray::Read(int startX, int endX, T*dest) { Read(startX, endX, 0, dimSize[1], dest); } /* * This is the non-specialized definition. Since this should only * operate on specialized types, report an error and bail. */ template void BufferedHDF2DArray::Read(int startX, int endX, int startY, int endY, T* dest) { assert("ERROR, calling Read with an unsupported type. Use Read(startx,endx, starty,endy,datatype, dest) instead." == 0); exit(1); } template void BufferedHDF2DArray::Read(int startX, int endX, int startY, int endY, H5::DataType typeID, T *dest) { hsize_t memSpaceSize[2] = {0, 0}; memSpaceSize[0] = endX - startX; memSpaceSize[1] = endY - startY; hsize_t sourceSpaceOffset[2] = {0, 0}; sourceSpaceOffset[0] = startX; sourceSpaceOffset[1] = startY; H5::DataSpace destSpace(2, memSpaceSize); fullSourceSpace.selectHyperslab(H5S_SELECT_SET, memSpaceSize, sourceSpaceOffset); dataset.read(dest, typeID, destSpace, fullSourceSpace); destSpace.close(); } template void BufferedHDF2DArray::Create(H5::CommonFG *_container, string _datasetName, unsigned int _rowLength) { container = _container; datasetName = _datasetName; rowLength = (unsigned int)_rowLength; // // Make life easy if the buffer is too small to fit a row -- // resize it so that rows may be copied and written out in an // atomic unit. // if (this->bufferSize < rowLength) { // When the buffer size is greater than 0, the write buffer // should exist. if (this->bufferSize > 0) { assert(this->writeBuffer != NULL); delete[] this->writeBuffer; } this->writeBuffer = ProtectedNew(rowLength); this->bufferSize = rowLength; } hsize_t dataSize[2] = {0, hsize_t(rowLength)}; hsize_t maxDataSize[2] = {H5S_UNLIMITED, hsize_t(rowLength)}; H5::DataSpace fileSpace(2, dataSize, maxDataSize); H5::DSetCreatPropList cparms; /* * For some reason, chunking must be enabled when creating a dataset * that has an unlimited dimension. Of course, this is not * mentioned in the hdf5 c++ documentation, because that * docuemntation was written for people who enjoy learning how to * use an API by reading comments in source code. */ hsize_t chunkDims[2] = {16384, hsize_t(rowLength)}; cparms.setChunk( 2, chunkDims ); TypedCreate(fileSpace, cparms); fileSpace.close(); // // Set some flags that indicate this dataset is ready for writing. // fileDataSpaceInitialized = true; isInitialized = true; } template void BufferedHDF2DArray::TypedCreate(H5::DataSpace &fileSpace, H5::DSetCreatPropList &cparms) { assert("Error, calling HDF2DArray::TypedCreate on an unsupported type. A specialization must be written in HDF2DArray.h" == 0); } // Append template void TypedWriteRow(const T*, const H5::DataSpace &memoryDataSpace, const H5::DataSpace &fileDataSpace) { assert("Error, calling HDF2DArray::TypedWriteRow on an unsupported type. A specialization must be written in HDF2DArray.h" == 0); } /* * This code is copied directly form BufferedHDFArray. I'm not sure * how to set up the objects nicely to share the code between the * two since the Flush() function is different. There probably is a * design pattern or simply better way to engineer this, but for now * it's 15 lines of code. */ template void BufferedHDF2DArray::WriteRow(const T *data, int dataLength, int destRow) { // Fill the buffer with data. When there is overflow, write // that out to disk. // int dataIndex = 0; int bufferCapacity; int bufferFillSize = 0; bool flushBuffer; while(dataIndex < dataLength) { // // Compute the capacity of this buffer to fit an integral number // of rows into it. // bufferCapacity = (this->bufferSize / rowLength)*rowLength - this->bufferIndex; flushBuffer = false; if (bufferCapacity > dataLength - dataIndex) { bufferFillSize = dataLength - dataIndex; } else { bufferFillSize = bufferCapacity; flushBuffer = true; } memcpy((void*) &this->writeBuffer[this->bufferIndex], (void*) &data[dataIndex], sizeof(T)*bufferFillSize); dataIndex += bufferFillSize; this->bufferIndex += bufferFillSize; if (flushBuffer) { Flush(destRow); } // // When not appending, increment the position of where the data // is to be written. // if (destRow != -1) { destRow += this->bufferIndex / rowLength; } } } template void BufferedHDF2DArray::Flush(int destRow) { // // A default writeRow of -1 implies append // int numDataRows; // // this->bufferIndex points after the end of the last data in the // buffer (full rows), so this->bufferIndex / rowLength is the // number of number of rows to create. // numDataRows = this->bufferIndex / rowLength; if (numDataRows > 0) { assert(fileDataSpaceInitialized); H5::DataSpace fileSpace; fileSpace = dataset.getSpace(); // // Load the current size of the array on disk. // hsize_t fileArraySize[2], fileArrayMaxSize[2], blockStart[2]; fileSpace.getSimpleExtentDims(fileArraySize, fileArrayMaxSize); // Save this for later to determine the offsets blockStart[0] = fileArraySize[0]; blockStart[1] = fileArraySize[1]; // // Calculate the number of rows to create. This is dependent // on the current file size, the destination of where the data // will go, and how much to write. // if (destRow == -1) { fileArraySize[0] += numDataRows; } else { // If the data cannot fit in the current file size, extend // it, otherwise, do not toch the file array size. if (destRow + numDataRows > fileArraySize[0]) { fileArraySize[0] = destRow + numDataRows; } } // // Make room in the file for the array. // dataset.extend(fileArraySize); H5::DataSpace extendedSpace = dataset.getSpace(); // // Store the newly dimensioned dataspaces. // fileSpace.getSimpleExtentDims(fileArraySize, fileArrayMaxSize); // // Configure the proper addressing to append to the array. // hsize_t dataSize[2]; dataSize[0] = numDataRows; dataSize[1] = rowLength; hsize_t offset[2]; // // Determine which row to write to. // if (destRow == -1) { offset[0] = blockStart[0]; } else { offset[0] = destRow; } offset[1] = 0; extendedSpace.selectHyperslab(H5S_SELECT_SET, dataSize, offset); H5::DataSpace memorySpace(2, dataSize); // // Finally, write out the data. // This uses a generic function which is specialized with // templates later on to t // memorySpace addresses the entire array in linear format // fileSpace addresses the last dataLength blocks of dataset. // TypedWriteRow(this->writeBuffer, memorySpace, extendedSpace); memorySpace.close(); extendedSpace.close(); fileSpace.close(); } this->ResetWriteBuffer(); } #endif // _BLASR_HDF_BUFFERED_HDF_2D_ARRAY_IMPL_HPP_ blasr_libcpp-master/hdf/BufferedHDFArray.cpp000066400000000000000000000071501260756663100213320ustar00rootroot00000000000000#include "BufferedHDFArray.hpp" /* * * Implementation of a 1-D array for IO from an HDF array. * This is templated, but specialized for a few data types, so that * the HDF data types do not need to be specified by anybody. * * Two examples of the usage of this class follow: * * HDFArray nElemArray; * nElemArray.Initialize(hdfFile, "PulseData/BaseCalls/ZMW/NumEvent"); * nElemArray.Read(i, i+1, &nElem); * * HDFArray qualArray; * qualArray.Initialize(hdfFile, "PulseData/BaseCalls/QualityValue"); * qualArray.Read(cur, cur + nElem, qual); * */ // // Type specializations for some standard types. Use the macro for // vanilla specializations (that only require the HDF type ID to be // specified). // #define DEFINE_TYPED_READ_ARRAY(T, Pred) template<> \ void BufferedHDFArray::Read(UInt start, UInt end, T* dest) { \ Read(start,end, Pred, dest); \ } DEFINE_TYPED_READ_ARRAY(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_READ_ARRAY(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_READ_ARRAY(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_READ_ARRAY(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_READ_ARRAY(uint16_t, H5::PredType::NATIVE_UINT16) DEFINE_TYPED_READ_ARRAY(float, H5::PredType::NATIVE_FLOAT) DEFINE_TYPED_READ_ARRAY(char*, H5::PredType::C_S1) #define DEFINE_TYPED_READ_DATASET(T, Pred) template<> \ void BufferedHDFArray::ReadDataset(std::vector &dest) { \ dest.resize(arrayLength); \ Read(0, arrayLength, Pred, &dest[0]); \ } DEFINE_TYPED_READ_DATASET(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_READ_DATASET(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_READ_DATASET(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_READ_DATASET(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_READ_DATASET(uint16_t, H5::PredType::NATIVE_UINT16) DEFINE_TYPED_READ_DATASET(float, H5::PredType::NATIVE_FLOAT) DEFINE_TYPED_READ_DATASET(char*, H5::PredType::C_S1) #define DEFINE_TYPED_CREATE_ARRAY(T, Pred) template<> \ void BufferedHDFArray::TypedCreate(H5::DataSpace &fileSpace, H5::DSetCreatPropList &cparms) { \ T zero; zero = 0;\ cparms.setFillValue(Pred, &zero);\ dataset = container->createDataSet(datasetName.c_str(), Pred, fileSpace, cparms); \ } DEFINE_TYPED_CREATE_ARRAY(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_CREATE_ARRAY(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_CREATE_ARRAY(char*, H5::StrType(0,H5T_VARIABLE)) DEFINE_TYPED_CREATE_ARRAY(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_CREATE_ARRAY(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_CREATE_ARRAY(float, H5::PredType::NATIVE_FLOAT) DEFINE_TYPED_CREATE_ARRAY(uint16_t, H5::PredType::NATIVE_UINT16) template<> void BufferedHDFArray::TypedCreate(H5::DataSpace &space, H5::DSetCreatPropList &cparms) { H5::StrType varStrType(0,H5T_VARIABLE); dataset = container->createDataSet(datasetName.c_str(), varStrType, space, cparms); } #define DEFINE_TYPED_WRITE_ARRAY(T, Pred) template<> \ void BufferedHDFArray::TypedWrite(const T *data, \ const H5::DataSpace &memorySpace, const H5::DataSpace &fileSpace) { \ dataset.write(data, Pred, memorySpace, fileSpace); \ } DEFINE_TYPED_WRITE_ARRAY(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_WRITE_ARRAY(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_WRITE_ARRAY(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_WRITE_ARRAY(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_WRITE_ARRAY(float, H5::PredType::NATIVE_FLOAT) DEFINE_TYPED_WRITE_ARRAY(uint16_t, H5::PredType::NATIVE_UINT16) DEFINE_TYPED_WRITE_ARRAY(char*, H5::StrType(0,H5T_VARIABLE)) DEFINE_TYPED_WRITE_ARRAY(std::string, H5::StrType(0,H5T_VARIABLE)) blasr_libcpp-master/hdf/BufferedHDFArray.hpp000066400000000000000000000154361260756663100213450ustar00rootroot00000000000000#ifndef _BLASR_BUFFERED_HDF_ARRAY_HPP_ #define _BLASR_BUFFERED_HDF_ARRAY_HPP_ #include #include #include #include // HDF5 library includes #include "hdf5.h" #include "H5Cpp.h" #include "Types.h" #include "HDFConfig.hpp" #include "HDFData.hpp" #include "HDFGroup.hpp" #include "HDFWriteBuffer.hpp" #include "HDFFile.hpp" #include "DNASequence.hpp" #include "FASTQSequence.hpp" /* * * Implementation of a 1-D array for IO from an HDF array. * This is templated, but specialized for a few data types, so that * the HDF data types do not need to be specified by anybody. * * Two examples of the usage of this class follow: * * HDFArray nElemArray; * nElemArray.Initialize(hdfFile, "PulseData/BaseCalls/ZMW/NumEvent"); * nElemArray.Read(i, i+1, &nElem); * * HDFArray qualArray; * qualArray.Initialize(hdfFile, "PulseData/BaseCalls/QualityValue"); * qualArray.Read(cur, cur + nElem, qual); * */ template class BufferedHDFArray : public HDFData, public HDFWriteBuffer { public: hsize_t nDims; hsize_t *dimSize; int maxDims; UInt arrayLength; /* * Constructor meant to be used for data that will be written. * This allocates the write buffer. */ BufferedHDFArray(int pBufferSize=1024); BufferedHDFArray(H5::CommonFG* _container, std::string _datasetName); ~BufferedHDFArray(); void SetBufferSize(int _bufferSize); void Write(const T *data, UInt dataLength, bool append=true, UInt writePos = 0); void Flush(bool append=true, UInt writePos = 0); void TypedWrite(const char **data, const H5::DataSpace &memorySpace, const H5::DataSpace &extendedSpace); void TypedWrite(const T*data, const H5::DataSpace &memorySpace, const H5::DataSpace &extendedSpace); void TypedCreate(H5::DataSpace &fileSpace, H5::DSetCreatPropList &cparms); void Create(HDFGroup &parentGroup, std::string _datasetName); void Create(H5::CommonFG* _container, std::string _datasetName); /* * Initialize for reading. * * Open a dataset in an hdf file. Only call this on datasets that * exist, since this currently handles errors with opening datasets * by ungracefully exiting the program. */ int InitializeForReading(HDFGroup &parentGroup, const std::string datasetName); int Initialize(HDFGroup &parentGroup, const std::string &datasetName); int Initialize(HDFGroup &parentGroup, const std::string &datasetName, bool createIfMissing, UInt newArrayLength=0); int UpdateH5Dataspace(); int Resize(UInt newArrayLength); void Close(); UInt size(); /* * Unspecialized form of read. * Read cannot be called on a type T* that does not have a * specialized template definition. This is all determined at * compile time. To ensure this, the following * default definition is provided that gives a nasty warning and * exits the code. */ virtual void Read(UInt start, UInt end, T* dest); /* * Read in type T from the opened dataset from the interval (start, * end]. */ void ReadDataset(std::vector &dest); void Read(UInt start, UInt end, H5::DataType typeID, T* dest); void ReadCharArray(UInt start, UInt end, std::string* dest); }; /* * Type specializations for some standard types. Use the macro for * vanilla specializations (that only require the HDF type ID to be * specified). */ #define DECLARE_TYPED_READ_ARRAY(T, Pred) template<> \ void BufferedHDFArray::Read(UInt start, UInt end, T* dest); DECLARE_TYPED_READ_ARRAY(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_READ_ARRAY(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_READ_ARRAY(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_READ_ARRAY(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_READ_ARRAY(uint16_t, H5::PredType::NATIVE_UINT16) DECLARE_TYPED_READ_ARRAY(float, H5::PredType::NATIVE_FLOAT) DECLARE_TYPED_READ_ARRAY(char*, H5::PredType::C_S1) #define DECLARE_TYPED_READ_DATASET(T, Pred) template<> \ void BufferedHDFArray::ReadDataset(vector &dest); DECLARE_TYPED_READ_DATASET(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_READ_DATASET(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_READ_DATASET(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_READ_DATASET(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_READ_DATASET(uint16_t, H5::PredType::NATIVE_UINT16) DECLARE_TYPED_READ_DATASET(float, H5::PredType::NATIVE_FLOAT) DECLARE_TYPED_READ_DATASET(char*, H5::PredType::C_S1) #define DECLARE_TYPED_CREATE_ARRAY(T, Pred) template <> \ void BufferedHDFArray::TypedCreate(H5::DataSpace &fileSpace, \ H5::DSetCreatPropList &cparms); DECLARE_TYPED_CREATE_ARRAY(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_CREATE_ARRAY(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_CREATE_ARRAY(char*, H5::StrType(0,H5T_VARIABLE)) DECLARE_TYPED_CREATE_ARRAY(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_CREATE_ARRAY(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_CREATE_ARRAY(float, H5::PredType::NATIVE_FLOAT) DECLARE_TYPED_CREATE_ARRAY(uint16_t, H5::PredType::NATIVE_UINT16) template<> void BufferedHDFArray::TypedCreate(H5::DataSpace &space, H5::DSetCreatPropList &cparms); #define DECLARE_TYPED_WRITE_ARRAY(T, Pred) template <> \ void BufferedHDFArray::TypedWrite(const T *data, \ const H5::DataSpace &memorySpace, const H5::DataSpace &fileSpace); DECLARE_TYPED_WRITE_ARRAY(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_WRITE_ARRAY(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_WRITE_ARRAY(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_WRITE_ARRAY(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_WRITE_ARRAY(float, H5::PredType::NATIVE_FLOAT) DECLARE_TYPED_WRITE_ARRAY(uint16_t, H5::PredType::NATIVE_UINT16) DECLARE_TYPED_WRITE_ARRAY(char*, H5::StrType(0,H5T_VARIABLE)) DECLARE_TYPED_WRITE_ARRAY(std::string, H5::StrType(0,H5T_VARIABLE)) // // This is a nonstandard definition because it requires the creation // of a special datatype for variable length string type. // // // Use this as the base class for other lists. // typedef BufferedHDFArray BaseHDFArray; #define DEFINE_TYPED_CLASS(CLASS_NAME, TEMPLATE_TYPE) \ class CLASS_NAME : public BufferedHDFArray< TEMPLATE_TYPE > { \ public: \ void Read(UInt start, UInt end, TEMPLATE_TYPE *dest) { \ BufferedHDFArray::Read(start, end, dest); \ } \ }; DEFINE_TYPED_CLASS(HDFIntArray, int) DEFINE_TYPED_CLASS(HDFUIntArray, unsigned int) DEFINE_TYPED_CLASS(HDFUCharArray, unsigned char) DEFINE_TYPED_CLASS(HDFCharArray, char) DEFINE_TYPED_CLASS(HDFUShortArray, uint16_t ) //DEFINE_TYPED_CLASS(HDFStringArray, std::string) DEFINE_TYPED_CLASS(HDFFloatArray, float) #include "BufferedHDFArrayImpl.hpp" #endif blasr_libcpp-master/hdf/BufferedHDFArrayImpl.hpp000066400000000000000000000310461260756663100221620ustar00rootroot00000000000000#ifndef _BLASR_HDF_BUFFERED_HDF_ARRAY_IMPL_HPP_ #define _BLASR_HDF_BUFFERED_HDF_ARRAY_IMPL_HPP_ #include #include #include #include "utils.hpp" #include "BufferedHDFArray.hpp" template BufferedHDFArray::BufferedHDFArray(int pBufferSize) : HDFData() { nDims = 0; maxDims = 0; arrayLength = 0; dimSize = NULL; this->bufferIndex = 0; this->InitializeBuffer(pBufferSize); } template BufferedHDFArray::BufferedHDFArray(H5::CommonFG* _container, std::string _datasetName) : HDFData(_container, _datasetName) { // no-op } template BufferedHDFArray::~BufferedHDFArray() { // // Clean up the write buffer. // if (dimSize != NULL) { delete[] dimSize; dimSize = NULL; } this->Free(); } template void BufferedHDFArray::SetBufferSize(int _bufferSize) { this->InitializeBuffer(_bufferSize); } template void BufferedHDFArray::Write(const T *data, UInt dataLength, bool append, UInt writePos) { // Fill the buffer with data. When there is overflow, write // that out to disk. // UInt dataIndex = 0; int bufferCapacity; int bufferFillSize = 0; bool flushBuffer; while(dataIndex < dataLength) { bufferCapacity = this->bufferSize - this->bufferIndex; flushBuffer = false; if (bufferCapacity > dataLength - dataIndex) { bufferFillSize = dataLength - dataIndex; } else { bufferFillSize = bufferCapacity; flushBuffer = true; } memcpy((void*) &this->writeBuffer[this->bufferIndex], (void*) &data[dataIndex], sizeof(T)*bufferFillSize); dataIndex += bufferFillSize; this->bufferIndex += bufferFillSize; if (flushBuffer) { Flush(append, writePos); } } } template void BufferedHDFArray::Flush(bool append, UInt writePos) { // // Flush contents of current buffer to the file. // if (this->WriteBufferEmpty()) { // // There is no data in the buffer, so nothing can be written. // HDF does not support empty arrays (as far as I can tell), so // don't even bother trying to create the dataspace. // return; } // fetch the current size of the dataspace if (fileDataSpaceInitialized == false) { std::cout << "ERROR, trying to flush a dataset that has not been "; std::cout << "created or initialized" << std::endl; exit(1); fileDataSpaceInitialized = true; } H5::DataSpace fileSpace; fileSpace = dataset.getSpace(); // // Load the current size of the array on disk. // hsize_t fileArraySize[1], blockStart; fileArraySize[0] = fileSpace.getSimpleExtentNpoints(); if (append) { blockStart = fileSpace.getSimpleExtentNpoints(); fileArraySize[0] += this->bufferIndex; // // Make room in the file for the array. // dataset.extend(fileArraySize); } else { blockStart = writePos; if (blockStart + this->bufferIndex > fileArraySize[0]) { fileArraySize[0] = blockStart + this->bufferIndex; dataset.extend(fileArraySize); } } H5::DataSpace extendedSpace = dataset.getSpace(); //int extendedSize = extendedSpace.getSimpleExtentNpoints(); // FIXME(yli): why isn't this used? // // Configure the proper addressing to append to the array. // hsize_t dataSize[1]; hsize_t offset[1]; dataSize[0] = this->bufferIndex; offset[0] = blockStart; extendedSpace.selectHyperslab(H5S_SELECT_SET, dataSize, offset); H5::DataSpace memorySpace(1, dataSize); // // Finally, write out the data. // This uses a generic function which is specialized with // templates later on to t // memorySpace addresses the entire array in linear format // fileSpace addresses the last dataLength blocks of dataset. // try { TypedWrite(this->writeBuffer, memorySpace, extendedSpace); } catch(H5::DataSetIException e) { std::cout <<"ERROR! Could not write HDF5 data." << std::endl; e.printError(); exit(1); } memorySpace.close(); extendedSpace.close(); fileSpace.close(); // Clear the buffer. this->ResetWriteBuffer(); } template void BufferedHDFArray::TypedWrite(const char **data, const H5::DataSpace &memorySpace, const H5::DataSpace &extendedSpace) { H5::StrType varStrType(0,H5T_VARIABLE); dataset.write(data, varStrType, memorySpace, extendedSpace); } template void BufferedHDFArray::TypedWrite(const T* data, const H5::DataSpace &memorySpace, const H5::DataSpace &extendedSpace) { assert("Calling TypedWrite on an unsupported type" == 0); } template void BufferedHDFArray::TypedCreate(H5::DataSpace &fileSpace, H5::DSetCreatPropList &cparms) { std::cout << "DEFAULT typed create " << std::endl; } template void BufferedHDFArray::Create(HDFGroup &parentGroup, std::string _datasetName) { return Create(&parentGroup.group, _datasetName); } template void BufferedHDFArray::Create(H5::CommonFG* _container, std::string _datasetName) { // // Initialize where the dataset will go. container = _container; datasetName = _datasetName; hsize_t dataSize[] = {0}; hsize_t maxDataSize[] = {H5S_UNLIMITED}; H5::DataSpace fileSpace(1, dataSize, maxDataSize); H5::DSetCreatPropList cparms; /* * For some reason, chunking must be enabled when creating a dataset * that has an unlimited dimension. Of course, this is not * mentioned in the hdf5 c++ documentation, because that * docuemntation was written for people who enjoy learning how to * use an API by reading comments in source code. */ hsize_t chunk_dims[1] = { 16384 }; cparms.setChunk( 1, chunk_dims ); TypedCreate(fileSpace, cparms); // // Since TypedCreate created an assigned a dataset, this array is // now initialized. Do the bookkeeping here. // isInitialized = true; fileDataSpaceInitialized = true; fileSpace.close(); } /* * Initialize for reading. * * Open a dataset in an hdf file. Only call this on datasets that * exist, since this currently handles errors with opening datasets * by ungracefully exiting the program. */ template int BufferedHDFArray::InitializeForReading(HDFGroup &parentGroup, const std::string datasetName) { return Initialize(parentGroup, datasetName, false); } template int BufferedHDFArray::Initialize(HDFGroup &parentGroup, const std::string &datasetName) { return Initialize(parentGroup, datasetName, true); } template int BufferedHDFArray::Initialize(HDFGroup &parentGroup, const std::string &datasetName, bool createIfMissing, UInt newArrayLength) { // // For writing to this dataset, start at the first position in the // write buffer. // this->bufferIndex = 0; // // It's possible that the group may be asked to initialize this // dataset when the dataset does not exist. Check that here. // bool parentHasObject = parentGroup.ContainsObject(datasetName); if ( parentHasObject and InitializeDataset(parentGroup, datasetName) == 0) { // // The parent group already contains this dataset. Try to // initialize this dataset and if it does not exist, flag fail. // return 0; } // // This is a hack to create in read/write mode. If the parent // does not have the object, try and create it. The problem with // trying to open a dataset in append mode is it will fail if the // dataset does not exist. // if (parentHasObject == false) { if (createIfMissing) { Create(parentGroup, datasetName); } else { // // Trying to open a dataset to read only, but it does not // exist. Bail. // return 0; } } int ret = UpdateH5Dataspace(); if (newArrayLength > 0) { ret *= Resize(newArrayLength); } return ret; } template int BufferedHDFArray::UpdateH5Dataspace() { try { dataspace = dataset.getSpace(); } catch(H5::DataSetIException &e) { e.printError(); return 0; } maxDims = MAX_DIMS; try { nDims = dataspace.getSimpleExtentNdims(); /* * Prevent abuse of this class for multidimensional IO. */ if (nDims != 1) { std::cout << "ERROR in HDF format: dataset: "; std::cout << datasetName << " should be 1-D, but it is not."; std::cout << std::endl; exit(1); } /* * Load in the size of this dataset, and make a map to the whole thing. */ if (dimSize != NULL) { delete [] dimSize; dimSize = NULL; } dimSize = ProtectedNew(nDims); dataspace.getSimpleExtentDims(dimSize); arrayLength = dimSize[0]; if (dimSize[0] == 0) { // DONT create a real dataspace if the size is 0 // cout << "WARNING, trying to open a zero sized dataspace." << endl; dataspace.close(); return 1; } fullSourceSpace = H5::DataSpace(1, dimSize); dataspace.close(); } catch(H5::Exception& e) { e.printError(); return 0; } return 1; } template int BufferedHDFArray::Resize(UInt newArrayLength) { // // Resize this dataset. May or may not allocate space in file. // May or may not write fill value. // try{ H5::DataSpace fileSpace; fileSpace = dataset.getSpace(); hsize_t fileArraySize[1]; fileArraySize[0] = newArrayLength; arrayLength = newArrayLength; dataset.extend(fileArraySize); fileSpace.close(); } catch(H5::DataSetIException &e) { e.printError(); return 0; } return 1; } template void BufferedHDFArray::Close() { if (dimSize != NULL) { delete[] dimSize; dimSize = NULL; HDFData::Close(); } } template UInt BufferedHDFArray::size() { dataspace = dataset.getSpace(); hsize_t dimSizeArray[1]; dataspace.getSimpleExtentDims(dimSizeArray); dataspace.close(); return dimSizeArray[0]; } /* * Unspecialized form of read. * Read cannot be called on a type T* that does not have a * specialized template definition. This is all determined at * compile time. To ensure this, the following * default definition is provided that gives a nasty warning and * exits the code. */ template void BufferedHDFArray::Read(UInt start, UInt end, T* dest) { assert("ERROR, calling Read with an unsupported type. Use Read(start,end,datatype, dest) instead." == 0); exit(1); // this is in case the assert statement is removed. } /* * Read in type T from the opened dataset from the interval (start, * end]. */ template void BufferedHDFArray::ReadDataset(std::vector &dest) { assert("ERROR, calling ReadDataset with an unsupported type."); exit(1); // this is in case the assert statement is removed. } template void BufferedHDFArray::Read(UInt start, UInt end, H5::DataType typeID, T *dest) { if (end - start == 0) { return; } hsize_t memSpaceSize[] = {0}; memSpaceSize[0] = end - start; hsize_t sourceSpaceOffset[] = {0}; sourceSpaceOffset[0] = start; H5::DataSpace destSpace(1, memSpaceSize); fullSourceSpace.selectHyperslab(H5S_SELECT_SET, memSpaceSize, sourceSpaceOffset); dataset.read(dest, typeID, destSpace, fullSourceSpace); destSpace.close(); } template void BufferedHDFArray::ReadCharArray(UInt start, UInt end, std::string* dest) { hsize_t memSpaceSize[] = {0}; memSpaceSize[0] = end - start; hsize_t sourceSpaceOffset[] = {0}; sourceSpaceOffset[0] = start; H5::DataSpace destSpace(1, memSpaceSize); H5::StrType strType(0, H5T_VARIABLE); fullSourceSpace.selectHyperslab(H5S_SELECT_SET, memSpaceSize, sourceSpaceOffset); std::vector tmpStringArray; tmpStringArray.resize(end-start); dataset.read(&tmpStringArray[0], strType, destSpace, fullSourceSpace); UInt i; for (i = 0; i < tmpStringArray.size(); i++) { dest[i] = tmpStringArray[i]; } destSpace.close(); } #endif // _BLASR_HDF_BUFFERED_HDF_ARRAY_IMPL_HPP_ blasr_libcpp-master/hdf/DatasetCollection.cpp000066400000000000000000000030401260756663100216620ustar00rootroot00000000000000#include "DatasetCollection.hpp" void DatasetCollection::MakeFieldRequired(std::string &fieldName) { includedFields[fieldName] = true; requiredFields[fieldName] = true; } void DatasetCollection::MakeFieldOptional(std::string &fieldName) { includedFields[fieldName] = true; requiredFields[fieldName] = false; } void DatasetCollection::InitializeAllFields(bool value) { size_t f; for (f = 0; f < fieldNames.size(); f++ ) { includedFields[fieldNames[f]] = value; } } void DatasetCollection::InitializeFields(std::vector &fieldList) { size_t i; for (i = 0; i < fieldList.size(); i++) { includedFields[fieldList[i]] = true; } } void DatasetCollection::InitializeFields(std::vector &fieldList) { size_t i; InitializeAllFields(false); for (i = 0; i < fieldList.size(); i++) { includedFields[fieldList[i]] = true; } } int DatasetCollection::IncludeField(std::string fieldName) { if (includedFields.find(fieldName) == includedFields.end()) { return 0; } else { includedFields[fieldName] = true; } return 1; } bool DatasetCollection::FieldIsIncluded(std::string fieldName) { if (includedFields.find(fieldName) == includedFields.end()) { return false; } else { return includedFields[fieldName]; } } bool DatasetCollection::ContainsField(std::string fieldName) { size_t f; for (f = 0; f < fieldNames.size(); f++) { if (fieldNames[f] == fieldName) return true; } return false; } blasr_libcpp-master/hdf/DatasetCollection.hpp000066400000000000000000000017041260756663100216740ustar00rootroot00000000000000#ifndef _BLASR_DATASET_COLLECTION_HPP_ #define _BLASR_DATASET_COLLECTION_HPP_ #include #include #include #include #include "HDFGroup.hpp" #include "HDFData.hpp" class DatasetCollection { public: std::vector fieldNames; std::map includedFields; std::map requiredFields; void MakeFieldRequired(std::string &fieldName); void MakeFieldOptional(string &fieldName); void InitializeAllFields(bool value); void InitializeFields(std::vector &fieldList); void InitializeFields(std::vector &fieldList); int IncludeField(std::string fieldName); bool FieldIsIncluded(std::string fieldName); bool ContainsField(std::string fieldName); template bool InitializeDataset(HDFGroup &group, T_Dataset &dataset, std::string datasetName); }; #include "DatasetCollectionImpl.hpp" #endif blasr_libcpp-master/hdf/DatasetCollectionImpl.hpp000066400000000000000000000016561260756663100225240ustar00rootroot00000000000000#ifndef _BLASR_DATASET_COLLECTION_IMPL_HPP_ #define _BLASR_DATASET_COLLECTION_IMPL_HPP_ template bool DatasetCollection::InitializeDataset(HDFGroup &group, T_Dataset &dataset, std::string datasetName) { // // Perform initialization of the dataset in a way that keep track // of which datasets in the collection are present. // if (includedFields[datasetName]) { if (dataset.Initialize(group, datasetName) == false) { if (requiredFields[datasetName]) { return false; } else { // // This field was supposed to be included but it either does // not exist or there was a problem otherwise in creating // it. Don't try and read from it later on. // includedFields[datasetName] = false; } } } return true; } #endif blasr_libcpp-master/hdf/HDF2DArray.hpp000066400000000000000000000012051260756663100200550ustar00rootroot00000000000000#ifndef _BLASR_HDF_2DARRAY_HPP_ #define _BLASR_HDF_2DARRAY_HPP_ #include "BufferedHDF2DArray.hpp" template class HDF2DArray : public BufferedHDF2DArray { public: void WriteRow(const T*data, int dataLength, int destRow=-1) { this->writeBuffer = (T*) data; this->bufferIndex = dataLength; this->bufferSize = dataLength; this->Flush(destRow); // // Reset status of buffer so that no methods are tricked into // thinking this is a valid pointer. // this->writeBuffer = NULL; this->bufferIndex = 0; this->bufferSize = 0; } }; #endif blasr_libcpp-master/hdf/HDFAlnGroup.hpp000066400000000000000000000017511260756663100203460ustar00rootroot00000000000000#ifndef _BLASR_HDF_ALN_GROUP_HPP_ #define _BLASR_HDF_ALN_GROUP_HPP_ #include "HDFArray.h" #include "HDFGroup.h" class HDFAlnGroup { public: HDFGroup alnGroup; HDFArray idArray; HDFStringArray pathArray; void Initialize(HDFGroup &parent) { alnGroup.Initialize(parent.group, "AlnGroup"); idArray.Initialize(alnGroup.group, "ID"); } void Read(AlnGroup &aln) { // Seem to write data in this HDFAlnGroup obj to AlnGroup & aln int idNElem = idArray.arrayLength; int pathNElem = pathArray.arrayLength; if (idNElem > 0) { aln.id.resize(idNElem); idArray.Read(0, idNElem); aln.path.resize(pathNElem); unsigned int i; for (i = 0; i < pathNElem; i++) { pathArray.Read(i, i+1, &aln.path[i]); } } } int AddPath(string &path) { int id; pathArray.Write(&path, 1); id = pathArray.size(); idArray.Write(&id, 1); return id; } ~HDFAlnGroup() { alnGroup.Close(); } }; #endif blasr_libcpp-master/hdf/HDFAlnGroupGroup.cpp000066400000000000000000000025731260756663100213610ustar00rootroot00000000000000#include "HDFAlnGroupGroup.hpp" using namespace std; bool HDFAlnGroupGroup::Create(HDFGroup &parent) { parent.AddGroup("AlnGroup"); if (alnGroup.Initialize(parent.group, "AlnGroup") == 0) { return 0; } idArray.Create(alnGroup, "ID"); pathArray.Create(alnGroup, "Path"); return true; } int HDFAlnGroupGroup::AddPath(string path) { pathArray.Write(&path, 1); unsigned int id = pathArray.size(); idArray.Write(&id, 1); int size = pathArray.size(); return size; } int HDFAlnGroupGroup::Initialize(HDFGroup &parent) { if (alnGroup.Initialize(parent.group, "AlnGroup") == 0) { cout << "ERROR, could not open /AlnGroup group." << endl; exit(1); } if (idArray.Initialize(alnGroup, "ID") == 0) { cout << "ERROR, could not open /AlnGroup/ID." << endl; exit(1); } if (pathArray.Initialize(alnGroup, "Path") == 0) { cout << "ERROR, could not open /AlnGroup/Path." << endl; exit(1); } return 1; } void HDFAlnGroupGroup::Read(AlnGroup &aln) { UInt nRow = idArray.size(); if (nRow > 0) { aln.id.resize(nRow); idArray.Read(0, nRow, &aln.id[0]); aln.path.resize(nRow); unsigned int i; for (i = 0; i < nRow; i++) { pathArray.Read(i, i+1, &aln.path[i]); } } } HDFAlnGroupGroup::~HDFAlnGroupGroup() { alnGroup.Close(); } blasr_libcpp-master/hdf/HDFAlnGroupGroup.hpp000066400000000000000000000007271260756663100213650ustar00rootroot00000000000000#ifndef _BLASR_HDF_ALN_GROUP_HPP_ #define _BLASR_HDF_ALN_GROUP_HPP_ #include #include "HDFArray.hpp" #include "HDFGroup.hpp" #include "saf/AlnGroup.hpp" class HDFAlnGroupGroup { public: HDFGroup alnGroup; HDFArray idArray; HDFStringArray pathArray; bool Create(HDFGroup &parent); int AddPath(std::string path); int Initialize(HDFGroup &parent); void Read(AlnGroup &aln); ~HDFAlnGroupGroup(); }; #endif blasr_libcpp-master/hdf/HDFAlnInfoGroup.cpp000066400000000000000000000070611260756663100211550ustar00rootroot00000000000000#include "HDFAlnInfoGroup.hpp" using namespace std; int HDFAlnInfoGroup::InitializeNumPasses() { numPasses.Initialize(alnInfoGroup, "NumPasses"); return 1; } void HDFAlnInfoGroup::InitializeDefaultColumnNames(vector &defaultColumnNames) { defaultColumnNames.push_back("AlnID"); defaultColumnNames.push_back("AlnGroupID"); defaultColumnNames.push_back("MovieID"); defaultColumnNames.push_back("RefGroupID"); defaultColumnNames.push_back("tStart"); defaultColumnNames.push_back("tEnd"); defaultColumnNames.push_back("RCRefStrand"); defaultColumnNames.push_back("HoleNumber"); defaultColumnNames.push_back("SetNumber"); defaultColumnNames.push_back("StrobeNumber"); defaultColumnNames.push_back("MoleculeID"); defaultColumnNames.push_back("rStart"); defaultColumnNames.push_back("rEnd"); defaultColumnNames.push_back("MapQV"); defaultColumnNames.push_back("nM"); defaultColumnNames.push_back("nMM"); defaultColumnNames.push_back("nIns"); defaultColumnNames.push_back("nDel"); defaultColumnNames.push_back("Offset_begin"); defaultColumnNames.push_back("Offset_end"); defaultColumnNames.push_back("nBackRead"); defaultColumnNames.push_back("nReadOverlap"); } bool HDFAlnInfoGroup::Create(HDFGroup &parent) { parent.AddGroup("AlnInfo"); // Make sure it was created, and intialize this group to reference the newly created one. if (alnInfoGroup.Initialize(parent.group, "AlnInfo") == 0) { return 0; } vector defaultColumnNames; InitializeDefaultColumnNames(defaultColumnNames); columnNames.Create(alnInfoGroup.group, "ColumnNames", defaultColumnNames); alnIndexArray.Create(&alnInfoGroup.group, "AlnIndex", defaultColumnNames.size()); return true; } int HDFAlnInfoGroup::Initialize(HDFGroup &rootGroup) { if (alnInfoGroup.Initialize(rootGroup.group, "AlnInfo") == 0) { return 0; } if (alnIndexArray.Initialize(alnInfoGroup, "AlnIndex") == 0) { return 0; } /* * This functionality should go into the python. if (!alnIndexArray.ContainsAttribute("ColumnNames")) { try { vector defaultColumnNames; InitializeDefaultColumnNames(defaultColumnNames); columnNames.Create(alnIndexArray.dataset, "ColumnNames", defaultColumnNames); } catch(Execption e) { // // If the dataset is not writable } } */ return 1; } HDFAlnInfoGroup::~HDFAlnInfoGroup() { alnInfoGroup.Close(); } // Return size of /AlnInfo/AlnIndex in KB UInt HDFAlnInfoGroup::GetAlnIndexSize() { return alnIndexArray.GetNRows() / 1024 * sizeof (unsigned int) * NCols; } void HDFAlnInfoGroup::Read(AlnInfo &alnInfo) { UInt nAlignments = alnIndexArray.GetNRows(); alnInfo.alignments.resize(nAlignments); UInt alignmentIndex; UInt alignmentRow[NCols]; for (alignmentIndex = 0; alignmentIndex < nAlignments; alignmentIndex++) { // Input the values. alnIndexArray.Read(alignmentIndex, alignmentIndex + 1, alignmentRow); alnInfo.alignments[alignmentIndex].StoreAlignmentIndex(alignmentRow, NCols); } } int HDFAlnInfoGroup::GetNAlignments() { return alnIndexArray.GetNRows(); } unsigned int HDFAlnInfoGroup::WriteAlnIndex(vector &aln) { alnIndexArray.WriteRow(&aln[0], aln.size()); return alnIndexArray.GetNRows(); } void HDFAlnInfoGroup::ReadCmpAlignment(UInt alignmentIndex, CmpAlignment &cmpAlignment) { UInt alignmentRow[NCols]; alnIndexArray.Read(alignmentIndex, alignmentIndex + 1, alignmentRow); cmpAlignment.StoreAlignmentIndex(alignmentRow, NCols); } blasr_libcpp-master/hdf/HDFAlnInfoGroup.hpp000066400000000000000000000021041260756663100211530ustar00rootroot00000000000000#ifndef _BLASR_HDF_ALN_INFO_GROUP_HPP_ #define _BLASR_HDF_ALN_INFO_GROUP_HPP_ #include #include #include #include "HDFGroup.hpp" #include "HDFAtom.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "saf/AlnInfo.hpp" #include "alignment/CmpAlignment.hpp" class HDFAlnInfoGroup { public: HDFGroup alnInfoGroup; HDF2DArray alnIndexArray; HDFArray startTime; static const int NCols=22; HDFArray numPasses; HDFAtom > columnNames; HDFAtom frameRate; int Initialize(HDFGroup &rootGroup); int InitializeNumPasses(); void InitializeDefaultColumnNames(std::vector &defaultColumnNames); bool Create(HDFGroup &parent); ~HDFAlnInfoGroup(); // Return size of /AlnInfo/AlnIndex in KB UInt GetAlnIndexSize(); void Read(AlnInfo &alnInfo); int GetNAlignments(); unsigned int WriteAlnIndex(std::vector &aln); void ReadCmpAlignment(UInt alignmentIndex, CmpAlignment &cmpAlignment); }; #endif blasr_libcpp-master/hdf/HDFArray.hpp000066400000000000000000000044101260756663100176700ustar00rootroot00000000000000#ifndef _BLASR_HDF_ARRAY_HPP_ #define _BLASR_HDF_ARRAY_HPP_ #include #include #include "H5Cpp.h" #include "HDFConfig.hpp" #include "HDFData.hpp" #include "BufferedHDFArray.hpp" #include "DNASequence.hpp" #include "FASTQSequence.hpp" /* * * Implementation of a 1-D array for IO from an HDF array. * This is templated, but specialized for a few data types, so that * the HDF data types do not need to be specified by anybody. * * Two examples of the usage of this class follow: * * HDFArray nElemArray; * nElemArray.Initialize(hdfFile, "PulseData/BaseCalls/ZMW/NumEvent"); * nElemArray.Read(i, i+1, &nElem); * * HDFArray qualArray; * qualArray.Initialize(hdfFile, "PulseData/BaseCalls/QualityValue"); * qualArray.Read(cur, cur + nElem, qual); * */ template class HDFArray : public BufferedHDFArray { public: HDFArray() : BufferedHDFArray() {} HDFArray(H5::CommonFG* _container, std::string _datasetName) : BufferedHDFArray(_container, _datasetName) {} /* * An unbuffered write is simply a write immediately followed by a flush. */ void WriteToPos(const T*data, int dataLength, UInt writePos) { this->writeBuffer = (T*) data; this->bufferIndex = dataLength; this->bufferSize = dataLength; this->Flush(false, writePos); ResetBuffer(); } void ResetBuffer() { this->writeBuffer = NULL; this->bufferIndex = 0; this->bufferSize = 0; } void Write(const T *data, int dataLength) { this->writeBuffer = (T*) data; this->bufferIndex = dataLength; this->bufferSize = dataLength; this->Flush(); // // Reset status of buffer so that no methods are tricked into // thinking this is a valid pointer. // ResetBuffer(); } ~HDFArray() {} }; class HDFStringArray: public HDFArray { public: void Read(UInt start, UInt end, std::string* dest) { std::vector tmpDestCharPtrs; if (end == start) return; assert(end > start); tmpDestCharPtrs.resize(end-start); // ReadCharArray(start, end, (char**) &tmpDestCharPtrs[0]); ReadCharArray(start, end, dest); } }; #endif blasr_libcpp-master/hdf/HDFAtom.cpp000066400000000000000000000115451260756663100175140ustar00rootroot00000000000000#include "HDFAtom.hpp" template<> void HDFAtom::Create(H5::H5Location &object, const std::string & atomName) { H5::StrType strType(0, H5T_VARIABLE); hsize_t defaultDims[] = {1}; H5::DataSpace defaultDataSpace(1, defaultDims); attribute = object.createAttribute(atomName.c_str(), strType, H5::DataSpace(H5S_SCALAR)); } #define DEFINE_TYPED_CREATE_ATOM(T, predtype) template<> \ void HDFAtom::TypedCreate(H5::H5Location &object, const std::string &atomName, H5::DataSpace &defaultDataSpace) { \ attribute = object.createAttribute(atomName.c_str(), (predtype), defaultDataSpace ); \ } DEFINE_TYPED_CREATE_ATOM(int, H5::PredType::NATIVE_INT) DEFINE_TYPED_CREATE_ATOM(unsigned int, H5::PredType::NATIVE_UINT) DEFINE_TYPED_CREATE_ATOM(unsigned char, H5::PredType::NATIVE_UINT8) DEFINE_TYPED_CREATE_ATOM(char, H5::PredType::NATIVE_INT8) DEFINE_TYPED_CREATE_ATOM(float, H5::PredType::NATIVE_FLOAT) DEFINE_TYPED_CREATE_ATOM(uint64_t, H5::PredType::STD_I64LE) template<> void HDFAtom >::Write(const std::vector vect) { hsize_t length = vect.size(); H5::DataType baseType = H5::PredType::NATIVE_INT; H5::ArrayType arrayDataType(baseType, 1, &length); attribute.write(arrayDataType, &((vect)[0])); } template<> void HDFAtom::Write(std::string value) { // H5::StrType strType(0, value.size()); H5::StrType strType(0, H5T_VARIABLE); attribute.write(strType, std::string(value.c_str())); } template<> void HDFAtom::Write(uint64_t value) { attribute.write( H5::PredType::STD_I64LE, &value); } template<> void HDFAtom::Write(int value) { attribute.write( H5::PredType::NATIVE_INT, &value); } template<> void HDFAtom::Write(unsigned int value) { attribute.write( H5::PredType::NATIVE_INT, &value); } template<> void HDFAtom::Write(unsigned char value) { attribute.write( H5::PredType::NATIVE_UINT8, &value); } template<> void HDFAtom::Write(char value) { attribute.write( H5::PredType::NATIVE_INT8, &value); } template<> void HDFAtom::Write(float value) { attribute.write( H5::PredType::NATIVE_FLOAT, &value); } template<> void HDFAtom::Read(std::string &value) { /* * Read in a std::string that has been stored either as an array or a * variable length std::string. To decide which, query the * isVariableStr() option. */ H5::StrType stringType = attribute.getStrType(); bool stringIsVariableLength = stringType.isVariableStr(); if (stringIsVariableLength) attribute.read(stringType, value); else { hsize_t stsize = attribute.getStorageSize(); value.resize(stsize); attribute.read(stringType, &value[0]); if (stsize > 0 and value[stsize-1] == '\0') { value.resize(stsize-1); } } } template<> void HDFAtom::Read(int &value) { H5::DataType intType(H5::PredType::NATIVE_INT); attribute.read(intType, &value); } template<> void HDFAtom::Read(uint64_t &value) { H5::DataType intType(H5::PredType::STD_I64LE); attribute.read(intType, &value); } template<> void HDFAtom::Read(unsigned int &value) { H5::DataType uintType(H5::PredType::NATIVE_UINT); attribute.read(uintType, &value); } template<> void HDFAtom::Read(float &value) { H5::DataType type(H5::PredType::NATIVE_FLOAT); attribute.read(type, &value); } template<> void HDFAtom >::Read(std::vector &values) { std::string value; /* * This attribute is an array of std::strings. They are read in by * storing pointers to std::strings in memory controlled by HDF. To read * the std::strings, read the pointers into a temporary array, then copy * those std::strings to the values array. This way when the values array * is destroyed, it will not try and get rid of space that is under * HDF control. */ H5::DataSpace attributeSpace = attribute.getSpace(); hsize_t nPoints; nPoints = attributeSpace.getSelectNpoints(); H5::DataType attrType = attribute.getDataType(); // necessary for attr.read() // Declare and initialize std::vector of pointers to std::string attribute list. std::vector ptrsToHDFControlledMemory; ptrsToHDFControlledMemory.resize(nPoints); // Copy the pointers. attribute.read(attrType, &ptrsToHDFControlledMemory[0]); // Copy the std::strings into memory the main program has control over. unsigned int i; for (i = 0; i < ptrsToHDFControlledMemory.size(); i++ ){ values.push_back(ptrsToHDFControlledMemory[i]); free(ptrsToHDFControlledMemory[i]); } } // Explict instantiate classes template class HDFAtom; template class HDFAtom; template class HDFAtom; template class HDFAtom; template class HDFAtom; template class HDFAtom; template class HDFAtom< std::string >; template class HDFAtom< std::vector >; template class HDFAtom< std::vector >; template class HDFAtom< std::vector >; blasr_libcpp-master/hdf/HDFAtom.hpp000066400000000000000000000123531260756663100175170ustar00rootroot00000000000000#ifndef _BLASR_HDF_ATOM_HPP_ #define _BLASR_HDF_ATOM_HPP_ #include #include #include #include #include "H5Cpp.h" #include "HDFConfig.hpp" #include "HDFGroup.hpp" #include "HDFData.hpp" template class HDFAtom : public HDFData { public: H5::Attribute attribute; HDFAtom() { isInitialized = false; } ~HDFAtom() { if (IsInitialized()) { attribute.close(); } } H5::H5Location *GetObject() { return NULL; } int Initialize(H5::H5Location &object, const std::string & attributeName, bool createIfMissing=false) { attribute = object.openAttribute(attributeName.c_str()); isInitialized = true; return 1; } int Initialize(HDFGroup &group, const std::string & attributeName, bool createIfMissing=false) { return Initialize(group.group, attributeName); } int Initialize(HDFData &data, const std::string & attributeName, bool createIfMissing=false) { return Initialize(data.dataset, attributeName); } int Initialize(H5::Group &object, const std::string & attributeName, bool createIfMissing=false) { try { attribute = object.openAttribute(attributeName.c_str()); } catch (H5::Exception e) { cout << "ERROR. Could not open attribute " << attributeName << endl; exit(1); } isInitialized = true; return 1; } int Initialize(H5::H5File &hdfFile, const std::string & groupName, const std::string & attributeName) { HDFGroup group; group.Initialize(hdfFile, groupName); attribute = group.group.openAttribute(attributeName.c_str()); isInitialized = true; return 1; } // // This handles creation of all non-std::string types. A specialization // for std::strings is provided below. // void Create(H5::H5Location &object, const std::string & atomName) { hsize_t defaultDims[] = {1}; H5::DataSpace defaultDataSpace(1, defaultDims); TypedCreate(object, atomName, defaultDataSpace); } void Create(H5::H5Location &object, const std::string & name, const std::string & value) { H5::StrType strType(0, value.size()); attribute = object.createAttribute(name.c_str(), strType, H5::DataSpace(0,NULL)); isInitialized = true; attribute.write(strType, value.c_str()); } void Create(H5::H5Location &object, const std::string & name, std::vector &vect) { hsize_t length = vect.size(); H5::ArrayType arrayDataType(H5::PredType::NATIVE_INT, 1, &length); attribute = object.createAttribute(name.c_str(), H5::PredType::NATIVE_INT, H5::DataSpace(1, &length)); attribute.write(H5::PredType::NATIVE_INT, &((vect)[0])); } void Create(H5::H5Location &object, const std::string & name, const std::vector &vect) { hsize_t length = vect.size(); H5::StrType strType(0,H5T_VARIABLE); H5::ArrayType arrayDataType(strType, 1, &length); attribute = object.createAttribute(name.c_str(), strType, H5::DataSpace(1, &length)); attribute.write(strType, &((vect)[0])); } void TypedCreate(H5::H5Location &object, const std::string &atomName, H5::DataSpace &dataSpace) { assert("Calling HDFAtom::typedCreate on an unsupported type" == 0); } void Write(T value) { assert("Calling HDFAtom::Write on an unsupported type" == 0); } void Read(T& value) { assert("Calling read on an unsupported type!" == 0); } }; // // Special create for std::strings. Since this uses a H5::StrType for the // typename rather than specifying a H5::PredType, it mertis its own // function. // template<> void HDFAtom::Create(H5::H5Location &object, const std::string & atomName); #define DECLARE_TYPED_CREATE_ATOM(T, predtype) template<> \ void HDFAtom::TypedCreate(H5::H5Location &object, const std::string & atomName, H5::DataSpace &defaultDataSpace); DECLARE_TYPED_CREATE_ATOM(int, H5::PredType::NATIVE_INT) DECLARE_TYPED_CREATE_ATOM(unsigned int, H5::PredType::NATIVE_UINT) DECLARE_TYPED_CREATE_ATOM(unsigned char, H5::PredType::NATIVE_UINT8) DECLARE_TYPED_CREATE_ATOM(char, H5::PredType::NATIVE_INT8) DECLARE_TYPED_CREATE_ATOM(float, H5::PredType::NATIVE_FLOAT) DECLARE_TYPED_CREATE_ATOM(uint64_t, H5::PredType::STD_I64LE) template<> void HDFAtom >::Write(const std::vector vect); template<> void HDFAtom::Write(std::string value); template<> void HDFAtom::Write(uint64_t value); template<> void HDFAtom::Write(int value); template<> void HDFAtom::Write(unsigned int value); template<> void HDFAtom::Write(unsigned char value); template<> void HDFAtom::Write(char value); template<> void HDFAtom::Write(float value); template<> void HDFAtom::Read(std::string &value); template<> void HDFAtom::Read(int &value); template<> void HDFAtom::Read(uint64_t &value); template<> void HDFAtom::Read(unsigned int &value); template<> void HDFAtom::Read(float &value); template<> void HDFAtom >::Read(std::vector &values); #endif blasr_libcpp-master/hdf/HDFAttributable.cpp000066400000000000000000000022341260756663100212310ustar00rootroot00000000000000#include #include "HDFAttributable.hpp" using namespace std; using namespace H5; void CallStoreAttributeName(H5Location &obj, string attrName, void *attrList){ ((vector*)attrList)->push_back(string(attrName)); } void HDFAttributable::StoreAttributeNames(H5Location &thisobject, const std::vector &attributeNames) { int nAttr = thisobject.getNumAttrs(); unsigned int bounds[2]; bounds[0] = 0; bounds[1] = nAttr; attributeNameList.clear(); thisobject.iterateAttrs(&CallStoreAttributeName, bounds, (void*) &attributeNames); } H5Location* HDFAttributable::GetObject() { return NULL; } int HDFAttributable::ContainsAttribute(const string & attributeName) { size_t i; std::vector tmpAttributeNames; try{ H5Location *obj = GetObject(); assert(obj != NULL); StoreAttributeNames(*obj, tmpAttributeNames); for (i = 0; i < tmpAttributeNames.size(); i++) { if (tmpAttributeNames[i] == attributeName) return true; } } catch (H5::Exception e) { //Failed to read attribute // e.printError(); } return false; } blasr_libcpp-master/hdf/HDFAttributable.hpp000066400000000000000000000010331260756663100212320ustar00rootroot00000000000000#ifndef _BLASR_HDF_ATTRIBUTABLE_HPP_ #define _BLASR_HDF_ATTRIBUTABLE_HPP_ #include #include #include "H5Cpp.h" void CallStoreAttributeName(H5::H5Location &obj, std::string attrName, void *attrListPtr); class HDFAttributable { public: std::vector attributeNameList; void StoreAttributeNames(H5::H5Location &thisobject, const std::vector &attributeNames); virtual H5::H5Location* GetObject(); int ContainsAttribute(const std::string & attributeName); }; #endif blasr_libcpp-master/hdf/HDFBasReader.cpp000066400000000000000000000021521260756663100204360ustar00rootroot00000000000000#include "HDFBasReader.hpp" // // Below is sample code for using the bas reader to read in sequences // from a .bas.h5 or .pls.h5 file. // One may select which quality value fields to read. By default, // none are read in. To read in the rich quality values (insertionQV, // deletionQV, substitutionQV, mergeQV, substitutionTag, deletionTag), // call InitializeDefaultIncludedFields() BEFORE initializing the // reader on the file name. // //#include "data/hdf/HDFBasReader.h" //#include "SMRTSequence.h" //#include // //int main(int argc, char* argv[]) { // // string basFile = argv[1]; // // HDFBasReader reader; // reader.InitializeDefaultIncludedFields(); // reader.Initialize(basFile); // // SMRTSequence read; // // while(reader.GetNext(read)) { // read.PrintQualSeq(cout); // } // // // return 0; //} // // * If you wanted to read only fasta sequences and not fastq, use: // // FASTASequence read; // while (reader.GetNext(read) { // read.PritnSeq(cout); // } // int HDFSmrtReader::Advance(int nSteps) { int retVal; retVal = ((T_HDFBasReader*)this)->Advance(nSteps); return retVal; } blasr_libcpp-master/hdf/HDFBasReader.hpp000066400000000000000000001204651260756663100204530ustar00rootroot00000000000000#ifndef _BLASR_HDF_BAS_READER_HPP_ #define _BLASR_HDF_BAS_READER_HPP_ #include #include #include #include #include #include "Enumerations.h" #include "FASTQSequence.hpp" #include "SMRTSequence.hpp" #include "VectorUtils.hpp" #include "ChangeListID.hpp" #include "reads/BaseFile.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFAtom.hpp" #include "HDFGroup.hpp" #include "HDFZMWReader.hpp" #include "HDFScanDataReader.hpp" #include "HDFPulseDataFile.hpp" #include "DatasetCollection.hpp" // // Below is sample code for using the bas reader to read in sequences // from a .bas.h5 or .pls.h5 file. // One may select which quality value fields to read. By default, // none are read in. To read in the rich quality values (insertionQV, // deletionQV, substitutionQV, mergeQV, substitutionTag, deletionTag), // call InitializeDefaultIncludedFields() BEFORE initializing the // reader on the file name. // //#include "data/hdf/HDFBasReader.h" //#include "SMRTSequence.h" //#include // //int main(int argc, char* argv[]) { // // string basFile = argv[1]; // // HDFBasReader reader; // reader.InitializeDefaultIncludedFields(); // reader.Initialize(basFile); // // SMRTSequence read; // // while(reader.GetNext(read)) { // read.PrintQualSeq(cout); // } // // // return 0; //} // // * If you wanted to read only fasta sequences and not fastq, use: // // FASTASequence read; // while (reader.GetNext(read) { // read.PritnSeq(cout); // } // template class T_HDFBasReader : public DatasetCollection, public HDFPulseDataFile { public: DNALength curBasePos; int curRead; unsigned int nBases; //bool readPulseInformation; bool hasRegionTable; HDFArray zmwXCoordArray; HDFArray zmwYCoordArray; HDFArray baseArray; HDFArray deletionQVArray; HDFArray deletionTagArray; HDFArray insertionQVArray; HDFArray substitutionTagArray; HDFArray substitutionQVArray; HDFArray mergeQVArray; HDFArray qualArray; HDFArray simulatedCoordinateArray; HDFArray simulatedSequenceIndexArray; HDFArray basWidthInFramesArray; HDFArray preBaseFramesArray; HDFArray pulseIndexArray; HDFArray holeIndexArray; // useful ZMWMetrics data HDF2DArray hqRegionSNRMatrix; HDFArray readScoreArray; HDFGroup baseCallsGroup; HDFGroup zmwMetricsGroup; HDFGroup zmwGroup; // HDFArray pulseWidthArray; This is deprecated HDFAtom changeListIDAtom; //bool useWidthInFrames, usePulseIndex, bool useZmwReader; // bool usePulseWidth; This is deprecated std::string baseCallsGroupName; std::string zmwMetricsGroupName; bool qualityFieldsAreCritical; //bool useHoleNumbers, useHoleStatus; //bool usePreBaseFrames; bool useBasHoleXY; //bool useBasecall; //bool useQuality; bool readBasesFromCCS; ChangeListID changeList; QVScale qvScale; PlatformId GetPlatform() { return scanDataReader.platformId; } std::string GetMovieName() { return scanDataReader.GetMovieName(); } int GetReadAt(int index, SMRTSequence &read) { // // The first time this is called there may be no table of read // offset positions. Check for that and build if it does not // exist. // if (preparedForRandomAccess == false) { PrepareForRandomAccess(); } curRead = index; curBasePos = eventOffset[index]; zmwReader.curZMW = index; return GetNext(read); } std::string GetRunCode() { return scanDataReader.GetRunCode(); } T_HDFBasReader() { curRead = 0; curBasePos = 0; nBases = 0; preparedForRandomAccess = false; readBasesFromCCS = false; baseCallsGroupName = "BaseCalls"; zmwMetricsGroupName = "ZMWMetrics"; qualityFieldsAreCritical = true; useZmwReader = false; useBasHoleXY = true; hasRegionTable = false; qvScale = POverOneMinusP; //default 0 = POverOneMinusP fieldNames.push_back("Basecall"); fieldNames.push_back("DeletionQV"); fieldNames.push_back("DeletionTag"); fieldNames.push_back("InsertionQV"); fieldNames.push_back("SubstitutionTag"); fieldNames.push_back("SubstitutionQV"); fieldNames.push_back("QualityValue"); fieldNames.push_back("WidthInFrames"); fieldNames.push_back("PulseIndex"); fieldNames.push_back("PreBaseFrames"); fieldNames.push_back("MergeQV"); fieldNames.push_back("SimulatedCoordinate"); fieldNames.push_back("SimulatedSequenceIndex"); // Useful ZMWMetrics fields fieldNames.push_back("HQRegionSNR"); fieldNames.push_back("ReadScore"); // Start out with no fields being read. InitializeAllFields(false); // Then by default always read bases. IncludeField("Basecall"); } void InitializeDefaultCCSIncludeFields() { InitializeAllFields(false); IncludeField("Basecall"); IncludeField("DeletionQV"); IncludeField("DeletionTag"); IncludeField("InsertionQV"); IncludeField("SubstitutionQV"); IncludeField("SubstitutionTag"); IncludeField("QualityValue"); } void InitializeDefaultRawBasIncludeFields() { IncludeField("Basecall"); IncludeField("QualityValue"); IncludeField("InsertionQV"); IncludeField("DeletionQV"); IncludeField("MergeQV"); IncludeField("SubstitutionQV"); IncludeField("DeletionTag"); IncludeField("SubstitutionTag"); // used in IDSScoreFunction // FIXME: The following QVs are not really used by downstream // analysis such as Quiver, make them optional to include. IncludeField("WidthInFrames"); IncludeField("PulseIndex"); IncludeField("PreBaseFrames"); IncludeField("HQRegionSNR"); IncludeField("ReadScore"); } void InitializeDefaultIncludedFields() { if (readBasesFromCCS == false) { InitializeDefaultRawBasIncludeFields(); } else { InitializeDefaultCCSIncludeFields(); } } void InitializeDefaultRequiredFields() { requiredFields["Basecall"] = true; } bool HasRegionTable() { return hasRegionTable; } bool HasSimulatedCoordinatesStored() { if (baseCallsGroup.ContainsObject("SimulatedCoordinate") and baseCallsGroup.ContainsObject("SimulatedSequenceIndex")) { return true; } else { return false; } } void SetReadBasesFromCCS() { InitializeDefaultCCSIncludeFields(); readBasesFromCCS = true; } void GetChangeListID(std::string &changeListID) { if (changeListIDAtom.IsInitialized()) { changeListIDAtom.Read(changeListID); } else { changeListID = "0"; } } /// Get BindingKit, SequencingKit and Base Caller Version. void GetChemistryTriple(std::string & bindingKit, std::string & sequencingKit, std::string & baseCallerVersion) { scanDataReader.ReadBindingKit(bindingKit); scanDataReader.ReadSequencingKit(sequencingKit); baseCallerVersion = changeList.GetVersion(); } int InitializeForReadingBases() { // // Initialize root group + scan data information. // if (HDFPulseDataFile::Initialize(rootGroupPtr) == 0) return 0; // // Open the base group, this contains all the required information. // if (readBasesFromCCS) { baseCallsGroupName = "ConsensusBaseCalls"; } if (pulseDataGroup.ContainsObject(baseCallsGroupName) == 0 or baseCallsGroup.Initialize(pulseDataGroup.group, baseCallsGroupName) == 0) { return 0; } if (baseCallsGroup.ContainsAttribute("ChangeListID")) { changeListIDAtom.Initialize(baseCallsGroup.group, "ChangeListID"); std::string changeListIdString; GetChangeListID(changeListIdString); changeList = ChangeListID(changeListIdString); qvScale = changeList.DetermineQVScaleFromChangeListID(); } if (pulseDataGroup.ContainsObject("Regions")) { hasRegionTable = true; } else { hasRegionTable = false; } // // Initialize read and quality arrays for reading. // if (this->InitializeSequenceFields(baseCallsGroup) == 0) { return 0; } // // Initialize simulated coordinate fields if they exist. They are // automatically opened and read from when they are in the bas.h5 // file since they are used for debugging. // if (baseCallsGroup.ContainsObject("SimulatedCoordinate")) { includedFields["SimulatedCoordinate"] = true; InitializeDataset(baseCallsGroup, simulatedCoordinateArray, "SimulatedCoordinate"); } else { includedFields["SimulatedCoordinate"] = false; } if (baseCallsGroup.ContainsObject("SimulatedSequenceIndex")) { includedFields["SimulatedSequenceIndex"] = true; InitializeDataset(baseCallsGroup, simulatedSequenceIndexArray, "SimulatedSequenceIndex"); } else { includedFields["SimulatedSequenceIndex"] = false; } nBases = baseArray.arrayLength; return 1; } int InitializeCommon() { // // Initialize the smallest set of fields required to import bases. // if (InitializeForReadingBases() == 0) { return 0; } return 1; } template void InitializeRequiredField(HDFGroup &group, std::string arrayName, T_Dataset &field) { if (group.ContainsObject(arrayName)) { if (field.Initialize(group, arrayName) != 0) { return; } } cout << "ERROR. Could not initialize dataset " << arrayName << endl; exit(1); } template int InitializeField(HDFGroup &rootGroup, std::string arrayName, T &field, bool &initialized) { initialized = false; if (rootGroup.ContainsObject(arrayName)) { if (field.Initialize(rootGroup, arrayName) != 0) { initialized = true; return true; } } return false; } template int InitializeAttribute(HDFGroup &rootGroup, std::string arrayName, T &field, bool &initialized, bool fieldIsCritical = true) { int success = 1; initialized = false; if (rootGroup.ContainsAttribute(arrayName)) { if (field.Initialize(rootGroup, arrayName) == 0) { success = 0; } else { initialized = true; } } else { // the field does not exist success = 0; } if (fieldIsCritical) { return success; } else { return 1; } } int InitializeSequenceFields(HDFGroup &baseCallsGroup) { // The only field that is absoultely required is Basecall if (baseArray.InitializeForReading(baseCallsGroup, "Basecall") == false) return 0; // // These fields are not always present in bas.h5 files. // // std::string fieldName = "QualityValue"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not qualArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "InsertionQV"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not insertionQVArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "DeletionQV"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not deletionQVArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "DeletionTag"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not deletionTagArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "SubstitutionQV"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not substitutionQVArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "SubstitutionTag"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not substitutionTagArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "PreBaseFrames"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not preBaseFramesArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "PulseIndex"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not pulseIndexArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "WidthInFrames"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not basWidthInFramesArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; fieldName = "MergeQV"; if (baseCallsGroup.ContainsObject(fieldName)) { if (includedFields[fieldName] and not mergeQVArray.InitializeForReading(baseCallsGroup, fieldName)) return 0; } else includedFields[fieldName] = false; if (not baseCallsGroup.ContainsObject(zmwMetricsGroupName) or not zmwMetricsGroup.Initialize(baseCallsGroup.group, zmwMetricsGroupName)) { includedFields["HQRegionSNR"] = false; includedFields["ReadScore"] = false; } else { if (includedFields["HQRegionSNR"]) { if (not zmwMetricsGroup.ContainsObject("HQRegionSNR") or not hqRegionSNRMatrix.InitializeForReading(zmwMetricsGroup, "HQRegionSNR") or GetDatasetNDim(zmwMetricsGroup.group, "HQRegionSNR") != 2 or hqRegionSNRMatrix.GetNCols() != 4) { includedFields["HQRegionSNR"] = false; } else if (not useScanData) { includedFields["HQRegionSNR"] = false; std::cerr << "WARNING: could not read HQRegionSNR because ScanData is absent!" << std::endl; } } if (includedFields["ReadScore"] and (not zmwMetricsGroup.ContainsObject("ReadScore") or not readScoreArray.InitializeForReading(zmwMetricsGroup, "ReadScore"))) { includedFields["ReadScore"] = false; } } return 1; } int InitializeAstro() { useBasHoleXY = true; return 1; } int InitializeSpringfield() { // // For now, no special initialization is required. // return 1; } int Initialize(HDFGroup *rootGroupP) { rootGroupPtr= rootGroupP; return Initialize(); } int Initialize() { // Return 0 if any of the array inializations do not work. if (InitializeCommon() == 0) { return 0; } // Must have zmw information. if (zmwReader.Initialize(&baseCallsGroup) == 0) { return 0; } else { useZmwReader = true; } // // Get information about the chip - how many zmw's, the hole // number indices to keep track of reads, etc.. // nReads = zmwReader.numEventArray.arrayLength; if (scanDataReader.platformId == Astro) { if (InitializeAstro() == 0) { return 0; } } else if (scanDataReader.platformId == Springfield) { if (InitializeSpringfield() == 0) { return 0; } } /* * Initialize state variables. */ curBasePos = 0; curRead = 0; /* * All ok, return that. */ return 1; } int InitializeHDFFile(std::string hdfBasFileName, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT) { /* * Initialize access to the HDF file. For reading bas files, this * involves: * - Opening the file, and initializing both base and zmw grops. */ if (OpenHDFFile(hdfBasFileName, fileAccPropList) == 0) { return 0; } if (rootGroup.Initialize(hdfBasFile, "/") == 0) { return 0; } rootGroupPtr = &rootGroup; return 1; } int Initialize(std::string hdfBasFileName, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT) { int init = InitializeHDFFile(hdfBasFileName, fileAccPropList); if (init == 0) return 0; return Initialize(); } int GetNumReads() { return nReads; } void BuildReadTitle(std::string movieTitle, unsigned int holeNumber, std::string &readTitle, unsigned int simIndex=0, unsigned int simCoordinate=0) { std::stringstream readTitleStrm; readTitleStrm << movieTitle << "/" << holeNumber; readTitle = readTitleStrm.str(); } int GetNext(FASTASequence &seq) { if (curRead == nReads) { return 0; } int seqLength; try { seqLength = GetNextWithoutPosAdvance(seq); } catch(H5::DataSetIException e) { cout << "ERROR, could not read base calls for FASTA Sequence " << seq.GetName() << endl; exit(1); } curBasePos += seqLength; return 1; } int GetNext(FASTQSequence &seq) { try { if (curRead == nReads) { return 0; } int seqLength = GetNextWithoutPosAdvance(seq); seq.length = seqLength; if (seqLength > 0 ) { if (includedFields["QualityValue"]) { seq.AllocateQualitySpace(seqLength); qualArray.Read((int)curBasePos, (int) curBasePos + seqLength, (unsigned char*) seq.qual.data); } if (includedFields["DeletionQV"]) { GetNextDeletionQV(seq); } if (includedFields["DeletionTag"]) { GetNextDeletionTag(seq); } if (includedFields["InsertionQV"]) { GetNextInsertionQV(seq); } if (includedFields["SubstitutionQV"]) { GetNextSubstitutionQV(seq); } if (includedFields["SubstitutionTag"]) { GetNextSubstitutionTag(seq); } if (includedFields["MergeQV"]) { GetNextMergeQV(seq); } } seq.SetQVScale(qvScale); curBasePos += seqLength; } catch(H5::DataSetIException e) { cout << "ERROR, could not read quality metrics for FASTQ Sequence " << seq.GetName() << endl; exit(1); } return 1; } // // Read a SMRTSequence, but only the basecalls and maybe the QVs. This // makes pls2fasta more efficient. // int GetNextBases(SMRTSequence &seq, bool readQVs) { try { if (curRead == nReads) { return 0; } // must be done before GetNextWithoutPosAdvance (which increments curRead) // get ZMWMetrics fields if (includedFields["HQRegionSNR"]) { GetNextHQRegionSNR(seq); } if (includedFields["ReadScore"]) { GetNextReadScore(seq); } int seqLength = GetNextWithoutPosAdvance(seq); seq.length = seqLength; if(readQVs) { if (seqLength > 0 ) { if (includedFields["QualityValue"]) { seq.AllocateQualitySpace(seqLength); qualArray.Read((int)curBasePos, (int) curBasePos + seqLength, (unsigned char*) seq.qual.data); } } } seq.SetQVScale(qvScale); curBasePos += seqLength; seq.SubreadStart(0).SubreadEnd(seq.length); zmwReader.GetNext(seq.zmwData); } catch (H5::DataSetIException e) { cout << "ERROR, could not read bases or QVs for SMRTSequence " << seq.GetName() << endl; exit(1); } return 1; } // // Reading of SMRT Sequences reads both the sequence fields, and the // fields with ZMW information for identification of this read. // int GetNext(SMRTSequence &seq) { // // Read in quality values. // int retVal; DNALength curBasPosCopy = curBasePos; // // Getting next advances the curBasPos to the end of // the current sequence. // try { // must check before looking at HQRegionSNR/ReadScore!! if (curRead == nReads) { return 0; } // // Bail now if the file is already done // if ((retVal = this->GetNext((FASTQSequence&)seq)) == 0) { return 0; } // GetNext calls GetNextWithoutPosAdvance, which increments curRead curRead--; if (includedFields["HQRegionSNR"]) { GetNextHQRegionSNR(seq); } if (includedFields["ReadScore"]) { GetNextReadScore(seq); } curRead++; DNALength nextBasePos = curBasePos; curBasePos = curBasPosCopy; if (includedFields["WidthInFrames"] ) { assert(nextBasePos <= basWidthInFramesArray.arrayLength); GetNextWidthInFrames(seq); } if (includedFields["PreBaseFrames"]) { GetNextPreBaseFrames(seq); } if (includedFields["PulseIndex"]) { GetNextPulseIndex(seq); } curBasePos = nextBasePos; // // By default, the subread of a read without subread information is // the whole read. // seq.SubreadStart(0).SubreadEnd(seq.length); zmwReader.GetNext(seq.zmwData); } catch(H5::DataSetIException e) { cout << "ERROR, could not read pulse metrics for SMRTSequence " << seq.GetName() << endl; exit(1); } return retVal; } void GetAllPulseIndex(std::vector &pulseIndex) { CheckMemoryAllocation(pulseIndexArray.arrayLength, maxAllocNElements, "PulseIndex"); pulseIndex.resize(pulseIndexArray.arrayLength); pulseIndexArray.Read(0, pulseIndexArray.arrayLength, &pulseIndex[0]); } void GetAllPreBaseFrames(std::vector &preBaseFrames) { CheckMemoryAllocation(preBaseFramesArray.arrayLength, maxAllocNElements, "PreBaseFrames"); preBaseFrames.resize(nBases); preBaseFramesArray.Read(0, nBases, &preBaseFrames[0]); } void GetAllWidthInFrames(std::vector &widthInFrames) { CheckMemoryAllocation(basWidthInFramesArray.arrayLength, maxAllocNElements, "WidthInFrames"); widthInFrames.resize(nBases); basWidthInFramesArray.Read(0, nBases, &widthInFrames[0]); } int GetAllHoleStatus(std::vector &holeStatus) { CheckMemoryAllocation(zmwReader.holeStatusArray.arrayLength, maxAllocNElements, "HoleStatus (base)"); holeStatus.resize(nReads); zmwReader.holeStatusArray.Read(0,nReads, (unsigned char*)&holeStatus[0]); return holeStatus.size(); } int GetAllReadLengths(std::vector &readLengths) { readLengths.resize(nReads); zmwReader.numEventArray.ReadDataset(readLengths); return readLengths.size(); } int Advance(int nSeq) { int i; // cannot advance past the end of this file if (curRead + nSeq >= nReads) { return 0; } for (i = curRead; i < curRead + nSeq && i < nReads; i++ ) { int seqLength; zmwReader.numEventArray.Read(i, i+1, &seqLength); curBasePos += seqLength; } curRead += nSeq; zmwReader.Advance(nSeq); return curRead; } int GetNextWithoutPosAdvance(FASTASequence &seq) { int seqLength; zmwReader.numEventArray.Read(curRead, curRead+1, &seqLength); seq.length = 0; seq.seq = NULL; if (includedFields["Basecall"]) { if (seqLength > 0) { ResizeSequence(seq, seqLength); baseArray.Read(curBasePos, curBasePos + seqLength, (unsigned char*) seq.seq); } } std::string readTitle; unsigned int holeNumber; zmwReader.holeNumberArray.Read(curRead, curRead+1, &holeNumber); unsigned char holeStatus; zmwReader.holeStatusArray.Read(curRead, curRead+1, &holeStatus); DNALength simIndex=0, simCoordinate=0; if (includedFields["SimulatedSequenceIndex"] == true) { simulatedSequenceIndexArray.Read(curRead,curRead+1,&simIndex); } if (includedFields["SimulatedCoordinate"] == true) { simulatedCoordinateArray.Read(curRead, curRead+1, &simCoordinate); } BuildReadTitle(scanDataReader.GetMovieName(), holeNumber, readTitle, simIndex, simCoordinate); seq.CopyTitle(readTitle); curRead++; return seqLength; } int GetNextDeletionQV(FASTQSequence &seq) { if (seq.length == 0) return 0; seq.AllocateDeletionQVSpace(seq.length); deletionQVArray.Read((int)curBasePos, (int) curBasePos + seq.length, (unsigned char*) seq.deletionQV.data); return seq.length; } int GetNextMergeQV(FASTQSequence &seq) { if (seq.length == 0) return 0; seq.AllocateMergeQVSpace(seq.length); mergeQVArray.Read((int)curBasePos, (int) curBasePos + seq.length, (unsigned char*) seq.mergeQV.data); return seq.length; } int GetNextDeletionTag(FASTQSequence &seq) { if (seq.length == 0) return 0; seq.AllocateDeletionTagSpace(seq.length); deletionTagArray.Read((int)curBasePos, (int) curBasePos + seq.length, (unsigned char*) seq.deletionTag); return seq.length; } int GetNextInsertionQV(FASTQSequence &seq) { if (seq.length == 0) return 0; seq.AllocateInsertionQVSpace(seq.length); insertionQVArray.Read((int)curBasePos, (int) curBasePos + seq.length, (unsigned char*) seq.insertionQV.data); return seq.length; } int GetNextWidthInFrames(SMRTSequence &seq) { if (seq.length == 0) return 0; if (seq.widthInFrames) { delete [] seq.widthInFrames; seq.widthInFrames = NULL; } seq.widthInFrames = ProtectedNew(seq.length); basWidthInFramesArray.Read((int)curBasePos, (int) curBasePos + seq.length, (HalfWord*) seq.widthInFrames); return seq.length; } int GetNextPreBaseFrames(SMRTSequence &seq) { if (seq.length == 0) return 0; if (seq.preBaseFrames) { delete [] seq.preBaseFrames; seq.preBaseFrames = NULL; } seq.preBaseFrames = ProtectedNew(seq.length); preBaseFramesArray.Read((int)curBasePos, (int) curBasePos + seq.length, (HalfWord*) seq.preBaseFrames); return seq.length; } int GetNextPulseIndex(SMRTSequence &seq) { if (seq.length == 0) return 0; if (seq.pulseIndex) { delete [] seq.pulseIndex; seq.pulseIndex = NULL; } seq.pulseIndex = ProtectedNew(seq.length); pulseIndexArray.Read((int)curBasePos, (int) curBasePos + seq.length, (int*) seq.pulseIndex); return seq.length; } int GetNextHQRegionSNR(SMRTSequence &seq) { float snrs[4]; hqRegionSNRMatrix.Read(curRead, curRead + 1, snrs); // Get BaseMap from ScanData. std::map baseMap = scanDataReader.BaseMap(); assert(ScanData::IsValidBaseMap(baseMap)); seq.HQRegionSnr('A', snrs[baseMap['A']]) .HQRegionSnr('C', snrs[baseMap['C']]) .HQRegionSnr('G', snrs[baseMap['G']]) .HQRegionSnr('T', snrs[baseMap['T']]); return 4; } int GetNextReadScore(SMRTSequence &seq) { readScoreArray.Read(curRead, curRead + 1, &seq.readScore); return 1; } int GetNextSubstitutionQV(FASTQSequence &seq) { if (seq.length == 0) return 0; seq.AllocateSubstitutionQVSpace(seq.length); substitutionQVArray.Read((int)curBasePos, (int) curBasePos + seq.length, (unsigned char*) seq.substitutionQV.data); return seq.length; } int GetNextSubstitutionTag(FASTQSequence &seq) { if (seq.length == 0) return 0; seq.AllocateSubstitutionTagSpace(seq.length); substitutionTagArray.Read((int)curBasePos, (int) curBasePos + seq.length, (unsigned char*) seq.substitutionTag); return seq.length; } void Close() { baseCallsGroup.Close(); zmwXCoordArray.Close(); zmwYCoordArray.Close(); baseArray.Close(); qualArray.Close(); if (useZmwReader) { zmwReader.Close(); } if (includedFields["DeletionQV"]) { deletionQVArray.Close(); } if (includedFields["DeletionTag"]) { deletionTagArray.Close(); } if (includedFields["MergeQV"]) { mergeQVArray.Close(); } if (includedFields["InsertionQV"]) { insertionQVArray.Close(); } if (includedFields["SubstitutionTag"]) { substitutionTagArray.Close(); } if (includedFields["SubstitutionQV"]) { substitutionQVArray.Close(); } if (includedFields["WidthInFrames"]) { basWidthInFramesArray.Close(); } if (includedFields["PreBaseFrames"]) { preBaseFramesArray.Close(); } if (includedFields["PulseIndex"]) { pulseIndexArray.Close(); } // ZMWMetrics fields if (includedFields["HQRegionSNR"]) { hqRegionSNRMatrix.Close(); } if (includedFields["ReadScore"]) { readScoreArray.Close(); } HDFPulseDataFile::Close(); } void ReadAllHoleXY(BaseFile &baseFile) { baseFile.holeXY.resize(nReads); int i; for (i = 0; i < nReads; i++) { zmwReader.xyArray.Read(i,i+1, baseFile.holeXY[i].xy); } } // // Return size of an entire field. // UInt GetFieldSize(const std::string & field) { if (not includedFields[field]) { cout << "ERROR, field [" << field << "] is not included in the base file." << endl; exit(1); } if (field == "Basecall") { return baseArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "QualityValue") { return qualArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "DeletionQV") { return deletionQVArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "DeletionTag") { return deletionTagArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "MergeQV") { return mergeQVArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "InsertionQV") { return insertionQVArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "SubstitutionQV") { return substitutionQVArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "SubstitutionTag") { return substitutionTagArray.arrayLength / 1024 * sizeof(unsigned char); } else if (field == "WidthInFrames") { return basWidthInFramesArray.arrayLength / 1024 * sizeof(uint16_t); } else if (field == "PreBaseFrames") { return preBaseFramesArray.arrayLength / 1024 * sizeof(uint16_t); } else if (field == "PulseIndex") { return pulseIndexArray.arrayLength / 1024 * sizeof(int); } else { cout << "ERROR, field [" << field << "] is not supported. " << endl ; exit(1); } } // // Read an entire field. // void ReadField(BaseFile & baseFile, const std::string & field) { if (not includedFields[field]) { cout << "ERROR, field [" << field << "] is not included in the base file." << endl; exit(1); } if (field == "Basecall") { assert(nBases == baseArray.arrayLength); baseArray.ReadDataset(baseFile.baseCalls); } else if (field == "QualityValue") { qualArray.ReadDataset(baseFile.qualityValues); } else if (field == "DeletionQV") { deletionQVArray.ReadDataset(baseFile.deletionQV); } else if (field == "DeletionTag") { deletionTagArray.ReadDataset(baseFile.deletionTag); } else if (field == "MergeQV") { mergeQVArray.ReadDataset(baseFile.mergeQV); } else if (field == "InsertionQV") { insertionQVArray.ReadDataset(baseFile.insertionQV); } else if (field == "SubstitutionQV") { substitutionQVArray.ReadDataset(baseFile.substitutionQV); } else if (field == "SubstitutionTag") { substitutionTagArray.ReadDataset(baseFile.substitutionTag); } else if (field == "WidthInFrames") { basWidthInFramesArray.ReadDataset(baseFile.basWidthInFrames); } else if (field == "PreBaseFrames") { preBaseFramesArray.ReadDataset(baseFile.preBaseFrames); } else if (field == "PulseIndex") { pulseIndexArray.ReadDataset(baseFile.pulseIndex); } else { cout << "ERROR, field [" << field << "] is not supported. " << endl ; exit(1); } } // // Clear memory allocated for a field // void ClearField(BaseFile & baseFile, const std::string & field) { if (not includedFields[field]) { cout << "ERROR, field [" << field << "] is not included in the base file." << endl; exit(1); } if (field == "Basecall") { ClearMemory(baseFile.baseCalls); } else if (field == "QualityValue") { ClearMemory(baseFile.qualityValues); } else if (field == "DeletionQV") { ClearMemory(baseFile.deletionQV); } else if (field == "DeletionTag") { ClearMemory(baseFile.deletionTag); } else if (field == "MergeQV") { ClearMemory(baseFile.mergeQV); } else if (field == "InsertionQV") { ClearMemory(baseFile.insertionQV); } else if (field == "SubstitutionQV") { ClearMemory(baseFile.substitutionQV); } else if (field == "SubstitutionTag") { ClearMemory(baseFile.substitutionTag); } else if (field == "WidthInFrames") { ClearMemory(baseFile.basWidthInFrames); } else if (field == "PreBaseFrames") { ClearMemory(baseFile.preBaseFrames); } else if (field == "PulseIndex") { ClearMemory(baseFile.pulseIndex); } else { cout << "ERROR, field [" << field << "] is supported. " << endl ; exit(1); } } // // Initialization for reading a base file. // void ReadBaseFileInit(BaseFile & baseFile) { if (scanDataReader.fileHasScanData) { scanDataReader.Read(baseFile.scanData); } baseFile.nReads = nReads; if (useBasHoleXY) { ReadAllHoleXY(baseFile); } GetAllHoleNumbers(baseFile.holeNumbers); GetAllHoleStatus(baseFile.holeStatus); zmwReader.numEventArray.ReadDataset(baseFile.readLengths); // // Cache the start positions of all reads. // assert(baseFile.nReads == baseFile.readLengths.size()); baseFile.readStartPositions.resize(baseFile.readLengths.size()+1); if ( baseFile.readLengths.size() > 0 ) { int i; baseFile.readStartPositions[0] = 0; for (i = 1; i < baseFile.readLengths.size()+1; i++) { baseFile.readStartPositions[i] = (baseFile.readStartPositions[i-1] + baseFile.readLengths[i-1]); } } } // // Read a base file. // void ReadBaseFile(BaseFile &baseFile) { ReadBaseFileInit(baseFile); if (includedFields["Basecall"]) { baseFile.baseCalls.resize(nBases); baseArray.Read(0,nBases, &baseFile.baseCalls[0]); } /* * This can probably be fixed eventually with an object factory or * collection of some sorts. */ if (includedFields["WidthInFrames"]) { basWidthInFramesArray.ReadDataset(baseFile.basWidthInFrames); } if (includedFields["PreBaseFrames"]) { preBaseFramesArray.ReadDataset(baseFile.preBaseFrames); } if (includedFields["PulseIndex"]) { pulseIndexArray.ReadDataset(baseFile.pulseIndex); } if (includedFields["QualityValue"]) { qualArray.ReadDataset(baseFile.qualityValues); } if (includedFields["InsertionQV"]) { insertionQVArray.ReadDataset(baseFile.insertionQV); } if (includedFields["SubstitutionTag"]) { substitutionTagArray.ReadDataset(baseFile.substitutionTag); } if (includedFields["SubstitutionQV"]) { substitutionQVArray.ReadDataset(baseFile.substitutionQV); } if (includedFields["MergeQV"]) { mergeQVArray.ReadDataset(baseFile.mergeQV); } if (includedFields["DeletionQV"]) { deletionQVArray.ReadDataset(baseFile.deletionQV); } if (includedFields["DeletionTag"]) { deletionTagArray.ReadDataset(baseFile.deletionTag); } baseFile.nBases = nBases; baseFile.scanData.platformId = scanDataReader.platformId; } void GetMinMaxHoleNumber(UInt &minHole, UInt &maxHole) { assert(nReads >= 0); // Assume that hole numbers are ascendingly sorted in ZMW/HoleNumber. if (not zmwReader.GetHoleNumberAt(0, minHole) or not zmwReader.GetHoleNumberAt(nReads - 1, maxHole)) { cout << "ERROR, could not get the minimum and maximum hole numbers " << "from ZMW HoleNumbers." << endl; exit(1); } } }; class HDFSmrtReader: public T_HDFBasReader { public: int Advance(int nSteps); }; typedef T_HDFBasReader HDFBasReader; typedef T_HDFBasReader HDFQualReader; #endif blasr_libcpp-master/hdf/HDFBasWriter.hpp000066400000000000000000000300661260756663100205220ustar00rootroot00000000000000#ifndef _BLASR_HDF_BAS_WRITER_HPP_ #define _BLASR_HDF_BAS_WRITER_HPP_ #include #include "Types.h" #include "Enumerations.h" #include "utils/SMRTReadUtils.hpp" #include "SMRTSequence.hpp" #include "HDFAtom.hpp" #include "HDFFile.hpp" #include "DatasetCollection.hpp" #include "HDFArray.hpp" #include "HDFScanDataWriter.hpp" #include "HDF2DArray.hpp" using namespace H5; using namespace std; class HDFBasWriter : public DatasetCollection { HDFFile outFile; string hdfFileName; static const int bufferSize = 16; string changeListID; HDFAtom changeListIDAtom; BufferedHDFArray nElemArray; BufferedHDFArray zmwXCoordArray; BufferedHDFArray zmwYCoordArray; BufferedHDFArray baseArray; BufferedHDFArray qualArray; BufferedHDFArray simulatedCoordinateArray; BufferedHDFArray simulatedSequenceIndexArray; // // Astro specific arrays. // BufferedHDF2DArray holeXY2D; // // Springfield specific arrays. // BufferedHDFArray holeNumberArray; BufferedHDFArray holeStatusArray; // // Define arrays for rich quality values. // BufferedHDFArray deletionQVArray; BufferedHDFArray deletionTagArray; BufferedHDFArray insertionQVArray; BufferedHDFArray substitutionTagArray; BufferedHDFArray substitutionQVArray; BufferedHDFArray mergeQVArray; BufferedHDFArray preBaseFramesArray; BufferedHDFArray widthInFramesArray; BufferedHDFArray pulseIndexArray; BufferedHDF2DArray preBaseDeletionQVArray; HDFGroup rootGroup; HDFGroup baseCallGroup; HDFGroup zmwGroup; HDFGroup plsZMWGroup; PlatformId platformId; ScanData sd; public: HDFGroup pulseDataGroup; ~HDFBasWriter() { // // Assume that flushing out and closing the hdf file must be one // manually and not in a destructor. // } void InitializeDefaultIncludedFields() { IncludeField("Basecall"); IncludeField("DeletionQV"); IncludeField("DeletionTag"); IncludeField("InsertionQV"); IncludeField("SubstitutionTag"); IncludeField("SubstitutionQV"); IncludeField("QualityValue"); IncludeField("WidthInFrames"); IncludeField("PulseIndex"); IncludeField("PreBaseFrames"); IncludeField("HoleNumber"); IncludeField("HoleStatus"); IncludeField("MergeQV"); } void Flush() { nElemArray.Flush(); if (includedFields["zmwXCoord"]) zmwXCoordArray.Flush(); if (includedFields["zmwYCoord"]) zmwYCoordArray.Flush(); if (includedFields["Basecall"]) baseArray.Flush(); if (includedFields["QualityValue"]) qualArray.Flush(); if (includedFields["DeletionQV"]) deletionQVArray.Flush(); if (includedFields["DeletionTag"]) deletionTagArray.Flush(); if (includedFields["InsertionQV"]) insertionQVArray.Flush(); if (includedFields["SubstitutionTag"]) substitutionTagArray.Flush(); if (includedFields["SubstitutionQV"]) substitutionQVArray.Flush(); if (includedFields["HoleNumber"]) holeNumberArray.Flush(); if (includedFields["HoleStatus"]) holeStatusArray.Flush(); if (includedFields["PreBaseFrames"]) preBaseFramesArray.Flush(); if (includedFields["PulseIndex"]) pulseIndexArray.Flush(); if (includedFields["WidthInFrames"]) widthInFramesArray.Flush(); if (includedFields["HoleXY"]) holeXY2D.Flush(); if (includedFields["MergeQV"]) mergeQVArray.Flush(); if (includedFields["SimulatedCoordinate"]) simulatedCoordinateArray.Flush(); if (includedFields["SimulatedSequenceIndex"]) simulatedSequenceIndexArray.Flush(); } HDFBasWriter() { /* * Default to astro for now. This may need to change to a NO_ID * platform, in which case it must be set with Initialize(). */ fieldNames.push_back("zmwXCoord"); fieldNames.push_back("zmwYCoord"); fieldNames.push_back("QualityValue"); fieldNames.push_back("Basecall"); fieldNames.push_back("DeletionQV"); fieldNames.push_back("DeletionTag"); fieldNames.push_back("InsertionQV"); fieldNames.push_back("SubstitutionQV"); fieldNames.push_back("SubstitutionTag"); fieldNames.push_back("MergeQV"); fieldNames.push_back("WidthInFrames"); fieldNames.push_back("HoleNumber"); fieldNames.push_back("HoleStatus"); fieldNames.push_back("HoleXY"); fieldNames.push_back("PreBaseFrames"); fieldNames.push_back("PulseIndex"); fieldNames.push_back("SimulatedCoordinate"); fieldNames.push_back("SimulatedSequenceIndex"); InitializeAllFields(false); sd.platformId = Springfield; } void Close() { Flush(); outFile.Close(); } void SetPlatform(PlatformId _platform) { sd.platformId = platformId = _platform; } void SetMovieName(string _movieName) { sd.movieName = _movieName; } void SetRunCode(string _runCode) { sd.runCode = _runCode; } void SetChangeListID(string _changeListID) { changeListID = _changeListID; } /* * Initialization without a runCode is implicitly a springfield * platform. You can change it if you really want. */ void Initialize(string _hdfFileName, string movieName, string _changeListID) { SetChangeListID(_changeListID); SetPlatform(Springfield); SetMovieName(movieName); Initialize(_hdfFileName); } void Initialize(string _hdfFileName, string movieName, PlatformId _platform = Springfield) { SetMovieName(movieName); SetPlatform(Springfield); Initialize(_hdfFileName); } void Initialize(string _hdfFileName, string movieName, string runCode, string _changeListID ) { SetChangeListID(_changeListID); SetMovieName(movieName); SetRunCode(runCode); Initialize(_hdfFileName); } void WriteSimulatedCoordinate(unsigned int coord) { simulatedCoordinateArray.Write(&coord,1); } void WriteSimulatedSequenceIndex(unsigned int index) { simulatedSequenceIndexArray.Write(&index,1); } void Initialize(string _hdfFileName, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT) { hdfFileName = _hdfFileName; outFile.Open(hdfFileName, H5F_ACC_TRUNC, fileAccPropList); outFile.rootGroup.AddGroup("PulseData"); if (pulseDataGroup.Initialize(outFile.rootGroup, "PulseData") == 0) { cout << "ERROR, could not create file " << hdfFileName << ". Error creating group /PulseData." << endl; exit(1); } pulseDataGroup.AddGroup("BaseCalls"); if (baseCallGroup.Initialize(pulseDataGroup, "BaseCalls") == 0) { cout << "ERROR, could not create file " << hdfFileName << ". Error creating group /PulseData/BaseCall." << endl; exit(1); } baseCallGroup.AddGroup("ZMW"); if (zmwGroup.Initialize(baseCallGroup, "ZMW") == 0) { cout << "ERROR, could not create file " << hdfFileName << ". Error creating group /PulseData/BaseCall/ZMW." << endl; exit(1); } HDFScanDataWriter sdWriter(outFile); // // Reset ScanData attributes if neccessary. // sdWriter.Write(sd); if (changeListID != "") { changeListIDAtom.Create(baseCallGroup.group, "ChangeListID", changeListID); } nElemArray.Initialize(zmwGroup, "NumEvent"); if (includedFields["Basecall"]) baseArray.Initialize(baseCallGroup, "Basecall"); if (includedFields["QualityValue"]) qualArray.Initialize(baseCallGroup, "QualityValue"); if (includedFields["DeletionQV"]) deletionQVArray.Initialize(baseCallGroup, "DeletionQV"); if (includedFields["DeletionTag"]) deletionTagArray.Initialize(baseCallGroup, "DeletionTag"); if (includedFields["InsertionQV"]) insertionQVArray.Initialize(baseCallGroup, "InsertionQV"); if (includedFields["MergeQV"]) mergeQVArray.Initialize(baseCallGroup, "MergeQV"); if (includedFields["PreBaseDeletionQV"]) preBaseDeletionQVArray.Initialize(baseCallGroup, "PreBaseDeletionQV", 4); if (includedFields["SubstitutionTag"]) substitutionTagArray.Initialize(baseCallGroup, "SubstitutionTag"); if (includedFields["SubstitutionQV"]) substitutionQVArray.Initialize(baseCallGroup, "SubstitutionQV"); if (includedFields["WidthInFrames"]) widthInFramesArray.Initialize(baseCallGroup, "WidthInFrames"); if (includedFields["PreBaseFrames"]) preBaseFramesArray.Initialize(baseCallGroup, "PreBaseFrames"); if (includedFields["SimulatedCoordinate"]) { simulatedCoordinateArray.Initialize(baseCallGroup, "SimulatedCoordinate"); } if (includedFields["SimulatedSequenceIndex"]) { simulatedSequenceIndexArray.Initialize(baseCallGroup, "SimulatedSequenceIndex"); } if (includedFields["PulseIndex"]) { pulseIndexArray.Initialize(baseCallGroup, "PulseIndex"); } if (platformId == Astro or includedFields["HoleXY"]) { holeXY2D.Initialize(zmwGroup, "HoleXY", 2); } includedFields["HoleNumber"] = true; holeNumberArray.Initialize(zmwGroup, "HoleNumber"); includedFields["HoleStatus"] = true; holeStatusArray.Initialize(zmwGroup, "HoleStatus"); } int WriteHoleXY(int x=0, int y=0) { int16_t xy[2] = {static_cast(x), static_cast(y)}; holeXY2D.WriteRow(xy, 2); } int WriteIdentifiers(UInt holeNumber, unsigned char holeStatus, int x=0, int y=0 ) { // // Write hole number regardless of platform type. // holeNumberArray.Write(&holeNumber, 1); holeStatusArray.Write(&holeStatus, 1); if (platformId == Astro or includedFields["HoleXY"]) { WriteHoleXY(x,y); } return 1; } int WriteQualities(FASTQSequence &seq) { qualArray.Write(seq.qual.data, seq.length); if (includedFields["DeletionQV"] and seq.deletionQV.Empty() == false) { deletionQVArray.Write(seq.deletionQV.data, seq.length); } if (includedFields["PreBaseDeletionQV"] and seq.preBaseDeletionQV.Empty() == false) { DNALength readPos; for (readPos = 0; readPos < seq.length; readPos++) { preBaseDeletionQVArray.WriteRow(&seq.preBaseDeletionQV[readPos*4], 4); } } if (includedFields["DeletionTag"] and seq.deletionTag != NULL) { deletionTagArray.Write(seq.deletionTag, seq.length); } if (includedFields["InsertionQV"] and seq.insertionQV.Empty() == false) { insertionQVArray.Write(seq.insertionQV.data, seq.length); } if (includedFields["SubstitutionQV"] and seq.substitutionQV.Empty() == false) { substitutionQVArray.Write(seq.substitutionQV.data, seq.length); } if (includedFields["SubstitutionTag"] and seq.substitutionTag != NULL) { substitutionTagArray.Write(seq.substitutionTag, seq.length); } if (includedFields["MergeQV"] and seq.mergeQV.Empty() == false) { mergeQVArray.Write(seq.mergeQV.data, seq.length); } } int WriteBases(FASTASequence &seq ) { int lenArray[1] = {static_cast(seq.length)}; nElemArray.Write(lenArray, 1); baseArray.Write((const unsigned char*) seq.seq, seq.length); return 1; } int Write(SMRTSequence &seq) { WriteBases(seq); WriteQualities(seq); if (includedFields["PreBaseFrames"] and seq.preBaseFrames != NULL) { preBaseFramesArray.Write(seq.preBaseFrames, seq.length); } if (includedFields["WidthInFrames"] and seq.widthInFrames != NULL) { widthInFramesArray.Write(seq.widthInFrames, seq.length); } if (includedFields["PulseIndex"] and seq.pulseIndex != NULL) { pulseIndexArray.Write(seq.pulseIndex, seq.length); } WriteIdentifiers(seq.zmwData.holeNumber, seq.zmwData.holeStatus, seq.xy[0], seq.xy[1]); return 1; } int Write(FASTQSequence &seq) { int x, y; UInt holeNumber; unsigned char holeStatus; WriteBases(seq); WriteQualities(seq); if (platformId == Astro) { // // now extract the x an y coordinates. GetSMRTReadCoordinates(seq, x, y); holeStatus = 0; seq.GetHoleNumber((int&) holeNumber); } if (platformId == Springfield){ GetSpringfieldHoleNumberFromTitle(seq, holeNumber); } WriteIdentifiers(holeNumber,holeStatus,x,y); return 1; } }; #endif blasr_libcpp-master/hdf/HDFBaseCallsWriter.cpp000066400000000000000000000306171260756663100216430ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFBaseCallsWriter.hpp" HDFBaseCallsWriter::HDFBaseCallsWriter(const std::string & filename, HDFGroup & parentGroup, const std::map & baseMap, const std::vector & qvsToWrite, const bool fakeQualityValue) : HDFWriterBase(filename) , parentGroup_(parentGroup) , baseMap_(baseMap) , qvsToWrite_({}) // Input qvsToWrite must be checked. , zmwWriter_(nullptr) , zmwMetricsWriter_(nullptr) , fakeQualityValue_(fakeQualityValue) { // Add BaseCalls as a child group to the parent group. AddChildGroup(parentGroup_, basecallsGroup_, PacBio::GroupNames::basecalls); // Initialize the 'basecall' group. basecallArray_.Initialize(basecallsGroup_, PacBio::GroupNames::basecall); // Sanity check QVs to write. if (SanityCheckQVs(qvsToWrite)) { // Initialize QV groups if (not InitializeQVGroups()) { AddErrorMessage("Failed to initialize QV Groups."); } } // Create a zmwWriter. zmwWriter_.reset(new HDFZMWWriter(Filename(), basecallsGroup_, true)); // Create a zmwMetricsWriter. zmwMetricsWriter_.reset(new HDFZMWMetricsWriter(Filename(), basecallsGroup_, baseMap_)); } std::vector HDFBaseCallsWriter::Errors(void) const { std::vector retErrors = this->errors_; std::vector zmwErrors = zmwWriter_->Errors(); std::vector zmwMetricsErrors = zmwMetricsWriter_->Errors(); retErrors.insert(retErrors.end(), zmwErrors.begin(), zmwErrors.end()); retErrors.insert(retErrors.end(), zmwMetricsErrors.begin(), zmwMetricsErrors.end()); return retErrors; } HDFBaseCallsWriter::~HDFBaseCallsWriter(void) { this->Close(); } const std::vector & HDFBaseCallsWriter::QVNamesToWrite(void) const { return qvsToWrite_; } const std::vector & HDFBaseCallsWriter::ValidQVNames(void) const { return PacBio::GroupNames::BaxQVNames; } bool HDFBaseCallsWriter::InitializeQVGroups(void) { int ret = 1; // special dataset if (FakeQualityValue()) ret *= qualityValueArray_.Initialize(basecallsGroup_, PacBio::GroupNames::qualityvalue); // normal datasets if (_HasQV(PacBio::GroupNames::deletionqv)) ret *= deletionQVArray_.Initialize(basecallsGroup_, PacBio::GroupNames::deletionqv); if (_HasQV(PacBio::GroupNames::deletiontag)) ret *= deletionTagArray_.Initialize(basecallsGroup_, PacBio::GroupNames::deletiontag); if (_HasQV(PacBio::GroupNames::insertionqv)) ret *= insertionQVArray_.Initialize(basecallsGroup_, PacBio::GroupNames::insertionqv); if (_HasQV(PacBio::GroupNames::mergeqv)) ret *= mergeQVArray_.Initialize(basecallsGroup_, PacBio::GroupNames::mergeqv); if (_HasQV(PacBio::GroupNames::substitutionqv)) ret *= substitutionQVArray_.Initialize(basecallsGroup_, PacBio::GroupNames::substitutionqv); if (_HasQV(PacBio::GroupNames::substitutiontag)) ret *= substitutionTagArray_.Initialize(basecallsGroup_, PacBio::GroupNames::substitutiontag); if (_HasQV(PacBio::GroupNames::prebaseframes)) ret *= preBaseFramesArray_.Initialize(basecallsGroup_, PacBio::GroupNames::prebaseframes); if (_HasQV(PacBio::GroupNames::widthinframes)) ret *= widthInFramesArray_.Initialize(basecallsGroup_, PacBio::GroupNames::widthinframes); return (ret != 0); } bool HDFBaseCallsWriter::SanityCheckQVs(const std::vector & qvsToWrite) { bool allQVsToAddInSpec = true; qvsToWrite_.clear(); // Filter qvs which are not in format specification. const std::vector & qvsInSpec = ValidQVNames(); for(auto qv : qvsToWrite) { if (std::find(qvsInSpec.begin(), qvsInSpec.end(), qv) != qvsInSpec.end()) { if (std::find(qvsToWrite_.begin(), qvsToWrite_.end(), qv) == qvsToWrite_.end()) qvsToWrite_.push_back(qv); // else redundant } else { allQVsToAddInSpec = false; AddErrorMessage(std::string("Unsupported quality value ") + qv); } } return allQVsToAddInSpec; } bool HDFBaseCallsWriter::WriteBaseCallerVersion(const std::string & basecallerVersion) { changeListIDAtom_.Create(basecallsGroup_.group, PacBio::AttributeNames::Common::changelistid, basecallerVersion); return true; } bool HDFBaseCallsWriter::WriteOneZmw(const SMRTSequence & read) { bool OK = zmwWriter_->WriteOneZmw(read); OK = OK and zmwMetricsWriter_->WriteOneZmw(read); OK = OK and _WriteBasecall(read); if (FakeQualityValue()) OK = OK and _WriteQualityValue(read); OK = OK and _WriteDeletionQV(read); OK = OK and _WriteDeletionTag(read); OK = OK and _WriteInsertionQV(read); OK = OK and _WriteMergeQV(read); OK = OK and _WriteSubstitutionTag(read); OK = OK and _WriteSubstitutionQV(read); OK = OK and _WritePreBaseFrames(read); OK = OK and _WriteWidthInFrames(read); return OK; } bool HDFBaseCallsWriter::_WriteBasecall(const SMRTSequence & read) { basecallArray_.Write((const unsigned char*) read.seq, read.length); return true; } bool HDFBaseCallsWriter::_WriteQualityValue(const SMRTSequence & read) { if (FakeQualityValue()) { if (read.length <= 0) { AddErrorMessage(read.GetTitle() + std::string(" is empty.")); return false; } if (not read.deletionQV.Empty()) { // Use deletionQV to fake QualityValue if possible. qualityValueArray_.Write(read.deletionQV.data, read.length); } else { // otherwise, fill with 255. QualityValueVector fakedata; fakedata.Allocate(read.length); memset(fakedata.data, MAX_QUALITY_VALUE, read.length * sizeof(QualityValue)); qualityValueArray_.Write(fakedata.data, read.length); fakedata.Free(); } } return true; } bool HDFBaseCallsWriter::_WriteDeletionQV(const SMRTSequence & read) { if (HasDeletionQV()) { if (read.deletionQV.Empty()) { AddErrorMessage(std::string(PacBio::GroupNames::deletionqv) + " absent in read " + read.GetTitle()); return false; } else { deletionQVArray_.Write(read.deletionQV.data, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WriteDeletionTag(const SMRTSequence & read) { if (HasDeletionTag()) { if (read.deletionTag == nullptr) { AddErrorMessage(std::string(PacBio::GroupNames::deletiontag) + " absent in read " + read.GetTitle()); return false; } else { deletionTagArray_.Write(read.deletionTag, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WriteInsertionQV(const SMRTSequence & read) { if (HasInsertionQV()) { if (read.insertionQV.Empty()) { AddErrorMessage(std::string(PacBio::GroupNames::insertionqv) + " absent in read " + read.GetTitle()); return false; } else { insertionQVArray_.Write(read.insertionQV.data, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WriteSubstitutionTag(const SMRTSequence & read) { if (HasSubstitutionTag()) { if (read.substitutionTag == nullptr) { AddErrorMessage(std::string(PacBio::GroupNames::substitutiontag) + " absent in read " + read.GetTitle()); return false; } else { substitutionTagArray_.Write(read.substitutionTag, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WriteSubstitutionQV(const SMRTSequence & read) { if (HasSubstitutionQV()) { if (read.substitutionQV.Empty()) { AddErrorMessage(std::string(PacBio::GroupNames::substitutionqv) + " absent in read " + read.GetTitle()); return false; } else { substitutionQVArray_.Write(read.substitutionQV.data, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WriteMergeQV(const SMRTSequence & read) { if (HasMergeQV()) { if (read.mergeQV.Empty()) { AddErrorMessage(std::string(PacBio::GroupNames::mergeqv) + " absent in read " + read.GetTitle()); return false; } else { mergeQVArray_.Write(read.mergeQV.data, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WritePreBaseFrames(const SMRTSequence & read) { if (HasPreBaseFrames()) { if (read.preBaseFrames == nullptr) { AddErrorMessage(std::string(PacBio::GroupNames::prebaseframes) + " absent in read " + read.GetTitle()); return false; } else { preBaseFramesArray_.Write(read.preBaseFrames, read.length); return true; } } return true; } bool HDFBaseCallsWriter::_WriteWidthInFrames(const SMRTSequence & read) { if (HasWidthInFrames()) { if (read.widthInFrames == nullptr) { AddErrorMessage(std::string(PacBio::GroupNames::widthinframes) + " absent in read " + read.GetTitle()); return false; } else { widthInFramesArray_.Write(read.widthInFrames, read.length); return true; } } return true; } void HDFBaseCallsWriter::Flush(void) { basecallArray_.Flush(); if (HasQualityValue()) qualityValueArray_.Flush(); if (HasDeletionQV()) deletionQVArray_.Flush(); if (HasDeletionTag()) deletionTagArray_.Flush(); if (HasInsertionQV()) insertionQVArray_.Flush(); if (HasMergeQV()) mergeQVArray_.Flush(); if (HasSubstitutionQV()) substitutionQVArray_.Flush(); if (HasSubstitutionTag()) substitutionTagArray_.Flush(); if (HasPreBaseFrames()) preBaseFramesArray_.Flush(); if (HasWidthInFrames()) widthInFramesArray_.Flush(); zmwWriter_->Flush(); zmwMetricsWriter_->Flush(); } void HDFBaseCallsWriter::Close(void) { this->Flush(); basecallArray_.Close(); if (HasQualityValue()) qualityValueArray_.Close(); if (HasDeletionQV()) deletionQVArray_.Close(); if (HasDeletionTag()) deletionTagArray_.Close(); if (HasInsertionQV()) insertionQVArray_.Close(); if (HasMergeQV()) mergeQVArray_.Close(); if (HasSubstitutionQV()) substitutionQVArray_.Close(); if (HasSubstitutionTag()) substitutionTagArray_.Close(); if (HasPreBaseFrames()) preBaseFramesArray_.Close(); if (HasWidthInFrames()) widthInFramesArray_.Close(); } blasr_libcpp-master/hdf/HDFBaseCallsWriter.hpp000066400000000000000000000204531260756663100216450ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _BLASR_HDF_BASECALLS_WRITER_HPP_ #define _BLASR_HDF_BASECALLS_WRITER_HPP_ #include #include #include "HDFAtom.hpp" #include "HDFWriterBase.hpp" #include "HDFZMWWriter.hpp" #include "HDFZMWMetricsWriter.hpp" class HDFBaseCallsWriter: public HDFWriterBase { /// \name \{ public: HDFBaseCallsWriter(const std::string & filename, HDFGroup & parentGroup, const std::map & baseMap, const std::vector & qvsToWrite = {}, const bool fakeQualityValue = true); ~HDFBaseCallsWriter(void); /// \brief Write base caller version (changeListId) bool WriteBaseCallerVersion(const std::string & basecallerVersion); /// \brief Write a zmw read. bool WriteOneZmw(const SMRTSequence & read); /// \brief return a vector of QV name strings specified in file format specification. const std::vector & ValidQVNames(void) const; /// \brief return a vector of QV name strings to write. const std::vector & QVNamesToWrite(void) const; void Flush(void); void Close(void); public: /// \brief Sanity check QVs to add. Remove QVs which are /// not included in file format specification, and /// remove redundant QVs. /// \returns Whether or not a QV is not included in sepcification. bool SanityCheckQVs(const std::vector & qvsToWrite); /// \returns true if FakeQualityValue() and qualityValueArray_ /// has been initialized inline bool HasQualityValue(void) const; /// \returns true if has DeletionQV dataset and deletionQVArray_ /// has been initialized. inline bool HasDeletionQV(void) const; inline bool HasDeletionTag(void) const; inline bool HasInsertionQV(void) const; inline bool HasSubstitutionTag(void) const; inline bool HasSubstitutionQV(void) const; inline bool HasMergeQV(void) const; inline bool HasPreBaseFrames(void) const; inline bool HasIPD(void) const; inline bool HasWidthInFrames(void) const; inline bool HasPulseWidth(void) const; std::vector Errors(void) const; public: /// \returns whether or not to fake QualityValue. bool FakeQualityValue() const; private: bool fakeQualityValue_; private: inline bool _HasQV(const std::string & qvToQuery) const; bool _WriteBasecall(const SMRTSequence & read); /// Write fake values to the 'QualityValue' dataset. bool _WriteQualityValue(const SMRTSequence & read); /// Write real data in the following. bool _WriteDeletionQV(const SMRTSequence & read); bool _WriteDeletionTag(const SMRTSequence & read); bool _WriteInsertionQV(const SMRTSequence & read); bool _WriteSubstitutionTag(const SMRTSequence & read); bool _WriteSubstitutionQV(const SMRTSequence & read); bool _WriteMergeQV(const SMRTSequence & read); bool _WritePreBaseFrames(const SMRTSequence & read); bool _WriteWidthInFrames(const SMRTSequence & read); private: /// \brief Create and initialize QV groups. /// \returns Whether or not QV groups initialized successfully. bool InitializeQVGroups(void); private: HDFGroup & parentGroup_; std::map baseMap_; std::vector qvsToWrite_; std::unique_ptr zmwWriter_; std::unique_ptr zmwMetricsWriter_; HDFGroup basecallsGroup_; private: HDFAtom changeListIDAtom_; /// BaseCalls/Basecall group BufferedHDFArray basecallArray_; /// This is a mandatory dataset for 2.3, whose existence is /// to ensure bam2bax to generate 2.3 compatible bax.h5 files. BufferedHDFArray qualityValueArray_; /// \brief Define arrays for rich quality values. /// DeletionQV dq --> BaseCalls/DeletionQV /// DeletionTag dt --> BaseCalls/DeletionTag /// InsertionQV iq --> BaseCalls/InsertionQV /// MergeQV mq --> BaseCalls/MergeQV /// SubstitutionQV sq --> BaseCalls/SubstitutionQV /// SubstitutionTag st --> BaseCalls/SubstitutionTag /// Ipd:Frames ip --> BaseCalls/PreBaseFrames /// PulseWidth:Frames pw --> BaseCalls/WidthInFrames BufferedHDFArray deletionQVArray_; BufferedHDFArray deletionTagArray_; BufferedHDFArray insertionQVArray_; BufferedHDFArray mergeQVArray_; BufferedHDFArray substitutionQVArray_; BufferedHDFArray substitutionTagArray_; BufferedHDFArray preBaseFramesArray_; BufferedHDFArray widthInFramesArray_; /// \} }; inline bool HDFBaseCallsWriter::_HasQV(const std::string & qvToQuery) const { return (std::find(qvsToWrite_.begin(), qvsToWrite_.end(), qvToQuery) != qvsToWrite_.end()); } inline bool HDFBaseCallsWriter::HasQualityValue(void) const {return (FakeQualityValue() and qualityValueArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasDeletionQV(void) const {return (_HasQV(PacBio::GroupNames::deletionqv) and deletionQVArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasDeletionTag(void) const {return (_HasQV(PacBio::GroupNames::deletiontag) and deletionTagArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasInsertionQV(void) const {return (_HasQV(PacBio::GroupNames::insertionqv) and insertionQVArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasSubstitutionTag(void) const {return (_HasQV(PacBio::GroupNames::substitutiontag) and substitutionTagArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasSubstitutionQV(void) const {return (_HasQV(PacBio::GroupNames::substitutionqv) and substitutionQVArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasMergeQV(void) const {return (_HasQV(PacBio::GroupNames::mergeqv) and mergeQVArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasPreBaseFrames(void) const {return (_HasQV(PacBio::GroupNames::prebaseframes) and preBaseFramesArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasIPD(void) const {return HasPreBaseFrames();} inline bool HDFBaseCallsWriter::HasWidthInFrames(void) const {return (_HasQV(PacBio::GroupNames::widthinframes) and widthInFramesArray_.IsInitialized());} inline bool HDFBaseCallsWriter::HasPulseWidth(void) const {return this->HasWidthInFrames();} inline bool HDFBaseCallsWriter::FakeQualityValue(void) const {return this->fakeQualityValue_;} #endif blasr_libcpp-master/hdf/HDFBaxWriter.cpp000066400000000000000000000117761260756663100205310ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFBaxWriter.hpp" HDFBaxWriter::HDFBaxWriter(const std::string & filename, const ScanData & sd, const std::string & basecallerVersion, const std::vector & qvsToWrite, const std::vector & regionTypes, const H5::FileAccPropList & fileAccPropList) : HDFWriterBase(filename) , fileaccproplist_(fileAccPropList) , scandataWriter_(nullptr) , basecallsWriter_(nullptr) , regionsWriter_(nullptr) { // sanity check chemistry meta data. SanityCheckChemistry(sd.BindingKit(), sd.SequencingKit(), basecallerVersion); // open file outfile_.Open(filename_, H5F_ACC_TRUNC, fileaccproplist_); // Add PulseData group to the root group '/' AddChildGroup(outfile_.rootGroup, pulseDataGroup_, PacBio::GroupNames::pulsedata); // Create a ScanData writer. scandataWriter_.reset(new HDFScanDataWriter(outfile_.rootGroup)); scandataWriter_->Write(sd); // Create a BaseCaller writer. basecallsWriter_.reset(new HDFBaseCallsWriter(filename_, pulseDataGroup_, sd.BaseMap(), qvsToWrite)); basecallsWriter_->WriteBaseCallerVersion(basecallerVersion); // Create a Regions writer. regionsWriter_.reset(new HDFRegionsWriter(filename_, pulseDataGroup_, regionTypes)); } HDFBaxWriter::~HDFBaxWriter(void) { this->Close(); } void HDFBaxWriter::Flush(void) { basecallsWriter_->Flush(); regionsWriter_->Flush(); } std::vector HDFBaxWriter::Errors(void) { std::vector errors = errors_; //for (auto error: scandataWriter_->Errors()) // errors.emplace_back(error); for (auto error: basecallsWriter_->Errors()) errors.emplace_back(error); for (auto error: regionsWriter_->Errors()) errors.emplace_back(error); return errors; } void HDFBaxWriter::Close(void) { basecallsWriter_->Close(); scandataWriter_->Close(); regionsWriter_->Close(); outfile_.Close(); } bool HDFBaxWriter::SanityCheckChemistry(const std::string & bindingKit, const std::string & sequencingKit, const std::string & basecallerVersion) { bool OK = true; if (bindingKit.empty()) { OK = false; AddErrorMessage("Binding kit must be specified."); } if (sequencingKit.empty()) { OK = false; AddErrorMessage("Sequencing kit must be specified."); } if (basecallerVersion.empty()) { OK = false; AddErrorMessage("Base caller version must be specified."); } return OK; } bool HDFBaxWriter::WriteOneZmw(const SMRTSequence & seq) { return basecallsWriter_->WriteOneZmw(seq); } bool HDFBaxWriter::WriteOneZmw(const SMRTSequence & seq, const std::vector & regions) { if (not this->WriteOneZmw(seq)) { return false; } if (regions.size() == 0) { std::vector fake = {RegionAnnotation(seq.HoleNumber(), HQRegion, 0, 0, 0)}; return regionsWriter_->Write(fake); } else { return regionsWriter_->Write(regions); } } blasr_libcpp-master/hdf/HDFBaxWriter.hpp000066400000000000000000000143711260756663100205300ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _BLASR_HDF_BAX_WRITER_HPP_ #define _BLASR_HDF_BAX_WRITER_HPP_ #include #include #include "Enumerations.h" #include "SMRTSequence.hpp" #include "HDFFile.hpp" #include "HDFWriterBase.hpp" #include "HDFScanDataWriter.hpp" #include "HDFBaseCallsWriter.hpp" #include "HDFRegionsWriter.hpp" using namespace H5; using namespace std; class HDFBaxWriter : public HDFWriterBase { public: /// \name Constructor & Related Methods /// \{ /// \brief Sets output h5 file name, scan data, base caller version /// QVs to write, and h5 file access property list. /// \param[in] filename output h5 file name. /// \param[in] ScanData meta data string, must contain bindingKit and sequencingKit. /// \param[in] basecallerVersion meta data string /// \param[in] qvsToWrite Quality values to include in output h5 file. /// \param[in] regionTypes, regionTypes as /Regions/RegionTypes /// \param[in] fileAccPropList H5 file access property list HDFBaxWriter(const std::string & filename, const ScanData & sd, const std::string & basecallerVersion, const std::vector & qvsToWrite, const std::vector & regionTypes = PacBio::AttributeValues::Regions::regiontypes, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT); ~HDFBaxWriter(void); /// \brief Write one zmw sequence to output h5 file. /// \param[in] seq, the SMRTSequence to write bool WriteOneZmw(const SMRTSequence & seq); /// \brief Write one zmw sequence and its region table to output h5 file. /// \param[in] seq, the SMRTSequence to write /// \param[in] regions, region annotations of this zmw. bool WriteOneZmw(const SMRTSequence & seq, const std::vector & regions); /// \brief Flushes buffered data. void Flush(void); /// \returns all errors from all writers. std::vector Errors(void); /// \} private: /// \name Private Variables /// \{ HDFFile outfile_; ///< HDFFile file handler H5::FileAccPropList fileaccproplist_; ///< H5 file access property list HDFGroup pulseDataGroup_; ///< /PulseData group private: /// Points to scan data writer. std::unique_ptr scandataWriter_; /// Points to base caller writer. std::unique_ptr basecallsWriter_; /// Points to region table writer. std::unique_ptr regionsWriter_; /// \} public: /// \name Which QV will be written. /// \{ inline bool HasDeletionQV(void) const; inline bool HasDeletionTag(void) const; inline bool HasInsertionQV(void) const; inline bool HasSubstitutionTag(void) const; inline bool HasSubstitutionQV(void) const; inline bool HasMergeQV(void) const; inline bool HasPreBaseFrames(void) const; inline bool HasIPD(void) const; inline bool HasWidthInFrames(void) const; inline bool HasPulseWidth(void) const; /// \} private: /// \name Private Methods. /// \{ /// \brief Checks whether chemistry triple, including /// binding kit, sequencing kit and base caller version /// are set. /// If not, add error messages. bool SanityCheckChemistry(const std::string & bindingKit, const std::string & sequencingKit, const std::string & basecallerVersion); /// \brief Closes HDFBaxWriter. void Close(void); /// \} }; inline bool HDFBaxWriter::HasDeletionQV(void) const {return basecallsWriter_->HasDeletionQV();} inline bool HDFBaxWriter::HasDeletionTag(void) const {return basecallsWriter_->HasDeletionTag();} inline bool HDFBaxWriter::HasInsertionQV(void) const {return basecallsWriter_->HasInsertionQV();} inline bool HDFBaxWriter::HasSubstitutionTag(void) const {return basecallsWriter_->HasSubstitutionTag();} inline bool HDFBaxWriter::HasSubstitutionQV(void) const {return basecallsWriter_->HasSubstitutionQV();} inline bool HDFBaxWriter::HasMergeQV(void) const {return basecallsWriter_->HasMergeQV();} inline bool HDFBaxWriter::HasPreBaseFrames(void) const {return basecallsWriter_->HasPreBaseFrames();} inline bool HDFBaxWriter::HasIPD(void) const {return this->HasPreBaseFrames();} inline bool HDFBaxWriter::HasWidthInFrames(void) const {return basecallsWriter_->HasWidthInFrames();} inline bool HDFBaxWriter::HasPulseWidth(void) const {return this->HasWidthInFrames();} #endif blasr_libcpp-master/hdf/HDFCCSReader.hpp000066400000000000000000000216561260756663100203600ustar00rootroot00000000000000#ifndef _BLASR_HDF_CCS_READER_HPP_ #define _BLASR_HDF_CCS_READER_HPP_ #include "HDFBasReader.hpp" template class HDFCCSReader : public T_HDFBasReader { public: HDFGroup ccsGroup, passesGroup; HDFArray baseCallArray; HDFArray passStartPulseArray, passNumPulsesArray, passStartBaseArray, passNumBasesArray, numPassesArray; HDFArray passDirectionArray, adapterHitAfterArray, adapterHitBeforeArray; HDFZMWReader zmwReader; T_HDFBasReader ccsBasReader; int curPassPos; HDFCCSReader() : T_HDFBasReader() { curPassPos = 0; this->fieldNames.push_back("AdapterHitAfter"); this->fieldNames.push_back("AdapterHitBefore"); this->fieldNames.push_back("NumPasses"); this->fieldNames.push_back("PassDirection"); this->fieldNames.push_back("PassNumPase"); this->fieldNames.push_back("PassStartBase"); this->fieldNames.push_back("PassStartPulse"); this->fieldNames.push_back("PassNumPulses"); InitializeAllCCSFields(true); } void InitializeAllCCSFields(bool value) { this->includedFields["AdapterHitAfter"] = value; this->includedFields["AdapterHitBefore"] = value; this->includedFields["NumPasses"] = value; this->includedFields["PassDirection"] = value; this->includedFields["PassNumPase"] = value; this->includedFields["PassStartBase"] = value; this->includedFields["PassStartPulse"] = value; this->includedFields["PassNumPulses"] = value; } bool BasFileHasCCS(string ccsBasFileName) { try { H5::Exception::dontPrint(); this->hdfBasFile.openFile(ccsBasFileName.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); } catch (H5::Exception &e) { cout << "ERROR, could not open hdf file " << ccsBasFileName << " Stopping." << endl; exit(1); } HDFGroup ccsBasecallsGroup; bool fileContainsCCS = false; HDFGroup pulseDataGroup; if (pulseDataGroup.Initialize(this->hdfBasFile, "PulseData") == 0) { cout << "ERROR, ccs base file " << ccsBasFileName << " does not have a PulseData field." << endl; exit(1); } if (pulseDataGroup.ContainsObject("ConsensusBaseCalls")) { fileContainsCCS = true; } this->hdfBasFile.close(); return fileContainsCCS; } int Advance(int nSteps) { cout << "ERROR! Advance is not yet implemented for ccs reader" << endl; assert(0); return 0; } int Initialize(string ccsBasFileName, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT) { // // Open the file and initialize for reading reads. // // // First, initialize for reading the unrolled bases from this // file. // if (this->T_HDFBasReader::Initialize(ccsBasFileName, fileAccPropList) == 0) { cout << "ERROR, Could not initialize ccs file " << ccsBasFileName << endl; exit(1); } if (this->pulseDataGroup.ContainsObject("ConsensusBaseCalls") and ccsGroup.Initialize(this->hdfBasFile, "PulseData/ConsensusBaseCalls") == 0) { cout << "ERROR, attempting to read cicular consensus data from '" << ccsBasFileName << "', which does not contain a ConsensusBaseCalls field." << endl; cout << "Check HDF file structure." << endl; exit(1); } curPassPos = 0; int passesSuccess = 1; if (ccsGroup.ContainsObject("Passes") == 0) { passesSuccess = 0; } else { if (passesGroup.Initialize(ccsGroup.group,"Passes") == 0) { passesSuccess = 0; } } if (passesSuccess == 0) { cout <<"ERROR, attempting to read circular consensus group Passes but it does not exist. " << endl; cout <<"Check HDF file structure."<rootGroup); //ccsBasReader.InitializeForReadingPulseInformation(); //ccsBasReader.LoadRunInfo(); /* * Initialize pass information for reading. */ if (this->InitializeField(passesGroup, "AdapterHitAfter", adapterHitAfterArray, this->includedFields["AdapterHitAfter"]) == 0) return 0; if (this->InitializeField(passesGroup, "AdapterHitBefore", adapterHitBeforeArray, this->includedFields["AdapterHitBefore"]) == 0) return 0; if (this->InitializeField(passesGroup, "NumPasses", numPassesArray, this->includedFields["NumPasses"]) == 0) return 0; if (this->InitializeField(passesGroup, "PassDirection", passDirectionArray, this->includedFields["PassDirection"]) == 0) return 0; if (this->InitializeField(passesGroup, "PassNumBases", passNumBasesArray, this->includedFields["PassNumBases"]) == 0) return 0; if (this->InitializeField(passesGroup, "PassStartBase", passStartBaseArray, this->includedFields["PassStartBase"]) == 0) return 0; // // The following two fields are not critical. // this->InitializeField(passesGroup, "PassStartPulse", passStartPulseArray, this->includedFields["PassStartPulse"]); this->InitializeField(passesGroup, "PassNumPulses", passNumPulsesArray, this->includedFields["PassNumPulses"]); // // The zmw reader contains the group that hols all pass information // zmwReader.Initialize(&ccsBasReader.baseCallsGroup); return 1; } unsigned int GetNumPasses(int readIndex) { unsigned int numPasses; numPassesArray.Read(readIndex, readIndex+1, &numPasses); return numPasses; } int GetNext(T_Sequence &ccsSequence) { // // Read in all ccs pass data. // ccsSequence.Free(); int retVal = 0; if (this->curRead == ccsBasReader.nReads) { return 0; } if (this->curBasePos == ccsBasReader.nBases) { return 0; } try { UInt numPasses; numPassesArray.Read(this->curRead, this->curRead+1, &numPasses); if (numPasses > 0) { // Read in the ccs bases if ((retVal = ccsBasReader.GetNext((SMRTSequence&)ccsSequence)) == 0) return 0; ccsSequence.numPasses = numPasses; if (this->includedFields["AdapterHitAfter"]) { ccsSequence.adapterHitAfter.resize(ccsSequence.numPasses); adapterHitAfterArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.adapterHitAfter[0]); } if (this->includedFields["AdapterHitBefore"]) { ccsSequence.adapterHitBefore.resize(ccsSequence.numPasses); adapterHitBeforeArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.adapterHitBefore[0]); } if (this->includedFields["PassDirection"]) { ccsSequence.passDirection.resize(ccsSequence.numPasses); passDirectionArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.passDirection[0]); } if (this->includedFields["PassNumBases"]) { ccsSequence.passNumBases.resize(ccsSequence.numPasses); passNumBasesArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.passNumBases[0]); } if (this->includedFields["PassStartBase"]) { ccsSequence.passStartBase.resize(ccsSequence.numPasses); passStartBaseArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.passStartBase[0]); } if (this->includedFields["PassStartPulse"]) { ccsSequence.passStartPulse.resize(ccsSequence.numPasses); passStartPulseArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.passStartPulse[0]); } if (this->includedFields["PassNumPulses"]) { ccsSequence.passNumPulses.resize(ccsSequence.numPasses); passNumPulsesArray.Read(curPassPos, curPassPos + ccsSequence.numPasses, &ccsSequence.passNumPulses[0]); } curPassPos += ccsSequence.numPasses; } else { // advance a read in the ccs sequence without advancing positions. ccsBasReader.curRead++; } // // Regardless whether or not a ccs read was called, read the next // unrolled read, since an unrolled read is called for each zmw. // retVal = ((T_HDFBasReader*)this)->GetNext(ccsSequence.unrolledRead); ccsSequence.zmwData = ccsSequence.unrolledRead.zmwData; ccsSequence.CopyTitle(ccsSequence.unrolledRead.title); string newTitle = string(ccsSequence.title) + string("/ccs"); ccsSequence.CopyTitle(newTitle.c_str()); } catch (H5::DataSetIException e) { cout << "ERROR, could not read ccs data for CCS Sequence " << ccsSequence.unrolledRead.title << endl; exit(1); } // cout << "title: " << ccsSequence.title << endl; if (retVal == 0) { return 0; } else { return 1; } } }; #endif blasr_libcpp-master/hdf/HDFCmpData.hpp000066400000000000000000000016421260756663100201270ustar00rootroot00000000000000#ifndef _BLASR_HDF_CMP_DATA_HPP_ #define _BLASR_HDF_CMP_DATA_HPP_ #include "HDFAtom.hpp" #include "HDFCmpRefAlignmentGroup.hpp" class HDFCmpData { public: HDFAtom commandLine; H5::H5File hdfCmpFile; HDFArray movieNameIdArray; HDFStringArray movieNameArray; HDFStringArray readGroupPathArray; HDFArray readGroupPathIdArray; HDFArray refSeqNameIdArray; HDFStringArray refSeqNameArray; static const int NCols=22; vector > colNameAtoms; vector refAlignGroups; map nameToAlignmentGroupIndex; static const char *colNameIds[]; void Close() { hdfCmpFile.close(); } }; const char * HDFCmpData::colNameIds[] = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"}; #endif blasr_libcpp-master/hdf/HDFCmpExperimentGroup.cpp000066400000000000000000000156311260756663100224110ustar00rootroot00000000000000#include #include "HDFCmpExperimentGroup.hpp" using namespace std; bool HDFCmpExperimentGroup::Create(HDFGroup &parent, string experimentGroupName) { parent.AddGroup(experimentGroupName); if (experimentGroup.Initialize(parent.group, experimentGroupName) == 0) { return 0; } alignmentArray.Create(experimentGroup, "AlnArray"); return true; } void HDFCmpExperimentGroup::AddAlignment(std::vector &alignment, unsigned int &offsetBegin, unsigned int &offsetEnd) { offsetBegin = offsetEnd = 0; if (alignment.size() == 0 ) { // // Do not increment anything. // return; } // Make a copy of alignment. vector paddedAlignment = alignment; // Pad '0' to the end of the alignment. paddedAlignment.push_back(0); offsetBegin = alignmentArray.size(); // 0 based, inclusive offsetEnd = offsetBegin + alignment.size(); // 0 based, exclusive // alignmentArray[offsetEnd] is not a part of the real alignment, it is the padded 0. alignmentArray.Write(&paddedAlignment[0], paddedAlignment.size()); } //template //void HDFCmpExperimentGroup::AddQualityValues(const std::vector &qualityValues, // const std::string &fieldName, // unsigned int *offsetBegin, // unsigned int *offsetEnd) { // // std::vector paddedQualityValues = qualityValues; // paddedQualityValues.push_back(0); // HDFArray *arrayPtr = NULL; // // // This seems to be how we do it // if (fieldName == "DeletionQV") { // arrayPtr = &deletionQV; // } else if (fieldName == "InsertionQV") { // arrayPtr = &insertionQV; // } else if (fieldName == "MergeQV") { // arrayPtr = &mergeQV; // } else if (fieldName == "SubstitutionQV") { // arrayPtr = &substitutionQV; // } else if (fieldName == "DeletionTag") { // arrayPtr = &deletionTag; // } else if (fieldName == "SubstitutionTag") { // arrayPtr = &substitutionTag; // } else { // assert(false); // } // // *offsetBegin = arrayPtr->size(); // *offsetEnd = arrayPtr->size() + qualityValues.size(); // // arrayPtr->Write(&paddedQualityValues[0], paddedQualityValues.size()); //} // //// One for tags, one for QVs //template void HDFCmpExperimentGroup::AddQualityValues( // const std::vector&, const std::string&, // unsigned int*, unsigned int*); // //template void HDFCmpExperimentGroup::AddQualityValues( // const std::vector&, const std::string&, // unsigned int*, unsigned int*); // int HDFCmpExperimentGroup::Initialize(HDFGroup &refGroup, string experimentGroupName, set &fieldNames) { // // Normal initialization that prepares for reading alignments // Initialize(refGroup, experimentGroupName); // // Field initialization for reading in pulse/quality information. // set::iterator fieldNameIt, fieldEnd; fieldEnd = fieldNames.end(); for (fieldNameIt = fieldNames.begin(); fieldNameIt != fieldEnd; ++fieldNameIt) { if (supportedFields.find(*fieldNameIt) != supportedFields.end() and experimentGroup.ContainsObject(*fieldNameIt)) { fields[*fieldNameIt]->Initialize(experimentGroup, *fieldNameIt); } else { cout << "Unable to initialize requested field " << *fieldNameIt << " in experiment group " << experimentGroupName << endl; } } return 1; } int HDFCmpExperimentGroup::Initialize(HDFGroup &refGroup, string experimentGroupName) { if (experimentGroup.Initialize(refGroup.group, experimentGroupName) == 0) { return 0; } if (alignmentArray.Initialize(experimentGroup, "AlnArray") == 0) { return 0; } return 1; } HDFCmpExperimentGroup::HDFCmpExperimentGroup() { fields["StartTimeOffset"] = &this->startTimeOffset; fields["QualityValue"] = &this->qualityValue; fields["IPD"] = &this->ipd; fields["PreBaseFrames"] = &this->preBaseFrames; fields["DeletionQV"] = &this->deletionQV; fields["InsertionQV"] = &this->insertionQV; fields["ClassifierQV"] = &this->classifierQV; fields["SubstitutionQV"] = &this->substitutionQV; fields["Light"] = &this->light; fields["WidthInFrames"] = &this->widthInFrames; fields["PulseWidth"] = &this->pulseWidth; fields["StartFrame"] = &this->startTime; // StartFrame computed from Pulse metrics and Base metrics fields["StartFramePulse"] = &this->startTimePulse; fields["StartFrameBase"] = &this->startTimeBase; fields["pkmid"] = &this->pkmid; fields["pkmax"] = &this->pkmax; fields["pkmean"] = &this->pkmean; fields["DeletionTag"] = &this->deletionTag; fields["SubstitutionTag"] = &this->substitutionTag; fields["PulseIndex"] = &this->pulseIndex; fields["MergeQV"] = &this->mergeQV; } // Return reference alignment AlnArray size in KB. UInt HDFCmpExperimentGroup::GetAlnArraySize() { return alignmentArray.arrayLength / 1024 * sizeof (unsigned char); } void HDFCmpExperimentGroup::AddQVs(const std::vector &qualityValues, const std::string &fieldName, unsigned int *offsetBegin, unsigned int *offsetEnd) { std::vector paddedQualityValues = qualityValues; paddedQualityValues.push_back(0); HDFArray *arrayPtr = NULL; // This seems to be how we do it if (fieldName == "DeletionQV") { arrayPtr = &deletionQV; } else if (fieldName == "InsertionQV") { arrayPtr = &insertionQV; } else if (fieldName == "MergeQV") { arrayPtr = &mergeQV; } else if (fieldName == "SubstitutionQV") { arrayPtr = &substitutionQV; } else { assert(false); } if (!arrayPtr->isInitialized) arrayPtr->Initialize(experimentGroup, fieldName); *offsetBegin = arrayPtr->size(); *offsetEnd = arrayPtr->size() + qualityValues.size(); arrayPtr->Write(&paddedQualityValues[0], paddedQualityValues.size()); } void HDFCmpExperimentGroup::AddTags(const std::vector &qualityValues, const std::string &fieldName, unsigned int *offsetBegin, unsigned int *offsetEnd) { std::vector paddedQualityValues = qualityValues; paddedQualityValues.push_back(0); HDFArray *arrayPtr = NULL; if (fieldName == "DeletionTag") { arrayPtr = &deletionTag; } else if (fieldName == "SubstitutionTag") { arrayPtr = &substitutionTag; } else { assert(false); } if (!arrayPtr->isInitialized) arrayPtr->Initialize(experimentGroup, fieldName); *offsetBegin = arrayPtr->size(); *offsetEnd = arrayPtr->size() + qualityValues.size(); arrayPtr->Write(&paddedQualityValues[0], paddedQualityValues.size()); } blasr_libcpp-master/hdf/HDFCmpExperimentGroup.hpp000066400000000000000000000046241260756663100224160ustar00rootroot00000000000000#ifndef _BLASR_HDF_CMP_EXPERIMENT_GROUP_HPP_ #define _BLASR_HDF_CMP_EXPERIMENT_GROUP_HPP_ #include #include #include #include #include "Types.h" #include "HDFGroup.hpp" #include "HDFArray.hpp" #include "HDFCmpSupportedFields.hpp" class HDFCmpExperimentGroup { public: HDFCmpSupportedFields supportedFields; HDFArray startTimeOffset; HDFArray ipd; HDFArray preBaseFrames; HDFArray deletionTag; HDFArray substitutionTag; HDFArray qualityValue; HDFArray deletionQV; HDFArray insertionQV; HDFArray classifierQV; // ClassifierQV date type is float in cmp.h5 HDFArray substitutionQV; HDFArray mergeQV; HDFArray light; HDFArray widthInFrames; HDFArray pulseWidth; HDFArray startTime; // StartFrame computed from Pulse metrics and Base metric HDFArray startTimeBase; HDFArray startTimePulse; HDFArray pkmid; HDFArray pkmax; HDFArray pkmean; HDFArray numPasses; HDFArray pulseIndex; std::map fields; HDFGroup experimentGroup; HDFArray alignmentArray; bool Create(HDFGroup &parent, string experimentGroupName); void AddAlignment(std::vector &alignment, unsigned int &offsetBegin, unsigned int &offsetEnd); // AddQVs and AddTags are like AddAlignment, but for QVs and Tags, // respectively. They are responsible for initializing and writing to the // correct member HDFArray, given a vector of values to write and the name // of the QV or Tag void AddQVs(const std::vector &qualityValues, const std::string &fieldName, unsigned int *offsetBegin, unsigned int *offsetEnd); void AddTags(const std::vector &qualityValues, const std::string &fieldName, unsigned int *offsetBegin, unsigned int *offsetEnd); int Initialize(HDFGroup &refGroup, std::string experimentGroupName, std::set &fieldNames); int Initialize(HDFGroup &refGroup, std::string experimentGroupName); void Read(); HDFCmpExperimentGroup(); // Return reference alignment AlnArray size in KB. UInt GetAlnArraySize(); }; #endif blasr_libcpp-master/hdf/HDFCmpFile.hpp000066400000000000000000001047771260756663100201520ustar00rootroot00000000000000#ifndef _BLASR_HDF_CMP_FILE_HPP_ #define _BLASR_HDF_CMP_FILE_HPP_ #include #include #include #include #include "H5Cpp.h" #include "HDFAtom.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFCmpData.hpp" #include "HDFCmpRefAlignmentGroup.hpp" #include "HDFCmpExperimentGroup.hpp" #include "HDFAlnGroupGroup.hpp" #include "HDFAlnInfoGroup.hpp" #include "HDFRefGroupGroup.hpp" #include "HDFRefInfoGroup.hpp" #include "HDFMovieInfoGroup.hpp" #include "HDFCmpRootGroup.hpp" #include "HDFCmpSupportedFields.hpp" #include "HDFFileLogGroup.hpp" #include "SMRTSequence.hpp" #include "datastructures/alignment/CmpFile.hpp" #include "datastructures/alignment/Alignment.hpp" #include "datastructures/alignment/AlignmentCandidate.hpp" #include "alignment/CmpAlignment.hpp" #include "datastructures/alignment/CmpReadGroupTable.h" #include "datastructures/alignment/CmpRefSeqTable.h" #include "datastructures/alignment/ByteAlignment.h" #include "saf/RefInfo.hpp" using namespace H5; using namespace std; template class HDFCmpFile : public HDFCmpData { public: map movieNameIdToArrayIndex, readGroupPathIdToArrayIndex, refGroupIdToArrayIndex; map refNameToArrayIndex; // map readGroupPathToReadGroup; map alnGroupIdToReadGroupName; HDFAlnGroupGroup alnGroupGroup; HDFAlnInfoGroup alnInfoGroup; HDFMovieInfoGroup movieInfoGroup; HDFRefGroupGroup refGroupGroup; HDFRefInfoGroup refInfoGroup; HDFCmpRootGroup rootGroup; set includedFields; HDFCmpSupportedFields supportedFields; HDFAtom readTypeAtom; HDFFileLogGroup fileLogGroup; void AstroInitializeColumnNameMap() { CmpAlignmentBase::columnNameToIndex["AlignmentId"] = 0; CmpAlignmentBase::columnNameToIndex["ReadGroupId"] = 1; CmpAlignmentBase::columnNameToIndex["MovieId"] = 2; CmpAlignmentBase::columnNameToIndex["RefSeqId"] = 3; CmpAlignmentBase::columnNameToIndex["tStart"] = 4; CmpAlignmentBase::columnNameToIndex["tEnd"] = 5; CmpAlignmentBase::columnNameToIndex["AlignedStrand"] = 6; CmpAlignmentBase::columnNameToIndex["ExpId"] = 7; CmpAlignmentBase::columnNameToIndex["RunId"] = 8; CmpAlignmentBase::columnNameToIndex["Panel"] = 9; CmpAlignmentBase::columnNameToIndex["x"] = 10; CmpAlignmentBase::columnNameToIndex["y"] = 11; CmpAlignmentBase::columnNameToIndex["SubreadId"] = 12; CmpAlignmentBase::columnNameToIndex["rStart"] = 13; CmpAlignmentBase::columnNameToIndex["rEnd"] = 14; CmpAlignmentBase::columnNameToIndex["Z"] = 15; CmpAlignmentBase::columnNameToIndex["nM"] = 16; CmpAlignmentBase::columnNameToIndex["nMM"] = 17; CmpAlignmentBase::columnNameToIndex["nIns"] = 18; CmpAlignmentBase::columnNameToIndex["nDel"] = 19; CmpAlignmentBase::columnNameToIndex["offset_begin"] = 20; CmpAlignmentBase::columnNameToIndex["offset_end"] = 21; } void SpringfieldInitializeColumnNameMap() { CmpAlignmentBase::columnNameToIndex["AlignmentId"] = 0; CmpAlignmentBase::columnNameToIndex["ReadGroupId"] = 1; CmpAlignmentBase::columnNameToIndex["AlnGroupID"] = 1; CmpAlignmentBase::columnNameToIndex["AlnGroupId"] = 1; CmpAlignmentBase::columnNameToIndex["MovieId"] = 2; CmpAlignmentBase::columnNameToIndex["RefSeqId"] = 3; CmpAlignmentBase::columnNameToIndex["tStart"] = 4; CmpAlignmentBase::columnNameToIndex["tEnd"] = 5; CmpAlignmentBase::columnNameToIndex["RCRefStrand"] = 6; CmpAlignmentBase::columnNameToIndex["HoleNumber"] = 7; CmpAlignmentBase::columnNameToIndex["SetNumber"] = 8; CmpAlignmentBase::columnNameToIndex["StrobeNumber"] = 9; CmpAlignmentBase::columnNameToIndex["SubreadId"] = 10; CmpAlignmentBase::columnNameToIndex["rStart"] = 11; CmpAlignmentBase::columnNameToIndex["rEnd"] = 12; CmpAlignmentBase::columnNameToIndex["MapQV"] = 13; CmpAlignmentBase::columnNameToIndex["nM"] = 14; CmpAlignmentBase::columnNameToIndex["nMM"] = 15; CmpAlignmentBase::columnNameToIndex["nIns"] = 16; CmpAlignmentBase::columnNameToIndex["nDel"] = 17; CmpAlignmentBase::columnNameToIndex["offset_begin"] = 18; CmpAlignmentBase::columnNameToIndex["offset_end"] = 19; CmpAlignmentBase::columnNameToIndex["nBackRead"] = 20; CmpAlignmentBase::columnNameToIndex["nReadOverlap"] = 21; // All synonyms, the code requiring these should be refactored so // that it no synonyms are needed. // CmpAlignmentBase::columnNameToIndex["AlnID"] = 0; CmpAlignmentBase::columnNameToIndex["AlnGroupID"] = 1; CmpAlignmentBase::columnNameToIndex["MovieID"] = 2; CmpAlignmentBase::columnNameToIndex["RefGroupID"] = 3; CmpAlignmentBase::columnNameToIndex["RefGroupId"] = 3; CmpAlignmentBase::columnNameToIndex["MoleculeID"] = 10; CmpAlignmentBase::columnNameToIndex["Offset_begin"] = 18; CmpAlignmentBase::columnNameToIndex["Offset_end"] = 19; } int Initialize(string &hdfCmpFileName, set includedFieldsP, unsigned int flags=H5F_ACC_RDONLY, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT) { Initialize(hdfCmpFileName, flags, fileAccPropList); includedFields = includedFieldsP; } void Create(string &hdfCmpFileName) { H5File newFile(hdfCmpFileName.c_str(), H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, FileAccPropList::DEFAULT); hdfCmpFile.openFile(hdfCmpFileName.c_str(), H5F_ACC_RDWR, H5P_DEFAULT); rootGroup.Initialize(hdfCmpFile); refGroupGroup.Create(rootGroup.rootGroup); alnGroupGroup.Create(rootGroup.rootGroup); refInfoGroup.Create(rootGroup.rootGroup); movieInfoGroup.Create(rootGroup.rootGroup); alnInfoGroup.Create(rootGroup.rootGroup); fileLogGroup.Create(rootGroup.rootGroup); // // Add atom data // readTypeAtom.Create(rootGroup.rootGroup.group, "ReadType"); readTypeAtom.Write("standard"); // Add some proxy data for now. HDFAtom primaryVersionAtom, versionAtom; primaryVersionAtom.Create(rootGroup.rootGroup.group, "PrimaryVersion"); primaryVersionAtom.Write("2.0.0.135558"); versionAtom.Create(rootGroup.rootGroup.group, "Version"); versionAtom.Write("2.0.0"); } void SetReadType(string readType) { readTypeAtom.Write(readType.c_str()); } void GenerateNextRefGroupName(string &name) { stringstream nameStrm; nameStrm << "ref"; nameStrm.width(6); nameStrm.fill('0'); nameStrm << right << refGroupIdToArrayIndex.size() + 1; name = nameStrm.str(); } int AddReference(string refName, unsigned int length, string md5, string &refGroupName) { // // Adding a reference requires: // // 1. Creating a new refgroup name. // 2. Create the new reference group to add alignments to. // 3. Adding this new name to the set of paths of ref groups. // 4. Adding information for this ref group. // // 1. this->GenerateNextRefGroupName(refGroupName); // 2. HDFCmpRefAlignmentGroup *newGroup = new HDFCmpRefAlignmentGroup; if (newGroup == nullptr) { cout << "ERROR, unable to allocate memory for cmp.h5 file." << endl; exit(1); } newGroup->Create(rootGroup.rootGroup, refGroupName); refAlignGroups.push_back(newGroup); unsigned int id = refAlignGroups.size(); // 3. refGroupGroup.AddPath("/" + refGroupName, id); refGroupIdToArrayIndex[id] = id - 1; refNameToArrayIndex[refName] = id - 1; // 4. refInfoGroup.AddRefInfo(refName, id, length, md5); return id; } int StoreAlnArray(vector &alnArray, string refName, string &experimentName, unsigned int &offsetBegin, unsigned int &offsetEnd) { // // First find the reference group. // assert(refNameToArrayIndex.find(refName) != refNameToArrayIndex.end()); int refIndex = refNameToArrayIndex[refName]; assert(refIndex < refAlignGroups.size()); HDFCmpExperimentGroup *expGroup; expGroup = refAlignGroups[refIndex]->GetExperimentGroup(experimentName); expGroup->AddAlignment(alnArray, offsetBegin, offsetEnd); } // Write a vector of quality values to the appropriate experiment group. // This is similar to StoreAlignment, but for QVs int StoreQVs(const vector &qvArray, const string &refName, const string &fieldName, const string &experimentName, unsigned int *offsetBegin, unsigned int *offsetEnd) { assert(refNameToArrayIndex.find(refName) != refNameToArrayIndex.end()); int refIndex = refNameToArrayIndex[refName]; assert(refIndex < refAlignGroups.size()); HDFCmpExperimentGroup *expGroup; expGroup = refAlignGroups[refIndex]->GetExperimentGroup(experimentName); expGroup->AddQVs(qvArray, fieldName, offsetBegin, offsetEnd); } // Write a vector of tag to the appropriate experiment group. // This is similar to StoreAlignment, but for DeletionTag and // SubstitutionTag. int StoreTags(const vector &qvArray, const string &refName, const string &fieldName, const string &experimentName, unsigned int *offsetBegin, unsigned int *offsetEnd) { assert(refNameToArrayIndex.find(refName) != refNameToArrayIndex.end()); int refIndex = refNameToArrayIndex[refName]; assert(refIndex < refAlignGroups.size()); HDFCmpExperimentGroup *expGroup; expGroup = refAlignGroups[refIndex]->GetExperimentGroup(experimentName); expGroup->AddTags(qvArray, fieldName, offsetBegin, offsetEnd); } int Initialize(string &hdfCmpFileName, unsigned int flags=H5F_ACC_RDONLY, const H5::FileAccPropList fileAccPropList=H5::FileAccPropList::DEFAULT) { /* * Initialize access to the HDF file. */ try { hdfCmpFile.openFile(hdfCmpFileName.c_str(), flags, fileAccPropList); } catch (Exception &e) { cout << e.getDetailMsg() << endl; return 0; } rootGroup.Initialize(hdfCmpFile); readTypeAtom.Initialize(rootGroup.rootGroup, "ReadType"); if (alnGroupGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read AlnGroup of the cmp file." << endl; exit(1); } if (refInfoGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read RefInfo of the cmp file." << endl; exit(1); } if (refGroupGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read RefGroup of the cmp file." << endl; exit(1); } if (movieInfoGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read MovieInfo of the cmp file." << endl; exit(1); } if (alnInfoGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read AlnInfo of the cmp file." << endl; exit(1); } if (fileLogGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read FileLog of the cmp file." << endl; exit(1); } SpringfieldInitializeColumnNameMap(); return 1; } bool HasNoAlignments() { // return true if there is no alignment in the cmp file. if (alnInfoGroup.alnIndexArray.GetNRows()==0) { return true; } return false; } unsigned int GetAlignmentIndexSize() { if (alnInfoGroup.alnInfoGroup.groupIsInitialized == false) { cout << "ERROR, getting the size of an index before initializing the cmp.h5 file." << endl; exit(1); } return alnInfoGroup.alnIndexArray.GetNRows(); } // Add synonym unsigned int GetNAlignments() { return GetAlignmentIndexSize(); } static void ParseReadGroupPath(string &path, string &refName, string &readGroupName){ int delimPos; delimPos = path.find_last_of('/'); if (delimPos != path.npos) { refName = path.substr(0, delimPos); // // Check the ref name to see if it has a preceeding '/' // readGroupName = path.substr(delimPos+1, path.size()); } else { refName =""; readGroupName = ""; } } void StorePlatformId(CmpFile &cmpFile) { // // For now, hard wire as a springfield. Later if the fields // change per platform, this may be updated. // cmpFile.platformId = Springfield; } void ReadAlignmentDescriptions(CmpFile &cmpFile) { // // Gather run information. // rootGroup.ReadAttributes(cmpFile); string readTypeString; readTypeAtom.Read(readTypeString); cmpFile.StoreReadType(readTypeString); // // Read in the groups that describe what alignments are present. // alnGroupGroup.Read(cmpFile.alnGroup); alnInfoGroup.Read(cmpFile.alnInfo); refGroupGroup.Read(cmpFile.refGroup); movieInfoGroup.Read(cmpFile.movieInfo); refInfoGroup.Read(cmpFile.refInfo); StorePlatformId(cmpFile); } void ReadStructure(CmpFile &cmpFile) { // // Now for every reference group in the cmp file, create a group. // map refNameToArrayIndex; unsigned int refSeqIndex; for (refSeqIndex = 0; refSeqIndex < cmpFile.refGroup.path.size(); refSeqIndex++) { HDFCmpRefAlignmentGroup* refAlignGroup; refAlignGroup = new HDFCmpRefAlignmentGroup; if (refAlignGroup == nullptr) { cout << "ERROR, unable to allocate memory for cmp.h5 file." << endl; exit(1); } refAlignGroup->Initialize(rootGroup.rootGroup.group, cmpFile.refGroup.path[refSeqIndex]); int refAlignGroupIndex = refAlignGroups.size(); refAlignGroups.push_back(refAlignGroup); // // Allow one to index directly into this group given a string // representing the reference name. // refNameToArrayIndex[cmpFile.refGroup.path[refSeqIndex]] = refAlignGroupIndex; refGroupIdToArrayIndex[cmpFile.refGroup.id[refSeqIndex]] = refAlignGroupIndex; } // // Now that all ref groups are created, add read groups that // are aligned to the ref groups. // // Note that groups are not necessarily named by movie, especially in // a deep-sorted cmp.h5, read groups may look like: // /ref00001/rg8953-0 // /ref00001/rg2453-1 // unsigned int alnGroupIndex; for (alnGroupIndex = 0; alnGroupIndex < cmpFile.alnGroup.path.size(); alnGroupIndex++) { string refName, readGroupName; ParseReadGroupPath(cmpFile.alnGroup.path[alnGroupIndex], refName, readGroupName); // // Create an index that maps alnGroupId (/AlnGroup/Id) to readGroupName // alnGroupIdToReadGroupName[cmpFile.alnGroup.id[alnGroupIndex]] = readGroupName; // // Look up the group where this alignment should be found. // unsigned int refGroupArrayIndex; if (refNameToArrayIndex.find(refName) != refNameToArrayIndex.end()) { refGroupArrayIndex = refNameToArrayIndex[refName]; } else { cout << "ERROR! The reference name '" << refName << "' does not have an entry though it is " << " specified in the path for " << cmpFile.readGroupTable.names[alnGroupIndex] << endl; assert(0); } HDFCmpExperimentGroup *alnGroupPtr; alnGroupPtr = refAlignGroups[refGroupArrayIndex]->InitializeExperimentGroup(readGroupName, includedFields); // experimentNameToIndex should have been set in InitializeExperimentGroup(); assert( refAlignGroups[refGroupArrayIndex]->experimentNameToIndex[readGroupName] == refAlignGroups[refGroupArrayIndex]->readGroups.size()-1); refAlignGroups[refGroupArrayIndex]->experimentNameToIndex[readGroupName] = refAlignGroups[refGroupArrayIndex]->readGroups.size()-1; } } void Read(CmpFile &cmpFile, bool readAllAlignments = true) { ReadAlignmentDescriptions(cmpFile); ReadStructure(cmpFile); if (!readAllAlignments) return; /* * Now that the alignment indices are all read in, read the base-by-base alignments. */ unsigned int alignmentIndex; for (alignmentIndex = 0; alignmentIndex < cmpFile.alnInfo.alignments.size(); alignmentIndex++) { unsigned int alnGroupId = cmpFile.alnInfo.alignments[alignmentIndex].GetAlnGroupId(); unsigned int refGroupId = cmpFile.alnInfo.alignments[alignmentIndex].GetRefGroupId(); string refSeqName; // // Make sure the refGroupId specified in the alignment index exists in the alignment groups. // int refGroupArrayIndex; if (refGroupIdToArrayIndex.find(refGroupId) == refGroupIdToArrayIndex.end()) { cout << "ERROR! Alignment " << cmpFile.alnInfo.alignments[alignmentIndex].GetAlignmentId() << " has ref seq id " << refGroupId << " that does not exist in the HDF file." << endl; assert(0); } else { refGroupArrayIndex = refGroupIdToArrayIndex[refGroupId]; } // // Point to the refGroup that this alignment is part of. // HDFCmpRefAlignmentGroup* refAlignGroup = refAlignGroups[refGroupArrayIndex]; // // Now locate the read group that is part of this ref align group. // string readGroupName = alnGroupIdToReadGroupName[alnGroupId]; if (refAlignGroup->experimentNameToIndex.find(readGroupName) == refAlignGroup->experimentNameToIndex.end()) { cout << "Internal ERROR! The read group name " << readGroupName << " is specified as part of " << " the path in alignment " << cmpFile.alnInfo.alignments[alignmentIndex].GetAlignmentId() << " though it does not exist in the ref align group specified for this alignment." << endl; assert(0); } int experimentIndex; experimentIndex = refAlignGroup->experimentNameToIndex[readGroupName]; unsigned int alignmentLength = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetEnd() - cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin(); vector alignmentArray; vector fieldArray; if (alignmentArray.size() < alignmentLength) { alignmentArray.resize(alignmentLength); } /* * Read in the base by base alignment. */ refAlignGroup->readGroups[experimentIndex]->alignmentArray.Read(cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin(), cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetEnd(), &alignmentArray[0]); cmpFile.alnInfo.alignments[alignmentIndex].StoreAlignmentArray(&alignmentArray[0], alignmentLength); /* * Read in all additional fields such as quality values, etc.. */ set::iterator fieldIt, fieldEnd; fieldEnd = includedFields.end(); for (fieldIt = includedFields.begin(); fieldIt != fieldEnd; ++fieldIt) { if (fieldArray.size() < alignmentLength) { fieldArray.resize(alignmentLength); } HDFArray* fieldArrayPtr = dynamic_cast* >(refAlignGroup->readGroups[experimentIndex]->fields[*fieldIt]); int ob = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin(); int oe = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetEnd(); fieldArrayPtr->Read(ob, oe, &fieldArray[0]); cmpFile.alnInfo.alignments[alignmentIndex].StoreField(*fieldIt, &fieldArray[0], alignmentLength); } } } void IncludeField(string fieldName) { if (supportedFields.find(fieldName) == supportedFields.end()) { cout << "ERROR, attempting to include field " << fieldName << " that is not supported." << endl; exit(1); } includedFields.insert(fieldName); } template void StoreQualityValueFromAlignment(vector &fieldValues, vector &baseToAlignmentMap, T_QV *qv) { int i; for (i = 0; i < baseToAlignmentMap.size();i++) { qv[i] = fieldValues[baseToAlignmentMap[i]]; } } /* void ReadAlignment(int alignmentIndex, CmpAlignment &cmpAlignment) { alnInfoGroup.ReadCmpAlignment(alignmentIndex, cmpAlignment); ReadAlignmentArray(alignmentIndex, cmpAlignment.alignmentArray); } */ void ReadAlignment(int alignmentIndex, T_Alignment &alignment) { CmpAlignment cmpAln; ReadAlignment(alignmentIndex, cmpAln); string refSequence; string readSequence; readSequence.resize(cmpAln.alignmentArray.size()); refSequence.resize(cmpAln.alignmentArray.size()); ByteAlignmentToQueryString(&cmpAln.alignmentArray[0], cmpAln.alignmentArray.size(), &readSequence[0]); ByteAlignmentToRefString(&cmpAln.alignmentArray[0], cmpAln.alignmentArray.size(), &refSequence[0]); string ungappedRead, ungappedRef; RemoveGaps(readSequence, ungappedRead); RemoveGaps(refSequence, ungappedRef); GappedStringsToAlignment(readSequence, refSequence, alignment); FASTASequence qAlignedSeq, rAlignedSeq; qAlignedSeq.seq = (Nucleotide*) &ungappedRead[0]; qAlignedSeq.length = ungappedRead.size(); rAlignedSeq.seq = (Nucleotide*) &ungappedRef[0]; rAlignedSeq.length = ungappedRef.size(); alignment.tAlignedSeq.Copy(rAlignedSeq); alignment.qAlignedSeq.Copy(qAlignedSeq); unsigned int qStart = cmpAln.GetQueryStart(); unsigned int tStart = cmpAln.GetRefStart(); alignment.tPos = cmpAln.GetRefStart(); alignment.qPos = cmpAln.GetQueryStart(); alignment.nIns = cmpAln.GetNInsertions(); alignment.nDel = cmpAln.GetNDeletions(); alignment.nMatch = cmpAln.GetNMatch(); alignment.nMismatch=cmpAln.GetNMismatch(); alignment.qStrand= 0; alignment.tStrand = cmpAln.GetTStrand(); alignment.pctSimilarity = ((float)alignment.nMatch) / (alignment.nMatch + alignment.nMismatch + alignment.nIns + alignment.nDel); alignment.mapQV = cmpAln.GetMapQV(); } void ReadAlignmentArray(int alignmentIndex, ByteAlignment &alignmentArray) { CmpAlignment cmpAlignment; alnInfoGroup.ReadCmpAlignment(alignmentIndex, cmpAlignment); // // Cache some stats about the read, and where it was aligned to. // int queryStart = cmpAlignment.GetQueryStart(); int queryEnd = cmpAlignment.GetQueryEnd(); int refGroupId = cmpAlignment.GetRefGroupId(); int alnGroupId = cmpAlignment.GetAlnGroupId(); int refGroupIndex = refGroupIdToArrayIndex[refGroupId]; if (alnGroupIdToReadGroupName.find(alnGroupId) == alnGroupIdToReadGroupName.end()) { cout << "INTERNAL ERROR! Could not find read group name for alignment " << "group with Id " << alnGroupId << "." << endl; assert(0); } string readGroupName = alnGroupIdToReadGroupName[alnGroupId]; if (refAlignGroups[refGroupIndex]->experimentNameToIndex.find(readGroupName) == refAlignGroups[refGroupIndex]->experimentNameToIndex.end()) { cout << "Internal ERROR! The read group name " << readGroupName << " is specified as part of " << " the path in alignment " << alignmentIndex << " though it does not exist in the ref align group specified for this alignment." << endl; assert(0); } int readGroupIndex = refAlignGroups[refGroupIndex]->experimentNameToIndex[readGroupName]; HDFCmpExperimentGroup* expGroup = refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]; int offsetBegin = cmpAlignment.GetOffsetBegin(); int offsetEnd = cmpAlignment.GetOffsetEnd(); int alignedSequenceLength = offsetEnd - offsetBegin; if (alignedSequenceLength >= 0) { alignmentArray.resize(alignedSequenceLength); } else { return; } // // Read the alignment string. All alignments // refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]->alignmentArray.Read(offsetBegin, offsetEnd, &alignmentArray[0]); } void ImportReadFromCmpH5(int alignmentIndex, CmpAlignment &cmpAlignment, SMRTSequence &read) { alnInfoGroup.ReadCmpAlignment(alignmentIndex, cmpAlignment); // // Cache some stats about the read, and where it was aligned to. // int queryStart = cmpAlignment.GetQueryStart(); int queryEnd = cmpAlignment.GetQueryEnd(); read.HoleNumber(cmpAlignment.GetHoleNumber()); int refGroupId = cmpAlignment.GetRefGroupId(); int alnGroupId = cmpAlignment.GetAlnGroupId(); int refGroupIndex = refGroupIdToArrayIndex[refGroupId]; if (alnGroupIdToReadGroupName.find(alnGroupId) == alnGroupIdToReadGroupName.end()) { cout << "INTERNAL ERROR! Could not find read group name for alignment " << "group with Id " << alnGroupId << "." << endl; assert(0); } string readGroupName = alnGroupIdToReadGroupName[alnGroupId]; if (refAlignGroups[refGroupIndex]->experimentNameToIndex.find(readGroupName) == refAlignGroups[refGroupIndex]->experimentNameToIndex.end()) { cout << "Internal ERROR! The read group name " << readGroupName << " is specified as part of " << " the path in alignment " << alignmentIndex << " though it does not exist in the ref align group specified for this alignment." << endl; assert(0); } int readGroupIndex = refAlignGroups[refGroupIndex]->experimentNameToIndex[readGroupName]; HDFCmpExperimentGroup* expGroup = refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]; int offsetBegin = cmpAlignment.GetOffsetBegin(); int offsetEnd = cmpAlignment.GetOffsetEnd(); int alignedSequenceLength = offsetEnd - offsetBegin; string alignedSequence; string readSequence; vector byteAlignment; if (alignedSequenceLength >= 0) { alignedSequence.resize(alignedSequenceLength); byteAlignment.resize(alignedSequenceLength); } // // Read the alignment string. All alignments // refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]->alignmentArray.Read(offsetBegin, offsetEnd, &byteAlignment[0]); // // Convert to something we can compare easily. // ByteAlignmentToQueryString(&byteAlignment[0], byteAlignment.size(), &alignedSequence[0]); // // Initialize the sequence of the read. // RemoveGaps(alignedSequence, readSequence); // // Make space for the sequence and all fields. // read.length = readSequence.size(); read.Allocate(read.length); memcpy(read.seq, readSequence.c_str(), readSequence.size() * sizeof(char)); vector baseToAlignmentMap; CreateSequenceToAlignmentMap(byteAlignment, baseToAlignmentMap); // // Read in the quality values // vector storedQVArray; vector qvValues; vector frameValues; int length = offsetEnd - offsetBegin; qvValues.resize(length); frameValues.resize(length); int i; if (expGroup->experimentGroup.ContainsObject("QualityValue")) { expGroup->qualityValue.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.qual.data[0]); int i; for (i= 0; i < read.length; i++) { assert(read.qual[i] < 100); } } if (expGroup->experimentGroup.ContainsObject("InsertionQV")) { expGroup->insertionQV.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.insertionQV.data[0]); } if (expGroup->experimentGroup.ContainsObject("SubstitutionQV")) { expGroup->substitutionQV.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.substitutionQV.data[0]); } if (expGroup->experimentGroup.ContainsObject("DeletionQV")) { expGroup->deletionQV.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.deletionQV.data[0]); } if (expGroup->experimentGroup.ContainsObject("DeletionTag")) { vector deletionTagValues; deletionTagValues.resize(offsetEnd-offsetBegin); expGroup->deletionTag.Read(offsetBegin, offsetEnd, &deletionTagValues[0]); StoreQualityValueFromAlignment(deletionTagValues, baseToAlignmentMap, read.deletionTag); } if (expGroup->experimentGroup.ContainsObject("SubstitutionTag")) { vector substitutionTagValues; substitutionTagValues.resize(offsetEnd-offsetBegin); expGroup->substitutionTag.Read(offsetBegin, offsetEnd, &substitutionTagValues[0]); StoreQualityValueFromAlignment(substitutionTagValues, baseToAlignmentMap, read.substitutionTag); } if (expGroup->experimentGroup.ContainsObject("PulseIndex")) { vector pulseIndexValues; pulseIndexValues.resize(offsetEnd-offsetBegin); expGroup->pulseIndex.Read(offsetBegin, offsetEnd, &pulseIndexValues[0]); StoreQualityValueFromAlignment(pulseIndexValues, baseToAlignmentMap, read.pulseIndex); } if (expGroup->experimentGroup.ContainsObject("PreBaseFrames")) { expGroup->preBaseFrames.Read(offsetBegin, offsetEnd, &frameValues[0]); StoreQualityValueFromAlignment(frameValues, baseToAlignmentMap, read.preBaseFrames); } if (expGroup->experimentGroup.ContainsObject("WidthInFrames")) { expGroup->widthInFrames.Read(offsetBegin, offsetEnd, &frameValues[0]); StoreQualityValueFromAlignment(frameValues, baseToAlignmentMap, read.widthInFrames); } } void ReadReadGroupPathTable(CmpIndexedStringTable &readGroupPathTable) { UInt numElem = readGroupPathTable.ids.size(); readGroupPathTable.resize(numElem); // resizes all tables readGroupPathIdArray.Read(0, numElem, &readGroupPathTable.ids[0]); readGroupPathArray.Read(0, numElem, &readGroupPathTable.names[0]); readGroupPathTable.StoreArrayIndexMap(); } void ReadRefSeqTable(CmpIndexedStringTable &refSeqTable) { UInt numElem = refSeqTable.ids.size(); refSeqTable.resize(numElem); refSeqNameIdArray.Read(0, numElem, &refSeqTable.ids[0]); refSeqNameArray.Read(0, numElem, &refSeqTable.names[0]); refSeqTable.StoreArrayIndexMap(); } void ReadMovieNameTable(CmpIndexedStringTable &movieTable) { UInt numElem = movieTable.ids.size(); movieTable.resize(numElem); movieNameIdArray.Read(0, numElem, &movieTable.ids[0]); movieNameArray.Read(0, numElem, &movieTable.names[0]); movieTable.StoreArrayIndexMap(); } // Store reference FullName, ID, Length and MD5 to /RefInfo unsigned int AddRefInfo(string refName, unsigned int length, string md5) { return refInfoGroup.AddRefInfo(refName, length, md5); } unsigned int AddRefGroup(string refName, unsigned int refInfoId, string & refGroupName) { if (refInfoId > 999999) { // ref000001 ~ ref999999 cout << "ERROR. Could not store more than 999999 references in " << " a cmp.h5 file." << endl; exit(1); } // Adding a new refGroup requires: // 1. Creating a new refgroup name, e.g., /ref000001. // 2. Create the new reference group to add alignments to. // 3. Adding this new name to the set of paths of ref groups. // 4. Adding information for this ref group. // 1. GenerateRefGroupName(refInfoId, refGroupName); // 2. HDFCmpRefAlignmentGroup *newGroup = new HDFCmpRefAlignmentGroup; if (newGroup == nullptr) { cout << "ERROR, unable to allocate memory for cmp.h5 file." << endl; exit(1); } newGroup->Create(rootGroup.rootGroup, refGroupName); refAlignGroups.push_back(newGroup); // 3. unsigned int refGroupId = refGroupGroup.AddPath("/" + refGroupName, refInfoId); // 4. refGroupIdToArrayIndex[refGroupId] = refGroupId - 1; refNameToArrayIndex[refName] = refGroupId - 1; return refGroupId; } void GenerateRefGroupName(unsigned int refInfoId, string & name) { // In order to mimic the behaviour of compareSequences, // refGroupName should equal to ref00000x, where x is refInfoId. // (x used to be refGroupIdToArrayIndex.size() + 1) stringstream nameStrm; nameStrm << "ref"; nameStrm.width(6); nameStrm.fill('0'); nameStrm << right << refInfoId; name = nameStrm.str(); } }; #endif blasr_libcpp-master/hdf/HDFCmpReader.hpp000066400000000000000000000670151260756663100204660ustar00rootroot00000000000000#ifndef _BLASR_HDF_CMP_READER_HPP_ #define _BLASR_HDF_CMP_READER_HPP_ #include "H5Cpp.h" #include #include #include "datastructures/alignment/CmpFile.h" #include "datastructures/alignment/Alignment.h" #include "datastructures/alignment/AlignmentCandidate.h" #include "datastructures/alignment/CmpAlignment.h" #include "datastructures/alignment/CmpReadGroupTable.h" #include "datastructures/alignment/CmpRefSeqTable.h" #include "datastructures/alignment/ByteAlignment.h" #include "data/hdf/HDFAtom.h" #include "data/hdf/HDFArray.h" #include "data/hdf/HDF2DArray.h" #include "data/hdf/HDFCmpData.h" #include "data/hdf/HDFCmpRefAlignmentGroup.h" #include "data/hdf/HDFCmpExperimentGroup.h" #include "HDFAlnGroupGroup.h" #include "HDFAlnInfoGroup.h" #include "HDFRefGroupGroup.h" #include "HDFRefInfoGroup.h" #include "HDFMovieInfoGroup.h" #include "HDFCmpRootGroup.h" #include "HDFCmpSupportedFields.h" #include "SMRTSequence.h" #include #include using namespace H5; using namespace std; template class HDFCmpReader : public HDFCmpData { public: map movieNameIdToArrayIndex, readGroupPathIdToArrayIndex, refGroupIdToArrayIndex; map readGroupPathToReadGroup; HDFAlnGroupGroup alnGroupGroup; HDFAlnInfoGroup alnInfoGroup; HDFMovieInfoGroup movieInfoGroup; HDFRefGroupGroup refGroupGroup; HDFRefInfoGroup refInfoGroup; HDFCmpRootGroup rootGroup; set includedFields; HDFCmpSupportedFields supportedFields; HDFAtom readTypeAtom; void AstroInitializeColumnNameMap() { CmpAlignmentBase::columnNameToIndex["AlignmentId"] = 0; CmpAlignmentBase::columnNameToIndex["ReadGroupId"] = 1; CmpAlignmentBase::columnNameToIndex["MovieId"] = 2; CmpAlignmentBase::columnNameToIndex["RefSeqId"] = 3; CmpAlignmentBase::columnNameToIndex["tStart"] = 4; CmpAlignmentBase::columnNameToIndex["tEnd"] = 5; CmpAlignmentBase::columnNameToIndex["AlignedStrand"] = 6; CmpAlignmentBase::columnNameToIndex["ExpId"] = 7; CmpAlignmentBase::columnNameToIndex["RunId"] = 8; CmpAlignmentBase::columnNameToIndex["Panel"] = 9; CmpAlignmentBase::columnNameToIndex["x"] = 10; CmpAlignmentBase::columnNameToIndex["y"] = 11; CmpAlignmentBase::columnNameToIndex["SubreadId"] = 12; CmpAlignmentBase::columnNameToIndex["rStart"] = 13; CmpAlignmentBase::columnNameToIndex["rEnd"] = 14; CmpAlignmentBase::columnNameToIndex["Z"] = 15; CmpAlignmentBase::columnNameToIndex["nM"] = 16; CmpAlignmentBase::columnNameToIndex["nMM"] = 17; CmpAlignmentBase::columnNameToIndex["nIns"] = 18; CmpAlignmentBase::columnNameToIndex["nDel"] = 19; CmpAlignmentBase::columnNameToIndex["offset_begin"] = 20; CmpAlignmentBase::columnNameToIndex["offset_end"] = 21; } void SpringfieldInitializeColumnNameMap() { CmpAlignmentBase::columnNameToIndex["AlignmentId"] = 0; CmpAlignmentBase::columnNameToIndex["ReadGroupId"] = 1; CmpAlignmentBase::columnNameToIndex["AlnGroupID"] = 1; CmpAlignmentBase::columnNameToIndex["AlnGroupId"] = 1; CmpAlignmentBase::columnNameToIndex["MovieId"] = 2; CmpAlignmentBase::columnNameToIndex["RefSeqId"] = 3; CmpAlignmentBase::columnNameToIndex["tStart"] = 4; CmpAlignmentBase::columnNameToIndex["tEnd"] = 5; CmpAlignmentBase::columnNameToIndex["RCRefStrand"] = 6; CmpAlignmentBase::columnNameToIndex["HoleNumber"] = 7; CmpAlignmentBase::columnNameToIndex["SetNumber"] = 8; CmpAlignmentBase::columnNameToIndex["StrobeNumber"] = 9; CmpAlignmentBase::columnNameToIndex["SubreadId"] = 10; CmpAlignmentBase::columnNameToIndex["rStart"] = 11; CmpAlignmentBase::columnNameToIndex["rEnd"] = 12; CmpAlignmentBase::columnNameToIndex["MapQV"] = 13; CmpAlignmentBase::columnNameToIndex["nM"] = 14; CmpAlignmentBase::columnNameToIndex["nMM"] = 15; CmpAlignmentBase::columnNameToIndex["nIns"] = 16; CmpAlignmentBase::columnNameToIndex["nDel"] = 17; CmpAlignmentBase::columnNameToIndex["offset_begin"] = 18; CmpAlignmentBase::columnNameToIndex["offset_end"] = 19; CmpAlignmentBase::columnNameToIndex["nBackRead"] = 20; CmpAlignmentBase::columnNameToIndex["nReadOverlap"] = 21; // All synonyms, the code requiring these should be refactored so // that it no synonyms are needed. // CmpAlignmentBase::columnNameToIndex["AlnID"] = 0; CmpAlignmentBase::columnNameToIndex["AlnGroupID"] = 1; CmpAlignmentBase::columnNameToIndex["MovieID"] = 2; CmpAlignmentBase::columnNameToIndex["RefGroupID"] = 3; CmpAlignmentBase::columnNameToIndex["RefGroupId"] = 3; CmpAlignmentBase::columnNameToIndex["MoleculeID"] = 10; CmpAlignmentBase::columnNameToIndex["Offset_begin"] = 18; CmpAlignmentBase::columnNameToIndex["Offset_end"] = 19; } int Initialize(string &hdfCmpFileName, set includedFieldsP, unsigned int flags=H5F_ACC_RDONLY, const H5::FileAccPropList & fileAccPropList=H5::FileAccPropList::DEFAULT) { Initialize(hdfCmpFileName, flags, fileAccPropList); includedFields = includedFieldsP; } int Initialize(string &hdfCmpFileName, unsigned int flags=H5F_ACC_RDONLY, const H5::FileAccPropList & fileAccPropList=H5::FileAccPropList::DEFAULT) { /* * Initialize access to the HDF file. */ try { hdfCmpFile.openFile(hdfCmpFileName.c_str(), flags, fileAccPropList); } catch (Exception &e) { cout << e.getDetailMsg() << endl; return 0; } rootGroup.Initialize(hdfCmpFile); readTypeAtom.Initialize(rootGroup.rootGroup, "ReadType"); if (alnGroupGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read AlnGroup of the cmp file." << endl; exit(1); } if (refInfoGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read RefInfo of the cmp file." << endl; exit(1); } if (refGroupGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read RefGroup of the cmp file." << endl; exit(1); } if (movieInfoGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read MovieInfo of the cmp file." << endl; exit(1); } if (alnInfoGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read AlnInfo of the cmp file." << endl; exit(1); } if (fileLogGroup.Initialize(rootGroup.rootGroup) == 0) { cout << "ERROR, could not read FileLog of the cmp file." << endl; exit(1); } SpringfieldInitializeColumnNameMap(); return 1; } unsigned int GetAlignmentIndexSize() { if (alnInfoGroup.alnInfoGroup.groupIsInitialized == false) { cout << "ERROR, getting the size of an index before initializing the cmp.h5 file." << endl; exit(1); } return alnInfoGroup.alnIndexArray.GetNRows(); } // Add synonym unsigned int GetNAlignments() { return GetAlignmentIndexSize(); } static void ParseReadGroupPath(string &path, string &refName, string &readGroupName){ int delimPos; delimPos = path.find_last_of('/'); if (delimPos != path.npos) { refName = path.substr(0, delimPos); // // Check the ref name to see if it has a preceeding '/' // readGroupName = path.substr(delimPos+1, path.size()); } else { refName =""; readGroupName = ""; } } void StorePlatformId(CmpFile &cmpFile) { // // For now, hard wire as a springfield. Later if the fields // change per platform, this may be updated. // cmpFile.platformId = Springfield; } void ReadAlignmentDescriptions(CmpFile &cmpFile) { // // Gather run information. // rootGroup.ReadAttributes(cmpFile); string readTypeString; readTypeAtom.Read(readTypeString); cmpFile.StoreReadType(readTypeString); // // Read in the groups that describe what alignments are present. // alnGroupGroup.Read(cmpFile.alnGroup); alnInfoGroup.Read(cmpFile.alnInfo); refGroupGroup.Read(cmpFile.refGroup); movieInfoGroup.Read(cmpFile.movieInfo); refInfoGroup.Read(cmpFile.refInfo); StorePlatformId(cmpFile); } void ReadStructure(CmpFile &cmpFile) { // // Now for every reference group in the cmp file, create a group. // map refNameToArrayIndex; unsigned int refSeqIndex; for (refSeqIndex = 0; refSeqIndex < cmpFile.refGroup.path.size(); refSeqIndex++) { HDFCmpRefAlignmentGroup* refAlignGroup; refAlignGroup = new HDFCmpRefAlignmentGroup; if (refAlignGroup == nullptr) {cout << "ERROR, unable to allocate memory for HDFCmpReader." << endl; exit(1);} refAlignGroup->Initialize(rootGroup.rootGroup.group, cmpFile.refGroup.path[refSeqIndex]); int refAlignGroupIndex = refAlignGroups.size(); refAlignGroups.push_back(refAlignGroup); // // Allow one to index directly into this group given a string // representing the reference name. // refNameToArrayIndex[cmpFile.refGroup.path[refSeqIndex]] = refAlignGroupIndex; refGroupIdToArrayIndex[cmpFile.refGroup.id[refSeqIndex]] = refAlignGroupIndex; } // // Now that all ref groups are created, add read groups that // are aligned to the ref groups. // // Note that groups are not necessarily named by movie, especially in // a deep-sorted cmp.h5, read groups may look like: // /ref00001/rg8953-0 // /ref00001/rg2453-1 // unsigned int alnGroupIndex; for (alnGroupIndex = 0; alnGroupIndex < cmpFile.alnGroup.path.size(); alnGroupIndex++) { string refName, readGroupName; ParseReadGroupPath(cmpFile.alnGroup.path[alnGroupIndex], refName, readGroupName); // // Create an index that maps alnGroupId (/AlnGroup/Id) to readGroupName // alnGroupIdToReadGroupName[cmpFile.alnGroup.id[alnGroupIndex]] = readGroupName; // // Look up the group where this alignment should be found. // unsigned int refGroupArrayIndex; if (refNameToArrayIndex.find(refName) != refNameToArrayIndex.end()) { refGroupArrayIndex = refNameToArrayIndex[refName]; } else { cout << "ERROR! The reference name '" << refName << "' does not have an entry though it is " << " specified in the path for " << cmpFile.readGroupTable.names[alnGroupIndex] << endl; assert(0); } HDFCmpExperimentGroup *alnGroupPtr; alnGroupPtr = refAlignGroups[refGroupArrayIndex]->InitializeExperimentGroup(readGroupName, includedFields); // experimentNameToIndex should have been set in InitializeExperimentGroup(); assert( refAlignGroups[refGroupArrayIndex]->experimentNameToIndex[readGroupName] == refAlignGroups[refGroupArrayIndex]->readGroups.size()-1); refAlignGroups[refGroupArrayIndex]->experimentNameToIndex[readGroupName] = refAlignGroups[refGroupArrayIndex]->readGroups.size()-1; } } void Read(CmpFile &cmpFile) { ReadAlignmentDescriptions(cmpFile); ReadStructure(cmpFile); /* * Now that the alignment indices are all read in, read the base-by-base alignments. */ unsigned int alignmentIndex; for (alignmentIndex = 0; alignmentIndex < cmpFile.alnInfo.alignments.size(); alignmentIndex++) { unsigned int alnGroupId = cmpFile.alnInfo.alignments[alignmentIndex].GetAlnGroupId(); unsigned int refGroupId = cmpFile.alnInfo.alignments[alignmentIndex].GetRefGroupId(); string refSeqName; // // Make sure the refGroupId specified in the alignment index exists in the alignment groups. // int refGroupArrayIndex; if (refGroupIdToArrayIndex.find(refGroupId) == refGroupIdToArrayIndex.end()) { cout << "ERROR! Alignment " << cmpFile.alnInfo.alignments[alignmentIndex].GetAlignmentId() << " has ref seq id " << refGroupId << " that does not exist in the HDF file." << endl; assert(0); } else { refGroupArrayIndex = refGroupIdToArrayIndex[refGroupId]; } // // Point to the refGroup that this alignment is part of. // HDFCmpRefAlignmentGroup* refAlignGroup = refAlignGroups[refGroupArrayIndex]; // // Now locate the read group that is part of this ref align group. // string readGroupName = alnGroupIdToReadGroupName[alnGroupId]; if (refAlignGroup->experimentNameToIndex.find(readGroupName) == refAlignGroup->experimentNameToIndex.end()) { cout << "Internal ERROR! The read group name " << readGroupName << " is specified as part of " << " the path in alignment " << cmpFile.alnInfo.alignments[alignmentIndex].GetAlignmentId() << " though it does not exist in the ref align group specified for this alignment." << endl; assert(0); } int experimentIndex; experimentIndex = refAlignGroup->experimentNameToIndex[readGroupName]; unsigned int alignmentLength = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetEnd() - cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin(); vector alignmentArray; vector fieldArray; if (alignmentArray.size() < alignmentLength) { alignmentArray.resize(alignmentLength); } /* * Read in the base by base alignment. */ refAlignGroup->readGroups[experimentIndex]->alignmentArray.Read(cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin(), cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetEnd(), &alignmentArray[0]); cmpFile.alnInfo.alignments[alignmentIndex].StoreAlignmentArray(&alignmentArray[0], alignmentLength); /* * Read in all additional fields such as quality values, etc.. */ set::iterator fieldIt, fieldEnd; fieldEnd = includedFields.end(); for (fieldIt = includedFields.begin(); fieldIt != fieldEnd; ++fieldIt) { if (fieldArray.size() < alignmentLength) { fieldArray.resize(alignmentLength); } HDFArray* fieldArrayPtr = dynamic_cast* >(refAlignGroup->readGroups[experimentIndex]->fields[*fieldIt]); int ob = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin(); int oe = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetEnd(); fieldArrayPtr->Read(ob, oe, &fieldArray[0]); cmpFile.alnInfo.alignments[alignmentIndex].StoreFloatField(*fieldIt, &fieldArray[0], alignmentLength); } } } void IncludeField(string fieldName) { if (supportedFields.find(fieldName) == supportedFields.end()) { cout << "ERROR, attempting to include field " << fieldName << " that is not supported." << endl; exit(1); } includedFields.insert(fieldName); } template void StoreQualityValueFromAlignment(vector &fieldValues, vector &baseToAlignmentMap, T_QV *qv) { int i; for (i = 0; i < baseToAlignmentMap.size();i++) { qv[i] = fieldValues[baseToAlignmentMap[i]]; } } void ReadAlignment(int alignmentIndex, CmpAlignment &cmpAlignment) { alnInfoGroup.ReadCmpAlignment(alignmentIndex, cmpAlignment); ReadAlignmentArray(alignmentIndex, cmpAlignment.alignmentArray); } void ReadAlignment(int alignmentIndex, AlignmentCandidate &alignment) { CmpAlignment cmpAln; ReadAlignment(alignmentIndex, cmpAln); string refSequence; string readSequence; readSequence.resize(cmpAln.alignmentArray.size()); refSequence.resize(cmpAln.alignmentArray.size()); ByteAlignmentToQueryString(&cmpAln.alignmentArray[0], cmpAln.alignmentArray.size(), &readSequence[0]); ByteAlignmentToRefString(&cmpAln.alignmentArray[0], cmpAln.alignmentArray.size(), &refSequence[0]); string ungappedRead, ungappedRef; RemoveGaps(readSequence, ungappedRead); RemoveGaps(refSequence, ungappedRef); GappedStringsToAlignment(readSequence, refSequence, alignment); FASTASequence qAlignedSeq, rAlignedSeq; qAlignedSeq.seq = (Nucleotide*) &ungappedRead[0]; qAlignedSeq.length = ungappedRead.size(); rAlignedSeq.seq = (Nucleotide*) &ungappedRef[0]; rAlignedSeq.length = ungappedRef.size(); alignment.tAlignedSeq.Copy(rAlignedSeq); alignment.qAlignedSeq.Copy(qAlignedSeq); unsigned int qStart = cmpAln.GetQueryStart(); unsigned int tStart = cmpAln.GetRefStart(); alignment.tPos = cmpAln.GetRefStart(); alignment.qPos = cmpAln.GetQueryStart(); alignment.nIns = cmpAln.GetNInsertions(); alignment.nDel = cmpAln.GetNDeletions(); alignment.nMatch = cmpAln.GetNMatch(); alignment.nMismatch=cmpAln.GetNMismatch(); alignment.qStrand= 0; alignment.tStrand = cmpAln.GetTStrand(); alignment.pctSimilarity = ((float)alignment.nMatch) / (alignment.nMatch + alignment.nMismatch + alignment.nIns + alignment.nDel); alignment.mapQV = cmpAln.GetMapQV(); } void ReadAlignmentArray(int alignmentIndex, ByteAlignment &alignmentArray) { CmpAlignment cmpAlignment; alnInfoGroup.ReadCmpAlignment(alignmentIndex, cmpAlignment); // // Cache some stats about the read, and where it was aligned to. // int queryStart = cmpAlignment.GetQueryStart(); int queryEnd = cmpAlignment.GetQueryEnd(); int refGroupId = cmpAlignment.GetRefGroupId(); int alnGroupId = cmpAlignment.GetAlnGroupId(); int refGroupIndex = refGroupIdToArrayIndex[refGroupId]; if (alnGroupIdToReadGroupName.find(alnGroupId) == alnGroupIdToReadGroupName.end()) { cout << "INTERNAL ERROR! Could not find read group name for alignment " << "group with Id " << alnGroupId << "." << endl; assert(0); } string readGroupName = alnGroupIdToReadGroupName[alnGroupId]; if (refAlignGroups[refGroupIndex]->experimentNameToIndex.find(readGroupName) == refAlignGroups[refGroupIndex]->experimentNameToIndex.end()) { cout << "Internal ERROR! The read group name " << readGroupName << " is specified as part of " << " the path in alignment " << alignmentIndex << " though it does not exist in the ref align group specified for this alignment." << endl; assert(0); } int readGroupIndex = refAlignGroups[refGroupIndex]->experimentNameToIndex[readGroupName]; HDFCmpExperimentGroup* expGroup = refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]; int offsetBegin = cmpAlignment.GetOffsetBegin(); int offsetEnd = cmpAlignment.GetOffsetEnd(); int alignedSequenceLength = offsetEnd - offsetBegin; if (alignedSequenceLength >= 0) { alignmentArray.resize(alignedSequenceLength); } else { return; } // // Read the alignment string. All alignments // refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]->alignmentArray.Read(offsetBegin, offsetEnd, &alignmentArray[0]); } void ImportReadFromCmpH5(int alignmentIndex, SMRTSequence &read) { CmpAlignment cmpAlignment; alnInfoGroup.ReadCmpAlignment(alignmentIndex, cmpAlignment); // // Cache some stats about the read, and where it was aligned to. // int queryStart = cmpAlignment.GetQueryStart(); int queryEnd = cmpAlignment.GetQueryEnd(); read.holeNumber = cmpAlignment.GetHoleNumber(); int refGroupId = cmpAlignment.GetRefGroupId(); int alnGroupId = cmpAlignment.GetAlnGroupId(); int refGroupIndex = refGroupIdToArrayIndex[refGroupId]; if (alnGroupIdToReadGroupName.find(alnGroupId) == alnGroupIdToReadGroupName.end()) { cout << "INTERNAL ERROR! Could not find read group name for alignment " << "group with Id " << alnGroupId << "." << endl; assert(0); } string readGroupName = alnGroupIdToReadGroupName[alnGroupId]; if (refAlignGroups[refGroupIndex]->experimentNameToIndex.find(readGroupName) == refAlignGroups[refGroupIndex]->experimentNameToIndex.end()) { cout << "Internal ERROR! The read group name " << readGroupName << " is specified as part of " << " the path in alignment " << alignmentIndex << " though it does not exist in the ref align group specified for this alignment." << endl; assert(0); } int readGroupIndex = refAlignGroups[refGroupIndex]->experimentNameToIndex[readGroupName]; HDFCmpExperimentGroup* expGroup = refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]; int offsetBegin = cmpAlignment.GetOffsetBegin(); int offsetEnd = cmpAlignment.GetOffsetEnd(); int alignedSequenceLength = offsetEnd - offsetBegin; string alignedSequence; string readSequence; vector byteAlignment; if (alignedSequenceLength >= 0) { alignedSequence.resize(alignedSequenceLength); byteAlignment.resize(alignedSequenceLength); } // // Read the alignment string. All alignments // refAlignGroups[refGroupIndex]->readGroups[readGroupIndex]->alignmentArray.Read(offsetBegin, offsetEnd, &byteAlignment[0]); // // Convert to something we can compare easily. // ByteAlignmentToQueryString(&byteAlignment[0], byteAlignment.size(), &alignedSequence[0]); // // Initialize the sequence of the read. // RemoveGaps(alignedSequence, readSequence); // // Make space for the sequence and all fields. // read.length = readSequence.size(); read.Allocate(read.length); memcpy(read.seq, readSequence.c_str(), readSequence.size() * sizeof(char)); vector baseToAlignmentMap; CreateSequenceToAlignmentMap(byteAlignment, baseToAlignmentMap); // // Read in the quality values // vector storedQVArray; vector qvValues; vector frameValues; int length = offsetEnd - offsetBegin; qvValues.resize(length); frameValues.resize(length); int i; if (expGroup->experimentGroup.ContainsObject("QualityValue")) { expGroup->qualityValue.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.qual.data[0]); int i; for (i= 0; i < read.length; i++) { assert(read.qual[i] < 100); } } if (expGroup->experimentGroup.ContainsObject("InsertionQV")) { expGroup->insertionQV.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.insertionQV.data[0]); } if (expGroup->experimentGroup.ContainsObject("SubstitutionQV")) { expGroup->substitutionQV.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.substitutionQV.data[0]); } if (expGroup->experimentGroup.ContainsObject("DeletionQV")) { expGroup->deletionQV.Read(offsetBegin, offsetEnd, &qvValues[0]); StoreQualityValueFromAlignment(qvValues, baseToAlignmentMap, &read.deletionQV.data[0]); } if (expGroup->experimentGroup.ContainsObject("DeletionTag")) { vector deletionTagValues; deletionTagValues.resize(offsetEnd-offsetBegin); expGroup->deletionTag.Read(offsetBegin, offsetEnd, &deletionTagValues[0]); StoreQualityValueFromAlignment(deletionTagValues, baseToAlignmentMap, read.deletionTag); } if (expGroup->experimentGroup.ContainsObject("SubstitutionTag")) { vector substitutionTagValues; substitutionTagValues.resize(offsetEnd-offsetBegin); expGroup->substitutionTag.Read(offsetBegin, offsetEnd, &substitutionTagValues[0]); StoreQualityValueFromAlignment(substitutionTagValues, baseToAlignmentMap, read.substitutionTag); } if (expGroup->experimentGroup.ContainsObject("PulseIndex")) { vector pulseIndexValues; pulseIndexValues.resize(offsetEnd-offsetBegin); expGroup->pulseIndex.Read(offsetBegin, offsetEnd, &pulseIndexValues[0]); StoreQualityValueFromAlignment(pulseIndexValues, baseToAlignmentMap, read.pulseIndex); } if (expGroup->experimentGroup.ContainsObject("PreBaseFrames")) { expGroup->preBaseFrames.Read(offsetBegin, offsetEnd, &frameValues[0]); StoreQualityValueFromAlignment(frameValues, baseToAlignmentMap, read.preBaseFrames); } if (expGroup->experimentGroup.ContainsObject("WidthInFrames")) { expGroup->widthInFrames.Read(offsetBegin, offsetEnd, &frameValues[0]); StoreQualityValueFromAlignment(frameValues, baseToAlignmentMap, read.widthInFrames); } } void ReadReadGroupPathTable(CmpIndexedStringTable &readGroupPathTable) { UInt numElem = readGroupPathTable.ids.size(); readGroupPathTable.resize(numElem); // resizes all tables readGroupPathIdArray.Read(0, numElem, &readGroupPathTable.ids[0]); readGroupPathArray.Read(0, numElem, &readGroupPathTable.names[0]); readGroupPathTable.StoreArrayIndexMap(); } void ReadRefSeqTable(CmpIndexedStringTable &refSeqTable) { UInt numElem = refSeqTable.ids.size(); refSeqTable.resize(numElem); refSeqNameIdArray.Read(0, numElem, &refSeqTable.ids[0]); refSeqNameArray.Read(0, numElem, &refSeqTable.names[0]); refSeqTable.StoreArrayIndexMap(); } void ReadMovieNameTable(CmpIndexedStringTable &movieTable) { UInt numElem = movieTable.ids.size(); movieTable.resize(numElem); movieNameIdArray.Read(0, numElem, &movieTable.ids[0]); movieNameArray.Read(0, numElem, &movieTable.names[0]); movieTable.StoreArrayIndexMap(); } }; #endif blasr_libcpp-master/hdf/HDFCmpRefAlignmentGroup.hpp000066400000000000000000000065351260756663100226540ustar00rootroot00000000000000#ifndef _BLASR_HDF_CMP_REF_ALIGNMENT_GROUP_HPP_ #define _BLASR_HDF_CMP_REF_ALIGNMENT_GROUP_HPP_ #include #include #include "H5Cpp.h" #include "HDFData.hpp" #include "HDFGroup.hpp" #include "HDFCmpExperimentGroup.hpp" using namespace std; class HDFCmpRefAlignmentGroup { public: HDFGroup refGroup; string refGroupName; vector readGroups; HDFAtom annotationStringAtom; map experimentNameToIndex; // A RefAlignmentGroup may contain one or more // ExperimentGroups. The following shows a // RefAlignmentGroup containing two ExperimentGroups. // /ref00001/m121219_103658_42194_c000447032559900001500000112311426_s1_p0 // /ref00001/m121219_103658_42194_c000447032559900001500000112311426_s2_p0 // // But these ExperimentGroups are not necessarily // grouped by movie. For example, the following groups // can be seen in deep-sorted cmp.h5 // /ref00001/rg8953-0 // /ref00001/rg2453-1 int Initialize(H5::CommonFG &group, string _refGroupName) { refGroupName = _refGroupName; refGroup.Initialize(group, _refGroupName); // annotationStringAtom.Initialize(refGroup.group, "annotationString"); } void Create(HDFGroup parent, string refGroupNameP) { refGroupName = refGroupNameP; parent.AddGroup(refGroupName); refGroup.Initialize(parent, refGroupName); } HDFCmpExperimentGroup *GetExperimentGroup(string readGroupName) { // // In contrast to initialization, only create one group. // map::iterator it = experimentNameToIndex.find(readGroupName); if (it != experimentNameToIndex.end()) { assert(it->second < readGroups.size()); return readGroups[it->second]; } // // Allocate the new group structure // int newReadGroupIndex = readGroups.size(); HDFCmpExperimentGroup* readGroupPtr = new HDFCmpExperimentGroup; if (readGroupPtr == nullptr) {cout << "ERROR, failed to allocate memory for HDFCmpExperimentGroup!" << endl; exit(1);} readGroups.push_back(readGroupPtr); experimentNameToIndex[readGroupName] = newReadGroupIndex; // // Now add it to the cmp.h5 file. // if (readGroupPtr->Create(refGroup, readGroupName) == 0) { delete readGroupPtr; experimentNameToIndex[readGroupName] = -1; return NULL; } return readGroupPtr; } bool ContainsExperimentGroup(string readGroupName) { return experimentNameToIndex.find(readGroupName) != experimentNameToIndex.end(); } HDFCmpExperimentGroup* InitializeExperimentGroup(string experimentGroupName, set &includedFields) { if (refGroup.ContainsObject(experimentGroupName)) { HDFCmpExperimentGroup* newGroup = new HDFCmpExperimentGroup; if (newGroup == nullptr) {cout << "ERROR, failed to allocate memory for HDFCmpExperimentGroup!" << endl; exit(1);} if (newGroup->Initialize(refGroup, experimentGroupName, includedFields) == 0) { cout << "ERROR, could not initialize the exp group." << endl; exit(1); } experimentNameToIndex[experimentGroupName] = readGroups.size(); readGroups.push_back(newGroup); return newGroup; } else { return NULL; } } HDFCmpExperimentGroup* InitializeExperimentGroup(string experimentGroupName) { set EMPTYIncludedFields; return InitializeExperimentGroup(experimentGroupName, EMPTYIncludedFields); } }; #endif blasr_libcpp-master/hdf/HDFCmpRootGroup.hpp000066400000000000000000000033141260756663100212140ustar00rootroot00000000000000#ifndef _BLASR_HDF_CMP_ROOT_GROUP_HPP_ #define _BLASR_HDF_CMP_ROOT_GROUP_HPP_ #include "HDFAtom.hpp" #include "HDF2DArray.hpp" #include "datastructures/alignment/CmpFile.hpp" template class HDFCmpRootGroup { public: HDFGroup rootGroup; HDFAtom version; HDFAtom index; HDFAtom readType; HDFAtom commandLine; HDF2DArray fileLog; ~HDFCmpRootGroup() { rootGroup.Close(); } int Initialize(H5::H5File &cmpFile) { if (rootGroup.Initialize(cmpFile, "/") == 0) { return 0; } if (rootGroup.ContainsObject("Version")) { if (version.Initialize(rootGroup.group, "Version") == 0) { return 0; } } if (rootGroup.ContainsObject("Index")) { if (index.Initialize(rootGroup.group, "Index") == 0) { return 0; } } if (rootGroup.ContainsObject("ReadType")) { if (readType.Initialize(rootGroup.group, "ReadType") == 0) { return 0; } } if (rootGroup.ContainsObject("CommandLine")) { if (commandLine.Initialize(rootGroup.group, "CommandLine") == 0) { return 0; } } // // For now, disable file log initialization until // hdf2darray is tested more thoroughly // // if (fileLog.Initialize(rootGroup.group, "FileLog") == 0) { // return 0;} // return 1; } void ReadAttributes(CmpFile &cmpFile) { if (rootGroup.ContainsObject("Version")) { version.Read(cmpFile.version); } if (rootGroup.ContainsObject("Index")) { index.Read(cmpFile.index); } if (rootGroup.ContainsObject("ReadType")) { string readTypeString; readType.Read(readTypeString); cmpFile.StoreReadType(readTypeString); } if (rootGroup.ContainsObject("CommandLine")) { commandLine.Read(cmpFile.commandLine); } } }; #endif blasr_libcpp-master/hdf/HDFCmpSupportedFields.cpp000066400000000000000000000013221260756663100223600ustar00rootroot00000000000000#include "HDFCmpSupportedFields.hpp" HDFCmpSupportedFields::HDFCmpSupportedFields() { this->insert("StartTimeOffset"); this->insert("QualityValue"); this->insert("IPD"); this->insert("PreBaseFrames"); this->insert("DeletionQV"); this->insert("InsertionQV"); this->insert("ClassifierQV"); this->insert("SubstitutionQV"); this->insert("MergeQV"); this->insert("Light"); this->insert("WidthInFrames"); this->insert("PulseWidth"); this->insert("StartTime"); this->insert("pkmid"); this->insert("pkmax"); this->insert("pkmean"); this->insert("pkmean"); this->insert("SubstitutionTag"); this->insert("DeletionTag"); this->insert("PulseIndex"); } blasr_libcpp-master/hdf/HDFCmpSupportedFields.hpp000066400000000000000000000003441260756663100223700ustar00rootroot00000000000000#ifndef _BLASR_CMP_SUPPORTED_FIELDS_HPP_ #define _BLASR_CMP_SUPPORTED_FIELDS_HPP_ #include #include class HDFCmpSupportedFields : public std::set { public: HDFCmpSupportedFields(); }; #endif blasr_libcpp-master/hdf/HDFCommonFG.hpp000066400000000000000000000002311260756663100202540ustar00rootroot00000000000000#ifndef _BLASR_HDF_COMMON_FG_HPP_ #define _BLASR_HDF_COMMON_FG_HPP_ using namespace std; using namespace H5; class HDFCommonFG { public: }; #endif blasr_libcpp-master/hdf/HDFConfig.hpp000066400000000000000000000001341260756663100200160ustar00rootroot00000000000000#ifndef _BLASR_HDF_CONFIG_HPP_ #define _BLASR_HDF_CONFIG_HPP_ #define MAX_DIMS 10 #endif blasr_libcpp-master/hdf/HDFData.cpp000066400000000000000000000034071260756663100174630ustar00rootroot00000000000000#include "HDFData.hpp" using namespace std; using namespace H5; H5Location* HDFData::GetObject() { return &dataset; } HDFData::HDFData(CommonFG* _container, const string & _datasetName) { container = _container; datasetName = _datasetName; fileDataSpaceInitialized = false; isInitialized = false; } HDFData::HDFData() { container = NULL; fileDataSpaceInitialized = false; isInitialized = false; } bool HDFData::IsInitialized() const { return isInitialized; } // // Allow derived classes to be initialized generically. // int HDFData::Initialize(HDFGroup &parentGroup, const string &datasetName) { cout << "ERROR! Only a subclass should call this." << endl; exit(1); } int HDFData::BaseInitializeDataset(CommonFG &hdfFile, const string & _datasetName) { dataset = hdfFile.openDataSet(_datasetName.c_str()); isInitialized = true; fileDataSpaceInitialized = true; return 1; } int HDFData::InitializeDataset(HDFGroup &group, const string & _datasetName) { return InitializeDataset(group.group, _datasetName); } int HDFData::InitializeDataset(CommonFG &hdfFile, const string & _datasetName) { try { datasetName = _datasetName; dataset = hdfFile.openDataSet(_datasetName.c_str()); isInitialized = true; fileDataSpaceInitialized = true; } catch(FileIException &e) { cerr << e.getDetailMsg() < #include "H5Cpp.h" #include "HDFConfig.hpp" #include "HDFGroup.hpp" #include "HDFAttributable.hpp" class HDFData : public HDFAttributable { public: H5::DataSet dataset; H5::DataSpace dataspace; H5::DataSpace sourceSpace, destSpace; H5::DataSpace fullSourceSpace; bool fileDataSpaceInitialized; H5::CommonFG *container; std::string datasetName; bool isInitialized; H5::H5Location* GetObject(); HDFData(H5::CommonFG* _container, const std::string & _datasetName); HDFData(); bool IsInitialized() const; // // Allow derived classes to be initialized generically. // // FIXME(yli): This method and the Initialize methods in // subclasses cause compilation warnings under clang. For // example, see the discussion here: // // http://stackoverflow.com/questions/18515183/c-overloaded-virtual-function-warning-by-clang // // To fix the problem here may require rethinking the initialize // method more carefully. // virtual int Initialize(HDFGroup &parentGroup, const std::string &datasetName); int BaseInitializeDataset(H5::CommonFG &hdfFile, const std::string & _datasetName); int InitializeDataset(HDFGroup &group, const std::string & _datasetName); int InitializeDataset(H5::CommonFG &hdfFile, const std::string & _datasetName); void Close(); }; #endif blasr_libcpp-master/hdf/HDFFile.cpp000066400000000000000000000030661260756663100174720ustar00rootroot00000000000000#include "HDFFile.hpp" using namespace H5; using namespace std; HDFFile::HDFFile() { } // // Open a file. By default, if the file already exists, open it in // read/write mode. The only other flag that is allowed is // H5F_ACC_TRUNC, which will truncate the file to zero size. // void HDFFile::Open(string fileName, unsigned int flags, const FileAccPropList& fileAccPropList) { assert (flags == H5F_ACC_RDWR || flags == H5F_ACC_TRUNC || flags == H5F_ACC_RDONLY); ifstream testIn(fileName.c_str()); bool fileExists = static_cast(testIn); bool flagsIsNotTrunc = flags != H5F_ACC_TRUNC; if (fileExists and H5File::isHdf5(fileName.c_str()) and flagsIsNotTrunc) { try { hdfFile.openFile(fileName.c_str(), flags, fileAccPropList); } catch (FileIException e) { cout << "Error opening file " << fileName << endl; exit(1); } } else { try { // // Open a new file with TRUNC permissions, always read/write. // FileCreatPropList filePropList; filePropList.setUserblock(512); hdfFile = H5File(fileName.c_str(), H5F_ACC_TRUNC, filePropList); } catch (FileIException fileException) { cout << "Error creating file " << fileName << endl; exit(1); } } if (rootGroup.Initialize(hdfFile, "/") != 1) { cout << "Error initializing the root group for file " << fileName << endl; exit(1); } } void HDFFile::Close() { hdfFile.close(); } blasr_libcpp-master/hdf/HDFFile.hpp000066400000000000000000000013131260756663100174700ustar00rootroot00000000000000#ifndef _BLASR_HDF_FILE_HPP_ #define _BLASR_HDF_FILE_HPP_ #include #include #include #include "H5Cpp.h" #include "HDFConfig.hpp" #include "HDFGroup.hpp" class HDFFile { public: // Make this public for easy access. H5::H5File hdfFile; HDFGroup rootGroup; HDFFile(); // // Open a file. By default, if the file already exists, open it in // read/write mode. The only other flag that is allowed is // H5F_ACC_TRUNC, which will truncate the file to zero size. // void Open(string fileName, unsigned int flags=H5F_ACC_RDWR, const H5::FileAccPropList& fileAccPropList=H5::FileAccPropList::DEFAULT); void Close(); }; #endif blasr_libcpp-master/hdf/HDFFileLogGroup.hpp000066400000000000000000000031161260756663100211520ustar00rootroot00000000000000#ifndef HDF_FILE_LOG_GROUP_H_ #define HDF_FILE_LOG_GROUP_H_ #include "HDFGroup.hpp" #include "HDFArray.hpp" class HDFFileLogGroup { public: HDFGroup group; HDFStringArray commandLineArray; HDFStringArray versionArray; HDFStringArray timestampArray; HDFArray idArray; HDFStringArray logArray; HDFStringArray programArray; int Initialize(HDFGroup &parentGroup) { if (group.Initialize(parentGroup.group, "FileLog") == 0) { return 0; } int ret = 1; ret *= commandLineArray.Initialize(group, "CommandLine"); ret *= versionArray.Initialize(group, "Version"); ret *= timestampArray.Initialize(group, "Timestamp"); ret *= idArray.Initialize(group, "ID"); ret *= logArray.Initialize(group, "Log"); ret *= programArray.Initialize(group, "Program"); return ret; } void AddEntry(string command, string log, string program, string timestamp, string version) { commandLineArray.Write(&command, 1); versionArray.Write(&version, 1); timestampArray.Write(×tamp, 1); programArray.Write(&program, 1); logArray.Write(&log, 1); unsigned int id = idArray.size(); id = id + 1; idArray.Write(&id, 1); } bool Create(HDFGroup &parent) { parent.AddGroup("FileLog"); if (group.Initialize(parent.group, "FileLog") == 0) { return 0; } commandLineArray.Create(group, "CommandLine"); versionArray.Create(group, "Version"); timestampArray.Create(group, "Timestamp"); programArray.Create(group, "Program"); logArray.Create(group, "Log"); idArray.Create(group, "ID"); } }; #endif blasr_libcpp-master/hdf/HDFGroup.cpp000066400000000000000000000023431260756663100177040ustar00rootroot00000000000000#include "HDFGroup.hpp" using namespace H5; using namespace std; HDFGroup::HDFGroup() : HDFAttributable() { groupIsInitialized = false; } void HDFGroup::AddGroup(string groupName) { group.createGroup(groupName); return; } H5Location* HDFGroup::GetObject() { return &group; } int HDFGroup::Initialize(CommonFG &fg, string groupName){ try { group = fg.openGroup(groupName.c_str()); groupIsInitialized = true; return 1; } catch(FileIException &e) { return 0; } catch(GroupIException &e) { return 0; } catch(Exception &e ) { return 0; } return 1; } int HDFGroup::Initialize(HDFGroup & parentGroup, string groupName) { return Initialize(parentGroup.group, groupName); } bool HDFGroup::ContainsObject(string queryObjectName) { hsize_t objIdx; hsize_t numGroupObjs = group.getNumObjs(); for (objIdx = 0; objIdx < numGroupObjs; objIdx++) { H5std_string groupObjectName; groupObjectName = group.getObjnameByIdx(objIdx); if (groupObjectName == queryObjectName) { return true; } } return false; } void HDFGroup::Close() { if (groupIsInitialized) { group.close(); } } blasr_libcpp-master/hdf/HDFGroup.hpp000066400000000000000000000012751260756663100177140ustar00rootroot00000000000000#ifndef _BLASR_HDF_GROUP_HPP_ #define _BLASR_HDF_GROUP_HPP_ #include #include #include #include #include "H5Cpp.h" #include "HDFAttributable.hpp" #include "StringUtils.hpp" class HDFGroup : public HDFAttributable { public: std::vector objectNames; std::string objectName; H5::Group group; bool groupIsInitialized; HDFGroup(); void AddGroup(std::string groupName); H5::H5Location* GetObject(); int Initialize(H5::CommonFG& fg, std::string groupName); int Initialize(HDFGroup& parentGroup, std::string groupName); bool ContainsObject(std::string queryObjectName); void Close(); }; #endif blasr_libcpp-master/hdf/HDFMovieInfoGroup.hpp000066400000000000000000000036011260756663100215230ustar00rootroot00000000000000#ifndef HDF_MOVIE_INFO_GROUP_H_ #define HDF_MOVIE_INFO_GROUP_H_ #include "HDFGroup.hpp" #include "HDFArray.hpp" #include "saf/MovieInfo.hpp" class HDFMovieInfoGroup { public: HDFGroup movieInfoGroup; HDFArray idArray; HDFStringArray nameArray; HDFStringArray whenStartedArray; HDFArray frameRateArray; ~HDFMovieInfoGroup() { movieInfoGroup.Close(); } bool Create(HDFGroup &parentGroup) { parentGroup.AddGroup("MovieInfo"); if (movieInfoGroup.Initialize(parentGroup.group, "MovieInfo") == 0) { return 0; } idArray.Create(movieInfoGroup, "ID"); nameArray.Create(movieInfoGroup, "Name"); return true; } int Initialize(HDFGroup &parentGroup) { if (movieInfoGroup.Initialize(parentGroup.group, "MovieInfo") == 0) { return 0; } if (idArray.Initialize(movieInfoGroup, "ID") == 0) { return 0; } if (nameArray.Initialize(movieInfoGroup, "Name") == 0) { return 0; } return 1; } void Read(MovieInfo &movieInfo) { int nId = idArray.arrayLength; movieInfo.id.resize(nId); idArray.Read(0, nId, &movieInfo.id[0]); int nName = nameArray.arrayLength; movieInfo.name.resize(nName); int i; for (i = 0; i < nName; i++ ){ nameArray.Read(i,i+1,&movieInfo.name[i]); } } int AddMovie(string &movieName) { nameArray.Write(&movieName, 1); unsigned int id = nameArray.size(); idArray.Write(&id, 1); return id; } void StoreFrameRate(int movieIndex, float frameRate) { if (movieIndex < 0) { cout << "ERROR. Invalid movie index " << movieIndex << endl; exit(1); } if (!frameRateArray.IsInitialized()) { if (!movieInfoGroup.ContainsObject("FrameRate")) { frameRateArray.Create(movieInfoGroup, "FrameRate"); } else { frameRateArray.Initialize(movieInfoGroup, "FrameRate"); } } frameRateArray.WriteToPos(&frameRate, 1, movieIndex); } }; #endif blasr_libcpp-master/hdf/HDFNewBasReader.cpp000066400000000000000000000043731260756663100211170ustar00rootroot00000000000000#include "HDFNewBasReader.hpp" int HDFNewBasReader::Initialize (const std::string & hdfBasFileName) { // // Initialize access to the HDF file. For reading bas files, this // involves: // - Opening the h5 file, and initializing the rootGroup. // try { H5::Exception::dontPrint(); hdfBasFile.openFile(hdfBasFileName.c_str(), H5F_ACC_RDONLY); } catch (H5::Exception &e) { std::cout << "ERROR, could not open bas.h5 file" << hdfBasFileName << ", exiting." << std::endl; return 0; } if (rootGroup.Initialize(hdfBasFile, "/") == 0) { return 0; } // If /MultiPart/Parts exists, initialize and return 1; // otherwise, return 0 if (rootGroup.ContainsObject("MultiPart") and multiPartGroup.Initialize(rootGroup.group, "MultiPart") != 0) { if (multiPartGroup.ContainsObject("Parts") and partsArray.InitializeForReading(multiPartGroup, "Parts") != 0) { basFileName = hdfBasFileName; return 1; // Success } } return 0; // Fail } std::vector HDFNewBasReader::GetBaxMovieNames() { // Read bax.h5 names from /MultiPart/Parts, not including path prefix. // e.g., m...._s1_p0.1.bax.h5 std::vector baxNames; baxNames.resize(BAXPERBAS); // 3 bax files per bas file. for (int i = 0; i < BAXPERBAS; i++) { partsArray.Read(i, i+1, &baxNames[i]); } return baxNames; } std::vector HDFNewBasReader::GetBaxFileNames() { // Get full paths to bax.h5 files, // e.g., /mnt/data3/vol53/2450598/0001/Analysis_Results/m..._s1_p0.1.bax.h5 // Assumption: bax.h5 files are in the same directory as bas.h5. std::string prefix = ""; size_t slashPos = basFileName.rfind("/"); if (slashPos != std::string::npos) { prefix = basFileName.substr(0, slashPos + 1); } std::vector baxNames = GetBaxMovieNames(); for (int i = 0; i < int(baxNames.size()); i++) { baxNames[i] = prefix + baxNames[i]; } return baxNames; } void HDFNewBasReader::Close() { partsArray.Close(); multiPartGroup.Close(); rootGroup.Close(); hdfBasFile.close(); basFileName = ""; } blasr_libcpp-master/hdf/HDFNewBasReader.hpp000066400000000000000000000015071260756663100211200ustar00rootroot00000000000000#ifndef _BLASR_HDF_NEW_BAS_READER_HPP_ #define _BLASR_HDF_NEW_BAS_READER_HPP_ #include #include #include #include "HDFArray.hpp" #include "HDFGroup.hpp" const int BAXPERBAS = 3; // Number of bax files per base file. class HDFNewBasReader { // The new bas.h5 file contains: // /MultiPart group, // /MultiPart/HoleLookup Dataset (which is ignored), and // /MultiPart/Parts Dataset. public: H5::H5File hdfBasFile; HDFGroup rootGroup; HDFGroup multiPartGroup; //HDFArray partsArray; HDFStringArray partsArray; std::string basFileName; HDFNewBasReader() { basFileName = ""; } int Initialize (const std::string & hdfBasFileName); std::vector GetBaxMovieNames(); std::vector GetBaxFileNames(); void Close(); }; #endif blasr_libcpp-master/hdf/HDFPlsReader.hpp000066400000000000000000000505721260756663100205050ustar00rootroot00000000000000#ifndef _BLASR_HDF_PLS_READER_HPP_ #define _BLASR_HDF_PLS_READER_HPP_ #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFAtom.hpp" #include "HDFGroup.hpp" #include "HDFBasReader.hpp" #include "HDFPulseDataFile.hpp" #include "DatasetCollection.hpp" #include "HDFZMWReader.hpp" #include "reads/PulseFile.hpp" #include "HDFScanDataReader.hpp" #include "FASTQSequence.hpp" #include "VectorUtils.hpp" #include #include #include using namespace H5; using namespace std; /* * Interface for reading pulse information from a .pls.h5 file. * To read both pls and bas information, use the HDFBasReader. */ class HDFPlsReader : public DatasetCollection, public HDFPulseDataFile { DNALength curPos; int curRead; HDFGroup pulseCallsGroup; int meanSignalNDims, midSignalNDims, maxSignalNDims; HDF2DArray meanSignalMatrix; HDF2DArray midSignalMatrix; HDF2DArray maxSignalMatrix; HDFArray meanSignalArray; HDFArray midSignalArray; HDFArray maxSignalArray; HDFArray plsWidthInFramesArray; HDFArray startFrameArray; HDFArray classifierQVArray; public: HDFPlsReader() : HDFPulseDataFile(), DatasetCollection() { fieldNames.push_back("MeanSignal"); fieldNames.push_back("MidSignal"); fieldNames.push_back("MaxSignal"); fieldNames.push_back("StartFrame"); fieldNames.push_back("ClassifierQV"); fieldNames.push_back("WidthInFrames"); fieldNames.push_back("FrameRate"); fieldNames.push_back("WhenStarted"); fieldNames.push_back("NumEvent"); // this is read from the zmw, but control it here. InitializeAllFields(false); } int InitializeCommon() { return 1; } int Initialize(string hdfPlsFileName, const H5::FileAccPropList & fileAccPropList=H5::FileAccPropList::DEFAULT) { /* * Initialize access to the HDF file. */ if (HDFPulseDataFile::Initialize(hdfPlsFileName, fileAccPropList) == 0) { return 0; } if (pulseDataGroup.ContainsObject("PulseCalls") == 0 or pulseCallsGroup.Initialize(pulseDataGroup.group, "PulseCalls") == 0) { return 0; } zmwReader.Initialize(&pulseCallsGroup); // // Initialize arrays for reading. This has been preconfigured to // if (!InitializePulseGroup()) return 0; if ( (meanSignalNDims = GetDatasetNDim(pulseCallsGroup.group, "MeanSignal")) == 1) { if (!meanSignalArray.Initialize(pulseCallsGroup, "MeanSignal")) return 0; } else if (meanSignalNDims == 2) { if (!meanSignalMatrix.Initialize(pulseCallsGroup, "MeanSignal")) return 0; } if ((midSignalNDims = GetDatasetNDim(pulseCallsGroup.group, "MidSignal")) == 1) { if (!midSignalArray.Initialize(pulseCallsGroup, "MidSignal")) return 0; } else if (midSignalNDims == 2) { if (!midSignalMatrix.Initialize(pulseCallsGroup, "MidSignal")) return 0; } if ((maxSignalNDims = GetDatasetNDim(pulseCallsGroup.group, "MaxSignal")) == 1) { if (!maxSignalArray.Initialize(pulseCallsGroup, "MaxSignal")) return 0; } else if (maxSignalNDims == 2) { if (!maxSignalMatrix.Initialize(pulseCallsGroup, "MaxSignal")) return 0; } // // Astro pulse files may not have the ClassifierQV dataset, check // to see if it exists, and then try and initialize it. // if (pulseCallsGroup.ContainsObject("ClassifierQV")) { if (!classifierQVArray.Initialize(pulseCallsGroup, "ClassifierQV")) return 0; } else { includedFields["ClassifierQV"] = false; } // // These are all required fields. // if (!startFrameArray.Initialize(pulseCallsGroup, "StartFrame")) return 0; if (!plsWidthInFramesArray.Initialize(pulseCallsGroup, "WidthInFrames")) return 0; curRead = 0; nReads = zmwReader.numEventArray.arrayLength; return 1; } UInt GetStartFrameSize() { return startFrameArray.arrayLength; } void GetAllMeanSignal(vector &meanSignal) { if (meanSignalNDims == 1) { CheckMemoryAllocation(meanSignalArray.arrayLength, maxAllocNElements, "MeanSignal"); meanSignal.resize(meanSignalArray.arrayLength); meanSignalArray.Read(0, meanSignalArray.arrayLength, &meanSignal[0]); } else if (meanSignalNDims == 2) { CheckMemoryAllocation(meanSignalMatrix.GetNCols() * meanSignalMatrix.GetNRows(), maxAllocNElements, "MeanSignal"); meanSignal.resize(meanSignalMatrix.GetNCols() * meanSignalMatrix.GetNRows()); meanSignalMatrix.Read(0, meanSignalMatrix.GetNRows(), &meanSignal[0]); } } void GetAllMidSignal(vector &midSignal) { if (midSignalNDims == 1) { CheckMemoryAllocation(midSignalArray.arrayLength, maxAllocNElements, "MidSignal"); midSignal.resize(midSignalArray.arrayLength); midSignalArray.Read(0, midSignalArray.arrayLength, &midSignal[0]); } else if (midSignalNDims == 2) { CheckMemoryAllocation(midSignalMatrix.GetNCols() * midSignalMatrix.GetNRows(), maxAllocNElements, "MidSignal"); midSignal.resize(midSignalMatrix.GetNCols() * midSignalMatrix.GetNRows()); midSignalMatrix.Read(0, midSignalMatrix.GetNRows(), &midSignal[0]); } } void GetAllMaxSignal(vector &maxSignal) { if (maxSignalNDims == 1) { CheckMemoryAllocation(maxSignalArray.arrayLength, maxAllocNElements, "MaxSignal"); maxSignal.resize(maxSignalArray.arrayLength); maxSignalArray.Read(0, maxSignalArray.arrayLength, &maxSignal[0]); } else if (maxSignalNDims == 2) { CheckMemoryAllocation(maxSignalMatrix.GetNCols() * maxSignalMatrix.GetNRows(), maxAllocNElements, "MaxSignal"); maxSignal.resize(maxSignalMatrix.GetNCols() * maxSignalMatrix.GetNRows()); maxSignalMatrix.Read(0, maxSignalMatrix.GetNRows(), &maxSignal[0]); } } void GetAllStartFrames(vector &startFrame) { CheckMemoryAllocation(startFrameArray.arrayLength, maxAllocNElements, "StartFrame"); startFrame.resize(startFrameArray.arrayLength); startFrameArray.Read(0,startFrameArray.arrayLength, &startFrame[0]); } void GetAllPlsWidthInFrames(vector &widthInFrames) { CheckMemoryAllocation(plsWidthInFramesArray.arrayLength, maxAllocNElements, "WidthInFrames (pulse)"); widthInFrames.resize(plsWidthInFramesArray.arrayLength); plsWidthInFramesArray.Read(0,plsWidthInFramesArray.arrayLength, &widthInFrames[0]); } void GetAllClassifierQV(vector &classifierQV) { CheckMemoryAllocation(classifierQVArray.arrayLength, maxAllocNElements, "ClassifierQV (pulse)"); classifierQV.resize(classifierQVArray.arrayLength); classifierQVArray.Read(0, classifierQVArray.arrayLength, &classifierQV[0]); } void GetAllNumEvent(vector &numEvent) { CheckMemoryAllocation(zmwReader.numEventArray.arrayLength, maxAllocNElements, "NumEvent (pulse)"); numEvent.resize(zmwReader.numEventArray.arrayLength); zmwReader.numEventArray.Read(0, zmwReader.numEventArray.arrayLength, &numEvent[0]); } // Always call ReadPulseFileInit before calling ReadPulseFile() // or ReadField() void ReadPulseFileInit(PulseFile & pulseFile) { if (scanDataReader.fileHasScanData) { scanDataReader.Read(pulseFile.scanData); } // Get hole numbers in PulseCalls/ZMW/HoleNumber. Note that // PulseCalls/ZMW/HoleNumber and BaseCalls/ZMW/HoleNumber are // not always identical. GetAllHoleNumbers(pulseFile.holeNumbers); // By default, always get the num event. This is used // later to copy reads from the pls file. GetAllNumEvent(pulseFile.numEvent); assert(pulseFile.holeNumbers.size() == pulseFile.numEvent.size()); if (pulseFile.numEvent.size() > 0) { pulseFile.pulseStartPositions.resize(pulseFile.numEvent.size()); pulseFile.pulseStartPositions[0] = 0; for (int i = 1; i < pulseFile.numEvent.size(); i++) { pulseFile.pulseStartPositions[i] = pulseFile.pulseStartPositions[i-1] + pulseFile.numEvent[i-1]; } } } void ReadPulseFile(PulseFile &pulseFile) { ReadPulseFileInit(pulseFile); if (includedFields["StartFrame"]) { GetAllStartFrames(pulseFile.startFrame); } if (includedFields["WidthInFrames"]) { GetAllPlsWidthInFrames(pulseFile.plsWidthInFrames); } if (includedFields["MeanSignal"]) { GetAllMeanSignal(pulseFile.meanSignal); pulseFile.meanSignalNDims = meanSignalNDims; } if (includedFields["MidSignal"]) { GetAllMidSignal(pulseFile.midSignal); pulseFile.midSignalNDims = midSignalNDims; } if (includedFields["MaxSignal"]) { GetAllMaxSignal(pulseFile.maxSignal); pulseFile.maxSignalNDims = maxSignalNDims; } if (includedFields["ClassifierQV"]) { GetAllClassifierQV(pulseFile.classifierQV); } } // // Return size of the entire field in KB. // UInt GetFieldSize(const string & field) { if (not includedFields[field]) { cout << "ERROR, field " << field << " is not included in the pulse file. " << endl; exit(1); } if (field == "StartFrame") { return startFrameArray.arrayLength / 1024 * sizeof(unsigned int); } else if (field == "WidthInFrames") { return plsWidthInFramesArray.arrayLength / 1024 * sizeof (uint16_t); } else if (field == "MeanSignal") { return meanSignalArray.arrayLength / 1024 * sizeof(uint16_t); } else if (field == "MidSignal") { return midSignalArray.arrayLength / 1024 * sizeof(uint16_t); } else if (field == "MaxSignal") { return maxSignalArray.arrayLength / 1024 * sizeof(uint16_t); } else if (field == "NumEvent") { return zmwReader.numEventArray.arrayLength / 1024 * sizeof (int); } else if (field == "ClassifierQV") { return classifierQVArray.arrayLength /1024 * sizeof(float); } else { cout << "ERROR, field [" << field << "] is not supported. " << endl ; exit(1); } } // // Read the entire field to memory // void ReadField(PulseFile & pulseFile, const string & field) { if (not includedFields[field]) { cout << "ERROR, field " << field << " is not included in the pulse file. " << endl; exit(1); } if (field == "StartFrame") { GetAllStartFrames(pulseFile.startFrame); } else if (field == "WidthInFrames") { GetAllPlsWidthInFrames(pulseFile.plsWidthInFrames); } else if (field == "MeanSignal") { GetAllMeanSignal(pulseFile.meanSignal); pulseFile.meanSignalNDims = meanSignalNDims; } else if (field == "MidSignal") { GetAllMidSignal(pulseFile.midSignal); pulseFile.midSignalNDims = midSignalNDims; } else if (field == "MaxSignal") { GetAllMaxSignal(pulseFile.maxSignal); pulseFile.maxSignalNDims = maxSignalNDims; } else if (field == "NumEvent") { GetAllNumEvent(pulseFile.numEvent); } else if (field == "ClassifierQV") { // GetAllClassifierQV(pulseFile.classifierQV) is equivalent to // classifierQVArray.ReadDataset(pulseFile.classifierQV) with // memory check GetAllClassifierQV(pulseFile.classifierQV); } else { cout << "ERROR, field [" << field << "] is not supported. " << endl ; exit(1); } } // Copy a field for a hole void CopyFieldAt(PulseFile & pulseFile, const string & field, int holeIndex, int * basToPlsIndex, void * dest, int destLength, const string & destSequence="") { Nucleotide * destSeqCopy = NULL; if (destSequence != "") { destSeqCopy = ProtectedNew(destSequence.size()); for(int i = 0 ; i < destSequence.size(); i++) { destSeqCopy[i] = (Nucleotide)destSequence[i]; } } if (not includedFields[field]) { cout << "ERROR, field " << field << " is not included in the pulse file. " << endl; exit(1); } UInt pulseStartPos= pulseFile.pulseStartPositions[holeIndex]; if (field == "StartFrame") { assert(pulseFile.startFrame.size() > 0 and pulseFile.startFrame.size() > pulseStartPos); StoreField(pulseFile.startFrame, basToPlsIndex, ((UInt*)dest), destLength); } else if (field == "WidthInFrames") { assert(pulseFile.plsWidthInFrames.size() > 0 and pulseFile.plsWidthInFrames.size() > pulseStartPos); StoreField(pulseFile.plsWidthInFrames, basToPlsIndex, (uint16_t*)dest, destLength); } else if (field == "MeanSignal") { assert(pulseFile.meanSignal.size() > 0 and pulseFile.meanSignal.size() > pulseStartPos); assert(destLength == destSequence.size()); pulseFile.CopySignal((HalfWord*)(&pulseFile.meanSignal[0]), meanSignalNDims, 0, //basToPlsIndex maps bases to abs pulse positions basToPlsIndex, destSeqCopy, destLength, (HalfWord*)dest); } else if (field == "MidSignal") { assert(pulseFile.midSignal.size() > 0 and pulseFile.midSignal.size() > pulseStartPos); assert(destLength == destSequence.size()); pulseFile.CopySignal((HalfWord*)(&pulseFile.midSignal[0]), midSignalNDims, 0, //basToPlsIndex maps bases to abs pulse positions basToPlsIndex, destSeqCopy, destLength, (HalfWord*)dest); } else if (field == "MaxSignal") { assert(pulseFile.maxSignal.size() > 0 and pulseFile.maxSignal.size() > pulseStartPos); assert(destLength == destSequence.size()); pulseFile.CopySignal((HalfWord*)(&pulseFile.maxSignal[0]), maxSignalNDims, 0, //basToPlsIndex maps bases to abs pulse positions basToPlsIndex, destSeqCopy, destLength, (HalfWord*)dest); } else if (field == "ClassifierQV") { assert(pulseFile.classifierQV.size() > 0 and pulseFile.classifierQV.size() > pulseStartPos); StoreField(pulseFile.classifierQV, basToPlsIndex, (float*)dest, destLength); } else if (field == "NumEvent") { cout << "ERROR, control of copying numEvent should not go here." << endl; exit(1); } else { cout << "ERROR, field [" << field << "] is not supported. " << endl ; exit(1); } if (destSeqCopy != NULL) { delete [] destSeqCopy; } } // Clear memory allocated for the specified field void ClearField(PulseFile & pulseFile, const string & field) { if (not includedFields[field]) { cout << "ERROR, field " << field << " is not included in the pulse file. " << endl; exit(1); } if (field == "StartFrame") { ClearMemory(pulseFile.startFrame); } else if (field == "WidthInFrames") { ClearMemory(pulseFile.plsWidthInFrames); } else if (field == "MeanSignal") { ClearMemory(pulseFile.meanSignal); pulseFile.meanSignalNDims = -1; } else if (field == "MidSignal") { ClearMemory(pulseFile.midSignal); pulseFile.midSignalNDims = -1; } else if (field == "MaxSignal") { ClearMemory(pulseFile.maxSignal); pulseFile.maxSignalNDims = -1; } else if (field == "NumEvent") { ClearMemory(pulseFile.numEvent); } else if (field == "ClassifierQV") { ClearMemory(pulseFile.classifierQV); } else { cout << "ERROR, field [" << field << "] is not supported. " << endl ; exit(1); } } int GetReadAt(int holeNumber, int* &basToPlsIndex, SMRTSequence &read) { if (preparedForRandomAccess == false) { PrepareForRandomAccess(); } curRead = holeNumber; curPos = eventOffset[holeNumber]; zmwReader.curZMW = holeNumber; return GetNextFlattenedToBase(read, basToPlsIndex); } template void StoreField(vector &source, int *basToPlsIndex, T_FieldType *dest, int destLength) { int i; for (i = 0 ; i < destLength; i++) { dest[i] = source[basToPlsIndex[i]]; } } void ReadSignal(string fieldName, HDFArray &signalArray, HDF2DArray &signalMatrix, int plsSeqLength, int nDims, Nucleotide *basSeq, int basSeqLength, int *basToPlsIndex, HalfWord* dest) { if (includedFields[fieldName]) { vector signal; if (nDims == 2) { signal.resize(plsSeqLength * 4); signalMatrix.Read(curPos, curPos + plsSeqLength, &signal[0]); // read off one row. int i; for (i = 0; i < basSeqLength; i++) { dest[i] = signal[basToPlsIndex[i]*4 + scanDataReader.BaseMap()[basSeq[i]]]; } } else { signal.resize(plsSeqLength); signalArray.Read(curPos, curPos + plsSeqLength, &signal[0]); int i; for (i = 0; i < basSeqLength; i++) { dest[i] = signal[basToPlsIndex[i]]; } } } } int GetNextFlattenedToBase(SMRTSequence &read, int* basToPlsIndex) { /* * Get the pulse values, but only store values that correspond to called bases. * This requires that the read has the read.seq field assigned. */ assert(read.seq != NULL); int seqLength; try{ // // Find out how many pulses are called for this read. zmwReader.numEventArray.Read(curRead, curRead+1, &seqLength); if (includedFields["StartFrame"]) { vector pulseStartFrame; pulseStartFrame.resize(seqLength); startFrameArray.Read(curPos, curPos + seqLength, &pulseStartFrame[0]); if (read.startFrame) {delete [] read.startFrame; read.startFrame = NULL;} read.startFrame = ProtectedNew(read.length); StoreField(pulseStartFrame, basToPlsIndex, read.startFrame, read.length); } if (includedFields["WidthInFrames"]) { vector pulseWidthInFrames; pulseWidthInFrames.resize(seqLength); plsWidthInFramesArray.Read(curPos, curPos + seqLength, &pulseWidthInFrames[0]); if (read.widthInFrames) {delete [] read.widthInFrames; read.widthInFrames = NULL;} read.widthInFrames = ProtectedNew(read.length); StoreField(pulseWidthInFrames, basToPlsIndex, read.widthInFrames, read.length); } if (includedFields["MidSignal"]) { if (read.midSignal) {delete [] read.midSignal; read.midSignal = NULL;} read.midSignal = ProtectedNew(read.length); ReadSignal("MidSignal", midSignalArray, midSignalMatrix, seqLength, midSignalNDims, read.seq, read.length, basToPlsIndex, read.midSignal); } if (includedFields["MaxSignal"]) { if (read.maxSignal) {delete [] read.maxSignal; read.maxSignal = NULL;} read.maxSignal = ProtectedNew(read.length); ReadSignal("MaxSignal", maxSignalArray, maxSignalMatrix, seqLength, maxSignalNDims, read.seq, read.length, basToPlsIndex, read.maxSignal); } if (includedFields["MeanSignal"]) { if (read.meanSignal) {delete [] read.meanSignal; read.meanSignal = NULL;} read.meanSignal = ProtectedNew(read.length); ReadSignal("MeanSignal", meanSignalArray, meanSignalMatrix, seqLength, meanSignalNDims, read.seq, read.length, basToPlsIndex, read.meanSignal); } if (includedFields["ClassifierQV"]) { vector pulseClassifierQV; pulseClassifierQV.resize(seqLength); classifierQVArray.Read(curPos, curPos + seqLength, &pulseClassifierQV[0]); if (read.classifierQV) {delete [] read.classifierQV; read.classifierQV = NULL;} read.classifierQV = ProtectedNew(read.length); StoreField(pulseClassifierQV, basToPlsIndex, read.classifierQV, read.length); } curRead++; curPos += seqLength; } catch (DataSetIException e) { cout << "ERROR, could not read pulse metrics for SMRTSequence " << read.GetName() << endl; exit(1); } return 1; } void Close() { } }; #endif blasr_libcpp-master/hdf/HDFPlsWriter.hpp000066400000000000000000000132271260756663100205530ustar00rootroot00000000000000#ifndef _BLASR_HDF_PLS_WRITER_HPP_ #define _BLASR_HDF_PLS_WRITER_HPP_ #include "data/hdf/HDFArray.h" #include "data/hdf/BufferedHDFArray.h" #include "data/hdf/HDF2DArray.h" #include "data/hdf/BufferedHDF2DArray.h" #include "data/hdf/HDFAtom.h" #include "data/hdf/HDFFile.h" #include "data/hdf/PlatformId.h" #include "utils/SMRTReadUtils.h" #include "FASTQSequence.h" #include using namespace H5; using namespace std; class HDFPlsWriter { HDFFile outFile; string hdfFileName; string movieName, runCode; PlatformId platformId; static const int bufferSize = 16; BufferedHDFArray nElemArray; BufferedHDFArray zmwXCoordArray; BufferedHDFArray zmwYCoordArray; BufferedHDFArray baseArray; BufferedHDFArray qualArray; /* HDFArray nElemArray; HDFArray zmwXCoordArray; HDFArray zmwYCoordArray; HDFArray baseArray; HDFArray qualArray; */ HDFAtom movieNameAtom, runCodeAtom; // // Astro specific arrays. // BufferedHDF2DArray holeXY2D; // // Springfield specific arrays. // BufferedHDFArray holeNumberArray; // // Define arrays for rich quality values. // BufferedHDFArray deletionQVArray; BufferedHDFArray deletionTagArray; BufferedHDFArray insertionQVArray; BufferedHDFArray substitutionTagArray; BufferedHDFArray substitutionQVArray; BufferedHDF2DArray preBaseDeletionQVArray; HDFGroup rootGroup; Group runInfoGroup; Group baseCallGroup; Group zmwGroup; public: ~HDFPlsWriter() { nElemArray.Flush(); zmwXCoordArray.Flush(); zmwYCoordArray.Flush(); baseArray.Flush(); qualArray.Flush(); deletionQVArray.Flush(); deletionTagArray.Flush(); insertionQVArray.Flush(); substitutionTagArray.Flush(); substitutionQVArray.Flush(); holeNumberArray.Flush(); } HDFPlsWriter() { /* * Default to astro for now. This may need to change to a NO_ID * platform, in which case it must be set with Initialize(). */ platformId = Astro; } void AddMovieName(string movieName) { movieNameAtom.Create(runInfoGroup, "MovieName",movieName); } /* * Initialization without a runCode is implicitly a springfield * platform. You can change it if you really want. */ void Initialize(string _hdfFileName, string movieName, PlatformId _platformId = SpringfieldPlatform) { Initialize(_hdfFileName, _platformId); AddMovieName(movieName); } void Initialize(string _hdfFileName, string movieName, string runCode, PlatformId _platformId = Astro) { Initialize(_hdfFileName, _platformId); if (movieName != "" and runCode != "") AddRunInfo(movieName, runCode); } void AddRunInfo(string movieName, string runCode) { AddMovieName(movieName); runCodeAtom.Create(runInfoGroup, "RunCode", runCode); } void Initialize(string _hdfFileName, PlatformId _platformId) { hdfFileName = _hdfFileName; platformId = _platformId; outFile.Create(hdfFileName); rootGroup.Initialize(*outFile.hdfFile, "/"); rootGroup.AddGruop("PulseData"); rootGroup.AddGroup("PulseData/BaesCalls"); rootGroup.AddGroup("PulseData/BaseCalls/ZMW"); rootGroup.AddGroup("ScanData/RunInfo"); outFile.OpenGroup("ScanData/RunInfo", runInfoGroup); outFile.OpenGroup("PulseData/BaseCalls", baseCallGroup); outFile.OpenGroup("PulseData/BaseCalls/ZMW", zmwGroup); nElemArray.Initialize(&zmwGroup, "NumEvent", bufferSize); baseArray.Initialize(&baseCallGroup, "Basecall", bufferSize); qualArray.Initialize(&baseCallGroup, "QualityValue", bufferSize); deletionQVArray.Initialize(&baseCallGroup, "DeletionQV", bufferSize); deletionTagArray.Initialize(&baseCallGroup, "DeletionTag", bufferSize); insertionQVArray.Initialize(&baseCallGroup, "InsertionQV", bufferSize); preBaseDeletionQVArray.Initialize(&baseCallGroup, "PreBaseDeletionQV", 4, bufferSize); substitutionTagArray.Initialize(&baseCallGroup, "SubstitutionTag", bufferSize); substitutionQVArray.Initialize(&baseCallGroup, "SubstitutionQV", bufferSize); if (platformId == Astro) { holeXY2D.Initialize(&zmwGroup, "HoleXY", 2, bufferSize); } else if (platformId == SpringfieldPlatform) { holeNumberArray.Initialize(&zmwGroup, "HoleNumber", bufferSize); } } int Write(FASTQSequence &seq) { int lenArray[1] = {seq.length}; nElemArray.Write(lenArray, 1); qualArray.Write(seq.qual, seq.length); baseArray.Write((const char*) seq.seq, seq.length); if (seq.deletionQV != NULL) { deletionQVArray.Write(seq.deletionQV, seq.length); } if (seq.preBaseDeletionQV != NULL) { DNALength readPos; for (readPos = 0; readPos < seq.length; readPos++) { preBaseDeletionQVArray.WriteRow(&seq.preBaseDeletionQV[readPos*4], 4); } } if (seq.deletionTag != NULL) { deletionTagArray.Write(seq.deletionTag, seq.length); } if (seq.insertionQV != NULL) { insertionQVArray.Write(seq.insertionQV, seq.length); } if (seq.substitutionQV != NULL) { substitutionQVArray.Write(seq.substitutionQV, seq.length); } if (seq.substitutionTag != NULL) { substitutionTagArray.Write(seq.substitutionTag, seq.length); } if (platformId == Astro) { // now extract the x an y coordinates. int x, y; GetSMRTReadCoordinates(seq, x, y); uint16_t xy[2] = {(uint16_t) x, (uint16_t) y}; holeXY2D.WriteRow(xy, 2); int holeNumber = 0; seq.GetHoleNumber(holeNumber); holeNumberArray.Write(&holeNumber, 1); } else if( platformId == SpringfieldPlatform){ unsigned int holeNumber; GetSpringfieldHoleNumberFromTitle(seq, holeNumber); holeNumberArray.Write(&holeNumber, 1); } // For now say this always works. HDF will choke if a problem // happens. return 1; } }; #endif blasr_libcpp-master/hdf/HDFPulseDataFile.cpp000066400000000000000000000106641260756663100212770ustar00rootroot00000000000000#include "HDFPulseDataFile.hpp" using namespace std; int HDFPulseDataFile::GetAllReadLengths(vector &readLengths) { nReads = zmwReader.numEventArray.arrayLength; readLengths.resize(nReads); zmwReader.numEventArray.Read(0,nReads, (int*) &readLengths[0]); return readLengths.size(); } void HDFPulseDataFile::CheckMemoryAllocation(long allocSize, long allocLimit, const char *fieldName) { if (allocSize > allocLimit) { if (fieldName == NULL) { cout << "Allocating too large of memory" << endl; } else { cout << "Allocate size " << allocSize << " > allocate limit " << allocLimit << endl; cout << "ERROR! Reading the dataset " << fieldName << " will use too much memory." << endl; cout << "The pls/bas file is too large, exiting." << endl; } exit(1); } } HDFPulseDataFile::HDFPulseDataFile() { pulseDataGroupName = "PulseData"; nReads = 0; useScanData = false; closeFileOnExit = false; maxAllocNElements = INT_MAX; preparedForRandomAccess = false; rootGroupPtr = NULL; } void HDFPulseDataFile::PrepareForRandomAccess() { GetAllReadLengths(eventOffset); size_t i; int curOffset = 0; for (i = 0; i < eventOffset.size(); i++) { int curLength = eventOffset[i]; eventOffset[i] = curOffset; curOffset = curOffset + curLength; } nReads = eventOffset.size(); preparedForRandomAccess = true; } int HDFPulseDataFile::OpenHDFFile(string fileName, const H5::FileAccPropList & fileAccPropList) { try { H5::FileAccPropList propList = fileAccPropList; H5::Exception::dontPrint(); hdfBasFile.openFile(fileName.c_str(), H5F_ACC_RDONLY, propList); } catch (H5::Exception &e) { cout << "ERROR, could not open hdf file" << fileName << ", exiting." << endl; exit(1); } closeFileOnExit = true; return 1; } // // All pulse data files contain the "PulseData" group name. // // int HDFPulseDataFile::InitializePulseDataFile(string fileName, const H5::FileAccPropList & fileAccPropList) { if (OpenHDFFile(fileName, fileAccPropList) == 0) return 0; return 1; } int HDFPulseDataFile::Initialize(string fileName, const H5::FileAccPropList & fileAccPropList) { if (InitializePulseDataFile(fileName, fileAccPropList) == 0) { return 0; } // // The pulse group is contained directly below the root group. // if (rootGroup.Initialize(hdfBasFile, "/") == 0) { return 0; } rootGroupPtr = &rootGroup; return Initialize(); } // // Initialize inside another open group. // int HDFPulseDataFile::Initialize(HDFGroup *rootGroupP) { rootGroupPtr = rootGroupP; return Initialize(); } // // Initialize all fields // int HDFPulseDataFile::Initialize() { preparedForRandomAccess = false; if (InitializePulseGroup() == 0) return 0; if (rootGroupPtr->ContainsObject("ScanData")) { if (scanDataReader.Initialize(rootGroupPtr) == 0) { return 0; } else { useScanData = true; } } return 1; } int HDFPulseDataFile::InitializePulseGroup() { if (pulseDataGroup.Initialize(rootGroupPtr->group, pulseDataGroupName) == 0) return 0; return 1; } int HDFPulseDataFile::GetAllHoleNumbers(vector &holeNumbers) { CheckMemoryAllocation(zmwReader.holeNumberArray.arrayLength, maxAllocNElements, "HoleNumbers (base)"); holeNumbers.resize(nReads); zmwReader.holeNumberArray.Read(0,nReads, (unsigned int*)&holeNumbers[0]); return holeNumbers.size(); } void HDFPulseDataFile::Close() { if (useScanData) { scanDataReader.Close(); } pulseDataGroup.Close(); if (rootGroupPtr == &rootGroup) { rootGroup.Close(); } /* cout << "there are " << hdfBasFile.getObjCount(H5F_OBJ_FILE) << " open files upon closing." < #include #include "H5Cpp.h" #include "HDFGroup.hpp" #include "HDFZMWReader.hpp" #include "HDFScanDataReader.hpp" class HDFPulseDataFile { public: H5::H5File hdfBasFile; HDFGroup pulseDataGroup; HDFGroup rootGroup; HDFGroup *rootGroupPtr; string pulseDataGroupName; HDFScanDataReader scanDataReader; bool useScanData; bool closeFileOnExit; int maxAllocNElements; HDFZMWReader zmwReader; std::vector eventOffset; int nReads; bool preparedForRandomAccess; int GetAllReadLengths(std::vector &readLengths); void CheckMemoryAllocation(long allocSize, long allocLimit, const char *fieldName = NULL); HDFPulseDataFile(); void PrepareForRandomAccess(); int OpenHDFFile(std::string fileName, const H5::FileAccPropList & fileAccPropList=H5::FileAccPropList::DEFAULT); // // All pulse data files contain the "PulseData" group name. // // int InitializePulseDataFile(std::string fileName, const H5::FileAccPropList & fileAccPropList=H5::FileAccPropList::DEFAULT); int Initialize(std::string fileName, const H5::FileAccPropList & fileAccPropList=H5::FileAccPropList::DEFAULT); // // Initialize inside another open group. // int Initialize(HDFGroup *rootGroupP); // // Initialize all fields // int Initialize(); int InitializePulseGroup(); int GetAllHoleNumbers(std::vector &holeNumbers); void Close(); }; #endif blasr_libcpp-master/hdf/HDFRefGroupGroup.hpp000066400000000000000000000032111260756663100213560ustar00rootroot00000000000000#ifndef HDF_REF_GROUP_H_ #define HDF_REF_GROUP_H_ #include "HDFAtom.hpp" #include "HDFArray.hpp" #include "HDFGroup.hpp" #include "saf/RefGroup.hpp" class HDFRefGroupGroup { public: HDFGroup refGroup; HDFArray idArray; HDFStringArray pathArray; HDFArray refInfoIdArray; ~HDFRefGroupGroup() { refGroup.Close(); } bool Create(HDFGroup &parent) { parent.AddGroup("RefGroup"); if (refGroup.Initialize(parent.group, "RefGroup") == 0) { return 0; } idArray.Create(refGroup, "ID"); pathArray.Create(refGroup, "Path"); refInfoIdArray.Create(refGroup, "RefInfoID"); return true; } int AddPath(string path, unsigned int refInfoId) { pathArray.Write(&path, 1); unsigned int numPath = pathArray.size(); idArray.Write(&numPath, 1); refInfoIdArray.Write(&refInfoId, 1); return numPath; } int Initialize(HDFGroup &rootGroup) { refGroup.Initialize(rootGroup.group, "RefGroup"); if (idArray.Initialize(refGroup, "ID") == 0) { return 0; } if (pathArray.Initialize(refGroup, "Path") == 0) { return 0; } if (refInfoIdArray.Initialize(refGroup, "RefInfoID") == 0) { return 0; } return 1; } void Read(RefGroup &refGroup) { int pathArrayNElem = pathArray.arrayLength; refGroup.path.resize(pathArrayNElem); pathArray.Read(0, pathArrayNElem, &refGroup.path[0]); int idArrayNElem = idArray.arrayLength; refGroup.id.resize(idArrayNElem); idArray.Read(0, idArrayNElem, &refGroup.id[0]); int refIDNElem = refInfoIdArray.arrayLength; refGroup.refInfoId.resize(refIDNElem); refInfoIdArray.Read(0, refIDNElem, &refGroup.refInfoId[0]); } }; #endif blasr_libcpp-master/hdf/HDFRefInfoGroup.hpp000066400000000000000000000051121260756663100211570ustar00rootroot00000000000000#ifndef _BLASR_HDF_REF_INFO_HPP_ #define _BLASR_HDF_REF_INFO_HPP_ #include "saf/RefInfo.hpp" class HDFRefInfoGroup { public: HDFGroup refInfoGroup; HDFStringArray fullNameArray; HDFArray idArray; HDFArray lengthArray; HDFStringArray md5Array; bool Create(HDFGroup &parent) { parent.AddGroup("RefInfo"); if (refInfoGroup.Initialize(parent.group, "RefInfo") == 0) { return 0; } fullNameArray.Create(refInfoGroup, "FullName"); idArray.Create(refInfoGroup, "ID"); lengthArray.Create(refInfoGroup, "Length"); md5Array.Create(refInfoGroup, "MD5"); return true; } void AddRefInfo(string &fullName, unsigned int id, unsigned int length, string md5) { fullNameArray.Write(&fullName, 1); idArray.Write(&id, 1); lengthArray.Write(&length, 1); md5Array.Write(&md5, 1); } unsigned int AddRefInfo(string &fullName, unsigned int length, string md5) { unsigned int numRefs = fullNameArray.size(); unsigned int id = numRefs + 1; // refInfo Id is 1 based assert(numRefs == idArray.size() && numRefs == lengthArray.size() && numRefs == md5Array.size()); AddRefInfo(fullName, id, length, md5); return id; } int Initialize(HDFGroup &parentGroup) { if (refInfoGroup.Initialize(parentGroup.group, "RefInfo") == 0) { return 0; } if (fullNameArray.Initialize(refInfoGroup, "FullName") == 0) { return 0;} if (idArray.Initialize(refInfoGroup,"ID") == 0) { return 0;} if (lengthArray.Initialize(refInfoGroup, "Length") == 0) { return 0;} if (md5Array.Initialize(refInfoGroup, "MD5") == 0) { return 0;} return 1; } ~HDFRefInfoGroup() { refInfoGroup.Close(); } void Read(RefInfo &refInfo) { UInt nRow = fullNameArray.size(); refInfo.fullName.resize(nRow); refInfo.id.resize(nRow); refInfo.length.resize(nRow); refInfo.md5.resize(nRow); /* if (refInfo.fullName.size() != refInfo.id.size() or refInfo.id.size() != refInfo.length.size() or refInfo.length.size() != refInfo.md5.size()) { cout << "Error with the RefInfo group in a cmp.h5 file. The datasets " << endl << "are of different lengths but should be the same." << endl; exit(1); } */ int i; for (i = 0; i < refInfo.fullName.size();i++) { fullNameArray.Read(i,i+1,&refInfo.fullName[i]); } for (i = 0; i < refInfo.md5.size(); i++) { md5Array.Read(i, i+1, &refInfo.md5[i]); } lengthArray.Read(0, refInfo.length.size(), &refInfo.length[0]); idArray.Read(0, refInfo.id.size(), &refInfo.id[0]); } }; #endif blasr_libcpp-master/hdf/HDFRegionTableReader.cpp000066400000000000000000000104361260756663100221300ustar00rootroot00000000000000#include #include "HDFRegionTableReader.hpp" using namespace std; int HDFRegionTableReader::Initialize(string ®ionTableFileName, const H5::FileAccPropList & fileAccPropList) { /* * Initialize access to the HDF file. */ try { regionTableFile.Open(regionTableFileName.c_str(), H5F_ACC_RDONLY, fileAccPropList); } catch (H5::Exception &e) { cout << e.getDetailMsg() << endl; return 0; } if (pulseDataGroup.Initialize(regionTableFile.rootGroup, "PulseData") == 0) { return 0; } if (pulseDataGroup.ContainsObject("Regions") == 0) { fileContainsRegionTable = false; return 0; } else { fileContainsRegionTable = true; } if (regions.Initialize(pulseDataGroup, "Regions") == 0) { return 0; } if (columnNames.Initialize(regions, "ColumnNames") == 0) { return 0; } if (regionTypes.Initialize(regions, "RegionTypes") == 0) { return 0; } if (regionDescriptions.Initialize(regions, "RegionDescriptions") == 0) { return 0; } if (regionSources.Initialize(regions, "RegionSources") == 0) { return 0; } nRows = regions.GetNRows(); isInitialized_ = true; curRow = 0; return 1; } bool HDFRegionTableReader::IsInitialized(void) const { return isInitialized_; } bool HDFRegionTableReader::HasRegionTable(void) const { assert(IsInitialized() && "HDFRegionTable is not initialize!"); return fileContainsRegionTable; } int HDFRegionTableReader::GetNext(RegionAnnotation &annotation) { assert(IsInitialized() && "HDFRegionTable is not initialize!"); // // Bail with no-op if this is the last row. // if (fileContainsRegionTable == false) { return 0; } if (curRow == nRows) { return 0; } regions.Read(curRow, curRow+1, annotation.row); ++curRow; return 1; } void HDFRegionTableReader::Close() { isInitialized_ = false; fileContainsRegionTable = false; columnNames.Close(); regionTypes.Close(); regionDescriptions.Close(); regionSources.Close(); pulseDataGroup.Close(); regions.Close(); regionTableFile.Close(); } // Note that (1) there is NO GUARANTEE that region annotations in hdf5 // `Regions` dataset be sorted in any order, so we cannot iterate over // `Regions` in order to traverse zmws in order. // (2) region table of a million zmws is approximately 5M. void HDFRegionTableReader::ReadTable(RegionTable & table) { assert(IsInitialized() && "HDFRegionTable is not initialize!"); table.Reset(); if (fileContainsRegionTable) { // Read attributes. std::vector names, types, descs, sources; if (columnNames.IsInitialized()) columnNames.Read(names); if (regionTypes.IsInitialized()) regionTypes.Read(types); else { cout << "ERROR MUST HAVE REGIONTYPES" << endl; exit(1); } if (regionDescriptions.IsInitialized()) regionDescriptions.Read(descs); if (regionSources.IsInitialized()) regionSources.Read(sources); // Read region annotations std::vector ras; ras.resize(nRows); assert(curRow == 0); for (; curRow < nRows; curRow++) { regions.Read(curRow, curRow+1, ras[curRow].row); } // Reconstruct table table.ConstructTable(ras, types); table.ColumnNames(names); table.RegionDescriptions(descs); table.RegionSources(sources); } } void HDFRegionTableReader::GetMinMaxHoleNumber(UInt &minHole, UInt &maxHole) { assert(IsInitialized() && "HDFRegionTable is not initialize!"); // Hole numbers may not be sorted ascendingly, so do not // return the first and last hole numbers as the min and max. UInt saveCurRow = curRow; curRow = 0; bool init = false; RegionAnnotation annotation; while (GetNext(annotation) == 1) { UInt curHole = annotation.GetHoleNumber(); if (not init) { minHole = maxHole = curHole; init = true; } else { minHole = (minHole > curHole)?(curHole):(minHole); maxHole = (maxHole < curHole)?(curHole):(maxHole); } } curRow = saveCurRow; } blasr_libcpp-master/hdf/HDFRegionTableReader.hpp000066400000000000000000000024331260756663100221330ustar00rootroot00000000000000#ifndef _BLASR_HDF_REGION_TABLE_READER_HPP_ #define _BLASR_HDF_REGION_TABLE_READER_HPP_ #include #include #include "H5Cpp.h" #include "reads/RegionTable.hpp" #include "HDFFile.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFAtom.hpp" class HDFRegionTableReader { private: HDFFile regionTableFile; HDFGroup pulseDataGroup; HDF2DArray regions; HDFAtom > regionTypes; HDFAtom > regionDescriptions; HDFAtom > regionSources; HDFAtom > columnNames; int curRow; bool isInitialized_; // whether or not this reader is initialized. int nRows; bool fileContainsRegionTable; public: HDFRegionTableReader(void) : curRow(0), isInitialized_(false), nRows(0) , fileContainsRegionTable(false) {} int Initialize(std::string ®ionTableFileName, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT); bool IsInitialized(void) const; bool HasRegionTable(void) const; void GetMinMaxHoleNumber(UInt &minHole, UInt &maxHole); void ReadTable(RegionTable &table); void Close(); private: int GetNext(RegionAnnotation &annotation); }; #endif blasr_libcpp-master/hdf/HDFRegionTableWriter.hpp000066400000000000000000000074101260756663100222050ustar00rootroot00000000000000#ifndef _BLASR_HDF_REGION_TABLE_WRITER_HPP_ #define _BLASR_HDF_REGION_TABLE_WRITER_HPP_ #include #include "Enumerations.h" #include "reads/RegionTable.hpp" #include "HDFFile.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFAtom.hpp" using namespace H5; using namespace std; class HDFRegionTableWriter { public: HDFFile regionTableFile; HDF2DArray regions; HDFAtom > regionTypes; HDFAtom > regionDescriptions; HDFAtom > regionSources; HDFAtom > columnNames; int curRow; int nRows; HDFGroup *parentGroupPtr, pulseDataGroup; void CreateGroupStructure() { regionTableFile.rootGroup.AddGroup("PulseData"); if (pulseDataGroup.Initialize(regionTableFile.rootGroup, "PulseData") == 0) { cout << "Could not create group PulseData. This is a bug." << endl; exit(1); } parentGroupPtr = &pulseDataGroup; regions.Initialize(pulseDataGroup, "Regions", RegionAnnotation::NCOLS); } int Create(string fileName) { H5File newFile(fileName.c_str(), H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, FileAccPropList::DEFAULT); regionTableFile.hdfFile.openFile(fileName.c_str(), H5F_ACC_RDWR, H5P_DEFAULT); regionTableFile.rootGroup.Initialize(regionTableFile.hdfFile, "/"); CreateGroupStructure(); } HDFRegionTableWriter() { curRow = 0; nRows = 0; parentGroupPtr = NULL; } int Initialize(HDFGroup &parentGroupP) { /* * Initialize in an existing file. */ parentGroupPtr = &parentGroupP; return Initialize(); } int Initialize(string ®ionTableFileName, const H5::FileAccPropList & fileAccPropList = H5::FileAccPropList::DEFAULT) { /* * Initialize access to the HDF file. */ try { regionTableFile.Open(regionTableFileName, H5F_ACC_TRUNC, fileAccPropList); } catch (Exception &e) { cout << e.getDetailMsg() << endl; return 0; } CreateGroupStructure(); return 1; } int Initialize() { if (regions.Initialize(*parentGroupPtr, "Regions", RegionAnnotation::NCOLS) == 0) { return 0; } nRows = regions.GetNRows(); curRow = 0; return 1; } void Finalize(vector &columnNamesVect, vector ®ionTypesVect, vector ®ionDescriptionsVect, vector ®ionSourcesVect) { // // Make sure data has been written to the dataset. If not, the // dataset will not exist and creating the attributes will fail. // if (curRow > 0) { regionTypes.Create(regions.dataset, "RegionTypes", regionTypesVect); columnNames.Create(regions.dataset, "ColumnNames", columnNamesVect); regionDescriptions.Create(regions.dataset, "RegionDescriptions", regionDescriptionsVect); regionSources.Create(regions.dataset, "RegionSources", regionSourcesVect); } } void WriteRows(vector &annotations) { int i; for (i = 0; i < annotations.size(); i++) { Write(annotations[i]); } } int Write(RegionAnnotation &annotation, int at=-1) { if (at == -1) { regions.WriteRow(annotation.row, annotation.NCOLS); ++curRow; } else { } return 1; } void Close() { regions.Close(); // // Check to see if this is external // if (parentGroupPtr == &pulseDataGroup) { pulseDataGroup.Close(); } regionTableFile.rootGroup.Close(); } }; #endif blasr_libcpp-master/hdf/HDFRegionsWriter.cpp000066400000000000000000000073341260756663100214200ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFRegionsWriter.hpp" HDFRegionsWriter::HDFRegionsWriter(const std::string & filename, HDFGroup & parentGroup, const std::vector & regionTypes) : HDFWriterBase(filename) , parentGroup_(parentGroup) , regionTypes_(regionTypes) , curRow_(0) { // Initialize the 'regions' group. regionsArray_.Initialize(parentGroup_, PacBio::GroupNames::regions, RegionAnnotation::NCOLS); } HDFRegionsWriter::~HDFRegionsWriter(void) { WriteAttributes(); Close(); } bool HDFRegionsWriter::WriteAttributes(void) { if (curRow_ > 0) { AddAttribute(regionsArray_, PacBio::AttributeNames::Regions::columnnames, PacBio::AttributeValues::Regions::columnnames); AddAttribute(regionsArray_, PacBio::AttributeNames::Regions::regiontypes, regionTypes_); AddAttribute(regionsArray_, PacBio::AttributeNames::Regions::regiondescriptions, PacBio::AttributeValues::Regions::regiondescriptions); AddAttribute(regionsArray_, PacBio::AttributeNames::Regions::regionsources, PacBio::AttributeValues::Regions::regionsources); return true; } else { AddErrorMessage("Could not write attributes when Regions group is empty."); return false; } } bool HDFRegionsWriter::Write(const std::vector &annotations) { for (auto annotation: annotations) if (not Write(annotation)) return false; return true; } bool HDFRegionsWriter::Write(const RegionAnnotation &annotation) { try { regionsArray_.WriteRow(annotation.row, HDFRegionsWriter::NCOLS); } catch (H5::Exception &e) { AddErrorMessage("Failed to write region annotation " + annotation.GetHoleNumber()); return false; } ++curRow_; return true; } void HDFRegionsWriter::Flush(void) { regionsArray_.Flush(); } void HDFRegionsWriter::Close(void) { Flush(); regionsArray_.Close(); } blasr_libcpp-master/hdf/HDFRegionsWriter.hpp000066400000000000000000000071421260756663100214220ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _HDF_REGIONS_WRITER_HPP_ #define _HDF_REGIONS_WRITER_HPP_ #include #include "Enumerations.h" #include "reads/RegionTable.hpp" #include "HDFFile.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFAtom.hpp" #include "HDFWriterBase.hpp" using namespace H5; using namespace std; class HDFRegionsWriter: public HDFWriterBase { public: /// \name Constructor and destructor /// \{ /// \param[in] filename, hdf file name /// \param[in] parentGroup, parent hdf group in hirarchy HDFRegionsWriter(const std::string & filename, HDFGroup & parentGroup, const std::vector & regionTypes = PacBio::AttributeValues::Regions::regiontypes); ~HDFRegionsWriter(void); /// \} private: /// \name Private variables for hdf IO. /// \{ HDFGroup & parentGroup_; //< parent hdf group /// A vector of strings of region types for RegionTypeIndex to look up. Order matters! std::vector regionTypes_; HDF2DArray regionsArray_; //< HDF2DArray for writing regions to hdf int curRow_; //< which row to write static const int NCOLS = 5; //< number of columns in Regions table. /// \brief Write attributes of the 'regions' group bool WriteAttributes(void); /// \} public: /// \name Method to write region annotations. /// \{ /// \brief Append a vector of region annotations to 'regions' /// \param[in] annotations - region annotations to append. /// \returns true if succeeded. bool Write(const std::vector &annotations); /// \brief Append a region annotation to 'regions' /// \param[in] annotation - region annotation to append /// \returns true if succeeded. bool Write(const RegionAnnotation &annotation); void Flush(void); void Close(void); }; #endif blasr_libcpp-master/hdf/HDFSMRTSequenceReader.hpp000066400000000000000000000034401260756663100222150ustar00rootroot00000000000000#ifndef _BLASR_HDF_SMRT_SEQUENCE_READER_HPP_ #define _BLASR_HDF_SMRT_SEQUENCE_READER_HPP_ #include "data/hdf/HDFBasReader.h" #include "data/hdf/HDFZMWReader.h" #include "SMRTSequence.h" template class HDFSMRTSequenceReader : public HDFBasReader { public: HDFZMWReader zmwReader; bool readQuality; int Initialize(string hdfBasFileName, bool _readQuality=true, const H5::FileAccPropList & fileAccProplist=H5::FileAccPropList::DEFAULT) { HDFBasReader::Initialize(hdfBasFileName, fileAccPropList); zmwReader.Initialize(hdfBasFile); readQuality = _readQuality; if (baseCallsGroup.ContainsObject("WidthInFrames")) { useWidthInFrames = InitializeField(baseCallsGroup, "WidthInFrames"); } if (baseCallsGroup.ContainsObject("PreBaseFrames")) { usePreBaseFrames = InitializeField(baseCallsGroup, "PreBaseFrames"); } if (baseCallsGroup.ContainsObject("PulseIndex")) { usePulseIndex = InitializeField(baseCallsGroup, "PulseIndex"); } } int GetNext(T_SMRT_Sequence &seq) { int retVal; // // Copy the curBasePos from the bas reader since it gets advanced // in the GetNext function. // DNALength curBasePosCopy = curBasePos; retVal = HDFBasReader::GetNext(seq); // // Bail now if the file is already done if (retVal == 0) { return retVal; } zmwReader.GetNext(seq.zmwData); return retVal; } int Advance(int nSteps) { int retVal; retVal = HDFBasReader::Advance(nSteps); zmwReader.Advance(nSteps); return retVal; } }; template<> int HDFSMRTSequenceReader::GetNext(FASTASequence &seq) { int retVal; if (readQuality) { retVal = HDFBasReader::GetNext(seq); } // // Bail now if the file is already done if (retVal == 0) { return retVal; } zmwReader.GetNext(seq.zmwData); return retVal; } #endif blasr_libcpp-master/hdf/HDFScanDataReader.cpp000066400000000000000000000165441260756663100214210ustar00rootroot00000000000000#include "HDFScanDataReader.hpp" using namespace std; HDFScanDataReader::HDFScanDataReader() { // // Assume the file is written without a movie name. This is // flipped when a movie name is found. // Reset(); } void HDFScanDataReader::Reset() { useMovieName = false; useRunCode = false; useWhenStarted = false; fileHasScanData = false; movieName = ""; runCode = ""; platformId = NoPlatform; initializedAcqParamsGroup = initializedRunInfoGroup = false; } int HDFScanDataReader::InitializeAcqParamsAtoms() { if (frameRateAtom.Initialize(acqParamsGroup.group, "FrameRate") == 0) { return 0; } if (numFramesAtom.Initialize(acqParamsGroup.group, "NumFrames") == 0) { return 0; } if (acqParamsGroup.ContainsAttribute("WhenStarted")) { if (whenStartedAtom.Initialize(acqParamsGroup.group, "WhenStarted") == 0) { return 0; } useWhenStarted = true; } return 1; } // // This is created on top of a file that is already opened, so // instead of initializing by opening a file, it is initialized by // passing the root group that should contain the ScanData group. // When shutting down, no file handle needs to be closed. // int HDFScanDataReader::Initialize(HDFGroup *pulseDataGroup) { // // Initiailze groups for reading data. // initializedAcqParamsGroup = false; initializedRunInfoGroup = false; if (pulseDataGroup->ContainsObject("ScanData") == 0 or scanDataGroup.Initialize(pulseDataGroup->group, "ScanData") == 0) { return 0; } fileHasScanData = true; if (scanDataGroup.ContainsObject("DyeSet") == 0 or dyeSetGroup.Initialize(scanDataGroup.group, "DyeSet") == 0) { return 0; } if (scanDataGroup.ContainsObject("AcqParams") == 0 or acqParamsGroup.Initialize(scanDataGroup.group, "AcqParams") == 0) { return 0; } initializedAcqParamsGroup = true; if (scanDataGroup.ContainsObject("RunInfo") == 0 or runInfoGroup.Initialize(scanDataGroup.group, "RunInfo") == 0) { return 0; } initializedRunInfoGroup = true; if (InitializeAcqParamsAtoms() == 0) { return 0; } // // Read in the data that will be used later on either per read or // when the entire bas/pls file is read. // if (ReadPlatformId(platformId) == 0) { return 0; } if (runInfoGroup.ContainsAttribute("RunCode") and runCodeAtom.Initialize(runInfoGroup, "RunCode")) { useRunCode = true; } // // Load baseMap which maps bases (ATGC) to channel orders. // This should always be present. // if (LoadBaseMap(baseMap_) == 0) return 0; // // Attempt to load the movie name. This is not always present. // LoadMovieName(movieName); return 1; } string HDFScanDataReader::GetMovieName() { // If this object is correctly initialized, movieName // is guaranteed to be loaded if it exists, no need to reload. return movieName; } string HDFScanDataReader::GetRunCode() { return runCode; } int HDFScanDataReader::Read(ScanData &scanData) { // All parameters below are required. if (ReadPlatformId(scanData.platformId) == 0) return 0; LoadMovieName(scanData.movieName); LoadBaseMap(scanData.baseMap); if (useRunCode) { runCodeAtom.Read(scanData.runCode); } frameRateAtom.Read(scanData.frameRate); numFramesAtom.Read(scanData.numFrames); if (useWhenStarted) { whenStartedAtom.Read(scanData.whenStarted); } ReadSequencingKit(scanData.sequencingKit_); ReadBindingKit(scanData.bindingKit_); return 1; } void HDFScanDataReader::ReadWhenStarted(string &whenStarted) { whenStartedAtom.Read(whenStarted); } PlatformId HDFScanDataReader::GetPlatformId() { return platformId; } int HDFScanDataReader::ReadPlatformId(PlatformId &pid) { if (runInfoGroup.ContainsAttribute("PlatformId")) { if (platformIdAtom.Initialize(runInfoGroup, "PlatformId") == 0) { return 0; } platformIdAtom.Read((unsigned int&)pid); } else { pid = Astro; } return 1; } int HDFScanDataReader::ReadStringAttribute(std::string & attributeValue, const std::string & attributeName, HDFGroup & group, HDFAtom & atom) { if (group.ContainsAttribute(attributeName) and (atom.isInitialized or atom.Initialize(group, attributeName))) { atom.Read(attributeValue); return 1; } else { return 0; } } int HDFScanDataReader::ReadBindingKit(std::string &bindingKit) { return ReadStringAttribute(bindingKit, "BindingKit", runInfoGroup, bindingKitAtom); } int HDFScanDataReader::ReadSequencingKit(std::string &sequencingKit) { return ReadStringAttribute(sequencingKit, "SequencingKit", runInfoGroup, sequencingKitAtom); } int HDFScanDataReader::LoadMovieName(string &movieNameP) { // Groups for building read names if (ReadStringAttribute(movieNameP, "MovieName", runInfoGroup, movieNameAtom) == 0) { // Internal analysis may manually edit the movie name and set STRSIZE to a value // which != movie name length. Handle this case. movieNameP = string(movieNameP.c_str()); return 0; } else { useMovieName = true; int e = movieNameP.size() - 1; while (e > 0 and movieNameP[e] == ' ') e--; movieNameP = movieNameP.substr(0, e+1); movieNameP = string(movieNameP.c_str()); return 1; } } int HDFScanDataReader::LoadBaseMap(map & baseMap) { // Map bases to channel order in hdf pls file. if (dyeSetGroup.ContainsAttribute("BaseMap") and baseMapAtom.Initialize(dyeSetGroup, "BaseMap")) { string baseMapStr; baseMapAtom.Read(baseMapStr); if (baseMapStr.size() != 4) { cout << "ERROR, there are more than four types of bases " << "according to /ScanData/DyeSet/BaseMap." << endl; exit(1); } baseMap.clear(); for(size_t i = 0; i < baseMapStr.size(); i++) { baseMap[toupper(baseMapStr[i])] = i; } this->baseMap_ = baseMap; return 1; } return 0; } void HDFScanDataReader::Close() { if (useMovieName) { movieNameAtom.Close(); } if (useRunCode) { runCodeAtom.Close(); } if (useWhenStarted) { whenStartedAtom.Close(); } baseMapAtom.Close(); platformIdAtom.Close(); frameRateAtom.Close(); numFramesAtom.Close(); sequencingKitAtom.Close(); bindingKitAtom.Close(); scanDataGroup.Close(); dyeSetGroup.Close(); acqParamsGroup.Close(); runInfoGroup.Close(); Reset(); } std::string HDFScanDataReader::GetMovieName_and_Close(std::string & fileName) { HDFFile file; file.Open(fileName, H5F_ACC_RDONLY); fileHasScanData = false; if (file.rootGroup.ContainsObject("ScanData") == 0 or scanDataGroup.Initialize(file.rootGroup, "ScanData") == 0) { return ""; } fileHasScanData = true; initializedRunInfoGroup = false; if (scanDataGroup.ContainsObject("RunInfo") == 0 or runInfoGroup.Initialize(scanDataGroup.group, "RunInfo") == 0) { return ""; } initializedRunInfoGroup = true; string movieName; LoadMovieName(movieName); Close(); file.Close(); return movieName; } blasr_libcpp-master/hdf/HDFScanDataReader.hpp000066400000000000000000000063541260756663100214240ustar00rootroot00000000000000#ifndef _BLASR_HDF_SCAN_DATA_READER_HPP_ #define _BLASR_HDF_SCAN_DATA_READER_HPP_ #include #include #include "Enumerations.h" #include "reads/ScanData.hpp" #include "HDFGroup.hpp" #include "HDFFile.hpp" #include "HDFAtom.hpp" // // The SanDataReader cannot live outside class HDFScanDataReader { public: bool fileHasScanData, useRunCode; HDFGroup scanDataGroup; HDFGroup dyeSetGroup; HDFGroup acqParamsGroup; HDFGroup runInfoGroup; bool initializedAcqParamsGroup, initializedRunInfoGroup; bool useWhenStarted; HDFAtom whenStartedAtom; HDFAtom platformIdAtom; HDFAtom frameRateAtom; HDFAtom numFramesAtom; HDFAtom movieNameAtom; HDFAtom runCodeAtom; HDFAtom baseMapAtom; HDFAtom bindingKitAtom; HDFAtom sequencingKitAtom; // // It is useful to cache the movie name in the reader since this is // loaded once upon initialization, and may be fetched when loading // reads one at a time. // bool useMovieName; std::string movieName, runCode; PlatformId platformId; HDFScanDataReader(); void Reset(); int InitializeAcqParamsAtoms(); // // This is created on top of a file that is already opened, so // instead of initializing by opening a file, it is initialized by // passing the root group that should contain the ScanData group. // When shutting down, no file handle needs to be closed. // int Initialize(HDFGroup *pulseDataGroup); std::string GetMovieName(); // Given a PacBio (pls/plx/bas/bax/ccs/rgn).h5 file, which contains its movie // name in group /ScanData/RunInfo attribute MovieName, open the file, return // its movie name and finally close the file. Return "" if the movie name // does not exist. This is a short path to get movie name. std::string GetMovieName_and_Close(std::string & fileName); std::string GetRunCode(); int Read(ScanData &scanData); void ReadWhenStarted(std::string &whenStarted); PlatformId GetPlatformId(); int ReadPlatformId(PlatformId &pid); /// Reads value of Attribute /ScanData/RunInfo/BindingKit int ReadBindingKit(std::string &bindingKit); /// Reads value of Attribute /ScanData/RunInfo/SequencingKit int ReadSequencingKit(std::string &sequencingKit); int LoadMovieName(std::string &movieName); int LoadBaseMap(map & baseMap); std::map BaseMap(void) const {return baseMap_;} void Close(); private: std::map baseMap_; /// Reads value of a string attribute within a HDFGroup. /// \returns 1 if succesfully read value of the string attribute, 0 otherwise. /// \param[out] attributeValue, value of a string attribute. /// \param[in] attributeName, name of the string attribute. /// \param[in] group, HDFGroup of the string attribute . /// \param[in] atom, initialized HDFAtom obj for reading attribute . int ReadStringAttribute(std::string & attributeValue, const std::string & attributeName, HDFGroup & group, HDFAtom & atom); }; #endif blasr_libcpp-master/hdf/HDFScanDataWriter.cpp000066400000000000000000000166521260756663100214730ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFScanDataWriter.hpp" void HDFScanDataWriter::CreateAcqParamsGroup() { if (acqParamsGroup.Initialize(scanDataGroup, "AcqParams") == 0) { std::cout << "ERROR could not create /ScanData/AcqParams." << std::endl; exit(1); } frameRateAtom.Create(acqParamsGroup.group, "FrameRate"); numFramesAtom.Create(acqParamsGroup.group, "NumFrames"); whenStartedAtom.Create(acqParamsGroup.group, "WhenStarted"); } void HDFScanDataWriter::CreateDyeSetGroup(){ if (dyeSetGroup.Initialize(scanDataGroup, "DyeSet") == 0) { std::cout << "ERROR could not create /ScanData/DyeSet." << std::endl; exit(1); } baseMapAtom.Create(dyeSetGroup.group, PacBio::AttributeNames::ScanData::DyeSet::basemap); numAnalogAtom.Create(dyeSetGroup.group, "NumAnalog"); } void HDFScanDataWriter::CreateRunInfoGroup(){ if (runInfoGroup.Initialize(scanDataGroup, "RunInfo") == 0) { std::cout << "ERROR, could not create /ScanDta/RunInfo." << std::endl; exit(1); } movieNameAtom.Create(runInfoGroup.group, "MovieName"); platformIdAtom.Create(runInfoGroup.group, "PlatformId"); platformNameAtom.Create(runInfoGroup.group, "PlatformName"); runCodeAtom.Create(runInfoGroup.group, "RunCode"); bindingKitAtom.Create(runInfoGroup.group, "BindingKit"); sequencingKitAtom.Create(runInfoGroup.group, "SequencingKit"); } HDFScanDataWriter::HDFScanDataWriter(HDFFile & _outFile) { Initialize(_outFile.rootGroup); } HDFScanDataWriter::HDFScanDataWriter(HDFGroup & _rootGroup) { Initialize(_rootGroup); } HDFScanDataWriter::~HDFScanDataWriter() { this->Close(); } int HDFScanDataWriter::Initialize(HDFGroup & _rootGroup) { rootGroupPtr = &(_rootGroup); rootGroupPtr->AddGroup("ScanData"); if (scanDataGroup.Initialize(*(rootGroupPtr), "ScanData") == 0) { std::cout << "ERROR, could not create /ScanData group." << std::endl; exit(1); } scanDataGroup.AddGroup("AcqParams"); scanDataGroup.AddGroup("DyeSet"); scanDataGroup.AddGroup("RunInfo"); CreateAcqParamsGroup(); CreateDyeSetGroup(); CreateRunInfoGroup(); return 1; } void HDFScanDataWriter::Write(const ScanData & scanData) { const float DEFAULT_FRAMERATE = 75.0; const unsigned int DEFAULT_NUMFRAMES = 1000000; const std::string DEFAULT_DATE = "2013-01-01T01:01:01"; const int DEFAULT_NUMANALOG = 4; const std::string DEFAULT_MOVIENAME = "simulated_movie"; const std::string DEFAULT_RUNCODE = "simulated_runcode"; WriteFrameRate((scanData.frameRate==0)? (DEFAULT_FRAMERATE):(scanData.frameRate)); WriteNumFrames((scanData.numFrames==0)? (DEFAULT_NUMFRAMES):(scanData.numFrames)); WriteWhenStarted((scanData.whenStarted.empty())? (DEFAULT_DATE):(scanData.whenStarted)); // Base map is VITAL, must be specified if (scanData.BaseMapStr().empty()) { assert("ScanData/DyeSet attribute BaseMap MUST be specified." == 0); } WriteBaseMap(scanData.BaseMapStr()); WriteNumAnalog(DEFAULT_NUMANALOG); WriteMovieName((scanData.movieName.empty()? (DEFAULT_MOVIENAME):scanData.movieName)); WriteRunCode((scanData.runCode.empty())? (DEFAULT_RUNCODE):(scanData.runCode)); WritePlatformId((scanData.platformId==NoPlatform)? (Springfield):(scanData.platformId)); WriteBindingKit(scanData.BindingKit()); WriteSequencingKit(scanData.SequencingKit()); } void HDFScanDataWriter::WriteFrameRate(const float frameRate) { // Write /ScanData/AcqParams/FrameRate attribute. frameRateAtom.Write(frameRate); } void HDFScanDataWriter::WriteNumFrames(const unsigned int numFrames) { // Write /ScanData/AcqParams/NumFrames attribute. numFramesAtom.Write(numFrames); } void HDFScanDataWriter::WriteWhenStarted(const std::string whenStarted) { // Write /ScanData/AcqParams/WhenStarted attribute. whenStartedAtom.Write(whenStarted); } void HDFScanDataWriter::WriteBaseMap(const std::string baseMapStr) { //Write /ScanData/DyeSet/BaseMap attribute. baseMapAtom.Write(baseMapStr); } void HDFScanDataWriter::WriteNumAnalog(const unsigned int numAnalog) { //Write /ScanData/DyeSet/NumAnalog attribute. numAnalogAtom.Write(numAnalog); } void HDFScanDataWriter::WritePlatformId(const PlatformId id) { //Write /ScanData/RunInfo/Platform attribute. std::string name = (id == Springfield)?"Springfield":"Astro"; platformIdAtom.Write(id); platformNameAtom.Write(name); } void HDFScanDataWriter::WriteMovieName(const std::string movieName) { //Write /ScanData/RunInfo/MovieName attribute. movieNameAtom.Write(movieName); } void HDFScanDataWriter::WriteRunCode(const std::string runCode) { //Write /ScanData/RunInfo/MovieName attribute. runCodeAtom.Write(runCode); } void HDFScanDataWriter::WriteBindingKit(const std::string & bindingKit) { bindingKitAtom.Write(bindingKit); } void HDFScanDataWriter::WriteSequencingKit(const std::string & sequencingKit) { sequencingKitAtom.Write(sequencingKit); } void HDFScanDataWriter::Close() { // Close /ScanData/AcqParams attributes. whenStartedAtom.Close(); frameRateAtom.Close(); numFramesAtom.Close(); // Close /ScanData/DyeSet attributes. baseMapAtom.Close(); // Close /ScanData/RunInfo attributes. movieNameAtom.Close(); runCodeAtom.Close(); platformIdAtom.Close(); platformNameAtom.Close(); bindingKitAtom.Close(); sequencingKitAtom.Close(); // Close /ScanData/AcqParams|DyeSet|RunInfo. acqParamsGroup.Close(); dyeSetGroup.Close(); runInfoGroup.Close(); // Close /ScanData scanDataGroup.Close(); } blasr_libcpp-master/hdf/HDFScanDataWriter.hpp000066400000000000000000000067321260756663100214760ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef DATA_HDF_HDF_SCAN_DATA_WRITER_H_ #define DATA_HDF_HDF_SCAN_DATA_WRITER_H_ #include #include #include "HDFFile.hpp" #include "HDFGroup.hpp" #include "HDFAtom.hpp" #include "Enumerations.h" #include "reads/ScanData.hpp" class HDFScanDataWriter { private: HDFGroup * rootGroupPtr; HDFGroup scanDataGroup; HDFGroup acqParamsGroup; HDFGroup dyeSetGroup; HDFGroup runInfoGroup; HDFAtom whenStartedAtom; HDFAtom frameRateAtom; HDFAtom numFramesAtom; HDFAtom baseMapAtom; HDFAtom numAnalogAtom; HDFAtom movieNameAtom; HDFAtom runCodeAtom; HDFAtom bindingKitAtom; HDFAtom sequencingKitAtom; HDFAtom platformIdAtom; HDFAtom platformNameAtom; void CreateAcqParamsGroup(); void CreateDyeSetGroup(); void CreateRunInfoGroup(); public: HDFScanDataWriter(HDFFile & _outFile); HDFScanDataWriter(HDFGroup & _rootGroup); ~HDFScanDataWriter(); int Initialize(HDFGroup & _rootGroup); void Write(const ScanData & scanData); void WriteFrameRate(const float frameRate); void WriteNumFrames(const unsigned int numFrames); void WriteWhenStarted(const std::string whenStarted); void Close(); private: void WriteBaseMap(const std::string baseMapStr); void WriteNumAnalog(const unsigned int numAnalog); void WritePlatformId(const PlatformId id); void WriteMovieName(const std::string movieName); void WriteRunCode(const std::string runCode); void WriteBindingKit(const std::string & bindingKit); void WriteSequencingKit(const std::string & sequencingKit); }; #endif blasr_libcpp-master/hdf/HDFSentinalFile.hpp000066400000000000000000000007041260756663100211710ustar00rootroot00000000000000#ifndef _BLASR_SENTINAL_FILE_HPP_ #define _BLASR_SENTINAL_FILE_HPP_ #include "HDFArray.h" #include "HDF2DArray.h" class HDFSentinal { public: HDFStringArray parts; HDF2DArray holeLookup; HDFGroup multiPartGroup; void Initialize(HDFGroup &rootGroup) { multiPartGroup.Initialize(rootGroup, "MultiPart"); parts.Initialize(multiPartGroup, "Parts"); holeLookup.Initialize(multiPartGroup, "HoleLookup"); } }; #endif blasr_libcpp-master/hdf/HDFUtils.cpp000066400000000000000000000054501260756663100177120ustar00rootroot00000000000000#include "HDFUtils.hpp" std::string GetH5MovieName(std::string fileName) { HDFScanDataReader reader; return reader.GetMovieName_and_Close(fileName); } std::vector GetH5MovieNames(const std::vector & fileNames) { std::vector ret; for (size_t i = 0 ; i < fileNames.size(); i++) { ret.push_back(GetH5MovieName(fileNames[i])); } return ret; } std::vector< std::pair > GetMinMaxHoleNumbers( const std::vector & fileNames, bool isRGN) { std::vector< std::pair > ret; for (size_t i = 0 ; i < fileNames.size(); i++) { ret.push_back(GetMinMaxHoleNumber(fileNames[i], isRGN)); } return ret; } std::pair GetMinMaxHoleNumber( std::string fileName, bool isRGN) { UInt minHole, maxHole; if (isRGN) { // is region table HDFRegionTableReader rgnReader; rgnReader.Initialize(fileName); rgnReader.GetMinMaxHoleNumber(minHole, maxHole); rgnReader.Close(); } else { // is bas/bax/pls/plx/ccs.h5 HDFBasReader basReader; basReader.Initialize(fileName); vector holes; basReader.GetMinMaxHoleNumber(minHole, maxHole); basReader.Close(); } return std::make_pair(minHole, maxHole); } std::vector MapPls2Rgn(const std::vector & plsFNs, const std::vector & rgnFNs) { if (plsFNs.size() != rgnFNs.size() && rgnFNs.size() != 0) { std::cout << "ERROR, the number of plx/bax.h5 files and the number of " << "region tables are not the same." << std::endl; exit(1); } // Movie names of pulse files in P. std::vector plsMovies = GetH5MovieNames(plsFNs); // Movie names of region tables in R. std::vector rgnMovies = GetH5MovieNames(rgnFNs); // The first and last hole numbers of pulse files in P. std::vector< std::pair > plsHoles = GetMinMaxHoleNumbers(plsFNs, false); // The first and last hole numbers of region tables in R. std::vector< std::pair > rgnHoles = GetMinMaxHoleNumbers(rgnFNs, true); std::vector ret; for (size_t i = 0; i < plsFNs.size(); i++) { size_t j = 0; for (; j < rgnFNs.size(); j++) { if (plsMovies[i] == rgnMovies[j] and plsHoles[i].first <= rgnHoles[j].first and plsHoles[i].second >= rgnHoles[j].second) { break; } } if (j >= rgnFNs.size()) { std::cout << "ERROR, could not find any region table for file " << plsFNs[i] << " [" << plsHoles[i].first << ", " << plsHoles[i].second <<"." << std::endl; exit(1); } ret.push_back(j); } return ret; } blasr_libcpp-master/hdf/HDFUtils.hpp000066400000000000000000000031311260756663100177110ustar00rootroot00000000000000#ifndef _BLASR_HDF_UTILS_HPP_ #define _BLASR_HDF_UTILS_HPP_ #include #include #include "HDFFile.hpp" #include "HDFScanDataReader.hpp" #include "HDFBasReader.hpp" #include "HDFRegionTableReader.hpp" #include "reads/RegionTable.hpp" // Given a PacBio (pls/plx/bas/bax/ccs/rgn).h5 file, which contains its movie // name in group /ScanData/RunInfo attribute MovieName, return its' movie name std::string GetH5MovieName(std::string fileName); // Given a vector of h5 files, return their movie names. std::vector GetH5MovieNames(const std::vector & fileNames); // Given a PacBio rgn.h5 file, return the smallest and largest holeNumber in // group /PulseData/Regions. std::pair GetMinMaxHoleNumber(std::string fileName, bool isRGN=false); std::vector > GetMinMaxHoleNumbers( std::string fileName, bool isRGN=false); // Pulse files in input.fofn and regions tables in rgn.fofn may not // match, return mapping from plsFNs indices to rgnFNs indices. // // Input : plsFNs - pulse file names in input.fofn, e.g., // P=(p_0, ..., p_{n-1}) // rgnFNs - region table file names in rgn.fofn, e.g., // R=(r_0, ..., p_{n-1}) // Output: mapping from plsFNs indices to rgnFNs indices, e.g., // M=(m_0, ..., m_{n-1}) // so that for all i from 0 to n-1, // r_{m_{i}} matches p_i // std::vector MapPls2Rgn(const std::vector & plsFNs, const std::vector & rgnFNs); #endif blasr_libcpp-master/hdf/HDFWriteBuffer.hpp000066400000000000000000000017121260756663100210400ustar00rootroot00000000000000#ifndef _BLASR_HDF_WRITE_BUFFER_HPP_ #define _BLASR_HDF_WRITE_BUFFER_HPP_ #include #include "utils.hpp" template class HDFWriteBuffer { public: T *writeBuffer; int bufferIndex; int bufferSize; HDFWriteBuffer() { writeBuffer = NULL; bufferIndex = 0; bufferSize = 0; } void InitializeBuffer(int pBufferSize) { Free(); // Free before reusing the buffer. bufferSize = pBufferSize; if (bufferSize > 0) { writeBuffer = ProtectedNew(bufferSize); } else { writeBuffer = NULL; } } void Free() { if (writeBuffer) { delete[] writeBuffer; writeBuffer = NULL; } } ~HDFWriteBuffer() { Free(); } void ResetWriteBuffer() { bufferIndex = 0; } bool WriteBufferEmpty() { return (bufferIndex == 0); } }; #endif blasr_libcpp-master/hdf/HDFWriterBase.cpp000066400000000000000000000075431260756663100206660ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFWriterBase.hpp" std::vector HDFWriterBase::Errors(void) const { return errors_; } bool HDFWriterBase::AddChildGroup(HDFGroup & parentGroup, HDFGroup & childGroup, const std::string & childGroupName) { parentGroup.AddGroup(childGroupName); if (childGroup.Initialize(parentGroup, childGroupName) == 0) { FAILED_TO_CREATE_GROUP_ERROR(childGroupName); return false; } return true; } bool HDFWriterBase::AddAttribute(HDFData & group, const std::string & attributeName, const std::string & attributeValue) { return this->AddAttribute(group, attributeName, std::vector({attributeValue})); } bool HDFWriterBase::AddAttribute(HDFData & group, const std::string & attributeName, const std::vector & attributeValues) { try { HDFAtom > attributeAtom; attributeAtom.Create(group.dataset, std::string(attributeName), attributeValues); attributeAtom.Close(); } catch (H5::Exception &e) { FAILED_TO_CREATE_ATTRIBUTE_ERROR(attributeName); return false; } return true; } void HDFWriterBase::AddErrorMessage(const std::string & errmsg) { errors_.push_back(errmsg); } void HDFWriterBase::FAILED_TO_CREATE_GROUP_ERROR(const std::string & groupName) { std::stringstream ss; ss << "Failed to create group " << groupName << " in " << filename_; AddErrorMessage(ss.str()); } void HDFWriterBase::FAILED_TO_CREATE_ATTRIBUTE_ERROR(const std::string & attributeName) { std::stringstream ss; ss << "Failed to create attribute " << attributeName << " in " << filename_; AddErrorMessage(ss.str()); } void HDFWriterBase::PARENT_GROUP_NOT_INITIALIZED_ERROR(const std::string & groupName) { std::stringstream ss; ss << "Parent hdf group of " << groupName << " in file " << filename_ << " is not initialized."; AddErrorMessage(ss.str()); } blasr_libcpp-master/hdf/HDFWriterBase.hpp000066400000000000000000000061411260756663100206640ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _BLASR_HDFWRITERBASE_HPP_ #define _BLASR_HDFWRITERBASE_HPP_ #include #include #include #include #include "HDFGroup.hpp" #include "HDFAtom.hpp" class HDFWriterBase { public: HDFWriterBase(const std::string & filename) : filename_(filename) {} ~HDFWriterBase() {} public: /// \returns Target H5 filename. std::string Filename(void) {return filename_;} std::vector Errors(void) const; protected: std::string filename_; std::vector errors_; bool AddChildGroup(HDFGroup & parentGroup, HDFGroup & childGroup, const std::string & childGroupName); bool AddAttribute(HDFData & group, const std::string & attributeName, const std::string & attributeValue); bool AddAttribute(HDFData & group, const std::string & attributeName, const std::vector & attributeValues); void AddErrorMessage(const std::string & errmsg); void FAILED_TO_CREATE_GROUP_ERROR(const std::string & groupName); void FAILED_TO_CREATE_ATTRIBUTE_ERROR(const std::string & attributeName); void PARENT_GROUP_NOT_INITIALIZED_ERROR(const std::string & groupName); virtual void Close(void) = 0; }; #endif blasr_libcpp-master/hdf/HDFZMWMetricsWriter.cpp000066400000000000000000000120231260756663100220050ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFZMWMetricsWriter.hpp" #include "reads/ScanData.hpp" HDFZMWMetricsWriter::HDFZMWMetricsWriter(const std::string & filename, HDFGroup & parentGroup, const std::map & baseMap) : HDFWriterBase(filename) , parentGroup_(parentGroup) , baseMap_(baseMap) , curRow_(0) { if (not parentGroup.groupIsInitialized) PARENT_GROUP_NOT_INITIALIZED_ERROR(PacBio::GroupNames::zmwmetrics); else { parentGroup_.AddGroup(PacBio::GroupNames::zmwmetrics); if (zmwMetricsGroup_.Initialize(parentGroup_, PacBio::GroupNames::zmwmetrics) == 0) FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::zmwmetrics); InitializeChildHDFGroups(); } // Sanity Check BaseMap assert(ScanData::IsValidBaseMap(baseMap)); } HDFZMWMetricsWriter::~HDFZMWMetricsWriter() { Flush(); // Must flush in case group is empty. assert(WriteAttributes()); Close(); } bool HDFZMWMetricsWriter::WriteOneZmw(const SMRTSequence & read) { try { float snrs[4]; for (char base: {'A', 'C', 'G', 'T'}) { snrs[baseMap_[base]] = read.HQRegionSnr(base); } hqRegionSNRArray_.WriteRow(snrs, SNRNCOLS); readScoreArray_.Write(&read.readScore, 1); productivityArray_.Write(&read.zmwData.holeStatus, 1); } catch (H5::Exception & e) { AddErrorMessage("Failed to write HQRegionSNR or ReadScore or Productivity."); return false; } ++curRow_; return true; } void HDFZMWMetricsWriter::Flush(void) { hqRegionSNRArray_.Flush(); readScoreArray_.Flush(); productivityArray_.Flush(); } void HDFZMWMetricsWriter::Close(void) { hqRegionSNRArray_.Close(); readScoreArray_.Close(); productivityArray_.Close(); zmwMetricsGroup_.Close(); } bool HDFZMWMetricsWriter::InitializeChildHDFGroups(void) { bool OK = true; if (hqRegionSNRArray_.Initialize(zmwMetricsGroup_, PacBio::GroupNames::hqregionsnr, SNRNCOLS) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::hqregionsnr); OK = false; } if (readScoreArray_.Initialize(zmwMetricsGroup_, PacBio::GroupNames::readscore) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::readscore); OK = false; } if (productivityArray_.Initialize(zmwMetricsGroup_, PacBio::GroupNames::productivity) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::productivity); OK = false; } return OK; } bool HDFZMWMetricsWriter::WriteAttributes(void) { if (curRow_ > 0) { bool OK = AddAttribute(hqRegionSNRArray_, PacBio::AttributeNames::Common::description, PacBio::AttributeValues::ZMWMetrics::HQRegionSNR::description) and AddAttribute(readScoreArray_, PacBio::AttributeNames::Common::description, PacBio::AttributeValues::ZMWMetrics::ReadScore::description) and AddAttribute(productivityArray_, PacBio::AttributeNames::Common::description, PacBio::AttributeValues::ZMWMetrics::Productivity::description); return OK; } else { AddErrorMessage("Could not write attributes when ZMWMetrics group is empty."); return false; } } blasr_libcpp-master/hdf/HDFZMWMetricsWriter.hpp000066400000000000000000000073551260756663100220260ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _BLASR_HDF_HDFZMWMETRICSWriter_HPP_ #define _BLASR_HDF_HDFZMWMETRICSWriter_HPP_ #include "SMRTSequence.hpp" #include "HDFWriterBase.hpp" #include "BufferedHDFArray.hpp" #include "BufferedHDF2DArray.hpp" class HDFBaseCallerWriter; class HDFZMWMetricsWriter: public HDFWriterBase { friend class HDFBaseCallerWriter; private: /// \name Private variable /// \{ HDFGroup & parentGroup_; HDFGroup zmwMetricsGroup_; /// HDF2DArray for writing average SNR within HQRegion. BufferedHDF2DArray hqRegionSNRArray_; /// HDFArray for writing read raw accuracy prediction. BufferedHDFArray readScoreArray_; /// HDFArray for writing Productivity BufferedHDFArray productivityArray_; /// Map bases (e.g., ACGT) to indices std::map baseMap_; int curRow_; static const int SNRNCOLS = 4; /// \} public: /// \name Constructors and Destructors /// \{ HDFZMWMetricsWriter(const std::string & filename, HDFGroup & parentGroup, const std::map & baseMap); ~HDFZMWMetricsWriter(void) ; /// \} /// \name Public Methods /// \{ /// \note Write info of a SMRTSequence to ZMWMetrics, /// (1) add average signal to noise ratio in HQRegion to HQRegionSNR /// (2) add read raw accuracy prediction to ReadScore bool WriteOneZmw(const SMRTSequence & read); /// \note Flushes all data from cache to disc. void Flush(void); /// \note Closes this zmw group as well as child hdf groups. void Close(void); /// \} private: /// \name Private Methods /// \{ /// \note Initialize child hdf groups under ZMWMetrics, including /// HQRegionSNR and ReadScore /// \reutrns bool, whether or not child hdf groups successfully initialized. bool InitializeChildHDFGroups(void); /// \note Write Attributes. bool WriteAttributes(void); /// \} }; #endif blasr_libcpp-master/hdf/HDFZMWReader.cpp000066400000000000000000000062161260756663100204130ustar00rootroot00000000000000#include "Types.h" #include "HDFZMWReader.hpp" HDFZMWReader::HDFZMWReader() { closeFileOnExit = false; readHoleNumber = false; readHoleXY = false; readNumEvent = false; readHoleStatus = false; nZMWEntries = curZMW = 0; parentGroupPtr = NULL; } int HDFZMWReader::Initialize(HDFGroup *parentGroupP) { parentGroupPtr = parentGroupP; closeFileOnExit = false; return Initialize(); } int HDFZMWReader::Initialize() { // // Make sure we can open the component containing the zmw information. // if (parentGroupPtr->ContainsObject("ZMW") == 0 or zmwGroup.Initialize(parentGroupPtr->group, "ZMW") == 0) { return 0; } // // Now open all the important datasets in the zmw group. Some of // these are optional, so flags must be set if they do not exist. // if (zmwGroup.ContainsObject("HoleNumber")) { if (holeNumberArray.Initialize(zmwGroup, "HoleNumber") == 0) { return 0; } readHoleNumber = true; } else { readHoleNumber = false; } if (zmwGroup.ContainsObject("HoleStatus")) { if (holeStatusArray.Initialize(zmwGroup, "HoleStatus") == 0) { return 0; } readHoleStatus = true; } else { readHoleStatus = false; } if (zmwGroup.ContainsObject("HoleXY")) { if (xyArray.Initialize(zmwGroup, "HoleXY") == 0) { return 0; } readHoleXY = true; } else { readHoleXY = false; } if (numEventArray.Initialize(zmwGroup, "NumEvent") == 0) { return 0; } nZMWEntries = numEventArray.arrayLength; readNumEvent = true; curZMW = 0; return 1; } int HDFZMWReader::Advance(int nSteps) { if (curZMW >= nZMWEntries) { return 0; } else { curZMW += nSteps; return 1; } } bool HDFZMWReader::GetNext(ZMWGroupEntry &groupEntry) { if (curZMW == nZMWEntries) { return false; } if (readHoleNumber) { holeNumberArray.Read(curZMW, curZMW+1, &groupEntry.holeNumber); } if (readHoleStatus) { holeStatusArray.Read(curZMW, curZMW+1, &groupEntry.holeStatus); } if (readHoleXY){ int16_t holeXY[2]; xyArray.Read(curZMW, curZMW+1, holeXY); groupEntry.x = holeXY[0]; groupEntry.y = holeXY[1]; } numEventArray.Read(curZMW, curZMW+1, &groupEntry.numEvents); curZMW++; return true; } void HDFZMWReader::Close() { if (readHoleNumber) { holeNumberArray.Close(); } if (readHoleStatus) { holeStatusArray.Close(); } if (readHoleXY) { xyArray.Close(); } if (readNumEvent) { numEventArray.Close(); } if (closeFileOnExit == true) { // // This instance is owner of it's reader. Close the reader file. // hdfPlsFile.close(); } zmwGroup.Close(); } bool HDFZMWReader::GetHoleNumberAt(UInt index, UInt &holeNumber) { if (index >= nZMWEntries) { return false; } holeNumberArray.Read(index, index + 1, (UInt *)&holeNumber); return true; } HDFZMWReader::~HDFZMWReader() { Close(); } blasr_libcpp-master/hdf/HDFZMWReader.hpp000066400000000000000000000017301260756663100204140ustar00rootroot00000000000000#ifndef _BLASR_HDF_ZMW_READER_HPP_ #define _BLASR_HDF_ZMW_READER_HPP_ #include #include "H5Cpp.h" #include "reads/ZMWGroupEntry.hpp" #include "HDFArray.hpp" #include "HDF2DArray.hpp" #include "HDFGroup.hpp" class HDFZMWReader { public: HDFGroup *parentGroupPtr; HDFGroup zmwGroup; HDFArray holeNumberArray; HDFArray holeStatusArray; HDF2DArray xyArray; HDFArray numEventArray; bool readHoleNumber, readHoleStatus; bool readHoleXY; bool readNumEvent; UInt curZMW; UInt nZMWEntries; bool closeFileOnExit; H5::H5File hdfPlsFile; HDFZMWReader(); int Initialize(HDFGroup *parentGroupP); int Initialize(); int Advance(int nSteps); bool GetNext(ZMWGroupEntry &groupEntry); void Close(); // Return true if get hole number at ZMW/HoleNumber[index]. bool GetHoleNumberAt(UInt index, UInt & holeNumber); ~HDFZMWReader(); }; #endif blasr_libcpp-master/hdf/HDFZMWWriter.cpp000066400000000000000000000117301260756663100204620ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "HDFZMWWriter.hpp" HDFZMWWriter::HDFZMWWriter(const std::string & filename, HDFGroup & parentGroup, bool hasHoleXY) : HDFWriterBase(filename) , parentGroup_(parentGroup) , hasHoleXY_(hasHoleXY) { if (not parentGroup.groupIsInitialized) PARENT_GROUP_NOT_INITIALIZED_ERROR(PacBio::GroupNames::zmw); else { parentGroup_.AddGroup(PacBio::GroupNames::zmw); if (zmwGroup_.Initialize(parentGroup_, PacBio::GroupNames::zmw) == 0) FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::zmw); this->InitializeChildHDFGroups(); } } HDFZMWWriter::~HDFZMWWriter() { this->_WriteAttributes(); this->Close(); } bool HDFZMWWriter::WriteOneZmw(const SMRTSequence & read) { int length_ = static_cast (read.length); numEventArray_.Write(&length_, 1); UInt hn_ = read.HoleNumber(); holeNumberArray_.Write(&hn_, 1); unsigned char hs_ = read.HoleStatus(); holeStatusArray_.Write(&hs_, 1); if (HasHoleXY()) { int16_t xy[2] = {static_cast(read.HoleX()), static_cast(read.HoleY())}; holeXYArray_.WriteRow(xy, 2); } return true; } void HDFZMWWriter::Flush(void) { numEventArray_.Flush(); holeNumberArray_.Flush(); holeStatusArray_.Flush(); if (HasHoleXY()) holeXYArray_.Flush(); } void HDFZMWWriter::Close(void) { this->Flush(); numEventArray_.Close(); holeNumberArray_.Close(); holeStatusArray_.Close(); if (HasHoleXY()) holeXYArray_.Close(); zmwGroup_.Close(); } bool HDFZMWWriter::InitializeChildHDFGroups(void) { bool OK = true; if (numEventArray_.Initialize(zmwGroup_, PacBio::GroupNames::numevent) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::numevent); OK = false; } if (holeNumberArray_.Initialize(zmwGroup_, PacBio::GroupNames::holenumber) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::holenumber); OK = false; } if (holeStatusArray_.Initialize(zmwGroup_, PacBio::GroupNames::holestatus) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::holestatus); OK = false; } if (HasHoleXY()) { if (holeXYArray_.Initialize(zmwGroup_, PacBio::GroupNames::holexy, 2) == 0) { FAILED_TO_CREATE_GROUP_ERROR(PacBio::GroupNames::holexy); OK = false; } } return OK; } void HDFZMWWriter::_WriteAttributes(void) { if (holeNumberArray_.IsInitialized() and holeNumberArray_.size() > 0) { AddAttribute(holeNumberArray_, PacBio::AttributeNames::Common::description, PacBio::AttributeValues::ZMW::HoleNumber::description); } if (holeStatusArray_.IsInitialized() and holeStatusArray_.size() > 0) { AddAttribute(holeStatusArray_, PacBio::AttributeNames::Common::description, PacBio::AttributeValues::ZMW::HoleStatus::description); AddAttribute(holeStatusArray_, PacBio::AttributeNames::ZMW::HoleStatus::lookuptable, PacBio::AttributeValues::ZMW::HoleStatus::lookuptable); } if (holeXYArray_.IsInitialized()) { AddAttribute(holeXYArray_, PacBio::AttributeNames::Common::description, PacBio::AttributeValues::ZMW::HoleXY::description); } } blasr_libcpp-master/hdf/HDFZMWWriter.hpp000066400000000000000000000074721260756663100204770ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _BLASR_HDF_HDFZMWWriter_HPP_ #define _BLASR_HDF_HDFZMWWriter_HPP_ #include "HDFWriterBase.hpp" #include "BufferedHDFArray.hpp" #include "BufferedHDF2DArray.hpp" #include "SMRTSequence.hpp" class HDFBaseCallerWriter; class HDFZMWWriter: public HDFWriterBase { friend class HDFBaseCallerWriter; private: /// ZMW/NumEvent BufferedHDFArray numEventArray_; // ZMW/HoleNumber BufferedHDFArray holeNumberArray_; // ZMW/HoleStatus BufferedHDFArray holeStatusArray_; // ZMW/HoleXY BufferedHDF2DArray holeXYArray_; private: HDFGroup zmwGroup_; HDFGroup & parentGroup_; bool hasHoleXY_; public: /// \name Constructors and Destructors /// \{ HDFZMWWriter(const std::string & filename, HDFGroup & parentGroup, bool hasHoleXY = true); ~HDFZMWWriter() ; /// \} /// \name Public Methods /// \{ /// \note Write info of a SMRTSequence to ZMW, /// (1) add length (UInt) of the sequence to NumEvent, /// (2) add zmw hole number (UInt) of the sequence as a UInt to HoleNumber, /// (3) add hole status (unsigned char) to HoleStatus, /// (4) add hole coordinate xy as (int16_t, int16_t) to HoleXY bool WriteOneZmw(const SMRTSequence & read); /// \returns Whether or not ZMW contains the HoleXY dataset. inline bool HasHoleXY(void) const; /// \note Flushes all data from cache to disc. void Flush(void); /// \note Closes this zmw group as well as child hdf groups. void Close(void); /// \} private: /// \name Private Methods /// \{ /// \note Initialize child hdf groups under ZMW, including /// NumEvent, HoleNumber, HoleStatus, HoleXY /// \reutrns bool, whether or not child hdf groups successfully initialized. bool InitializeChildHDFGroups(void); /// \name Add attributes to HoleNumber, HoleXY, HoleStatus. void _WriteAttributes(void); /// \} }; inline bool HDFZMWWriter::HasHoleXY(void) const {return hasHoleXY_;} #endif blasr_libcpp-master/hdf/build.mk000077700000000000000000000000001260756663100207032makefileustar00rootroot00000000000000blasr_libcpp-master/hdf/makefile000066400000000000000000000015621260756663100172640ustar00rootroot00000000000000all: THISDIR:=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) -include ${CURDIR}/defines.mk include ${THISDIR}/../rules.mk CXXOPTS += -std=c++11 -pedantic INCLUDES += ${LIBPBDATA_INC} ${HDF5_INC} ${PBBAM_INC} ${HTSLIB_INC} ${BOOST_INC} LIBS += ${LIBPBDATA_LIB} ${HDF5_LIB} ${PBBAM_LIB} ${HTSLIB_LIB} ${ZLIB_LIB} LDFLAGS += $(patsubst %,-L%,${LIBS}) LDLIBS += -lpbdata -lhdf5 -lhdf5_cpp all: libpbihdf.a libpbihdf${SH_LIB_EXT} paths := ${THISDIR} sources := $(wildcard ${THISDIR}*.cpp) sources := $(notdir ${sources}) objects := $(sources:.cpp=.o) shared_objects := $(sources:.cpp=.shared.o) dependencies := $(objects:.o=.d) $(shared_objects:.o=.d) vpath %.cpp ${paths} libpbihdf.a: $(objects) $(AR) $(ARFLAGS) $@ $^ libpbihdf${SH_LIB_EXT}: $(shared_objects) clean: rm -f libpbihdf.a libpbihdf.so *.o *.d -include $(dependencies) depend: $(dependencies:.d=.depend) blasr_libcpp-master/makefile000066400000000000000000000013021260756663100165130ustar00rootroot00000000000000SHELL=/bin/bash THISDIR:=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) .PHONY: all libpbdata libhdf libblasr gtest clean cleanall all: ${MAKE} libpbdata ${MAKE} libpbihdf ${MAKE} libblasr all-debug: ${MAKE} CXXFLAGS=-g all all-opt: ${MAKE} CXXFLAGS=-O3 all all-depend: ${MAKE} -C ${THISDIR}/pbdata depend libpbdata: ${MAKE} -C ${THISDIR}/pbdata libconfig.h ${MAKE} -C ${THISDIR}/pbdata all libpbihdf: ${MAKE} -C ${THISDIR}/hdf all libblasr: ${MAKE} -C ${THISDIR}/alignment all gtest: ${MAKE} -C ${THISDIR}/unittest gtest clean: ${MAKE} -C ${THISDIR}/pbdata clean ${MAKE} -C ${THISDIR}/hdf clean ${MAKE} -C ${THISDIR}/alignment clean ${MAKE} -C ${THISDIR}/unittest clean cleanall: clean blasr_libcpp-master/pbdata/000077500000000000000000000000001260756663100162525ustar00rootroot00000000000000blasr_libcpp-master/pbdata/.gitignore000066400000000000000000000000311260756663100202340ustar00rootroot00000000000000/libconfig.h /defines.mk blasr_libcpp-master/pbdata/CCSSequence.cpp000066400000000000000000000020601260756663100210550ustar00rootroot00000000000000#include "CCSSequence.hpp" void CCSSequence::Free() { numPasses = 0; numConsensusBases = 0; SMRTSequence::Free(); unrolledRead.Free(); } int CCSSequence::GetStorageSize() { return SMRTSequence::GetStorageSize() + unrolledRead.GetStorageSize(); } UInt CCSSequence::HoleNumber(void) const { return SMRTSequence::HoleNumber(); } CCSSequence & CCSSequence::HoleNumber(const UInt holeNumber) { SMRTSequence::HoleNumber(holeNumber); unrolledRead.HoleNumber(holeNumber); return *this; } // // In the first iteration, Explode simply pulls the subreads out // that are used in the ccs. Eventually, it will pull out all // high-quality subreads. // void CCSSequence::Explode(std::vector &subreads) { subreads.resize(numPasses); int subreadIndex; for (subreadIndex = 0; subreadIndex < numPasses; subreadIndex++) { subreads[subreadIndex].ReferenceSubstring(this->unrolledRead, passStartBase[subreadIndex], passNumBases[subreadIndex]); subreads[subreadIndex].zmwData = unrolledRead.zmwData; } } blasr_libcpp-master/pbdata/CCSSequence.hpp000066400000000000000000000025471260756663100210740ustar00rootroot00000000000000#ifndef _BLASR_CCS_SEQUENCE_HPP_ #define _BLASR_CCS_SEQUENCE_HPP_ #include "Enumerations.h" #include "SMRTSequence.hpp" #include "VectorUtils.hpp" // // A CCS Sequence is both a SMRTSequence itself, and contains a list of SMRTSequences. // class CCSSequence : public SMRTSequence { public: UInt numPasses; UInt numConsensusBases; std::vector passStartPulse, passNumPulses, passStartBase, passNumBases; std::vector passDirection; std::vector adapterHitBefore, adapterHitAfter, adapterHitConfidence; // // The CCS Sequence originates from a full length read. That read // is stored here for reference later on. The ccs read is stored in // the inherited fields from SMRTSequence so that it may be worked // with as if it were a normal non-ccs sequence. // SMRTSequence unrolledRead; public: inline ~CCSSequence(); void Free(); UInt HoleNumber(void) const; CCSSequence & HoleNumber(const UInt holeNumber); int GetStorageSize(); /// \name /// \{ /// In the first iteration, Explode simply pulls the subreads out /// that are used in the ccs. Eventually, it will pull out all /// high-quality subreads. /// void Explode(std::vector &subreads); /// \} }; inline CCSSequence::~CCSSequence() { CCSSequence::Free(); } #endif // _BLASR_CCS_SEQUENCE_HPP_ blasr_libcpp-master/pbdata/ChangeListID.cpp000066400000000000000000000030551260756663100212170ustar00rootroot00000000000000#include #include "ChangeListID.hpp" using namespace std; ChangeListID::ChangeListID() {} ChangeListID::ChangeListID(string &idStringP) { StoreString(idStringP); } void ChangeListID::StoreString(string &idStringP) { idString = idStringP; stringstream ss(idString); string part; intVer.clear(); while(getline(ss, part, '.')) { intVer.push_back(atoi(part.c_str())); } } int ChangeListID::LessThan(ChangeListID &rhs, int depth) { if (depth == 0) { depth = min(intVer.size(), rhs.intVer.size()); } int i; for (i = 0; i < depth; i++) { if (intVer[i] != rhs.intVer[i]) { return intVer[i] < rhs.intVer[i]; } } return 0; // making it here they are equal } QVScale ChangeListID::DetermineQVScaleFromChangeListID() { ChangeListID phredCL; phredCL.intVer.resize(3); phredCL.intVer[0] = 1; phredCL.intVer[1] = 2; phredCL.intVer[2] = 2; if (LessThan(phredCL)) { return POverOneMinusP; } else { return PHRED; } } // utility method void AppendPerforceChangelist(string perforceVersionString, string &version) { if (perforceVersionString.size() > 12) { version.insert(version.size(), "."); version.insert(version.size(), perforceVersionString, 9, perforceVersionString.size() - 11); } } std::string ChangeListID::GetVersion() { stringstream ss; if (intVer.size() == 1) { ss << intVer[0]; } else if(intVer.size() >= 2) { ss << intVer[0] << "." << intVer[1]; } return ss.str(); } blasr_libcpp-master/pbdata/ChangeListID.hpp000066400000000000000000000015371260756663100212270ustar00rootroot00000000000000#ifndef UTILS_CHANGELIST_ID_H_ #define UTILS_CHANGELIST_ID_H_ #include #include #include #include #ifndef _QVScale_ #define _QVScale_ enum QVScale {POverOneMinusP, // popularized by Illumina PHRED}; #endif class ChangeListID { public: std::string idString; std::vector strVer; std::vector intVer; ChangeListID(); ChangeListID(std::string &idStringP); void StoreString(std::string &idStringP); int LessThan(ChangeListID &rhs, int depth = 0); QVScale DetermineQVScaleFromChangeListID(); /// Get version string from ChangeListID. /// changeListID "2.3.0.144058" --> Version "2.3". /// \returns version string std::string GetVersion(); }; void AppendPerforceChangelist(std::string perforceVersionString, std::string &version); #endif blasr_libcpp-master/pbdata/CommandLineParser.cpp000066400000000000000000000553731260756663100223360ustar00rootroot00000000000000#include "CommandLineParser.hpp" CommandLineParser:: CommandLineParser() { lineLength = 80; numUnnamedOptions = 0; specialVersionFlag = false; } void CommandLineParser:: SetProgramSummary(std::string summaryp) { programSummary = summaryp; } void CommandLineParser:: SetHelp(std::string _help) { helpString = _help; } void CommandLineParser:: SetConciseHelp(std::string _conciseHelp) { conciseHelp = _conciseHelp; } void CommandLineParser:: SetProgramName(std::string namep) { programName = namep; } void CommandLineParser:: SetVersion(std::string versionp) { specialVersionFlag = true; version = versionp; } void CommandLineParser:: SetVerboseHelp(std::string helpp) { verboseHelp = helpp; } void CommandLineParser:: SetExamples(std::string examplesp) { examples = examplesp; } void CommandLineParser:: RegisterPreviousFlagsAsHidden() { VectorIndex i; for (i = 0; i < named.size(); i++ ){ named[i] = false; } numUnnamedOptions = named.size(); } void CommandLineParser:: RegisterVersionFlag(bool *value) { specialVersionFlag = true; RegisterFlagOption("version", value, "Print version number."); } void CommandLineParser:: RegisterFlagOption(std::string option, bool *value, std::string description, bool required) { named.push_back(true); optionList.push_back(option); optionTypeList.push_back(Flag); optionValueIndexList.push_back(boolValues.size()); boolValues.push_back(value); descriptions.push_back(description); optionRequired.push_back(required); optionUsed.push_back(false); } void CommandLineParser:: RegisterIntOption(std::string option, int *value, std::string description, OptionType type, bool required, bool hidden) { named.push_back(true); optionList.push_back(option); optionTypeList.push_back(type); optionValueIndexList.push_back(intValues.size()); intValues.push_back(value); descriptions.push_back(description); optionRequired.push_back(required); optionUsed.push_back(false); } void CommandLineParser:: RegisterFloatOption(std::string option, float *value, std::string description, OptionType type, bool required) { named.push_back(true); optionList.push_back(option); optionTypeList.push_back(type); optionValueIndexList.push_back(floatValues.size()); floatValues.push_back(value); descriptions.push_back(description); optionRequired.push_back(required); optionUsed.push_back(false); } void CommandLineParser:: RegisterStringOption(std::string option, std::string *value, std::string description, bool required) { named.push_back(true); optionList.push_back(option); optionTypeList.push_back(String); optionValueIndexList.push_back(stringValues.size()); stringValues.push_back(value); descriptions.push_back(description); optionRequired.push_back(required); optionUsed.push_back(false); } void CommandLineParser:: RegisterStringListOption(std::string option, std::vector *value, std::string description, bool required) { named.push_back(true); optionList.push_back(option); optionTypeList.push_back(StringList); optionValueIndexList.push_back(stringListValues.size()); stringListValues.push_back(value); descriptions.push_back(description); optionRequired.push_back(required); optionUsed.push_back(false); } void CommandLineParser:: RegisterIntListOption(std::string option, std::vector *value, std::string description, bool required) { named.push_back(true); optionList.push_back(option); optionTypeList.push_back(IntegerList); optionValueIndexList.push_back(intListValues.size()); intListValues.push_back(value); descriptions.push_back(description); optionRequired.push_back(required); optionUsed.push_back(false); } int CommandLineParser:: IsOption(char *str) { int len = strlen(str); if (len == 0) { return 0; } else { return str[0] == '-'; } } int CommandLineParser:: IsInteger(char *str) { int len = strlen(str); int i; if (len == 0) return 0; if (!(str[0] == '-' or (str[0] >= '0' and str[0] <= '9'))) return 0; for (i = 1; i < len; i++) { if (!isdigit(str[i])) return 0; } return 1; } int CommandLineParser:: IsFloat(char *str) { int len = strlen(str); int i; if (len == 0) { return 0; } int nDot = 0; int nDigit = 0; for (i = 0; i < len; i++) { if (isdigit(str[i])) nDigit++; if (str[i] == '.') nDot++; } if (nDot > 1) return 0; if (nDigit == 0) return 0; if (!isdigit(str[0]) and str[0] != '-' and str[0] != '.') return 0; // // passed all checks, ok! // return 1; } int CommandLineParser:: FindOption(char *option) { VectorIndex i; for (i = 0; i < optionList.size(); i++ ){ if (optionList[i].compare(option) == 0) { return i; } } return -1; } void CommandLineParser:: CommandLineToString(int argc, char* argv[], std::string& commandLine) { std::stringstream outstrm; int i; for (i = 0; i< argc; i++) { outstrm << argv[i] << " "; } commandLine = outstrm.str(); } int CommandLineParser:: ParseCommandLine(int argc, char* argv[], bool isProgramNameOnlyAllowed) { std::vector ufv; return ParseCommandLine(argc, argv, ufv, isProgramNameOnlyAllowed); } int CommandLineParser:: ParseCommandLine(int argc, char* argv[], std::vector &unflaggedValues, bool isProgramNameOnlyAllowed) { VectorIndex argi = 1; int curUnnamedOption = 0; ErrorValue ev; // // Check for a help flag. // int i; for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-h") == 0 or (strcmp(argv[i], "--help") == 0 and // Check to see if there is non default argument for help IsOption(argv[i]) and !FindOption(&argv[i][1]))) { PrintUsage(); exit(0); } else if (strcmp(argv[i], "-version") == 0 and specialVersionFlag) { // // Using -version is an early exit since programs will print the // version and then return. // assert(IsOption(argv[i]) and FindOption(&argv[argi][1])); PrintVersion(); exit(0); } } if ( !isProgramNameOnlyAllowed ) { if ( argc == 1 || argc < numUnnamedOptions) { if (conciseHelp != "") { std::cout << conciseHelp; } else { PrintUsage(); } exit(0); } } // // Now parse the (probably optional) options. // while (argi < (VectorIndex) argc){ if (IsOption(argv[argi])) { // // Find which option is specified. // int optionIndex = FindOption(&argv[argi][1]); if (optionIndex == -1) { ev = CLBadOption; } else { argi++; // // Record that this option has been specified. // optionUsed[optionIndex] = true; ev = ParseOption(optionIndex, argi, argc, argv); } if (ev != CLGood) { PrintUsage(); PrintErrorMessage(ev, &argv[argi][1]); exit(1); } } else { unflaggedValues.push_back(argv[argi]); if (curUnnamedOption < numUnnamedOptions) { ev = ParseOption(curUnnamedOption, argi, argc, argv); optionUsed[curUnnamedOption] = true; curUnnamedOption++; } else { ++argi; } } } ev = PrintErrorOnMissingOptions(); if (ev != CLGood) { PrintUsage(); PrintErrorMessage(ev, &argv[argi][1]); exit(1); } return 1; } CommandLineParser::ErrorValue CommandLineParser:: ParseOption(VectorIndex optionIndex, VectorIndex &argi, int argc, char *argv[]) { ErrorValue ev; // // Extract the value type of this option. // int optionValueIndex = optionValueIndexList[optionIndex]; OptionType optionType = optionTypeList[optionIndex]; switch(optionType) { case(Flag): ev = ParseFlag(optionValueIndex, argi, argc, argv); break; case(Integer): ev = ParseInteger(optionValueIndex, argi, argc, argv); break; case(PositiveInteger): ev = ParsePositiveInteger(optionValueIndex, argi, argc, argv); break; case(NonNegativeInteger): ev = ParseNonNegativeInteger(optionValueIndex, argi, argc, argv); break; case(Float): ev = ParseFloat(optionValueIndex, argi, argc, argv); break; case( PositiveFloat): ev = ParsePositiveFloat(optionValueIndex, argi, argc, argv); break; case(NonNegativeFloat): ev = ParseNonNegativeFloat(optionValueIndex, argi, argc, argv); break; case(String): ev = ParseString(optionValueIndex, argi, argc, argv); break; case(StringList): ev = ParseStringList(optionValueIndex, argi, argc, argv); break; case(IntegerList): ev = ParseIntList(optionValueIndex, argi, argc, argv); break; }; if (ev == CLGood) { optionUsed[optionValueIndex] = true; } return ev; } void CommandLineParser:: PrintErrorMessage(ErrorValue ev, char *option) { switch(ev) { case(CLBadOption): std::cout << "ERROR: " << option << " is not a valid option." << std::endl; break; case(CLMissingValue): std::cout << "ERROR: " << option << " requires a value." << std::endl; break; case(CLInvalidInteger): std::cout << "ERROR: " << option << " requires an " << "integer value (...,-2,-1,0,1,2,...)" << std::endl; break; case(CLInvalidPositiveInteger): std::cout << "ERROR: " << option << " requires an integer greater than 0." << std::endl; break; case(CLInvalidNonNegativeInteger): std::cout << "ERROR: " << option << " requires an interger greater " << "than or equal to 0." << std::endl; break; case(CLInvalidFloat): std::cout << "ERROR: " << option << " requires a number as input." << std::endl; break; case(CLInvalidPositiveFloat): std::cout << "ERROR: " << option << " must be greater than 0 (eg. .0001)." << std::endl; break; case (CLInvalidNonNegativeFloat): std::cout << "ERROR: " << option << " must be greater than or equal to 0." << std::endl; break; default: break; }; } CommandLineParser::ErrorValue CommandLineParser:: ParseFlag(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { *boolValues[optionValueIndex] = !(*boolValues[optionValueIndex]); return CLGood; } CommandLineParser::ErrorValue CommandLineParser:: ParseInteger(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { if (argi >= argc) { --argi; return CLMissingValue; } if (IsInteger(argv[argi])) { *intValues[optionValueIndex] = atoi(argv[argi]); ++argi; return CLGood; } else { // reset argi to the flag that was broken. --argi; return CLInvalidInteger; } } CommandLineParser::ErrorValue CommandLineParser:: ParsePositiveInteger(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { int value; if (argi >= argc) { --argi; return CLMissingValue; } if (IsInteger(argv[argi])) { value = atoi(argv[argi]); if (value > 0) { *intValues[optionValueIndex] = value; ++argi; return CLGood; } } // reset argi to the flag that was broken. --argi; return CLInvalidPositiveInteger; } CommandLineParser::ErrorValue CommandLineParser:: ParseNonNegativeInteger(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { int value; if (argi >= argc) { --argi; return CLMissingValue; } if (IsInteger(argv[argi])) { value = atoi(argv[argi]); if (value >= 0) { *intValues[optionValueIndex] = value; ++argi; return CLGood; } } // reset argi to the flag that was broken. --argi; return CLInvalidNonNegativeInteger; } CommandLineParser::ErrorValue CommandLineParser:: ParseFloat(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { if (argi >= argc) { --argi; return CLMissingValue; } if (IsFloat(argv[argi])) { *floatValues[optionValueIndex] = atof(argv[argi]); ++argi; return CLGood; } else { // reset argi to the flag that was broken. --argi; return CLInvalidFloat; } } CommandLineParser::ErrorValue CommandLineParser:: ParsePositiveFloat(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { float value; if (argi >= argc) { --argi; return CLMissingValue; } if (IsFloat(argv[argi])) { value = atof(argv[argi]); if (value > 0) { *floatValues[optionValueIndex] = value; ++argi; return CLGood; } } // reset argi pointer to bad flag --argi; return CLInvalidPositiveFloat; } CommandLineParser::ErrorValue CommandLineParser:: ParseNonNegativeFloat(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { float value; if (argi >= argc) { --argi; return CLMissingValue; } if (IsFloat(argv[argi])) { value = atof(argv[argi]); if (value >= 0) { *floatValues[optionValueIndex] = value; ++argi; return CLGood; } } // reset argi to the flag that was broken. --argi; return CLInvalidNonNegativeFloat; } CommandLineParser::ErrorValue CommandLineParser:: ParseString(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { if (argi >= argc) { --argi; return CLMissingValue; } if (argi < (unsigned int) argc) { *stringValues[optionValueIndex] = argv[argi]; ++argi; return CLGood; } else { // reset argi to the flag that was broken. --argi; return CLMissingValue; } } bool CommandLineParser:: IsValuedOption(OptionType optType) { if (optType == Integer or optType == PositiveInteger or optType == NonNegativeInteger or optType == Float or optType == PositiveFloat or optType == NonNegativeFloat or optType == String or optType == StringList) { return true; } else { return false; } } CommandLineParser::ErrorValue CommandLineParser:: ParseIntList(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { if (argi >= argc) { --argi; return CLMissingValue; } ErrorValue ev; ev = CLMissingValue; while (argi < (unsigned int) argc and !IsOption(argv[argi])) { if (IsInteger(argv[argi])) { intListValues[optionValueIndex]->push_back(atoi(argv[argi])); ++argi; ev = CLGood; } else { ev = CLInvalidInteger; --argi; break; } } if (ev == CLMissingValue) { // reset argi to the flag that was broken. --argi; } return ev; } CommandLineParser::ErrorValue CommandLineParser:: ParseStringList(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]) { if (argi >= argc) { --argi; return CLMissingValue; } ErrorValue ev; ev = CLMissingValue; while (argi < (unsigned int) argc and !IsOption(argv[argi])) { stringListValues[optionValueIndex]->push_back(argv[argi]); ++argi; ev = CLGood; } if (ev == CLMissingValue) { // reset argi to the flag that was broken. --argi; } return ev; } void CommandLineParser:: PrintVersion() { std::cout << programName << "\t" << version << std::endl; } void CommandLineParser:: PrintUsage() { std::ios::fmtflags f = std::cout.flags(); if (helpString != "") { std::cout << helpString << std::endl; return; } else { if (programSummary.size() > 0) { std::cout << programName << " "; PrintIndentedText(std::cout, programSummary, programName.size(), lineLength); std::cout << std::endl; } std::cout << std::endl << "usage: " << programName; VectorIndex i = 0; int maxOptionLength = GetMaxOptionLength(); while (i < optionList.size() and named[i] == false) { std::cout << " "; if (optionRequired[i] == false) { std::cout << "["; } std::cout << optionList[i]; if (optionRequired[i] == false) { std::cout << "]"; } i++; } if (i < optionList.size()) { std::cout << " [options] "; } std::cout << std::endl << std::endl; i = 0; while (i < optionList.size() and named[i] == false) { if (!named[i]) { std::cout << " " << std::setw(maxOptionLength) << std::left << optionList[i] << std::endl; PrintIndentedText(cout, descriptions[i], 15, (int)lineLength, 15); std::cout << std::endl; } i++; } for (; i < optionList.size(); i++) { std::string wholeName = "-"; wholeName += optionList[i]; if (IsValuedOption(optionTypeList[i])) { wholeName += " value "; } std::cout << " " << std::setw(maxOptionLength) << std::left << wholeName << std::endl; PrintIndentedText(cout, descriptions[i], 15, (int)lineLength, 15); std::cout << std::endl; } } if (examples.size() > 0) { std::cout << std::endl << std::endl; PrintIndentedText(cout, examples, 5, (int) lineLength, 5); std::cout << std::endl; } std::cout.flags(f); } int CommandLineParser:: GetNextWordLength(std::string &text, int pos) { int startPos = pos; int textLength = text.size(); while (pos < textLength and (!IsWhitespace(text[pos]))) { pos++; } return pos - startPos; } void CommandLineParser:: PrintIndentedText(std::ostream &out, std::string &text, int allLineIndent, int lineLength, int firstLineIndent) { int textPos = 0; std::vector words; ToWords(text, words); int w = 0; int wordsOnLine; int curLineLength; int curLineIndent = 0; int i; if (firstLineIndent == 0) { curLineIndent = 0; curLineLength = allLineIndent; } else { for (i = 0; i < firstLineIndent; i++) { out << " "; } curLineIndent = allLineIndent; curLineLength = allLineIndent; } std::string indentation; indentation.insert(0, allLineIndent, ' '); int textLength = text.size(); while (textPos < textLength) { // Print some whitespace while (textPos < textLength and curLineLength < lineLength and IsWhitespace(text[textPos])) { out << text[textPos]; // Some extra logic in case if (text[textPos] == '\n') { // an extra line was printed, so skip to the next line. curLineLength = lineLength + 1; // done printing this line. curLineLength = 0; if (textPos < textLength) { out << indentation; curLineLength = allLineIndent; } } else { curLineLength++; if (curLineLength == lineLength) { std::cout << std::endl; curLineLength = 0; if (textPos < textLength) { out << indentation; curLineLength = allLineIndent; } } } textPos++; } // Possibly print a word. if (!IsWhitespace(text[textPos])) { int nextWordLength = GetNextWordLength(text, textPos); if (nextWordLength + curLineLength >= lineLength) { // // The next word runs past the end of this line, // print it on a newline, or print part of it on // this line if the whole word wraps. // if (nextWordLength > lineLength) { // This word will never fit on a line, print part of it. int substringLength = lineLength - curLineLength; for (; curLineLength < lineLength; curLineLength++, textPos++) { out << text[textPos]; } } out << std::endl; out << indentation; curLineLength = allLineIndent; } else { int i; for (i = 0; i < nextWordLength; i++, textPos++, curLineLength++) { out << text[textPos]; } } } } } unsigned int CommandLineParser:: GetMaxOptionLength() { VectorIndex i; VectorIndex maxLength = 0; for (i = 0; i < optionList.size(); i++ ){ if (optionList[i].size() > maxLength) maxLength = optionList[i].size(); } return maxLength; } CommandLineParser::ErrorValue CommandLineParser:: PrintErrorOnMissingOptions() { VectorIndex i; ErrorValue ev = CLGood; for (i = 0; i < optionList.size(); i++ ){ if (optionRequired[i] and !optionUsed[i]) { std::cout << "ERROR, the option " << optionList[i] << " must be specified." << std::endl; ev = CLMissingOption; } } return ev; } blasr_libcpp-master/pbdata/CommandLineParser.hpp000066400000000000000000000120071260756663100223260ustar00rootroot00000000000000#ifndef _BLASR_COMMAND_LINE_PARSER_HPP_ #define _BLASR_COMMAND_LINE_PARSER_HPP_ #include #include #include #include #include #include #include "Types.h" #include #include "StringUtils.hpp" class CommandLineParser { public: enum ErrorValue { CLGood, CLBadOption, CLMissingOption, CLMissingValue, CLInvalidInteger, CLInvalidPositiveInteger, CLInvalidNonNegativeInteger, CLInvalidFloat, CLInvalidPositiveFloat, CLInvalidNonNegativeFloat }; enum OptionType { Flag, Integer, PositiveInteger, // > 0 NonNegativeInteger, // >= 0 IntegerList, Float, PositiveFloat, // > 0 NonNegativeFloat, // >= 0 String, StringList }; std::vector boolValues; std::vector intValues; std::vector floatValues; std::vector stringValues; std::vector *>stringListValues; std::vector *> intListValues; std::vector flagList; std::vector optionList; std::vector optionTypeList; std::vector optionValueIndexList; std::vector descriptions; std::vector optionRequired; std::vector optionUsed; std::vector named; std::string programName; std::string programSummary; std::string conciseHelp; std::string verboseHelp; std::string helpString; std::string examples; std::string version; int lineLength; int numUnnamedOptions; bool specialVersionFlag; CommandLineParser(); void SetProgramSummary(std::string summaryp); void SetHelp(std::string _help); void SetConciseHelp(std::string _conciseHelp) ; void SetProgramName(std::string namep); void SetVersion(std::string versionp); void SetVerboseHelp(std::string helpp); void SetExamples(std::string examplesp); void RegisterPreviousFlagsAsHidden(); void RegisterVersionFlag(bool *value); void RegisterFlagOption(std::string option, bool *value, std::string description, bool required=false); void RegisterIntOption(std::string option, int *value, std::string description, OptionType type, bool required=false, bool hidden=false); void RegisterFloatOption(std::string option, float *value, std::string description, OptionType type, bool required=false); void RegisterStringOption(std::string option, std::string *value, std::string description, bool required=false); void RegisterStringListOption(std::string option, std::vector *value, std::string description, bool required=false); void RegisterIntListOption(std::string option, std::vector *value, std::string description, bool required=false); int IsOption(char *str); int IsInteger(char *str); int IsFloat(char *str); int FindOption(char *option); static void CommandLineToString(int argc, char* argv[], std::string& commandLine); int ParseCommandLine(int argc, char* argv[], bool isProgramNameOnlyAllowed=false); int ParseCommandLine(int argc, char* argv[], std::vector &unflaggedValues, bool isProgramNameOnlyAllowed=false); ErrorValue ParseOption(VectorIndex optionIndex, VectorIndex &argi, int argc, char *argv[]); void PrintErrorMessage(ErrorValue ev, char *option); ErrorValue ParseFlag(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParseInteger(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParsePositiveInteger(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParseNonNegativeInteger(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParseFloat(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParsePositiveFloat(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParseNonNegativeFloat(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParseString(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); bool IsValuedOption(OptionType optType); ErrorValue ParseIntList(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); ErrorValue ParseStringList(VectorIndex optionValueIndex, VectorIndex &argi, int argc, char *argv[]); void PrintVersion(); void PrintUsage(); int GetNextWordLength(std::string &text, int pos); void PrintIndentedText(std::ostream &out, std::string &text, int allLineIndent, int lineLength = 80, int firstLineIndent=0); unsigned int GetMaxOptionLength(); ErrorValue PrintErrorOnMissingOptions(); }; #endif blasr_libcpp-master/pbdata/Compare4BitCompressed.hpp000066400000000000000000000040221260756663100231170ustar00rootroot00000000000000/* * ============================================================================ * * Filename: Compare4BitCompressed.h * * Description: Imported from BLASR algorithm/compare * * Version: 1.0 * Created: 12/19/2013 05:22:46 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #ifndef _BLASR_COMPARE_4BIT_COMPRESSED_HPP_ #define _BLASR_COMPARE_4BIT_COMPRESSED_HPP_ #include "defs.h" template class Compare4BitCompressed { public: const static unsigned char MaskCount = 0xf; static int Compare(TNuc *lhs, TNuc *rhs) { return ThreeBit[*lhs & MaskCount] - ThreeBit[*rhs & MaskCount]; } static int Compare(TNuc *lhs, TNuc *rhs, int length) { int i; int res; i = 0; TNuc *lhsptr; TNuc *rhsptr; lhsptr = lhs; rhsptr = rhs; char *lhsend = lhs + length; res = 0; while (lhsptr != lhsend and res == 0) { res = ThreeBit[*lhsptr & MaskCount] - ThreeBit[*rhsptr & MaskCount]; ++lhsptr; ++rhsptr; } return res; } static int Equal(TNuc a, TNuc b) { return (a & MaskCount) == (b & MaskCount); } static int LessThan(TNuc *a, int aLen, TNuc *b, int bLen) { int minabLen = MIN(aLen, bLen); if (minabLen <= 0) return 0; // int cmpRes; int cmpRes = Compare(a, b, minabLen); if (cmpRes < 0) { return 1; } else { return 0; } } static int LessThanEqual(TNuc *a, int aLen, TNuc *b, int bLen) { int minabLen = MIN(aLen, bLen); if (minabLen <= 0) return 1; int cmpRes = Compare(a, b, minabLen); if (cmpRes <= 0) { return 1; } else { return 0; } } static int Equals(TNuc *a, int aLen, TNuc *b, int bLen) { int minabLen = MIN(aLen, bLen); if (minabLen < 0) return 0; if (minabLen == 0) return 1; int cmpRes = Compare(a, b, minabLen); if (cmpRes == 0 and aLen <= bLen) { return 1; } else { return 0; } } }; #endif blasr_libcpp-master/pbdata/CompressedDNASequence.hpp000066400000000000000000000040601260756663100231030ustar00rootroot00000000000000#ifndef _BLASR_COMPRESSED_DNA_SEQUENCE_HPP_ #define _BLASR_COMPRESSED_DNA_SEQUENCE_HPP_ #include "DNASequence.hpp" #include "FASTASequence.hpp" #include "defs.h" #include #include "qvs/QualityValue.hpp" #include "Compare4BitCompressed.hpp" typedef unsigned char CompressedNucleotide; class CompressedDNASequence: public DNASequence { static const unsigned char MaskCount = 0xf; static const unsigned char MaskNuc = 0xf0; static const unsigned char ShiftCount = 4; public: char *title; int titleLength; // // This is just a placeholder for now. // No extra data here, just the ability to decompress. Right now // the utilities for the compressed dna sequences // are in CompressedSeqUtils.h, which could move here later. // QualityValue *qual; CompressedDNASequence() { const char t[] = "Compressed sequence\0"; titleLength = strlen(t); title = ProtectedNew(titleLength+1); strcpy(title, t); title[titleLength] = '\0'; } void MakeRC(CompressedDNASequence &rc) { rc.Allocate(length); DNALength i; for (i = 0; i < length; i++) { rc.seq[length - i - 1] = ReverseComplementNuc[ThreeBit[seq[i] & MaskCount]]; rc.seq[length - i - 1] += (seq[i] & MaskNuc); } memcpy(rc.title, title, titleLength); rc.titleLength = titleLength; } Nucleotide operator[](DNALength i) { return GetNuc(i); } Nucleotide GetNuc(DNALength i) { return (seq[i] & MaskCount); } unsigned char GetCount(DNALength i) { return seq[i] >> ShiftCount; } char *GetName() { return (char*) title; } void Copy(FASTASequence &rhs) { seq = ProtectedNew(rhs.length); memcpy(seq, rhs.seq, rhs.length); length = rhs.length; if (title != NULL) { delete[] title; } title = ProtectedNew(rhs.titleLength+1); memcpy(title, rhs.title, rhs.titleLength); titleLength = rhs.titleLength; title[titleLength] = '\0'; } float GetAverageQuality() { return 0.0; } void SortHomopolymerQualities() { cout << "qualities are not implemented for compressed sequences." << endl; assert(0); } }; #endif blasr_libcpp-master/pbdata/CompressedSequence.hpp000066400000000000000000000044731260756663100225700ustar00rootroot00000000000000#ifndef _BLASR_COMPRESSED_SEQUENCE_HPP_ #define _BLASR_COMPRESSED_SEQUENCE_HPP_ #include #include #include #include #include #include #include "utils.hpp" #include "Types.h" #include "Enumerations.h" #include "NucConversion.hpp" #include "DNASequence.hpp" #include "qvs/QualityValue.hpp" #include "reads/ZMWGroupEntry.hpp" #include "FASTASequence.hpp" #include "ReverseCompressIndex.hpp" typedef unsigned char CompressedNucleotide; template class CompressedSequence : public FASTASequence { private: int hasIndex; int hasTitle; ReverseCompressIndex index; static const unsigned char MaskCount = 0xf; static const unsigned char MaskNuc = 0xf0; static const unsigned char ShiftCount = 4; public: // // This is just a placeholder for now. // No extra data here, just the ability to decompress. Right now // the utilities for the compressed dna sequences // are in CompressedSeqUtils.h, which could move here later. // QualityValue *qual; void CopyConfiguration(CompressedSequence &rhs); void ShallowCopy(CompressedSequence &rhs); void MakeRC(CompressedSequence &rc); Nucleotide operator[](DNALength i); Nucleotide GetNuc(DNALength i); unsigned char GetCount(DNALength i); char *GetName(); void Copy(FASTASequence &rhs); float GetAverageQuality(); void SortHomopolymerQualities(); CompressedSequence(); ~CompressedSequence(); void Free(); void SetHasTitle(); void SetHasIndex(); void Write(std::string outFileName); void Read(std::string inFileName); int BuildFourBitReverseIndex(int binSize); int BuildReverseIndex(int maxRun, int binSize); long Lookup4BitCompressedSequencePos(int cpPos); int LookupSequencePos(int cpPos); char GetCount(unsigned char ch); DNALength FourBitCompressHomopolymers(); static int Only4BitACTG(CompressedNucleotide *seq, int seqLength); int Only4BitACTG(); void RemoveCompressionCounts(); DNALength FourBitDecompressHomopolymers(int start, int end, T_Sequence &decompSeq); DNALength CondenseHomopolymers(); }; #include "CompressedSequenceImpl.hpp" #endif // _BLASR_COMPRESSED_SEQUENCE_HPP_ blasr_libcpp-master/pbdata/CompressedSequenceImpl.hpp000066400000000000000000000222451260756663100234070ustar00rootroot00000000000000#ifndef _BLASR_COMPRESSED_SEQUENCES_IMPL_HPP_ #define _BLASR_COMPRESSED_SEQUENCES_IMPL_HPP_ #include "utils.hpp" template void CompressedSequence::CopyConfiguration(CompressedSequence &rhs) { hasIndex = rhs.hasIndex; hasTitle = rhs.hasTitle; } template void CompressedSequence::ShallowCopy(CompressedSequence &rhs) { // // Copy over non sequence information index.ShallowCopy(rhs.index); CopyConfiguration(rhs); // Copy sequence information ((FASTASequence*)this)->ShallowCopy((FASTASequence&)rhs); } template void CompressedSequence::MakeRC(CompressedSequence &rc) { rc.Free(); //Free rc.seq and rc.title before allocate. rc.Allocate(length); DNALength i; for (i = 0; i < length; i++) { rc.seq[length - i - 1] = ReverseComplementNuc[ThreeBit[seq[i] & MaskCount]]; rc.seq[length - i - 1] += (seq[i] & MaskNuc); } rc.CopyTitle(title, titleLength); } template Nucleotide CompressedSequence::operator[](DNALength i) { return GetNuc(i); } template Nucleotide CompressedSequence::GetNuc(DNALength i) { return (seq[i] & MaskCount); } template unsigned char CompressedSequence::GetCount(DNALength i) { return seq[i] >> ShiftCount; } template char* CompressedSequence::GetName() { return (char*) title; } template void CompressedSequence::Copy(FASTASequence &rhs) { seq = ProtectedNew(rhs.length); memcpy(seq, rhs.seq, rhs.length); length = rhs.length; if (title != NULL) { delete[] title; } title = ProtectedNew(rhs.titleLength+1); memcpy(title, rhs.title, rhs.titleLength); titleLength = rhs.titleLength; title[titleLength] = '\0'; } template float CompressedSequence::GetAverageQuality() { return 0.0; } template void CompressedSequence::SortHomopolymerQualities() { std::cout << "qualities are not implemented for compressed sequences." << std::endl; } template CompressedSequence::CompressedSequence() { hasIndex = 0; hasTitle = 0; qual = NULL; FASTASequence(); } template CompressedSequence::~CompressedSequence() { CompressedSequence::Free(); } template void CompressedSequence::Free() { if (hasIndex) { index.Free(); } if(qual) {delete [] qual; qual = NULL;} FASTASequence::Free(); hasIndex = 0; hasTitle = 0; } template void CompressedSequence::SetHasTitle() { hasTitle = 1; } template void CompressedSequence::SetHasIndex() { hasIndex = 1; } template void CompressedSequence::Write(std::string outFileName) { std::ofstream out; CrucialOpen(outFileName,out, std::ios::binary | std::ios::in); out.write((char*) &hasTitle, sizeof(int)); out.write((char*) &hasIndex, sizeof(int)); if (hasTitle) { out.write((char*)&titleLength, sizeof(int)); out.write((char*)title, titleLength); } out.write((char*) &length, sizeof(int)); out.write((char*) seq, sizeof(char) * length); if (hasIndex) { index.Write(out); } out.close(); } template void CompressedSequence::Read(std::string inFileName) { Free(); //Free before reusing this object. std::ifstream in; CrucialOpen(inFileName, in, std::ios::binary | std::ios::in); // step 1, read in the options. in.read((char*) &hasTitle, sizeof(int)); in.read((char*) &hasIndex, sizeof(int)); if (hasTitle) { int inTitleLength; in.read((char*) &inTitleLength, sizeof(int)); char * inTitle = ProtectedNew(inTitleLength+1); in.read((char*) inTitle, inTitleLength); inTitle[titleLength] = '\0'; CopyTitle(inTitle, inTitleLength); delete [] inTitle; } in.read((char*) &length, sizeof(DNALength)); seq = ProtectedNew(length); in.read((char*) seq, length * sizeof(Nucleotide)); if (hasIndex) { index.Read(in); } deleteOnExit = true; } template int CompressedSequence::BuildFourBitReverseIndex(int binSize) { BuildReverseIndex(15, binSize); } template int CompressedSequence::BuildReverseIndex(int maxRun, int binSize) { hasIndex = 1; DNALength i; DNALength hpi; // // Phase 1. Count the number of nucleotide transitions-1 // hpi = 0; for (i = 0; i < length; i++) { // if (hpi % binSize == 0 ){ // index.push_back(i); // } int run = 1; while (i < length - 1 and ThreeBit[seq[i]] == ThreeBit[seq[i+1]] and (run == 0 or run < maxRun)) {i++, run++;}; hpi++; } // // Phase 2. Store the index. // index.Free(); index.indexLength = hpi/index.binSize + 1; index.index = ProtectedNew(index.indexLength); hpi = 0; int ii = 0; for (i = 0; i < length; i++) { if (hpi % index.binSize == 0 ) { assert(ii < index.indexLength); index.index[ii] = i; ++ii; } int run = 1; while (i < length - 1 and ThreeBit[seq[i]] == ThreeBit[seq[i+1]] and (run == 0 or run < maxRun)) {i++, run++;}; hpi++; } return index.size(); } template long CompressedSequence::Lookup4BitCompressedSequencePos(int cpPos) { int bin = cpPos / index.binSize; int origPos = index.index[bin]; int cpBinPos = bin * index.binSize; int cp; for (cp = cpBinPos; cp < cpPos; cp++ ){ origPos += GetCount(seq[cp]); } return origPos; } template int CompressedSequence::LookupSequencePos(int hpPos) { int origPos = index.index[hpPos % index.binSize]; int hpi; for (hpi = (hpPos / index.binSize) * index.binSize; hpi < hpPos; hpi++, origPos++ ) { // // advance orig across all homopolymer stretches. // while (origPos < length - 1 and seq[origPos] == seq[origPos+1]) ++origPos; } return origPos; } template char CompressedSequence::GetCount(unsigned char ch) { return (ch >> 4); } template DNALength CompressedSequence::FourBitCompressHomopolymers() { VectorIndex i, c; unsigned char count = 0; for (i =0, c = 0; i < length; c++, i++) { count = 1; while (count < 15 and i < length - 1 and ThreeBit[seq[i]] == ThreeBit[seq[i+1]]) { i++; count++; } // store nuc into the lower 4 bits seq[c] = ThreeBit[seq[i]]; // store count into the upper 4 bits. count = count << 4; seq[c] = seq[c] | count; } length = c; return length; } template int CompressedSequence::Only4BitACTG(CompressedNucleotide *seq, int seqLength) { int i; for (i = 0; i < seqLength; i++ ){ if (ThreeBit[seq[i] & MaskCount] > 3) { return 0; } } return 1; } template int CompressedSequence::Only4BitACTG() { return Only4BitACTG(seq, length); } template void CompressedSequence::RemoveCompressionCounts() { DNALength i; unsigned char mask =0xf; for (i = 0; i< length; i++) { seq[i] = seq[i] & mask; } } template DNALength CompressedSequence::FourBitDecompressHomopolymers(int start, int end, T_Sequence &decompSeq) { decompSeq.Free(); // Free before decomp; // // first compute the length of the decoded // DNALength i; decompSeq.length = 0; for (i = start; i < end; i++ ){ unsigned char count; count = (unsigned char) seq[i]; count >>= 4; decompSeq.length += count; } decompSeq.seq = ProtectedNew(decompSeq.length); // // Now store the actual decompressed seq. // int d = 0; unsigned char mask = 0xf; for (i = start; i < end; i++ ){ unsigned char count; count = (unsigned char) seq[i]; count >>= 4; int j; for (j = 0; j < count; j++ ){ decompSeq.seq[d] = FourBitToAscii[(seq[i] & mask)]; d++; } } decompSeq.bitsPerNuc = 4; decompSeq.deleteOnExit = true; return decompSeq.length; } template DNALength CompressedSequence::CondenseHomopolymers() { VectorIndex i, c; for (i =0, c = 0; i < length; c++, i++) { while (i < length - 1 and ThreeBit[seq[i]] == ThreeBit[seq[i+1]]) i++; seq[c] = seq[i]; } length = c; return length; } #endif blasr_libcpp-master/pbdata/DNASequence.cpp000066400000000000000000000253161260756663100210600ustar00rootroot00000000000000#include #include #include "Types.h" #include "DNASequence.hpp" DNALength DNASequence::size() { return length; } void DNASequence::TakeOwnership(DNASequence &rhs) { CheckBeforeCopyOrReference(rhs); // Free this DNASequence before take owner ship from rhs. DNASequence::Free(); seq = rhs.seq; length = rhs.length; deleteOnExit = rhs.deleteOnExit; rhs.deleteOnExit = false; } void DNASequence::Append(const DNASequence &rhs, DNALength appendPos) { assert(deleteOnExit); // must have control over seq. // // Simply append rhs to this seuqence, unless appendPos is nonzero // in which case rhs is inserted at attendPos, overwriting this // sequence from appendPos to the end. // Nucleotide *newSeq; // // Handle the two cases (appendPos == 0 and appendPos > 0) // separately in order to handle memory deallocation correctly. // if (appendPos == 0) { DNALength newSeqLength = length + rhs.length; newSeq = ProtectedNew(newSeqLength); memcpy(newSeq, seq, length); memcpy(&newSeq[length], rhs.seq, rhs.length); if (length != 0) { delete[] seq; } seq = newSeq; length = newSeqLength; } else { if (appendPos + rhs.length < length) { memcpy(&seq[appendPos], rhs.seq, rhs.length); length = appendPos + rhs.length; } else { DNALength lengthCopy = length; length = appendPos; DNALength newSeqLength; newSeqLength = length + rhs.length; newSeq = ProtectedNew(newSeqLength); memcpy(newSeq, seq, length); memcpy(&newSeq[length], rhs.seq, rhs.length); if (deleteOnExit and lengthCopy != 0) { delete[] seq; } seq = newSeq; length = newSeqLength; } } deleteOnExit = true; } // Copy FROM rhs to this DNASequence. DNASequence& DNASequence::Copy(const DNASequence &rhs, DNALength rhsPos, DNALength rhsLength) { CheckBeforeCopyOrReference(rhs); // Free this DNASequence before copying from rhs DNASequence::Free(); // // When initializing a vector of DNASequence's, the copy // constructor will initialze a list and call this // function with a zero-length DNASequence as the rhs to // initialize every element in the vector The check // below will fail on zero-length sequences, so add a boundary // condition check before that to allow the copy-constructor to // work. // if (rhs.length == 0) { seq = NULL; length = 0; deleteOnExit = true; return *this; } // // Silently ignoring this case could lead to problems later on, // catastrophically assert here if the input is not valid. // In case rhsLength + rhsPos > ULONG_MAX (4294967295), check // both rhsLength and rhsPos, fix bug 21794 // if (not (rhsLength <= rhs.length && rhsPos <= rhs.length + 1 && rhsLength + rhsPos <= rhs.length + 2 )) { std::cout << "ERROR. The subsequence to copy is out of bounds." << std::endl << " Failed to copy a subsequence starting at " << rhsPos << std::endl << " with length "<< rhsLength << " from a sequence of length " << rhs.length << "." << std::endl; exit(1); } if (rhsLength == 0) { rhsLength = rhs.length - rhsPos; } if (rhsLength == 0) { seq = NULL; } else { seq = ProtectedNew(rhsLength); memcpy(seq, &rhs.seq[rhsPos], rhsLength); } length = rhsLength; deleteOnExit = true; return *this; } DNASequence& DNASequence::Copy(const std::string &rhsSeq) { // Free this DNASequence before copying from rhs DNASequence::Allocate(static_cast(rhsSeq.size())); memcpy(seq, rhsSeq.c_str(), length); return *this; } DNASequence & DNASequence::operator=(const std::string & rhsSeq) { return DNASequence::Copy(rhsSeq); } void DNASequence::ShallowCopy(const DNASequence &rhs) { seq = rhs.seq; length = rhs.length; deleteOnExit = false; } int DNASequence::GetStorageSize() const { return (length * sizeof(Nucleotide)); } DNASequence &DNASequence::operator=(const DNASequence &rhs){ DNASequence::Copy(rhs); return *this; } // // synonym for printseq // void DNASequence::Print(std::ostream &out, int lineLength) const { PrintSeq(out, lineLength); } void DNASequence::PrintSeq(std::ostream &out, int lineLength) const { if (lineLength == 0) { std::string line; line.assign((char*)seq, length); out << line; } else { // // Make sure this isn't assert(lineLength > 0); DNALength curPos = 0; int curLineLength = lineLength; while (curPos < length) { if (curPos + curLineLength > length) { curLineLength = length - curPos; } std::string line; line.assign((char*) &seq[curPos], curLineLength); out << line << std::endl; curPos += curLineLength; } } } void DNASequence::Allocate(DNALength plength) { DNASequence::Free(); seq = ProtectedNew (plength); length = plength; deleteOnExit = true; } void DNASequence::ReferenceSubstring(const DNASequence &rhs, DNALength pos, DNALength substrLength) { CheckBeforeCopyOrReference(rhs); // Free this DNASequence before referencing rhs. DNASequence::Free(); // // This makes a reference therefore it should not be deleted. // assert(pos >= 0 && pos <= rhs.length && substrLength >= 0 && substrLength <= rhs.length); if (substrLength == 0) { substrLength = rhs.length - pos; } assert(pos + substrLength <= rhs.length); seq = &rhs.seq[pos]; length = substrLength; deleteOnExit = false; } DNALength DNASequence::MakeRCCoordinate(DNALength forPos ) { return length - forPos - 1; } // Create a reverse complement DNAsequence of this DNASequence and assign to rc. void DNASequence::MakeRC(DNASequence &rc, DNALength pos, DNALength rcLength) { if (rcLength == 0) { rcLength = length - pos; } ((DNASequence&)rc).Allocate(rcLength); DNALength i; for (i = 0; i < rcLength; i++) { rc.seq[rcLength - i - 1] = ReverseComplementNuc[seq[i+pos]]; } rc.length = rcLength; rc.deleteOnExit = true; } void DNASequence::ToTwoBit() { DNALength i; for (i = 0; i < length; i++) { seq[i] = TwoBit[seq[i]]; } bitsPerNuc = 2; } void DNASequence::ToFourBit() { DNALength i; if (bitsPerNuc != 4) for (i = 0; i < length; i++) { seq[i] = FourBit[seq[i]]; } bitsPerNuc = 4; } void DNASequence::ConvertThreeBitToAscii() { DNALength i; for (i = 0; i < length; i++ ){ seq[i] = ThreeBitToAscii[seq[i]]; } } void DNASequence::ToAscii() { DNALength i; if (bitsPerNuc != 8) { for (i = 0; i < length; i++ ){ seq[i] = FourBitToAscii[seq[i]]; } bitsPerNuc = 8; } } // Copy rhs[start:start+plength] to this DNASequence. void DNASequence::Assign(DNASequence &ref, DNALength start, DNALength plength) { CheckBeforeCopyOrReference(ref); // Free this DNASequence before assigning anything DNASequence::Free(); if (plength) { length = plength; seq = ProtectedNew (length); memcpy(seq, &ref.seq[start], length); } else if (start) { length = ref.length - start; seq = ProtectedNew (length); memcpy(seq, &ref.seq[start], length); } else { ((DNASequence*)this)->Copy(ref); } deleteOnExit = true; } void DNASequence::ToLower() { DNALength i; for (i = 0; i < length; i++) { seq[i] = AllToLower[seq[i]]; } } void DNASequence::ToUpper() { DNALength i; for (i = 0; i < length; i++) { seq[i] = AllToUpper[seq[i]]; } } void DNASequence::Concatenate(const Nucleotide *moreSeq, DNALength moreSeqLength) { DNALength prevLength = length; length += moreSeqLength; Nucleotide *prev = seq; seq = ProtectedNew (length); if (prev != NULL) { memcpy(seq, prev, prevLength); delete[] prev; } memcpy((Nucleotide*) &seq[prevLength], moreSeq, moreSeqLength); deleteOnExit = true; } std::string DNASequence::GetTitle() const { return std::string(""); } void DNASequence::Concatenate(const Nucleotide* moreSeq) { DNALength moreSeqLength = strlen((char*) moreSeq); Concatenate(moreSeq, moreSeqLength); } void DNASequence::Concatenate(DNASequence &seq) { Concatenate(seq.seq, seq.length); } int DNASequence::Compare(DNALength pos, DNASequence &rhs, DNALength rhsPos, DNALength length) { return memcmp(&seq[pos], &rhs.seq[rhsPos], length); } int DNASequence::LessThanEqual(DNALength pos, DNASequence &rhs, DNALength rhsPos, DNALength length) { int res = Compare(pos, rhs, rhsPos, length); if (res <= 0) return 1; else return 0; } int DNASequence::Equals(DNASequence &rhs, DNALength rhsPos, DNALength length, DNALength pos) { int res = Compare(pos, rhs, rhsPos, length); return res == 0; } int DNASequence::LessThan(DNALength pos, DNASequence &rhs, DNALength rhsPos, DNALength length) { int res= Compare(pos, rhs, rhsPos, length); return (res < 0); } void DNASequence::CleanupASCII() { DNALength i; for (i = 0; i < length; i++ ){ if (ThreeBit[seq[i]] == 255) { seq[i] = 'N'; } } } Nucleotide DNASequence::GetNuc(DNALength i) const { return seq[i]; } DNALength DNASequence::GetRepeatContent() const { DNALength i; DNALength nRepeat = 0; for (i =0 ; i < length;i++) { if (tolower(seq[i]) == seq[i]) { nRepeat++;} } return nRepeat; } void DNASequence::CleanupOnFree() { deleteOnExit = true; } void DNASequence::Free() { if (deleteOnExit == true) { // if has control, delete seq // Otherwise, seq in memory is controlled by another object, // and will be deleted later. if (seq != NULL) { delete[] seq; } } // Reset seq, length and deleteOnExit seq = NULL; length = 0; deleteOnExit = false; } void DNASequence::Resize(DNALength newLength) { DNASequence::Free(); seq = ProtectedNew(newLength); length = newLength; deleteOnExit = true; } DNALength DNASequence::GetSeqStorage() const{ return length; } #ifdef USE_PBBAM DNASequence & DNASequence::Copy(const PacBio::BAM::BamRecord & record) { return DNASequence::Copy(record.Sequence()); } #endif blasr_libcpp-master/pbdata/DNASequence.hpp000066400000000000000000000110551260756663100210600ustar00rootroot00000000000000#ifndef _BLASR_DNA_SEQUENCE_HPP_ #define _BLASR_DNA_SEQUENCE_HPP_ #include #include #include #include #include #include "Types.h" #include "NucConversion.hpp" #include "utils.hpp" #include "libconfig.h" #ifdef USE_PBBAM #include "pbbam/BamRecord.h" #endif class DNASequence { public: DNALength length; Nucleotide *seq; int bitsPerNuc; bool deleteOnExit; inline DNASequence(); inline ~DNASequence(); //--- functions ---// DNALength size(); inline void CheckBeforeCopyOrReference(const DNASequence & rhs, std::string seqType = "DNASequence"); void TakeOwnership(DNASequence &rhs); void Append(const DNASequence &rhs, DNALength appendPos=0); DNASequence &Copy(const DNASequence &rhs, DNALength rhsPos=0, DNALength rhsLength=0); void ShallowCopy(const DNASequence &rhs); DNASequence & Copy(const std::string & rhs); int GetStorageSize() const; DNASequence &operator=(const DNASequence &rhs); DNASequence &operator=(const std::string &rhs); void Print(std::ostream &out, int lineLength = 50) const; void PrintSeq(std::ostream &out, int lineLength = 50) const; void Allocate(DNALength plength); void ReferenceSubstring(const DNASequence &rhs, DNALength pos=0, DNALength substrLength=0); DNALength MakeRCCoordinate(DNALength forPos ); inline void CopyAsRC(DNASequence &rc, DNALength pos=0, DNALength rcLength =0); void MakeRC(DNASequence &rc, DNALength pos=0, DNALength rcLength=0); void ToTwoBit(); inline void ToThreeBit(); void ToFourBit(); void ConvertThreeBitToAscii(); void ToAscii(); void Assign(DNASequence &ref, DNALength start=0, DNALength plength=0); void ToLower(); void ToUpper(); void Concatenate(const Nucleotide *moreSeq, DNALength moreSeqLength); std::string GetTitle() const; void Concatenate(const Nucleotide* moreSeq); void Concatenate(DNASequence &seq); int Compare(DNALength pos, DNASequence &rhs, DNALength rhsPos, DNALength length); int LessThanEqual(DNALength pos, DNASequence &rhs, DNALength rhsPos, DNALength length); int Equals(DNASequence &rhs, DNALength rhsPos, DNALength length, DNALength pos=0 ); int LessThan(DNALength pos, DNASequence &rhs, DNALength rhsPos, DNALength length); void CleanupASCII(); Nucleotide operator[](int i) { return seq[i]; } Nucleotide GetNuc(DNALength i) const; DNALength GetRepeatContent() const; void CleanupOnFree(); virtual void Free(); void Resize(DNALength newLength); DNALength GetSeqStorage() const; #ifdef USE_PBBAM /// Copies a BamRecord as a DNASequence. DNASequence & Copy(const PacBio::BAM::BamRecord & record); #endif }; inline DNASequence::DNASequence() { seq = NULL; length = 0; bitsPerNuc = 8; deleteOnExit = false; } inline DNASequence::~DNASequence() { DNASequence::Free(); } // Sanity check: // If this DNASequence and rhs are pointing to the same seq // in memory, make sure this DNASequence's deleteOnExit is false. // (otherwise, seq in memory will be deleted before being copied) inline void DNASequence::CheckBeforeCopyOrReference(const DNASequence & rhs, std::string seqType) { if (seq == rhs.seq and seq != NULL and deleteOnExit) { std::cout << "ERROR, trying to copying a " << seqType << " to itself." << std::endl; exit(1); } } inline void DNASequence::ToThreeBit() { DNALength i; if (bitsPerNuc != 3) for (i = 0; i < length; i++) { seq[i] = ThreeBit[seq[i]]; } bitsPerNuc = 3; } inline void DNASequence::CopyAsRC(DNASequence &rc, DNALength pos, DNALength rcLength) { // Free rc before copying any data to rc. ((DNASequence&)rc).Free(); // // Different way of accounting for position. The position is on // the rc strand, not the forward strand. // if (rcLength == 0) { rcLength = length - pos; } DNALength rcStart = length - (pos + rcLength); ((DNASequence&)rc).Resize(rcLength); DNALength i; for (i = 0; i < rcLength; i++) { rc.seq[i] = ReverseComplementNuc[seq[rcStart - 1 + (rcLength - i)]]; } // The reverse complement controls its own memory now. rc.deleteOnExit = true; } template DNALength ResizeSequence(T &dnaseq, DNALength newLength) { assert(newLength > 0); ((T&)dnaseq).Free(); dnaseq.seq = ProtectedNew(newLength); dnaseq.length = newLength; dnaseq.deleteOnExit = true; return newLength; } #endif // _BLASR_DNA_SEQUENCE_HPP_ blasr_libcpp-master/pbdata/Enumerations.h000066400000000000000000000050631260756663100211000ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #ifndef _BLASR_ENUMERATIONS_HPP_ #define _BLASR_ENUMERATIONS_HPP_ typedef enum T_FileType {Fasta, Fastq, HDFPulse, Fourbit, HDFBase, HDFCCS, HDFCCSONLY, PBBAM, None } FileType; typedef enum T_Strand {Forward, Reverse} Strand; typedef enum T_PlatformType { Astro=1, Springfield=2, NoPlatform } PlatformId; typedef enum T_RegionType { Adapter, Insert, HQRegion, BarCode, UnknownRegionType } RegionType; typedef enum T_PulseMetricType { QualityValueMetric,ClassifierQVMetric,StartTimeMetric,PulseWidthMetric,WidthInFramesMetric, pkmidMetric,IPDMetric,LightMetric, PreBaseFramesMetric } PulseMetricType; typedef enum T_AlignMode { NoAlignMode, Fullread, Subread, CCSDeNovo, CCSFullPass, CCSAllPass, ZmwSubreads } AlignMode; #endif blasr_libcpp-master/pbdata/FASTAReader.cpp000066400000000000000000000251471260756663100207500ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "sys/mman.h" #include "sys/fcntl.h" #include "Enumerations.h" #include "NucConversion.hpp" #include "FASTASequence.hpp" #include "FASTAReader.hpp" using namespace std; void FASTAReader::SetFileSize() { // // Seek operation returns the amount seeked forwared in bytes. // This is the size used to map (which is rounded up by the // system). // fileSize = lseek(fileDes, 0, SEEK_END); lseek(fileDes, 0, SEEK_SET); } void FASTAReader::Init() { padding = 0; fileDes = -1; fileSize = 0; endOfReadDelim = '>'; readStartDelim = '>'; doToUpper = false; convMat = PreserveCase; computeMD5 = false; filePtr = NULL; curPos = 0; } FASTAReader::FASTAReader() { Init(); } FASTAReader::FASTAReader(string &fileName) { Init(); // initialze defaults. Init(fileName); // open file. padding = 0; endOfReadDelim = '>'; readStartDelim = '>'; } void FASTAReader::SetSpacePadding(int _padding) { assert(_padding >= 0); padding = _padding; } void FASTAReader::SetToUpper() { doToUpper = true; convMat = AllToUpper; } // // Synonym for Init() for consistency. // int FASTAReader::Initialize(string &seqInName) { return Init(seqInName); } int FASTAReader::Init(string &seqInName, int passive) { fileDes = open(seqInName.c_str(), O_RDONLY); padding = 0; if (fileDes == -1) { if (passive) { return 0; } else { cout << "Could not open FASTA file " << seqInName << endl; exit(1); } } SetFileSize(); filePtr = (char*) mmap(0, fileSize, PROT_READ, MAP_PRIVATE, fileDes, 0); if (filePtr == MAP_FAILED) { cout << "ERROR, Fail to load FASTA file " << seqInName << " to virtual memory." << endl; exit(1); } curPos = 0; return 1; } void FASTAReader::AdvanceToTitleStart(long &p, char delim) { while (p < fileSize and filePtr[p] != delim) { p++; } } void FASTAReader::CheckValidTitleStart(long &p, char delim) { if (p >= fileSize or filePtr[p] != delim) { cout << "ERROR, FASTA entry must begin with \"" << delim << "\"" << endl; exit(1); } } long FASTAReader::ReadAllSequencesIntoOne(FASTASequence &seq, SequenceIndexDatabase *seqDBPtr) { seq.Free(); long p = curPos; AdvanceToTitleStart(p); CheckValidTitleStart(p); ReadTitle(p, seq); if (seq.title == NULL) { cout << "ERROR, sequence must have a nonempty title." << endl; exit(1); } if (seqDBPtr != NULL) { seqDBPtr->growableName.push_back(seq.title); } long seqLength; seqLength = fileSize - p; long memorySize = seqLength+padding+1; long a = memorySize; if (memorySize > UINT_MAX) { cout << "ERROR! Reading fasta files greater than 4Gbytes is not supported." << endl; exit(1); } seq.Resize(memorySize); long i; i = 0L; for (; p < fileSize; p++, i++ ) { seq.seq[i] = filePtr[p]; } i = p = 0; while (p < seqLength) { // // If this is the beginning of another read, add an 'N' // to delineate spaces between reads. // while (p < seqLength and (seq.seq[p] == ' ' or seq.seq[p] == '\n' or seq.seq[p] == '\t' or seq.seq[p] == '\r')) { p++; } if (p < seqLength and seq.seq[p] == '>') { seq.seq[i] = 'N'; long titleStartPos = p+1; i++; while (p < seqLength and seq.seq[p] != '\n') p++; if (seqDBPtr != NULL and p < seqLength) { string title; long tp; for (tp = titleStartPos; tp < p; tp++) { title.push_back(seq.seq[tp]); } seqDBPtr->growableName.push_back(title); seqDBPtr->growableSeqStartPos.push_back(i); int nSeq = seqDBPtr->growableSeqStartPos.size(); if (nSeq > 1 and computeMD5) { string md5Str; MakeMD5((const char*) &seq.seq[seqDBPtr->growableSeqStartPos[nSeq-2]], seqDBPtr->growableSeqStartPos[nSeq-1] - seqDBPtr->growableSeqStartPos[nSeq-2] - 1, md5Str); seqDBPtr->md5.push_back(md5Str); } } } else if (p < seqLength) { // Otherwise, p may be at whitespace // advance past that as well. seq.seq[i] = convMat[seq.seq[p]]; i++; p++; } } if (i > UINT_MAX) { cout << "ERROR! Sequences greater than 4Gbase are not supported." << endl; exit(1); } // // Append an 'N' at the end of the last sequence for consistency // between different orderings of reference input. // seq.seq[i] = 'N'; i++; seq.length = i; // fill padding. for (; i < memorySize; i++ ){ seq.seq[i] = 0; } seq.deleteOnExit = true; if (seqDBPtr != NULL) { seqDBPtr->growableSeqStartPos.push_back(seq.length); int nSeq = seqDBPtr->growableSeqStartPos.size(); if (nSeq > 1 and computeMD5) { string md5Str; MakeMD5((const char*) &seq.seq[seqDBPtr->growableSeqStartPos[nSeq-2]], seqDBPtr->growableSeqStartPos[nSeq-1] - seqDBPtr->growableSeqStartPos[nSeq-2] - 1, md5Str); seqDBPtr->md5.push_back(md5Str); } seqDBPtr->Finalize(); } return seq.length; } void FASTAReader::ReadTitle(long &p, FASTASequence & seq) { char * seqTitle = NULL; int seqTitleLen; ReadTitle(p, seqTitle, seqTitleLen); seq.CopyTitle(seqTitle, seqTitleLen); if (seqTitle) {delete [] seqTitle;} } void FASTAReader::ReadTitle(long &p, char *&title, int &titleLength) { // // Extract the title. The length of the title does not include the newline. // p++; // Move past '>' curPos = p; while (p < fileSize and filePtr[p] != '\n') { p++; } titleLength = p - curPos; if (titleLength > 0) { if (title) {delete [] title; title = NULL;} title = ProtectedNew (titleLength + 1); if (title == nullptr) { cout << "ERROR, unable to read FASTA file to memory. " << endl; exit(1); } int t = 0; for (p = curPos; p < curPos + titleLength; p++, t++) { title[t] = filePtr[p]; } title[titleLength] = '\0'; } else { title = NULL; titleLength = 0; } } int FASTAReader::GetNext(FASTASequence &seq) { if (curPos == fileSize) { return 0; } seq.Free(); //Free seq before read // // Extract the title of the current record. // long p = curPos; AdvanceToTitleStart(p); // // Make sure there is a '>' // CheckValidTitleStart(p); ReadTitle(p, seq); // // Read in the next sequence. // // Count the length of the sequence. long seqLength = 0; curPos = p; char c; while (p < fileSize and (c = filePtr[p]) != endOfReadDelim) { if (c != ' ' and c != '\t' and c != '\n' and c != '\r') { seqLength++; } p++; } if (seqLength > UINT_MAX) { cout << "ERROR! Reading sequences stored in more than 4Gbytes of space is not supported." << endl; exit(1); } seq.length = 0; if (seqLength > 0) { seq.length = seqLength; seq.seq = ProtectedNew (seqLength+padding+1); p = curPos; seq.deleteOnExit = true; long s = 0; while (p < fileSize and (c = filePtr[p]) != endOfReadDelim) { if (c != ' ' and c != '\t' and c != '\n' and c != '\r') { seq.seq[s] = convMat[filePtr[p]]; s++; } p++; } seq.seq[seqLength] = 0; } curPos = p; if (computeMD5) { MakeMD5((const char*) &seq.seq, seq.length, curReadMD5); } return 1; } /* Advance to the read nSeq forward. input: nSeq, the number of sequences to skip. output: returns 1 if after advancing nSeq sequences, the file pointer is pointing to a new sequence. 0 otherwise. A return value of 0 will signal that the file is done being processed if it is iterting over reads. */ int FASTAReader::Advance(int nSeq) { int nAdvanced = 0; long p = curPos; // base case -- it's always ok to advance 0 if (nSeq == 0) { return 1; } // Make sure the advance starts at // the beginning of a sequence. while(p < fileSize and filePtr[p] != endOfReadDelim) p++; // No sequence was found, coudln't advance. if (p >= fileSize) { return 0; } p++; nAdvanced = 1; while (nAdvanced <= nSeq and p < fileSize) { if (filePtr[p] == endOfReadDelim) { if (nAdvanced == nSeq) { // // Want to end with the reader on a '>', so return before // hitting the rest of the loop. // curPos = p; return 1; } else { nAdvanced++; } } p++; } curPos = p; return 0; } int FASTAReader::CriticalGetNext(FASTASequence &seq) { if (!GetNext(seq)) { cout << "Could not read a sequence." << endl; exit(1); } return 1; } int FASTAReader::ConcatenateNext(FASTASequence &cur) { FASTASequence next; int retVal; if ((retVal = GetNext(next))) { next.CleanupASCII(); cur.Concatenate((Nucleotide*) "N"); cur.Concatenate(next); } next.Free(); return retVal; } void FASTAReader::Close() { if (fileDes == -1) { cout << "ERROR, calling close on an uninitialized fasta reader" << endl; exit(1); } else { munmap(filePtr, fileSize); close(fileDes); fileDes = -1; } } void FASTAReader::ReadAllSequences(vector &sequences) { // // Step 1, compute the number of reads in the file. // long p; p = 0; int nSeq = 0; while (p < fileSize) { if (filePtr[p] == '>') { ++nSeq; } p++; } p = 0; sequences.resize(nSeq); int curSeq = 0; while(GetNext(sequences[curSeq])) { ++curSeq; } } blasr_libcpp-master/pbdata/FASTAReader.hpp000066400000000000000000000034041260756663100207450ustar00rootroot00000000000000#ifndef _BLASR_FASTA_READER_HPP_ #define _BLASR_FASTA_READER_HPP_ #include #include #include "FASTASequence.hpp" #include "metagenome/SequenceIndexDatabase.hpp" class FASTAReader { protected: long fileSize; int fileDes; char* filePtr; long curPos; int padding; char endOfReadDelim; char readStartDelim; bool doToUpper; unsigned char *convMat; // // Quick check to see how much to read. // void SetFileSize(); void ReadTitle(long &p, char *&title, int &titleLength); public: bool computeMD5; std::string curReadMD5; void Init(); FASTAReader(); FASTAReader(std::string &fileName); void SetSpacePadding(int _padding); void SetToUpper(); // // Synonym for Init() for consistency. // int Initialize(std::string &seqInName); int Init(std::string &seqInName, int passive=0); void AdvanceToTitleStart(long &p, char delim='>'); void CheckValidTitleStart(long &p, char delim='>'); long ReadAllSequencesIntoOne(FASTASequence &seq, SequenceIndexDatabase *seqDBPtr=NULL); void ReadTitle(long &p, FASTASequence & seq); int GetNext(FASTASequence &seq); /* Advance to the read nSeq forward. input: nSeq, the number of sequences to skip. output: returns 1 if after advancing nSeq sequences, the file pointer is pointing to a new sequence. 0 otherwise. A return value of 0 will signal that the file is done being processed if it is iterting over reads. */ int Advance(int nSeq); int CriticalGetNext(FASTASequence &seq); int ConcatenateNext(FASTASequence &cur); void Close(); void ReadAllSequences(vector &sequences); }; #endif // _BLASR_FASTA_READER_HPP_ blasr_libcpp-master/pbdata/FASTASequence.cpp000066400000000000000000000132601260756663100213070ustar00rootroot00000000000000#include #include "FASTASequence.hpp" using namespace std; FASTASequence::FASTASequence() : DNASequence() { title = NULL; titleLength = 0; deleteTitleOnExit = false; // If deleteTitleOnExist is false, whether to delete title // or not should depend on deleteOnExit; otherwise, delete title // regardless of deleteOnExit. } void FASTASequence::PrintSeq(ostream &out, int lineLength, char delim) const { out << delim; if (title) out << title; out << endl; static_cast(this)->PrintSeq(out, lineLength); } int FASTASequence::GetStorageSize() const { if (!title) return DNASequence::GetStorageSize(); return strlen(title) + DNASequence::GetStorageSize(); } string FASTASequence::GetName() const { string name; int i; for (i = 0; i < titleLength; i++) { if (title[i] != ' ' and title[i] != '\t' and title[i] != '\n' and title[i] != '\r') { name.push_back(title[i]); } else { break; } } return name; } void FASTASequence::ShallowCopy(const FASTASequence &rhs) { CheckBeforeCopyOrReference(rhs, "FASTASequence"); FASTASequence::Free(); static_cast(this)->ShallowCopy(rhs); title = rhs.title; titleLength = rhs.titleLength; deleteTitleOnExit = false; } string FASTASequence::GetTitle() const { return string(title); } // Delete title if this FASTASequence is under control or // only title is under control. void FASTASequence::DeleteTitle() { if (deleteOnExit or deleteTitleOnExit) { if (title != NULL) { delete[] title; } } // otherwise, title is controlled by another obj title = NULL; titleLength = 0; deleteTitleOnExit = false; } void FASTASequence::CopyTitle(const char* str, int strlen) { FASTASequence::DeleteTitle(); // No segfault when str is NULL; if (str == NULL) { title = NULL; titleLength = 0; } else { title = new char[strlen+1]; memcpy(title, str, strlen); titleLength = strlen; title[titleLength] = '\0'; } // In some cases, (e.g., when ReferenceSubstring and CopyTitle // are called together), this Sequence may only have control over // title but not seq. deleteTitleOnExit = true; } void FASTASequence::CopyTitle(string str) { FASTASequence::CopyTitle(str.c_str(), str.size()); } void FASTASequence::GetFASTATitle(string& fastaTitle) const { // look for the first space, and return the string until there. int i; for (i = 0; i < titleLength; i++ ){ if (title[i] == ' ' or title[i] == '\t') { break; } } fastaTitle.assign(title, i); } // Copy rhs.seq[readStart:readEnd] to this Sequence. void FASTASequence::CopySubsequence(FASTASequence &rhs, int readStart, int readEnd) { CheckBeforeCopyOrReference(rhs, "FASTASequence"); // Free before copying anything FASTASequence::Free(); if (readEnd == -1) { readEnd = rhs.length; } if (readEnd > readStart) { length = readEnd - readStart; DNASequence::Copy(rhs, readStart, length); } else { seq = NULL; length = 0; deleteOnExit = true; } FASTASequence::CopyTitle(rhs.title); } void FASTASequence::AppendToTitle(string str) { int newLength = titleLength + str.size() + 1; if (newLength == 0) { DeleteTitle(); return; } char *tmpTitle = new char[newLength]; memcpy(tmpTitle, title, titleLength); memcpy(&tmpTitle[titleLength], str.c_str(), str.size()); tmpTitle[newLength-1] = '\0'; delete[] title; title = tmpTitle; titleLength = newLength; deleteTitleOnExit = true; } void FASTASequence::Assign(FASTASequence &rhs) { *this = (FASTASequence&)rhs; } // Create a reverse complement FASTASequence of *this and assign to rhs. void FASTASequence::MakeRC(FASTASequence &rhs, DNALength rhsPos, DNALength rhsLength) { rhs.Free(); DNASequence::MakeRC((DNASequence&) rhs, rhsPos, rhsLength); if (title != NULL) { (static_cast(&rhs))->CopyTitle(title); } } void FASTASequence::ReverseComplementSelf() { DNALength i; for (i = 0; i < length/2 + length % 2; i++) { char c = seq[i]; seq[i] = ReverseComplementNuc[seq[length - i - 1]]; seq[length - i - 1] = ReverseComplementNuc[static_cast(c)]; } } void FASTASequence::operator=(const FASTASequence &rhs) { CheckBeforeCopyOrReference(rhs, "FASTASequence"); // Free before copying anything FASTASequence::Free(); // Copy seq from rhs ((DNASequence*)this)->Copy((DNASequence&)rhs); assert(deleteOnExit); // Copy title from rhs FASTASequence::CopyTitle(rhs.title, rhs.titleLength); assert(deleteOnExit); } void FASTASequence::Copy(const std::string & rhsTitle, const std::string & rhsSeq) { this->Copy(rhsSeq); this->CopyTitle(rhsTitle); } void FASTASequence::Copy(const std::string & rhsSeq) { (static_cast(this))->Copy(rhsSeq); } void FASTASequence::Copy(const FASTASequence &rhs) { *this = (FASTASequence&)rhs; } #ifdef USE_PBBAM void FASTASequence::Copy(const PacBio::BAM::BamRecord & record) { FASTASequence::Copy(record.Impl().Name(), record.Sequence()); } #endif void FASTASequence::Free() { // Delete title if title is under control, reset deleteTitleOnExit. FASTASequence::DeleteTitle(); // Delete seq if under control, reset deleteOnExit. // Don't call Free() before calling DeleteTitle(). DNASequence::Free(); } template DNALength ResizeSequence(FASTASequence &, DNALength); blasr_libcpp-master/pbdata/FASTASequence.hpp000066400000000000000000000034371260756663100213210ustar00rootroot00000000000000#ifndef _BLASR_FASTA_SEQUENCE_HPP_ #define _BLASR_FASTA_SEQUENCE_HPP_ #include #include #include #include #include #include #include "Types.h" #include "NucConversion.hpp" #include "Enumerations.h" #include "DNASequence.hpp" #include "reads/ZMWGroupEntry.hpp" // // NO proteins for now. class FASTASequence : public DNASequence { private: // Whether or not to delete title in Free() // regardless of deleteOnExit (to prevent memory leak // when ReferenceSubstring and CopyTitle are called together). bool deleteTitleOnExit; public: char *title; int titleLength; FASTASequence(); inline ~FASTASequence(); void PrintSeq(std::ostream &out, int lineLength = 50, char delim='>') const; int GetStorageSize() const; std::string GetName() const; void ShallowCopy(const FASTASequence &rhs); std::string GetTitle() const; void DeleteTitle(); void CopyTitle(const char* str, int strlen); void CopyTitle(std::string str); void GetFASTATitle(std::string& fastaTitle) const; void CopySubsequence(FASTASequence &rhs, int readStart, int readEnd=-1); void AppendToTitle(std::string str); void Assign(FASTASequence &rhs); void MakeRC(FASTASequence &rhs, DNALength rhsPos=0, DNALength rhsLength=0); void ReverseComplementSelf(); void operator=(const FASTASequence &rhs); void Copy(const FASTASequence &rhs); void Copy(const std::string & rhsTitle, const std::string & rhsSeq); void Copy(const std::string & rhsSeq); #ifdef USE_PBBAM /// Copies a BamRecord as a FASTASequence. void Copy(const PacBio::BAM::BamRecord & record); #endif void Free(); }; inline FASTASequence::~FASTASequence(){ FASTASequence::Free(); } #endif blasr_libcpp-master/pbdata/FASTQReader.cpp000066400000000000000000000045511260756663100207640ustar00rootroot00000000000000#include #include #include #include "FASTQReader.hpp" FASTQReader::FASTQReader() : FASTAReader() { endOfReadDelim = '\n'; } long FASTQReader::GetNext(FASTASequence &seq) { return ((FASTAReader*)this)->GetNext(seq); } unsigned char FASTQReader::phredQVtoPacbioQV(unsigned char phredQV){ int qual = floor(100.0 * log10(pow(10.0, phredQV/10.0) - 1.0) + 0.5); qual = qual > 250 ? 250 : qual; qual = qual < 1 ? 1 : qual; return (unsigned char) qual; } int FASTQReader::GetNext(FASTQSequence &seq) { seq.Free(); // Free seq before being reused. char c; while( curPos < fileSize and ( (c = filePtr[curPos]) == ' ' or c == '\t' or c == '\n' or c == '\r') ) { curPos++; } if (curPos >= fileSize) { return false; } long p = curPos; AdvanceToTitleStart(p, '@'); CheckValidTitleStart(p,'@'); ReadTitle(p, seq); // Title ends on '\n', consume that; p++; long p2; p2 = p; while(p2 < fileSize and filePtr[p2] != '\n') { p2++;} if (p2 - p > UINT_MAX) { cout << "ERROR! Reading sequences stored in more than 4Gbytes of space is not supported." << endl; exit(1); } seq.length = p2 - p; long seqPos; if (seq.length > 0) { seq.seq = ProtectedNew(seq.length); p2 = p; seqPos = 0; while(p2 < fileSize and filePtr[p2] != '\n') { seq.seq[seqPos] = filePtr[p2]; p2++; seqPos++;} } else { seq.seq = 0; } p = p2; AdvanceToTitleStart(p,'+'); CheckValidTitleStart(p,'+'); while(p < fileSize and filePtr[p] != '\n') { p++;} p++; // skip '\n' p2 = p; while(p2 < fileSize and filePtr[p2] != '\n') { p2++;} seq.length = p2 - p; if (seq.length > 0) { seq.qual.Allocate(seq.length); p2 = p; long seqPos = 0; while(p2 < fileSize and filePtr[p2] != '\n') { seq.qual[seqPos] = filePtr[p2] - FASTQSequence::charToQuality; p2++; seqPos++; } } else { seq.qual.data = NULL; } curPos = p2; seq.deleteOnExit = true; return true; } int FASTQReader::Advance(int nSteps) { // An advance of a FASTQ file is simply twice the number of // advances of FASTA, since each nucleotide sequence has a quality // sequence. return ((FASTAReader*)this)->Advance(nSteps*2); } blasr_libcpp-master/pbdata/FASTQReader.hpp000066400000000000000000000007211260756663100207640ustar00rootroot00000000000000#ifndef _BLASR_FASTQ_READER_HPP_ #define _BLASR_FASTQ_READER_HPP_ #include "FASTASequence.hpp" #include "FASTAReader.hpp" #include "FASTQSequence.hpp" #include "qvs/QualityValue.hpp" class FASTQReader : public FASTAReader { public: FASTQReader(); long GetNext(FASTASequence &seq); unsigned char phredQVtoPacbioQV(unsigned char phredQV); int GetNext(FASTQSequence &seq); int Advance(int nSteps); }; #endif // _BLASR_FASTQ_READER_HPP_ blasr_libcpp-master/pbdata/FASTQSequence.cpp000066400000000000000000000456051260756663100213370ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "Types.h" #include "NucConversion.hpp" #include "DNASequence.hpp" #include "Enumerations.h" #include "FASTQSequence.hpp" using namespace std; // // Initialize a read with quality probabilities from one with quality values. // int FASTQSequence::charToQuality = FASTQ_CHAR_TO_QUALITY; QVScale FASTQSequence::GetQVScale() const { return qvScale; } void FASTQSequence::SetQVScale(QVScale qvScaleP) { qvScale = qvScaleP; qual.qvScale = qvScale; deletionQV.qvScale = qvScale; preBaseDeletionQV.qvScale = qvScale; insertionQV.qvScale = qvScale; substitutionQV.qvScale = qvScale; mergeQV.qvScale = qvScale; } QualityValueVector* FASTQSequence::GetQVPointerByIndex(int index) { if (index == 0) { return &qual; } if (index == 1) { return &insertionQV; } if (index == 2) { return &deletionQV; } if (index == 3) { return &substitutionQV; } if (index == 4) { return &mergeQV; } return NULL; } int FASTQSequence::GetStorageSize() const { int total = 0; int nQV = 0; int nTag =0; if (!qual.Empty()) { nQV++; } if (!deletionQV.Empty()) { nQV++; } if (!preBaseDeletionQV.Empty()) { nQV+=4; } if (!insertionQV.Empty()) { nQV++; } if (!substitutionQV.Empty()) { nQV++; } if (!mergeQV.Empty()) { nQV++; } if (deletionTag != NULL) { nTag++; } if (substitutionTag !=NULL) { nTag++; } total = nQV*sizeof(QualityValue)*length + nTag*sizeof(Nucleotide)*length; return total + FASTASequence::GetStorageSize(); } FASTQSequence::FASTQSequence() : FASTASequence() { deletionTag = NULL; substitutionTag = NULL; // // For now assume a prior distribution to be the variation of the human genome. // FIXME: these were set to 0.001, which ends up being 0 because these priors are integer types // I'm setting these explicitly to 0 to silence the warning and maintain behavior, // but mkinsella recommends revisiting these for potential removal // deletionQVPrior = 0; insertionQVPrior = 0; substitutionQVPrior = 0; preBaseDeletionQVPrior = 0; qvScale = PHRED; } QualityValue FASTQSequence::GetDeletionQV(DNALength pos) const { assert(pos < ((unsigned int)-1)); assert(pos < length); if (deletionQV.Empty()) { return deletionQVPrior; } else { return deletionQV[pos]; } } QualityValue FASTQSequence::GetMergeQV(DNALength pos) const { assert(pos < ((unsigned int)-1)); assert(pos < length); if (mergeQV.Empty()) { return 0; } else { return mergeQV[pos]; } } Nucleotide FASTQSequence::GetSubstitutionTag(DNALength pos) const { if (substitutionTag == NULL) { return 'N'; } assert(pos < ((unsigned int)-1)); assert(pos < length); return substitutionTag[pos]; } Nucleotide FASTQSequence::GetDeletionTag(DNALength pos) const { if (deletionTag == NULL) { return 'N'; } assert(pos < ((unsigned int)-1)); assert(pos < length); return deletionTag[pos]; } QualityValue FASTQSequence::GetInsertionQV(DNALength pos) const { if (insertionQV.Empty()) { return insertionQVPrior; } assert(pos < ((unsigned int)-1)); assert(pos < length); return insertionQV[pos]; } QualityValue FASTQSequence::GetSubstitutionQV(DNALength pos) const { if (substitutionQV.Empty()) { return substitutionQVPrior; } assert(pos < ((unsigned int)-1)); assert(pos < length); return substitutionQV[pos]; } QualityValue FASTQSequence::GetPreBaseDeletionQV(DNALength pos, Nucleotide nuc) const { if (preBaseDeletionQV.Empty()) { return preBaseDeletionQVPrior; } assert(pos < ((unsigned int)-1)); assert(pos < length); return preBaseDeletionQV[pos*4 + TwoBit[nuc]]; } void FASTQSequence::ShallowCopy(const FASTQSequence &rhs) { CheckBeforeCopyOrReference(rhs, "FASTQSequence"); FASTQSequence::Free(); qual.ShallowCopy(rhs.qual, 0, length); FASTASequence::ShallowCopy(rhs); } void FASTQSequence::ReferenceSubstring(const FASTQSequence &rhs) { FASTQSequence::ReferenceSubstring(rhs, 0, rhs.length); } void FASTQSequence::ReferenceSubstring(const FASTQSequence &rhs, DNALength pos) { FASTQSequence::ReferenceSubstring(rhs, pos, rhs.length - pos); } void FASTQSequence::ReferenceSubstring(const FASTQSequence &rhs, DNALength pos, DNALength substrLength) { // Sanity check. CheckBeforeCopyOrReference(rhs, "FASTQSequence"); // Free this FASTQSequence before referencing rhs. FASTQSequence::Free(); SetQVScale(rhs.qvScale); if (substrLength == 0) { substrLength = rhs.length - pos; } FASTASequence::ReferenceSubstring(rhs,pos,substrLength); if (rhs.qual.Empty() == false) { qual.ShallowCopy(rhs.qual, pos, substrLength); } if (rhs.deletionQV.Empty() == false) { deletionQV.ShallowCopy(rhs.deletionQV, pos, substrLength); } if (rhs.mergeQV.Empty() == false) { mergeQV.ShallowCopy(rhs.mergeQV, pos, substrLength); } if (rhs.insertionQV.Empty() == false) { insertionQV.ShallowCopy(rhs.insertionQV, pos, substrLength); } if (rhs.preBaseDeletionQV.Empty() == false ){ preBaseDeletionQV.ShallowCopy(rhs.preBaseDeletionQV, pos, substrLength); } if (rhs.deletionTag != NULL) { deletionTag = &rhs.deletionTag[pos]; } if (rhs.substitutionTag != NULL) { substitutionTag = &rhs.substitutionTag[pos]; } if (rhs.substitutionQV.Empty() == false) { substitutionQV.ShallowCopy(rhs.substitutionQV, pos, substrLength); } deletionQVPrior = rhs.deletionQVPrior; insertionQVPrior = rhs.insertionQVPrior; substitutionQVPrior = rhs.substitutionQVPrior; preBaseDeletionQVPrior = rhs.preBaseDeletionQVPrior; } void FASTQSequence::ClearAndNull(QualityValue *value) { if (value != NULL) { delete[] value; } value = NULL; } void FASTQSequence::CopyQualityValues(const FASTQSequence &rhs) { // Make sure QVs and seq are all under control, if seq is referenced // while QVs are copied, memory leak can happen. assert(deleteOnExit); SetQVScale(rhs.qvScale); qual.Copy(rhs.qual, rhs.length); deletionQV.Copy(rhs.deletionQV, rhs.length); insertionQV.Copy(rhs.insertionQV, rhs.length); substitutionQV.Copy(rhs.substitutionQV, rhs.length); mergeQV.Copy(rhs.mergeQV, rhs.length); // // Handle the tags separtely (and verbosely) // if (rhs.deletionTag) { AllocateDeletionTagSpace(rhs.length); memcpy(deletionTag, rhs.deletionTag, sizeof(Nucleotide)*rhs.length); } else { ClearAndNull(deletionTag); } if (rhs.substitutionTag) { AllocateSubstitutionTagSpace(rhs.length); memcpy(substitutionTag, rhs.substitutionTag, sizeof(Nucleotide)*rhs.length); } else { ClearAndNull(substitutionTag); } } void FASTQSequence::AllocateQualitySpace(DNALength qualLength) { qual.Allocate(qualLength); } void FASTQSequence::AllocateDeletionQVSpace(DNALength qualLength) { deletionQV.Allocate(qualLength); } void FASTQSequence::AllocateMergeQVSpace(DNALength len) { mergeQV.Allocate(len); } void FASTQSequence::AllocateDeletionTagSpace(DNALength qualLength) { if (deletionTag != NULL) delete[] deletionTag; deletionTag = ProtectedNew(qualLength); } void FASTQSequence::AllocatePreBaseDeletionQVSpace(DNALength qualLength) { preBaseDeletionQV.Allocate(qualLength); } void FASTQSequence::AllocateInsertionQVSpace(DNALength qualLength) { insertionQV.Allocate(qualLength); } void FASTQSequence::AllocateSubstitutionQVSpace(DNALength qualLength ){ substitutionQV.Allocate(qualLength); } void FASTQSequence::AllocateSubstitutionTagSpace(DNALength qualLength ){ if (substitutionTag != NULL) delete[] substitutionTag; substitutionTag = ProtectedNew(qualLength); } void FASTQSequence::AllocateRichQualityValues(DNALength qualLength) { AllocateDeletionQVSpace(qualLength); AllocateDeletionTagSpace(qualLength); AllocatePreBaseDeletionQVSpace(qualLength); AllocateInsertionQVSpace(qualLength); AllocateSubstitutionQVSpace(qualLength); AllocateSubstitutionTagSpace(qualLength); AllocateMergeQVSpace(qualLength); } void FASTQSequence::Copy(const FASTQSequence &rhs) { CheckBeforeCopyOrReference(rhs, "FASTQSequence"); // Free *this before copying anything. FASTQSequence::Free(); // Copy FASTASequence from rhs, including seq and title FASTASequence::Copy(rhs); assert(deleteOnExit); // Copy Quality values from rhs. FASTQSequence::CopyQualityValues(rhs); } FASTQSequence& FASTQSequence::operator=(const FASTQSequence &rhs) { ((FASTQSequence*)this)->Copy(rhs); return *this; } FASTQSequence::FASTQSequence(const FASTQSequence &rhs) { ((FASTQSequence*)this)->Copy(rhs); } // Copy rhs to this, including seq, title and QVs. void FASTQSequence::Assign(FASTQSequence &rhs) { CheckBeforeCopyOrReference(rhs); FASTQSequence::Free(); // copy the nucleotide part FASTASequence::Assign(rhs); // copy the qual part, qual scal is set in CopyQualityValues FASTQSequence::CopyQualityValues(rhs); } void FASTQSequence::PrintFastq(ostream &out, int lineLength) const { PrintSeq(out, lineLength, '@'); if (lineLength == 0) { out << endl; } PrintFastqQuality(out, lineLength); if (lineLength == 0) { out << endl; } } void FASTQSequence::PrintFastqQuality(ostream &out, int lineLength) const { out << "+" << endl; PrintAsciiQual(out, lineLength); } bool FASTQSequence::GetQVs(const QVIndex & qvIndex, std::vector & qvs, bool reverse) const { qvs.clear(); uint8_t * qualPtr; int charOffset = charToQuality; if (qvIndex == I_QualityValue) { qualPtr = qual.data; } else if (qvIndex == I_InsertionQV) { qualPtr = insertionQV.data; } else if (qvIndex == I_DeletionQV) { qualPtr = deletionQV.data; } else if (qvIndex == I_SubstitutionQV) { qualPtr = substitutionQV.data; } else if (qvIndex == I_MergeQV) { qualPtr = mergeQV.data; } else if (qvIndex == I_SubstitutionTag) { qualPtr = (uint8_t*)(substitutionTag); charOffset = 0; } else if (qvIndex == I_DeletionTag) { qualPtr = (uint8_t*)(deletionTag); charOffset = 0; } if (qualPtr == NULL) { return false; } qvs.resize(length); for (DNALength i = 0; i < length; i++) { if (not reverse) { // The same orientation qvs[i] = static_cast(qualPtr[i] + charOffset); } else if (qvIndex != I_SubstitutionTag and qvIndex != I_DeletionTag) { // Reverse orientation, reverse QVs, except SubstitutionTag and DeletionTag qvs[i] = static_cast(qualPtr[length - i - 1] + charOffset); } else { // Reverse and complement SubstitutionTag and DeletionTag qvs[i] = static_cast(ReverseComplementNuc[qualPtr[length - i - 1] + charOffset]); } //assert(qvs[i] > 32 and qvs[i] < 127); } return true; } QVIndex FASTQSequence::GetQVIndex(const std::string & qvName) const { if (qvName == "QualityValue") { return I_QualityValue; } else if (qvName == "InsertionQV") { return I_InsertionQV; } else if (qvName == "DeletionQV") { return I_DeletionQV; } else if (qvName == "SubstitutionQV") { return I_SubstitutionQV; } else if (qvName == "MergeQV") { return I_MergeQV; } else if (qvName == "SubstitutionTag") { return I_SubstitutionTag; } else if (qvName == "DeletionTag"){ return I_DeletionTag; } else { std::cout << "ERROR: unknown Quality Value " << qvName << std::endl; assert(false); } } bool FASTQSequence::GetQVs(const std::string & qvName, std::vector & qvs, bool reverse) const { return GetQVs(GetQVIndex(qvName), qvs, reverse); } bool FASTQSequence::GetQVs(const std::string & qvName, std::string & qvsStr, bool reverse) const { std::vector qvs; bool OK = GetQVs(qvName, qvs, reverse); qvsStr = string(qvs.begin(), qvs.end()); return OK; } void FASTQSequence::PrintAsciiRichQuality(ostream &out, int whichQuality, int lineLength) const { vector qvs; bool OK = GetQVs(static_cast(whichQuality), qvs); DNALength i; if (lineLength == 0) { for (i = 0; i < length; i++) { if (OK) { out << static_cast(qvs[i]); } else { // Fake bad quality out << "5"; } } } else { for (i = 0; i < length; i++) { if (OK) { out << static_cast(qvs[i]); } else { // Fake pretty bad quality. out << "5"; } assert(lineLength != 0); if (i > 0 and (i+1) % lineLength==0) { out << endl; } } if (i == 0 or i % lineLength != 0) { out << endl; } } } void FASTQSequence::PrintAsciiQual(ostream &out, int lineLength) const { PrintAsciiRichQuality(out, 0, lineLength); } void FASTQSequence::PrintQual(ostream &out, int lineLength) const { out << ">" << this->title << endl; DNALength i; for (i = 0; i < length; i++ ){ out << (int) qual[i]; if (i > 0 and (i+1) % lineLength == 0) out << endl; else out << " "; } if (i == 0 or i % lineLength != 0) { out << endl; } } void FASTQSequence::PrintQualSeq(ostream &out, int lineLength) const { FASTASequence::PrintSeq(out, lineLength); lineLength /= 4; PrintQual(out, lineLength); } // Create a reverse complement FASTQSequence of *this and assign to rhs. void FASTQSequence::MakeRC(FASTQSequence &rc) { rc.Free(); FASTASequence::MakeRC(rc); rc.SetQVScale(qvScale); if (not qual.Empty()) { // QVs are independent of one another. A FASTQSequence can have // insertionQV without having QualityValue. (static_cast(&rc))->AllocateQualitySpace(length); for (DNALength pos = 0; pos < length; pos++ ){ rc.qual.data[length - pos - 1] = qual[pos]; } } // // The read contains rich quality values. Reverse them here. // if (deletionQV.Empty() == false) { (static_cast(&rc))->AllocateDeletionQVSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.deletionQV[length - pos - 1] = deletionQV[pos]; } } if (insertionQV.Empty() == false) { (static_cast(&rc))->AllocateInsertionQVSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.insertionQV[length - pos - 1] = insertionQV[pos]; } } if (substitutionQV.Empty() == false) { (static_cast(&rc))->AllocateSubstitutionQVSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.substitutionQV[length - pos - 1] = substitutionQV[pos]; } } if (mergeQV.Empty() == false) { (static_cast(&rc))->AllocateMergeQVSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.mergeQV[length - pos - 1] = mergeQV[pos]; } } if (substitutionTag != NULL) { (static_cast(&rc))->AllocateSubstitutionTagSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.substitutionTag[length - pos - 1] = ReverseComplementNuc[substitutionTag[pos]]; } } if (deletionTag != NULL) { (static_cast(&rc))->AllocateDeletionTagSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.deletionTag[length - pos - 1] = ReverseComplementNuc[deletionTag[pos]]; } } if (preBaseDeletionQV.Empty() == false) { (static_cast(&rc))->AllocatePreBaseDeletionQVSpace(length); for (DNALength pos = 0; pos < length; pos++) { rc.preBaseDeletionQV[length - pos - 1] = preBaseDeletionQV[pos]; } } deletionQVPrior = rc.deletionQVPrior; insertionQVPrior = rc.insertionQVPrior; substitutionQVPrior = rc.substitutionQVPrior; preBaseDeletionQVPrior = rc.preBaseDeletionQVPrior; } void FASTQSequence::Free() { if (deleteOnExit == true) { // Free Quality Values if under control qual.Free(); deletionQV.Free(); preBaseDeletionQV.Free(); insertionQV.Free(); substitutionQV.Free(); mergeQV.Free(); if (deletionTag != NULL) { delete[] deletionTag; } if (substitutionTag != NULL) { delete[] substitutionTag; } } //Reset deletionTag and substitionTag anyway deletionTag = NULL; substitutionTag = NULL; // Free seq and title, reset deleteOnExit. // Don't call FASTASequence::Free before freeing QVs. FASTASequence::Free(); } void FASTQSequence::LowerCaseMask(int qThreshold) { int i; if (qual.Empty() == true) return; for (i = 0; i < length; i++ ){ if (qual[i] < qThreshold) { seq[i] = tolower(seq[i]); } } } float FASTQSequence::GetAverageQuality() const { DNALength p; float totalQ; if (qual.Empty() == true) { return 0.0; } assert(qual.Empty() == false); assert(length > 0); for (p = 0, totalQ = 0.0; p < length; p++) { totalQ += qual[p]; } return totalQ / length; } #ifdef USE_PBBAM void FASTQSequence::Copy(const PacBio::BAM::BamRecord & record) { FASTQSequence::Free(); // Copy title and sequence. static_cast(this)->Copy(record); // Copy QVs. qual.Copy(record.Qualities().Fastq()); // iq if (record.HasInsertionQV()) { insertionQV.Copy(record.InsertionQV().Fastq()); } // dq if (record.HasDeletionQV()) { deletionQV.Copy(record.DeletionQV().Fastq()); } // sq if (record.HasSubstitutionQV()) { substitutionQV.Copy(record.SubstitutionQV().Fastq()); } // mq if (record.HasMergeQV()) { mergeQV.Copy(record.MergeQV().Fastq()); } // st if (record.HasSubstitutionTag()) { std::string qvs = record.SubstitutionTag(); AllocateSubstitutionTagSpace(static_cast(qvs.size())); std::memcpy(substitutionTag, qvs.c_str(), qvs.size() * sizeof(char)); } // dt if (record.HasDeletionTag()) { std::string qvs = record.DeletionTag(); AllocateDeletionTagSpace(static_cast(qvs.size())); std::memcpy(deletionTag, qvs.c_str(), qvs.size() * sizeof(char)); } } #endif blasr_libcpp-master/pbdata/FASTQSequence.hpp000066400000000000000000000114331260756663100213340ustar00rootroot00000000000000#ifndef _BLASR_FASTQ_SEQUENCE_HPP_ #define _BLASR_FASTQ_SEQUENCE_HPP_ #include "DNASequence.hpp" #include "FASTASequence.hpp" #include "qvs/QualityValue.hpp" #include "qvs/QualityValueVector.hpp" #include "matrix/Matrix.hpp" #include "reads/ZMWGroupEntry.hpp" enum QVList {InsertionQV=0x1, DeletionQV=0x2, SubstitutionQV=0x4, MergeQV=0x8, SubstitutionTag=0x10, DeletionTag=0x20}; enum QVIndex {I_QualityValue=0, I_InsertionQV=1,I_DeletionQV=2,I_SubstitutionQV=3,I_MergeQV=4, I_SubstitutionTag=5,I_DeletionTag=6}; class FASTQSequence : public FASTASequence { public: static int charToQuality; QualityValueVector qual; QualityValueVector deletionQV; QualityValueVector preBaseDeletionQV; QualityValueVector insertionQV; QualityValueVector substitutionQV; QualityValueVector mergeQV; Nucleotide *deletionTag; Nucleotide *substitutionTag; QualityValue deletionQVPrior, insertionQVPrior, substitutionQVPrior, preBaseDeletionQVPrior; QVScale qvScale; QVScale GetQVScale() const; void SetQVScale(QVScale qvScaleP); QualityValueVector* GetQVPointerByIndex(int index); int GetStorageSize() const; FASTQSequence(); inline ~FASTQSequence(); QualityValue GetDeletionQV(DNALength pos) const; QualityValue GetMergeQV(DNALength pos) const; Nucleotide GetSubstitutionTag(DNALength pos) const; Nucleotide GetDeletionTag(DNALength pos) const; QualityValue GetInsertionQV(DNALength pos) const; QualityValue GetSubstitutionQV(DNALength pos) const; QualityValue GetPreBaseDeletionQV(DNALength pos, Nucleotide nuc) const; void ShallowCopy(const FASTQSequence &rhs); void ReferenceSubstring(const FASTQSequence &rhs); void ReferenceSubstring(const FASTQSequence &rhs, DNALength pos); void ReferenceSubstring(const FASTQSequence &rhs, DNALength pos, DNALength substrLength); void ClearAndNull(QualityValue *value); void CopyQualityValues(const FASTQSequence &rhs); void AllocateQualitySpace(DNALength qualLength); void AllocateDeletionQVSpace(DNALength qualLength); void AllocateMergeQVSpace(DNALength len); void AllocateDeletionTagSpace(DNALength qualLength); void AllocatePreBaseDeletionQVSpace(DNALength qualLength); void AllocateInsertionQVSpace(DNALength qualLength); void AllocateSubstitutionQVSpace(DNALength qualLength ); void AllocateSubstitutionTagSpace(DNALength qualLength ); void AllocateRichQualityValues(DNALength qualLength); void Copy(const FASTQSequence &rhs); FASTQSequence& operator=(const FASTQSequence &rhs); FASTQSequence(const FASTQSequence &rhs); void Assign(FASTQSequence &rhs); void PrintFastq(std::ostream &out, int lineLength=50) const; void PrintFastqQuality(std::ostream &out, int lineLength=50) const; QVIndex GetQVIndex(const std::string & qvName) const; /// Get QVs in vector associated with the given QVIndex. /// \returns true if qvs are available, false otherwise /// \param [in] qvIndex - enum QVIndex /// \param [out] qvs - obtained QVs. /// \param [in] reverse - reverse orders of QVs or not bool GetQVs(const QVIndex & qvIndex, std::vector & qvs, bool reverse=false) const; /// Get QVs in vector, given with QV Name. /// \returns true if qvs are available, false, otherwise /// \param [in] qvName - InsertionQV, DeletionQV, SubstitionQV, MergeQV, SubstitutionTag, DeletionTag /// \param [out] qvs - obtians QVs. /// \param [in] reverse - reverse orders of QVs or not. bool GetQVs(const std::string & qvName, std::vector & qvs, bool reverse=false) const; /// Get QVs in string, given with QV Name. /// \returns true if qvs are available, false, otherwise /// \param [in] qvName - InsertionQV, DeletionQV, SubstitionQV, MergeQV, SubstitutionTag, DeletionTag /// \param [out] qvs - obtians QVs. /// \param [in] reverse - reverse order of QVs or not bool GetQVs(const std::string & qvName, std::string & qvs, bool reverse=false) const; void PrintAsciiRichQuality(std::ostream &out, int whichQuality, int lineLength=50) const; void PrintAsciiQual(std::ostream &out, int lineLength=50) const; void PrintQual(std::ostream &out, int lineLength = 50) const; void PrintQualSeq(std::ostream &out, int lineLength = 50) const; void MakeRC(FASTQSequence &rc); void Free(); void LowerCaseMask(int qThreshold); float GetAverageQuality() const; #ifdef USE_PBBAM /// Copy name, sequence, and QVs from BamRecord. void Copy(const PacBio::BAM::BamRecord & record); #endif }; inline FASTQSequence::~FASTQSequence() { FASTQSequence::Free(); } #endif // _BLASR_FASTQ_SEQUENCE_HPP_ blasr_libcpp-master/pbdata/GFFFile.cpp000066400000000000000000000022061260756663100201600ustar00rootroot00000000000000#include "GFFFile.hpp" GFFEntry::GFFEntry(std::string & _name, std::string & _source, std::string & _type, UInt & _start, UInt & _end, float & _score, char & _strand, std::string & _frame, std::string _attributes) { name = _name; source = _source; type = _type; start = _start; end = _end; score = _score; strand = _strand; frame = _frame; } void GFFFile::ReadAll(std::string & gffFileName) { std::fstream gffIn; CrucialOpen(gffFileName, gffIn, std::ios::in); while(gffIn) { std::string line; getline(gffIn, line); std::stringstream linestrm(line); std::string name, source, type; UInt start, end; char strand; float score; std::string frame, attributes; // A sample record in adapterGffFile: // ref000001 . adapter 10955 10999 0.00 + . xxxx linestrm >> name >> source >> type >> start >> end >> score >> strand >> frame >> attributes; entries.push_back(GFFEntry( name, source, type, start, end, score, strand, frame, attributes)); } gffIn.close(); } blasr_libcpp-master/pbdata/GFFFile.hpp000066400000000000000000000013021260756663100201610ustar00rootroot00000000000000#ifndef _BLASR_GFF_FILE_HPP_ #define _BLASR_GFF_FILE_HPP_ #include #include #include #include #include #include "utils.hpp" #include "Types.h" class GFFEntry { public: std::string name, type, source; UInt start, end; char strand; float score; std::string frame; std::string attributes; GFFEntry(std::string & _name, std::string & _source, std::string & _type, UInt & _start, UInt & _end, float & _score, char & _strand, std::string & _frame, std::string _attributes); }; class GFFFile { public: std::vector entries; void ReadAll(std::string & gffFileName); }; #endif blasr_libcpp-master/pbdata/MD5Utils.cpp000066400000000000000000000270221260756663100203670ustar00rootroot00000000000000 // MD5.CC - source code for the C++/object oriented translation and // modification of MD5. // Translation and modification (c) 1995 by Mordechai T. Abzug // This translation/ modification is provided "as is," without express or // implied warranty of any kind. // The translator/ modifier does not claim (1) that MD5 will do what you think // it does; (2) that this translation/ modification is accurate; or (3) that // this software is "merchantible." (Language for this disclaimer partially // copied from the disclaimer below). /* based on: MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm MDDRIVER.C - test driver for MD2, MD4 and MD5 Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved. License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing this software or this function. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work. RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. These notices must be retained in any copies of any part of this documentation and/or software. */ #include #include #include #include "utils.hpp" #include "MD5Utils.hpp" using namespace std; // MD5 simple initialization method MD5::MD5(){ init(); } // MD5 block update operation. Continues an MD5 message-digest // operation, processing another message block, and updating the // context. void MD5::update (uint1 *input, uint4 input_length) { uint4 input_index, buffer_index; uint4 buffer_space; // how much space is left in buffer if (finalized){ // so we can't update! cerr << "MD5::update: Can't update a finalized digest!" << endl; return; } // Compute number of bytes mod 64 buffer_index = (unsigned int)((count[0] >> 3) & 0x3F); // Update number of bits if ( (count[0] += ((uint4) input_length << 3))<((uint4) input_length << 3) ) count[1]++; count[1] += ((uint4)input_length >> 29); buffer_space = 64 - buffer_index; // how much space is left in buffer // Transform as many times as possible. if (input_length >= buffer_space) { // ie. we have enough to fill the buffer // fill the rest of the buffer and transform memcpy (buffer + buffer_index, input, buffer_space); transform (buffer); // now, transform each 64-byte piece of the input, bypassing the buffer for (input_index = buffer_space; input_index + 63 < input_length; input_index += 64) transform (input+input_index); buffer_index = 0; // so we can buffer remaining } else input_index=0; // so we can buffer the whole input // and here we do the buffering: memcpy(buffer+buffer_index, input+input_index, input_length-input_index); } // MD5 update for files. // Like above, except that it works on files (and uses above as a primitive.) void MD5::update(FILE *file){ unsigned char buffer[1024]; int len = 0; while ( (len=fread(buffer, 1, 1024, file) and len != 0)) update(buffer, len); fclose (file); } // MD5 update for istreams. // Like update for files; see above. void MD5::update(istream& stream){ unsigned char buffer[1024]; int len; while (stream.good()){ stream.read((char*) buffer, 1024); // note that return value of read is unusable. len=stream.gcount(); update(buffer, len); } } // MD5 update for ifstreams. // Like update for files; see above. void MD5::update(ifstream& stream){ unsigned char buffer[1024]; int len; while (stream.good()){ stream.read((char*)buffer, 1024); // note that return value of read is unusable. len=stream.gcount(); update(buffer, len); } } // MD5 finalization. Ends an MD5 message-digest operation, writing the // the message digest and zeroizing the context. void MD5::finalize (){ unsigned char bits[8]; unsigned int index, padLen; static uint1 PADDING[64]={ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (finalized){ cerr << "MD5::finalize: Already finalized this digest!" << endl; return; } // Save number of bits encode (bits, count, 8); // Pad out to 56 mod 64. index = (uint4) ((count[0] >> 3) & 0x3f); padLen = (index < 56) ? (56 - index) : (120 - index); update (PADDING, padLen); // Append length (before padding) update (bits, 8); // Store state in digest encode (digest, state, 16); // Zeroize sensitive information memset (buffer, 0, sizeof(*buffer)); finalized=1; } MD5::MD5(FILE *file){ init(); // must be called be all constructors update(file); finalize (); } MD5::MD5(istream& stream){ init(); // must called by all constructors update (stream); finalize(); } MD5::MD5(ifstream& stream){ init(); // must called by all constructors update (stream); finalize(); } unsigned char *MD5::raw_digest(){ uint1 *s = ProtectedNew(16); if (!finalized){ cerr << "MD5::raw_digest: Can't get digest if you haven't "<< "finalized the digest!" <(33); if (!finalized){ cerr << "MD5::hex_digest: Can't get digest if you haven't "<< "finalized the digest!" <> 8) & 0xff); output[j+2] = (uint1) ((input[i] >> 16) & 0xff); output[j+3] = (uint1) ((input[i] >> 24) & 0xff); } } // Decodes input (unsigned char) into output (UINT4). Assumes len is // a multiple of 4. void MD5::decode (uint4 *output, uint1 *input, uint4 len){ unsigned int i, j; for (i = 0, j = 0; j < len; i++, j += 4) output[i] = ((uint4)input[j]) | (((uint4)input[j+1]) << 8) | (((uint4)input[j+2]) << 16) | (((uint4)input[j+3]) << 24); } // Note: Replace "for loop" with standard memcpy if possible. void MD5::memcpy (uint1 *output, uint1 *input, uint4 len){ unsigned int i; for (i = 0; i < len; i++) output[i] = input[i]; } // Note: Replace "for loop" with standard memset if possible. void MD5::memset (uint1 *output, uint1 value, uint4 len){ unsigned int i; for (i = 0; i < len; i++) output[i] = value; } blasr_libcpp-master/pbdata/MD5Utils.hpp000066400000000000000000000106301260756663100203710ustar00rootroot00000000000000#ifndef _BLASR_UTILS_M5UTILS_HPP_ #define _BLASR_UTILS_M5UTILS_HPP_ // MD5.CC - source code for the C++/object oriented translation and // modification of MD5. // Translation and modification (c) 1995 by Mordechai T. Abzug // This translation/ modification is provided "as is," without express or // implied warranty of any kind. // The translator/ modifier does not claim (1) that MD5 will do what you think // it does; (2) that this translation/ modification is accurate; or (3) that // this software is "merchantible." (Language for this disclaimer partially // copied from the disclaimer below). /* based on: MD5.H - header file for MD5C.C MDDRIVER.C - test driver for MD2, MD4 and MD5 Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved. License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing this software or this function. License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work. RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind. These notices must be retained in any copies of any part of this documentation and/or software. */ #include #include #include class MD5 { public: // methods for controlled operation: MD5 (); // simple initializer void update (unsigned char *input, unsigned int input_length); void update (std::istream& stream); void update (FILE *file); void update (std::ifstream& stream); void finalize (); // constructors for special circumstances. All these constructors finalize // the MD5 context. MD5 (unsigned char *string); // digest string, finalize MD5 (std::istream& stream); // digest stream, finalize MD5 (FILE *file); // digest file, close, finalize MD5 (std::ifstream& stream); // digest stream, close, finalize // methods to acquire finalized result unsigned char *raw_digest (); // digest as a 16-byte binary array char * hex_digest (); // digest as a 33-byte ascii-hex string friend std::ostream& operator<< (std::ostream&, MD5 context); private: // first, some types: typedef unsigned int uint4; // assumes integer is 4 words long typedef unsigned short int uint2; // assumes short integer is 2 words long typedef unsigned char uint1; // assumes char is 1 word long // next, the private data: uint4 state[4]; uint4 count[2]; // number of *bits*, mod 2^64 uint1 buffer[64]; // input buffer uint1 digest[16]; uint1 finalized; // last, the private methods, mostly static: void init (); // called by all constructors void transform (uint1 *buffer); // does the real update work. Note // that length is implied to be 64. static void encode (uint1 *dest, uint4 *src, uint4 length); static void decode (uint4 *dest, uint1 *src, uint4 length); static void memcpy (uint1 *dest, uint1 *src, uint4 length); static void memset (uint1 *start, uint1 val, uint4 length); static inline uint4 rotate_left (uint4 x, uint4 n); static inline uint4 F (uint4 x, uint4 y, uint4 z); static inline uint4 G (uint4 x, uint4 y, uint4 z); static inline uint4 H (uint4 x, uint4 y, uint4 z); static inline uint4 I (uint4 x, uint4 y, uint4 z); static inline void FF (uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); static inline void GG (uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); static inline void HH (uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); static inline void II (uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); }; #include "MD5UtilsImpl.hpp" #endif // _BLASR_UTILS_M5UTILS_HPP_ blasr_libcpp-master/pbdata/MD5UtilsImpl.hpp000066400000000000000000000025421260756663100212160ustar00rootroot00000000000000#ifndef _BLASR_MD5_UTILS_IMPL_HPP_ #define _BLASR_MD5_UTILS_IMPL_HPP_ // ROTATE_LEFT rotates x left n bits. inline unsigned int MD5::rotate_left (uint4 x, uint4 n){ return (x << n) | (x >> (32-n)) ; } // F, G, H and I are basic MD5 functions. inline unsigned int MD5::F (uint4 x, uint4 y, uint4 z){ return (x & y) | (~x & z); } inline unsigned int MD5::G (uint4 x, uint4 y, uint4 z){ return (x & z) | (y & ~z); } inline unsigned int MD5::H (uint4 x, uint4 y, uint4 z){ return x ^ y ^ z; } inline unsigned int MD5::I (uint4 x, uint4 y, uint4 z){ return y ^ (x | ~z); } // FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. // Rotation is separate from addition to prevent recomputation. inline void MD5::FF(uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac){ a += F(b, c, d) + x + ac; a = rotate_left (a, s) +b; } inline void MD5::GG(uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac){ a += G(b, c, d) + x + ac; a = rotate_left (a, s) +b; } inline void MD5::HH(uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac){ a += H(b, c, d) + x + ac; a = rotate_left (a, s) +b; } inline void MD5::II(uint4& a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac){ a += I(b, c, d) + x + ac; a = rotate_left (a, s) +b; } #endif blasr_libcpp-master/pbdata/NucConversion.cpp000066400000000000000000000310051260756663100215500ustar00rootroot00000000000000#include "NucConversion.hpp" int TwoBit[] = { 0, 1, 2, 3, 0, 1, 2, 3, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255, 0,255, 1,255,255,255, 2, 255,255,255,255,255,255,255,255, 255,255,255,255, 3,255,255,255, 255,255,255,255,255,255,255,255, 255, 0,255, 1,255,255,255, 2, 255,255,255,255,255,255,255,255, 255,255,255,255, 3,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255 }; // // Map from charcter to 3 bit. Treat all non ACGT IUPAC as N // IPUAC: ACGT U M R W S Y K V H D N // int ThreeBit[] = { 0, 1, 2, 3, 4,255,255,255, // 0..3 are native nucletides, 4 // is an 'N', which is // represented just fine in the 3 // bit mode. 255,255,255,255,255,255,255,255, // 8 255,255,255,255,255,255,255,255, // 16 255,255,255,255,255,255,255,255, // 24 255,255,255,255, 5,255,255,255, // 32 define '$' for bwt. 255,255,255,255,255,255,255,255, // 40 255,255,255,255,255,255,255,255, // 48 255,255,255,255,255,255,255,255, // 56 255, 0, 4, 1, 4,255,255, 2, // 64 4,255,255, 4,255, 4, 4,255, // 72 255,255, 4, 4, 3, 4, 4, 4, // 80 255, 4,255,255,255,255,255, 4, // 88 255, 0, 4, 1, 4,255,255, 2, // 96 4,255,255, 4,255, 4, 4,255, // 104 255,255, 4, 4, 3, 4, 4, 4, // 112 4, 4,255,255,255,255,255,255, // 120 255,255,255,255,255,255,255,255, // 128 255,255,255,255,255,255,255,255, // 136 255,255,255,255,255,255,255,255, // 144 255,255,255,255,255,255,255,255, // 152 255,255,255,255,255,255,255,255, // 160 255,255,255,255,255,255,255,255, // 168 255,255,255,255,255,255,255,255, // 176 255,255,255,255,255,255,255,255, // 184 255,255,255,255,255,255,255,255, // 192 255,255,255,255,255,255,255,255, // 200 255,255,255,255,255,255,255,255, // 208 255,255,255,255,255,255,255,255, // 216 255,255,255,255,255,255,255,255, // 224 255,255,255,255,255,255,255,255, // 232 255,255,255,255,255,255,255,255, // 240 255,255,255,255,255,255,255,255 // 248 }; int IsACTG[] = { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int IsLowerCase[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int FourBit[] = { 0, 1, 2, 3, 4, 5, 6, 7, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255, 0,255, 1,255,255,255, 2, 255,255,255,255,255,255, 8,255, 255,255,255,255, 3,255,255,255, 255,255,255,255,255,255,255,255, 255, 4,255, 5,255,255,255, 6, 255,255,255,255,255,255, 8,255, 255,255,255,255, 7,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255 }; int FourBitToAscii[] = {'A', 'C', 'G', 'T', 'a', 'c', 'g', 't', 'N', 'X'}; int ThreeBitToAscii[] = {'A', 'C', 'G', 'T', 'N', '$'}; int MaskedFourBit[] = { 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,0,9,1,9,9,9,2, 9,9,9,9,9,9,8,9, 9,9,9,9,3,9,9,9, 9,9,9,9,9,9,9,9, 9,4,9,5,9,9,9,6, 9,9,9,9,9,9,8,9, 9,9,9,9,7,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9 }; unsigned char AllToUpper[] = { 'A','C','G','T','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','A','N','C','N','N','N','G', 'N','N','N','N','N','N','N','N', 'N','N','N','N','T','N','N','N', 'N','N','N','N','N','N','N','N', 'N','A','N','C','N','N','N','G', 'N','N','N','N','N','N','N','N', 'N','N','N','N','T','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N' }; char AllToLower[] = { 'a','c','g','t','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','a','N','c','N','N','N','g', 'N','N','N','N','N','N','N','N', 'N','N','N','N','t','N','N','N', 'N','N','N','N','N','N','N','N', 'N','a','N','c','N','N','N','g', 'N','N','N','N','N','N','N','N', 'N','N','N','N','t','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N', 'N','N','N','N','N','N','N','N' }; unsigned char PreserveCase[] = { 0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55, 56,57,58,59,60,61,62,63, 64,65,66,67,68,69,70,71, 72,73,74,75,76,77,78,79, 80,81,82,83,84,85,86,87, 88,89,90,91,92,93,94,95, 96,97,98,99,100,101,102,103, 104,105,106,107,108,109,110,111, 112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127, 128,129,130,131,132,133,134,135, 136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151, 152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167, 168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183, 184,185,186,187,188,189,190,191, 192,193,194,195,196,197,198,199, 200,201,202,203,204,205,206,207, 208,209,210,211,212,213,214,215, 216,217,218,219,220,221,222,223, 224,225,226,227,228,229,230,231, 232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247, 248,249,250,251,252,253,254,255}; char TwoBitToAscii[] = {'A', 'C', 'G', 'T'}; unsigned char ReverseComplementNuc[] = { 3, 2, 1, 0,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,'T',127,'G',127,127,127,'C', 127,127,127,127,127,127,'N',127, 127,127,127,127,'A',127,127,127, 127,127,127,127,127,127,127,127, 127,'t',127,'g',127,127,127,'c', 127,127,127,127,127,127,'n',127, 127,127,127,127,'a',127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127 }; // // HDF Column Orders: GTAC // A - column 2; C - column 3; // G - column 0; T - column 1; // Ascii code: // A=65, C=67, G=71, T=84 // a=97, c=99, g=116, t=103 // int NucToHdfColumnOrder[] = { 2, 3, 1, 0, 2, 3, 1, 0, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255, 2,255, 3,255,255,255, 1, 255,255,255,255,255,255,255,255, 255,255,255,255, 0,255,255,255, 255,255,255,255,255,255,255,255, 255, 2,255, 3,255,255,255, 1, 255,255,255,255,255,255,255,255, 255,255,255,255, 0,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255 }; blasr_libcpp-master/pbdata/NucConversion.hpp000066400000000000000000000017211260756663100215570ustar00rootroot00000000000000#ifndef _BLASR_NUC_CONVERSION_HPP_ #define _BLASR_NUC_CONVERSION_HPP_ // // Map from ascii to 2 bit representation. // extern int TwoBit[256]; // // Map from charcter to 3 bit. Treat all non ACGT IUPAC as N // IPUAC: ACGT U M R W S Y K V H D N // extern int ThreeBit[256]; extern int IsACTG[256]; extern int IsLowerCase[256]; extern int FourBit[256]; extern int FourBitToAscii[10]; extern int ThreeBitToAscii[6]; extern int MaskedFourBit[256]; extern unsigned char AllToUpper[256]; extern char AllToLower[256]; extern unsigned char PreserveCase[256]; extern char TwoBitToAscii[4]; extern unsigned char ReverseComplementNuc[256]; // // HDF Column Orders: GTAC // A - column 2; C - column 3; // G - column 0; T - column 1; // Ascii code: // A=65, C=67, G=71, T=84 // a=97, c=99, g=116, t=103 // extern int NucToHdfColumnOrder[256]; // Convert a FASTQ character to Quality. const unsigned int FASTQ_CHAR_TO_QUALITY = 33; #endif // _BLASR_NUC_CONVERSION_HPP_ blasr_libcpp-master/pbdata/PacBioDefs.h000066400000000000000000000154421260756663100203700ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _PBDATA_PACBIO_DEFS_H_ #define _PBDATA_PACBIO_DEFS_H_ #include #include namespace PacBio { namespace GroupNames { ///PulseData static const std::string pulsedata = "PulseData"; ///PulseData/BaseCalls static const std::string basecalls = "BaseCalls"; ///PulseData/Regions static const std::string regions = "Regions"; ///PulseData/BaseCalls/BaseCall static const std::string basecall = "Basecall"; static const std::string qualityvalue = "QualityValue"; static const std::string deletionqv = "DeletionQV"; static const std::string deletiontag = "DeletionTag"; static const std::string insertionqv = "InsertionQV"; static const std::string mergeqv = "MergeQV"; static const std::string substitutionqv = "SubstitutionQV"; static const std::string substitutiontag = "SubstitutionTag"; static const std::string prebaseframes = "PreBaseFrames"; static const std::string widthinframes = "WidthInFrames"; ///PulseData/BaseCalls/ZMW static const std::string zmw = "ZMW"; static const std::string zmwmetrics = "ZMWMetrics"; ///PulseData/BaseCalls/ZMW/HoleNumber static const std::string holenumber = "HoleNumber"; static const std::string holestatus = "HoleStatus"; static const std::string holexy = "HoleXY"; static const std::string numevent = "NumEvent"; ///PulseData/BaseCalls/ZMWMetrics/HQRegionSNR static const std::string hqregionsnr = "HQRegionSNR"; static const std::string readscore = "ReadScore"; static const std::string productivity = "Productivity"; static const std::vector BaxQVNames ({ deletionqv, deletiontag, insertionqv, mergeqv, substitutionqv, substitutiontag, prebaseframes, widthinframes, hqregionsnr, readscore}); } // namespace GroupNames namespace AttributeNames { namespace Common { static const std::string changelistid = "ChangeListID"; static const std::string description = "Description"; } // Common namespace ZMW { namespace HoleStatus { static const std::string lookuptable = "LookupTable"; } } namespace Regions { static const std::string columnnames = "ColumnNames"; static const std::string regiontypes = "RegionTypes"; static const std::string regiondescriptions = "RegionDescriptions"; static const std::string regionsources = "RegionSources"; } // Regions namespace ScanData { namespace DyeSet { static const std::string basemap = "BaseMap"; } } // ScanData } // namespace AttributeNames namespace AttributeValues { namespace ZMW { namespace HoleNumber { static const std::string description = "Hole number on chip array"; } //namespace HoleNumber namespace HoleStatus { static const std::string description = "Type of data coming from ZMW"; static const std::vector lookuptable = {"SEQUENCING", "ANTIHOLE", "FIDUCIAL", "SUSPECT", "ANTIMIRROR", "FDZMW", "FBZMW", "ANTIBEAMLET", "OUTSIDEFOV"}; static const unsigned char sequencingzmw = 0; // not '0' static const unsigned char outsidefov = 8; // not '8' } // namespace HoleStatus namespace HoleXY { static const std::string description = "Coordinates of ZMW on Chip"; } // namespace HoleXY } // namespace ZMW namespace Regions { static const std::vector columnnames = {"HoleNumber", "Region type index", "Region start in bases", "Region end in bases", "Region score"}; static const std::vector regiontypes = {"Adapter", "Insert", "HQRegion"}; static const std::vector regiondescriptions = {"Adapter Hit", "Insert Region", "High Quality bases region. Score is 1000 * predicted accuracy, where predicted accuary is 0 to 1.0"}; static const std::vector regionsources = {"AdapterFinding", "AdapterFinding", "PulseToBase Region classifer"}; } namespace ZMWMetrics { namespace HQRegionSNR { static const std::string description = "HQRegion average signal to noise ratio"; } namespace ReadScore { static const std::string description = "Read raw accuracy prediction"; } namespace Productivity { static const std::string description = "ZMW productivity classification"; } } // ZMWMetrics namespace ScanData { namespace DyeSet { static const std::string basemap = "ACGT"; // default, order matters! } } // ScanData } // namespace AttributeValues } // namespace PacBio #endif blasr_libcpp-master/pbdata/PackedDNASequence.cpp000066400000000000000000000171701260756663100221670ustar00rootroot00000000000000#include "utils.hpp" #include "PackedDNASequence.hpp" const PackedDNAWord PackedDNASequence::NucPosMask[] = {7, 56, 448, 3584, 28672, 229376, 1835008, 14680064, 117440512, 939524096}; const PackedDNAWord PackedDNASequence::NegMask[] = { 4294967288,// 11111111 11111111 11111111 11111000 4294967239,// 11111111 11111111 11111111 11000111 4294966847, /// and so on... 4294963711, 4294938623, 4294737919, 4293132287, 4280287231, 4177526783, 3355443199}; // Masks from the rightmost pos 'R' all to the end of the left side of // the word. const PackedDNAWord PackedDNASequence::MaskRL[] = {1073741823, 1073741816, 1073741760, 1073741312, 1073737728, 1073709056, 1073479680, 1071644672, 1056964608, 939524096}; // Masks from starting position 'L' to the rightmost 'R' const PackedDNAWord PackedDNASequence::MaskLR[] = {7, 63, 511, 4095, 32767, 262143, 2097151, 16777215, 134217727, 1073741823}; /* * Count nucleotides by Xor'ing with the complement of the bit pattern. */ const PackedDNAWord PackedDNASequence::xorMask[] = { 1073741823, // mask A=000 by 111111111111111111111111111111 920350134, // mask C=001 by 110110110110110110110110110110 766958445, // mask G=010 by 101101101101101101101101101101 613566756, // mask T=011 by 100100100100100100100100100100 460175067, // mask N=100 by 011011011011011011011011011011 153391689, // mask 001001001001001001001001001001 *unused*, can mask X=110 306783378, // mask 010010010010010010010010010010 *unused*, can mask X'=101 0}; // mask 000000000000000000000000000000 *unused*, mask X''=111 Nucleotide PackedDNASequence::Get(DNALength pos) { PackedDNAWord offset = pos% NucsPerWord; return (seq[pos/NucsPerWord] >> (3*offset)) & NucMask ; } Nucleotide PackedDNASequence::operator[](DNALength pos){ return Get(pos); } PackedDNASequence::PackedDNASequence() { nCountInWord = 0; nCountNuc = 0; length = arrayLength = 0; seq = NULL; } PackedDNASequence::~PackedDNASequence() { nCountInWord = 0; nCountNuc = 0; length = arrayLength = 0; if (seq) { delete [] seq; seq = NULL; } } void PackedDNASequence::Allocate(DNALength numberOfNucleotides) { arrayLength = CeilOfFraction(numberOfNucleotides, NucsPerWord); length = numberOfNucleotides; if (seq) {delete [] seq; seq = NULL;} if (arrayLength > 0) { seq = ProtectedNew(arrayLength); std::fill(seq, seq + arrayLength, 0); } } void PackedDNASequence::CreateFromDNASequence(DNASequence &dnaSeq) { arrayLength = CeilOfFraction(dnaSeq.length, NucsPerWord); length = dnaSeq.length; if (seq) {delete [] seq; seq = NULL;} if (arrayLength > 0) { seq = ProtectedNew(arrayLength); DNALength pos; for (pos = 0; pos < dnaSeq.length; pos++) { Set(pos, ThreeBit[dnaSeq[pos]]); } } } void PackedDNASequence::Set(DNALength pos, Nucleotide threeBitValue) { DNALength wordPos = pos/NucsPerWord; DNALength wordOffset = pos%NucsPerWord; // // Pull the value to update out of memory. // PackedDNAWord word = seq[wordPos]; // // Expand the 3 bit value into a whole word. // PackedDNAWord nuc = threeBitValue; word = word & NegMask[wordOffset]; nuc = nuc << (3*(pos%NucsPerWord)); word = word + nuc; // // Write back the whole word. // seq[wordPos] = word; } DNALength PackedDNASequence::CountInWord(PackedDNAWord word, PackedDNAWord wordMask, Nucleotide nuc) { /* * Count the number of times a nucleotide (3-mer) appears in a word. * This is done by a series of masking and ands. * The packed format is a triplet of bits (b2,b1,b0), where N is a * mask bit, and n1n0 specifies the nucleotide. * * The sequence CCGN appears as * 001001010100 * * To count C's: perform xor mask with a complement mask that will * produce a triplet of 111 on every position where there is a C, * followed by an and with a stride-isolation mask. * * b0 b1 b2 * 001001010100 001001010100 001001010100 * xor 110110110110 110110110110 110110110110 * ------------ ------------ ------------ * 111111100100 111111100100 111111100100 * and 001001001001 010010010010 100100100100 * ------------ ------------ ------------ * 001001000000 010010000010 000000000100 * * Shift b1 by 1 to get parity with b0. * 010010000010 -> 001001000001 * 001001000001 * And with b0 pattern 001001000000 * to count masked nucs. ------------ * nuc_count= 001001000000 * Shift the b2 by 2 to set up the and-gate. * 000000000100 -> 000000000001 * and ~MASK with nuc_count to get rid of masked columns if the * whole word is not being calculated. * 111111111110 & 001001000000 = 001001000000 * Finally, use 64-bit multiplication bit-hack to count the number * of set-bits: * CountInWord(001001000000) = 2 * */ PackedDNAWord w0,w1,w2, w; PackedDNAWord w01, w12; Nucleotide tbn = ThreeBit[nuc]; PackedDNAWord xorMaskNuc = xorMask[tbn]; w0 = w1 = w2 = (word ^ xorMaskNuc); w0 = (w0) & Mask0All; w1 = ((w1) & Mask1All) >> 1; w2 = ((w2) & Mask2All) >> 2; // Ideally the architecture will parallelize all these // Do a cascaded. // w01 = (w0 & w1); // w12 = (w1 & w2); // w = w01 & w12; w = ((w0 & w1) & w2) & wordMask; // ++nCountInWord; return CountBits(w); } DNALength PackedDNASequence::CountNuc(DNALength start, DNALength end, Nucleotide nuc) { DNALength startWordIndex, endWordIndex, wordIndex; DNALength startInWord, endInWord; Nucleotide tbn = ThreeBit[nuc]; endInWord = NucsPerWord; startInWord = start % NucsPerWord; startWordIndex = start / NucsPerWord; endWordIndex = end / NucsPerWord; // // Process all whole words. // DNALength nNuc = 0; for (wordIndex = startWordIndex; wordIndex < endWordIndex; wordIndex++) { endInWord = NucsPerWord; nNuc += CountInWord(seq[wordIndex] & MaskRL[startInWord], MaskRL[startInWord], nuc); startInWord = 0; } /* * Look to see if there is extra sequence to process when the seq * does not end on a word boundary. */ if (end % NucsPerWord != 0) { endInWord = end % NucsPerWord; nNuc += CountInWord(seq[wordIndex] & MaskRL[startInWord] & MaskLR[endInWord-1], MaskRL[startInWord] & MaskLR[endInWord-1], nuc); } // ++nCountNuc; return nNuc; } void PackedDNASequence::Write(std::ostream &out) { out.write((char*)&arrayLength, sizeof(arrayLength)); out.write((char*)&length, sizeof(length)); if (arrayLength > 0) { out.write((char*)seq, sizeof(PackedDNAWord)*arrayLength); } } void PackedDNASequence::Read(std::istream &in) { in.read((char*)&arrayLength, sizeof(arrayLength)); in.read((char*)&length, sizeof(length)); if (seq) {delete [] seq; seq = NULL;} if (arrayLength > 0) { seq = ProtectedNew(arrayLength); in.read((char*)seq, sizeof(PackedDNAWord)*arrayLength); } } void PackedDNASequence::PrintUnpacked(std::ostream &out, int lineLength) { DNALength p; for (p = 0; p < length; p++) { out << (char) ThreeBitToAscii[Get(p)]; if (p % lineLength == lineLength-1) { out << std::endl; } } if (p % lineLength != 0) { out << std::endl; } } blasr_libcpp-master/pbdata/PackedDNASequence.hpp000066400000000000000000000033771260756663100222000ustar00rootroot00000000000000#ifndef _BLASR_PACKED_DNA_SEQUENCE_HPP_ #define _BLASR_PACKED_DNA_SEQUENCE_HPP_ #include #include "DNASequence.hpp" #include "NucConversion.hpp" #include "utils/BitUtils.hpp" /* * Implement a structure to maintain DNA as 3 bits per nucleotide. * The extra bit is required for N's in the sequence. A key is that * this structure is read-only through the operator[]. It may be set * with the PackedDNASequence::Set(pos,value) command. */ typedef unsigned int PackedDNAWord; class PackedDNASequence { public: static const PackedDNAWord Mask2All = 613566756; //100100100... static const PackedDNAWord Mask1All = 306783378; //010010010... static const PackedDNAWord Mask0All = 153391689; //001001001... static const PackedDNAWord xorMask[]; static const PackedDNAWord NucPosMask[]; static const PackedDNAWord NegMask[]; static const PackedDNAWord MaskRL[]; static const PackedDNAWord MaskLR[]; static const PackedDNAWord NucMask = 7; static const DNALength NucsPerWord = 10; PackedDNAWord *seq; int nCountInWord; int nCountNuc; DNALength length; DNALength arrayLength; Nucleotide Get(DNALength pos); Nucleotide operator[](DNALength pos); PackedDNASequence(); ~PackedDNASequence(); void Allocate(DNALength numberOfNucleotides); void CreateFromDNASequence(DNASequence &dnaSeq); void Set(DNALength pos, Nucleotide threeBitValue); DNALength CountInWord(PackedDNAWord word, PackedDNAWord wordMask, Nucleotide nuc); DNALength CountNuc(DNALength start, DNALength end, Nucleotide nuc); void Write(std::ostream &out); void Read(std::istream &in); void PrintUnpacked(std::ostream &out, int lineLength = 50); }; #endif // _BLASR_PACKED_DNA_SEQUENCE_HPP_ blasr_libcpp-master/pbdata/ReverseCompressIndex.cpp000066400000000000000000000022671260756663100231040ustar00rootroot00000000000000#include #include #include "utils.hpp" #include "ReverseCompressIndex.hpp" ReverseCompressIndex::ReverseCompressIndex() { index = NULL; indexLength = binSize = maxRun = 0; } ReverseCompressIndex::~ReverseCompressIndex() { ReverseCompressIndex::Free(); } void ReverseCompressIndex::Free() { if (index) {delete [] index; index = NULL;} indexLength = binSize = maxRun = 0; } void ReverseCompressIndex::Write(std::ofstream &out) { out.write((char*) &indexLength, sizeof(int)); out.write((char*) &binSize, sizeof(int)); out.write((char*) &maxRun, sizeof(int)); out.write((char*) index, sizeof(int) * indexLength); } void ReverseCompressIndex::Read(std::ifstream &in) { in.read((char*) &indexLength, sizeof(int)); in.read((char*) &binSize, sizeof(int)); in.read((char*) &maxRun, sizeof(int)); index = ProtectedNew(indexLength); in.read((char*) index, sizeof(int) *indexLength); } void ReverseCompressIndex::ShallowCopy(ReverseCompressIndex &rhs) { ReverseCompressIndex::Free(); // Free before shallow copy. index = rhs.index; indexLength = rhs.indexLength; binSize = rhs.binSize; maxRun = rhs.maxRun; } blasr_libcpp-master/pbdata/ReverseCompressIndex.hpp000066400000000000000000000007441260756663100231070ustar00rootroot00000000000000#ifndef _BLASR_REVERSE_COMPRESS_INDEX_HPP_ #define _BLASR_REVERSE_COMPRESS_INDEX_HPP_ class ReverseCompressIndex { public: int *index; int indexLength; int binSize; int maxRun; int size() { return indexLength;} ReverseCompressIndex(); ~ReverseCompressIndex(); void Write(std::ofstream &out); void Read(std::ifstream &in); void ShallowCopy(ReverseCompressIndex &rhs); void Free(); }; #endif // _BLASR_REVERSE_COMPRESS_INDEX_HPP_ blasr_libcpp-master/pbdata/SMRTSequence.cpp000066400000000000000000000345421260756663100212440ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #include #include "utils/SMRTTitle.hpp" #include "SMRTSequence.hpp" using namespace std; SMRTSequence::SMRTSequence() : FASTQSequence() , subreadStart_(0) // subread start , subreadEnd_(0) // subread end , preBaseFrames(nullptr) , widthInFrames(nullptr) , pulseIndex(nullptr) , startFrame(nullptr) // not allocated by default , meanSignal(nullptr) // not allocated by default , maxSignal(nullptr) // not allocated by default , midSignal(nullptr) // not allocated by default , classifierQV(nullptr) // not allocated by default , lowQualityPrefix(0) // By default, allow the entire read. , lowQualitySuffix(0) // By default, allow the entire read. , highQualityRegionScore(0) // HQ read score , readScore(0) // read score , readGroupId_("") // read group id , copiedFromBam(false) #ifdef USE_PBBAM , bamRecord(PacBio::BAM::BamRecord()) #endif { // ZMWMetrics for (size_t i = 0; i < 4; i++) { hqRegionSnr_[i] = -1; } } void SMRTSequence::Allocate(DNALength length) { // Assert *this has no allocated space. if (not (seq == NULL && preBaseFrames == NULL && widthInFrames == NULL and pulseIndex == NULL)) { cout << "ERROR, trying to double-allocate memory for a SMRTSequence." << endl; exit(1); } FASTQSequence::AllocateRichQualityValues(length); seq = ProtectedNew(length); this->length = length; qual.Allocate(length); preBaseFrames = ProtectedNew(length); widthInFrames = ProtectedNew(length); pulseIndex = ProtectedNew(length); subreadEnd_ = length; deleteOnExit = true; } void SMRTSequence::SetSubreadTitle(SMRTSequence &subread, DNALength subreadStart, DNALength subreadEnd) { stringstream titleStream; titleStream << title << "/"<< subreadStart << "_" << subreadEnd; subread.CopyTitle(titleStream.str()); } void SMRTSequence::SetSubreadBoundaries(SMRTSequence &subread, DNALength subreadStart, DNALength subreadEnd) { if (subreadEnd == -1) { subreadEnd = length; } assert(subreadEnd - subreadStart <= length); subread.subreadStart_ = subreadStart; subread.subreadEnd_ = subreadEnd; SetSubreadTitle(subread, subreadStart, subreadEnd); } void SMRTSequence::MakeSubreadAsMasked(SMRTSequence &subread, DNALength subreadStart, int subreadEnd) { subread.Free(); // // This creates the entire subread, but masks out the portions // that do not correspond to this insert. // static_cast(&subread)->Copy(*this); SetSubreadBoundaries(subread, subreadStart, subreadEnd); DNALength pos; for (pos = 0; pos < subreadStart; pos++) { subread.seq[pos] = 'N'; } for (pos = subreadEnd; pos < length; pos++) { subread.seq[pos] = 'N'; } // This is newly allocated memory, free it on exit. assert(subread.deleteOnExit); } void SMRTSequence::MakeSubreadAsReference(SMRTSequence &subread, DNALength subreadStart, int subreadEnd) { subread.Free(); // // Just create a reference to a substring of this read. // static_cast(&subread)->ReferenceSubstring(*this, subreadStart, subreadEnd - subreadStart); SetSubreadBoundaries(subread, subreadStart, subreadEnd); // The subread references this read, protect the memory. assert(not subread.deleteOnExit); } void SMRTSequence::Copy(const SMRTSequence &rhs) { SMRTSequence::Copy(rhs, 0, rhs.length); } void SMRTSequence::Copy(const SMRTSequence &rhs, int rhsPos, int rhsLength) { // Sanity check CheckBeforeCopyOrReference(rhs, "SMRTSequence"); // Free this SMRTSequence before copying anything from rhs. SMRTSequence::Free(); FASTQSequence subseq; // subseq.seq is referenced, while seq.title is not, we need to call // subseq.Free() to prevent memory leak. static_cast(&subseq)->ReferenceSubstring(rhs, rhsPos, rhsLength); static_cast(&subseq)->CopyTitle(rhs.title, rhs.titleLength); if (rhs.length == 0) { static_cast(this)->Copy(subseq); // // Make sure that no values of length 0 are allocated by returning here. // } else { assert(rhs.seq != seq); assert(rhsLength <= rhs.length); assert(rhsPos < rhs.length); // Copy seq, title and FASTQ QVs from subseq static_cast(this)->Copy(subseq); // Copy SMRT QVs if (rhs.preBaseFrames != NULL) { preBaseFrames = ProtectedNew(length); memcpy(preBaseFrames, rhs.preBaseFrames, length*sizeof(HalfWord)); } if (rhs.widthInFrames != NULL) { widthInFrames = ProtectedNew(length); memcpy(widthInFrames, rhs.widthInFrames, length*sizeof(HalfWord)); } if (rhs.pulseIndex != NULL) { pulseIndex = ProtectedNew (length); memcpy(pulseIndex, rhs.pulseIndex, sizeof(int) * length); } } // Copy other member variables from rhs subreadStart_ = rhs.subreadStart_; subreadEnd_ = rhs.subreadEnd_; lowQualityPrefix = rhs.lowQualityPrefix; lowQualitySuffix = rhs.lowQualitySuffix; highQualityRegionScore = rhs.highQualityRegionScore; zmwData = rhs.zmwData; assert(deleteOnExit); // should have control over seq and all QVs subseq.Free(); copiedFromBam = rhs.copiedFromBam; #ifdef USE_PBBAM bamRecord = rhs.bamRecord; #endif } void SMRTSequence::Print(ostream &out) const { out << "SMRTSequence for zmw " << HoleNumber() << ", [" << SubreadStart() << ", " << SubreadEnd() << ")" << endl; DNASequence::Print(out); } SMRTSequence& SMRTSequence::operator=(const SMRTSequence &rhs) { SMRTSequence::Copy(rhs); return *this; } void SMRTSequence::Free() { if (deleteOnExit == true) { if (preBaseFrames) { delete[] preBaseFrames; } if (widthInFrames) { delete[] widthInFrames; } if (pulseIndex) { delete[] pulseIndex; } if (startFrame) { delete[] startFrame; } // FIXME: memory of QVs should be handled within class // in a consistent way. // Comments from Mark Chaisson: // meanSignal, maxSignal, midSignal and classifierQV // need to be handled separatedly. } // Reset SMRT QV pointers anyway preBaseFrames = NULL; widthInFrames = NULL; pulseIndex = NULL; startFrame = NULL; // Reset member variables subreadStart_ = subreadEnd_ = 0; lowQualityPrefix = lowQualitySuffix = 0; readScore = 0; highQualityRegionScore = 0; readGroupId_ = ""; copiedFromBam = false; #ifdef USE_PBBAM bamRecord = PacBio::BAM::BamRecord(); #endif // ZMWMetrics for (size_t i = 0; i < 4; i++) { hqRegionSnr_[i] = -1; } // Free seq, title and FASTQ QVs, also reset deleteOnExit. // Don't call FASTQSequence::Free() before freeing SMRT QVs. FASTQSequence::Free(); } SMRTSequence & SMRTSequence::HoleNumber(UInt holeNumber) { zmwData.holeNumber = holeNumber; return *this; } UInt SMRTSequence::HoleNumber(void) const { return zmwData.holeNumber; } SMRTSequence & SMRTSequence::HoleXY(const int x, const int y) { zmwData.x = x; zmwData.y = y; return *this; } UInt SMRTSequence::HoleX(void) const { return zmwData.x; } UInt SMRTSequence::HoleY(void) const { return zmwData.y; } SMRTSequence & SMRTSequence::HoleStatus(const unsigned char holeStatus) { zmwData.holeStatus = holeStatus; return *this; } unsigned char SMRTSequence::HoleStatus(void) const { return zmwData.holeStatus; } std::string SMRTSequence::MovieName(void) const { return SMRTTitle(GetTitle()).MovieName(); } DNALength SMRTSequence::SubreadStart(void) const { return subreadStart_; } SMRTSequence & SMRTSequence::SubreadStart(const DNALength start) { subreadStart_ = start; return *this; } DNALength SMRTSequence::SubreadEnd(void) const { return subreadEnd_; } SMRTSequence & SMRTSequence::SubreadEnd(const DNALength end) { subreadEnd_ = end; return *this; } DNALength SMRTSequence::SubreadLength(void) const { return subreadEnd_ - subreadStart_; } std::string SMRTSequence::ReadGroupId() const { return readGroupId_; } SMRTSequence & SMRTSequence::ReadGroupId(const std::string & rid) { readGroupId_ = rid; return *this; } float SMRTSequence::HQRegionSnr(const char base) const { if (::toupper(base) == 'A') return hqRegionSnr_[SMRTSequence::SnrIndex4Base::A]; else if (::toupper(base) == 'C') return hqRegionSnr_[SMRTSequence::SnrIndex4Base::C]; else if (::toupper(base) == 'G') return hqRegionSnr_[SMRTSequence::SnrIndex4Base::G]; else if (::toupper(base) == 'T') return hqRegionSnr_[SMRTSequence::SnrIndex4Base::T]; else assert("Base must be in A, C, G, T" == 0); } SMRTSequence & SMRTSequence::HQRegionSnr(const char base, float v) { if (::toupper(base) == 'A') hqRegionSnr_[SMRTSequence::SnrIndex4Base::A] = v; else if (::toupper(base) == 'C') hqRegionSnr_[SMRTSequence::SnrIndex4Base::C] = v; else if (::toupper(base) == 'G') hqRegionSnr_[SMRTSequence::SnrIndex4Base::G] = v; else if (::toupper(base) == 'T') hqRegionSnr_[SMRTSequence::SnrIndex4Base::T] = v; else assert("Base must be in A, C, G, T" == 0); return *this; } #ifdef USE_PBBAM void SMRTSequence::Copy(const PacBio::BAM::BamRecord & record, bool copyAllQVs) { Free(); copiedFromBam = true; bamRecord = PacBio::BAM::BamRecord(record); // Only copy insertionQV, deletionQV, substitutionQV, mergeQV, // deletionTag and substitutionTag from BamRecord to SMRTSequence. // Do NOT copy other SMRTQVs such as startFrame, meanSignal... (static_cast(this))->Copy(record); // Set subread start, subread end in coordinate of zmw. if (record.Type() != PacBio::BAM::RecordType::CCS) { subreadStart_ = static_cast(record.QueryStart()); subreadEnd_ = static_cast(record.QueryEnd()); } else { subreadStart_ = 0; subreadEnd_ = static_cast(record.Sequence().length());; } // Shall we copy all pulse QVs including ipd and pw? if (copyAllQVs) { if (record.HasPreBaseFrames()) { std::vector qvs = record.PreBaseFrames().DataRaw(); assert(preBaseFrames == nullptr); preBaseFrames = ProtectedNew(qvs.size()); std::memcpy(preBaseFrames, &qvs[0], qvs.size() * sizeof(HalfWord)); } if (record.HasIPD()) { std::vector qvs = record.IPD().DataRaw(); assert(widthInFrames == nullptr); widthInFrames = ProtectedNew(qvs.size()); std::memcpy(widthInFrames, &qvs[0], qvs.size() * sizeof(HalfWord)); } } // preBaseQVs are not included in BamRecord, and will not be copied. // Copy read group id from BamRecord. ReadGroupId(record.ReadGroupId()); // PacBio bam for secondary analysis does NOT carry zmw // info other than holeNumber, including holeStatus, holeX, // holeY, numEvents. UInt hn = static_cast (record.HoleNumber()); this->HoleNumber(hn). // Assumption: holeStatus of a bam record must be 'SEQUENCING' HoleStatus(static_cast (PacBio::AttributeValues::ZMW::HoleStatus::sequencingzmw)). // x = lower 16 bit, y = upper 16 bit HoleXY(hn & 0x0000FFFF, hn >> 16); // Set hq region read score if (record.HasReadAccuracy()) { // In pre 3.0.1 BAM, ReadAccuracy is in [0, 1000], // in post 3.0.1 BAM, ReadAccuracy is a float in [0, 1] // In blasr_libcpp, which supports both HDF5 and BAM, // readScore should always be a float in [0, 1], // and highQualityRegionScore always be a int in [0, 1000] readScore = float(record.ReadAccuracy()); if (readScore <= 1.0) { highQualityRegionScore = int(readScore * 1000); } else { highQualityRegionScore = int(readScore); readScore /= 1000.0; } } // Set HQRegionSNR if record has the 'sn' tag if (record.HasSignalToNoise()) { // Signal to noise ratio of ACGT (in that particular ORDER) over // HQRegion from BAM: record.SignalToNoise() std::vector snrs = record.SignalToNoise(); this->HQRegionSnr('A', snrs[0]) .HQRegionSnr('C', snrs[1]) .HQRegionSnr('G', snrs[2]) .HQRegionSnr('T', snrs[3]); } } #endif blasr_libcpp-master/pbdata/SMRTSequence.hpp000066400000000000000000000152531260756663100212470ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #ifndef _BLASR_SMRT_SEQUENCE_HPP_ #define _BLASR_SMRT_SEQUENCE_HPP_ #include #include #include #include "Types.h" #include "Enumerations.h" #include "NucConversion.hpp" #include "FASTQSequence.hpp" #include "reads/RegionTable.hpp" #include "reads/ZMWGroupEntry.hpp" class SMRTSequence : public FASTQSequence { friend class HDFZMWReader; friend class HDFZMWWriter; friend class HDFZMWMetricsWriter; private: enum SnrIndex4Base {A=0, C=1, G=2, T=3}; float hqRegionSnr_[4]; // Always saved as 'ACGT' DNALength subreadStart_; DNALength subreadEnd_; // read group id associated with each SMRTSequence std::string readGroupId_; public: ZMWGroupEntry zmwData; HalfWord *preBaseFrames; HalfWord *widthInFrames; // // The following are fields that are read in from the pulse file. // Because they are not standard in bas.h5 files, these fields // should not be preallocated when resizing a SMRTSequence, and // memory should be managed separately. For now, these fields all // have the same length as the number of bases, but this could // change so that all pulse values are stored in a SMRTSequence. // HalfWord *meanSignal, *maxSignal, *midSignal; float *classifierQV; unsigned int *startFrame; int *pulseIndex; DNALength lowQualityPrefix, lowQualitySuffix; int highQualityRegionScore; // High quality region score in region table. float readScore; // Whether or not this is originally copied from a BamRecord. bool copiedFromBam; public: SMRTSequence(); inline ~SMRTSequence(); /// \name Sets and gets attributes. /// \{ /// Set HoleNumber. /// \returns this SMRTSequence SMRTSequence & HoleNumber(UInt holeNumber); /// \reutrns HoleNumber UInt HoleNumber(void) const; /// Set HoleXY SMRTSequence & HoleXY(const int x, const int y); /// \returns HoleX UInt HoleX(void) const; /// \returns HoleY UInt HoleY(void) const; /// Set HoleStatus SMRTSequence & HoleStatus(const unsigned char); /// \returns HoleStatus unsigned char HoleStatus(void) const; /// \returns movie name parsed from sequence title std::string MovieName(void) const; /// \returns start pos of this sequence in coordinate of zmw polymerase sequence DNALength SubreadStart(void) const; /// Sets subreadStart. SMRTSequence & SubreadStart(const DNALength start); /// \returns subread end pos of this sequence in coordinate of zmw polymerase sequence DNALength SubreadEnd(void) const; /// Set subread end pos in coordinate of polymerase sequence. SMRTSequence & SubreadEnd(const DNALength end); /// A SMRTSequence's this->seq may point to sequence of a whole /// polymerase read, but only represents a subread [subreadStart_, subreadEnd_). /// \returns subread length (SubreadEnd() - SubreadStart()) DNALength SubreadLength(void) const; /// \returns read group id for this sequence. std::string ReadGroupId(void) const; /// Set readGroup Id for this sequence. SMRTSequence & ReadGroupId(const std::string & rid); /// Access to HQRegion SNRs must be done via public API. float HQRegionSnr(const char base) const; /// Set HQRegion SNR of base as v. SMRTSequence & HQRegionSnr(const char base, float v); /// \} public: /// \name Clip subread /// \{ SMRTSequence & Clip(const DNALength subreadStart, const DNALength subreadEnd); /// \} void Allocate(DNALength length); void SetSubreadTitle(SMRTSequence &subread, DNALength subreadStart, DNALength subreadEnd); void SetSubreadBoundaries(SMRTSequence &subread, DNALength subreadStart, DNALength subreadEnd); void MakeSubreadAsMasked(SMRTSequence &subread, DNALength subreadStart = 0, int subreadEnd = -1); void MakeSubreadAsReference(SMRTSequence &subread, DNALength subreadStart = 0, int subreadEnd = -1); void Copy(const SMRTSequence &rhs); void Copy(const SMRTSequence &rhs, int rhsPos, int rhsLength); void Print(std::ostream &out) const; SMRTSequence& operator=(const SMRTSequence &rhs); void Free(); #ifdef USE_PBBAM public: // Copy read sequence, title, holeNumber, readGroupId, and QVs // (iq, dq, sq, mq, st, dt) from BamRecord to this SMRTSequence. // If copyAllQVs is false, also copy all QVs. void Copy(const PacBio::BAM::BamRecord & record, bool copyAllQVs = false); // Keep track of BamRecord from which this SMRTSequence is // originally copied. However, one should NOT assume // that this SMRTSequence has the same sequence, title, QVs as // the BamRecord, because this SMRTSequence may be created by // MakeSubreadAsMasked(...) or MakeRC(...). PacBio::BAM::BamRecord bamRecord; #endif }; inline SMRTSequence::~SMRTSequence(){ SMRTSequence::Free(); } #endif // _BLASR_SMRT_SEQUENCE_HPP_ blasr_libcpp-master/pbdata/SeqUtils.hpp000066400000000000000000000005451260756663100205400ustar00rootroot00000000000000#ifndef _BLASR_SEQ_UTILS_HPP_ #define _BLASR_SEQ_UTILS_HPP_ #include "DNASequence.hpp" template< typename T_Sequence> int OnlyACTG(T_Sequence &seq); template< typename T_Sequence> DNALength CountMasked(T_Sequence &seq); template< typename T_Sequence> int CountNotMasked(T_Sequence &seq); #include "SeqUtilsImpl.hpp" #endif // _BLASR_SEQ_UTILS_HPP_ blasr_libcpp-master/pbdata/SeqUtilsImpl.hpp000066400000000000000000000020271260756663100213570ustar00rootroot00000000000000#include #include #include #include "utils.hpp" #include "DNASequence.hpp" #include "NucConversion.hpp" #include "SeqUtils.hpp" template< typename T_Sequence> int OnlyACTG(T_Sequence &seq) { DNALength p; for (p = 0; p < seq.length; p++) { if (ThreeBit[seq.seq[p]] > 3) return 0; } return 1; } template< typename T_Sequence> DNALength CountMasked(T_Sequence &seq) { DNALength p; DNALength nMasked = 0; for (p = 0; p < seq.length; p++) { if ((seq.seq[p] >= 'a' and seq.seq[p] <= 'z') or seq.seq[p] == 'N') { nMasked++; } } return nMasked; } template< typename T_Sequence> int CountNotMasked(T_Sequence &seq) { int p; int nUnmasked = 0; for (p = 0; p < seq.length; p++ ) { if (seq.seq[p] == 'A' or seq.seq[p] == 'C' or seq.seq[p] == 'G' or seq.seq[p] == 'T') { nUnmasked++; } } return nUnmasked; } blasr_libcpp-master/pbdata/StringUtils.cpp000066400000000000000000000072361260756663100212550ustar00rootroot00000000000000#include #include #include #include #include "Types.h" #include "MD5Utils.hpp" #include "StringUtils.hpp" int ExactPatternMatch(string orig, string pattern) { string::size_type pos = orig.find(pattern); if (pos == orig.npos) { return 0; } else { return 1; } } void MakeMD5(const char *data, unsigned int dataLength, string &md5Str, int nChars) { MD5 md5engine; md5engine.update((unsigned char*) data, dataLength); md5engine.finalize(); char *md5c_str = md5engine.hex_digest(); assert(md5c_str != NULL); if (nChars == 0) { nChars = 32; } md5Str.assign(md5c_str, nChars); delete[] md5c_str; } void MakeMD5(string &data, string &md5Str, int nChars) { MakeMD5(data.c_str(), data.size(), md5Str, nChars); } int IsWhitespace(char c) { return (c == ' ' or c == '\t' or c == '\n' or c == '\r' or c == '\0'); } int IsSpace(char c) { return (c == ' ' or c == '\t'); } int ToWords(string &orig, vector &words) { int curWordStart, curWordEnd; curWordStart = 0; while(curWordStart < orig.size()) { while (curWordStart < orig.size() and IsSpace(orig[curWordStart])) { curWordStart++; } curWordEnd = curWordStart; while (curWordEnd < orig.size() and !IsSpace(orig[curWordEnd])) { curWordEnd++; } string word; if (curWordEnd != curWordStart) { word.assign(orig, curWordStart, curWordEnd - curWordStart); words.push_back(word); } curWordStart = curWordEnd; } return words.size(); } // Splice a string by pattern and save to a vector of token strings. int Splice(const string & orig, const string & pattern, vector & tokens) { assert(pattern.size() > 0); tokens.clear(); size_t search_start = 0; size_t find_pos = orig.find(pattern, search_start); while(find_pos != string::npos) { string x = orig.substr(search_start, find_pos - search_start); tokens.push_back(x); search_start = find_pos + pattern.size(); find_pos = orig.find(pattern, search_start); } tokens.push_back(orig.substr(search_start)); return tokens.size(); } void ParseSeparatedList(const string &csl, vector &values, char delim) { stringstream cslStrm(csl); string valString; string next; do { if (getline(cslStrm, valString, delim)) { if (valString.size() > 0) { values.push_back(valString); } } } while (cslStrm); } int AssignUntilFirstSpace(char *orig, int origLength, string &result) { int i; for (i = 0; i < origLength; i++ ){ if (orig[i] == ' ' or orig[i] == '\t' or orig[i] == '\n' or orig[i] == '\r' or orig[i] == '\0') { break; } } result.assign(orig, i); return i; } string RStrip(string & fileName) { // Remove right-ended spaces int i = fileName.size(); if (i == 0) { return ""; } while (i >= 1) { i--; if (not IsWhitespace(fileName[i])) { break; } } return fileName.substr(0, i + 1); } string MakeReadGroupId(const string & movieName, const ReadType::ReadTypeEnum & readType) { // PBBAM spec 3.0b5: // Read Group Id is computed as MD5(${movieName}//${readType})[0:8], where // movieName is PacBio platform unit id, e.g., (m140905_042...77_s1_X0), // readtype is SUBREAD, CCS or UNKNOWN, // CCS reads for a movie named "movie32" would have // RGID STRING = "f5b4ffb6" string seed = movieName + "//" + ReadType::ToString(readType); string readGroupId; MakeMD5(seed, readGroupId, 8); return readGroupId; } blasr_libcpp-master/pbdata/StringUtils.hpp000066400000000000000000000035641260756663100212620ustar00rootroot00000000000000#ifndef UTILS_STRING_UTILS_H_ #define UTILS_STRING_UTILS_H_ #include #include #include #include #include "Types.h" #include "MD5Utils.hpp" #include "reads/ReadType.hpp" using namespace std; int ExactPatternMatch(string orig, string pattern); void MakeMD5(const char *data, unsigned int dataLength, string &md5Str, int nChars = 0); void MakeMD5(string &data, string &md5Str, int nChars=0); int IsWhitespace(char c); int IsSpace(char c); int ToWords(string &orig, vector &words); int Splice(const string & orig, const string & pattern, vector &tokens); void ParseSeparatedList(const string &csl, vector &values, char delim=','); int AssignUntilFirstSpace(char *orig, int origLength, string &result); template void ParseSeparatedList(const string &csl, vector &values, char delim, int maxVals) { //Parse up to 'maxVals' lines of lists. stringstream cslStrm(csl); T_Value val; string valString; string next; int valIndex = 0; do { if (maxVals == 0 or valIndex < maxVals - 1 ) { getline(cslStrm, valString, delim); } else { // If on last value, get the rest of the line. getline(cslStrm, valString); } if (cslStrm and valString.size() > 0) { stringstream valStrm(valString); if (! (valStrm >> val) ) { cout << "Error, value " << valString << " is malformatted." << endl; } else { values.push_back(val); } } valIndex++; } while (cslStrm); } template void ParseSeparatedList(const string &csl, vector &values, char delim=',') { ParseSeparatedList(csl, values, delim, 0); } string RStrip(string & fileName); /// \returns Read Group Id, given movieName and readType. string MakeReadGroupId(const string & movieName, const ReadType::ReadTypeEnum & readType); #endif blasr_libcpp-master/pbdata/Types.h000066400000000000000000000007051260756663100175310ustar00rootroot00000000000000#ifndef _BLASR_TYPES_H_ #define _BLASR_TYPES_H_ #include typedef unsigned long ULong; // Move DNA sequence related definitions. typedef uint32_t DNALength; typedef unsigned char Nucleotide; // // Add definitions to handle 64/32 bit computing environments // typedef uint32_t VectorIndex; typedef uint32_t UInt; typedef uint8_t Byte; typedef uint8_t UChar; typedef uint16_t HalfWord; typedef float MatchWeight; #endif // _BLASR_TYPES_H_ blasr_libcpp-master/pbdata/VectorUtils.hpp000066400000000000000000000006311260756663100212460ustar00rootroot00000000000000#ifndef _BLASR_VECTOR_UTILS_HPP_ #define _BLASR_VECTOR_UTILS_HPP_ #include // Clear all memory allocated by this vector template void ClearMemory(std::vector & vt) { // Create an empty vector std::vector emptyVector; // First clear the content vt.clear(); // Then swap vt with the empty vector vt.swap(emptyVector); } #endif // _BLASR_VECTOR_UTILS_HPP_ blasr_libcpp-master/pbdata/alignment/000077500000000000000000000000001260756663100202305ustar00rootroot00000000000000blasr_libcpp-master/pbdata/alignment/CmpAlignment.cpp000066400000000000000000000136361260756663100233230ustar00rootroot00000000000000#include "CmpAlignment.hpp" std::map CmpAlignmentBase::columnNameToIndex; unsigned int* CmpAlignmentBase::GetAlignmentIndex() { return &alignmentIndex[0]; } int CmpAlignmentBase::GetAlignmentIndexSize() { return alignmentIndex.size(); } unsigned int CmpAlignmentBase::GetAlignedStrand() { return LookupColumnValue("AlignedStrand"); } unsigned int CmpAlignmentBase::GetRCRefStrand() { return LookupColumnValue("RCRefStrand"); } // synonym unsigned int CmpAlignmentBase::GetTStrand() { return GetRCRefStrand(); } bool CmpAlignmentBase::GetX(int &xp) { if (alignmentIndex.size() > 0) { xp = alignmentIndex[columnNameToIndex["x"]]; return true; } else { xp = -1; return false; } } unsigned int CmpAlignmentBase::GetAlignmentId() { return LookupColumnValue("AlnID"); } unsigned int CmpAlignmentBase::GetX() { return LookupColumnValue("x"); } unsigned int CmpAlignmentBase::GetY() { return LookupColumnValue("y"); } unsigned int CmpAlignmentBase::GetMovieId() { return LookupColumnValue("MovieId"); } unsigned int CmpAlignmentBase::GetAlnGroupId() { return LookupColumnValue("AlnGroupId"); } unsigned int CmpAlignmentBase::GetReadGroupId() { return LookupColumnValue("ReadGroupId"); } unsigned int CmpAlignmentBase::LookupColumnValue(const char * columnName) { if (columnNameToIndex.find(columnName) != columnNameToIndex.end()) { int columnIndex = columnNameToIndex[columnName]; return alignmentIndex[columnIndex]; } else { std::cout << "ERROR, For now cmp files must contain a column " << columnName << std::endl; std::cout << "size of columnNameToIndex: " << columnNameToIndex.size() << std::endl; assert(0); } } void CmpAlignmentBase::InitializeColumnNameToIndex(std::vector &columnNames) { int i; for (i = 0; i < columnNames.size(); i++ ){ columnNameToIndex[columnNames[i]] = i; } } unsigned int CmpAlignmentBase::GetHoleNumber() { return LookupColumnValue("HoleNumber"); } unsigned int CmpAlignmentBase::GetRefGroupId() { return LookupColumnValue("RefGroupId"); } unsigned int CmpAlignmentBase::GetRefSeqId() { return LookupColumnValue("RefSeqId"); } unsigned int CmpAlignmentBase::GetOffsetBegin() { return LookupColumnValue("offset_begin"); } unsigned int CmpAlignmentBase::GetOffsetEnd() { return LookupColumnValue("offset_end"); } unsigned int CmpAlignmentBase::GetQueryStart() { return LookupColumnValue("rStart"); } unsigned int CmpAlignmentBase::GetQueryEnd() { return LookupColumnValue("rEnd"); } unsigned int CmpAlignmentBase::GetRefStart() { return LookupColumnValue("tStart"); } unsigned int CmpAlignmentBase::GetRefEnd() { return LookupColumnValue("tEnd"); } unsigned int CmpAlignmentBase::GetNMatch() { return LookupColumnValue("nM"); } unsigned int CmpAlignmentBase::GetNMismatch() { return LookupColumnValue("nMM"); } unsigned int CmpAlignmentBase::GetNInsertions() { return LookupColumnValue("nIns"); } unsigned int CmpAlignmentBase::GetNDeletions() { return LookupColumnValue("nDel"); } unsigned int CmpAlignmentBase::GetMapQV() { return LookupColumnValue("MapQV"); } unsigned int CmpAlignmentBase::GetSubreadId() { return LookupColumnValue("SubreadId"); } unsigned int CmpAlignmentBase::GetStrobeNumber() { return LookupColumnValue("StrobeNumber"); } unsigned int CmpAlignmentBase::GetSetNumber() { return LookupColumnValue("SetNumber"); } CmpAlignmentBase::CmpAlignmentBase(PlatformId platformIdP) { platformId = platformIdP; } void CmpAlignmentBase::SetPlatformId(PlatformId platformIdP) { platformId = platformIdP; } // CmpAlignment CmpAlignment::CmpAlignment(PlatformId pid) : CmpAlignmentBase(pid) { } void CmpAlignment::StoreAlignmentIndex(unsigned int *alignmentIndexPtr, int alignmentIndexLength) { alignmentIndex.clear(); alignmentIndex.insert(alignmentIndex.begin(), &alignmentIndexPtr[0], &alignmentIndexPtr[alignmentIndexLength]); } void CmpAlignment::StoreAlignmentArray(unsigned char* alignmentArrayPtr, int alignmentArrayLength) { alignmentArray.resize(alignmentArrayLength); unsigned int a; for (a = 0; a < alignmentArrayLength; a++ ){ alignmentArray[a] = alignmentArrayPtr[a]; } } CmpAlignment &CmpAlignment::operator=(const CmpAlignment &rhs) { // deep copy the alignment index alignmentIndex.resize(rhs.alignmentIndex.size()); copy(rhs.alignmentIndex.begin(), rhs.alignmentIndex.end(), alignmentIndex.begin()); // deep copy the alignment array alignmentArray.resize(rhs.alignmentIndex.size()); copy(rhs.alignmentArray.begin(), rhs.alignmentArray.end(), alignmentArray.begin()); // copy fields Z = rhs.Z; index = rhs.index; readGroupId = rhs.readGroupId; movieId = rhs.movieId; refSeqId = rhs.refSeqId; expId = rhs.expId; runId = rhs.runId; panel = rhs.panel; x = rhs.x; y = rhs.y; rcRefStrand = rhs.rcRefStrand; holeNumber = rhs.holeNumber; offsetBegin = rhs.offsetBegin; offsetEnd = rhs.offsetEnd; setNumber = rhs.setNumber, strobeNumber = rhs.strobeNumber, mapQV = rhs.mapQV, nBackRead = rhs.nBackRead, nReadOverlap = rhs.nReadOverlap; subreadId = rhs.subreadId; nMatch = rhs.nMatch, nMismatch = rhs.nMismatch, nIns = rhs.nIns, nDel = rhs.nDel; return *this; } int CmpAlignment::operator<(const CmpAlignment &rhs) const { if (alignmentArray[1] == rhs.alignmentArray[1]) { if (alignmentArray[2] == rhs.alignmentArray[2]) { if (alignmentArray[10] == rhs.alignmentArray[10]) { return (alignmentArray[4] < rhs.alignmentArray[4]); } else { return alignmentArray[10] < rhs.alignmentArray[10]; } } else { return alignmentArray[2] < rhs.alignmentArray[2]; } } else { return alignmentArray[1] < rhs.alignmentArray[1]; } } blasr_libcpp-master/pbdata/alignment/CmpAlignment.hpp000066400000000000000000000057021260756663100233230ustar00rootroot00000000000000#ifndef DATASTRUCTURES_ALIGNMENT_CMP_ALIGNMENT_H_ #define DATASTRUCTURES_ALIGNMENT_CMP_ALIGNMENT_H_ #include #include #include #include #include #include #include "Types.h" #include "Enumerations.h" class CmpAlignmentBase { public: // // For use in referencing alignment sets. TODO: subclass. // PlatformId platformId; int Z; unsigned int index, readGroupId, movieId, refSeqId; unsigned int expId, runId, panel; unsigned int x, y; unsigned int rcRefStrand; unsigned int holeNumber; unsigned int offsetBegin, offsetEnd; unsigned int setNumber, strobeNumber, mapQV, nBackRead, nReadOverlap; unsigned int subreadId; unsigned int nMatch, nMismatch, nIns, nDel; std::vector alignmentArray; std::vector alignmentIndex; static std::map columnNameToIndex; static bool initializedColumnNameToIndex; std::map > fields; unsigned int *GetAlignmentIndex(); int GetAlignmentIndexSize(); unsigned int GetAlignedStrand(); unsigned int GetRCRefStrand(); // synonym unsigned int GetTStrand(); bool GetX(int &xp); unsigned int GetAlignmentId(); unsigned int GetX(); unsigned int GetY(); unsigned int GetMovieId(); unsigned int GetAlnGroupId(); unsigned int GetReadGroupId(); unsigned int LookupColumnValue(const char * columnName); void InitializeColumnNameToIndex(std::vector &columnNames); unsigned int GetHoleNumber(); unsigned int GetRefGroupId(); unsigned int GetRefSeqId(); unsigned int GetOffsetBegin(); unsigned int GetOffsetEnd(); unsigned int GetQueryStart(); unsigned int GetQueryEnd(); unsigned int GetRefStart(); unsigned int GetRefEnd(); unsigned int GetNMatch(); unsigned int GetNMismatch(); unsigned int GetNInsertions(); unsigned int GetNDeletions(); unsigned int GetMapQV(); unsigned int GetSubreadId(); unsigned int GetStrobeNumber(); unsigned int GetSetNumber(); CmpAlignmentBase(PlatformId platformIdP=Springfield); void SetPlatformId(PlatformId platformIdP); }; class CmpAlignment : public CmpAlignmentBase { public: int qStrand, tStrand; int qStart, qLength; int tStart, tLength; // // Default constructor just calls the base constructor to initialize platoformType CmpAlignment(PlatformId pid=Springfield); void StoreAlignmentIndex(unsigned int *alignmentIndexPtr, int alignmentIndexLength); void StoreAlignmentArray(unsigned char* alignmentArrayPtr, int alignmentArrayLength); template void StoreField(std::string fieldName, T_Field* fieldValues, int length); CmpAlignment &operator=(const CmpAlignment &rhs); int operator<(const CmpAlignment &rhs) const; }; #include "CmpAlignmentImpl.hpp" #endif blasr_libcpp-master/pbdata/alignment/CmpAlignmentImpl.hpp000066400000000000000000000003531260756663100241420ustar00rootroot00000000000000 template void CmpAlignment::StoreField(std::string fieldName, T_Field* fieldValues, int length) { fields[fieldName].resize(length); memcpy(&fields[fieldName][0], fieldValues, length * sizeof(T_Field)); } blasr_libcpp-master/pbdata/amos/000077500000000000000000000000001260756663100172115ustar00rootroot00000000000000blasr_libcpp-master/pbdata/amos/AfgBasWriter.cpp000066400000000000000000000056221260756663100222420ustar00rootroot00000000000000#include "AfgBasWriter.hpp" unsigned char AfgBasWriter::pacbioQVtoPhredQV(unsigned char pacbio){ return (unsigned char) floor( 10.0 * log10( 1.0 + pow(10.0, pacbio / 100.0) ) + 0.5 ); } AfgBasWriter::AfgBasWriter() { firstRecord = true; recordCount = 1; defaultQuality = 5; } AfgBasWriter::~AfgBasWriter() { firstRecord = true; recordCount = 1; defaultQuality = 5; } void AfgBasWriter::Initialize(std::string _afgFileName){ afgFileName = _afgFileName; CrucialOpen(afgFileName, afgOut); } void AfgBasWriter::Close() { afgOut.close(); } void AfgBasWriter::SetDefaultQuality(int _defaultQuality){ defaultQuality = _defaultQuality; } int AfgBasWriter::Write(SMRTSequence &seq) { if (firstRecord){ WriteHeader(); firstRecord = false; } WriteOpen(seq); WriteIdentifier(seq); WriteBases(seq); WriteQualities(seq); WriteClose(); return 1; } void AfgBasWriter::WriteHeader() { afgOut << "{UNV" << std::endl; afgOut << "iid:1" << std::endl; afgOut << "com:" << std::endl; afgOut << "generated by AfgBasWriter" << std::endl; afgOut << "Mon Jun 28 14:43:52 2010" << std::endl; // TODO put in real date afgOut << "." << std::endl << "}" << std::endl; afgOut << "{LIB" << std::endl << "iid:1" << std::endl; afgOut << "{DST" << std::endl << "mea:0" << std::endl << "std:0" << std::endl << "}" << std::endl << "}" << std::endl; } void AfgBasWriter::WriteOpen(SMRTSequence &seq) { afgOut << "{RED" << std::endl; afgOut << "frg:" << recordCount + 1 << std::endl; afgOut << "iid:" << recordCount << std::endl; } void AfgBasWriter::WriteIdentifier(SMRTSequence &seq) { afgOut << "clr:0," << seq.length << std::endl; afgOut << "eid:"; std::string fastaTitle; seq.GetFASTATitle(fastaTitle); afgOut << fastaTitle << std::endl; } void AfgBasWriter::WriteClose() { recordCount++; afgOut << "}" << std::endl; afgOut << "{FRG" << std::endl; afgOut << "iid:" << recordCount << std::endl; afgOut << "lib:1" << std::endl << "typ:I" << std::endl << "}" << std::endl; recordCount++; } void AfgBasWriter::WriteBases(SMRTSequence &seq) { afgOut << "seq:" << std::endl; (static_cast(&seq))->PrintSeq( afgOut, lineLength ); afgOut << "." << std::endl; } void AfgBasWriter::WriteQualities(SMRTSequence &seq) { afgOut << "qlt:" << std::endl; int i; for (i = 0; i < seq.length; i++ ){ unsigned char quality = seq.qual.data ? seq.qual[i] : defaultQuality; quality = quality + charToQuality; quality = quality > maxAfgQuality ? maxAfgQuality : quality; quality = quality < minAfgQuality ? minAfgQuality : quality; afgOut << quality; if (i > 0 and (i+1) % lineLength == 0) afgOut << std::endl; } if (i == 0 or i % lineLength != 0) { afgOut << std::endl; } afgOut << "." << std::endl; } blasr_libcpp-master/pbdata/amos/AfgBasWriter.hpp000066400000000000000000000025671260756663100222540ustar00rootroot00000000000000#ifndef _BLASR_AMOS_AFG_BAS_WRITER_HPP_ #define _BLASR_AMOS_AFG_BAS_WRITER_HPP_ #include #include #include #include "SMRTSequence.hpp" #include "qvs/QualityValueVector.hpp" class AfgBasWriter { // TODO correct file type? outFile // TODO change SMRTSequence to FASTQ sequence? then maybe fasta2afg would be // easier to write std::string afgFileName; std::ofstream afgOut; bool firstRecord; int recordCount; int defaultQuality; // Use 122 = '{' - 1 because '{' and '}' are the message delimiters in AMOS. static const unsigned char maxAfgQuality = 122; static const unsigned char charToQuality = 48; static const unsigned char minAfgQuality = charToQuality + 1; static const int lineLength = 80; private: unsigned char pacbioQVtoPhredQV(unsigned char pacbio); public: // Assume that closing the afg file must be done // manually and not in a destructor. ~AfgBasWriter(); AfgBasWriter(); void Initialize(std::string _afgFileName); void Close(); int Write(SMRTSequence &seq); void SetDefaultQuality(int _defaultQuality); private: void WriteHeader(); void WriteOpen(SMRTSequence &seq); void WriteIdentifier(SMRTSequence &seq); void WriteClose(); void WriteBases(SMRTSequence &seq); void WriteQualities(SMRTSequence &seq); }; #endif blasr_libcpp-master/pbdata/build.mk000077700000000000000000000000001260756663100213752makefileustar00rootroot00000000000000blasr_libcpp-master/pbdata/defs.h000066400000000000000000000004431260756663100173450ustar00rootroot00000000000000#ifndef DEFS_H_ #define DEFS_H_ #ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif #ifndef MAX #define MAX(a, b) ((a) > (b) ? (a) : (b)) #endif #define SWAP(a, b) (((a) == (b)) ? 0 : ((a) ^= (b), (b) ^= (a), (a) ^= (b))) #ifndef INF_INT #define INF_INT INT_MAX #endif #endif blasr_libcpp-master/pbdata/loadpulses/000077500000000000000000000000001260756663100204255ustar00rootroot00000000000000blasr_libcpp-master/pbdata/loadpulses/MetricField.cpp000066400000000000000000000101171260756663100233200ustar00rootroot00000000000000#include "MetricField.hpp" Field::Field(std::string n, FieldType t) { name = n; type = t; } bool Field::operator==(const Field &another) const { return (name == another.name && type == another.type); } FieldsRequirement::FieldsRequirement(const std::string & m) { metric = m; if (metric == "QualityValue" || metric == "InsertionQV" || metric == "MergeQV" || metric == "DeletionQV" || metric == "DeletionTag" || metric == "SubstitutionTag" || metric == "SubstitutionQV" || metric == "PreBaseFrames" || metric == "PulseIndex" || metric == "Basecall") { fieldsUseBasFile.push_back(Field (metric , BasField)); } else if (metric == "ClassifierQV") { fieldsUsePlsFile.push_back(Field (metric , PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "StartTimeOffset") { fieldsUsePlsFile.push_back(Field ("StartFrame" , PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "StartFramePulse") {// Compute StartFrame from PulseCalls only fieldsUsePlsFile.push_back(Field ("StartFrame" , PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "StartFrameBase") {// Compute StartFrame from BaseCalls only fieldsUseBasFile.push_back(Field ("PreBaseFrames", BasField)); fieldsUseBasFile.push_back(Field ("WidthInFrames", BasField)); } else if (metric == "WhenStarted") { // WhenStarted does not require any field because it only requires an attribute } else if (metric == "pkmid") { fieldsUsePlsFile.push_back(Field ("MidSignal" , PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "Light") { fieldsUsePlsFile.push_back(Field ("WidthInFrames", PlsField)); fieldsUsePlsFile.push_back(Field ("MeanSignal" , PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "PulseWidth" || metric == "WidthInFrames") { // Both metrics require a field "WidthInFrames", which can be read from // either bas.h5 or pls.h5. fieldsUseBasFile.push_back(Field ("WidthInFrames", BasField)); fieldsUsePlsFile.push_back(Field ("WidthInFrames", PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "StartFrame") { // Compute StartFrame from either PulseCalls or BaseCalls fieldsUseBasFile.push_back(Field ("PreBaseFrames", BasField)); fieldsUseBasFile.push_back(Field ("WidthInFrames", BasField)); fieldsUsePlsFile.push_back(Field ("StartFrame" , PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "IPD") { // IPD can be obtained from basFile.PreBaseFrames or computed from // plsFile.WidthInFrames and plsFile.StartFrame. Use the second method if possible fieldsUseBasFile.push_back(Field ("PreBaseFrames", BasField)); fieldsUsePlsFile.push_back(Field ("StartFrame" , PlsField)); fieldsUsePlsFile.push_back(Field ("WidthInFrames", PlsField)); fieldsUsePlsFile.push_back(Field ("NumEvent" , PlsField)); fieldsUsePlsFile.push_back(Field ("PulseIndex" , BasField)); } else if (metric == "") { // No metric, no required fields. } else { std::cout << "ERROR, metric [" << metric << "] is not supported." << std::endl; exit(1); } } blasr_libcpp-master/pbdata/loadpulses/MetricField.hpp000066400000000000000000000124121260756663100233250ustar00rootroot00000000000000#ifndef _LOADPULSES_METRICFIELD_HPP_ #define _LOADPULSES_METRICFIELD_HPP_ #include #include #include #include #include "Types.h" enum FieldType {BasField, PlsField}; class Field { public: std::string name; FieldType type; Field(std::string n, FieldType t); bool operator == (const Field &another) const; }; class FieldsRequirement { public: std::string metric; std::vector fieldsUseBasFile; std::vector fieldsUsePlsFile; // Return fields that are required for computing this metric. // Eighteen metrics are supported in total. // [1/18] metric requires only an attribute (not a field): // WhenStarted // // [9/18] metrics require exactly one BaseCall field // QualityValue InsertionQV MergeQV DeletionQV // DeletionTag SubstitutionTag SubstitutionQV PreBaseFrames // PulseIndex // // [4/18] metrics require more than one field and can be computed using // only one method: // BaseCall PulseCall // ---------------------------------------------------- // ClassifierQV PulseIndex NumEvent // ClassifierQV // ---------------------------------------------------- // pkmid PulseIndex NumEvent // MidSignal // ---------------------------------------------------- // Light PulseIndex NumEvent // WidthInFrames // MeanSignal // ---------------------------------------------------- // StartTimeOffset PulseIndex NumEvent // StartFrame // ---------------------------------------------------- // [4/18] metrics can be computed from both BaseCalls and PulseCalls. // But sometimes the value computed from BaseCalls can be wrong, // because the value of BaseCalls/PreBaseFrames may exceed 2^16-1. // Method BaseCall PulseCall // ---------------------------------------------------- // PulseWidth (1) WidthInFrames // ======================================= // (2) PulseIndex NumEvent // WidthInFrames // ---------------------------------------------------- // WidthInFrames : The same as PulseWidth // ---------------------------------------------------- // StartFrame (1) PreBaseFrames // WidthInFrames // ======================================= // (2) PulseIndex NumEvent // StartFrame // ---------------------------------------------------- // IPD (1) PreBaseFrames // ======================================= // (2) PulseIndex NumEvent // StartFrame // WidthInFrames // ---------------------------------------------------- // Note: PulseWidth and WidthInFrames have the same meaning and are // computed in the same way. // // Note: StartFrame can be loaded for both bas.h5 and pls.h5 files // for bas.h5, StartFrame is computed from PreBaseFrames and WidthInFrames // Let x = PreBaseFrames for bases 0 ... n-1, where x[0] is 0 and // x[i] is the inter-pulse distance between start of pulse // for base i and end of pulse for base i-1 // Let y = WidthInFrames for bases 0 ... n-1, where y[i] is the // number of pulses within base i // Then, // StartFrame[0] = x[0] // StartFrame[i] = sum(x[0] ... x[i]) + sum(y[0] ... y[i-1]) // for i in [1 ... n-1] // for pls.h5, StartFrame can be directly read from dataset // /PulseData/PulseCalls/StartFrame // // Note: StartTimeOffset is the StartFrame for the very first base of a read, it // can only be computed from PulseCalls // // Note: IPD has the same meaning as PreBaseFrames: // = the inter-pulse distance between this base and end of last base, // = the number of Frames between the ending pulse of the last base and // the starting pulse of this base. // However, PreBaseFrames can only be read directly from BaseCalls, while // IPD can also be computed from PulseCalls // If use BaseCalls, // IPD[i] = PreBaseFrames[i] for i in [0 ... n-1] // If use PulseCalls, // IPD[0] = 0 // IPD[i] = StartFrame[i] - StartFrame[i-1] - WidthInFrames[i-1] // for i in [1 ... n-1] // //void GetRequiredFieldsForMetric(const string & metric, FieldType & field){ FieldsRequirement(const std::string & m); }; #endif blasr_libcpp-master/pbdata/loadpulses/MovieAlnIndexLookupTable.cpp000066400000000000000000000042161260756663100260000ustar00rootroot00000000000000#include "MovieAlnIndexLookupTable.hpp" MovieAlnIndexLookupTable::MovieAlnIndexLookupTable() { skip = true; //skip this alignment unless we can find all the information } void MovieAlnIndexLookupTable::SetValue( const bool & skipP, const int & movieAlignmentIndexP, const UInt & alignmentIndexP, const int & refGroupIndexP, const int & readGroupIndexP, const UInt & holeNumberP, const UInt & offsetBeginP, const UInt & offsetEndP, const int & queryStartP, const int & queryEndP, const int & readIndexP, const int & readStartP, const int & readLengthP, const int & plsReadIndexP) { skip = skipP; movieAlignmentIndex = movieAlignmentIndexP; alignmentIndex = alignmentIndexP; refGroupIndex = refGroupIndexP; readGroupIndex = readGroupIndexP; holeNumber = holeNumberP; offsetBegin = offsetBeginP; offsetEnd = offsetEndP; queryStart = queryStartP; queryEnd = queryEndP; readIndex = readIndexP; readStart = readStartP; readLength = readLengthP; plsReadIndex = plsReadIndexP; } void MovieAlnIndexLookupTable::print() { // Print this lookup table for debugging . if (skip) std::cout << "skip = True, "; else std::cout << "skip = False, "; std::cout << "movieAlnIndex = " << alignmentIndex << ", refGroupIndex = " << refGroupIndex << ", readGroupIndex = " << readGroupIndex << ", holeNumber = " << holeNumber << ", offsetBegin = " << offsetBegin << ", offsetEnd = " << offsetEnd << ", queryStart = " << queryStart << ", queryEnd = " << queryEnd << ", readIndex = " << readIndex << ", readStart = " << readStart << ", readLength = " << readLength << ", plsReadIndex = " << plsReadIndex << std::endl; } blasr_libcpp-master/pbdata/loadpulses/MovieAlnIndexLookupTable.hpp000066400000000000000000000112321260756663100260010ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: MovieAlnIndexLookupTable.h * * Description: For cpp/pbihdfutils/LoadPulses.cpp use only. * Cache all the information required for loading metric from pls/bas * to cmp file. * mapping movieAlignmentIndex in movieIndexSets[movieIndex] to: * alignmentIndex: index of this alignment in cmpFile.alnInfo.alignments * refGroupIndex : index of this alignment in cmpReader.refAlignGroups * readGroupIndex: index of this alignment in cmpReader.refAlignGroups\ * [refGroupIndex]->readGroupds[readGroupIndex] * offsetBegin : offset begin for this alignment in cmpFile * dataset /ref/movie/AlnArray * offsetEnd : offset enda * queryStart : start position of query of this alignment * queryEnd : end position of query of this alignment * readIndex : index of this alignment in baseFile.readStartPositions * readStart : start position of this alignment in baseFile * readLength : read length of this alignment in baseFile * plsReadIndex : index of this alignment in pulseFile.pulseStartPositions * alignedSequence * : aligned sequence of this alignment * * Version: 1.0 * Created: 12/19/2012 03:50:21 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #ifndef _LOADPULSES_MovieAlnIndexLookupTable_HPP_ #define _LOADPULSES_MovieAlnIndexLookupTable_HPP_ #include #include #include "Types.h" class MovieAlnIndexLookupTable { public: bool skip; // as movies may split into multiple parts, skip=true if // this alignment is not found in the movie int movieAlignmentIndex; // movieIndexSets[movieIndex][toFrom[movieAlignmentIndex]] UInt alignmentIndex; // cmpFile.alnInfo.alignments[alignmentIndex] UInt holeNumber; // holeNumber corresponding to this alignment in baseFile int refGroupIndex; // cmpReader.refAlignGroups[refGroupIndex] int readGroupIndex; // cmpReader.refAlignGroups[refGroupIndex]->readGroups[readGroupIndex] UInt offsetBegin, offsetEnd; // offset begin and end for this alignment in /ref/movie/AlnArray // = cmpFile.alnInfo.alignments[alignmentIndex].GetOffsetBegin/End() int queryStart, queryEnd; // start/end for this read = cmpFile.alnInfo. // alignments[alignmentIndex].GetQueryStart/End() int readIndex; // index of this alignment in baseFile.readStartPositions // = index of this hole number in BaseCalls/ZMW/HoleNumber // baseFile.LookupReadIndexByHoleNumber(holeNumber, out=readIndex) int readStart; // start pos of this alignment in baseFile // = baseFile.readStartPositions[readIndex] int readLength; // read length of this alignment in baseFile // = baseFile.readStartPositions[readIndex+1] - readStart int plsReadIndex; // index of this alignment in pulseFile.pulseStartPositions // = index of this hole number in PulseCalls/ZMW/HoleNumbers // = pulseFile.LookupReadIndexByHoleNumber(holeNumber, out=plsReadIndex) // vector baseToAlignmentMap; // keep all the baseToAlignmentMap in memory for now // Note that baseToAlignmentMap is not initialized when // BuildLookupTable is called. std::string alignedSequence; MovieAlnIndexLookupTable(); void SetValue(const bool & skipP, const int & movieAlignmentIndexP, const UInt & alignmentIndexP, const int & refGroupIndexP, const int & readGroupIndexP, const UInt & holeNumberP, const UInt & offsetBeginP, const UInt & offsetEndP, const int & queryStartP, const int & queryEndP, const int & readIndexP, const int & readStartP, const int & readLengthP, const int & plsReadIndexP); void print(); }; #endif blasr_libcpp-master/pbdata/makefile000066400000000000000000000020461260756663100177540ustar00rootroot00000000000000all: THISDIR:=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) -include ${CURDIR}/defines.mk include ${THISDIR}/../rules.mk CXXOPTS += -std=c++11 -pedantic # CURDIR should have libconfig.h INCLUDES += ${CURDIR} INCLUDES += ${THISDIR} matrix reads qvs metagenome saf utils INCLUDES += ${LIBBLASR_INC} ${PBBAM_INC} ${HTSLIB_INC} ${BOOST_INC} LIBS += ${PBBAM_LIB} ${HTSLIB_LIB} LDFLAGS += $(patsubst %,-L%,${LIBS}) all: libpbdata.a libpbdata${SH_LIB_EXT} paths := . matrix reads metagenome qvs saf utils loadpulses alignment amos sam paths := $(patsubst %,${THISDIR}%,${paths}) sources := $(shell find ${THISDIR} -name '*.cpp') sources := $(notdir ${sources}) objects := $(sources:.cpp=.o) shared_objects := $(sources:.cpp=.shared.o) dependencies := $(objects:.o=.d) $(shared_objects:.o=.d) vpath %.cpp ${paths} libpbdata.a: $(objects) $(AR) $(ARFLAGS) $@ $^ libpbdata${SH_LIB_EXT}: $(shared_objects) libconfig.h: cp -af ${LIBCONFIG_H} $@ clean: rm -f libpbdata.a libpbdata.so *.o *.d -include $(dependencies) depend: $(dependencies:.d=.depend) blasr_libcpp-master/pbdata/matrix/000077500000000000000000000000001260756663100175565ustar00rootroot00000000000000blasr_libcpp-master/pbdata/matrix/FlatMatrix.hpp000066400000000000000000000034441260756663100223470ustar00rootroot00000000000000#ifndef _BLASR_FLAT_MATRIX_HPP_ #define _BLASR_FLAT_MATRIX_HPP_ #define rc2index(r, c, rowSize) ( (r) * (rowSize) + c) template void CreateFlatMatrix(int rows, int cols, std::vector &matrix); template void PrintFlatMatrix(std::vector &matrix, int rows, int cols, std::ostream &out, int width=6); template void PrintFlatMatrix(const T* matrix, int rows, int cols, std::ostream &out, int width=6); template class FlatMatrix2D { public: T* matrix; int nRows, nCols; int totalSize; int RC2Index(int row, int col); FlatMatrix2D(); ~FlatMatrix2D(); T* operator[](int row); T operator()(int row, int col); unsigned int Size(); void Fill(T value) { fill(matrix, &matrix[totalSize], value); } void Resize(int _nRows, int _nCols) { Grow(_nRows, _nCols); } void Resize(unsigned int totalSize); FlatMatrix2D(int _nRows, int _nCols); void Clear() { if (matrix) {delete[] matrix;} matrix = NULL; nRows = nCols = 0; totalSize = 0; } void Grow(int _nRows, int _nCols); T Get(int r, int c); T Set(int r, int c, T v); int Index(int r, int c); void Print(std::ostream &out); void Allocate(UInt _nRows, UInt _nCols); void Initialize(T value); }; template class FlatMatrix3D { public: T* matrix; // // For some reason it makes sense to go from rows,cols to x,y,z // for referencing coordinates. // int nx, ny, nz; int xy; int totalSize; FlatMatrix3D(); FlatMatrix3D(int _nx, int _ny, int _nz); void Grow(int _nx, int _ny, int _nz); int Index(int x, int y, int z); T Get(int x, int y, int z); T Set(int x, int y, int z, T v); ~FlatMatrix3D(); }; #include "FlatMatrixImpl.hpp" #endif // _BLASR_FLAT_MATRIX_HPP_ blasr_libcpp-master/pbdata/matrix/FlatMatrixImpl.hpp000066400000000000000000000101111260756663100231560ustar00rootroot00000000000000#include #include #include #include #include "Types.h" #include "utils.hpp" #include "FlatMatrix.hpp" template void CreateFlatMatrix(int rows, int cols, std::vector &matrix) { matrix.resize(rows*cols); } template void PrintFlatMatrix(std::vector &matrix, int rows, int cols, std::ostream &out, int width) { PrintFlatMatrix((const T*) &matrix[0], rows, cols, out, width); } template void PrintFlatMatrix(const T* matrix, int rows, int cols, std::ostream &out, int width) { int r, c, i; i = 0; for (r = 0; r < rows; r++ ) { for (c = 0; c < cols; c++ ) { out.width(width); out << matrix[i] << " "; i++; } out << std::endl; } } template int FlatMatrix2D::RC2Index(int row, int col) { return row * nCols + col; } template T* FlatMatrix2D::operator[](int row) { return &matrix[row*nCols]; } template T FlatMatrix2D::operator()(int row, int col) { int index = RC2Index(row,col); return matrix[index]; } template FlatMatrix2D::FlatMatrix2D() { matrix = NULL; nRows = nCols = totalSize = 0; } template unsigned int FlatMatrix2D::Size() { return nRows * nCols; } template void FlatMatrix2D::Resize(unsigned int _totalSize) { if (matrix != NULL) { delete[] matrix; } matrix = ProtectedNew(_totalSize); totalSize = _totalSize; } template FlatMatrix2D::FlatMatrix2D(int _nRows, int _nCols) { totalSize = 0; matrix = NULL; // assert(_nRows > 0); // assert(_nCols > 0); if (_nRows == 0 or _nCols == 0) { nRows = _nRows; nCols = _nCols; return; } else { Grow(_nRows, _nCols); } } template void FlatMatrix2D::Grow(int _nRows, int _nCols) { nRows = _nRows; nCols = _nCols; if (nRows * nCols > totalSize) { if (totalSize != 0 && matrix) delete[] matrix; totalSize = nRows * nCols; matrix = ProtectedNew(totalSize); } } template T FlatMatrix2D::Get(int r, int c) { return matrix[r * nCols + c]; } template T FlatMatrix2D::Set(int r, int c, T v) { return matrix[r*nCols+c] = v; } template int FlatMatrix2D::Index(int r, int c) { return r*nCols + c; } template void FlatMatrix2D::Print(std::ostream &out) { PrintFlatMatrix(matrix, nRows, nCols, out); } template void FlatMatrix2D::Allocate(UInt _nRows, UInt _nCols) { nRows = _nRows; nCols = _nCols; matrix = ProtectedNew(nRows * nCols); } template void FlatMatrix2D::Initialize(T value) { T* matPtr, *matEnd; matEnd = &matrix[nRows*nCols]; for (matPtr = &matrix[0]; matPtr != matEnd; ++matPtr) { *matPtr = value; } } template FlatMatrix2D::~FlatMatrix2D(){ if (matrix != NULL) { delete [] matrix; matrix = NULL; } } template FlatMatrix3D::FlatMatrix3D() { nx = 0, ny = 0, nz = 0; xy = 0; totalSize = 0; matrix = NULL; } template FlatMatrix3D::FlatMatrix3D(int _nx, int _ny, int _nz) { totalSize = 0; matrix =NULL; assert(_nx > 0); assert(_ny > 0); assert(_nz > 0); Grow(_nx, _ny, _nz); } template void FlatMatrix3D::Grow(int _nx, int _ny, int _nz) { nx = _nx; ny = _ny; nz = _nz; if (nx * ny * nz > totalSize) { if (matrix != NULL) { delete[] matrix; } totalSize = nx*ny*nz; matrix = ProtectedNew(totalSize); } xy = nx*ny; } template int FlatMatrix3D::Index(int x, int y, int z) { return z * xy + y * nx + x; } template T FlatMatrix3D::Get(int x, int y, int z) { return matrix[Index(x,y,z)]; } template T FlatMatrix3D::Set(int x, int y, int z, T v){ return matrix[Index(x,y,z)] = v; } template FlatMatrix3D::~FlatMatrix3D() { if (matrix != NULL) { delete [] matrix; matrix = NULL; } } blasr_libcpp-master/pbdata/matrix/Matrix.hpp000066400000000000000000000016461260756663100215420ustar00rootroot00000000000000#ifndef _BLASR_MATRIX_HPP_ #define _BLASR_MATRIX_HPP_ #include #include "Types.h" template void CreateMatrix(int rows, int cols, std::vector matrix); /* * Implement a matrix as an array into a large allocated buffer of size * nRows * nCols. */ template class Matrix { private: VectorIndex nRows; VectorIndex nCols; T** matrix; VectorIndex matrixBufferSize; VectorIndex matrixSize; VectorIndex rowsBufferSize; public: Matrix(); unsigned int size(); unsigned int GetNCols(); unsigned int GetNRows(); void Resize(VectorIndex nRowsP, VectorIndex nColsP); Matrix(VectorIndex nRowsP, VectorIndex nColsP); void Reference(Matrix &rhs); void Initialize(T value); T* operator[](VectorIndex rowIndex); void Free(); void Print(std::ofstream &out); }; #include "MatrixImpl.hpp" #endif // _BLASR_MATRIX_HPP_ blasr_libcpp-master/pbdata/matrix/MatrixImpl.hpp000066400000000000000000000051201260756663100223530ustar00rootroot00000000000000#ifndef _BLASR_MATRIX_IMPL_HPP #define _BLASR_MATRIX_IMPL_HPP #include #include #include #include #include #include "utils.hpp" #include "Types.h" template void CreateMatrix(int rows, int cols, std::vector matrix) { matrix.resize(rows); if (matrix[0]) {delete [] matrix[0]; matrix[0] = NULL;} matrix[0] = ProtectedNew(rows*cols); VectorIndex r = 1; for (r = 1; r < rows; r++) { matrix[r] = &matrix[cols * r]; } } template Matrix::Matrix() { nRows = 0; rowsBufferSize = 0; nCols = 0; matrixBufferSize = 0; matrix = NULL; } template unsigned int Matrix::size() { return nRows * nCols; } template unsigned int Matrix::GetNCols() { return nCols; } template unsigned int Matrix::GetNRows() { return nRows; } template void Matrix::Resize(VectorIndex nRowsP, VectorIndex nColsP) { nRows = nRowsP; nCols = nColsP; matrixSize = nRows * nCols; if (nRows * nCols > matrixBufferSize) { matrixBufferSize = nRows * nCols; if (nRows > rowsBufferSize) { if (matrix != NULL) { delete[] matrix; matrix = NULL; } } if (matrix == NULL) { matrix = ProtectedNew(nRows); } else { if (matrix[0] != NULL) { delete[] matrix[0]; matrix[0] = NULL; } } matrix[0] = ProtectedNew(matrixBufferSize); VectorIndex rowIndex; for (rowIndex = 1; rowIndex < nRows; rowIndex++ ){ matrix[rowIndex] = &matrix[0][nCols * rowIndex]; } } } template Matrix::Matrix(VectorIndex nRowsP, VectorIndex nColsP) { Resize(nRowsP, nColsP); } template void Matrix::Reference(Matrix &rhs) { matrix = rhs.matrix; } template void Matrix::Initialize(T value) { std::fill(&matrix[0][0], &matrix[0][matrixSize], value); } template T* Matrix::operator[](VectorIndex rowIndex) { assert(rowIndex < nRows); return matrix[rowIndex]; } template void Matrix::Free() { if (matrix != NULL) { if (matrix[0] != NULL) { delete[] matrix[0]; } delete[] matrix; } matrix = NULL; } template void Matrix::Print(std::ofstream &out) { VectorIndex i; VectorIndex j; for (i = 0; i < nRows; i++) { for (j = 0; j < nCols; j++ ){ out << matrix[i][j] << " "; } out << std::endl; } } #endif blasr_libcpp-master/pbdata/metagenome/000077500000000000000000000000001260756663100203735ustar00rootroot00000000000000blasr_libcpp-master/pbdata/metagenome/FindRandomSequence.hpp000066400000000000000000000041271260756663100246220ustar00rootroot00000000000000#ifndef _FIND_RANDOM_SEQUENCE_HPP_ #define _FIND_RANDOM_SEQUENCE_HPP_ #include #include "DNASequence.hpp" #include "statistics/StatUtils.hpp" template void FindRandomPos(vector &sequences, DNALength &seqIndex, DNALength &seqPos, DNALength seqLength=0 ) { vector cumulativeLengths; cumulativeLengths.resize(sequences.size()); int i; if (sequences.size() == 0) { return; } DNALength cumulativeLength; cumulativeLengths[0] = sequences[0].length; cumulativeLength = cumulativeLengths[0]; for (i = 1; i < sequences.size(); i++) { cumulativeLengths[i] = cumulativeLength = cumulativeLengths[i-1] + sequences[i].length; } bool validPosFound = false; int iter = 0; int max_iter = 100000; while (validPosFound == false and iter < max_iter) { ++iter; if (seqLength > cumulativeLength) { validPosFound = false; iter = max_iter; break; } DNALength pos = RandomUnsignedInt(cumulativeLength - seqLength); // Make sure this sequence fits for (seqIndex = 0; seqIndex < sequences.size(); seqIndex++) { if (cumulativeLengths[seqIndex] > pos) break; } if (cumulativeLengths[seqIndex] - pos < seqLength) { continue; } UInt pi; if (seqIndex == 0) { seqPos = pos; } else { seqPos = pos - cumulativeLengths[seqIndex-1]; } bool seqContainsN = false; for (pi = seqPos; pi < seqPos + seqLength; pi++) { if (toupper(sequences[seqIndex].seq[pi]) == 'N') { seqContainsN = true; break; } } if (seqContainsN) { continue; } else { validPosFound = true; } } if (iter == max_iter) { cout << "ERROR! Unable to generate a random seq/pos pair!, maybe length " << seqLength << endl << " is too high, or there are too many N's in the references." << endl; exit(1); } } #endif blasr_libcpp-master/pbdata/metagenome/SequenceIndexDatabase.hpp000066400000000000000000000041301260756663100252670ustar00rootroot00000000000000#ifndef _BLASR_SEQUENCE_INDEX_DATABASE_HPP_ #define _BLASR_SEQUENCE_INDEX_DATABASE_HPP_ #include #include #include #include #include #include #include #include #include "Types.h" #include "DNASequence.hpp" #include "StringUtils.hpp" #define SEQUENCE_INDEX_DATABASE_MAGIC 1233211233 template class SequenceIndexDatabase { public: std::vector growableSeqStartPos; std::vector growableName; DNALength *seqStartPos; bool deleteSeqStartPos; char **names; bool deleteNames; int *nameLengths; bool deleteNameLengths; int nSeqPos; bool deleteStructures; // // This is stored after reading in the sequence. // std::vector md5; SequenceIndexDatabase(int final=0); ~SequenceIndexDatabase(); DNALength GetLengthOfSeq(int seqIndex); // Return index of a reference sequence with name "seqName". int GetIndexOfSeqName(std::string seqName); void GetName(int seqIndex, std::string &name); void MakeSAMSQString(std::string &sqString); DNALength ChromosomePositionToGenome(int chrom, DNALength chromPos); int SearchForIndex(DNALength pos); std::string GetSpaceDelimitedName(unsigned int index); int SearchForStartBoundary(DNALength pos); int SearchForEndBoundary(DNALength pos); DNALength SearchForStartAndEnd(DNALength pos, DNALength &start, DNALength &end); void WriteDatabase(ofstream &out); void ReadDatabase(ifstream &in); void SequenceTitleLinesToNames(); VectorIndex AddSequence(TSeq &sequence); void Finalize(); void FreeDatabase(); }; template< typename TSeq > class SeqBoundaryFtr { public: SequenceIndexDatabase *seqDB; SeqBoundaryFtr(SequenceIndexDatabase *_seqDB); int GetIndex(DNALength pos); int GetStartPos(int index); DNALength operator()(DNALength pos); // This is misuse of a functor, but easier interface coding for now. DNALength Length(DNALength pos); }; #include "metagenome/SequenceIndexDatabaseImpl.hpp" #endif blasr_libcpp-master/pbdata/metagenome/SequenceIndexDatabaseImpl.hpp000066400000000000000000000222341260756663100261160ustar00rootroot00000000000000#ifndef _BLASR_SEQUENCE_INDEX_DATABASE_IMPL_HPP_ #define _BLASR_SEQUENCE_INDEX_DATABASE_IMPL_HPP_ template SequenceIndexDatabase:: SequenceIndexDatabase(int final) { nSeqPos = 0; if (!final) { growableSeqStartPos.push_back(0); } names = NULL; deleteNames = false; nameLengths = NULL; deleteNameLengths = false; seqStartPos = NULL; deleteSeqStartPos = false; deleteStructures = false; } template SequenceIndexDatabase:: ~SequenceIndexDatabase() { FreeDatabase(); } template DNALength SequenceIndexDatabase:: GetLengthOfSeq(int seqIndex) { assert(seqIndex < nSeqPos-1); return seqStartPos[seqIndex+1] - seqStartPos[seqIndex] - 1; } // Return index of a reference sequence with name "seqName". template int SequenceIndexDatabase:: GetIndexOfSeqName(std::string seqName) { for(int i = 0; i < nSeqPos - 1; i++) { if (seqName == std::string(names[i])) { return i; } } return -1; } template void SequenceIndexDatabase:: GetName(int seqIndex, std::string &name) { assert(seqIndex < nSeqPos-1); name = names[seqIndex]; } template void SequenceIndexDatabase:: MakeSAMSQString(std::string &sqString) { std::stringstream st; int i; for (i = 0; i < nSeqPos-1; i++) { st << "@SQ\tSN:" << names[i] << "\tLN:" << GetLengthOfSeq(i); if (md5.size() == nSeqPos-1) { st << "\tM5:" << md5[i]; } st << endl; } sqString = st.str(); } template DNALength SequenceIndexDatabase:: ChromosomePositionToGenome(int chrom, DNALength chromPos) { assert(chrom < nSeqPos); return seqStartPos[chrom] + chromPos; } template int SequenceIndexDatabase:: SearchForIndex(DNALength pos) { // The default behavior for the case // that there is just one genome. if (nSeqPos == 1) { return 0; } DNALength* seqPosIt = upper_bound(seqStartPos+1, seqStartPos + nSeqPos, pos); return seqPosIt - seqStartPos - 1; } template std::string SequenceIndexDatabase:: GetSpaceDelimitedName(unsigned int index) { int pos; assert(index < nSeqPos); std::string name; for (pos = 0; pos < nameLengths[index]; pos++) { if (names[index][pos] == ' ' or names[index][pos] == '\t' or names[index][pos] == '\0') { break; } } name.assign(names[index], pos); return name; } template int SequenceIndexDatabase:: SearchForStartBoundary(DNALength pos) { int index = SearchForIndex(pos); if (index != -1) { return seqStartPos[index]; } else { return -1; } } template int SequenceIndexDatabase:: SearchForEndBoundary(DNALength pos) { int index = SearchForIndex(pos); if (index != -1) { return seqStartPos[index + 1]; } else { return -1; } } template DNALength SequenceIndexDatabase:: SearchForStartAndEnd(DNALength pos, DNALength &start, DNALength &end) { int index = SearchForIndex(pos); if (index != -1) { start = seqStartPos[index]; end = seqStartPos[index+1]; return 1; } else { start = end = -1; return 0; } } template void SequenceIndexDatabase:: WriteDatabase(std::ofstream &out) { int mn = SEQUENCE_INDEX_DATABASE_MAGIC; out.write((char*) &mn, sizeof(int)); out.write((char*) &nSeqPos, sizeof(int)); out.write((char*) seqStartPos, sizeof(DNALength) * nSeqPos); int nSeq = nSeqPos - 1; out.write((char*) nameLengths, sizeof(int) * nSeq); int i; // // The number of sequences is 1 less than the number of positions // since the positions include 0 as a boundary. // char nullchar = '\0'; for (i = 0; i < nSeq; i++) { // // nameLengths has space for the null char, so the length of the // name = nameLengths[i]-1. Write a nullchar to disk so that it // may be read in later with no work. // out.write((char*) names[i], sizeof(char) * (nameLengths[i]-1)); out.write((char*) &nullchar, sizeof(char)); } } template void SequenceIndexDatabase:: ReadDatabase(std::ifstream &in) { int mn; // Make sure this is a read database, since the binary input // is not syntax checked. in.read((char*) &mn, sizeof(int)); if (mn != SEQUENCE_INDEX_DATABASE_MAGIC) { std::cout << "ERROR: Sequence index database is corrupt!" << std::endl; exit(1); } // // Read in the boundaries of each sequence. // deleteStructures = true; in.read((char*) &nSeqPos, sizeof(int)); assert(seqStartPos == NULL); seqStartPos = ProtectedNew(nSeqPos); deleteSeqStartPos = true; in.read((char*) seqStartPos, sizeof(DNALength) * nSeqPos); int nSeq = nSeqPos - 1; // Get the lengths of the strings to read. assert(nameLengths == NULL); nameLengths = ProtectedNew(nSeq); deleteNameLengths = true; in.read((char*)nameLengths, sizeof(int) * nSeq); // Get the titles of the sequences. assert(names == NULL); // Otherwise need to delete names; names = ProtectedNew(nSeq); deleteNames = true; char *namePtr; int i; for (i = 0; i < nSeq; i++) { namePtr = ProtectedNew(nameLengths[i]); if (nameLengths[i] > 0) { in.read(namePtr, nameLengths[i]); } namePtr[nameLengths[i]-1] = '\0'; names[i] = namePtr; } } template void SequenceIndexDatabase:: SequenceTitleLinesToNames() { int seqIndex; std::vector tmpNameArray; for (seqIndex = 0; seqIndex < nSeqPos-1; seqIndex++) { std::string tmpName; AssignUntilFirstSpace(names[seqIndex], nameLengths[seqIndex], tmpName); if (names[seqIndex]) {delete[] names[seqIndex];} names[seqIndex] = ProtectedNew(tmpName.size()+1); strcpy(names[seqIndex], tmpName.c_str()); names[seqIndex][tmpName.size()] = '\0'; nameLengths[seqIndex] = tmpName.size(); tmpNameArray.push_back(tmpName); } // Make sure that reference names are unique. sort(tmpNameArray.begin(), tmpNameArray.end()); for(int j = 0; j < tmpNameArray.size() - 1; j++) { if (tmpNameArray[j] == tmpNameArray[j+1]) { std::cout << "Error, reference with name \"" << tmpNameArray[j] << "\" in the reference genome is not unique" << std::endl; exit(1); } } } template VectorIndex SequenceIndexDatabase:: AddSequence(TSeq &sequence) { int endPos = growableSeqStartPos[growableSeqStartPos.size() - 1]; int growableSize = growableSeqStartPos.size(); growableSeqStartPos.push_back(endPos + sequence.length + 1); std::string fastaTitle; sequence.GetFASTATitle(fastaTitle); growableName.push_back(fastaTitle); return growableName.size(); } template void SequenceIndexDatabase:: Finalize() { deleteStructures = true; seqStartPos = &growableSeqStartPos[0]; nSeqPos = growableSeqStartPos.size(); int nSeq = nSeqPos - 1; assert(names==NULL); names = ProtectedNew(nSeq); deleteNames = true; unsigned int i; if (nameLengths) {delete [] nameLengths; nameLengths = NULL;} nameLengths = ProtectedNew(nSeq); deleteNameLengths = true; for (i = 0; i < nSeq; i++) { names[i] = ProtectedNew(growableName[i].size() + 1); memcpy((char*) names[i], (char*) growableName[i].c_str(), growableName[i].size()); names[i][growableName[i].size()] = '\0'; nameLengths[i] = growableName[i].size() + 1; } } template void SequenceIndexDatabase:: FreeDatabase() { int i; if (deleteStructures == false) { return; } if (names != NULL and deleteNames) { int nSeq = nSeqPos - 1; for (i = 0; i < nSeq; i++ ){ delete[] names[i]; } delete[] names; names = NULL; } if (nameLengths != NULL and deleteNameLengths) { delete[] nameLengths; nameLengths = NULL; } if (seqStartPos != NULL and deleteSeqStartPos) { delete[] seqStartPos; seqStartPos = NULL; } } template< typename TSeq > SeqBoundaryFtr:: SeqBoundaryFtr(SequenceIndexDatabase *_seqDB) { seqDB = _seqDB; } template< typename TSeq > int SeqBoundaryFtr:: GetIndex(DNALength pos) { return seqDB->SearchForIndex(pos); } template< typename TSeq > int SeqBoundaryFtr:: GetStartPos(int index) { assert(index < seqDB->nSeqPos); return seqDB->seqStartPos[index]; } template< typename TSeq > DNALength SeqBoundaryFtr:: operator()(DNALength pos) { return seqDB->SearchForStartBoundary(pos); } template< typename TSeq > DNALength SeqBoundaryFtr:: Length(DNALength pos) { DNALength start, end; seqDB->SearchForStartAndEnd(pos, start, end); return end - start; } #endif blasr_libcpp-master/pbdata/metagenome/TitleTable.cpp000066400000000000000000000050751260756663100231370ustar00rootroot00000000000000#include "TitleTable.hpp" TitleTable::TitleTable() { table = NULL; tableLength = 0; } TitleTable::~TitleTable() { Free(); } void TitleTable::Copy(char **src, int nSrc) { Free(); //Free before copy table = ProtectedNew(nSrc); tableLength = nSrc; int i; for (i = 0; i < nSrc; i++ ){ int lenStrI = strlen(src[i]); table[i] = ProtectedNew(lenStrI+1); memcpy(table[i], src[i], lenStrI); table[i][lenStrI] = '\0'; } } void TitleTable::Write(std::string &name) { std::ofstream out; CrucialOpen(name, out, std::ios::out); Write(out); } void TitleTable::Write(std::ofstream &out) { int i; for (i = 0; i < tableLength;i++) { out << table[i] << std::endl; } } void TitleTable::Read(std::string &inFileName) { std::ifstream in; CrucialOpen(inFileName, in, std::ios::in); Read(in); } void TitleTable::CopyFromVector(std::vector &titles) { Free(); //Free before copy. tableLength = titles.size(); table = ProtectedNew(tableLength); int i; for (i = 0; i < tableLength; i++) { table[i] = ProtectedNew(titles[i].size() + 1); memcpy(table[i], titles[i].c_str(), titles[i].size()); table[i][titles[i].size()] = '\0'; } } void TitleTable::Read(std::ifstream &in) { std::vector titles; while(in) { char title[1024]; in.getline(title, 1024); if (not std::string(title).empty()) titles.push_back(title); } if (titles.size() > 0) { CopyFromVector(titles); } else { tableLength = 0; table = NULL; } } void TitleTable::Free() { int i; for (i = 0; i < tableLength; i++) { if (table[i]) {delete[] table[i]; table[i] = NULL;} } if (table) {delete[] table;}; table = NULL; tableLength = 0; } bool TitleTable::Lookup(std::string title, int &index) { int i; for (i = 0; i < tableLength; i++) { if (table[i] == title) { index = i; return true; } } return false; } void TitleTable::ResetTableToIntegers(char **table, int *tableLengths, int nTable) { int i; for (i = 0; i < nTable; i++ ) { delete[] table[i]; std::stringstream namestrm; namestrm << i; std::string name; name = namestrm.str(); table[i] = ProtectedNew(name.size()+1); memcpy( table[i], name.c_str(), name.size()); table[i][name.size()] = '\0'; tableLengths[i] = (int) name.size() + 1; } } blasr_libcpp-master/pbdata/metagenome/TitleTable.hpp000066400000000000000000000013241260756663100231350ustar00rootroot00000000000000#ifndef _BLASR_TITLE_TABLE_HPP_ #define _BLASR_TITLE_TABLE_HPP_ #include #include #include #include #include #include #include "utils.hpp" class TitleTable { public: char **table; int tableLength; TitleTable(); ~TitleTable(); void Copy(char **src, int nSrc); void Write(std::string &name); void Write(std::ofstream &out); void Read(std::string &inFileName); void CopyFromVector(std::vector &titles); void Read(std::ifstream &in); void Free(); bool Lookup(std::string title, int &index) ; static void ResetTableToIntegers(char **table, int *tableLengths, int nTable); }; #endif blasr_libcpp-master/pbdata/qvs/000077500000000000000000000000001260756663100170635ustar00rootroot00000000000000blasr_libcpp-master/pbdata/qvs/QualityTransform.cpp000066400000000000000000000011301260756663100231060ustar00rootroot00000000000000#include #include "QualityTransform.hpp" /* * Base lookup table class for quality values. */ float QualityToProb::operator()(int index) { assert(index >= 0); assert(index <= MAX_QUALITY_VALUE); return prob[index]; } /* * Create a lookup table for transforming from quality value * to p-value using Patrick Marks' low-end expand qv = -100*log10(p/(1-p)) */ void LowEndExpandQualityTransform::operator()(QualityToProb &qt) { int i; for (i = MIN_QUALITY_VALUE; i <= MAX_QUALITY_VALUE; i++) { float v = pow(10,i/-100.0); qt.prob[i] = 1 - v/(1+v); } } blasr_libcpp-master/pbdata/qvs/QualityTransform.hpp000066400000000000000000000011171260756663100231200ustar00rootroot00000000000000#ifndef _BLASR_QVS_QUALITY_TRANSFORM_HPP_ #define _BLASR_QVS_QUALITY_TRANSFORM_HPP_ #include #include "QualityValue.hpp" /* * Base lookup table class for quality values. */ class QualityToProb { public: float prob[MAX_QUALITY_VALUE - MIN_QUALITY_VALUE + 1]; float operator()(int index); }; /* * Create a lookup table for transforming from quality value * to p-value using Patrick Marks' low-end expand qv = -100*log10(p/(1-p)) */ class LowEndExpandQualityTransform { public: void operator()(QualityToProb &qt); }; #endif // _BLASR_QVS_QUALITY_TRANSFORM_HPP_ blasr_libcpp-master/pbdata/qvs/QualityValue.cpp000066400000000000000000000030151260756663100222130ustar00rootroot00000000000000#include #include "defs.h" #include #include "QualityValue.hpp" QualityValue ProbabilityToQualityValue(QualityProbability pErr, QVScale qvScale) { if (qvScale == POverOneMinusP) { QualityProbability pe; QualityProbability maxReportedErrorProb = 0.499; pe = MIN(pErr, maxReportedErrorProb); return MIN(255, -100*log10(pe/(1-pe))); } else if (qvScale == PHRED) { return -10*log10(pErr); } else { assert(false); } } QualityValue PacBioQVToPhred(QualityValue pbQV) { // yanked from Aaron's code. return (unsigned char) floor( 10.0 * log10( 1.0 + pow(10.0, pbQV / 100.0) ) + 0.5 ); } QualityValue ToPhred(QualityValue qv, QVScale qvScale) { // // Nothing to do when the quality is already in phred. // if (qvScale == PHRED) { return qv; } else { return PacBioQVToPhred(qv); } } QualityProbability QualityValueToProbability(QualityValue qv, QVScale qvScale) { if (qvScale == POverOneMinusP) { QualityProbability pp; pp = pow(10, qv/-100.0); return pp/(1+pp); } else if (qvScale == PHRED) { return pow(10, qv/-10.0); } else { assert(false); } } QVScale DetermineQVScaleFromChangeListID(ChangeListID &cl) { ChangeListID phredCL; phredCL.intVer.resize(3); phredCL.intVer[0] = 1; phredCL.intVer[1] = 2; phredCL.intVer[2] = 2; if (cl.LessThan(phredCL)) { return POverOneMinusP; } else { return PHRED; } } blasr_libcpp-master/pbdata/qvs/QualityValue.hpp000066400000000000000000000014401260756663100222200ustar00rootroot00000000000000#ifndef _BLASR_QUALITY_VALUE_HPP_ #define _BLASR_QUALITY_VALUE_HPP_ #include #include "ChangeListID.hpp" typedef unsigned char QualityValue; typedef float QualityProbability; #define MIN_QUALITY_VALUE 0 #define MAX_QUALITY_VALUE 255 #ifndef _QVScale_ #define _QVScale_ enum QVScale {POverOneMinusP, // popularized by Illumina PHRED}; #endif QualityValue ProbabilityToQualityValue( QualityProbability pErr, QVScale qvScale=POverOneMinusP); QualityValue PacBioQVToPhred(QualityValue pbQV); QualityValue ToPhred(QualityValue qv, QVScale qvScale=POverOneMinusP); QualityProbability QualityValueToProbability(QualityValue qv, QVScale qvScale=POverOneMinusP); QVScale DetermineQVScaleFromChangeListID(ChangeListID &cl); #endif // _BLASR_QUALITY_VALUE_HPP_ blasr_libcpp-master/pbdata/qvs/QualityValueVector.hpp000066400000000000000000000017601260756663100234100ustar00rootroot00000000000000#ifndef _BLASR_QUALITY_VALUE_VECTOR_HPP_ #define _BLASR_QUALITY_VALUE_VECTOR_HPP_ #include #include #include #include #include "Types.h" #include "utils.hpp" #include "QualityValue.hpp" template class QualityValueVector { public: T_QV *data; QVScale qvScale; T_QV &operator[](unsigned int pos) const; QualityValueVector(); QualityProbability ToProbability(unsigned int pos); T_QV ToPhred(unsigned int pos); void Copy(const QualityValueVector &rhs, const DNALength length); void Copy(const std::string & rhs); void Free(); void Allocate(unsigned int length); bool Empty() const; void ShallowCopy(const QualityValueVector &ref, int pos, const DNALength & length); std::string ToString(void); // Returns data length DNALength Length(void); private: DNALength _length; }; #include "QualityValueVectorImpl.hpp" #endif // _BLASR_QUALITY_VALUE_VECTOR_HPP_ blasr_libcpp-master/pbdata/qvs/QualityValueVectorImpl.hpp000066400000000000000000000047051260756663100242340ustar00rootroot00000000000000#ifndef _BLASR_QUALITY_VALUE_VECTOR_IMPL_HPP_ #define _BLASR_QUALITY_VALUE_VECTOR_IMPL_HPP_ #include "NucConversion.hpp" template T_QV& QualityValueVector::operator[](unsigned int pos) const { return data[pos]; } template QualityValueVector::QualityValueVector() { data = NULL; // Default to phred. qvScale = PHRED; _length = 0; } template QualityProbability QualityValueVector::ToProbability(unsigned int pos) { return QualityValueToProbability(data[pos], qvScale); } template T_QV QualityValueVector::ToPhred(unsigned int pos) { if (qvScale == PHRED) { return data[pos]; } else { return PacBioQVToPhred(data[pos]); } } template void QualityValueVector::Copy(const QualityValueVector &rhs, const DNALength length) { Free(); if (rhs.Empty()) { return; } Allocate(length); std::memcpy(data, rhs.data, length * sizeof(T_QV)); } template void QualityValueVector::Copy(const std::string & rhs) { // Char to QualityValue Free(); if (rhs.size() == 0) return; Allocate(static_cast(rhs.size())); for (size_t i = 0; i < rhs.size(); i++) { data[i] = static_cast(rhs[i] - FASTQ_CHAR_TO_QUALITY); } } template void QualityValueVector::Free() { if (data != NULL) { delete[] data; data = NULL; } _length = 0; } template void QualityValueVector::Allocate(unsigned int length) { data = ProtectedNew(length); _length = static_cast(length); } template bool QualityValueVector::Empty() const { return data == NULL; } template void QualityValueVector::ShallowCopy(const QualityValueVector &ref, int pos, const DNALength & length) { data = &ref.data[pos]; qvScale = ref.qvScale; _length = static_cast(length); } template std::string QualityValueVector::ToString(void) { if (data == NULL) { return "";} std::string str(static_cast(_length), '0'); for (DNALength i = 0; i < _length; i++) { str[i] = static_cast(data[i] + FASTQ_CHAR_TO_QUALITY); } return str; } template DNALength QualityValueVector::Length(void) { return _length; } template class QualityValueVector; #endif blasr_libcpp-master/pbdata/reads/000077500000000000000000000000001260756663100173505ustar00rootroot00000000000000blasr_libcpp-master/pbdata/reads/BaseFile.cpp000066400000000000000000000055431260756663100215350ustar00rootroot00000000000000#include #include "BaseFile.hpp" bool CompareHoleXY::operator()(const HoleXY &lhs, const HoleXY &rhs) const { if (lhs.xy[0] == rhs.xy[0]) { return lhs.xy[1] < rhs.xy[1]; } else { return lhs.xy[0] < rhs.xy[0]; } } bool BaseFile::LookupReadIndexByXY(uint16_t x, uint16_t y, int &index) { int16_t xy[2]; xy[0] = x; xy[1] = y; std::vector::iterator holeIt; holeIt = lower_bound(holeXY.begin(), holeXY.end(), xy); if ((*holeIt).xy[0] == xy[0] and (*holeIt).xy[1] == xy[1]) { index = holeIt - holeXY.begin(); return true; } else { return false; } } void BaseFile::CopyReadAt(uint32_t readIndex, SMRTSequence &read) { assert(holeNumbers.size() > readIndex); read.HoleNumber(holeNumbers[readIndex]); if (holeXY.size() > 0) { assert(holeXY.size() > readIndex); read.HoleXY(holeXY[readIndex].xy[0], holeXY[readIndex].xy[1]); } int startPos = readStartPositions[readIndex]; int readLength = readLengths[readIndex]; read.length = readLength; read.Allocate(readLength); if (baseCalls.size() > 0) { assert(baseCalls.size() >= readLength + startPos); CopyArray(baseCalls, startPos, readLength, read.seq); } if (qualityValues.size() > 0) { assert(qualityValues.size() >= readLength + startPos); CopyArray(qualityValues, startPos, readLength, read.qual.data); } if (basWidthInFrames.size() > 0) { assert(basWidthInFrames.size() >= readLength + startPos); CopyArray(basWidthInFrames, startPos, readLength, read.widthInFrames); } if (deletionQV.size() > 0) { assert(deletionQV.size() >= readLength + startPos); CopyArray(deletionQV, startPos, readLength, read.deletionQV.data); } if (deletionTag.size() > 0) { assert(deletionTag.size() >= readLength + startPos); CopyArray(deletionTag, startPos, readLength, read.deletionTag); } if (insertionQV.size() > 0) { assert(insertionQV.size() >= readLength + startPos); CopyArray(insertionQV, startPos, readLength, read.insertionQV.data); } if (substitutionQV.size() > 0) { assert(substitutionQV.size() >= readLength + startPos); CopyArray(substitutionQV, startPos, readLength, read.substitutionQV.data); } if (mergeQV.size() > 0) { assert(mergeQV.size() >= readLength + startPos); CopyArray(mergeQV, startPos, readLength, read.mergeQV.data); } if (substitutionTag.size() > 0) { assert(substitutionTag.size() >= readLength + startPos); CopyArray(substitutionTag, startPos, readLength, read.substitutionTag); } if (preBaseFrames.size() > 0) { assert(preBaseFrames.size() >= readLength + startPos); CopyArray(preBaseFrames, startPos, readLength, read.preBaseFrames); } } blasr_libcpp-master/pbdata/reads/BaseFile.hpp000066400000000000000000000024721260756663100215400ustar00rootroot00000000000000#ifndef _BLASR_BASE_FILE_HPP_ #define _BLASR_BASE_FILE_HPP_ #include #include #include "Enumerations.h" #include "SMRTSequence.hpp" #include "HoleXY.hpp" #include "PulseBaseCommon.hpp" #include "ScanData.hpp" class CompareHoleXY { public: bool operator()(const HoleXY &lhs, const HoleXY &rhs) const; }; class BaseFile : public PulseBaseCommon { public: std::vector baseCalls; std::vector holeStatus; std::vector holeXY; std::vector basWidthInFrames; std::vector preBaseFrames; std::vector pulseIndex; std::vector qualityValues; std::vector deletionQV; std::vector deletionTag; std::vector insertionQV; std::vector substitutionQV; std::vector substitutionTag; std::vector mergeQV; std::vector readLengths; std::vector readStartPositions; int nReads; int nBases; bool LookupReadIndexByXY(uint16_t x, uint16_t y, int &index); void CopyReadAt(uint32_t readIndex, SMRTSequence &read); template void CopyArray(std::vector &fullArray, int pos, int length, T*dest); }; #include "BaseFileImpl.hpp" #endif // _BLASR_BASE_FILE_HPP_ blasr_libcpp-master/pbdata/reads/BaseFileImpl.hpp000066400000000000000000000004111260756663100223510ustar00rootroot00000000000000#ifndef _BLASR_BASE_FILE_IMPL_HPP_ #define _BLASR_BASE_FILE_IMPL_HPP_ #include "BaseFile.hpp" template void BaseFile::CopyArray(std::vector &fullArray, int pos, int length, T*dest) { memcpy(dest, &fullArray[pos], sizeof(T) * length); } #endif blasr_libcpp-master/pbdata/reads/HoleXY.cpp000066400000000000000000000004251260756663100212250ustar00rootroot00000000000000#include "HoleXY.hpp" bool HoleXY::operator<(const HoleXY &rhs) const { return *this < rhs.xy; } bool HoleXY::operator<(const int16_t xyP[2]) const { if (xy[0] == xyP[0]) { return xy[1] < xyP[1]; } else { return xy[0] < xyP[0]; } } blasr_libcpp-master/pbdata/reads/HoleXY.hpp000066400000000000000000000003721260756663100212330ustar00rootroot00000000000000#ifndef _BLASR_HOLE_XY_HPP_ #define _BLASR_HOLE_XY_HPP_ #include class HoleXY { public: int16_t xy[2]; bool operator<(const HoleXY &rhs) const; bool operator<(const int16_t xyP[2]) const; }; #endif // _BLASR_HOLE_XY_HPP_ blasr_libcpp-master/pbdata/reads/PulseBaseCommon.cpp000066400000000000000000000052001260756663100231050ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #include #include #include "PulseBaseCommon.hpp" float PulseBaseCommon::GetFrameRate() { return scanData.frameRate; } unsigned int PulseBaseCommon::GetNumFrames() { return scanData.numFrames; } std::string PulseBaseCommon::GetMovieName() { return scanData.movieName; } std::map PulseBaseCommon::GetBaseMap() { return scanData.baseMap; } bool PulseBaseCommon::LookupReadIndexByHoleNumber(uint32_t holeNumber, int &readIndex) { std::vector::iterator holeIt; if (holeNumbers.size() == 0) { return false; } holeIt = lower_bound(holeNumbers.begin(), holeNumbers.end(), holeNumber); if (holeIt == holeNumbers.end()) { return false; } if (*holeIt == holeNumber) { readIndex = holeIt - holeNumbers.begin(); return true; } else { return false; } } blasr_libcpp-master/pbdata/reads/PulseBaseCommon.hpp000066400000000000000000000044501260756663100231200ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #ifndef DATASTRUCTURES_READS_PULSE_BASE_COMMON_H_ #define DATASTRUCTURES_READS_PULSE_BASE_COMMON_H_ // // This includes values that both pulse and base files must have. // #include #include "ScanData.hpp" class PulseBaseCommon { public: ScanData scanData; std::vector holeNumbers; float GetFrameRate(); unsigned int GetNumFrames(); std::string GetMovieName(); std::map GetBaseMap(); bool LookupReadIndexByHoleNumber(uint32_t holeNumber, int &readIndex); }; #endif blasr_libcpp-master/pbdata/reads/PulseFile.cpp000066400000000000000000000107171260756663100217520ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #include "PulseFile.hpp" void PulseFile::CopySignal(HalfWord *signalData, // either a vector or matrix int signalNDims, int pulseStartPos, // 0 if baseToPulseIndex maps to abs position int *baseToPulseIndex, Nucleotide *readSeq, int readLength, HalfWord *readData) { // if baseToPulseIndex maps bases to absolute pulse postions // pulseStartPos must be 0; // otherwise, pulseStartPos is pulseStartPositions[holeIndex] std::map baseMap = GetBaseMap(); int i; if (signalNDims == 1) { for (i = 0; i < readLength; i++) { readData[i] = signalData[pulseStartPos + baseToPulseIndex[i] ]; } } else { for (i = 0; i < readLength; i++) { readData[i] = signalData[baseToPulseIndex[i]*4 + baseMap[readSeq[i]]]; } } } void PulseFile::CopyReadAt(uint32_t plsReadIndex, int *baseToPulseIndex, SMRTSequence &read) { int pulseStartPos = pulseStartPositions[plsReadIndex]; bool allocResult; if (midSignal.size() > 0) { assert(midSignal.size() > pulseStartPos); allocResult = Realloc(read.midSignal, read.length); CopySignal(&midSignal[0], midSignalNDims, pulseStartPos, baseToPulseIndex, read.seq, read.length, read.midSignal); } if (maxSignal.size() > 0) { assert(maxSignal.size() > pulseStartPos); Realloc(read.maxSignal, read.length); CopySignal(&maxSignal[0], maxSignalNDims, pulseStartPos, baseToPulseIndex, read.seq, read.length, read.maxSignal); } if (meanSignal.size() > 0) { assert(meanSignal.size() > pulseStartPos); Realloc(read.meanSignal, read.length); CopySignal(&meanSignal[0], meanSignalNDims, pulseStartPos, baseToPulseIndex, read.seq, read.length, read.meanSignal); } if (plsWidthInFrames.size() > 0) { Realloc(read.widthInFrames, read.length); StoreField(plsWidthInFrames, baseToPulseIndex, read.widthInFrames, read.length); } if (classifierQV.size() > 0) { Realloc(read.classifierQV, read.length); StoreField(classifierQV, baseToPulseIndex, read.classifierQV, read.length); } if (startFrame.size() > 0) { Realloc(read.startFrame, read.length); StoreField(startFrame, baseToPulseIndex, read.startFrame, read.length); } } blasr_libcpp-master/pbdata/reads/PulseFile.hpp000066400000000000000000000032371260756663100217560ustar00rootroot00000000000000#ifndef _BLASR_PULSE_FILE_HPP_ #define _BLASR_PULSE_FILE_HPP_ #include #include #include "Types.h" #include "Enumerations.h" #include "DNASequence.hpp" #include "SMRTSequence.hpp" #include "PulseBaseCommon.hpp" #include "ScanData.hpp" class PulseFile : public PulseBaseCommon { public: unsigned int numFrames; PlatformId platformId; std::vector startFrame; std::vector plsWidthInFrames; int midSignalNDims, maxSignalNDims, meanSignalNDims; std::vector midSignal; std::vector maxSignal; std::vector meanSignal; std::vector numEvent; std::vector pulseStartPositions; std::vector classifierQV; PulseFile(){numFrames = 0; platformId = Springfield;} void CopySignal(HalfWord *signalData, // either a vector or matrix int signalNDims, int pulseStartPos, // 0 if baseToPulseIndex maps to abs position int *baseToPulseIndex, Nucleotide *readSeq, int readLength, HalfWord *readData); // plsReadIndex: index of this hole number in /PulseCalls/ZMW/HoleNumber. // baseToPulseIndex: index from pulse to base from the beginning of the read. // read: a SMRTSequence. void CopyReadAt(uint32_t plsReadIndex, int *baseToPulseIndex, SMRTSequence &read); template void StoreField(std::vector &source, int *basToPlsIndex, T_FieldType *dest, int destLength); template bool Realloc(T *&ptr, int length); }; #include "PulseFileImpl.hpp" #endif blasr_libcpp-master/pbdata/reads/PulseFileImpl.hpp000066400000000000000000000010311260756663100225660ustar00rootroot00000000000000#ifndef _BLASR_PULSE_FILE_IMPL_HPP_ #define _BLASR_PULSE_FILE_IMPL_HPP_ #include "utils.hpp" template void PulseFile::StoreField(std::vector &source, int *basToPlsIndex, T_FieldType *dest, int destLength) { int i; for (i = 0 ; i < destLength; i++) { dest[i] = source[basToPlsIndex[i]]; } } template bool PulseFile::Realloc(T *&ptr, int length) { if (ptr != NULL) { delete[] ptr; } ptr = ProtectedNew(length); return ptr != NULL; } #endif blasr_libcpp-master/pbdata/reads/ReadInterval.hpp000066400000000000000000000013631260756663100224440ustar00rootroot00000000000000#ifndef _BLASR_READ_INTERVAL_HPP_ #define _BLASR_READ_INTERVAL_HPP_ #include "RegionAnnotation.hpp" class RegionAnnotation; class ReadInterval { public: int start; int end; int score; ReadInterval(int s=0, int e=0, int sc=0) : start(s), end(e), score(sc) {}; ReadInterval(const RegionAnnotation & ra) : start(ra.GetStart()) , end(ra.GetEnd()) , score(ra.GetScore()) {} ReadInterval& operator=(const ReadInterval &rhs) { start = rhs.start; end = rhs.end; score = rhs.score; return *this; } bool operator==(const ReadInterval &rhs) const { return (start == rhs.start and end == rhs.end and score == rhs.score); } }; #endif blasr_libcpp-master/pbdata/reads/ReadType.cpp000066400000000000000000000024221260756663100215710ustar00rootroot00000000000000#include "ReadType.hpp" ReadType::ReadTypeEnum ReadType::ParseReadType(std::string &readTypeString) { if (readTypeString == "Standard") { return ReadType::Standard; } else if (readTypeString == "CCS") { return ReadType::CCS; } else if (readTypeString == "RCCS") { return ReadType::RCCS; } else if (readTypeString == "POLYMERASE") { return ReadType::POLYMERASE; } else if (readTypeString == "HQREGION") { return ReadType::HQREGION; } else if (readTypeString == "SUBREAD") { return ReadType::SUBREAD; } else if (readTypeString == "SCRAP") { return ReadType::SCRAP; } else if (readTypeString == "UNKNOWN") { return ReadType::UNKNOWN; } else { return ReadType::NoReadType; } } std::string ReadType::ToString(const ReadType::ReadTypeEnum & readType) { if (readType == ReadType::Standard) return "Standard"; if (readType == ReadType::CCS) return "CCS"; if (readType == ReadType::RCCS) return "RCCS"; if (readType == ReadType::HQREGION) return "HQREGION"; if (readType == ReadType::POLYMERASE) return "POLYMERASE"; if (readType == ReadType::SUBREAD) return "SUBREAD"; if (readType == ReadType::SCRAP) return "SCRAP"; if (readType == ReadType::UNKNOWN) return "UNKNOWN"; return "NoReadType"; } blasr_libcpp-master/pbdata/reads/ReadType.hpp000066400000000000000000000012131260756663100215730ustar00rootroot00000000000000#ifndef _BLASR_READ_TYPE_HPP #define _BLASR_READ_TYPE_HPP #include class ReadType { public: enum ReadTypeEnum {NoReadType=0, Standard=1, CCS=2, RCCS=3, POLYMERASE=4, HQREGION=5, SUBREAD=6, SCRAP=7, UNKNOWN=8}; static ReadTypeEnum ParseReadType(std::string &readTypeString); static std::string ToString(const ReadType::ReadTypeEnum & readType); }; //The READTYPE values encountered in secondary analysis will be limited to SUBREAD and CCS. //POLYMERASE, HQREGION, SCRAP, and UNKNOWN will only be encountered in intermediate steps before //secondary analysis. //NoReadType, Standard and RCCS were used in CMP.H5 deprecated. #endif blasr_libcpp-master/pbdata/reads/RegionAnnotation.cpp000066400000000000000000000041331260756663100233330ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #include #include "RegionAnnotation.hpp" std::ostream & operator << (std::ostream & os, const RegionAnnotation& ra) { os << "ZMW " << ra.GetHoleNumber() << ", region type index " << ra.GetTypeIndex() << " [" << ra.GetStart() << ", " << ra.GetEnd() << "), " << ra.GetScore(); return os; } blasr_libcpp-master/pbdata/reads/RegionAnnotation.hpp000066400000000000000000000161521260756663100233440ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #ifndef _BLASR_REGION_ANNOTATION_HPP_ #define _BLASR_REGION_ANNOTATION_HPP_ #include #include #include #include #include #include #include #include "Types.h" #include "Enumerations.h" #include "PacBioDefs.h" #include "RegionTypeMap.hpp" class HDFRegionTableReader; class HDFRegionTableWriter; class HDFRegionsWriter; class RegionAnnotation { friend class HDFRegionTableReader; friend class HDFRegionTableWriter; friend class HDFRegionsWriter; public: static const int HOLENUMBERCOL = 0; static const int REGIONTYPEINDEXCOL = 1; static const int REGIONSTARTCOL = 2; static const int REGIONENDCOL = 3; static const int REGIONSCORECOL = 4; static const int NCOLS=5; int row[NCOLS]; public: // FIXME: use regionType as a member varaible instead of regionTypeIndex inline RegionAnnotation(UInt holeNumber = 0, int typeIndex = 0, int start = 0, int end = 0, int score = -1); inline bool operator<(const RegionAnnotation &rhs) const; inline bool operator<(int holeNumber) const; inline RegionAnnotation& operator=(const RegionAnnotation &rhs); inline bool operator==(const RegionAnnotation &rhs) const; inline int GetHoleNumber(void) const; inline RegionAnnotation & SetHoleNumber(int holeNumber); inline int GetTypeIndex(void) const; inline std::string GetTypeString(const std::vector & types) const; inline RegionAnnotation & SetTypeIndex(int typeIndex); inline int GetStart(void) const; inline RegionAnnotation & SetStart(int start); inline int GetEnd(void) const; inline RegionAnnotation & SetEnd(int end); inline int GetScore(void) const; inline RegionAnnotation & SetScore(int score); public: friend std::ostream & operator << (std::ostream & os, const RegionAnnotation& ra); }; inline bool compare_region_annotation_by_type(const RegionAnnotation & lhs, const RegionAnnotation & rhs); inline RegionAnnotation::RegionAnnotation(UInt holeNumber, int typeIndex, int start, int end, int score) { SetHoleNumber(static_cast(holeNumber)); SetTypeIndex(typeIndex); SetStart(start); SetEnd(end); SetScore(score); } inline bool RegionAnnotation::operator<(const RegionAnnotation &rhs) const { if (GetHoleNumber() == rhs.GetHoleNumber()) if (GetStart() == rhs.GetStart()) { if (GetEnd() == rhs.GetEnd()) return GetScore() < rhs.GetScore(); else return GetEnd() > rhs.GetEnd(); } else { return GetStart() < rhs.GetStart(); } else return GetHoleNumber() < rhs.GetHoleNumber(); } inline bool RegionAnnotation::operator<(int holeNumber) const { return GetHoleNumber() < holeNumber; } inline RegionAnnotation& RegionAnnotation::operator=(const RegionAnnotation &rhs) { memcpy(row, rhs.row, sizeof(int)*NCOLS); return *this; } inline bool RegionAnnotation::operator==(const RegionAnnotation &rhs) const { return (GetHoleNumber() == rhs.GetHoleNumber() and GetTypeIndex() == rhs.GetTypeIndex() and GetStart() == rhs.GetStart() and GetEnd() == rhs.GetEnd() and GetScore() == rhs.GetScore()); } inline int RegionAnnotation::GetHoleNumber(void) const { return row[HOLENUMBERCOL]; } inline RegionAnnotation & RegionAnnotation::SetHoleNumber(int holeNumber) { row[HOLENUMBERCOL] = holeNumber; return *this; } inline int RegionAnnotation::GetTypeIndex(void) const { return row[REGIONTYPEINDEXCOL]; } inline std::string RegionAnnotation::GetTypeString(const std::vector & typesTable) const { assert(GetTypeIndex() >= 0 and GetTypeIndex() < static_cast(typesTable.size())); return RegionTypeMap::ToString(typesTable[GetTypeIndex()]); } inline RegionAnnotation & RegionAnnotation::SetTypeIndex(int regionTypeIndex) { row[REGIONTYPEINDEXCOL] = regionTypeIndex; return *this; } inline int RegionAnnotation::GetStart(void) const { return row[REGIONSTARTCOL]; } inline RegionAnnotation & RegionAnnotation::SetStart(int start) { row[REGIONSTARTCOL] = start; return *this; } inline int RegionAnnotation::GetEnd(void) const { return row[REGIONENDCOL]; } inline RegionAnnotation & RegionAnnotation::SetEnd(int end) { row[REGIONENDCOL] = end; return *this; } inline int RegionAnnotation::GetScore(void) const { return row[REGIONSCORECOL]; } inline RegionAnnotation & RegionAnnotation::SetScore(int score) { row[REGIONSCORECOL] = score; return *this; } inline bool compare_region_annotation_by_type(const RegionAnnotation & lhs, const RegionAnnotation & rhs) { if (lhs.GetHoleNumber() == rhs.GetHoleNumber()) { if (lhs.GetTypeIndex() == rhs.GetTypeIndex()) { if (lhs.GetStart() == rhs.GetStart()) { if (lhs.GetEnd() == rhs.GetEnd()) return lhs.GetScore() < rhs.GetScore(); else return lhs.GetEnd() > rhs.GetEnd(); } else return lhs.GetStart() < rhs.GetStart(); } else return lhs.GetTypeIndex() < rhs.GetTypeIndex(); } else { return lhs.GetHoleNumber() < rhs.GetHoleNumber(); } } #endif // _BLASR_REGION_ANNOTATION_HPP_ blasr_libcpp-master/pbdata/reads/RegionAnnotations.cpp000066400000000000000000000141741260756663100235240ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "RegionAnnotations.hpp" #include #include RegionAnnotations::RegionAnnotations(const UInt holeNumber, const std::vector & annotations, const std::vector & types) : holeNumber_(holeNumber) , table_(annotations) , types_(types) { for (auto annotation: annotations) { // Only allow RegionAnnotations of a single ZMW if (holeNumber_ != annotation.GetHoleNumber()) { assert(false && "RegionAnnotations must contain regions from a single ZMW"); } } std::sort(table_.begin(), table_.end(), compare_region_annotation_by_type); } RegionAnnotations::RegionAnnotations(const RegionAnnotations & rhs) : holeNumber_(rhs.holeNumber_) , table_(rhs.table_) , types_(rhs.types_) { } UInt RegionAnnotations::HoleNumber(void) const { return holeNumber_; } std::vector RegionAnnotations::RegionAnnotationsOfType(RegionType type) const { std::vector ret; int typeIndex = RegionTypeMap::ToIndex(type, types_); if (typeIndex >= 0) { for (auto ra: table_) if (ra.GetTypeIndex() == typeIndex) ret.push_back(ra); sort(ret.begin(), ret.end()); } return ret; } std::vector RegionAnnotations::Adapters() const { return RegionAnnotationsOfType(Adapter); } bool RegionAnnotations::HasHQRegion() const { return (HQRegions().size() >= 1 and HQEnd() - HQStart() > 0); } std::vector RegionAnnotations::HQRegions() const { return RegionAnnotationsOfType(HQRegion); } RegionAnnotation RegionAnnotations::TheHQRegion() const { std::vector hqs_ = HQRegions(); if (hqs_.size() == 0) return RegionAnnotation(holeNumber_, RegionTypeMap::ToIndex(HQRegion, types_), 0, 0, 0); else if (hqs_.size() == 1) return hqs_[0]; else assert(false && "Zmw has more than one HQRegion."); } DNALength RegionAnnotations::HQStart() const { return TheHQRegion().GetStart(); } DNALength RegionAnnotations::HQEnd() const { return TheHQRegion().GetEnd(); } int RegionAnnotations::HQScore() const { return TheHQRegion().GetScore(); } std::vector RegionAnnotations::Inserts() const { return RegionAnnotationsOfType(Insert); } std::vector RegionAnnotations::AdapterIntervals() const { std::vector ret; for (auto adapter: Adapters()) { ret.push_back(ReadInterval(adapter)); } return ret; } std::vector RegionAnnotations::SubreadIntervals(const DNALength wholeLength, const bool byAdapter, const bool byHQRegion) const { std::vector inserts; if (not byAdapter) { inserts = Inserts(); } else { if (Adapters().size() != 0) { // Must have at least one adapter in order find inserts by adapter. std::vector starts, ends; starts.push_back(0); for(auto adapter: Adapters()) { assert(wholeLength >= adapter.GetStart() and wholeLength >= adapter.GetEnd()); // bug if fail assert starts.push_back(adapter.GetEnd()); ends.push_back(adapter.GetStart()); } ends.push_back(wholeLength); for (size_t i = 0; i < starts.size(); i++) { // Use adapter to infer subreads, read score considered unknown. if (ends[i] > starts[i]) { inserts.push_back(RegionAnnotation(holeNumber_, Insert, starts[i], ends[i], 0)); } } } // else no inserts can be found } std::vector ret; for (auto insert: inserts) { if (byHQRegion) { if (HasHQRegion()) { DNALength s = std::max(static_cast(insert.GetStart()), HQStart()); DNALength e = std::min(static_cast(insert.GetEnd()), HQEnd()); if (s < e) { // subreads' read score = HQRegion score. ret.push_back(ReadInterval(s, e, HQScore())); } } // else ret = {} } else { ret.push_back(ReadInterval(insert)); } } return ret; } blasr_libcpp-master/pbdata/reads/RegionAnnotations.hpp000066400000000000000000000106741260756663100235320ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _PBDATA_READS_REGION_ANNOTATIONS_HPP_ #define _PBDATA_READS_REGION_ANNOTATIONS_HPP_ #include #include #include #include "ReadInterval.hpp" #include "RegionAnnotation.hpp" class RegionAnnotations { /// \name Region Annotations of a single ZMW /// \{ private: /// \name region table of a zmw std::vector table_; /// \name hole number of a zmw UInt holeNumber_; /// \name region types in order. std::vector types_; public: RegionAnnotations(const UInt holeNumber, const std::vector & annotations, const std::vector & types); RegionAnnotations(const RegionAnnotations & rhs); ~RegionAnnotations() {} /// \returns zmw holeNumber. UInt HoleNumber(void) const; /// \returns sorted adapters of this zmw std::vector Adapters() const; /// \returns whether or not has HQ region specified in table. bool HasHQRegion() const; /// \returns exactly one HQ region of this zmw. /// \note If no HQ region exists, return a RegionAnnotation of length 0. /// If more than one HQ region is found for this zmw, raise an assertion error. RegionAnnotation TheHQRegion() const; /// \returns HQ start position of this zmw. DNALength HQStart() const; /// \returns HQ end position of this zmw. DNALength HQEnd() const; /// \returns HQ score of this zmw. int HQScore() const; /// \returns sorted insert regions of this zmw. std::vector Inserts() const; /// \returns a vector of all adapters std::vector AdapterIntervals() const; /// \returns a vector of all subreads /// \param[in] wholeLength Length of unrolled sequence of this zmw. Note that /// this piece of info does not exist in region table. /// \param[in] byAdapter false: return inserts in region table directly. /// true : infer inserts according to adapters. /// \param[in] byHQRegion false: inserts may contain both HQ and LQ regions /// true : inserts in HQ regions only. std::vector SubreadIntervals(const DNALength wholeLength, const bool byAdapter = true, const bool byHQRegion = true) const; private: /// \returns sorted vector of region annotations of a RegionType. std::vector RegionAnnotationsOfType(RegionType type) const; /// \returns HQ regions of this zmw. std::vector HQRegions() const; /// \} }; #endif blasr_libcpp-master/pbdata/reads/RegionTable.cpp000066400000000000000000000122301260756663100222450ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson // Modified by: Yuan Li #include #include #include #include "RegionTable.hpp" using namespace std; RegionTable & RegionTable::Reset() { map_.clear(); columnNames.clear(); regionTypes.clear(); regionDescriptions.clear(); regionSources.clear(); regionTypeEnums.clear(); return *this; } std::vector RegionTable::RegionTypeEnums(void) const { return regionTypeEnums; } std::vector RegionTable::RegionTypes(void) const { return regionTypes; } std::vector RegionTable::ColumnNames(void) const { return columnNames; } std::vector RegionTable::RegionDescriptions(void) const { return regionDescriptions; } std::vector RegionTable::RegionSources(void) const { return regionSources;} RegionTable & RegionTable::ConstructTable(std::vector & table, const std::vector & regionTypeStrs) { RegionTypes(regionTypeStrs); //< Set both regionTypes and regionTypeEnums. // Must sort region annotations by HoleNumber, RegionTypeIndex, Start, End, and Score std::sort(table.begin(), table.end(), compare_region_annotation_by_type); // Construct map_ if (table.size() > 0) { UInt pre_hn = table[0].GetHoleNumber(); auto itBegin = table.begin(); for (auto it = table.begin(); it != table.end(); it++) { if (it->GetHoleNumber() > pre_hn) { map_.insert(std::pair(pre_hn, RegionAnnotations(pre_hn, std::vector(itBegin, it), regionTypeEnums))); pre_hn = it->GetHoleNumber(); itBegin = it; } } map_.insert(std::pair(pre_hn, RegionAnnotations(pre_hn, std::vector(itBegin, table.end()), regionTypeEnums))); } } std::vector RegionTable::DefaultRegionTypes(void) { std::vector ret; for (std::string regionTypeString: PacBio::AttributeValues::Regions::regiontypes) { ret.push_back(RegionTypeMap::ToRegionType(regionTypeString)); } return ret; } RegionTable & RegionTable::RegionTypes(const std::vector & regionTypeStrs) { regionTypes = regionTypeStrs; for (std::string regionTypeString: regionTypeStrs) { regionTypeEnums.push_back(RegionTypeMap::ToRegionType(regionTypeString)); } return *this; } RegionTable & RegionTable::ColumnNames(const std::vector & in) { columnNames = in; return *this; } RegionTable & RegionTable::RegionDescriptions(const std::vector & in) { regionDescriptions = in; return *this; } RegionTable & RegionTable::RegionSources(const std::vector & in) { regionSources = in; return *this; } bool RegionTable::HasHoleNumber(const UInt holeNumber) const { return (map_.find(holeNumber) != map_.end()); } RegionAnnotations RegionTable::operator [] (const UInt holeNumber) const { // Must check whether a zmw exists or not first. assert (HasHoleNumber(holeNumber) && "Could not find zmw in region table."); return map_.find(holeNumber)->second; } blasr_libcpp-master/pbdata/reads/RegionTable.hpp000066400000000000000000000124021260756663100222530ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #ifndef _BLASR_REGION_TABLE_HPP_ #define _BLASR_REGION_TABLE_HPP_ #include #include #include #include #include #include #include #include "Types.h" #include "Enumerations.h" #include "PacBioDefs.h" #include "RegionAnnotation.hpp" #include "RegionAnnotations.hpp" class RegionTable { private: /// RegionTable reading from h5 file 'Regions' dataset. /// \name member variables /// \{ /// Map zmw hole number to zmw RegionAnnotations. std::map map_; /// \} /// \name Region table attributes. std::vector columnNames; std::vector regionTypes; std::vector regionDescriptions; std::vector regionSources; std::vector regionTypeEnums; /// \} public: /// \name Constructor & destructor & reset /// \{ RegionTable() {} ~RegionTable() {} /// Clears member variables in region table. /// \returns *this RegionTable& Reset(); /// \} // Different region tables have different ways of encoding regions. // This maps from the way they are encoded in the rgn table to a // standard encoding. // /// \name Accessor functions to region table attributes. /// \{ /// \returns *default PacBio* region types (order matters). static std::vector DefaultRegionTypes(void); /// \returns RegionType enums (order matters). std::vector RegionTypeEnums(void) const; /// \returns RegionType strings in order std::vector RegionTypes(void) const; /// \returns column names. std::vector ColumnNames(void) const; /// \returns region descriptions. std::vector RegionDescriptions(void) const; /// \returns region sources. std::vector RegionSources(void) const; /// Construct map_ (holeNumber --> RegionAnnotations) from table. /// \params[in] region table containing region annotations of all zmws /// \params[in] ordered region type strings, which maps region types /// to region type indice. RegionTable & ConstructTable(std::vector & table, const std::vector & regionTypeStrs); /// Note that the ORDER of region types does matter. /// Set region types (order matters). RegionTable & RegionTypes(const std::vector & in); /// Set column names, e.g., /// {"HoleNumber", "TypeIndex", "Start", "End", "Score"} RegionTable & ColumnNames(const std::vector & in); /// Set region descriptions. e.g., /// {"desc of holenumber", "desc of index", "desc of start", "desc of end", "desc of score"} RegionTable & RegionDescriptions(const std::vector & in); /// Set region sources, e.g., /// {"source of holenumber", "source of index", "source of start", "source of end", "source of score"} RegionTable & RegionSources(const std::vector & in); /// \} /// \name Assessor functions to zmw region annotations. /// \{ /// \returns Whether or not this region table has regions of a zmw. bool HasHoleNumber(const UInt holeNumber) const; /// Get zmw region annotaions given its hole number. /// Note that HasHoleNumber must be called first. /// \returns RegionAnnotations of a zmw. RegionAnnotations operator [] (const UInt holeNumber) const; /// \} }; #endif // _BLASR_REGION_TABLE_HPP_ blasr_libcpp-master/pbdata/reads/RegionTypeMap.cpp000066400000000000000000000070021260756663100225760ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #include "RegionTypeMap.hpp" std::string RegionTypeMap::ToString(RegionType rt) { assert(RegionTypeToString.find(rt) != RegionTypeToString.end()); return RegionTypeToString.find(rt)->second; } RegionType RegionTypeMap::ToRegionType(const std::string & str) { if (StringToRegionType.find(str) == StringToRegionType.end()) { std::cout << "Unsupported RegionType " << str << std::endl; assert(false); } return StringToRegionType.find(str)->second; } int RegionTypeMap::ToIndex(const std::string & typeStr, const std::vector & typeStrs) { auto it = std::find(typeStrs.begin(), typeStrs.end(), typeStr); if (it == typeStrs.end()) { std::cout << "Could not find RegionType " << typeStr << std::endl; assert(false); } else { return std::distance(typeStrs.begin(), it); } } int RegionTypeMap::ToIndex(RegionType rt, const std::vector & typeStrs) { return RegionTypeMap::ToIndex(RegionTypeMap::ToString(rt), typeStrs); } int RegionTypeMap::ToIndex(RegionType rt, const std::vector & regionTypes) { auto it = std::find(regionTypes.begin(), regionTypes.end(), rt); if (it == regionTypes.end()) { std::cout << "Could not find RegionType " << RegionTypeMap::ToString(rt) << std::endl; assert(false); } else { return std::distance(regionTypes.begin(), it); } } const std::map RegionTypeMap::RegionTypeToString = { {Adapter, "Adapter"}, {Insert, "Insert"}, {HQRegion, "HQRegion"}, {BarCode, "Barcode"} }; const std::map RegionTypeMap::StringToRegionType = { {"Adapter", Adapter}, {"Insert", Insert}, {"HQRegion", HQRegion}, {"Barcode", BarCode}, }; blasr_libcpp-master/pbdata/reads/RegionTypeMap.hpp000066400000000000000000000065641260756663100226170ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Yuan Li #ifndef _BLASR_REGION_TYPE_MAP_HPP_ #define _BLASR_REGION_TYPE_MAP_HPP_ #include #include #include #include #include #include #include "Types.h" #include "Enumerations.h" class RegionTypeMap { public: /// \name Map region type to/from string and index /// \{ static std::string ToString(RegionType rt); static RegionType ToRegionType(const std::string & str); /// \params[in] typeStr - query region type as a string /// \params[in] typeStrs - a vector region type strings in order /// \returns index of a region type as string in a vector of region type strings static int ToIndex(const std::string & typeStr, const std::vector & typeStrs); /// \params[in] rt - query region type /// \params[in] typeStrs - a vector region type strings in order /// \returns index of the query region type in a vector of region type strings static int ToIndex(RegionType rt, const std::vector & typeStrs); /// \params[in] rt - query region type /// \params[in] regionTypes - a vector region type strings in order /// \returns index of the query region type in a vector of region type enums static int ToIndex(RegionType rt, const std::vector & regionTypes); private: // Map region type to string static const std::map RegionTypeToString; // Map string to region type static const std::map StringToRegionType; /// \} }; #endif // _BLASR_REGION_TYPE_MAP_HPP_ blasr_libcpp-master/pbdata/reads/ScanData.cpp000066400000000000000000000120721260756663100215340ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #include "ScanData.hpp" #include std::string ScanData::BaseMapToStr(const std::map & baseMap) { std::string baseMapStr = ""; //4 dye channels. if (not baseMap.empty()) { baseMapStr = " "; for (auto it = baseMap.begin(); it != baseMap.end(); ++it){ if (it->second > 4 or it->second < 0) { std::cout << "ERROR, there are more than four dye channels." << std::endl; exit(1); } baseMapStr[it->second]= it->first; } } return baseMapStr; } std::map ScanData::StrToBaseMap(const std::string & baseMapStr) { std::map ret; for (auto i = 0; i < baseMapStr.size(); i++) { ret[baseMapStr[i]] = i; } return ret; } bool ScanData::IsValidBaseMap(const std::map & baseMap) { const char X = 'x'; std::string v(4, X); for(const char base : {'A', 'T', 'G', 'C'}) { size_t index = baseMap.find(base)->second; if (not (baseMap.find(base) != baseMap.end() and index >= 0 and index <= 3)) return false; else v[index] = 'o'; } if (v.find(X) != std::string::npos) return false; else return true; } ScanData::ScanData() { platformId = NoPlatform; frameRate = 0.0; numFrames = 0; movieName = runCode = whenStarted = ""; baseMap.clear(); } std::string ScanData::GetMovieName() { return movieName; } ScanData & ScanData::PlatformID(const PlatformId & id) { platformId = id; return *this; } ScanData & ScanData::FrameRate(const float & rate) { frameRate = rate; return *this; } ScanData & ScanData::NumFrames(const unsigned int & num) { numFrames = num; return *this; } ScanData & ScanData::MovieName(const std::string & name) { movieName = name; return *this; } ScanData & ScanData::RunCode(const std::string & code) { runCode = code; return *this; } ScanData & ScanData::WhenStarted(const std::string & when) { whenStarted = when; return *this; } ScanData & ScanData::BaseMap(const std::map & bmp) { baseMap.clear(); baseMap.insert(bmp.begin(), bmp.end()); return *this; } ScanData & ScanData::BaseMap(const std::string & baseMapStr) { return this->BaseMap(ScanData::StrToBaseMap(baseMapStr)); } ScanData & ScanData::SequencingKit(const std::string sequencingKit) { sequencingKit_ = sequencingKit; return *this; } ScanData & ScanData::BindingKit(const std::string bindingKit) { bindingKit_ = bindingKit; return *this; } PlatformId ScanData::PlatformID(void) const { return platformId; } float ScanData::FrameRate(void) const { return frameRate; } unsigned int ScanData::NumFrames(void) const { return numFrames; } std::string ScanData::MovieName(void) const { return movieName; } std::string ScanData::RunCode(void) const { return runCode; } std::string ScanData::WhenStarted(void) const { return whenStarted; } std::map ScanData::BaseMap(void) const { return baseMap; } std::string ScanData::BaseMapStr(void) const { return ScanData::BaseMapToStr(baseMap); } std::string ScanData::SequencingKit(void) const { return sequencingKit_; } std::string ScanData::BindingKit(void) const { return bindingKit_; } blasr_libcpp-master/pbdata/reads/ScanData.hpp000066400000000000000000000075621260756663100215510ustar00rootroot00000000000000// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted (subject to the limitations in the // disclaimer below) provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // * Neither the name of Pacific Biosciences nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE // GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC // BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // Author: Mark Chaisson #ifndef DATASTRUCTURES_READS_SCAN_DATA_H_ #define DATASTRUCTURES_READS_SCAN_DATA_H_ #include #include #include "Enumerations.h" #include "PacBioDefs.h" class HDFScanDataReader; class HDFScanDataWriter; class ScanData { friend class HDFScanDataReader; friend class HDFScanDataWriter; public: // Convert base map from a map to a string. // e.g., {{'A', 2}, {'C', 1}, {'T', 0}, {'G', 3}} --> TCAG static std::string BaseMapToStr(const std::map & baseMap); // Convert base map from a string to a map. // e.g., TCAG --> {{'A', 2}, {'C', 1}, {'T', 0}, {'G', 3}} static std::map StrToBaseMap(const std::string & baseMapStr); // A baseMap must contain maps from bases (e.g., ACGT) to indices (e.g., 0, 1, 2, 3). static bool IsValidBaseMap(const std::map & baseMap); public: PlatformId platformId; float frameRate; unsigned int numFrames; std::string movieName, runCode; std::string whenStarted; std::map baseMap; ScanData(); std::string GetMovieName(); ScanData & PlatformID(const PlatformId & id); ScanData & FrameRate(const float & rate); ScanData & NumFrames(const unsigned int & num); ScanData & MovieName(const std::string & name); ScanData & RunCode(const std::string & code); ScanData & WhenStarted(const std::string & when); ScanData & BaseMap(const std::map & bmp); ScanData & BaseMap(const std::string & baseMapStr); ScanData & SequencingKit(const std::string sequencingKit); ScanData & BindingKit(const std::string bindingKit); PlatformId PlatformID(void) const; float FrameRate(void) const; unsigned int NumFrames(void) const; std::string MovieName(void) const; std::string RunCode(void) const; std::string WhenStarted(void) const; std::map BaseMap(void) const; std::string BaseMapStr(void) const; std::string SequencingKit(void) const; std::string BindingKit(void) const; private: std::string sequencingKit_; std::string bindingKit_; }; #endif blasr_libcpp-master/pbdata/reads/ZMWGroupEntry.cpp000066400000000000000000000002541260756663100225710ustar00rootroot00000000000000#include #include "Types.h" #include "ZMWGroupEntry.hpp" ZMWGroupEntry::ZMWGroupEntry() { holeNumber = x = y = 0; numEvents = 0; holeStatus = '0'; } blasr_libcpp-master/pbdata/reads/ZMWGroupEntry.hpp000066400000000000000000000004201260756663100225710ustar00rootroot00000000000000#ifndef _BLASR_ZMW_GROUP_ENTRY_HPP_ #define _BLASR_ZMW_GROUP_ENTRY_HPP_ #include "Types.h" class ZMWGroupEntry { public: UInt holeNumber; UInt x; UInt y; int numEvents; unsigned char holeStatus; ZMWGroupEntry(); }; #endif // _BLASR_ZMW_GROUP_ENTRY_HPP_ blasr_libcpp-master/pbdata/saf/000077500000000000000000000000001260756663100170235ustar00rootroot00000000000000blasr_libcpp-master/pbdata/saf/AlnGroup.cpp000066400000000000000000000003571260756663100212630ustar00rootroot00000000000000#include "AlnGroup.hpp" int AlnGroup::FindPath(int idKey, std::string &val) { int i; for (i = 0; i < id.size(); i++) { if (idKey == id[i]) { val = path[i]; return 1; } } return 0; } blasr_libcpp-master/pbdata/saf/AlnGroup.hpp000066400000000000000000000004151260756663100212630ustar00rootroot00000000000000#ifndef _BLASR_ALN_GROUP_HPP_ #define _BLASR_ALN_GROUP_HPP_ #include #include class AlnGroup { public: std::vector id; std::vector path; int FindPath(int idKey, std::string &val); }; #endif // _BLASR_ALN_GROUP_HPP_ blasr_libcpp-master/pbdata/saf/AlnInfo.hpp000066400000000000000000000004501260756663100210610ustar00rootroot00000000000000#ifndef DATASTRUCTURES_SAF_ALN_INFO_H_ #define DATASTRUCTURES_SAF_ALN_INFO_H_ #include #include #include "Types.h" #include "alignment/CmpAlignment.hpp" class AlnInfo { public: std::vector alignments; UInt nAlignments; uint64_t lastRow; }; #endif blasr_libcpp-master/pbdata/saf/MovieInfo.cpp000066400000000000000000000003661260756663100214270ustar00rootroot00000000000000#include "MovieInfo.hpp" int MovieInfo::FindMovie(int idKey, string &nameVal) { int i; for (i = 0; i < id.size(); i++) { if (id[i] == idKey) { nameVal = name[i]; return 1; } } return 0; } blasr_libcpp-master/pbdata/saf/MovieInfo.hpp000066400000000000000000000005261260756663100214320ustar00rootroot00000000000000#ifndef DATASTRUCTURES_SAF_HDF_MOVIE_INFO_H_ #define DATASTRUCTURES_SAF_HDF_MOVIE_INFO_H_ #include "Types.h" #include #include using namespace std; class MovieInfo { public: vector name; vector run; vector experiment; vector id; int FindMovie(int idKey, string &nameVal); }; #endif blasr_libcpp-master/pbdata/saf/RefGroup.cpp000066400000000000000000000010171260756663100212570ustar00rootroot00000000000000#include "RefGroup.hpp" bool RefGroup::IdToIndex(int idKey, int &idIndex) { int i; for (i = 0; i < refInfoId.size(); i++) { if (refInfoId[i] == idKey) { idIndex = i; return true; } } return false; } int RefGroup::FindPath(int idKey, string &pathVal, string &groupNameVal) { int i; for (i = 0; i < id.size(); i++) { if (id[i] == idKey) { pathVal = path[i]; groupNameVal = refGroupName[i]; return 1; } } return 0; } blasr_libcpp-master/pbdata/saf/RefGroup.hpp000066400000000000000000000006071260756663100212700ustar00rootroot00000000000000#ifndef _BLASR_REF_GROUP_HPP_ #define _BLASR_REF_GROUP_HPP_ #include #include #include using namespace std; class RefGroup { public: vector id; vector path; vector refGroupName; vector refInfoId; bool IdToIndex(int idKey, int &idIndex); int FindPath(int idKey, string &pathVal, string &groupNameVal); }; #endif blasr_libcpp-master/pbdata/saf/RefInfo.cpp000066400000000000000000000005571260756663100210660ustar00rootroot00000000000000#include "RefInfo.hpp" OneRefInfo::OneRefInfo() { fullName = md5 = ""; id = length = 0; } bool RefInfo::RefIdToIndex(uint32_t qid, int &index) { /* * Translate from external id to position in array. */ int i; for (i = 0; i < id.size(); i++) { if (id[i] == qid) { index = i; return true; } } return false; } blasr_libcpp-master/pbdata/saf/RefInfo.hpp000066400000000000000000000007271260756663100210720ustar00rootroot00000000000000#ifndef _BLASR_REF_INFO_HPP_ #define _BLASR_REF_INFO_HPP_ #include #include #include class OneRefInfo { public: std::string fullName; unsigned int id; unsigned int length; std::string md5; OneRefInfo(); }; class RefInfo { public: std::vector fullName; std::vector id; std::vector length; std::vector md5; bool RefIdToIndex(uint32_t qid, int &index); }; #endif blasr_libcpp-master/pbdata/sam/000077500000000000000000000000001260756663100170325ustar00rootroot00000000000000blasr_libcpp-master/pbdata/sam/AlignmentSet.hpp000066400000000000000000000014621260756663100221400ustar00rootroot00000000000000#ifndef _BLASR_SAM_ALIGNMENT_SET_HPP_ #define _BLASR_SAM_ALIGNMENT_SET_HPP_ #include #include #include #include "FASTASequence.hpp" #include "sam/ReadGroup.hpp" #include "sam/ReferenceSequence.hpp" #include "sam/SAMAlignment.hpp" #include "sam/SAMHeader.hpp" template class AlignmentSet { public: SAMHeader header; std::vector references; std::vector readGroups; std::vector alignments; // // Rearrange references such that they are placed in the same order // as fastaReferences // void RearrangeReferences(std::vector & fastaReferences); }; #include "AlignmentSetImpl.hpp" #endif blasr_libcpp-master/pbdata/sam/AlignmentSetImpl.hpp000066400000000000000000000025031260756663100227570ustar00rootroot00000000000000#include "AlignmentSet.hpp" template void AlignmentSet::RearrangeReferences(std::vector &fastaReferences) { int i = 0; std::map fastaRefToIndex; std::map::iterator it; for (i = 0; i newreferences; for (i = 0; i < references.size(); i++) { newreferences.push_back(T_ReferenceSequence()); } for (i = 0; i < references.size(); i++) { it = fastaRefToIndex.find(references[i].sequenceName); if (it == fastaRefToIndex.end()) { std::cout<<"Error, can not find reference name "< #include class CigarString : public std::string { public: void Vectorize(std::vector &lengths, std::vector &operations) { std::stringstream strm; strm.str(*this); while (strm) { int l; char o; if ((strm >> l >> o)) { lengths.push_back(l); operations.push_back(o); } } } }; #endif blasr_libcpp-master/pbdata/sam/ReadGroup.cpp000066400000000000000000000025301260756663100214260ustar00rootroot00000000000000#include "ReadGroup.hpp" void SAMReadGroup::StoreValues(std::vector &kvPairs, int lineNumber) { int i; bool idIsStored = false; for (i = 0; i < kvPairs.size(); i++ ){ if (kvPairs[i].key == "ID") { id = kvPairs[i].value; idIsStored = true; } } if (idIsStored == false) { std::cout << "ReadGroup missing id at " << lineNumber << std::endl; exit(1); } } void SAMFullReadGroup::StoreValues(vector &kvPairs, int lineNumber) { SAMReadGroup::StoreValues(kvPairs, lineNumber); std::string kwPair; std::string key, valueStr; int i; for (i = 0; i < kvPairs.size(); i++) { if (kvPairs[i].key == "CN") { centerName = kvPairs[i].value; } else if (kvPairs[i].key == "DS") { description = kvPairs[i].value; } else if (kvPairs[i].key == "DT") { date = kvPairs[i].value; } else if (kvPairs[i].key == "FO") { flowOrder = kvPairs[i].value; } else if (kvPairs[i].key == "LB") { library = kvPairs[i].value; } else if (kvPairs[i].key == "PG") { processingProgram = kvPairs[i].value; } else if (kvPairs[i].key == "PI") { StoreValue(kvPairs[i].value, insertSize); } else if (kvPairs[i].key == "SM") { sample = kvPairs[i].value; } } } blasr_libcpp-master/pbdata/sam/ReadGroup.hpp000066400000000000000000000015701260756663100214360ustar00rootroot00000000000000#ifndef _BLASR_SAM_READ_GROUP_HPP_ #define _BLASR_SAM_READ_GROUP_HPP_ #include /* * Minimal components of read group. Define only required items. Use * if memory is scarce. */ #include "SAMKeywordValuePair.hpp" class SAMReadGroup { public: std::string id; void StoreValues(std::vector &kvPairs, int lineNumber = 0); }; /* * Full read group. Use when all data are required. */ class SAMFullReadGroup : public SAMReadGroup { public: std::string centerName; std::string description; std::string date; std::string flowOrder; std::string keySequence; std::string library; std::string processingProgram; int insertSize; std::string platform; std::string platformUnit; std::string sample; void StoreValues(std::vector &kvPairs, int lineNumber = 0); }; #endif blasr_libcpp-master/pbdata/sam/ReferenceSequence.cpp000066400000000000000000000027111260756663100231260ustar00rootroot00000000000000#include "ReferenceSequence.hpp" const char* SAMReferenceSequence::SAMReferenceSequenceFieldNames[] = {"SN", "LN"}; void SAMReferenceSequence::StoreValues(std::vector &kvPairs, int lineNumber) { int i; std::vector usedFields; usedFields.resize(SQ_LN); std::fill(usedFields.begin(), usedFields.end(), false); for (i = 0; i < kvPairs.size(); i++) { if (kvPairs[i].key == "SN") { sequenceName = kvPairs[i].value; usedFields[SQ_SN] = true; } else if (kvPairs[i].key == "LN") { StoreValue(kvPairs[i].value, length); usedFields[SQ_SN] = true; } } for (i = 0; i < usedFields.size(); i++) { if (usedFields[i] == false) { std::cout << "SQ specifier missing " << SAMReferenceSequenceFieldNames[i] << std::endl; } } } const char* SAMFullReferenceSequence::SAMFullReferenceSequenceFieldNames[] = {"AS", "M5", "SP", "UR"}; void SAMFullReferenceSequence::StoreValues(std::vector &kvPairs, int lineNumber) { SAMReferenceSequence::StoreValues(kvPairs, lineNumber); int i; for (i = 0; i < kvPairs.size(); i++ ){ if (kvPairs[i].key == "AS") { genomeAssembly = kvPairs[i].value; } else if (kvPairs[i].key == "M5") { md5 = kvPairs[i].value; } else if (kvPairs[i].key == "SP") { species = kvPairs[i].value; } else if (kvPairs[i].key == "UR") { uri = kvPairs[i].value; } } } blasr_libcpp-master/pbdata/sam/ReferenceSequence.hpp000066400000000000000000000030641260756663100231350ustar00rootroot00000000000000#ifndef _BLASR_SAM_REFERENCE_SEQUENCE_HPP_ #define _BLASR_SAM_REFERENCE_SEQUENCE_HPP_ #include #include "sam/SAMKeywordValuePair.hpp" class SAMReferenceSequence { public: std::string sequenceName; unsigned int length; std::string GetSequenceName() { return sequenceName; } // // By definining accessor functions here but no data, we can // economize on the amount of space used for each element. This is // no big deal for references, but for pairwise alignments, it is // big. // std::string GetMD5() { return ""; } unsigned int GetLength() { return length; } std::string GetGenomeAssembly() { return ""; } std::string GetSpecies() { return ""; } std::string GetURI() { return ""; } enum SAMReferenceSequenceRequiredFields { SQ_SN, SQ_LN }; static const char* SAMReferenceSequenceFieldNames[]; void StoreValues(std::vector &kvPairs, int lineNumber=0); }; class SAMFullReferenceSequence : public SAMReferenceSequence { public: std::string md5; std::string species; std::string uri; std::string genomeAssembly; std::string GetMD5() { return md5; } std::string GetSpecies() { return species; } std::string GetURI() { return uri; } std::string GetGenomeAssembly() { return genomeAssembly; } enum FullReferenceSequenceRequiredFields { SQ_AS, SQ_M5, SQ_SP, SQ_UR }; static const char* SAMFullReferenceSequenceFieldNames[]; void StoreValues(std::vector &kvPairs, int lineNumber=0); }; #endif blasr_libcpp-master/pbdata/sam/SAMAlignment.cpp000066400000000000000000000124741260756663100220250ustar00rootroot00000000000000#include "SAMAlignment.hpp" SAMAlignment::SAMAlignment() { score = xs = xe = as = xt = xq = nm = fi = xl = 0; rg = optTagStr = ""; } void SAMAlignment::PrintSAMAlignment(std::ostream & out) { out << qName << "\t" << flag << "\t" << rName << "\t" << pos << "\t" << mapQV << "\t" << cigar << "\t" << rNext << "\t" << pNext << "\t" << tLen << "\t" << seq << "\t" << qual << "\t" << optTagStr << std::endl; } int SAMAlignment::FindPosOfNthChar(std::string str, int n, char c) { if (n < 1) { std::cout << "Nth should be a positive integer." << std::endl; exit(0); } int count = 1; int pos = str.find(c, 0); // pos is the position of the first character c; while(count < n and pos != std::string::npos) { pos = str.find(c, pos+1); count ++; } return pos; } std::string SAMAlignment::TrimStringEnd(std::string str) { std::string newStr = str; while(newStr[newStr.size()-1] == '\r' or newStr[newStr.size()-1] == '\n') { newStr.erase(newStr.size()-1, 1); } return newStr; } bool SAMAlignment::StoreValues(std::string &line, int lineNumber) { std::stringstream strm(line); std::vector usedFields; usedFields.resize(S_QUAL); fill(usedFields.begin(), usedFields.end(), false); std::string kvPair; int i; bool parseError = false; SAMAlignmentRequiredFields field; // // Define a temporary mapqv value that gets over a GMAP bug that prints a mapqv < 0. // int tmpMapQV; if (!(strm >> qName)) { parseError = true; field = S_QNAME; } else if (! (strm >> flag) ){ parseError = true; field = S_FLAG; } else if (! (strm >> rName) ) { parseError = true; field = S_RNAME; } else if (! (strm >> pos) ) { parseError = true; field = S_POS; } else if (! (strm >> tmpMapQV)) { parseError = true; field = S_MAPQV; } else if (! (strm >> cigar)) { parseError = true; field = S_CIGAR; } else if (! (strm >> rNext)) { parseError = true; field = S_RNEXT; } else if (! (strm >> pNext)) { parseError = true; field = S_PNEXT; } else if (! (strm >> tLen)) { parseError = true; field = S_TLEN; } else if (! (strm >> seq)) { parseError = true; field = S_SEQ; } else if (! (strm >> qual)) { parseError = true; field = S_QUAL; } mapQV = (unsigned char) tmpMapQV; // Find posisition of the 11th tab. int optTagsStartPos = FindPosOfNthChar(strm.str(), 11, '\t'); // Save all optional tags. if (optTagsStartPos != std::string::npos) { optTagStr = strm.str().substr(optTagsStartPos+1); optTagStr = TrimStringEnd(optTagStr); } // // If not aligned, stop trying to read in elements from the sam string. // if (rName == "*") { return true; } if (parseError) { std::cout << "Error parsing alignment line " << lineNumber << ". Missing or error in field " << SAMAlignmentRequiredFieldNames[field] << std::endl; exit(1); } // // Now parse optional data. // while (strm) { std::string kvName, kvType, kvValue; std::string typedKVPair; if (!(strm >> typedKVPair)) { break; } if (TypedKeywordValuePair::Separate(typedKVPair, kvName, kvType, kvValue)) { std::stringstream strm(kvValue); if (kvName == "RG") { rg = kvValue; } else if (kvName == "AS") { strm >> as; } else if (kvName == "XS") { strm >> xs; } else if (kvName == "XE") { strm >> xe; } else if (kvName == "XL") { strm >> xl; } else if (kvName == "XT") { strm >> xt; } else if (kvName == "NM") { strm >> nm; } else if (kvName == "FI") { strm >> fi; } else if (kvName == "XQ") { strm >> xq; } // Add quality values, including QualityValue?, // InsertionQV, DeletionQV, SubstitutionQV, // MergeQV and SubstitutionTag and DeletionTag else if (kvName == "iq") { strm >> iq; } else if (kvName == "dq") { strm >> dq; } else if (kvName == "sq") { strm >> sq; } else if (kvName == "mq") { strm >> mq; } else if (kvName == "st") { strm >> st; } else if (kvName == "dt") { strm >> dt; } } else { std::cout << "ERROR. Could not parse typed keyword value " << typedKVPair << std::endl; exit(0); } } return true; } void SAMAlignment::CopyQVs(std::vector *optionalQVs) { optionalQVs->clear(); optionalQVs->push_back(iq); optionalQVs->push_back(dq); optionalQVs->push_back(sq); optionalQVs->push_back(mq); optionalQVs->push_back(st); optionalQVs->push_back(dt); } const char* SAMAlignment::SAMAlignmentRequiredFieldNames[] = { "QNAME", "FLAG", "RNAME", "POS", "MAPQV", "CIGAR", "RNEXT", "PNEXT", "TLEN", "SEQ", "QUAL"} ; const char* optionalQVTags[] = {"iq", "dq", "sq", "mq", "st", "dt"}; const char* optionalQVNames[] = {"InsertionQV", "DeletionQV", "SubstitutionQV", "MergeQV", "SubstitutionTag", "DeletionTag"}; blasr_libcpp-master/pbdata/sam/SAMAlignment.hpp000066400000000000000000000041721260756663100220260ustar00rootroot00000000000000#ifndef _BLASR_SAM_ALIGNMENT_HPP_ #define _BLASR_SAM_ALIGNMENT_HPP_ #include #include #include "sam/SAMKeywordValuePair.hpp" #include "sam/CigarString.h" class SAMAlignment { public: enum SAMAlignmentRequiredFields { S_QNAME, S_FLAG, S_RNAME, S_POS, S_MAPQV, S_CIGAR, S_RNEXT, S_PNEXT, S_TLEN, S_SEQ, S_QUAL}; static const char* SAMAlignmentRequiredFieldNames[]; std::string qName; unsigned int flag; std::string rName; unsigned int pos; short mapQV; CigarString cigar; std::string rNext; int pNext; int tLen; std::string seq; std::string qual; // Optional tags defined in blasr: // "RG" read group Id // "AS" alignment score // "XS" read alignment start position without counting previous soft clips (1 based) // "XE" read alignment end position without counting previous soft clips (1 based) // "XL" aligned read length // "XQ" query read length // "XT" # of continues reads, always 1 for blasr // "NM" # of subreads // "FI" read alignment start position (1 based) // float score; int xs, xe; int xl; int xq; std::string rg; int as; int xt; int nm; int fi; std::string optTagStr; // // Quality values. // std::string iq, dq, sq, mq, st, dt; static const char* optionalQVTags[]; static const char* optionalQVNames[]; // // Initialize all optional fields. Required fields will be // assigned a value later. // SAMAlignment(); void PrintSAMAlignment(std::ostream &out = std::cout); // Find position of the nth character in a string. int FindPosOfNthChar(std::string str, int n, char c); // Trim the end '\n\r' characters from a string. std::string TrimStringEnd(std::string str); bool StoreValues(std::string &line, int lineNumber=0); // CopyQVs writes the strings from the optional QV tags to a vector. The // order of QVs in the vector is given by optionalQVNames[] void CopyQVs(std::vector *optionalQVs); }; class SAMPosAlignment : public SAMAlignment { public: unsigned int qStart, qEnd; unsigned int tStart, tEnd; int qStrand, tStrand; }; #endif blasr_libcpp-master/pbdata/sam/SAMFlag.h000066400000000000000000000015551260756663100204230ustar00rootroot00000000000000#ifndef SAM_FLAG_H_ #define SAM_FLAG_H_ inline bool IsMultipleSegment(unsigned int flag) { return flag & 0x1; } inline bool AllSegmentsMapped(unsigned int flag) { return flag & 0x2; } inline bool SegmentUnmapped(unsigned int flag) { return flag & 0x4; } inline bool NextUnmapped(unsigned int flag) { return flag & 0x8; } inline bool IsReverseComplement(unsigned int flag) { return flag & 0x10; } inline bool IsNextReverseComplement(unsigned int flag) { return flag & 0x20; } inline bool IsSegemntFirst(unsigned int flag) { return flag & 0x40; } inline bool IsSegmentLast(unsigned int flag) { return flag & 0x80; } inline bool IsSecondaryAlignment(unsigned int flag) { return flag & 0x100; } inline bool IsNotPassedQuality(unsigned int flag) { return flag & 0x200; } inline bool IsDuplicate(unsigned int flag) { return flag & 0x400; } #endif blasr_libcpp-master/pbdata/sam/SAMHeader.cpp000066400000000000000000000016171260756663100212740ustar00rootroot00000000000000#include "SAMHeader.hpp" #include void SAMHeader::StoreValues(std::vector &kvPairs, int lineNumber) { int i; for ( i = 0; i < kvPairs.size(); i++) { if (kvPairs[i].key == "VN") { formatVersion = kvPairs[i].value; } else if (kvPairs[i].key == "SO") { string value = kvPairs[i].value; std::transform(value.begin(), value.end(), value.begin(), ::tolower); if (value == "unknown" || value == "unsorted") { sortingOrder = unknown; } else if (value == "sorted") { sortingOrder = sorted; } else if (value == "queryname") { sortingOrder =queryname; } else if (value == "coordinate") { sortingOrder = coordinate; } else { std::cout << "Invalid sorting order " << kvPairs[i].value << " at line " << lineNumber; } } } } blasr_libcpp-master/pbdata/sam/SAMHeader.hpp000066400000000000000000000005511260756663100212750ustar00rootroot00000000000000#ifndef _BLASR_SAM_HEADER_HPP_ #define _BLASR_SAM_HEADER_HPP_ #include #include "sam/SAMKeywordValuePair.hpp" class SAMHeader { public: string formatVersion; enum SortingOrder {unknown, sorted , queryname, coordinate}; SortingOrder sortingOrder; void StoreValues(std::vector &kvPairs, int lineNumber = 0); }; #endif blasr_libcpp-master/pbdata/sam/SAMKeywordValuePair.cpp000066400000000000000000000024701260756663100233370ustar00rootroot00000000000000#include "SAMKeywordValuePair.hpp" bool SplitSAMKeyValuePair(std::string &kvPair, std::string &key, std::string &value) { int sepIndex = kvPair.find_first_of(":"); if (sepIndex == kvPair.npos) { return false; } else { key = kvPair.substr(0, sepIndex); value = kvPair.substr(sepIndex+1); return true; } } bool SplitSAMTypedKeyValuePair(std::string kvPair, std::string &key, std::string &kvType, std::string &value) { std::vector strValues; ParseSeparatedList(kvPair, strValues, ':', 3); if (strValues.size() != 3) { return false; } else { key = strValues[0]; kvType = strValues[1]; value = strValues[2]; return true; } } bool TypedKeywordValuePair::Separate(std::string &kvPair, std::string &kvKey, std::string &kvType, std::string &kvValue) { if (SplitSAMTypedKeyValuePair(kvPair, kvKey, kvType, kvValue) == false) { return false; } return true; } void KeywordValueStringsToPairs(std::vector &kvStrings, std::vector &kvPairs) { kvPairs.resize(kvStrings.size()); if (kvStrings.size() == 0) { return; } int i; for (i = 0; i < kvStrings.size(); i++ ) { SplitSAMKeyValuePair(kvStrings[i], kvPairs[i].key, kvPairs[i].value); } } blasr_libcpp-master/pbdata/sam/SAMKeywordValuePair.hpp000066400000000000000000000022011260756663100233340ustar00rootroot00000000000000#ifndef _BLASR_SAM_KVPAIR_HPP_ #define _BLASR_SAM_KVPAIR_HPP_ #include #include #include #include #include "StringUtils.hpp" class SAMKeywordValuePair { public: std::string key; std::string value; }; bool SplitSAMKeyValuePair(std::string &kvPair, std::string &key, std::string &value); bool SplitSAMTypedKeyValuePair(std::string kvPair, std::string &key, std::string &kvType, std::string &value); template void StoreValue(std::string &valueStr, T &value); void KeywordValueStringsToPairs(std::vector &kvStrings, std::vector &kvPairs); class TypedKeywordValuePair { public: static bool Separate(std::string &kvPair, std::string &kvKey, std::string &kvType, std::string &kvValue); }; template class KeywordValuePair { public: static bool Parse(std::string &kvPair, const char *key, T_Value &result); static bool Store(std::string &valueStr, T_Value &value); }; #include "SAMKeywordValuePairImpl.hpp" #endif blasr_libcpp-master/pbdata/sam/SAMKeywordValuePairImpl.hpp000066400000000000000000000014421260756663100241640ustar00rootroot00000000000000template void StoreValue(std::string &valueStr, T &value) { std::stringstream strm(valueStr); if (!(strm >> value)) { std::cout <<"Error parsing " << valueStr << std::endl; exit(1); } } template bool KeywordValuePair::Parse(std::string &kvPair, const char *key, T_Value &result) { std::string kvKey, kvValue; SplitSAMKeyValuePair(kvPair, kvKey, kvValue); if (kvKey != key) { return false; } else { std::stringstream strm(kvValue); if ( ! (kvValue >> result) ) { return false; } else { return true; } } } template bool KeywordValuePair::Store(std::string &valueStr, T_Value &value) { return (std::stringstream(valueStr) >> value); } blasr_libcpp-master/pbdata/sam/SAMReader.hpp000066400000000000000000000041051260756663100213060ustar00rootroot00000000000000#ifndef _BLASR_SAM_READER_HPP_ #define _BLASR_SAM_READER_HPP_ #include "sam/SAMKeywordValuePair.hpp" #include "sam/ReadGroup.hpp" #include "sam/ReferenceSequence.hpp" #include "sam/AlignmentSet.hpp" #include "StringUtils.hpp" #include "utils.hpp" template class SAMReader { public: int lineNumber; std::ifstream samFile; std::istream *samFilePtr; bool Initialize(std::string samFileName); void Close(); enum LineType {Blank, HSHeader, HSSequence, HSReadGroup, HSProgram, HSComment, Alignment, Error}; void GetLine(std::istream &in, std::string &line); bool LineTypeIsHeader(LineType lineType); bool PeekLineIsHeader(std::istream &in); LineType GetLineType(std::string &line); void StoreKVPairs(std::string line, std::vector &kvPairs); int StoreHeader(std::vector &kvPairs, AlignmentSet &alignments); void StoreReferenceSequence(std::vector &kvPairs, AlignmentSet &alignments); void StoreReadGroup(std::vector &kvPairs, AlignmentSet &alignments); void StoreAlignment(std::string & line, AlignmentSet &alignments); // Not implemented void StoreProgram(std::vector &kvPairs, AlignmentSet &alignments ) {} void Read(std::string samFileName, AlignmentSet &alignments); std::vector ReadHeader(AlignmentSet &alignments); void Read(AlignmentSet &alignments); bool GetNextAlignment(SAMAlignment &alignment); }; #include "SAMReaderImpl.hpp" #endif blasr_libcpp-master/pbdata/sam/SAMReaderImpl.hpp000066400000000000000000000164611260756663100221400ustar00rootroot00000000000000#ifndef _BLASR_SAM_READER_IMPL_HPP_ #define _BLASR_SAM_READER_IMPL_HPP_ #include #include "SAMReader.hpp" template bool SAMReader::Initialize(std::string samFileName) { if(samFileName != "stdin") { CrucialOpen(samFileName, samFile, std::ios::in); samFilePtr = &samFile; } else { samFilePtr = &std::cin; } } template void SAMReader::Close() { if(samFile.is_open()) { samFile.close(); } } template void SAMReader::GetLine(std::istream &in, std::string &line) { getline(in, line); } template bool SAMReader::LineTypeIsHeader(LineType lineType) { return (lineType == HSHeader or lineType == HSSequence or lineType == HSReadGroup or lineType == HSProgram or lineType == HSComment); } template bool SAMReader::PeekLineIsHeader(std::istream &in) { if (in and in.peek() == '@') { return true; } else { return false; } } template typename SAMReader::LineType SAMReader::GetLineType(std::string &line) { if (line.length() == 0) { return Blank; } else if (line[0] == '@') { std::stringstream strm(line); std::string tag; strm >> tag; if (tag == "@HD") { return HSHeader; } else if (tag == "@SQ") { return HSSequence; } else if (tag == "@RG") { return HSReadGroup; } else if (tag == "@PG") { return HSProgram; } else if (tag == "@CO") { return HSComment; } else { return Error; } } else { return Alignment; } } template void SAMReader::StoreKVPairs(std::string line, std::vector &kvPairs) { // // Split on tab delineated line. // std::vector kvPairStrings; Splice(line, "\t", kvPairStrings); KeywordValueStringsToPairs(kvPairStrings, kvPairs); } template int SAMReader::StoreHeader(std::vector &kvPairs, AlignmentSet &alignments) { alignments.header.StoreValues(kvPairs, lineNumber); } template void SAMReader::StoreReferenceSequence(std::vector &kvPairs, AlignmentSet &alignments) { alignments.references.push_back(T_ReferenceSequence()); int lastRefIndex = alignments.references.size() - 1; alignments.references[lastRefIndex].StoreValues(kvPairs, lineNumber); } template void SAMReader::StoreReadGroup(std::vector &kvPairs, AlignmentSet &alignments) { alignments.readGroups.push_back(T_ReadGroup()); int lastReadGroupIndex = alignments.readGroups.size() - 1; alignments.readGroups[lastReadGroupIndex].StoreValues(kvPairs, lineNumber); } template void SAMReader::StoreAlignment(std::string & line, AlignmentSet &alignments) { alignments.alignments.push_back(T_SAMAlignment()); int lastAlignmentIndex = alignments.alignments.size() - 1; alignments.alignments[lastAlignmentIndex].StoreValues(line, lineNumber); } template void SAMReader::Read(std::string samFileName, AlignmentSet &alignments) { Initialize(samFileName); Read(alignments); } template std::vector SAMReader::ReadHeader(AlignmentSet &alignments) { std::vector allHeaders; std::string line; LineType lineType; lineNumber = 0; while (*samFilePtr and PeekLineIsHeader(*samFilePtr)) { getline(*samFilePtr, line); lineType = GetLineType(line); if (LineTypeIsHeader(lineType)) { allHeaders.push_back(line); std::stringstream strm(line); std::string tag; strm >> tag; std::string remainder; getline(strm, remainder); std::vector kvPairs; StoreKVPairs(remainder, kvPairs); if (lineType == HSHeader) { StoreHeader(kvPairs, alignments); } else if (lineType == HSSequence) { StoreReferenceSequence(kvPairs, alignments); } else if (lineType == HSReadGroup) { StoreReadGroup(kvPairs, alignments); } else if (lineType == HSProgram) { StoreProgram(kvPairs, alignments); } else if (lineType == HSComment) { // do nothing with comments for now. } } ++lineNumber; } return allHeaders; } template void SAMReader::Read(AlignmentSet &alignments) { std::string line; LineType lineType; lineNumber = 0; ReadHeader(alignments); while (getline(*samFilePtr, line)) { lineType = GetLineType(line); if (LineTypeIsHeader(lineType)) { std::cout << "ERROR! Header line found outside of the header at " << lineNumber << std::endl; exit(1); } else if (lineType == Alignment) { StoreAlignment(line, alignments); } else { std::cout << "Error, line type unknown at " << lineNumber << std::endl; std::cout << line << std::endl; exit(1); } ++lineNumber; } } template bool SAMReader::GetNextAlignment(SAMAlignment &alignment) { if (*samFilePtr) { std::string line; if (getline(*samFilePtr, line)) { alignment.StoreValues(line, lineNumber); ++lineNumber; return true; } else { return false; } } else { return false; } } #endif blasr_libcpp-master/pbdata/utils.hpp000066400000000000000000000010111260756663100201140ustar00rootroot00000000000000#ifndef _BLASR_UTILS_HPP_ #define _BLASR_UTILS_HPP_ #include #include #include #include template void CrucialOpen(std::string &fileName, t_file &file, std::ios_base::openmode mode=(std::ios_base::openmode)0 ); template T_Int CeilOfFraction(T_Int num, T_Int denom); template inline T* ProtectedNew(unsigned long size); template inline T* ProtectedNew(void); #include "utilsImpl.hpp" #endif // _BLASR_UTILS_HPP_ blasr_libcpp-master/pbdata/utils/000077500000000000000000000000001260756663100174125ustar00rootroot00000000000000blasr_libcpp-master/pbdata/utils/BitUtils.cpp000066400000000000000000000066761260756663100216740ustar00rootroot00000000000000#include "BitUtils.hpp" int32_t CountBits(uint32_t v) { /* * Attribute Sean Anderson for this method. * The page: http://graphics.stanford.edu/~seander/bithacks.html * contains this code. */ return std::bitset(v).count(); /* unsigned long long c; c = ((v & 0xfff) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f; c += (((v & 0xfff000) >> 12) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f; c += ((v >> 24) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f; return c;*/ } int GetSetBitPosition64(uint64_t v) { unsigned int s; // Output: Resulting position of bit with rank r [1-64] uint64_t a, b, c, d; // Intermediate temporaries for bit count. unsigned int t; // Bit count temporary. unsigned int r=1; // Do a normal parallel bit count for a 64-bit integer, // but store all intermediate steps. // a = (v & 0x5555...) + ((v >> 1) & 0x5555...); a = v - ((v >> 1) & ~0UL/3); // b = (a & 0x3333...) + ((a >> 2) & 0x3333...); b = (a & ~0UL/5) + ((a >> 2) & ~0UL/5); // c = (b & 0x0f0f...) + ((b >> 4) & 0x0f0f...); c = (b + (b >> 4)) & ~0UL/0x11; // d = (c & 0x00ff...) + ((c >> 8) & 0x00ff...); d = (c + (c >> 8)) & ~0UL/0x101; t = (d >> 32) + (d >> 48); // Now do branchless select! s = 64; // if (r > t) {s -= 32; r -= t;} s -= ((t - r) & 256) >> 3; r -= (t & ((t - r) >> 8)); t = (d >> (s - 16)) & 0xff; // if (r > t) {s -= 16; r -= t;} s -= ((t - r) & 256) >> 4; r -= (t & ((t - r) >> 8)); t = (c >> (s - 8)) & 0xf; // if (r > t) {s -= 8; r -= t;} s -= ((t - r) & 256) >> 5; r -= (t & ((t - r) >> 8)); t = (b >> (s - 4)) & 0xf; // if (r > t) {s -= 4; r -= t;} s -= ((t - r) & 256) >> 6; r -= (t & ((t - r) >> 8)); t = (a >> (s - 2)) & 0x3; // if (r > t) {s -= 2; r -= t;} s -= ((t - r) & 256) >> 7; r -= (t & ((t - r) >> 8)); t = (v >> (s - 1)) & 0x1; // if (r > t) s--; s -= ((t - r) & 256) >> 8; // s = 64 - s; s = s - 1; return s; } unsigned int GetSetBitPosition32(UInt v) { unsigned int r; // Input: bit's desired rank [1-64]. unsigned int s; // Output: Resulting position of bit with rank r [1-64] uint32_t a, b, c, d; // Intermediate temporaries for bit count. unsigned int t; // Bit count temporary. r = 1; // Do a normal parallel bit count for a 64-bit integer, // but store all intermediate steps. // a = (v & 0x5555...) + ((v >> 1) & 0x5555...); a = v - ((v >> 1) & ~0U/3); // b = (a & 0x3333...) + ((a >> 2) & 0x3333...); b = (a & ~0U/5) + ((a >> 2) & ~0U/5); // c = (b & 0x0f0f...) + ((b >> 4) & 0x0f0f...); c = (b + (b >> 4)) & ~0U/0x11; // d = (c & 0x00ff...) + ((c >> 8) & 0x00ff...); d = (c + (c >> 8)) & ~0U/0x101; t = (d >> 16) + (d >> 24); // Now do branchless select! s = 32; // if (r > t) {s -= 16; r -= t;} s -= ((t - r) & 256) >> 4; r -= (t & ((t - r) >> 8)); t = (c >> (s - 8)) & 0xf; // if (r > t) {s -= 8; r -= t;} s -= ((t - r) & 256) >> 5; r -= (t & ((t - r) >> 8)); t = (b >> (s - 4)) & 0xf; // if (r > t) {s -= 4; r -= t;} s -= ((t - r) & 256) >> 6; r -= (t & ((t - r) >> 8)); t = (a >> (s - 2)) & 0x3; // if (r > t) {s -= 2; r -= t;} s -= ((t - r) & 256) >> 7; r -= (t & ((t - r) >> 8)); t = (v >> (s - 1)) & 0x1; // if (r > t) s--; s -= ((t - r) & 256) >> 8; // s = 32 - s; s = s - 1; return s; } blasr_libcpp-master/pbdata/utils/BitUtils.hpp000066400000000000000000000004131260756663100216600ustar00rootroot00000000000000#ifndef _BLASR_BIT_UTILS_HPP_ #define _BLASR_BIT_UTILS_HPP_ #include #include #include "Types.h" int32_t CountBits(uint32_t v); int GetSetBitPosition64(uint64_t v); unsigned int GetSetBitPosition32(UInt v); #endif // _BLASR_BIT_UTILS_HPP_ blasr_libcpp-master/pbdata/utils/SMRTReadUtils.cpp000066400000000000000000000023771260756663100225310ustar00rootroot00000000000000 #include "SMRTReadUtils.hpp" void GetSMRTReadCoordinates(FASTQSequence &seq, int &x, int &y) { std::string str(seq.title, seq.titleLength); std::vector titleTokens; Splice(str, "_", titleTokens); int i; x = y = -1; int cmp; for (i = 0; i < titleTokens.size(); i++ ) { if (titleTokens[i].size() > 1 && titleTokens[i][0] == 'x') { x = atoi(&titleTokens[i].c_str()[1]); } if (titleTokens[i].size() > 1 && titleTokens[i][0] == 'y') { y = atoi(&titleTokens[i].c_str()[1]); } } assert("Could not parse a title to find an x coordinate" != 0 or x != -1); assert("Could not parse a title to find a y coordiante" != 0 or y != -1); } void GetSpringfieldHoleNumberFromTitle(FASTQSequence &seq, unsigned int &holeNumber) { std::vector titleTokens; Splice(seq.title, "/", titleTokens); if (titleTokens.size() < 2) { return; } holeNumber = atoi(titleTokens[1].c_str()); } bool ParsePBIReadName(std::string &readName, std::string &movieName, int &holeNumber) { std::vector tokens; ParseSeparatedList(readName, tokens, '/'); if (tokens.size() < 2) { movieName = ""; holeNumber = 0; return false; } else { movieName = tokens[0]; holeNumber = atoi(tokens[1].c_str()); return true; } } blasr_libcpp-master/pbdata/utils/SMRTReadUtils.hpp000066400000000000000000000010461260756663100225260ustar00rootroot00000000000000#ifndef _BLASR_SMRT_READ_UTILS_HPP_ #define _BLASR_SMRT_READ_UTILS_HPP_ #include #include "FASTQSequence.hpp" #include "StringUtils.hpp" void GetSMRTReadCoordinates(FASTQSequence &seq, int &x, int &y); void GetSpringfieldHoleNumberFromTitle(FASTQSequence &seq, unsigned int &holeNumber); // Parse a PBIRead name of format movie/holeNumber/s_e, or /movie/holeNumber // and get movieName, holeNumber. bool ParsePBIReadName(std::string &readName, std::string &movieName, int &holeNumber); #endif blasr_libcpp-master/pbdata/utils/SMRTTitle.cpp000066400000000000000000000034761260756663100217170ustar00rootroot00000000000000#include "utils/SMRTTitle.hpp" /// Parse a Pacbio read name, it is a SMRTTitle, get movieName, /// holeNumber, start and end, set isSMRTTitle to be true. /// Otherwise, set isSMRTTitle to be false. /// Two types of smrtTitles are supported: /// movie/zmw/start_end --> start = start, end = end /// movie/zmw/start_end/start2_end2 --> start = start+start2, end = start+end2 /// \param[in]: readName, a PacBio read name string. SMRTTitle::SMRTTitle(const std::string & readName) { isSMRTTitle = false; movieName = ""; holeNumber = 0; start = end = 0; std::vector values; ParseSeparatedList(readName, values, '/'); int numValues = values.size(); if (numValues == 3 or numValues == 4) { movieName = values[0]; holeNumber = static_cast(atoi(values[1].c_str())); std::vector offsets; ParseSeparatedList(values[2], offsets, '_'); if (offsets.size() == 2) { start = static_cast(atoi(offsets[0].c_str())); end = static_cast(atoi(offsets[1].c_str())); if (numValues == 3) { isSMRTTitle = true; } else if (numValues == 4) { offsets.clear(); ParseSeparatedList(values[3], offsets, '_'); if (offsets.size() == 2) { end = static_cast(start + atoi(offsets[1].c_str())); start = static_cast(start + atoi(offsets[0].c_str())); isSMRTTitle = true; } } } } } std::string SMRTTitle::ToString() { if (not isSMRTTitle) { return ""; } else { std::stringstream ss; ss << movieName << "/" << holeNumber << "/" << start << "_" << end; return ss.str(); } } blasr_libcpp-master/pbdata/utils/SMRTTitle.hpp000066400000000000000000000020621260756663100217120ustar00rootroot00000000000000#ifndef _BLASR_SMRT_TITLE_HPP_ #define _BLASR_SMRT_TITLE_HPP_ #include #include #include #include "Types.h" #include "StringUtils.hpp" class SMRTTitle { public: std::string movieName; UInt holeNumber; DNALength start; DNALength end; // if input name is a smrt title. bool isSMRTTitle; SMRTTitle(const std::string & name); /// \returns smrt title movie/zmw/s_e, if input read is a smrt title; /// otherwise, return an empty string. std::string ToString(); public: inline std::string MovieName(void) const; inline UInt HoleNumber(void) const; inline DNALength Start(void) const; inline DNALength End(void) const; inline operator bool(void) const; }; inline std::string SMRTTitle::MovieName(void) const {return movieName;} inline UInt SMRTTitle::HoleNumber(void) const {return holeNumber;} inline DNALength SMRTTitle::Start(void) const {return start;} inline DNALength SMRTTitle::End(void) const {return end;} inline SMRTTitle::operator bool(void) const {return isSMRTTitle;} #endif blasr_libcpp-master/pbdata/utilsImpl.hpp000066400000000000000000000023111260756663100207420ustar00rootroot00000000000000#ifndef _BLASR_UTIL_IMPL_HPP_ #define _BLASR_UTIL_IMPL_HPP_ #include #include // abort() #include // bad_alloc #include // cout/cerr template void CrucialOpen(std::string &fileName, t_file &file, std::ios_base::openmode mode) { if (mode==0) file.open(fileName.c_str()); else file.open(fileName.c_str(), mode); if (!file.good()) { std::cout << "Could not open " << fileName << std::endl; exit(1); } } template T_Int CeilOfFraction(T_Int num, T_Int denom) { return num / denom + ((num % denom) && 1); } template inline T* ProtectedNew(unsigned long size) { T * ptr = nullptr; try { ptr = new T[size]; } catch (std::bad_alloc & ba) { std::cout << "ERROR, allocating " << size * sizeof(T) << " bytes." << ba.what() << std::endl; abort(); } return ptr; } template inline T* ProtectedNew(void) { T * ptr = nullptr; try { ptr = new T; } catch (std::bad_alloc & ba) { std::cout << "ERROR, allocating " << sizeof(T) << " bytes." << ba.what() << std::endl; abort(); } return ptr; } #endif blasr_libcpp-master/rules.mk000066400000000000000000000014121260756663100165000ustar00rootroot00000000000000ARFLAGS := rc CXX_SHAREDFLAGS := -fPIC #LD_SHAREDFLAGS := -dynamiclib -fPIC CPPFLAGS += $(patsubst %,-I%,${INCLUDES}) CFLAGS += -fno-common LDFLAGS += ${EXTRA_LDFLAGS} %.a: ${AR} ${ARFLAGS} $@ $^ %.so: ${CXX} -shared ${LDFLAGS} -o $@ -Wl,-soname,$@ $^ ${LDLIBS} %.dylib: ${CXX} -dynamiclib ${LDFLAGS} -o $@ -Wl,-install_name,$@ $^ ${LDLIBS} %.o: %.cpp ${CXX} ${CXXOPTS} ${CXXFLAGS} ${CPPFLAGS} -c $< -o $@ %.shared.o: %.cpp ${CXX} ${CXXOPTS} ${CXXFLAGS} ${CPPFLAGS} ${CXX_SHAREDFLAGS} -c $< -o $@ %.depend: %.cpp ${CXX} ${CXXOPTS} ${CXXFLAGS} ${CPPFLAGS} -MM -MP -MG -MT $(@:.depend=.o) -MF $(@:.depend=.d) $< %.shared.depend: %.cpp ${CXX} ${CXXOPTS} ${CXXFLAGS} ${CPPFLAGS} -MM -MP -MG -MT $(@:.depend=.o) -MF $(@:.depend=.d) $< blasr_libcpp-master/travis.sh000077500000000000000000000005271260756663100166720ustar00rootroot00000000000000#!/bin/bash ls /usr/include/hdf* ls /usr/lib/libhdf* set -ex NOHDF=1 NOPBBAM=1 ./configure.py make -j4 libpbdata make -j4 libblasr # Test compilation of ./hdf using our own HDF5 headers, for now. # (This fails on Darwin b/c our HDF5_HEADERS were configured for Linux.) NOPBBAM=1 ./configure.py make -j4 -C ./hdf libpbihdf.a # make -j4 gtest blasr_libcpp-master/unittest/000077500000000000000000000000001260756663100166765ustar00rootroot00000000000000blasr_libcpp-master/unittest/.gitignore000066400000000000000000000000151260756663100206620ustar00rootroot00000000000000/test-runner blasr_libcpp-master/unittest/alignment/000077500000000000000000000000001260756663100206545ustar00rootroot00000000000000blasr_libcpp-master/unittest/alignment/Makefile000066400000000000000000000015401260756663100223140ustar00rootroot00000000000000include ../../rules.mk include ../defines.mk SOURCES = $(wildcard *.cpp) \ $(wildcard utils/*.cpp) \ $(wildcard datastructures/alignment/*.cpp) \ $(wildcard files/*.cpp) \ $(wildcard format/*.cpp) ifneq ($(origin nopbbam), undefined) SOURCES := $(filter-out format/SAMHeaderPrinter_gtest.cpp, $(SOURCES)) endif OBJECTS = $(SOURCES:.cpp=.o) EXE := test-runner all debug profile: $(EXE) libblasr_gtest.a: $(OBJECTS) $(AR) $(ARFLAGS)c $@ $^ $(EXE): $(OBJECTS) $(CXX) $(CXXOPTS) $(CXXFLAGS) $^ $(GTEST_SRC) -o $@ -I$(GTEST_ROOT) $(LIBDIRS) $(LDFLAGS) $(OBJECTS): %.o: %.cpp $(CXX) $(CXXOPTS) $(CXXFLAGS) -c $< -o $@ $(INCDIRS) gtest: $(EXE) ./$< --gtest_output=xml:../xml/alignment.xml clean: @find . -type f -name \*.o -delete @find . -type f -name \*.d -delete @rm -f libblasr_gtest.a $(EXE) ../xml/alignment.xml blasr_libcpp-master/unittest/alignment/datastructures/000077500000000000000000000000001260756663100237315ustar00rootroot00000000000000blasr_libcpp-master/unittest/alignment/datastructures/alignment/000077500000000000000000000000001260756663100257075ustar00rootroot00000000000000blasr_libcpp-master/unittest/alignment/datastructures/alignment/AlignmentMap_gtest.cpp000066400000000000000000000035531260756663100322030ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: AlignmentMap_gtest.cpp * * Description: Test alignment/datastructures/alignment/AlignmentMap.hpp * * Version: 1.0 * Created: 11/29/2012 01:47:50 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include #include #include #include "datastructures/alignment/AlignmentMap.hpp" #include "gtest/gtest.h" using namespace std; // Test // void CreateSequenceToAlignmentMap(const string & alignedSequence, // vector & baseToAlignmentMap); TEST(AlignmentMap, CreateSequenceToAlignmentMap) { const string & alignedSequence1 = "ATCTGAG-AAA-"; const int size1 = 10; int map1[size1] = {0, 1, 2, 3, 4,5, 6, 8, 9, 10}; const string & alignedSequence2 = "--ATCTGAG----AAA----"; const int size2 = 10; int map2[size2] = {2,3,4,5,6,7,8,13,14,15}; const string & alignedSequence3 = "-------"; const int size3 = 0; vector resMap1; CreateSequenceToAlignmentMap(alignedSequence1, resMap1); EXPECT_EQ(size1, resMap1.size()); for (int i = 0; i < size1; i++) { // cout << resMap1[i] << ", "; EXPECT_EQ(map1[i], resMap1[i]); } // cout << endl; vector resMap2; CreateSequenceToAlignmentMap(alignedSequence2, resMap2); EXPECT_EQ(size2, resMap2.size()); for (int i = 0; i < size2; i++) { // cout << resMap1[i] << ", "; EXPECT_EQ(map2[i], resMap2[i]); } // cout << endl; vector resMap3; CreateSequenceToAlignmentMap(alignedSequence3, resMap3); EXPECT_EQ(size3, resMap3.size()); } blasr_libcpp-master/unittest/alignment/datastructures/alignment/CmpIndexedStringTable_gtest.cpp000066400000000000000000000076361260756663100340140ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: CmpIndexedStringTable_gtest.cpp * * Description: Test alignment/datastructures/alignment/CmpIndexedStringTable.h * * Version: 1.0 * Created: 11/29/2012 01:50:24 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "datastructures/alignment/CmpIndexedStringTable.h" int ids[5] = {1, 2, 3, 30, 5}; string names[5] = {"n1", "n2", "n3", "n30", "n5"}; class CmpIndexedStringTableTest : public ::testing::Test { public: //Be careful, SetUp() not Setup() virtual void SetUp() { for(int i = 0; i < 5; i++) { cmpIndexedStringTableTest.ids.push_back(ids[i]); cmpIndexedStringTableTest.names.push_back(names[i]); } cmpIndexedStringTableTest.StoreArrayIndexMap(); } virtual void TearDown() { } CmpIndexedStringTable cmpIndexedStringTableTest; }; // // Test resize(int size) // TEST_F (CmpIndexedStringTableTest, resize) { cmpIndexedStringTableTest.resize(10); EXPECT_EQ(cmpIndexedStringTableTest.names.size(), 10); EXPECT_EQ(cmpIndexedStringTableTest.ids.size(), 10); } // // Test StoreArrayIndexMap() // TEST_F (CmpIndexedStringTableTest, StoreArrayIndexMap) { for(int i = 0; i < cmpIndexedStringTableTest.ids.size(); i++) { EXPECT_EQ(cmpIndexedStringTableTest.idToArrayIndex.find(cmpIndexedStringTableTest.ids[i])->second, i); } EXPECT_EQ(cmpIndexedStringTableTest.idToArrayIndex.find(1 )->second, 0); EXPECT_EQ(cmpIndexedStringTableTest.idToArrayIndex.find(2 )->second, 1); EXPECT_EQ(cmpIndexedStringTableTest.idToArrayIndex.find(3 )->second, 2); EXPECT_EQ(cmpIndexedStringTableTest.idToArrayIndex.find(30)->second, 3); EXPECT_EQ(cmpIndexedStringTableTest.idToArrayIndex.find(5 )->second, 4); } // // Test GetIndexOfId(int id, int & index) // TEST_F (CmpIndexedStringTableTest, GetIndexOfId) { int index = -1; int i = 0; for(i = 0; i < cmpIndexedStringTableTest.ids.size(); i++) { cmpIndexedStringTableTest.GetIndexOfId(ids[i], index); EXPECT_EQ(index, i); } i = 1; cmpIndexedStringTableTest.GetIndexOfId(i, index); EXPECT_EQ(index, 0); i = 2; cmpIndexedStringTableTest.GetIndexOfId(i, index); EXPECT_EQ(index, 1); i = 3; cmpIndexedStringTableTest.GetIndexOfId(i, index); EXPECT_EQ(index, 2); i = 5; cmpIndexedStringTableTest.GetIndexOfId(i, index); EXPECT_EQ(index, 4); i = 30; cmpIndexedStringTableTest.GetIndexOfId(i, index); EXPECT_EQ(index, 3); } // // Test GetNameAtIndex(int index, string & name) // TEST_F (CmpIndexedStringTableTest, GetNameAtIndex) { // "Warning: the terminology of CmpIndexedStringTable.GetNameAtIndex // is confusing" int index; string name; bool found; index = 1; found = cmpIndexedStringTableTest.GetNameAtIndex(index, name); EXPECT_EQ(name, "n1"); EXPECT_TRUE(found); index = 2; found = cmpIndexedStringTableTest.GetNameAtIndex(index, name); EXPECT_EQ(name, "n2"); EXPECT_TRUE(found); index = 3; found = cmpIndexedStringTableTest.GetNameAtIndex(index, name); EXPECT_EQ(name, "n3"); EXPECT_TRUE(found); index = 30; found = cmpIndexedStringTableTest.GetNameAtIndex(index, name); EXPECT_EQ(name, "n30"); EXPECT_TRUE(found); index = 5; found = cmpIndexedStringTableTest.GetNameAtIndex(index, name); EXPECT_EQ(name, "n5"); EXPECT_TRUE(found); // //test getting name at an out-of-boundary index // index = 100; found = cmpIndexedStringTableTest.GetNameAtIndex(index, name); EXPECT_FALSE(found); } blasr_libcpp-master/unittest/alignment/files/000077500000000000000000000000001260756663100217565ustar00rootroot00000000000000blasr_libcpp-master/unittest/alignment/files/CCSIterator_gtest.cpp000066400000000000000000000026411260756663100260150ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: CCSIterator_gtest.cpp * * Description: Test alignment/files/CCSIterator.hpp * * Version: 1.0 * Created: 11/29/2012 04:51:02 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "files/CCSIterator.hpp" #include "reads/RegionTable.hpp" #include "HDFRegionTableReader.hpp" #include "pbdata/testdata.h" using namespace std; class CCSIteratorTestFixture: public testing::Test { public: CCSIteratorTestFixture() { } void SetUp() { fileName = baxFile2; reader = new HDFRegionTableReader(); ccs = new CCSSequence(); rgn = new RegionTable(); int rev = reader->Initialize(fileName); EXPECT_TRUE(rev); reader->ReadTable(*rgn); reader->Close(); } void TearDown() { if (reader) delete reader; if (ccs) delete ccs; if (rgn) delete rgn; } ~CCSIteratorTestFixture() { } string fileName; HDFRegionTableReader * reader; CCSSequence * ccs; RegionTable * rgn; CCSIterator it; }; TEST_F(CCSIteratorTestFixture, Initialize) { } blasr_libcpp-master/unittest/alignment/files/FragmentCCSIterator_gtest.cpp000066400000000000000000000054611260756663100275040ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: FragmentCCSIterator_gtest.cpp * * Description: Test alignment/files/FragmentCCSIterator.hpp * * Version: 1.0 * Created: 11/29/2012 04:51:29 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include #include #include #include "files/FragmentCCSIterator.hpp" #include "reads/RegionTable.hpp" #include "HDFRegionTableReader.hpp" #include "pbdata/testdata.h" #include using namespace std; class FragmentCCSIteratorTestFixture: public testing::Test { public: FragmentCCSIteratorTestFixture() { } void SetUp() { fileName = baxFile1; reader = new HDFRegionTableReader(); ccs = new CCSSequence(); rgn = new RegionTable(); int rev = reader->Initialize(fileName); EXPECT_TRUE(rev); reader->ReadTable(*rgn); reader->Close(); } void TearDown() { if (reader) delete reader; if (ccs) delete ccs; if (rgn) delete rgn; } ~FragmentCCSIteratorTestFixture() { } string fileName; HDFRegionTableReader * reader; CCSSequence * ccs; RegionTable * rgn; FragmentCCSIterator it; }; TEST_F(FragmentCCSIteratorTestFixture, Initialize) { // void Initialize(CCSSequence *_seqPtr, RegionTable *_regionTablePtr) { ccs->HoleNumber(10); ccs->unrolledRead.Allocate(7000); it.Initialize(ccs, rgn); int numPasses = it.GetNumPasses(); EXPECT_EQ(numPasses, 7); /* * The region table of zmw 10 is: * (52,0): 10, 1, 0, 443, -1, (53,0): 10, 1, 487, 1168, -1, (54,0): 10, 1, 1213, 1907, -1, (55,0): 10, 1, 1956, 2619, -1, (56,0): 10, 1, 2668, 3423, -1, (57,0): 10, 1, 3474, 4205, -1, (58,0): 10, 1, 4256, 5949, -1, (59,0): 10, 1, 5997, 6161, -1, (60,0): 10, 0, 443, 487, 863, (61,0): 10, 0, 1168, 1213, 822, (62,0): 10, 0, 1907, 1956, 836, (63,0): 10, 0, 2619, 2668, 693, (64,0): 10, 0, 3423, 3474, 764, (65,0): 10, 0, 4205, 4256, 862, (66,0): 10, 0, 5949, 5997, 812, (67,0): 10, 2, 0, 4920, 788, * */ int exp_directions[7] = {0, 1, 0, 1, 0, 1, 0}; int exp_starts[7] = {0, 487, 1213, 1956, 2668, 3474, 4256}; int exp_ends[7] = {443, 1168, 1907, 2619, 3423, 4205, 4920}; int passDirection, start, numBases; for(int i=0; i < numPasses; i++) { it.GetNext(passDirection, start, numBases); EXPECT_EQ(passDirection, exp_directions[i]); EXPECT_EQ(start, exp_starts[i]); EXPECT_EQ(start + numBases, exp_ends[i]); } } blasr_libcpp-master/unittest/alignment/files/FragmentCCSIterator_other_gtest.cpp000066400000000000000000000065251260756663100307070ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: CCSIterator_gtest.cpp * * Description: Test alignment/files/CCSIterator.hpp * * Version: 1.0 * Created: 11/29/2012 04:51:02 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #define private public #include "files/CCSIterator.hpp" #include "files/FragmentCCSIterator.hpp" #include "reads/RegionTable.hpp" #include "HDFRegionTableReader.hpp" #include "pbdata/testdata.h" using namespace std; static const UInt HOLENUMBER = 76772; // Adater - 0, Insert - 1, HQRegion - 2 static const std::vector TYPES = {Adapter, Insert, HQRegion}; static const std::vector TYPESTRS = {"Adapter", "Insert", "HQRegion"}; static const std::vector INSERTS = { RegionAnnotation(HOLENUMBER, 1, 0, 253, -1), RegionAnnotation(HOLENUMBER, 1, 301, 678, -1), RegionAnnotation(HOLENUMBER, 1, 724, 1101, -1), RegionAnnotation(HOLENUMBER, 1, 1150, 1534, -1), RegionAnnotation(HOLENUMBER, 1, 1575, 1956, -1), RegionAnnotation(HOLENUMBER, 1, 1999, 2379, -1), RegionAnnotation(HOLENUMBER, 1, 2417, 2803, -1), RegionAnnotation(HOLENUMBER, 1, 2852, 3245, -1), RegionAnnotation(HOLENUMBER, 1, 3287, 3727, -1), RegionAnnotation(HOLENUMBER, 1, 3778, 4176, -1), RegionAnnotation(HOLENUMBER, 1, 4221, 4618, -1), RegionAnnotation(HOLENUMBER, 1, 4661, 4862, -1) }; static const std::vector ADAPTERS = { RegionAnnotation(HOLENUMBER, 0, 253, 301, 854), RegionAnnotation(HOLENUMBER, 0, 678, 724, 978), RegionAnnotation(HOLENUMBER, 0, 1101, 1150, 897), RegionAnnotation(HOLENUMBER, 0, 1534, 1575, 804), RegionAnnotation(HOLENUMBER, 0, 1956, 1999, 930), RegionAnnotation(HOLENUMBER, 0, 2379, 2417, 736), RegionAnnotation(HOLENUMBER, 0, 2803, 2852, 918), RegionAnnotation(HOLENUMBER, 0, 3245, 3287, 928), RegionAnnotation(HOLENUMBER, 0, 3727, 3778, 784), RegionAnnotation(HOLENUMBER, 0, 4176, 4221, 911), RegionAnnotation(HOLENUMBER, 0, 4618, 4661, 767) }; static const std::vector HQREGION = { RegionAnnotation(HOLENUMBER, 2, 0, 4861, 865) }; static const DNALength EXPECTED_HQSTART = 0; static const DNALength EXPECTED_HQEND = 4861; static const DNALength EXPECTED_SCORE = 865; static const DNALength WHOLE_LENGTH = 5000; static const int EXPECTED_NUM_SUBREADS = 12; TEST(CCSFragmentIterator, Constructor) { std::vector regions = INSERTS; regions.insert(regions.end(), HQREGION.begin(), HQREGION.end()); regions.insert(regions.end(), ADAPTERS.begin(), ADAPTERS.end()); CCSSequence ccs; ccs.HoleNumber(HOLENUMBER); ccs.Allocate(WHOLE_LENGTH); ccs.unrolledRead.Allocate(WHOLE_LENGTH); RegionTable table; table.ConstructTable(regions, TYPESTRS); FragmentCCSIterator it; it.Initialize(&ccs, &table); EXPECT_EQ(it.subreadIntervals.size(), EXPECTED_NUM_SUBREADS); EXPECT_EQ(it.subreadIntervals[0], ReadInterval(0, 253, 865)); EXPECT_EQ(it.subreadIntervals[EXPECTED_NUM_SUBREADS-1], ReadInterval(4661, 4861, 865)); } blasr_libcpp-master/unittest/alignment/files/ReaderAgglomerate_gtest.cpp000066400000000000000000000065511260756663100272510ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: ReaderAgglomerate_gtest.cpp * * Description: Test alignment/files/ReaderAgglomerate.hpp * * Version: 1.0 * Created: 02/25/2015 04:51:29 PM * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include #include #include #include "files/ReaderAgglomerate.hpp" #include "pbdata/testdata.h" #include using namespace std; class ReaderAgglomerateTest: public testing::Test { public: void SetUp() { reader = new ReaderAgglomerate(); } void TearDown() { if (reader) { delete reader; reader = NULL; } } ReaderAgglomerate * reader; }; #define INIT_READER(INFILE) \ fn = INFILE; \ reader->SetReadFileName(fn); \ EXPECT_EQ(reader->Initialize(), 1); TEST_F(ReaderAgglomerateTest, Initialize) { string fn; INIT_READER(fastaFile1) reader->Close(); INIT_READER(baxFile1) reader->Close(); INIT_READER(baxFile3) reader->Close(); } #define SIMPLE(INFILE, SEQ) \ INIT_READER(INFILE) \ for(int i = 0; i < 10; i++) {\ reader->GetNext(SEQ);\ }\ reader->Close(); TEST_F(ReaderAgglomerateTest, Simple) { string fn; // Fasta FASTASequence fastaSeq; SIMPLE(fastaFile1, fastaSeq) // Bax SMRTSequence smrtSeq; SIMPLE(baxFile1, smrtSeq) SIMPLE(baxFile3, smrtSeq) } #define GET_MOVIE_NAME(INFILE) \ INIT_READER(INFILE) \ reader->GetMovieName(movieName); \ reader->Close(); TEST_F(ReaderAgglomerateTest, GetMovieName) { string fn; string movieName = ""; // Fasta GET_MOVIE_NAME(fastaFile1) EXPECT_EQ(movieName, "/mnt/secondary-siv/testdata/BlasrTestData/utest/data/read.fasta"); // Bax GET_MOVIE_NAME(baxFile1) EXPECT_EQ(movieName, "m130220_114643_42129_c100471902550000001823071906131347_s1_p0"); GET_MOVIE_NAME(baxFile3) EXPECT_EQ(movieName, "m150223_190837_42175_c100735112550000001823160806051530_s1_p0"); } #define GET_CHEMISTRY_TRIPLE(INFILE, A, B, C) \ INIT_READER(INFILE) \ bindingKit = sequencingKit = version; \ reader->GetChemistryTriple(bindingKit, sequencingKit, version); \ reader->Close(); \ EXPECT_EQ(bindingKit, A); \ EXPECT_EQ(sequencingKit, B); \ EXPECT_EQ(version, C); TEST_F(ReaderAgglomerateTest, GetChemistryTriple) { string fn; string bindingKit, sequencingKit, version; GET_CHEMISTRY_TRIPLE(baxFile3, "100356300", "100356200", "2.3") } TEST_F(ReaderAgglomerateTest, ReadFromBam) { string fn (bamFile1); reader->SetReadFileName(fn); EXPECT_EQ(reader->Initialize(), 1); SMRTSequence seq; int ret, count=0; while (ret = reader->GetNext(seq) and ret != 0) { count++; } EXPECT_EQ(count, 116); reader->Close(); } TEST_F(ReaderAgglomerateTest, ReadsFromBam) { string fn (bamFile1); reader->SetReadFileName(fn); EXPECT_EQ(reader->Initialize(), 1); vector seqs; int ret, count=0; while (ret = reader->GetNext(seqs) and ret != 0) { count+ = seqs.size(); } EXPECT_EQ(count, 116); reader->Close(); } blasr_libcpp-master/unittest/alignment/format/000077500000000000000000000000001260756663100221445ustar00rootroot00000000000000blasr_libcpp-master/unittest/alignment/format/SAMHeaderPrinter_gtest.cpp000066400000000000000000000133651260756663100271630ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: SAMHeaderPrinter_gtest.cpp * * Description: Test alignment/format/SAMHeaderPrinter.hpp * * Version: 1.0 * Created: 03/24/2015 04:51:29 PM * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #define private public #define protected public #include #include #include #include "FASTAReader.hpp" #include "format/SAMHeaderPrinter.hpp" #include "pbdata/testdata.h" #include using namespace std; class SAMHeaderPrinterTest: public testing::Test { public: void SetUp() { samQVs.SetDefaultQV(); so = "UNKNOWN"; readType = ReadType::SUBREAD; int rand; string fastaFn(fastaFile1); reader.computeMD5 = true; EXPECT_TRUE(reader.Init(fastaFn)); reader.ReadAllSequencesIntoOne(sequence, &seqdb); } void TearDown() { if (printer) { delete printer; printer = NULL; } } SAMHeaderPrinter * printer; SupplementalQVList samQVs; string so; ReadType::ReadTypeEnum readType; FASTAReader reader; FASTASequence sequence; SequenceIndexDatabase seqdb; }; const string bax1ExpectedHeader = "PU:m130220_114643_42129_c100471902550000001823071906131347_s1_p0\tPL:PACBIO\tDS:READTYPE=SUBREAD;BINDINGKIT=;SEQUENCINGKIT=;BASECALLERVERSION=2.0;InsertionQV=iq;DeletionQV=dq;SubstitutionQV=sq;MergeQV=mq;DeletionTag=dt"; const string bax3ExpectedHeader = "PU:m150223_190837_42175_c100735112550000001823160806051530_s1_p0\tPL:PACBIO\tDS:READTYPE=SUBREAD;BINDINGKIT=100356300;SEQUENCINGKIT=100356200;BASECALLERVERSION=2.3;InsertionQV=iq;DeletionQV=dq;SubstitutionQV=sq;MergeQV=mq;DeletionTag=dt"; const string pls1ExpectedHeader = "PU:m121215_065521_richard_c100425710150000001823055001121371_s1_p0\tPL:PACBIO\tDS:READTYPE=SUBREAD;BINDINGKIT=;SEQUENCINGKIT=;BASECALLERVERSION=1.3;InsertionQV=iq;DeletionQV=dq;SubstitutionQV=sq;MergeQV=mq;DeletionTag=dt"; TEST_F(SAMHeaderPrinterTest, BAX_ONE_MOVIE_IN) { // Read from two bax files of the same movie. EXPECT_EQ(readType, ReadType::ReadTypeEnum::SUBREAD); vector readsFiles = {baxFile1, baxFile2}; printer = new SAMHeaderPrinter(so, seqdb, readsFiles, readType, samQVs, "blasr", "1.3.2", "blasr a b c"); EXPECT_EQ(printer->_hd.ToString().find("@HD\tVN:1.5\tSO:UNKNOWN\tpb:3.0b"), 0); EXPECT_EQ(printer->_sqs._groups.size(), 12); EXPECT_EQ(printer->_sqs._groups[0].ToString().find ("@SQ\tSN:read1\tLN:100\tM5:"), 0); EXPECT_EQ(printer->_sqs._groups[11].ToString().find ("@SQ\tSN:read2x\tLN:100\tM5:"), 0); // Expect exactly one read group EXPECT_EQ(printer->_rgs._groups.size(), 1); EXPECT_NE(printer->_rgs._groups[0].ToString().find(bax1ExpectedHeader), string::npos); EXPECT_EQ(printer->_pgs._groups.size(), 1); EXPECT_EQ(printer->_cos._groups.size(), 0); } TEST_F(SAMHeaderPrinterTest, BAX_MULTI_MOVIE_IN) { // Read subread from more than one movies vector readsFiles = {baxFile1, baxFile2, baxFile3, plsFile1}; printer = new SAMHeaderPrinter(so, seqdb, readsFiles, readType, samQVs, "blasr", "1.3.2", "blasr a b c"); EXPECT_EQ(printer->_hd.ToString().find("@HD\tVN:1.5\tSO:UNKNOWN\tpb:3.0b"), 0); EXPECT_EQ(printer->_sqs._groups.size(), 12); EXPECT_EQ(printer->_sqs._groups[0].ToString().find ("@SQ\tSN:read1\tLN:100\tM5:"), 0); EXPECT_EQ(printer->_sqs._groups[11].ToString().find ("@SQ\tSN:read2x\tLN:100\tM5:"), 0); // Expect three read groups because baxFile1 and baxFile2 contains reads of the same movie. EXPECT_EQ(printer->_rgs._groups.size(), 3); EXPECT_NE(printer->_rgs._groups[0].ToString().find(bax1ExpectedHeader), string::npos); EXPECT_NE(printer->_rgs._groups[1].ToString().find(bax3ExpectedHeader), string::npos); EXPECT_NE(printer->_rgs._groups[2].ToString().find(pls1ExpectedHeader), string::npos); EXPECT_EQ(printer->_pgs._groups.size(), 1); EXPECT_EQ(printer->_cos._groups.size(), 0); } const string bam1ExpectedHeader = "@RG\tID:b89a4406\tPL:PACBIO\tDS:READTYPE=SUBREAD;DeletionQV=dq;DeletionTag=dt;InsertionQV=iq;MergeQV=mq;SubstitutionQV=sq;Ipd=ip;BINDINGKIT=100356300;SEQUENCINGKIT=100356200;BASECALLERVERSION=2.3.0.0.140018\tPU:m140905_042212_sidney_c100564852550000001823085912221377_s1_X0"; const string bam2ExpectedHeader = "PL:PACBIO\tDS:READTYPE=SUBREAD;DeletionQV=dq;DeletionTag=dt;InsertionQV=iq;MergeQV=mq;SubstitutionQV=sq;Ipd=ip;BINDINGKIT=100236500;SEQUENCINGKIT=001558034;BASECALLERVERSION=2.3.0.1.142990\tPU:m150325_224749_42269_c100795290850000001823159309091522_s1_p0"; TEST_F(SAMHeaderPrinterTest, ONE_BAM_IN) { // Read the same file twice in order to test uniqueness of @RG vector readsFiles = {bamFile1, bamFile1}; printer = new SAMHeaderPrinter(so, seqdb, readsFiles, readType, samQVs, "blasr", "1.3.2", "blasr a b c"); EXPECT_EQ(printer->_rgs._groups.size(), 1); EXPECT_EQ(printer->_rgs._groups[0].ToString(), bam1ExpectedHeader); EXPECT_EQ(printer->_pgs._groups.size(), 3); } TEST_F(SAMHeaderPrinterTest, TWO_BAM_IN) { // Read multiple bam files vector readsFiles = {bamFile1, bamFile2}; printer = new SAMHeaderPrinter(so, seqdb, readsFiles, readType, samQVs, "blasr", "1.3.2", "blasr a b c"); EXPECT_EQ(printer->_rgs._groups.size(), 2); EXPECT_NE(printer->_rgs._groups[0].ToString().find(bam1ExpectedHeader), string::npos); EXPECT_NE(printer->_rgs._groups[1].ToString().find(bam2ExpectedHeader), string::npos); EXPECT_EQ(printer->_pgs._groups.size(), 3); } blasr_libcpp-master/unittest/alignment/format/SAMPrinter_gtest.cpp000066400000000000000000000022671260756663100260510ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: SAMHeaderPrinter_gtest.cpp * * Description: Test alignment/format/SAMHeaderPrinter.hpp * * Version: 1.0 * Created: 03/24/2015 04:51:29 PM * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #define private public #define protected public #include #include #include #include "format/SAMPrinter.hpp" #include using namespace std; TEST(SAMPrinterTest, AddMatchBlockCigarOps) { DNASequence qSeq; qSeq.Copy("XXXXXAAAAAGGGGGCCCCC"); DNASequence tSeq; tSeq.Copy( "AAAAANGGGGCCCCC"); blasr::Block b; b.qPos = 5; b.tPos = 0; b.length=15; vector opSize; vector opChar; const vector expOpSize = {5 , 1 , 9 }; const vector expOpChar = {'=', 'X', '='}; AddMatchBlockCigarOps(qSeq, tSeq, b, opSize, opChar); EXPECT_EQ(opSize, expOpSize); EXPECT_EQ(opChar, expOpChar); } blasr_libcpp-master/unittest/alignment/utils/000077500000000000000000000000001260756663100220145ustar00rootroot00000000000000blasr_libcpp-master/unittest/alignment/utils/FileUtils_gtest.cpp000066400000000000000000000030761260756663100256340ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: FileUtils_gtest.cpp * * Description: Test alignment/utils/FileUtils.hpp * * Version: 1.0 * Created: 10/29/2012 05:20:43 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "utils/FileUtils.hpp" using namespace std; string nonexistfile = "/nonexistingdir/nonexistingfile"; string readablefile = "/bin/ls"; string writeablefile = "/tmp/writabletmpfile"; string expected_errmsg = "^.+$"; TEST(FILEUTILS, CriticalOpenRead) { ifstream ifs; EXPECT_EXIT(CriticalOpenRead(nonexistfile, ifs, std::ios::in), ::testing::ExitedWithCode(1), expected_errmsg); CriticalOpenRead(readablefile, ifs, std::ios::in); } TEST(FILEUTILS, OpenRead) { ifstream ifs; EXPECT_EQ( OpenRead(nonexistfile, ifs, std::ios::in), 0); EXPECT_EQ( OpenRead(readablefile, ifs, std::ios::in), 1); } TEST(FILEUTILS, CriticalOpenWrite) { ofstream ofs; EXPECT_EXIT( CriticalOpenWrite(nonexistfile, ofs, std::ios::out), ::testing::ExitedWithCode(1), expected_errmsg); CriticalOpenWrite(writeablefile, ofs, std::ios::out); } TEST(FILEUTILS, OpenWrite) { ofstream ofs; EXPECT_EQ(OpenWrite(nonexistfile, ofs, std::ios::out), 0); EXPECT_EQ(OpenWrite(writeablefile, ofs, std::ios::out), 1); } blasr_libcpp-master/unittest/alignment/utils/RangeUtils_gtest.cpp000066400000000000000000000027611260756663100260110ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: RangeUtils_gtest.cpp * * Description: Test alignment/utils/RangeUtils.hpp * * Version: 1.0 * Created: 05/2/2013 06:01:01 PM * Revision: 08/21/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "utils/RangeUtils.hpp" TEST(RangeTest, RangeConstructor) { Range r(1, 2); EXPECT_EQ(r.start, 1); EXPECT_EQ(r.end, 2); Range r2(1); EXPECT_EQ(r2.end, 1); } TEST(RangeTest, Ranges) { UInt queryInRange[11] = {1,2,3,4,10,11,12,13,14,15,20}; UInt queryNotInRange[8] = {0, 16, 17, 18, 19, 30, 5, 100000}; Ranges ranges1(string("1,2,3,4,10-15,20-20")); for (int i = 0; i < 11; i++) { EXPECT_TRUE(ranges1.contains(queryInRange[i])); } for (int i = 0; i < 8; i++) { EXPECT_FALSE(ranges1.contains(queryNotInRange[i])); } } TEST(RangeTest, SetRanges) { Ranges rs; rs.setRanges("199"); EXPECT_TRUE(rs.contains(199)); EXPECT_EQ(rs.size(), 1); } TEST(RangeTest, max) { Ranges rs("199"); EXPECT_EQ(rs.max(), 199); Ranges rs1("1, 10000, 10-30, 4000-5000"); EXPECT_EQ(rs1.max(), 10000); Ranges rs2("1, 1000, 10-30, 4000-5000, 633-877"); EXPECT_EQ(rs2.max(), 5000); } blasr_libcpp-master/unittest/alignment/utils/RegionUtils_gtest.cpp000066400000000000000000000164221260756663100261770ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: RegionUtils_gtest.cpp * * Description: Test alignment/utils/RegionUtils.hpp * * Version: 1.0 * Created: 11/29/2012 05:11:56 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "utils/RegionUtils.hpp" #include "reads/RegionTable.hpp" #include "HDFRegionTableReader.hpp" #include "pbdata/testdata.h" class RegionUtilTestFixture: public testing::Test { public: RegionUtilTestFixture() { fileName = baxFile1; reader = new HDFRegionTableReader(); int rev = reader->Initialize(fileName); EXPECT_TRUE(rev); reader->ReadTable(regionTable); reader->Close(); } void SetUp() { /* The region table for hole number 14798 is as follows. * type start end score * 1 0 712 -1 * 1 760 2040 -1 * 1 2098 3452 -1 * 0 712 760 937 * 0 2040 2098 741 * 2 0 3424 819 * where type 1 = insertion, 0 = adapter, 2 = HQRegion * */ hqStart = 0; hqEnd = 3424; hqScore = 819; holeNumber = 14798; int srs[29][2] = {{95, 353}, {404, 955}, {998, 1243}, {1289, 1529}, {1576, 1824}, {1869, 2132}, {2178, 2444}, {2486, 2727}, {2767, 3004}, {3047, 3286}, {3329, 3537}, {3583, 3818}, {3862, 4096}, {4139, 4404}, {4447, 4673}, {4717, 4956}, {5004, 5228}, {5275, 5508}, {5552, 5790}, {5835, 6072}, {6113, 6338}, {6389, 6604}, {6647, 7145}, {7189, 7421}, {7468, 7693}, {7733, 7951}, {7989, 8197}, {8243, 8482}, {8522, 9244}}; int rgn[59][5] = {{9, 1, 95, 353, -1}, {9, 1, 404, 955, -1}, {9, 1, 998, 1243, -1}, {9, 1, 1289, 1529, -1}, {9, 1, 1576, 1824, -1}, {9, 1, 1869, 2132, -1}, {9, 1, 2178, 2444, -1}, {9, 1, 2486, 2727, -1}, {9, 1, 2767, 3004, -1}, {9, 1, 3047, 3286, -1}, {9, 1, 3329, 3537, -1}, {9, 1, 3583, 3818, -1}, {9, 1, 3862, 4096, -1}, {9, 1, 4139, 4404, -1}, {9, 1, 4447, 4673, -1}, {9, 1, 4717, 4956, -1}, {9, 1, 5004, 5228, -1}, {9, 1, 5275, 5508, -1}, {9, 1, 5552, 5790, -1}, {9, 1, 5835, 6072, -1}, {9, 1, 6113, 6338, -1}, {9, 1, 6389, 6604, -1}, {9, 1, 6647, 7145, -1}, {9, 1, 7189, 7421, -1}, {9, 1, 7468, 7693, -1}, {9, 1, 7733, 7951, -1}, {9, 1, 7989, 8197, -1}, {9, 1, 8243, 8482, -1}, {9, 1, 8522, 9244, -1}, {9, 0, 41, 95, 722}, {9, 0, 353, 404, 784}, {9, 0, 955, 998, 697}, {9, 0, 1243, 1289, 804}, {9, 0, 1529, 1576, 744}, {9, 0, 1824, 1869, 844}, {9, 0, 2132, 2178, 847}, {9, 0, 2444, 2486, 666}, {9, 0, 2727, 2767, 824}, {9, 0, 3004, 3047, 883}, {9, 0, 3286, 3329, 860}, {9, 0, 3537, 3583, 891}, {9, 0, 3818, 3862, 795}, {9, 0, 4096, 4139, 906}, {9, 0, 4404, 4447, 906}, {9, 0, 4673, 4717, 886}, {9, 0, 4956, 5004, 708}, {9, 0, 5228, 5275, 957}, {9, 0, 5508, 5552, 886}, {9, 0, 5790, 5835, 733}, {9, 0, 6072, 6113, 804}, {9, 0, 6338, 6389, 666}, {9, 0, 6604, 6647, 813}, {9, 0, 7145, 7189, 795}, {9, 0, 7421, 7468, 829}, {9, 0, 7693, 7733, 774}, {9, 0, 7951, 7989, 657}, {9, 0, 8197, 8243, 760}, {9, 0, 8482, 8522, 675}, {9, 2, 0, 9244, 834}}; for (int i = 0; i < 29; i++) { subreadIntervals.push_back(ReadInterval(srs[i][0], srs[i][1])); } for (int i = 0; i < 59; i++) { adapterIntervals.push_back(ReadInterval(rgn[i][2], rgn[i][3], rgn[i][4])); } } void TearDown() { } ~RegionUtilTestFixture() { delete reader; } HDFRegionTableReader * reader; RegionTable regionTable; string fileName; int hqStart, hqEnd, hqScore, holeNumber; // Data for testing Get*FullSubreadIndex. vector subreadIntervals; vector adapterIntervals; }; TEST_F(RegionUtilTestFixture, LookupHQRegion) { int start, end, score; bool rev = LookupHQRegion(holeNumber, regionTable, start, end, score); EXPECT_EQ(rev, true); EXPECT_EQ(start, hqStart); EXPECT_EQ(end, hqEnd); EXPECT_EQ(score, hqScore); } TEST_F(RegionUtilTestFixture, GetHighQulitySubreadsIntervals) { vector intervals; intervals.push_back(ReadInterval(0, 712)); intervals.push_back(ReadInterval(760, 2040)); intervals.push_back(ReadInterval(2098, 3452)); vector directions; directions.push_back(0); directions.push_back(1); directions.push_back(0); int indx = GetHighQualitySubreadsIntervals(intervals, directions, hqStart, hqEnd); EXPECT_EQ(intervals.size(), 3); EXPECT_EQ(indx, 2); int starts [3] = {0, 760, 2098}; int ends [3] = {712, 2040, 3424}; int ds [3] = {0, 1, 0}; for(int i=0; i < 3; i++) { EXPECT_EQ(intervals[i].start, starts[i]); EXPECT_EQ(intervals[i].end , ends[i] ); EXPECT_EQ(directions[i] , ds[i] ); } indx = GetHighQualitySubreadsIntervals(intervals, directions, hqStart, hqEnd, 800); EXPECT_EQ(intervals.size(), 2); // The first interval and its direction has been removed as the length is less // than 800. for(int i=0; i < 2; i++) { EXPECT_EQ(intervals[i].start, starts[i+1]); EXPECT_EQ(intervals[i].end , ends[i+1] ); } } TEST_F(RegionUtilTestFixture, GetFullPassSubreadIndices ) { vector vi = GetFullPassSubreadIndices(subreadIntervals, adapterIntervals); // vi = 0, ..., 27 EXPECT_EQ(vi.size(), 28); for(int i=0; i < 28; i++) { EXPECT_EQ(vi[i], i); } } TEST_F(RegionUtilTestFixture, GetMedianLengthFullSubreadIndex) { int idx = GetMedianLengthFullSubreadIndex(subreadIntervals, adapterIntervals); EXPECT_EQ(idx, 18); // Median length subread (5552, 5790) } TEST_F(RegionUtilTestFixture, GetLongestFullSubreadIndex) { int idx = GetLongestFullSubreadIndex(subreadIntervals, adapterIntervals); EXPECT_EQ(idx, 1); // The longest full pass subread (404, 955) } TEST_F(RegionUtilTestFixture, GetTypicalFullSubreadIndex) { int idx = GetTypicalFullSubreadIndex(subreadIntervals, adapterIntervals); EXPECT_EQ(idx, 22); // Typical = the second longest full pass subread (6647, 7145) } blasr_libcpp-master/unittest/build.mk000066400000000000000000000010631260756663100203260ustar00rootroot00000000000000all: include ../rules.mk include defines.mk EXE := test-runner all: $(EXE) gtest: $(EXE) ./$< --gtest_output=xml:./xml/all.xml LIBS := alignment/libblasr_gtest.a \ hdf/libpbihdf_gtest.a \ pbdata/libpbdata_gtest.a $(EXE): $(LIBS) $(CXX) $(CXXOPTS) $(CXXFLAGS) $(GTEST_SRC) -Wl,$(LD_WHOLE_ARCHIVE) $^ -Wl,$(LD_NO_WHOLE_ARCHIVE) -o $@ -I$(GTEST_ROOT) $(LIBDIRS) $(LDFLAGS) $(LIBS): ${MAKE} -C $(dir $@) PBINCROOT=${PBINCROOT}/.. $(notdir $@) clean: @${MAKE} -C alignment clean @${MAKE} -C hdf clean @${MAKE} -C pbdata clean @${RM} -fr $(EXE) xml blasr_libcpp-master/unittest/hdf/000077500000000000000000000000001260756663100174375ustar00rootroot00000000000000blasr_libcpp-master/unittest/hdf/HDF2DArray_gtest.cpp000066400000000000000000000047521260756663100231470ustar00rootroot00000000000000/* * ========================================================================== * * Filename: HDF2DArray_gtest.cpp * * Description: Test hdf/HDF2DArray.hpp * * Version: 1.0 * Created: 08/21/2013 07:00:49 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ========================================================================== */ #include #include "H5Cpp.h" #include "HDFArray.hpp" #include "HDFGroup.hpp" #include "HDF2DArray.hpp" #include "reads/HoleXY.hpp" #include "pbdata/testdata.h" #include "gtest/gtest.h" using namespace std; using namespace H5; /* //Note ::testing::Test not ::testing::TEST //SetUp() and TearDown(), not Setup() and Teardown() class HDF2DArrayTest: public :: testing::Test { public: virtual void SetUp() { } virtual void TearDown() { } string x; }; TEST_F(HDF2DArrayTest, x) { EXPECT_TRUE(true); } */ class HDF2DArrayTest : public ::testing::Test { public: virtual void SetUp() { fileName = baxFile2; // Defined in testdata.h try { FileAccPropList propList; pbihdfFile.openFile(fileName.c_str(), H5F_ACC_RDONLY, propList); } catch (Exception &e) { cout << "ERROR, could not open hdf file" << fileName << ", exiting." << endl; exit(1); } ASSERT_NE(rootGroup.Initialize(pbihdfFile, "/"), 0); ASSERT_NE(pulseDataGroup.Initialize(rootGroup, "PulseData"), 0); ASSERT_NE(baseCallsGroup.Initialize(pulseDataGroup, "BaseCalls"), 0); ASSERT_NE(zmwGroup.Initialize(baseCallsGroup, "ZMW"), 0); } virtual void TearDown() { rootGroup.Close(); pulseDataGroup.Close(); baseCallsGroup.Close(); zmwGroup.Close(); pbihdfFile.close(); } string fileName; H5File pbihdfFile; HDFGroup rootGroup, pulseDataGroup, baseCallsGroup, zmwGroup; }; //Test HDF2DArray, int16 TEST_F(HDF2DArrayTest, int16) { HDF2DArray xyArray; xyArray.Initialize(zmwGroup, "HoleXY"); vector xys; xys.resize(10); for(int i = 0; i < 10; i++){ xyArray.Read(i, i+1, xys[i].xy); ASSERT_EQ(xys[i].xy[0], 43); ASSERT_EQ(xys[i].xy[1], 44 + i); } int last = 54493; xyArray.Read(last, last+1, xys[0].xy); ASSERT_EQ(xys[0].xy[0], -43); ASSERT_EQ(xys[0].xy[1], -44); xyArray.Close(); } blasr_libcpp-master/unittest/hdf/HDFBasReader_gtest.cpp000066400000000000000000000027441260756663100235320ustar00rootroot00000000000000/* * ============================================================================ * * Filename: HDFBasReader_gtest.cpp * * Description: Test hdf/HDFBasReader.hpp * * Version: 1.0 * Created: 08/23/2013 10:17:14 AM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include "gtest/gtest.h" #include "HDFBasReader.hpp" #include "pbdata/testdata.h" using namespace std; using namespace H5; class HDFBasReaderTEST : public ::testing::Test { public: virtual void SetUp() { fileName = baxFile3; reader.InitializeDefaultIncludedFields(); ASSERT_EQ(reader.Initialize(fileName), 1); } virtual void TearDown() { reader.Close(); } string fileName; T_HDFBasReader reader; }; TEST_F(HDFBasReaderTEST, ReadBaseFromBaseCalls) { ASSERT_EQ(reader.GetMovieName(), "m150223_190837_42175_c100735112550000001823160806051530_s1_p0"); SMRTSequence seq; for(int i=0; i < 1000; i++) { reader.GetNext(seq); } } TEST_F(HDFBasReaderTEST, GetChemistryTriple) { string bindingKit, sequencingKit, version; reader.GetChemistryTriple(bindingKit, sequencingKit, version); EXPECT_EQ(bindingKit, "100356300"); EXPECT_EQ(sequencingKit, "100356200"); EXPECT_EQ(version, "2.3"); } blasr_libcpp-master/unittest/hdf/HDFCCSReader_gtest.cpp000066400000000000000000000032331260756663100234270ustar00rootroot00000000000000/* * ============================================================================ * * Filename: HDFCCSReader_gtest.cpp * * Description: Test hdf/HDFCCSReader.hpp * * Version: 1.0 * Created: 08/23/2013 10:17:14 AM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include "HDFCCSReader.hpp" #include "CCSSequence.hpp" #include "gtest/gtest.h" #include "pbdata/testdata.h" using namespace std; using namespace H5; class HDFCCSReaderTEST : public ::testing::Test { public: virtual void SetUp() { } virtual void TearDown() { } }; TEST_F(HDFCCSReaderTEST, ReadCCSFromBasH5) { string fileName = baxFile2; HDFCCSReader reader; reader.InitializeDefaultIncludedFields(); ASSERT_EQ(reader.Initialize(fileName), 1); ASSERT_EQ(reader.GetMovieName(), "m130220_114643_42129_c100471902550000001823071906131347_s1_p0"); CCSSequence seq; for(int i=0; i < 1000; i++) { reader.GetNext(seq); } reader.Close(); } TEST_F(HDFCCSReaderTEST, ReadCCSFromCCSH5) { string fileName = ccsFile1; HDFCCSReader reader; reader.SetReadBasesFromCCS(); reader.InitializeDefaultIncludedFields(); ASSERT_EQ(reader.Initialize(fileName), 1); ASSERT_EQ(reader.GetMovieName(), "m130328_211423_ethan_c100499512550000001823070408081371_s1_p0"); CCSSequence seq; for(int i=0; i < 1000; i++) { reader.GetNext(seq); } reader.Close(); } blasr_libcpp-master/unittest/hdf/HDFPlsReader_gtest.cpp000066400000000000000000000023541260756663100235600ustar00rootroot00000000000000/* * ============================================================================ * * Filename: HDFPlsReader_gtest.cpp * * Description: Test hdf/HDFPlsReader.hpp * * Version: 1.0 * Created: 08/23/2013 11:13:34 AM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include "HDFPlsReader.hpp" #include "gtest/gtest.h" #include "pbdata/testdata.h" using namespace std; using namespace H5; class HDFPlsReaderTEST : public ::testing::Test { public: virtual void SetUp() { fileName = plsFile1; ASSERT_EQ(reader.Initialize(fileName), 1); } virtual void TearDown() { reader.Close(); } string fileName; HDFPlsReader reader; }; TEST_F(HDFPlsReaderTEST, ReadToPulseFile) { PulseFile pulseFile; reader.IncludeField("NumEvent"); reader.IncludeField("StartFrame"); reader.ReadPulseFileInit(pulseFile); reader.ReadPulseFile(pulseFile); //Astro = 1, Springfield = 2 ASSERT_EQ(pulseFile.platformId, 2); ASSERT_EQ(pulseFile.startFrame.size(), 197626964); } blasr_libcpp-master/unittest/hdf/HDFScanDataReader_gtest.cpp000066400000000000000000000026731260756663100245040ustar00rootroot00000000000000#include "gtest/gtest.h" #include "HDFScanDataReader.hpp" #include "pbdata/testdata.h" using namespace std; using namespace H5; class HDFScanDataReaderTEST : public ::testing::Test { public: virtual void SetUp() { fileName = scanDataFile1; try{ hdfFile.openFile(fileName.c_str(), H5F_ACC_RDONLY); ASSERT_EQ(rootGroup.Initialize(hdfFile, "/"), 1); ASSERT_EQ(reader.Initialize(dynamic_cast(&rootGroup)), 1); } catch(H5::Exception & e) { cerr << "Failed to open " << fileName << endl; ASSERT_FALSE(true); } } virtual void TearDown() { reader.Close(); hdfFile.close(); } string fileName; H5::H5File hdfFile; HDFGroup rootGroup; HDFScanDataReader reader; }; TEST_F(HDFScanDataReaderTEST, ReadBindingKit) { string bindingKit; EXPECT_EQ(reader.ReadBindingKit(bindingKit), 1); EXPECT_EQ(bindingKit, "100356300"); // Test if bindkingKit can be read multiple times. EXPECT_EQ(reader.ReadBindingKit(bindingKit), 1); EXPECT_EQ(bindingKit, "100356300"); } TEST_F(HDFScanDataReaderTEST, ReadSequencingKit) { string sequencingKit; EXPECT_EQ(reader.ReadSequencingKit(sequencingKit), 1); EXPECT_EQ(sequencingKit, "100356200"); // Test if sequencingKit can be read multiple times. EXPECT_EQ(reader.ReadSequencingKit(sequencingKit), 1); EXPECT_EQ(sequencingKit, "100356200"); } blasr_libcpp-master/unittest/hdf/HDFScanDataWriter_gtest.cpp000066400000000000000000000017231260756663100245510ustar00rootroot00000000000000/* * ============================================================================ * * Filename: HDFScanDataWriter_gtest.cpp * * Description: Test data/HDFScanDataWriter.hpp * * Version: 1.0 * Created: 10/14/2013 03:04:00 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include "gtest/gtest.h" #define private public #include "HDFScanDataWriter.hpp" #include "HDFFile.hpp" #include "reads/ScanData.hpp" TEST(HDFScanDataWriter, Write) { ScanData sd; sd.frameRate = 100; sd.BaseMap("ATGC"); HDFFile outFile; outFile.Open("scandata.h5", H5F_ACC_TRUNC); HDFScanDataWriter writer(outFile); writer.Write(sd); writer.WriteMovieName("xyz"); writer.WriteFrameRate(70); writer.Close(); outFile.Close(); } blasr_libcpp-master/unittest/hdf/HDFUtils_gtest.cpp000066400000000000000000000022151260756663100227730ustar00rootroot00000000000000/* * ============================================================================ * * Filename: HDFUtils_gtest.cpp * * Description: Test hdf/HDFUtils.hpp * * Version: 1.0 * Created: 11/04/2013 10:55:10 AM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include "HDFUtils.hpp" #include "gtest/gtest.h" #include "pbdata/testdata.h" TEST(HDFUtils, Create) { EXPECT_EQ(GetH5MovieName(baxFile1), "m130220_114643_42129_c100471902550000001823071906131347_s1_p0"); EXPECT_EQ(GetH5MovieName(baxFile2), "m130220_114643_42129_c100471902550000001823071906131347_s1_p0"); EXPECT_EQ(GetH5MovieName(plsFile1), "m121215_065521_richard_c100425710150000001823055001121371_s1_p0"); EXPECT_EQ(GetH5MovieName(ccsFile1), "m130328_211423_ethan_c100499512550000001823070408081371_s1_p0"); EXPECT_EQ(GetH5MovieName(rgnFile1), "m130427_152935_42178_c100518602550000001823079209281316_s1_p0"); } blasr_libcpp-master/unittest/hdf/HDFZMWReader_gtest.cpp000066400000000000000000000066221260756663100235010ustar00rootroot00000000000000/* * ========================================================================== * * Filename: HDFZMWReader_gtest.cpp * * Description: Test hdf/HDFZMWReader.hpp * * Version: 1.0 * Created: 08/21/2013 07:00:49 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ========================================================================== */ #include "HDFZMWReader.hpp" #include "gtest/gtest.h" #include "pbdata/testdata.h" using namespace std; using namespace H5; class HDFZMWReaderTEST : public ::testing::Test { public: virtual void SetUp() { } virtual void TearDown() { } void Initialize(H5File & pbihdfFile, string fileName, string groupName, HDFGroup & callsGroup) { try { FileAccPropList propList; pbihdfFile.openFile(fileName.c_str(), H5F_ACC_RDONLY, propList); } catch (Exception &e) { cout << "ERROR, could not open hdf file" << fileName << ", exiting." << endl; exit(1); } ASSERT_NE(callsGroup.Initialize(pbihdfFile, groupName), 0); /* HDFGroup rootGroup, pulseDataGroup; if (rootGroup.Initialize(pbihdfFile, "/") == 0) { cout << "ERROR, could not open /" << endl; exit(1); } if (pulseDataGroup.Initialize(rootGroup, "PulseData") == 0){ cout << "ERROR, could not open /PulseData" << endl; exit(1); } ASSERT_NE(callsGroup.Initialize(pulseDataGroup, "BaseCalls"), 0); */ } void Close(H5File & pbihdfFile, HDFGroup & callsGroup) { pbihdfFile.close(); callsGroup.Close(); } void TestGetNext(HDFZMWReader & zmwReader) { int count = 0; ZMWGroupEntry entry; while(zmwReader.GetNext(entry)) { count ++; ASSERT_EQ(zmwReader.curZMW, count); } ASSERT_EQ(count, zmwReader.nZMWEntries); } }; TEST_F(HDFZMWReaderTEST, ReadZMWFromBaseCalls) { HDFZMWReader zmwReader; string fileName = baxFile2; string groupName = "/PulseData/BaseCalls"; H5File pbihdfFile; HDFGroup baseCallsGroup; Initialize(pbihdfFile, fileName, groupName, baseCallsGroup); ASSERT_NE(zmwReader.Initialize(&baseCallsGroup), 0); TestGetNext(zmwReader); zmwReader.Close(); Close(pbihdfFile, baseCallsGroup); } TEST_F(HDFZMWReaderTEST, ReadZMWFromPulseCalls) { string fileName = plsFile1; H5File pbihdfFile; try { FileAccPropList propList; pbihdfFile.openFile(fileName.c_str(), H5F_ACC_RDONLY, propList); } catch (Exception &e) { cout << "ERROR, could not open hdf file" << fileName << ", exiting." << endl; exit(1); } HDFGroup pulseCallsGroup; ASSERT_NE(pulseCallsGroup.Initialize(pbihdfFile,"/PulseData/PulseCalls"), 0); HDFZMWReader zmwReader; ASSERT_NE(zmwReader.Initialize(&pulseCallsGroup), 0); TestGetNext(zmwReader); zmwReader.Close(); // Switch to read from CCS ZMW. HDFGroup ccsGroup; ASSERT_NE(ccsGroup.Initialize(pbihdfFile, "/PulseData/ConsensusBaseCalls"), 0); ASSERT_NE(zmwReader.Initialize(&ccsGroup), 0); TestGetNext(zmwReader); zmwReader.Close(); // Close ccsGroup.Close(); pulseCallsGroup.Close(); pbihdfFile.close(); } blasr_libcpp-master/unittest/hdf/Makefile000066400000000000000000000011111260756663100210710ustar00rootroot00000000000000include ../../rules.mk include ../defines.mk SOURCES = $(wildcard *.cpp) OBJECTS = $(SOURCES:.cpp=.o) EXE := test-runner all debug profile: $(EXE) libpbihdf_gtest.a: $(OBJECTS) $(AR) $(ARFLAGS)c $@ $^ $(EXE): $(OBJECTS) $(CXX) $(CXXOPTS) $(CXXFLAGS) $^ $(GTEST_SRC) -o $@ -I$(GTEST_ROOT) $(LIBDIRS) $(LDFLAGS) $(OBJECTS): %.o: %.cpp $(CXX) $(CXXOPTS) $(CXXFLAGS) -c $< -o $@ $(INCDIRS) gtest: $(EXE) ./$< --gtest_output=xml:../xml/hdf.xml clean: @find . -type f -name \*.o -delete @find . -type f -name \*.d -delete @rm -f libpbihdf_gtest.a $(EXE) ../xml/hdf.xml blasr_libcpp-master/unittest/makefile000066400000000000000000000066061260756663100204060ustar00rootroot00000000000000SHELL=bash THISDIR:=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) SRCDIR:=${THISDIR} -include ${CURDIR}/defines.mk include ${THISDIR}/../rules.mk MKDIR := mkdir null := space := $(null) $(null) broken_test_sources := \ ${SRCDIR}/alignment/files/ReaderAgglomerate_gtest.cpp \ ${SRCDIR}/alignment/format/SAMHeaderPrinter_gtest.cpp \ ${SRCDIR}/alignment/format/SAMPrinter_gtest.cpp \ ${SRCDIR}/alignment/utils/FileUtils_gtest.cpp \ $(null) gtest_sources := $(GTEST_SRCDIR)/gtest/gtest-all.cc \ $(GTEST_SRCDIR)/gtest/gtest_main.cc \ $(null) test_sources := $(wildcard ${SRCDIR}/pbdata/*.cpp) \ $(wildcard ${SRCDIR}/pbdata/utils/*.cpp) \ $(wildcard ${SRCDIR}/pbdata/metagenome/*.cpp) \ $(wildcard ${SRCDIR}/pbdata/saf/*.cpp) \ $(wildcard ${SRCDIR}/pbdata/reads/*.cpp) \ $(wildcard ${SRCDIR}/pbdata/qvs/*.cpp) \ \ $(wildcard ${SRCDIR}/hdf/*.cpp) \ \ $(wildcard ${SRCDIR}/alignment/*.cpp) \ $(wildcard ${SRCDIR}/alignment/utils/*.cpp) \ $(wildcard ${SRCDIR}/alignment/datastructures/alignment/*.cpp) \ $(wildcard ${SRCDIR}/alignment/files/*.cpp) \ $(wildcard ${SRCDIR}/alignment/format/*.cpp) \ $(null) # Remove broken tests from the test_sources list test_sources := $(filter-out $(broken_test_sources),$(test_sources)) paths := alignment alignment/files alignment/datastructures/alignment alignment/utils alignment/format \ pbdata pbdata/utils pbdata/metagenome pbdata/saf pbdata/reads pbdata/qvs \ hdf paths := $(patsubst %,${SRCDIR}%,${paths}) ${GTEST_SRCDIR}/gtest sources := $(gtest_sources) $(test_sources) sources := $(notdir ${sources}) objects := $(patsubst %.cc,%.o,$(filter %.cc,$(sources))) \ $(patsubst %.cpp,%.o,$(filter %.cpp,$(sources))) \ $(null) dependencies:=$(objects:%.o=%.d) INCLUDES+= \ ${SRCDIR} \ $(GTEST_INC) \ $(LIBBLASR_INC) \ $(LIBPBIHDF_INC) \ $(LIBPBDATA_INC) \ $(PBBAM_INC) \ $(HTSLIB_INC) \ $(HDF5_INC) \ $(BOOST_INC) \ $(null) LIBS+= \ $(LIBBLASR_LIB) \ $(LIBPBIHDF_LIB) \ $(LIBPBDATA_LIB) \ $(PBBAM_LIB) \ $(HTSLIB_LIB) \ $(HDF5_LIB) \ $(HDF5_CPP_LIB) \ $(ZLIB_LIB) \ $(GCC_LIB) \ $(null) ldlibs := -lblasr -lpbihdf -lpbdata -lpbbam -lhts -lhdf5_cpp -lhdf5 -lz sys_ldlibs := -lpthread -ldl -lrt cxxopts := -std=c++11 -Wno-div-by-zero cxxflags := -O3 cppflags := $(patsubst %,-I%,${includes}) ldflags := $(patsubst %,-L%,${LIBS}) $(sys_ldflags) override CPPFLAGS := $(cppflags) $(CPPFLAGS) override CXXFLAGS := $(cxxflags) $(cxxopts) $(CXXFLAGS) override LDLIBS := $(ldlibs) $(sys_ldlibs) $(LDLIBS) override LDFLAGS := $(ldflags) $(LDFLAGS) COMPILE.cpp = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c COMPILE.cc = $(COMPILE.cpp) LINK.o = $(CXX) $(LDFLAGS) $(TARGET_ARCH) vpath %.cpp ${paths} vpath %.cc ${paths} all: test-runner test-runner: $(objects) $(LINK.o) $^ $(LDLIBS) -o $@ gtest: test-runner LD_LIBRARY_PATH=$(subst $(space),:,$(strip $(LIBS))) ./$< --gtest_output=xml:./xml/all.xml # Build objects %.o: %.cpp $(COMPILE.cpp) -o $@ $< %.o: %.cc $(COMPILE.cc) -o $@ $< clean: $(RM) -r $(OUTDIR) *.o test-runner -include ${dependencies} depend: $(dependencies:.d=.depend) blasr_libcpp-master/unittest/pbdata/000077500000000000000000000000001260756663100201315ustar00rootroot00000000000000blasr_libcpp-master/unittest/pbdata/CCSSequence_gtest.cpp000066400000000000000000000066071260756663100241550ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: CCSSequence_gtest.cpp * * Description: Test pbdata/CCSSequence.hpp * * Version: 1.0 * Created: 10/29/2012 05:17:04 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "CCSSequence.hpp" using namespace std; Nucleotide sr0[] = "ATATGGGGATTAGGGGATA"; Nucleotide sr1[] = "TAATCCCGTAATCCCGGTAT"; //rc = TAATCCCGTAATCCCGGTAT Nucleotide sr2[] = "ATAGGGGGATTAGGGGATTCA"; Nucleotide adapter[] = "CCC"; Nucleotide unrolled_seq[] = "ATATGGGGATTAGGGGATACCCTAATCCCGTAATCCCGGTATCCCATAGGGGGATTAGGGGATTCA"; int sz0 = 19; int sz1 = 20; int sz2 = 21; int adaptersz = 3; int unrolledsz = sz0 + sz1 + sz2 + adaptersz * 2; const int numSubreads = 3; class CCSSequenceTest: public:: testing:: Test{ public: void CreateSMRTSequence(SMRTSequence & smrt, Nucleotide* seq, int holeNumber, int start, int end) { int size = end - start; smrt.seq = new Nucleotide[size]; memcpy(smrt.seq, seq, size*sizeof(Nucleotide)); smrt.length = size; smrt.deleteOnExit = false; smrt.HoleNumber (holeNumber); smrt.SubreadStart(start); smrt.SubreadEnd (end); stringstream ss; } void SetUp() { //Create a vector of subreads. subreads.resize(numSubreads); int s = 0; CreateSMRTSequence(subreads[0], &sr0[0], 1, s, s + sz0); s += sz0 + adaptersz; CreateSMRTSequence(subreads[1], &sr1[0], 1, s, s + sz1); s += sz1 + adaptersz; CreateSMRTSequence(subreads[2], &sr2[0], 1, s, s + sz2); //Create ccs stringstream ss; subreads[0].Print(ss); CreateSMRTSequence(ccs.unrolledRead, &unrolled_seq[0], 1, 0, unrolledsz); ccs.numPasses = numSubreads; CreateSMRTSequence((SMRTSequence&)ccs, &sr0[0], 1, 0, sz0); ccs.numConsensusBases = sz0; ccs.passStartBase.resize(numSubreads); ccs.passNumBases.resize(numSubreads); ccs.passDirection.resize(numSubreads); s = 0; for(int i=0; i < ccs.numPasses; i++) { ccs.passStartBase[i] = subreads[i].SubreadStart(); ccs.passDirection[i] = (i%2==0)?(0):(1); ccs.passNumBases[i] = subreads[i].length; } } void TearDown() { ccs.Free(); for(int i=0; i subreads; }; TEST_F(CCSSequenceTest, Print) { stringstream ss, ss1; ccs.Print(ss); ccs.unrolledRead.Print(ss1); ASSERT_EQ(ss.str(), (string( "SMRTSequence for zmw 1, [0, 19)\nATATGGGGATTAGGGGATA\n"))); ASSERT_EQ(ss1.str(), (string( "SMRTSequence for zmw 1, [0, 66)\nATATGGGGATTAGGGGATACCCTAATCCCGTAATCCCGGTATCCCATAGG\nGGGATTAGGGGATTCA\n"))); } TEST_F(CCSSequenceTest, Explode) { vector exploded_subreads; ccs.Explode(exploded_subreads); for(int i = 0; i < numSubreads; i++){ stringstream ss, ss1; subreads[i].PrintSeq(ss); exploded_subreads[i].PrintSeq(ss1); ASSERT_EQ(ss.str(), ss1.str()); } } blasr_libcpp-master/unittest/pbdata/ChangeListID_gtest.cpp000066400000000000000000000015431260756663100243040ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: ChangeListID_gtest.cpp * * Description: Test pbdata/ChangeListID.hpp * * Version: 1.0 * Created: 02/26/2015 06:01:01 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "ChangeListID.hpp" using namespace std; // Test ChangeListID.GetVersion(). TEST(ChangeListID, GetVersion) { string str = "2.3.0.143354"; ChangeListID change = ChangeListID(str); EXPECT_EQ(change.GetVersion(), "2.3"); str = ""; change = ChangeListID(str); EXPECT_EQ(change.GetVersion(), ""); } blasr_libcpp-master/unittest/pbdata/DNASequence_gtest.cpp000066400000000000000000000173331260756663100241450ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: DNASequence_gtest.cpp * * Description: Test DNASequence.hpp * * Version: 1.0 * Created: 10/27/2012 09:42:13 AM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "DNASequence.hpp" #include #include #include using namespace std; //Note ::testing::Test not ::testing::TEST //SetUp() and TearDown(), not Setup() and Teardown() class DNASequenceTest : public ::testing::Test { public: DNASequence dnaOne; }; //Test DNASequence constructor TEST_F(DNASequenceTest, Constructor) { DNASequence dnaSeq; EXPECT_TRUE(dnaSeq.seq == NULL); EXPECT_TRUE(dnaSeq.length == 0); EXPECT_TRUE(dnaSeq.size() == dnaSeq.length); EXPECT_TRUE(dnaSeq.bitsPerNuc == 8); EXPECT_FALSE(dnaSeq.deleteOnExit); Nucleotide HKITTY[] = "HELLO,KITTY!"; dnaSeq.seq = HKITTY; dnaSeq.length = sizeof(HKITTY)/sizeof(Nucleotide) - 1; // dnaSeq.Print(cout); EXPECT_EQ(dnaSeq.size(), 12); DNALength thisLen = 12; Nucleotide * thisNuc = new Nucleotide [thisLen]; memcpy(thisNuc, HKITTY, thisLen); DNASequence newDnaSeq; newDnaSeq.seq = thisNuc; newDnaSeq.length = thisLen; // newDnaSeq.Print(cout); EXPECT_EQ(memcmp(newDnaSeq.seq, dnaSeq.seq, thisLen), 0); EXPECT_EQ(newDnaSeq.length, thisLen); if (!thisNuc) delete thisNuc; DNASequence nnewDnaSeq; thisLen = 12; string atgc ("atgcatgcatgc"); thisNuc = new Nucleotide [thisLen]; for (int i = 0 ; i < thisLen; i++) { thisNuc[i] = atgc[i]; } string ret; nnewDnaSeq.seq = thisNuc; nnewDnaSeq.length = thisLen; for (int i = 0 ; i < thisLen; i++) { ret += nnewDnaSeq.seq[i]; } EXPECT_STREQ(ret.c_str(), atgc.c_str()); } //Test DNASequence Append() TEST_F(DNASequenceTest, Append) { DNALength oneLen = 10; Nucleotide * one = new Nucleotide [oneLen]; string As("AAAAAAAAAA"); for (int i = 0; i < oneLen; i++) { one[i] = As[i]; } //Can not memcpy a string to a DNASequence directly //such as memcpy(one, As.c_str(), oneLen), because //DNASequence.seq is of type unsigned char, not char DNALength twoLen = 20; Nucleotide * two = new Nucleotide [twoLen]; string Gs("GGGGGGGGGGGGGGGGGGGG"); for (int i = 0; i < twoLen; i++) { two[i] = Gs[i]; } //memcpy(two, Gs.c_str(), twoLen); Nucleotide * three = new Nucleotide [oneLen + twoLen]; memcpy(three, one, oneLen); memcpy(three+oneLen, two, twoLen); DNASequence dnaTwo; dnaOne.seq = one; dnaOne.length = oneLen; dnaOne.deleteOnExit = true; dnaTwo.seq = two; dnaTwo.length = twoLen; dnaOne.Append(dnaTwo, 0); EXPECT_EQ(dnaOne.length, oneLen + twoLen); EXPECT_EQ(memcmp(dnaOne.seq, three, dnaOne.length), 0); string AGs("AAAAAAAAAAGGGGGGGGGGGGGGGGGGGG"); for (int i = 0; i < dnaOne.length; i++) { EXPECT_EQ(AGs[i], (char)dnaOne.seq[i]); } //if appendPos is positive, overwrite this sequence //from appendPos to the end AGs = "AAGGGGGGGGGGGGGGGGGGGG"; DNALength appendPos = 2; dnaOne.Append(dnaTwo, appendPos); EXPECT_EQ(dnaOne.length, appendPos + twoLen); for (int i = 0; i < dnaOne.length; i++) { EXPECT_EQ(AGs[i], (char)dnaOne.seq[i]); } if(!one) delete one; if(!two) delete two; if(!three) delete three; } //Test DNASequence TakeOwnership TEST_F(DNASequenceTest, TakeOwnership) { DNALength oneLen = 10; Nucleotide * one = new Nucleotide [oneLen]; dnaOne.seq = one; dnaOne.length = oneLen; DNASequence dnaTwo; //a bug may occur if deleteOneExit is true and //TakeOwnership() is called twice. In that case, both //dnaOne and dnaTwo will become wild pointers dnaTwo.deleteOnExit = true; dnaTwo.TakeOwnership(dnaOne); EXPECT_EQ(dnaTwo.length, dnaOne.length); EXPECT_EQ(dnaTwo.deleteOnExit, dnaOne.deleteOnExit); EXPECT_EQ(dnaTwo.seq, dnaOne.seq); if(!one) delete one; } //Test DNASequence ShallowCopy TEST_F(DNASequenceTest, ShallowCopy) { DNALength oneLen = 10; Nucleotide * one = new Nucleotide [oneLen]; string As("AAAAAAAAAA"); for (int i = 0; i < oneLen; i++) { one[i] = As[i]; } dnaOne.seq = one; dnaOne.length = oneLen; DNASequence dnaTwo; dnaTwo.ShallowCopy(dnaOne); EXPECT_EQ(dnaTwo.length, dnaOne.length); EXPECT_EQ(dnaTwo.seq , dnaOne.seq); EXPECT_EQ(dnaTwo.deleteOnExit, dnaOne.deleteOnExit); } //Test DNASequence.Copy(const DNASequence rhs, // DNALength rhsPos, // DNALength rhsLength) TEST_F(DNASequenceTest, Copy) { DNALength oneLen = 10; Nucleotide * one = new Nucleotide [oneLen]; string As("AGAAAAACAA"); for (int i = 0; i < oneLen; i++) { one[i] = As[i]; } dnaOne.seq = one; dnaOne.length = oneLen; DNASequence dnaTwo; dnaTwo.Copy(dnaOne); EXPECT_EQ(dnaTwo.length, dnaOne.length); EXPECT_NE(dnaTwo.seq , dnaOne.seq); EXPECT_TRUE(dnaTwo.deleteOnExit); EXPECT_EQ(memcmp(dnaTwo.seq, dnaOne.seq, dnaOne.length), 0); //if rhs.length is 0, return this * DNASequence dnaThree; dnaTwo.Copy(dnaThree); //dnaTwo remains unchanged EXPECT_EQ(dnaTwo.length, 0); EXPECT_NE(dnaTwo.seq, dnaOne.seq); EXPECT_TRUE(dnaTwo.deleteOnExit); EXPECT_TRUE(dnaTwo.seq == NULL); //if rhsPos is not 0 and rhsLength is 0 dnaTwo.Copy(dnaOne, 2); EXPECT_EQ(dnaTwo.length, dnaOne.length - 2); EXPECT_TRUE(dnaTwo.deleteOnExit); EXPECT_EQ(memcmp(dnaTwo.seq, dnaOne.seq + 2, dnaTwo.length), 0); //if the subsequence to copy is out of bounds EXPECT_GT(200, dnaOne.length); //EXPECT_EXIT(dnaTwo.Copy(dnaOne, 200), ::testing::ExitedWithCode(1), ""); //if both rhsPos and rhsLength are less than MAXINT, //but rhsPos+ rhsLength > MAXINT DNALength rhsPos = 3; DNALength rhsLength = UINT_MAX -1; EXPECT_TRUE(rhsPos < UINT_MAX && rhsLength < UINT_MAX); EXPECT_TRUE(rhsLength > dnaOne.length + 1); //EXPECT_EXIT(dnaTwo.Copy(dnaOne, rhsPos, rhsLength), ::testing::ExitedWithCode(1), ""); //if rhsPos > rhs.length //EXPECT_EXIT(dnaTwo.Copy(dnaOne, dnaOne.length + 1), ::testing::ExitedWithCode(1), "") // << "Copy a subsequence which is out of bounds. This needs to be taken care of. See bug 21867."; } //Test DNASequence Allocate(DNALength) TEST_F(DNASequenceTest, Allocate) { dnaOne.Allocate(0); EXPECT_EQ(dnaOne.length, 0); DNASequence dnaTwo; dnaTwo.Allocate(100); EXPECT_EQ(dnaTwo.length, 100); } //Test DNASequence ReferenceSubstring(rhs, pos, substrLength) TEST_F(DNASequenceTest, ReferenceSubstring) { DNALength oneLen = 10; dnaOne.seq = new Nucleotide[oneLen]; dnaOne.length = oneLen; DNASequence dnaTwo; dnaTwo.ReferenceSubstring(dnaOne); EXPECT_EQ(dnaOne.seq, dnaTwo.seq); EXPECT_EQ(dnaOne.length, dnaTwo.length); EXPECT_FALSE(dnaTwo.deleteOnExit); // EXPECT_DEATH_IF_SUPPORTED(dnaTwo.ReferenceSubstring(dnaOne, 100), ""); delete [] dnaOne.seq; } /* TEST_F(DNASequenceTest, CopyFromString) { // Test Copy(const std::string &) string str = "ATGCGGGCCTCGCCG"; dnaOne.Copy(str); for (int i = 0; i < str.size(); i++) { EXPECT_EQ(dnaOne.seq[i], str[i]); } // Test operator = (const std::string) DNASequence dnaTwo; dnaTwo = str; for (int i = 0; i < str.size(); i++) { EXPECT_EQ(dnaOne.seq[i], str[i]); } } */ blasr_libcpp-master/unittest/pbdata/FASTAReader_gtest.cpp000066400000000000000000000033401260756663100240240ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: FASTAReader_gtest.cpp * * Description: Test common/FASTAReader.h * * Version: 1.0 * Created: 10/29/2012 05:18:52 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "FASTAReader.hpp" #include "pbdata/testdata.h" class FASTAReaderTest:public::testing::Test{ public: void SetUp() { string filename(fastaFile1); reader.Initialize(filename); } void TearDown() { reader.Close(); seq.Free(); } FASTAReader reader; FASTASequence seq; }; TEST_F(FASTAReaderTest, GetNext) { reader.GetNext(seq); EXPECT_EQ(strcmp(seq.title, "read1"), 0); EXPECT_EQ(seq.length, 100); string expected_seq = string( "AAAAAGGGGGCCCCCACGGCAGCCAGATTTAAATTGAGGGCCCCCCCTTT" "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"); EXPECT_EQ(strcmp((char*)seq.seq, expected_seq.c_str()), 0); reader.GetNext(seq); EXPECT_EQ(strcmp(seq.title, "read2"), 0); EXPECT_EQ(seq.length, 99); } TEST_F(FASTAReaderTest, ReadAllSequences) { vector seqs; reader.ReadAllSequences(seqs); EXPECT_EQ(seqs.size(), 12); EXPECT_EQ(strcmp(seqs[11].title, "read2x"), 0); string expected_seq = string( "AAAAAGGGGGCCCACGGCAGCCAGATTTAAATTGAGGGCAACCCCCCTTT" "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"); EXPECT_EQ(strcmp((char*)seqs[11].seq, expected_seq.c_str()), 0); } blasr_libcpp-master/unittest/pbdata/FASTASequence_gtest.cpp000066400000000000000000000073371260756663100244040ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: FASTASequence_gtest.cpp * * Description: Test pbdata/FASTASequence.hpp * * Version: 1.0 * Created: 10/29/2012 05:19:13 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "FASTASequence.hpp" #include "gtest/gtest.h" #include #include #include using namespace std; class FASTASequenceTest : public ::testing::Test { public: virtual void SetUp() { } virtual void TearDown() { fastaOne.Free(); fastaTwo.Free(); fastaThree.Free(); } FASTASequence fastaOne; FASTASequence fastaTwo; FASTASequence fastaThree; std::streambuf * sbuf; ofstream ofs; }; //Test FASTASequence TEST_F(FASTASequenceTest, ALLFUNC) { // Test constructor EXPECT_TRUE(fastaOne.title == NULL); EXPECT_TRUE(fastaOne.titleLength == 0); EXPECT_TRUE(fastaOne.seq == NULL); EXPECT_TRUE(fastaOne.length == 0); EXPECT_FALSE(fastaOne.deleteOnExit); EXPECT_EQ(fastaOne.GetStorageSize(), 0); DNASequence dna; Nucleotide thisNuc[] = "ATGCATGCTC"; dna.seq = thisNuc; dna.length = 10; int titleLength = 22; string title("fasta_seq_one comments"); fastaOne.title = new char [titleLength]; memcpy(fastaOne.title, title.c_str(), titleLength); fastaOne.titleLength = titleLength; EXPECT_EQ(fastaOne.GetName(), string("fasta_seq_one")); fastaOne.seq = thisNuc; fastaOne.length = 10; // use ShallowCopy carefully, since title may double free // fastaTwo.ShallowCopy(fastaOne); // EXPECT_EQ(fastaTwo.seq, fastaOne.seq); // EXPECT_EQ(fastaTwo.title, fastaOne.title); // Test AppendToTitle fastaOne.AppendToTitle(string("XXX")); EXPECT_EQ(fastaOne.titleLength, 26); string newTitle = "fasta_seq_one commentsXXX"; EXPECT_STREQ(fastaOne.title, newTitle.c_str()); // Test ReverseComplementSelf() fastaOne.ReverseComplementSelf(); string rcSeq = "GAGCATGCAT"; for (int i = 0; i < rcSeq.size(); i++) { EXPECT_EQ(fastaOne.seq[i], rcSeq[i]); } // Test operator = fastaTwo=fastaOne; EXPECT_NE(fastaOne.title, fastaTwo.title); EXPECT_EQ(fastaOne.titleLength, fastaTwo.titleLength); EXPECT_STREQ(fastaOne.title, fastaTwo.title); EXPECT_NE(fastaOne.seq, fastaTwo.seq); for (int i = 0; i < fastaOne.length; i++) { EXPECT_EQ(fastaOne.seq[i], fastaTwo.seq[i]); } // Test MakeRC(rhs&) fastaOne.MakeRC(fastaThree); // Test PrintSeq stringstream ss; fastaThree.PrintSeq(ss); string thisTitle, thisComment, thisSeq; ss >> thisTitle; ss >> thisComment; ss >> thisSeq; EXPECT_EQ(thisTitle, ">fasta_seq_one"); EXPECT_EQ(thisComment, "commentsXXX"); EXPECT_EQ(thisSeq, "ATGCATGCTC"); } TEST_F(FASTASequenceTest, CopyFromString) { string name = "read_name"; string seq = "ATGGGCGC"; fastaOne.Copy(name, seq); EXPECT_EQ(fastaOne.title, name); EXPECT_EQ(fastaOne.length, seq.size()); EXPECT_EQ(fastaOne.deleteOnExit, true); for(int i = 0; i < fastaOne.length; i++) { EXPECT_EQ(fastaOne.seq[i], seq[i]); } // Copy sequence from another string. string seq2 = "GGTTGTG"; fastaOne.Copy(seq2); // Name not changed. EXPECT_EQ(fastaOne.title, name); EXPECT_EQ(fastaOne.length, seq2.size()); EXPECT_EQ(fastaOne.deleteOnExit, true); for(int i = 0; i < fastaOne.length; i++) { EXPECT_EQ(fastaOne.seq[i], seq2[i]); } } blasr_libcpp-master/unittest/pbdata/FASTQReader_gtest.cpp000066400000000000000000000053511260756663100240500ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: FASTQReader_gtest.cpp * * Description: Test pbdata/FASTQReader.hpp * * Version: 1.0 * Created: 10/29/2012 05:19:32 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "FASTQReader.hpp" #include "pbdata/testdata.h" const string movie = "m130328_211423_ethan_c100499512550000001823070408081371_s1_p0"; const int numSeqs = 208; class FASTQReaderTest:public::testing::Test{ public: void SetUp() { string filename(fastqFile1); reader.Initialize(filename); } void TearDown() { reader.Close(); seq.Free(); } FASTQReader reader; FASTQSequence seq; }; TEST_F(FASTQReaderTest, GetNext) { reader.GetNext(seq); EXPECT_EQ(strcmp(seq.title, string(movie + "/8").c_str()), 0); EXPECT_EQ(seq.length, 752); string expected_seq = string( "AATAAAAAAAAAAGAAAGCTTCGAAGTGAGCGAATTACTCTCAGGCAACT" "GCGGGTGAAGCCAGAGCAGGCATGATGACACTGGGGAATTTACGCAAATT" "TTACCATTGAATTTACACATGCGATGTGCTGGAATGCGGAAGACGGAAAC" "GAAACCAGCAATACATCAAACGCCGCACCAGAGAAGAGATATTTGCGCCC" "TAAACTAGGTAAGGCGGTTGACTTGAACAGCAAATCAAACGTCAACGAGC" "AGCGTGAGTATATACAAGTTATCTCGGATGGAGAACGTATTCTAAATGTA" "AGCACGAATCCCGGAAGAGGAAACCAGTTTCTTGGTTTTTCGCCATCCTC" "GAAGACCTGTTACAAACCGCACTGGACCTGGAAAGTTTCTGCGCGTAATC" "GACAAGACTAGTAACTATCGACATCAACCATCGATTACGGGTTGGGTCAA" "TGGGTTCAGATGCAGGTGAGTATCCTTCATATGATAGTCTGACGCTGGCA" "TTCGCTCAAAGGAAGTAGACGGTTTTGTAAATAGAAACGCTTGTGAAAAG" "CTGAATTTCGCGTCGTCTTCCAGCGATGCAGAGCTGTAGTAGTTCAGATG" "ATGACCGTTACTCAAAGTGCCTGCAACGGCTCGGGGCGTGCGCGTCCTGT" "GGTGGCTGCTTTTGTTGCGCTGTTTGCAGTGTATGGTTGTCGGGTGATGT" "TGCCTGCAAACCCACAAAACCCCACACACACAACAGTTGGGTTGTTGATT" "GG"); string expected_qual = string( "(,)'(')''++),.$\"+*$'--.-/+&.$-./$',-.&#'/,.,)-,--,"); for(int i=0; i < seq.length; i++){ EXPECT_EQ(seq.seq[i], expected_seq[i]); } for(int i=0; i < expected_qual.size(); i++){ EXPECT_EQ(seq.qual[i] + FASTQSequence::charToQuality, expected_qual[i]); } reader.GetNext(seq); EXPECT_EQ(strcmp(seq.title, string(movie+"/9").c_str()), 0); // Continue to read for(int i=2; i < numSeqs; i++) { EXPECT_TRUE(reader.GetNext(seq)); } EXPECT_EQ(strcmp(seq.title, string(movie+"/249").c_str()), 0); // Can not proceed. EXPECT_FALSE(reader.GetNext(seq)); } blasr_libcpp-master/unittest/pbdata/Makefile000066400000000000000000000013651260756663100215760ustar00rootroot00000000000000include ../../rules.mk include ../defines.mk SOURCES = $(wildcard *.cpp) \ $(wildcard utils/*.cpp) \ $(wildcard metagenome/*.cpp) \ $(wildcard saf/*.cpp) \ $(wildcard reads/*.cpp) \ $(wildcard qvs/*.cpp) OBJECTS = $(SOURCES:.cpp=.o) EXE := test-runner all debug profile: $(EXE) libpbdata_gtest.a: $(OBJECTS) $(AR) $(ARFLAGS)c $@ $^ $(EXE): $(OBJECTS) $(CXX) $(CXXOPTS) $(CXXFLAGS) $^ $(GTEST_SRC) -o $@ -I$(GTEST_ROOT) $(LIBDIRS) $(LDFLAGS) $(OBJECTS): %.o: %.cpp $(CXX) $(CXXOPTS) $(CXXFLAGS) -c $< -o $@ $(INCDIRS) gtest: $(EXE) ./$< --gtest_output=xml:../xml/pbdata.xml clean: @find . -type f -name \*.o -delete @find . -type f -name \*.d -delete @rm -f libpbdata_gtest.a $(EXE) ../xml/pbdata.xml blasr_libcpp-master/unittest/pbdata/NucConversion_gtest.cpp000066400000000000000000000055231260756663100246430ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: NucConversion_gtest.cpp * * Description: Test pbdata/NucConversion.hpp * * Version: 1.0 * Created: 08/19/2014 05:21:12 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "NucConversion.hpp" // ACGT = 0123 TEST(NucConversion, ASCIITo2BIT) { EXPECT_EQ(TwoBit['A'], 0); EXPECT_EQ(TwoBit['a'], 0); EXPECT_EQ(TwoBit['C'], 1); EXPECT_EQ(TwoBit['c'], 1); EXPECT_EQ(TwoBit['G'], 2); EXPECT_EQ(TwoBit['g'], 2); EXPECT_EQ(TwoBit['T'], 3); EXPECT_EQ(TwoBit['t'], 3); EXPECT_EQ(TwoBit['N'], 255); EXPECT_EQ(TwoBit['x'], 255); } TEST(NucConversion, ASCIITo3BIT) { EXPECT_EQ(ThreeBit['A'], 0); EXPECT_EQ(ThreeBit['a'], 0); EXPECT_EQ(ThreeBit['C'], 1); EXPECT_EQ(ThreeBit['c'], 1); EXPECT_EQ(ThreeBit['G'], 2); EXPECT_EQ(ThreeBit['g'], 2); EXPECT_EQ(ThreeBit['T'], 3); EXPECT_EQ(ThreeBit['t'], 3); EXPECT_EQ(ThreeBit['U'], 4); EXPECT_EQ(ThreeBit['M'], 4); EXPECT_EQ(ThreeBit['R'], 4); EXPECT_EQ(ThreeBit['W'], 4); EXPECT_EQ(ThreeBit['S'], 4); EXPECT_EQ(ThreeBit['Y'], 4); EXPECT_EQ(ThreeBit['K'], 4); EXPECT_EQ(ThreeBit['V'], 4); EXPECT_EQ(ThreeBit['H'], 4); EXPECT_EQ(ThreeBit['D'], 4); EXPECT_EQ(ThreeBit['N'], 4); EXPECT_EQ(ThreeBit['$'], 5); EXPECT_EQ(ThreeBit['p'], 255); EXPECT_EQ(ThreeBit['q'], 255); } TEST(NucConversion, ISACTG) { EXPECT_TRUE(IsACTG['A']); EXPECT_TRUE(IsACTG['a']); EXPECT_TRUE(IsACTG['C']); EXPECT_TRUE(IsACTG['c']); EXPECT_TRUE(IsACTG['G']); EXPECT_TRUE(IsACTG['g']); EXPECT_TRUE(IsACTG['T']); EXPECT_TRUE(IsACTG['t']); EXPECT_FALSE(IsACTG['w']); EXPECT_FALSE(IsACTG['N']); } TEST(NucConversion, ThreeBitToASCII) { char alphabeta[] = {'A', 'C', 'G', 'T'}; for(int i = 0; i < 4; i++) { EXPECT_EQ(alphabeta[i], ThreeBitToAscii[ThreeBit[alphabeta[i]]]); } } TEST(NucConversion, AllToUpper) { char alphabeta[] = {'A', 'C', 'G', 'T', 'a', 'c', 'g', 't'}; for(int i = 0; i < 8; i++) { EXPECT_EQ(toupper(alphabeta[i]), AllToUpper[alphabeta[i]]); } } TEST(NucConversion, AllToLower) { char alphabeta[] = {'A', 'C', 'G', 'T', 'a', 'c', 'g', 't'}; for(int i = 0; i < 8; i++) { EXPECT_EQ(tolower(alphabeta[i]), AllToLower[alphabeta[i]]); } } TEST(NucConversion, ReverseComplementNuc) { EXPECT_EQ(ReverseComplementNuc['A'], 'T'); EXPECT_EQ(ReverseComplementNuc['T'], 'A'); EXPECT_EQ(ReverseComplementNuc['G'], 'C'); EXPECT_EQ(ReverseComplementNuc['C'], 'G'); } blasr_libcpp-master/unittest/pbdata/SMRTSequence_gtest.cpp000066400000000000000000000027471260756663100243330ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: SMRTSequenceSequence_gtest.cpp * * Description: Test pbdata/SMRTSequenceSequence.h * * Version: 1.0 * Created: 10/29/2012 05:17:04 PM * Revision: 08/19/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "SMRTSequence.hpp" using namespace std; Nucleotide seqnt[] = "ATATGGGGATTAGGGGATA"; const string seqst("ATATGGGGATTAGGGGATA"); class SMRTSequenceTest: public:: testing:: Test{ public: void SetUp() { smrt.seq = seqnt; int len = sizeof(seqnt) / sizeof(Nucleotide) - 1; smrt.length = len; smrt.HoleNumber(1); smrt.SubreadStart(0); smrt.SubreadEnd (19); smrt.AllocateDeletionQVSpace(len); for(int i=0; i < 19; i ++) { smrt.deletionQV[i] = i; } } void TearDown() { smrt.Free(); } SMRTSequence smrt; }; TEST_F(SMRTSequenceTest, Print) { stringstream ss; smrt.Print(ss); ASSERT_EQ(ss.str(), (string("SMRTSequence for zmw 1, [0, 19)\n") + seqst + "\n")); } TEST_F(SMRTSequenceTest, GetDeletionQV) { for(int i = 0; i < smrt.length; i ++){ ASSERT_EQ(smrt.GetDeletionQV(i), i); } } blasr_libcpp-master/unittest/pbdata/ScanData_gtest.cpp000066400000000000000000000015651260756663100235300ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: ScanData_gtest.cpp * * Description: Test pbdata/reads/ScanData.hpp * * Version: 1.0 * Created: 11/29/2012 03:55:46 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "reads/ScanData.hpp" TEST(ScanDataTest, GetMovieName) { ScanData sd; EXPECT_EQ(sd.platformId, NoPlatform); EXPECT_EQ(sd.frameRate, 0); EXPECT_EQ(sd.numFrames, 0); EXPECT_EQ(sd.movieName.size(), 0); EXPECT_EQ(sd.runCode.size(), 0); EXPECT_EQ(sd.whenStarted.size(), 0); EXPECT_EQ(sd.baseMap.size(), 0); } blasr_libcpp-master/unittest/pbdata/SeqUtils_gtest.cpp000066400000000000000000000023241260756663100236150ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: SeqUtils_gtest.cpp * * Description: Test pbdata/SeqUtils.hpp, SeqUtils_Impl.hpp * * Version: 1.0 * Created: 10/29/2012 05:21:58 PM * Updated: 08/18/2014 05:49:51 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "SeqUtils.hpp" TEST(SeqUtils, OnlyACTG){ DNASequence seq; Nucleotide seqnt[] = "ATGC"; seq.seq = seqnt; seq.length = 4; EXPECT_EQ(OnlyACTG(seq), 1); Nucleotide seqnt1[] = "ATXYZ"; seq.seq = seqnt1; seq.length = 5; EXPECT_EQ(OnlyACTG(seq), 0); } TEST(SeqUtils, CountMasked){ DNASequence seq; Nucleotide seqnt[] = "ATGCNNNNNNATGC"; seq.seq = seqnt; seq.length = 14; EXPECT_EQ(CountMasked(seq), 6); } TEST(SeqUtils, CountNotMasked){ DNASequence seq; Nucleotide seqnt[] = "ATGCNNNNNNATGC"; seq.seq = seqnt; seq.length = 14; EXPECT_EQ(CountNotMasked(seq), 8); } blasr_libcpp-master/unittest/pbdata/StringUtils_gtest.cpp000066400000000000000000000041651260756663100243400ustar00rootroot00000000000000/* * ================================================================== * * Filename: StringUtils_gtest.cpp * * Description: Test pbdata/StringUtils.hpp * * Version: 1.0 * Created: 03/28/2015 03:54:55 PM * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ================================================================== */ #include "gtest/gtest.h" #include "reads/ReadType.hpp" #include "StringUtils.hpp" using namespace std; TEST(StringUtilTest, MakeReadGroupId) { string movieName = "m140905_042212_sidney_c100564852550000001823085912221377_s1_X0"; ReadType::ReadTypeEnum readType = ReadType::SUBREAD; string expectedReadGroupId = "b89a4406"; EXPECT_EQ(MakeReadGroupId(movieName, readType), expectedReadGroupId); movieName = "movie32"; readType = ReadType::CCS; expectedReadGroupId = "f5b4ffb6"; EXPECT_EQ(MakeReadGroupId(movieName, readType), expectedReadGroupId); } TEST(StringUtilTest, Splice) { vector tokens; Splice("movie/zmw/0_1", "/", tokens); vector exp = {"movie", "zmw", "0_1"}; EXPECT_EQ(tokens, exp); string test = "abc,ef,12,4"; Splice(test, ",", tokens); exp = vector{"abc", "ef", "12", "4"}; EXPECT_EQ(tokens, exp); Splice(test, "ef,", tokens); exp = vector{"abc,", "12,4"}; EXPECT_EQ(tokens, exp); Splice("", ",", tokens); exp = vector{""}; EXPECT_EQ(tokens, exp); Splice(",", ",", tokens); exp = vector{"", ""}; EXPECT_EQ(tokens, exp); Splice(",abc,", ",", tokens); exp = vector{"", "abc", ""}; EXPECT_EQ(tokens, exp); Splice("abc,", ",", tokens); exp = vector{"abc", ""}; EXPECT_EQ(tokens, exp); Splice(",abc", ",", tokens); exp = vector{"", "abc"}; EXPECT_EQ(tokens, exp); Splice("abc", "abc", tokens); exp = vector{"", ""}; EXPECT_EQ(tokens, exp); Splice("a\tb\tc", "\t", tokens); exp = vector{"a", "b", "c"}; EXPECT_EQ(tokens, exp); } blasr_libcpp-master/unittest/pbdata/VectorUtils_gtest.cpp000066400000000000000000000015741260756663100243350ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: VectorUtils_gtest.cpp * * Description: Test pbdata/VectorUtils.hpp * * Version: 1.0 * Created: 01/17/2013 06:01:01 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "VectorUtils.hpp" using namespace std; // Test ClearMemory(vector vt) TEST(VectorUtils, ClearMemory) { vector vi; vi.push_back(1); int size = 1000000; vi.reserve(size); EXPECT_EQ(vi.size(), 1); EXPECT_EQ(vi.capacity(), size); ClearMemory(vi); EXPECT_EQ(vi.size(), 0); EXPECT_EQ(vi.capacity(), 0); } blasr_libcpp-master/unittest/pbdata/defs_gtest.cpp000066400000000000000000000016171260756663100227710ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: defs_gtest.cpp * * Description: Test pbdata/defs.h * * Version: 1.0 * Created: 10/29/2012 05:17:49 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "defs.h" TEST(DefsTest, MIN) { EXPECT_EQ(MIN(1,10000), 1); EXPECT_EQ(MIN(-1,10000), -1); EXPECT_EQ(MIN(-1,-2), -2); } TEST(DefsTest, MAX) { EXPECT_EQ(MAX(1,10000), 10000); EXPECT_EQ(MAX(-1,10000), 10000); EXPECT_EQ(MAX(-1,-2), -1); } TEST(DefsTest, SWAP) { int x = 10; int y = 100; SWAP(x, y); EXPECT_EQ(x, 100); EXPECT_EQ(y, 10); } blasr_libcpp-master/unittest/pbdata/metagenome/000077500000000000000000000000001260756663100222525ustar00rootroot00000000000000blasr_libcpp-master/unittest/pbdata/metagenome/TitleTable_gtest.cpp000066400000000000000000000015301260756663100262140ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: TitleTable_gtest.cpp * * Description: Test pbdata/metagenome/TitleTable.hpp * * Version: 1.0 * Created: 11/29/2012 03:34:56 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "metagenome/TitleTable.hpp" #include "pbdata/testdata.h" TEST(TitleTable, Read) { TitleTable tt; string fn = titleTable1; tt.Read(fn); EXPECT_STREQ(tt.table[0], "ref1 description1"); EXPECT_STREQ(tt.table[1], "ref2 description2"); EXPECT_EQ(tt.tableLength, 2); tt.Free(); } blasr_libcpp-master/unittest/pbdata/qvs/000077500000000000000000000000001260756663100207425ustar00rootroot00000000000000blasr_libcpp-master/unittest/pbdata/qvs/QualityValueVector_gtest.cpp000066400000000000000000000025171260756663100264710ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: QualityValueVector_gtest.cpp * * Description: Test pbdata/qvs/QualityValueVector.hpp * * Version: 1.0 * Created: 03/28/2015 05:21:58 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "qvs/QualityValue.hpp" #include "qvs/QualityValueVector.hpp" using namespace std; const string qvstr = "!#$%0123:;ABab{|}~"; vector data = {0,2,3,4,15,16,17,18,25,26,32,33,64,65,90,91,92,93}; TEST(QualityValueVectorTest, Copy){ EXPECT_EQ(qvstr.size(), data.size()); QualityValueVector qual; EXPECT_TRUE(qual.Empty()); // Copy qvs from a string qual.Copy(qvstr); EXPECT_FALSE(qual.Empty()); for(size_t i = 0; i < qvstr.size(); i++) { EXPECT_EQ(static_cast(qual.data[i]), data[i]); } } TEST(QualityValueVectorTest, ToString){ QualityValueVector qual; qual.Copy(qvstr); // Test ToString() EXPECT_EQ(qual.ToString(), qvstr); EXPECT_EQ(static_cast(qual.Length()), qvstr.size()); } blasr_libcpp-master/unittest/pbdata/reads/000077500000000000000000000000001260756663100212275ustar00rootroot00000000000000blasr_libcpp-master/unittest/pbdata/reads/ReadType_gtest.cpp000066400000000000000000000036631260756663100246660ustar00rootroot00000000000000/* * ================================================================== * * Filename: ReadType_gtest.cpp * * Description: Test pbdata/reads/ReadType.hpp * * Version: 1.0 * Created: 11/29/2012 03:54:55 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ================================================================== */ #include "gtest/gtest.h" #include "reads/ReadType.hpp" using namespace std; string standard = "Standard"; string ccs = "CCS"; string rccs = "RCCS"; string noreadtype = "standard"; string subread = "SUBREAD"; string polymerase = "POLYMERASE"; string hqregion = "HQREGION"; string scarp = "SCARP"; string unknown = "UNKNOWN"; TEST(ReadTypeTest, ParseReadType) { EXPECT_EQ(ReadType::ParseReadType(standard), ReadType::Standard); EXPECT_EQ(ReadType::ParseReadType(ccs), ReadType::CCS); EXPECT_EQ(ReadType::ParseReadType(rccs), ReadType::RCCS); EXPECT_EQ(ReadType::ParseReadType(noreadtype), ReadType::NoReadType); EXPECT_EQ(ReadType::ParseReadType(subread), ReadType::SUBREAD); EXPECT_EQ(ReadType::ParseReadType(hqregion), ReadType::HQREGION); EXPECT_EQ(ReadType::ParseReadType(polymerase), ReadType::POLYMERASE); EXPECT_EQ(ReadType::ParseReadType(unknown), ReadType::UNKNOWN); } TEST(ReadTypeTest, ToString) { EXPECT_EQ(ReadType::ToString(ReadType::Standard), standard); EXPECT_EQ(ReadType::ToString(ReadType::CCS), ccs); EXPECT_EQ(ReadType::ToString(ReadType::RCCS), rccs); EXPECT_EQ(ReadType::ToString(ReadType::NoReadType), "NoReadType"); EXPECT_EQ(ReadType::ToString(ReadType::SUBREAD), subread); EXPECT_EQ(ReadType::ToString(ReadType::HQREGION), hqregion); EXPECT_EQ(ReadType::ToString(ReadType::POLYMERASE), polymerase); EXPECT_EQ(ReadType::ToString(ReadType::UNKNOWN), unknown); } blasr_libcpp-master/unittest/pbdata/reads/RegionAnnotations_gtest.cpp000066400000000000000000000164131260756663100266070ustar00rootroot00000000000000/* * ================================================================== * * Filename: RegionAnnotations_gtest.cpp * * Description: Test pbdata/reads/RegionAnnotations.hpp * * Version: 1.0 * Created: 09/27/2015 03:54:55 PM * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ================================================================== */ #include "gtest/gtest.h" #define private public #include "reads/ReadInterval.hpp" #include "reads/RegionAnnotations.hpp" #include #include using namespace std; static const UInt HOLENUMBER = 1720; // Adater - 0, Insert - 1, HQRegion - 2 static const std::vector TYPES = {Adapter, Insert, HQRegion}; static const std::vector TYPESTRS = {"Adapter", "Insert", "HQRegion"}; static const std::vector REGIONS = { RegionAnnotation(HOLENUMBER, 2, 50, 900, 900),// hqregion RegionAnnotation(HOLENUMBER, 1, 700, 999, -1), // insert RegionAnnotation(HOLENUMBER, 0, 649, 700, 700),// adapter RegionAnnotation(HOLENUMBER, 1, 300, 650, -1), // insert RegionAnnotation(HOLENUMBER, 0, 249, 329, 800),// adapter RegionAnnotation(HOLENUMBER, 1, 0, 250, -1) // insert }; static const std::vector EXPECTED_HQREGIONS = { RegionAnnotation(HOLENUMBER, 2, 50, 900, 900) // hqregion }; static const DNALength EXPECTED_HQSTART = 50; static const DNALength EXPECTED_HQEND = 900; static const DNALength WHOLE_LENGTH = 1200; static const std::vector EXPECTED_ADAPTERS = { RegionAnnotation(HOLENUMBER, 0, 249, 329, 800),// adapter RegionAnnotation(HOLENUMBER, 0, 649, 700, 700) // adapter }; static const std::vector EXPECTED_INSERTS = { RegionAnnotation(HOLENUMBER, 1, 0, 250, -1),// insert RegionAnnotation(HOLENUMBER, 1, 300, 650, -1),// insert RegionAnnotation(HOLENUMBER, 1, 700, 999, -1) // insert }; static const std::vector EXPECTED_SUBREAD_INTERVALS_BYADAPTER_NOHQ = { ReadInterval(0, 249, 0), // by Adapter, subread score unknown. ReadInterval(329, 649, 0), ReadInterval(700, 1200, 0) }; static const std::vector EXPECTED_SUBREAD_INTERVALS_BYADAPTER_HQ = { ReadInterval(50, 249, 900), // by HQ, subread score = HQRegion score ReadInterval(329, 649, 900), ReadInterval(700, 900, 900) }; static const std::vector EXPECTED_SUBREAD_INTERVALS_NOHQ = { ReadInterval(0, 250, -1), // not by adapter, not by HQ, use the original score. ReadInterval(300, 650, -1), ReadInterval(700, 999, -1) }; static const std::vector EXPECTED_SUBREAD_INTERVALS_HQ = { ReadInterval(50, 250, 900), // by HQ, subread score = HQRegion score ReadInterval(300, 650, 900), ReadInterval(700, 900, 900) }; static const std::vector EXPECTED_ADAPTER_INTERVALS = { ReadInterval(249, 329, 800), ReadInterval(649, 700, 700) }; static const std::vector REGIONS_SORTED_BY_POS = { RegionAnnotation(HOLENUMBER, 1, 0, 250, -1), // insert RegionAnnotation(HOLENUMBER, 2, 50, 900, 900),// hqregion RegionAnnotation(HOLENUMBER, 0, 249, 329, 800),// adapter RegionAnnotation(HOLENUMBER, 1, 300, 650, -1), // insert RegionAnnotation(HOLENUMBER, 0, 649, 700, 700),// adapter RegionAnnotation(HOLENUMBER, 1, 700, 999, -1) // insert }; static const std::vector REGIONS_SORTED_BY_TYPE = { RegionAnnotation(HOLENUMBER, 0, 249, 329, 800),// adapter RegionAnnotation(HOLENUMBER, 0, 649, 700, 700),// adapter RegionAnnotation(HOLENUMBER, 1, 0, 250, -1), // insert RegionAnnotation(HOLENUMBER, 1, 300, 650, -1), // insert RegionAnnotation(HOLENUMBER, 1, 700, 999, -1), // insert RegionAnnotation(HOLENUMBER, 2, 50, 900, 900) // hqregion }; TEST(RegionAnnotationTest, Sort_By_Pos) { std::vector ras = REGIONS; std::sort(ras.begin(), ras.end()); EXPECT_EQ(ras, REGIONS_SORTED_BY_POS); } TEST(RegionAnnotationTest, Sort_By_Type) { std::vector ras = REGIONS; std::sort(ras.begin(), ras.end(), compare_region_annotation_by_type); EXPECT_EQ(ras, REGIONS_SORTED_BY_TYPE); } TEST(RegionAnnotationsTest, Constructor) { RegionAnnotations ras(HOLENUMBER, REGIONS, TYPES); EXPECT_EQ(ras.table_, REGIONS_SORTED_BY_TYPE); EXPECT_EQ(ras.HoleNumber(), HOLENUMBER); } TEST(RegionAnnotationsTest, RegionAnnotationsOfType) { RegionAnnotations ras(HOLENUMBER, REGIONS, TYPES); EXPECT_EQ(ras.Adapters(), EXPECTED_ADAPTERS); EXPECT_EQ(ras.HQRegions(), EXPECTED_HQREGIONS); EXPECT_EQ(ras.Inserts(), EXPECTED_INSERTS); EXPECT_EQ(ras.HQStart(), EXPECTED_HQSTART); EXPECT_EQ(ras.HQEnd(), EXPECTED_HQEND); } TEST(RegionAnnotationsTest, SubreadIntervals) { RegionAnnotations ras(HOLENUMBER, REGIONS, TYPES); vector ris = ras.SubreadIntervals(WHOLE_LENGTH, true, false); EXPECT_EQ(ris, EXPECTED_SUBREAD_INTERVALS_BYADAPTER_NOHQ); ris = ras.SubreadIntervals(WHOLE_LENGTH, true, true); EXPECT_EQ(ris, EXPECTED_SUBREAD_INTERVALS_BYADAPTER_HQ); ris = ras.SubreadIntervals(WHOLE_LENGTH, false, false); EXPECT_EQ(ris, EXPECTED_SUBREAD_INTERVALS_NOHQ); ris = ras.SubreadIntervals(WHOLE_LENGTH, false, true); EXPECT_EQ(ris, EXPECTED_SUBREAD_INTERVALS_HQ); } TEST(RegionAnnotationsTest, AdapterIntervals) { RegionAnnotations ras(HOLENUMBER, REGIONS, TYPES); EXPECT_EQ(ras.AdapterIntervals(), EXPECTED_ADAPTER_INTERVALS); } TEST(RegionAnnotationsTest, SubreadIntervals_2) { std::vector regions({ RegionAnnotation(HOLENUMBER, 0, 0, 112, -1)// adapter, no insert, no hq }); RegionAnnotations ras(HOLENUMBER, regions, TYPES); vector ris = ras.SubreadIntervals(WHOLE_LENGTH, true, false); EXPECT_EQ(ris.size(), 1); // (112, WHOLE_LENGTH, -1) EXPECT_EQ(ris[0].start, 112); EXPECT_EQ(ris[0].end, WHOLE_LENGTH); // no insert, no hq && require adapter, require hq ris = ras.SubreadIntervals(WHOLE_LENGTH, true, true); EXPECT_EQ(ris.size(), 0); // no require adapter, no require hq ris = ras.SubreadIntervals(WHOLE_LENGTH, false, false);// no insert EXPECT_EQ(ris.size(), 0); // no require adapter, require hq ris = ras.SubreadIntervals(WHOLE_LENGTH, false, true); // no hq EXPECT_EQ(ris.size(), 0); } TEST(RegionAnnotationsTest, SubreadIntervals_3) { std::vector regions({ RegionAnnotation(HOLENUMBER, 1, 0, 170, -1),// insert RegionAnnotation(HOLENUMBER, 2, 0, 0, 0) // hq length = 0 }); RegionAnnotations ras(HOLENUMBER, regions, TYPES); // require adapter, no require hq vector ris = ras.SubreadIntervals(WHOLE_LENGTH, true, false); EXPECT_EQ(ris.size(), 0); // require adapter, require hq ris = ras.SubreadIntervals(WHOLE_LENGTH, true, true); EXPECT_EQ(ris.size(), 0); // no require adapter, no require hq ris = ras.SubreadIntervals(WHOLE_LENGTH, false, false); EXPECT_EQ(ris.size(), 1); EXPECT_EQ(ris[0], ReadInterval(0, 170, -1)); // no require adapter, require hq ris = ras.SubreadIntervals(WHOLE_LENGTH, false, true); EXPECT_EQ(ris.size(), 0); } blasr_libcpp-master/unittest/pbdata/reads/RegionTypeMap_gtest.cpp000066400000000000000000000041641260756663100256710ustar00rootroot00000000000000/* * ================================================================== * * Filename: RegionTypeMap_gtest.cpp * * Description: Test pbdata/reads/RegionAnnotations.hpp * * Version: 1.0 * Created: 09/27/2015 03:54:55 PM * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ================================================================== */ #include "gtest/gtest.h" #define private public #include "reads/RegionTypeMap.hpp" using namespace std; // Adater - 0, Insert - 1, HQRegion - 2 const vector TYPES = {Adapter, Insert, HQRegion}; TEST(RegionTypeMapTest, ToString) { EXPECT_EQ(RegionTypeMap::ToString(Adapter), "Adapter"); EXPECT_EQ(RegionTypeMap::ToString(HQRegion), "HQRegion"); EXPECT_EQ(RegionTypeMap::ToString(Insert), "Insert"); } TEST(RegionTypeMapTest, ToRegionType) { EXPECT_EQ(RegionTypeMap::ToRegionType("Adapter"), Adapter); EXPECT_EQ(RegionTypeMap::ToRegionType("HQRegion"), HQRegion); EXPECT_EQ(RegionTypeMap::ToRegionType("Insert"), Insert); } TEST(RegionTypeMapTest, ToIndex) { // In most bas.h5 files, order of region types: std::vector typeStrs = {"Insert", "Adapter", "HQRegion"}; EXPECT_EQ(RegionTypeMap::ToIndex(Insert, typeStrs), 0); EXPECT_EQ(RegionTypeMap::ToIndex(Adapter, typeStrs), 1); EXPECT_EQ(RegionTypeMap::ToIndex(HQRegion, typeStrs), 2); EXPECT_EQ(RegionTypeMap::ToIndex("Insert", typeStrs), 0); EXPECT_EQ(RegionTypeMap::ToIndex("Adapter", typeStrs), 1); EXPECT_EQ(RegionTypeMap::ToIndex("HQRegion", typeStrs), 2); // Test given a different region type order. typeStrs = {"Insert", "HQRegion", "Adapter", "BarCode"}; EXPECT_EQ(RegionTypeMap::ToIndex(Insert, typeStrs), 0); EXPECT_EQ(RegionTypeMap::ToIndex(HQRegion, typeStrs), 1); EXPECT_EQ(RegionTypeMap::ToIndex(Adapter, typeStrs), 2); EXPECT_EQ(RegionTypeMap::ToIndex("Insert", typeStrs), 0); EXPECT_EQ(RegionTypeMap::ToIndex("HQRegion", typeStrs), 1); EXPECT_EQ(RegionTypeMap::ToIndex("Adapter", typeStrs), 2); } blasr_libcpp-master/unittest/pbdata/saf/000077500000000000000000000000001260756663100207025ustar00rootroot00000000000000blasr_libcpp-master/unittest/pbdata/saf/AlnGroup_gtest.cpp000066400000000000000000000022611260756663100243440ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: AlnGroup_gtest.cpp * * Description: Test pbdata/saf/AlnGroup.hpp * * Version: 1.0 * Created: 11/29/2012 04:00:29 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "saf/AlnGroup.hpp" using namespace std; //Test AlnGroup.FindPath(); TEST(AlnGroupTest, FindPath) { AlnGroup alnGroup; unsigned int ids[10] = {3, 4, 6, 1, 2, 8, 9, 12, 11, 7}; string paths[10] = {"path1", "path2", "path3", "path4", "path5", "path6", "path7", "path8", "path9", "path10"}; for(int i = 0; i < 10; i++) { alnGroup.id.push_back(ids[i]); alnGroup.path.push_back(paths[i]); } string val, val1; int ret = alnGroup.FindPath(3, val); EXPECT_EQ(val, paths[0]); EXPECT_EQ(ret, 1); ret = alnGroup.FindPath(100, val1); EXPECT_EQ(ret, 0); EXPECT_EQ(val1, ""); } blasr_libcpp-master/unittest/pbdata/saf/MovieInfo_gtest.cpp000066400000000000000000000022321260756663100245060ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: MovieInfo_gtest.cpp * * Description: Test pbdata/saf/MovieInfo.hpp * * Version: 1.0 * Created: 11/29/2012 04:01:21 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "Types.h" #include "saf/MovieInfo.hpp" // Test MovieInfo.FindMovie TEST(MovieInfoTest, FindMovie) { MovieInfo movieInfo; int ids[5] = {3, 5, 7, 4, 0} ; string names[5] = {"movieX", "movieY", "abc", "m000000000032102389170_s0", "m000000000032102389170_s"}; for (int i = 0; i < 5; i++) { movieInfo.name.push_back(names[i]); movieInfo.id.push_back(ids[i]); } string nameVal, nameVal2; int ret = movieInfo.FindMovie(4, nameVal); EXPECT_EQ(nameVal, names[3]); EXPECT_EQ(ret, 1); ret = movieInfo.FindMovie(-1, nameVal); EXPECT_EQ(nameVal2, ""); EXPECT_EQ(ret, 0); } blasr_libcpp-master/unittest/pbdata/saf/RefInfo_gtest.cpp000066400000000000000000000021231260756663100241420ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: RefInfo_gtest.cpp * * Description: Test pbdata/saf/RefInfo.hpp * * Version: 1.0 * Created: 11/29/2012 04:02:00 PM * Revision: 08/20/2014 * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "saf/RefInfo.hpp" using namespace std; TEST(RefInfoTEST, RefIdToIndex) { RefInfo ri; string names[] = {"ref1", "ref3 description", "ref4 chr1 1:100"}; ri.fullName.insert(ri.fullName.begin(), names, names+3); int id[] = {10, 7, 5}; //int lens [] = {400, 300, 100}; ri.id.insert(ri.id.begin(), id, id+3); int index; EXPECT_TRUE(ri.RefIdToIndex(10, index)); EXPECT_EQ(index, 0); EXPECT_TRUE(ri.RefIdToIndex(7, index)); EXPECT_EQ(index, 1); EXPECT_TRUE(ri.RefIdToIndex(5, index)); EXPECT_EQ(index, 2); } blasr_libcpp-master/unittest/pbdata/testdata.h000066400000000000000000000047131260756663100221200ustar00rootroot00000000000000/* * ============================================================================ * * Filename: testdata.h * * Description: List files used in unit tests. * * Version: 1.0 * Created: 08/22/2013 11:10:54 AM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ============================================================================ */ #include using namespace std; const string baxFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/ctest/data/" "testLoadPulses/Analysis_Results/" "m130302_011223_pd1_c000000092559900001500000112311511_s1_p0.1.bax.h5"); const string baxFile2 = ("/mnt/secondary-siv/testdata/BlasrTestData/ctest/data/" "testLoadPulses/Analysis_Results/" "m130302_011223_pd1_c000000092559900001500000112311511_s1_p0.2.bax.h5"); const string baxFile3 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/data/" "test_read_chemistry_triple/" "m150223_190837_42175_c100735112550000001823160806051530_s1_p0.1.bax.h5"); const string plsFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/ctest/data/" "testLoadPulses/Analysis_Results/" "m121215_065521_richard_c100425710150000001823055001121371_s1_p0.pls.h5"); const string ccsFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/data/ccs_P4-C2/" "m130328_211423_ethan_c100499512550000001823070408081371_s1_p0.ccs.h5"); const string fastaFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/" "data/read.fasta"); const string fastqFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/data/ccs_P4-C2/" "m130328_211423_ethan_c100499512550000001823070408081371_s1_p0.fastq"); const string titleTable1 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/" "data/titleTable1"); const string rgnFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/" "data/test_regionTable.rgn.h5"); const string scanDataFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/utest/" "data/scandata.h5"); const string bamFile1 = ("/mnt/secondary-siv/testdata/BlasrTestData/ctest/data/test_bam/" "m140905_042212_sidney_c100564852550000001823085912221377_s1_X0.subreads.bam"); const string bamFile2 = ("/mnt/secondary-siv/testdata/BlasrTestData/ctest/data/test_bam/" "m150325_224749_42269_c100795290850000001823159309091522_s1_p0.subreads.bam"); blasr_libcpp-master/unittest/pbdata/utils/000077500000000000000000000000001260756663100212715ustar00rootroot00000000000000blasr_libcpp-master/unittest/pbdata/utils/SMRTTitle_gtest.cpp000066400000000000000000000011741260756663100247750ustar00rootroot00000000000000#include "gtest/gtest.h" #include "utils/SMRTTitle.hpp" TEST(SMRTTitleTest, test1) { SMRTTitle title("1"); EXPECT_EQ(title.isSMRTTitle, false); EXPECT_EQ(title.ToString(), ""); } TEST(SMRTTitleTest, test2) { SMRTTitle title("1/2"); EXPECT_EQ(title.isSMRTTitle, false); EXPECT_EQ(title.ToString(), ""); } TEST(SMRTTitleTest, test3) { SMRTTitle title("m/1/3_4"); EXPECT_EQ(title.isSMRTTitle, true); EXPECT_EQ(title.ToString(), "m/1/3_4"); } TEST(SMRTTitleTest, test4) { SMRTTitle title("m/1/10_20/3_7"); EXPECT_EQ(title.isSMRTTitle, true); EXPECT_EQ(title.ToString(), "m/1/13_17"); } blasr_libcpp-master/unittest/pbdata/utils_gtest.cpp000066400000000000000000000020221260756663100231770ustar00rootroot00000000000000/* * ===================================================================================== * * Filename: utils_gtest.cpp * * Description: Test pbdata/utils.hpp * * Version: 1.0 * Created: 08/19/2014 05:22:58 PM * Revision: none * Compiler: gcc * * Author: Yuan Li (yli), yli@pacificbiosciences.com * Company: Pacific Biosciences * * ===================================================================================== */ #include "gtest/gtest.h" #include "utils.hpp" using namespace std; TEST(UTILS, CrucialOpen) { ifstream ifs; string filename = "/nonexistingdir/nonexistingfile"; //Expected behavour: exit with a message. EXPECT_EXIT( CrucialOpen(filename, ifs, std::ios::in), ::testing::ExitedWithCode(1), ""); } TEST(UTILS, CeilOfFraction) { EXPECT_EQ(CeilOfFraction(7, 100), 1); EXPECT_EQ(CeilOfFraction(100, 7), 15); EXPECT_EQ(CeilOfFraction(100, 99), 2); EXPECT_EQ(CeilOfFraction(100, 5), 20); }