[Cmake-commits] CMake branch, next, updated. v2.8.8-2767-g2550669

Bill Hoffman bill.hoffman at kitware.com
Tue May 1 13:36:35 EDT 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  255066993ead9f068a7b2b679819350e1e64d250 (commit)
       via  319eeb0247f51bb2d380261ce7d63c7ce5020ed0 (commit)
      from  7b49ab966dd0a0f80c15232fde1641b3818c529d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=255066993ead9f068a7b2b679819350e1e64d250
commit 255066993ead9f068a7b2b679819350e1e64d250
Merge: 7b49ab9 319eeb0
Author:     Bill Hoffman <bill.hoffman at kitware.com>
AuthorDate: Tue May 1 13:36:29 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue May 1 13:36:29 2012 -0400

    Merge topic 'mumps_coverage' into next
    
    319eeb0 Add test for mumps coverage. Also refactor code to prepare for cache coverage.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=319eeb0247f51bb2d380261ce7d63c7ce5020ed0
commit 319eeb0247f51bb2d380261ce7d63c7ce5020ed0
Author:     Bill Hoffman <bill.hoffman at kitware.com>
AuthorDate: Tue May 1 13:35:07 2012 -0400
Commit:     Bill Hoffman <bill.hoffman at kitware.com>
CommitDate: Tue May 1 13:35:07 2012 -0400

    Add test for mumps coverage. Also refactor code to prepare for cache coverage.
    
    Add a simple test to make sure the GTM mumps coverage is working.
    Also refactor the code so that cache coverage can be added.

diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 1ef67da..081cf65 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -423,6 +423,7 @@ SET(CTEST_SRCS cmCTest.cxx
   CTest/cmCTestConfigureHandler.cxx
   CTest/cmCTestCoverageCommand.cxx
   CTest/cmCTestCoverageHandler.cxx
+  CTest/cmParseMumpsCoverage.cxx
   CTest/cmParseGTMCoverage.cxx
   CTest/cmParsePHPCoverage.cxx
   CTest/cmCTestEmptyBinaryDirectoryCommand.cxx
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx
index 099bcb6..e7fa2f1 100644
--- a/Source/CTest/cmCTestCoverageHandler.cxx
+++ b/Source/CTest/cmCTestCoverageHandler.cxx
@@ -769,7 +769,13 @@ int cmCTestCoverageHandler::HandleGTMCoverage(
     "/gtm_coverage.mcov";
   if(cmSystemTools::FileExists(coverageFile.c_str()))
     {
-    cov.ReadGTMCoverage(coverageFile.c_str());
+    cov.ReadCoverageFile(coverageFile.c_str());
+    }
+  else
+    {
+    cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
+               " Cannot find GTM coverage file: " << coverageFile
+               << std::endl);
     }
   return static_cast<int>(cont->TotalCoverage.size());
 }
diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx
index 130e40e..90d047b 100644
--- a/Source/CTest/cmParseGTMCoverage.cxx
+++ b/Source/CTest/cmParseGTMCoverage.cxx
@@ -8,156 +8,152 @@
 
 
 cmParseGTMCoverage::cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont,
-    cmCTest* ctest)
-    :Coverage(cont), CTest(ctest)
+                                       cmCTest* ctest)
+  :cmParseMumpsCoverage(cont, ctest)
 {
 }
 
-bool cmParseGTMCoverage::ReadGTMCoverage(const char* file)
+
+bool cmParseGTMCoverage::LoadCoverageData(const char* d)
 {
-  // Read the gtm_coverage.mcov file, that has two lines of data:
-  // packages:/full/path/to/Vista/Packages
-  // coverage_dir:/full/path/to/dir/with/*.mcov
-  std::ifstream in(file);
-  if(!in)
+  // load all the .mcov files in the specified directory
+  cmsys::Directory dir;
+  if(!dir.Load(d))
     {
     return false;
     }
-  std::string line;
-  cmSystemTools::GetLineFromStream(in, line);
-  std::string::size_type pos = line.find(':', 0);
-  std::string packages;
-  if(pos != std::string::npos)
-    {
-    packages = line.substr(pos+1);
-    }
-  cmSystemTools::GetLineFromStream(in, line);
-  pos = line.find(':', 0);
-  std::string coverage_dir;
-  if(pos != std::string::npos)
+  size_t numf;
+  unsigned int i;
+  numf = dir.GetNumberOfFiles();
+  for (i = 0; i < numf; i++)
     {
-    coverage_dir = line.substr(pos+1);
+    std::string file = dir.GetFile(i);
+    if(file != "." && file != ".."
+       && !cmSystemTools::FileIsDirectory(file.c_str()))
+      {
+      std::string path = d;
+      path += "/";
+      path += file;
+      if(cmSystemTools::GetFilenameLastExtension(path) == ".mcov")
+        {
+        if(!this->ReadMCovFile(path.c_str()))
+          {
+          return false;
+          }
+        }
+      }
     }
-  // load the mumps files from the packages directory
-  this->LoadPackages(packages.c_str());
-  // now load the *.mcov files from the coverage directory
-  this->LoadCoverageData(coverage_dir.c_str());
   return true;
 }
 
-void cmParseGTMCoverage::InitializeFile(std::string& file)
+bool cmParseGTMCoverage::ReadMCovFile(const char* file)
 {
-  // initialize the coverage information for a given mumps file
-  std::ifstream in(file.c_str());
+  std::ifstream in(file);
   if(!in)
     {
-    return;
+    return false;
     }
   std::string line;
-  cmCTestCoverageHandlerContainer::SingleFileCoverageVector&
-    coverageVector = this->Coverage.TotalCoverage[file];
-  if(!cmSystemTools::GetLineFromStream(in, line))
-    {
-    return;
-    }
-  // first line of a .m file can never be run
-  coverageVector.push_back(-1);
-  while( cmSystemTools::GetLineFromStream(in, line) )
+  std::string lastfunction;
+  std::string lastroutine;
+  std::string lastpath;
+  int lastoffset = 0;
+  while(  cmSystemTools::GetLineFromStream(in, line))
     {
-    // putting in a 0 for a line means it is executable code
-    // putting in a -1 for a line means it is not executable code
-    int val = -1; // assume line is not executable
-    bool found = false;
-    std::string::size_type i = 0;
-    // (1) Search for the first whitespace or semicolon character on a line.
-    //This will skip over labels if the line starts with one, or will simply
-    //be the first character on the line for non-label lines.
-    for(; i < line.size(); ++i)
+    // only look at lines that have coverage data
+    if(line.find("^COVERAGE") == line.npos)
+      {
+      continue;
+      }
+    std::string filepath;
+    std::string function;
+    std::string routine;
+    int linenumber = 0;
+    int count = 0;
+    this->ParseMCOVLine(line, routine, function, linenumber, count);
+    // skip this one
+    if(routine == "RSEL")
+      {
+      continue;
+      }
+    // no need to search the file if we just did it
+    if(function == lastfunction && lastroutine == routine)
       {
-      if(line[i] == ' ' || line[i] == '\t' || line[i] == ';')
+      if(lastpath.size())
+        {
+        this->Coverage.TotalCoverage[lastpath][lastoffset + linenumber]
+          += count;
+        }
+      else
         {
-        found = true;
-        break;
+        cmCTestLog(this->CTest, ERROR_MESSAGE,
+                   "Can not find mumps file : "
+                   << lastroutine << "  referenced in this line of mcov data:\n"
+                   "[" << line << "]\n");
         }
+      continue;
       }
-    if(found)
+    // Find the full path to the file
+    std::map<cmStdString, cmStdString>::iterator i =
+      this->RoutineToDirectory.find(routine);
+    bool found = false;
+    if(i != this->RoutineToDirectory.end())
+      {
+      filepath = i->second;
+      found = true;
+      }
+    else
       {
-      // (2) If the first character found above is whitespace then continue the
-      // search for the first following non-whitespace character.
-      if(line[i] == ' ' || line[i] == '\t')
+      // try some alternate names
+      const char* tryname[] = {"GUX", "GTM", "ONT", 0};
+      for(int k=0; tryname[k] != 0; k++)
         {
-        while(i < line.size() && (line[i] == ' ' || line[i] == '\t'))
+        std::string routine2 = routine + tryname[k];
+        i = this->RoutineToDirectory.find(routine2);
+        if(i != this->RoutineToDirectory.end())
           {
-          i++;
+          found = true;
+          filepath = i->second;
+          break; // break out of tryname loop if found
           }
         }
-      // (3) If the character found is not a semicolon then the line counts for
-      // coverage.
-      if(i < line.size() && line[i] != ';')
-        {
-        val = 0;
-        }
       }
-    coverageVector.push_back(val);
-    }
-}
-
-bool cmParseGTMCoverage::LoadPackages(const char* d)
-{
-  cmsys::Glob glob;
-  glob.RecurseOn();
-  std::string pat = d;
-  pat += "/*.m";
-  glob.FindFiles(pat.c_str());
-  std::vector<std::string>& files = glob.GetFiles();
-  std::vector<std::string>::iterator fileIt;
-  for ( fileIt = files.begin(); fileIt != files.end();
-        ++ fileIt )
-    {
-    std::string name = cmSystemTools::GetFilenameName(*fileIt);
-    this->RoutineToDirectory[name.substr(0, name.size()-2)] = *fileIt;
-    // initialze each file, this is left out until CDash is fixed
-    // to handle large numbers of files
-//    this->InitializeFile(*fileIt);
-    }
-  return true;
-}
-
-bool cmParseGTMCoverage::LoadCoverageData(const char* d)
-{
-  // load all the .mcov files in the specified directory
-  cmsys::Directory dir;
-  if(!dir.Load(d))
-    {
-    return false;
-    }
-  size_t numf;
-  unsigned int i;
-  numf = dir.GetNumberOfFiles();
-  for (i = 0; i < numf; i++)
-    {
-    std::string file = dir.GetFile(i);
-    if(file != "." && file != ".."
-       && !cmSystemTools::FileIsDirectory(file.c_str()))
+    if(found)
       {
-      std::string path = d;
-      path += "/";
-      path += file;
-      if(cmSystemTools::GetFilenameLastExtension(path) == ".mcov")
+      int lineoffset;
+      if(this->FindFunctionInMumpsFile(filepath,
+                                       function,
+                                       lineoffset))
         {
-        if(!this->ReadMCovFile(path.c_str()))
+        // hack, this should be done on every file, but for now
+        // just do it on the ones that have coverage at all
+        if( this->Coverage.TotalCoverage[filepath].size() == 0)
           {
-          return false;
+          this->InitializeMumpsFile(filepath);
           }
+        cmCTestCoverageHandlerContainer::SingleFileCoverageVector&
+          coverageVector = this->Coverage.TotalCoverage[filepath];
+        coverageVector[lineoffset + linenumber] += count;
         }
+      lastoffset = lineoffset;
+      }
+    else
+      {
+      cmCTestLog(this->CTest, ERROR_MESSAGE,
+               "Can not find mumps file : "
+               << routine << "  referenced in this line of mcov data:\n"
+                 "[" << line << "]\n");
       }
+    lastfunction = function;
+    lastroutine = routine;
+    lastpath = filepath;
     }
   return true;
 }
 
