// @(#)root/proof:$Id$
// Author: G. Ganis Mar 2008

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TQueryResultManager                                                  //
//                                                                      //
// This class manages the query-result area.                            //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <errno.h>
#ifdef WIN32
#   include <io.h>
#endif

#include "TQueryResultManager.h"

#include "TFile.h"
#include "THashList.h"
#include "TKey.h"
#include "TProofQueryResult.h"
#include "TObjString.h"
#include "TParameter.h"
#include "TProof.h"
#include "TProofServ.h"
#include "TRegexp.h"
#include "TSortedList.h"
#include "TSystem.h"
#include "TVirtualProofPlayer.h"

//______________________________________________________________________________
TQueryResultManager::TQueryResultManager(const char *qdir, const char *stag,
                                         const char *sdir,
                                         TProofLockPath *lck, FILE *logfile)
{
   // Constructor

   fQueryDir        = qdir;
   fSessionTag      = stag;
   fSessionDir      = sdir;
   fSeqNum          = 0;
   fDrawQueries     = 0;
   fKeptQueries     = 0;
   fQueries         = new TList;
   fPreviousQueries = 0;
   fLock            = lck;
   fLogFile         = (logfile) ? logfile : stdout;
}

//______________________________________________________________________________
TQueryResultManager::~TQueryResultManager()
{
   // Cleanup. Not really necessary since after this dtor there is no
   // live anyway.

   SafeDelete(fQueries);
   SafeDelete(fPreviousQueries);
}

//______________________________________________________________________________
void TQueryResultManager::AddLogFile(TProofQueryResult *pq)
{
   // Add part of log file concerning TQueryResult pq to its macro
   // container.

   if (!pq)
      return;

   // Make sure everything is written to file
   fflush(fLogFile);

   // Save current position
   off_t lnow = 0;
   if ((lnow = lseek(fileno(fLogFile), (off_t) 0, SEEK_CUR)) < 0) {
      Error("AddLogFile", "problems lseeking current position on log file (errno: %d)", errno);
      return;
   }

   // The range we are interested in
   Int_t start = pq->fStartLog;
   if (start > -1)
      lseek(fileno(fLogFile), (off_t) start, SEEK_SET);

   // Read the lines and add then to the internal container
   const Int_t kMAXBUF = 4096;
   char line[kMAXBUF];
   while (fgets(line, sizeof(line), fLogFile)) {
      if (line[strlen(line)-1] == '\n')
         line[strlen(line)-1] = 0;
      pq->AddLogLine((const char *)line);
   }

   // Restore initial position if partial send
   if (lnow >= 0) lseek(fileno(fLogFile), lnow, SEEK_SET);
}
//______________________________________________________________________________
Int_t TQueryResultManager::CleanupQueriesDir()
{
   // Remove all queries results referring to previous sessions

   Int_t nd = 0;

   // Cleanup previous stuff
   if (fPreviousQueries) {
      fPreviousQueries->Delete();
      SafeDelete(fPreviousQueries);
   }

   // Loop over session dirs
   TString queriesdir = fQueryDir;
   queriesdir = queriesdir.Remove(queriesdir.Index(kPROOF_QueryDir) +
                                  strlen(kPROOF_QueryDir));
   void *dirs = gSystem->OpenDirectory(queriesdir);
   if (dirs) {
      char *sess = 0;
      while ((sess = (char *) gSystem->GetDirEntry(dirs))) {

         // We are interested only in "session-..." subdirs
         if (strlen(sess) < 7 || strncmp(sess,"session",7))
            continue;

         // We do not want this session at this level
         if (strstr(sess, fSessionTag))
            continue;

         // Remove the directory
         TString qdir;
         qdir.Form("%s/%s", queriesdir.Data(), sess);
         PDB(kGlobal, 1)
            Info("RemoveQuery", "removing directory: %s", qdir.Data());
         gSystem->Exec(Form("%s %s", kRM, qdir.Data()));
         nd++;
      }
      // Close directory
      gSystem->FreeDirectory(dirs);
   } else {
      Warning("RemoveQuery", "cannot open queries directory: %s", queriesdir.Data());
   }

   // Done
   return nd;
}

//______________________________________________________________________________
void TQueryResultManager::ScanPreviousQueries(const char *dir)
{
   // Scan the queries directory for the results of previous queries.
   // The headers of the query results found are loaded in fPreviousQueries.
   // The full query result can be retrieved via TProof::Retrieve.

   // Cleanup previous stuff
   if (fPreviousQueries) {
      fPreviousQueries->Delete();
      SafeDelete(fPreviousQueries);
   }

   // Loop over session dirs
   void *dirs = gSystem->OpenDirectory(dir);
   char *sess = 0;
   while ((sess = (char *) gSystem->GetDirEntry(dirs))) {

      // We are interested only in "session-..." subdirs
      if (strlen(sess) < 7 || strncmp(sess,"session",7))
         continue;

      // We do not want this session at this level
      if (strstr(sess, fSessionTag))
         continue;

      // Loop over query dirs
      void *dirq = gSystem->OpenDirectory(Form("%s/%s", dir, sess));
      char *qry = 0;
      while ((qry = (char *) gSystem->GetDirEntry(dirq))) {

         // We are interested only in "n/" subdirs
         if (qry[0] == '.')
            continue;

         // File with the query result
         TString fn = Form("%s/%s/%s/query-result.root", dir, sess, qry);
         TFile *f = TFile::Open(fn);
         if (f) {
            f->ReadKeys();
            TIter nxk(f->GetListOfKeys());
            TKey *k =  0;
            TProofQueryResult *pqr = 0;
            while ((k = (TKey *)nxk())) {
               if (!strcmp(k->GetClassName(), "TProofQueryResult")) {
                  pqr = (TProofQueryResult *) f->Get(k->GetName());
                  if (pqr) {
                     TQueryResult *qr = pqr->CloneInfo();
                     if (qr) {
                        if (!fPreviousQueries)
                           fPreviousQueries = new TList;
                        if (qr->GetStatus() > TQueryResult::kRunning) {
                           fPreviousQueries->Add(qr);
                        } else {
                           // (For the time being) remove a non completed
                           // query if not owned by anybody
                           TProofLockPath *lck = 0;
                           if (LockSession(qr->GetTitle(), &lck) == 0) {
                              RemoveQuery(qr);
                              // Unlock and remove the lock file
                              SafeDelete(lck);
                           }
                        }
                     } else {
                        Warning("ScanPreviousQueries", "unable to clone TProofQueryResult '%s:%s'",
                                                       pqr->GetName(), pqr->GetTitle());
                     }
                  }
               }
            }
            f->Close();
            delete f;
         }
      }
      gSystem->FreeDirectory(dirq);
   }
   gSystem->FreeDirectory(dirs);
}

//______________________________________________________________________________
Int_t TQueryResultManager::ApplyMaxQueries(Int_t mxq)
{
   // Scan the queries directory and remove the oldest ones (and relative dirs,
   // if empty) in such a way only 'mxq' queries are kept.
   // Return 0 on success, -1 in case of problems

   // Nothing to do if mxq is -1.
   if (mxq < 0)
      return 0;

   // We will sort the entries using the creation time
   TSortedList *sl = new TSortedList;
   sl->SetOwner();
   // List with information
   THashList *hl = new THashList;
   hl->SetOwner();

   // Keep track of the queries per session dir
   TList *dl = new TList;
   dl->SetOwner();

   // Loop over session dirs
   TString dir = fQueryDir;
   Int_t idx = dir.Index("session-");
   if (idx != kNPOS)
      dir.Remove(idx);
   void *dirs = gSystem->OpenDirectory(dir);
   char *sess = 0;
   while ((sess = (char *) gSystem->GetDirEntry(dirs))) {

      // We are interested only in "session-..." subdirs
      if (strlen(sess) < 7 || strncmp(sess,"session",7))
         continue;

      // We do not want this session at this level
      if (strstr(sess, fSessionTag))
         continue;

      // Loop over query dirs
      Int_t nq = 0;
      void *dirq = gSystem->OpenDirectory(Form("%s/%s", dir.Data(), sess));
      char *qry = 0;
      while ((qry = (char *) gSystem->GetDirEntry(dirq))) {

         // We are interested only in "n/" subdirs
         if (qry[0] == '.')
            continue;

         // File with the query result
         TString fn = Form("%s/%s/%s/query-result.root", dir.Data(), sess, qry);

         FileStat_t st;
         if (gSystem->GetPathInfo(fn, st)) {
            PDB(kGlobal, 1)
               Info("ApplyMaxQueries","file '%s' cannot be stated: remove it", fn.Data());
            gSystem->Unlink(gSystem->DirName(fn));
            continue;
         }

         // Add the entry in the sorted list
         sl->Add(new TObjString(TString::Format("%ld", st.fMtime)));
         hl->Add(new TNamed((const char*)TString::Format("%ld",st.fMtime), fn.Data()));
         nq++;
      }
      gSystem->FreeDirectory(dirq);

      if (nq > 0)
         dl->Add(new TParameter<Int_t>(TString::Format("%s/%s", dir.Data(), sess), nq));
      else
         // Remove it
         gSystem->Exec(TString::Format("%s -fr %s/%s", kRM, dir.Data(), sess));
   }
   gSystem->FreeDirectory(dirs);

   // Now we apply the quota
   TIter nxq(sl, kIterBackward);
   Int_t nqkept = 0;
   TObjString *os = 0;
   while ((os = (TObjString *)nxq())) {
      if (nqkept < mxq) {
         // Keep this and go to the next
         nqkept++;
      } else {
         // Clean this
         TNamed *nm = dynamic_cast<TNamed *>(hl->FindObject(os->GetName()));
         if (nm) {
            gSystem->Unlink(nm->GetTitle());
            // Update dir counters
            TString tdir(gSystem->DirName(nm->GetTitle()));
            tdir = gSystem->DirName(tdir.Data());
            TParameter<Int_t> *nq = dynamic_cast<TParameter<Int_t>*>(dl->FindObject(tdir));
            if (nq) {
               Int_t val = nq->GetVal();
               nq->SetVal(--val);
               if (nq->GetVal() <= 0)
                  // Remove the directory if empty
                  gSystem->Exec(Form("%s -fr %s", kRM, tdir.Data()));
            }
         }
      }
   }

   // Cleanup
   delete sl;
   delete hl;
   delete dl;

   // Done
   return 0;
}

//______________________________________________________________________________
Int_t TQueryResultManager::LockSession(const char *sessiontag, TProofLockPath **lck)
{
   // Try locking query area of session tagged sessiontag.
   // The id of the locking file is returned in fid and must be
   // unlocked via UnlockQueryFile(fid).

   // We do not need to lock our own session
   if (strstr(sessiontag, fSessionTag))
      return 0;

   if (!lck) {
      Error("LockSession","locker space undefined");
      return -1;
   }
   *lck = 0;

   // Check the format
   TString stag = sessiontag;
   TRegexp re("session-.*-.*-.*-.*");
   Int_t i1 = stag.Index(re);
   if (i1 == kNPOS) {
      Error("LockSession","bad format: %s", sessiontag);
      return -1;
   }
   stag.ReplaceAll("session-","");

   // Drop query number, if any
   Int_t i2 = stag.Index(":q");
   if (i2 != kNPOS)
      stag.Remove(i2);

   // Make sure that parent process does not exist anylonger
   TString parlog = fSessionDir;
   parlog = parlog.Remove(parlog.Index("master-")+strlen("master-"));
   parlog += stag;
   if (!gSystem->AccessPathName(parlog)) {
      PDB(kGlobal, 1)
         Info("LockSession", "parent still running: do nothing");
      return -1;
   }

   // Lock the query lock file
   if (fLock) {
      TString qlock = fLock->GetName();
      qlock.ReplaceAll(fSessionTag, stag);

      if (!gSystem->AccessPathName(qlock)) {
         *lck = new TProofLockPath(qlock);
         if (((*lck)->Lock()) < 0) {
            Error("LockSession","problems locking query lock file");
            SafeDelete(*lck);
            return -1;
         }
      }
   }

   // We are done
   return 0;
}

//______________________________________________________________________________
Int_t TQueryResultManager::CleanupSession(const char *sessiontag)
{
   // Cleanup query dir qdir.

   if (!sessiontag) {
      Error("CleanupSession","session tag undefined");
      return -1;
   }

   // Query dir
   TString qdir = fQueryDir;
   qdir.ReplaceAll(Form("session-%s", fSessionTag.Data()), sessiontag);
   Int_t idx = qdir.Index(":q");
   if (idx != kNPOS)
      qdir.Remove(idx);
   if (gSystem->AccessPathName(qdir)) {
      Info("CleanupSession","query dir %s does not exist", qdir.Data());
      return -1;
   }

   TProofLockPath *lck = 0;
   if (LockSession(sessiontag, &lck) == 0) {

      // Cleanup now
      gSystem->Exec(Form("%s %s", kRM, qdir.Data()));

      // Unlock and remove the lock file
      if (lck) {
         gSystem->Unlink(lck->GetName());
         SafeDelete(lck);  // Unlocks, if necessary
      }

      // We are done
      return 0;
   }

   // Notify failure
   Info("CleanupSession", "could not lock session %s", sessiontag);
   return -1;
}