-bool cmParseGTMCoverage::ParseFile(std::string& filepath,
-                                   std::string& function,
-                                   int& lineoffset)
+bool cmParseGTMCoverage::FindFunctionInMumpsFile(std::string const& filepath,
+                                                 std::string const& function,
+                                                 int& lineoffset)
 {
   std::ifstream in(filepath.c_str());
   if(!in)
@@ -197,11 +193,11 @@ bool cmParseGTMCoverage::ParseFile(std::string& filepath,
   return false;
 }
 
-bool cmParseGTMCoverage::ParseLine(std::string const& line,
-                                   std::string& routine,
-                                   std::string& function,
-                                   int& linenumber,
-                                   int& count)
+bool cmParseGTMCoverage::ParseMCOVLine(std::string const& line,
+                                       std::string& routine,
+                                       std::string& function,
+                                       int& linenumber,
+                                       int& count)
 {
   // this method parses lines from the .mcov file
   // each line has ^COVERAGE(...) in it, and there
@@ -302,97 +298,3 @@ bool cmParseGTMCoverage::ParseLine(std::string const& line,
     }
   return true;
 }
-
-bool cmParseGTMCoverage::ReadMCovFile(const char* file)
-{
-  std::ifstream in(file);
-  if(!in)
-    {
-    return false;
-    }
-  std::string line;
-  std::string lastfunction;
-  std::string lastroutine;
-  std::string lastpath;
-  int lastoffset = 0;
-  while(  cmSystemTools::GetLineFromStream(in, line))
-    {
-    // only look at lines that have coverage data
-    if(line.find("^COVERAGE") == line.npos)
-      {
-      continue;
-      }
-    std::string filepath;
-    std::string function;
-    std::string routine;
-    int linenumber = 0;
-    int count = 0;
-    this->ParseLine(line, routine, function, linenumber, count);
-    // skip this one
-    if(routine == "RSEL")
-      {
-      continue;
-      }
-    // no need to search the file if we just did it
-    if(function == lastfunction && lastroutine == routine)
-      {
-      this->Coverage.TotalCoverage[lastpath][lastoffset + linenumber] += count;
-      continue;
-      }
-    // Find the full path to the file
-    std::map<cmStdString, cmStdString>::iterator i =
-      this->RoutineToDirectory.find(routine);
-    bool found = false;
-    if(i != this->RoutineToDirectory.end())
-      {
-      filepath = i->second;
-      found = true;
-      }
-    else
-      {
-      // try some alternate names
-      const char* tryname[] = {"GUX", "GTM", "ONT", 0};
-      for(int k=0; tryname[k] != 0; k++)
-        {
-        std::string routine2 = routine + tryname[k];
-        i = this->RoutineToDirectory.find(routine2);
-        if(i != this->RoutineToDirectory.end())
-          {
-          found = true;
-          filepath = i->second;
-          break; // break out of tryname loop if found
-          }
-        }
-      }
-    if(found)
-      {
-      int lineoffset;
-      if(this->ParseFile(filepath,
-                         function,
-                         lineoffset))
-        {
-        // hack, this should be done on every file, but for now
-        // just do it on the ones that have coverage at all
-        if( this->Coverage.TotalCoverage[filepath].size() == 0)
-          {
-          this->InitializeFile(filepath);
-          }
-        cmCTestCoverageHandlerContainer::SingleFileCoverageVector&
-          coverageVector = this->Coverage.TotalCoverage[filepath];
-        coverageVector[lineoffset + linenumber] += count;
-        }
-      lastoffset = lineoffset;
-      }
-    else
-      {
-      cmCTestLog(this->CTest, ERROR_MESSAGE,
-               "Can not find mumps file : "
-               << routine << "  referenced in this line of mcov data:\n"
-                 "[" << line << "]\n");
-      }
-    lastfunction = function;
-    lastroutine = routine;
-    lastpath = filepath;
-    }
-  return true;
-}
diff --git a/Source/CTest/cmParseGTMCoverage.h b/Source/CTest/cmParseGTMCoverage.h
index d4e901d..c6d7ef9 100644
--- a/Source/CTest/cmParseGTMCoverage.h
+++ b/Source/CTest/cmParseGTMCoverage.h
@@ -13,8 +13,7 @@
 #ifndef cmParseGTMCoverage_h
 #define cmParseGTMCoverage_h
 
-#include "cmStandardIncludes.h"
-#include "cmCTestCoverageHandler.h"
+#include "cmParseMumpsCoverage.h"
 
 /** \class cmParseGTMCoverage
  * \brief Parse GTM coverage information
@@ -22,28 +21,28 @@
  * This class is used to parse GTM coverage information for
  * mumps.
  */
-class cmParseGTMCoverage
+class cmParseGTMCoverage : public cmParseMumpsCoverage
 {
 public:
   cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont,
     cmCTest* ctest);
-  bool ReadGTMCoverage(const char* file);
-private:
-  bool ParseFile(std::string& filepath,
-                 std::string& function,
-                 int& lineoffset);
-  bool ParseLine(std::string const& line,
+protected:
+  // implement virtual from parent
+  bool LoadCoverageData(const char* dir);
+  // Read a single mcov file
+  bool ReadMCovFile(const char* f);
+  // find out what line in a mumps file (filepath) the given entry point
+  // or function is.  lineoffset is set by this method.
+  bool FindFunctionInMumpsFile(std::string const& filepath,
+                               std::string const& function,
+                               int& lineoffset);
+  // parse a line from a .mcov file, and fill in the
+  // routine, function, linenumber and coverage count
+  bool ParseMCOVLine(std::string const& line,
                  std::string& routine,
                  std::string& function,
                  int& linenumber,
                  int& count);
-  bool LoadPackages(const char* dir);
-  bool LoadCoverageData(const char* dir);
-  bool ReadMCovFile(const char* f);
-  void InitializeFile(std::string& file);
-  std::map<cmStdString, cmStdString> RoutineToDirectory;
-  cmCTestCoverageHandlerContainer& Coverage;
-  cmCTest* CTest;
 };
 
 
diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx
new file mode 100644
index 0000000..359b5ac
--- /dev/null
+++ b/Source/CTest/cmParseMumpsCoverage.cxx
@@ -0,0 +1,125 @@
+#include "cmStandardIncludes.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "cmSystemTools.h"
+#include "cmParseGTMCoverage.h"
+#include <cmsys/Directory.hxx>
+#include <cmsys/Glob.hxx>
+
+
+cmParseMumpsCoverage::cmParseMumpsCoverage(
+  cmCTestCoverageHandlerContainer& cont,
+  cmCTest* ctest)
+  :Coverage(cont), CTest(ctest)
+{
+}
+
+bool cmParseMumpsCoverage::ReadCoverageFile(const char* file)
+{
+  // Read the gtm_coverage.mcov file, that has two lines of data:
+  // packages:/full/path/to/Vista/Packages
+  // coverage_dir:/full/path/to/dir/with/*.mcov
+  std::ifstream in(file);
+  if(!in)
+    {
+    return false;
+    }
+  std::string line;
+  cmSystemTools::GetLineFromStream(in, line);
+  std::string::size_type pos = line.find(':', 0);
+  std::string packages;
+  if(pos != std::string::npos)
+    {
+    packages = line.substr(pos+1);
+    }
+  cmSystemTools::GetLineFromStream(in, line);
+  pos = line.find(':', 0);
+  std::string coverage_dir;
+  if(pos != std::string::npos)
+    {
+    coverage_dir = line.substr(pos+1);
+    }
+  // load the mumps files from the packages directory
+  this->LoadPackages(packages.c_str());
+  // now load the *.mcov files from the coverage directory
+  this->LoadCoverageData(coverage_dir.c_str());
+  return true;
+}
+
+void cmParseMumpsCoverage::InitializeMumpsFile(std::string& file)
+{
+  // initialize the coverage information for a given mumps file
+  std::ifstream in(file.c_str());
+  if(!in)
+    {
+    return;
+    }
+  std::string line;
+  cmCTestCoverageHandlerContainer::SingleFileCoverageVector&
+    coverageVector = this->Coverage.TotalCoverage[file];
+  if(!cmSystemTools::GetLineFromStream(in, line))
+    {
+    return;
+    }
+  // first line of a .m file can never be run
+  coverageVector.push_back(-1);
+  while( cmSystemTools::GetLineFromStream(in, line) )
+    {
+    // putting in a 0 for a line means it is executable code
+    // putting in a -1 for a line means it is not executable code
+    int val = -1; // assume line is not executable
+    bool found = false;
+    std::string::size_type i = 0;
+    // (1) Search for the first whitespace or semicolon character on a line.
+    //This will skip over labels if the line starts with one, or will simply
+    //be the first character on the line for non-label lines.
+    for(; i < line.size(); ++i)
+      {
+      if(line[i] == ' ' || line[i] == '\t' || line[i] == ';')
+        {
+        found = true;
+        break;
+        }
+      }
+    if(found)
+      {
+      // (2) If the first character found above is whitespace then continue the
+      // search for the first following non-whitespace character.
+      if(line[i] == ' ' || line[i] == '\t')
+        {
+        while(i < line.size() && (line[i] == ' ' || line[i] == '\t'))
+          {
+          i++;
+          }
+        }
+      // (3) If the character found is not a semicolon then the line counts for
+      // coverage.
+      if(i < line.size() && line[i] != ';')
+        {
+        val = 0;
+        }
+      }
+    coverageVector.push_back(val);
+    }
+}
+
+bool cmParseMumpsCoverage::LoadPackages(const char* d)
+{
+  cmsys::Glob glob;
+  glob.RecurseOn();
+  std::string pat = d;
+  pat += "/*.m";
+  glob.FindFiles(pat.c_str());
+  std::vector<std::string>& files = glob.GetFiles();
+  std::vector<std::string>::iterator fileIt;
+  for ( fileIt = files.begin(); fileIt != files.end();
+        ++ fileIt )
+    {
+    std::string name = cmSystemTools::GetFilenameName(*fileIt);
+    this->RoutineToDirectory[name.substr(0, name.size()-2)] = *fileIt;
+    // initialze each file, this is left out until CDash is fixed
+    // to handle large numbers of files
+//    this->InitializeMumpsFile(*fileIt);
+    }
+  return true;
+}
diff --git a/Source/CTest/cmParseMumpsCoverage.h b/Source/CTest/cmParseMumpsCoverage.h
new file mode 100644
index 0000000..63883de
--- /dev/null
+++ b/Source/CTest/cmParseMumpsCoverage.h
@@ -0,0 +1,48 @@
+/*============================================================================
+  CMake - Cross Platform Makefile Generator
+  Copyright 2000-2009 Kitware, Inc.
+
+  Distributed under the OSI-approved BSD License (the "License");
+  see accompanying file Copyright.txt for details.
+
+  This software is distributed WITHOUT ANY WARRANTY; without even the
+  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the License for more information.
+============================================================================*/
+
+#ifndef cmParseMumpsCoverage_h
+#define cmParseMumpsCoverage_h
+
+#include "cmStandardIncludes.h"
+#include "cmCTestCoverageHandler.h"
+
+/** \class cmParseMumpsCoverage
+ * \brief Parse Mumps coverage information
+ *
+ * This class is used as the base class for Mumps coverage
+ * parsing.
+ */
+class cmParseMumpsCoverage
+{
+public:
+  cmParseMumpsCoverage(cmCTestCoverageHandlerContainer& cont,
+    cmCTest* ctest);
+  // This is the toplevel coverage file locating the coverage files
+  // and the mumps source code package tree.
+  bool ReadCoverageFile(const char* file);
+protected:
+  // sub classes will use this to
+  // load all coverage files found in the given directory
+  virtual bool LoadCoverageData(const char* d) = 0;
+  // search the package directory for mumps files and fill
+  // in the RoutineToDirectory map
+  bool LoadPackages(const char* dir);
+  // initialize the coverage information for a single mumps file
+  void InitializeMumpsFile(std::string& file);
+protected:
+  std::map<cmStdString, cmStdString> RoutineToDirectory;
+  cmCTestCoverageHandlerContainer& Coverage;
+  cmCTest* CTest;
+};
+
+#endif
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index c0b7cd6..9a088e4 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1708,6 +1708,24 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
     PASS_REGULAR_EXPRESSION
       "Reading ctest configuration file: ${CTEST_TEST_ESCAPED_BINARY_DIR}.Tests.CTestTestConfigFileInBuildDir2.CTestConfig.cmake")
 
+  # test coverage for mumps
+  # create a MumpsCoverage dir in the binary tree under Testing to
+  # avoid the .NoDartCoverage files in the cmake testing tree
+  configure_file(
+     "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/DartConfiguration.tcl.in"
+     "${CMake_BINARY_DIR}/Testing/MumpsCoverage/DartConfiguration.tcl")
+  configure_file(
+     "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/gtm_coverage.mcov.in"
+     "${CMake_BINARY_DIR}/Testing/MumpsCoverage/gtm_coverage.mcov")
+  file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA"
+    DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCoverage")
+  add_test(NAME CTestGTMCoverage
+    WORKING_DIRECTORY  "${CMake_BINARY_DIR}/Testing/MumpsCoverage"
+    COMMAND
+    ${CMAKE_CTEST_COMMAND} -T Coverage --debug)
+  set_tests_properties(CTestGTMCoverage PROPERTIES
+      PASS_REGULAR_EXPRESSION
+      "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*")
   # Use macro, not function so that build can still be driven by CMake 2.4.
   # After 2.6 is required, this could be a function without the extra 'set'
   # calls.
diff --git a/Tests/MumpsCoverage/.gitattributes b/Tests/MumpsCoverage/.gitattributes
new file mode 100644
index 0000000..77a41f8
--- /dev/null
+++ b/Tests/MumpsCoverage/.gitattributes
@@ -0,0 +1,2 @@
+*.cmcov     -whitespace
+*.mcov     -whitespace
diff --git a/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov b/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov
new file mode 100644
index 0000000..c0ca7b5
--- /dev/null
+++ b/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov
@@ -0,0 +1,1445 @@
+%GO Global Output Utility
+GT.M 17-APR-2012 17:18:27 ZWR
+^COVERAGE("%RSEL","SRC")="1:0:0:0"
+^COVERAGE("%RSEL","SRC",1)="1:0:0:0"
+^COVERAGE("%RSEL","SRC",2)="1:0:0:0"
+^COVERAGE("%RSEL","SRC",3)="1:0:0:0"
+^COVERAGE("%RSEL","SRC",4)="1:0:0:0"
+^COVERAGE("%RSEL","SRC",5)="1:0:0:0"
+^COVERAGE("%RSEL","SRC",6)="1:0:0:0"
+^COVERAGE("%RSEL","SRC",7)="1:0:0:0"
+^COVERAGE("%RSEL","init")="1:0:0:0"
+^COVERAGE("%RSEL","init",1)="1:0:0:0"
+^COVERAGE("%RSEL","init",3)="1:0:0:0"
+^COVERAGE("%RSEL","init",4)="1:0:0:0"
+^COVERAGE("%RSEL","init",5)="1:0:0:0"
+^COVERAGE("%RSEL","init",6)="1:0:0:0"
+^COVERAGE("%RSEL","init",7)="1:0:0:0"
+^COVERAGE("%RSEL","init",8)="1:0:0:0"
+^COVERAGE("%RSEL","init",8,"FOR_LOOP",1)=1
+^COVERAGE("%RSEL","init",9)="1:0:0:0"
+^COVERAGE("%RSEL","init",10)="1:0:0:0"
+^COVERAGE("%RSEL","init",11)="1:0:0:0"
+^COVERAGE("%RSEL","init",12)="1:0:0:0"
+^COVERAGE("%RSEL","init",13)="1:0:0:0"
+^COVERAGE("%RSEL","init",14)="1:0:0:0"
+^COVERAGE("%RSEL","init",15)="1:0:0:0"
+^COVERAGE("%RSEL","init",16)="1:0:0:0"
+^COVERAGE("%RSEL","init",17)="1:0:0:0"
+^COVERAGE("%RSEL","init",17,"FOR_LOOP",1)=2
+^COVERAGE("%RSEL","init",18)="2:0:0:0"
+^COVERAGE("%RSEL","init",19)="2:0:0:0"
+^COVERAGE("%RSEL","init",20)="2:0:0:0"
+^COVERAGE("%RSEL","init",40)="1:0:0:0"
+^COVERAGE("%RSEL","main")="1:32001:84004:116005"
+^COVERAGE("%RSEL","main",1)="1:0:0:0"
+^COVERAGE("%RSEL","main",2)="1:0:0:0"
+^COVERAGE("%RSEL","main",3)="1:0:0:0"
+^COVERAGE("%RSEL","main",3,"FOR_LOOP",1)=468
+^COVERAGE("%RSEL","main",4)="468:0:24003:24003"
+^COVERAGE("%RSEL","main",5)="468:0:0:0"
+^COVERAGE("%RSEL","main",6)="468:32001:48001:80002"
+^COVERAGE("%RSEL","main",7)="467:0:12000:12000"
+^COVERAGE("%RSEL","main",8)="467:0:0:0"
+^COVERAGE("%RSEL","main",9)="467:0:0:0"
+^COVERAGE("%RSEL","main",10)="467:0:0:0"
+^COVERAGE("%RSEL","main",11)="1:0:0:0"
+^COVERAGE("%RSEL","main",12)="1:0:0:0"
+^COVERAGE("%RSEL","main",13)="1:0:0:0"
+^COVERAGE("%RSEL","main",14)="1:0:0:0"
+^COVERAGE("%RSEL","next")="1403:12001:20002:32003"
+^COVERAGE("%RSEL","next",0)="1403:0:0:0"
+^COVERAGE("%RSEL","next",1)="1403:12001:20002:32003"
+^COVERAGE("%RSEL","next",1,"FOR_LOOP",1)=1403
+^COVERAGE("%RSEL","next",2)="1403:0:0:0"
+^COVERAGE("%RSEL","save")="467:0:4001:4001"
+^COVERAGE("%RSEL","save",1)="467:0:0:0"
+^COVERAGE("%RSEL","save",5)="467:0:0:0"
+^COVERAGE("%RSEL","save",6)="467:0:0:0"
+^COVERAGE("%RSEL","save",7)="467:0:0:0"
+^COVERAGE("%RSEL","save",8)="467:0:4001:4001"
+^COVERAGE("%RSEL","save",9)="467:0:0:0"
+^COVERAGE("%RSEL","search")="934:0:16001:16001"
+^COVERAGE("%RSEL","search",0)="934:0:4000:4000"
+^COVERAGE("%RSEL","search",1)="934:0:0:0"
+^COVERAGE("%RSEL","search",2)="934:0:4001:4001"
+^COVERAGE("%RSEL","search",2,"FOR_LOOP",1)=1868
+^COVERAGE("%RSEL","search",3)="934:0:8000:8000"
+^COVERAGE("%RSEL","search",4)="934:0:0:0"
+^COVERAGE("%RSEL","search",5)="934:0:0:0"
+^COVERAGE("%RSEL","start")="468:0:4001:4001"
+^COVERAGE("%RSEL","start",0)="468:0:0:0"
+^COVERAGE("%RSEL","start",1)="468:0:0:0"
+^COVERAGE("%RSEL","start",2)="468:0:0:0"
+^COVERAGE("%RSEL","start",2,"FOR_LOOP",1)=936
+^COVERAGE("%RSEL","start",3)="468:0:0:0"
+^COVERAGE("%RSEL","work")="467:20002:24001:44003"
+^COVERAGE("%RSEL","work",1)="467:0:0:0"
+^COVERAGE("%RSEL","work",2)="467:0:0:0"
+^COVERAGE("%RSEL","work",3)="467:0:4000:4000"
+^COVERAGE("%RSEL","work",4)="467:0:0:0"
+^COVERAGE("%RSEL","work",6)="467:4000:12000:16000"
+^COVERAGE("%RSEL","work",6,"FOR_LOOP",1)=3421
+^COVERAGE("%RSEL","work",7)="467:0:0:0"
+^COVERAGE("%RSEL","work",8)="467:4001:0:4001"
+^COVERAGE("%RSEL","work",9)="467:0:0:0"
+^COVERAGE("%RSEL","work",10)="467:0:0:0"
+^COVERAGE("%RSEL","work",11)="467:0:0:0"
+^COVERAGE("%RSEL","work",12)="467:4000:0:4000"
+^COVERAGE("%RSEL","work",13)="467:0:4000:4000"
+^COVERAGE("%RSEL","work",14)="467:0:0:0"
+^COVERAGE("%RSEL","work",15)="467:4001:4001:8002"
+^COVERAGE("%RSEL","work",15,"FOR_LOOP",1)=934
+^COVERAGE("%RSEL","work",16)="467:0:0:0"
+^COVERAGE("%ZIS","%ZIS")="2:0:0:0"
+^COVERAGE("%ZIS","%ZIS",3)="2:0:0:0"
+^COVERAGE("%ZIS","%ZIS",4)="2:0:0:0"
+^COVERAGE("%ZIS","A",0)="2:0:0:0"
+^COVERAGE("%ZIS","A",1)="2:0:0:0"
+^COVERAGE("%ZIS","CLEAN")="3:0:0:0"
+^COVERAGE("%ZIS","CLEAN",1)="3:0:0:0"
+^COVERAGE("%ZIS","CLEAN",2)="3:0:0:0"
+^COVERAGE("%ZIS","CLEAN",3)="3:0:0:0"
+^COVERAGE("%ZIS","CLEAN",4)="3:0:0:0"
+^COVERAGE("%ZIS","GETHOME")="2:0:0:0"
+^COVERAGE("%ZIS","GETHOME",0)="2:0:0:0"
+^COVERAGE("%ZIS","GETHOME",1)="1:0:0:0"
+^COVERAGE("%ZIS","GETHOME",3)="1:0:0:0"
+^COVERAGE("%ZIS","GETHOME",4)="1:0:0:0"
+^COVERAGE("%ZIS","GETHOME",5)="1:0:0:0"
+^COVERAGE("%ZIS","GETHOME",6)="1:0:0:0"
+^COVERAGE("%ZIS","GETHOME",7)="1:0:0:0"
+^COVERAGE("%ZIS","HOME")="1:0:0:0"
+^COVERAGE("%ZIS","HOME",1)="1:0:0:0"
+^COVERAGE("%ZIS","HOME",2)="1:0:0:0"
+^COVERAGE("%ZIS","INIT",1)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",3)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",4)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",5)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",6)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",8)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",10)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",11)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",12)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",13)="2:0:0:0"
+^COVERAGE("%ZIS","INIT",15)="2:0:0:0"
+^COVERAGE("%ZIS","K2",0)="2:0:0:0"
+^COVERAGE("%ZIS","K2",1)="2:0:0:0"
+^COVERAGE("%ZIS","K2",2)="2:0:0:0"
+^COVERAGE("%ZIS","K2",4)="2:0:0:0"
+^COVERAGE("%ZIS","VIRTUAL")="2:0:0:0"
+^COVERAGE("%ZIS","VIRTUAL",4)="2:0:0:0"
+^COVERAGE("%ZIS","VIRTUAL",4,"FOR_LOOP",1)=6
+^COVERAGE("%ZIS","VIRTUAL",5)="2:0:0:0"
+^COVERAGE("%ZIS","VIRTUAL",7)="2:0:0:0"
+^COVERAGE("%ZIS","VTLKUP")="4:0:0:0"
+^COVERAGE("%ZIS","VTLKUP",0)="4:0:0:0"
+^COVERAGE("%ZIS","VTLKUP",0,"FOR_LOOP",1)=8
+^COVERAGE("%ZIS","VTLKUP",1)="4:0:0:0"
+^COVERAGE("%ZIS1","EX2",1)="2:0:0:0"
+^COVERAGE("%ZIS1","EX2",2)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",1)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",3)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",5)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",6)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",7)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",8)="2:0:0:0"
+^COVERAGE("%ZIS1","EXIT",9)="2:0:0:0"
+^COVERAGE("%ZIS1","G",0)="2:0:0:0"
+^COVERAGE("%ZIS1","IOP")="1:0:0:0"
+^COVERAGE("%ZIS1","IOP",1)="1:0:0:0"
+^COVERAGE("%ZIS1","K2")="2:0:0:0"
+^COVERAGE("%ZIS1","K2",1)="4:0:0:0"
+^COVERAGE("%ZIS1","K2",2)="4:0:0:0"
+^COVERAGE("%ZIS1","K2",3)="4:0:0:0"
+^COVERAGE("%ZIS1","K2",4)="4:0:0:0"
+^COVERAGE("%ZIS1","KIL",1)="2:0:0:0"
+^COVERAGE("%ZIS1","KIL",2)="2:0:0:0"
+^COVERAGE("%ZIS1","KIL",3)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",1)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",2)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",3)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",4)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",5)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",6)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",7)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",8)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",9)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",10)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",11)="2:0:0:0"
+^COVERAGE("%ZIS1","L1",12)="2:0:0:0"
+^COVERAGE("%ZIS1","LKUP")="2:0:0:0"
+^COVERAGE("%ZIS1","LKUP",1)="2:0:0:0"
+^COVERAGE("%ZIS1","LKUP",2)="2:0:0:0"
+^COVERAGE("%ZIS1","LKUP",3)="2:0:0:0"
+^COVERAGE("%ZIS1","MAIN",2)="2:0:0:0"
+^COVERAGE("%ZIS1","R")="1:0:0:0"
+^COVERAGE("%ZIS1","R",0)="1:0:0:0"
+^COVERAGE("%ZIS1","R",1)="1:0:0:0"
+^COVERAGE("%ZIS1","R",2)="1:0:0:0"
+^COVERAGE("%ZIS1","RD",0)="1:0:0:0"
+^COVERAGE("%ZIS1","RD",1)="1:0:0:0"
+^COVERAGE("%ZIS1","RD",2)="1:0:0:0"
+^COVERAGE("%ZIS1","RD",3)="1:0:0:0"
+^COVERAGE("%ZIS1","RD",4)="1:0:0:0"
+^COVERAGE("%ZIS1","RD",5)="1:0:0:0"
+^COVERAGE("%ZIS1","SBR")="1:0:0:0"
+^COVERAGE("%ZIS1","SBR",1)="1:0:0:0"
+^COVERAGE("%ZIS1","SBR",2)="1:0:0:0"
+^COVERAGE("%ZIS1","SBR",3)="1:0:0:0"
+^COVERAGE("%ZIS1","SETQ")="2:0:0:0"
+^COVERAGE("%ZIS1","SETQ",1)="2:0:0:0"
+^COVERAGE("%ZIS1","SETQ",2)="2:0:0:0"
+^COVERAGE("%ZIS1","SETQ",3)="2:0:0:0"
+^COVERAGE("%ZIS1","SETQ",4)="2:0:0:0"
+^COVERAGE("%ZIS1","SETQ",5)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",1)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",2)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",5)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",7)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",8)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",9)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",10)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",11)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",12)="2:0:0:0"
+^COVERAGE("%ZIS1","SETVAR",13)="2:0:0:0"
+^COVERAGE("%ZIS2","CHECK",1)="2:0:0:0"
+^COVERAGE("%ZIS2","CHECK",2)="2:0:0:0"
+^COVERAGE("%ZIS2","CHECK",3)="2:0:0:0"
+^COVERAGE("%ZIS2","CHECK",4)="2:0:0:0"
+^COVERAGE("%ZIS2","CHECK",5)="2:0:0:0"
+^COVERAGE("%ZIS2","CHECK",6)="2:0:0:0"
+^COVERAGE("%ZIS2","IOPAR")="4:0:0:0"
+^COVERAGE("%ZIS2","IOPAR",0)="4:0:0:0"
+^COVERAGE("%ZIS2","IOPAR",1)="4:0:0:0"
+^COVERAGE("%ZIS2","L2")="2:0:0:0"
+^COVERAGE("%ZIS2","L2",1)="2:0:0:0"
+^COVERAGE("%ZIS2","OCPU",0)="2:0:0:0"
+^COVERAGE("%ZIS2","OOS",0)="2:0:0:0"
+^COVERAGE("%ZIS2","OOS",2)="2:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU")="2:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",0)="2:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",1)="2:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",2)="2:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",2,"FOR_LOOP",1)=4
+^COVERAGE("%ZIS2","OTHCPU",3)="4:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",4)="4:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",5)="4:0:0:0"
+^COVERAGE("%ZIS2","OTHCPU",15)="2:0:0:0"
+^COVERAGE("%ZIS2","PTIME",0)="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK")="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK",0)="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK",1)="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK",3)="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK",4)="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK",9)="2:0:0:0"
+^COVERAGE("%ZIS2","QUECHK",13)="2:0:0:0"
+^COVERAGE("%ZIS2","SLAVE",0)="2:0:0:0"
+^COVERAGE("%ZIS2","T2",0)="2:0:0:0"
+^COVERAGE("%ZIS2","T2",2)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",0)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",1)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",2)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",4)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",10)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",11)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",12)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",15)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",16)="2:0:0:0"
+^COVERAGE("%ZIS2","TMPVAR",18)="2:0:0:0"
+^COVERAGE("%ZIS2","VTRM",0)="2:0:0:0"
+^COVERAGE("%ZIS2","VTRM",1)="2:0:0:0"
+^COVERAGE("%ZIS3","%ZIS3",4)="2:0:0:0"
+^COVERAGE("%ZIS3","%ZIS3",5)="2:0:0:0"
+^COVERAGE("%ZIS3","%ZIS3",6)="2:0:0:0"
+^COVERAGE("%ZIS3","%ZIS3",8)="2:0:0:0"
+^COVERAGE("%ZIS3","%ZIS3",9)="2:0:0:0"
+^COVERAGE("%ZIS3","%ZIS3",11)="2:0:0:0"
+^COVERAGE("%ZIS3","ALTP",0)="2:0:0:0"
+^COVERAGE("%ZIS3","ASKMAR",0)="2:0:0:0"
+^COVERAGE("%ZIS3","ASKMAR",1)="2:0:0:0"
+^COVERAGE("%ZIS3","MARGN")="2:0:0:0"
+^COVERAGE("%ZIS3","MARGN",1)="2:0:0:0"
+^COVERAGE("%ZIS3","MARGN",2)="2:0:0:0"
+^COVERAGE("%ZIS3","MARGN",3)="2:0:0:0"
+^COVERAGE("%ZIS3","MARGN",4)="2:0:0:0"
+^COVERAGE("%ZIS3","Q",2)="2:0:0:0"
+^COVERAGE("%ZIS3","Q",3)="2:0:0:0"
+^COVERAGE("%ZIS3","Q",4)="2:0:0:0"
+^COVERAGE("%ZIS3","SETPAR")="2:0:0:0"
+^COVERAGE("%ZIS3","SETPAR",0)="2:0:0:0"
+^COVERAGE("%ZIS3","SETPAR",1)="2:0:0:0"
+^COVERAGE("%ZIS3","ST")="2:0:0:0"
+^COVERAGE("%ZIS3","ST",0)="2:0:0:0"
+^COVERAGE("%ZIS3","ST",1)="2:0:0:0"
+^COVERAGE("%ZIS3","ST",2)="2:0:0:0"
+^COVERAGE("%ZIS3","ST",3)="2:0:0:0"
+^COVERAGE("%ZIS3","STP",0)="2:0:0:0"
+^COVERAGE("%ZIS3","STP",1)="2:0:0:0"
+^COVERAGE("%ZIS3","STP",2)="2:0:0:0"
+^COVERAGE("%ZIS3","STP",3)="2:0:0:0"
+^COVERAGE("%ZIS3","TRM",1)="2:0:0:0"
+^COVERAGE("%ZIS3","TRM",2)="2:0:0:0"
+^COVERAGE("%ZIS3","TRM",3)="2:0:0:0"
+^COVERAGE("%ZIS3","TRM",4)="2:0:0:0"
+^COVERAGE("%ZIS3","TRM",5)="2:0:0:0"
+^COVERAGE("%ZIS3","W")="2:0:0:0"
+^COVERAGE("%ZIS3","W",0)="2:0:0:0"
+^COVERAGE("%ZIS3","W",1)="2:0:0:0"
+^COVERAGE("%ZIS3","W",2)="1:0:0:0"
+^COVERAGE("%ZIS3","W",3)="1:0:0:0"
+^COVERAGE("%ZIS4","O")="2:0:0:0"
+^COVERAGE("%ZIS4","O",1)="2:0:0:0"
+^COVERAGE("%ZIS4","O",2)="2:0:0:0"
+^COVERAGE("%ZIS4","O1")="2:0:0:0"
+^COVERAGE("%ZIS4","O1",0)="2:0:0:0"
+^COVERAGE("%ZIS4","O1",1)="2:0:0:0"
+^COVERAGE("%ZIS4","O1",2)="2:0:0:0"
+^COVERAGE("%ZIS4","O1",3)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",0)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",1)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",2)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",3)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",4)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",5)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",9)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",10)="2:0:0:0"
+^COVERAGE("%ZIS4","OPAR",12)="2:0:0:0"
+^COVERAGE("%ZIS6","ANSBAK",1)="2:0:0:0"
+^COVERAGE("%ZIS6","ANSBAK",2)="2:0:0:0"
+^COVERAGE("%ZIS6","ANSBAK",3)="2:0:0:0"
+^COVERAGE("%ZIS6","OXECUTE",1)="2:0:0:0"
+^COVERAGE("%ZIS6","QUIT",0)="2:0:0:0"
+^COVERAGE("%ZIS6","QUIT",1)="2:0:0:0"
+^COVERAGE("%ZISC","C0")="1:0:0:0"
+^COVERAGE("%ZISC","C0",1)="1:0:0:0"
+^COVERAGE("%ZISC","C0",3)="1:0:0:0"
+^COVERAGE("%ZISC","C0",5)="1:0:0:0"
+^COVERAGE("%ZISC","C0",6)="1:0:0:0"
+^COVERAGE("%ZISC","C0",8)="1:0:0:0"
+^COVERAGE("%ZISC","C0",9)="1:0:0:0"
+^COVERAGE("%ZISC","C0",10)="1:0:0:0"
+^COVERAGE("%ZISC","C0",13)="1:0:0:0"
+^COVERAGE("%ZISC","C0",16)="1:0:0:0"
+^COVERAGE("%ZISC","C0",17)="1:0:0:0"
+^COVERAGE("%ZISC","C0",21)="1:0:0:0"
+^COVERAGE("%ZISC","C0",26)="1:0:0:0"
+^COVERAGE("%ZISC","C0",27)="1:0:0:0"
+^COVERAGE("%ZISC","C0",29)="1:0:0:0"
+^COVERAGE("%ZISC","C0",32)="1:0:0:0"
+^COVERAGE("%ZISC","C0",33)="1:0:0:0"
+^COVERAGE("%ZISC","C0",34)="1:0:0:0"
+^COVERAGE("%ZISC","C0",37)="1:0:0:0"
+^COVERAGE("%ZISC","C0",41)="1:0:0:0"
+^COVERAGE("%ZISC","C0",43)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS")="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",0)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",1)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",2)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",3)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",4)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",5)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",6)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",7)="1:0:0:0"
+^COVERAGE("%ZISC","CIOS",8)="1:0:0:0"
+^COVERAGE("%ZISC","CLOSPP")="1:0:0:0"
+^COVERAGE("%ZISC","CLOSPP",0)="1:0:0:0"
+^COVERAGE("%ZISC","CLOSPP",1)="1:0:0:0"
+^COVERAGE("%ZISC","CLOSPP",2)="1:0:0:0"
+^COVERAGE("%ZISC","END",0)="1:0:0:0"
+^COVERAGE("%ZISC","END",2)="1:0:0:0"
+^COVERAGE("%ZISC","END",4)="1:0:0:0"
+^COVERAGE("%ZISC","FF")="1:0:0:0"
+^COVERAGE("%ZISC","FF",0)="1:0:0:0"
+^COVERAGE("%ZISC","FF",1)="1:0:0:0"
+^COVERAGE("%ZISC","FF",2)="1:0:0:0"
+^COVERAGE("%ZISC","RM")="1:0:0:0"
+^COVERAGE("%ZISC","RM",0)="1:0:0:0"
+^COVERAGE("%ZISC","RM",1)="1:0:0:0"
+^COVERAGE("%ZISC","S1",0)="1:0:0:0"
+^COVERAGE("%ZISC","S1",1)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",2)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",4)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",5)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",6)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",7)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",8)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",9)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",10)="1:0:0:0"
+^COVERAGE("%ZISC","SETIO",12)="1:0:0:0"
+^COVERAGE("%ZISC","SUBTYPE")="1:0:0:0"
+^COVERAGE("%ZISC","SUBTYPE",1)="1:0:0:0"
+^COVERAGE("%ZISC","SUBTYPE",2)="1:0:0:0"
+^COVERAGE("%ZISC","SUBTYPE",3)="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT")="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT",0)="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT",2)="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT",3)="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT",4)="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT",5)="1:0:0:0"
+^COVERAGE("%ZISUTL","LINEPORT",6)="1:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTIEN")="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTIEN",0)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTIEN",1)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM")="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM",0)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM",1)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM",2)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM",3)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM",5)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTNAM",6)="3:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTSUB")="2:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTSUB",0)="2:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTSUB",1)="2:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTSUB",2)="2:0:0:0"
+^COVERAGE("%ZISUTL","LNPRTSUB",3)="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL")="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",0)="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",1)="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",3)="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",4)="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",5)="2:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",5,"FOR_LOOP",1)=40
+^COVERAGE("%ZISUTL","SYMBOL",6)="40:0:0:0"
+^COVERAGE("%ZISUTL","SYMBOL",10)="2:0:0:0"
+^COVERAGE("%ZOSV","GETENV")="2:0:0:0"
+^COVERAGE("%ZOSV","GETENV",1)="2:0:0:0"
+^COVERAGE("%ZOSV","GETENV",2)="2:0:0:0"
+^COVERAGE("%ZOSV","GETENV",3)="2:0:0:0"
+^COVERAGE("%ZOSV","LGR")="2:0:0:0"
+^COVERAGE("%ZOSV","LGR",0)="2:0:0:0"
+^COVERAGE("%ZOSV","LGR",1)="2:0:0:0"
+^COVERAGE("%ZOSV","PRI")="1:0:0:0"
+^COVERAGE("%ZOSV","PRI",0)="1:0:0:0"
+^COVERAGE("%ZOSV","PRI",3)="1:0:0:0"
+^COVERAGE("%ZOSV","RETURN")="2:0:4000:4000"
+^COVERAGE("%ZOSV","RETURN",0)="2:0:0:0"
+^COVERAGE("%ZOSV","RETURN",2)="2:0:0:0"
+^COVERAGE("%ZOSV","RETURN",3)="2:0:0:0"
+^COVERAGE("%ZOSV","RETURN",4)="2:0:4000:4000"
+^COVERAGE("%ZOSV","RETURN",5)="2:0:0:0"
+^COVERAGE("%ZOSV","RETURN",7)="2:0:0:0"
+^COVERAGE("%ZOSV","TEMP")="2:0:0:0"
+^COVERAGE("%ZOSV","TEMP",0)="2:0:0:0"
+^COVERAGE("%ZOSV","TEMP",2)="2:0:0:0"
+^COVERAGE("%ZOSV2","LOAD")="467:1000060:340019:1340079"
+^COVERAGE("%ZOSV2","LOAD",0)="467:0:0:0"
+^COVERAGE("%ZOSV2","LOAD",1)="467:0:8001:8001"
+^COVERAGE("%ZOSV2","LOAD",2)="467:1000060:320018:1320078"
+^COVERAGE("%ZOSV2","LOAD",2,"FOR_LOOP",1)=45087
+^COVERAGE("%ZOSV2","LOAD",3)="467:0:12000:12000"
+^COVERAGE("DIALOG","EZBLD")="2:0:4000:4000"
+^COVERAGE("DIALOG","EZBLD",0)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",2)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",3)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",4)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",5)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",6)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",7)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",8)="2:0:0:0"
+^COVERAGE("DIALOG","EZBLD",9)="2:0:0:0"
+^COVERAGE("DIALOG","PARAM")="2:0:0:0"
+^COVERAGE("DIALOG","PARAM",0)="4:0:0:0"
+^COVERAGE("DIALOG","PARAM",1)="2:0:0:0"
+^COVERAGE("DIALOG","PARAM",2)="2:0:0:0"
+^COVERAGE("DIALOG","PARAM",3)="2:0:0:0"
+^COVERAGE("DIALOG","Q1",0)="2:0:0:0"
+^COVERAGE("DIALOG","Q2")="2:0:0:0"
+^COVERAGE("DIALOG","Q2",0)="2:0:0:0"
+^COVERAGE("DIALOG","QEZ",0)="2:0:4000:4000"
+^COVERAGE("DIALOG","QEZ",1)="2:0:0:0"
+^COVERAGE("DIALOG","QP",0)="2:0:0:0"
+^COVERAGE("DIC","A1",0)="2:0:0:0"
+^COVERAGE("DIC","ASK",0)="2:0:0:0"
+^COVERAGE("DIC","ASK",1)="2:0:0:0"
+^COVERAGE("DIC","ASK",2)="2:0:0:0"
+^COVERAGE("DIC","ASK",3)="2:0:0:0"
+^COVERAGE("DIC","ASK",4)="2:0:0:0"
+^COVERAGE("DIC","DIC")="2:0:0:0"
+^COVERAGE("DIC","DIC",3)="2:0:0:0"
+^COVERAGE("DIC","DIC",4)="2:0:0:0"
+^COVERAGE("DIC","DIC",5)="2:0:0:0"
+^COVERAGE("DIC","DIC",6)="2:0:0:0"
+^COVERAGE("DIC","EN",0)="2:0:0:0"
+^COVERAGE("DIC","EN",1)="2:0:0:0"
+^COVERAGE("DIC","EN",2)="2:0:0:0"
+^COVERAGE("DIC","EN",3)="2:0:0:0"
+^COVERAGE("DIC","EN",4)="2:0:0:0"
+^COVERAGE("DIC","EN",5)="2:0:0:0"
+^COVERAGE("DIC","EN",6)="2:0:0:0"
+^COVERAGE("DIC","EN",7)="2:0:0:0"
+^COVERAGE("DIC","EN",8)="2:0:0:0"
+^COVERAGE("DIC","EN",9)="2:0:0:0"
+^COVERAGE("DIC","RTN",0)="2:0:0:0"
+^COVERAGE("DIC","RTN",3)="2:0:0:0"
+^COVERAGE("DIC","RTN",6)="2:0:0:0"
+^COVERAGE("DIC","X",1)="2:0:0:0"
+^COVERAGE("DIC","X",4)="2:0:0:0"
+^COVERAGE("DIC","X",5)="2:0:0:0"
+^COVERAGE("DIC","X",6)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE")="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",0)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",1)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",2)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",3)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",4)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",7)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",8)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",11)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",12)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",13)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",14)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",15)="2:0:0:0"
+^COVERAGE("DIC0","GETFILE",16)="2:0:0:0"
+^COVERAGE("DIC0","INIT")="2:0:0:0"
+^COVERAGE("DIC0","INIT",1)="2:0:0:0"
+^COVERAGE("DIC0","INIT",2)="2:0:0:0"
+^COVERAGE("DIC0","INIT",3)="2:0:0:0"
+^COVERAGE("DIC0","INIT",4)="2:0:0:0"
+^COVERAGE("DIC0","INIT",5)="2:0:0:0"
+^COVERAGE("DIC0","INIT",6)="2:0:0:0"
+^COVERAGE("DIC0","INIT",7)="2:0:0:0"
+^COVERAGE("DIC0","INIT",8)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN")="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",0)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",1)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",2)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",3)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",4)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",5)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",5,"FOR_LOOP",1)=2
+^COVERAGE("DIC0","SETIEN",6)="2:0:0:0"
+^COVERAGE("DIC0","SETIEN",7)="2:0:0:0"
+^COVERAGE("DIC1","B",0)="2:0:0:0"
+^COVERAGE("DIC1","DIC1")="2:0:0:0"
+^COVERAGE("DIC1","DIC1",3)="2:0:0:0"
+^COVERAGE("DIC1","DIC1",4)="2:0:0:0"
+^COVERAGE("DIC1","DIC1",5)="2:0:0:0"
+^COVERAGE("DIC1","DO")="4:0:0:0"
+^COVERAGE("DIC1","DO",1)="4:0:0:0"
+^COVERAGE("DIC1","DO",2)="2:0:0:0"
+^COVERAGE("DIC1","DO2",0)="2:0:0:0"
+^COVERAGE("DIC1","DO2",1)="2:0:0:0"
+^COVERAGE("DIC1","DO2",2)="2:0:0:0"
+^COVERAGE("DIC1","DO2",3)="2:0:0:0"
+^COVERAGE("DIC1","GETFA")="4:0:0:0"
+^COVERAGE("DIC1","GETFA",0)="4:0:0:0"
+^COVERAGE("DIC1","GETFA",2)="4:0:0:0"
+^COVERAGE("DIC1","P",1)="2:0:0:0"
+^COVERAGE("DIC1","P",2)="2:0:0:0"
+^COVERAGE("DIC1","PROMPT",1)="2:0:0:0"
+^COVERAGE("DIC1","PROMPT",2)="2:0:0:0"
+^COVERAGE("DIC1","W",0)="2:0:0:0"
+^COVERAGE("DIC1","W",0,"FOR_LOOP",1)=4
+^COVERAGE("DIC1","W",1)="3:0:0:0"
+^COVERAGE("DIC1","W",2)="3:0:0:0"
+^COVERAGE("DIC1","W",3)="2:0:0:0"
+^COVERAGE("DIC1","W",4)="2:0:0:0"
+^COVERAGE("DIC1","W",5)="2:0:0:0"
+^COVERAGE("DIC1","W",6)="2:0:0:0"
+^COVERAGE("DIC1","WOV")="1:0:0:0"
+^COVERAGE("DIC1","WOV",0)="1:0:0:0"
+^COVERAGE("DIC1","WOV",1)="1:0:0:0"
+^COVERAGE("DIC11","GETPRMT")="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",0)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",1)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",2)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",3)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",3,"FOR_LOOP",1)=2
+^COVERAGE("DIC11","GETPRMT",4)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",8)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",9)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",10)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",11)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",12)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",13)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",14)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",15)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",16)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",17)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",18)="2:0:0:0"
+^COVERAGE("DIC11","GETPRMT",19)="2:0:0:0"
+^COVERAGE("DIC11","PR1",0)="2:0:0:0"
+^COVERAGE("DIC11","PR1",1)="2:0:0:0"
+^COVERAGE("DIC11","PR1",2)="2:0:0:0"
+^COVERAGE("DIC11","PR1",3)="2:0:0:0"
+^COVERAGE("DIC11","PR1",4)="2:0:0:0"
+^COVERAGE("DIC11","PR1",6)="2:0:0:0"
+^COVERAGE("DIC11","PR1",8)="2:0:0:0"
+^COVERAGE("DIC11","PR1",9)="2:0:0:0"
+^COVERAGE("DIC11","PR1",11)="2:0:0:0"
+^COVERAGE("DIC11","PR1",12)="2:0:0:0"
+^COVERAGE("DIC11","PR1",13)="2:0:0:0"
+^COVERAGE("DIC11","PR1",14)="2:0:0:0"
+^COVERAGE("DIC11","PR1",15)="2:0:0:0"
+^COVERAGE("DIC11","PR1",16)="2:0:0:0"
+^COVERAGE("DIC11","PROMPT")="2:0:0:0"
+^COVERAGE("DIC11","PROMPT",0)="2:0:0:0"
+^COVERAGE("DIC11","PROMPT",1)="2:0:0:0"
+^COVERAGE("DIC11","PROMPT",1,"FOR_LOOP",1)=2
+^COVERAGE("DIC11","PROMPT",2)="2:0:0:0"
+^COVERAGE("DIC11","PROMPT",3)="2:0:0:0"
+^COVERAGE("DIC11","PROMPT",5)="2:0:0:0"
+^COVERAGE("DIC2","PGM")="4:0:0:0"
+^COVERAGE("DIC2","PGM",0)="4:0:0:0"
+^COVERAGE("DIC2","PGM",1)="4:0:0:0"
+^COVERAGE("DIC2","PGM",2)="4:0:0:0"
+^COVERAGE("DIC2","Q")="2:0:0:0"
+^COVERAGE("DIC2","Q",0)="2:0:0:0"
+^COVERAGE("DIC2","Q",1)="2:0:0:0"
+^COVERAGE("DIC2","Q",2)="2:0:0:0"
+^COVERAGE("DICL","DINDEX")="2:0:0:0"
+^COVERAGE("DICL","DINDEX",0)="2:0:0:0"
+^COVERAGE("DICL","DINDEX",1)="2:0:0:0"
+^COVERAGE("DICL","DINDEX",2)="2:0:0:0"
+^COVERAGE("DICL","DINDEX",5)="2:0:0:0"
+^COVERAGE("DICL","DINDEX",6)="2:0:0:0"
+^COVERAGE("DICUIX","I1",2)="2:0:0:0"
+^COVERAGE("DICUIX","I1",3)="2:0:0:0"
+^COVERAGE("DICUIX","I1",4)="2:0:0:0"
+^COVERAGE("DICUIX","I1",5)="2:0:0:0"
+^COVERAGE("DICUIX","INDEX")="2:0:0:0"
+^COVERAGE("DICUIX","INDEX",0)="2:0:0:0"
+^COVERAGE("DICUIX","X1",2)="2:0:0:0"
+^COVERAGE("DICUIX","X1",8)="2:0:0:0"
+^COVERAGE("DICUIX","X1",9)="2:0:0:0"
+^COVERAGE("DICUIX","X2",2)="2:0:0:0"
+^COVERAGE("DICUIX","X2",3)="2:0:0:0"
+^COVERAGE("DICUIX","X2",4)="2:0:0:0"
+^COVERAGE("DICUIX","X2",5)="2:0:0:0"
+^COVERAGE("DICUIX","X2",8)="2:0:0:0"
+^COVERAGE("DICUIX","X2",11)="2:0:0:0"
+^COVERAGE("DICUIX","X2",12)="2:0:0:0"
+^COVERAGE("DICUIX","X2",13)="2:0:0:0"
+^COVERAGE("DICUIX","X2",14)="2:0:0:0"
+^COVERAGE("DICUIX","X2",15)="2:0:0:0"
+^COVERAGE("DICUIX","X2",15,"FOR_LOOP",1)=2
+^COVERAGE("DICUIX","X2",16)="2:0:0:0"
+^COVERAGE("DICUIX","X2",17)="2:0:0:0"
+^COVERAGE("DICUIX","X2",18)="2:0:0:0"
+^COVERAGE("DICUIX","X2",19)="2:0:0:0"
+^COVERAGE("DICUIX","X2",20)="2:0:0:0"
+^COVERAGE("DICUIX","X2",21)="2:0:0:0"
+^COVERAGE("DICUIX","X2",22)="2:0:0:0"
+^COVERAGE("DICUIX","X2",23)="2:0:0:0"
+^COVERAGE("DICUIX","X2",24)="2:0:0:0"
+^COVERAGE("DICUIX","X2",25)="2:0:0:0"
+^COVERAGE("DICUIX","X2",26)="2:0:0:0"
+^COVERAGE("DICUIX","X2",27)="2:0:0:0"
+^COVERAGE("DICUIX","X2",28)="2:0:0:0"
+^COVERAGE("DICUIX","X2",29)="2:0:0:0"
+^COVERAGE("DICUIX","X2",30)="2:0:0:0"
+^COVERAGE("DICUIX","X2",31)="2:0:0:0"
+^COVERAGE("DICUIX","X2",32)="2:0:0:0"
+^COVERAGE("DICUIX","X2",33)="2:0:0:0"
+^COVERAGE("DICUIX","XREF")="2:0:0:0"
+^COVERAGE("DICUIX","XREF",0)="2:0:0:0"
+^COVERAGE("DICUIX1","G1",2)="2:0:0:0"
+^COVERAGE("DICUIX1","G1",3)="2:0:0:0"
+^COVERAGE("DICUIX1","G1",4)="2:0:0:0"
+^COVERAGE("DICUIX1","G2",2)="2:0:0:0"
+^COVERAGE("DICUIX1","G2",3)="2:0:0:0"
+^COVERAGE("DICUIX1","G3",2)="2:0:0:0"
+^COVERAGE("DICUIX1","G30",1)="2:0:0:0"
+^COVERAGE("DICUIX1","G4",2)="2:0:0:0"
+^COVERAGE("DICUIX1","G4",3)="2:0:0:0"
+^COVERAGE("DICUIX1","G4",4)="2:0:0:0"
+^COVERAGE("DICUIX1","G4",5)="2:0:0:0"
+^COVERAGE("DICUIX1","G4",6)="2:0:0:0"
+^COVERAGE("DICUIX1","G4",7)="2:0:0:0"
+^COVERAGE("DICUIX1","G5",2)="2:0:0:0"
+^COVERAGE("DICUIX1","G5",3)="2:0:0:0"
+^COVERAGE("DICUIX1","G5",7)="2:0:0:0"
+^COVERAGE("DICUIX1","GET")="2:0:0:0"
+^COVERAGE("DICUIX1","GET",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C1",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C1",1)="2:0:0:0"
+^COVERAGE("DICUIX2","C2",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C2",1)="2:0:0:0"
+^COVERAGE("DICUIX2","C3",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C3",1)="2:0:0:0"
+^COVERAGE("DICUIX2","C3",2)="2:0:0:0"
+^COVERAGE("DICUIX2","C3",5)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",1)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",2)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",3)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",4)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",5)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",6)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",7)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",8)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",9)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",10)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",11)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",12)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",17)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",18)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",23)="2:0:0:0"
+^COVERAGE("DICUIX2","C4",24)="2:0:0:0"
+^COVERAGE("DICUIX2","C5",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C5",1)="2:0:0:0"
+^COVERAGE("DICUIX2","C6",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C6",18)="2:0:0:0"
+^COVERAGE("DICUIX2","C6",19)="2:0:0:0"
+^COVERAGE("DICUIX2","C6",20)="2:0:0:0"
+^COVERAGE("DICUIX2","C7",0)="2:0:0:0"
+^COVERAGE("DICUIX2","C7",7)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1")="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",1)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",2)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",3)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",4)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",5)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",6)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON1",7)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2")="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",1)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",2)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",3)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",4)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",5)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",6)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",7)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",8)="2:0:0:0"
+^COVERAGE("DICUIX2","COMMON2",9)="2:0:0:0"
+^COVERAGE("DIEFU","IENX",1)="2:0:0:0"
+^COVERAGE("DIEFU","IENX",2)="2:0:0:0"
+^COVERAGE("DIEFU","IENX",3)="2:0:0:0"
+^COVERAGE("DIEFU","IENX",3,"FOR_LOOP",1)=4
+^COVERAGE("DIEFU","IENX",4)="2:0:0:0"
+^COVERAGE("DIEFU","IENX",5)="2:0:0:0"
+^COVERAGE("DILF","CREF")="4:0:0:0"
+^COVERAGE("DILF","CREF",0)="4:0:0:0"
+^COVERAGE("DILF","IENS")="2:0:0:0"
+^COVERAGE("DILF","IENS",0)="2:0:0:0"
+^COVERAGE("DILF","IENS",1)="2:0:0:0"
+^COVERAGE("DILF","OREF")="2:0:0:0"
+^COVERAGE("DILF","OREF",0)="2:0:0:0"
+^COVERAGE("DILIBF","FNO")="2:0:0:0"
+^COVERAGE("DILIBF","FNO",0)="2:0:0:0"
+^COVERAGE("DILIBF","FNO",1)="2:0:0:0"
+^COVERAGE("DILIBF","FNO",2)="2:0:0:0"
+^COVERAGE("DIQGU","ENCREF",0)="4:0:0:0"
+^COVERAGE("DIQGU","ENOREF",0)="2:0:0:0"
+^COVERAGE("DIQGU","OR2")="2:0:0:0"
+^COVERAGE("DIQGU","OR2",0)="2:0:0:0"
+^COVERAGE("XINDEX","A2",0)="468:0:4000:4000"
+^COVERAGE("XINDEX","A2",1)="467:0:0:0"
+^COVERAGE("XINDEX","A2",2)="467:0:0:0"
+^COVERAGE("XINDEX","A2",3)="467:4000:0:4000"
+^COVERAGE("XINDEX","A2",4)="467:0:4000:4000"
+^COVERAGE("XINDEX","A2",5)="467:0:0:0"
+^COVERAGE("XINDEX","ALIVE",1)="1:0:0:0"
+^COVERAGE("XINDEX","B5",0)="467:188012:220012:408024"
+^COVERAGE("XINDEX","B5",0,"FOR_LOOP",1)=44620
+^COVERAGE("XINDEX","B5",1)="467:20000:8000:28000"
+^COVERAGE("XINDEX","B5",2)="467:4000:0:4000"
+^COVERAGE("XINDEX","B5",3)="467:0:0:0"
+^COVERAGE("XINDEX","B5",4)="467:4000:0:4000"
+^COVERAGE("XINDEX","B5",5)="467:0:0:0"
+^COVERAGE("XINDEX","BEG")="467:2460149:2872194:5332343"
+^COVERAGE("XINDEX","BEG",1)="467:8000:0:8000"
+^COVERAGE("XINDEX","BEG",2)="467:4000:0:4000"
+^COVERAGE("XINDEX","BEG",3)="467:0:4000:4000"
+^COVERAGE("XINDEX","BEG",4)="467:0:4000:4000"
+^COVERAGE("XINDEX","BEG",5)="467:4001:0:4001"
+^COVERAGE("XINDEX","BEG",7)="467:0:0:0"
+^COVERAGE("XINDEX","BEG",8)="467:0:0:0"
+^COVERAGE("XINDEX","BEG",9)="467:0:0:0"
+^COVERAGE("XINDEX","BEG",11)="467:4000:0:4000"
+^COVERAGE("XINDEX","BEG",12)="467:0:4000:4000"
+^COVERAGE("XINDEX","BEG",14)="467:0:0:0"
+^COVERAGE("XINDEX","BEG",15)="467:0:0:0"
+^COVERAGE("XINDEX","BEG",16)="467:0:0:0"
+^COVERAGE("XINDEX","CD",0)="44620:32001:36002:68003"
+^COVERAGE("XINDEX","CD",1)="44620:40002:60004:100006"
+^COVERAGE("XINDEX","CD",2)="44620:40001:60002:100003"
+^COVERAGE("XINDEX","CD",3)="44620:36002:44004:80006"
+^COVERAGE("XINDEX","CD",4)="44620:28000:40002:68002"
+^COVERAGE("XINDEX","CD",5)="44620:28002:52001:80003"
+^COVERAGE("XINDEX","CD",6)="10770:28003:20000:48003"
+^COVERAGE("XINDEX","CD",6,"FOR_LOOP",1)=57531
+^COVERAGE("XINDEX","CD",7)="10770:24004:16000:40004"
+^COVERAGE("XINDEX","CD",9)="44620:60005:40004:100009"
+^COVERAGE("XINDEX","CD",10)="44620:44003:48005:92008"
+^COVERAGE("XINDEX","CD",12)="44620:52004:44002:96006"
+^COVERAGE("XINDEX","EE",0)="116081:148007:200014:348021"
+^COVERAGE("XINDEX","EE",1)="71461:44004:44002:88006"
+^COVERAGE("XINDEX","EE",2)="71461:100007:80003:180010"
+^COVERAGE("XINDEX","EE",3)="54870:44001:48001:92002"
+^COVERAGE("XINDEX","EE",4)="53608:88008:100009:188017"
+^COVERAGE("XINDEX","EE",5)="53608:72006:68004:140010"
+^COVERAGE("XINDEX","EE",6)="53608:76005:72004:148009"
+^COVERAGE("XINDEX","EE",8)="53608:60003:64005:124008"
+^COVERAGE("XINDEX","EE",9)="53608:48003:72003:120006"
+^COVERAGE("XINDEX","EE",10)="53608:52002:96008:148010"
+^COVERAGE("XINDEX","EE",13)="53608:52003:44001:96004"
+^COVERAGE("XINDEX","EE",14)="53608:96007:112006:208013"
+^COVERAGE("XINDEX","EE",15)="53608:24001:52004:76005"
+^COVERAGE("XINDEX","EE",16)="53608:52005:88007:140012"
+^COVERAGE("XINDEX","EE",17)="53608:128008:208017:336025"
+^COVERAGE("XINDEX","F")="1559:4000:4001:8001"
+^COVERAGE("XINDEX","F",0)="1559:4000:0:4000"
+^COVERAGE("XINDEX","G")="1932:56003:96009:152012"
+^COVERAGE("XINDEX","G",0)="1932:4000:8002:12002"
+^COVERAGE("XINDEX","H")="11:0:0:0"
+^COVERAGE("XINDEX","H",0)="11:0:0:0"
+^COVERAGE("XINDEX","K")="2218:40001:24002:64003"
+^COVERAGE("XINDEX","K",0)="2218:4000:4000:8000"
+^COVERAGE("XINDEX","K",1)="2218:0:4001:4001"
+^COVERAGE("XINDEX","L")="259:4001:4000:8001"
+^COVERAGE("XINDEX","L",0)="259:0:0:0"
+^COVERAGE("XINDEX","LN",0)="44620:68005:104005:172010"
+^COVERAGE("XINDEX","LN",1)="44620:40001:64004:104005"
+^COVERAGE("XINDEX","LN",2)="5073:12000:4001:16001"
+^COVERAGE("XINDEX","LN",3)="5073:4000:8000:12000"
+^COVERAGE("XINDEX","LN",4)="5073:20001:0:20001"
+^COVERAGE("XINDEX","LN",5)="5073:20003:12002:32005"
+^COVERAGE("XINDEX","LN",6)="5073:12002:16000:28002"
+^COVERAGE("XINDEX","LOAD")="467:88003:196019:284022"
+^COVERAGE("XINDEX","LOAD",0)="467:88003:196019:284022"
+^COVERAGE("XINDEX","LOAD",1)="467:0:0:0"
+^COVERAGE("XINDEX","LOAD",2)="467:0:0:0"
+^COVERAGE("XINDEX","M")="30:4000:0:4000"
+^COVERAGE("XINDEX","M",0)="30:0:0:0"
+^COVERAGE("XINDEX","N")="1721:88005:80004:168009"
+^COVERAGE("XINDEX","N",0)="1721:4000:0:4000"
+^COVERAGE("XINDEX","POSTRTN")="467:108009:96003:204012"
+^COVERAGE("XINDEX","POSTRTN",1)="467:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",2)="467:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",3)="467:12000:8000:20000"
+^COVERAGE("XINDEX","POSTRTN",3,"FOR_LOOP",1)=2558
+^COVERAGE("XINDEX","POSTRTN",4)="2091:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",5)="2044:4000:0:4000"
+^COVERAGE("XINDEX","POSTRTN",6)="2044:4000:0:4000"
+^COVERAGE("XINDEX","POSTRTN",9)="2044:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",10)="467:0:4000:4000"
+^COVERAGE("XINDEX","POSTRTN",11)="467:12002:16001:28003"
+^COVERAGE("XINDEX","POSTRTN",11,"FOR_LOOP",1)=5540
+^COVERAGE("XINDEX","POSTRTN",12)="5073:0:4000:4000"
+^COVERAGE("XINDEX","POSTRTN",13)="5073:8000:4000:12000"
+^COVERAGE("XINDEX","POSTRTN",14)="5073:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",15)="467:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",16)="467:28001:20001:48002"
+^COVERAGE("XINDEX","POSTRTN",16,"FOR_LOOP",1)=16376
+^COVERAGE("XINDEX","POSTRTN",17)="15909:40006:40001:80007"
+^COVERAGE("XINDEX","POSTRTN",18)="15909:0:0:0"
+^COVERAGE("XINDEX","POSTRTN",19)="467:0:0:0"
+^COVERAGE("XINDEX","Q")="7762:12000:20001:32001"
+^COVERAGE("XINDEX","Q",0)="7762:4000:16001:20001"
+^COVERAGE("XINDEX","QUOTE")="36371:188012:232009:420021"
+^COVERAGE("XINDEX","QUOTE",0)="36371:156010:192008:348018"
+^COVERAGE("XINDEX","QUOTE",0,"FOR_LOOP",1)=323268
+^COVERAGE("XINDEX","QUOTE",1)="36371:20002:20001:40003"
+^COVERAGE("XINDEX","R")="85:0:8001:8001"
+^COVERAGE("XINDEX","R",0)="85:0:0:0"
+^COVERAGE("XINDEX","S")="17549:716055:988057:1704112"
+^COVERAGE("XINDEX","S",0)="17549:28003:28003:56006"
+^COVERAGE("XINDEX","SE2",0)="86891:176010:272017:448027"
+^COVERAGE("XINDEX","SE2",1)="85079:264015:376016:640031"
+^COVERAGE("XINDEX","SE2",2)="85079:72005:112010:184015"
+^COVERAGE("XINDEX","SEP")="107216:736054:648038:1384092"
+^COVERAGE("XINDEX","SEP",0)="107216:580045:440030:1020075"
+^COVERAGE("XINDEX","SEP",0,"FOR_LOOP",1)=1019212
+^COVERAGE("XINDEX","SEP",1)="107216:120007:144005:264012"
+^COVERAGE("XINDEX","SET")="85079:772044:1124063:1896107"
+^COVERAGE("XINDEX","SET",0)="85079:176007:168008:344015"
+^COVERAGE("XINDEX","SET",0,"FOR_LOOP",1)=74812
+^COVERAGE("XINDEX","SET",1)="85079:64005:144010:208015"
+^COVERAGE("XINDEX","ST",0)="44620:68001:56004:124005"
+^COVERAGE("XINDEX","ST",2)="44620:260012:376038:636050"
+^COVERAGE("XINDEX","ST",2,"FOR_LOOP",1)=85813
+^COVERAGE("XINDEX","ST",2,"FOR_LOOP",2)=126272
+^COVERAGE("XINDEX","ST",3)="44620:224014:184014:408028"
+^COVERAGE("XINDEX","ST",4)="44620:0:0:0"
+^COVERAGE("XINDEX","U")="72:0:0:0"
+^COVERAGE("XINDEX","U",0)="72:0:0:0"
+^COVERAGE("XINDEX","W")="4584:156009:200014:356023"
+^COVERAGE("XINDEX","W",0)="4584:0:16001:16001"
+^COVERAGE("XINDEX","X")="220:0:0:0"
+^COVERAGE("XINDEX","X",0)="220:0:0:0"
+^COVERAGE("XINDEX","XINDEX")="1:32002:36000:68002"
+^COVERAGE("XINDEX","XINDEX",3)="1:0:0:0"
+^COVERAGE("XINDX1","A",0)="75:0:4000:4000"
+^COVERAGE("XINDX1","A",1)="75:0:0:0"
+^COVERAGE("XINDX1","A",2)="75:0:0:0"
+^COVERAGE("XINDX1","B",0)="75:0:0:0"
+^COVERAGE("XINDX1","B",4)="75:0:0:0"
+^COVERAGE("XINDX1","B",6)="75:0:0:0"
+^COVERAGE("XINDX1","B",7)="75:0:0:0"
+^COVERAGE("XINDX1","E")="73:0:4000:4000"
+^COVERAGE("XINDX1","E",0)="73:0:0:0"
+^COVERAGE("XINDX1","XINDX1")="2:0:0:0"
+^COVERAGE("XINDX1","XINDX1",3)="2:0:0:0"
+^COVERAGE("XINDX10","ASK")="1:0:0:0"
+^COVERAGE("XINDX10","ASK",1)="1:0:0:0"
+^COVERAGE("XINDX10","ASK",2)="1:0:0:0"
+^COVERAGE("XINDX10","ASK",3)="1:0:0:0"
+^COVERAGE("XINDX10","ASK",8)="1:0:0:0"
+^COVERAGE("XINDX2","%")="44620:132010:232014:364024"
+^COVERAGE("XINDX2","%",0)="44620:96008:92005:188013"
+^COVERAGE("XINDX2","%",0,"FOR_LOOP",1)=62810
+^COVERAGE("XINDX2","%",1)="44620:16001:68003:84004"
+^COVERAGE("XINDX2","ARG")="329774:1516089:2124136:3640225"
+^COVERAGE("XINDX2","ARG",1)="330498:328020:360021:688041"
+^COVERAGE("XINDX2","ARG",2)="262221:228015:296022:524037"
+^COVERAGE("XINDX2","ARG",3)="226556:260020:468034:728054"
+^COVERAGE("XINDX2","ARG",4)="126854:104004:160011:264015"
+^COVERAGE("XINDX2","ARG",5)="117750:136007:148011:284018"
+^COVERAGE("XINDX2","ARG",6)="88629:60001:96003:156004"
+^COVERAGE("XINDX2","ARG",7)="88424:80005:100006:180011"
+^COVERAGE("XINDX2","ARG",8)="86550:72002:108007:180009"
+^COVERAGE("XINDX2","ARGG")="18715:288018:352019:640037"
+^COVERAGE("XINDX2","ARGG",0)="18715:76007:84005:160012"
+^COVERAGE("XINDX2","ARGG",0,"FOR_LOOP",1)=49672
+^COVERAGE("XINDX2","ARGS")="44410:464031:676031:1140062"
+^COVERAGE("XINDX2","ARGS",1)="63125:620038:844037:1464075"
+^COVERAGE("XINDX2","ARGS",1,"FOR_LOOP",1)=291597
+^COVERAGE("XINDX2","ARGS",2)="63125:24001:60004:84005"
+^COVERAGE("XINDX2","DN")="44410:208011:284017:492028"
+^COVERAGE("XINDX2","DN",0)="44410:44003:108008:152011"
+^COVERAGE("XINDX2","DN",1)="44410:152008:144006:296014"
+^COVERAGE("XINDX2","EXT",1)="1970:4000:8001:12001"
+^COVERAGE("XINDX2","EXT",2)="1970:0:0:0"
+^COVERAGE("XINDX2","EXT",3)="1970:8001:12001:20002"
+^COVERAGE("XINDX2","EXT",4)="1970:0:4000:4000"
+^COVERAGE("XINDX2","FLUSH")="94:0:0:0"
+^COVERAGE("XINDX2","FLUSH",0)="94:0:0:0"
+^COVERAGE("XINDX2","FLUSH",1)="94:0:0:0"
+^COVERAGE("XINDX2","FLUSH",1,"FOR_LOOP",1)=415
+^COVERAGE("XINDX2","FLUSH",2)="94:0:0:0"
+^COVERAGE("XINDX2","FNC")="12:0:0:0"
+^COVERAGE("XINDX2","FNC",0)="12:0:0:0"
+^COVERAGE("XINDX2","FNC",1)="12:0:0:0"
+^COVERAGE("XINDX2","FNC",2)="12:0:0:0"
+^COVERAGE("XINDX2","FNC",3)="12:0:0:0"
+^COVERAGE("XINDX2","FNC",4)="12:0:0:0"
+^COVERAGE("XINDX2","FUN")="29121:340019:424027:764046"
+^COVERAGE("XINDX2","FUN",0)="29121:36004:40002:76006"
+^COVERAGE("XINDX2","FUN",1)="23452:48002:72003:120005"
+^COVERAGE("XINDX2","FUN",2)="23452:20000:44003:64003"
+^COVERAGE("XINDX2","FUN",3)="23393:96004:56005:152009"
+^COVERAGE("XINDX2","FUN",3,"FOR_LOOP",1)=147754
+^COVERAGE("XINDX2","FUN",4)="23393:48003:56005:104008"
+^COVERAGE("XINDX2","FUN",5)="23393:60004:92005:152009"
+^COVERAGE("XINDX2","GLO",0)="9104:28002:28001:56003"
+^COVERAGE("XINDX2","GLO",1)="9104:12001:20001:32002"
+^COVERAGE("XINDX2","GLO",2)="9104:16000:28001:44001"
+^COVERAGE("XINDX2","GLO",3)="9104:36002:80004:116006"
+^COVERAGE("XINDX2","GLO",4)="9104:8000:4000:12000"
+^COVERAGE("XINDX2","INC")="322910:416022:652029:1068051"
+^COVERAGE("XINDX2","INC",0)="365505:320019:472020:792039"
+^COVERAGE("XINDX2","INC2")="42595:104006:148008:252014"
+^COVERAGE("XINDX2","INC2",0)="42595:48001:40003:88004"
+^COVERAGE("XINDX2","LOC")="99702:576031:736052:1312083"
+^COVERAGE("XINDX2","LOC",0)="99702:144010:156013:300023"
+^COVERAGE("XINDX2","LOC",1)="99702:124004:148011:272015"
+^COVERAGE("XINDX2","LOC",2)="99702:212011:272014:484025"
+^COVERAGE("XINDX2","LOC",3)="99702:52005:96006:148011"
+^COVERAGE("XINDX2","NAK",0)="996:0:0:0"
+^COVERAGE("XINDX2","NAK",1)="996:0:0:0"
+^COVERAGE("XINDX2","PAT")="205:4000:0:4000"
+^COVERAGE("XINDX2","PAT",0)="205:0:0:0"
+^COVERAGE("XINDX2","PAT",1)="205:4000:0:4000"
+^COVERAGE("XINDX2","PAT",1,"FOR_LOOP",1)=457
+^COVERAGE("XINDX2","PAT",2)="205:0:0:0"
+^COVERAGE("XINDX2","PATCODE")="457:4000:4000:8000"
+^COVERAGE("XINDX2","PATCODE",0)="457:0:4000:4000"
+^COVERAGE("XINDX2","PATCODE",1)="358:4000:0:4000"
+^COVERAGE("XINDX2","PATCODE",1,"FOR_LOOP",1)=791
+^COVERAGE("XINDX2","PATCODE",2)="358:0:0:0"
+^COVERAGE("XINDX2","PATCODE",3)="358:0:0:0"
+^COVERAGE("XINDX2","PATCODE",4)="358:0:0:0"
+^COVERAGE("XINDX2","PATQ")="99:4000:4000:8000"
+^COVERAGE("XINDX2","PATQ",0)="99:0:4000:4000"
+^COVERAGE("XINDX2","PATQ",0,"FOR_LOOP",1)=247
+^COVERAGE("XINDX2","PATQ",1)="99:4000:0:4000"
+^COVERAGE("XINDX2","PATQ",2)="99:0:0:0"
+^COVERAGE("XINDX2","PEEK")="112687:168013:248022:416035"
+^COVERAGE("XINDX2","PEEK",0)="112687:120009:164010:284019"
+^COVERAGE("XINDX2","PEEKDN")="17373:56002:40000:96002"
+^COVERAGE("XINDX2","PEEKDN",0)="17373:48002:32000:80002"
+^COVERAGE("XINDX2","REPCNT")="457:0:0:0"
+^COVERAGE("XINDX2","REPCNT",0)="457:0:0:0"
+^COVERAGE("XINDX2","REPCNT",0,"FOR_LOOP",1)=1004
+^COVERAGE("XINDX2","REPCNT",1)="457:0:0:0"
+^COVERAGE("XINDX2","REPCNT",2)="457:0:0:0"
+^COVERAGE("XINDX2","SPV",1)="3699:0:8001:8001"
+^COVERAGE("XINDX2","SPV",2)="3699:0:0:0"
+^COVERAGE("XINDX2","ST")="110835:464030:648049:1112079"
+^COVERAGE("XINDX2","ST",0)="110835:192009:248021:440030"
+^COVERAGE("XINDX2","ST",1)="110835:100008:156011:256019"
+^COVERAGE("XINDX2","ST",2)="110835:76005:116005:192010"
+^COVERAGE("XINDX2","TEXT",0)="59:0:0:0"
+^COVERAGE("XINDX2","TEXT",1)="59:0:0:0"
+^COVERAGE("XINDX2","TEXT",2)="59:0:0:0"
+^COVERAGE("XINDX2","TEXT",3)="59:0:0:0"
+^COVERAGE("XINDX2","UP")="44410:116012:180012:296024"
+^COVERAGE("XINDX2","UP",1)="44410:112012:116006:228018"
+^COVERAGE("XINDX2","VA")="5073:16001:20000:36001"
+^COVERAGE("XINDX2","VA",0)="5073:4000:12000:16000"
+^COVERAGE("XINDX2","VA",1)="5073:8000:4000:12000"
+^COVERAGE("XINDX2","VT")="10205:4001:24002:28003"
+^COVERAGE("XINDX2","VT",0)="10205:0:8000:8000"
+^COVERAGE("XINDX2","VT",1)="10205:0:4000:4000"
+^COVERAGE("XINDX3","A",0)="8136:36001:12001:48002"
+^COVERAGE("XINDX3","ASM")="312:12001:0:12001"
+^COVERAGE("XINDX3","ASM",0)="312:0:0:0"
+^COVERAGE("XINDX3","ASM",1)="312:8001:0:8001"
+^COVERAGE("XINDX3","ASM",1,"FOR_LOOP",1)=2110
+^COVERAGE("XINDX3","ASM",2)="312:0:0:0"
+^COVERAGE("XINDX3","DN")="498:4000:4000:8000"
+^COVERAGE("XINDX3","DN",0)="498:0:4000:4000"
+^COVERAGE("XINDX3","DN",1)="498:4000:0:4000"
+^COVERAGE("XINDX3","FL")="63250:152007:260014:412021"
+^COVERAGE("XINDX3","FL",1)="63250:72000:144009:216009"
+^COVERAGE("XINDX3","FL",2)="63250:64006:80004:144010"
+^COVERAGE("XINDX3","INC")="145482:224018:308026:532044"
+^COVERAGE("XINDX3","INC",0)="145482:188015:196015:384030"
+^COVERAGE("XINDX3","KL",1)="2218:0:4000:4000"
+^COVERAGE("XINDX3","KL1")="28:0:0:0"
+^COVERAGE("XINDX3","KL1",0)="28:0:0:0"
+^COVERAGE("XINDX3","KL2")="724:4000:28000:32000"
+^COVERAGE("XINDX3","KL2",0)="724:0:0:0"
+^COVERAGE("XINDX3","KL2",1)="724:0:4000:4000"
+^COVERAGE("XINDX3","KL2",2)="724:0:0:0"
+^COVERAGE("XINDX3","KL3")="3320:12002:36002:48004"
+^COVERAGE("XINDX3","KL3",0)="3320:4000:8000:12000"
+^COVERAGE("XINDX3","KL3",1)="3320:4001:4000:8001"
+^COVERAGE("XINDX3","KL5",0)="3320:0:20002:20002"
+^COVERAGE("XINDX3","MULT")="498:8001:4000:12001"
+^COVERAGE("XINDX3","MULT",0)="498:4001:0:4001"
+^COVERAGE("XINDX3","MULT",1)="498:4000:4000:8000"
+^COVERAGE("XINDX3","MULT",1,"FOR_LOOP",1)=2401
+^COVERAGE("XINDX3","MULT",2)="498:0:0:0"
+^COVERAGE("XINDX3","N2",0)="23604:68004:36003:104007"
+^COVERAGE("XINDX3","N2",3)="11802:16002:4000:20002"
+^COVERAGE("XINDX3","N2",4)="187:0:0:0"
+^COVERAGE("XINDX3","N2",5)="187:0:0:0"
+^COVERAGE("XINDX3","N2",6)="11628:12001:20002:32003"
+^COVERAGE("XINDX3","N2",7)="11628:12000:8000:20000"
+^COVERAGE("XINDX3","NE")="779:32002:16001:48003"
+^COVERAGE("XINDX3","NE",1)="2500:4000:4000:8000"
+^COVERAGE("XINDX3","NE",2)="2500:4000:20000:24000"
+^COVERAGE("XINDX3","PEEK")="498:0:0:0"
+^COVERAGE("XINDX3","PEEK",0)="498:0:0:0"
+^COVERAGE("XINDX3","PEEKDN")="39:0:0:0"
+^COVERAGE("XINDX3","PEEKDN",0)="39:0:0:0"
+^COVERAGE("XINDX3","RD",0)="85:0:0:0"
+^COVERAGE("XINDX3","RD1",0)="278:0:4001:4001"
+^COVERAGE("XINDX3","RD1",3)="193:0:4000:4000"
+^COVERAGE("XINDX3","RD1",4)="85:0:0:0"
+^COVERAGE("XINDX3","RD1",5)="85:0:0:0"
+^COVERAGE("XINDX3","RD2")="85:0:4000:4000"
+^COVERAGE("XINDX3","RD2",0)="255:0:0:0"
+^COVERAGE("XINDX3","RD2",1)="170:0:0:0"
+^COVERAGE("XINDX3","RD2",2)="170:0:4000:4000"
+^COVERAGE("XINDX3","RD2",3)="85:0:0:0"
+^COVERAGE("XINDX3","RD3")="108:0:0:0"
+^COVERAGE("XINDX3","RD3",0)="161:0:0:0"
+^COVERAGE("XINDX3","RD3",1)="37:0:0:0"
+^COVERAGE("XINDX3","RD3",2)="37:0:0:0"
+^COVERAGE("XINDX3","S",1)="17579:48005:56003:104008"
+^COVERAGE("XINDX3","S2",0)="110559:164008:220011:384019"
+^COVERAGE("XINDX3","S2",1)="92980:64007:96005:160012"
+^COVERAGE("XINDX3","S2",2)="92980:52004:100005:152009"
+^COVERAGE("XINDX3","S2",3)="87238:60005:68003:128008"
+^COVERAGE("XINDX3","S2",4)="63916:68007:68004:136011"
+^COVERAGE("XINDX3","S2",5)="846:0:0:0"
+^COVERAGE("XINDX3","S2",6)="846:0:4000:4000"
+^COVERAGE("XINDX3","S2",10)="63916:56004:60003:116007"
+^COVERAGE("XINDX3","S2",11)="62481:40002:60003:100005"
+^COVERAGE("XINDX3","S2",12)="62313:56003:56005:112008"
+^COVERAGE("XINDX3","S2",13)="61815:76007:152010:228017"
+^COVERAGE("XINDX3","UP")="498:8000:4000:12000"
+^COVERAGE("XINDX3","UP",1)="498:8000:4000:12000"
+^COVERAGE("XINDX3","VLN",1)="15909:32002:16001:48003"
+^COVERAGE("XINDX3","VLN",2)="15909:44002:28003:72005"
+^COVERAGE("XINDX3","VLNF")="15909:120006:60005:180011"
+^COVERAGE("XINDX3","VLNF",0)="15909:32002:12001:44003"
+^COVERAGE("XINDX4","CNG")="2186:0:24001:24001"
+^COVERAGE("XINDX4","CNG",0)="2186:0:0:0"
+^COVERAGE("XINDX4","CNG",2)="2186:0:8001:8001"
+^COVERAGE("XINDX4","CNG",2,"FOR_LOOP",1)=2202
+^COVERAGE("XINDX4","CNG",3)="2186:0:12000:12000"
+^COVERAGE("XINDX4","DG",0)="8937:20003:16000:36003"
+^COVERAGE("XINDX4","DG",1)="8937:12000:16001:28001"
+^COVERAGE("XINDX4","DG",2)="8937:8001:20002:28003"
+^COVERAGE("XINDX4","DG",3)="8937:16000:12000:28000"
+^COVERAGE("XINDX4","DG",4)="8937:4000:12001:16001"
+^COVERAGE("XINDX4","DG",5)="8937:0:12002:12002"
+^COVERAGE("XINDX4","DG",6)="8937:12001:12000:24001"
+^COVERAGE("XINDX4","DG",7)="8937:12000:20003:32003"
+^COVERAGE("XINDX4","DG",8)="8937:24001:4001:28002"
+^COVERAGE("XINDX4","DG",9)="8937:4000:12001:16001"
+^COVERAGE("XINDX4","DG",10)="8937:16001:28001:44002"
+^COVERAGE("XINDX4","DG",11)="8937:8000:12000:20000"
+^COVERAGE("XINDX4","DG",12)="8937:4000:16002:20002"
+^COVERAGE("XINDX4","DG",13)="8937:8000:12002:20002"
+^COVERAGE("XINDX4","DG",14)="8937:0:4000:4000"
+^COVERAGE("XINDX4","DG",15)="8937:36002:32002:68004"
+^COVERAGE("XINDX4","DG",16)="8937:8001:4001:12002"
+^COVERAGE("XINDX4","DG",17)="8387:12002:4000:16002"
+^COVERAGE("XINDX4","DG1")="8449:168011:180013:348024"
+^COVERAGE("XINDX4","DG1",0)="8449:12001:16001:28002"
+^COVERAGE("XINDX4","FR",0)="525:0:4001:4001"
+^COVERAGE("XINDX4","FR",1)="525:0:0:0"
+^COVERAGE("XINDX4","FR",2)="525:0:0:0"
+^COVERAGE("XINDX4","INSIDE")="2202:4001:32001:36002"
+^COVERAGE("XINDX4","INSIDE",0)="2202:0:16000:16000"
+^COVERAGE("XINDX4","INSIDE",1)="2202:0:4000:4000"
+^COVERAGE("XINDX4","INSIDE",2)="2202:4001:4000:8001"
+^COVERAGE("XINDX4","LO",1)="259:0:0:0"
+^COVERAGE("XINDX4","LO",2)="259:0:0:0"
+^COVERAGE("XINDX4","LO",3)="259:0:0:0"
+^COVERAGE("XINDX4","LO",4)="259:0:4000:4000"
+^COVERAGE("XINDX4","LO",4,"FOR_LOOP",1)=260
+^COVERAGE("XINDX4","LO",5)="260:0:0:0"
+^COVERAGE("XINDX4","LO",6)="260:0:0:0"
+^COVERAGE("XINDX4","LO",7)="260:0:0:0"
+^COVERAGE("XINDX4","LO",8)="89:0:0:0"
+^COVERAGE("XINDX4","LO",9)="89:0:0:0"
+^COVERAGE("XINDX4","LO",10)="89:4001:0:4001"
+^COVERAGE("XINDX4","LO",12)="259:0:0:0"
+^COVERAGE("XINDX4","LO",13)="259:0:0:0"
+^COVERAGE("XINDX4","LOOP")="14735:44003:108008:152011"
+^COVERAGE("XINDX4","LOOP",0)="14735:28002:72005:100007"
+^COVERAGE("XINDX4","LOOP",0,"FOR_LOOP",1)=68121
+^COVERAGE("XINDX4","LOOP",1)="14735:4000:32003:36003"
+^COVERAGE("XINDX4","PAREN")="2638:24000:36004:60004"
+^COVERAGE("XINDX4","PAREN",0)="2638:4000:8000:12000"
+^COVERAGE("XINDX4","PAREN",1)="2638:20000:16001:36001"
+^COVERAGE("XINDX4","PAREN",1,"FOR_LOOP",1)=50171
+^COVERAGE("XINDX4","PAREN",2)="2638:0:8002:8002"
+^COVERAGE("XINDX4","PAREN",3)="2638:0:0:0"
+^COVERAGE("XINDX4","PRUNE")="2186:8001:16001:24002"
+^COVERAGE("XINDX4","PRUNE",0)="2186:8001:4000:12001"
+^COVERAGE("XINDX4","PRUNE",1)="2186:0:8001:8001"
+^COVERAGE("XINDX4","PRUNE",1,"FOR_LOOP",1)=2186
+^COVERAGE("XINDX4","PRUNE",2)="2186:0:4000:4000"
+^COVERAGE("XINDX4","PRUNE",2,"FOR_LOOP",1)=2187
+^COVERAGE("XINDX4","PRUNE",3)="2186:0:0:0"
+^COVERAGE("XINDX4","Q",1)="747:8000:0:8000"
+^COVERAGE("XINDX4","Q",2)="747:0:0:0"
+^COVERAGE("XINDX4","QUOTE")="2402:28002:28000:56002"
+^COVERAGE("XINDX4","QUOTE",0)="2402:20002:20000:40002"
+^COVERAGE("XINDX4","QUOTE",0,"FOR_LOOP",1)=23674
+^COVERAGE("XINDX4","QUOTE",1)="2402:0:0:0"
+^COVERAGE("XINDX4","QUOTE",2)="2402:8000:4000:12000"
+^COVERAGE("XINDX4","ST")="8937:24000:16002:40002"
+^COVERAGE("XINDX4","ST",0)="8937:12000:8000:20000"
+^COVERAGE("XINDX4","ST",1)="8937:8000:8002:16002"
+^COVERAGE("XINDX4","WR",0)="4584:12001:12000:24001"
+^COVERAGE("XINDX4","WR",1)="4584:0:8000:8000"
+^COVERAGE("XINDX4","WR",2)="4584:72004:56006:128010"
+^COVERAGE("XINDX4","WR",2,"FOR_LOOP",1)=27607
+^COVERAGE("XINDX4","WR",3)="23023:8002:32003:40005"
+^COVERAGE("XINDX4","WR",4)="20835:12000:32001:44001"
+^COVERAGE("XINDX4","WR",5)="20835:24002:8001:32003"
+^COVERAGE("XINDX4","WR",6)="20835:24000:36002:60002"
+^COVERAGE("XINDX4","WR",7)="20835:0:0:0"
+^COVERAGE("XINDX4","WR",8)="4584:4000:0:4000"
+^COVERAGE("XINDX4","XE",0)="220:0:0:0"
+^COVERAGE("XINDX4","XE",1)="220:0:0:0"
+^COVERAGE("XINDX5","A",0)="468:0:4000:4000"
+^COVERAGE("XINDX5","A",1)="467:28002:24000:52002"
+^COVERAGE("XINDX5","A",1,"FOR_LOOP",1)=4011
+^COVERAGE("XINDX5","A",2)="467:0:0:0"
+^COVERAGE("XINDX5","AA")="3544:48004:68006:116010"
+^COVERAGE("XINDX5","AA",0)="3544:8002:16003:24005"
+^COVERAGE("XINDX5","AA",1)="1902:0:4000:4000"
+^COVERAGE("XINDX5","AA",2)="1902:4001:0:4001"
+^COVERAGE("XINDX5","AA",3)="1902:12001:4001:16002"
+^COVERAGE("XINDX5","AA",4)="1902:12000:32002:44002"
+^COVERAGE("XINDX5","AA",5)="1902:0:0:0"
+^COVERAGE("XINDX5","AA",6)="1209:0:0:0"
+^COVERAGE("XINDX5","AA",7)="1209:8000:4000:12000"
+^COVERAGE("XINDX5","AA",8)="1209:0:0:0"
+^COVERAGE("XINDX5","AA",9)="1642:0:4000:4000"
+^COVERAGE("XINDX5","AA",10)="1594:0:0:0"
+^COVERAGE("XINDX5","AA",11)="1594:4000:4000:8000"
+^COVERAGE("XINDX5","AA",12)="1642:0:0:0"
+^COVERAGE("XINDX5","B",0)="1:0:0:0"
+^COVERAGE("XINDX5","CLEAN",1)="1:0:0:0"
+^COVERAGE("XINDX5","CLEAN",2)="1:0:0:0"
+^COVERAGE("XINDX5","CLEAN",3)="1:0:0:0"
+^COVERAGE("XINDX5","END",0)="1:0:0:0"
+^COVERAGE("XINDX5","END",1)="1:0:0:0"
+^COVERAGE("XINDX5","END",2)="1:0:0:0"
+^COVERAGE("XINDX5","END",3)="1:0:0:0"
+^COVERAGE("XINDX5","VTAG")="4320:12000:16001:28001"
+^COVERAGE("XINDX5","VTAG",0)="4320:12000:8001:20001"
+^COVERAGE("XINDX5","VTAG",1)="4320:0:4000:4000"
+^COVERAGE("XINDX5","XINDX5",3)="1:0:0:0"
+^COVERAGE("XINDX5","XINDX5",4)="1:0:0:0"
+^COVERAGE("XINDX5","XINDX5",5)="1:0:0:0"
+^COVERAGE("XINDX5","XINDX5",7)="1:0:0:0"
+^COVERAGE("XINDX51","B")="1:0:4001:4001"
+^COVERAGE("XINDX51","B",0)="1:0:0:0"
+^COVERAGE("XINDX51","B",1)="1:0:0:0"
+^COVERAGE("XINDX51","B",3)="1:0:4001:4001"
+^COVERAGE("XINDX51","B",3,"FOR_LOOP",1)=468
+^COVERAGE("XINDX51","B",4)="1:0:0:0"
+^COVERAGE("XINDX51","B",6)="1:0:0:0"
+^COVERAGE("XINDX51","BHDR")="60:0:4000:4000"
+^COVERAGE("XINDX51","BHDR",0)="60:0:4000:4000"
+^COVERAGE("XINDX51","BHDR",1)="60:0:0:0"
+^COVERAGE("XINDX51","END",0)="1:0:0:0"
+^COVERAGE("XINDX51","HD")="60:0:0:0"
+^COVERAGE("XINDX51","HD",0)="60:0:0:0"
+^COVERAGE("XINDX51","HD",1)="60:0:0:0"
+^COVERAGE("XINDX51","HD1")="1:0:0:0"
+^COVERAGE("XINDX51","HD1",0)="1:0:0:0"
+^COVERAGE("XINDX51","HD1",1)="1:0:0:0"
+^COVERAGE("XINDX51","HD2")="60:4000:0:4000"
+^COVERAGE("XINDX51","HD2",0)="60:4000:0:4000"
+^COVERAGE("XINDX51","HD2",1)="60:0:0:0"
+^COVERAGE("XINDX51","WAIT")="1:0:0:0"
+^COVERAGE("XINDX51","WAIT",0)="1:0:0:0"
+^COVERAGE("XINDX51","WAIT",1)="1:0:0:0"
+^COVERAGE("XINDX51","WAIT",2)="1:0:0:0"
+^COVERAGE("XINDX51","WERR")="60:0:0:0"
+^COVERAGE("XINDX51","WERR",0)="60:0:0:0"
+^COVERAGE("XINDX51","WERR",1)="60:0:0:0"
+^COVERAGE("XINDX51","WERR",2)="60:0:0:0"
+^COVERAGE("XINDX51","WERR",2,"FOR_LOOP",1)=135
+^COVERAGE("XINDX51","WERR",3)="75:0:0:0"
+^COVERAGE("XINDX51","WERR",4)="75:0:0:0"
+^COVERAGE("XINDX51","WERR",5)="75:0:0:0"
+^COVERAGE("XINDX51","WERR",6)="75:0:0:0"
+^COVERAGE("XINDX51","WERR",7)="60:0:0:0"
+^COVERAGE("XINDX51","WORL")="70:0:0:0"
+^COVERAGE("XINDX51","WORL",0)="70:0:0:0"
+^COVERAGE("XINDX51","WORL",1)="70:0:0:0"
+^COVERAGE("XINDX51","WORL",2)="70:0:0:0"
+^COVERAGE("XINDX51","WORL",3)="70:0:0:0"
+^COVERAGE("XINDX51","WORL",3,"FOR_LOOP",1)=76
+^COVERAGE("XINDX51","WORL",4)="70:0:0:0"
+^COVERAGE("XINDX52","CASE")="2:0:0:0"
+^COVERAGE("XINDX52","CASE",0)="2:0:0:0"
+^COVERAGE("XINDX52","CASE",1)="2:0:0:0"
+^COVERAGE("XINDX6","ANS")="2:0:0:0"
+^COVERAGE("XINDX6","ANS",0)="2:0:0:0"
+^COVERAGE("XINDX6","ANS",1)="2:0:0:0"
+^COVERAGE("XINDX6","ANS",1,"FOR_LOOP",1)=2
+^COVERAGE("XINDX6","ANS",2)="2:0:0:0"
+^COVERAGE("XINDX6","ASKRTN")="1:4000:0:4000"
+^COVERAGE("XINDX6","ASKRTN",1)="1:0:0:0"
+^COVERAGE("XINDX6","ASKRTN",1,"FOR_LOOP",1)=468
+^COVERAGE("XINDX6","ASKRTN",2)="1:4000:0:4000"
+^COVERAGE("XINDX6","ASKRTN",2,"FOR_LOOP",1)=468
+^COVERAGE("XINDX6","ASKRTN",3)="1:0:0:0"
+^COVERAGE("XINDX6","DEVICE",0)="1:0:0:0"
+^COVERAGE("XINDX6","DEVICE",2)="1:0:0:0"
+^COVERAGE("XINDX6","DEVICE",3)="1:0:0:0"
+^COVERAGE("XINDX6","L7",0)="1:0:0:0"
+^COVERAGE("XINDX6","L7",1)="1:0:0:0"
+^COVERAGE("XINDX6","NY")="1:0:0:0"
+^COVERAGE("XINDX6","NY",0)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM")="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",1)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",2)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",2,"FOR_LOOP",1)=10
+^COVERAGE("XINDX6","PARAM",3)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",4)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",5)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",6)="1:0:0:0"
+^COVERAGE("XINDX6","PARAM",7)="1:0:0:0"
+^COVERAGE("XINDX6","RD")="2:0:0:0"
+^COVERAGE("XINDX6","RD",0)="2:0:0:0"
+^COVERAGE("XINDX6","XINDX6",5)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",6)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",7)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",8)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",9)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",10)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",11)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",12)="1:0:0:0"
+^COVERAGE("XINDX6","XINDX6",13)="1:0:0:0"
+^COVERAGE("XINDX6","YN")="1:0:0:0"
+^COVERAGE("XINDX6","YN",0)="1:0:0:0"
+^COVERAGE("XINDX7","BUILD")="1:0:0:0"
+^COVERAGE("XINDX7","BUILD",0)="1:0:0:0"
+^COVERAGE("XINDX7","BUILD",1)="1:0:0:0"
+^COVERAGE("XINDX7","BUILD",1,"FOR_LOOP",1)=10
+^COVERAGE("XINDX7","BUILD",2)="9:0:0:0"
+^COVERAGE("XINDX7","BUILD",3)="6:0:0:0"
+^COVERAGE("XINDX7","BUILD",3,"FOR_LOOP",1)=85
+^COVERAGE("XINDX7","BUILD",4)="79:0:0:0"
+^COVERAGE("XINDX7","BUILD",5)="79:0:0:0"
+^COVERAGE("XINDX7","BUILD",6)="6:0:0:0"
+^COVERAGE("XINDX7","BUILD",7)="1:0:0:0"
+^COVERAGE("XINDX7","HDR")="2:0:0:0"
+^COVERAGE("XINDX7","HDR",0)="2:0:0:0"
+^COVERAGE("XINDX7","HDR",1)="2:0:0:0"
+^COVERAGE("XINDX7","HDR",2)="1:0:0:0"
+^COVERAGE("XINDX7","HDR",3)="1:0:0:0"
+^COVERAGE("XINDX7","HDR",4)="1:0:0:0"
+^COVERAGE("XINDX7","HDR",5)="1:0:0:0"
+^COVERAGE("XINDX7","HDR",6)="2:0:0:0"
+^COVERAGE("XINDX7","HDR",7)="2:0:0:0"
+^COVERAGE("XINDX7","SETUP")="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",1)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",2)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",3)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",4)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",6)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",7)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",7,"FOR_LOOP",1)=468
+^COVERAGE("XINDX7","SETUP",8)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",9)="1:0:0:0"
+^COVERAGE("XINDX7","SETUP",10)="1:0:0:0"
+^COVERAGE("XINDX9","ADD")="406841:436032:684041:1120073"
+^COVERAGE("XINDX9","ADD",0)="598820:552042:692040:1244082"
+^COVERAGE("XINDX9","AR")="197699:748039:1052073:1800112"
+^COVERAGE("XINDX9","AR",0)="197699:708036:936061:1644097"
+^COVERAGE("XINDX9","CASE")="23461:28003:92005:120008"
+^COVERAGE("XINDX9","CASE",0)="23461:12002:48003:60005"
+^COVERAGE("XINDX9","CASE",1)="23461:12001:28000:40001"
+^COVERAGE("XINDX9","DN")="45002:204010:248016:452026"
+^COVERAGE("XINDX9","DN",0)="45002:176008:196011:372019"
+^COVERAGE("XINDX9","DN",1)="45002:16001:24003:40004"
+^COVERAGE("XINDX9","EXT",1)="1970:4000:12001:16001"
+^COVERAGE("XINDX9","FNC")="29146:96005:104009:200014"
+^COVERAGE("XINDX9","FNC",0)="29146:28001:20003:48004"
+^COVERAGE("XINDX9","FNC",1)="29146:44002:72005:116007"
+^COVERAGE("XINDX9","FNC",2)="12:0:0:0"
+^COVERAGE("XINDX9","FNC",3)="12:0:0:0"
+^COVERAGE("XINDX9","FUNC")="29134:284015:400024:684039"
+^COVERAGE("XINDX9","FUNC",1)="29134:112005:120007:232012"
+^COVERAGE("XINDX9","FUNC",2)="23461:48003:72004:120007"
+^COVERAGE("XINDX9","FUNC",3)="23461:20000:32001:52001"
+^COVERAGE("XINDX9","FX",0)="23461:68004:116009:184013"
+^COVERAGE("XINDX9","GVAR")="29134:96004:180015:276019"
+^COVERAGE("XINDX9","GVAR",0)="29134:28000:44003:72003"
+^COVERAGE("XINDX9","GVAR",1)="29134:32001:72005:104006"
+^COVERAGE("XINDX9","GVAR",2)="29134:16000:24002:40002"
+^COVERAGE("XINDX9","INC")="29134:64003:64007:128010"
+^COVERAGE("XINDX9","INC",0)="29134:20001:12001:32002"
+^COVERAGE("XINDX9","INC",1)="29134:32002:40004:72006"
+^COVERAGE("XINDX9","NEW")="287703:532032:660032:1192064"
+^COVERAGE("XINDX9","NEW",0)="287703:200012:244014:444026"
+^COVERAGE("XINDX9","NEW",1)="287703:220014:248008:468022"
+^COVERAGE("XINDX9","NUM")="45379:292023:340026:632049"
+^COVERAGE("XINDX9","NUM",0)="45379:92006:84006:176012"
+^COVERAGE("XINDX9","NUM",0,"FOR_LOOP",1)=71145
+^COVERAGE("XINDX9","NUM",1)="45379:40005:48002:88007"
+^COVERAGE("XINDX9","NUM",2)="45379:40004:56005:96009"
+^COVERAGE("XINDX9","NUM",3)="45379:76003:88008:164011"
+^COVERAGE("XINDX9","NUM",4)="45379:24003:40003:64006"
+^COVERAGE("XINDX9","PA2",0)="518346:544028:668032:1212060"
+^COVERAGE("XINDX9","PA2",1)="472665:532043:620035:1152078"
+^COVERAGE("XINDX9","PA2",2)="317803:264019:292021:556040"
+^COVERAGE("XINDX9","PA2",3)="317803:200013:324018:524031"
+^COVERAGE("XINDX9","PA2",4)="307072:348020:492025:840045"
+^COVERAGE("XINDX9","PA2",5)="197397:160015:296011:456026"
+^COVERAGE("XINDX9","PA2",6)="152018:120016:132005:252021"
+^COVERAGE("XINDX9","PA2",7)="152018:116009:112008:228017"
+^COVERAGE("XINDX9","PA2",8)="151813:96008:168010:264018"
+^COVERAGE("XINDX9","PA2",9)="151813:100008:172009:272017"
+^COVERAGE("XINDX9","PA2",10)="151813:220008:324022:544030"
+^COVERAGE("XINDX9","PA2",11)="151813:168011:152010:320021"
+^COVERAGE("XINDX9","PA2",12)="151813:128009:148012:276021"
+^COVERAGE("XINDX9","PA2",13)="151813:136005:104009:240014"
+^COVERAGE("XINDX9","PARSE")="45681:3356226:4340257:7696483"
+^COVERAGE("XINDX9","PARSE",0)="45681:104007:108007:212014"
+^COVERAGE("XINDX9","PAT")="205:0:0:0"
+^COVERAGE("XINDX9","PAT",0)="205:0:0:0"
+^COVERAGE("XINDX9","PAT",1)="205:0:0:0"
+^COVERAGE("XINDX9","PAT",1,"FOR_LOOP",1)=1185
+^COVERAGE("XINDX9","PAT",2)="205:0:0:0"
+^COVERAGE("XINDX9","PAT",3)="205:0:0:0"
+^COVERAGE("XINDX9","PAT",4)="205:0:0:0"
+^COVERAGE("XINDX9","PATC")="28:0:0:0"
+^COVERAGE("XINDX9","PATC",0)="28:0:0:0"
+^COVERAGE("XINDX9","PATQ")="99:0:8000:8000"
+^COVERAGE("XINDX9","PATQ",0)="99:0:0:0"
+^COVERAGE("XINDX9","PATQ",0,"FOR_LOOP",1)=247
+^COVERAGE("XINDX9","PATQ",1)="99:0:0:0"
+^COVERAGE("XINDX9","PATQ",2)="99:0:8000:8000"
+^COVERAGE("XINDX9","PATU")="15:0:0:0"
+^COVERAGE("XINDX9","PATU",0)="15:0:0:0"
+^COVERAGE("XINDX9","PEND",0)="45681:68001:140014:208015"
+^COVERAGE("XINDX9","PEND",1)="45681:36004:52005:88009"
+^COVERAGE("XINDX9","QUOTE")="35724:244013:304019:548032"
+^COVERAGE("XINDX9","QUOTE",0)="36272:172010:140009:312019"
+^COVERAGE("XINDX9","QUOTE",0,"FOR_LOOP",1)=323021
+^COVERAGE("XINDX9","QUOTE",1)="36272:28001:72004:100005"
+^COVERAGE("XINDX9","QUOTE",2)="35724:28001:24003:52004"
+^COVERAGE("XINDX9","QUOTE",3)="35724:16001:52002:68003"
+^COVERAGE("XINDX9","SPV",0)="3703:4000:12000:16000"
+^COVERAGE("XINDX9","SPV",1)="3703:8001:4000:12001"
+^COVERAGE("XINDX9","SPV",2)="3703:8001:4000:12001"
+^COVERAGE("XINDX9","SPV",3)="3703:4000:8001:12001"
+^COVERAGE("XINDX9","STR")="287703:560037:724043:1284080"
+^COVERAGE("XINDX9","STR",0)="287703:300018:312020:612038"
+^COVERAGE("XINDX9","SUM")="213322:612034:916052:1528086"
+^COVERAGE("XINDX9","SUM",0)="213322:160009:208011:368020"
+^COVERAGE("XINDX9","SUM",1)="213322:212007:280018:492025"
+^COVERAGE("XINDX9","SUM",2)="213322:136012:268012:404024"
+^COVERAGE("XINDX9","UP")="45002:396026:440029:836055"
+^COVERAGE("XINDX9","UP",0)="45002:24003:44001:68004"
+^COVERAGE("XINDX9","UP",1)="45002:180008:192016:372024"
+^COVERAGE("XINDX9","UP",2)="45002:136010:128005:264015"
+^COVERAGE("XINDX9","UP",3)="45002:40003:52003:92006"
+^COVERAGE("XINDX9","VAR")="138809:828044:1004072:1832116"
+^COVERAGE("XINDX9","VAR",0)="138809:376018:336017:712035"
+^COVERAGE("XINDX9","VAR",0,"FOR_LOOP",1)=462128
+^COVERAGE("XINDX9","VAR",1)="138809:292018:376034:668052"
+^COVERAGE("XINDX9","VAR",2)="138809:116003:144008:260011"
+^COVERAGE("XINDX9","XINDX9")="45681:296016:320021:616037"
+^COVERAGE("XINDX9","XINDX9",3)="45681:52003:128006:180009"
+^COVERAGE("XINDX9","XINDX9",4)="45681:164006:112008:276014"
+^COVERAGE("XINDX9","XINDX9",4,"FOR_LOOP",1)=128269
+^COVERAGE("XINDX9","XINDX9",5)="45681:48004:52005:100009"
+^COVERAGE("XLFDT","DT")="1:0:0:0"
+^COVERAGE("XLFDT","DT",0)="1:0:0:0"
+^COVERAGE("XLFDT","DT",1)="1:0:0:0"
+^COVERAGE("XLFDT","HR")="3:0:0:0"
+^COVERAGE("XLFDT","HR",0)="3:0:0:0"
+^COVERAGE("XLFDT","HR",1)="3:0:0:0"
+^COVERAGE("XLFDT","HTE")="1:0:0:0"
+^COVERAGE("XLFDT","HTE",0)="1:0:0:0"
+^COVERAGE("XLFDT","HTE",1)="1:0:0:0"
+^COVERAGE("XLFDT","HTE",2)="1:0:0:0"
+^COVERAGE("XLFDT","HTE",3)="1:0:0:0"
+^COVERAGE("XLFDT","HTFM")="2:0:0:0"
+^COVERAGE("XLFDT","HTFM",0)="2:0:0:0"
+^COVERAGE("XLFDT","HTFM",1)="2:0:0:0"
+^COVERAGE("XLFDT","HTFM",2)="2:0:0:0"
+^COVERAGE("XLFDT","HTFM",3)="2:0:0:0"
+^COVERAGE("XLFDT","HTFM",4)="2:0:0:0"
+^COVERAGE("XLFDT","HTFM",5)="2:0:0:0"
+^COVERAGE("XLFDT","T2",0)="1:0:0:0"
+^COVERAGE("XLFDT","T2",1)="1:0:0:0"
+^COVERAGE("XLFDT","YMD")="2:0:0:0"
+^COVERAGE("XLFDT","YMD",1)="2:0:0:0"
+^COVERAGE("XLFDT","YMD",2)="2:0:0:0"
+^COVERAGE("XLFDT","YMD",3)="2:0:0:0"
+^COVERAGE("XLFDT","YMD",4)="2:0:0:0"
+^COVERAGE("XLFDT","YMD",5)="2:0:0:0"
+^COVERAGE("XLFDT1","F1",1)="1:0:0:0"
+^COVERAGE("XLFDT1","FMT")="1:0:0:0"
+^COVERAGE("XLFDT1","FMT",1)="1:0:0:0"
+^COVERAGE("XLFDT1","FMT",2)="1:0:0:0"
+^COVERAGE("XLFDT1","M")="1:0:0:0"
+^COVERAGE("XLFDT1","M",0)="1:0:0:0"
+^COVERAGE("XLFDT1","TM",1)="1:0:0:0"
+^COVERAGE("XLFDT1","TM",2)="1:0:0:0"
+^COVERAGE("XLFDT1","TM",3)="1:0:0:0"
+^COVERAGE("XLFDT1","TM",7)="1:0:0:0"
+^COVERAGE("XPDRSUM","SUMB")="467:1808124:180014:1988138"
+^COVERAGE("XPDRSUM","SUMB",0)="467:8000:0:8000"
+^COVERAGE("XPDRSUM","SUMB",2)="467:0:0:0"
+^COVERAGE("XPDRSUM","SUMB",3)="467:1796124:180014:1976138"
+^COVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",1)=44620
+^COVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",2)=1566704
+^COVERAGE("XPDRSUM","SUMB",4)="467:0:0:0"
+^COVERAGE("XTRUTL1","BUILD")="1:0:0:0"
+^COVERAGE("XTRUTL1","BUILD",0)="1:0:0:0"
+^COVERAGE("XTRUTL1","BUILD",1)="1:0:0:0"
+^COVERAGE("XTRUTL1","BUILD",2)="1:0:0:0"
+^COVERAGE("XTRUTL1","BUILD",3)="1:0:0:0"
+
+
diff --git a/Tests/MumpsCoverage/DartConfiguration.tcl.in b/Tests/MumpsCoverage/DartConfiguration.tcl.in
new file mode 100644
index 0000000..2d7eaa5
--- /dev/null
+++ b/Tests/MumpsCoverage/DartConfiguration.tcl.in
@@ -0,0 +1,8 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: ${CMake_SOURCE_DIR}/Testing/MumpsCoverage
+BuildDirectory: ${CMake_BINARY_DIR}/Testing/MumpsCoverage
diff --git a/Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m b/Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m
new file mode 100644
index 0000000..b045221
--- /dev/null
+++ b/Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m
@@ -0,0 +1,144 @@
+XINDEX ;ISC/REL,GFT,GRK,RWF - INDEX & CROSS-REFERENCE ;08/04/08  13:19
+ ;;7.3;TOOLKIT;**20,27,48,61,66,68,110,121,128**;Apr 25, 1995;Build 1
+ ; Per VHA Directive 2004-038, this routine should not be modified.
+ G ^XINDX6
+SEP F I=1:1 S CH=$E(LIN,I) D QUOTE:CH=Q Q:" "[CH
+ S ARG=$E(LIN,1,I-1) S:CH=" " I=I+1 S LIN=$E(LIN,I,999) Q
+QUOTE F I=I+1:1 S CH=$E(LIN,I) Q:CH=""!(CH=Q)
+ Q:CH]""  S ERR=6 G ^XINDX1
+ALIVE ;enter here from taskman
+ D SETUP^XINDX7 ;Get ready to process
+A2 S RTN=$O(^UTILITY($J,RTN)) G ^XINDX5:RTN=""
+ S INDLC=(RTN?1"|"1.4L.NP) D LOAD:'INDLC
+ I $D(ZTQUEUED),$$S^%ZTLOAD S RTN="~",IND("QUIT")=1,ZTSTOP=1 G A2
+ I 'INDDS,INDLC W !!?10,"Data Dictionaries",! S INDDS=1
+ D BEG
+ G A2
+ ;
+LOAD S X=RTN,XCNP=0,DIF="^UTILITY("_$J_",1,RTN,0," X ^%ZOSF("TEST") Q:'$T  X ^%ZOSF("LOAD") S ^UTILITY($J,1,RTN,0,0)=XCNP-1
+ I $D(^UTILITY($J,1,RTN,0,0)) S ^UTILITY($J,1,RTN,"RSUM")="B"_$$SUMB^XPDRSUM($NA(^UTILITY($J,1,RTN,0)))
+ Q
+BEG ;
+ S %=INDLC*5 W:$X+10+%>IOM ! W RTN,$J("",10+%-$L(RTN))
+ S (IND("DO"),IND("SZT"),IND("SZC"),LABO)=0,LC=$G(^UTILITY($J,1,RTN,0,0))
+ I LC="" W !,">>>Routine '",RTN,"' not found <<<",! Q
+ S TXT="",LAB=$P(^UTILITY($J,1,RTN,0,1,0)," ") I RTN'=$P(LAB,"(") D E^XINDX1(17)
+ I 'INDLC,LAB["(" D E^XINDX1(55) S LAB=$P(LAB,"(")
+ ;if M routine(not compiled template or DD) and has more than 2 lines, check lines 1 & 2
+ I 'INDLC,LC>2 D
+ . N LABO S LABO=1
+ . S LIN=$G(^UTILITY($J,1,RTN,0,1,0)),TXT=1
+ . ;check 1st line (site/dev - ) patch 128
+ . I $P(LIN,";",2,4)'?.E1"/".E.1"-".E D E^XINDX1(62)
+ . S LIN=$G(^UTILITY($J,1,RTN,0,2,0)),TXT=2
+ . ;check 2nd line (;;nn.nn[TV]nn;package;.anything)
+ . I $P(LIN,";",3,99)'?1.2N1"."1.2N.1(1"T",1"V").2N1";"1A.AP1";".E D E^XINDX1(44) ;patch 121
+ . I $L(INP(11)) X INP(11) ;Version number check
+ . I $L(INP(12)) X INP(12) ;Patch number check
+B5 F TXT=1:1:LC S LIN=^UTILITY($J,1,RTN,0,TXT,0),LN=$L(LIN),IND("SZT")=IND("SZT")+LN+2 D LN,ST ;Process Line
+ S LAB="",LABO=0,TXT=0,^UTILITY($J,1,RTN,0)=IND("SZT")_"^"_LC_"^"_IND("SZC")
+ I IND("SZT")>INP("MAX"),'INDLC S ERR=35,ERR(1)=IND("SZT") D ^XINDX1
+ I IND("SZT")-IND("SZC")>INP("CMAX"),'INDLC S ERR=58,ERR(1)=IND("SZT")-IND("SZC") D ^XINDX1
+ D POSTRTN
+ Q
+ ;Proccess one line, LN = Length, LIN = Line.
+LN K V S (ARG,GRB,IND("COM"),IND("DOL"),IND("F"))="",X=$P(LIN," ")
+ I '$L(X) S LABO=LABO+1 G CD
+ S (IND("COM"),LAB)=$P(X,"("),ARG=$P($P(X,"(",2),")"),LABO=0,IND("PP")=X?1.8E1"(".E1")"
+ D:$L(ARG) NE^XINDX3 ;Process formal parameters as New list.
+ I 'INDLC,'$$VT^XINDX2(LAB) D E^XINDX1($S(LAB=$$CASE^XINDX52(LAB):37,1:55)) ;Check for bad labels
+ I $D(^UTILITY($J,1,RTN,"T",LAB)) D E^XINDX1(15) G CD ;DUP label
+ S ^UTILITY($J,1,RTN,"T",LAB)=""
+CD I LN>245 D:'(LN=246&($E(RTN,1,3)="|dd")) E^XINDX1(19) ;patch 119
+ D:LIN'?1.ANP E^XINDX1(18)
+ S LIN=$P(LIN," ",2,999),IND("LCC")=1
+ I LIN="" D E^XINDX1(42) Q  ;Blank line ;p110
+ S I=0 ;Watch the scope of I, counts dots
+ I " ."[$E(LIN) D  S X=$L($E(LIN,1,I),".")-1,LIN=$E(LIN,I,999)
+ . F I=1:1:245 Q:". "'[$E(LIN,I)
+ . Q
+ ;check dots against Do level IND("DO"), IND("DOL")=dot level
+ D:'I&$G(IND("DO1")) E^XINDX1(51) S IND("DO1")=0 S:'I IND("DO")=0
+ I I D:X>IND("DO") E^XINDX1(51) S (IND("DO"),IND("DOL"))=X
+ ;Count Comment lines, skip ;; lines
+ I $E(LIN)=";",$E(LIN,2)'=";" S IND("SZC")=IND("SZC")+$L(LIN) ;p110
+ ;Process commands on line.
+EE I LIN="" D ^XINDX2 Q
+ S COM=$E(LIN),GK="",ARG=""
+ I COM=";" S LIN="" G EE ;p110
+ I COM=" " S ERR=$S(LIN?1." ":13,1:0),LIN=$S(ERR:"",1:$E(LIN,2,999)) D:ERR ^XINDX1 G EE
+ D SEP
+ S CM=$P(ARG,":",1),POST=$P(ARG,":",2,999),IND("COM")=IND("COM")_$C(9)_COM,ERR=48
+ D:ARG[":"&(POST']"") ^XINDX1 S:POST]"" GRB=GRB_$C(9)_POST,IND("COM")=IND("COM")_":"
+ ;SAC now allows lowercase commands
+ I CM?.E1L.E S CM=$$CASE^XINDX52(CM),COM=$E(CM) ;I IND("LCC") S IND("LCC")=0 D E^XINDX1(47)
+ I CM="" D E^XINDX1(21) G EE ;Missing command
+ S CX=$G(IND("CMD",CM)) I CX="" D  G:CX="" EE
+ . I $E(CM)="Z" S CX="^Z" Q  ;Proccess Z commands
+ . D E^XINDX1(1) S LIN="" Q
+ S CX=$P(CX,"^",2,9)
+ D SEP I '$L(LIN),CH=" " D E^XINDX1(13) ;trailing space
+ I ARG="","CGJMORSUWX"[COM S ERR=49 G ^XINDX1
+ I CX>0 D E^XINDX1(CX) S CX=""
+ D:$L(CX) @CX S:ARG'="" GRB=GRB_$C(9)_ARG G EE
+B S ERR=25 G ^XINDX1
+C S ERR=29 G ^XINDX1
+D G DG1^XINDX4
+E Q:ARG=""  S ERR=7 G ^XINDX1
+F G:ARG]"" FR^XINDX4 S IND("F")=1 Q
+G G DG^XINDX4
+H Q:ARG'=""  S ERR=32 G ^XINDX1
+J S ERR=36,ARG="" G ^XINDX1
+K S ERR=$S(ARG?1"(".E:22,ARG?." ":23,1:0) D:ERR ^XINDX1
+ G KL^XINDX3
+L G LO^XINDX4
+M G S^XINDX3
+N G NE^XINDX3
+O S ERR=34 D ^XINDX1,O^XINDX3 Q
+Q Q:ARG=""  G Q^XINDX4
+R S RDTIME=0 G RD^XINDX3
+S G S^XINDX3
+TR Q  ;What to process. p110
+U S ARG=$P(ARG,":") Q
+V S ARG="",ERR=20 G ^XINDX1
+W G WR^XINDX4
+X G XE^XINDX4
+Z S ERR=2 D ^XINDX1 G ZC^XINDX4
+ ;
+ ;Save off items from line.
+ST S R=LAB_$S(LABO:"+"_LABO,1:"")
+ ;Local variable, Global, Marked Items, Naked global, Internal ref, eXternal ref., Tag ref.
+ S LOC="" F  S LOC=$O(V(LOC)),S="" Q:LOC=""  F  S S=$O(V(LOC,S)) Q:S=""  D SET
+ S ^UTILITY($J,1,RTN,"COM",TXT)=IND("COM")
+ Q
+ ;
+SET I V(LOC,S)]"" F %="!","~" I V(LOC,S)[%,$G(^UTILITY($J,1,RTN,LOC,S))'[% S ^(S)=$G(^(S))_%
+ S %=0
+SE2 S ARG=$G(^UTILITY($J,1,RTN,LOC,S,%)) I $L(ARG)>230 S %=%+1 G SE2
+ S ^UTILITY($J,1,RTN,LOC,S,%)=ARG_R_V(LOC,S)_","
+ Q
+ ;
+POSTRTN ;Do more overall checking
+ N V,E,T,T1,T2
+ S T="" ;Check for missing Labels
+ F  S T=$O(^UTILITY($J,1,RTN,"I",T)),T2=T Q:T=""  S T1=$G(^(T,0)) D
+ . Q:$E(T2,1,2)="@("
+ . S:$E(T2,1,2)="$$" T2=$E(T2,3,99)
+ . I T2]"",'$D(^UTILITY($J,1,RTN,"T",$P(T2,"+",1))) D
+ . . F I=1:1:$L(T1,",")-1 S LAB=$P(T1,",",I),LABO=+$P(LAB,"+",2),LAB=$P(LAB,"+"),E=14,E(1)=T D E^XINDX1(.E)
+ . . Q
+ . Q
+ S LAB="",LABO=0 ;Check for valid label names
+ I 'INDLC F  S LAB=$O(^UTILITY($J,1,RTN,"T",LAB)) Q:LAB=""  D
+ . I '$$VA^XINDX2(LAB) D E^XINDX1(55) Q
+ . D:'$$VT^XINDX2(LAB) E^XINDX1(37)
+ . Q
+ S LAB="",LABO=0 ;Check for valid variable names.
+ F  S LAB=$O(^UTILITY($J,1,RTN,"L",LAB)) Q:LAB=""  D
+ . D VLNF^XINDX3($P(LAB,"("))
+ . Q
+ Q
+ ;
+QUICK ;Quick, Just get a routine an print the results
+ D QUICK^XINDX6()
+ Q
diff --git a/Tests/MumpsCoverage/gtm_coverage.mcov.in b/Tests/MumpsCoverage/gtm_coverage.mcov.in
new file mode 100644
index 0000000..b431dbd
--- /dev/null
+++ b/Tests/MumpsCoverage/gtm_coverage.mcov.in
@@ -0,0 +1,2 @@
+packages:${CMake_BINARY_DIR}/Testing/MumpsCoverage/VistA-FOIA/Packages
+coverage_dir:${CMake_SOURCE_DIR}/Tests/MumpsCoverage

-----------------------------------------------------------------------

Summary of changes:
 Source/CMakeLists.txt                              |    1 +
 Source/CTest/cmCTestCoverageHandler.cxx            |    8 +-
 Source/CTest/cmParseGTMCoverage.cxx                |  324 ++---
 Source/CTest/cmParseGTMCoverage.h                  |   31 +-
 Source/CTest/cmParseMumpsCoverage.cxx              |  125 ++
 Source/CTest/cmParseMumpsCoverage.h                |   48 +
 Tests/CMakeLists.txt                               |   18 +
 Tests/MumpsCoverage/.gitattributes                 |    2 +
 Tests/MumpsCoverage/Accounts_ReceivableTest.mcov   | 1445 ++++++++++++++++++++
 Tests/MumpsCoverage/DartConfiguration.tcl.in       |    8 +
 .../VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m  |  144 ++
 Tests/MumpsCoverage/gtm_coverage.mcov.in           |    2 +
 12 files changed, 1928 insertions(+), 228 deletions(-)
 create mode 100644 Source/CTest/cmParseMumpsCoverage.cxx
 create mode 100644 Source/CTest/cmParseMumpsCoverage.h
 create mode 100644 Tests/MumpsCoverage/.gitattributes
 create mode 100644 Tests/MumpsCoverage/Accounts_ReceivableTest.mcov
 create mode 100644 Tests/MumpsCoverage/DartConfiguration.tcl.in
 create mode 100644 Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m
 create mode 100644 Tests/MumpsCoverage/gtm_coverage.mcov.in


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list