//______________________________________________________________________________
void TQueryResultManager::SaveQuery(TProofQueryResult *qr, const char *fout)
{
   // Save current status of query 'qr' to file name fout.
   // If fout == 0 (default) use the default name.

   if (!qr || qr->IsDraw())
      return;

   // Create dir for specific query
   TString querydir = Form("%s/%d",fQueryDir.Data(), qr->GetSeqNum());

   // Create dir, if needed
   if (gSystem->AccessPathName(querydir))
      gSystem->MakeDirectory(querydir);
   TString ofn = fout ? fout : Form("%s/query-result.root", querydir.Data());

   // Recreate file and save query in its current status
   TFile *f = TFile::Open(ofn, "RECREATE");
   if (f) {
      f->cd();
      if (!(qr->IsArchived()))
         qr->SetResultFile(ofn);
      qr->Write();
      f->Close();
      delete f;
   }
}

//______________________________________________________________________________
void TQueryResultManager::RemoveQuery(const char *queryref, TList *otherlist)
{
   // Remove everything about query queryref; if defined 'otherlist' will containe
   // the list of removed pointers (already deleted)

   PDB(kGlobal, 1)
      Info("RemoveQuery", "Enter");

   // Parse reference string
   Int_t qry = -1;
   TString qdir;
   TProofQueryResult *pqr = LocateQuery(queryref, qry, qdir);
   // Remove instance in memory
   if (pqr) {
      if (qry > -1) {
         fQueries->Remove(pqr);
         if (otherlist) otherlist->Add(pqr);
      } else
         fPreviousQueries->Remove(pqr);
      delete pqr;
      pqr = 0;
   }

   // Remove the directory
   PDB(kGlobal, 1)
      Info("RemoveQuery", "removing directory: %s", qdir.Data());
   gSystem->Exec(Form("%s %s", kRM, qdir.Data()));

   // Done
   return;
}

//______________________________________________________________________________
void TQueryResultManager::RemoveQuery(TQueryResult *qr, Bool_t soft)
{
   // Remove everything about query qr. If soft = TRUE leave a track
   // in memory with the relevant info

   PDB(kGlobal, 1)
      Info("RemoveQuery", "Enter");

   if (!qr)
      return;

   // Remove the directory
   TString qdir = fQueryDir;
   qdir = qdir.Remove(qdir.Index(kPROOF_QueryDir)+strlen(kPROOF_QueryDir));
   qdir = Form("%s/%s/%d", qdir.Data(), qr->GetTitle(), qr->GetSeqNum());
   PDB(kGlobal, 1)
      Info("RemoveQuery", "removing directory: %s", qdir.Data());
   gSystem->Exec(Form("%s %s", kRM, qdir.Data()));

   // Remove from memory lists
   if (soft) {
      TQueryResult *qrn = qr->CloneInfo();
      Int_t idx = fQueries->IndexOf(qr);
      if (idx > -1)
         fQueries->AddAt(qrn, idx);
      else
         SafeDelete(qrn);
   }
   fQueries->Remove(qr);
   SafeDelete(qr);

   // Done
   return;
}

//______________________________________________________________________________
TProofQueryResult *TQueryResultManager::LocateQuery(TString queryref, Int_t &qry, TString &qdir)
{
   // Locate query referenced by queryref. Return pointer to instance
   // in memory, if any, or 0. Fills qdir with the query specific directory
   // and qry with the query number for queries processed by this session.

   TProofQueryResult *pqr = 0;

   // Find out if the request is a for a local query or for a
   // previously processed one
   qry = -1;
   if (queryref.IsDigit()) {
      qry = queryref.Atoi();
   } else if (queryref.Contains(fSessionTag)) {
      Int_t i1 = queryref.Index(":q");
      if (i1 != kNPOS) {
         queryref.Remove(0,i1+2);
         qry = queryref.Atoi();
      }
   }

   // Build dir name for specific query
   qdir = "";
   if (qry > -1) {

      PDB(kGlobal, 1)
         Info("LocateQuery", "local query: %d", qry);

      // Remove query from memory list
      if (fQueries) {
         TIter nxq(fQueries);
         while ((pqr = (TProofQueryResult *) nxq())) {
            if (pqr->GetSeqNum() == qry) {
               // Dir for specific query
               qdir = Form("%s/%d", fQueryDir.Data(), qry);
               break;
            }
         }
      }

   } else {
      PDB(kGlobal, 1)
         Info("LocateQuery", "previously processed query: %s", queryref.Data());

      // Remove query from memory list
      if (fPreviousQueries) {
         TIter nxq(fPreviousQueries);
         while ((pqr = (TProofQueryResult *) nxq())) {
            if (queryref.Contains(pqr->GetTitle()) &&
                queryref.Contains(pqr->GetName()))
               break;
         }
      }

      queryref.ReplaceAll(":q","/");
      qdir = fQueryDir;
      qdir = qdir.Remove(qdir.Index(kPROOF_QueryDir)+strlen(kPROOF_QueryDir));
      qdir = Form("%s/%s", qdir.Data(), queryref.Data());
   }

   // We are done
   return pqr;
}

//______________________________________________________________________________
Bool_t TQueryResultManager::FinalizeQuery(TProofQueryResult *pq,
                                          TProof *proof, TVirtualProofPlayer *player)
{
   // Final steps after Process() to complete the TQueryResult instance.

   if (!pq || !proof || !player) {
      Warning("FinalizeQuery", "bad inputs: query = %p, proof = %p, player: %p ",
              pq ? pq : 0, proof ? proof : 0, player ? player : 0);
      return kFALSE;
   }

   Int_t qn = pq->GetSeqNum();
   Long64_t np = player->GetEventsProcessed();
   TVirtualProofPlayer::EExitStatus est = player->GetExitStatus();
   TList *out = player->GetOutputList();

   Float_t cpu = proof->GetCpuTime();
   Long64_t bytes = proof->GetBytesRead();

   TQueryResult::EQueryStatus st = TQueryResult::kAborted;

   PDB(kGlobal, 2) Info("FinalizeQuery","query #%d", qn);

   PDB(kGlobal, 1)
      Info("FinalizeQuery","%.1f %lld", cpu, bytes);

   // Some notification (useful in large logs)
   Bool_t save = kTRUE;
   switch (est) {
   case TVirtualProofPlayer::kAborted:
      PDB(kGlobal, 1)
         Info("FinalizeQuery", "query %d has been ABORTED <====", qn);
      out = 0;
      save = kFALSE;
      break;
   case TVirtualProofPlayer::kStopped:
      PDB(kGlobal, 1)
         Info("FinalizeQuery",
              "query %d has been STOPPED: %lld events processed", qn, np);
      st = TQueryResult::kStopped;
      break;
   case TVirtualProofPlayer::kFinished:
      PDB(kGlobal, 1)
         Info("FinalizeQuery",
              "query %d has been completed: %lld events processed", qn, np);
      st = TQueryResult::kCompleted;
      break;
   default:
      Warning("FinalizeQuery",
              "query %d: unknown exit status (%d)", qn, player->GetExitStatus());
   }

   // Fill some variables; in the CPU time we do not include anymore the time
   // used on the master for preparing and merging, because we want to measure
   // the efficiency or farction of time useful for work doen by workers
   PDB(kGlobal, 1)
      Info("FinalizeQuery", "cpu: %.4f, saved: %.4f, master: %.4f",
                            cpu, pq->GetUsedCPU() ,GetCpuTime());
//   pq->SetProcessInfo(np, cpu - pq->GetUsedCPU() + GetCpuTime());
   // We take the difference because this is the total CPU time of the session
   pq->SetProcessInfo(np, cpu - pq->GetUsedCPU());
   pq->RecordEnd(st, out);

   // Save the logs into the query result instance
   AddLogFile(pq);

   // Done
   return save;
}

//______________________________________________________________________________
void TQueryResultManager::SaveQuery(TProofQueryResult *pq, Int_t mxq)
{
   // Save current query honouring the max number of queries allowed

   // We may need some cleanup
   if (mxq > -1) {
      if (fQueries && fKeptQueries >= mxq) {
         // Find oldest completed and archived query
         TQueryResult *fcom = 0;
         TQueryResult *farc = 0;
         TIter nxq(fQueries);
         TQueryResult *qr = 0;
         while (fKeptQueries >= mxq) {
            while ((qr = (TQueryResult *) nxq())) {
               if (qr->IsArchived()) {
                  if (qr->GetOutputList() && !farc)
                     farc = qr;
               } else if (qr->GetStatus() > TQueryResult::kRunning && !fcom) {
                  fcom = qr;
               }
               if (farc && fcom)
                  break;
            }
            if (!farc && !fcom) {
               break;
            } else if (farc) {
               RemoveQuery(farc, kTRUE);
               fKeptQueries--;
               farc = 0;
            } else if (fcom) {
               RemoveQuery(fcom);
               fKeptQueries--;
               fcom = 0;
            }
         }
      }
      if (fKeptQueries < mxq) {
         SaveQuery(pq);
         fKeptQueries++;
      } else {
         TString emsg;
         emsg.Form("Too many saved queries (%d): cannot save %s:%s",
                   fKeptQueries, pq->GetTitle(), pq->GetName());
         if (gProofServ) {
            gProofServ->SendAsynMessage(emsg.Data());
         } else {
            Warning("SaveQuery", "%s", emsg.Data());
         }
      }
   } else {
      SaveQuery(pq);
      fKeptQueries++;
   }
}
 TQueryResultManager.cxx:1
 TQueryResultManager.cxx:2
 TQueryResultManager.cxx:3
 TQueryResultManager.cxx:4
 TQueryResultManager.cxx:5
 TQueryResultManager.cxx:6
 TQueryResultManager.cxx:7
 TQueryResultManager.cxx:8
 TQueryResultManager.cxx:9
 TQueryResultManager.cxx:10
 TQueryResultManager.cxx:11
 TQueryResultManager.cxx:12
 TQueryResultManager.cxx:13
 TQueryResultManager.cxx:14
 TQueryResultManager.cxx:15
 TQueryResultManager.cxx:16
 TQueryResultManager.cxx:17
 TQueryResultManager.cxx:18
 TQueryResultManager.cxx:19
 TQueryResultManager.cxx:20
 TQueryResultManager.cxx:21
 TQueryResultManager.cxx:22
 TQueryResultManager.cxx:23
 TQueryResultManager.cxx:24
 TQueryResultManager.cxx:25
 TQueryResultManager.cxx:26
 TQueryResultManager.cxx:27
 TQueryResultManager.cxx:28
 TQueryResultManager.cxx:29
 TQueryResultManager.cxx:30
 TQueryResultManager.cxx:31
 TQueryResultManager.cxx:32
 TQueryResultManager.cxx:33
 TQueryResultManager.cxx:34
 TQueryResultManager.cxx:35
 TQueryResultManager.cxx:36
 TQueryResultManager.cxx:37
 TQueryResultManager.cxx:38
 TQueryResultManager.cxx:39
 TQueryResultManager.cxx:40
 TQueryResultManager.cxx:41
 TQueryResultManager.cxx:42
 TQueryResultManager.cxx:43
 TQueryResultManager.cxx:44
 TQueryResultManager.cxx:45
 TQueryResultManager.cxx:46
 TQueryResultManager.cxx:47
 TQueryResultManager.cxx:48
 TQueryResultManager.cxx:49
 TQueryResultManager.cxx:50
 TQueryResultManager.cxx:51
 TQueryResultManager.cxx:52
 TQueryResultManager.cxx:53
 TQueryResultManager.cxx:54
 TQueryResultManager.cxx:55
 TQueryResultManager.cxx:56
 TQueryResultManager.cxx:57
 TQueryResultManager.cxx:58
 TQueryResultManager.cxx:59
 TQueryResultManager.cxx:60
 TQueryResultManager.cxx:61
 TQueryResultManager.cxx:62
 TQueryResultManager.cxx:63
 TQueryResultManager.cxx:64
 TQueryResultManager.cxx:65
 TQueryResultManager.cxx:66
 TQueryResultManager.cxx:67
 TQueryResultManager.cxx:68
 TQueryResultManager.cxx:69
 TQueryResultManager.cxx:70
 TQueryResultManager.cxx:71
 TQueryResultManager.cxx:72
 TQueryResultManager.cxx:73
 TQueryResultManager.cxx:74
 TQueryResultManager.cxx:75
 TQueryResultManager.cxx:76
 TQueryResultManager.cxx:77
 TQueryResultManager.cxx:78
 TQueryResultManager.cxx:79
 TQueryResultManager.cxx:80
 TQueryResultManager.cxx:81
 TQueryResultManager.cxx:82
 TQueryResultManager.cxx:83
 TQueryResultManager.cxx:84
 TQueryResultManager.cxx:85
 TQueryResultManager.cxx:86
 TQueryResultManager.cxx:87
 TQueryResultManager.cxx:88
 TQueryResultManager.cxx:89
 TQueryResultManager.cxx:90
 TQueryResultManager.cxx:91
 TQueryResultManager.cxx:92
 TQueryResultManager.cxx:93
 TQueryResultManager.cxx:94
 TQueryResultManager.cxx:95
 TQueryResultManager.cxx:96
 TQueryResultManager.cxx:97
 TQueryResultManager.cxx:98
 TQueryResultManager.cxx:99
 TQueryResultManager.cxx:100
 TQueryResultManager.cxx:101
 TQueryResultManager.cxx:102
 TQueryResultManager.cxx:103
 TQueryResultManager.cxx:104
 TQueryResultManager.cxx:105
 TQueryResultManager.cxx:106
 TQueryResultManager.cxx:107
 TQueryResultManager.cxx:108
 TQueryResultManager.cxx:109
 TQueryResultManager.cxx:110
 TQueryResultManager.cxx:111
 TQueryResultManager.cxx:112
 TQueryResultManager.cxx:113
 TQueryResultManager.cxx:114
 TQueryResultManager.cxx:115
 TQueryResultManager.cxx:116
 TQueryResultManager.cxx:117
 TQueryResultManager.cxx:118
 TQueryResultManager.cxx:119
 TQueryResultManager.cxx:120
 TQueryResultManager.cxx:121
 TQueryResultManager.cxx:122
 TQueryResultManager.cxx:123
 TQueryResultManager.cxx:124
 TQueryResultManager.cxx:125
 TQueryResultManager.cxx:126
 TQueryResultManager.cxx:127
 TQueryResultManager.cxx:128
 TQueryResultManager.cxx:129
 TQueryResultManager.cxx:130
 TQueryResultManager.cxx:131
 TQueryResultManager.cxx:132
 TQueryResultManager.cxx:133
 TQueryResultManager.cxx:134
 TQueryResultManager.cxx:135
 TQueryResultManager.cxx:136
 TQueryResultManager.cxx:137
 TQueryResultManager.cxx:138
 TQueryResultManager.cxx:139
 TQueryResultManager.cxx:140
 TQueryResultManager.cxx:141
 TQueryResultManager.cxx:142
 TQueryResultManager.cxx:143
 TQueryResultManager.cxx:144
 TQueryResultManager.cxx:145
 TQueryResultManager.cxx:146
 TQueryResultManager.cxx:147
 TQueryResultManager.cxx:148
 TQueryResultManager.cxx:149
 TQueryResultManager.cxx:150
 TQueryResultManager.cxx:151
 TQueryResultManager.cxx:152
 TQueryResultManager.cxx:153
 TQueryResultManager.cxx:154
 TQueryResultManager.cxx:155
 TQueryResultManager.cxx:156
 TQueryResultManager.cxx:157
 TQueryResultManager.cxx:158
 TQueryResultManager.cxx:159
 TQueryResultManager.cxx:160
 TQueryResultManager.cxx:161
 TQueryResultManager.cxx:162
 TQueryResultManager.cxx:163
 TQueryResultManager.cxx:164
 TQueryResultManager.cxx:165
 TQueryResultManager.cxx:166
 TQueryResultManager.cxx:167
 TQueryResultManager.cxx:168
 TQueryResultManager.cxx:169
 TQueryResultManager.cxx:170
 TQueryResultManager.cxx:171
 TQueryResultManager.cxx:172
 TQueryResultManager.cxx:173
 TQueryResultManager.cxx:174
 TQueryResultManager.cxx:175
 TQueryResultManager.cxx:176
 TQueryResultManager.cxx:177
 TQueryResultManager.cxx:178
 TQueryResultManager.cxx:179
 TQueryResultManager.cxx:180
 TQueryResultManager.cxx:181
 TQueryResultManager.cxx:182
 TQueryResultManager.cxx:183
 TQueryResultManager.cxx:184
 TQueryResultManager.cxx:185
 TQueryResultManager.cxx:186
 TQueryResultManager.cxx:187
 TQueryResultManager.cxx:188
 TQueryResultManager.cxx:189
 TQueryResultManager.cxx:190
 TQueryResultManager.cxx:191
 TQueryResultManager.cxx:192
 TQueryResultManager.cxx:193
 TQueryResultManager.cxx:194
 TQueryResultManager.cxx:195
 TQueryResultManager.cxx:196
 TQueryResultManager.cxx:197
 TQueryResultManager.cxx:198
 TQueryResultManager.cxx:199
 TQueryResultManager.cxx:200
 TQueryResultManager.cxx:201
 TQueryResultManager.cxx:202
 TQueryResultManager.cxx:203
 TQueryResultManager.cxx:204
 TQueryResultManager.cxx:205
 TQueryResultManager.cxx:206
 TQueryResultManager.cxx:207
 TQueryResultManager.cxx:208
 TQueryResultManager.cxx:209
 TQueryResultManager.cxx:210
 TQueryResultManager.cxx:211
 TQueryResultManager.cxx:212
 TQueryResultManager.cxx:213
 TQueryResultManager.cxx:214
 TQueryResultManager.cxx:215
 TQueryResultManager.cxx:216
 TQueryResultManager.cxx:217
 TQueryResultManager.cxx:218
 TQueryResultManager.cxx:219
 TQueryResultManager.cxx:220
 TQueryResultManager.cxx:221
 TQueryResultManager.cxx:222
 TQueryResultManager.cxx:223
 TQueryResultManager.cxx:224
 TQueryResultManager.cxx:225
 TQueryResultManager.cxx:226
 TQueryResultManager.cxx:227
 TQueryResultManager.cxx:228
 TQueryResultManager.cxx:229
 TQueryResultManager.cxx:230
 TQueryResultManager.cxx:231
 TQueryResultManager.cxx:232
 TQueryResultManager.cxx:233
 TQueryResultManager.cxx:234
 TQueryResultManager.cxx:235
 TQueryResultManager.cxx:236
 TQueryResultManager.cxx:237
 TQueryResultManager.cxx:238
 TQueryResultManager.cxx:239
 TQueryResultManager.cxx:240
 TQueryResultManager.cxx:241
 TQueryResultManager.cxx:242
 TQueryResultManager.cxx:243
 TQueryResultManager.cxx:244
 TQueryResultManager.cxx:245
 TQueryResultManager.cxx:246
 TQueryResultManager.cxx:247
 TQueryResultManager.cxx:248
 TQueryResultManager.cxx:249
 TQueryResultManager.cxx:250
 TQueryResultManager.cxx:251
 TQueryResultManager.cxx:252
 TQueryResultManager.cxx:253
 TQueryResultManager.cxx:254
 TQueryResultManager.cxx:255
 TQueryResultManager.cxx:256
 TQueryResultManager.cxx:257
 TQueryResultManager.cxx:258
 TQueryResultManager.cxx:259
 TQueryResultManager.cxx:260
 TQueryResultManager.cxx:261
 TQueryResultManager.cxx:262
 TQueryResultManager.cxx:263
 TQueryResultManager.cxx:264
 TQueryResultManager.cxx:265
 TQueryResultManager.cxx:266
 TQueryResultManager.cxx:267
 TQueryResultManager.cxx:268
 TQueryResultManager.cxx:269
 TQueryResultManager.cxx:270
 TQueryResultManager.cxx:271
 TQueryResultManager.cxx:272
 TQueryResultManager.cxx:273
 TQueryResultManager.cxx:274
 TQueryResultManager.cxx:275
 TQueryResultManager.cxx:276
 TQueryResultManager.cxx:277
 TQueryResultManager.cxx:278
 TQueryResultManager.cxx:279
 TQueryResultManager.cxx:280
 TQueryResultManager.cxx:281
 TQueryResultManager.cxx:282
 TQueryResultManager.cxx:283
 TQueryResultManager.cxx:284
 TQueryResultManager.cxx:285
 TQueryResultManager.cxx:286
 TQueryResultManager.cxx:287
 TQueryResultManager.cxx:288
 TQueryResultManager.cxx:289
 TQueryResultManager.cxx:290
 TQueryResultManager.cxx:291
 TQueryResultManager.cxx:292
 TQueryResultManager.cxx:293
 TQueryResultManager.cxx:294
 TQueryResultManager.cxx:295
 TQueryResultManager.cxx:296
 TQueryResultManager.cxx:297
 TQueryResultManager.cxx:298
 TQueryResultManager.cxx:299
 TQueryResultManager.cxx:300
 TQueryResultManager.cxx:301
 TQueryResultManager.cxx:302
 TQueryResultManager.cxx:303
 TQueryResultManager.cxx:304
 TQueryResultManager.cxx:305
 TQueryResultManager.cxx:306
 TQueryResultManager.cxx:307
 TQueryResultManager.cxx:308
 TQueryResultManager.cxx:309
 TQueryResultManager.cxx:310
 TQueryResultManager.cxx:311
 TQueryResultManager.cxx:312
 TQueryResultManager.cxx:313
 TQueryResultManager.cxx:314
 TQueryResultManager.cxx:315
 TQueryResultManager.cxx:316
 TQueryResultManager.cxx:317
 TQueryResultManager.cxx:318
 TQueryResultManager.cxx:319
 TQueryResultManager.cxx:320
 TQueryResultManager.cxx:321
 TQueryResultManager.cxx:322
 TQueryResultManager.cxx:323
 TQueryResultManager.cxx:324
 TQueryResultManager.cxx:325
 TQueryResultManager.cxx:326
 TQueryResultManager.cxx:327
 TQueryResultManager.cxx:328
 TQueryResultManager.cxx:329
 TQueryResultManager.cxx:330
 TQueryResultManager.cxx:331
 TQueryResultManager.cxx:332
 TQueryResultManager.cxx:333
 TQueryResultManager.cxx:334
 TQueryResultManager.cxx:335
 TQueryResultManager.cxx:336
 TQueryResultManager.cxx:337
 TQueryResultManager.cxx:338
 TQueryResultManager.cxx:339
 TQueryResultManager.cxx:340
 TQueryResultManager.cxx:341
 TQueryResultManager.cxx:342
 TQueryResultManager.cxx:343
 TQueryResultManager.cxx:344
 TQueryResultManager.cxx:345
 TQueryResultManager.cxx:346
 TQueryResultManager.cxx:347
 TQueryResultManager.cxx:348
 TQueryResultManager.cxx:349
 TQueryResultManager.cxx:350
 TQueryResultManager.cxx:351
 TQueryResultManager.cxx:352
 TQueryResultManager.cxx:353
 TQueryResultManager.cxx:354
 TQueryResultManager.cxx:355
 TQueryResultManager.cxx:356
 TQueryResultManager.cxx:357
 TQueryResultManager.cxx:358
 TQueryResultManager.cxx:359
 TQueryResultManager.cxx:360
 TQueryResultManager.cxx:361
 TQueryResultManager.cxx:362
 TQueryResultManager.cxx:363
 TQueryResultManager.cxx:364
 TQueryResultManager.cxx:365
 TQueryResultManager.cxx:366
 TQueryResultManager.cxx:367
 TQueryResultManager.cxx:368
 TQueryResultManager.cxx:369
 TQueryResultManager.cxx:370
 TQueryResultManager.cxx:371
 TQueryResultManager.cxx:372
 TQueryResultManager.cxx:373
 TQueryResultManager.cxx:374
 TQueryResultManager.cxx:375
 TQueryResultManager.cxx:376
 TQueryResultManager.cxx:377
 TQueryResultManager.cxx:378
 TQueryResultManager.cxx:379
 TQueryResultManager.cxx:380
 TQueryResultManager.cxx:381
 TQueryResultManager.cxx:382
 TQueryResultManager.cxx:383
 TQueryResultManager.cxx:384
 TQueryResultManager.cxx:385
 TQueryResultManager.cxx:386
 TQueryResultManager.cxx:387
 TQueryResultManager.cxx:388
 TQueryResultManager.cxx:389
 TQueryResultManager.cxx:390
 TQueryResultManager.cxx:391
 TQueryResultManager.cxx:392
 TQueryResultManager.cxx:393
 TQueryResultManager.cxx:394
 TQueryResultManager.cxx:395
 TQueryResultManager.cxx:396
 TQueryResultManager.cxx:397
 TQueryResultManager.cxx:398
 TQueryResultManager.cxx:399
 TQueryResultManager.cxx:400
 TQueryResultManager.cxx:401
 TQueryResultManager.cxx:402
 TQueryResultManager.cxx:403
 TQueryResultManager.cxx:404
 TQueryResultManager.cxx:405
 TQueryResultManager.cxx:406
 TQueryResultManager.cxx:407
 TQueryResultManager.cxx:408
 TQueryResultManager.cxx:409
 TQueryResultManager.cxx:410
 TQueryResultManager.cxx:411
 TQueryResultManager.cxx:412
 TQueryResultManager.cxx:413
 TQueryResultManager.cxx:414
 TQueryResultManager.cxx:415
 TQueryResultManager.cxx:416
 TQueryResultManager.cxx:417
 TQueryResultManager.cxx:418
 TQueryResultManager.cxx:419
 TQueryResultManager.cxx:420
 TQueryResultManager.cxx:421
 TQueryResultManager.cxx:422
 TQueryResultManager.cxx:423
 TQueryResultManager.cxx:424
 TQueryResultManager.cxx:425
 TQueryResultManager.cxx:426
 TQueryResultManager.cxx:427
 TQueryResultManager.cxx:428
 TQueryResultManager.cxx:429
 TQueryResultManager.cxx:430
 TQueryResultManager.cxx:431
 TQueryResultManager.cxx:432
 TQueryResultManager.cxx:433
 TQueryResultManager.cxx:434
 TQueryResultManager.cxx:435
 TQueryResultManager.cxx:436
 TQueryResultManager.cxx:437
 TQueryResultManager.cxx:438
 TQueryResultManager.cxx:439
 TQueryResultManager.cxx:440
 TQueryResultManager.cxx:441
 TQueryResultManager.cxx:442
 TQueryResultManager.cxx:443
 TQueryResultManager.cxx:444
 TQueryResultManager.cxx:445
 TQueryResultManager.cxx:446
 TQueryResultManager.cxx:447
 TQueryResultManager.cxx:448
 TQueryResultManager.cxx:449
 TQueryResultManager.cxx:450
 TQueryResultManager.cxx:451
 TQueryResultManager.cxx:452
 TQueryResultManager.cxx:453
 TQueryResultManager.cxx:454
 TQueryResultManager.cxx:455
 TQueryResultManager.cxx:456
 TQueryResultManager.cxx:457
 TQueryResultManager.cxx:458
 TQueryResultManager.cxx:459
 TQueryResultManager.cxx:460
 TQueryResultManager.cxx:461
 TQueryResultManager.cxx:462
 TQueryResultManager.cxx:463
 TQueryResultManager.cxx:464
 TQueryResultManager.cxx:465
 TQueryResultManager.cxx:466
 TQueryResultManager.cxx:467
 TQueryResultManager.cxx:468
 TQueryResultManager.cxx:469
 TQueryResultManager.cxx:470
 TQueryResultManager.cxx:471
 TQueryResultManager.cxx:472
 TQueryResultManager.cxx:473
 TQueryResultManager.cxx:474
 TQueryResultManager.cxx:475
 TQueryResultManager.cxx:476
 TQueryResultManager.cxx:477
 TQueryResultManager.cxx:478
 TQueryResultManager.cxx:479
 TQueryResultManager.cxx:480
 TQueryResultManager.cxx:481
 TQueryResultManager.cxx:482
 TQueryResultManager.cxx:483
 TQueryResultManager.cxx:484
 TQueryResultManager.cxx:485
 TQueryResultManager.cxx:486
 TQueryResultManager.cxx:487
 TQueryResultManager.cxx:488
 TQueryResultManager.cxx:489
 TQueryResultManager.cxx:490
 TQueryResultManager.cxx:491
 TQueryResultManager.cxx:492
 TQueryResultManager.cxx:493
 TQueryResultManager.cxx:494
 TQueryResultManager.cxx:495
 TQueryResultManager.cxx:496
 TQueryResultManager.cxx:497
 TQueryResultManager.cxx:498
 TQueryResultManager.cxx:499
 TQueryResultManager.cxx:500
 TQueryResultManager.cxx:501
 TQueryResultManager.cxx:502
 TQueryResultManager.cxx:503
 TQueryResultManager.cxx:504
 TQueryResultManager.cxx:505
 TQueryResultManager.cxx:506
 TQueryResultManager.cxx:507
 TQueryResultManager.cxx:508
 TQueryResultManager.cxx:509
 TQueryResultManager.cxx:510
 TQueryResultManager.cxx:511
 TQueryResultManager.cxx:512
 TQueryResultManager.cxx:513
 TQueryResultManager.cxx:514
 TQueryResultManager.cxx:515
 TQueryResultManager.cxx:516
 TQueryResultManager.cxx:517
 TQueryResultManager.cxx:518
 TQueryResultManager.cxx:519
 TQueryResultManager.cxx:520
 TQueryResultManager.cxx:521
 TQueryResultManager.cxx:522
 TQueryResultManager.cxx:523
 TQueryResultManager.cxx:524
 TQueryResultManager.cxx:525
 TQueryResultManager.cxx:526
 TQueryResultManager.cxx:527
 TQueryResultManager.cxx:528
 TQueryResultManager.cxx:529
 TQueryResultManager.cxx:530
 TQueryResultManager.cxx:531
 TQueryResultManager.cxx:532
 TQueryResultManager.cxx:533
 TQueryResultManager.cxx:534
 TQueryResultManager.cxx:535
 TQueryResultManager.cxx:536
 TQueryResultManager.cxx:537
 TQueryResultManager.cxx:538
 TQueryResultManager.cxx:539
 TQueryResultManager.cxx:540
 TQueryResultManager.cxx:541
 TQueryResultManager.cxx:542
 TQueryResultManager.cxx:543
 TQueryResultManager.cxx:544
 TQueryResultManager.cxx:545
 TQueryResultManager.cxx:546
 TQueryResultManager.cxx:547
 TQueryResultManager.cxx:548
 TQueryResultManager.cxx:549
 TQueryResultManager.cxx:550
 TQueryResultManager.cxx:551
 TQueryResultManager.cxx:552
 TQueryResultManager.cxx:553
 TQueryResultManager.cxx:554
 TQueryResultManager.cxx:555
 TQueryResultManager.cxx:556
 TQueryResultManager.cxx:557
 TQueryResultManager.cxx:558
 TQueryResultManager.cxx:559
 TQueryResultManager.cxx:560
 TQueryResultManager.cxx:561
 TQueryResultManager.cxx:562
 TQueryResultManager.cxx:563
 TQueryResultManager.cxx:564
 TQueryResultManager.cxx:565
 TQueryResultManager.cxx:566
 TQueryResultManager.cxx:567
 TQueryResultManager.cxx:568
 TQueryResultManager.cxx:569
 TQueryResultManager.cxx:570
 TQueryResultManager.cxx:571
 TQueryResultManager.cxx:572
 TQueryResultManager.cxx:573
 TQueryResultManager.cxx:574
 TQueryResultManager.cxx:575
 TQueryResultManager.cxx:576
 TQueryResultManager.cxx:577
 TQueryResultManager.cxx:578
 TQueryResultManager.cxx:579
 TQueryResultManager.cxx:580
 TQueryResultManager.cxx:581
 TQueryResultManager.cxx:582
 TQueryResultManager.cxx:583
 TQueryResultManager.cxx:584
 TQueryResultManager.cxx:585
 TQueryResultManager.cxx:586
 TQueryResultManager.cxx:587
 TQueryResultManager.cxx:588
 TQueryResultManager.cxx:589
 TQueryResultManager.cxx:590
 TQueryResultManager.cxx:591
 TQueryResultManager.cxx:592
 TQueryResultManager.cxx:593
 TQueryResultManager.cxx:594
 TQueryResultManager.cxx:595
 TQueryResultManager.cxx:596
 TQueryResultManager.cxx:597
 TQueryResultManager.cxx:598
 TQueryResultManager.cxx:599
 TQueryResultManager.cxx:600
 TQueryResultManager.cxx:601
 TQueryResultManager.cxx:602
 TQueryResultManager.cxx:603
 TQueryResultManager.cxx:604
 TQueryResultManager.cxx:605
 TQueryResultManager.cxx:606
 TQueryResultManager.cxx:607
 TQueryResultManager.cxx:608
 TQueryResultManager.cxx:609
 TQueryResultManager.cxx:610
 TQueryResultManager.cxx:611
 TQueryResultManager.cxx:612
 TQueryResultManager.cxx:613
 TQueryResultManager.cxx:614
 TQueryResultManager.cxx:615
 TQueryResultManager.cxx:616
 TQueryResultManager.cxx:617
 TQueryResultManager.cxx:618
 TQueryResultManager.cxx:619
 TQueryResultManager.cxx:620
 TQueryResultManager.cxx:621
 TQueryResultManager.cxx:622
 TQueryResultManager.cxx:623
 TQueryResultManager.cxx:624
 TQueryResultManager.cxx:625
 TQueryResultManager.cxx:626
 TQueryResultManager.cxx:627
 TQueryResultManager.cxx:628
 TQueryResultManager.cxx:629
 TQueryResultManager.cxx:630
 TQueryResultManager.cxx:631
 TQueryResultManager.cxx:632
 TQueryResultManager.cxx:633
 TQueryResultManager.cxx:634
 TQueryResultManager.cxx:635
 TQueryResultManager.cxx:636
 TQueryResultManager.cxx:637
 TQueryResultManager.cxx:638
 TQueryResultManager.cxx:639
 TQueryResultManager.cxx:640
 TQueryResultManager.cxx:641
 TQueryResultManager.cxx:642
 TQueryResultManager.cxx:643
 TQueryResultManager.cxx:644
 TQueryResultManager.cxx:645
 TQueryResultManager.cxx:646
 TQueryResultManager.cxx:647
 TQueryResultManager.cxx:648
 TQueryResultManager.cxx:649
 TQueryResultManager.cxx:650
 TQueryResultManager.cxx:651
 TQueryResultManager.cxx:652
 TQueryResultManager.cxx:653
 TQueryResultManager.cxx:654
 TQueryResultManager.cxx:655
 TQueryResultManager.cxx:656
 TQueryResultManager.cxx:657
 TQueryResultManager.cxx:658
 TQueryResultManager.cxx:659
 TQueryResultManager.cxx:660
 TQueryResultManager.cxx:661
 TQueryResultManager.cxx:662
 TQueryResultManager.cxx:663
 TQueryResultManager.cxx:664
 TQueryResultManager.cxx:665
 TQueryResultManager.cxx:666
 TQueryResultManager.cxx:667
 TQueryResultManager.cxx:668
 TQueryResultManager.cxx:669
 TQueryResultManager.cxx:670
 TQueryResultManager.cxx:671
 TQueryResultManager.cxx:672
 TQueryResultManager.cxx:673
 TQueryResultManager.cxx:674
 TQueryResultManager.cxx:675
 TQueryResultManager.cxx:676
 TQueryResultManager.cxx:677
 TQueryResultManager.cxx:678
 TQueryResultManager.cxx:679
 TQueryResultManager.cxx:680
 TQueryResultManager.cxx:681
 TQueryResultManager.cxx:682
 TQueryResultManager.cxx:683
 TQueryResultManager.cxx:684
 TQueryResultManager.cxx:685
 TQueryResultManager.cxx:686
 TQueryResultManager.cxx:687
 TQueryResultManager.cxx:688
 TQueryResultManager.cxx:689
 TQueryResultManager.cxx:690
 TQueryResultManager.cxx:691
 TQueryResultManager.cxx:692
 TQueryResultManager.cxx:693
 TQueryResultManager.cxx:694
 TQueryResultManager.cxx:695
 TQueryResultManager.cxx:696
 TQueryResultManager.cxx:697
 TQueryResultManager.cxx:698
 TQueryResultManager.cxx:699
 TQueryResultManager.cxx:700
 TQueryResultManager.cxx:701
 TQueryResultManager.cxx:702
 TQueryResultManager.cxx:703
 TQueryResultManager.cxx:704
 TQueryResultManager.cxx:705
 TQueryResultManager.cxx:706
 TQueryResultManager.cxx:707
 TQueryResultManager.cxx:708
 TQueryResultManager.cxx:709
 TQueryResultManager.cxx:710
 TQueryResultManager.cxx:711
 TQueryResultManager.cxx:712
 TQueryResultManager.cxx:713
 TQueryResultManager.cxx:714
 TQueryResultManager.cxx:715
 TQueryResultManager.cxx:716
 TQueryResultManager.cxx:717
 TQueryResultManager.cxx:718
 TQueryResultManager.cxx:719
 TQueryResultManager.cxx:720
 TQueryResultManager.cxx:721
 TQueryResultManager.cxx:722
 TQueryResultManager.cxx:723
 TQueryResultManager.cxx:724
 TQueryResultManager.cxx:725
 TQueryResultManager.cxx:726
 TQueryResultManager.cxx:727
 TQueryResultManager.cxx:728
 TQueryResultManager.cxx:729
 TQueryResultManager.cxx:730
 TQueryResultManager.cxx:731
 TQueryResultManager.cxx:732
 TQueryResultManager.cxx:733
 TQueryResultManager.cxx:734
 TQueryResultManager.cxx:735