[med-svn] [fis-gtm] 01/03: Imported Upstream version 6.3-000A

Amul Shah tuskentower-guest at moszumanska.debian.org
Wed Dec 7 00:27:29 UTC 2016


This is an automated email from the git hooks/post-receive script.

tuskentower-guest pushed a commit to branch master
in repository fis-gtm.

commit cd29d9f231bbe57ce55233823bad6279577e4f66
Author: Amul Shah <amul.shah at fisglobal.com>
Date:   Fri Oct 28 11:27:00 2016 -0400

    Imported Upstream version 6.3-000A
---
 CMakeLists.txt                                     |    6 +-
 README                                             |   14 +-
 sr_i386/GTMDefinedTypesInitDebug.m                 |  345 ++-
 sr_i386/GTMDefinedTypesInitRelease.m               |  345 ++-
 sr_i386/cmerrors_ctl.c                             |   12 +-
 sr_i386/cmierrors_ctl.c                            |   50 +-
 sr_i386/gdeerrors_ctl.c                            |  168 +-
 sr_i386/merrors_ansi.h                             |    1 +
 sr_i386/merrors_ctl.c                              | 2882 ++++++++++----------
 sr_linux/gtm_env_sp.csh                            |   46 +-
 sr_linux/release_name.h                            |   10 +-
 sr_port/anticipatory_freeze.h                      |   27 +-
 sr_port/db_auto_upgrade.c                          |    6 +-
 sr_port/dbcertify_certify_phase.c                  |    3 +
 sr_port/dfa_calc.c                                 |  141 +-
 sr_port/dpgbldir.c                                 |   35 +-
 sr_port/dpgbldir.h                                 |    4 +-
 sr_port/dse_dmp_fhead.c                            |    3 +
 sr_port/emit_code.c                                |    3 +
 sr_port/expritem.c                                 |    6 +-
 sr_port/ext2jnl.c                                  |    2 +
 sr_port/f_zchar.c                                  |    3 +-
 sr_port/gbldefs.c                                  |    2 +-
 sr_port/gds_blk_upgrade.h                          |    6 +-
 sr_port/gdsbt.h                                    |    5 +-
 sr_port/gdsdbver_sp.h                              |    3 +-
 sr_port/gdsfhead.h                                 |   24 +-
 sr_port/gtm_malloc_src.h                           |    2 +-
 sr_port/gtm_string.h                               |    3 +-
 sr_port/gvcst_blk_build.c                          |    9 +-
 sr_port/gvcst_init.c                               |   14 +-
 sr_port/m_write.c                                  |    3 +-
 sr_port/mdef.h                                     |   32 +-
 sr_port/merrors.msg                                |    1 +
 sr_port/mprof_funcs.c                              |   24 +-
 sr_port/msg.m                                      |    2 +-
 sr_port/mu_extr_gblout.c                           |   23 +-
 sr_port/mubclnup.c                                 |    4 +
 sr_port/mupip_backup.c                             |   42 +-
 sr_port/mur_close_files.c                          |   39 +-
 sr_port/mur_forward_play_cur_jrec.c                |   26 +-
 sr_port/mur_open_files.c                           |    9 +-
 sr_port/mur_output_record.c                        |   31 +-
 sr_port/op_fnfnumber.c                             |   16 +-
 sr_port/op_fnview.c                                |    2 +-
 sr_port/op_gvextnam.c                              |    8 +-
 sr_port/op_lock2.c                                 |   36 +-
 sr_port/op_lvpatwrite.c                            |    4 +-
 sr_port/op_lvzwrite.c                              |    4 +-
 sr_port/op_newintrinsic.c                          |    9 +-
 sr_port/op_tcommit.c                               |   10 +-
 sr_port/op_view.c                                  |   10 +-
 sr_port/op_zsystem.c                               |   52 +-
 sr_port/opcode_def.h                               |    3 +-
 sr_port/patcode.h                                  |   23 +-
 sr_port/patmaskseq.c                               |    8 +-
 sr_port/patstr.c                                   |  419 ++-
 sr_port/put_lit.c                                  |    2 +
 sr_port/put_str.c                                  |    4 +-
 sr_port/resolve_ref.c                              |   21 +-
 sr_port/set_gbuff_limit.c                          |   42 +
 .../release_name.h => sr_port/set_gbuff_limit.h    |   20 +-
 sr_port/t_end.c                                    |  121 +-
 sr_port/t_retry.c                                  |    2 +
 sr_port/unw_mv_ent.c                               |    8 +-
 sr_port/updproc.c                                  |    3 +
 sr_port/wbox_test_init.h                           |    7 +-
 sr_port_cm/gtcm_protocol.c                         |   42 +-
 sr_port_cm/gtcml_lklist.c                          |    3 +-
 sr_unix/Makefile.mk                                |    4 +
 sr_unix/buildaux.csh                               |    9 +-
 sr_unix/buildaux_gde.csh                           |    3 +-
 sr_unix/buildaux_gtmcrypt.csh                      |   13 +-
 sr_unix/cms_load.csh                               |    5 +-
 sr_unix/configure.gtc                              |   14 +-
 sr_unix/db_ipcs_reset.c                            |   34 +-
 sr_unix/dbcertify_cmd.c                            |    6 +-
 sr_unix/dbcertify_deferred_signal_handler.c        |   47 +-
 sr_unix/dbcertify_signal_handler.c                 |    9 +-
 sr_unix/dbinit_ch.c                                |   29 +-
 sr_unix/deferred_signal_handler.c                  |   41 +-
 sr_unix/dm_read.c                                  |   11 +-
 sr_unix/do_semop.h                                 |   11 -
 sr_unix/dse_cmd.c                                  |   53 +-
 sr_unix/exttab_parse.c                             |   94 +-
 sr_unix/f_char.c                                   |    3 +-
 sr_unix/filestruct.h                               |   19 +-
 ..._signal_handler.c => forced_exit_err_display.c} |   48 +-
 sr_unix/forced_exit_err_display.h                  |   18 +
 sr_unix/ftok.c                                     |    5 +-
 sr_unix/ftok_sem_incrcnt.c                         |    7 +-
 sr_unix/ftok_sems.c                                |    6 +-
 sr_unix/ftok_sems.h                                |    2 +-
 sr_unix/gds_rundown.c                              |   12 +-
 sr_unix/gdsfilext.c                                |    8 +
 sr_unix/gtm_env_init_sp.c                          |   15 +
 sr_unix/gtm_exit_handler.c                         |   18 +-
 sr_unix/gtm_logicals.h                             |    3 +-
 sr_unix/gtm_semutils.c                             |   38 +-
 sr_unix/gtm_semutils.h                             |   12 +-
 sr_unix/gtmcrypt.h                                 |    5 +-
 sr_unix/gtmrecv_end.c                              |   10 +-
 sr_unix/gtmrecv_shutdown.c                         |    9 +-
 sr_unix/gtmsource.c                                |    4 +-
 sr_unix/gtmsource.h                                |    3 +-
 sr_unix/gtmsource_end.c                            |   11 +-
 sr_unix/gtmsource_readfiles.c                      |    4 -
 sr_unix/gtmsource_shutdown.c                       |    4 +-
 sr_unix/gtmsrc.csh                                 |  118 +-
 sr_unix/gtmthreadgblasm.m                          |    4 +-
 sr_unix/gvcst_init_sysops.c                        |   97 +-
 sr_unix/iormdef.h                                  |    4 +
 sr_unix/jnl_output_sp.c                            |    6 +-
 sr_unix/jnlpool_init.c                             |   37 +-
 sr_unix/joberr.h                                   |   62 +-
 sr_unix/kitstart.csh                               |   16 +-
 sr_unix/list_file.c                                |    8 +-
 sr_unix/lke_cmd.c                                  |    6 +-
 sr_unix/mu_rndwn_file.c                            |  105 +-
 sr_unix/mu_rndwn_repl_instance.c                   |  104 +-
 sr_unix/mu_rndwn_replpool.c                        |    9 +-
 sr_unix/mu_size_arsample.c                         |    2 +-
 sr_unix/mu_size_impsample.c                        |    2 +-
 sr_unix/mubfilcpy.c                                |   12 +-
 sr_unix/mumps_clitab.c                             |    4 +-
 sr_unix/mupip_cmd.c                                |  136 +-
 sr_unix/mupip_rundown.c                            |   47 +-
 sr_unix/pinentry-gtm.sh                            |   21 +-
 sr_unix/recvpool_init.c                            |   16 +-
 sr_unix/repl_inst_dump.c                           |    3 +
 sr_unix/repl_inst_ftok_counter_halted.c            |   40 +-
 sr_unix/repl_inst_ftok_counter_halted.h            |   28 +-
 sr_unix/repl_instance.c                            |   26 +-
 sr_unix/repl_instance.h                            |    9 +-
 sr_unix/repl_ipc_cleanup.c                         |   21 +-
 sr_unix/repl_sem.c                                 |    2 +-
 sr_unix/runall.csh                                 |    4 +-
 sr_unix/setactive.csh                              |   11 +-
 sr_unix/setactive1.csh                             |   17 +-
 sr_unix/trigger_cmd.c                              |    8 +-
 sr_unix/versions.csh                               |    4 +-
 sr_unix/wait_for_disk_space.c                      |    5 +-
 sr_unix/wcs_wtstart.c                              |    4 +-
 sr_unix_cm/gtcm_pkdisp.c                           |   13 +-
 sr_unix_cm/gtcm_prsopt.c                           |   34 +-
 sr_unix_gnp/gtcm_gnp_clitab.c                      |    4 +-
 sr_x86_64/GTMDefinedTypesInitDebug.m               |  361 ++-
 sr_x86_64/GTMDefinedTypesInitRelease.m             |  361 ++-
 sr_x86_64/cmerrors_ctl.c                           |   12 +-
 sr_x86_64/cmierrors_ctl.c                          |   50 +-
 sr_x86_64/gdeerrors_ctl.c                          |  168 +-
 sr_x86_64/merrors_ansi.h                           |    1 +
 sr_x86_64/merrors_ctl.c                            | 2882 ++++++++++----------
 153 files changed, 5331 insertions(+), 5495 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2dd672..134a6a0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,7 +27,7 @@ foreach(lang ${languages})
 endforeach()
 
 # Defaults
-set(version V6.3-000)
+set(version V6.3-000A)
 if("${version}" STREQUAL "")
         set(version V9.9-0)
 endif()
@@ -768,14 +768,14 @@ if(LOCALECFG)
   STRING(REGEX REPLACE "\n" ";" locale_list "${locale_list}")
   foreach(lc ${locale_list})
     string(TOLOWER "${lc}" lc_lower)
-    if("x${lc_lower}" MATCHES "^xen_us\\.?utf-?8")
+    if("x${lc_lower}" MATCHES "^x[a-zA-Z_]+\\.?utf-?8")
       set(LC_ALL ${lc})
       message("-- Setting locale to ${LC_ALL}")
       break()
     endif()
   endforeach(lc)
   if("${LC_ALL}" STREQUAL "")
-    message("Locale undefined. Expect to see NONUTF8LOCALE during MUMPS routine compilation\n")
+    message("Locale undefined. Expect to see NONUTF8LOCALE during MUMPS routine compilation: ${locale_list}\n")
   endif()
 else()
   message(FATAL_ERROR "Unable to find 'locale'.  Set LOCALECFG in CMake cache.")
diff --git a/README b/README
index 1fce756..6320188 100644
--- a/README
+++ b/README
@@ -24,16 +24,16 @@ To build GT.M for Linux, do the following steps:
 
 2. Unpack the GT.M sources
    The GT.M source tarball extracts to a directory with the version number in
-   the name, fis-gtm-V6.3-000
-   $ tar xfz fis-gtm-V6.3-000.tar.gz
-   $ cd fis-gtm-V6.3-000
+   the name, fis-gtm-V6.3-000A
+   $ tar xfz fis-gtm-V6.3-000A.tar.gz
+   $ cd fis-gtm-V6.3-000A
 
    You should find this README, LICENSE, COPYING and CMakeLists.txt file and
    sr_* source directories.
 
 3. Building GT.M -
    <fis-gtm-build> can be a sub directory of the source directory,
-   fis-gtm-V6.3-000, or any other valid path.
+   fis-gtm-V6.3-000A, or any other valid path.
 
    $ mkdir <fis-gtm-build>
    $ cd <fis-gtm-build>
@@ -52,16 +52,16 @@ To build GT.M for Linux, do the following steps:
    #
    #     -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package
    #
-   $ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package <path to>/fis-gtm-V6.3-000
+   $ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package <path to>/fis-gtm-V6.3-000A
 
    $ make
 
    $ make install
 
-   $ cd package/lib/fis-gtm/V6.3-000_x86_64
+   $ cd package/lib/fis-gtm/V6.3-000A_x86_64
 
    # Now you are ready to install GT.M. Answer a few questions and install it.
-   # The recommended installation path is /opt/fis-gtm/V6.3-000_x86_64
+   # The recommended installation path is /opt/fis-gtm/V6.3-000A_x86_64
 
    $ sudo ./configure
 
diff --git a/sr_i386/GTMDefinedTypesInitDebug.m b/sr_i386/GTMDefinedTypesInitDebug.m
index 362dce2..5008f7f 100644
--- a/sr_i386/GTMDefinedTypesInitDebug.m
+++ b/sr_i386/GTMDefinedTypesInitDebug.m
@@ -11,14 +11,14 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;
-; Generated by scantypedefs.m at 15:37:46 on 2016-03-22
-; Build done with GT.M version: GT.M V6.2-002A Linux x86
+; Generated by scantypedefs.m at 17:38:51 on 2016-05-09
+; Build done with GT.M version: GT.M V6.3-000 Linux x86
 ;
 ; Environment variables during run:
-;   $gtm_dist: /usr/library/V62002A/dbg
-;   $gtm_exe: /usr/library/V63000/dbg
-;   $gtm_src: /usr/library/V63000/src
-;   $gtm_inc: /usr/library/V63000/inc
+;   $gtm_dist: /usr/library/V63000/dbg
+;   $gtm_exe: /usr/library/V63000A/dbg
+;   $gtm_src: /usr/library/V63000A/src
+;   $gtm_inc: /usr/library/V63000A/inc
 ;
 ; Note this file should not be manually invoked
 ;
@@ -11590,7 +11590,7 @@ Init
 	Set gtmtypfldindx("jnlpool_addrs","jnldata_base")=7
 	;
 	Set gtmtypes("jnlpool_ctl_struct")="struct"
-	Set gtmtypes("jnlpool_ctl_struct",0)=47
+	Set gtmtypes("jnlpool_ctl_struct",0)=48
 	Set gtmtypes("jnlpool_ctl_struct","len")=3712
 	Set gtmtypes("jnlpool_ctl_struct",1,"name")="jnlpool_ctl_struct.jnlpool_id"
 	Set gtmtypes("jnlpool_ctl_struct",1,"off")=0
@@ -11823,11 +11823,16 @@ Init
 	Set gtmtypes("jnlpool_ctl_struct",46,"len")=4
 	Set gtmtypes("jnlpool_ctl_struct",46,"type")="boolean_t"
 	Set gtmtypfldindx("jnlpool_ctl_struct","outofsync_core_generated")=46
-	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.ftok_counter_halted"
 	Set gtmtypes("jnlpool_ctl_struct",47,"off")=3700
-	Set gtmtypes("jnlpool_ctl_struct",47,"len")=12
-	Set gtmtypes("jnlpool_ctl_struct",47,"type")="char"
-	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=47
+	Set gtmtypes("jnlpool_ctl_struct",47,"len")=4
+	Set gtmtypes("jnlpool_ctl_struct",47,"type")="boolean_t"
+	Set gtmtypfldindx("jnlpool_ctl_struct","ftok_counter_halted")=47
+	Set gtmtypes("jnlpool_ctl_struct",48,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",48,"off")=3704
+	Set gtmtypes("jnlpool_ctl_struct",48,"len")=8
+	Set gtmtypes("jnlpool_ctl_struct",48,"type")="char"
+	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=48
 	;
 	Set gtmtypes("jnlpool_write_ctx_t")="struct"
 	Set gtmtypes("jnlpool_write_ctx_t",0)=2
@@ -16899,8 +16904,8 @@ Init
 	Set gtmtypfldindx("nametabent","name")=2
 	;
 	Set gtmtypes("node_local")="struct"
-	Set gtmtypes("node_local",0)=208
-	Set gtmtypes("node_local","len")=51144
+	Set gtmtypes("node_local",0)=210
+	Set gtmtypes("node_local","len")=51152
 	Set gtmtypes("node_local",1,"name")="node_local.label"
 	Set gtmtypes("node_local",1,"off")=0
 	Set gtmtypes("node_local",1,"len")=12
@@ -17946,11 +17951,21 @@ Init
 	Set gtmtypes("node_local",207,"len")=4
 	Set gtmtypes("node_local",207,"type")="boolean_t"
 	Set gtmtypfldindx("node_local","first_nonbypas_writer_seen")=207
-	Set gtmtypes("node_local",208,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",208,"name")="node_local.ftok_counter_halted"
 	Set gtmtypes("node_local",208,"off")=51140
 	Set gtmtypes("node_local",208,"len")=4
-	Set gtmtypes("node_local",208,"type")="unsigned-int"
-	Set gtmtypfldindx("node_local","filler_8byte_align1")=208
+	Set gtmtypes("node_local",208,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","ftok_counter_halted")=208
+	Set gtmtypes("node_local",209,"name")="node_local.access_counter_halted"
+	Set gtmtypes("node_local",209,"off")=51144
+	Set gtmtypes("node_local",209,"len")=4
+	Set gtmtypes("node_local",209,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","access_counter_halted")=209
+	Set gtmtypes("node_local",210,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",210,"off")=51148
+	Set gtmtypes("node_local",210,"len")=4
+	Set gtmtypes("node_local",210,"type")="unsigned-int"
+	Set gtmtypfldindx("node_local","filler_8byte_align1")=210
 	;
 	Set gtmtypes("noisolation_element")="struct"
 	Set gtmtypes("noisolation_element",0)=2
@@ -24416,11 +24431,11 @@ Init
 	Set gtmtypes("repl_inst_hdr",42,"len")=4
 	Set gtmtypes("repl_inst_hdr",42,"type")="boolean_t"
 	Set gtmtypfldindx("repl_inst_hdr","file_corrupt")=42
-	Set gtmtypes("repl_inst_hdr",43,"name")="repl_inst_hdr.ftok_counter_halted"
+	Set gtmtypes("repl_inst_hdr",43,"name")="repl_inst_hdr.filler_ftok_counter_halted"
 	Set gtmtypes("repl_inst_hdr",43,"off")=972
 	Set gtmtypes("repl_inst_hdr",43,"len")=4
 	Set gtmtypes("repl_inst_hdr",43,"type")="boolean_t"
-	Set gtmtypfldindx("repl_inst_hdr","ftok_counter_halted")=43
+	Set gtmtypfldindx("repl_inst_hdr","filler_ftok_counter_halted")=43
 	Set gtmtypes("repl_inst_hdr",44,"name")="repl_inst_hdr.qdbrundown"
 	Set gtmtypes("repl_inst_hdr",44,"off")=976
 	Set gtmtypes("repl_inst_hdr",44,"len")=4
@@ -25961,8 +25976,8 @@ Init
 	Set gtmtypfldindx("sgmm_addrs","filler")=1
 	;
 	Set gtmtypes("sgmnt_addrs")="struct"
-	Set gtmtypes("sgmnt_addrs",0)=143
-	Set gtmtypes("sgmnt_addrs","len")=820
+	Set gtmtypes("sgmnt_addrs",0)=142
+	Set gtmtypes("sgmnt_addrs","len")=816
 	Set gtmtypes("sgmnt_addrs",1,"name")="sgmnt_addrs.hdr"
 	Set gtmtypes("sgmnt_addrs",1,"off")=0
 	Set gtmtypes("sgmnt_addrs",1,"len")=4
@@ -26625,61 +26640,56 @@ Init
 	Set gtmtypes("sgmnt_addrs",132,"len")=4
 	Set gtmtypes("sgmnt_addrs",132,"type")="unsigned-int"
 	Set gtmtypfldindx("sgmnt_addrs","db_onln_rlbkd_cycle")=132
-	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.dbinit_shm_created"
+	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.read_only_fs"
 	Set gtmtypes("sgmnt_addrs",133,"off")=752
 	Set gtmtypes("sgmnt_addrs",133,"len")=4
 	Set gtmtypes("sgmnt_addrs",133,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","dbinit_shm_created")=133
-	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.read_only_fs"
+	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=133
+	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.crit_probe"
 	Set gtmtypes("sgmnt_addrs",134,"off")=756
 	Set gtmtypes("sgmnt_addrs",134,"len")=4
 	Set gtmtypes("sgmnt_addrs",134,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=134
-	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.crit_probe"
+	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=134
+	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.probecrit_rec"
 	Set gtmtypes("sgmnt_addrs",135,"off")=760
-	Set gtmtypes("sgmnt_addrs",135,"len")=4
-	Set gtmtypes("sgmnt_addrs",135,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=135
-	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec"
-	Set gtmtypes("sgmnt_addrs",136,"off")=764
-	Set gtmtypes("sgmnt_addrs",136,"len")=56
-	Set gtmtypes("sgmnt_addrs",136,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=136
-	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("sgmnt_addrs",137,"off")=764
+	Set gtmtypes("sgmnt_addrs",135,"len")=56
+	Set gtmtypes("sgmnt_addrs",135,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=135
+	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
+	Set gtmtypes("sgmnt_addrs",136,"off")=760
+	Set gtmtypes("sgmnt_addrs",136,"len")=8
+	Set gtmtypes("sgmnt_addrs",136,"type")="uint64_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=136
+	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("sgmnt_addrs",137,"off")=768
 	Set gtmtypes("sgmnt_addrs",137,"len")=8
 	Set gtmtypes("sgmnt_addrs",137,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=137
-	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("sgmnt_addrs",138,"off")=772
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=137
+	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("sgmnt_addrs",138,"off")=776
 	Set gtmtypes("sgmnt_addrs",138,"len")=8
 	Set gtmtypes("sgmnt_addrs",138,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=138
-	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("sgmnt_addrs",139,"off")=780
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=138
+	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("sgmnt_addrs",139,"off")=784
 	Set gtmtypes("sgmnt_addrs",139,"len")=8
 	Set gtmtypes("sgmnt_addrs",139,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=139
-	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("sgmnt_addrs",140,"off")=788
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=139
+	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("sgmnt_addrs",140,"off")=792
 	Set gtmtypes("sgmnt_addrs",140,"len")=8
 	Set gtmtypes("sgmnt_addrs",140,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=140
-	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("sgmnt_addrs",141,"off")=796
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=140
+	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("sgmnt_addrs",141,"off")=800
 	Set gtmtypes("sgmnt_addrs",141,"len")=8
 	Set gtmtypes("sgmnt_addrs",141,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=141
-	Set gtmtypes("sgmnt_addrs",142,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("sgmnt_addrs",142,"off")=804
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=141
+	Set gtmtypes("sgmnt_addrs",142,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("sgmnt_addrs",142,"off")=808
 	Set gtmtypes("sgmnt_addrs",142,"len")=8
 	Set gtmtypes("sgmnt_addrs",142,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=142
-	Set gtmtypes("sgmnt_addrs",143,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("sgmnt_addrs",143,"off")=812
-	Set gtmtypes("sgmnt_addrs",143,"len")=8
-	Set gtmtypes("sgmnt_addrs",143,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=143
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=142
 	;
 	Set gtmtypes("sgmnt_data")="struct"
 	Set gtmtypes("sgmnt_data",0)=565
@@ -29505,16 +29515,16 @@ Init
 	Set gtmtypes("sgmnt_data",561,"len")=4
 	Set gtmtypes("sgmnt_data",561,"type")="boolean_t"
 	Set gtmtypfldindx("sgmnt_data","defer_allocate")=561
-	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.ftok_counter_halted"
+	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.filler_ftok_counter_halted"
 	Set gtmtypes("sgmnt_data",562,"off")=6452
 	Set gtmtypes("sgmnt_data",562,"len")=4
 	Set gtmtypes("sgmnt_data",562,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","ftok_counter_halted")=562
-	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.access_counter_halted"
+	Set gtmtypfldindx("sgmnt_data","filler_ftok_counter_halted")=562
+	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.filler_access_counter_halted"
 	Set gtmtypes("sgmnt_data",563,"off")=6456
 	Set gtmtypes("sgmnt_data",563,"len")=4
 	Set gtmtypes("sgmnt_data",563,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","access_counter_halted")=563
+	Set gtmtypfldindx("sgmnt_data","filler_access_counter_halted")=563
 	Set gtmtypes("sgmnt_data",564,"name")="sgmnt_data.filler_7k"
 	Set gtmtypes("sgmnt_data",564,"off")=6460
 	Set gtmtypes("sgmnt_data",564,"len")=708
@@ -32634,16 +32644,16 @@ Init
 	Set gtmtypes("shm_snapshot_t",583,"len")=4
 	Set gtmtypes("shm_snapshot_t",583,"type")="boolean_t"
 	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.defer_allocate")=583
-	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shm_snapshot_t",584,"off")=10620
 	Set gtmtypes("shm_snapshot_t",584,"len")=4
 	Set gtmtypes("shm_snapshot_t",584,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.ftok_counter_halted")=584
-	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_ftok_counter_halted")=584
+	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shm_snapshot_t",585,"off")=10624
 	Set gtmtypes("shm_snapshot_t",585,"len")=4
 	Set gtmtypes("shm_snapshot_t",585,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.access_counter_halted")=585
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_access_counter_halted")=585
 	Set gtmtypes("shm_snapshot_t",586,"name")="shm_snapshot_t.shadow_file_header.filler_7k"
 	Set gtmtypes("shm_snapshot_t",586,"off")=10628
 	Set gtmtypes("shm_snapshot_t",586,"len")=708
@@ -35683,16 +35693,16 @@ Init
 	Set gtmtypes("shmpool_buff_hdr",590,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",590,"type")="boolean_t"
 	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.defer_allocate")=590
-	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",591,"off")=6804
 	Set gtmtypes("shmpool_buff_hdr",591,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",591,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.ftok_counter_halted")=591
-	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_ftok_counter_halted")=591
+	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",592,"off")=6808
 	Set gtmtypes("shmpool_buff_hdr",592,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",592,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.access_counter_halted")=592
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_access_counter_halted")=592
 	Set gtmtypes("shmpool_buff_hdr",593,"name")="shmpool_buff_hdr.shadow_file_header.filler_7k"
 	Set gtmtypes("shmpool_buff_hdr",593,"off")=6812
 	Set gtmtypes("shmpool_buff_hdr",593,"len")=708
@@ -39495,11 +39505,11 @@ Init
 	Set gtmtypfldindx("unique_file_id","file_id")=5
 	;
 	Set gtmtypes("unix_db_info")="struct"
-	Set gtmtypes("unix_db_info",0)=163
-	Set gtmtypes("unix_db_info","len")=900
+	Set gtmtypes("unix_db_info",0)=156
+	Set gtmtypes("unix_db_info","len")=876
 	Set gtmtypes("unix_db_info",1,"name")="unix_db_info.s_addrs"
 	Set gtmtypes("unix_db_info",1,"off")=0
-	Set gtmtypes("unix_db_info",1,"len")=820
+	Set gtmtypes("unix_db_info",1,"len")=816
 	Set gtmtypes("unix_db_info",1,"type")="sgmnt_addrs"
 	Set gtmtypfldindx("unix_db_info","s_addrs")=1
 	Set gtmtypes("unix_db_info",2,"name")="unix_db_info.s_addrs.hdr"
@@ -40164,156 +40174,121 @@ Init
 	Set gtmtypes("unix_db_info",133,"len")=4
 	Set gtmtypes("unix_db_info",133,"type")="unsigned-int"
 	Set gtmtypfldindx("unix_db_info","s_addrs.db_onln_rlbkd_cycle")=133
-	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.dbinit_shm_created"
+	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.read_only_fs"
 	Set gtmtypes("unix_db_info",134,"off")=752
 	Set gtmtypes("unix_db_info",134,"len")=4
 	Set gtmtypes("unix_db_info",134,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.dbinit_shm_created")=134
-	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.read_only_fs"
+	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=134
+	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.crit_probe"
 	Set gtmtypes("unix_db_info",135,"off")=756
 	Set gtmtypes("unix_db_info",135,"len")=4
 	Set gtmtypes("unix_db_info",135,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=135
-	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.crit_probe"
+	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=135
+	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.probecrit_rec"
 	Set gtmtypes("unix_db_info",136,"off")=760
-	Set gtmtypes("unix_db_info",136,"len")=4
-	Set gtmtypes("unix_db_info",136,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=136
-	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec"
-	Set gtmtypes("unix_db_info",137,"off")=764
-	Set gtmtypes("unix_db_info",137,"len")=56
-	Set gtmtypes("unix_db_info",137,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=137
-	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("unix_db_info",138,"off")=764
+	Set gtmtypes("unix_db_info",136,"len")=56
+	Set gtmtypes("unix_db_info",136,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=136
+	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
+	Set gtmtypes("unix_db_info",137,"off")=760
+	Set gtmtypes("unix_db_info",137,"len")=8
+	Set gtmtypes("unix_db_info",137,"type")="uint64_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=137
+	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("unix_db_info",138,"off")=768
 	Set gtmtypes("unix_db_info",138,"len")=8
 	Set gtmtypes("unix_db_info",138,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=138
-	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("unix_db_info",139,"off")=772
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=138
+	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("unix_db_info",139,"off")=776
 	Set gtmtypes("unix_db_info",139,"len")=8
 	Set gtmtypes("unix_db_info",139,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=139
-	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("unix_db_info",140,"off")=780
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=139
+	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("unix_db_info",140,"off")=784
 	Set gtmtypes("unix_db_info",140,"len")=8
 	Set gtmtypes("unix_db_info",140,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=140
-	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("unix_db_info",141,"off")=788
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=140
+	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("unix_db_info",141,"off")=792
 	Set gtmtypes("unix_db_info",141,"len")=8
 	Set gtmtypes("unix_db_info",141,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=141
-	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("unix_db_info",142,"off")=796
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=141
+	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("unix_db_info",142,"off")=800
 	Set gtmtypes("unix_db_info",142,"len")=8
 	Set gtmtypes("unix_db_info",142,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=142
-	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("unix_db_info",143,"off")=804
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=142
+	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("unix_db_info",143,"off")=808
 	Set gtmtypes("unix_db_info",143,"len")=8
 	Set gtmtypes("unix_db_info",143,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=143
-	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("unix_db_info",144,"off")=812
-	Set gtmtypes("unix_db_info",144,"len")=8
-	Set gtmtypes("unix_db_info",144,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=144
-	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fn"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=143
+	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.fn"
+	Set gtmtypes("unix_db_info",144,"off")=816
+	Set gtmtypes("unix_db_info",144,"len")=4
+	Set gtmtypes("unix_db_info",144,"type")="addr"
+	Set gtmtypfldindx("unix_db_info","fn")=144
+	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fd"
 	Set gtmtypes("unix_db_info",145,"off")=820
 	Set gtmtypes("unix_db_info",145,"len")=4
-	Set gtmtypes("unix_db_info",145,"type")="addr"
-	Set gtmtypfldindx("unix_db_info","fn")=145
-	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fd"
+	Set gtmtypes("unix_db_info",145,"type")="int"
+	Set gtmtypfldindx("unix_db_info","fd")=145
+	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fileid"
 	Set gtmtypes("unix_db_info",146,"off")=824
-	Set gtmtypes("unix_db_info",146,"len")=4
-	Set gtmtypes("unix_db_info",146,"type")="int"
-	Set gtmtypfldindx("unix_db_info","fd")=146
-	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid"
-	Set gtmtypes("unix_db_info",147,"off")=828
-	Set gtmtypes("unix_db_info",147,"len")=20
-	Set gtmtypes("unix_db_info",147,"type")="unix_file_id"
-	Set gtmtypfldindx("unix_db_info","fileid")=147
-	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.inode"
-	Set gtmtypes("unix_db_info",148,"off")=828
+	Set gtmtypes("unix_db_info",146,"len")=20
+	Set gtmtypes("unix_db_info",146,"type")="unix_file_id"
+	Set gtmtypfldindx("unix_db_info","fileid")=146
+	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid.inode"
+	Set gtmtypes("unix_db_info",147,"off")=824
+	Set gtmtypes("unix_db_info",147,"len")=8
+	Set gtmtypes("unix_db_info",147,"type")="ino_t"
+	Set gtmtypfldindx("unix_db_info","fileid.inode")=147
+	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.device"
+	Set gtmtypes("unix_db_info",148,"off")=832
 	Set gtmtypes("unix_db_info",148,"len")=8
-	Set gtmtypes("unix_db_info",148,"type")="ino_t"
-	Set gtmtypfldindx("unix_db_info","fileid.inode")=148
-	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.fileid.device"
-	Set gtmtypes("unix_db_info",149,"off")=836
-	Set gtmtypes("unix_db_info",149,"len")=8
-	Set gtmtypes("unix_db_info",149,"type")="dev_t"
-	Set gtmtypfldindx("unix_db_info","fileid.device")=149
-	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.fileid.st_gen"
+	Set gtmtypes("unix_db_info",148,"type")="dev_t"
+	Set gtmtypfldindx("unix_db_info","fileid.device")=148
+	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.fileid.st_gen"
+	Set gtmtypes("unix_db_info",149,"off")=840
+	Set gtmtypes("unix_db_info",149,"len")=4
+	Set gtmtypes("unix_db_info",149,"type")="unsigned-int"
+	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=149
+	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.semid"
 	Set gtmtypes("unix_db_info",150,"off")=844
 	Set gtmtypes("unix_db_info",150,"len")=4
-	Set gtmtypes("unix_db_info",150,"type")="unsigned-int"
-	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=150
-	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.semid"
+	Set gtmtypes("unix_db_info",150,"type")="int"
+	Set gtmtypfldindx("unix_db_info","semid")=150
+	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.gt_sem_ctime"
 	Set gtmtypes("unix_db_info",151,"off")=848
 	Set gtmtypes("unix_db_info",151,"len")=4
-	Set gtmtypes("unix_db_info",151,"type")="int"
-	Set gtmtypfldindx("unix_db_info","semid")=151
-	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.gt_sem_ctime"
+	Set gtmtypes("unix_db_info",151,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=151
+	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.shmid"
 	Set gtmtypes("unix_db_info",152,"off")=852
 	Set gtmtypes("unix_db_info",152,"len")=4
-	Set gtmtypes("unix_db_info",152,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=152
-	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.shmid"
+	Set gtmtypes("unix_db_info",152,"type")="int"
+	Set gtmtypfldindx("unix_db_info","shmid")=152
+	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.gt_shm_ctime"
 	Set gtmtypes("unix_db_info",153,"off")=856
 	Set gtmtypes("unix_db_info",153,"len")=4
-	Set gtmtypes("unix_db_info",153,"type")="int"
-	Set gtmtypfldindx("unix_db_info","shmid")=153
-	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.gt_shm_ctime"
+	Set gtmtypes("unix_db_info",153,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=153
+	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.ftok_semid"
 	Set gtmtypes("unix_db_info",154,"off")=860
 	Set gtmtypes("unix_db_info",154,"len")=4
-	Set gtmtypes("unix_db_info",154,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=154
-	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.ftok_semid"
-	Set gtmtypes("unix_db_info",155,"off")=864
+	Set gtmtypes("unix_db_info",154,"type")="int"
+	Set gtmtypfldindx("unix_db_info","ftok_semid")=154
+	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.key"
+	Set gtmtypes("unix_db_info",155,"off")=868
 	Set gtmtypes("unix_db_info",155,"len")=4
-	Set gtmtypes("unix_db_info",155,"type")="int"
-	Set gtmtypfldindx("unix_db_info","ftok_semid")=155
-	Set gtmtypes("unix_db_info",156,"name")="unix_db_info.new_shm"
-	Set gtmtypes("unix_db_info",156,"off")=868
+	Set gtmtypes("unix_db_info",155,"type")="key_t"
+	Set gtmtypfldindx("unix_db_info","key")=155
+	Set gtmtypes("unix_db_info",156,"name")="unix_db_info.raw"
+	Set gtmtypes("unix_db_info",156,"off")=872
 	Set gtmtypes("unix_db_info",156,"len")=4
 	Set gtmtypes("unix_db_info",156,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_shm")=156
-	Set gtmtypes("unix_db_info",157,"name")="unix_db_info.new_sem"
-	Set gtmtypes("unix_db_info",157,"off")=872
-	Set gtmtypes("unix_db_info",157,"len")=4
-	Set gtmtypes("unix_db_info",157,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_sem")=157
-	Set gtmtypes("unix_db_info",158,"name")="unix_db_info.grabbed_ftok_sem"
-	Set gtmtypes("unix_db_info",158,"off")=876
-	Set gtmtypes("unix_db_info",158,"len")=4
-	Set gtmtypes("unix_db_info",158,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_ftok_sem")=158
-	Set gtmtypes("unix_db_info",159,"name")="unix_db_info.grabbed_access_sem"
-	Set gtmtypes("unix_db_info",159,"off")=880
-	Set gtmtypes("unix_db_info",159,"len")=4
-	Set gtmtypes("unix_db_info",159,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_access_sem")=159
-	Set gtmtypes("unix_db_info",160,"name")="unix_db_info.counter_acc_incremented"
-	Set gtmtypes("unix_db_info",160,"off")=884
-	Set gtmtypes("unix_db_info",160,"len")=4
-	Set gtmtypes("unix_db_info",160,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_acc_incremented")=160
-	Set gtmtypes("unix_db_info",161,"name")="unix_db_info.counter_ftok_incremented"
-	Set gtmtypes("unix_db_info",161,"off")=888
-	Set gtmtypes("unix_db_info",161,"len")=4
-	Set gtmtypes("unix_db_info",161,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_ftok_incremented")=161
-	Set gtmtypes("unix_db_info",162,"name")="unix_db_info.key"
-	Set gtmtypes("unix_db_info",162,"off")=892
-	Set gtmtypes("unix_db_info",162,"len")=4
-	Set gtmtypes("unix_db_info",162,"type")="key_t"
-	Set gtmtypfldindx("unix_db_info","key")=162
-	Set gtmtypes("unix_db_info",163,"name")="unix_db_info.raw"
-	Set gtmtypes("unix_db_info",163,"off")=896
-	Set gtmtypes("unix_db_info",163,"len")=1
-	Set gtmtypes("unix_db_info",163,"type")="char"
-	Set gtmtypfldindx("unix_db_info","raw")=163
+	Set gtmtypfldindx("unix_db_info","raw")=156
 	;
 	Set gtmtypes("unix_file_id")="struct"
 	Set gtmtypes("unix_file_id",0)=3
diff --git a/sr_i386/GTMDefinedTypesInitRelease.m b/sr_i386/GTMDefinedTypesInitRelease.m
index af24da0..8a207dc 100644
--- a/sr_i386/GTMDefinedTypesInitRelease.m
+++ b/sr_i386/GTMDefinedTypesInitRelease.m
@@ -11,14 +11,14 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;
-; Generated by scantypedefs.m at 15:34:48 on 2016-03-22
-; Build done with GT.M version: GT.M V6.2-002A Linux x86
+; Generated by scantypedefs.m at 17:35:46 on 2016-05-09
+; Build done with GT.M version: GT.M V6.3-000 Linux x86
 ;
 ; Environment variables during run:
-;   $gtm_dist: /usr/library/V62002A/pro
-;   $gtm_exe: /usr/library/V63000/pro
-;   $gtm_src: /usr/library/V63000/src
-;   $gtm_inc: /usr/library/V63000/inc
+;   $gtm_dist: /usr/library/V63000/pro
+;   $gtm_exe: /usr/library/V63000A/pro
+;   $gtm_src: /usr/library/V63000A/src
+;   $gtm_inc: /usr/library/V63000A/inc
 ;
 ; Note this file should not be manually invoked
 ;
@@ -11545,7 +11545,7 @@ Init
 	Set gtmtypfldindx("jnlpool_addrs","jnldata_base")=7
 	;
 	Set gtmtypes("jnlpool_ctl_struct")="struct"
-	Set gtmtypes("jnlpool_ctl_struct",0)=47
+	Set gtmtypes("jnlpool_ctl_struct",0)=48
 	Set gtmtypes("jnlpool_ctl_struct","len")=3712
 	Set gtmtypes("jnlpool_ctl_struct",1,"name")="jnlpool_ctl_struct.jnlpool_id"
 	Set gtmtypes("jnlpool_ctl_struct",1,"off")=0
@@ -11778,11 +11778,16 @@ Init
 	Set gtmtypes("jnlpool_ctl_struct",46,"len")=4
 	Set gtmtypes("jnlpool_ctl_struct",46,"type")="boolean_t"
 	Set gtmtypfldindx("jnlpool_ctl_struct","outofsync_core_generated")=46
-	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.ftok_counter_halted"
 	Set gtmtypes("jnlpool_ctl_struct",47,"off")=3700
-	Set gtmtypes("jnlpool_ctl_struct",47,"len")=12
-	Set gtmtypes("jnlpool_ctl_struct",47,"type")="char"
-	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=47
+	Set gtmtypes("jnlpool_ctl_struct",47,"len")=4
+	Set gtmtypes("jnlpool_ctl_struct",47,"type")="boolean_t"
+	Set gtmtypfldindx("jnlpool_ctl_struct","ftok_counter_halted")=47
+	Set gtmtypes("jnlpool_ctl_struct",48,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",48,"off")=3704
+	Set gtmtypes("jnlpool_ctl_struct",48,"len")=8
+	Set gtmtypes("jnlpool_ctl_struct",48,"type")="char"
+	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=48
 	;
 	Set gtmtypes("jnlpool_write_ctx_t")="struct"
 	Set gtmtypes("jnlpool_write_ctx_t",0)=2
@@ -16759,8 +16764,8 @@ Init
 	Set gtmtypfldindx("nametabent","name")=2
 	;
 	Set gtmtypes("node_local")="struct"
-	Set gtmtypes("node_local",0)=208
-	Set gtmtypes("node_local","len")=51144
+	Set gtmtypes("node_local",0)=210
+	Set gtmtypes("node_local","len")=51152
 	Set gtmtypes("node_local",1,"name")="node_local.label"
 	Set gtmtypes("node_local",1,"off")=0
 	Set gtmtypes("node_local",1,"len")=12
@@ -17806,11 +17811,21 @@ Init
 	Set gtmtypes("node_local",207,"len")=4
 	Set gtmtypes("node_local",207,"type")="boolean_t"
 	Set gtmtypfldindx("node_local","first_nonbypas_writer_seen")=207
-	Set gtmtypes("node_local",208,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",208,"name")="node_local.ftok_counter_halted"
 	Set gtmtypes("node_local",208,"off")=51140
 	Set gtmtypes("node_local",208,"len")=4
-	Set gtmtypes("node_local",208,"type")="unsigned-int"
-	Set gtmtypfldindx("node_local","filler_8byte_align1")=208
+	Set gtmtypes("node_local",208,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","ftok_counter_halted")=208
+	Set gtmtypes("node_local",209,"name")="node_local.access_counter_halted"
+	Set gtmtypes("node_local",209,"off")=51144
+	Set gtmtypes("node_local",209,"len")=4
+	Set gtmtypes("node_local",209,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","access_counter_halted")=209
+	Set gtmtypes("node_local",210,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",210,"off")=51148
+	Set gtmtypes("node_local",210,"len")=4
+	Set gtmtypes("node_local",210,"type")="unsigned-int"
+	Set gtmtypfldindx("node_local","filler_8byte_align1")=210
 	;
 	Set gtmtypes("noisolation_element")="struct"
 	Set gtmtypes("noisolation_element",0)=2
@@ -24216,11 +24231,11 @@ Init
 	Set gtmtypes("repl_inst_hdr",42,"len")=4
 	Set gtmtypes("repl_inst_hdr",42,"type")="boolean_t"
 	Set gtmtypfldindx("repl_inst_hdr","file_corrupt")=42
-	Set gtmtypes("repl_inst_hdr",43,"name")="repl_inst_hdr.ftok_counter_halted"
+	Set gtmtypes("repl_inst_hdr",43,"name")="repl_inst_hdr.filler_ftok_counter_halted"
 	Set gtmtypes("repl_inst_hdr",43,"off")=972
 	Set gtmtypes("repl_inst_hdr",43,"len")=4
 	Set gtmtypes("repl_inst_hdr",43,"type")="boolean_t"
-	Set gtmtypfldindx("repl_inst_hdr","ftok_counter_halted")=43
+	Set gtmtypfldindx("repl_inst_hdr","filler_ftok_counter_halted")=43
 	Set gtmtypes("repl_inst_hdr",44,"name")="repl_inst_hdr.qdbrundown"
 	Set gtmtypes("repl_inst_hdr",44,"off")=976
 	Set gtmtypes("repl_inst_hdr",44,"len")=4
@@ -25761,8 +25776,8 @@ Init
 	Set gtmtypfldindx("sgmm_addrs","filler")=1
 	;
 	Set gtmtypes("sgmnt_addrs")="struct"
-	Set gtmtypes("sgmnt_addrs",0)=143
-	Set gtmtypes("sgmnt_addrs","len")=820
+	Set gtmtypes("sgmnt_addrs",0)=142
+	Set gtmtypes("sgmnt_addrs","len")=816
 	Set gtmtypes("sgmnt_addrs",1,"name")="sgmnt_addrs.hdr"
 	Set gtmtypes("sgmnt_addrs",1,"off")=0
 	Set gtmtypes("sgmnt_addrs",1,"len")=4
@@ -26425,61 +26440,56 @@ Init
 	Set gtmtypes("sgmnt_addrs",132,"len")=4
 	Set gtmtypes("sgmnt_addrs",132,"type")="unsigned-int"
 	Set gtmtypfldindx("sgmnt_addrs","db_onln_rlbkd_cycle")=132
-	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.dbinit_shm_created"
+	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.read_only_fs"
 	Set gtmtypes("sgmnt_addrs",133,"off")=752
 	Set gtmtypes("sgmnt_addrs",133,"len")=4
 	Set gtmtypes("sgmnt_addrs",133,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","dbinit_shm_created")=133
-	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.read_only_fs"
+	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=133
+	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.crit_probe"
 	Set gtmtypes("sgmnt_addrs",134,"off")=756
 	Set gtmtypes("sgmnt_addrs",134,"len")=4
 	Set gtmtypes("sgmnt_addrs",134,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=134
-	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.crit_probe"
+	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=134
+	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.probecrit_rec"
 	Set gtmtypes("sgmnt_addrs",135,"off")=760
-	Set gtmtypes("sgmnt_addrs",135,"len")=4
-	Set gtmtypes("sgmnt_addrs",135,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=135
-	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec"
-	Set gtmtypes("sgmnt_addrs",136,"off")=764
-	Set gtmtypes("sgmnt_addrs",136,"len")=56
-	Set gtmtypes("sgmnt_addrs",136,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=136
-	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("sgmnt_addrs",137,"off")=764
+	Set gtmtypes("sgmnt_addrs",135,"len")=56
+	Set gtmtypes("sgmnt_addrs",135,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=135
+	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
+	Set gtmtypes("sgmnt_addrs",136,"off")=760
+	Set gtmtypes("sgmnt_addrs",136,"len")=8
+	Set gtmtypes("sgmnt_addrs",136,"type")="uint64_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=136
+	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("sgmnt_addrs",137,"off")=768
 	Set gtmtypes("sgmnt_addrs",137,"len")=8
 	Set gtmtypes("sgmnt_addrs",137,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=137
-	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("sgmnt_addrs",138,"off")=772
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=137
+	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("sgmnt_addrs",138,"off")=776
 	Set gtmtypes("sgmnt_addrs",138,"len")=8
 	Set gtmtypes("sgmnt_addrs",138,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=138
-	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("sgmnt_addrs",139,"off")=780
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=138
+	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("sgmnt_addrs",139,"off")=784
 	Set gtmtypes("sgmnt_addrs",139,"len")=8
 	Set gtmtypes("sgmnt_addrs",139,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=139
-	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("sgmnt_addrs",140,"off")=788
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=139
+	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("sgmnt_addrs",140,"off")=792
 	Set gtmtypes("sgmnt_addrs",140,"len")=8
 	Set gtmtypes("sgmnt_addrs",140,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=140
-	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("sgmnt_addrs",141,"off")=796
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=140
+	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("sgmnt_addrs",141,"off")=800
 	Set gtmtypes("sgmnt_addrs",141,"len")=8
 	Set gtmtypes("sgmnt_addrs",141,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=141
-	Set gtmtypes("sgmnt_addrs",142,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("sgmnt_addrs",142,"off")=804
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=141
+	Set gtmtypes("sgmnt_addrs",142,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("sgmnt_addrs",142,"off")=808
 	Set gtmtypes("sgmnt_addrs",142,"len")=8
 	Set gtmtypes("sgmnt_addrs",142,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=142
-	Set gtmtypes("sgmnt_addrs",143,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("sgmnt_addrs",143,"off")=812
-	Set gtmtypes("sgmnt_addrs",143,"len")=8
-	Set gtmtypes("sgmnt_addrs",143,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=143
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=142
 	;
 	Set gtmtypes("sgmnt_data")="struct"
 	Set gtmtypes("sgmnt_data",0)=565
@@ -29305,16 +29315,16 @@ Init
 	Set gtmtypes("sgmnt_data",561,"len")=4
 	Set gtmtypes("sgmnt_data",561,"type")="boolean_t"
 	Set gtmtypfldindx("sgmnt_data","defer_allocate")=561
-	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.ftok_counter_halted"
+	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.filler_ftok_counter_halted"
 	Set gtmtypes("sgmnt_data",562,"off")=6452
 	Set gtmtypes("sgmnt_data",562,"len")=4
 	Set gtmtypes("sgmnt_data",562,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","ftok_counter_halted")=562
-	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.access_counter_halted"
+	Set gtmtypfldindx("sgmnt_data","filler_ftok_counter_halted")=562
+	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.filler_access_counter_halted"
 	Set gtmtypes("sgmnt_data",563,"off")=6456
 	Set gtmtypes("sgmnt_data",563,"len")=4
 	Set gtmtypes("sgmnt_data",563,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","access_counter_halted")=563
+	Set gtmtypfldindx("sgmnt_data","filler_access_counter_halted")=563
 	Set gtmtypes("sgmnt_data",564,"name")="sgmnt_data.filler_7k"
 	Set gtmtypes("sgmnt_data",564,"off")=6460
 	Set gtmtypes("sgmnt_data",564,"len")=708
@@ -32434,16 +32444,16 @@ Init
 	Set gtmtypes("shm_snapshot_t",583,"len")=4
 	Set gtmtypes("shm_snapshot_t",583,"type")="boolean_t"
 	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.defer_allocate")=583
-	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shm_snapshot_t",584,"off")=10620
 	Set gtmtypes("shm_snapshot_t",584,"len")=4
 	Set gtmtypes("shm_snapshot_t",584,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.ftok_counter_halted")=584
-	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_ftok_counter_halted")=584
+	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shm_snapshot_t",585,"off")=10624
 	Set gtmtypes("shm_snapshot_t",585,"len")=4
 	Set gtmtypes("shm_snapshot_t",585,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.access_counter_halted")=585
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_access_counter_halted")=585
 	Set gtmtypes("shm_snapshot_t",586,"name")="shm_snapshot_t.shadow_file_header.filler_7k"
 	Set gtmtypes("shm_snapshot_t",586,"off")=10628
 	Set gtmtypes("shm_snapshot_t",586,"len")=708
@@ -35483,16 +35493,16 @@ Init
 	Set gtmtypes("shmpool_buff_hdr",590,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",590,"type")="boolean_t"
 	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.defer_allocate")=590
-	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",591,"off")=6804
 	Set gtmtypes("shmpool_buff_hdr",591,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",591,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.ftok_counter_halted")=591
-	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_ftok_counter_halted")=591
+	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",592,"off")=6808
 	Set gtmtypes("shmpool_buff_hdr",592,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",592,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.access_counter_halted")=592
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_access_counter_halted")=592
 	Set gtmtypes("shmpool_buff_hdr",593,"name")="shmpool_buff_hdr.shadow_file_header.filler_7k"
 	Set gtmtypes("shmpool_buff_hdr",593,"off")=6812
 	Set gtmtypes("shmpool_buff_hdr",593,"len")=708
@@ -39236,11 +39246,11 @@ Init
 	Set gtmtypfldindx("unique_file_id","file_id")=5
 	;
 	Set gtmtypes("unix_db_info")="struct"
-	Set gtmtypes("unix_db_info",0)=163
-	Set gtmtypes("unix_db_info","len")=900
+	Set gtmtypes("unix_db_info",0)=156
+	Set gtmtypes("unix_db_info","len")=876
 	Set gtmtypes("unix_db_info",1,"name")="unix_db_info.s_addrs"
 	Set gtmtypes("unix_db_info",1,"off")=0
-	Set gtmtypes("unix_db_info",1,"len")=820
+	Set gtmtypes("unix_db_info",1,"len")=816
 	Set gtmtypes("unix_db_info",1,"type")="sgmnt_addrs"
 	Set gtmtypfldindx("unix_db_info","s_addrs")=1
 	Set gtmtypes("unix_db_info",2,"name")="unix_db_info.s_addrs.hdr"
@@ -39905,156 +39915,121 @@ Init
 	Set gtmtypes("unix_db_info",133,"len")=4
 	Set gtmtypes("unix_db_info",133,"type")="unsigned-int"
 	Set gtmtypfldindx("unix_db_info","s_addrs.db_onln_rlbkd_cycle")=133
-	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.dbinit_shm_created"
+	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.read_only_fs"
 	Set gtmtypes("unix_db_info",134,"off")=752
 	Set gtmtypes("unix_db_info",134,"len")=4
 	Set gtmtypes("unix_db_info",134,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.dbinit_shm_created")=134
-	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.read_only_fs"
+	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=134
+	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.crit_probe"
 	Set gtmtypes("unix_db_info",135,"off")=756
 	Set gtmtypes("unix_db_info",135,"len")=4
 	Set gtmtypes("unix_db_info",135,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=135
-	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.crit_probe"
+	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=135
+	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.probecrit_rec"
 	Set gtmtypes("unix_db_info",136,"off")=760
-	Set gtmtypes("unix_db_info",136,"len")=4
-	Set gtmtypes("unix_db_info",136,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=136
-	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec"
-	Set gtmtypes("unix_db_info",137,"off")=764
-	Set gtmtypes("unix_db_info",137,"len")=56
-	Set gtmtypes("unix_db_info",137,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=137
-	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("unix_db_info",138,"off")=764
+	Set gtmtypes("unix_db_info",136,"len")=56
+	Set gtmtypes("unix_db_info",136,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=136
+	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
+	Set gtmtypes("unix_db_info",137,"off")=760
+	Set gtmtypes("unix_db_info",137,"len")=8
+	Set gtmtypes("unix_db_info",137,"type")="uint64_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=137
+	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("unix_db_info",138,"off")=768
 	Set gtmtypes("unix_db_info",138,"len")=8
 	Set gtmtypes("unix_db_info",138,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=138
-	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("unix_db_info",139,"off")=772
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=138
+	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("unix_db_info",139,"off")=776
 	Set gtmtypes("unix_db_info",139,"len")=8
 	Set gtmtypes("unix_db_info",139,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=139
-	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("unix_db_info",140,"off")=780
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=139
+	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("unix_db_info",140,"off")=784
 	Set gtmtypes("unix_db_info",140,"len")=8
 	Set gtmtypes("unix_db_info",140,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=140
-	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("unix_db_info",141,"off")=788
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=140
+	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("unix_db_info",141,"off")=792
 	Set gtmtypes("unix_db_info",141,"len")=8
 	Set gtmtypes("unix_db_info",141,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=141
-	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("unix_db_info",142,"off")=796
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=141
+	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("unix_db_info",142,"off")=800
 	Set gtmtypes("unix_db_info",142,"len")=8
 	Set gtmtypes("unix_db_info",142,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=142
-	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("unix_db_info",143,"off")=804
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=142
+	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("unix_db_info",143,"off")=808
 	Set gtmtypes("unix_db_info",143,"len")=8
 	Set gtmtypes("unix_db_info",143,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=143
-	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("unix_db_info",144,"off")=812
-	Set gtmtypes("unix_db_info",144,"len")=8
-	Set gtmtypes("unix_db_info",144,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=144
-	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fn"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=143
+	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.fn"
+	Set gtmtypes("unix_db_info",144,"off")=816
+	Set gtmtypes("unix_db_info",144,"len")=4
+	Set gtmtypes("unix_db_info",144,"type")="addr"
+	Set gtmtypfldindx("unix_db_info","fn")=144
+	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fd"
 	Set gtmtypes("unix_db_info",145,"off")=820
 	Set gtmtypes("unix_db_info",145,"len")=4
-	Set gtmtypes("unix_db_info",145,"type")="addr"
-	Set gtmtypfldindx("unix_db_info","fn")=145
-	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fd"
+	Set gtmtypes("unix_db_info",145,"type")="int"
+	Set gtmtypfldindx("unix_db_info","fd")=145
+	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fileid"
 	Set gtmtypes("unix_db_info",146,"off")=824
-	Set gtmtypes("unix_db_info",146,"len")=4
-	Set gtmtypes("unix_db_info",146,"type")="int"
-	Set gtmtypfldindx("unix_db_info","fd")=146
-	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid"
-	Set gtmtypes("unix_db_info",147,"off")=828
-	Set gtmtypes("unix_db_info",147,"len")=20
-	Set gtmtypes("unix_db_info",147,"type")="unix_file_id"
-	Set gtmtypfldindx("unix_db_info","fileid")=147
-	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.inode"
-	Set gtmtypes("unix_db_info",148,"off")=828
+	Set gtmtypes("unix_db_info",146,"len")=20
+	Set gtmtypes("unix_db_info",146,"type")="unix_file_id"
+	Set gtmtypfldindx("unix_db_info","fileid")=146
+	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid.inode"
+	Set gtmtypes("unix_db_info",147,"off")=824
+	Set gtmtypes("unix_db_info",147,"len")=8
+	Set gtmtypes("unix_db_info",147,"type")="ino_t"
+	Set gtmtypfldindx("unix_db_info","fileid.inode")=147
+	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.device"
+	Set gtmtypes("unix_db_info",148,"off")=832
 	Set gtmtypes("unix_db_info",148,"len")=8
-	Set gtmtypes("unix_db_info",148,"type")="ino_t"
-	Set gtmtypfldindx("unix_db_info","fileid.inode")=148
-	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.fileid.device"
-	Set gtmtypes("unix_db_info",149,"off")=836
-	Set gtmtypes("unix_db_info",149,"len")=8
-	Set gtmtypes("unix_db_info",149,"type")="dev_t"
-	Set gtmtypfldindx("unix_db_info","fileid.device")=149
-	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.fileid.st_gen"
+	Set gtmtypes("unix_db_info",148,"type")="dev_t"
+	Set gtmtypfldindx("unix_db_info","fileid.device")=148
+	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.fileid.st_gen"
+	Set gtmtypes("unix_db_info",149,"off")=840
+	Set gtmtypes("unix_db_info",149,"len")=4
+	Set gtmtypes("unix_db_info",149,"type")="unsigned-int"
+	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=149
+	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.semid"
 	Set gtmtypes("unix_db_info",150,"off")=844
 	Set gtmtypes("unix_db_info",150,"len")=4
-	Set gtmtypes("unix_db_info",150,"type")="unsigned-int"
-	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=150
-	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.semid"
+	Set gtmtypes("unix_db_info",150,"type")="int"
+	Set gtmtypfldindx("unix_db_info","semid")=150
+	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.gt_sem_ctime"
 	Set gtmtypes("unix_db_info",151,"off")=848
 	Set gtmtypes("unix_db_info",151,"len")=4
-	Set gtmtypes("unix_db_info",151,"type")="int"
-	Set gtmtypfldindx("unix_db_info","semid")=151
-	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.gt_sem_ctime"
+	Set gtmtypes("unix_db_info",151,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=151
+	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.shmid"
 	Set gtmtypes("unix_db_info",152,"off")=852
 	Set gtmtypes("unix_db_info",152,"len")=4
-	Set gtmtypes("unix_db_info",152,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=152
-	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.shmid"
+	Set gtmtypes("unix_db_info",152,"type")="int"
+	Set gtmtypfldindx("unix_db_info","shmid")=152
+	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.gt_shm_ctime"
 	Set gtmtypes("unix_db_info",153,"off")=856
 	Set gtmtypes("unix_db_info",153,"len")=4
-	Set gtmtypes("unix_db_info",153,"type")="int"
-	Set gtmtypfldindx("unix_db_info","shmid")=153
-	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.gt_shm_ctime"
+	Set gtmtypes("unix_db_info",153,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=153
+	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.ftok_semid"
 	Set gtmtypes("unix_db_info",154,"off")=860
 	Set gtmtypes("unix_db_info",154,"len")=4
-	Set gtmtypes("unix_db_info",154,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=154
-	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.ftok_semid"
-	Set gtmtypes("unix_db_info",155,"off")=864
+	Set gtmtypes("unix_db_info",154,"type")="int"
+	Set gtmtypfldindx("unix_db_info","ftok_semid")=154
+	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.key"
+	Set gtmtypes("unix_db_info",155,"off")=868
 	Set gtmtypes("unix_db_info",155,"len")=4
-	Set gtmtypes("unix_db_info",155,"type")="int"
-	Set gtmtypfldindx("unix_db_info","ftok_semid")=155
-	Set gtmtypes("unix_db_info",156,"name")="unix_db_info.new_shm"
-	Set gtmtypes("unix_db_info",156,"off")=868
+	Set gtmtypes("unix_db_info",155,"type")="key_t"
+	Set gtmtypfldindx("unix_db_info","key")=155
+	Set gtmtypes("unix_db_info",156,"name")="unix_db_info.raw"
+	Set gtmtypes("unix_db_info",156,"off")=872
 	Set gtmtypes("unix_db_info",156,"len")=4
 	Set gtmtypes("unix_db_info",156,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_shm")=156
-	Set gtmtypes("unix_db_info",157,"name")="unix_db_info.new_sem"
-	Set gtmtypes("unix_db_info",157,"off")=872
-	Set gtmtypes("unix_db_info",157,"len")=4
-	Set gtmtypes("unix_db_info",157,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_sem")=157
-	Set gtmtypes("unix_db_info",158,"name")="unix_db_info.grabbed_ftok_sem"
-	Set gtmtypes("unix_db_info",158,"off")=876
-	Set gtmtypes("unix_db_info",158,"len")=4
-	Set gtmtypes("unix_db_info",158,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_ftok_sem")=158
-	Set gtmtypes("unix_db_info",159,"name")="unix_db_info.grabbed_access_sem"
-	Set gtmtypes("unix_db_info",159,"off")=880
-	Set gtmtypes("unix_db_info",159,"len")=4
-	Set gtmtypes("unix_db_info",159,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_access_sem")=159
-	Set gtmtypes("unix_db_info",160,"name")="unix_db_info.counter_acc_incremented"
-	Set gtmtypes("unix_db_info",160,"off")=884
-	Set gtmtypes("unix_db_info",160,"len")=4
-	Set gtmtypes("unix_db_info",160,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_acc_incremented")=160
-	Set gtmtypes("unix_db_info",161,"name")="unix_db_info.counter_ftok_incremented"
-	Set gtmtypes("unix_db_info",161,"off")=888
-	Set gtmtypes("unix_db_info",161,"len")=4
-	Set gtmtypes("unix_db_info",161,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_ftok_incremented")=161
-	Set gtmtypes("unix_db_info",162,"name")="unix_db_info.key"
-	Set gtmtypes("unix_db_info",162,"off")=892
-	Set gtmtypes("unix_db_info",162,"len")=4
-	Set gtmtypes("unix_db_info",162,"type")="key_t"
-	Set gtmtypfldindx("unix_db_info","key")=162
-	Set gtmtypes("unix_db_info",163,"name")="unix_db_info.raw"
-	Set gtmtypes("unix_db_info",163,"off")=896
-	Set gtmtypes("unix_db_info",163,"len")=1
-	Set gtmtypes("unix_db_info",163,"type")="char"
-	Set gtmtypfldindx("unix_db_info","raw")=163
+	Set gtmtypfldindx("unix_db_info","raw")=156
 	;
 	Set gtmtypes("unix_file_id")="struct"
 	Set gtmtypes("unix_file_id",0)=3
diff --git a/sr_i386/cmerrors_ctl.c b/sr_i386/cmerrors_ctl.c
index c878c30..5e6fa3b 100644
--- a/sr_i386/cmerrors_ctl.c
+++ b/sr_i386/cmerrors_ctl.c
@@ -13,12 +13,12 @@
 #include "error.h"
 
 LITDEF	err_msg cmerrors[] = {
-	"INVPROT", "Invalid protocol specified by remote partner", 0,
-	"REGNTFND", "Region referenced not initialized", 0,
-	"CMINTQUE", "Interlock failure accessing GT.CM server queue", 0,
-	"INVINTMSG", "Invalid interrupt message received.", 0,
-	"CMEXCDASTLM", "Exceeded AST limit. Cannot open database.", 0,
-	"CMSYSSRV", "Error doing system service, status:", 0,
+	{ "INVPROT", "Invalid protocol specified by remote partner", 0 },
+	{ "REGNTFND", "Region referenced not initialized", 0 },
+	{ "CMINTQUE", "Interlock failure accessing GT.CM server queue", 0 },
+	{ "INVINTMSG", "Invalid interrupt message received.", 0 },
+	{ "CMEXCDASTLM", "Exceeded AST limit. Cannot open database.", 0 },
+	{ "CMSYSSRV", "Error doing system service, status:", 0 },
 };
 
 LITDEF	int CMERR_INVPROT = 150568970;
diff --git a/sr_i386/cmierrors_ctl.c b/sr_i386/cmierrors_ctl.c
index f76581d..43d69d2 100644
--- a/sr_i386/cmierrors_ctl.c
+++ b/sr_i386/cmierrors_ctl.c
@@ -13,31 +13,31 @@
 #include "error.h"
 
 LITDEF	err_msg cmierrors[] = {
-	"DCNINPROG", "Attempt to initiate operation while disconnect was in progress", 0,
-	"LNKNOTIDLE", "Attempt to initiate operation before previous operation completed", 0,
-	"ASSERT", "Assert failed !AD line !UL", 3,
-	"CMICHECK", "Internal CMI error. Report to your GT.M Support Channel.", 0,
-	"NETFAIL", "Failure of Net operation", 0,
-	"BADPORT", "Environment variable GTCM_TCP_PORT is not an integer", 0,
-	"NOTND", "tnd argument to cmi_init is NULL", 0,
-	"OVERRUN", "mbf argument in CLB is not large enough for packet", 0,
-	"NOSERVENT", "Sevices data lookup failure", 0,
-	"BADIPADDRPORT", "Bad specification of [ip address:port] in tnd", 0,
-	"REASON_CONNECT", "Incoming connection", 0,
-	"REASON_INTMSG", "Incoming urgent data", 0,
-	"REASON_DISCON", "Disconnect encountered", 0,
-	"REASON_ABORT", "Link aborted", 0,
-	"REASON_EXIT", "Exit", 0,
-	"REASON_PATHLOST", "Network path lost", 0,
-	"REASON_PROTOCOL", "Protocol error", 0,
-	"REASON_THIRDPARTY", "Thirdparty error", 0,
-	"REASON_TIMEOUT", "Network timeout", 0,
-	"REASON_NETSHUT", "Shutdown received", 0,
-	"REASON_REJECT", "Connection rejected", 0,
-	"REASON_IODONE", "I/O done", 0,
-	"REASON_OVERRUN", "Input overran buffer", 0,
-	"REASON_STATUS", "Status", 0,
-	"REASON_CONFIRM", "Confirm", 0,
+	{ "DCNINPROG", "Attempt to initiate operation while disconnect was in progress", 0 },
+	{ "LNKNOTIDLE", "Attempt to initiate operation before previous operation completed", 0 },
+	{ "ASSERT", "Assert failed !AD line !UL", 3 },
+	{ "CMICHECK", "Internal CMI error. Report to your GT.M Support Channel.", 0 },
+	{ "NETFAIL", "Failure of Net operation", 0 },
+	{ "BADPORT", "Environment variable GTCM_TCP_PORT is not an integer", 0 },
+	{ "NOTND", "tnd argument to cmi_init is NULL", 0 },
+	{ "OVERRUN", "mbf argument in CLB is not large enough for packet", 0 },
+	{ "NOSERVENT", "Sevices data lookup failure", 0 },
+	{ "BADIPADDRPORT", "Bad specification of [ip address:port] in tnd", 0 },
+	{ "REASON_CONNECT", "Incoming connection", 0 },
+	{ "REASON_INTMSG", "Incoming urgent data", 0 },
+	{ "REASON_DISCON", "Disconnect encountered", 0 },
+	{ "REASON_ABORT", "Link aborted", 0 },
+	{ "REASON_EXIT", "Exit", 0 },
+	{ "REASON_PATHLOST", "Network path lost", 0 },
+	{ "REASON_PROTOCOL", "Protocol error", 0 },
+	{ "REASON_THIRDPARTY", "Thirdparty error", 0 },
+	{ "REASON_TIMEOUT", "Network timeout", 0 },
+	{ "REASON_NETSHUT", "Shutdown received", 0 },
+	{ "REASON_REJECT", "Connection rejected", 0 },
+	{ "REASON_IODONE", "I/O done", 0 },
+	{ "REASON_OVERRUN", "Input overran buffer", 0 },
+	{ "REASON_STATUS", "Status", 0 },
+	{ "REASON_CONFIRM", "Confirm", 0 },
 };
 
 LITDEF	int CMI_DCNINPROG = 150634508;
diff --git a/sr_i386/gdeerrors_ctl.c b/sr_i386/gdeerrors_ctl.c
index 494654e..11a983b 100644
--- a/sr_i386/gdeerrors_ctl.c
+++ b/sr_i386/gdeerrors_ctl.c
@@ -13,90 +13,90 @@
 #include "error.h"
 
 LITDEF	err_msg gdeerrors[] = {
-	"BLKSIZ512", "Block size !AD rounds to !AD", 4,
-	"EXECOM", "Executing command file !AD", 2,
-	"FILENOTFND", "File !AD not found", 2,
-	"GDCREATE", "Creating Global Directory file !/	!AD", 2,
-	"GDECHECK", "Internal GDE consistency check", 0,
-	"GDUNKNFMT", "!AD !/	is not formatted as a Global Directory", 2,
-	"GDUPDATE", "Updating Global Directory file !/	!AD", 2,
-	"GDUSEDEFS", "Using defaults for Global Directory !/	!AD", 2,
-	"ILLCHAR", "!AD is not a legal character in this context", 2,
-	"INPINTEG", "Input integrity error -- aborting load", 0,
-	"KEYTOOBIG", "But record size !AD can only support key size !AD", 4,
-	"KEYSIZIS", "Key size is !AD", 2,
-	"KEYWRDAMB", "!AD is ambiguous for !AD", 4,
-	"KEYWRDBAD", "!AD is not a valid !AD in this context", 4,
-	"LOADGD", "Loading Global Directory file !/	!AD", 2,
-	"LOGOFF", "No longer logging to file !AD", 2,
-	"LOGON", "Logging to file !AD", 2,
-	"LVSTARALON", "The * name cannot be deleted or renamed", 0,
-	"MAPBAD", "!AD !AD for !AD !AD does not exist", 8,
-	"MAPDUP", "!AD !AD and !AD both map to !AD !AD", 10,
-	"NAMENDBAD", "Subscripted name !AD must end with right parenthesis", 2,
-	"NOACTION", "Not updating Global Directory !AD", 2,
-	"RPAREN", "List must end with right parenthesis or continue with comma", 0,
-	"NOEXIT", "Cannot exit because of verification failure", 0,
-	"NOLOG", "Logging is currently disabled!/ Log file is !AD.", 2,
-	"NOVALUE", "Qualifier !AD does not take a value", 2,
-	"NONEGATE", "Qualifier !AD cannot be negated", 2,
-	"OBJDUP", "!AD !AD already exists", 4,
-	"OBJNOTADD", "Not adding !AD !AD", 4,
-	"OBJNOTCHG", "Not changing !AD !AD", 4,
-	"OBJNOTFND", "!AD !AD does not exist", 4,
-	"OBJREQD", "!AD required", 2,
-	"PREFIXBAD", "!AD - !AD !AD must start with an alphabetic character", 6,
-	"QUALBAD", "!AD is not a valid qualifier", 2,
-	"QUALDUP", "!AD qualifier appears more than once in the list", 2,
-	"QUALREQD", "!AD required", 2,
-	"RECTOOBIG", "Block size !AD and !AD reserved bytes limit record size to !AD", 6,
-	"RECSIZIS", "Record size is !AD", 2,
-	"REGIS", "in region !AD", 2,
-	"SEGIS", "in !AD segment !AD", 4,
-	"VALTOOBIG", "!AD is larger than the maximum of !AD for a !AD", 6,
-	"VALTOOLONG", "!AD exceeds the maximum length of !AD for a !AD", 6,
-	"VALTOOSMALL", "!AD is less than the minimum of !AD for a !AD", 6,
-	"VALUEBAD", "!AD is not a valid !AD", 4,
-	"VALUEREQD", "Qualifier !AD requires a value", 2,
-	"VERIFY", "Verification !AD", 2,
-	"BUFSIZIS", "Journal Buffer size is !AD", 2,
-	"BUFTOOSMALL", "But block size !AD requires buffer size !AD", 4,
-	"MMNOBEFORIMG", "MM segments do not support before image jounaling", 0,
-	"NOJNL", "!AD segments do not support journaling", 2,
-	"GDREADERR", "Error reading Global Directory: !AD", 2,
-	"GDNOTSET", "Global Directory not changed because the current GD cannot be written", 0,
-	"INVGBLDIR", "Invalid Global Directory spec: !AD.!/Continuing with !AD", 4,
-	"WRITEERROR", "Cannot exit because of write failure.  Reason for failure: !AD", 2,
-	"NONASCII", "!AD is illegal for a !AD as it contains non-ASCII characters", 4,
-	"CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2,
-	"JNLALLOCGROW", "Increased Journal ALLOCATION from [!AD blocks] to [!AD blocks] to match AUTOSWITCHLIMIT for !AD !AD", 8,
-	"KEYFORBLK", "But block size !AD and reserved bytes !AD limit key size to !AD", 6,
-	"STRMISSQUOTE", "Missing double-quote at end of string specification !AD", 2,
-	"GBLNAMEIS", "in gblname !AD", 2,
-	"NAMSUBSEMPTY", "Subscript #!UL is empty in name specification", 3,
-	"NAMSUBSBAD", "Subscript #!UL with value !AD in name specification is an invalid number or string", 3,
-	"NAMNUMSUBSOFLOW", "Subscript #!UL with value !AD in name specification has a numeric overflow", 3,
-	"NAMNUMSUBNOTEXACT", "Subscript #!UL with value !AD in name specification is not an exact GT.M number", 3,
-	"MISSINGDELIM", "Delimiter !AD expected before !AD !AD", 6,
-	"NAMRANGELASTSUB", "Ranges in name specification !AD are allowed only in the last subscript", 2,
-	"NAMSTARSUBSMIX", "Name specification !AD cannot contain * and subscripts at the same time", 2,
-	"NAMLPARENNOTBEG", "Subscripted Name specification !AD needs to have a left parenthesis at the beginning of subscripts", 2,
-	"NAMRPARENNOTEND", "Subscripted Name specification !AD cannot have anything following the right parenthesis at the end of subscripts", 2,
-	"NAMONECOLON", "Subscripted Name specification !AD must have at most one colon (range) specification", 2,
-	"NAMRPARENMISSING", "Subscripted Name specification !AD is missing one or more right parentheses at the end of subscripts", 2,
-	"NAMGVSUBSMAX", "Subscripted Name specification !AD has more than the maximum # of subscripts (!UL)", 3,
-	"NAMNOTSTRSUBS", "Subscript #!UL with value !AD in name specification is not a properly formatted string subscript", 3,
-	"NAMSTRSUBSFUN", "Subscript #!UL with value !AD in name specification uses function other than $C/$CHAR/$ZCH/$ZCHAR", 3,
-	"NAMSTRSUBSLPAREN", "Subscript #!UL with value !AD in name specification does not have left parenthesis following $ specification", 3,
-	"NAMSTRSUBSCHINT", "Subscript #!UL with value !AD in name specification does not have a positive integer inside $C/$CHAR/$ZCH/$ZCHAR", 3,
-	"NAMSTRSUBSCHARG", "Subscript #!UL with value !AD in name specification specifies a $C/$ZCH with number !UL that is invalid in the current $zchset", 4,
-	"GBLNAMCOLLUNDEF", "Error opening shared library of collation sequence #!UL for GBLNAME !AD", 3,
-	"NAMRANGEORDER", "Range in name specification !AD specifies out-of-order subscripts using collation sequence #!UL", 3,
-	"NAMRANGEOVERLAP", "Range in name specifications !AD and !AD overlap using collation sequence #!UL", 5,
-	"NAMGVSUBOFLOW", "Subscripted name !AD...!AD is too long to represent in the database using collation value #!UL", 5,
-	"GBLNAMCOLLRANGE", "Collation sequence #!UL is out of range (0 thru 255)", 3,
-	"STDNULLCOLLREQ", "Region !AD needs Standard Null Collation enabled because global !AD spans through it", 4,
-	"GBLNAMCOLLVER", "Global directory indicates GBLNAME !AD has collation sequence #!UL with a version #!UL but shared library reports different version #!UL", 5,
+	{ "BLKSIZ512", "Block size !AD rounds to !AD", 4 },
+	{ "EXECOM", "Executing command file !AD", 2 },
+	{ "FILENOTFND", "File !AD not found", 2 },
+	{ "GDCREATE", "Creating Global Directory file !/	!AD", 2 },
+	{ "GDECHECK", "Internal GDE consistency check", 0 },
+	{ "GDUNKNFMT", "!AD !/	is not formatted as a Global Directory", 2 },
+	{ "GDUPDATE", "Updating Global Directory file !/	!AD", 2 },
+	{ "GDUSEDEFS", "Using defaults for Global Directory !/	!AD", 2 },
+	{ "ILLCHAR", "!AD is not a legal character in this context", 2 },
+	{ "INPINTEG", "Input integrity error -- aborting load", 0 },
+	{ "KEYTOOBIG", "But record size !AD can only support key size !AD", 4 },
+	{ "KEYSIZIS", "Key size is !AD", 2 },
+	{ "KEYWRDAMB", "!AD is ambiguous for !AD", 4 },
+	{ "KEYWRDBAD", "!AD is not a valid !AD in this context", 4 },
+	{ "LOADGD", "Loading Global Directory file !/	!AD", 2 },
+	{ "LOGOFF", "No longer logging to file !AD", 2 },
+	{ "LOGON", "Logging to file !AD", 2 },
+	{ "LVSTARALON", "The * name cannot be deleted or renamed", 0 },
+	{ "MAPBAD", "!AD !AD for !AD !AD does not exist", 8 },
+	{ "MAPDUP", "!AD !AD and !AD both map to !AD !AD", 10 },
+	{ "NAMENDBAD", "Subscripted name !AD must end with right parenthesis", 2 },
+	{ "NOACTION", "Not updating Global Directory !AD", 2 },
+	{ "RPAREN", "List must end with right parenthesis or continue with comma", 0 },
+	{ "NOEXIT", "Cannot exit because of verification failure", 0 },
+	{ "NOLOG", "Logging is currently disabled!/ Log file is !AD.", 2 },
+	{ "NOVALUE", "Qualifier !AD does not take a value", 2 },
+	{ "NONEGATE", "Qualifier !AD cannot be negated", 2 },
+	{ "OBJDUP", "!AD !AD already exists", 4 },
+	{ "OBJNOTADD", "Not adding !AD !AD", 4 },
+	{ "OBJNOTCHG", "Not changing !AD !AD", 4 },
+	{ "OBJNOTFND", "!AD !AD does not exist", 4 },
+	{ "OBJREQD", "!AD required", 2 },
+	{ "PREFIXBAD", "!AD - !AD !AD must start with an alphabetic character", 6 },
+	{ "QUALBAD", "!AD is not a valid qualifier", 2 },
+	{ "QUALDUP", "!AD qualifier appears more than once in the list", 2 },
+	{ "QUALREQD", "!AD required", 2 },
+	{ "RECTOOBIG", "Block size !AD and !AD reserved bytes limit record size to !AD", 6 },
+	{ "RECSIZIS", "Record size is !AD", 2 },
+	{ "REGIS", "in region !AD", 2 },
+	{ "SEGIS", "in !AD segment !AD", 4 },
+	{ "VALTOOBIG", "!AD is larger than the maximum of !AD for a !AD", 6 },
+	{ "VALTOOLONG", "!AD exceeds the maximum length of !AD for a !AD", 6 },
+	{ "VALTOOSMALL", "!AD is less than the minimum of !AD for a !AD", 6 },
+	{ "VALUEBAD", "!AD is not a valid !AD", 4 },
+	{ "VALUEREQD", "Qualifier !AD requires a value", 2 },
+	{ "VERIFY", "Verification !AD", 2 },
+	{ "BUFSIZIS", "Journal Buffer size is !AD", 2 },
+	{ "BUFTOOSMALL", "But block size !AD requires buffer size !AD", 4 },
+	{ "MMNOBEFORIMG", "MM segments do not support before image jounaling", 0 },
+	{ "NOJNL", "!AD segments do not support journaling", 2 },
+	{ "GDREADERR", "Error reading Global Directory: !AD", 2 },
+	{ "GDNOTSET", "Global Directory not changed because the current GD cannot be written", 0 },
+	{ "INVGBLDIR", "Invalid Global Directory spec: !AD.!/Continuing with !AD", 4 },
+	{ "WRITEERROR", "Cannot exit because of write failure.  Reason for failure: !AD", 2 },
+	{ "NONASCII", "!AD is illegal for a !AD as it contains non-ASCII characters", 4 },
+	{ "CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2 },
+	{ "JNLALLOCGROW", "Increased Journal ALLOCATION from [!AD blocks] to [!AD blocks] to match AUTOSWITCHLIMIT for !AD !AD", 8 },
+	{ "KEYFORBLK", "But block size !AD and reserved bytes !AD limit key size to !AD", 6 },
+	{ "STRMISSQUOTE", "Missing double-quote at end of string specification !AD", 2 },
+	{ "GBLNAMEIS", "in gblname !AD", 2 },
+	{ "NAMSUBSEMPTY", "Subscript #!UL is empty in name specification", 3 },
+	{ "NAMSUBSBAD", "Subscript #!UL with value !AD in name specification is an invalid number or string", 3 },
+	{ "NAMNUMSUBSOFLOW", "Subscript #!UL with value !AD in name specification has a numeric overflow", 3 },
+	{ "NAMNUMSUBNOTEXACT", "Subscript #!UL with value !AD in name specification is not an exact GT.M number", 3 },
+	{ "MISSINGDELIM", "Delimiter !AD expected before !AD !AD", 6 },
+	{ "NAMRANGELASTSUB", "Ranges in name specification !AD are allowed only in the last subscript", 2 },
+	{ "NAMSTARSUBSMIX", "Name specification !AD cannot contain * and subscripts at the same time", 2 },
+	{ "NAMLPARENNOTBEG", "Subscripted Name specification !AD needs to have a left parenthesis at the beginning of subscripts", 2 },
+	{ "NAMRPARENNOTEND", "Subscripted Name specification !AD cannot have anything following the right parenthesis at the end of subscripts", 2 },
+	{ "NAMONECOLON", "Subscripted Name specification !AD must have at most one colon (range) specification", 2 },
+	{ "NAMRPARENMISSING", "Subscripted Name specification !AD is missing one or more right parentheses at the end of subscripts", 2 },
+	{ "NAMGVSUBSMAX", "Subscripted Name specification !AD has more than the maximum # of subscripts (!UL)", 3 },
+	{ "NAMNOTSTRSUBS", "Subscript #!UL with value !AD in name specification is not a properly formatted string subscript", 3 },
+	{ "NAMSTRSUBSFUN", "Subscript #!UL with value !AD in name specification uses function other than $C/$CHAR/$ZCH/$ZCHAR", 3 },
+	{ "NAMSTRSUBSLPAREN", "Subscript #!UL with value !AD in name specification does not have left parenthesis following $ specification", 3 },
+	{ "NAMSTRSUBSCHINT", "Subscript #!UL with value !AD in name specification does not have a positive integer inside $C/$CHAR/$ZCH/$ZCHAR", 3 },
+	{ "NAMSTRSUBSCHARG", "Subscript #!UL with value !AD in name specification specifies a $C/$ZCH with number !UL that is invalid in the current $zchset", 4 },
+	{ "GBLNAMCOLLUNDEF", "Error opening shared library of collation sequence #!UL for GBLNAME !AD", 3 },
+	{ "NAMRANGEORDER", "Range in name specification !AD specifies out-of-order subscripts using collation sequence #!UL", 3 },
+	{ "NAMRANGEOVERLAP", "Range in name specifications !AD and !AD overlap using collation sequence #!UL", 5 },
+	{ "NAMGVSUBOFLOW", "Subscripted name !AD...!AD is too long to represent in the database using collation value #!UL", 5 },
+	{ "GBLNAMCOLLRANGE", "Collation sequence #!UL is out of range (0 thru 255)", 3 },
+	{ "STDNULLCOLLREQ", "Region !AD needs Standard Null Collation enabled because global !AD spans through it", 4 },
+	{ "GBLNAMCOLLVER", "Global directory indicates GBLNAME !AD has collation sequence #!UL with a version #!UL but shared library reports different version #!UL", 5 },
 };
 
 LITDEF	int GDE_BLKSIZ512 = 150503435;
diff --git a/sr_i386/merrors_ansi.h b/sr_i386/merrors_ansi.h
index 5fb54b5..9dee92b 100644
--- a/sr_i386/merrors_ansi.h
+++ b/sr_i386/merrors_ansi.h
@@ -1450,4 +1450,5 @@ const static readonly int error_ansi[] = {
 	   0,	/* MUREENCRYPTV4NOALLOW */
 	   0,	/* ENCRYPTCONFLT */
 	   0,	/* JNLPOOLRECOVERY */
+	   0,	/* LOCKTIMINGINTP */
 	};
diff --git a/sr_i386/merrors_ctl.c b/sr_i386/merrors_ctl.c
index 71fe788..2afc71f 100644
--- a/sr_i386/merrors_ctl.c
+++ b/sr_i386/merrors_ctl.c
@@ -13,1445 +13,1446 @@
 #include "error.h"
 
 LITDEF	err_msg merrors[] = {
-	"ACK", "", 0,
-	"BREAKZST", "Break instruction encountered during ZSTEP action", 0,
-	"BADACCMTHD", "Invalid access method was specified, file not created", 0,
-	"BADJPIPARAM", "!AD is not a legal parameter for $ZGETJPI()", 2,
-	"BADSYIPARAM", "!AD is not a legal parameter for $ZGETSYI()", 2,
-	"BITMAPSBAD", "Database bit maps are incorrect", 0,
-	"BREAK", "Break instruction encountered", 0,
-	"BREAKDEA", "Break instruction encountered during Device error action", 0,
-	"BREAKZBA", "Break instruction encountered during ZBREAK action", 0,
-	"STATCNT", "!AD:!_  Key cnt: !UL  max subsc len: !UL  max data len: !UL", 5,
-	"BTFAIL", "The database block table is corrupt; error type !UL", 1,
-	"MUPRECFLLCK", "Database file !AD is locked by MUPIP RECOVER.  Could not secure access.", 2,
-	"CMD", "Command expected but not found", 0,
-	"COLON", "Colon (:) expected in this context", 0,
-	"COMMA", "Comma expected in this context", 0,
-	"COMMAORRPAREXP", "Comma or right parenthesis expected but not found", 0,
-	"COMMENT", "Comment line.  Placed zbreak at next executable line.", 0,
-	"CTRAP", "Character trap $C(!UL) encountered", 1,
-	"CTRLC", "CTRL_C encountered", 0,
-	"CTRLY", "User interrupt encountered", 0,
-	"DBCCERR", "Interlock instruction failure in critical mechanism for region !AD", 2,
-	"DUPTOKEN", "Token 0x!16 at XQ is duplicate in the journal file !AD for database !AD", 5,
-	"DBJNLNOTMATCH", "Database !AD points to journal file name !AD but the journal file points to database file !AD", 6,
-	"DBFILERR", "Error with database file !AD", 2,
-	"DBNOTGDS", "!AD - Unrecognized database file format", 2,
-	"DBOPNERR", "Error opening database file !AD", 2,
-	"DBRDERR", "Cannot read database file !AD after opening", 2,
-	"CCEDUMPNOW", "", 0,
-	"DEVPARINAP", "Device parameter inappropriate to this command", 0,
-	"RECORDSTAT", "!AD:!_  Key cnt: !@ZQ  max subsc len: !UL  max rec len: !UL  max node len: !UL", 6,
-	"NOTGBL", "Expected a global variable name starting with an up-arrow (^): !AD", 2,
-	"DEVPARPROT", "The protection specification is invalid", 0,
-	"PREMATEOF", "Premature end of file detected", 0,
-	"GVINVALID", "!_!AD!/!_!_!_Invalid global name", 2,
-	"DEVPARTOOBIG", "String deviceparameter exceeds 255 character limit", 0,
-	"DEVPARUNK", "Deviceparameter unknown", 0,
-	"DEVPARVALREQ", "A value is required for this device parameter", 0,
-	"DEVPARMNEG", "Deviceparameter must be a positive value", 0,
-	"DSEBLKRDFAIL", "Failed attempt to read block", 0,
-	"DSEFAIL", "DSE failed.  Failure code: !AD.", 2,
-	"NOTALLREPLON", "Replication off for !AD regions", 2,
-	"BADLKIPARAM", "!AD is not a legal parameter for $ZGETLKI()", 2,
-	"JNLREADBOF", "Beginning of journal file encountered for !AD", 2,
-	"DVIKEYBAD", "$ZGETDVI(\"!AD\",\"!AD\") contains an illegal keyword", 4,
-	"ENQ", "", 0,
-	"EQUAL", "Equal sign expected but not found", 0,
-	"ERRORSUMMARY", "Errors occurred during compilation", 0,
-	"ERRWEXC", "Error while processing exception string", 0,
-	"ERRWIOEXC", "Error while processing I/O exception string", 0,
-	"ERRWZBRK", "Error while processing ZBREAK action string", 0,
-	"ERRWZTRAP", "Error while processing $ZTRAP", 0,
-	"NUMUNXEOR", "!_!AD!/!_!_!_unexpected end of record in numeric subscript", 2,
-	"EXPR", "Expression expected but not found", 0,
-	"STRUNXEOR", "!_!AD!/!_!_!_unexpected end of record in string subscript", 2,
-	"JNLEXTEND", "Journal file extension error for file !AD", 2,
-	"FCHARMAXARGS", "Argument count of $CHAR function exceeded the maximum of 255", 0,
-	"FCNSVNEXPECTED", "Function or special variable expected in this context", 0,
-	"FNARGINC", "Format specifiers to $FNUMBER are incompatible: \"!AD\"", 2,
-	"JNLACCESS", "Error accessing journal file !AD", 2,
-	"TRANSNOSTART", "ZTCOMMIT(s) issued without corresponding ZTSTART(s)", 0,
-	"FNUMARG", "$FNUMBER format specifier \"!AD\" contains an illegal character: \"!AD\"", 4,
-	"FOROFLOW", "FOR commands nested more than !UL deep on a line", 1,
-	"YDIRTSZ", "Size of YDIRT data too large", 0,
-	"JNLSUCCESS", "!AD successful", 2,
-	"GBLNAME", "Either an identifier or a left parenthesis is expected after a ^ in this context", 0,
-	"GBLOFLOW", "Database segment is full", 0,
-	"CORRUPT", "Corrupt input in Blk # !UL, Key #!UL; resuming with next global block", 2,
-	"GTMCHECK", "Internal GT.M error--Report to your GT.M Support Channel", 0,
-	"GVDATAFAIL", "Global variable $DATA function failed.  Failure code: !AD.", 2,
-	"EORNOTFND", "!_!AD!/!_!_!_End of record not found", 2,
-	"GVGETFAIL", "Global variable retrieval failed.  Failure code: !AD.", 2,
-	"GVIS", "!_!_Global variable: !AD", 2,
-	"GVKILLFAIL", "Global variable kill failed.  Failure code: !AD.", 2,
-	"GVNAKED", "Illegal naked global reference", 0,
-	"GVNEXTARG", "Argument to global variable $NEXT must be subscripted", 0,
-	"GVORDERFAIL", "Global variable $ORDER or $NEXT function failed.  Failure code: !AD.", 2,
-	"GVPUTFAIL", "Global variable put failed.  Failure code: !AD.", 2,
-	"PATTABSYNTAX", "Error in !AD at line !UL", 3,
-	"GVSUBOFLOW", "Maximum combined length of subscripts exceeded", 0,
-	"GVUNDEF", "Global variable undefined: !AD", 2,
-	"TRANSNEST", "Maximum transaction nesting levels exceeded", 0,
-	"INDEXTRACHARS", "Indirection string contains extra trailing characters", 0,
-	"CORRUPTNODE", "Corrupt input in Record # !UL, Key #!UL; resuming with next global node", 2,
-	"INDRMAXLEN", "Maximum length !UL of an indirection argument was exceeded", 1,
-	"INSFFBCNT", "Insufficient byte count quota left for requested operation", 0,
-	"INTEGERRS", "Database integrity errors", 0,
-	"INVCMD", "Invalid command keyword encountered", 0,
-	"INVFCN", "Invalid function name", 0,
-	"INVOBJ", "Cannot ZLINK object file due to unexpected format", 0,
-	"INVSVN", "Invalid special variable name", 0,
-	"IOEOF", "Attempt to read past an end-of-file", 0,
-	"IONOTOPEN", "Attempt to USE an I/O device which has not been opened", 0,
-	"MUPIPINFO", "!AD", 2,
-	"IVTIME", "Invalid time specification: !AD", 2,
-	"JOBFAIL", "JOB command failure", 0,
-	"JOBLABOFF", "Label and offset not found in created process", 0,
-	"JOBPARNOVAL", "This job parameter cannot take a value", 0,
-	"JOBPARNUM", "The value of this job parameter must be an integer", 0,
-	"JOBPARSTR", "The value of this job parameter must be a string", 0,
-	"JOBPARUNK", "Job parameter unknown", 0,
-	"JOBPARVALREQ", "A value is required for this job parameter", 0,
-	"JUSTFRACT", "Fraction specifier to $JUSTIFY cannot be negative", 0,
-	"KEY2BIG", "Key size (!UL) is greater than maximum (!UL) for region: !AD", 4,
-	"LABELEXPECTED", "Label expected in this context", 0,
-	"LABELMISSING", "Label referenced but not defined: !AD", 2,
-	"LABELUNKNOWN", "Label referenced but not defined", 0,
-	"DIVZERO", "Attempt to divide by zero", 0,
-	"LKNAMEXPECTED", "An identifier is expected after a ^ in this context", 0,
-	"JNLRDERR", "Error reading journal file !AD.  Unable to initialize.", 2,
-	"LOADRUNNING", "Cannot ZLINK an active routine !AD", 2,
-	"LPARENMISSING", "Left parenthesis expected", 0,
-	"LSEXPECTED", "A line separator is expected here", 0,
-	"LVORDERARG", "Argument to local variable $NEXT must be subscripted", 0,
-	"MAXFORARGS", "Maximum number of arguments to a single FOR command exceeded", 0,
-	"TRANSMINUS", "Negative numbers not allowed with ZTCOMMIT", 0,
-	"MAXNRSUBSCRIPTS", "Maximum number of subscripts exceeded", 0,
-	"MAXSTRLEN", "Maximum string length exceeded", 0,
-	"JNLDBERR", "Journal file !AD does not correspond to database file !AD", 4,
-	"JNLFILOPN", "Error opening journal file !AD for database file !AD", 4,
-	"MBXRDONLY", "Mailbox is read only, cannot write to it", 0,
-	"JNLINVALID", "!AD is not a valid journal file !/ for database file: !AD", 4,
-	"MBXWRTONLY", "Mailbox is write only, cannot read from it", 0,
-	"MEMORY", "Central memory exhausted during request for !UJ bytes from 0x!XJ", 2,
-	"MTBLKTOOBIG", "Magtape BLOCK_SIZE exceeds maximum size allowed", 0,
-	"MTBLKTOOSM", "Magtape BLOCK_SIZE is less than !UL bytes", 1,
-	"MTFIXRECSZ", "BLOCK_SIZE !UL must be multiple of fixed record size !UL", 2,
-	"MTIS", "Magnetic tape: !AD", 2,
-	"MTRDBADBLK", "Block read too small, contained only !UL bytes, block size = !UL", 2,
-	"MTRDONLY", "Cannot write to a READONLY magtape", 0,
-	"MTRDTHENWRT", "Attempt to read after a write to a magtape", 0,
-	"MTRECGTRBLK", "Magtape record size cannot exceed block size", 0,
-	"MTRECTOOBIG", "Magtape record size exceeds maximum allowed", 0,
-	"MTRECTOOSM", "Magtape record size is too small for record type", 0,
-	"JNLTMQUAL3", "Time qualifier BEFORE_TIME=\"!AZ\" is less than the journal file(s) minimum timestamp=\"!AZ\"", 2,
-	"MULTLAB", "This label has been previously defined", 0,
-	"BLKCNT", "Last LOAD Block/RMS Record number: !UL", 1,
-	"CCEDUMPOFF", "", 0,
-	"NOPLACE", "Line specified in a ZBREAK cannot be found", 0,
-	"JNLCLOSE", "Error closing journal file !AD", 2,
-	"NOTPRINCIO", "Output currently directed to device !AD", 2,
-	"NOTTOEOFONPUT", "Not positioned to EOF on write (sequential organization only)", 0,
-	"NOZBRK", "No zbreak at that location", 0,
-	"NULSUBSC", "Null subscripts are not allowed for region: !AD", 2,
-	"NUMOFLOW", "Numeric overflow", 0,
-	"PARFILSPC", "Parameter: !AD  file specification: !AD", 4,
-	"PATCLASS", "Illegal character class for pattern code", 0,
-	"PATCODE", "Illegal syntax for pattern", 0,
-	"PATLIT", "Illegal character or unbalanced quotes for pattern literal", 0,
-	"PATMAXLEN", "Pattern code exceeds maximum length", 0,
-	"LPARENREQD", "!_!AD!/!_!_!_Left parenthesis expected", 2,
-	"PATUPPERLIM", "Pattern code upper limit is less than lower limit", 0,
-	"PCONDEXPECTED", "Post-conditional expression expected but not found", 0,
-	"PRCNAMLEN", "Process name !AD length is greater than !SL", 3,
-	"RANDARGNEG", "Random number generator argument must be greater than or equal to one", 0,
-	"DBPRIVERR", "No privilege for attempted update operation for file: !AD", 2,
-	"REC2BIG", "Record size (!UL) is greater than maximum (!UL) for region: !AD", 4,
-	"RHMISSING", "Right-hand side of expression expected", 0,
-	"DEVICEREADONLY", "Cannot write to read-only device", 0,
-	"COLLDATAEXISTS", "Collation type cannot be changed while data exists", 0,
-	"ROUTINEUNKNOWN", "Routine could not be found", 0,
-	"RPARENMISSING", "Right parenthesis expected", 0,
-	"RTNNAME", "Routine name expected here", 0,
-	"VIEWGVN", "Invalid global key name used with VIEW/$VIEW(): !AD", 2,
-	"RTSLOC", "!_!_At M source location !AD", 2,
-	"RWARG", "This is not a legal argument for a READ command", 0,
-	"RWFORMAT", "A valid format expression (!!, #, or ?expr) expected here", 0,
-	"JNLWRTDEFER", "Journal write start deferred", 0,
-	"SELECTFALSE", "No argument to $SELECT was true", 0,
-	"SPOREOL", "Either a space or an end-of-line was expected but not found", 0,
-	"SRCLIN", "!_!AD!/!_!AD", 4,
-	"SRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4,
-	"SRCLOCUNKNOWN", "!_!_M source location unknown", 0,
-	"STACKCRIT", "Stack space critical", 0,
-	"STACKOFLOW", "Stack overflow", 0,
-	"STACKUNDERFLO", "Stack underflow", 0,
-	"STRINGOFLOW", "String pool overflow", 0,
-	"SVNOSET", "Cannot SET this special variable", 0,
-	"VIEWFN", "View parameter is not valid with $VIEW()", 0,
-	"TERMASTQUOTA", "Process AST quota exceeded, cannot open terminal", 0,
-	"TEXTARG", "Invalid argument to $TEXT function", 0,
-	"TMPSTOREMAX", "Maximum space for temporary values exceeded", 0,
-	"VIEWCMD", "View parameter is not valid with VIEW command", 0,
-	"JNI", "!AD", 2,
-	"TXTSRCFMT", "$TEXT encountered an invalid source program file format", 0,
-	"UIDMSG", "Unidentified message received", 0,
-	"UIDSND", "Unidentified sender PID", 0,
-	"UNDEF", "Undefined local variable: !AD", 2,
-	"UNIMPLOP", "Unimplemented construct encountered", 0,
-	"VAREXPECTED", "Variable expected in this context", 0,
-	"VARRECBLKSZ", "Blocksize must be at least record size + 4 bytes", 0,
-	"MAXARGCNT", "Maximum number of arguments !UL exceeded", 1,
-	"GTMSECSHRSEMGET", "semget error errno = !UL", 1,
-	"VIEWARGCNT", "View parameter !AD has inappropriate number of subparameters", 2,
-	"GTMSECSHRDMNSTARTED", "gtmsecshr daemon started (key: 0x!XL) for version !AD from !AD", 5,
-	"ZATTACHERR", "Error attaching to \"!AD\"", 2,
-	"ZDATEFMT", "$ZDATE format string contains invalid character", 0,
-	"ZEDFILSPEC", "Illegal ZEDIT file specification: !AD", 2,
-	"ZFILENMTOOLONG", "!AD is longer than 255 characters", 2,
-	"ZFILKEYBAD", "!AD is not a legal keyword for $ZFILE()", 2,
-	"ZFILNMBAD", "!AD is not a legal file name", 2,
-	"ZGOTOLTZERO", "Cannot ZGOTO a level less than zero", 0,
-	"ZGOTOTOOBIG", "Cannot ZGOTO a level greater than present level", 0,
-	"ZLINKFILE", "Error while zlinking \"!AD\"", 2,
-	"ZPARSETYPE", "Illegal TYPE argument to $ZPARSE(): !AD", 2,
-	"ZPARSFLDBAD", "Illegal $ZPARSE() field parameter: !AD", 2,
-	"ZPIDBADARG", "The tvexpr must be FALSE if last $ZPID() not found", 0,
-	"ZPRIVARGBAD", "!AD is not a legal privilege for $ZPRIV()", 2,
-	"ZPRIVSYNTAXERR", "Privilege string cannot end with a comma", 0,
-	"ZPRTLABNOTFND", "Label not found in routine", 0,
-	"VIEWAMBIG", "View parameter !AD is ambiguous", 2,
-	"VIEWNOTFOUND", "View parameter !AD not valid", 2,
-	"ZSETPRVARGBAD", "!AD is not a legal privilege for $ZSETPRIV()", 2,
-	"INVSPECREC", "Invalid global modifier record", 0,
-	"ZSETPRVSYNTAX", "$ZSETPRIV() privileges string cannot end with a comma", 0,
-	"ZSRCHSTRMCT", "Search stream identifier out of range", 0,
-	"VERSION", "Version mismatch - This program must be recompiled", 0,
-	"MUNOTALLSEC", "WARNING: not all global sections accessed were successfully rundown", 0,
-	"MUSECDEL", "Section !AD deleted", 2,
-	"MUSECNOTDEL", "Section !AD not deleted", 2,
-	"RPARENREQD", "!_!AD!/!_!_!_Right parenthesis expected", 2,
-	"ZGBLDIRACC", "Cannot access global directory !AD!AD!AD.", 6,
-	"GVNAKEDEXTNM", "Cannot reference different global directory in a naked reference", 0,
-	"EXTGBLDEL", "Invalid delimiter for extended global syntax", 0,
-	"DSEWCINITCON", "No action taken, enter YES at CONFIRMATION prompt to initialize global buffers", 0,
-	"LASTFILCMPLD", "The file currently being compiled is !AD", 2,
-	"NOEXCNOZTRAP", "Neither an exception nor a Ztrap is specified", 0,
-	"UNSDCLASS", "Unsupported descriptor class", 0,
-	"UNSDDTYPE", "Unsupported descriptor data type", 0,
-	"ZCUNKTYPE", "External call: Unknown argument type", 0,
-	"ZCUNKMECH", "External call: Unknown parameter-passing mechanism", 0,
-	"ZCUNKQUAL", "External call: Unknown input qualifier", 0,
-	"JNLDBTNNOMATCH", "Journal file !AD has !AD transaction number [0x!16 at XQ], but database !AD has current transaction number [0x!16 at XQ] and journal end transaction number [0x!16 at XQ]", 9,
-	"ZCALLTABLE", "External call Table format error", 0,
-	"ZCARGMSMTCH", "External call: Actual argument count, !UL, is greater than formal argument count, !UL", 2,
-	"ZCCONMSMTCH", "External call: Too many input arguments", 0,
-	"ZCOPT0", "External call: Qualifier OPTIONAL_0 can be used only with mechanisms REFERENCE or DESCRIPTOR", 0,
-	"ZCSTATUS", "External call: Unsuccessful return status", 0,
-	"ZCUSRRTN", "External call: Run-time error in user routine", 0,
-	"ZCPOSOVR", "External call: Invalid overlapping of arguments in table position !UL", 1,
-	"ZCINPUTREQ", "External call: Required input argument missing", 0,
-	"JNLTNOUTOFSEQ", "End transaction [0x!16 at XQ] of journal !AD different from Begin transaction [0x!16 at XQ] of next generation journal !AD", 6,
-	"ACTRANGE", "Alternate Collating Type !UL is out of range", 1,
-	"ZCCONVERT", "External call: error converting output argument", 0,
-	"ZCRTENOTF", "External call routine !AD not found", 2,
-	"GVRUNDOWN", "Error during global database rundown", 0,
-	"LKRUNDOWN", "Error during lock database rundown", 0,
-	"IORUNDOWN", "Error during image rundown", 0,
-	"FILENOTFND", "File !AD not found", 2,
-	"MUFILRNDWNFL", "File !AD rundown failed", 2,
-	"JNLTMQUAL1", "Time qualifier BEFORE_TIME=\"!AZ\" is less than SINCE_TIME=\"!AZ\"", 2,
-	"FORCEDHALT", "Image HALTed by MUPIP STOP", 0,
-	"LOADEOF", "Load error: EOF reached prior to BEGIN record !UL.  No records loaded.", 1,
-	"WILLEXPIRE", "This copy of GT.M will expire within one week", 0,
-	"LOADEDBG", "Load error: END smaller than BEGIN.  No records loaded.", 0,
-	"LABELONLY", "Routine !AD was compiled for label-only entry", 2,
-	"MUREORGFAIL", "MUPIP REORG failed.  Failure code: !AD.", 2,
-	"GVZPREVFAIL", "Global variable $ZPREVIOUS function failed.  Failure code: !AD.", 2,
-	"MULTFORMPARM", "This formal parameter is multiply defined", 0,
-	"QUITARGUSE", "Quit cannot take an argument in this context", 0,
-	"NAMEEXPECTED", "A local variable name is expected in this context", 0,
-	"FALLINTOFLST", "Fall-through to a label with formallist is not allowed", 0,
-	"NOTEXTRINSIC", "Quit does not return to an extrinsic function: argument not allowed", 0,
-	"GTMSECSHRREMSEMFAIL", "error removing semaphore errno = !UL", 1,
-	"FMLLSTMISSING", "The formal list is absent from a label called with an actual list: !AD", 2,
-	"ACTLSTTOOLONG", "More actual parameters than formal parameters: !AD", 2,
-	"ACTOFFSET", "Actuallist not allowed with offset", 0,
-	"MAXACTARG", "Maximum number of actual arguments exceeded", 0,
-	"GTMSECSHRREMSEM", "[client pid !UL] Semaphore (!UL) removed", 2,
-	"JNLTMQUAL2", "Time qualifier LOOKBACK_TIME=\"!AZ\" is later than SINCE_TIME=\"!AZ\"", 2,
-	"GDINVALID", "Unrecognized Global Directory file format: !AD, expected label: !AD, found: !AD", 6,
-	"ASSERT", "Assert failed in !AD line !UL for expression (!AD)", 5,
-	"MUFILRNDWNSUC", "File !AD successfully rundown", 2,
-	"LOADEDSZ", "Load error: END too small.  No records loaded.", 0,
-	"QUITARGLST", "Quit cannot take a list of arguments", 0,
-	"QUITARGREQD", "Quit from an extrinsic must have an argument", 0,
-	"CRITRESET", "The critical section crash count for region !AD has been incremented", 2,
-	"UNKNOWNFOREX", "Process halted by a forced exit from a source other than MUPIP", 0,
-	"FSEXP", "File specification expected but not found", 0,
-	"WILDCARD", "Wild cards are prohibited: !AD", 2,
-	"DIRONLY", "Directories only are allowed in file specs: !AD", 2,
-	"FILEPARSE", "Error parsing file specification: !AD", 2,
-	"QUALEXP", "Qualifier expected but not found", 0,
-	"BADQUAL", "Unrecognized qualifier: !AD", 2,
-	"QUALVAL", "Qualifier value required but not found", 0,
-	"ZROSYNTAX", "$ZROUTINES syntax error: !AD", 2,
-	"COMPILEQUALS", "Error in compiler qualifiers: !AD", 2,
-	"ZLNOOBJECT", "No object module was produced", 0,
-	"ZLMODULE", "Object file name does not match module name: !AD", 2,
-	"DBBLEVMX", "!AD Block level higher than maximum", 2,
-	"DBBLEVMN", "!AD Block level less than zero", 2,
-	"DBBSIZMN", "!AD Block too small", 2,
-	"DBBSIZMX", "!AD Block larger than file block size", 2,
-	"DBRSIZMN", "!AD Physical record too small", 2,
-	"DBRSIZMX", "!AD Physical record too large", 2,
-	"DBCMPNZRO", "!AD First record of block has nonzero compression count", 2,
-	"DBSTARSIZ", "!AD Star record has wrong size", 2,
-	"DBSTARCMP", "!AD Star record has nonzero compression count", 2,
-	"DBCMPMX", "!AD Record compression count is too large", 2,
-	"DBKEYMX", "!AD Key too long", 2,
-	"DBKEYMN", "!AD Key too short", 2,
-	"DBCMPBAD", "!AD Compression count not maximal", 2,
-	"DBKEYORD", "!AD Keys out of order", 2,
-	"DBPTRNOTPOS", "!AD Block pointer negative", 2,
-	"DBPTRMX", "!AD Block pointer larger than file maximum", 2,
-	"DBPTRMAP", "!AD Block pointer is a bit map block number", 2,
-	"IFBADPARM", "External Interface Bad Parameter", 0,
-	"IFNOTINIT", "External Interface must first call GTM$INIT or M routine", 0,
-	"GTMSECSHRSOCKET", "!AD - !UL : Error initializing gtmsecshr socket", 3,
-	"LOADBGSZ", "Load error: BEGIN too small.  No records loaded.", 0,
-	"LOADFMT", "Load error: invalid format type.  Must be ZWR, GO, BINARY, or GOQ.", 0,
-	"LOADFILERR", "Error with load file !AD", 2,
-	"NOREGION", "REGION not found: !AD", 2,
-	"PATLOAD", "Error loading pattern file !AD", 2,
-	"EXTRACTFILERR", "Error with extract file !AD", 2,
-	"FREEZE", "Region: !AD is already frozen", 2,
-	"NOSELECT", "None of the selected variables exist -- halting", 0,
-	"EXTRFAIL", "Extract failed for the global ^!AD. MUPIP INTEG should be run.", 2,
-	"LDBINFMT", "Unrecognized header for load file", 0,
-	"NOPREVLINK", "Journal file !AD has a null previous link", 2,
-	"CCEDUMPON", "", 0,
-	"CCEDMPQUALREQ", "A qualifier (DB,[NO]ON, or NOW) is required with the DUMP command", 0,
-	"CCEDBDUMP", "Section !AD dumped", 2,
-	"CCEDBNODUMP", "Section !AD not dumped; status = ", 2,
-	"CCPMBX", "Error accessing Cluster Control Program Mailbox", 0,
-	"REQRUNDOWN", "Error accessing database !AD.  Must be rundown on cluster node !AD.", 4,
-	"CCPINTQUE", "Interlock failure accessing Cluster Control Program queue", 0,
-	"CCPBADMSG", "Invalid message code received by Cluster Control Program", 0,
-	"CNOTONSYS", "Command is not supported by this operating system", 0,
-	"CCPNAME", "Error setting the Cluster Control Program process name", 0,
-	"CCPNOTFND", "The Cluster Control Program is not responding", 0,
-	"OPRCCPSTOP", "The Cluster Control Program has been halted by an operator stop request", 0,
-	"SELECTSYNTAX", "Argument to !AD clause is not valid", 2,
-	"LOADABORT", "Aborting load at record !UL", 1,
-	"FNOTONSYS", "Function or special variable is not supported by this operating system", 0,
-	"AMBISYIPARAM", "Parameter !AD is ambiguous to $ZGETSYI()", 2,
-	"PREVJNLNOEOF", "A previous generation journal file !AD does not have valid EOF", 2,
-	"LKSECINIT", "Error creating lock section for database !AD", 2,
-	"MTDOSLAB", "Tape label is not in valid DOS-11 format", 0,
-	"MTDOSFOR", "Use of DOS-11 labels requires stream format", 0,
-	"MTINVLAB", "Invalid label type specified in magtape OPEN", 0,
-	"TXTSRCMAT", "M object module and source file do not match", 0,
-	"CCENOGROUP", "CCE does not have GROUP privilege.  Information may be incomplete.", 0,
-	"BADDBVER", "Incorrect database version: !AD", 2,
-	"LINKVERSION", "This image must be relinked with the current version of GT.M", 0,
-	"TOTALBLKMAX", "Extension exceeds maximum total blocks.  Not extending.", 0,
-	"LOADCTRLY", "User interrupt encountered during load.  Load halting.", 0,
-	"CLSTCONFLICT", "Cluster conflict opening database file !AD; could not secure access.  Already open on node !AD.", 4,
-	"SRCNAM", "in source module !AD", 2,
-	"LCKGONE", "Lock removed: !AD", 2,
-	"SUB2LONG", "Subscript invalid, too long", 0,
-	"EXTRACTCTRLY", "User interrupt encountered during extract -- halting", 0,
-	"CCENOWORLD", "CCE does not have WORLD privilege.  Information may be incomplete.", 0,
-	"GVQUERYFAIL", "Global variable $QUERY function failed.  Failure code: !AD.", 2,
-	"LCKSCANCELLED", "Error on remote node holding locks or zallocates.  All locks and zallocates cancelled.", 0,
-	"INVNETFILNM", "Invalid file name following node designation in global directory", 0,
-	"NETDBOPNERR", "Error while attempting to open database across net", 0,
-	"BADSRVRNETMSG", "Invalid message received from GT.CM server", 0,
-	"BADGTMNETMSG", "Invalid message sent to GT.CM server, type: 0x!XL", 1,
-	"SERVERERR", "Severe error on server: !AD", 2,
-	"NETFAIL", "Failure of Net operation", 0,
-	"NETLCKFAIL", "Lock operation across Net failed", 0,
-	"TTINVFILTER", "Invalid FILTER argument", 0,
-	"MTANSILAB", "Tape label is not in valid ANSI format", 0,
-	"MTANSIFOR", "Use of ANSI labels does not allow stream format", 0,
-	"BADTRNPARAM", "!AD is not a legal parameter to $ZTRNLNM", 2,
-	"DSEONLYBGMM", "!AD is supported only for BG/MM access methods", 2,
-	"DSEINVLCLUSFN", "Specified function is invalid for clustered databases", 0,
-	"RDFLTOOSHORT", "Length specified for fixed length read less than or equal to zero", 0,
-	"TIMRBADVAL", "Bad value specified.  Timer not changed.", 0,
-	"CCENOSYSLCK", "CCE does not have SYSLCK privilege.  Information may be incomplete.", 0,
-	"CCPGRP", "Error with the Cluster Control Program's group number", 0,
-	"UNSOLCNTERR", "An unsolicited error message has been received from the network", 0,
-	"BACKUPCTRL", "Control Y or control C encountered during backup, aborting backup", 0,
-	"NOCCPPID", "Cannot find CCP process id", 0,
-	"CCPJNLOPNERR", "Error opening journal file.  Database not opened.", 0,
-	"LCKSGONE", "Locks selected for deletion removed", 0,
-	"ZLKIDBADARG", "The tvexpr must be FALSE if last ZLKID not found", 0,
-	"DBFILOPERR", "Error doing database I/O to region !AD", 2,
-	"CCERDERR", "Error reading from database file !AD", 2,
-	"CCEDBCL", "Database file !AD is clustered", 2,
-	"CCEDBNTCL", "Database file !AD is not clustered", 2,
-	"CCEWRTERR", "Error writing to database file !AD", 2,
-	"CCEBADFN", "Filename error", 0,
-	"CCERDTIMOUT", "Read timeout, CCP has not responded to request", 0,
-	"CCPSIGCONT", "CCP non fatal error at pc 0x!XJ.  Continuing operation.", 1,
-	"CCEBGONLY", "Only BG databases can be clustered", 0,
-	"CCENOCCP", "The cluster control program is not running on this node", 0,
-	"CCECCPPID", "The cluster control program has PID 0x!XL", 1,
-	"CCECLSTPRCS", "!UL processes are accessing clustered database files", 1,
-	"ZSHOWBADFUNC", "An illegal function was specified for ZSHOW", 0,
-	"NOTALLJNLEN", "Journaling disabled/off for !AD regions", 2,
-	"UNUSEDMSG570", "ZSHOWGLOSMALL last used in V6.2-002A", 0,
-	"NOLBRSRC", "Object libraries cannot have SRC paths associated", 0,
-	"INVZSTEP", "Invalid ZSTEP qualifier", 0,
-	"ZSTEPARG", "ZSTEP argument expected", 0,
-	"INVSTRLEN", "Invalid string length !UL: max !UL", 2,
-	"RECCNT", "Last LOAD record number: !UL", 1,
-	"TEXT", "!AD", 2,
-	"ZWRSPONE", "Subscript patterns in ZWRITE are atomic; Invalid delimiter", 0,
-	"FILEDEL", "File !AD successfully deleted", 2,
-	"JNLBADLABEL", "Journal file !AD has a bad GT.M Journal File Label. Expected !AD. Found !AD.", 6,
-	"JNLREADEOF", "End of journal file encountered for !AD", 2,
-	"JNLRECFMT", "Journal file record format error encountered", 0,
-	"BLKTOODEEP", "Block level too deep", 0,
-	"NESTFORMP", "Formal parameter list cannot be combined with nested line", 0,
-	"BINHDR", "!AD!/!/Date: !AD!/Time: !AD!/Extract Region Characteristics!/!_Blk Size: !AD!/!_Rec Size: !AD!/!_Key Size: !AD!/!_Std Null Coll: !AD!/!AD!/", 16,
-	"GOQPREC", "Numeric precision in key error:  Blk #!UL, Key #!UL.  Record not loaded.", 2,
-	"LDGOQFMT", "Corrupt GOQ format header information!/", 0,
-	"BEGINST", "Beginning LOAD at record number: !UL", 1,
-	"INVMVXSZ", "Invalid block size for GOQ load format", 0,
-	"JNLWRTNOWWRTR", "Journal writer attempting another write", 0,
-	"GTMSECSHRSHMCONCPROC", "More than one process attached to Shared memory segment (!UL) not removed (!UL)", 2,
-	"JNLINVALLOC", "Journal file allocation !UL is not within the valid range of !UL to !UL.  Journal file not created.", 3,
-	"JNLINVEXT", "Journal file extension !UL is greater than the maximum allowed size of !UL.  Journal file not created.", 2,
-	"MUPCLIERR", "Action not taken due to CLI errors", 0,
-	"JNLTMQUAL4", "Time qualifier BEFORE_TIME=\"!AZ\" is less than AFTER_TIME=\"!AZ\"", 2,
-	"GTMSECSHRREMSHM", "[client pid !UL] Shared memory segment (!UL) removed, nattch = !UL", 3,
-	"GTMSECSHRREMFILE", "[client pid !UL] File (!AD) removed", 3,
-	"MUNODBNAME", "A database name or the region qualifier must be specified", 0,
-	"FILECREATE", "!AD file !AD created", 4,
-	"FILENOTCREATE", "!AD file !AD not created", 4,
-	"JNLPROCSTUCK", "Journal file writes blocked by process !UL", 1,
-	"INVGLOBALQUAL", "Error in GLOBAL qualifier : Parse error at offset !UL in !AD", 3,
-	"COLLARGLONG", "Collation sequence !UL does not contain routines for long strings", 1,
-	"NOPINI", "PINI journal record expected but not found in journal file !AD at offset [0x!XL]", 3,
-	"DBNOCRE", "Not all specified database files, or their associated journal files were created", 0,
-	"JNLSPACELOW", "Journal file !AD nearing maximum size, !UL blocks to go", 3,
-	"DBCOMMITCLNUP", "Pid !UL [0x!XL] handled error (code = !UL) during commit of !AZ transaction in database file !AD", 6,
-	"BFRQUALREQ", "The [NO]BEFORE qualifier is required for this command", 0,
-	"REQDVIEWPARM", "Required View parameter is missing", 0,
-	"COLLFNMISSING", "Routine !AD is not found for collation sequence !UL", 3,
-	"JNLACTINCMPLT", "Mupip journal action might be incomplete", 0,
-	"NCTCOLLDIFF", "Source and destination for MERGE cannot have different numerical collation type", 0,
-	"DLRCUNXEOR", "!_!AD!/!_!_!_unexpected end of record in $CHAR()/$ZCHAR() subscript", 2,
-	"DLRCTOOBIG", "!_!AD!/!_!_!_!AD value cannot be greater than 255", 4,
-	"WCERRNOTCHG", "Not all specified database files were changed", 0,
-	"WCWRNNOTCHG", "Not all specified database files were changed", 0,
-	"ZCWRONGDESC", "A string longer than 65535 is passed via 32-bit descriptor", 0,
-	"MUTNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4,
-	"GTMSECSHRUPDDBHDR", "[client pid !UL] database fileheader (!AD) updated !AD", 5,
-	"LCKSTIMOUT", "DAL timed lock request expired", 0,
-	"CTLMNEMAXLEN", "The maximum length of a control mnemonic has been exceeded", 0,
-	"CTLMNEXPECTED", "Control mnemonic is expected in this context", 0,
-	"USRIOINIT", "User-defined device driver not successfully initialized", 0,
-	"CRITSEMFAIL", "Error with semaphores for region !AD", 2,
-	"TERMWRITE", "Error writing to terminal", 0,
-	"COLLTYPVERSION", "Collation type !UL, version !UL mismatch", 2,
-	"LVNULLSUBS", "Null subscripts not allowed in local variables", 0,
-	"GVREPLERR", "Error replicating global in region !AD", 2,
-	"MTIOERR", "I/O Error with magnetic tape device !AD", 2,
-	"RMWIDTHPOS", "File record size or width must be greater than zero", 0,
-	"OFFSETINV", "Entry point !AD+!SL not valid", 3,
-	"JOBPARTOOLONG", "Total parameter length is too long for job command", 0,
-	"JOBARGMISSING", "Missing job argument !UL - can't skip non-trailing arguments to a JOB command in OpenVMS editions", 1,
-	"RUNPARAMERR", "Error accessing parameter for run command", 0,
-	"FNNAMENEG", "Depth argument to $NAME cannot be negative", 0,
-	"ORDER2", "Invalid second argument to $ORDER.  Must be -1 or 1.", 0,
-	"MUNOUPGRD", "Database not upgraded because of preceding errors", 0,
-	"REORGCTRLY", "User interrupt encountered during database reorg -- halting", 0,
-	"TSTRTPARM", "Error parsing TSTART qualifier", 0,
-	"TRIGNAMENF", "Trigger name !AD not found with the current default global directory", 2,
-	"TRIGZBREAKREM", "ZBREAK in trigger !AD removed due to trigger being reloaded", 2,
-	"TLVLZERO", "Transaction is not in progress", 0,
-	"TRESTNOT", "Cannot TRESTART, transaction is not restartable", 0,
-	"TPLOCK", "Cannot release lock(s) held prior to current TSTART", 0,
-	"TPQUIT", "Cannot QUIT out of a routine with an active transaction", 0,
-	"TPFAIL", "Transaction COMMIT failed.  Failure code: !AD.", 2,
-	"TPRETRY", "Restart transaction from non-concurrency DB failure", 0,
-	"TPTOODEEP", "$TLEVEL cannot exceed 127", 0,
-	"ZDEFACTIVE", "ZDEFER already active", 0,
-	"ZDEFOFLOW", "ZDEFER Buffer overflow to node !AD", 2,
-	"MUPRESTERR", "MUPIP restore aborted due to preceding errors", 0,
-	"MUBCKNODIR", "MUPIP backup aborted due to error in output directory", 0,
-	"TRANS2BIG", "Transaction exceeded available buffer space for region !AD", 2,
-	"INVBITLEN", "Invalid size of the bit string", 0,
-	"INVBITSTR", "Invalid bit string", 0,
-	"INVBITPOS", "Invalid position in the bit string", 0,
-	"PARNORMAL", "Parse successful", 0,
-	"PARBUFSM", "Parse buffer too small", 0,
-	"RMWIDTHTOOBIG", "File record size or width too big", 0,
-	"PATTABNOTFND", "Pattern table !AD not found", 2,
-	"OBJFILERR", "Error with object file I/O on file !AD", 2,
-	"SRCFILERR", "Error with source file I/O on file !AD", 2,
-	"NEGFRACPWR", "Invalid operation: fractional power of negative number", 0,
-	"MTNOSKIP", "SKIP operation not supported on this device", 0,
-	"CETOOMANY", "Too many compiler escape substitutions in a single statement", 0,
-	"CEUSRERROR", "Compiler escape user routine returned error code !UL", 1,
-	"CEBIGSKIP", "Compiler escape user routine skip count is too large", 0,
-	"CETOOLONG", "Compiler escape substitution exceeds maximum line size", 0,
-	"CENOINDIR", "Indirection type information not available for compiler escape feature", 0,
-	"COLLATIONUNDEF", "Collation type !UL is not defined", 1,
-	"UNUSEDMSG670", "RBWRNNOTCHG last used in V6.2-002A", 0,
-	"GTMSECSHRSRVF", "!AD - !UL : Attempt to service request failed (retry = !UL)", 4,
-	"FREEZECTRL", "Control Y or control C encountered during attempt to freeze the database. Aborting freeze.", 0,
-	"JNLFLUSH", "Error flushing journal buffers to journal file !AD", 2,
-	"CCPSIGDMP", "CCP non fatal dump, continuing operation. Report to your GT.M Support Channel.", 0,
-	"NOPRINCIO", "Unable to write to principal device", 0,
-	"INVPORTSPEC", "Invalid port specification", 0,
-	"INVADDRSPEC", "Invalid IP address specification", 0,
-	"MUREENCRYPTEND", "Database !AD : MUPIP REORG ENCRYPT finished by pid !UL at transaction number [0x!16 at XQ]", 4,
-	"CRYPTJNLMISMATCH", "Encryption settings mismatch between journal file !AD and corresponding database file !AD", 4,
-	"SOCKWAIT", "Error waiting for socket connection", 0,
-	"SOCKACPT", "Error accepting socket connection", 0,
-	"SOCKINIT", "Error initializing socket: (errno == !UL) !AD", 3,
-	"OPENCONN", "Error opening socket connection", 0,
-	"DEVNOTIMP", "!AD device not implemented on in this environment", 2,
-	"JNLEXTR", "Error writing journal extract file: !AD", 2,
-	"DBREMOTE", "Database region !AD is remote; perform maintenance on the server node", 2,
-	"JNLREQUIRED", "Journaling is required for clustered operation with file !AD", 2,
-	"TPMIXUP", "!AZ transaction cannot be started within !AZ transaction", 2,
-	"HTOFLOW", "Hash table overflow: Failed to allocate !UL elements", 1,
-	"RMNOBIGRECORD", "File record size requires BIGRECORD parameter", 0,
-	"DBBMSIZE", "!AD Bit map has incorrect size", 2,
-	"DBBMBARE", "!AD Bit map does not protect itself", 2,
-	"DBBMINV", "!AD Bit map contains an invalid pattern", 2,
-	"DBBMMSTR", "!AD Bit map does not match master map", 2,
-	"DBROOTBURN", "!AD Root block has data level", 2,
-	"REPLSTATEERR", "Replication state cannot be changed to the specified value for database file !AD", 2,
-	"VMSMEMORY", "Central memory exhausted during request for !UL bytes from 0x!XJ - check page file quota and page file size", 2,
-	"DBDIRTSUBSC", "!AD Directory tree block contains non name-level entries", 2,
-	"TIMEROVFL", "Timer overflow; interval probably too large", 0,
-	"GTMASSERT", "!AD - Assert failed !AD line !UL", 5,
-	"DBFHEADERR4", "Database file !AD: control problem: !AD was 0x!XL expecting 0x!XL", 6,
-	"DBADDRANGE", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!XJ was outside !AD range 0x!XJ to 0x!XJ", 9,
-	"DBQUELINK", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control !AD queue problem: was 0x!XJ, expecting 0x!XJ", 8,
-	"DBCRERR", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!XL, expecting 0x!XL -- called from module !AD at line !UL", 11,
-	"MUSTANDALONE", "Could not get exclusive access to !AD", 2,
-	"MUNOACTION", "MUPIP unable to perform requested action", 0,
-	"RMBIGSHARE", "File with BIGRECORD specified may only be shared if READONLY", 0,
-	"TPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; pvtmods: !UL, blkmods: !UL, blklvl: !UL, type: !UL, readset: !UL, writeset: !UL, local_tn: 0x!16 at XQ, zpos: !AD", 16,
-	"SOCKWRITE", "Write to a socket failed", 0,
-	"DBCNTRLERR", "Database file !AD: control error suspected but not found", 2,
-	"NOTERMENV", "Environment variable TERM not set.  Assuming \"unknown.\"", 0,
-	"NOTERMENTRY", "TERM = \"!AD\" has no \"terminfo\" entry.  Possible terminal handling problems.", 2,
-	"NOTERMINFODB", "No \"terminfo\" database.  Terminal handling problems likely.", 0,
-	"INVACCMETHOD", "Invalid access method", 0,
-	"JNLOPNERR", "Error opening journal file !AD!/  for database !AD", 4,
-	"JNLRECTYPE", "Journal record type does not match expected type", 0,
-	"JNLTRANSGTR", "Transaction number in journal is greater than in database", 0,
-	"JNLTRANSLSS", "Transaction number in journal is less than in database", 0,
-	"JNLWRERR", "Error writing journal file !AD.  Unable to update header.", 2,
-	"FILEIDMATCH", "Saved File ID does not match the current ID - the file appears to have been moved", 0,
-	"EXTSRCLIN", "!_!AD!/!_!AD", 4,
-	"EXTSRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4,
-	"BIGNOACL", "Existing file found when BIGRECORD specified with UDF format but no GT.M ACE, perhaps lost during COPY", 0,
-	"ERRCALL", "Error called from !AD line !UL", 3,
-	"ZCCTENV", "Environmental variable for external package !AD not set", 2,
-	"ZCCTOPN", "Unable to open external call table: !AD", 2,
-	"ZCCTNULLF", "External call table contains no records: !AD", 2,
-	"ZCUNAVAIL", "Package, !AD unavailable", 2,
-	"ZCENTNAME", "No entry name found in external call table", 0,
-	"ZCCOLON", "Colon expected but not found", 0,
-	"ZCRTNTYP", "Unknown return type", 0,
-	"ZCRCALLNAME", "Routine name expected but not found", 0,
-	"ZCRPARMNAME", "Parameter name expected but not found", 0,
-	"ZCUNTYPE", "Unknown type encountered", 0,
-	"ZCMLTSTATUS", "Multiple entries of xc_status in a single entry in external call table", 0,
-	"ZCSTATUSRET", "External call returned error status", 0,
-	"ZCMAXPARAM", "Exceeded maximum number of external call parameters", 0,
-	"ZCCSQRBR", "Closing Square bracket expected", 0,
-	"ZCPREALLNUMEX", "Pre-allocation value should be a decimal number", 0,
-	"ZCPREALLVALPAR", "Pre-allocation allowed only for variables passed by reference", 0,
-	"VERMISMATCH", "Attempt to access !AD with version !AD, while already using !AD", 6,
-	"JNLCNTRL", "Journal control unsynchronized for !AD.", 2,
-	"TRIGNAMBAD", "Trigger initialization failed. Error while processing ^#t(\"!AD\",!AD)", 4,
-	"BUFRDTIMEOUT", "Pid [0x!XL] timed out waiting for buffered read of blk [0x!XL] into cr [0x!XL] by process [0x!XL] to complete in database file !AD", 6,
-	"INVALIDRIP", "Invalid read-in-progress field in Cache Record.  Resetting and continuing.  Region: !AD.", 2,
-	"BLKSIZ512", "Block size !UL rounds to !UL", 2,
-	"MUTEXERR", "Mutual Exclusion subsystem failure", 0,
-	"JNLVSIZE", "Journal File !AD has incorrect virtual_filesize !UL.  Allocation : !UL, Extension : !UL, Filesize : !UL, File system block size : !UL", 7,
-	"MUTEXLCKALERT", "Mutual Exclusion subsystem ALERT - lock attempt threshold crossed for region !AD.  Process !UL is in crit cycle !UL.", 4,
-	"MUTEXFRCDTERM", "Mutual Exclusion subsystem detected forced termination of process !UL.  Crit salvaged from region !AD.", 3,
-	"GTMSECSHR", "!UL : Error during gtmsecshr operation", 1,
-	"GTMSECSHRSRVFID", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL, mesg data: !UL", 6,
-	"GTMSECSHRSRVFIL", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL!/file: !AD", 7,
-	"FREEBLKSLOW", "Only !UL free blocks left out of !UL total blocks for !AD", 4,
-	"PROTNOTSUP", "Protocol !AD not supported", 2,
-	"DELIMSIZNA", "Delimiter size is not appropriate", 0,
-	"INVCTLMNE", "Invalid control mnemonics", 0,
-	"SOCKLISTEN", "Error listening on a socket", 0,
-	"LQLENGTHNA", "Listening queue length !UL not appropriate.  Must be between 1 and 5.", 1,
-	"ADDRTOOLONG", "Socket address !AD of length !UL is longer than the maximum permissible length !UL", 4,
-	"GTMSECSHRGETSEMFAIL", "error getting semaphore errno = !UL", 1,
-	"CPBEYALLOC", "Attempt to copy beyond the allocated buffer", 0,
-	"DBRDONLY", "Database file !AD read only", 2,
-	"DUPTN", "Duplicate transaction found [TN = 0x!16 at XQ] at offset 0x!XL in journal file !AD", 4,
-	"TRESTLOC", "Transaction start: !AD, Transaction failure: !AD", 4,
-	"REPLPOOLINST", "Error with replication pool (id = !UL) for instance file !AD", 3,
-	"ZCVECTORINDX", "Invalid Vector Index !UL", 1,
-	"REPLNOTON", "Replication is not on for journal file !AD, rollback will not continue", 2,
-	"JNLMOVED", "Journal file appears to have been moved.  Journaling activity will not be done.", 0,
-	"EXTRFMT", "Extract error: invalid format type.  Must be ZWR, GO, or BINARY.", 0,
-	"CALLERID", "Routine !AD called from 0x!XJ", 3,
-	"KRNLKILL", "Process was terminated by SIGDANGER signal from the system -- System swap space is too low -- Report to System Administrator", 0,
-	"MEMORYRECURSIVE", "Memory Subsystem called recursively", 0,
-	"FREEZEID", "Cache !AD on !AD by freeze id 0x!XL with match 0x!XL from 0x!XJ", 7,
-	"BLKWRITERR", "Unable to queue disk write for block 0x!XL.  Will keep trying.", 1,
-	"STOPTIMEOUT", "Waited too long for stopped process to release.  Region: !AD.", 2,
-	"UNUSEDMSG777", "TRIGMODINTP last used in V6.2-000", 0,
-	"BCKUPBUFLUSH", "Unable to flush buffer for online backup", 0,
-	"NOFORKCORE", "Unable to fork off process to create core.  Core creation postponed.", 0,
-	"JNLREAD", "Error reading from journal file !AD at offset [0x!XL]", 3,
-	"JNLMINALIGN", "Journal Record Alignment !UL is less than the minimum value of !UL", 2,
-	"JOBSTARTCMDFAIL", "JOB command STARTUP script invocation failed", 0,
-	"JNLPOOLSETUP", "Journal Pool setup error", 0,
-	"JNLSTATEOFF", "ROLLBACK or RECOVER BACKWARD cannot proceed as database file !AD does not have journaling ENABLED and ON", 2,
-	"RECVPOOLSETUP", "Receive Pool setup error", 0,
-	"REPLCOMM", "Replication subsystem communication failure", 0,
-	"NOREPLCTDREG", "Replication subsystem found no region replicated for !AD !AZ", 3,
-	"REPLINFO", "!AD", 2,
-	"REPLWARN", "!AD", 2,
-	"REPLERR", "!AD", 2,
-	"JNLNMBKNOTPRCD", "Journal file !AD does not match the current journal file !AD of database file !AD", 6,
-	"REPLFILIOERR", "Replication subsystem file I/O error !AD", 2,
-	"REPLBRKNTRANS", "Replication subsystem found seqno !16 at XQ broken or missing in the journal files", 1,
-	"TTWIDTHTOOBIG", "Terminal WIDTH exceeds the maximum allowed limit", 0,
-	"REPLLOGOPN", "Replication subsystem could not open log file !AD: !AD.  Logging done to !AD.", 6,
-	"REPLFILTER", "Replication filter subsystem failure", 0,
-	"GBLMODFAIL", "Global variable Conflict Test failed.  Failure code: !AD.", 2,
-	"TTLENGTHTOOBIG", "Terminal LENGTH exceeds the maximum allowed limit", 0,
-	"TPTIMEOUT", "Transaction timeout", 0,
-	"DEFEREVENT", "Transfer table reset for event type !UL when set for type !UL", 2,
-	"JNLFILNOTCHG", "Journal file not changed", 0,
-	"EVENTLOGERR", "Error in event logging subsystem", 0,
-	"UPDATEFILEOPEN", "Update file open error", 0,
-	"JNLBADRECFMT", "Journal File Record Format Error encountered for file !AD at disk address 0x!XL", 3,
-	"NULLCOLLDIFF", "Null collation order must be the same for all regions", 0,
-	"MUKILLIP", "Kill in progress indicator is set for file !AD - this !AD operation is likely to result in incorrectly marked busy errors", 4,
-	"JNLRDONLY", "Journal file !AD read only", 2,
-	"ANCOMPTINC", "Deviceparameter !AD is not compatible with any other deviceparameters in the !AD command", 4,
-	"ABNCOMPTINC", "Deviceparameter !AD and deviceparameter !AD are not compatible in the !AD command", 6,
-	"RECLOAD", "Error loading record number: !@UQ!/", 1,
-	"SOCKNOTFND", "Socket !AD not found", 2,
-	"CURRSOCKOFR", "Current socket of index !UL is out of range.  There are only !UL sockets.", 2,
-	"SOCKETEXIST", "Socket !AD already exists", 2,
-	"LISTENPASSBND", "Controlmnemonic LISTEN can be applied to PASSIVE socket in the state BOUND only", 0,
-	"DBCLNUPINFO", "Database file !AD !/!AD", 4,
-	"MUNODWNGRD", "Database not downgraded because of preceding errors", 0,
-	"REPLTRANS2BIG", "Transaction !16 at XQ of size !UL (pre-filter size !UL) too large to be accommodated in the !AD pool", 5,
-	"RDFLTOOLONG", "Length specified for fixed length read exceeds the maximum string size", 0,
-	"MUNOFINISH", "MUPIP unable to finish all requested actions", 0,
-	"DBFILEXT", "Database file !AD extended from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5,
-	"JNLFSYNCERR", "Error synchronizing journal file !AD to disk", 2,
-	"FSYNCTIMOUT", "Timed out on fsync for journal file !AD", 2,
-	"ZCPREALLVALINV", "The pre-allocation value exceeded the maximum string length", 0,
-	"NEWJNLFILECREAT", "Journal file !AD nearing maximum size.  New journal file created.", 2,
-	"DSKSPACEFLOW", "Disk Space for file !AD nearing maximum size.  !UL blocks available.", 3,
-	"GVINCRFAIL", "Global variable $INCR failed.  Failure code: !AD.", 2,
-	"ISOLATIONSTSCHN", "Error changing NOISOLATION status for global ^!AD within a TP transaction from !UL to !UL", 4,
-	"REPLGBL2LONG", "Global names longer than 8 characters cannot be handled at the secondary", 0,
-	"TRACEON", "Missing global name (with optional subscripts) for recording M-tracing information", 0,
-	"TOOMANYCLIENTS", "GT.CM is serving the maximum number of clients.  Try again later.", 0,
-	"NOEXCLUDE", "None of the excluded variables exist", 0,
-	"GVINCRISOLATION", "$INCREMENT cannot be performed on global ^!AD as it has NOISOLATION turned ON", 2,
-	"EXCLUDEREORG", "Global: !AD is present in the EXCLUDE option.  REORG will skip the global.", 2,
-	"REORGINC", "Reorg was incomplete.  Not all globals were reorged.", 0,
-	"ASC2EBCDICCONV", "ASCII/EBCDIC conversion failed when calling !AD", 2,
-	"GTMSECSHRSTART", "!AD - !UL : gtmsecshr failed to startup", 3,
-	"DBVERPERFWARN1", "Performance warning: Database !AD is running in compatibility mode which degrades performance. Run MUPIP REORG UPGRADE for best overall performance", 2,
-	"FILEIDGBLSEC", "File ID in global section does not match with the database file !AD", 2,
-	"GBLSECNOTGDS", "Global Section !AD is not a GT.M global section", 2,
-	"BADGBLSECVER", "Global Section !AD does not match the current database version", 2,
-	"RECSIZENOTEVEN", "RECORDSIZE [!UL] needs to be a multiple of 2 if ICHSET or OCHSET is UTF-16, UTF-16LE or UTF-16BE", 1,
-	"BUFFLUFAILED", "Error flushing buffers from !AD for database file !AD", 4,
-	"MUQUALINCOMP", "Incompatible qualifiers - FILE and REGION", 0,
-	"DISTPATHMAX", "$gtm_dist path is greater than maximum (!UL)", 1,
-	"FILEOPENFAIL", "Failed to open file !AD", 2,
-	"IMAGENAME", "The executing module name should be !AD instead of !AD", 4,
-	"GTMSECSHRPERM", "The gtmsecshr module in $gtm_dist does not have the correct permission and uid", 0,
-	"GTMDISTUNDEF", "Environment variable $gtm_dist is not defined", 0,
-	"SYSCALL", "Error received from system call !AD -- called from module !AD at line !UL", 5,
-	"MAXGTMPATH", "The executing module path is greater than the maximum !UL", 1,
-	"TROLLBK2DEEP", "Intended rollback(!SL) deeper than the current $tlevel(!UL)", 2,
-	"INVROLLBKLVL", "Rollback level (!UL) not less than current $TLEVEL(!UL).  Can't rollback.", 2,
-	"OLDBINEXTRACT", "Loading an older version(!UL) of binary extract. !/Database or global collation changes since the extract, if any, will result in database corruption.", 1,
-	"ACOMPTBINC", "Deviceparameter !AD is compatible with only !AD in the command !AD", 6,
-	"NOTREPLICATED", "Transaction number !16 at XQ generated by the !AD process (PID = !UL) is not replicated to the secondary", 4,
-	"DBPREMATEOF", "Premature end of file with database file !AD", 2,
-	"KILLBYSIG", "!AD process !UL has been killed by a signal !UL", 4,
-	"KILLBYSIGUINFO", "!AD process !UL has been killed by a signal !UL from process !UL with userid number !UL", 6,
-	"KILLBYSIGSINFO1", "!AD process !UL has been killed by a signal !UL at address 0x!XJ (vaddr 0x!XJ)", 6,
-	"KILLBYSIGSINFO2", "!AD process !UL has been killed by a signal !UL at address 0x!XJ", 5,
-	"SIGILLOPC", "Signal was caused by an illegal opcode", 0,
-	"SIGILLOPN", "Signal was caused by an illegal operand", 0,
-	"SIGILLADR", "Signal was caused by illegal addressing mode", 0,
-	"SIGILLTRP", "Signal was caused by an illegal trap", 0,
-	"SIGPRVOPC", "Signal was caused by a privileged opcode", 0,
-	"SIGPRVREG", "Signal was caused by a privileged register", 0,
-	"SIGCOPROC", "Signal was caused by a coprocessor error", 0,
-	"SIGBADSTK", "Signal was caused by an internal stack error", 0,
-	"SIGADRALN", "Signal was caused by invalid address alignment", 0,
-	"SIGADRERR", "Signal was caused by a non-existent physical address", 0,
-	"SIGOBJERR", "Signal was caused by an object specific hardware error", 0,
-	"SIGINTDIV", "Signal was caused by an integer divided by zero", 0,
-	"SIGINTOVF", "Signal was caused by an integer overflow", 0,
-	"SIGFLTDIV", "Signal was caused by a floating point divide by zero", 0,
-	"SIGFLTOVF", "Signal was caused by a floating point overflow", 0,
-	"SIGFLTUND", "Signal was caused by a floating point underflow", 0,
-	"SIGFLTRES", "Signal was caused by a floating point inexact result", 0,
-	"SIGFLTINV", "Signal was caused by an invalid floating point operation", 0,
-	"SIGMAPERR", "Signal was caused by an address not mapped to an object", 0,
-	"SIGACCERR", "Signal was caused by invalid permissions for mapped object", 0,
-	"TRNLOGFAIL", "Translation of (VMS) logical name or (UNIX) environment variable !AD failed", 2,
-	"INVDBGLVL", "Invalid non-numeric debug level specified !AD in (VMS) logical name or (UNIX) environment variable !AD", 4,
-	"DBMAXNRSUBS", "!AD Maximum number of subscripts exceeded", 2,
-	"GTMSECSHRSCKSEL", "gtmsecshr select on socket failed", 0,
-	"GTMSECSHRTMOUT", "gtmsecshr exiting due to idle timeout", 0,
-	"GTMSECSHRRECVF", "gtmsecshr receive on server socket failed", 0,
-	"GTMSECSHRSENDF", "gtmsecshr send on server socket failed", 0,
-	"SIZENOTVALID8", "Size (in bytes) must be either 1, 2, 4, or 8", 0,
-	"GTMSECSHROPCMP", "gtmsecshr operation may be compromised", 0,
-	"GTMSECSHRSUIDF", "gtmsecshr server setuid to root failed", 0,
-	"GTMSECSHRSGIDF", "gtmsecshr server setgid to root failed", 0,
-	"GTMSECSHRSSIDF", "gtmsecshr server setsid failed", 0,
-	"GTMSECSHRFORKF", "gtmsecshr server unable to fork off a child process", 0,
-	"DBFSYNCERR", "Error synchronizing database file !AD to disk", 2,
-	"SECONDAHEAD", "Secondary ahead of primary. !/ Secondary database possibly updated by process other than the update process.  First perform rollback.", 0,
-	"SCNDDBNOUPD", "Database Updates not allowed on the secondary", 0,
-	"MUINFOUINT4", "!AD : !UL [0x!XL]", 4,
-	"NLMISMATCHCALC", "Location of !AD expected at 0x!XL, but found at 0x!XL", 4,
-	"RELINKCTLFULL", "Relinkctl file for directory !AD is full (maximum entries !UL)", 3,
-	"MUPIPSET2BIG", "!UL too large, maximum !AD allowed is !UL", 4,
-	"DBBADNSUB", "!AD Bad numeric subscript", 2,
-	"DBBADKYNM", "!AD Bad key name", 2,
-	"DBBADPNTR", "!AD Bad pointer value in directory", 2,
-	"DBBNPNTR", "!AD Bit map block number as pointer", 2,
-	"DBINCLVL", "!AD Block at incorrect level", 2,
-	"DBBFSTAT", "!AD Block busy/free status unknown (local bitmap corrupted)", 2,
-	"DBBDBALLOC", "!AD Block doubly allocated", 2,
-	"DBMRKFREE", "!AD Block incorrectly marked free", 2,
-	"DBMRKBUSY", "!AD Block incorrectly marked busy", 2,
-	"DBBSIZZRO", "!AD Block size equals zero", 2,
-	"DBSZGT64K", "!AD Block size is greater than 64K", 2,
-	"DBNOTMLTP", "!AD Block size not a multiple of 512 bytes", 2,
-	"DBTNTOOLG", "!AD Block transaction number too large", 2,
-	"DBBPLMLT512", "!AD Blocks per local map is less than 512", 2,
-	"DBBPLMGT2K", "!AD Blocks per local map is greater than 2K", 2,
-	"MUINFOUINT8", "!AD : !@ZQ [0x!16 at XQ]", 4,
-	"DBBPLNOT512", "!AD Blocks per local map is not 512", 2,
-	"MUINFOSTR", "!AD : !AD", 4,
-	"DBUNDACCMT", "!AD Cannot determine access method; trying with BG", 2,
-	"DBTNNEQ", "!AD Current tn and early tn are not equal", 2,
-	"MUPGRDSUCC", "Database file !AD successfully !AD to !AD", 6,
-	"DBDSRDFMTCHNG", "Database file !AD, Desired DB Format set to !AD by !AD with pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 9,
-	"DBFGTBC", "!AD File size larger than block count would indicate", 2,
-	"DBFSTBC", "!AD File size smaller than block count would indicate", 2,
-	"DBFSTHEAD", "!AD File smaller than database header", 2,
-	"DBCREINCOMP", "!AD Header indicates database file creation was interrupted before completion", 2,
-	"DBFLCORRP", "!AD Header indicates database file is corrupt", 2,
-	"DBHEADINV", "!AD Header size not valid for database", 2,
-	"DBINCRVER", "!AD Incorrect version of GT.M database", 2,
-	"DBINVGBL", "!AD Invalid mixing of global names", 2,
-	"DBKEYGTIND", "!AD Key greater than index key", 2,
-	"DBGTDBMAX", "!AD Key larger than database maximum", 2,
-	"DBKGTALLW", "!AD Key larger than maximum allowed length", 2,
-	"DBLTSIBL", "!AD Keys less than sibling's index key", 2,
-	"DBLRCINVSZ", "!AD Last record of block has invalid size", 2,
-	"MUREUPDWNGRDEND", "Region !AD : MUPIP REORG UPGRADE/DOWNGRADE finished by pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 5,
-	"DBLOCMBINC", "!AD Local bit map incorrect", 2,
-	"DBLVLINC", "!AD Local bitmap block level incorrect", 2,
-	"DBMBSIZMX", "!AD Map block too large", 2,
-	"DBMBSIZMN", "!AD Map block too small", 2,
-	"DBMBTNSIZMX", "!AD Map block transaction number too large", 2,
-	"DBMBMINCFRE", "!AD Master bit map incorrectly asserts this local map has free space", 2,
-	"DBMBPINCFL", "!AD Master bit map incorrectly marks this local map full", 2,
-	"DBMBPFLDLBM", "!AD Master bit map shows this map full, agreeing with disk local map", 2,
-	"DBMBPFLINT", "!AD Master bit map shows this map full, agreeing with MUPIP INTEG", 2,
-	"DBMBPFLDIS", "!AD Master bit map shows this map full, in disagreement with both disk and INTEG result", 2,
-	"DBMBPFRDLBM", "!AD Master bit map shows this map has space, agreeing with disk local map", 2,
-	"DBMBPFRINT", "!AD Master bit map shows this map has space, agreeing with MUPIP INTEG", 2,
-	"DBMAXKEYEXC", "!AD Maximum key size for database exceeds design maximum", 2,
-	"DBMXRSEXCMIN", "!AD Maximum record size for database is less than the design minimum", 2,
-	"MUPIPSET2SML", "!UL too small, minimum !AD allowed is !UL", 4,
-	"DBREADBM", "!AD Read error on bitmap", 2,
-	"DBCOMPTOOLRG", "!AD Record has too large compression count", 2,
-	"DBVERPERFWARN2", "Peformance warning: Database !AD is not fully upgraded. Run MUPIP REORG UPGRADE for best overall performance", 2,
-	"DBRBNTOOLRG", "!AD Root block number greater than last block number in file", 2,
-	"DBRBNLBMN", "!AD Root block number is a local bit map number", 2,
-	"DBRBNNEG", "!AD Root block number negative", 2,
-	"DBRLEVTOOHI", "!AD Root level higher than maximum", 2,
-	"DBRLEVLTONE", "!AD Root level less than one", 2,
-	"DBSVBNMIN", "!AD Start VBN smaller than possible", 2,
-	"DBTTLBLK0", "!AD Total blocks equal zero", 2,
-	"DBNOTDB", "!AD File does not have a valid GDS file header", 2,
-	"DBTOTBLK", "Total blocks should be 0x!XL, is 0x!XL", 2,
-	"DBTN", "Block TN is 0x!16 at XQ", 1,
-	"DBNOREGION", "None of the database regions accessible", 0,
-	"DBTNRESETINC", "WARNING: tn_reset for database is incomplete due to integrity errors", 0,
-	"DBTNLTCTN", "Transaction numbers greater than the current transaction were found", 0,
-	"DBTNRESET", "Cannot reset transaction number for this region", 0,
-	"MUTEXRSRCCLNUP", "Mutex subsystem leftover resource !AD removed", 2,
-	"SEMWT2LONG", "Process !UL waited !UL second(s) for the !AD lock for region !AD, lock held by pid !UL", 7,
-	"REPLINSTOPEN", "Error opening replication instance file !AD", 2,
-	"REPLINSTCLOSE", "Error closing replication instance file !AD", 2,
-	"JOBSETUP", "Error receiving !AD from parent process", 2,
-	"DBCRERR8", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!16 at XQ, expecting 0x!16 at XQ -- called from module !AD at line !UL", 11,
-	"NUMPROCESSORS", "Could not determine number of processors", 0,
-	"DBADDRANGE8", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!16 at XQ was outside !AD range 0x!16 at XQ to 0x!16 at XQ", 9,
-	"RNDWNSEMFAIL", "Attempting to acquire gds_rundown semaphore when it is already owned", 0,
-	"GTMSECSHRSHUTDN", "gtmsecshr process has received a shutdown request -- shutting down", 0,
-	"NOSPACECRE", "Not enough space to create database file !AD.  !@ZQ blocks are needed, only !@ZQ available.", 4,
-	"LOWSPACECRE", "Disk space for database file !AD is not enough for !UL future extensions.  !@ZQ !UL-byte blocks are needed, only !@ZQ available.", 6,
-	"WAITDSKSPACE", "Process 0x!XL will wait !UL seconds for necessary disk space to become available for !AD ", 4,
-	"OUTOFSPACE", "Database file !AD ran out of disk space.  Detected by process !UL.  !/Exit without clearing shared memory due to the disk space constraints.  !/Make space and then perform mupip rundown to ensure database integrity.", 3,
-	"JNLPVTINFO", "Pid 0x!XL!/     cycle 0x!XL fd_mismatch 0x!XL     channel 0x!XL sync_io 0x!XL!/ pini_addr 0x!XL  qio_active 0x!XL old_channel 0x!XL", 8,
-	"NOSPACEEXT", "Not enough disk space for file !AD to extend.  !UL blocks needed.  !UL blocks available.", 4,
-	"WCBLOCKED", "Field !AD is set by process !UL at transaction number 0x!16 at XQ for database file !AD", 6,
-	"REPLJNLCLOSED", "Replication in jeopardy as journaling got closed for database file !AD. Current region seqno is !@ZQ [0x!16 at XQ] and system seqno is !@ZQ [0x!16 at XQ]", 6,
-	"RENAMEFAIL", "Rename of file !AD to !AD failed", 4,
-	"FILERENAME", "File !AD is renamed to !AD", 4,
-	"JNLBUFINFO", "Pid 0x!XL!/     dsk 0x!XL     free 0x!XL  bytcnt 0x!XL io_in_prog 0x!XL fsync_in_prog 0x!XL!/ dskaddr 0x!XL freeaddr 0x!XL  qiocnt 0x!XL now_writer 0x!XL     fsync_pid 0x!XL!/filesize 0x!XL    cycle 0x!XL  errcnt 0x!XL    wrtsize 0x!XL fsync_dskaddr 0x!XL", 16,
-	"SDSEEKERR", "Sequential device seek error - !AD", 2,
-	"LOCALSOCKREQ", "LOCAL socket required", 0,
-	"TPNOTACID", "!AD at !AD in a final TP retry violates ACID properties of a TRANSACTION; indefinite RESTARTs may occur !AD !AD", 8,
-	"JNLSETDATA2LONG", "SET journal record has data of length !UL.  Target system cannot handle data more than !UL bytes.", 2,
-	"JNLNEWREC", "Target system cannot recognize journal record of type !UL, last recognized type is !UL", 2,
-	"REPLFTOKSEM", "Error with replication semaphores for instance file !AD", 2,
-	"SOCKNOTPASSED", "Socket message contained no passed socket descriptors", 0,
-	"EXTRIOERR", "Error writing extract file !AD", 2,
-	"EXTRCLOSEERR", "Error closing extract file !AD", 2,
-	"CONNSOCKREQ", "Socket not connected", 0,
-	"REPLEXITERR", "Replication process encountered an error while exiting", 0,
-	"MUDESTROYSUC", "Global section (!AD) corresponding to file !AD successfully destroyed", 4,
-	"DBRNDWN", "Error during global database rundown for region !AD.!/Notify those responsible for proper database operation.", 2,
-	"MUDESTROYFAIL", "Global section (!AD) corresponding to file !AD failed to be destroyed", 4,
-	"NOTALLDBOPN", "Not all required database files were opened", 0,
-	"MUSELFBKUP", "Database file !AD can not be backed upon itself", 2,
-	"DBDANGER", "Process !UL [0x!XL] killed while committing update for database file !AD.  Possibility of damage to block 0x!XL.", 5,
-	"TRUNCATEFAIL", "Truncating !AD from 0x!XL VMS blocks to 0x!XL blocks failed", 4,
-	"TCGETATTR", "Error while getting terminal attributes on file descriptor !UL", 1,
-	"TCSETATTR", "Error while setting terminal attributes on file descriptor !UL", 1,
-	"IOWRITERR", "IO Write by pid 0x!XL to blk 0x!XL of database file !AD failed.  Pid 0x!XL retrying the IO.", 5,
-	"REPLINSTWRITE", "Error writing [0x!XL] bytes at offset [0x!16 at XQ] in replication instance file !AD", 4,
-	"DBBADFREEBLKCTR", "Database !AD free blocks counter in file header: 0x!XL appears incorrect, should be 0x!XL.  Auto-corrected.", 4,
-	"REQ2RESUME", "Request to resume suspended processing received from process !UL owned by userid !UL", 2,
-	"TIMERHANDLER", "Incorrect SIGALRM handler (0x!XJ) found by !AD", 3,
-	"FREEMEMORY", "Error occurred freeing memory from 0x!XJ", 1,
-	"MUREPLSECDEL", "Replication section !AD deleted", 2,
-	"MUREPLSECNOTDEL", "Replication section !AD not deleted", 2,
-	"MUJPOOLRNDWNSUC", "Jnlpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4,
-	"MURPOOLRNDWNSUC", "Recvpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4,
-	"MUJPOOLRNDWNFL", "Jnlpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4,
-	"MURPOOLRNDWNFL", "Recvpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4,
-	"MUREPLPOOL", "Error with replpool section !AD", 2,
-	"REPLACCSEM", "Error with replication access semaphore (id = !UL) for instance file !AD", 3,
-	"JNLFLUSHNOPROG", "No progress while attempting to flush journal file !AD", 2,
-	"REPLINSTCREATE", "Error creating replication instance file !AD", 2,
-	"SUSPENDING", "Process Received Signal !UL. Suspending processing on user request or attempt to do terminal I/O while running in the background", 1,
-	"SOCKBFNOTEMPTY", "Socket buffer size cannot be set to 0x!XL due to 0x!XL bytes of buffered data.  Read first.", 2,
-	"ILLESOCKBFSIZE", "The specified socket buffer size is 0x!XL, which is either 0 or too big", 1,
-	"NOSOCKETINDEV", "There is no socket in the current socket device", 0,
-	"SETSOCKOPTERR", "Setting the socket attribute !AD failed: (errno == !UL) !AD", 5,
-	"GETSOCKOPTERR", "Getting the socket attribute !AD failed: (errno == !UL) !AD", 5,
-	"NOSUCHPROC", "Process !UL does not exist - no need to !AD it", 3,
-	"DSENOFINISH", "DSE unable to finish all requested actions", 0,
-	"LKENOFINISH", "LKE unable to finish all requested actions", 0,
-	"NOCHLEFT", "Unhandled condition exception (all handlers exhausted) - process terminating", 0,
-	"MULOGNAMEDEF", "Logical name !AD, needed to start replication server is already defined for this job.  !/Check for an existing or improperly terminated server.", 2,
-	"BUFOWNERSTUCK", "Pid !UL waiting for Pid !UL to finish disk-read of block !UL [0x!XL].!/Been waiting for !UL minutes.  read_in_progress=!UL : rip_latch = !UL.", 7,
-	"ACTIVATEFAIL", "Cannot activate passive source server on instance !AD while a receiver server and/or update process is running", 2,
-	"DBRNDWNWRN", "Global section of database file !AD not rundown successfully by pid !UL [0x!XL].  Global section was not removed.", 4,
-	"DLLNOOPEN", "Failed to load external dynamic library !AD", 2,
-	"DLLNORTN", "Failed to look up the location of the symbol !AD", 2,
-	"DLLNOCLOSE", "Failed to unload external dynamic library", 0,
-	"FILTERNOTALIVE", "Replication server detected that the filter is not alive while attempting to send seqno !16 at XQ", 1,
-	"FILTERCOMM", "Error communicating seqno !16 at XQ with the filter", 1,
-	"FILTERBADCONV", "Bad conversion of seqno !16 at XQ by filter", 1,
-	"PRIMARYISROOT", "Attempted operation not valid on root primary instance !AD", 2,
-	"GVQUERYGETFAIL", "Global variable QUERY and GET failed.  Failure code: !AD.", 2,
-	"DBCREC2BIGINBLK", "A Record in block 0x!XL has a length greater than the maximum (!UL) in database !AD", 4,
-	"MERGEDESC", "Merge operation not possible.  !AD is descendent of !AD.", 4,
-	"MERGEINCOMPL", "Error encountered during MERGE; operation may be incomplete", 0,
-	"DBNAMEMISMATCH", "Database file !AD points to shared memory (id = !UL) which in turn points to an inaccessible database file !AZ", 4,
-	"DBIDMISMATCH", "Database file !AZ (region !AD) id does not match file id in shared memory (id = !UL).", 4,
-	"DEVOPENFAIL", "Error opening !AD", 2,
-	"IPCNOTDEL", "!AD : !AD did not delete IPC resources for region !AD", 6,
-	"XCVOIDRET", "Attempt to return a value from function !AD, which is declared void in external call table !AD", 4,
-	"MURAIMGFAIL", "Mupip recover or rollback failed while processing an after-image journal record.  Failure code: !AD.", 2,
-	"REPLINSTUNDEF", "Replication instance environment variable $gtm_repl_instance is undefined", 0,
-	"REPLINSTACC", "Error accessing replication instance file !AD", 2,
-	"NOJNLPOOL", "No journal pool info found in the replication instance of !AD", 2,
-	"NORECVPOOL", "No receiver pool info found in the replication instance of !AD", 2,
-	"FTOKERR", "Error getting ftok of the file !AD", 2,
-	"REPLREQRUNDOWN", "Error accessing replication instance !AD.  Must be rundown on cluster node !AD.", 4,
-	"BLKCNTEDITFAIL", "Mupip recover or rollback failed to correct the block count field in the file header for file !AD", 2,
-	"SEMREMOVED", "Semaphore id !UL removed from the system", 1,
-	"REPLINSTFMT", "Format error encountered while reading replication instance file !AD. Expected !AD. Found !AD.", 6,
-	"SEMKEYINUSE", "Semaphore key 0x!XL is already in use (possibly by an older version)", 1,
-	"XTRNTRANSERR", "Error attempting to generate an environment using an external algorithm", 0,
-	"XTRNTRANSDLL", "Error during extended reference environment translation.  Check the above message.", 0,
-	"XTRNRETVAL", "Length of return value (!SL) from extended reference translation algorithm is not in the range [0,!UL]", 2,
-	"XTRNRETSTR", "Return string from extended reference translation algorithm is NULL", 0,
-	"INVECODEVAL", "Invalid value for $ECODE (!AD)", 2,
-	"SETECODE", "Non-empty value assigned to $ECODE (user-defined error trap)", 0,
-	"INVSTACODE", "Invalid value for second parameter of $STACK (!AD)", 2,
-	"REPEATERROR", "Repeat previous error", 0,
-	"NOCANONICNAME", "Value is not a canonic name (!AD)", 2,
-	"NOSUBSCRIPT", "No such subscript found (!SL)", 1,
-	"SYSTEMVALUE", "Invalid value for $SYSTEM (!AD)", 2,
-	"SIZENOTVALID4", "Size (in bytes) must be either 1, 2, or 4", 0,
-	"STRNOTVALID", "Error: cannot convert !AD value to valid value", 2,
-	"CREDNOTPASSED", "Socket message contained no passed credentials", 0,
-	"ERRWETRAP", "Error while processing $ETRAP", 0,
-	"TRACINGON", "Tracing already turned on", 0,
-	"CITABENV", "Environment variable for call-in table !AD not set", 2,
-	"CITABOPN", "Unable to open call-in table: !AD", 2,
-	"CIENTNAME", "No label reference found for this entry in call-in table", 0,
-	"CIRTNTYP", "Invalid return type", 0,
-	"CIRCALLNAME", "Call-in routine name expected but not found", 0,
-	"CIRPARMNAME", "Invalid parameter specification for call-in table", 0,
-	"CIDIRECTIVE", "Invalid directive parameter passing.  Expected I, O or IO.", 0,
-	"CIPARTYPE", "Invalid type specification for O/IO directive - expected pointer type", 0,
-	"CIUNTYPE", "Unknown parameter type encountered", 0,
-	"CINOENTRY", "No entry specified for !AD in the call-in table", 2,
-	"JNLINVSWITCHLMT", "Journal AUTOSWITCHLIMIT [!UL] falls outside of allowed limits [!UL] and [!UL]", 3,
-	"SETZDIR", "Cannot change working directory to !AD", 2,
-	"JOBACTREF", "Actual parameter in job command passed by reference", 0,
-	"ECLOSTMID", "$ECODE overflow, the first and last ecodes are retained, but some intervening ecodes have been lost", 0,
-	"ZFF2MANY", "Number of characters specified for ZFF deviceparameter (!UL) is more than the maximum allowed (!UL)", 2,
-	"JNLFSYNCLSTCK", "Journaling fsync lock is stuck in journal file !AD", 2,
-	"DELIMWIDTH", "Delimiter length !UL exceeds device width !UL", 2,
-	"DBBMLCORRUPT", "Database !AD : Bitmap blk [0x!XL] is corrupt (size = [0x!XL], levl = [0x!XL], tn = [0x!16 at XQ]) : Dbtn = [0x!16 at XQ] : Database integrity errors likely", 7,
-	"DLCKAVOIDANCE", "Possible deadlock detected: Database !AD : Dbtn [0x!16 at XQ] : t_tries [0x!XL] : dollar_trestart [0x!XL] : now_crit [0x!XL] : TP transaction restarted", 6,
-	"WRITERSTUCK", "Buffer flush stuck waiting for [0x!XL] concurrent writers to finish writing to database file !AD", 3,
-	"PATNOTFOUND", "Current pattern table has no characters with pattern code !AD", 2,
-	"INVZDIRFORM", "Invalid value (!UL) specified for ZDIR_FORM", 1,
-	"ZDIROUTOFSYNC", "$ZDIRECTORY !AD is not the same as its cached value !AD", 4,
-	"GBLNOEXIST", "Global !AD no longer exists", 2,
-	"MAXBTLEVEL", "Global ^!AD in region !AD reached maximum level", 4,
-	"INVMNEMCSPC", "Unsupported mnemonicspace !AD", 2,
-	"JNLALIGNSZCHG", "Journal ALIGNSIZE is rounded up to !UL blocks (closest next higher power of two)", 1,
-	"SEFCTNEEDSFULLB", "Current side effect setting does not permit full Boolean to be turned off", 0,
-	"GVFAILCORE", "A core file is being created for later analysis if necessary", 0,
-	"DBCDBNOCERTIFY", "Database !AD HAS NOT been certified due to the preceding errors - rerun DBCERTIFY SCAN", 2,
-	"DBFRZRESETSUC", "Freeze released successfully on database file !AD", 2,
-	"JNLFILEXTERR", "Error during extension of journal file !AD", 2,
-	"JOBEXAMDONE", "GT.M process !UL completed job examine to !AD", 3,
-	"JOBEXAMFAIL", "GT.M process !UL executing $ZJOBEXAM function failed with the preceding error message", 1,
-	"JOBINTRRQST", "Job interrupt requested", 0,
-	"ERRWZINTR", "Error while processing $ZINTERRUPT", 0,
-	"CLIERR", "!AD", 2,
-	"REPLNOBEFORE", "NOBEFORE option cannot be used when the current replication state is ON for database file !AD", 2,
-	"REPLJNLCNFLCT", "Journaling cannot be turned !AD on database file !AD as the replication state is !AD and must also be turned !AD in the same command", 8,
-	"JNLDISABLE", "Specified journal option(s) cannot take effect as journaling is DISABLED on database file !AD", 2,
-	"FILEEXISTS", "File !AD already exists", 2,
-	"JNLSTATE", "Journaling state for !AD !AD is now !AD", 6,
-	"REPLSTATE", "Replication state for !AD !AD is now !AD", 6,
-	"JNLCREATE", "Journal file !AD created for !AD !AD with !AD", 8,
-	"JNLNOCREATE", "Journal file !AD not created", 2,
-	"JNLFNF", "Journal file !AD not found", 2,
-	"PREVJNLLINKCUT", "Previous journal file name link set to NULL in new journal file !AD created for database file !AD", 4,
-	"PREVJNLLINKSET", "Previous generation journal file name is changed from !AD to !AD", 4,
-	"FILENAMETOOLONG", "File name too long", 0,
-	"REQRECOV", "Error accessing database !AD.  Must be recovered on cluster node !AD.", 4,
-	"JNLTRANS2BIG", "Transaction needs an estimated [!UL blocks] in journal file !AD which exceeds the AUTOSWITCHLIMIT of !UL blocks", 4,
-	"JNLSWITCHTOOSM", "Journal AUTOSWITCHLIMIT [!UL blocks] is less than Journal ALLOCATION [!UL blocks] for database file !AD", 4,
-	"JNLSWITCHSZCHG", "Journal AUTOSWITCHLIMIT [!UL blocks] is rounded down to [!UL blocks] to equal the sum of Journal ALLOCATION [!UL blocks] and a multiple of Journal EXTENSION [!UL blocks] for database file !AD", 6,
-	"NOTRNDMACC", "Only random access files are supported as backup files for non-incremental backup", 0,
-	"TMPFILENOCRE", "Error in MUPIP BACKUP while trying to create temporary file !AD", 2,
-	"SHRMEMEXHAUSTED", "Attempt by process to use more shared memory than currently permitted by VMS", 0,
-	"JNLSENDOPER", "pid = 0x!XL : status = 0x!XL : jpc_status = 0x!XL : jpc_status2 = 0x!XL : iosb.cond = 0x!XW", 5,
-	"DDPSUBSNUL", "NUL characters in subscripts are not supported by DDP", 0,
-	"DDPNOCONNECT", "Named volume set, !AD, is not connected", 2,
-	"DDPCONGEST", "Agent congestion", 0,
-	"DDPSHUTDOWN", "Server has shut down", 0,
-	"DDPTOOMANYPROCS", "Maximum process limit of !UL exceeded", 1,
-	"DDPBADRESPONSE", "DDP invalid response code: !XB; message text follows", 1,
-	"DDPINVCKT", "Invalid format for CIRCUIT", 0,
-	"DDPVOLSETCONFIG", "Volume Set Configuration file error", 0,
-	"DDPCONFGOOD", "Volume Set Configuration entry accepted", 0,
-	"DDPCONFIGNORE", "Volume Set Configuration line ignored", 0,
-	"DDPCONFINCOMPL", "Volume Set Configuration entry incomplete", 0,
-	"DDPCONFBADVOL", "Volume Set Configuration entry : invalid volume", 0,
-	"DDPCONFBADUCI", "Volume Set Configuration entry : invalid uci", 0,
-	"DDPCONFBADGLD", "Volume Set Configuration entry : invalid global directory", 0,
-	"DDPRECSIZNOTNUM", "Maximum record size is not numeric", 0,
-	"DDPOUTMSG2BIG", "DDP message too big to be accommodated in outbound buffer", 0,
-	"DDPNOSERVER", "DDP Server not running on local node", 0,
-	"MUTEXRELEASED", "Process !UL [0x!XL] has released the critical section for database !AD to avoid deadlock. $TLEVEL: !UL  t_tries: !UL", 6,
-	"JNLCRESTATUS", "!AD at line !UL for journal file !AD, database file !AD encountered error", 7,
-	"ZBREAKFAIL", "Could not set breakpoint at !AD due to insufficient memory", 2,
-	"DLLVERSION", "Routine !AD in library !AD was compiled with an incompatible version of GT.M.  Recompile with the current version and re-link.", 4,
-	"INVZROENT", "!AD is neither a directory nor an object library(DLL)", 2,
-	"DDPLOGERR", "!AD: !AD", 4,
-	"GETSOCKNAMERR", "Getting the socket name failed from getsockname(): (errno==!UL) !AD", 3,
-	"INVGTMEXIT", "Inappropriate invocation of gtm_exit. gtm_exit cannot be invoked from external calls.", 0,
-	"CIMAXPARAM", "Exceeded maximum number of parameters in the call-in table entry. An M routine cannot accept more than 32 parameters.", 0,
-	"CITPNESTED", "Call-ins can not be used inside a TP transaction", 0,
-	"CIMAXLEVELS", "Too many nested Call-ins. Nested resources exhausted at level !UL.", 1,
-	"JOBINTRRETHROW", "Job interrupt redelivered", 0,
-	"STARFILE", "Star(*) argument cannot be specified with !AD", 2,
-	"NOSTARFILE", "Only star(*) argument can be specified with !AD", 2,
-	"MUJNLSTAT", "!AD at !AD", 4,
-	"JNLTPNEST", "Mupip journal command found nested TP transactions for journal file !AD at offset 0x!XL at transaction number 0x!16 at XQ", 4,
-	"REPLOFFJNLON", "Replication state for database file !AD is OFF but journaling state is enabled", 2,
-	"FILEDELFAIL", "Deletion of file !AD failed", 2,
-	"INVQUALTIME", "Invalid time qualifier value.  Specify as !AD=delta_or_absolute_time.", 2,
-	"NOTPOSITIVE", "!AD qualifier must be given a value greater than zero", 2,
-	"INVREDIRQUAL", "Invalid REDIRECT qualifier value.  !AD", 2,
-	"INVERRORLIM", "Invalid ERROR_LIMIT qualifier value.  Must be at least zero", 0,
-	"INVIDQUAL", "Invalid ID qualifier value !AD", 2,
-	"INVTRNSQUAL", "Invalid TRANSACTION qualifier.  Specify only one of TRANSACTION=[NO]SET or TRANSACTION=[NO]KILL.", 0,
-	"JNLNOBIJBACK", "MUPIP JOURNAL BACKWARD cannot continue as journal file !AD does not have before image journaling", 2,
-	"SETREG2RESYNC", "Setting resync sequence number 0x!16 at XQ to region sequence number 0x!16 at XQ for database !AD", 4,
-	"JNLALIGNTOOSM", "Alignsize !UL (bytes) is too small for a block size of !UL (bytes) for !AD !AD.  Using alignsize of !UL (bytes) instead.", 7,
-	"JNLFILEOPNERR", "Error opening journal file !AD", 2,
-	"JNLFILECLOSERR", "Error closing journal file !AD", 2,
-	"REPLSTATEOFF", "MUPIP JOURNAL -ROLLBACK -BACKWARD cannot proceed as database !AD does not have replication ON", 2,
-	"MUJNLPREVGEN", "Previous generation journal file !AD included for database file !AD", 4,
-	"MUPJNLINTERRUPT", "Database file !AD indicates interrupted MUPIP JOURNAL command.  Restore from backup for forward recover/rollback.", 2,
-	"ROLLBKINTERRUPT", "Database file !AD indicates interrupted ROLLBACK.  Reissue the MUPIP JOURNAL ROLLBACK command.", 2,
-	"RLBKJNSEQ", "Journal seqno of the instance after rollback is !@ZQ [0x!16 at XQ]", 2,
-	"REPLRECFMT", "Replication journal record format error encountered", 0,
-	"PRIMARYNOTROOT", "Attempted operation not valid on non-root primary instance !AD", 2,
-	"DBFRZRESETFL", "Freeze release failed on database file !AD", 2,
-	"JNLCYCLE", "Journal file !AD causes cycle in the journal file generations of database file !AD", 4,
-	"JNLPREVRECOV", "Journal file has nonzero value in prev_recov_end_of_data field", 0,
-	"RESOLVESEQNO", "Resolving until sequence number !@ZQ [0x!16 at XQ]", 2,
-	"BOVTNGTEOVTN", "Journal file !AD has beginning transaction [0x!16 at XQ] which is greater than end transaction [0x!16 at XQ]", 4,
-	"BOVTMGTEOVTM", "Journal file !AD has beginning timestamp [0x!16 at XQ] greater than end timestamp [0x!16 at XQ]", 4,
-	"BEGSEQGTENDSEQ", "Journal file !AD has beginning sequence number [0x!16 at XQ] greater than end sequence number [0x!16 at XQ]", 4,
-	"DBADDRALIGN", "Database file !AD, element location 0x!XJ: blk = 0x!XL: [!AD] control 0x!XJ was unaligned relative to base 0x!XJ and element size 0x!XL", 9,
-	"DBWCVERIFYSTART", "Database file !AD, write cache verification started by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5,
-	"DBWCVERIFYEND", "Database file !AD, write cache verification finished by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5,
-	"MUPIPSIG", "!AD (signal !UL) issued from process !UL [0x!XL] to process !UL [0x!XL]", 7,
-	"HTSHRINKFAIL", "Hash table compaction failed to allocate new smaller table due to lack of memory", 0,
-	"STPEXPFAIL", "Stringpool expansion failed. It could not expand to !UL bytes.", 1,
-	"DBBTUWRNG", "The blocks-to-upgrade file-header field is incorrect. Expected 0x!XL, found 0x!XL", 2,
-	"DBBTUFIXED", "The blocks-to-upgrade file-header field has been changed to the correct value", 0,
-	"DBMAXREC2BIG", "Maximum record size (!UL) is too large for this block size (!UL) - Maximum is !UL", 3,
-	"DBCSCNNOTCMPLT", "Specified DBCERTIFY SCAN output file is not complete - Rerun scan", 0,
-	"DBCBADFILE", "Source file !AD does not appear to have been generated by DBCERTIFY SCAN - rerun SCAN or specify correct file", 2,
-	"DBCNOEXTND", "Unable to extend database !AD", 2,
-	"DBCINTEGERR", "Encountered integrity error in database !AD", 2,
-	"DBMINRESBYTES", "Minimum RESERVED BYTES value required for certification/upgrade is !UL - Currently is !UL", 2,
-	"DBCNOTSAMEDB", "Database has been moved or restored since DBCERTIFY SCAN - Rerun scan", 0,
-	"DBCDBCERTIFIED", "Database !AD has been certified for use with !AD", 4,
-	"DBCMODBLK2BIG", "Block 0x!XL has been modified since DBCERTIFY SCAN but is still too large or now has an earlier TN than in the scan phase - Rerun scan phase", 1,
-	"DBCREC2BIG", "Record with key !AD is length !UL in block 0x!XL which is greater than the maximum length !UL in database !AD", 7,
-	"DBCCMDFAIL", "Executed command failed with return code !SL: !AD which executed !AD !AD", 7,
-	"DBCKILLIP", "Cannot proceed with kill in progress indicator set for database !AD -- Run MUPIP INTEG first", 2,
-	"DBCNOFINISH", "DBCERTIFY unable to finish all requested actions", 0,
-	"DYNUPGRDFAIL", "Unable to dynamically upgrade block 0x!XL in database !AD due to lack of free space in block", 3,
-	"MMNODYNDWNGRD", "Unable to use dynamic downgrade with MM access method for region !AD. Use BG access method for downgrade", 2,
-	"MMNODYNUPGRD", "Unable to use MM access method for region !AD until all database blocks are upgraded", 2,
-	"MUDWNGRDNRDY", "Database !AD is not ready to downgrade - still !UL database blocks to downgrade", 3,
-	"MUDWNGRDTN", "Transaction number 0x!16 at XQ in database !AD is too big for MUPIP [REORG] DOWNGRADE. Renew database with MUPIP INTEG TN_RESET", 3,
-	"MUDWNGRDNOTPOS", "Start VBN value is [!UL] while downgraded GT.M version can support only [!UL]. Downgrade not possible", 2,
-	"MUUPGRDNRDY", "Database !AD has not been certified as being ready to upgrade to !AD format", 4,
-	"TNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4,
-	"TNTOOLARGE", "Database file !AD has reached the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 3,
-	"SHMPLRECOV", "Shared memory pool block recovery invoked for region !AD", 2,
-	"MUNOSTRMBKUP", "Database !AD has a block size larger than !UL and thus cannot use stream (incremental) backup", 3,
-	"EPOCHTNHI", "At the EPOCH record at offset !UL of !AD transaction number [0x!16 at XQ] is higher than database transaction number [0x!16 at XQ]", 5,
-	"CHNGTPRSLVTM", "Mupip will change tp_resolve_time from !UL to !UL because expected EPOCH or EOF record was not found in Journal File !AD", 4,
-	"JNLUNXPCTERR", "Unexpected error encountered for Journal !AD at disk address 0x!XL", 3,
-	"OMISERVHANG", "GTCM OMI server is hung", 0,
-	"RSVDBYTE2HIGH", "Record size (!UL) is greater than the maximum allowed for region !AD with Block size (!UL) and Reserved bytes (!UL)", 5,
-	"BKUPTMPFILOPEN", "Open of backup temporary file !AD failed", 2,
-	"BKUPTMPFILWRITE", "Write to backup temporary file !AD failed", 2,
-	"VMSMEMORY2", "Central storage exhausted during allocation of dynamic file descriptor with !UL bytes - check page file quota and page file size", 1,
-	"LOADBGSZ2", "Load error: BEGIN too large.  No records loaded.", 0,
-	"LOADEDSZ2", "Load error: END too large.  No records loaded.", 0,
-	"REPLINSTMISMTCH", "Process has replication instance file !AD (jnlpool shmid = !UL) open but database !AD is bound to instance file !AD (jnlpool shmid = !UL)", 8,
-	"REPLINSTREAD", "Error reading [0x!XL] bytes at offset [0x!16 at XQ] from replication instance file !AD", 4,
-	"REPLINSTDBMATCH", "Replication instance file !AD has seqno [0x!16 at XQ] while database has a different seqno [0x!16 at XQ]", 4,
-	"REPLINSTNMSAME", "Primary and Secondary instances have the same replication instance name !AD", 2,
-	"REPLINSTNMUNDEF", "Replication instance name not defined", 0,
-	"REPLINSTNMLEN", "Replication instance name !AD should be 1 to 15 characters long", 2,
-	"REPLINSTNOHIST", "History information for !AD not found in replication instance file !AD", 4,
-	"REPLINSTSECLEN", "Secondary replication instance name !AD should be 1 to 15 characters long", 2,
-	"REPLINSTSECMTCH", "Secondary replication instance name !AD sent by receiver does not match !AD specified at source server startup", 4,
-	"REPLINSTSECNONE", "No information found for secondary instance !AD in instance file !AD", 4,
-	"REPLINSTSECUNDF", "Secondary replication instance name not defined", 0,
-	"REPLINSTSEQORD", "!AD has seqno [0x!16 at XQ] which is less than last record seqno [0x!16 at XQ] in replication instance file !AD", 6,
-	"REPLINSTSTNDALN", "Could not get exclusive access to replication instance file !AD", 2,
-	"REPLREQROLLBACK", "Replication instance file !AD indicates abnormal shutdown or an incomplete ROLLBACK. Run MUPIP JOURNAL ROLLBACK first", 2,
-	"REQROLLBACK", "Error accessing database !AD.  Run MUPIP JOURNAL ROLLBACK on cluster node !AD.", 4,
-	"INVOBJFILE", "Cannot ZLINK object file !AD due to unexpected format", 2,
-	"SRCSRVEXISTS", "Source server for secondary instance !AD is already running with pid !UL", 3,
-	"SRCSRVNOTEXIST", "Source server for secondary instance !AD is not alive", 2,
-	"SRCSRVTOOMANY", "Cannot start more than !UL source servers in replication instance !AD", 3,
-	"JNLPOOLBADSLOT", "Source server slot for secondary instance !AD is in an inconsistent state. Pid = [!UL], State = [!UL], SlotIndex = [!UL]", 5,
-	"NOENDIANCVT", "Unable to convert the endian format of file !AD due to !AD", 4,
-	"ENDIANCVT", "Converted database file !AD from !AZ endian to !AZ endian on a !AZ endian system", 5,
-	"DBENDIAN", "Database file !AD is !AZ endian on a !AZ endian system", 4,
-	"BADCHSET", "!AD is not a valid character mapping in this context", 2,
-	"BADCASECODE", "!AD is not a valid case conversion code", 2,
-	"BADCHAR", "$ZCHAR(!AD) is not a valid character in the !AD encoding form", 4,
-	"DLRCILLEGAL", "!_!AD!/!_!_!_Illegal $CHAR() value !UL", 3,
-	"NONUTF8LOCALE", "Locale has character encoding (!AD) which is not compatible with UTF-8 character set", 2,
-	"INVDLRCVAL", "Invalid $CHAR() value !UL", 1,
-	"DBMISALIGN", "Database file !AD has !UL blocks which does not match alignment rules. Reconstruct the database from a backup or extend it by at least !UL blocks.", 4,
-	"LOADINVCHSET", "Extract file CHSET (!AD) is incompatible with gtm_chset", 2,
-	"DLLCHSETM", "Routine !AD in library !AD was compiled with CHSET=M which is different from $ZCHSET. Recompile with CHSET=UTF-8 and re-link.", 4,
-	"DLLCHSETUTF8", "Routine !AD in library !AD was compiled with CHSET=UTF-8 which is different from $ZCHSET. Recompile with CHSET=M and re-link.", 4,
-	"BOMMISMATCH", "!AD Byte Order Marker found when !AD character set specified", 4,
-	"WIDTHTOOSMALL", "WIDTH should be at least 2 when device ICHSET or OCHSET is UTF-8 or UTF-16", 0,
-	"SOCKMAX", "Attempt to exceed maximum sockets (!UL) for the SOCKET device", 1,
-	"PADCHARINVALID", "PAD deviceparameter cannot be greater than 127", 0,
-	"ZCNOPREALLOUTPAR", "Parameter !UL in external call !AD.!AD is an output only parameter requiring pre-allocation", 5,
-	"SVNEXPECTED", "Special variable expected in this context", 0,
-	"SVNONEW", "Cannot NEW this special variable", 0,
-	"ZINTDIRECT", "Attempt to enter direct mode from $ZINTERRUPT", 0,
-	"ZINTRECURSEIO", "Attempt to do IO to the active device in $ZINTERRUPT", 0,
-	"MRTMAXEXCEEDED", "Maximum value of !UL for SOCKET device parameter MOREREADTIME exceeded", 1,
-	"JNLCLOSED", "Journaling closed for database file !AD at transaction number 0x!16 at XQ", 3,
-	"RLBKNOBIMG", "ROLLBACK cannot proceed as database !AD has NOBEFORE_IMAGE journaling", 2,
-	"RLBKJNLNOBIMG", "Journal file !AD has NOBEFORE_IMAGE journaling", 2,
-	"RLBKLOSTTNONLY", "ROLLBACK will only create a lost transaction file (database and journal files will not be modified)", 0,
-	"KILLBYSIGSINFO3", "!AD process !UL has been killed by a signal !UL accessing vaddress 0x!XJ", 5,
-	"GTMSECSHRTMPPATH", "gtmsecshr path is !AD", 2,
-	"GTMERREXIT", "GTM image has exited with errors", 0,
-	"INVMEMRESRV", "Could not allocate GT.M memory reserve (!AD)", 2,
-	"OPCOMMISSED", "!UL errors and !UL MBFULLs sending prior operator messages", 2,
-	"COMMITWAITSTUCK", "Pid !UL timed out after waiting !UL minute(s) for !UL concurrent GT.M process(es) to finish commits in database file !AD", 5,
-	"COMMITWAITPID", "Pid !UL waited !UL minute(s) for pid !UL to finish commits to block 0x!XL in database file !AD", 6,
-	"UPDREPLSTATEOFF", "Error replicating global ^!AD as it maps to database !AD which has replication turned OFF", 4,
-	"LITNONGRAPH", "M standard requires graphics in string literals; found non-printable: $ZCHAR(!AD)", 2,
-	"DBFHEADERR8", "Database file !AD: control problem: !AD was 0x!16 at XQ expecting 0x!16 at XQ", 6,
-	"MMBEFOREJNL", "BEFORE image journaling cannot be set with MM access method in database file !AD", 2,
-	"MMNOBFORRPL", "Replication cannot be used in database file !AD which uses MM access method and NOBEFORE image journaling", 2,
-	"KILLABANDONED", "Abandoned kills counter is greater than zero for file !AD, !AD", 4,
-	"BACKUPKILLIP", "Kill in progress indicator is set for file !AD, backup database could have incorrectly marked busy integrity errors", 2,
-	"LOGTOOLONG", "Environment variable !AD is too long. Maximum length allowed is !UL bytes.", 3,
-	"NOALIASLIST", "Parenthetical lists of multiple arguments cannot have a preceding alias introducer or include alias (*) forms", 0,
-	"ALIASEXPECTED", "Alias or alias container variable expected in this context", 0,
-	"VIEWLVN", "Invalid local variable name used with VIEW/$VIEW(): !AD", 2,
-	"DZWRNOPAREN", "$ZWRTACxxx is not allowed inside a parenthesized SET target", 0,
-	"DZWRNOALIAS", "$ZWRTAC cannot be aliased", 0,
-	"FREEZEERR", "Error while trying to !AD region !AD", 4,
-	"CLOSEFAIL", "Error while closing file descriptor !SL", 1,
-	"CRYPTINIT", "Could not initialize encryption library while opening encrypted file !AD. !AD", 4,
-	"CRYPTOPFAILED", "Encrypt/Decrypt operation failed for file !AD. !AD", 4,
-	"CRYPTDLNOOPEN", "Could not load encryption library while opening encrypted file !AD. !AD", 4,
-	"CRYPTNOV4", "!AD is an encrypted database. Cannot downgrade(to V4) with Encryption option enabled.", 2,
-	"CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2,
-	"UNUSEDMSG1316", "Last used in V6.2-002A", 0,
-	"CRYPTKEYFETCHFAILED", "Could not retrieve encryption key corresponding to file !AD. !AD", 4,
-	"CRYPTKEYFETCHFAILEDNF", "Could not retrieve encryption key during !AD operation key. !AD", 4,
-	"CRYPTHASHGENFAILED", "Could not generate cryptographic hash for symmetric key corresponding to file !AD. !AD", 4,
-	"CRYPTNOKEY", "No encryption key specified", 0,
-	"BADTAG", "Unable to use file !AD (CCSID !UL) with CCSID !UL", 4,
-	"ICUVERLT36", "!AD !UL.!UL. ICU version greater than or equal to 3.6 should be used", 4,
-	"ICUSYMNOTFOUND", "Symbol !AD not found in the ICU libraries. ICU needs to be built with symbol-renaming disabled or gtm_icu_version environment variable needs to be properly specified", 2,
-	"STUCKACT", "Process stuck script invoked: !AD : !AD", 4,
-	"CALLINAFTERXIT", "After a gtm_exit, a process can never create a valid GT.M context", 0,
-	"LOCKSPACEFULL", "No more room for LOCK slots on database file !AD", 2,
-	"IOERROR", "Error occured while doing !AD in !AD operation -- called from module !AD at line !UL", 7,
-	"MAXSSREACHED", "Maximum snapshots - !UL - for region !AD reached. Please wait for the existing snapshots to complete before starting a new one.", 3,
-	"SNAPSHOTNOV4", "Cannot downgrade (to V4) while snapshots are in progress. Currently !UL snapshots are in progress for region !AD.", 3,
-	"SSV4NOALLOW", "Database snapshots are supported only on fully upgraded V5 databases. !AD has V4 format blocks.", 2,
-	"SSTMPDIRSTAT", "Cannot access temporary directory !AD", 2,
-	"SSTMPCREATE", "Cannot create the temporary file in directory !AD for the requested snapshot", 2,
-	"JNLFILEDUP", "Journal files !AD and !AD are the same", 4,
-	"SSPREMATEOF", "Premature end of file while reading block !UL of size: !UL bytes at offset: !UL from !AD", 5,
-	"SSFILOPERR", "Error while doing !AD operation on file !AD", 4,
-	"REGSSFAIL", "Process !UL encountered error contributing to the snapshot for region !AD - the snapshot is no longer valid", 3,
-	"SSSHMCLNUPFAIL", "Error while doing snapshot shared memory cleanup. Operation -- !AD. Identifier -- !UL", 3,
-	"SSFILCLNUPFAIL", "Error while unlinking snapshot file -- !AD", 2,
-	"SETINTRIGONLY", "ISV !AD cannot be modified outside of the trigger environment", 2,
-	"MAXTRIGNEST", "Maximum trigger nesting level (!UL) exceeded", 1,
-	"TRIGCOMPFAIL", "Compilation of database trigger named !AD failed", 2,
-	"NOZTRAPINTRIG", "Use of $ZTRAP in a database trigger environment ($ZTLEVEL greater than 0) is not supported", 0,
-	"ZTWORMHOLE2BIG", "String length of !UL bytes exceeds maximum length of !UL bytes for $ZTWORMHOLE", 2,
-	"JNLENDIANLITTLE", "Journal file !AD is LITTLE endian on a BIG endian system", 2,
-	"JNLENDIANBIG", "Journal file !AD is BIG endian on a LITTLE endian system", 2,
-	"TRIGINVCHSET", "Trigger !AD for global ^!AD was created with CHSET=!AD which is different from the current $ZCHSET of this process", 6,
-	"TRIGREPLSTATE", "Trigger cannot update replicated database file !AD since triggering update was not replicated", 2,
-	"GVDATAGETFAIL", "Global variable DATAGET sub-operation (in KILL function) failed. Failure code: !AD.", 2,
-	"TRIG2NOTRIG", "Sending transaction sequence number 0x!16 at XQ which used triggers to a replicator that does not support triggers", 1,
-	"ZGOTOINVLVL", "ZGOTO in a trigger running in !AD cannot ZGOTO level !UL", 3,
-	"TRIGTCOMMIT", "TCOMMIT at $ZTLEVEL=!UL not allowed as corresponding TSTART was done at lower $ZTLEVEL=!UL", 2,
-	"TRIGTLVLCHNG", "Detected a net transaction level ($TLEVEL) change during trigger !AD. Transaction level must be the same at exit as when the trigger started", 2,
-	"TRIGNAMEUNIQ", "Unable to make trigger name !AD unique beyond !UL versions already loaded", 3,
-	"ZTRIGINVACT", "Missing or invalid parameter in position !UL given to $ZTRIGGER()", 1,
-	"INDRCOMPFAIL", "Compilation of indirection failed", 0,
-	"QUITALSINV", "QUIT * return when the extrinsic was not invoked with SET *", 0,
-	"PROCTERM", "!AD process termination due to !AD (return code !UL) from !AD", 7,
-	"SRCLNNTDSP", "Source lines exceeding !UL character width are not displayed", 1,
-	"ARROWNTDSP", "Unable to display ^----- due to length of source line", 0,
-	"TRIGDEFBAD", "Trigger initialization failed for global ^!AD. Error while processing ^#t(\"!AD\",!AD)", 6,
-	"TRIGSUBSCRANGE", "Trigger definition for global ^!AD has one or more invalid subscript range(s) : !AD", 4,
-	"TRIGDATAIGNORE", "Ignoring trigger data !AD. Use MUPIP TRIGGER to load trigger definitions", 2,
-	"TRIGIS", "!_!_Trigger name: !AD", 2,
-	"TCOMMITDISALLOW", "TROLLBACK required after an unhandled error in trigger context", 0,
-	"SSATTACHSHM", "Error while attaching to shared memory identifier !UL", 1,
-	"TRIGDEFNOSYNC", "Global ^!AD has triggers defined on the !AD instance but none on the !AD instance. Current journal sequence number is 0x!16 at XQ", 7,
-	"TRESTMAX", "TRESTART not allowed in a final TP retry more than once", 0,
-	"ZLINKBYPASS", "ZLINK of !AD bypassed - Identical routine already linked", 2,
-	"GBLEXPECTED", "Global variable reference expected in this context", 0,
-	"GVZTRIGFAIL", "ZTRIGGER of a global variable failed.  Failure code: !AD.", 2,
-	"MUUSERLBK", "Abnormal shutdown of replication-enabled database !AD detected", 2,
-	"SETINSETTRIGONLY", "ISV !AD can only be modified in a 'SET' type trigger", 2,
-	"DZTRIGINTRIG", "$ZTRIGGER() is not allowed inside trigger context. Trigger name: !AD", 2,
-	"UNUSEDMSG1374", "SECNODZTRIGINTP : Last used in V6.2-000", 0,
-	"BOOLSIDEFFECT", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in Boolean expression", 0,
-	"DBBADUPGRDSTATE", "Correcting conflicting values for fields describing database version upgrade state in the file header for region !AD (!AD) - make fresh backups with new journal files immediately.", 4,
-	"WRITEWAITPID", "PID !UL waited !UL minute(s) for PID !UL to finish writing block 0x!XL in database file !AD", 6,
-	"ZGOCALLOUTIN", "ZGOTO level 0 with entry ref not valid when using call-ins", 0,
-	"REPLNOXENDIAN", "!AD side is running on a GT.M version that does not support cross-endian replication. Upgrade the !AD side to at least V5.3-003 to support cross-endian replication. Cannot continue", 4,
-	"REPLXENDIANFAIL", "!AD side encountered error while doing endian conversion at journal sequence number 0x!16 at XQ", 3,
-	"ZGOTOINVLVL2", "ZGOTO 0:entryref is not valid on VMS (UNLINK is a UNIX only feature)", 0,
-	"GTMSECSHRCHDIRF", "gtmsecshr unable to chdir to its temporary directory (!AD)", 2,
-	"JNLORDBFLU", "Error flushing database blocks to !AD. See related messages in the operator log", 2,
-	"ZCCLNUPRTNMISNG", "External call: Cleanup routine name missing. Cannot continue", 0,
-	"ZCINVALIDKEYWORD", "External call: Invalid keyword found. Cannot continue", 0,
-	"UNUSEDMSG1386", "REPLNOMULTILINETRG : Last used in V6.2-000", 0,
-	"DBSHMNAMEDIFF", "Database file !AD points to shared memory (id = !UL) which points to a different database file !AZ", 4,
-	"SHMREMOVED", "Removed Shared Memory id !UL corresponding to file !AD", 3,
-	"DEVICEWRITEONLY", "Cannot read from a write-only device", 0,
-	"ICUERROR", "ICU returned status !UL which is either unrecognized or inconsistent with the operating context", 1,
-	"ZDATEBADDATE", "$ZDATE() date argument !AD is less than -365 (the $HOROLOG value for 01-JAN-1840) or greater than 364570088 (the $HOROLOG value for 31-DEC-999999)", 2,
-	"ZDATEBADTIME", "$ZDATE() time argument !AD is less than 0 or greater than 86399 (the $HOROLOG value for a second before midnight)", 2,
-	"COREINPROGRESS", "Previous core attempt failed; core generation bypassed", 0,
-	"MAXSEMGETRETRY", "Failed to get ftok semaphore after !UL tries because it is being continually deleted", 1,
-	"JNLNOREPL", "Replication not enabled for journal file !AD (database file !AD)", 4,
-	"JNLRECINCMPL", "Incomplete journal record at disk address 0x!XL for file !AD while attempting to read seqno 0x!16 at XQ", 4,
-	"JNLALLOCGROW", "Increased Journal ALLOCATION from [!UL blocks] to [!UL blocks] to match AUTOSWITCHLIMIT for !AZ !AD", 5,
-	"INVTRCGRP", "Invalid trace group specified in $gtm_trace_groups: !AD", 2,
-	"MUINFOUINT6", "!AD : !UL [0x!XL] ; $H=!UL,!UL", 6,
-	"NOLOCKMATCH", "No matching locks were found in !AD", 2,
-	"BADREGION", "Region is not BG, MM, or CM", 0,
-	"LOCKSPACEUSE", "Estimated free lock space: !UL% of !UL pages", 2,
-	"JIUNHNDINT", "An error during $ZINTERRUPT processing was not handled: !AD", 2,
-	"GTMASSERT2", "!AD - Assert failed !AD line !UL for expression (!AD)", 7,
-	"ZTRIGNOTRW", "ZTRIGGER cannot operate on read-only region !AD", 2,
-	"TRIGMODREGNOTRW", "Trigger(s) cannot be added/changed/deleted/upgraded because region !AD is read-only", 2,
-	"INSNOTJOINED", "Replicating Instance !AD is not a member of the same Group as Instance !AD", 4,
-	"INSROLECHANGE", "Supplementary Instance !AD and non-Supplementary Instance !AD belong to the same Group", 4,
-	"INSUNKNOWN", "Supplementary Instance !AD has no instance definition for non-Supplementary Instance !AD", 4,
-	"NORESYNCSUPPLONLY", "NORESYNC only supported for Supplementary Instances", 0,
-	"NORESYNCUPDATERONLY", "NORESYNC qualifier only allowed on a Supplementary Instance which allows local updates", 0,
-	"NOSUPPLSUPPL", "Instance !AD is configured to perform local updates so it cannot receive from Supplementary Instance !AD", 4,
-	"REPL2OLD", "Instance !AD uses a GT.M version that does not support connection with the current version on instance !AD", 4,
-	"EXTRFILEXISTS", "Error opening output file: !AD -- File exists", 2,
-	"MUUSERECOV", "Abnormal shutdown of journaled database !AD detected", 2,
-	"SECNOTSUPPLEMENTARY", "!AD is a Supplementary Instance and so cannot act as a source to non-Supplementary Instance !AD ", 4,
-	"SUPRCVRNEEDSSUPSRC", "Instance !AD is not configured to perform local updates so it cannot act as a receiver for non-Supplementary Instance !AD", 4,
-	"PEERPIDMISMATCH", "Local socket peer with PID=!UL does not match specified PID=!UL", 2,
-	"SETITIMERFAILED", "A setitimer() call returned an error status of !UL", 1,
-	"UPDSYNC2MTINS", "Can only UPDATERESYNC with an empty instance file", 0,
-	"UPDSYNCINSTFILE", "Error with instance file name specified in UPDATERESYNC qualifier", 0,
-	"REUSEINSTNAME", "Error with instance name specified in REUSE qualifier", 0,
-	"RCVRMANYSTRMS", "Receiver server now connecting to source stream [!2UL] but had previously connected to a different stream [!2UL]", 2,
-	"RSYNCSTRMVAL", "RSYNC_STRM qualifier can only take on a value from 0 to 15", 0,
-	"RLBKSTRMSEQ", "Stream journal seqno of the instance after rollback is Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3,
-	"RESOLVESEQSTRM", "Resolving until stream sequence number Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3,
-	"REPLINSTDBSTRM", "Replication instance file !AD has seqno [0x!16 at XQ] for Stream !2UL while database has a different seqno [0x!16 at XQ]", 5,
-	"RESUMESTRMNUM", "Error with stream number specified in RESUME qualifier", 0,
-	"ORLBKSTART", "ONLINE ROLLBACK started on instance !AD corresponding to !AD", 4,
-	"ORLBKTERMNTD", "ONLINE ROLLBACK terminated on instance !AD corresponding to !AD with the above errors", 4,
-	"ORLBKCMPLT", "ONLINE ROLLBACK completed successfully on instance !AD corresponding to !AD", 4,
-	"ORLBKNOSTP", "ONLINE ROLLBACK proceeding with database updates. MUPIP STOP will no longer be allowed", 0,
-	"ORLBKFRZPROG", "!AD : waiting for FREEZE on region !AD (!AD) to clear", 6,
-	"ORLBKFRZOVER", "!AD : FREEZE on region !AD (!AD) cleared", 6,
-	"ORLBKNOV4BLK", "Region !AD (!AD) has V4 format blocks. Database upgrade required. ONLINE ROLLBACK cannot continue", 4,
-	"DBROLLEDBACK", "Concurrent ONLINE ROLLBACK detected on one or more regions. The current operation is no longer valid", 0,
-	"DSEWCREINIT", "Database cache reinitialized by DSE for region !AD", 2,
-	"MURNDWNOVRD", "OVERRIDE qualifier used with MUPIP RUNDOWN on database file !AD", 2,
-	"REPLONLNRLBK", "ONLINE ROLLBACK detected. Starting afresh", 0,
-	"SRVLCKWT2LNG", "PID !UL is holding the source server lock. Waited for !UL minute(s). Now exiting", 2,
-	"IGNBMPMRKFREE", "Ignoring bitmap free-up operation for region !AD (!AD) due to concurrent ONLINE ROLLBACK", 4,
-	"PERMGENFAIL", "Failed to determine access permissions to use for creation of !AD for file !AD", 4,
-	"PERMGENDIAG", "Permissions: Proc(uid:!UL,gid:!UL), DB File(uid:!UL,gid:!UL,perm:!AD), Lib File(gid:!UL,perm:!AD), Group Mem(opener:!UL,owner:!UL)", 11,
-	"MUTRUNC1ATIME", "Process with PID !UL already performing truncate in region !AD", 3,
-	"MUTRUNCBACKINPROG", "Truncate detected concurrent backup in progress for region !AD", 2,
-	"MUTRUNCERROR", "Truncate of region !AD encountered service error !AD", 4,
-	"MUTRUNCFAIL", "Truncate failed after reorg", 0,
-	"MUTRUNCNOSPACE", "Region !AD has insufficient space to meet truncate target percentage of !UL", 3,
-	"MUTRUNCNOTBG", "Region !AD does not have access method BG ", 2,
-	"MUTRUNCNOV4", "Region !AD is not fully upgraded from V4 format.", 2,
-	"MUTRUNCPERCENT", "Truncate threshold percentage should be from 0 to 99", 0,
-	"MUTRUNCSSINPROG", "Truncate detected concurrent snapshot in progress for region !AD", 2,
-	"MUTRUNCSUCCESS", "Database file !AD truncated from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5,
-	"RSYNCSTRMSUPPLONLY", "RSYNC_STRM qualifier only supported for Supplementary Instances", 0,
-	"STRMNUMIS", "Stream # is !2UL", 1,
-	"STRMNUMMISMTCH1", "Stream !2UL exists on the receiver instance file but is unknown on the source instance", 1,
-	"STRMNUMMISMTCH2", "Stream !2UL exists on the source instance file but is unknown on the receiver instance", 1,
-	"STRMSEQMISMTCH", "Unable to play update on Stream !2UL with seqno [0x!16 at XQ] as receiving instance has a different stream seqno [0x!16 at XQ]", 3,
-	"LOCKSPACEINFO", "Region: !AD: processes on queue: !UL/!UL; LOCK slots in use: !UL/!UL; name space!ADfull", 8,
-	"JRTNULLFAIL", "Applying NULL journal record failed.  Failure code: !AD.", 2,
-	"LOCKSUB2LONG", "Following subscript is !UL bytes long which exceeds 255 byte limit.", 1,
-	"RESRCWAIT", "Waiting briefly for the !AD semaphore for region !AD (!AD) was held by PID !UL (Sem. ID: !UL).", 8,
-	"RESRCINTRLCKBYPAS", "!AD with PID !UL bypassing the !AD semaphore for region !AD (!AD) was held by PID !UL.", 10,
-	"DBFHEADERRANY", "Database file !AD: control problem: !AD was 0x!XJ expecting 0x!XJ", 6,
-	"REPLINSTFROZEN", "Instance !AZ is now Frozen", 1,
-	"REPLINSTFREEZECOMMENT", "Freeze Comment: !AZ", 1,
-	"REPLINSTUNFROZEN", "Instance !AZ is now Unfrozen", 1,
-	"DSKNOSPCAVAIL", "Attempted write to file !AD failed due to lack of disk space. Retrying indefinitely.", 2,
-	"DSKNOSPCBLOCKED", "Retry of write to file !AD suspended due to new instance freeze. Waiting for instance to be unfrozen.", 2,
-	"DSKSPCAVAILABLE", "Write to file !AD succeeded after out-of-space condition cleared", 2,
-	"ENOSPCQIODEFER", "Write to file !AD deferred due to lack of disk space", 2,
-	"CUSTOMFILOPERR", "Error while doing !AD operation on file !AD", 4,
-	"CUSTERRNOTFND", "Error mnemonic !AD specified in custom errors file is not valid for this version of GT.M", 2,
-	"CUSTERRSYNTAX", "Syntax error in file !AD at line number !UL", 3,
-	"ORLBKINPROG", "Online ROLLBACK in progress by PID !UL in region !AD", 3,
-	"DBSPANGLOINCMP", "!AD Spanning node is missing. Block no !UL of spanning node is missing", 3,
-	"DBSPANCHUNKORD", "!AD Chunk of !UL blocks is out of order", 3,
-	"DBDATAMX", "!AD Record too large", 2,
-	"DBIOERR", "Error while doing write operation on region !AD (!AD)", 4,
-	"INITORRESUME", "UPDATERESYNC on a Supplementary Instance must additionally specify INITIALIZE or RESUME", 0,
-	"GTMSECSHRNOARG0", "gtmsecshr cannot identify its origin - argv[0] is null", 0,
-	"GTMSECSHRISNOT", "gtmsecshr is not running as gtmsecshr but !AD - must be gtmsecshr", 2,
-	"GTMSECSHRBADDIR", "gtmsecshr is not running from $gtm_dist/gtmsecshrdir or $gtm_dist cannot be determined", 0,
-	"JNLBUFFREGUPD", "Journal file buffer size for region !AD has been adjusted from !UL to !UL.", 4,
-	"JNLBUFFDBUPD", "Journal file buffer size for database file !AD has been adjusted from !UL to !UL.", 4,
-	"LOCKINCR2HIGH", "Attempt to increment a LOCK more than !UL times", 1,
-	"LOCKIS", "!_!_Resource name: !AD", 2,
-	"LDSPANGLOINCMP", "Incomplete spanning node found during load!/!_!_at File offset : [0x!16 at XQ]", 1,
-	"MUFILRNDWNFL2", "Database section (id = !UL) belonging to database file !AD rundown failed", 3,
-	"MUINSTFROZEN", "!AD : Instance !AZ is frozen. Waiting for instance to be unfrozen before proceeding with writes to database file !AD", 5,
-	"MUINSTUNFROZEN", "!AD : Instance !AZ is now Unfrozen. Continuing with writes to database file !AD", 5,
-	"GTMEISDIR", "!AD : Is a directory", 2,
-	"SPCLZMSG", "The following error message cannot be driven through ZMESSAGE", 0,
-	"MUNOTALLINTEG", "At least one region skipped. See the earlier messages", 0,
-	"BKUPRUNNING", "Process !UL is currently backing up region !AD. Cannot start another backup.", 3,
-	"MUSIZEINVARG", "MUPIP SIZE : Invalid parameter value for: !AD", 2,
-	"MUSIZEFAIL", "MUPIP SIZE : failed.  Failure code: !AD.", 2,
-	"SIDEEFFECTEVAL", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in actuallist, function arguments, non-Boolean binary operands or subscripts", 0,
-	"CRYPTINIT2", "Could not initialize encryption library !AD. !AD", 4,
-	"CRYPTDLNOOPEN2", "Could not load encryption library !AD. !AD", 4,
-	"CRYPTBADCONFIG", "Could not retrieve data from encrypted file !AD due to bad encryption configuration. !AD", 4,
-	"DBCOLLREQ", "JOURNAL EXTRACT proceeding without collation information for globals in database. !AD !AD", 4,
-	"SETEXTRENV", "Database files are missing or Instance is frozen; supply the database files, wait for the freeze to lift or define gtm_extract_nocol to extract possibly incorrect collation", 0,
-	"NOTALLDBRNDWN", "Not all regions were successfully rundown", 0,
-	"TPRESTNESTERR", "TP restart signaled while handing error - treated as nested error - Use TROLLBACK in error handler to avoid this", 0,
-	"JNLFILRDOPN", "Error opening journal file !AD for read for database file !AD", 4,
-	"SEQNUMSEARCHTIMEOUT", "Timed out trying to find sequence number !@ZQ [0x!16 at XQ] in Journal File(s). See above messages for details. Source server exiting", 2,
-	"FTOKKEY", "FTOK key 0x!XL", 1,
-	"SEMID", "Semaphore id !UL", 1,
-	"JNLQIOSALVAGE", "Journal IO lock salvaged", 0,
-	"FAKENOSPCLEARED", "DEBUG: All fake ENOSPC flags were cleared !UL heartbeats ago", 1,
-	"MMFILETOOLARGE", "Size of !AD region (!AD) is larger than maximum size supported for memory mapped I/O on this platform", 4,
-	"BADZPEEKARG", "Missing, invalid or surplus !AD parameter for $ZPEEK()", 2,
-	"BADZPEEKRANGE", "Access exception raised in memory range given to $ZPEEK()", 0,
-	"BADZPEEKFMT", "$ZPEEK() value length inappropriate for selected format", 0,
-	"DBMBMINCFREFIXED", "Master bitmap incorrectly marks local bitmap 0x!XL as free. Auto-corrected", 1,
-	"NULLENTRYREF", "JOB command did not specify entryref", 0,
-	"ZPEEKNORPLINFO", "$ZPEEK() unable to access requested replication structure", 0,
-	"MMREGNOACCESS", "Region !AD (!AD) is no longer accessible. See prior error messages in the operator and application error logs", 4,
-	"MALLOCMAXUNIX", "Exceeded maximum allocation defined by $gtm_max_storalloc", 0,
-	"MALLOCMAXVMS", "Exceeded maximum allocation defined by GTM_MAX_STORALLOC", 0,
-	"HOSTCONFLICT", "Host !AD could not open database file !AD because it is marked as already open on node !AD", 6,
-	"GETADDRINFO", "Error in getting address info", 0,
-	"GETNAMEINFO", "Error in getting name info", 0,
-	"SOCKBIND", "Error in binding socket", 0,
-	"INSTFRZDEFER", "Instance Freeze initiated by !AD error on region !AD deferred due to critical resource conflict", 4,
-	"REGOPENRETRY", "Attempt to open region !AD (!AD) using startup shortcut failed due to conflicting database shutdown. Retrying...", 4,
-	"REGOPENFAIL", "Failed to open region !AD (!AD) due to conflicting database shutdown activity", 4,
-	"REPLINSTNOSHM", "Database !AD has no active connection to a replication journal pool", 2,
-	"DEVPARMTOOSMALL", "Deviceparameter must be greater than zero (0)", 0,
-	"REMOTEDBNOSPGBL", "Database region !AD contains portion of a spanning global and so cannot point to a remote file", 2,
-	"NCTCOLLSPGBL", "Database region !AD contains portion of spanning global ^!AD and so cannot support non-zero numeric collation type", 4,
-	"ACTCOLLMISMTCH", "Global ^!AD inherits alternative collation sequence #!UL from global directory but database file !AD contains different collation sequence #!UL for this global", 6,
-	"GBLNOMAPTOREG", "Global !AD does not map to region !AD in current global directory", 4,
-	"ISSPANGBL", "Operation cannot be performed on global ^!AD as it spans multiple regions in current global directory", 2,
-	"TPNOSUPPORT", "Operation cannot be performed while inside of a TP transaction", 0,
-	"GVSUBSERR", "Invalid subscripted global name specification in $VIEW() function", 0,
-	"UNUSEDMSG1540", "TRIGNOSPANBL : Last used in V6.2-000", 0,
-	"FILTERTIMEDOUT", "Replication server timed out attempting to read seqno !16 at XQ from external filter", 1,
-	"TLSDLLNOOPEN", "Failed to load GT.M TLS/SSL library for secure communication", 0,
-	"TLSINIT", "Failed to initialize GT.M TLS/SSL library for secure communication", 0,
-	"TLSCONVSOCK", "Failed to convert Unix TCP/IP socket to TLS/SSL aware socket", 0,
-	"TLSHANDSHAKE", "Connection to remote side using TLS/SSL protocol failed", 0,
-	"TLSCONNINFO", "Failed to obtain information on the TLS/SSL connection", 0,
-	"TLSIOERROR", "Error during TLS/SSL !AD operation", 2,
-	"TLSRENEGOTIATE", "Failed to renegotiate TLS/SSL connection", 0,
-	"REPLNOTLS", "!AD requested TLS/SSL communication but the !AD was either not started with TLSID qualifier or does not support TLS/SSL protocol", 4,
-	"COLTRANSSTR2LONG", "Output string after collation transformation is too long", 0,
-	"SOCKPASS", "Socket pass failed", 0,
-	"SOCKACCEPT", "Socket accept failed", 0,
-	"NOSOCKHANDLE", "No socket handle specified in WRITE /PASS", 0,
-	"TRIGLOADFAIL", "MUPIP TRIGGER or $ZTRIGGER operation failed. Failure code: !AD.", 2,
-	"SOCKPASSDATAMIX", "Attempt to use a LOCAL socket for both READ/WRITE and PASS/ACCEPT", 0,
-	"NOGTCMDB", "!AD does not support operation on GT.CM database region: !AD", 4,
-	"NOUSERDB", "!AD does not support operation on non-GDS format region: !AD", 4,
-	"DSENOTOPEN", "DSE could not open region !AD - see DSE startup error message for cause", 2,
-	"ZSOCKETATTR", "Attribute \"!AD\" invalid for $ZSOCKET function", 2,
-	"ZSOCKETNOTSOCK", "$ZSOCKET function called but device is not a socket", 0,
-	"CHSETALREADY", "CHSET !AD already specified for socket device", 2,
-	"DSEMAXBLKSAV", "DSE cannot SAVE another block as it already has the maximum of !UL", 1,
-	"BLKINVALID", "!XL is not a valid block as database file !AD has !XL total blocks", 4,
-	"CANTBITMAP", "Can't perform this operation on a bit map (block at a 200 hexadecimal boundary)", 0,
-	"AIMGBLKFAIL", "After image build for block !XL in region !AD failed in DSE or MUPIP", 3,
-	"GTMDISTUNVERIF", "Environment variable $gtm_dist (!AD) could not be verified against the executables path (!AD)", 4,
-	"CRYPTNOAPPEND", "APPEND disallowed on the encrypted file !AD", 2,
-	"CRYPTNOSEEK", "SEEK disallowed on the encrypted file !AD", 2,
-	"CRYPTNOTRUNC", "Not positioned at file start or EOF. TRUNCATE disallowed on the encrypted file !AD", 2,
-	"CRYPTNOKEYSPEC", "Key name needs to be specified with KEY, IKEY, or OKEY device parameter for encrypted I/O", 0,
-	"CRYPTNOOVERRIDE", "Cannot override IVEC and/or key without compromising integrity", 0,
-	"CRYPTKEYTOOBIG", "Specified key has length !UL, which is greater than the maximum allowed key length !UL", 2,
-	"CRYPTBADWRTPOS", "Encrypted WRITE disallowed from a position different than where the last WRITE completed", 0,
-	"LABELNOTFND", "GOTO referenced a label that does not exist", 0,
-	"RELINKCTLERR", "Error with relink control structure for $ZROUTINES directory !AD", 2,
-	"INVLINKTMPDIR", "Value for $gtm_linktmpdir is either not found or not a directory(!AD) - Reverting to default value", 2,
-	"NOEDITOR", "Can't find an executable editor: !AD", 2,
-	"UPDPROC", "Update Process error", 0,
-	"HLPPROC", "Helper Process error", 0,
-	"REPLNOHASHTREC", "Sequence number 0x!16 at XQ contains trigger definition updates. !AD side must be at least V6.2-000 for replication to continue", 3,
-	"REMOTEDBNOTRIG", "Trigger operations on global !AD not supported as it maps to database region !AD that points to a remote file", 4,
-	"NEEDTRIGUPGRD", "Cannot do trigger operation on database file !AD until it is upgraded; Run MUPIP TRIGGER -UPGRADE first", 2,
-	"REQRLNKCTLRNDWN", "Error accessing relinkctl file for $ZROUTINES directory !AD. Must be rundown", 2,
-	"RLNKCTLRNDWNSUC", "Relinkctl file for $ZROUTINES directory !AD successfully rundown", 2,
-	"RLNKCTLRNDWNFL", "Relinkctl file for $ZROUTINES directory !AD failed to rundown as it is open by !UL process(es)", 3,
-	"MPROFRUNDOWN", "Error during M-profiling rundown", 0,
-	"ZPEEKNOJNLINFO", "$ZPEEK() unable to access requested journal structure - region !AD is not currently journaled", 2,
-	"TLSPARAM", "TLS parameter !AD !AD", 4,
-	"RLNKRECLATCH", "Failed to get latch on relinkctl record for routine name !AZ in $ZROUTINES directory !AD", 3,
-	"RLNKSHMLATCH", "Failed to get latch on relinkctl shared memory for $ZROUTINES directory !AD", 2,
-	"JOBLVN2LONG", "The zwrite representation of a local variable transferred to a JOB'd process is too long. The zwrite representation cannot exceed !UL. Encountered size: !UL", 2,
-	"NLRESTORE", "DB file header field !AD: !UL does not match the value used in original mapping - restoring to: !UL", 4,
-	"PREALLOCATEFAIL", "Disk space reservation for !AD segment has failed", 2,
-	"NODFRALLOCSUPP", "The NODEFER_ALLOCATE qualifier is not allowed on this operating system. Not changing the defer allocation flag", 0,
-	"LASTWRITERBYPAS", "The last writer for database file !AD bypassed the rundown", 2,
-	"TRIGUPBADLABEL", "Trigger upgrade cannot upgrade label !UL to !UL on ^!AD in region !AD", 6,
-	"WEIRDSYSTIME", "Time reported by the system clock is outside the acceptable range.  Please check and correct the system clock", 0,
-	"REPLSRCEXITERR", "Source server for secondary instance !AZ exited abnormally. See log file !AZ for details.", 2,
-	"INVZBREAK", "Cannot set ZBREAK in direct mode routine (GTM$DMOD)", 0,
-	"INVTMPDIR", "Value or default for $gtm_tmp is either not found or not a directory (!AD) - Reverting to default value", 2,
-	"ARCTLMAXHIGH", "The environment variable !AD = !UL is too high. Assuming the maximum acceptable value of !UL", 4,
-	"ARCTLMAXLOW", "The environment variable !AD = !UL is too low. Assuming the minimum acceptable value of !UL", 4,
-	"NONTPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; blklvl: !UL, type: !UL, zpos: !AD", 11,
-	"PBNPARMREQ", "A first parameter value !AD requires a second parameter specified containing !AD", 4,
-	"PBNNOPARM", "First parameter !AD does not support a second parameter", 2,
-	"PBNUNSUPSTRUCT", "$ZPEEK() does not support structure !AD", 2,
-	"PBNINVALID", "!AD does not have a field named !AD", 4,
-	"PBNNOFIELD", "%ZPEEKBYNAME() requires a field.item as its first parameter", 0,
-	"JNLDBSEQNOMATCH", "Journal file !AD has beginning region sequence number [0x!16 at XQ], but database !AD has region sequence number [0x!16 at XQ]", 6,
-	"MULTIPROCLATCH", "Failed to get multi-process latch at !AD", 2,
-	"INVLOCALE", "Attempt to reset locale to supplied value of $gtm_locale (!AD) failed", 2,
-	"NOMORESEMCNT", "!AD counter semaphore has reached its maximum and stopped counting for !AZ !AD. Run MUPIP JOURNAL -ROLLBACK -BACKWARD, MUPIP JOURNAL -RECOVER -BACKWARD or MUPIP RUNDOWN to restore the database files and shared resources to a clean state", 5,
-	"SETQUALPROB", "Error getting !AD qualifier value", 2,
-	"EXTRINTEGRITY", "Database !AD potentially contains spanning nodes or data encrypted with two different keys", 2,
-	"CRYPTKEYRELEASEFAILED", "Could not safely release encryption key corresponding to file !AD. !AD", 4,
-	"MUREENCRYPTSTART", "Database !AD : MUPIP REORG ENCRYPT started by pid !UL at transaction number [0x!16 at XQ]", 4,
-	"MUREENCRYPTV4NOALLOW", "Database (re)encryption supported only on fully upgraded V5 databases. !AD has V4 format blocks", 2,
-	"ENCRYPTCONFLT", "MUPIP REORG -ENCRYPT and MUPIP EXTRACT -FORMAT=BIN cannot run concurrently - skipping !AD on region: !AD, file: !AD", 6,
-	"JNLPOOLRECOVERY", "The size of the data written to the journal pool (!UL) does not match the size of the data in the journal record (!UL) for the replication instance file !AZ. The journal pool has been recovered.", 3,
+	{ "ACK", "", 0 },
+	{ "BREAKZST", "Break instruction encountered during ZSTEP action", 0 },
+	{ "BADACCMTHD", "Invalid access method was specified, file not created", 0 },
+	{ "BADJPIPARAM", "!AD is not a legal parameter for $ZGETJPI()", 2 },
+	{ "BADSYIPARAM", "!AD is not a legal parameter for $ZGETSYI()", 2 },
+	{ "BITMAPSBAD", "Database bit maps are incorrect", 0 },
+	{ "BREAK", "Break instruction encountered", 0 },
+	{ "BREAKDEA", "Break instruction encountered during Device error action", 0 },
+	{ "BREAKZBA", "Break instruction encountered during ZBREAK action", 0 },
+	{ "STATCNT", "!AD:!_  Key cnt: !UL  max subsc len: !UL  max data len: !UL", 5 },
+	{ "BTFAIL", "The database block table is corrupt; error type !UL", 1 },
+	{ "MUPRECFLLCK", "Database file !AD is locked by MUPIP RECOVER.  Could not secure access.", 2 },
+	{ "CMD", "Command expected but not found", 0 },
+	{ "COLON", "Colon (:) expected in this context", 0 },
+	{ "COMMA", "Comma expected in this context", 0 },
+	{ "COMMAORRPAREXP", "Comma or right parenthesis expected but not found", 0 },
+	{ "COMMENT", "Comment line.  Placed zbreak at next executable line.", 0 },
+	{ "CTRAP", "Character trap $C(!UL) encountered", 1 },
+	{ "CTRLC", "CTRL_C encountered", 0 },
+	{ "CTRLY", "User interrupt encountered", 0 },
+	{ "DBCCERR", "Interlock instruction failure in critical mechanism for region !AD", 2 },
+	{ "DUPTOKEN", "Token 0x!16 at XQ is duplicate in the journal file !AD for database !AD", 5 },
+	{ "DBJNLNOTMATCH", "Database !AD points to journal file name !AD but the journal file points to database file !AD", 6 },
+	{ "DBFILERR", "Error with database file !AD", 2 },
+	{ "DBNOTGDS", "!AD - Unrecognized database file format", 2 },
+	{ "DBOPNERR", "Error opening database file !AD", 2 },
+	{ "DBRDERR", "Cannot read database file !AD after opening", 2 },
+	{ "CCEDUMPNOW", "", 0 },
+	{ "DEVPARINAP", "Device parameter inappropriate to this command", 0 },
+	{ "RECORDSTAT", "!AD:!_  Key cnt: !@ZQ  max subsc len: !UL  max rec len: !UL  max node len: !UL", 6 },
+	{ "NOTGBL", "Expected a global variable name starting with an up-arrow (^): !AD", 2 },
+	{ "DEVPARPROT", "The protection specification is invalid", 0 },
+	{ "PREMATEOF", "Premature end of file detected", 0 },
+	{ "GVINVALID", "!_!AD!/!_!_!_Invalid global name", 2 },
+	{ "DEVPARTOOBIG", "String deviceparameter exceeds 255 character limit", 0 },
+	{ "DEVPARUNK", "Deviceparameter unknown", 0 },
+	{ "DEVPARVALREQ", "A value is required for this device parameter", 0 },
+	{ "DEVPARMNEG", "Deviceparameter must be a positive value", 0 },
+	{ "DSEBLKRDFAIL", "Failed attempt to read block", 0 },
+	{ "DSEFAIL", "DSE failed.  Failure code: !AD.", 2 },
+	{ "NOTALLREPLON", "Replication off for !AD regions", 2 },
+	{ "BADLKIPARAM", "!AD is not a legal parameter for $ZGETLKI()", 2 },
+	{ "JNLREADBOF", "Beginning of journal file encountered for !AD", 2 },
+	{ "DVIKEYBAD", "$ZGETDVI(\"!AD\",\"!AD\") contains an illegal keyword", 4 },
+	{ "ENQ", "", 0 },
+	{ "EQUAL", "Equal sign expected but not found", 0 },
+	{ "ERRORSUMMARY", "Errors occurred during compilation", 0 },
+	{ "ERRWEXC", "Error while processing exception string", 0 },
+	{ "ERRWIOEXC", "Error while processing I/O exception string", 0 },
+	{ "ERRWZBRK", "Error while processing ZBREAK action string", 0 },
+	{ "ERRWZTRAP", "Error while processing $ZTRAP", 0 },
+	{ "NUMUNXEOR", "!_!AD!/!_!_!_unexpected end of record in numeric subscript", 2 },
+	{ "EXPR", "Expression expected but not found", 0 },
+	{ "STRUNXEOR", "!_!AD!/!_!_!_unexpected end of record in string subscript", 2 },
+	{ "JNLEXTEND", "Journal file extension error for file !AD", 2 },
+	{ "FCHARMAXARGS", "Argument count of $CHAR function exceeded the maximum of 255", 0 },
+	{ "FCNSVNEXPECTED", "Function or special variable expected in this context", 0 },
+	{ "FNARGINC", "Format specifiers to $FNUMBER are incompatible: \"!AD\"", 2 },
+	{ "JNLACCESS", "Error accessing journal file !AD", 2 },
+	{ "TRANSNOSTART", "ZTCOMMIT(s) issued without corresponding ZTSTART(s)", 0 },
+	{ "FNUMARG", "$FNUMBER format specifier \"!AD\" contains an illegal character: \"!AD\"", 4 },
+	{ "FOROFLOW", "FOR commands nested more than !UL deep on a line", 1 },
+	{ "YDIRTSZ", "Size of YDIRT data too large", 0 },
+	{ "JNLSUCCESS", "!AD successful", 2 },
+	{ "GBLNAME", "Either an identifier or a left parenthesis is expected after a ^ in this context", 0 },
+	{ "GBLOFLOW", "Database segment is full", 0 },
+	{ "CORRUPT", "Corrupt input in Blk # !UL, Key #!UL; resuming with next global block", 2 },
+	{ "GTMCHECK", "Internal GT.M error--Report to your GT.M Support Channel", 0 },
+	{ "GVDATAFAIL", "Global variable $DATA function failed.  Failure code: !AD.", 2 },
+	{ "EORNOTFND", "!_!AD!/!_!_!_End of record not found", 2 },
+	{ "GVGETFAIL", "Global variable retrieval failed.  Failure code: !AD.", 2 },
+	{ "GVIS", "!_!_Global variable: !AD", 2 },
+	{ "GVKILLFAIL", "Global variable kill failed.  Failure code: !AD.", 2 },
+	{ "GVNAKED", "Illegal naked global reference", 0 },
+	{ "GVNEXTARG", "Argument to global variable $NEXT must be subscripted", 0 },
+	{ "GVORDERFAIL", "Global variable $ORDER or $NEXT function failed.  Failure code: !AD.", 2 },
+	{ "GVPUTFAIL", "Global variable put failed.  Failure code: !AD.", 2 },
+	{ "PATTABSYNTAX", "Error in !AD at line !UL", 3 },
+	{ "GVSUBOFLOW", "Maximum combined length of subscripts exceeded", 0 },
+	{ "GVUNDEF", "Global variable undefined: !AD", 2 },
+	{ "TRANSNEST", "Maximum transaction nesting levels exceeded", 0 },
+	{ "INDEXTRACHARS", "Indirection string contains extra trailing characters", 0 },
+	{ "CORRUPTNODE", "Corrupt input in Record # !UL, Key #!UL; resuming with next global node", 2 },
+	{ "INDRMAXLEN", "Maximum length !UL of an indirection argument was exceeded", 1 },
+	{ "INSFFBCNT", "Insufficient byte count quota left for requested operation", 0 },
+	{ "INTEGERRS", "Database integrity errors", 0 },
+	{ "INVCMD", "Invalid command keyword encountered", 0 },
+	{ "INVFCN", "Invalid function name", 0 },
+	{ "INVOBJ", "Cannot ZLINK object file due to unexpected format", 0 },
+	{ "INVSVN", "Invalid special variable name", 0 },
+	{ "IOEOF", "Attempt to read past an end-of-file", 0 },
+	{ "IONOTOPEN", "Attempt to USE an I/O device which has not been opened", 0 },
+	{ "MUPIPINFO", "!AD", 2 },
+	{ "IVTIME", "Invalid time specification: !AD", 2 },
+	{ "JOBFAIL", "JOB command failure", 0 },
+	{ "JOBLABOFF", "Label and offset not found in created process", 0 },
+	{ "JOBPARNOVAL", "This job parameter cannot take a value", 0 },
+	{ "JOBPARNUM", "The value of this job parameter must be an integer", 0 },
+	{ "JOBPARSTR", "The value of this job parameter must be a string", 0 },
+	{ "JOBPARUNK", "Job parameter unknown", 0 },
+	{ "JOBPARVALREQ", "A value is required for this job parameter", 0 },
+	{ "JUSTFRACT", "Fraction specifier to $JUSTIFY cannot be negative", 0 },
+	{ "KEY2BIG", "Key size (!UL) is greater than maximum (!UL) for region: !AD", 4 },
+	{ "LABELEXPECTED", "Label expected in this context", 0 },
+	{ "LABELMISSING", "Label referenced but not defined: !AD", 2 },
+	{ "LABELUNKNOWN", "Label referenced but not defined", 0 },
+	{ "DIVZERO", "Attempt to divide by zero", 0 },
+	{ "LKNAMEXPECTED", "An identifier is expected after a ^ in this context", 0 },
+	{ "JNLRDERR", "Error reading journal file !AD.  Unable to initialize.", 2 },
+	{ "LOADRUNNING", "Cannot ZLINK an active routine !AD", 2 },
+	{ "LPARENMISSING", "Left parenthesis expected", 0 },
+	{ "LSEXPECTED", "A line separator is expected here", 0 },
+	{ "LVORDERARG", "Argument to local variable $NEXT must be subscripted", 0 },
+	{ "MAXFORARGS", "Maximum number of arguments to a single FOR command exceeded", 0 },
+	{ "TRANSMINUS", "Negative numbers not allowed with ZTCOMMIT", 0 },
+	{ "MAXNRSUBSCRIPTS", "Maximum number of subscripts exceeded", 0 },
+	{ "MAXSTRLEN", "Maximum string length exceeded", 0 },
+	{ "JNLDBERR", "Journal file !AD does not correspond to database file !AD", 4 },
+	{ "JNLFILOPN", "Error opening journal file !AD for database file !AD", 4 },
+	{ "MBXRDONLY", "Mailbox is read only, cannot write to it", 0 },
+	{ "JNLINVALID", "!AD is not a valid journal file !/ for database file: !AD", 4 },
+	{ "MBXWRTONLY", "Mailbox is write only, cannot read from it", 0 },
+	{ "MEMORY", "Central memory exhausted during request for !UJ bytes from 0x!XJ", 2 },
+	{ "MTBLKTOOBIG", "Magtape BLOCK_SIZE exceeds maximum size allowed", 0 },
+	{ "MTBLKTOOSM", "Magtape BLOCK_SIZE is less than !UL bytes", 1 },
+	{ "MTFIXRECSZ", "BLOCK_SIZE !UL must be multiple of fixed record size !UL", 2 },
+	{ "MTIS", "Magnetic tape: !AD", 2 },
+	{ "MTRDBADBLK", "Block read too small, contained only !UL bytes, block size = !UL", 2 },
+	{ "MTRDONLY", "Cannot write to a READONLY magtape", 0 },
+	{ "MTRDTHENWRT", "Attempt to read after a write to a magtape", 0 },
+	{ "MTRECGTRBLK", "Magtape record size cannot exceed block size", 0 },
+	{ "MTRECTOOBIG", "Magtape record size exceeds maximum allowed", 0 },
+	{ "MTRECTOOSM", "Magtape record size is too small for record type", 0 },
+	{ "JNLTMQUAL3", "Time qualifier BEFORE_TIME=\"!AZ\" is less than the journal file(s) minimum timestamp=\"!AZ\"", 2 },
+	{ "MULTLAB", "This label has been previously defined", 0 },
+	{ "BLKCNT", "Last LOAD Block/RMS Record number: !UL", 1 },
+	{ "CCEDUMPOFF", "", 0 },
+	{ "NOPLACE", "Line specified in a ZBREAK cannot be found", 0 },
+	{ "JNLCLOSE", "Error closing journal file !AD", 2 },
+	{ "NOTPRINCIO", "Output currently directed to device !AD", 2 },
+	{ "NOTTOEOFONPUT", "Not positioned to EOF on write (sequential organization only)", 0 },
+	{ "NOZBRK", "No zbreak at that location", 0 },
+	{ "NULSUBSC", "Null subscripts are not allowed for region: !AD", 2 },
+	{ "NUMOFLOW", "Numeric overflow", 0 },
+	{ "PARFILSPC", "Parameter: !AD  file specification: !AD", 4 },
+	{ "PATCLASS", "Illegal character class for pattern code", 0 },
+	{ "PATCODE", "Illegal syntax for pattern", 0 },
+	{ "PATLIT", "Illegal character or unbalanced quotes for pattern literal", 0 },
+	{ "PATMAXLEN", "Pattern code exceeds maximum length", 0 },
+	{ "LPARENREQD", "!_!AD!/!_!_!_Left parenthesis expected", 2 },
+	{ "PATUPPERLIM", "Pattern code upper limit is less than lower limit", 0 },
+	{ "PCONDEXPECTED", "Post-conditional expression expected but not found", 0 },
+	{ "PRCNAMLEN", "Process name !AD length is greater than !SL", 3 },
+	{ "RANDARGNEG", "Random number generator argument must be greater than or equal to one", 0 },
+	{ "DBPRIVERR", "No privilege for attempted update operation for file: !AD", 2 },
+	{ "REC2BIG", "Record size (!UL) is greater than maximum (!UL) for region: !AD", 4 },
+	{ "RHMISSING", "Right-hand side of expression expected", 0 },
+	{ "DEVICEREADONLY", "Cannot write to read-only device", 0 },
+	{ "COLLDATAEXISTS", "Collation type cannot be changed while data exists", 0 },
+	{ "ROUTINEUNKNOWN", "Routine could not be found", 0 },
+	{ "RPARENMISSING", "Right parenthesis expected", 0 },
+	{ "RTNNAME", "Routine name expected here", 0 },
+	{ "VIEWGVN", "Invalid global key name used with VIEW/$VIEW(): !AD", 2 },
+	{ "RTSLOC", "!_!_At M source location !AD", 2 },
+	{ "RWARG", "This is not a legal argument for a READ command", 0 },
+	{ "RWFORMAT", "A valid format expression (!!, #, or ?expr) expected here", 0 },
+	{ "JNLWRTDEFER", "Journal write start deferred", 0 },
+	{ "SELECTFALSE", "No argument to $SELECT was true", 0 },
+	{ "SPOREOL", "Either a space or an end-of-line was expected but not found", 0 },
+	{ "SRCLIN", "!_!AD!/!_!AD", 4 },
+	{ "SRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4 },
+	{ "SRCLOCUNKNOWN", "!_!_M source location unknown", 0 },
+	{ "STACKCRIT", "Stack space critical", 0 },
+	{ "STACKOFLOW", "Stack overflow", 0 },
+	{ "STACKUNDERFLO", "Stack underflow", 0 },
+	{ "STRINGOFLOW", "String pool overflow", 0 },
+	{ "SVNOSET", "Cannot SET this special variable", 0 },
+	{ "VIEWFN", "View parameter is not valid with $VIEW()", 0 },
+	{ "TERMASTQUOTA", "Process AST quota exceeded, cannot open terminal", 0 },
+	{ "TEXTARG", "Invalid argument to $TEXT function", 0 },
+	{ "TMPSTOREMAX", "Maximum space for temporary values exceeded", 0 },
+	{ "VIEWCMD", "View parameter is not valid with VIEW command", 0 },
+	{ "JNI", "!AD", 2 },
+	{ "TXTSRCFMT", "$TEXT encountered an invalid source program file format", 0 },
+	{ "UIDMSG", "Unidentified message received", 0 },
+	{ "UIDSND", "Unidentified sender PID", 0 },
+	{ "UNDEF", "Undefined local variable: !AD", 2 },
+	{ "UNIMPLOP", "Unimplemented construct encountered", 0 },
+	{ "VAREXPECTED", "Variable expected in this context", 0 },
+	{ "VARRECBLKSZ", "Blocksize must be at least record size + 4 bytes", 0 },
+	{ "MAXARGCNT", "Maximum number of arguments !UL exceeded", 1 },
+	{ "GTMSECSHRSEMGET", "semget error errno = !UL", 1 },
+	{ "VIEWARGCNT", "View parameter !AD has inappropriate number of subparameters", 2 },
+	{ "GTMSECSHRDMNSTARTED", "gtmsecshr daemon started (key: 0x!XL) for version !AD from !AD", 5 },
+	{ "ZATTACHERR", "Error attaching to \"!AD\"", 2 },
+	{ "ZDATEFMT", "$ZDATE format string contains invalid character", 0 },
+	{ "ZEDFILSPEC", "Illegal ZEDIT file specification: !AD", 2 },
+	{ "ZFILENMTOOLONG", "!AD is longer than 255 characters", 2 },
+	{ "ZFILKEYBAD", "!AD is not a legal keyword for $ZFILE()", 2 },
+	{ "ZFILNMBAD", "!AD is not a legal file name", 2 },
+	{ "ZGOTOLTZERO", "Cannot ZGOTO a level less than zero", 0 },
+	{ "ZGOTOTOOBIG", "Cannot ZGOTO a level greater than present level", 0 },
+	{ "ZLINKFILE", "Error while zlinking \"!AD\"", 2 },
+	{ "ZPARSETYPE", "Illegal TYPE argument to $ZPARSE(): !AD", 2 },
+	{ "ZPARSFLDBAD", "Illegal $ZPARSE() field parameter: !AD", 2 },
+	{ "ZPIDBADARG", "The tvexpr must be FALSE if last $ZPID() not found", 0 },
+	{ "ZPRIVARGBAD", "!AD is not a legal privilege for $ZPRIV()", 2 },
+	{ "ZPRIVSYNTAXERR", "Privilege string cannot end with a comma", 0 },
+	{ "ZPRTLABNOTFND", "Label not found in routine", 0 },
+	{ "VIEWAMBIG", "View parameter !AD is ambiguous", 2 },
+	{ "VIEWNOTFOUND", "View parameter !AD not valid", 2 },
+	{ "ZSETPRVARGBAD", "!AD is not a legal privilege for $ZSETPRIV()", 2 },
+	{ "INVSPECREC", "Invalid global modifier record", 0 },
+	{ "ZSETPRVSYNTAX", "$ZSETPRIV() privileges string cannot end with a comma", 0 },
+	{ "ZSRCHSTRMCT", "Search stream identifier out of range", 0 },
+	{ "VERSION", "Version mismatch - This program must be recompiled", 0 },
+	{ "MUNOTALLSEC", "WARNING: not all global sections accessed were successfully rundown", 0 },
+	{ "MUSECDEL", "Section !AD deleted", 2 },
+	{ "MUSECNOTDEL", "Section !AD not deleted", 2 },
+	{ "RPARENREQD", "!_!AD!/!_!_!_Right parenthesis expected", 2 },
+	{ "ZGBLDIRACC", "Cannot access global directory !AD!AD!AD.", 6 },
+	{ "GVNAKEDEXTNM", "Cannot reference different global directory in a naked reference", 0 },
+	{ "EXTGBLDEL", "Invalid delimiter for extended global syntax", 0 },
+	{ "DSEWCINITCON", "No action taken, enter YES at CONFIRMATION prompt to initialize global buffers", 0 },
+	{ "LASTFILCMPLD", "The file currently being compiled is !AD", 2 },
+	{ "NOEXCNOZTRAP", "Neither an exception nor a Ztrap is specified", 0 },
+	{ "UNSDCLASS", "Unsupported descriptor class", 0 },
+	{ "UNSDDTYPE", "Unsupported descriptor data type", 0 },
+	{ "ZCUNKTYPE", "External call: Unknown argument type", 0 },
+	{ "ZCUNKMECH", "External call: Unknown parameter-passing mechanism", 0 },
+	{ "ZCUNKQUAL", "External call: Unknown input qualifier", 0 },
+	{ "JNLDBTNNOMATCH", "Journal file !AD has !AD transaction number [0x!16 at XQ], but database !AD has current transaction number [0x!16 at XQ] and journal end transaction number [0x!16 at XQ]", 9 },
+	{ "ZCALLTABLE", "External call Table format error", 0 },
+	{ "ZCARGMSMTCH", "External call: Actual argument count, !UL, is greater than formal argument count, !UL", 2 },
+	{ "ZCCONMSMTCH", "External call: Too many input arguments", 0 },
+	{ "ZCOPT0", "External call: Qualifier OPTIONAL_0 can be used only with mechanisms REFERENCE or DESCRIPTOR", 0 },
+	{ "ZCSTATUS", "External call: Unsuccessful return status", 0 },
+	{ "ZCUSRRTN", "External call: Run-time error in user routine", 0 },
+	{ "ZCPOSOVR", "External call: Invalid overlapping of arguments in table position !UL", 1 },
+	{ "ZCINPUTREQ", "External call: Required input argument missing", 0 },
+	{ "JNLTNOUTOFSEQ", "End transaction [0x!16 at XQ] of journal !AD different from Begin transaction [0x!16 at XQ] of next generation journal !AD", 6 },
+	{ "ACTRANGE", "Alternate Collating Type !UL is out of range", 1 },
+	{ "ZCCONVERT", "External call: error converting output argument", 0 },
+	{ "ZCRTENOTF", "External call routine !AD not found", 2 },
+	{ "GVRUNDOWN", "Error during global database rundown", 0 },
+	{ "LKRUNDOWN", "Error during lock database rundown", 0 },
+	{ "IORUNDOWN", "Error during image rundown", 0 },
+	{ "FILENOTFND", "File !AD not found", 2 },
+	{ "MUFILRNDWNFL", "File !AD rundown failed", 2 },
+	{ "JNLTMQUAL1", "Time qualifier BEFORE_TIME=\"!AZ\" is less than SINCE_TIME=\"!AZ\"", 2 },
+	{ "FORCEDHALT", "Image HALTed by MUPIP STOP", 0 },
+	{ "LOADEOF", "Load error: EOF reached prior to BEGIN record !UL.  No records loaded.", 1 },
+	{ "WILLEXPIRE", "This copy of GT.M will expire within one week", 0 },
+	{ "LOADEDBG", "Load error: END smaller than BEGIN.  No records loaded.", 0 },
+	{ "LABELONLY", "Routine !AD was compiled for label-only entry", 2 },
+	{ "MUREORGFAIL", "MUPIP REORG failed.  Failure code: !AD.", 2 },
+	{ "GVZPREVFAIL", "Global variable $ZPREVIOUS function failed.  Failure code: !AD.", 2 },
+	{ "MULTFORMPARM", "This formal parameter is multiply defined", 0 },
+	{ "QUITARGUSE", "Quit cannot take an argument in this context", 0 },
+	{ "NAMEEXPECTED", "A local variable name is expected in this context", 0 },
+	{ "FALLINTOFLST", "Fall-through to a label with formallist is not allowed", 0 },
+	{ "NOTEXTRINSIC", "Quit does not return to an extrinsic function: argument not allowed", 0 },
+	{ "GTMSECSHRREMSEMFAIL", "error removing semaphore errno = !UL", 1 },
+	{ "FMLLSTMISSING", "The formal list is absent from a label called with an actual list: !AD", 2 },
+	{ "ACTLSTTOOLONG", "More actual parameters than formal parameters: !AD", 2 },
+	{ "ACTOFFSET", "Actuallist not allowed with offset", 0 },
+	{ "MAXACTARG", "Maximum number of actual arguments exceeded", 0 },
+	{ "GTMSECSHRREMSEM", "[client pid !UL] Semaphore (!UL) removed", 2 },
+	{ "JNLTMQUAL2", "Time qualifier LOOKBACK_TIME=\"!AZ\" is later than SINCE_TIME=\"!AZ\"", 2 },
+	{ "GDINVALID", "Unrecognized Global Directory file format: !AD, expected label: !AD, found: !AD", 6 },
+	{ "ASSERT", "Assert failed in !AD line !UL for expression (!AD)", 5 },
+	{ "MUFILRNDWNSUC", "File !AD successfully rundown", 2 },
+	{ "LOADEDSZ", "Load error: END too small.  No records loaded.", 0 },
+	{ "QUITARGLST", "Quit cannot take a list of arguments", 0 },
+	{ "QUITARGREQD", "Quit from an extrinsic must have an argument", 0 },
+	{ "CRITRESET", "The critical section crash count for region !AD has been incremented", 2 },
+	{ "UNKNOWNFOREX", "Process halted by a forced exit from a source other than MUPIP", 0 },
+	{ "FSEXP", "File specification expected but not found", 0 },
+	{ "WILDCARD", "Wild cards are prohibited: !AD", 2 },
+	{ "DIRONLY", "Directories only are allowed in file specs: !AD", 2 },
+	{ "FILEPARSE", "Error parsing file specification: !AD", 2 },
+	{ "QUALEXP", "Qualifier expected but not found", 0 },
+	{ "BADQUAL", "Unrecognized qualifier: !AD", 2 },
+	{ "QUALVAL", "Qualifier value required but not found", 0 },
+	{ "ZROSYNTAX", "$ZROUTINES syntax error: !AD", 2 },
+	{ "COMPILEQUALS", "Error in compiler qualifiers: !AD", 2 },
+	{ "ZLNOOBJECT", "No object module was produced", 0 },
+	{ "ZLMODULE", "Object file name does not match module name: !AD", 2 },
+	{ "DBBLEVMX", "!AD Block level higher than maximum", 2 },
+	{ "DBBLEVMN", "!AD Block level less than zero", 2 },
+	{ "DBBSIZMN", "!AD Block too small", 2 },
+	{ "DBBSIZMX", "!AD Block larger than file block size", 2 },
+	{ "DBRSIZMN", "!AD Physical record too small", 2 },
+	{ "DBRSIZMX", "!AD Physical record too large", 2 },
+	{ "DBCMPNZRO", "!AD First record of block has nonzero compression count", 2 },
+	{ "DBSTARSIZ", "!AD Star record has wrong size", 2 },
+	{ "DBSTARCMP", "!AD Star record has nonzero compression count", 2 },
+	{ "DBCMPMX", "!AD Record compression count is too large", 2 },
+	{ "DBKEYMX", "!AD Key too long", 2 },
+	{ "DBKEYMN", "!AD Key too short", 2 },
+	{ "DBCMPBAD", "!AD Compression count not maximal", 2 },
+	{ "DBKEYORD", "!AD Keys out of order", 2 },
+	{ "DBPTRNOTPOS", "!AD Block pointer negative", 2 },
+	{ "DBPTRMX", "!AD Block pointer larger than file maximum", 2 },
+	{ "DBPTRMAP", "!AD Block pointer is a bit map block number", 2 },
+	{ "IFBADPARM", "External Interface Bad Parameter", 0 },
+	{ "IFNOTINIT", "External Interface must first call GTM$INIT or M routine", 0 },
+	{ "GTMSECSHRSOCKET", "!AD - !UL : Error initializing gtmsecshr socket", 3 },
+	{ "LOADBGSZ", "Load error: BEGIN too small.  No records loaded.", 0 },
+	{ "LOADFMT", "Load error: invalid format type.  Must be ZWR, GO, BINARY, or GOQ.", 0 },
+	{ "LOADFILERR", "Error with load file !AD", 2 },
+	{ "NOREGION", "REGION not found: !AD", 2 },
+	{ "PATLOAD", "Error loading pattern file !AD", 2 },
+	{ "EXTRACTFILERR", "Error with extract file !AD", 2 },
+	{ "FREEZE", "Region: !AD is already frozen", 2 },
+	{ "NOSELECT", "None of the selected variables exist -- halting", 0 },
+	{ "EXTRFAIL", "Extract failed for the global ^!AD. MUPIP INTEG should be run.", 2 },
+	{ "LDBINFMT", "Unrecognized header for load file", 0 },
+	{ "NOPREVLINK", "Journal file !AD has a null previous link", 2 },
+	{ "CCEDUMPON", "", 0 },
+	{ "CCEDMPQUALREQ", "A qualifier (DB,[NO]ON, or NOW) is required with the DUMP command", 0 },
+	{ "CCEDBDUMP", "Section !AD dumped", 2 },
+	{ "CCEDBNODUMP", "Section !AD not dumped; status = ", 2 },
+	{ "CCPMBX", "Error accessing Cluster Control Program Mailbox", 0 },
+	{ "REQRUNDOWN", "Error accessing database !AD.  Must be rundown on cluster node !AD.", 4 },
+	{ "CCPINTQUE", "Interlock failure accessing Cluster Control Program queue", 0 },
+	{ "CCPBADMSG", "Invalid message code received by Cluster Control Program", 0 },
+	{ "CNOTONSYS", "Command is not supported by this operating system", 0 },
+	{ "CCPNAME", "Error setting the Cluster Control Program process name", 0 },
+	{ "CCPNOTFND", "The Cluster Control Program is not responding", 0 },
+	{ "OPRCCPSTOP", "The Cluster Control Program has been halted by an operator stop request", 0 },
+	{ "SELECTSYNTAX", "Argument to !AD clause is not valid", 2 },
+	{ "LOADABORT", "Aborting load at record !UL", 1 },
+	{ "FNOTONSYS", "Function or special variable is not supported by this operating system", 0 },
+	{ "AMBISYIPARAM", "Parameter !AD is ambiguous to $ZGETSYI()", 2 },
+	{ "PREVJNLNOEOF", "A previous generation journal file !AD does not have valid EOF", 2 },
+	{ "LKSECINIT", "Error creating lock section for database !AD", 2 },
+	{ "MTDOSLAB", "Tape label is not in valid DOS-11 format", 0 },
+	{ "MTDOSFOR", "Use of DOS-11 labels requires stream format", 0 },
+	{ "MTINVLAB", "Invalid label type specified in magtape OPEN", 0 },
+	{ "TXTSRCMAT", "M object module and source file do not match", 0 },
+	{ "CCENOGROUP", "CCE does not have GROUP privilege.  Information may be incomplete.", 0 },
+	{ "BADDBVER", "Incorrect database version: !AD", 2 },
+	{ "LINKVERSION", "This image must be relinked with the current version of GT.M", 0 },
+	{ "TOTALBLKMAX", "Extension exceeds maximum total blocks.  Not extending.", 0 },
+	{ "LOADCTRLY", "User interrupt encountered during load.  Load halting.", 0 },
+	{ "CLSTCONFLICT", "Cluster conflict opening database file !AD; could not secure access.  Already open on node !AD.", 4 },
+	{ "SRCNAM", "in source module !AD", 2 },
+	{ "LCKGONE", "Lock removed: !AD", 2 },
+	{ "SUB2LONG", "Subscript invalid, too long", 0 },
+	{ "EXTRACTCTRLY", "User interrupt encountered during extract -- halting", 0 },
+	{ "CCENOWORLD", "CCE does not have WORLD privilege.  Information may be incomplete.", 0 },
+	{ "GVQUERYFAIL", "Global variable $QUERY function failed.  Failure code: !AD.", 2 },
+	{ "LCKSCANCELLED", "Error on remote node holding locks or zallocates.  All locks and zallocates cancelled.", 0 },
+	{ "INVNETFILNM", "Invalid file name following node designation in global directory", 0 },
+	{ "NETDBOPNERR", "Error while attempting to open database across net", 0 },
+	{ "BADSRVRNETMSG", "Invalid message received from GT.CM server", 0 },
+	{ "BADGTMNETMSG", "Invalid message sent to GT.CM server, type: 0x!XL", 1 },
+	{ "SERVERERR", "Severe error on server: !AD", 2 },
+	{ "NETFAIL", "Failure of Net operation", 0 },
+	{ "NETLCKFAIL", "Lock operation across Net failed", 0 },
+	{ "TTINVFILTER", "Invalid FILTER argument", 0 },
+	{ "MTANSILAB", "Tape label is not in valid ANSI format", 0 },
+	{ "MTANSIFOR", "Use of ANSI labels does not allow stream format", 0 },
+	{ "BADTRNPARAM", "!AD is not a legal parameter to $ZTRNLNM", 2 },
+	{ "DSEONLYBGMM", "!AD is supported only for BG/MM access methods", 2 },
+	{ "DSEINVLCLUSFN", "Specified function is invalid for clustered databases", 0 },
+	{ "RDFLTOOSHORT", "Length specified for fixed length read less than or equal to zero", 0 },
+	{ "TIMRBADVAL", "Bad value specified.  Timer not changed.", 0 },
+	{ "CCENOSYSLCK", "CCE does not have SYSLCK privilege.  Information may be incomplete.", 0 },
+	{ "CCPGRP", "Error with the Cluster Control Program's group number", 0 },
+	{ "UNSOLCNTERR", "An unsolicited error message has been received from the network", 0 },
+	{ "BACKUPCTRL", "Control Y or control C encountered during backup, aborting backup", 0 },
+	{ "NOCCPPID", "Cannot find CCP process id", 0 },
+	{ "CCPJNLOPNERR", "Error opening journal file.  Database not opened.", 0 },
+	{ "LCKSGONE", "Locks selected for deletion removed", 0 },
+	{ "ZLKIDBADARG", "The tvexpr must be FALSE if last ZLKID not found", 0 },
+	{ "DBFILOPERR", "Error doing database I/O to region !AD", 2 },
+	{ "CCERDERR", "Error reading from database file !AD", 2 },
+	{ "CCEDBCL", "Database file !AD is clustered", 2 },
+	{ "CCEDBNTCL", "Database file !AD is not clustered", 2 },
+	{ "CCEWRTERR", "Error writing to database file !AD", 2 },
+	{ "CCEBADFN", "Filename error", 0 },
+	{ "CCERDTIMOUT", "Read timeout, CCP has not responded to request", 0 },
+	{ "CCPSIGCONT", "CCP non fatal error at pc 0x!XJ.  Continuing operation.", 1 },
+	{ "CCEBGONLY", "Only BG databases can be clustered", 0 },
+	{ "CCENOCCP", "The cluster control program is not running on this node", 0 },
+	{ "CCECCPPID", "The cluster control program has PID 0x!XL", 1 },
+	{ "CCECLSTPRCS", "!UL processes are accessing clustered database files", 1 },
+	{ "ZSHOWBADFUNC", "An illegal function was specified for ZSHOW", 0 },
+	{ "NOTALLJNLEN", "Journaling disabled/off for !AD regions", 2 },
+	{ "UNUSEDMSG570", "ZSHOWGLOSMALL last used in V6.2-002A", 0 },
+	{ "NOLBRSRC", "Object libraries cannot have SRC paths associated", 0 },
+	{ "INVZSTEP", "Invalid ZSTEP qualifier", 0 },
+	{ "ZSTEPARG", "ZSTEP argument expected", 0 },
+	{ "INVSTRLEN", "Invalid string length !UL: max !UL", 2 },
+	{ "RECCNT", "Last LOAD record number: !UL", 1 },
+	{ "TEXT", "!AD", 2 },
+	{ "ZWRSPONE", "Subscript patterns in ZWRITE are atomic; Invalid delimiter", 0 },
+	{ "FILEDEL", "File !AD successfully deleted", 2 },
+	{ "JNLBADLABEL", "Journal file !AD has a bad GT.M Journal File Label. Expected !AD. Found !AD.", 6 },
+	{ "JNLREADEOF", "End of journal file encountered for !AD", 2 },
+	{ "JNLRECFMT", "Journal file record format error encountered", 0 },
+	{ "BLKTOODEEP", "Block level too deep", 0 },
+	{ "NESTFORMP", "Formal parameter list cannot be combined with nested line", 0 },
+	{ "BINHDR", "!AD!/!/Date: !AD!/Time: !AD!/Extract Region Characteristics!/!_Blk Size: !AD!/!_Rec Size: !AD!/!_Key Size: !AD!/!_Std Null Coll: !AD!/!AD!/", 16 },
+	{ "GOQPREC", "Numeric precision in key error:  Blk #!UL, Key #!UL.  Record not loaded.", 2 },
+	{ "LDGOQFMT", "Corrupt GOQ format header information!/", 0 },
+	{ "BEGINST", "Beginning LOAD at record number: !UL", 1 },
+	{ "INVMVXSZ", "Invalid block size for GOQ load format", 0 },
+	{ "JNLWRTNOWWRTR", "Journal writer attempting another write", 0 },
+	{ "GTMSECSHRSHMCONCPROC", "More than one process attached to Shared memory segment (!UL) not removed (!UL)", 2 },
+	{ "JNLINVALLOC", "Journal file allocation !UL is not within the valid range of !UL to !UL.  Journal file not created.", 3 },
+	{ "JNLINVEXT", "Journal file extension !UL is greater than the maximum allowed size of !UL.  Journal file not created.", 2 },
+	{ "MUPCLIERR", "Action not taken due to CLI errors", 0 },
+	{ "JNLTMQUAL4", "Time qualifier BEFORE_TIME=\"!AZ\" is less than AFTER_TIME=\"!AZ\"", 2 },
+	{ "GTMSECSHRREMSHM", "[client pid !UL] Shared memory segment (!UL) removed, nattch = !UL", 3 },
+	{ "GTMSECSHRREMFILE", "[client pid !UL] File (!AD) removed", 3 },
+	{ "MUNODBNAME", "A database name or the region qualifier must be specified", 0 },
+	{ "FILECREATE", "!AD file !AD created", 4 },
+	{ "FILENOTCREATE", "!AD file !AD not created", 4 },
+	{ "JNLPROCSTUCK", "Journal file writes blocked by process !UL", 1 },
+	{ "INVGLOBALQUAL", "Error in GLOBAL qualifier : Parse error at offset !UL in !AD", 3 },
+	{ "COLLARGLONG", "Collation sequence !UL does not contain routines for long strings", 1 },
+	{ "NOPINI", "PINI journal record expected but not found in journal file !AD at offset [0x!XL]", 3 },
+	{ "DBNOCRE", "Not all specified database files, or their associated journal files were created", 0 },
+	{ "JNLSPACELOW", "Journal file !AD nearing maximum size, !UL blocks to go", 3 },
+	{ "DBCOMMITCLNUP", "Pid !UL [0x!XL] handled error (code = !UL) during commit of !AZ transaction in database file !AD", 6 },
+	{ "BFRQUALREQ", "The [NO]BEFORE qualifier is required for this command", 0 },
+	{ "REQDVIEWPARM", "Required View parameter is missing", 0 },
+	{ "COLLFNMISSING", "Routine !AD is not found for collation sequence !UL", 3 },
+	{ "JNLACTINCMPLT", "Mupip journal action might be incomplete", 0 },
+	{ "NCTCOLLDIFF", "Source and destination for MERGE cannot have different numerical collation type", 0 },
+	{ "DLRCUNXEOR", "!_!AD!/!_!_!_unexpected end of record in $CHAR()/$ZCHAR() subscript", 2 },
+	{ "DLRCTOOBIG", "!_!AD!/!_!_!_!AD value cannot be greater than 255", 4 },
+	{ "WCERRNOTCHG", "Not all specified database files were changed", 0 },
+	{ "WCWRNNOTCHG", "Not all specified database files were changed", 0 },
+	{ "ZCWRONGDESC", "A string longer than 65535 is passed via 32-bit descriptor", 0 },
+	{ "MUTNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4 },
+	{ "GTMSECSHRUPDDBHDR", "[client pid !UL] database fileheader (!AD) updated !AD", 5 },
+	{ "LCKSTIMOUT", "DAL timed lock request expired", 0 },
+	{ "CTLMNEMAXLEN", "The maximum length of a control mnemonic has been exceeded", 0 },
+	{ "CTLMNEXPECTED", "Control mnemonic is expected in this context", 0 },
+	{ "USRIOINIT", "User-defined device driver not successfully initialized", 0 },
+	{ "CRITSEMFAIL", "Error with semaphores for region !AD", 2 },
+	{ "TERMWRITE", "Error writing to terminal", 0 },
+	{ "COLLTYPVERSION", "Collation type !UL, version !UL mismatch", 2 },
+	{ "LVNULLSUBS", "Null subscripts not allowed in local variables", 0 },
+	{ "GVREPLERR", "Error replicating global in region !AD", 2 },
+	{ "MTIOERR", "I/O Error with magnetic tape device !AD", 2 },
+	{ "RMWIDTHPOS", "File record size or width must be greater than zero", 0 },
+	{ "OFFSETINV", "Entry point !AD+!SL not valid", 3 },
+	{ "JOBPARTOOLONG", "Total parameter length is too long for job command", 0 },
+	{ "JOBARGMISSING", "Missing job argument !UL - can't skip non-trailing arguments to a JOB command in OpenVMS editions", 1 },
+	{ "RUNPARAMERR", "Error accessing parameter for run command", 0 },
+	{ "FNNAMENEG", "Depth argument to $NAME cannot be negative", 0 },
+	{ "ORDER2", "Invalid second argument to $ORDER.  Must be -1 or 1.", 0 },
+	{ "MUNOUPGRD", "Database not upgraded because of preceding errors", 0 },
+	{ "REORGCTRLY", "User interrupt encountered during database reorg -- halting", 0 },
+	{ "TSTRTPARM", "Error parsing TSTART qualifier", 0 },
+	{ "TRIGNAMENF", "Trigger name !AD not found with the current default global directory", 2 },
+	{ "TRIGZBREAKREM", "ZBREAK in trigger !AD removed due to trigger being reloaded", 2 },
+	{ "TLVLZERO", "Transaction is not in progress", 0 },
+	{ "TRESTNOT", "Cannot TRESTART, transaction is not restartable", 0 },
+	{ "TPLOCK", "Cannot release lock(s) held prior to current TSTART", 0 },
+	{ "TPQUIT", "Cannot QUIT out of a routine with an active transaction", 0 },
+	{ "TPFAIL", "Transaction COMMIT failed.  Failure code: !AD.", 2 },
+	{ "TPRETRY", "Restart transaction from non-concurrency DB failure", 0 },
+	{ "TPTOODEEP", "$TLEVEL cannot exceed 127", 0 },
+	{ "ZDEFACTIVE", "ZDEFER already active", 0 },
+	{ "ZDEFOFLOW", "ZDEFER Buffer overflow to node !AD", 2 },
+	{ "MUPRESTERR", "MUPIP restore aborted due to preceding errors", 0 },
+	{ "MUBCKNODIR", "MUPIP backup aborted due to error in output directory", 0 },
+	{ "TRANS2BIG", "Transaction exceeded available buffer space for region !AD", 2 },
+	{ "INVBITLEN", "Invalid size of the bit string", 0 },
+	{ "INVBITSTR", "Invalid bit string", 0 },
+	{ "INVBITPOS", "Invalid position in the bit string", 0 },
+	{ "PARNORMAL", "Parse successful", 0 },
+	{ "PARBUFSM", "Parse buffer too small", 0 },
+	{ "RMWIDTHTOOBIG", "File record size or width too big", 0 },
+	{ "PATTABNOTFND", "Pattern table !AD not found", 2 },
+	{ "OBJFILERR", "Error with object file I/O on file !AD", 2 },
+	{ "SRCFILERR", "Error with source file I/O on file !AD", 2 },
+	{ "NEGFRACPWR", "Invalid operation: fractional power of negative number", 0 },
+	{ "MTNOSKIP", "SKIP operation not supported on this device", 0 },
+	{ "CETOOMANY", "Too many compiler escape substitutions in a single statement", 0 },
+	{ "CEUSRERROR", "Compiler escape user routine returned error code !UL", 1 },
+	{ "CEBIGSKIP", "Compiler escape user routine skip count is too large", 0 },
+	{ "CETOOLONG", "Compiler escape substitution exceeds maximum line size", 0 },
+	{ "CENOINDIR", "Indirection type information not available for compiler escape feature", 0 },
+	{ "COLLATIONUNDEF", "Collation type !UL is not defined", 1 },
+	{ "UNUSEDMSG670", "RBWRNNOTCHG last used in V6.2-002A", 0 },
+	{ "GTMSECSHRSRVF", "!AD - !UL : Attempt to service request failed (retry = !UL)", 4 },
+	{ "FREEZECTRL", "Control Y or control C encountered during attempt to freeze the database. Aborting freeze.", 0 },
+	{ "JNLFLUSH", "Error flushing journal buffers to journal file !AD", 2 },
+	{ "CCPSIGDMP", "CCP non fatal dump, continuing operation. Report to your GT.M Support Channel.", 0 },
+	{ "NOPRINCIO", "Unable to write to principal device", 0 },
+	{ "INVPORTSPEC", "Invalid port specification", 0 },
+	{ "INVADDRSPEC", "Invalid IP address specification", 0 },
+	{ "MUREENCRYPTEND", "Database !AD : MUPIP REORG ENCRYPT finished by pid !UL at transaction number [0x!16 at XQ]", 4 },
+	{ "CRYPTJNLMISMATCH", "Encryption settings mismatch between journal file !AD and corresponding database file !AD", 4 },
+	{ "SOCKWAIT", "Error waiting for socket connection", 0 },
+	{ "SOCKACPT", "Error accepting socket connection", 0 },
+	{ "SOCKINIT", "Error initializing socket: (errno == !UL) !AD", 3 },
+	{ "OPENCONN", "Error opening socket connection", 0 },
+	{ "DEVNOTIMP", "!AD device not implemented on in this environment", 2 },
+	{ "JNLEXTR", "Error writing journal extract file: !AD", 2 },
+	{ "DBREMOTE", "Database region !AD is remote; perform maintenance on the server node", 2 },
+	{ "JNLREQUIRED", "Journaling is required for clustered operation with file !AD", 2 },
+	{ "TPMIXUP", "!AZ transaction cannot be started within !AZ transaction", 2 },
+	{ "HTOFLOW", "Hash table overflow: Failed to allocate !UL elements", 1 },
+	{ "RMNOBIGRECORD", "File record size requires BIGRECORD parameter", 0 },
+	{ "DBBMSIZE", "!AD Bit map has incorrect size", 2 },
+	{ "DBBMBARE", "!AD Bit map does not protect itself", 2 },
+	{ "DBBMINV", "!AD Bit map contains an invalid pattern", 2 },
+	{ "DBBMMSTR", "!AD Bit map does not match master map", 2 },
+	{ "DBROOTBURN", "!AD Root block has data level", 2 },
+	{ "REPLSTATEERR", "Replication state cannot be changed to the specified value for database file !AD", 2 },
+	{ "VMSMEMORY", "Central memory exhausted during request for !UL bytes from 0x!XJ - check page file quota and page file size", 2 },
+	{ "DBDIRTSUBSC", "!AD Directory tree block contains non name-level entries", 2 },
+	{ "TIMEROVFL", "Timer overflow; interval probably too large", 0 },
+	{ "GTMASSERT", "!AD - Assert failed !AD line !UL", 5 },
+	{ "DBFHEADERR4", "Database file !AD: control problem: !AD was 0x!XL expecting 0x!XL", 6 },
+	{ "DBADDRANGE", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!XJ was outside !AD range 0x!XJ to 0x!XJ", 9 },
+	{ "DBQUELINK", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control !AD queue problem: was 0x!XJ, expecting 0x!XJ", 8 },
+	{ "DBCRERR", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!XL, expecting 0x!XL -- called from module !AD at line !UL", 11 },
+	{ "MUSTANDALONE", "Could not get exclusive access to !AD", 2 },
+	{ "MUNOACTION", "MUPIP unable to perform requested action", 0 },
+	{ "RMBIGSHARE", "File with BIGRECORD specified may only be shared if READONLY", 0 },
+	{ "TPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; pvtmods: !UL, blkmods: !UL, blklvl: !UL, type: !UL, readset: !UL, writeset: !UL, local_tn: 0x!16 at XQ, zpos: !AD", 16 },
+	{ "SOCKWRITE", "Write to a socket failed", 0 },
+	{ "DBCNTRLERR", "Database file !AD: control error suspected but not found", 2 },
+	{ "NOTERMENV", "Environment variable TERM not set.  Assuming \"unknown.\"", 0 },
+	{ "NOTERMENTRY", "TERM = \"!AD\" has no \"terminfo\" entry.  Possible terminal handling problems.", 2 },
+	{ "NOTERMINFODB", "No \"terminfo\" database.  Terminal handling problems likely.", 0 },
+	{ "INVACCMETHOD", "Invalid access method", 0 },
+	{ "JNLOPNERR", "Error opening journal file !AD!/  for database !AD", 4 },
+	{ "JNLRECTYPE", "Journal record type does not match expected type", 0 },
+	{ "JNLTRANSGTR", "Transaction number in journal is greater than in database", 0 },
+	{ "JNLTRANSLSS", "Transaction number in journal is less than in database", 0 },
+	{ "JNLWRERR", "Error writing journal file !AD.  Unable to update header.", 2 },
+	{ "FILEIDMATCH", "Saved File ID does not match the current ID - the file appears to have been moved", 0 },
+	{ "EXTSRCLIN", "!_!AD!/!_!AD", 4 },
+	{ "EXTSRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4 },
+	{ "BIGNOACL", "Existing file found when BIGRECORD specified with UDF format but no GT.M ACE, perhaps lost during COPY", 0 },
+	{ "ERRCALL", "Error called from !AD line !UL", 3 },
+	{ "ZCCTENV", "Environmental variable for external package !AD not set", 2 },
+	{ "ZCCTOPN", "Unable to open external call table: !AD", 2 },
+	{ "ZCCTNULLF", "External call table contains no records: !AD", 2 },
+	{ "ZCUNAVAIL", "Package, !AD unavailable", 2 },
+	{ "ZCENTNAME", "No entry name found in external call table", 0 },
+	{ "ZCCOLON", "Colon expected but not found", 0 },
+	{ "ZCRTNTYP", "Unknown return type", 0 },
+	{ "ZCRCALLNAME", "Routine name expected but not found", 0 },
+	{ "ZCRPARMNAME", "Parameter name expected but not found", 0 },
+	{ "ZCUNTYPE", "Unknown type encountered", 0 },
+	{ "ZCMLTSTATUS", "Multiple entries of xc_status in a single entry in external call table", 0 },
+	{ "ZCSTATUSRET", "External call returned error status", 0 },
+	{ "ZCMAXPARAM", "Exceeded maximum number of external call parameters", 0 },
+	{ "ZCCSQRBR", "Closing Square bracket expected", 0 },
+	{ "ZCPREALLNUMEX", "Pre-allocation value should be a decimal number", 0 },
+	{ "ZCPREALLVALPAR", "Pre-allocation allowed only for variables passed by reference", 0 },
+	{ "VERMISMATCH", "Attempt to access !AD with version !AD, while already using !AD", 6 },
+	{ "JNLCNTRL", "Journal control unsynchronized for !AD.", 2 },
+	{ "TRIGNAMBAD", "Trigger initialization failed. Error while processing ^#t(\"!AD\",!AD)", 4 },
+	{ "BUFRDTIMEOUT", "Pid [0x!XL] timed out waiting for buffered read of blk [0x!XL] into cr [0x!XL] by process [0x!XL] to complete in database file !AD", 6 },
+	{ "INVALIDRIP", "Invalid read-in-progress field in Cache Record.  Resetting and continuing.  Region: !AD.", 2 },
+	{ "BLKSIZ512", "Block size !UL rounds to !UL", 2 },
+	{ "MUTEXERR", "Mutual Exclusion subsystem failure", 0 },
+	{ "JNLVSIZE", "Journal File !AD has incorrect virtual_filesize !UL.  Allocation : !UL, Extension : !UL, Filesize : !UL, File system block size : !UL", 7 },
+	{ "MUTEXLCKALERT", "Mutual Exclusion subsystem ALERT - lock attempt threshold crossed for region !AD.  Process !UL is in crit cycle !UL.", 4 },
+	{ "MUTEXFRCDTERM", "Mutual Exclusion subsystem detected forced termination of process !UL.  Crit salvaged from region !AD.", 3 },
+	{ "GTMSECSHR", "!UL : Error during gtmsecshr operation", 1 },
+	{ "GTMSECSHRSRVFID", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL, mesg data: !UL", 6 },
+	{ "GTMSECSHRSRVFIL", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL!/file: !AD", 7 },
+	{ "FREEBLKSLOW", "Only !UL free blocks left out of !UL total blocks for !AD", 4 },
+	{ "PROTNOTSUP", "Protocol !AD not supported", 2 },
+	{ "DELIMSIZNA", "Delimiter size is not appropriate", 0 },
+	{ "INVCTLMNE", "Invalid control mnemonics", 0 },
+	{ "SOCKLISTEN", "Error listening on a socket", 0 },
+	{ "LQLENGTHNA", "Listening queue length !UL not appropriate.  Must be between 1 and 5.", 1 },
+	{ "ADDRTOOLONG", "Socket address !AD of length !UL is longer than the maximum permissible length !UL", 4 },
+	{ "GTMSECSHRGETSEMFAIL", "error getting semaphore errno = !UL", 1 },
+	{ "CPBEYALLOC", "Attempt to copy beyond the allocated buffer", 0 },
+	{ "DBRDONLY", "Database file !AD read only", 2 },
+	{ "DUPTN", "Duplicate transaction found [TN = 0x!16 at XQ] at offset 0x!XL in journal file !AD", 4 },
+	{ "TRESTLOC", "Transaction start: !AD, Transaction failure: !AD", 4 },
+	{ "REPLPOOLINST", "Error with replication pool (id = !UL) for instance file !AD", 3 },
+	{ "ZCVECTORINDX", "Invalid Vector Index !UL", 1 },
+	{ "REPLNOTON", "Replication is not on for journal file !AD, rollback will not continue", 2 },
+	{ "JNLMOVED", "Journal file appears to have been moved.  Journaling activity will not be done.", 0 },
+	{ "EXTRFMT", "Extract error: invalid format type.  Must be ZWR, GO, or BINARY.", 0 },
+	{ "CALLERID", "Routine !AD called from 0x!XJ", 3 },
+	{ "KRNLKILL", "Process was terminated by SIGDANGER signal from the system -- System swap space is too low -- Report to System Administrator", 0 },
+	{ "MEMORYRECURSIVE", "Memory Subsystem called recursively", 0 },
+	{ "FREEZEID", "Cache !AD on !AD by freeze id 0x!XL with match 0x!XL from 0x!XJ", 7 },
+	{ "BLKWRITERR", "Unable to queue disk write for block 0x!XL.  Will keep trying.", 1 },
+	{ "STOPTIMEOUT", "Waited too long for stopped process to release.  Region: !AD.", 2 },
+	{ "UNUSEDMSG777", "TRIGMODINTP last used in V6.2-000", 0 },
+	{ "BCKUPBUFLUSH", "Unable to flush buffer for online backup", 0 },
+	{ "NOFORKCORE", "Unable to fork off process to create core.  Core creation postponed.", 0 },
+	{ "JNLREAD", "Error reading from journal file !AD at offset [0x!XL]", 3 },
+	{ "JNLMINALIGN", "Journal Record Alignment !UL is less than the minimum value of !UL", 2 },
+	{ "JOBSTARTCMDFAIL", "JOB command STARTUP script invocation failed", 0 },
+	{ "JNLPOOLSETUP", "Journal Pool setup error", 0 },
+	{ "JNLSTATEOFF", "ROLLBACK or RECOVER BACKWARD cannot proceed as database file !AD does not have journaling ENABLED and ON", 2 },
+	{ "RECVPOOLSETUP", "Receive Pool setup error", 0 },
+	{ "REPLCOMM", "Replication subsystem communication failure", 0 },
+	{ "NOREPLCTDREG", "Replication subsystem found no region replicated for !AD !AZ", 3 },
+	{ "REPLINFO", "!AD", 2 },
+	{ "REPLWARN", "!AD", 2 },
+	{ "REPLERR", "!AD", 2 },
+	{ "JNLNMBKNOTPRCD", "Journal file !AD does not match the current journal file !AD of database file !AD", 6 },
+	{ "REPLFILIOERR", "Replication subsystem file I/O error !AD", 2 },
+	{ "REPLBRKNTRANS", "Replication subsystem found seqno !16 at XQ broken or missing in the journal files", 1 },
+	{ "TTWIDTHTOOBIG", "Terminal WIDTH exceeds the maximum allowed limit", 0 },
+	{ "REPLLOGOPN", "Replication subsystem could not open log file !AD: !AD.  Logging done to !AD.", 6 },
+	{ "REPLFILTER", "Replication filter subsystem failure", 0 },
+	{ "GBLMODFAIL", "Global variable Conflict Test failed.  Failure code: !AD.", 2 },
+	{ "TTLENGTHTOOBIG", "Terminal LENGTH exceeds the maximum allowed limit", 0 },
+	{ "TPTIMEOUT", "Transaction timeout", 0 },
+	{ "DEFEREVENT", "Transfer table reset for event type !UL when set for type !UL", 2 },
+	{ "JNLFILNOTCHG", "Journal file not changed", 0 },
+	{ "EVENTLOGERR", "Error in event logging subsystem", 0 },
+	{ "UPDATEFILEOPEN", "Update file open error", 0 },
+	{ "JNLBADRECFMT", "Journal File Record Format Error encountered for file !AD at disk address 0x!XL", 3 },
+	{ "NULLCOLLDIFF", "Null collation order must be the same for all regions", 0 },
+	{ "MUKILLIP", "Kill in progress indicator is set for file !AD - this !AD operation is likely to result in incorrectly marked busy errors", 4 },
+	{ "JNLRDONLY", "Journal file !AD read only", 2 },
+	{ "ANCOMPTINC", "Deviceparameter !AD is not compatible with any other deviceparameters in the !AD command", 4 },
+	{ "ABNCOMPTINC", "Deviceparameter !AD and deviceparameter !AD are not compatible in the !AD command", 6 },
+	{ "RECLOAD", "Error loading record number: !@UQ!/", 1 },
+	{ "SOCKNOTFND", "Socket !AD not found", 2 },
+	{ "CURRSOCKOFR", "Current socket of index !UL is out of range.  There are only !UL sockets.", 2 },
+	{ "SOCKETEXIST", "Socket !AD already exists", 2 },
+	{ "LISTENPASSBND", "Controlmnemonic LISTEN can be applied to PASSIVE socket in the state BOUND only", 0 },
+	{ "DBCLNUPINFO", "Database file !AD !/!AD", 4 },
+	{ "MUNODWNGRD", "Database not downgraded because of preceding errors", 0 },
+	{ "REPLTRANS2BIG", "Transaction !16 at XQ of size !UL (pre-filter size !UL) too large to be accommodated in the !AD pool", 5 },
+	{ "RDFLTOOLONG", "Length specified for fixed length read exceeds the maximum string size", 0 },
+	{ "MUNOFINISH", "MUPIP unable to finish all requested actions", 0 },
+	{ "DBFILEXT", "Database file !AD extended from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5 },
+	{ "JNLFSYNCERR", "Error synchronizing journal file !AD to disk", 2 },
+	{ "FSYNCTIMOUT", "Timed out on fsync for journal file !AD", 2 },
+	{ "ZCPREALLVALINV", "The pre-allocation value exceeded the maximum string length", 0 },
+	{ "NEWJNLFILECREAT", "Journal file !AD nearing maximum size.  New journal file created.", 2 },
+	{ "DSKSPACEFLOW", "Disk Space for file !AD nearing maximum size.  !UL blocks available.", 3 },
+	{ "GVINCRFAIL", "Global variable $INCR failed.  Failure code: !AD.", 2 },
+	{ "ISOLATIONSTSCHN", "Error changing NOISOLATION status for global ^!AD within a TP transaction from !UL to !UL", 4 },
+	{ "REPLGBL2LONG", "Global names longer than 8 characters cannot be handled at the secondary", 0 },
+	{ "TRACEON", "Missing global name (with optional subscripts) for recording M-tracing information", 0 },
+	{ "TOOMANYCLIENTS", "GT.CM is serving the maximum number of clients.  Try again later.", 0 },
+	{ "NOEXCLUDE", "None of the excluded variables exist", 0 },
+	{ "GVINCRISOLATION", "$INCREMENT cannot be performed on global ^!AD as it has NOISOLATION turned ON", 2 },
+	{ "EXCLUDEREORG", "Global: !AD is present in the EXCLUDE option.  REORG will skip the global.", 2 },
+	{ "REORGINC", "Reorg was incomplete.  Not all globals were reorged.", 0 },
+	{ "ASC2EBCDICCONV", "ASCII/EBCDIC conversion failed when calling !AD", 2 },
+	{ "GTMSECSHRSTART", "!AD - !UL : gtmsecshr failed to startup", 3 },
+	{ "DBVERPERFWARN1", "Performance warning: Database !AD is running in compatibility mode which degrades performance. Run MUPIP REORG UPGRADE for best overall performance", 2 },
+	{ "FILEIDGBLSEC", "File ID in global section does not match with the database file !AD", 2 },
+	{ "GBLSECNOTGDS", "Global Section !AD is not a GT.M global section", 2 },
+	{ "BADGBLSECVER", "Global Section !AD does not match the current database version", 2 },
+	{ "RECSIZENOTEVEN", "RECORDSIZE [!UL] needs to be a multiple of 2 if ICHSET or OCHSET is UTF-16, UTF-16LE or UTF-16BE", 1 },
+	{ "BUFFLUFAILED", "Error flushing buffers from !AD for database file !AD", 4 },
+	{ "MUQUALINCOMP", "Incompatible qualifiers - FILE and REGION", 0 },
+	{ "DISTPATHMAX", "$gtm_dist path is greater than maximum (!UL)", 1 },
+	{ "FILEOPENFAIL", "Failed to open file !AD", 2 },
+	{ "IMAGENAME", "The executing module name should be !AD instead of !AD", 4 },
+	{ "GTMSECSHRPERM", "The gtmsecshr module in $gtm_dist does not have the correct permission and uid", 0 },
+	{ "GTMDISTUNDEF", "Environment variable $gtm_dist is not defined", 0 },
+	{ "SYSCALL", "Error received from system call !AD -- called from module !AD at line !UL", 5 },
+	{ "MAXGTMPATH", "The executing module path is greater than the maximum !UL", 1 },
+	{ "TROLLBK2DEEP", "Intended rollback(!SL) deeper than the current $tlevel(!UL)", 2 },
+	{ "INVROLLBKLVL", "Rollback level (!UL) not less than current $TLEVEL(!UL).  Can't rollback.", 2 },
+	{ "OLDBINEXTRACT", "Loading an older version(!UL) of binary extract. !/Database or global collation changes since the extract, if any, will result in database corruption.", 1 },
+	{ "ACOMPTBINC", "Deviceparameter !AD is compatible with only !AD in the command !AD", 6 },
+	{ "NOTREPLICATED", "Transaction number !16 at XQ generated by the !AD process (PID = !UL) is not replicated to the secondary", 4 },
+	{ "DBPREMATEOF", "Premature end of file with database file !AD", 2 },
+	{ "KILLBYSIG", "!AD process !UL has been killed by a signal !UL", 4 },
+	{ "KILLBYSIGUINFO", "!AD process !UL has been killed by a signal !UL from process !UL with userid number !UL", 6 },
+	{ "KILLBYSIGSINFO1", "!AD process !UL has been killed by a signal !UL at address 0x!XJ (vaddr 0x!XJ)", 6 },
+	{ "KILLBYSIGSINFO2", "!AD process !UL has been killed by a signal !UL at address 0x!XJ", 5 },
+	{ "SIGILLOPC", "Signal was caused by an illegal opcode", 0 },
+	{ "SIGILLOPN", "Signal was caused by an illegal operand", 0 },
+	{ "SIGILLADR", "Signal was caused by illegal addressing mode", 0 },
+	{ "SIGILLTRP", "Signal was caused by an illegal trap", 0 },
+	{ "SIGPRVOPC", "Signal was caused by a privileged opcode", 0 },
+	{ "SIGPRVREG", "Signal was caused by a privileged register", 0 },
+	{ "SIGCOPROC", "Signal was caused by a coprocessor error", 0 },
+	{ "SIGBADSTK", "Signal was caused by an internal stack error", 0 },
+	{ "SIGADRALN", "Signal was caused by invalid address alignment", 0 },
+	{ "SIGADRERR", "Signal was caused by a non-existent physical address", 0 },
+	{ "SIGOBJERR", "Signal was caused by an object specific hardware error", 0 },
+	{ "SIGINTDIV", "Signal was caused by an integer divided by zero", 0 },
+	{ "SIGINTOVF", "Signal was caused by an integer overflow", 0 },
+	{ "SIGFLTDIV", "Signal was caused by a floating point divide by zero", 0 },
+	{ "SIGFLTOVF", "Signal was caused by a floating point overflow", 0 },
+	{ "SIGFLTUND", "Signal was caused by a floating point underflow", 0 },
+	{ "SIGFLTRES", "Signal was caused by a floating point inexact result", 0 },
+	{ "SIGFLTINV", "Signal was caused by an invalid floating point operation", 0 },
+	{ "SIGMAPERR", "Signal was caused by an address not mapped to an object", 0 },
+	{ "SIGACCERR", "Signal was caused by invalid permissions for mapped object", 0 },
+	{ "TRNLOGFAIL", "Translation of (VMS) logical name or (UNIX) environment variable !AD failed", 2 },
+	{ "INVDBGLVL", "Invalid non-numeric debug level specified !AD in (VMS) logical name or (UNIX) environment variable !AD", 4 },
+	{ "DBMAXNRSUBS", "!AD Maximum number of subscripts exceeded", 2 },
+	{ "GTMSECSHRSCKSEL", "gtmsecshr select on socket failed", 0 },
+	{ "GTMSECSHRTMOUT", "gtmsecshr exiting due to idle timeout", 0 },
+	{ "GTMSECSHRRECVF", "gtmsecshr receive on server socket failed", 0 },
+	{ "GTMSECSHRSENDF", "gtmsecshr send on server socket failed", 0 },
+	{ "SIZENOTVALID8", "Size (in bytes) must be either 1, 2, 4, or 8", 0 },
+	{ "GTMSECSHROPCMP", "gtmsecshr operation may be compromised", 0 },
+	{ "GTMSECSHRSUIDF", "gtmsecshr server setuid to root failed", 0 },
+	{ "GTMSECSHRSGIDF", "gtmsecshr server setgid to root failed", 0 },
+	{ "GTMSECSHRSSIDF", "gtmsecshr server setsid failed", 0 },
+	{ "GTMSECSHRFORKF", "gtmsecshr server unable to fork off a child process", 0 },
+	{ "DBFSYNCERR", "Error synchronizing database file !AD to disk", 2 },
+	{ "SECONDAHEAD", "Secondary ahead of primary. !/ Secondary database possibly updated by process other than the update process.  First perform rollback.", 0 },
+	{ "SCNDDBNOUPD", "Database Updates not allowed on the secondary", 0 },
+	{ "MUINFOUINT4", "!AD : !UL [0x!XL]", 4 },
+	{ "NLMISMATCHCALC", "Location of !AD expected at 0x!XL, but found at 0x!XL", 4 },
+	{ "RELINKCTLFULL", "Relinkctl file for directory !AD is full (maximum entries !UL)", 3 },
+	{ "MUPIPSET2BIG", "!UL too large, maximum !AD allowed is !UL", 4 },
+	{ "DBBADNSUB", "!AD Bad numeric subscript", 2 },
+	{ "DBBADKYNM", "!AD Bad key name", 2 },
+	{ "DBBADPNTR", "!AD Bad pointer value in directory", 2 },
+	{ "DBBNPNTR", "!AD Bit map block number as pointer", 2 },
+	{ "DBINCLVL", "!AD Block at incorrect level", 2 },
+	{ "DBBFSTAT", "!AD Block busy/free status unknown (local bitmap corrupted)", 2 },
+	{ "DBBDBALLOC", "!AD Block doubly allocated", 2 },
+	{ "DBMRKFREE", "!AD Block incorrectly marked free", 2 },
+	{ "DBMRKBUSY", "!AD Block incorrectly marked busy", 2 },
+	{ "DBBSIZZRO", "!AD Block size equals zero", 2 },
+	{ "DBSZGT64K", "!AD Block size is greater than 64K", 2 },
+	{ "DBNOTMLTP", "!AD Block size not a multiple of 512 bytes", 2 },
+	{ "DBTNTOOLG", "!AD Block transaction number too large", 2 },
+	{ "DBBPLMLT512", "!AD Blocks per local map is less than 512", 2 },
+	{ "DBBPLMGT2K", "!AD Blocks per local map is greater than 2K", 2 },
+	{ "MUINFOUINT8", "!AD : !@ZQ [0x!16 at XQ]", 4 },
+	{ "DBBPLNOT512", "!AD Blocks per local map is not 512", 2 },
+	{ "MUINFOSTR", "!AD : !AD", 4 },
+	{ "DBUNDACCMT", "!AD Cannot determine access method; trying with BG", 2 },
+	{ "DBTNNEQ", "!AD Current tn and early tn are not equal", 2 },
+	{ "MUPGRDSUCC", "Database file !AD successfully !AD to !AD", 6 },
+	{ "DBDSRDFMTCHNG", "Database file !AD, Desired DB Format set to !AD by !AD with pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 9 },
+	{ "DBFGTBC", "!AD File size larger than block count would indicate", 2 },
+	{ "DBFSTBC", "!AD File size smaller than block count would indicate", 2 },
+	{ "DBFSTHEAD", "!AD File smaller than database header", 2 },
+	{ "DBCREINCOMP", "!AD Header indicates database file creation was interrupted before completion", 2 },
+	{ "DBFLCORRP", "!AD Header indicates database file is corrupt", 2 },
+	{ "DBHEADINV", "!AD Header size not valid for database", 2 },
+	{ "DBINCRVER", "!AD Incorrect version of GT.M database", 2 },
+	{ "DBINVGBL", "!AD Invalid mixing of global names", 2 },
+	{ "DBKEYGTIND", "!AD Key greater than index key", 2 },
+	{ "DBGTDBMAX", "!AD Key larger than database maximum", 2 },
+	{ "DBKGTALLW", "!AD Key larger than maximum allowed length", 2 },
+	{ "DBLTSIBL", "!AD Keys less than sibling's index key", 2 },
+	{ "DBLRCINVSZ", "!AD Last record of block has invalid size", 2 },
+	{ "MUREUPDWNGRDEND", "Region !AD : MUPIP REORG UPGRADE/DOWNGRADE finished by pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 5 },
+	{ "DBLOCMBINC", "!AD Local bit map incorrect", 2 },
+	{ "DBLVLINC", "!AD Local bitmap block level incorrect", 2 },
+	{ "DBMBSIZMX", "!AD Map block too large", 2 },
+	{ "DBMBSIZMN", "!AD Map block too small", 2 },
+	{ "DBMBTNSIZMX", "!AD Map block transaction number too large", 2 },
+	{ "DBMBMINCFRE", "!AD Master bit map incorrectly asserts this local map has free space", 2 },
+	{ "DBMBPINCFL", "!AD Master bit map incorrectly marks this local map full", 2 },
+	{ "DBMBPFLDLBM", "!AD Master bit map shows this map full, agreeing with disk local map", 2 },
+	{ "DBMBPFLINT", "!AD Master bit map shows this map full, agreeing with MUPIP INTEG", 2 },
+	{ "DBMBPFLDIS", "!AD Master bit map shows this map full, in disagreement with both disk and INTEG result", 2 },
+	{ "DBMBPFRDLBM", "!AD Master bit map shows this map has space, agreeing with disk local map", 2 },
+	{ "DBMBPFRINT", "!AD Master bit map shows this map has space, agreeing with MUPIP INTEG", 2 },
+	{ "DBMAXKEYEXC", "!AD Maximum key size for database exceeds design maximum", 2 },
+	{ "DBMXRSEXCMIN", "!AD Maximum record size for database is less than the design minimum", 2 },
+	{ "MUPIPSET2SML", "!UL too small, minimum !AD allowed is !UL", 4 },
+	{ "DBREADBM", "!AD Read error on bitmap", 2 },
+	{ "DBCOMPTOOLRG", "!AD Record has too large compression count", 2 },
+	{ "DBVERPERFWARN2", "Peformance warning: Database !AD is not fully upgraded. Run MUPIP REORG UPGRADE for best overall performance", 2 },
+	{ "DBRBNTOOLRG", "!AD Root block number greater than last block number in file", 2 },
+	{ "DBRBNLBMN", "!AD Root block number is a local bit map number", 2 },
+	{ "DBRBNNEG", "!AD Root block number negative", 2 },
+	{ "DBRLEVTOOHI", "!AD Root level higher than maximum", 2 },
+	{ "DBRLEVLTONE", "!AD Root level less than one", 2 },
+	{ "DBSVBNMIN", "!AD Start VBN smaller than possible", 2 },
+	{ "DBTTLBLK0", "!AD Total blocks equal zero", 2 },
+	{ "DBNOTDB", "!AD File does not have a valid GDS file header", 2 },
+	{ "DBTOTBLK", "Total blocks should be 0x!XL, is 0x!XL", 2 },
+	{ "DBTN", "Block TN is 0x!16 at XQ", 1 },
+	{ "DBNOREGION", "None of the database regions accessible", 0 },
+	{ "DBTNRESETINC", "WARNING: tn_reset for database is incomplete due to integrity errors", 0 },
+	{ "DBTNLTCTN", "Transaction numbers greater than the current transaction were found", 0 },
+	{ "DBTNRESET", "Cannot reset transaction number for this region", 0 },
+	{ "MUTEXRSRCCLNUP", "Mutex subsystem leftover resource !AD removed", 2 },
+	{ "SEMWT2LONG", "Process !UL waited !UL second(s) for the !AD lock for region !AD, lock held by pid !UL", 7 },
+	{ "REPLINSTOPEN", "Error opening replication instance file !AD", 2 },
+	{ "REPLINSTCLOSE", "Error closing replication instance file !AD", 2 },
+	{ "JOBSETUP", "Error receiving !AD from parent process", 2 },
+	{ "DBCRERR8", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!16 at XQ, expecting 0x!16 at XQ -- called from module !AD at line !UL", 11 },
+	{ "NUMPROCESSORS", "Could not determine number of processors", 0 },
+	{ "DBADDRANGE8", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!16 at XQ was outside !AD range 0x!16 at XQ to 0x!16 at XQ", 9 },
+	{ "RNDWNSEMFAIL", "Attempting to acquire gds_rundown semaphore when it is already owned", 0 },
+	{ "GTMSECSHRSHUTDN", "gtmsecshr process has received a shutdown request -- shutting down", 0 },
+	{ "NOSPACECRE", "Not enough space to create database file !AD.  !@ZQ blocks are needed, only !@ZQ available.", 4 },
+	{ "LOWSPACECRE", "Disk space for database file !AD is not enough for !UL future extensions.  !@ZQ !UL-byte blocks are needed, only !@ZQ available.", 6 },
+	{ "WAITDSKSPACE", "Process 0x!XL will wait !UL seconds for necessary disk space to become available for !AD ", 4 },
+	{ "OUTOFSPACE", "Database file !AD ran out of disk space.  Detected by process !UL.  !/Exit without clearing shared memory due to the disk space constraints.  !/Make space and then perform mupip rundown to ensure database integrity.", 3 },
+	{ "JNLPVTINFO", "Pid 0x!XL!/     cycle 0x!XL fd_mismatch 0x!XL     channel 0x!XL sync_io 0x!XL!/ pini_addr 0x!XL  qio_active 0x!XL old_channel 0x!XL", 8 },
+	{ "NOSPACEEXT", "Not enough disk space for file !AD to extend.  !UL blocks needed.  !UL blocks available.", 4 },
+	{ "WCBLOCKED", "Field !AD is set by process !UL at transaction number 0x!16 at XQ for database file !AD", 6 },
+	{ "REPLJNLCLOSED", "Replication in jeopardy as journaling got closed for database file !AD. Current region seqno is !@ZQ [0x!16 at XQ] and system seqno is !@ZQ [0x!16 at XQ]", 6 },
+	{ "RENAMEFAIL", "Rename of file !AD to !AD failed", 4 },
+	{ "FILERENAME", "File !AD is renamed to !AD", 4 },
+	{ "JNLBUFINFO", "Pid 0x!XL!/     dsk 0x!XL     free 0x!XL  bytcnt 0x!XL io_in_prog 0x!XL fsync_in_prog 0x!XL!/ dskaddr 0x!XL freeaddr 0x!XL  qiocnt 0x!XL now_writer 0x!XL     fsync_pid 0x!XL!/filesize 0x!XL    cycle 0x!XL  errcnt 0x!XL    wrtsize 0x!XL fsync_dskaddr 0x!XL", 16 },
+	{ "SDSEEKERR", "Sequential device seek error - !AD", 2 },
+	{ "LOCALSOCKREQ", "LOCAL socket required", 0 },
+	{ "TPNOTACID", "!AD at !AD in a final TP retry violates ACID properties of a TRANSACTION; indefinite RESTARTs may occur !AD !AD", 8 },
+	{ "JNLSETDATA2LONG", "SET journal record has data of length !UL.  Target system cannot handle data more than !UL bytes.", 2 },
+	{ "JNLNEWREC", "Target system cannot recognize journal record of type !UL, last recognized type is !UL", 2 },
+	{ "REPLFTOKSEM", "Error with replication semaphores for instance file !AD", 2 },
+	{ "SOCKNOTPASSED", "Socket message contained no passed socket descriptors", 0 },
+	{ "EXTRIOERR", "Error writing extract file !AD", 2 },
+	{ "EXTRCLOSEERR", "Error closing extract file !AD", 2 },
+	{ "CONNSOCKREQ", "Socket not connected", 0 },
+	{ "REPLEXITERR", "Replication process encountered an error while exiting", 0 },
+	{ "MUDESTROYSUC", "Global section (!AD) corresponding to file !AD successfully destroyed", 4 },
+	{ "DBRNDWN", "Error during global database rundown for region !AD.!/Notify those responsible for proper database operation.", 2 },
+	{ "MUDESTROYFAIL", "Global section (!AD) corresponding to file !AD failed to be destroyed", 4 },
+	{ "NOTALLDBOPN", "Not all required database files were opened", 0 },
+	{ "MUSELFBKUP", "Database file !AD can not be backed upon itself", 2 },
+	{ "DBDANGER", "Process !UL [0x!XL] killed while committing update for database file !AD.  Possibility of damage to block 0x!XL.", 5 },
+	{ "TRUNCATEFAIL", "Truncating !AD from 0x!XL VMS blocks to 0x!XL blocks failed", 4 },
+	{ "TCGETATTR", "Error while getting terminal attributes on file descriptor !UL", 1 },
+	{ "TCSETATTR", "Error while setting terminal attributes on file descriptor !UL", 1 },
+	{ "IOWRITERR", "IO Write by pid 0x!XL to blk 0x!XL of database file !AD failed.  Pid 0x!XL retrying the IO.", 5 },
+	{ "REPLINSTWRITE", "Error writing [0x!XL] bytes at offset [0x!16 at XQ] in replication instance file !AD", 4 },
+	{ "DBBADFREEBLKCTR", "Database !AD free blocks counter in file header: 0x!XL appears incorrect, should be 0x!XL.  Auto-corrected.", 4 },
+	{ "REQ2RESUME", "Request to resume suspended processing received from process !UL owned by userid !UL", 2 },
+	{ "TIMERHANDLER", "Incorrect SIGALRM handler (0x!XJ) found by !AD", 3 },
+	{ "FREEMEMORY", "Error occurred freeing memory from 0x!XJ", 1 },
+	{ "MUREPLSECDEL", "Replication section !AD deleted", 2 },
+	{ "MUREPLSECNOTDEL", "Replication section !AD not deleted", 2 },
+	{ "MUJPOOLRNDWNSUC", "Jnlpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4 },
+	{ "MURPOOLRNDWNSUC", "Recvpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4 },
+	{ "MUJPOOLRNDWNFL", "Jnlpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4 },
+	{ "MURPOOLRNDWNFL", "Recvpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4 },
+	{ "MUREPLPOOL", "Error with replpool section !AD", 2 },
+	{ "REPLACCSEM", "Error with replication access semaphore (id = !UL) for instance file !AD", 3 },
+	{ "JNLFLUSHNOPROG", "No progress while attempting to flush journal file !AD", 2 },
+	{ "REPLINSTCREATE", "Error creating replication instance file !AD", 2 },
+	{ "SUSPENDING", "Process Received Signal !UL. Suspending processing on user request or attempt to do terminal I/O while running in the background", 1 },
+	{ "SOCKBFNOTEMPTY", "Socket buffer size cannot be set to 0x!XL due to 0x!XL bytes of buffered data.  Read first.", 2 },
+	{ "ILLESOCKBFSIZE", "The specified socket buffer size is 0x!XL, which is either 0 or too big", 1 },
+	{ "NOSOCKETINDEV", "There is no socket in the current socket device", 0 },
+	{ "SETSOCKOPTERR", "Setting the socket attribute !AD failed: (errno == !UL) !AD", 5 },
+	{ "GETSOCKOPTERR", "Getting the socket attribute !AD failed: (errno == !UL) !AD", 5 },
+	{ "NOSUCHPROC", "Process !UL does not exist - no need to !AD it", 3 },
+	{ "DSENOFINISH", "DSE unable to finish all requested actions", 0 },
+	{ "LKENOFINISH", "LKE unable to finish all requested actions", 0 },
+	{ "NOCHLEFT", "Unhandled condition exception (all handlers exhausted) - process terminating", 0 },
+	{ "MULOGNAMEDEF", "Logical name !AD, needed to start replication server is already defined for this job.  !/Check for an existing or improperly terminated server.", 2 },
+	{ "BUFOWNERSTUCK", "Pid !UL waiting for Pid !UL to finish disk-read of block !UL [0x!XL].!/Been waiting for !UL minutes.  read_in_progress=!UL : rip_latch = !UL.", 7 },
+	{ "ACTIVATEFAIL", "Cannot activate passive source server on instance !AD while a receiver server and/or update process is running", 2 },
+	{ "DBRNDWNWRN", "Global section of database file !AD not rundown successfully by pid !UL [0x!XL].  Global section was not removed.", 4 },
+	{ "DLLNOOPEN", "Failed to load external dynamic library !AD", 2 },
+	{ "DLLNORTN", "Failed to look up the location of the symbol !AD", 2 },
+	{ "DLLNOCLOSE", "Failed to unload external dynamic library", 0 },
+	{ "FILTERNOTALIVE", "Replication server detected that the filter is not alive while attempting to send seqno !16 at XQ", 1 },
+	{ "FILTERCOMM", "Error communicating seqno !16 at XQ with the filter", 1 },
+	{ "FILTERBADCONV", "Bad conversion of seqno !16 at XQ by filter", 1 },
+	{ "PRIMARYISROOT", "Attempted operation not valid on root primary instance !AD", 2 },
+	{ "GVQUERYGETFAIL", "Global variable QUERY and GET failed.  Failure code: !AD.", 2 },
+	{ "DBCREC2BIGINBLK", "A Record in block 0x!XL has a length greater than the maximum (!UL) in database !AD", 4 },
+	{ "MERGEDESC", "Merge operation not possible.  !AD is descendent of !AD.", 4 },
+	{ "MERGEINCOMPL", "Error encountered during MERGE; operation may be incomplete", 0 },
+	{ "DBNAMEMISMATCH", "Database file !AD points to shared memory (id = !UL) which in turn points to an inaccessible database file !AZ", 4 },
+	{ "DBIDMISMATCH", "Database file !AZ (region !AD) id does not match file id in shared memory (id = !UL).", 4 },
+	{ "DEVOPENFAIL", "Error opening !AD", 2 },
+	{ "IPCNOTDEL", "!AD : !AD did not delete IPC resources for region !AD", 6 },
+	{ "XCVOIDRET", "Attempt to return a value from function !AD, which is declared void in external call table !AD", 4 },
+	{ "MURAIMGFAIL", "Mupip recover or rollback failed while processing an after-image journal record.  Failure code: !AD.", 2 },
+	{ "REPLINSTUNDEF", "Replication instance environment variable $gtm_repl_instance is undefined", 0 },
+	{ "REPLINSTACC", "Error accessing replication instance file !AD", 2 },
+	{ "NOJNLPOOL", "No journal pool info found in the replication instance of !AD", 2 },
+	{ "NORECVPOOL", "No receiver pool info found in the replication instance of !AD", 2 },
+	{ "FTOKERR", "Error getting ftok of the file !AD", 2 },
+	{ "REPLREQRUNDOWN", "Error accessing replication instance !AD.  Must be rundown on cluster node !AD.", 4 },
+	{ "BLKCNTEDITFAIL", "Mupip recover or rollback failed to correct the block count field in the file header for file !AD", 2 },
+	{ "SEMREMOVED", "Semaphore id !UL removed from the system", 1 },
+	{ "REPLINSTFMT", "Format error encountered while reading replication instance file !AD. Expected !AD. Found !AD.", 6 },
+	{ "SEMKEYINUSE", "Semaphore key 0x!XL is already in use (possibly by an older version)", 1 },
+	{ "XTRNTRANSERR", "Error attempting to generate an environment using an external algorithm", 0 },
+	{ "XTRNTRANSDLL", "Error during extended reference environment translation.  Check the above message.", 0 },
+	{ "XTRNRETVAL", "Length of return value (!SL) from extended reference translation algorithm is not in the range [0,!UL]", 2 },
+	{ "XTRNRETSTR", "Return string from extended reference translation algorithm is NULL", 0 },
+	{ "INVECODEVAL", "Invalid value for $ECODE (!AD)", 2 },
+	{ "SETECODE", "Non-empty value assigned to $ECODE (user-defined error trap)", 0 },
+	{ "INVSTACODE", "Invalid value for second parameter of $STACK (!AD)", 2 },
+	{ "REPEATERROR", "Repeat previous error", 0 },
+	{ "NOCANONICNAME", "Value is not a canonic name (!AD)", 2 },
+	{ "NOSUBSCRIPT", "No such subscript found (!SL)", 1 },
+	{ "SYSTEMVALUE", "Invalid value for $SYSTEM (!AD)", 2 },
+	{ "SIZENOTVALID4", "Size (in bytes) must be either 1, 2, or 4", 0 },
+	{ "STRNOTVALID", "Error: cannot convert !AD value to valid value", 2 },
+	{ "CREDNOTPASSED", "Socket message contained no passed credentials", 0 },
+	{ "ERRWETRAP", "Error while processing $ETRAP", 0 },
+	{ "TRACINGON", "Tracing already turned on", 0 },
+	{ "CITABENV", "Environment variable for call-in table !AD not set", 2 },
+	{ "CITABOPN", "Unable to open call-in table: !AD", 2 },
+	{ "CIENTNAME", "No label reference found for this entry in call-in table", 0 },
+	{ "CIRTNTYP", "Invalid return type", 0 },
+	{ "CIRCALLNAME", "Call-in routine name expected but not found", 0 },
+	{ "CIRPARMNAME", "Invalid parameter specification for call-in table", 0 },
+	{ "CIDIRECTIVE", "Invalid directive parameter passing.  Expected I, O or IO.", 0 },
+	{ "CIPARTYPE", "Invalid type specification for O/IO directive - expected pointer type", 0 },
+	{ "CIUNTYPE", "Unknown parameter type encountered", 0 },
+	{ "CINOENTRY", "No entry specified for !AD in the call-in table", 2 },
+	{ "JNLINVSWITCHLMT", "Journal AUTOSWITCHLIMIT [!UL] falls outside of allowed limits [!UL] and [!UL]", 3 },
+	{ "SETZDIR", "Cannot change working directory to !AD", 2 },
+	{ "JOBACTREF", "Actual parameter in job command passed by reference", 0 },
+	{ "ECLOSTMID", "$ECODE overflow, the first and last ecodes are retained, but some intervening ecodes have been lost", 0 },
+	{ "ZFF2MANY", "Number of characters specified for ZFF deviceparameter (!UL) is more than the maximum allowed (!UL)", 2 },
+	{ "JNLFSYNCLSTCK", "Journaling fsync lock is stuck in journal file !AD", 2 },
+	{ "DELIMWIDTH", "Delimiter length !UL exceeds device width !UL", 2 },
+	{ "DBBMLCORRUPT", "Database !AD : Bitmap blk [0x!XL] is corrupt (size = [0x!XL], levl = [0x!XL], tn = [0x!16 at XQ]) : Dbtn = [0x!16 at XQ] : Database integrity errors likely", 7 },
+	{ "DLCKAVOIDANCE", "Possible deadlock detected: Database !AD : Dbtn [0x!16 at XQ] : t_tries [0x!XL] : dollar_trestart [0x!XL] : now_crit [0x!XL] : TP transaction restarted", 6 },
+	{ "WRITERSTUCK", "Buffer flush stuck waiting for [0x!XL] concurrent writers to finish writing to database file !AD", 3 },
+	{ "PATNOTFOUND", "Current pattern table has no characters with pattern code !AD", 2 },
+	{ "INVZDIRFORM", "Invalid value (!UL) specified for ZDIR_FORM", 1 },
+	{ "ZDIROUTOFSYNC", "$ZDIRECTORY !AD is not the same as its cached value !AD", 4 },
+	{ "GBLNOEXIST", "Global !AD no longer exists", 2 },
+	{ "MAXBTLEVEL", "Global ^!AD in region !AD reached maximum level", 4 },
+	{ "INVMNEMCSPC", "Unsupported mnemonicspace !AD", 2 },
+	{ "JNLALIGNSZCHG", "Journal ALIGNSIZE is rounded up to !UL blocks (closest next higher power of two)", 1 },
+	{ "SEFCTNEEDSFULLB", "Current side effect setting does not permit full Boolean to be turned off", 0 },
+	{ "GVFAILCORE", "A core file is being created for later analysis if necessary", 0 },
+	{ "DBCDBNOCERTIFY", "Database !AD HAS NOT been certified due to the preceding errors - rerun DBCERTIFY SCAN", 2 },
+	{ "DBFRZRESETSUC", "Freeze released successfully on database file !AD", 2 },
+	{ "JNLFILEXTERR", "Error during extension of journal file !AD", 2 },
+	{ "JOBEXAMDONE", "GT.M process !UL completed job examine to !AD", 3 },
+	{ "JOBEXAMFAIL", "GT.M process !UL executing $ZJOBEXAM function failed with the preceding error message", 1 },
+	{ "JOBINTRRQST", "Job interrupt requested", 0 },
+	{ "ERRWZINTR", "Error while processing $ZINTERRUPT", 0 },
+	{ "CLIERR", "!AD", 2 },
+	{ "REPLNOBEFORE", "NOBEFORE option cannot be used when the current replication state is ON for database file !AD", 2 },
+	{ "REPLJNLCNFLCT", "Journaling cannot be turned !AD on database file !AD as the replication state is !AD and must also be turned !AD in the same command", 8 },
+	{ "JNLDISABLE", "Specified journal option(s) cannot take effect as journaling is DISABLED on database file !AD", 2 },
+	{ "FILEEXISTS", "File !AD already exists", 2 },
+	{ "JNLSTATE", "Journaling state for !AD !AD is now !AD", 6 },
+	{ "REPLSTATE", "Replication state for !AD !AD is now !AD", 6 },
+	{ "JNLCREATE", "Journal file !AD created for !AD !AD with !AD", 8 },
+	{ "JNLNOCREATE", "Journal file !AD not created", 2 },
+	{ "JNLFNF", "Journal file !AD not found", 2 },
+	{ "PREVJNLLINKCUT", "Previous journal file name link set to NULL in new journal file !AD created for database file !AD", 4 },
+	{ "PREVJNLLINKSET", "Previous generation journal file name is changed from !AD to !AD", 4 },
+	{ "FILENAMETOOLONG", "File name too long", 0 },
+	{ "REQRECOV", "Error accessing database !AD.  Must be recovered on cluster node !AD.", 4 },
+	{ "JNLTRANS2BIG", "Transaction needs an estimated [!UL blocks] in journal file !AD which exceeds the AUTOSWITCHLIMIT of !UL blocks", 4 },
+	{ "JNLSWITCHTOOSM", "Journal AUTOSWITCHLIMIT [!UL blocks] is less than Journal ALLOCATION [!UL blocks] for database file !AD", 4 },
+	{ "JNLSWITCHSZCHG", "Journal AUTOSWITCHLIMIT [!UL blocks] is rounded down to [!UL blocks] to equal the sum of Journal ALLOCATION [!UL blocks] and a multiple of Journal EXTENSION [!UL blocks] for database file !AD", 6 },
+	{ "NOTRNDMACC", "Only random access files are supported as backup files for non-incremental backup", 0 },
+	{ "TMPFILENOCRE", "Error in MUPIP BACKUP while trying to create temporary file !AD", 2 },
+	{ "SHRMEMEXHAUSTED", "Attempt by process to use more shared memory than currently permitted by VMS", 0 },
+	{ "JNLSENDOPER", "pid = 0x!XL : status = 0x!XL : jpc_status = 0x!XL : jpc_status2 = 0x!XL : iosb.cond = 0x!XW", 5 },
+	{ "DDPSUBSNUL", "NUL characters in subscripts are not supported by DDP", 0 },
+	{ "DDPNOCONNECT", "Named volume set, !AD, is not connected", 2 },
+	{ "DDPCONGEST", "Agent congestion", 0 },
+	{ "DDPSHUTDOWN", "Server has shut down", 0 },
+	{ "DDPTOOMANYPROCS", "Maximum process limit of !UL exceeded", 1 },
+	{ "DDPBADRESPONSE", "DDP invalid response code: !XB; message text follows", 1 },
+	{ "DDPINVCKT", "Invalid format for CIRCUIT", 0 },
+	{ "DDPVOLSETCONFIG", "Volume Set Configuration file error", 0 },
+	{ "DDPCONFGOOD", "Volume Set Configuration entry accepted", 0 },
+	{ "DDPCONFIGNORE", "Volume Set Configuration line ignored", 0 },
+	{ "DDPCONFINCOMPL", "Volume Set Configuration entry incomplete", 0 },
+	{ "DDPCONFBADVOL", "Volume Set Configuration entry : invalid volume", 0 },
+	{ "DDPCONFBADUCI", "Volume Set Configuration entry : invalid uci", 0 },
+	{ "DDPCONFBADGLD", "Volume Set Configuration entry : invalid global directory", 0 },
+	{ "DDPRECSIZNOTNUM", "Maximum record size is not numeric", 0 },
+	{ "DDPOUTMSG2BIG", "DDP message too big to be accommodated in outbound buffer", 0 },
+	{ "DDPNOSERVER", "DDP Server not running on local node", 0 },
+	{ "MUTEXRELEASED", "Process !UL [0x!XL] has released the critical section for database !AD to avoid deadlock. $TLEVEL: !UL  t_tries: !UL", 6 },
+	{ "JNLCRESTATUS", "!AD at line !UL for journal file !AD, database file !AD encountered error", 7 },
+	{ "ZBREAKFAIL", "Could not set breakpoint at !AD due to insufficient memory", 2 },
+	{ "DLLVERSION", "Routine !AD in library !AD was compiled with an incompatible version of GT.M.  Recompile with the current version and re-link.", 4 },
+	{ "INVZROENT", "!AD is neither a directory nor an object library(DLL)", 2 },
+	{ "DDPLOGERR", "!AD: !AD", 4 },
+	{ "GETSOCKNAMERR", "Getting the socket name failed from getsockname(): (errno==!UL) !AD", 3 },
+	{ "INVGTMEXIT", "Inappropriate invocation of gtm_exit. gtm_exit cannot be invoked from external calls.", 0 },
+	{ "CIMAXPARAM", "Exceeded maximum number of parameters in the call-in table entry. An M routine cannot accept more than 32 parameters.", 0 },
+	{ "CITPNESTED", "Call-ins can not be used inside a TP transaction", 0 },
+	{ "CIMAXLEVELS", "Too many nested Call-ins. Nested resources exhausted at level !UL.", 1 },
+	{ "JOBINTRRETHROW", "Job interrupt redelivered", 0 },
+	{ "STARFILE", "Star(*) argument cannot be specified with !AD", 2 },
+	{ "NOSTARFILE", "Only star(*) argument can be specified with !AD", 2 },
+	{ "MUJNLSTAT", "!AD at !AD", 4 },
+	{ "JNLTPNEST", "Mupip journal command found nested TP transactions for journal file !AD at offset 0x!XL at transaction number 0x!16 at XQ", 4 },
+	{ "REPLOFFJNLON", "Replication state for database file !AD is OFF but journaling state is enabled", 2 },
+	{ "FILEDELFAIL", "Deletion of file !AD failed", 2 },
+	{ "INVQUALTIME", "Invalid time qualifier value.  Specify as !AD=delta_or_absolute_time.", 2 },
+	{ "NOTPOSITIVE", "!AD qualifier must be given a value greater than zero", 2 },
+	{ "INVREDIRQUAL", "Invalid REDIRECT qualifier value.  !AD", 2 },
+	{ "INVERRORLIM", "Invalid ERROR_LIMIT qualifier value.  Must be at least zero", 0 },
+	{ "INVIDQUAL", "Invalid ID qualifier value !AD", 2 },
+	{ "INVTRNSQUAL", "Invalid TRANSACTION qualifier.  Specify only one of TRANSACTION=[NO]SET or TRANSACTION=[NO]KILL.", 0 },
+	{ "JNLNOBIJBACK", "MUPIP JOURNAL BACKWARD cannot continue as journal file !AD does not have before image journaling", 2 },
+	{ "SETREG2RESYNC", "Setting resync sequence number 0x!16 at XQ to region sequence number 0x!16 at XQ for database !AD", 4 },
+	{ "JNLALIGNTOOSM", "Alignsize !UL (bytes) is too small for a block size of !UL (bytes) for !AD !AD.  Using alignsize of !UL (bytes) instead.", 7 },
+	{ "JNLFILEOPNERR", "Error opening journal file !AD", 2 },
+	{ "JNLFILECLOSERR", "Error closing journal file !AD", 2 },
+	{ "REPLSTATEOFF", "MUPIP JOURNAL -ROLLBACK -BACKWARD cannot proceed as database !AD does not have replication ON", 2 },
+	{ "MUJNLPREVGEN", "Previous generation journal file !AD included for database file !AD", 4 },
+	{ "MUPJNLINTERRUPT", "Database file !AD indicates interrupted MUPIP JOURNAL command.  Restore from backup for forward recover/rollback.", 2 },
+	{ "ROLLBKINTERRUPT", "Database file !AD indicates interrupted ROLLBACK.  Reissue the MUPIP JOURNAL ROLLBACK command.", 2 },
+	{ "RLBKJNSEQ", "Journal seqno of the instance after rollback is !@ZQ [0x!16 at XQ]", 2 },
+	{ "REPLRECFMT", "Replication journal record format error encountered", 0 },
+	{ "PRIMARYNOTROOT", "Attempted operation not valid on non-root primary instance !AD", 2 },
+	{ "DBFRZRESETFL", "Freeze release failed on database file !AD", 2 },
+	{ "JNLCYCLE", "Journal file !AD causes cycle in the journal file generations of database file !AD", 4 },
+	{ "JNLPREVRECOV", "Journal file has nonzero value in prev_recov_end_of_data field", 0 },
+	{ "RESOLVESEQNO", "Resolving until sequence number !@ZQ [0x!16 at XQ]", 2 },
+	{ "BOVTNGTEOVTN", "Journal file !AD has beginning transaction [0x!16 at XQ] which is greater than end transaction [0x!16 at XQ]", 4 },
+	{ "BOVTMGTEOVTM", "Journal file !AD has beginning timestamp [0x!16 at XQ] greater than end timestamp [0x!16 at XQ]", 4 },
+	{ "BEGSEQGTENDSEQ", "Journal file !AD has beginning sequence number [0x!16 at XQ] greater than end sequence number [0x!16 at XQ]", 4 },
+	{ "DBADDRALIGN", "Database file !AD, element location 0x!XJ: blk = 0x!XL: [!AD] control 0x!XJ was unaligned relative to base 0x!XJ and element size 0x!XL", 9 },
+	{ "DBWCVERIFYSTART", "Database file !AD, write cache verification started by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5 },
+	{ "DBWCVERIFYEND", "Database file !AD, write cache verification finished by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5 },
+	{ "MUPIPSIG", "!AD (signal !UL) issued from process !UL [0x!XL] to process !UL [0x!XL]", 7 },
+	{ "HTSHRINKFAIL", "Hash table compaction failed to allocate new smaller table due to lack of memory", 0 },
+	{ "STPEXPFAIL", "Stringpool expansion failed. It could not expand to !UL bytes.", 1 },
+	{ "DBBTUWRNG", "The blocks-to-upgrade file-header field is incorrect. Expected 0x!XL, found 0x!XL", 2 },
+	{ "DBBTUFIXED", "The blocks-to-upgrade file-header field has been changed to the correct value", 0 },
+	{ "DBMAXREC2BIG", "Maximum record size (!UL) is too large for this block size (!UL) - Maximum is !UL", 3 },
+	{ "DBCSCNNOTCMPLT", "Specified DBCERTIFY SCAN output file is not complete - Rerun scan", 0 },
+	{ "DBCBADFILE", "Source file !AD does not appear to have been generated by DBCERTIFY SCAN - rerun SCAN or specify correct file", 2 },
+	{ "DBCNOEXTND", "Unable to extend database !AD", 2 },
+	{ "DBCINTEGERR", "Encountered integrity error in database !AD", 2 },
+	{ "DBMINRESBYTES", "Minimum RESERVED BYTES value required for certification/upgrade is !UL - Currently is !UL", 2 },
+	{ "DBCNOTSAMEDB", "Database has been moved or restored since DBCERTIFY SCAN - Rerun scan", 0 },
+	{ "DBCDBCERTIFIED", "Database !AD has been certified for use with !AD", 4 },
+	{ "DBCMODBLK2BIG", "Block 0x!XL has been modified since DBCERTIFY SCAN but is still too large or now has an earlier TN than in the scan phase - Rerun scan phase", 1 },
+	{ "DBCREC2BIG", "Record with key !AD is length !UL in block 0x!XL which is greater than the maximum length !UL in database !AD", 7 },
+	{ "DBCCMDFAIL", "Executed command failed with return code !SL: !AD which executed !AD !AD", 7 },
+	{ "DBCKILLIP", "Cannot proceed with kill in progress indicator set for database !AD -- Run MUPIP INTEG first", 2 },
+	{ "DBCNOFINISH", "DBCERTIFY unable to finish all requested actions", 0 },
+	{ "DYNUPGRDFAIL", "Unable to dynamically upgrade block 0x!XL in database !AD due to lack of free space in block", 3 },
+	{ "MMNODYNDWNGRD", "Unable to use dynamic downgrade with MM access method for region !AD. Use BG access method for downgrade", 2 },
+	{ "MMNODYNUPGRD", "Unable to use MM access method for region !AD until all database blocks are upgraded", 2 },
+	{ "MUDWNGRDNRDY", "Database !AD is not ready to downgrade - still !UL database blocks to downgrade", 3 },
+	{ "MUDWNGRDTN", "Transaction number 0x!16 at XQ in database !AD is too big for MUPIP [REORG] DOWNGRADE. Renew database with MUPIP INTEG TN_RESET", 3 },
+	{ "MUDWNGRDNOTPOS", "Start VBN value is [!UL] while downgraded GT.M version can support only [!UL]. Downgrade not possible", 2 },
+	{ "MUUPGRDNRDY", "Database !AD has not been certified as being ready to upgrade to !AD format", 4 },
+	{ "TNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4 },
+	{ "TNTOOLARGE", "Database file !AD has reached the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 3 },
+	{ "SHMPLRECOV", "Shared memory pool block recovery invoked for region !AD", 2 },
+	{ "MUNOSTRMBKUP", "Database !AD has a block size larger than !UL and thus cannot use stream (incremental) backup", 3 },
+	{ "EPOCHTNHI", "At the EPOCH record at offset !UL of !AD transaction number [0x!16 at XQ] is higher than database transaction number [0x!16 at XQ]", 5 },
+	{ "CHNGTPRSLVTM", "Mupip will change tp_resolve_time from !UL to !UL because expected EPOCH or EOF record was not found in Journal File !AD", 4 },
+	{ "JNLUNXPCTERR", "Unexpected error encountered for Journal !AD at disk address 0x!XL", 3 },
+	{ "OMISERVHANG", "GTCM OMI server is hung", 0 },
+	{ "RSVDBYTE2HIGH", "Record size (!UL) is greater than the maximum allowed for region !AD with Block size (!UL) and Reserved bytes (!UL)", 5 },
+	{ "BKUPTMPFILOPEN", "Open of backup temporary file !AD failed", 2 },
+	{ "BKUPTMPFILWRITE", "Write to backup temporary file !AD failed", 2 },
+	{ "VMSMEMORY2", "Central storage exhausted during allocation of dynamic file descriptor with !UL bytes - check page file quota and page file size", 1 },
+	{ "LOADBGSZ2", "Load error: BEGIN too large.  No records loaded.", 0 },
+	{ "LOADEDSZ2", "Load error: END too large.  No records loaded.", 0 },
+	{ "REPLINSTMISMTCH", "Process has replication instance file !AD (jnlpool shmid = !UL) open but database !AD is bound to instance file !AD (jnlpool shmid = !UL)", 8 },
+	{ "REPLINSTREAD", "Error reading [0x!XL] bytes at offset [0x!16 at XQ] from replication instance file !AD", 4 },
+	{ "REPLINSTDBMATCH", "Replication instance file !AD has seqno [0x!16 at XQ] while database has a different seqno [0x!16 at XQ]", 4 },
+	{ "REPLINSTNMSAME", "Primary and Secondary instances have the same replication instance name !AD", 2 },
+	{ "REPLINSTNMUNDEF", "Replication instance name not defined", 0 },
+	{ "REPLINSTNMLEN", "Replication instance name !AD should be 1 to 15 characters long", 2 },
+	{ "REPLINSTNOHIST", "History information for !AD not found in replication instance file !AD", 4 },
+	{ "REPLINSTSECLEN", "Secondary replication instance name !AD should be 1 to 15 characters long", 2 },
+	{ "REPLINSTSECMTCH", "Secondary replication instance name !AD sent by receiver does not match !AD specified at source server startup", 4 },
+	{ "REPLINSTSECNONE", "No information found for secondary instance !AD in instance file !AD", 4 },
+	{ "REPLINSTSECUNDF", "Secondary replication instance name not defined", 0 },
+	{ "REPLINSTSEQORD", "!AD has seqno [0x!16 at XQ] which is less than last record seqno [0x!16 at XQ] in replication instance file !AD", 6 },
+	{ "REPLINSTSTNDALN", "Could not get exclusive access to replication instance file !AD", 2 },
+	{ "REPLREQROLLBACK", "Replication instance file !AD indicates abnormal shutdown or an incomplete ROLLBACK. Run MUPIP JOURNAL ROLLBACK first", 2 },
+	{ "REQROLLBACK", "Error accessing database !AD.  Run MUPIP JOURNAL ROLLBACK on cluster node !AD.", 4 },
+	{ "INVOBJFILE", "Cannot ZLINK object file !AD due to unexpected format", 2 },
+	{ "SRCSRVEXISTS", "Source server for secondary instance !AD is already running with pid !UL", 3 },
+	{ "SRCSRVNOTEXIST", "Source server for secondary instance !AD is not alive", 2 },
+	{ "SRCSRVTOOMANY", "Cannot start more than !UL source servers in replication instance !AD", 3 },
+	{ "JNLPOOLBADSLOT", "Source server slot for secondary instance !AD is in an inconsistent state. Pid = [!UL], State = [!UL], SlotIndex = [!UL]", 5 },
+	{ "NOENDIANCVT", "Unable to convert the endian format of file !AD due to !AD", 4 },
+	{ "ENDIANCVT", "Converted database file !AD from !AZ endian to !AZ endian on a !AZ endian system", 5 },
+	{ "DBENDIAN", "Database file !AD is !AZ endian on a !AZ endian system", 4 },
+	{ "BADCHSET", "!AD is not a valid character mapping in this context", 2 },
+	{ "BADCASECODE", "!AD is not a valid case conversion code", 2 },
+	{ "BADCHAR", "$ZCHAR(!AD) is not a valid character in the !AD encoding form", 4 },
+	{ "DLRCILLEGAL", "!_!AD!/!_!_!_Illegal $CHAR() value !UL", 3 },
+	{ "NONUTF8LOCALE", "Locale has character encoding (!AD) which is not compatible with UTF-8 character set", 2 },
+	{ "INVDLRCVAL", "Invalid $CHAR() value !UL", 1 },
+	{ "DBMISALIGN", "Database file !AD has !UL blocks which does not match alignment rules. Reconstruct the database from a backup or extend it by at least !UL blocks.", 4 },
+	{ "LOADINVCHSET", "Extract file CHSET (!AD) is incompatible with gtm_chset", 2 },
+	{ "DLLCHSETM", "Routine !AD in library !AD was compiled with CHSET=M which is different from $ZCHSET. Recompile with CHSET=UTF-8 and re-link.", 4 },
+	{ "DLLCHSETUTF8", "Routine !AD in library !AD was compiled with CHSET=UTF-8 which is different from $ZCHSET. Recompile with CHSET=M and re-link.", 4 },
+	{ "BOMMISMATCH", "!AD Byte Order Marker found when !AD character set specified", 4 },
+	{ "WIDTHTOOSMALL", "WIDTH should be at least 2 when device ICHSET or OCHSET is UTF-8 or UTF-16", 0 },
+	{ "SOCKMAX", "Attempt to exceed maximum sockets (!UL) for the SOCKET device", 1 },
+	{ "PADCHARINVALID", "PAD deviceparameter cannot be greater than 127", 0 },
+	{ "ZCNOPREALLOUTPAR", "Parameter !UL in external call !AD.!AD is an output only parameter requiring pre-allocation", 5 },
+	{ "SVNEXPECTED", "Special variable expected in this context", 0 },
+	{ "SVNONEW", "Cannot NEW this special variable", 0 },
+	{ "ZINTDIRECT", "Attempt to enter direct mode from $ZINTERRUPT", 0 },
+	{ "ZINTRECURSEIO", "Attempt to do IO to the active device in $ZINTERRUPT", 0 },
+	{ "MRTMAXEXCEEDED", "Maximum value of !UL for SOCKET device parameter MOREREADTIME exceeded", 1 },
+	{ "JNLCLOSED", "Journaling closed for database file !AD at transaction number 0x!16 at XQ", 3 },
+	{ "RLBKNOBIMG", "ROLLBACK cannot proceed as database !AD has NOBEFORE_IMAGE journaling", 2 },
+	{ "RLBKJNLNOBIMG", "Journal file !AD has NOBEFORE_IMAGE journaling", 2 },
+	{ "RLBKLOSTTNONLY", "ROLLBACK will only create a lost transaction file (database and journal files will not be modified)", 0 },
+	{ "KILLBYSIGSINFO3", "!AD process !UL has been killed by a signal !UL accessing vaddress 0x!XJ", 5 },
+	{ "GTMSECSHRTMPPATH", "gtmsecshr path is !AD", 2 },
+	{ "GTMERREXIT", "GTM image has exited with errors", 0 },
+	{ "INVMEMRESRV", "Could not allocate GT.M memory reserve (!AD)", 2 },
+	{ "OPCOMMISSED", "!UL errors and !UL MBFULLs sending prior operator messages", 2 },
+	{ "COMMITWAITSTUCK", "Pid !UL timed out after waiting !UL minute(s) for !UL concurrent GT.M process(es) to finish commits in database file !AD", 5 },
+	{ "COMMITWAITPID", "Pid !UL waited !UL minute(s) for pid !UL to finish commits to block 0x!XL in database file !AD", 6 },
+	{ "UPDREPLSTATEOFF", "Error replicating global ^!AD as it maps to database !AD which has replication turned OFF", 4 },
+	{ "LITNONGRAPH", "M standard requires graphics in string literals; found non-printable: $ZCHAR(!AD)", 2 },
+	{ "DBFHEADERR8", "Database file !AD: control problem: !AD was 0x!16 at XQ expecting 0x!16 at XQ", 6 },
+	{ "MMBEFOREJNL", "BEFORE image journaling cannot be set with MM access method in database file !AD", 2 },
+	{ "MMNOBFORRPL", "Replication cannot be used in database file !AD which uses MM access method and NOBEFORE image journaling", 2 },
+	{ "KILLABANDONED", "Abandoned kills counter is greater than zero for file !AD, !AD", 4 },
+	{ "BACKUPKILLIP", "Kill in progress indicator is set for file !AD, backup database could have incorrectly marked busy integrity errors", 2 },
+	{ "LOGTOOLONG", "Environment variable !AD is too long. Maximum length allowed is !UL bytes.", 3 },
+	{ "NOALIASLIST", "Parenthetical lists of multiple arguments cannot have a preceding alias introducer or include alias (*) forms", 0 },
+	{ "ALIASEXPECTED", "Alias or alias container variable expected in this context", 0 },
+	{ "VIEWLVN", "Invalid local variable name used with VIEW/$VIEW(): !AD", 2 },
+	{ "DZWRNOPAREN", "$ZWRTACxxx is not allowed inside a parenthesized SET target", 0 },
+	{ "DZWRNOALIAS", "$ZWRTAC cannot be aliased", 0 },
+	{ "FREEZEERR", "Error while trying to !AD region !AD", 4 },
+	{ "CLOSEFAIL", "Error while closing file descriptor !SL", 1 },
+	{ "CRYPTINIT", "Could not initialize encryption library while opening encrypted file !AD. !AD", 4 },
+	{ "CRYPTOPFAILED", "Encrypt/Decrypt operation failed for file !AD. !AD", 4 },
+	{ "CRYPTDLNOOPEN", "Could not load encryption library while opening encrypted file !AD. !AD", 4 },
+	{ "CRYPTNOV4", "!AD is an encrypted database. Cannot downgrade(to V4) with Encryption option enabled.", 2 },
+	{ "CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2 },
+	{ "UNUSEDMSG1316", "Last used in V6.2-002A", 0 },
+	{ "CRYPTKEYFETCHFAILED", "Could not retrieve encryption key corresponding to file !AD. !AD", 4 },
+	{ "CRYPTKEYFETCHFAILEDNF", "Could not retrieve encryption key during !AD operation key. !AD", 4 },
+	{ "CRYPTHASHGENFAILED", "Could not generate cryptographic hash for symmetric key corresponding to file !AD. !AD", 4 },
+	{ "CRYPTNOKEY", "No encryption key specified", 0 },
+	{ "BADTAG", "Unable to use file !AD (CCSID !UL) with CCSID !UL", 4 },
+	{ "ICUVERLT36", "!AD !UL.!UL. ICU version greater than or equal to 3.6 should be used", 4 },
+	{ "ICUSYMNOTFOUND", "Symbol !AD not found in the ICU libraries. ICU needs to be built with symbol-renaming disabled or gtm_icu_version environment variable needs to be properly specified", 2 },
+	{ "STUCKACT", "Process stuck script invoked: !AD : !AD", 4 },
+	{ "CALLINAFTERXIT", "After a gtm_exit, a process can never create a valid GT.M context", 0 },
+	{ "LOCKSPACEFULL", "No more room for LOCK slots on database file !AD", 2 },
+	{ "IOERROR", "Error occured while doing !AD in !AD operation -- called from module !AD at line !UL", 7 },
+	{ "MAXSSREACHED", "Maximum snapshots - !UL - for region !AD reached. Please wait for the existing snapshots to complete before starting a new one.", 3 },
+	{ "SNAPSHOTNOV4", "Cannot downgrade (to V4) while snapshots are in progress. Currently !UL snapshots are in progress for region !AD.", 3 },
+	{ "SSV4NOALLOW", "Database snapshots are supported only on fully upgraded V5 databases. !AD has V4 format blocks.", 2 },
+	{ "SSTMPDIRSTAT", "Cannot access temporary directory !AD", 2 },
+	{ "SSTMPCREATE", "Cannot create the temporary file in directory !AD for the requested snapshot", 2 },
+	{ "JNLFILEDUP", "Journal files !AD and !AD are the same", 4 },
+	{ "SSPREMATEOF", "Premature end of file while reading block !UL of size: !UL bytes at offset: !UL from !AD", 5 },
+	{ "SSFILOPERR", "Error while doing !AD operation on file !AD", 4 },
+	{ "REGSSFAIL", "Process !UL encountered error contributing to the snapshot for region !AD - the snapshot is no longer valid", 3 },
+	{ "SSSHMCLNUPFAIL", "Error while doing snapshot shared memory cleanup. Operation -- !AD. Identifier -- !UL", 3 },
+	{ "SSFILCLNUPFAIL", "Error while unlinking snapshot file -- !AD", 2 },
+	{ "SETINTRIGONLY", "ISV !AD cannot be modified outside of the trigger environment", 2 },
+	{ "MAXTRIGNEST", "Maximum trigger nesting level (!UL) exceeded", 1 },
+	{ "TRIGCOMPFAIL", "Compilation of database trigger named !AD failed", 2 },
+	{ "NOZTRAPINTRIG", "Use of $ZTRAP in a database trigger environment ($ZTLEVEL greater than 0) is not supported", 0 },
+	{ "ZTWORMHOLE2BIG", "String length of !UL bytes exceeds maximum length of !UL bytes for $ZTWORMHOLE", 2 },
+	{ "JNLENDIANLITTLE", "Journal file !AD is LITTLE endian on a BIG endian system", 2 },
+	{ "JNLENDIANBIG", "Journal file !AD is BIG endian on a LITTLE endian system", 2 },
+	{ "TRIGINVCHSET", "Trigger !AD for global ^!AD was created with CHSET=!AD which is different from the current $ZCHSET of this process", 6 },
+	{ "TRIGREPLSTATE", "Trigger cannot update replicated database file !AD since triggering update was not replicated", 2 },
+	{ "GVDATAGETFAIL", "Global variable DATAGET sub-operation (in KILL function) failed. Failure code: !AD.", 2 },
+	{ "TRIG2NOTRIG", "Sending transaction sequence number 0x!16 at XQ which used triggers to a replicator that does not support triggers", 1 },
+	{ "ZGOTOINVLVL", "ZGOTO in a trigger running in !AD cannot ZGOTO level !UL", 3 },
+	{ "TRIGTCOMMIT", "TCOMMIT at $ZTLEVEL=!UL not allowed as corresponding TSTART was done at lower $ZTLEVEL=!UL", 2 },
+	{ "TRIGTLVLCHNG", "Detected a net transaction level ($TLEVEL) change during trigger !AD. Transaction level must be the same at exit as when the trigger started", 2 },
+	{ "TRIGNAMEUNIQ", "Unable to make trigger name !AD unique beyond !UL versions already loaded", 3 },
+	{ "ZTRIGINVACT", "Missing or invalid parameter in position !UL given to $ZTRIGGER()", 1 },
+	{ "INDRCOMPFAIL", "Compilation of indirection failed", 0 },
+	{ "QUITALSINV", "QUIT * return when the extrinsic was not invoked with SET *", 0 },
+	{ "PROCTERM", "!AD process termination due to !AD (return code !UL) from !AD", 7 },
+	{ "SRCLNNTDSP", "Source lines exceeding !UL character width are not displayed", 1 },
+	{ "ARROWNTDSP", "Unable to display ^----- due to length of source line", 0 },
+	{ "TRIGDEFBAD", "Trigger initialization failed for global ^!AD. Error while processing ^#t(\"!AD\",!AD)", 6 },
+	{ "TRIGSUBSCRANGE", "Trigger definition for global ^!AD has one or more invalid subscript range(s) : !AD", 4 },
+	{ "TRIGDATAIGNORE", "Ignoring trigger data !AD. Use MUPIP TRIGGER to load trigger definitions", 2 },
+	{ "TRIGIS", "!_!_Trigger name: !AD", 2 },
+	{ "TCOMMITDISALLOW", "TROLLBACK required after an unhandled error in trigger context", 0 },
+	{ "SSATTACHSHM", "Error while attaching to shared memory identifier !UL", 1 },
+	{ "TRIGDEFNOSYNC", "Global ^!AD has triggers defined on the !AD instance but none on the !AD instance. Current journal sequence number is 0x!16 at XQ", 7 },
+	{ "TRESTMAX", "TRESTART not allowed in a final TP retry more than once", 0 },
+	{ "ZLINKBYPASS", "ZLINK of !AD bypassed - Identical routine already linked", 2 },
+	{ "GBLEXPECTED", "Global variable reference expected in this context", 0 },
+	{ "GVZTRIGFAIL", "ZTRIGGER of a global variable failed.  Failure code: !AD.", 2 },
+	{ "MUUSERLBK", "Abnormal shutdown of replication-enabled database !AD detected", 2 },
+	{ "SETINSETTRIGONLY", "ISV !AD can only be modified in a 'SET' type trigger", 2 },
+	{ "DZTRIGINTRIG", "$ZTRIGGER() is not allowed inside trigger context. Trigger name: !AD", 2 },
+	{ "UNUSEDMSG1374", "SECNODZTRIGINTP : Last used in V6.2-000", 0 },
+	{ "BOOLSIDEFFECT", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in Boolean expression", 0 },
+	{ "DBBADUPGRDSTATE", "Correcting conflicting values for fields describing database version upgrade state in the file header for region !AD (!AD) - make fresh backups with new journal files immediately.", 4 },
+	{ "WRITEWAITPID", "PID !UL waited !UL minute(s) for PID !UL to finish writing block 0x!XL in database file !AD", 6 },
+	{ "ZGOCALLOUTIN", "ZGOTO level 0 with entry ref not valid when using call-ins", 0 },
+	{ "REPLNOXENDIAN", "!AD side is running on a GT.M version that does not support cross-endian replication. Upgrade the !AD side to at least V5.3-003 to support cross-endian replication. Cannot continue", 4 },
+	{ "REPLXENDIANFAIL", "!AD side encountered error while doing endian conversion at journal sequence number 0x!16 at XQ", 3 },
+	{ "ZGOTOINVLVL2", "ZGOTO 0:entryref is not valid on VMS (UNLINK is a UNIX only feature)", 0 },
+	{ "GTMSECSHRCHDIRF", "gtmsecshr unable to chdir to its temporary directory (!AD)", 2 },
+	{ "JNLORDBFLU", "Error flushing database blocks to !AD. See related messages in the operator log", 2 },
+	{ "ZCCLNUPRTNMISNG", "External call: Cleanup routine name missing. Cannot continue", 0 },
+	{ "ZCINVALIDKEYWORD", "External call: Invalid keyword found. Cannot continue", 0 },
+	{ "UNUSEDMSG1386", "REPLNOMULTILINETRG : Last used in V6.2-000", 0 },
+	{ "DBSHMNAMEDIFF", "Database file !AD points to shared memory (id = !UL) which points to a different database file !AZ", 4 },
+	{ "SHMREMOVED", "Removed Shared Memory id !UL corresponding to file !AD", 3 },
+	{ "DEVICEWRITEONLY", "Cannot read from a write-only device", 0 },
+	{ "ICUERROR", "ICU returned status !UL which is either unrecognized or inconsistent with the operating context", 1 },
+	{ "ZDATEBADDATE", "$ZDATE() date argument !AD is less than -365 (the $HOROLOG value for 01-JAN-1840) or greater than 364570088 (the $HOROLOG value for 31-DEC-999999)", 2 },
+	{ "ZDATEBADTIME", "$ZDATE() time argument !AD is less than 0 or greater than 86399 (the $HOROLOG value for a second before midnight)", 2 },
+	{ "COREINPROGRESS", "Previous core attempt failed; core generation bypassed", 0 },
+	{ "MAXSEMGETRETRY", "Failed to get ftok semaphore after !UL tries because it is being continually deleted", 1 },
+	{ "JNLNOREPL", "Replication not enabled for journal file !AD (database file !AD)", 4 },
+	{ "JNLRECINCMPL", "Incomplete journal record at disk address 0x!XL for file !AD while attempting to read seqno 0x!16 at XQ", 4 },
+	{ "JNLALLOCGROW", "Increased Journal ALLOCATION from [!UL blocks] to [!UL blocks] to match AUTOSWITCHLIMIT for !AZ !AD", 5 },
+	{ "INVTRCGRP", "Invalid trace group specified in $gtm_trace_groups: !AD", 2 },
+	{ "MUINFOUINT6", "!AD : !UL [0x!XL] ; $H=!UL,!UL", 6 },
+	{ "NOLOCKMATCH", "No matching locks were found in !AD", 2 },
+	{ "BADREGION", "Region is not BG, MM, or CM", 0 },
+	{ "LOCKSPACEUSE", "Estimated free lock space: !UL% of !UL pages", 2 },
+	{ "JIUNHNDINT", "An error during $ZINTERRUPT processing was not handled: !AD", 2 },
+	{ "GTMASSERT2", "!AD - Assert failed !AD line !UL for expression (!AD)", 7 },
+	{ "ZTRIGNOTRW", "ZTRIGGER cannot operate on read-only region !AD", 2 },
+	{ "TRIGMODREGNOTRW", "Trigger(s) cannot be added/changed/deleted/upgraded because region !AD is read-only", 2 },
+	{ "INSNOTJOINED", "Replicating Instance !AD is not a member of the same Group as Instance !AD", 4 },
+	{ "INSROLECHANGE", "Supplementary Instance !AD and non-Supplementary Instance !AD belong to the same Group", 4 },
+	{ "INSUNKNOWN", "Supplementary Instance !AD has no instance definition for non-Supplementary Instance !AD", 4 },
+	{ "NORESYNCSUPPLONLY", "NORESYNC only supported for Supplementary Instances", 0 },
+	{ "NORESYNCUPDATERONLY", "NORESYNC qualifier only allowed on a Supplementary Instance which allows local updates", 0 },
+	{ "NOSUPPLSUPPL", "Instance !AD is configured to perform local updates so it cannot receive from Supplementary Instance !AD", 4 },
+	{ "REPL2OLD", "Instance !AD uses a GT.M version that does not support connection with the current version on instance !AD", 4 },
+	{ "EXTRFILEXISTS", "Error opening output file: !AD -- File exists", 2 },
+	{ "MUUSERECOV", "Abnormal shutdown of journaled database !AD detected", 2 },
+	{ "SECNOTSUPPLEMENTARY", "!AD is a Supplementary Instance and so cannot act as a source to non-Supplementary Instance !AD ", 4 },
+	{ "SUPRCVRNEEDSSUPSRC", "Instance !AD is not configured to perform local updates so it cannot act as a receiver for non-Supplementary Instance !AD", 4 },
+	{ "PEERPIDMISMATCH", "Local socket peer with PID=!UL does not match specified PID=!UL", 2 },
+	{ "SETITIMERFAILED", "A setitimer() call returned an error status of !UL", 1 },
+	{ "UPDSYNC2MTINS", "Can only UPDATERESYNC with an empty instance file", 0 },
+	{ "UPDSYNCINSTFILE", "Error with instance file name specified in UPDATERESYNC qualifier", 0 },
+	{ "REUSEINSTNAME", "Error with instance name specified in REUSE qualifier", 0 },
+	{ "RCVRMANYSTRMS", "Receiver server now connecting to source stream [!2UL] but had previously connected to a different stream [!2UL]", 2 },
+	{ "RSYNCSTRMVAL", "RSYNC_STRM qualifier can only take on a value from 0 to 15", 0 },
+	{ "RLBKSTRMSEQ", "Stream journal seqno of the instance after rollback is Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3 },
+	{ "RESOLVESEQSTRM", "Resolving until stream sequence number Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3 },
+	{ "REPLINSTDBSTRM", "Replication instance file !AD has seqno [0x!16 at XQ] for Stream !2UL while database has a different seqno [0x!16 at XQ]", 5 },
+	{ "RESUMESTRMNUM", "Error with stream number specified in RESUME qualifier", 0 },
+	{ "ORLBKSTART", "ONLINE ROLLBACK started on instance !AD corresponding to !AD", 4 },
+	{ "ORLBKTERMNTD", "ONLINE ROLLBACK terminated on instance !AD corresponding to !AD with the above errors", 4 },
+	{ "ORLBKCMPLT", "ONLINE ROLLBACK completed successfully on instance !AD corresponding to !AD", 4 },
+	{ "ORLBKNOSTP", "ONLINE ROLLBACK proceeding with database updates. MUPIP STOP will no longer be allowed", 0 },
+	{ "ORLBKFRZPROG", "!AD : waiting for FREEZE on region !AD (!AD) to clear", 6 },
+	{ "ORLBKFRZOVER", "!AD : FREEZE on region !AD (!AD) cleared", 6 },
+	{ "ORLBKNOV4BLK", "Region !AD (!AD) has V4 format blocks. Database upgrade required. ONLINE ROLLBACK cannot continue", 4 },
+	{ "DBROLLEDBACK", "Concurrent ONLINE ROLLBACK detected on one or more regions. The current operation is no longer valid", 0 },
+	{ "DSEWCREINIT", "Database cache reinitialized by DSE for region !AD", 2 },
+	{ "MURNDWNOVRD", "OVERRIDE qualifier used with MUPIP RUNDOWN on database file !AD", 2 },
+	{ "REPLONLNRLBK", "ONLINE ROLLBACK detected. Starting afresh", 0 },
+	{ "SRVLCKWT2LNG", "PID !UL is holding the source server lock. Waited for !UL minute(s). Now exiting", 2 },
+	{ "IGNBMPMRKFREE", "Ignoring bitmap free-up operation for region !AD (!AD) due to concurrent ONLINE ROLLBACK", 4 },
+	{ "PERMGENFAIL", "Failed to determine access permissions to use for creation of !AD for file !AD", 4 },
+	{ "PERMGENDIAG", "Permissions: Proc(uid:!UL,gid:!UL), DB File(uid:!UL,gid:!UL,perm:!AD), Lib File(gid:!UL,perm:!AD), Group Mem(opener:!UL,owner:!UL)", 11 },
+	{ "MUTRUNC1ATIME", "Process with PID !UL already performing truncate in region !AD", 3 },
+	{ "MUTRUNCBACKINPROG", "Truncate detected concurrent backup in progress for region !AD", 2 },
+	{ "MUTRUNCERROR", "Truncate of region !AD encountered service error !AD", 4 },
+	{ "MUTRUNCFAIL", "Truncate failed after reorg", 0 },
+	{ "MUTRUNCNOSPACE", "Region !AD has insufficient space to meet truncate target percentage of !UL", 3 },
+	{ "MUTRUNCNOTBG", "Region !AD does not have access method BG ", 2 },
+	{ "MUTRUNCNOV4", "Region !AD is not fully upgraded from V4 format.", 2 },
+	{ "MUTRUNCPERCENT", "Truncate threshold percentage should be from 0 to 99", 0 },
+	{ "MUTRUNCSSINPROG", "Truncate detected concurrent snapshot in progress for region !AD", 2 },
+	{ "MUTRUNCSUCCESS", "Database file !AD truncated from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5 },
+	{ "RSYNCSTRMSUPPLONLY", "RSYNC_STRM qualifier only supported for Supplementary Instances", 0 },
+	{ "STRMNUMIS", "Stream # is !2UL", 1 },
+	{ "STRMNUMMISMTCH1", "Stream !2UL exists on the receiver instance file but is unknown on the source instance", 1 },
+	{ "STRMNUMMISMTCH2", "Stream !2UL exists on the source instance file but is unknown on the receiver instance", 1 },
+	{ "STRMSEQMISMTCH", "Unable to play update on Stream !2UL with seqno [0x!16 at XQ] as receiving instance has a different stream seqno [0x!16 at XQ]", 3 },
+	{ "LOCKSPACEINFO", "Region: !AD: processes on queue: !UL/!UL; LOCK slots in use: !UL/!UL; name space!ADfull", 8 },
+	{ "JRTNULLFAIL", "Applying NULL journal record failed.  Failure code: !AD.", 2 },
+	{ "LOCKSUB2LONG", "Following subscript is !UL bytes long which exceeds 255 byte limit.", 1 },
+	{ "RESRCWAIT", "Waiting briefly for the !AD semaphore for region !AD (!AD) was held by PID !UL (Sem. ID: !UL).", 8 },
+	{ "RESRCINTRLCKBYPAS", "!AD with PID !UL bypassing the !AD semaphore for region !AD (!AD) was held by PID !UL.", 10 },
+	{ "DBFHEADERRANY", "Database file !AD: control problem: !AD was 0x!XJ expecting 0x!XJ", 6 },
+	{ "REPLINSTFROZEN", "Instance !AZ is now Frozen", 1 },
+	{ "REPLINSTFREEZECOMMENT", "Freeze Comment: !AZ", 1 },
+	{ "REPLINSTUNFROZEN", "Instance !AZ is now Unfrozen", 1 },
+	{ "DSKNOSPCAVAIL", "Attempted write to file !AD failed due to lack of disk space. Retrying indefinitely.", 2 },
+	{ "DSKNOSPCBLOCKED", "Retry of write to file !AD suspended due to new instance freeze. Waiting for instance to be unfrozen.", 2 },
+	{ "DSKSPCAVAILABLE", "Write to file !AD succeeded after out-of-space condition cleared", 2 },
+	{ "ENOSPCQIODEFER", "Write to file !AD deferred due to lack of disk space", 2 },
+	{ "CUSTOMFILOPERR", "Error while doing !AD operation on file !AD", 4 },
+	{ "CUSTERRNOTFND", "Error mnemonic !AD specified in custom errors file is not valid for this version of GT.M", 2 },
+	{ "CUSTERRSYNTAX", "Syntax error in file !AD at line number !UL", 3 },
+	{ "ORLBKINPROG", "Online ROLLBACK in progress by PID !UL in region !AD", 3 },
+	{ "DBSPANGLOINCMP", "!AD Spanning node is missing. Block no !UL of spanning node is missing", 3 },
+	{ "DBSPANCHUNKORD", "!AD Chunk of !UL blocks is out of order", 3 },
+	{ "DBDATAMX", "!AD Record too large", 2 },
+	{ "DBIOERR", "Error while doing write operation on region !AD (!AD)", 4 },
+	{ "INITORRESUME", "UPDATERESYNC on a Supplementary Instance must additionally specify INITIALIZE or RESUME", 0 },
+	{ "GTMSECSHRNOARG0", "gtmsecshr cannot identify its origin - argv[0] is null", 0 },
+	{ "GTMSECSHRISNOT", "gtmsecshr is not running as gtmsecshr but !AD - must be gtmsecshr", 2 },
+	{ "GTMSECSHRBADDIR", "gtmsecshr is not running from $gtm_dist/gtmsecshrdir or $gtm_dist cannot be determined", 0 },
+	{ "JNLBUFFREGUPD", "Journal file buffer size for region !AD has been adjusted from !UL to !UL.", 4 },
+	{ "JNLBUFFDBUPD", "Journal file buffer size for database file !AD has been adjusted from !UL to !UL.", 4 },
+	{ "LOCKINCR2HIGH", "Attempt to increment a LOCK more than !UL times", 1 },
+	{ "LOCKIS", "!_!_Resource name: !AD", 2 },
+	{ "LDSPANGLOINCMP", "Incomplete spanning node found during load!/!_!_at File offset : [0x!16 at XQ]", 1 },
+	{ "MUFILRNDWNFL2", "Database section (id = !UL) belonging to database file !AD rundown failed", 3 },
+	{ "MUINSTFROZEN", "!AD : Instance !AZ is frozen. Waiting for instance to be unfrozen before proceeding with writes to database file !AD", 5 },
+	{ "MUINSTUNFROZEN", "!AD : Instance !AZ is now Unfrozen. Continuing with writes to database file !AD", 5 },
+	{ "GTMEISDIR", "!AD : Is a directory", 2 },
+	{ "SPCLZMSG", "The following error message cannot be driven through ZMESSAGE", 0 },
+	{ "MUNOTALLINTEG", "At least one region skipped. See the earlier messages", 0 },
+	{ "BKUPRUNNING", "Process !UL is currently backing up region !AD. Cannot start another backup.", 3 },
+	{ "MUSIZEINVARG", "MUPIP SIZE : Invalid parameter value for: !AD", 2 },
+	{ "MUSIZEFAIL", "MUPIP SIZE : failed.  Failure code: !AD.", 2 },
+	{ "SIDEEFFECTEVAL", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in actuallist, function arguments, non-Boolean binary operands or subscripts", 0 },
+	{ "CRYPTINIT2", "Could not initialize encryption library !AD. !AD", 4 },
+	{ "CRYPTDLNOOPEN2", "Could not load encryption library !AD. !AD", 4 },
+	{ "CRYPTBADCONFIG", "Could not retrieve data from encrypted file !AD due to bad encryption configuration. !AD", 4 },
+	{ "DBCOLLREQ", "JOURNAL EXTRACT proceeding without collation information for globals in database. !AD !AD", 4 },
+	{ "SETEXTRENV", "Database files are missing or Instance is frozen; supply the database files, wait for the freeze to lift or define gtm_extract_nocol to extract possibly incorrect collation", 0 },
+	{ "NOTALLDBRNDWN", "Not all regions were successfully rundown", 0 },
+	{ "TPRESTNESTERR", "TP restart signaled while handing error - treated as nested error - Use TROLLBACK in error handler to avoid this", 0 },
+	{ "JNLFILRDOPN", "Error opening journal file !AD for read for database file !AD", 4 },
+	{ "SEQNUMSEARCHTIMEOUT", "Timed out trying to find sequence number !@ZQ [0x!16 at XQ] in Journal File(s). See above messages for details. Source server exiting", 2 },
+	{ "FTOKKEY", "FTOK key 0x!XL", 1 },
+	{ "SEMID", "Semaphore id !UL", 1 },
+	{ "JNLQIOSALVAGE", "Journal IO lock salvaged", 0 },
+	{ "FAKENOSPCLEARED", "DEBUG: All fake ENOSPC flags were cleared !UL heartbeats ago", 1 },
+	{ "MMFILETOOLARGE", "Size of !AD region (!AD) is larger than maximum size supported for memory mapped I/O on this platform", 4 },
+	{ "BADZPEEKARG", "Missing, invalid or surplus !AD parameter for $ZPEEK()", 2 },
+	{ "BADZPEEKRANGE", "Access exception raised in memory range given to $ZPEEK()", 0 },
+	{ "BADZPEEKFMT", "$ZPEEK() value length inappropriate for selected format", 0 },
+	{ "DBMBMINCFREFIXED", "Master bitmap incorrectly marks local bitmap 0x!XL as free. Auto-corrected", 1 },
+	{ "NULLENTRYREF", "JOB command did not specify entryref", 0 },
+	{ "ZPEEKNORPLINFO", "$ZPEEK() unable to access requested replication structure", 0 },
+	{ "MMREGNOACCESS", "Region !AD (!AD) is no longer accessible. See prior error messages in the operator and application error logs", 4 },
+	{ "MALLOCMAXUNIX", "Exceeded maximum allocation defined by $gtm_max_storalloc", 0 },
+	{ "MALLOCMAXVMS", "Exceeded maximum allocation defined by GTM_MAX_STORALLOC", 0 },
+	{ "HOSTCONFLICT", "Host !AD could not open database file !AD because it is marked as already open on node !AD", 6 },
+	{ "GETADDRINFO", "Error in getting address info", 0 },
+	{ "GETNAMEINFO", "Error in getting name info", 0 },
+	{ "SOCKBIND", "Error in binding socket", 0 },
+	{ "INSTFRZDEFER", "Instance Freeze initiated by !AD error on region !AD deferred due to critical resource conflict", 4 },
+	{ "REGOPENRETRY", "Attempt to open region !AD (!AD) using startup shortcut failed due to conflicting database shutdown. Retrying...", 4 },
+	{ "REGOPENFAIL", "Failed to open region !AD (!AD) due to conflicting database shutdown activity", 4 },
+	{ "REPLINSTNOSHM", "Database !AD has no active connection to a replication journal pool", 2 },
+	{ "DEVPARMTOOSMALL", "Deviceparameter must be greater than zero (0)", 0 },
+	{ "REMOTEDBNOSPGBL", "Database region !AD contains portion of a spanning global and so cannot point to a remote file", 2 },
+	{ "NCTCOLLSPGBL", "Database region !AD contains portion of spanning global ^!AD and so cannot support non-zero numeric collation type", 4 },
+	{ "ACTCOLLMISMTCH", "Global ^!AD inherits alternative collation sequence #!UL from global directory but database file !AD contains different collation sequence #!UL for this global", 6 },
+	{ "GBLNOMAPTOREG", "Global !AD does not map to region !AD in current global directory", 4 },
+	{ "ISSPANGBL", "Operation cannot be performed on global ^!AD as it spans multiple regions in current global directory", 2 },
+	{ "TPNOSUPPORT", "Operation cannot be performed while inside of a TP transaction", 0 },
+	{ "GVSUBSERR", "Invalid subscripted global name specification in $VIEW() function", 0 },
+	{ "UNUSEDMSG1540", "TRIGNOSPANBL : Last used in V6.2-000", 0 },
+	{ "FILTERTIMEDOUT", "Replication server timed out attempting to read seqno !16 at XQ from external filter", 1 },
+	{ "TLSDLLNOOPEN", "Failed to load GT.M TLS/SSL library for secure communication", 0 },
+	{ "TLSINIT", "Failed to initialize GT.M TLS/SSL library for secure communication", 0 },
+	{ "TLSCONVSOCK", "Failed to convert Unix TCP/IP socket to TLS/SSL aware socket", 0 },
+	{ "TLSHANDSHAKE", "Connection to remote side using TLS/SSL protocol failed", 0 },
+	{ "TLSCONNINFO", "Failed to obtain information on the TLS/SSL connection", 0 },
+	{ "TLSIOERROR", "Error during TLS/SSL !AD operation", 2 },
+	{ "TLSRENEGOTIATE", "Failed to renegotiate TLS/SSL connection", 0 },
+	{ "REPLNOTLS", "!AD requested TLS/SSL communication but the !AD was either not started with TLSID qualifier or does not support TLS/SSL protocol", 4 },
+	{ "COLTRANSSTR2LONG", "Output string after collation transformation is too long", 0 },
+	{ "SOCKPASS", "Socket pass failed", 0 },
+	{ "SOCKACCEPT", "Socket accept failed", 0 },
+	{ "NOSOCKHANDLE", "No socket handle specified in WRITE /PASS", 0 },
+	{ "TRIGLOADFAIL", "MUPIP TRIGGER or $ZTRIGGER operation failed. Failure code: !AD.", 2 },
+	{ "SOCKPASSDATAMIX", "Attempt to use a LOCAL socket for both READ/WRITE and PASS/ACCEPT", 0 },
+	{ "NOGTCMDB", "!AD does not support operation on GT.CM database region: !AD", 4 },
+	{ "NOUSERDB", "!AD does not support operation on non-GDS format region: !AD", 4 },
+	{ "DSENOTOPEN", "DSE could not open region !AD - see DSE startup error message for cause", 2 },
+	{ "ZSOCKETATTR", "Attribute \"!AD\" invalid for $ZSOCKET function", 2 },
+	{ "ZSOCKETNOTSOCK", "$ZSOCKET function called but device is not a socket", 0 },
+	{ "CHSETALREADY", "CHSET !AD already specified for socket device", 2 },
+	{ "DSEMAXBLKSAV", "DSE cannot SAVE another block as it already has the maximum of !UL", 1 },
+	{ "BLKINVALID", "!XL is not a valid block as database file !AD has !XL total blocks", 4 },
+	{ "CANTBITMAP", "Can't perform this operation on a bit map (block at a 200 hexadecimal boundary)", 0 },
+	{ "AIMGBLKFAIL", "After image build for block !XL in region !AD failed in DSE or MUPIP", 3 },
+	{ "GTMDISTUNVERIF", "Environment variable $gtm_dist (!AD) could not be verified against the executables path (!AD)", 4 },
+	{ "CRYPTNOAPPEND", "APPEND disallowed on the encrypted file !AD", 2 },
+	{ "CRYPTNOSEEK", "SEEK disallowed on the encrypted file !AD", 2 },
+	{ "CRYPTNOTRUNC", "Not positioned at file start or EOF. TRUNCATE disallowed on the encrypted file !AD", 2 },
+	{ "CRYPTNOKEYSPEC", "Key name needs to be specified with KEY, IKEY, or OKEY device parameter for encrypted I/O", 0 },
+	{ "CRYPTNOOVERRIDE", "Cannot override IVEC and/or key without compromising integrity", 0 },
+	{ "CRYPTKEYTOOBIG", "Specified key has length !UL, which is greater than the maximum allowed key length !UL", 2 },
+	{ "CRYPTBADWRTPOS", "Encrypted WRITE disallowed from a position different than where the last WRITE completed", 0 },
+	{ "LABELNOTFND", "GOTO referenced a label that does not exist", 0 },
+	{ "RELINKCTLERR", "Error with relink control structure for $ZROUTINES directory !AD", 2 },
+	{ "INVLINKTMPDIR", "Value for $gtm_linktmpdir is either not found or not a directory(!AD) - Reverting to default value", 2 },
+	{ "NOEDITOR", "Can't find an executable editor: !AD", 2 },
+	{ "UPDPROC", "Update Process error", 0 },
+	{ "HLPPROC", "Helper Process error", 0 },
+	{ "REPLNOHASHTREC", "Sequence number 0x!16 at XQ contains trigger definition updates. !AD side must be at least V6.2-000 for replication to continue", 3 },
+	{ "REMOTEDBNOTRIG", "Trigger operations on global !AD not supported as it maps to database region !AD that points to a remote file", 4 },
+	{ "NEEDTRIGUPGRD", "Cannot do trigger operation on database file !AD until it is upgraded; Run MUPIP TRIGGER -UPGRADE first", 2 },
+	{ "REQRLNKCTLRNDWN", "Error accessing relinkctl file for $ZROUTINES directory !AD. Must be rundown", 2 },
+	{ "RLNKCTLRNDWNSUC", "Relinkctl file for $ZROUTINES directory !AD successfully rundown", 2 },
+	{ "RLNKCTLRNDWNFL", "Relinkctl file for $ZROUTINES directory !AD failed to rundown as it is open by !UL process(es)", 3 },
+	{ "MPROFRUNDOWN", "Error during M-profiling rundown", 0 },
+	{ "ZPEEKNOJNLINFO", "$ZPEEK() unable to access requested journal structure - region !AD is not currently journaled", 2 },
+	{ "TLSPARAM", "TLS parameter !AD !AD", 4 },
+	{ "RLNKRECLATCH", "Failed to get latch on relinkctl record for routine name !AZ in $ZROUTINES directory !AD", 3 },
+	{ "RLNKSHMLATCH", "Failed to get latch on relinkctl shared memory for $ZROUTINES directory !AD", 2 },
+	{ "JOBLVN2LONG", "The zwrite representation of a local variable transferred to a JOB'd process is too long. The zwrite representation cannot exceed !UL. Encountered size: !UL", 2 },
+	{ "NLRESTORE", "DB file header field !AD: !UL does not match the value used in original mapping - restoring to: !UL", 4 },
+	{ "PREALLOCATEFAIL", "Disk space reservation for !AD segment has failed", 2 },
+	{ "NODFRALLOCSUPP", "The NODEFER_ALLOCATE qualifier is not allowed on this operating system. Not changing the defer allocation flag", 0 },
+	{ "LASTWRITERBYPAS", "The last writer for database file !AD bypassed the rundown", 2 },
+	{ "TRIGUPBADLABEL", "Trigger upgrade cannot upgrade label !UL to !UL on ^!AD in region !AD", 6 },
+	{ "WEIRDSYSTIME", "Time reported by the system clock is outside the acceptable range.  Please check and correct the system clock", 0 },
+	{ "REPLSRCEXITERR", "Source server for secondary instance !AZ exited abnormally. See log file !AZ for details.", 2 },
+	{ "INVZBREAK", "Cannot set ZBREAK in direct mode routine (GTM$DMOD)", 0 },
+	{ "INVTMPDIR", "Value or default for $gtm_tmp is either not found or not a directory (!AD) - Reverting to default value", 2 },
+	{ "ARCTLMAXHIGH", "The environment variable !AD = !UL is too high. Assuming the maximum acceptable value of !UL", 4 },
+	{ "ARCTLMAXLOW", "The environment variable !AD = !UL is too low. Assuming the minimum acceptable value of !UL", 4 },
+	{ "NONTPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; blklvl: !UL, type: !UL, zpos: !AD", 11 },
+	{ "PBNPARMREQ", "A first parameter value !AD requires a second parameter specified containing !AD", 4 },
+	{ "PBNNOPARM", "First parameter !AD does not support a second parameter", 2 },
+	{ "PBNUNSUPSTRUCT", "$ZPEEK() does not support structure !AD", 2 },
+	{ "PBNINVALID", "!AD does not have a field named !AD", 4 },
+	{ "PBNNOFIELD", "%ZPEEKBYNAME() requires a field.item as its first parameter", 0 },
+	{ "JNLDBSEQNOMATCH", "Journal file !AD has beginning region sequence number [0x!16 at XQ], but database !AD has region sequence number [0x!16 at XQ]", 6 },
+	{ "MULTIPROCLATCH", "Failed to get multi-process latch at !AD", 2 },
+	{ "INVLOCALE", "Attempt to reset locale to supplied value of $gtm_locale (!AD) failed", 2 },
+	{ "NOMORESEMCNT", "!AD counter semaphore has reached its maximum and stopped counting for !AZ !AD. Run MUPIP JOURNAL -ROLLBACK -BACKWARD, MUPIP JOURNAL -RECOVER -BACKWARD or MUPIP RUNDOWN to restore the database files and shared resources to a clean state", 5 },
+	{ "SETQUALPROB", "Error getting !AD qualifier value", 2 },
+	{ "EXTRINTEGRITY", "Database !AD potentially contains spanning nodes or data encrypted with two different keys", 2 },
+	{ "CRYPTKEYRELEASEFAILED", "Could not safely release encryption key corresponding to file !AD. !AD", 4 },
+	{ "MUREENCRYPTSTART", "Database !AD : MUPIP REORG ENCRYPT started by pid !UL at transaction number [0x!16 at XQ]", 4 },
+	{ "MUREENCRYPTV4NOALLOW", "Database (re)encryption supported only on fully upgraded V5 databases. !AD has V4 format blocks", 2 },
+	{ "ENCRYPTCONFLT", "MUPIP REORG -ENCRYPT and MUPIP EXTRACT -FORMAT=BIN cannot run concurrently - skipping !AD on region: !AD, file: !AD", 6 },
+	{ "JNLPOOLRECOVERY", "The size of the data written to the journal pool (!UL) does not match the size of the data in the journal record (!UL) for the replication instance file !AZ. The journal pool has been recovered.", 3 },
+	{ "LOCKTIMINGINTP", "A LOCK at !AD within a TP transaction is waiting in a final TP retry, which may lead to a general response gap", 2 },
 };
 
 LITDEF	int ERR_ACK = 150372361;
@@ -2893,9 +2894,10 @@ LITDEF	int ERR_MUREENCRYPTSTART = 150383843;
 LITDEF	int ERR_MUREENCRYPTV4NOALLOW = 150383850;
 LITDEF	int ERR_ENCRYPTCONFLT = 150383858;
 LITDEF	int ERR_JNLPOOLRECOVERY = 150383866;
+LITDEF	int ERR_LOCKTIMINGINTP = 150383872;
 
 GBLDEF	err_ctl merrors_ctl = {
 	246,
 	"GTM",
 	&merrors[0],
-	1439};
+	1440};
diff --git a/sr_linux/gtm_env_sp.csh b/sr_linux/gtm_env_sp.csh
index 07cc0cd..fd20e94 100755
--- a/sr_linux/gtm_env_sp.csh
+++ b/sr_linux/gtm_env_sp.csh
@@ -167,20 +167,40 @@ if ( $?gtm_version_change == "1" ) then
             		setenv gt_cc_options_common "$gt_cc_options_common -DNeedInAddrPort"
         	endif
 		if ( "x86_64" == $mach_type ) then
-			# Add uninitialized variable checking on 64bit platforms (GCC on our 32bits platforms don't support it
-			# correctly). Do not enable on SUSE or 4.4.7 on 64-bit because both platforms either cannot disable
-			# maybe-unitialized or require -O to be defined to disable maybe-unitialized.
-			cc --version |& grep -q -E '4.4.7|4.7.2|4.6.3|SUSE'
-			if (0 != $status) then
-				setenv  gt_cc_options_common    "$gt_cc_options_common -Wuninitialized "
+			# Add flags for warnings that we want and don't want.
+			set desired_warnings = ( -Wall )
+			# The following warnings would be desirable, but together can result in megabytes of warning messages. We
+			# should look into how hard they would be to clean up. It is possible that some header changes could
+			# reduce a large number of these.
+			#set desired_warnings = ( $desired_warnings -Wconversion -Wsign-compare )
+			#
+			# We should also look into how hard these would be to restore. Some of the warnings come from generated
+			# code and macro use, making them harder to deal with.
+			set undesired_warnings = ( -Wunused-result -Wparentheses -Wunused-value -Wunused-variable )
+			set undesired_warnings = ( $undesired_warnings -Wmaybe-uninitialized -Wchar-subscripts )
+			set undesired_warnings = ( $undesired_warnings -Wunused-but-set-variable )
+			if ( { (cc --version |& grep -q -E '4.4.7|4.7.2|4.6.3|SUSE') } ) then
+				set undesired_warnings = ( $undesired_warnings -Wuninitialized )
 			endif
-			# Disable unused-result or maybe-uninitialized warnings if supported by the compiler as we don't care about
-			# them. Blindly adding disable flags causes errors. Note: Compilers that don't support --help=warnings will
-			# not output anything useful.
-
-			set  disableflags = `cc --help=warnings | & awk '{if ($1~/maybe-uninitialized/) \
-					print "-Wno-maybe-uninitialized "; if ($1~/unused-result/) print "-Wno-unused-result ";}'`
-			setenv  gt_cc_options_common    "$gt_cc_options_common $disableflags"
+			# If our compiler happens not to support --help=warnings, the following will produce junk, but it is
+			# unlikely that the junk will match the warning options of interest, so it shouldn't be a problem.
+			set -f supported_warnings = `cc --help=warnings | & awk '$1 ~ /^-/ {print $1}'`
+			foreach w ($desired_warnings)
+				# Add the warning to a copy of the supported list, discarding duplicates.
+				set -f tmp_warnings = ($supported_warnings $w)
+				if ("$supported_warnings" == "$tmp_warnings") then
+					# Adding the desired warning didn't change the list, so it is supported.
+					setenv gt_cc_options_common "$gt_cc_options_common $w"
+				endif
+			end
+			foreach w ($undesired_warnings)
+				# Add the warning to a copy of the supported list, discarding duplicates.
+				set -f tmp_warnings = ($supported_warnings $w)
+				if ("$supported_warnings" == "$tmp_warnings") then
+					# Adding the desired warning didn't change the list, so it is supported.
+					setenv gt_cc_options_common "$gt_cc_options_common -Wno-${w:s/-W//}"
+				endif
+			end
 		endif
 	endif
 
diff --git a/sr_linux/release_name.h b/sr_linux/release_name.h
index 672c74d..4478cb4 100644
--- a/sr_linux/release_name.h
+++ b/sr_linux/release_name.h
@@ -11,15 +11,15 @@
  ****************************************************************/
 
 #ifdef __CYGWIN__
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 CYGWIN x86"
+#define GTM_RELEASE_NAME 	"GT.M V6.3-000A CYGWIN x86"
 #elif defined(__ia64)
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux IA64"
+#define GTM_RELEASE_NAME 	"GT.M V6.3-000A Linux IA64"
 #elif defined(__x86_64__)
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux x86_64"
+#define GTM_RELEASE_NAME 	"GT.M V6.3-000A Linux x86_64"
 #elif defined(__s390__)
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux S390X"
+#define GTM_RELEASE_NAME 	"GT.M V6.3-000A Linux S390X"
 #else
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux x86"
+#define GTM_RELEASE_NAME 	"GT.M V6.3-000A Linux x86"
 #endif
 #define GTM_PRODUCT 		"GT.M"
 #define GTM_VERSION		"V6.3"
diff --git a/sr_port/anticipatory_freeze.h b/sr_port/anticipatory_freeze.h
index 8e961fd..18a5fbf 100644
--- a/sr_port/anticipatory_freeze.h
+++ b/sr_port/anticipatory_freeze.h
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2012-2015 Fidelity National Information	*
+ * Copyright (c) 2012-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -24,6 +24,7 @@
 #include "sleep_cnt.h"			/* needed for SLEEP_INSTFREEZEWAIT macro */
 #include "wait_for_disk_space.h"	/* needed by DB_LSEEKWRITE macro for prototype */
 #include "gtmimagename.h"		/* needed for IS_GTM_IMAGE */
+#include "forced_exit_err_display.h"
 
 boolean_t		is_anticipatory_freeze_needed(sgmnt_addrs *csa, int msg_id);
 void			set_anticipatory_freeze(sgmnt_addrs *csa, int msg_id);
@@ -110,10 +111,26 @@ error_def(ERR_TEXT);
 }
 
 #define AFREEZE_MASK				0x01
+/* Only use CUSTOM_ERRORS_AVAILABLE if you are specifically interested in whether the custom errors variable is set,
+ * 		or if you know the journal pool isn't open (yet).
+ * 	Otherwise, use INST_FREEZE_ON_ERROR_POLICY.
+ * Only use CUSTOM_ERRORS_LOADED if you are in the code path towards checking a custom error.
+ * 	Otherwise, use INST_FREEZE_ON_ERROR_POLICY.
+ * Use INST_FREEZE_ON_ERROR_POLICY to select alternative journal pool attach/detach behavior.
+ */
 #define CUSTOM_ERRORS_AVAILABLE			(0 != (TREF(gtm_custom_errors)).len)
 #define CUSTOM_ERRORS_LOADED			((NULL != jnlpool.jnlpool_ctl)							\
 							&& jnlpool.jnlpool_ctl->instfreeze_environ_inited)
 #define INST_FREEZE_ON_ERROR_POLICY		(CUSTOM_ERRORS_AVAILABLE || CUSTOM_ERRORS_LOADED)
+
+/* INSTANCE_FREEZE_HONORED determines whether operations on a particular database can trigger an instance freeze.
+ * INST_FREEZE_ON_ERROR_ENABLED() determines whether operations on a particular database can trigger an instance freeze in the
+ * 	current operating environment.
+ * INST_FREEZE_ON_MSG_ENABLED() determines whether the given message should trigger an instance freeze when associated with
+ * 	the specified database.
+ * INST_FREEZE_ON_NOSPC_ENABLED() determines whether an out-of-space condition associated with the specified database should
+ * 	trigger an instance freeze.
+ */
 #define INSTANCE_FREEZE_HONORED(CSA)		(DBG_ASSERT(NULL != CSA)							\
 							((NULL != jnlpool.jnlpool_ctl)						\
 								&& ((REPL_ALLOWED(((sgmnt_addrs *)CSA)->hdr))			\
@@ -126,6 +143,10 @@ error_def(ERR_TEXT);
 							&& (NULL != is_anticipatory_freeze_needed_fnptr)			\
 							&& (*is_anticipatory_freeze_needed_fnptr)(CSA, MSG))
 #define INST_FREEZE_ON_NOSPC_ENABLED(CSA)	INST_FREEZE_ON_MSG_ENABLED(CSA, ERR_DSKNOSPCAVAIL)
+
+/* IS_REPL_INST_FROZEN is TRUE if we know that the instance is frozen.
+ * IS_REPL_INST_UNFROZEN is TRUE if we know that the instance is not frozen.
+ */
 #define IS_REPL_INST_FROZEN			((NULL != jnlpool.jnlpool_ctl) && jnlpool.jnlpool_ctl->freeze)
 #define IS_REPL_INST_UNFROZEN			((NULL != jnlpool.jnlpool_ctl) && !jnlpool.jnlpool_ctl->freeze)
 
@@ -204,7 +225,6 @@ error_def(ERR_TEXT);
 	GBLREF	jnlpool_addrs	jnlpool;						\
 	GBLREF	int4		exit_state;						\
 	GBLREF	int4		exi_condition;						\
-	GBLREF	int4		forced_exit_err;					\
 											\
 	assert(NULL != jnlpool.jnlpool_ctl);						\
 	/* If this region is not replicated, do not care for instance freezes */	\
@@ -212,8 +232,7 @@ error_def(ERR_TEXT);
 	{										\
 		if (exit_state != 0)							\
 		{									\
-			send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);	\
-			gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);	\
+			forced_exit_err_display();					\
 			EXIT(-exi_condition);						\
 		}									\
 		SHORT_SLEEP(SLEEP_INSTFREEZEWAIT);					\
diff --git a/sr_port/db_auto_upgrade.c b/sr_port/db_auto_upgrade.c
index 8700c2f..4c00f9f 100644
--- a/sr_port/db_auto_upgrade.c
+++ b/sr_port/db_auto_upgrade.c
@@ -160,8 +160,12 @@ void db_auto_upgrade(gd_region *reg)
 				 csd->encryption_hash2_start_tn = 0;
 				 memset(csd->encryption_hash2, 0, GTMCRYPT_RESERVED_HASH_LEN);
 				 SPIN_SLEEP_MASK(csd) = 0;	/* previously unused, but was 7FF and it should now default to 0 */
-				break;
 			case GDSMV63000:
+				/* GT.M V63001 moved ftok_counter_halted and access_counter_halted from filehdr to node_local */
+				csd->filler_ftok_counter_halted = FALSE;
+				csd->filler_access_counter_halted = FALSE;
+				break;
+			case GDSMV63000A:
 				/* Nothing to do for this version since it is GDSMVCURR for now. */
 				assert(FALSE);		/* When this assert fails, it means a new GDSMV* was created, */
 				break;			/* 	so a new "case" needs to be added BEFORE the assert. */
diff --git a/sr_port/dbcertify_certify_phase.c b/sr_port/dbcertify_certify_phase.c
index c947352..50dbc26 100755
--- a/sr_port/dbcertify_certify_phase.c
+++ b/sr_port/dbcertify_certify_phase.c
@@ -517,6 +517,9 @@ boolean_t dbc_split_blk(phase_static_area *psa, block_id blk_num, enum gdsblk_ty
 			case gdsblk_gvtleaf:
 				tmp_blk_type = (tmp_blk_levl ? gdsblk_gvtindex : gdsblk_gvtleaf);
 				break;
+			default:
+				assert(FALSE && tmp_blk_type);
+				break;						/* NOTREACHED */
 		}
 	} while (TRUE);
 	assert(psa->first_rec_key->end);
diff --git a/sr_port/dfa_calc.c b/sr_port/dfa_calc.c
index 9f03251..9a165cb 100755
--- a/sr_port/dfa_calc.c
+++ b/sr_port/dfa_calc.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -17,13 +18,13 @@
 #include "gtm_string.h"
 
 /* the following macro checks that a 1 dimensional array reference is valid i.e. array[index] is within defined limits */
-#define check_1dim_array_bound(array, index)    assert((index) < ARRAYSIZE(array))
+#define ASSERT_IF_1DIM_ARRAY_OVERFLOW(array, index) assert(index < ARRAYSIZE(array))
 
 /* the following macro checks that a 2 dimensional array reference is valid i.e. array[row][col] is within defined limits */
-#define check_2dim_array_bound(array, row, col)                         \
-{                                                                       \
-        assert((row) < ARRAYSIZE(array));             			\
-        assert((col) < (SIZEOF(array[0]) / SIZEOF(array[0][0])));       \
+#define ASSERT_IF_2DIM_ARRAY_OVERFLOW(array, row, col)	\
+{							\
+	assert((row) < ARRAYSIZE(array));		\
+	assert((col) < ARRAYSIZE(array[0]));		\
 }
 
 /* Note: in various places, dfa_calc() makes a reference to the array 'typemask'.  dfa_calc() is executed at compile-time.
@@ -45,13 +46,16 @@ static	uint4	classmask[CHAR_CLASSES] =
  * at compile-time, and that all data structures built in this procedure are compiled at the end into a terse string
  * of values that will be passed to do_pattern (through patstr). do_pattern(), which operates at run-time will
  * interpret this string of values and do the actual DFA work (DFA = Discrete Finite Automaton).
+ *
+ * Refer to the section in Aho & Sehti compiler book on going directly "From a regular expression to a DFA" for
+ * a description of how the below algorithm works.
  */
 int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **fstchar_ptr, uint4 **outchar_ptr)
 {
 	uint4			*locoutchar;
 	uint4			pattern_mask;
 	unsigned char		*textstring;
-	int 			offset[2 * (MAX_SYM + 1)];
+	int 			offset[MAX_DFA_STATES + 2];
 	int			pos_offset[CHAR_CLASSES];
 	int			fst[2][2], lst[2][2];
 	int4			charcls, maskcls, numexpand, count, clsnum, maxcls, clsposlis;
@@ -66,18 +70,12 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 				 * we might consider declaring states as a 'char'
 				 * array after all...
 				 */
-	boolean_t		states[2 * MAX_SYM][CHAR_CLASSES];
-	boolean_t		fpos[2 * MAX_SYM][CHAR_CLASSES];
-	int			d_trans[2 * MAX_SYM][CHAR_CLASSES];
-	int			pos_lis[2 * MAX_SYM][CHAR_CLASSES];
+	boolean_t		states[MAX_DFA_STATES][MAX_DFA_STATES];
+	boolean_t		fpos[MAX_DFA_STATES][MAX_DFA_STATES];
+	int			d_trans[MAX_DFA_STATES][MAX_DFA_STATES];
+	int			pos_lis[MAX_DFA_STATES][MAX_DFA_STATES];
 	struct c_trns_tb	c_trans;
 
-	/* Note: in various places, this procedure makes a reference to the array 'typemask'.
-	 * This procedure is executed at compile-time. The contents of the array typemask is static, but, at
-	 * run-time, the pointer that is used to access the array pattern_typemask may change whenever a program
-	 * executes the command View "PATCODE":tablename.  As a result, the pattern masks that the GT.M compiler
-	 * uses may  differ from the ones that are in operation at run-time.
-	 */
 	locoutchar = *outchar_ptr;
 	if (0 == leaf_num)
 		return -1;
@@ -85,7 +83,6 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 	{
 		pattern_mask = PATM_DFA;
 		state_num = 1;
-		check_1dim_array_bound(leaves->nullable, leaf_num);
 		leaves->nullable[leaf_num] = FALSE;
 		leaves->letter[leaf_num][0] = DFABIT;
 		leaves->letter[leaf_num][1] = -1;
@@ -108,10 +105,9 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 		states[state_num][charcls] = TRUE;
 		for (maskcls = 0; leaves->letter[0][maskcls] >= 0; maskcls++)
 		{
-			check_1dim_array_bound(leaves->letter[0], maskcls);
 			if (!(leaves->letter[0][maskcls] & DFABIT))
 			{
-				check_2dim_array_bound(fpos, charcls, charcls + 1);
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, charcls, charcls + 1);
 				fpos[charcls][charcls + 1] = TRUE;
 				lst[FST][FST] = charcls;
 				lst[FST][LST] = charcls;
@@ -121,10 +117,11 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 					seq = 0;
 				for (numexpand = 1; expand->meta_c[seq][numexpand] != leaves->letter[0][maskcls]; numexpand++)
 					;
-				check_1dim_array_bound(pos_lis, (pos_offset[seq] + numexpand));
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(expand->meta_c, seq, numexpand);
+				ASSERT_IF_1DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand));
 				for (count = 0; pos_lis[pos_offset[seq] + numexpand][count] >= 0; count++)
 					;
-				check_2dim_array_bound(pos_lis, (pos_offset[seq] + numexpand), count);
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand), count);
 				pos_lis[pos_offset[seq] + numexpand][count] = charcls;
 				charcls++;
 			} else
@@ -138,12 +135,14 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 					expseq = expand->num_e[seq];
 				for (numexpand = 0; numexpand < expseq; numexpand++)
 				{
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(states, state_num, charcls);
 					states[state_num][charcls] = TRUE;
 					fst[FST][LST] = charcls;
 					lst[FST][LST] = charcls;
+					ASSERT_IF_1DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand));
 					for (count = 0; pos_lis[pos_offset[seq] + numexpand][count] >= 0; count++)
 						;
-					check_2dim_array_bound(pos_lis, (pos_offset[seq] + numexpand), count);
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand), count);
 					pos_lis[pos_offset[seq] + numexpand][count] = charcls;
 					charcls++;
 				}
@@ -152,17 +151,16 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 		fst[LST][FST] = charcls;
 		fst[LST][LST] = charcls;
 		lst[LST][FST] = charcls;
-		if(!leaves->nullable[1])
+		if (!leaves->nullable[1])
 		{
 			nodes.last[0][charcls] = TRUE;
 			maxcls = charcls;
 		}
 		for (maskcls = 0; leaves->letter[1][maskcls] >= 0; maskcls++)
 		{
-			check_1dim_array_bound(leaves->letter[1], maskcls);
 			if (!(leaves->letter[1][maskcls] & DFABIT))
 			{
-				check_2dim_array_bound(fpos, charcls, charcls + 1);
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, charcls, charcls + 1);
 				fpos[charcls][charcls + 1] = TRUE;
 				lst[LST][FST] = charcls;
 				lst[LST][LST] = charcls;
@@ -172,10 +170,11 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 					seq = 0;
 				for (numexpand = 1; expand->meta_c[seq][numexpand] != leaves->letter[1][maskcls]; numexpand++)
 					;
-				check_1dim_array_bound(pos_lis, (pos_offset[seq] + numexpand));
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(expand->meta_c, seq, numexpand);
+				ASSERT_IF_1DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand));
 				for (count = 0; pos_lis[pos_offset[seq] + numexpand][count] >= 0; count++)
 					;
-				check_2dim_array_bound(pos_lis, (pos_offset[seq] + numexpand), count);
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand), count);
 				pos_lis[pos_offset[seq] + numexpand][count] = charcls;
 				charcls++;
 			} else
@@ -189,13 +188,14 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 					expseq = expand->num_e[seq];
 				for (numexpand = 0; numexpand < expseq; numexpand++)
 				{
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(nodes.last, 0, charcls);
 					nodes.last[0][charcls] = TRUE;
 					fst[LST][LST] = charcls;
 					lst[LST][LST] = charcls;
-					check_1dim_array_bound(pos_lis, (pos_offset[seq] + numexpand));
+					ASSERT_IF_1DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand));
 					for (count = 0; pos_lis[pos_offset[seq] + numexpand][count] >= 0; count++)
 						;
-					check_2dim_array_bound(pos_lis, (pos_offset[seq] + numexpand), count);
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand), count);
 					pos_lis[pos_offset[seq] + numexpand][count] = charcls;
 					charcls++;
 				}
@@ -203,18 +203,21 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 		}
 		if (leaves->nullable[0])
 		{
-			assert((2 * MAX_SYM) > lst[FST][LST]);
-			assert(CHAR_CLASSES > fst[LST][LST]);
+			assert(MAX_DFA_STATES > lst[FST][LST]);
+			assert(MAX_DFA_STATES > fst[LST][LST]);
 			for (numexpand = lst[FST][FST]; numexpand <= lst[FST][LST]; numexpand++)
 			{
 				for (count = fst[FST][FST]; count <= fst[FST][LST]; count++)
 				{
-					check_2dim_array_bound(fpos, numexpand, count);
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, numexpand, count);
 					fpos[numexpand][count] = TRUE;
 				}
 			}
 			for (numexpand = fst[LST][FST]; numexpand <= fst[LST][LST]; numexpand++)
+			{
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(states, state_num, numexpand);
 				states[state_num][numexpand] = TRUE;
+			}
 		}
 		if (leaves->nullable[1])
 		{
@@ -223,19 +226,22 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 			{
 				for (count = fst[LST][FST]; count <= fst[LST][LST]; count++)
 				{
-					check_2dim_array_bound(fpos, numexpand, count);
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, numexpand, count);
 					fpos[numexpand][count] = TRUE;
 				}
 			}
 			for (numexpand = lst[FST][FST]; numexpand <= lst[FST][LST]; numexpand++)
+			{
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(nodes.last, 0, numexpand);
 				nodes.last[0][numexpand] = TRUE;
+			}
 			maxcls = charcls;
 		}
 		for (numexpand = lst[FST][FST]; numexpand <= lst[FST][LST]; numexpand++)
 		{
 			for (count = fst[LST][FST]; count <= fst[LST][LST]; count++)
 			{
-				check_2dim_array_bound(fpos, numexpand, count);
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, numexpand, count);
 				fpos[numexpand][count] = TRUE;
 			}
 		}
@@ -243,17 +249,15 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 			clsnum = lst[LST][FST];
 		for (node_num = 1; node_num < leaf_num; node_num++)
 		{
-			nodes.nullable[node_num] = nodes.nullable[node_num - 1] &
-						   leaves->nullable[node_num + 1];
+			nodes.nullable[node_num] = nodes.nullable[node_num - 1] & leaves->nullable[node_num + 1];
 			if (leaves->nullable[node_num + 1])
 			{
 				for (maskcls = 0; maskcls < charcls; maskcls++)
-				{
-					check_2dim_array_bound(nodes.last, node_num, maskcls);
 					nodes.last[node_num][maskcls] = nodes.last[node_num - 1][maskcls];
-				}
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(nodes.last, node_num, maskcls);
 			} else
 			{
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(nodes.last, node_num, charcls);
 				nodes.last[node_num][charcls] = TRUE;
 				maxcls = charcls;
 			}
@@ -262,15 +266,15 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 			lst[LST][FST] = charcls;
 			for (maskcls = 0; leaves->letter[node_num + 1][maskcls] >= 0; maskcls++)
 			{
-				check_1dim_array_bound(leaves->letter[node_num + 1], maskcls);
+				ASSERT_IF_1DIM_ARRAY_OVERFLOW(leaves->letter[node_num + 1], maskcls);
 				if (!(leaves->letter[node_num + 1][maskcls] & DFABIT))
 				{
-					check_2dim_array_bound(fpos, charcls, charcls + 1);
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, charcls, charcls + 1);
 					fpos[charcls][charcls + 1] = TRUE;
 					lst[LST][FST] = charcls;
 					lst[LST][LST] = charcls;
-					assert(leaves->letter[node_num + 1][maskcls] >= 0 &&
-					       leaves->letter[node_num + 1][maskcls] < SIZEOF(typemask));
+					assert((0 <= leaves->letter[node_num + 1][maskcls])
+						&& (leaves->letter[node_num + 1][maskcls] < SIZEOF(typemask)));
 					seq = patmaskseq(typemask[leaves->letter[node_num + 1][maskcls]]);
 					if (seq < 0)
 						seq = 0;
@@ -278,10 +282,11 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 						expand->meta_c[seq][numexpand] != leaves->letter[node_num + 1][maskcls];
 						numexpand++)
 						;
-					check_1dim_array_bound(pos_lis, (pos_offset[seq] + numexpand));
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(expand->meta_c, seq, numexpand);
+					ASSERT_IF_1DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand));
 					for (count = 0; pos_lis[pos_offset[seq] + numexpand][count] >= 0; count++)
 						;
-					check_2dim_array_bound(pos_lis, (pos_offset[seq] + numexpand), count);
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand), count);
 					pos_lis[pos_offset[seq] + numexpand][count] = charcls;
 					charcls++;
 				} else
@@ -295,6 +300,7 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 						expseq = expand->num_e[seq];
 					for (numexpand = 0; numexpand < expseq; numexpand++)
 					{
+						ASSERT_IF_2DIM_ARRAY_OVERFLOW(nodes.last, node_num, charcls);
 						nodes.last[node_num][charcls] = TRUE;
 						if (nodes.nullable[node_num - 1])
 							states[state_num][charcls] = TRUE;
@@ -302,7 +308,7 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 						lst[LST][LST] = charcls;
 						for (count = 0; pos_lis[pos_offset[seq] + numexpand][count] >= 0; count++)
 							;
-						check_2dim_array_bound(pos_lis, (pos_offset[seq] + numexpand), count);
+						ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, (pos_offset[seq] + numexpand), count);
 						pos_lis[pos_offset[seq] + numexpand][count] = charcls;
 						charcls++;
 					}
@@ -311,37 +317,39 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 			if (nodes.nullable[node_num - 1])
 			{
 				for (numexpand = fst[LST][FST]; numexpand <= fst[LST][LST]; numexpand++)
-				{
-					check_1dim_array_bound(states[state_num], numexpand);
 					states[state_num][numexpand] = TRUE;
-				}
+				ASSERT_IF_1DIM_ARRAY_OVERFLOW(states[state_num], numexpand);
 			}
 			if (leaves->nullable[node_num + 1])
 			{
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(nodes.last, node_num, charcls - 1);
 				nodes.last[node_num][charcls - 1] = TRUE;
 				for (numexpand = lst[LST][FST]; numexpand <= lst[LST][LST]; numexpand++)
 				{
 					for (count = fst[LST][FST]; count <= fst[LST][LST]; count++)
-					{
-						check_2dim_array_bound(fpos, numexpand, count);
 						fpos[numexpand][count] = TRUE;
-					}
+					ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, numexpand, count);
 				}
 				maxcls = charcls;
 			}
 			for (numexpand = clsnum; numexpand < maxcls; numexpand++)
+			{
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, numexpand, count);
 				for (count = fst[LST][FST]; count <= fst[LST][LST]; count++)
 					if (nodes.last[node_num - 1][numexpand])
 						fpos[numexpand][count] = TRUE;
+				ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, numexpand, count);
+			}
+			ASSERT_IF_1DIM_ARRAY_OVERFLOW(leaves->nullable, node_num + 1);
 			if (!leaves->nullable[node_num + 1])
 				clsnum = lst[LST][FST];
 		}
 		sym_num = charcls;
 		state_num++;
-		check_1dim_array_bound(offset, state_num + 1);
 		for (seq = 1; seq < state_num; seq++)
 		{
 			charcls = 0;
+			ASSERT_IF_1DIM_ARRAY_OVERFLOW(offset, seq + 1);
 			offset[seq + 1]++;
 			offset[seq + 1] += offset[seq];
 			for (maskcls = 0; maskcls < CHAR_CLASSES; maskcls++)
@@ -355,14 +363,15 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 							clsposlis = pos_lis[charcls + numexpand][maxcls];
 							if (states[seq][clsposlis])
 							{
+								ASSERT_IF_2DIM_ARRAY_OVERFLOW(fpos, clsposlis, clsnum);
 								for (clsnum = 0; clsnum <= sym_num; clsnum++)
-								{
-									check_1dim_array_bound(states[state_num], clsnum);
 									states[state_num][clsnum] |= fpos[clsposlis][clsnum];
-								}
+								ASSERT_IF_2DIM_ARRAY_OVERFLOW(states, state_num, clsnum);
 							}
 						}
-						check_1dim_array_bound(states, state_num);
+						ASSERT_IF_2DIM_ARRAY_OVERFLOW(pos_lis, charcls + numexpand, maxcls);
+						ASSERT_IF_1DIM_ARRAY_OVERFLOW(states[state_num], clsnum);
+						ASSERT_IF_1DIM_ARRAY_OVERFLOW(states, state_num);
 						for (count = 0;
 							memcmp(states[count], states[state_num], (sym_num + 1) * SIZEOF(boolean_t))
 								&& (count < state_num);
@@ -370,19 +379,21 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 							;
 						if (count > 0)
 						{
+							ASSERT_IF_2DIM_ARRAY_OVERFLOW(d_trans, seq, charcls);
 							if (0 == numexpand)
 							{
 								d_trans[seq][charcls] = count;
+								ASSERT_IF_1DIM_ARRAY_OVERFLOW(c_trans.c, seq);
 								for (clsnum = 0;
 									(clsnum < c_trans.c[seq])
 										&& (c_trans.trns[seq][clsnum] != count);
 									clsnum++)
 									;
-								check_1dim_array_bound(c_trans.p_msk[seq], clsnum);
+								ASSERT_IF_2DIM_ARRAY_OVERFLOW(c_trans.trns, seq, clsnum);
+								ASSERT_IF_1DIM_ARRAY_OVERFLOW(c_trans.p_msk[seq], clsnum);
 								if (clsnum == c_trans.c[seq])
 								{
 									c_trans.p_msk[seq][clsnum] = classmask[maskcls];
-									check_1dim_array_bound(c_trans.trns[seq], clsnum);
 									c_trans.trns[seq][clsnum] = count;
 									offset[seq + 1] += 2;
 									c_trans.c[seq]++;
@@ -390,6 +401,7 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 									c_trans.p_msk[seq][clsnum] |= classmask[maskcls];
 							} else if (d_trans[seq][charcls] != count)
 							{
+								ASSERT_IF_2DIM_ARRAY_OVERFLOW(d_trans, seq, charcls + numexpand);
 								d_trans[seq][charcls + numexpand] = count;
 								offset[seq + 1] += 3;
 							}
@@ -409,7 +421,7 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 		*outchar_ptr += offset[state_num] + 2;
 		if ((*outchar_ptr - *fstchar_ptr > MAX_DFA_SPACE) || ((offset[state_num] + 1) > (MAX_PATTERN_LENGTH / 2)))
 			return -1;
-		*locoutchar++ = PATM_DFA;
+		*locoutchar++ = pattern_mask;
 		*locoutchar++ = offset[state_num];
 		for (seq = 1; seq < state_num; seq++)
 		{
@@ -420,7 +432,7 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 				{
 					for (count = 1; count < expand->num_e[numexpand]; count++)
 					{
-						check_2dim_array_bound(d_trans, seq, charcls + count);
+						ASSERT_IF_2DIM_ARRAY_OVERFLOW(d_trans, seq, charcls + count);
 						if (d_trans[seq][charcls + count] >= 0)
 						{
 							*locoutchar++ = PATM_STRLIT;
@@ -433,10 +445,7 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 			}
 			for (numexpand = 0; numexpand < c_trans.c[seq]; numexpand++)
 			{
-				check_2dim_array_bound(c_trans.p_msk, seq, numexpand);
 				*locoutchar++ = c_trans.p_msk[seq][numexpand];
-				check_2dim_array_bound(c_trans.trns, seq, numexpand);
-				check_1dim_array_bound(offset, c_trans.trns[seq][numexpand]);
 				*locoutchar++ = offset[c_trans.trns[seq][numexpand]];
 			}
 			*locoutchar++ = (states[seq][sym_num]) ? PATM_ACS : PATM_DFA;
@@ -453,13 +462,11 @@ int dfa_calc(struct leaf *leaves, int leaf_num, struct e_table *expand, uint4 **
 			pattern_mask = PATM_STRLIT;
 			for (maskcls = 0; leaves->letter[0][maskcls] >= 0; maskcls++)
 				;
-			check_1dim_array_bound(leaves->letter[0], maskcls);
 			*outchar_ptr += PAT_STRLIT_PADDING + ((maskcls + SIZEOF(uint4) - 1) / SIZEOF(uint4));
 		} else
 		{
 			for (numexpand = 0; leaves->letter[0][numexpand] >= 0; numexpand++)
 				pattern_mask |= leaves->letter[0][numexpand];
-			check_1dim_array_bound(leaves->letter[0], numexpand);
 		}
 		if (*outchar_ptr - *fstchar_ptr > MAX_PATTERN_LENGTH)
 			return -1;
diff --git a/sr_port/dpgbldir.c b/sr_port/dpgbldir.c
index 0e9a799..8df6ef8 100644
--- a/sr_port/dpgbldir.c
+++ b/sr_port/dpgbldir.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -62,7 +62,7 @@ Prototype:      ?
 Return:         *gd_addr -- a pointer to the global directory structure
 
 Arguments:      mval *v	-- an mval that contains the name of the global
-		directory to be accessed.  The name may require translation.
+		directory to be accessed.
 
 Side Effects:   NONE
 
@@ -108,6 +108,37 @@ gd_addr *zgbldir(mval *v)
 }
 
 /*+
+Function:       ZGBLDIR_NAME_LOOKUP_ONLY
+
+		This function searches the list of global directory names for
+		the specified names.  If not found, it retruns NULL.
+
+Syntax:         gd_addr *zgbldir_name_lookup_only(mval *v)
+
+Prototype:      ?
+
+Return:         *gd_addr -- a pointer to the global directory structure
+
+Arguments:      mval *v	-- an mval that contains the name of the global
+		directory to be accessed.  The name may require translation.
+
+Side Effects:   NONE
+
+Notes:          NONE
+-*/
+gd_addr *zgbldir_name_lookup_only(mval *v)
+{
+	gd_addr		*gd_ptr;
+	gdr_name	*name;
+	mstr		temp_mstr, *tran_name;
+
+	for (name = gdr_name_head;  name;  name = (gdr_name *)name->link)
+		if (v->str.len == name->name.len && !memcmp(v->str.addr, name->name.addr, v->str.len))
+			return name->gd_ptr;
+	return NULL;
+}
+
+/*+
 Function:       GD_LOAD
 
 Syntax:		gd_addr *gd_load(mstr *gd_name)
diff --git a/sr_port/dpgbldir.h b/sr_port/dpgbldir.h
index 69c8ede..753dd62 100755
--- a/sr_port/dpgbldir.h
+++ b/sr_port/dpgbldir.h
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -30,6 +31,7 @@ typedef struct gvt_container_struct
 
 boolean_t	get_first_gdr_name(gd_addr *current_gd_header, mstr *log_nam);
 gd_addr		*zgbldir(mval *v);
+gd_addr		*zgbldir_name_lookup_only(mval *v);
 gd_addr		*gd_load(mstr *v);
 gd_addr		*get_next_gdr(gd_addr *prev);
 mstr		*get_name(mstr *ms);
diff --git a/sr_port/dse_dmp_fhead.c b/sr_port/dse_dmp_fhead.c
index 16fc215..8a876a4 100755
--- a/sr_port/dse_dmp_fhead.c
+++ b/sr_port/dse_dmp_fhead.c
@@ -274,6 +274,9 @@ void dse_dmp_fhead (void)
 		util_out_print("  wcs_wtstart intent cnt  0x!XL", TRUE, cnl->intent_wtstart);
 		util_out_print(0, TRUE);
 		util_out_print("  Quick database rundown is active    !AD", TRUE, 5, (csd->mumps_can_bypass ? " TRUE" : "FALSE"));
+		util_out_print("  Access control counter halted       !AD", FALSE,
+									5, cnl->access_counter_halted ? " TRUE" : "FALSE");
+		util_out_print("  FTOK counter halted          !AD", TRUE, 5, cnl->ftok_counter_halted ? " TRUE" : "FALSE");
 		util_out_print("  Access control rundown bypasses !9UL", FALSE, cnl->dbrndwn_access_skip);
 		util_out_print("  FTOK rundown bypasses   !10UL", TRUE, cnl->dbrndwn_ftok_skip);
 		util_out_print("  Epoch taper    !AD", TRUE, 5, (csd->epoch_taper ? " TRUE" : "FALSE"));
diff --git a/sr_port/emit_code.c b/sr_port/emit_code.c
index 6562300..bd83aec 100644
--- a/sr_port/emit_code.c
+++ b/sr_port/emit_code.c
@@ -1220,6 +1220,9 @@ void emit_trip(oprtype *opr, boolean_t val_output, uint4 generic_inst, int trg_r
 					ocnt_ref_seen = TRUE;
 					ocnt_ref_opr = opr;
 					break;
+				default:
+					assert(FALSE && opr->oprclass);
+					break;						/* NOTREACHED */
 			}
 			if (!inst_emitted) {
 				NON_RISC_ONLY(IGEN_GENERIC_REG(generic_inst, trg_reg))
diff --git a/sr_port/expritem.c b/sr_port/expritem.c
index f19c5ea..12f58fb 100755
--- a/sr_port/expritem.c
+++ b/sr_port/expritem.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -619,19 +619,18 @@ int expritem(oprtype *a)
 		}
 		if (saw_se && (OLD_SE != TREF(side_effect_handling)))
 		{
-			assert(0 < TREF(expr_depth));
 			assert(TREF(expr_depth) <= TREF(side_effect_depth));
 			(TREF(side_effect_base))[TREF(expr_depth)] = TRUE;
 		}
 		functrip = t1 = a->oprval.tref;
 		if (parse_warn || !(TREF(side_effect_base))[TREF(expr_depth)] || (NO_REF == functrip->operand[1].oprclass))
 			return TRUE;	/* 1 argument gets a pass */
-		assert(0 < TREF(expr_depth));
 		switch (functrip->opcode)
 		{
 			case OC_EXFUN:		/* relies on protection from actuallist */
 			case OC_EXTEXFUN:	/* relies on protection from actuallist */
 			case OC_FNFGNCAL:	/* relies on protection from actuallist */
+			case OC_EXFUNRET:	/* arguments are addresses/locations rather than values */
 			case OC_FNGET:		/* $get() gets a pass because protects itself */
 			case OC_FNINCR:		/* $increment() gets a pass because its ordering needs no protection */
 			case OC_FNNEXT:		/* only has 1 arg, but uses 2 for lvn interface */
@@ -640,6 +639,7 @@ int expritem(oprtype *a)
 			case OC_INDINCR:	/* $increment() gets a pass because its ordering needs no protection */
 				return TRUE;
 		}	/* default falls through */
+		assert(0 < TREF(expr_depth));
 		/* This block protects lvn evaluations in earlier arguments from changes caused by side effects in later
 		 * arguments by capturing the prechange value in a temporary; coerce or preexisting temporary might already
 		 * do the job and indirect local evaluations may already have shifted to occur earlier. This algorithm is similar
diff --git a/sr_port/ext2jnl.c b/sr_port/ext2jnl.c
index 75347ac..4848392 100755
--- a/sr_port/ext2jnl.c
+++ b/sr_port/ext2jnl.c
@@ -272,6 +272,8 @@ char	*ext2jnl(char *ptr, jnl_record *rec, seq_num saved_jnl_seqno, seq_num saved
 			rec->jrec_tcom.prefix.forwptr =  rec->jrec_tcom.suffix.backptr = TCOM_RECLEN;
 			rec->jrec_tcom.suffix.suffix_code = JNL_REC_SUFFIX_CODE;
 			return ((char_ptr_t)rec) + TCOM_RECLEN;
+		default:
+			break;
 	}
 	assert(IS_SET_KILL_ZKILL_ZTWORM_LGTRIG_ZTRIG(rectype));
 	ptr = STRTOK_R(NULL, "\\", &strtokptr);	/* get the update_num field */
diff --git a/sr_port/f_zchar.c b/sr_port/f_zchar.c
index cb88677..46bc8cd 100644
--- a/sr_port/f_zchar.c
+++ b/sr_port/f_zchar.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2010-2015 Fidelity National Information 	*
+ * Copyright (c) 2010-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -81,7 +81,6 @@ int f_zchar(oprtype *a, opctype op)
 		v.str.len = INTCAST(c - v.str.addr);
 		stringpool.free = (unsigned char *)c;
 		CLEAR_MVAL_BITS(&v);
-		s2n(&v);
 		*a = put_lit(&v);
 		return TRUE;
 	}
diff --git a/sr_port/gbldefs.c b/sr_port/gbldefs.c
index 412bf03..0492600 100644
--- a/sr_port/gbldefs.c
+++ b/sr_port/gbldefs.c
@@ -642,7 +642,7 @@ LITDEF	char	*jnl_file_state_lit[JNL_FILE_STATES] =
 };
 /* Change the initialization if struct_jrec_tcom in jnl.h changes */
 GBLDEF	struct_jrec_tcom	tcom_record = {{JRT_TCOM, TCOM_RECLEN, 0, 0, 0, 0},
-					0, 0, 0, 0, "", {TCOM_RECLEN, JNL_REC_SUFFIX_CODE}};
+					{0}, 0, 0, 0, "", {TCOM_RECLEN, JNL_REC_SUFFIX_CODE}};
 GBLDEF	jnl_gbls_t		jgbl;
 GBLDEF	short 		crash_count;
 GBLDEF	trans_num	start_tn;
diff --git a/sr_port/gds_blk_upgrade.h b/sr_port/gds_blk_upgrade.h
index 7385af7..e4218d2 100755
--- a/sr_port/gds_blk_upgrade.h
+++ b/sr_port/gds_blk_upgrade.h
@@ -73,7 +73,7 @@ GBLREF	boolean_t	dse_running;
 		if ((fully_upgraded) || (SIZEOF(v15_blk_hdr) > ((v15_blk_hdr_ptr_t)(srcbuffptr))->bsiz))			\
 		{														\
 			upgrdstatus = SS_NORMAL;										\
-			if (NULL != (ondskblkver))										\
+			if (NULL != (void *)(ondskblkver))									\
 				*(ondskblkver) = GDSV6;										\
 		} else														\
 		{														\
@@ -85,13 +85,13 @@ GBLREF	boolean_t	dse_running;
 	} else if (UPGRADE_NEVER == gtm_blkupgrade_flag)									\
 	{															\
 		upgrdstatus = SS_NORMAL;											\
-		if (NULL != (ondskblkver))											\
+		if (NULL != (void *)(ondskblkver))										\
 			*(ondskblkver) = GDSV6;											\
 	} else if (UPGRADE_ALWAYS == gtm_blkupgrade_flag)									\
 	{															\
 		upgrdstatus = gds_blk_upgrade((sm_uc_ptr_t)(srcbuffptr), (sm_uc_ptr_t)(trgbuffptr),				\
 					      (curcsd)->blk_size, (ondskblkver));						\
-		if (NULL != (ondskblkver))											\
+		if (NULL != (void *)(ondskblkver))										\
 			*(ondskblkver) = GDSV4;											\
                 if (srcbuffptr != trgbuffptr)											\
                         srcbuffptr = NULL;											\
diff --git a/sr_port/gdsbt.h b/sr_port/gdsbt.h
index 08ea8cf..eb804fa 100644
--- a/sr_port/gdsbt.h
+++ b/sr_port/gdsbt.h
@@ -649,6 +649,8 @@ typedef struct node_local_struct
 	boolean_t	lastwriterbypas_msg_issued;	/* whether a LASTWRITERBYPAS message has been once issued for this db */
 	boolean_t	first_writer_seen;	/* Has a process with read-write access to the database opened it yet */
 	boolean_t	first_nonbypas_writer_seen;	/* TRUE when first writer is seen that also does not bypass ftok/access */
+	boolean_t	ftok_counter_halted;		/* The ftok semaphore counter reached 32K at some point in time */
+	boolean_t	access_counter_halted;		/* The access semaphore counter reached 32K at some point in time */
 	uint4		filler_8byte_align1;
 #	ifdef GTM_CRYPT_UPDATES_REPORT
 	blk_info	blk_infos[BLK_INFO_ARRAY_SIZE];
@@ -887,9 +889,10 @@ MBSTART	{															\
 		tmp_epoch_taper_start_dbuffs = MAX(1,CNL->epoch_taper_start_dbuffs); /* stable value for all calculations */	\
 		if ((relative_overall_taper > 64) && (relative_overall_taper < 96)) 						\
 			CNL->epoch_taper_need_fsync = TRUE;									\
-		if (DO_FSYNC && (relative_overall_taper > 75) && CNL->epoch_taper_need_fsync)					\
+		if (DO_FSYNC && (relative_overall_taper > 96) && CNL->epoch_taper_need_fsync)					\
 		{														\
 			CNL->epoch_taper_need_fsync = FALSE;									\
+			INCR_GVSTATS_COUNTER(CSA, CNL, n_db_fsync, 1);								\
 			fsync(FILE_INFO(REG)->fd);										\
 		}														\
 		FLUSH_TARGET = MIN(tmp_epoch_taper_start_dbuffs, MAX(1,(tmp_epoch_taper_start_dbuffs *				\
diff --git a/sr_port/gdsdbver_sp.h b/sr_port/gdsdbver_sp.h
index 83b325a..d39ee8d 100644
--- a/sr_port/gdsdbver_sp.h
+++ b/sr_port/gdsdbver_sp.h
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2015 Fidelity National Information		*
+ * Copyright (c) 2015-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -31,4 +31,5 @@ ENUM_ENTRY(GDSMV60002),		/* New field mutex_spin_parms.mutex_que_entry_space_siz
 ENUM_ENTRY(GDSMV62001),		/* New field hasht_upgrade_needed for ^#t upgrade */
 ENUM_ENTRY(GDSMV62002),		/* New field defer_allocate needed for database file preallocation and ^#t upgrade */
 ENUM_ENTRY(GDSMV63000),		/* New field non_null_iv to indicate IV mode for encrypted blocks */
+ENUM_ENTRY(GDSMV63000A),	/* Move fields ftok_counter_halted and access_counter_halted from fileheader to nodelocal */
 ENUM_ENTRY(GDSMVLAST)
diff --git a/sr_port/gdsfhead.h b/sr_port/gdsfhead.h
index d76d47b..b429f92 100644
--- a/sr_port/gdsfhead.h
+++ b/sr_port/gdsfhead.h
@@ -339,14 +339,15 @@ gtm_uint64_t verify_queue(que_head_ptr_t qhdr);
  */
 #define	GVKEY_INCREMENT_ORDER(KEY)			\
 {							\
-	int	end;					\
+	int		end;				\
+	unsigned char 	*base = KEY->base;		\
 							\
 	end = KEY->end;					\
-	assert(KEY_DELIMITER == KEY->base[end - 1]);	\
-	assert(KEY_DELIMITER == KEY->base[end]);	\
+	assert(KEY_DELIMITER == base[end - 1]);		\
+	assert(KEY_DELIMITER == base[end]);		\
 	assert(end + 1 < KEY->top);			\
-	KEY->base[end - 1] = 1;				\
-	KEY->base[end + 1] = KEY_DELIMITER;		\
+	base[end - 1] = 1;				\
+	base[end + 1] = KEY_DELIMITER;			\
 	KEY->end = end + 1;				\
 }
 
@@ -1520,13 +1521,7 @@ n_db_csh_acct_rec_types
 	sgmnt_data_ptr_t	CSD;							\
 											\
 	CSD = CSA->hdr;									\
-	assert((256 == GTMCRYPT_RESERVED_ENCR_SPACE)					\
-		&& (GTMCRYPT_RESERVED_ENCR_SPACE == 2 * GTMCRYPT_RESERVED_HASH_LEN	\
-			+ SIZEOF(CSD->non_null_iv)					\
-			+ SIZEOF(CSD->encryption_hash_cutoff)				\
-			+ SIZEOF(CSD->encryption_hash2_start_tn)			\
-			+ SIZEOF(CSD->filler_encrypt)));				\
-	CHPTR = (char *)&CSD->encryption_hash + GTMCRYPT_RESERVED_ENCR_SPACE;		\
+	CHPTR = (char *)CSD->filler_encrypt + SIZEOF(CSD->filler_encrypt);		\
 	CLRLEN = (char *)&CSD->intrpt_recov_resync_strm_seqno - CHPTR;			\
 	memset(CHPTR, 0, CLRLEN);							\
 	gvstats_rec_csd2cnl(CSA);	/* we update gvstats in cnl */			\
@@ -1934,8 +1929,8 @@ typedef struct sgmnt_data_struct
 	boolean_t	maxkeysz_assured;	/* All the keys in the database are less than MAX_KEY_SIZE */
 	boolean_t	hasht_upgrade_needed;	/* ^#t global needs to be upgraded from V62000 to post-V62000 format */
 	boolean_t	defer_allocate;		/* If FALSE: Use fallocate() preallocate space from the disk */
-	boolean_t	ftok_counter_halted;	/* Stop increasing/decreasing the ftok counter semaphore */
-	boolean_t	access_counter_halted;	/* Stop increasing/decreasing the access counter semaphore */
+	boolean_t	filler_ftok_counter_halted;	/* Used only in V6.3-000. Kept as a filler just to be safe */
+	boolean_t	filler_access_counter_halted;	/* Used only in V6.3-000. Kept as a filler just to be safe */
 	char		filler_7k[708];
 	char		filler_8k[1024];
 	/********************************************************/
@@ -2416,7 +2411,6 @@ typedef struct	sgmnt_addrs_struct
 	uint4		root_search_cycle;	/* local copy of cnl->root_search_cycle */
 	uint4		onln_rlbk_cycle;	/* local copy of cnl->onln_rlbk_cycle */
 	uint4		db_onln_rlbkd_cycle;	/* local copy of cnl->db_onln_rlbkd_cycle */
-	boolean_t	dbinit_shm_created;	/* TRUE if shared memory for this region was created by this process */
 	boolean_t	read_only_fs;		/* TRUE if the region is read_only and the header was not updated due to EROFS */
 	boolean_t	crit_probe;		/* flag for indicating the process is doing a crit probe on this region */
 	probecrit_rec_t	probecrit_rec;		/* fields defined in tab_probecrit_rec.h and initialized in probecrit_rec.h */
diff --git a/sr_port/gtm_malloc_src.h b/sr_port/gtm_malloc_src.h
index e2c217e..a66ba97 100755
--- a/sr_port/gtm_malloc_src.h
+++ b/sr_port/gtm_malloc_src.h
@@ -339,7 +339,7 @@ GBLRDEF readonly struct
 /* Note, tiz important the first 4 bytes of this are same as markerChar defined below as that is the value both nullHMark
  * and nullTMark are asserted against to validate against corruption.
  */
-= {0xde, 0xad, 0xbe, 0xef, 0x00, 0xde, 0xad, 0xbe, 0xef}
+= {{0xde, 0xad, 0xbe, 0xef}, {0x00}, {0xde, 0xad, 0xbe, 0xef}}
 #endif
 ;
 #ifdef DEBUG
diff --git a/sr_port/gtm_string.h b/sr_port/gtm_string.h
index 9561a14..a50847d 100755
--- a/sr_port/gtm_string.h
+++ b/sr_port/gtm_string.h
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -21,6 +21,7 @@
 #define STRERROR	strerror
 #define	STRCPY(DEST, SOURCE)		strcpy((char *)(DEST), (char *)(SOURCE))
 #define STRNCPY_LIT(DEST, LITERAL)	strncpy((char *)(DEST), (char *)(LITERAL), SIZEOF(LITERAL) - 1)	/* BYPASSOK */
+#define STRNCPY_LIT_FULL(DEST, LITERAL)	strncpy((char *)(DEST), (char *)(LITERAL), SIZEOF(LITERAL))	/* BYPASSOK */
 #define	STRNCPY_STR(DEST, STRING, LEN)	strncpy((char *)(DEST), (char *)(STRING), LEN)
 #define	STRCMP(SOURCE, DEST)		strcmp((char *)(SOURCE), (char *)(DEST))
 #define	STRNCMP_LIT(SOURCE, LITERAL)	strncmp(SOURCE, LITERAL, SIZEOF(LITERAL) - 1)		/* BYPASSOK */
diff --git a/sr_port/gvcst_blk_build.c b/sr_port/gvcst_blk_build.c
index 4c10304..1a0371c 100755
--- a/sr_port/gvcst_blk_build.c
+++ b/sr_port/gvcst_blk_build.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -130,7 +131,11 @@ void gvcst_blk_build(cw_set_element *cse, sm_uc_ptr_t base_addr, trans_num ctn)
 	DEBUG_ONLY(blktn = ((blk_hdr_ptr_t)base_addr)->tn);
 	assert(!IS_MCODE_RUNNING || !cs_addrs->t_commit_crit || (dba_bg != cs_data->acc_meth) || (n_gds_t_op < cse->mode)
 	       || (cse->mode == gds_t_acquired) || (blktn UNIX_ONLY(<) VMS_ONLY(<=) ctn));
-	assert((ctn < cs_addrs->ti->early_tn) || write_after_image);
+	/* With memory instruction reordering (currently possible only on AIX with the POWER architecture) it is possible
+	 * the early_tn we read in the assert below gets executed BEFORE the curr_tn read that happens a few lines above.
+	 * That could then fail this assert (GTM-8523). Account for that with the AIX_ONLY condition below.
+	 */
+	assert((ctn < cs_addrs->ti->early_tn) || write_after_image AIX_ONLY(|| (cs_data->acc_meth == dba_mm)));
 	((blk_hdr_ptr_t)base_addr)->bver = GDSVCURR;
 	((blk_hdr_ptr_t)base_addr)->tn = ctn;
 	((blk_hdr_ptr_t)base_addr)->bsiz = UINTCAST(array->len);
diff --git a/sr_port/gvcst_init.c b/sr_port/gvcst_init.c
index dd82708..b0396b8 100755
--- a/sr_port/gvcst_init.c
+++ b/sr_port/gvcst_init.c
@@ -58,6 +58,7 @@
 #include "gvt_hashtab.h"
 #include "gtmmsg.h"
 #include "op.h"
+#include "set_gbuff_limit.h"	/* Needed for set_gbuff_limit() */
 #ifdef UNIX
 #include "heartbeat_timer.h"
 #include "anticipatory_freeze.h"
@@ -72,8 +73,6 @@
 
 GBLREF	boolean_t		mu_reorg_process;
 GBLREF	gd_region		*gv_cur_region, *db_init_region;
-GBLREF	sgmnt_data_ptr_t	cs_data;
-GBLREF	sgmnt_addrs		*cs_addrs;
 GBLREF	sgmnt_addrs		*cs_addrs_list;
 GBLREF	boolean_t		gtcm_connection;
 GBLREF	bool			licensed;
@@ -706,17 +705,8 @@ void gvcst_init(gd_region *greg)
 	{	/* if reorg or dbg apply env var */
 		reg_nam_mval.str.len = greg->rname_len;
 		reg_nam_mval.str.addr = (char *)&greg->rname;
-		op_view(VARLSTCNT(3) &literal_poollimit, &reg_nam_mval, &(TREF(gbuff_limit)));
+		set_gbuff_limit(&csa, &csd, &(TREF(gbuff_limit)));
 #		ifdef DEBUG
-		if (!mu_reorg_process)		/* in dbg, randomize sizes to get test coverage */
-		{
-			if ((process_id & 1) ^ csa->regnum)
-			{
-				csa->gbuff_limit ^= process_id;
-				csa->gbuff_limit &= ((csd->n_bts / 2) - 1);
-			} else
-				csa->gbuff_limit = 0;
-		}
 		if (process_id & 2)		/* also randomize our_midnite */
 		{
 			csa->our_midnite = csa->acc_meth.bg.cache_state->cache_array + csd->bt_buckets;
diff --git a/sr_port/m_write.c b/sr_port/m_write.c
index ace285b..058bd31 100755
--- a/sr_port/m_write.c
+++ b/sr_port/m_write.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -140,7 +140,6 @@ int m_write(void)
 			ptx--;
 			stringpool.free = (unsigned char *) cp;
 			lit.str.len = INTCAST(cp - lit.str.addr);
-			s2n(&lit);
 			t1->opcode = OC_WRITE;
 			t1->operand[0] = put_lit(&lit);
 		}
diff --git a/sr_port/mdef.h b/sr_port/mdef.h
index 7d2e3de..2446471 100644
--- a/sr_port/mdef.h
+++ b/sr_port/mdef.h
@@ -263,7 +263,7 @@ typedef UINTPTR_T uintszofptr_t;
 #if defined(__i386) || defined(__x86_64__) || defined(__ia64) || defined(__MVS__) || defined(Linux390)
 #define NON_RISC_ONLY(x)	x
 #define RISC_ONLY(x)
-#elif defined(__sparc) || defined(_AIX) || defined(__hppa) || defined(__alpha)
+#elif defined(__sparc) || defined(_AIX) || defined(__alpha)
 #define RISC_ONLY(x)	x
 #define NON_RISC_ONLY(x)
 #endif
@@ -523,23 +523,23 @@ mval *underr_strict(mval *start, ...);
 # ifdef UNICODE_SUPPORTED
 #  ifdef GTM64
 #   define DEFINE_MVAL_COMMON(TYPE, EXPONENT, SIGN, UTF_LEN, LENGTH, ADDRESS, MANT_LOW, MANT_HIGH) \
-	{TYPE, SIGN, EXPONENT, 0xff, 0xff, MANT_LOW, MANT_HIGH, UTF_LEN, LENGTH, ADDRESS}
+	{TYPE, SIGN, EXPONENT, 0xff, 0xff, {MANT_LOW, MANT_HIGH}, {UTF_LEN, LENGTH, ADDRESS}}
 #  else
 #   define DEFINE_MVAL_COMMON(TYPE, EXPONENT, SIGN, UTF_LEN, LENGTH, ADDRESS, MANT_LOW, MANT_HIGH) \
-	{TYPE, SIGN, EXPONENT, 0xff, 0xff, 0, MANT_LOW, MANT_HIGH, UTF_LEN, LENGTH, ADDRESS}
+	{TYPE, SIGN, EXPONENT, 0xff, 0xff, 0, {MANT_LOW, MANT_HIGH}, {UTF_LEN, LENGTH, ADDRESS}}
 #  endif /* GTM64 */
 # else
 #  define DEFINE_MVAL_COMMON(TYPE, EXPONENT, SIGN, UTF_LEN, LENGTH, ADDRESS, MANT_LOW, MANT_HIGH) \
-	{TYPE, SIGN, EXPONENT, 0xff, MANT_LOW, MANT_HIGH, LENGTH, ADDRESS}
+	{TYPE, SIGN, EXPONENT, 0xff, {MANT_LOW, MANT_HIGH}, {LENGTH, ADDRESS}}
 # endif	/* UNICODE */
 #else	/* end BIGENDIAN -- start LITTLEENDIAN */
 # ifdef UNICODE_SUPPORTED
 #  ifdef GTM64
 #    define DEFINE_MVAL_COMMON(TYPE, EXPONENT, SIGN, UTF_LEN, LENGTH, ADDRESS, MANT_LOW, MANT_HIGH) \
-	{TYPE, EXPONENT, SIGN, 0xff, 0xff, MANT_LOW, MANT_HIGH, UTF_LEN, LENGTH, ADDRESS}
+	{TYPE, EXPONENT, SIGN, 0xff, 0xff, {MANT_LOW, MANT_HIGH}, {UTF_LEN, LENGTH, ADDRESS}}
 #  else
 #    define DEFINE_MVAL_COMMON(TYPE, EXPONENT, SIGN, UTF_LEN, LENGTH, ADDRESS, MANT_LOW, MANT_HIGH) \
-	{TYPE, EXPONENT, SIGN, 0xff, 0xff, 0, MANT_LOW, MANT_HIGH, UTF_LEN, LENGTH, ADDRESS}
+	{TYPE, EXPONENT, SIGN, 0xff, 0xff, 0, {MANT_LOW, MANT_HIGH}, {UTF_LEN, LENGTH, ADDRESS}}
 #  endif /* GTM64 */
 # else
 #  define DEFINE_MVAL_COMMON(TYPE, EXPONENT, SIGN, UTF_LEN, LENGTH, ADDRESS, MANT_LOW, MANT_HIGH) \
@@ -700,21 +700,14 @@ void m_usleep(int useconds);
 #	define UNIX_ONLY_COMMA(X)
 #endif
 
-/* HP-UX on PA-RISC and z/OS are not able to have dynamic file extensions while running in MM access mode
- * HP-UX:
- * All HP-UX before v3 (PA-RISC and 11i v1 and v2) have distinct memory map buffers and file system buffers with no simple
- * way to map between them.  To get around this problem the "Unified File Cache" was implemented in v3 for both Itanium
- * and PA-RISC which solves things.  The only way around the limitation in v1 and v2 would be to strategically place calls
- * to "msync" throughout the code to keep the memory maps and file cache buffers in sync.  This is too onerous a price
- * to pay.
- * z/OS:
+/* z/OS is not able to have dynamic file extensions while running in MM access mode
  * If multiple processes are accessing the same mapped file, and one process needs to extend/remap the file,
  * all the other processes must also unmap the file.
  *
  * This same comment is in the test framework in set_gtm_machtype.csh.  If this comment is updated, also update the other.
  */
 #ifdef UNIX
-#	if !defined(__hppa) && !defined(__MVS__)
+#	if !defined(__MVS__)
 #	define MM_FILE_EXT_OK
 #	else
 #	undef MM_FILE_EXT_OK
@@ -819,10 +812,6 @@ typedef struct
 							   for VMS) */
 		} parts;
 	} u;
-#if defined __hppa
-	volatile int4	hp_latch_space[4];		/* Used for HP load_and_clear locking instructions per
-							   HP whitepaper on spinlocks */
-#endif
 } global_latch_t;
 #define latch_image_count latch_word
 
@@ -836,9 +825,7 @@ typedef struct compswap_time_field_struct
 	 * size of global_latch_t's largest size (on HPUX).
 	 */
 global_latch_t	time_latch;
-#ifndef __hppa
 int4		hp_latch_space[4];	/* padding only on non-hpux systems */
-#endif
 } compswap_time_field;
 /* takes value of time() but needs to be 4 byte so can use compswap on it. Not using time_t, as that is an indeterminate size on
  * various platforms. Value is time (in seconds) in a compare/swap updated field so only one process performs a given task in a
@@ -1730,7 +1717,6 @@ typedef enum
 #define GTMCRYPT_HASH_LEN		64
 #define GTMCRYPT_RESERVED_HASH_LEN	80
 #define GTMCRYPT_HASH_HEX_LEN		GTMCRYPT_HASH_LEN * 2
-#define GTMCRYPT_RESERVED_ENCR_SPACE	256
 
 #define GTMCRYPT_PLUGIN_DIR_NAME	"plugin"
 #define GTMCRYPT_UTIL_LIBNAME		"libgtmcryptutil.so"
@@ -1758,7 +1744,7 @@ typedef enum
 #define	GTM_TRUNCATE_ONLY(X)		X
 
 /* Currently triggers are supported only on UNIX */
-#if defined(UNIX) && !defined(__hppa)	/* triggers not supported on HPUX-HPPA */
+#if defined(UNIX)
 #	define	GTM_TRIGGER
 #	define	GTMTRIG_ONLY(X)			X
 #	define	NON_GTMTRIG_ONLY(X)
diff --git a/sr_port/merrors.msg b/sr_port/merrors.msg
index 38ff004..af592ba 100644
--- a/sr_port/merrors.msg
+++ b/sr_port/merrors.msg
@@ -1617,6 +1617,7 @@ MUREENCRYPTSTART	<Database !AD : MUPIP REORG ENCRYPT started by pid !UL at trans
 MUREENCRYPTV4NOALLOW	<Database (re)encryption supported only on fully upgraded V5 databases. !AD has V4 format blocks>/error/fao=2!/ansi=0
 ENCRYPTCONFLT	<MUPIP REORG -ENCRYPT and MUPIP EXTRACT -FORMAT=BIN cannot run concurrently - skipping !AD on region: !AD, file: !AD>/error/fao=6!/ansi=0
 JNLPOOLRECOVERY	<The size of the data written to the journal pool (!UL) does not match the size of the data in the journal record (!UL) for the replication instance file !AZ. The journal pool has been recovered.>/error/fao=3!/ansi=0
+LOCKTIMINGINTP	<A LOCK at !AD within a TP transaction is waiting in a final TP retry, which may lead to a general response gap>/warning/fao=2!/ansi=0
 !
 ! If there are UNUSEDMSG* lines unused for more than one year and at least two non-patch releases, use them before adding new lines.
 !
diff --git a/sr_port/mprof_funcs.c b/sr_port/mprof_funcs.c
index 3b00459..cdddbba 100644
--- a/sr_port/mprof_funcs.c
+++ b/sr_port/mprof_funcs.c
@@ -92,15 +92,21 @@ LITDEF  MIDENT_CONST(above_routine, "*above*");
 }
 #endif
 
-#define UPDATE_TIME(x)													\
+#define UPDATE_TIME(MPP)												\
 {															\
-	x->e.usr_time += ((TREF(mprof_ptr))->tcurr.tms_utime - (TREF(mprof_ptr))->tprev.tms_utime);			\
-	x->e.sys_time += ((TREF(mprof_ptr))->tcurr.tms_stime - (TREF(mprof_ptr))->tprev.tms_stime);			\
-	x->e.elp_time += ((TREF(mprof_ptr))->tcurr.tms_etime - (TREF(mprof_ptr))->tprev.tms_etime);			\
+	mprof_wrapper *mpp = (MPP);											\
+															\
+	if (mpp->tcurr.tms_utime > mpp->tprev.tms_utime)								\
+		mpp->curr_tblnd->e.usr_time += (mpp->tcurr.tms_utime - mpp->tprev.tms_utime);				\
+	if (mpp->tcurr.tms_stime > mpp->tprev.tms_stime)								\
+		mpp->curr_tblnd->e.sys_time += (mpp->tcurr.tms_stime - mpp->tprev.tms_stime);				\
+	if (mpp->tcurr.tms_etime > mpp->tprev.tms_etime)								\
+		mpp->curr_tblnd->e.elp_time += (mpp->tcurr.tms_etime - mpp->tprev.tms_etime);				\
 	/* It should be a reasonable assumption that in debug no M process will use more than a week of either user,	\
 	 * system, or even absolute runtime.										\
 	 */														\
-	assert((x->e.usr_time < RUNTIME_LIMIT) && (x->e.sys_time < RUNTIME_LIMIT) && (x->e.elp_time < RUNTIME_LIMIT));	\
+	assert((mpp->curr_tblnd->e.usr_time < RUNTIME_LIMIT) && (mpp->curr_tblnd->e.sys_time < RUNTIME_LIMIT)		\
+			&& (mpp->curr_tblnd->e.elp_time < RUNTIME_LIMIT));						\
 }
 
 #define RTS_ERROR_VIEWNOTFOUND(x)	MPROF_RTS_ERROR((CSA_ARG(NULL) VARLSTCNT(8) ERR_VIEWNOTFOUND, 2, gvn->str.len,	\
@@ -310,7 +316,7 @@ void turn_tracing_off(mval *gvn)
 	/* Update the time of previous M line if there was one. */
 	if (NULL != (TREF(mprof_ptr))->curr_tblnd)
 	{
-		UPDATE_TIME((TREF(mprof_ptr))->curr_tblnd);
+		UPDATE_TIME(TREF(mprof_ptr));
 	}
 	if (NULL != gvn)
 		parse_gvn(gvn);
@@ -416,7 +422,7 @@ void pcurrpos(void)
 	/* Update the time of previous M line. */
 	if (NULL != (TREF(mprof_ptr))->curr_tblnd)
 	{
-		UPDATE_TIME((TREF(mprof_ptr))->curr_tblnd);
+		UPDATE_TIME(TREF(mprof_ptr));
 	}
 	get_entryref_information(TRUE, &tmp_trc_tbl_entry);
 	if (FALSE == (TREF(mprof_ptr))->is_tracing_ini)
@@ -478,7 +484,7 @@ void new_prof_frame(int real_frame)
 		if (NULL != (TREF(mprof_ptr))->curr_tblnd)
 		{
 			TIMES(&(TREF(mprof_ptr))->tcurr);
-			UPDATE_TIME((TREF(mprof_ptr))->curr_tblnd);
+			UPDATE_TIME(TREF(mprof_ptr));
 		}
 		(TREF(prof_fp))->curr_node = (TREF(mprof_ptr))->curr_tblnd;
 		(TREF(mprof_ptr))->curr_tblnd = NULL;
@@ -523,7 +529,7 @@ void unw_prof_frame(void)
 		/* Update the time of last line in this frame before returning. */
 		if (NULL != (TREF(mprof_ptr))->curr_tblnd)
 		{
-			UPDATE_TIME((TREF(mprof_ptr))->curr_tblnd);
+			UPDATE_TIME(TREF(mprof_ptr));
 		}
 		get_entryref_information(TRUE, &tmp_trc_tbl_entry);
 		/* If prof_fp is NULL, it was set so in get_entryref_information, which means
diff --git a/sr_port/msg.m b/sr_port/msg.m
index 5577b40..94b7b01 100755
--- a/sr_port/msg.m
+++ b/sr_port/msg.m
@@ -137,7 +137,7 @@
  . . Write !,"Format item count (fao) not specified."
  . . Quit
  . Set outmsg(cnt,"code")=(facnum+2048)*65536+((cnt+4096)*8)+severity
- . If 'vms Use out Write $Char(9),"""",outmsg(cnt),""", ",text,", ",fao,",",!
+ . If 'vms Use out Write $Char(9),"{ """,outmsg(cnt),""", ",text,", ",fao," },",!
  . If ansiopen,ansi="none" Set ansi=0 ; Make !/ansi= specification optional (except for first one)
  . Quit:ansi="none"
  . Do:'ansiopen
diff --git a/sr_port/mu_extr_gblout.c b/sr_port/mu_extr_gblout.c
index a11d181..e602b6b 100644
--- a/sr_port/mu_extr_gblout.c
+++ b/sr_port/mu_extr_gblout.c
@@ -15,6 +15,7 @@
 #ifdef UNIX
 #include <errno.h>
 #include "gtm_stdio.h"
+#include "gtm_stdlib.h"
 #include "gtmio.h"
 #elif defined(VMS)
 #include <rms.h>
@@ -41,6 +42,7 @@
 #include "min_max.h"
 #include "gtmcrypt.h"
 #include "gvcst_protos.h"
+#include "wbox_test_init.h"
 
 #define INTEG_ERROR_RETURN(CSA)											\
 {														\
@@ -87,6 +89,7 @@ boolean_t mu_extr_gblout(glist *gl_ptr, mu_extr_stats *st, int format, boolean_t
 	gd_region			*reg, *reg_top;
 	gd_segment			*seg;
 	int				gtmcrypt_errno, got_encrypted_block;
+	int				wb_counter = 1;
 
 	max_zwr_len = private_blksz = 0;
 	private_blk = zwr_buffer = key_buffer = NULL;
@@ -301,7 +304,25 @@ boolean_t mu_extr_gblout(glist *gl_ptr, mu_extr_stats *st, int format, boolean_t
 					PUSH_MV_STENT(MVST_MVAL);
 					val_span = &mv_chain->mv_st_cont.mvs_mval;
 				}
-				gvcst_get(val_span);
+#				ifdef DEBUG
+				if (gtm_white_box_test_case_enabled &&
+					(WBTEST_MUEXTRACT_GVCST_RETURN_FALSE == gtm_white_box_test_case_number))
+				{	/* white box case to simulate concurrent change, Sleeping for 10 seconds
+					 * to kill the second variable.
+					 */
+					if (2 == wb_counter)
+					{
+						LONG_SLEEP(10);
+					}
+					wb_counter++;
+				}
+#				endif
+				if (!gvcst_get(val_span))
+				{
+					val_span->mvtype = 0; /* so stp_gcol can free up any space */
+					st->recknt--;
+					continue;
+				}
 				cp1 = (unsigned char *)val_span->str.addr;
 				data_len = val_span->str.len;
 				found_dummy = TRUE;
diff --git a/sr_port/mubclnup.c b/sr_port/mubclnup.c
index 45a6973..a27d77c 100755
--- a/sr_port/mubclnup.c
+++ b/sr_port/mubclnup.c
@@ -146,6 +146,10 @@ void mubclnup(backup_reg_list *curr_ptr, clnup_stage stage)
 			free(ptr);
 			ptr = next;
 		}
+		break;
+	default:
+		assert(FALSE && stage);
+		break;					/* NOTREACHED */
 	}
 	/* Release FTOK lock on the replication instance file if holding it */
 	assert((NULL == jnlpool.jnlpool_dummy_reg) || (NULL != mu_repl_inst_reg_list) || jnlpool_init_needed);
diff --git a/sr_port/mupip_backup.c b/sr_port/mupip_backup.c
index 76bcbd2..f3ba8f4 100755
--- a/sr_port/mupip_backup.c
+++ b/sr_port/mupip_backup.c
@@ -56,7 +56,6 @@
 #include "repl_instance.h"
 #include "mu_gv_cur_reg_init.h"
 #include "ftok_sems.h"
-#include "repl_inst_ftok_counter_halted.h"
 #include "repl_msg.h"
 #include "gtmsource.h"
 #include "do_shmat.h"		/* for do_shmat() prototype */
@@ -245,7 +244,7 @@ void mupip_backup(void)
 	gd_region		*r_save, *reg;
 	int			sync_io_status;
 	boolean_t		sync_io, sync_io_specified, wait_for_zero_kip;
-	boolean_t		counter_halted_by_me, ftok_counter_halted = FALSE, repl_inst_available;
+	boolean_t		dummy_ftok_counter_halted, repl_inst_available;
 	struct stat		stat_buf;
 	int			fstat_res, fclose_res, tmpfd;
 	gd_segment		*seg;
@@ -742,7 +741,7 @@ void mupip_backup(void)
 			}
 			do
 			{
-				if (!ftok_sem_get(jnlpool.jnlpool_dummy_reg, TRUE, REPLPOOL_ID, FALSE, &ftok_counter_halted))
+				if (!ftok_sem_get(jnlpool.jnlpool_dummy_reg, TRUE, REPLPOOL_ID, FALSE, &dummy_ftok_counter_halted))
 				{
 					gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) ERR_JNLPOOLSETUP);
 					error_mupip = TRUE;
@@ -750,35 +749,20 @@ void mupip_backup(void)
 				}
 				save_errno = errno;
 				repl_inst_read(udi->fn, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
-				CHECK_IF_REPL_INST_FTOK_COUNTER_HALTED(repl_instance, udi, ftok_counter_halted,
-						counter_halted_by_me, ERR_JNLPOOLSETUP, jnlpool.jnlpool_dummy_reg, save_errno);
-				if (!repl_instance.ftok_counter_halted && !counter_halted_by_me)
-					break;
-				/* Even though the ftok counter has halted, if we notice no jnlpool semid open then it means
-				 * the journal pool has not been established by the source server. In that case, there is
-				 * no point trying to attach to a non-existent jnlpool. Break out and proceed with the backup.
+				/* If we notice no jnlpool semid open then it means the journal pool has not been established
+				 * by the source server. In that case, there is no point trying to attach to a non-existent
+				 * jnlpool. Break out and proceed with the backup while still holding the ftok lock.
 				 */
 				sem_id = repl_instance.jnlpool_semid;
 				if (INVALID_SEMID == sem_id)
 					break;
-				/* This is VERY unlikely because we had "pool_init" set to FALSE even after the
-				 * "jnlpool_init" call which means the source server had not created a journal pool
-				 * then. And a few lines later we have a situation where our ftok_sem_get on that
-				 * replication instance file ftok semaphore overflowed the 32Ki counter and we have proof
-				 * in repl_instance.jnlpool_semid that a jnlpool has been set up by a source server which means
-				 * 32K processes started within a few lines. If "counter_halted_by_me" is TRUE, then we need
-				 * to update the "ftok_counter_halted" flag in the instance file header on disk as well as
-				 * in the journal pool. But we have not yet attached to the journal pool. So do that now
-				 * but release the ftok lock first. If we successfully attached to the journal pool
-				 * "jnlpool_init" would itself do the halted counter update so no more work needed here.
-				 * Since this is a rare situation (32K processes halting or coming up within a few lines)
-				 * we keep retrying until we have a situation where "counter_halted_by_me" is FALSE.
+				/* A source server sneaked in between when we did the "jnlpool_init" above and set up a
+				 * journal pool. Attach to it after releasing the ftok lock. We expect this situation to be
+				 * rare that we keep retrying.
 				 */
 				ftok_sem_release(jnlpool.jnlpool_dummy_reg, udi->counter_ftok_incremented, TRUE);
 				jnlpool_init(GTMRELAXED, (boolean_t)FALSE, (boolean_t *)NULL);
-					/* "jnlpool_init" will set "pool_init" if successful and issue the NOMORESEMCNT
-					 * syslog message if the ftok counter got halted by us.
-					 */
+					/* "jnlpool_init" will set "pool_init" if successful */
 				if (pool_init)
 					break;
 			} while (TRUE);
@@ -786,7 +770,7 @@ void mupip_backup(void)
 		if (pool_init)
 		{
 			udi = FILE_INFO(jnlpool.jnlpool_dummy_reg);
-			assert(udi->ftok_semid && (INVALID_SEMID != udi->ftok_semid));
+			assert(INVALID_SEMID != udi->ftok_semid);
 			if (!ftok_sem_lock(jnlpool.jnlpool_dummy_reg, FALSE))
 			{
 				gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) ERR_JNLPOOLSETUP);
@@ -795,9 +779,9 @@ void mupip_backup(void)
 			}
 			/* (Re-)read the instance file header now that we have the ftok lock */
 			repl_inst_read(udi->fn, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
+			if (jnlpool_ctl->ftok_counter_halted)
+				udi->counter_ftok_incremented = FALSE;	/* so we do not inadvertently delete the ftok semaphore */
 		}
-		if (repl_instance.ftok_counter_halted)
-			udi->counter_ftok_incremented = FALSE;	/* so we do not inadvertently delete the ftok semaphore */
 		assert(NULL != jnlpool.jnlpool_dummy_reg);
 		assert(!pool_init || (NULL != jnlpool_ctl));
 		shm_id = repl_instance.jnlpool_shmid;
@@ -1390,8 +1374,6 @@ repl_inst_bkup_done2:
 			rptr->backup_hdr->shmid = INVALID_SHMID;
 			rptr->backup_hdr->gt_sem_ctime.ctime = 0;
 			rptr->backup_hdr->gt_shm_ctime.ctime = 0;
-			rptr->backup_hdr->ftok_counter_halted = FALSE;
-			rptr->backup_hdr->access_counter_halted = FALSE;
 			if (jnl_options[jnl_off] || bkdbjnl_off_specified)
 				rptr->backup_hdr->jnl_state = jnl_closed;
 			if (jnl_options[jnl_disable] || bkdbjnl_disable_specified)
diff --git a/sr_port/mur_close_files.c b/sr_port/mur_close_files.c
index a5021aa..1d19552 100755
--- a/sr_port/mur_close_files.c
+++ b/sr_port/mur_close_files.c
@@ -766,7 +766,7 @@ boolean_t mur_close_files(void)
 		assert(!mur_options.update || rctl->standalone || !murgbl.clean_exit);
 		if (rctl->standalone && (EXIT_NRM == rundown_status))
 			/* Avoid db_ipcs_reset if gds_rundown did not remove shared memory */
-			if ((NULL != udi) && !udi->new_shm && !db_ipcs_reset(reg))
+			if ((NULL != udi) && udi->shm_deleted && !db_ipcs_reset(reg))
 				wrn_count++;
 		rctl->standalone = FALSE;
 		rctl->gd = NULL;
@@ -798,42 +798,8 @@ boolean_t mur_close_files(void)
 		repl_inst_read(udi->fn, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
 		repl_instance.file_corrupt = inst_hdr->file_corrupt;
 		if (NULL == jnlpool_ctl)
-		{
 			repl_instance.crash = inst_hdr->crash = FALSE;
-			/* We have standalone access on the instance file so can safely clear halted fields if set */
-			if (repl_instance.ftok_counter_halted)
-			{	/* Clear the halted field and reset ftok counter semaphore value to set counter back to reliable */
-				semarg.val = 0;
-				if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-				{
-					save_errno = errno;
-					gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-						ERR_SYSCALL, 5, RTS_ERROR_LITERAL("semctl(SETVAL)"),
-						CALLFROM, save_errno);
-					/* In case not able to set counter to 1, proceed with rundown without deleting the
-					 * ftok semaphore (so set counter_ftok_incremented to FALSE)
-					 */
-					udi->counter_ftok_incremented = FALSE;
-				} else
-				{
-					save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM, DB_COUNTER_SEM_INCR, SEM_UNDO);
-					if (save_errno)
-					{
-						gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-							ERR_SYSCALL, 5, RTS_ERROR_LITERAL("do_semop()"),
-							CALLFROM, save_errno);
-						/* In case not able to set counter to 1, proceed with rundown without deleting the
-						 * ftok semaphore (so set counter_ftok_incremented to FALSE)
-						 */
-						udi->counter_ftok_incremented = FALSE;
-					} else
-					{
-						udi->counter_ftok_incremented = TRUE;
-						repl_instance.ftok_counter_halted = FALSE;
-					}
-				}
-			}
-		} else
+		else
 		{	/* Online Rollback OR Anticipatory Freeze is in effect. Detach from the journal pool as all the database
 			 * writes are now over. Since the attach count is 1 (we are the only one attached) go ahead and remove the
 			 * journal pool. We've already flushed all the contents to the instance file at the beginning of rollback
@@ -928,7 +894,6 @@ boolean_t mur_close_files(void)
 		 * Since we should be holding the ftok lock to release it, grab the ftok lock first. We don't expect ftok_sem_lock
 		 * to error out because the semaphore should still exist in the system
 		 */
-		assert(!repl_instance.ftok_counter_halted || jgbl.onlnrlbk || anticipatory_freeze_available);
 		assert(udi->counter_ftok_incremented || jgbl.onlnrlbk || anticipatory_freeze_available);
 		if (!ftok_sem_lock(jnlpool.jnlpool_dummy_reg, FALSE)
 				|| !ftok_sem_release(jnlpool.jnlpool_dummy_reg, udi->counter_ftok_incremented, FALSE))
diff --git a/sr_port/mur_forward_play_cur_jrec.c b/sr_port/mur_forward_play_cur_jrec.c
index 9b4737f..97e1e5c 100644
--- a/sr_port/mur_forward_play_cur_jrec.c
+++ b/sr_port/mur_forward_play_cur_jrec.c
@@ -317,17 +317,21 @@ uint4	mur_forward_play_cur_jrec(reg_ctl_list *rctl)
 	{
 		if ((is_set_kill_zkill_ztworm_lgtrig_ztrig && !IS_TP(rectype)) || (JRT_TCOM == rectype))
 		{
-			/* Do forward journaling, detecting operations with duplicate transaction numbers.
-			 * While doing journaling on a database, a process may be killed immediately after
-			 * updating (or partially updating) the journal file, but before the database gets
-			 * updated.  Since the transaction was never fully committed, the database
-			 * transaction number has not been updated, and the last journal record does not
-			 * reflect the actual state of the database.  The next process to update the
-			 * database writes a journal record with the same transaction number as the
-			 * previous record.  While processing the journal file, we must recognize this and
-			 * issue a DUPTN warning so the user knows this was encountered during the recovery.
-			 * Note: DUPTN is possible with -NOTNCHECK (if two identical jnl files with just one tn
-			 * is presented to forward recovery like the v54003/C9K08003315 subtest does) so ignore that.
+			/* Do forward journaling, detecting operations with duplicate transaction numbers.  While doing
+			 * journaling on a database, a process may be killed immediately after updating (or partially
+			 * updating) the journal file, but before the database gets updated.  Since the transaction was
+			 * never fully committed, the database transaction number has not been updated, and the last
+			 * journal record does not reflect the actual state of the database. One would think the next
+			 * process to update the database will write a journal record with the same transaction number as
+			 * the previous record. But before writing the journal record, it would do a "grab_crit" which
+			 * will notice the previous crit holder having been killed and will salvage crit and as part of
+			 * that would have set wc_blocked and invoked "wcs_recover" which would have written an INCTN
+			 * record to bump the curr_tn. Therefore it is not possible for two logical records corresponding
+			 * to different transactions (non-tp or tp) to have the same rec_tn value. Therefore an ERR_DUPTN
+			 * is not possible in normal usage.  But just in case, let us recognize this and issue a DUPTN
+			 * warning so the user knows this was encountered during the recovery.  Note: DUPTN is possible
+			 * with -NOTNCHECK (if two identical jnl files with just one tn is presented to forward recovery
+			 * like the v54003/C9K08003315 subtest does) so ignore that.
 			 */
 			curr_tn = rec->prefix.tn;
 			if ((rctl->last_tn == curr_tn) && !mur_options.notncheck)
diff --git a/sr_port/mur_open_files.c b/sr_port/mur_open_files.c
index 7b823d9..dd6590e 100755
--- a/sr_port/mur_open_files.c
+++ b/sr_port/mur_open_files.c
@@ -272,7 +272,7 @@ boolean_t mur_open_files()
 		{	/* appropriate gtm_putmsg would have already been issued by repl_inst_get_name */
 			return FALSE;
 		}
-		assert(NUM_SRC_SEMS == NUM_RECV_SEMS);
+		assert((int)NUM_SRC_SEMS == (int)NUM_RECV_SEMS);
 		ASSERT_DONOT_HOLD_REPLPOOL_SEMS;
 		assert(NULL == jnlpool.repl_inst_filehdr);
 		if (!mu_rndwn_repl_instance(&replpool_id, FALSE, TRUE, &jnlpool_sem_created))
@@ -567,7 +567,8 @@ boolean_t mur_open_files()
 				DEFER_INTERRUPTS(INTRPT_IN_MUR_OPEN_FILES, prev_intrpt_state);	/* temporarily disable
 												 * MUPIP STOP/signal handling. */
 				TP_CHANGE_REG(rctl->gd);
-				csa = rctl->csa = &FILE_INFO(rctl->gd)->s_addrs;
+				udi = FILE_INFO(rctl->gd);
+				csa = rctl->csa = &udi->s_addrs;
 				csd = rctl->csd = rctl->csa->hdr;
 				assert(!jgbl.onlnrlbk || (csa->now_crit && csa->hold_onto_crit));
 				if (mur_options.update)
@@ -768,9 +769,9 @@ boolean_t mur_open_files()
 					return FALSE;
 				}
 				assert((csa == rctl->csa) || !mur_options.update);
+				assert(!jgbl.onlnrlbk || (csa == &udi->s_addrs));
 				if (jgbl.onlnrlbk && jctl->jfh->crash
-						&& !csa->dbinit_shm_created && !jctl->jfh->recover_interrupted
-						&& !inst_requires_rlbk)
+						&& !udi->shm_created && !jctl->jfh->recover_interrupted && !inst_requires_rlbk)
 				{	/* If the journal file is crashed, mur_fread_eof invokes mur_fread_eof_crash to read the
 					 * last valid record from the journal file and marks the journal file as NOT properly
 					 * closed. However, for online rollback, if the shared memory exists and the journal file
diff --git a/sr_port/mur_output_record.c b/sr_port/mur_output_record.c
index 9ed36b9..4f6d07f 100644
--- a/sr_port/mur_output_record.c
+++ b/sr_port/mur_output_record.c
@@ -338,15 +338,28 @@ uint4	mur_output_record(reg_ctl_list *rctl)
 		assert(csa == (sgmnt_addrs *)&FILE_INFO(reg)->s_addrs);
 		assert(csd == csa->hdr);
 		if (mur_options.forward)
-		{
-			assert(rec->jrec_inctn.prefix.tn == csd->trans_hist.curr_tn || mur_options.notncheck);
-			if (FALSE == ((was_crit = csa->now_crit)))
-				grab_crit(reg);
-			CHECK_TN(csa, csd, csd->trans_hist.curr_tn);	/* can issue rts_error TNTOOLARGE */
-			csd->trans_hist.early_tn = csd->trans_hist.curr_tn + 1;
-			INCREMENT_CURR_TN(csd);
-			if (!was_crit)
-				rel_crit(reg);
+		{	/* It is possible a process got killed after writing a journal record (INCTN, SET etc.) but
+			 * before incrementing csd->trans_hist.curr_tn. In that case, the next process would have done
+			 * a "wcs_recover" to salvage the crit from the dead pid and as part of that would have written
+			 * an INCTN. This INCTN would have the same tn as the previous record (i.e. a DUPTN situation)
+			 * but since this is an INCTN record and not a logical record, we can skip incrementing the
+			 * curr_tn in this case thereby keeping the db curr_tn in sync with the next jnl rec tn.
+			 * In case NOTNCHECK is specified though, the user could present forward recovery with two
+			 * identical jnl files with just one tn (e.g. v54003/C9K08003315 subtest) in which case it is not
+			 * easy to keep the db in sync with the jnl tn so do not skip the curr_tn increment in that case.
+			 */
+			assert((rec->jrec_inctn.prefix.tn == csd->trans_hist.curr_tn)
+				|| ((rec->jrec_inctn.prefix.tn + 1) == csd->trans_hist.curr_tn) || mur_options.notncheck);
+			if (mur_options.notncheck || (rec->jrec_inctn.prefix.tn >= csd->trans_hist.curr_tn))
+			{
+				if (FALSE == ((was_crit = csa->now_crit)))
+					grab_crit(reg);
+				CHECK_TN(csa, csd, csd->trans_hist.curr_tn);	/* can issue rts_error TNTOOLARGE */
+				csd->trans_hist.early_tn = csd->trans_hist.curr_tn + 1;
+				INCREMENT_CURR_TN(csd);
+				if (!was_crit)
+					rel_crit(reg);
+			}
 		}
 		break;
 	case JRT_AIMG:
diff --git a/sr_port/op_fnfnumber.c b/sr_port/op_fnfnumber.c
old mode 100755
new mode 100644
index b7cdb9d..3768fd1
--- a/sr_port/op_fnfnumber.c
+++ b/sr_port/op_fnfnumber.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -13,6 +14,9 @@
 #include "gtm_string.h"
 #include "stringpool.h"
 #include "op.h"
+#include <rtnhdr.h>
+#include "stack_frame.h"
+#include "mv_stent.h"
 
 #define PLUS 	1
 #define MINUS 	2
@@ -21,7 +25,8 @@
 #define PAREN 	16
 #define FNERROR 7
 
-GBLREF spdesc stringpool;
+GBLREF spdesc	stringpool;
+GBLREF mv_stent	*mv_chain;
 
 LITREF mval	literal_zero;
 
@@ -32,12 +37,13 @@ void op_fnfnumber(mval *src, mval *fmt, boolean_t use_fract, int fract, mval *ds
 {
 	boolean_t	comma, paren;
 	int 		ct, x, xx, y, z;
-	mval		t_src, *t_src_p;
+	mval		*t_src_p;
 	unsigned char	*ch, *cp, *ff, *ff_top, fncode, sign, *t;
 
 	if (!MV_DEFINED(fmt))		/* catch this up front so noundef mode can't cause trouble - so fmt no empty context */
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(2) ERR_FNUMARG, 0);
-	t_src_p = &t_src;		/* operate on src in a temp, so conversions are possible without modifying src */
+	PUSH_MV_STENT(MVST_MVAL);			/* Create a temporary on M stack so garbage collection can see it */
+	t_src_p = &mv_chain->mv_st_cont.mvs_mval;	/* Operate on copy of src so can modify without changing original */
 	*t_src_p = *src;
 	if (use_fract)
 		op_fnj3(t_src_p, 0, fract, t_src_p);
@@ -57,6 +63,7 @@ void op_fnfnumber(mval *src, mval *fmt, boolean_t use_fract, int fract, mval *ds
 	if (0 == fmt->str.len)
 	{
 		*dst = *t_src_p;
+		POP_MV_STENT(); 	/* Done with temporary */
 		return;
 	}
 	ch = (unsigned char *)t_src_p->str.addr;
@@ -167,6 +174,7 @@ void op_fnfnumber(mval *src, mval *fmt, boolean_t use_fract, int fract, mval *ds
 		dst->str.addr = (char *)stringpool.free;
 		dst->str.len = INTCAST(cp - stringpool.free);
 		stringpool.free = cp;
+		POP_MV_STENT(); 	/* Done with temporary */
 		return;
 	}
 	assertpro(FALSE);
diff --git a/sr_port/op_fnview.c b/sr_port/op_fnview.c
index bbbcdf6..2643f37 100755
--- a/sr_port/op_fnview.c
+++ b/sr_port/op_fnview.c
@@ -395,7 +395,7 @@ void	op_fnview(UNIX_ONLY_COMMA(int numarg) mval *dst, ...)
 				n = (NULL != gname) ? gname->act : 0;
 			} else
 				n = 0;
-			gvkey = &save_currkey[0];
+			gvkey = (gv_key *)save_currkey;
 			key = gvn2gds(arg1, gvkey, n);
 			assert(key > &gvkey->base[0]);
 			assert(gvkey->end == key - &gvkey->base[0] - 1);
diff --git a/sr_port/op_gvextnam.c b/sr_port/op_gvextnam.c
index 39a5b8e..6f73c97 100644
--- a/sr_port/op_gvextnam.c
+++ b/sr_port/op_gvextnam.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -94,14 +95,15 @@ STATICFNDEF void op_gvextnam_common(int count, int hash_code, mval *val1, va_lis
 	MV_FORCE_STR(val1);
 	val1 = gtm_env_translate(val1, val2, &val_xlated);
 	assert(!TREF(gv_extname_size) || (NULL != extnam_str.addr));
-	if (!gd_header)
-		gvinit();
 	if (val1->str.len)
 	{
 		tmp_mstr_ptr = &val1->str;
 		tmpgd = zgbldir(val1);
 	} else
 	{
+		/* Null external reference, ensure that gd_header is not NULL */
+		if (!gd_header)
+			gvinit();
 		tmp_mstr_ptr = &dollar_zgbldir.str;
 		tmpgd = gd_header;
 	}
diff --git a/sr_port/op_lock2.c b/sr_port/op_lock2.c
index 1b65c4c..20df6d6 100644
--- a/sr_port/op_lock2.c
+++ b/sr_port/op_lock2.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -79,17 +79,19 @@ GBLREF	unsigned int	t_tries;
 
 error_def(ERR_LOCKINCR2HIGH);
 error_def(ERR_LOCKIS);
+error_def(ERR_LOCKTIMINGINTP);
 
 #define LOCKTIMESTR "LOCK time too long"
 #define ZALLOCTIMESTR "ZALLOCATE time too long"
+#define MAX_WARN_STR_ARG_LEN 256
 
-/* We made this a error seperate function because we did not wanted to do the MAXSTR_BUFF_DECL(buff) declartion in op_lock2,
+/* We made these messages seperate functions because we did not want to do the MAXSTR_BUFF_DECL(buff) declaration in op_lock2,
  * because  MAXSTR_BUFF_DECL macro would allocate a huge stack every time op_lock2 is called.
  */
-STATICFNDCL void level_err(mlk_pvtblk *pvt_ptr); /* This definition is made here because there is no appropriate place to
-						  * put this prototype. This will not be used anywhere else so we did not
-						  * wanted to create a op_lock2.h just for this function.
-						  */
+STATICFNDCL void level_err(mlk_pvtblk *pvt_ptr);  /* These definitions are made here because there is no appropriate place to */
+STATICFNDCL void tp_warning(mlk_pvtblk *pvt_ptr); /* put these prototypes. These will not be used anywhere else so we did not
+						   * want to create a op_lock2.h just for these functions.
+						   */
 STATICFNDCL void level_err(mlk_pvtblk *pvt_ptr)
 {
 	MAXSTR_BUFF_DECL(buff);
@@ -97,7 +99,17 @@ STATICFNDCL void level_err(mlk_pvtblk *pvt_ptr)
 	lock_str_to_buff(pvt_ptr, buff, MAX_STRBUFF_INIT);
 	rts_error_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_LOCKINCR2HIGH, 1, pvt_ptr->level, ERR_LOCKIS, 2, LEN_AND_STR(buff));
 }
+STATICFNDCL void tp_warning(mlk_pvtblk *pvt_ptr)
+{
+	MAXSTR_BUFF_DECL(buff);
+	mval		zpos;
 
+	getzposition(&zpos);
+	MAXSTR_BUFF_INIT;
+	lock_str_to_buff(pvt_ptr, buff, MAX_STRBUFF_INIT);
+	send_msg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_LOCKTIMINGINTP, 2, zpos.str.len, zpos.str.addr,
+		     ERR_LOCKIS, 2, LEN_AND_STR(buff));
+}
 /*
  * -----------------------------------------------
  * Arguments:
@@ -270,13 +282,11 @@ int	op_lock2(int4 timeout, unsigned char laflag)	/* timeout is in seconds */
 			assert(pvt_ptr2->granted && (pvt_ptr2 != pvt_ptr1));
 			mlk_bckout(pvt_ptr2, action);
 		}
-		if (dollar_tlevel && (CDB_STAGNATE <= t_tries))
-		{	/* upper TPNOTACID_CHECK conditioned on no short timeout; this one rel_crits to avoid potential deadlock */
-			assert(TREF(tpnotacidtime) >= timeout);
-			if (CM_ZALLOCATES == action)
-				TPNOTACID_CHECK(ZALLOCTIMESTR)
-			else
-				TPNOTACID_CHECK(LOCKTIMESTR)
+		assert(!pvt_ptr2->granted && (pvt_ptr2 == pvt_ptr1));
+		if (dollar_tlevel && timeout && (CDB_STAGNATE <= t_tries))
+		{
+			assert(have_crit(CRIT_HAVE_ANY_REG));
+			tp_warning(pvt_ptr2);
 		}
 		for (;;)
 		{
diff --git a/sr_port/op_lvpatwrite.c b/sr_port/op_lvpatwrite.c
index 379172e..fde1229 100755
--- a/sr_port/op_lvpatwrite.c
+++ b/sr_port/op_lvpatwrite.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2014 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -52,6 +53,7 @@ void op_lvpatwrite(UNIX_ONLY_COMMA(int4 count) UINTPTR_T arg1, ...)
 	VMS_ONLY(va_count(count));
 	assert(1 < count);
 	local_buff = FALSE;
+	merge_args = 0;
 	if (!arg1)
 	{	/* If ZWRite, this parm is NULL */
 		local_buff = TRUE;
diff --git a/sr_port/op_lvzwrite.c b/sr_port/op_lvzwrite.c
index ef55cd9..f0abf8a 100755
--- a/sr_port/op_lvzwrite.c
+++ b/sr_port/op_lvzwrite.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2014 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -52,6 +53,7 @@ void op_lvzwrite(UNIX_ONLY_COMMA(int4 count) long arg1, ...)
 	VMS_ONLY(va_count(count));
 	MAXSTR_BUFF_INIT;
 
+	merge_args = 0;
 	memset(&output, 0, SIZEOF(output));
 	output.code = 'V';
 	output.type = ZSHOW_DEVICE;
diff --git a/sr_port/op_newintrinsic.c b/sr_port/op_newintrinsic.c
index b06d12c..b97f188 100755
--- a/sr_port/op_newintrinsic.c
+++ b/sr_port/op_newintrinsic.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2014 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -112,10 +113,8 @@ void op_newintrinsic(int intrtype)
 		dollar_estack_delta.m[0] = dollar_zlevel() - 1;
 	} else if (SV_ZGBLDIR == intrtype)
 	{
-		if (dollar_zgbldir.str.len != 0)
-			gd_header = zgbldir(&dollar_zgbldir);
-		else
-			dpzgbini();	/* sets gd_header to NULL */
+		assert(0 == dollar_zgbldir.str.len);	/* "gtm_newintrinsic" call above should have cleared it */
+		dpzgbini();				/* SET $ZGBLDIR="" */
 		if (gv_currkey)
 		{
 			gv_currkey->base[0] = 0;
diff --git a/sr_port/op_tcommit.c b/sr_port/op_tcommit.c
index 6fe75d4..23ed7e4 100644
--- a/sr_port/op_tcommit.c
+++ b/sr_port/op_tcommit.c
@@ -137,7 +137,7 @@ STATICFNDEF void fix_updarray_and_oldblock_ptrs(sm_uc_ptr_t old_db_addrs[2], sgm
 		if (gds_t_writemap != cse->mode)
 		{
 			array = (blk_segment *)cse->upd_addr;
-			stop_ptr = cse->first_copy ? array : array + 1;
+			stop_ptr = array; /* Note: No cse->first_copy optimization done here (like in gvcst_blk_build). GTM-8523 */
 			seg = (blk_segment *)array->addr;
 			while (seg != stop_ptr)
 			{
@@ -279,6 +279,14 @@ enum cdb_sc	op_tcommit(void)
 				cnl = csa->nl;
 				is_mm = (dba_mm == csa->hdr->acc_meth);
 				si->cr_array_index = 0;
+#				ifdef DEBUG
+				if (WBTEST_ENABLED(WBTEST_MM_CONCURRENT_FILE_EXTEND)
+					&& !MEMCMP_LIT(gv_cur_region->rname, "DEFAULT") && !csa->nl->wbox_test_seq_num)
+				{
+					while (0 == csa->nl->wbox_test_seq_num)
+						SHORT_SLEEP(1);	/* wait for signal from mubfilcpy that it has reached sync point */
+				}
+#				endif
 				if (!is_mm && (si->cr_array_size < (si->num_of_blks + (si->cw_set_depth * 2))))
 				{	/* reallocate a bigger cr_array. We need atmost read-set (si->num_of_blks) +
 					 * write-set (si->cw_set_depth) + bitmap-write-set (a max. of si->cw_set_depth)
diff --git a/sr_port/op_view.c b/sr_port/op_view.c
index 3bd8a4a..3e11480 100755
--- a/sr_port/op_view.c
+++ b/sr_port/op_view.c
@@ -75,6 +75,7 @@
 #endif
 #include "gtmimagename.h"
 #include "cache.h"
+#include "set_gbuff_limit.h"	/* Needed for set_gbuff_limit() */
 
 STATICFNDCL void view_dbop(unsigned char keycode, viewparm *parmblkptr, mval *thirdarg);
 
@@ -915,14 +916,7 @@ void view_dbop(unsigned char keycode, viewparm *parmblkptr, mval *thirdarg)
 			case VTK_POOLLIMIT:
 				csa = cs_addrs;
 				csd = csa->hdr;
-				nbuffs = ((dba_bg == csd->acc_meth) && (NULL != thirdarg)) ? MV_FORCE_INT(thirdarg) : 0;
-				if (nbuffs && (MV_STR & thirdarg->mvtype) && ('%' == thirdarg->str.addr[thirdarg->str.len - 1]))
-					nbuffs = (100 == nbuffs) ? 0 : (csd->n_bts * nbuffs) / 100;		/* Percentage */
-				csa->gbuff_limit = (0 == nbuffs) ? 0 : MAX(MIN(nbuffs, csd->n_bts * .5), MIN_GBUFF_LIMIT);
-				/* To pick the current "hand" as a pseudo-random spot for our area see dbg code in gvcst_init
-				 * but for the first release of this always pick the end of the buffer
-				 */
-				csa->our_midnite = csa->acc_meth.bg.cache_state->cache_array + csd->bt_buckets + csd->n_bts;
+				set_gbuff_limit(&csa, &csd, thirdarg);
 				break;
 		}
 	}
diff --git a/sr_port/op_zsystem.c b/sr_port/op_zsystem.c
index e9f614c..805f3ad 100755
--- a/sr_port/op_zsystem.c
+++ b/sr_port/op_zsystem.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -13,12 +13,7 @@
 #include "mdef.h"
 
 #include <errno.h>
-#ifdef VMS
-#include <descrip.h>
-#include <ssdef.h>
-#else
 #include <sys/wait.h>
-#endif
 #include "gtm_stdlib.h"
 #include "gtm_string.h"
 
@@ -58,53 +53,49 @@ error_def(ERR_SYSCALL);
 
 void op_zsystem(mval *v)
 {
-	int		len;
-#ifdef UNIX
+	int		len, shlen;
 	char		*sh, cmd_buf[MAXZSYSSTRLEN + 1], *cmd;
 #ifdef _BSD
         union wait      wait_stat;
 #else
         int4            wait_stat;
 #endif
-#elif defined VMS
-	uint4		status;
-	$DESCRIPTOR(d_cmd,"");
-#else
-#error UNSUPPORTED PLATFORM
-#endif
 	DCL_THREADGBL_ACCESS;
 
 	SETUP_THREADGBL_ACCESS;
 	TPNOTACID_CHECK(ZSYSTEMSTR);
 	MV_FORCE_STR(v);
-#ifdef UNIX
 	/* get SHELL environment */
 	sh = GETENV("SHELL");
-	len = ((sh)? STRLEN(sh):STRLEN("/bin/sh")) + STRLEN(" -c ''"); /* Include the command " -c ''" string */
-	if (v->str.len > (MAXZSYSSTRLEN - len))
+	shlen = (NULL == sh)? 0 : STRLEN(sh);
+	len = (0 < shlen)? shlen : STRLEN("/bin/sh");
+	/* Include " -c ''" in the total string length */
+	len += STRLEN(" -c ''");
+	if ((v->str.len + len) > MAXZSYSSTRLEN)
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(4) ERR_INVSTRLEN, 2, v->str.len,
 				(MAXZSYSSTRLEN > len)? (MAXZSYSSTRLEN - len) : 0);
-	/* use bourn shell as default */
-	if (!sh)
-		strncpy(cmd_buf, "/bin/sh", STRLEN("/bin/sh"));
-	else
-		strncpy(cmd_buf, sh, len); /* sh is null terminated, using len is ok even though it's longer */
 	cmd = cmd_buf;
 	if (v->str.len)
 	{
-		strcat(cmd, " -c '");
+		/* Use bourne shell as default */
+		if (0 < shlen)
+			SNPRINTF(cmd_buf, MAXZSYSSTRLEN, "%s -c '", sh);
+		else
+			STRNCPY_LIT_FULL(cmd_buf, "/bin/sh -c '");
 		len = STRLEN(cmd);
 		memcpy(cmd + len, v->str.addr, v->str.len);
 		*(cmd + len + v->str.len) = 39; /* ' = 39 */
 		*(cmd + len + v->str.len + 1) = 0;
+	} else
+	{
+		if (0 < shlen)
+			SNPRINTF(cmd_buf, MAXZSYSSTRLEN, "%s", sh);
+		else
+			STRNCPY_LIT_FULL(cmd_buf, "/bin/sh");
 	}
-#elif defined VMS
-	MVAL_TO_DSC(v, d_cmd);
-#endif
 	flush_pio();
 	if (io_std_device.in->type == tt)
 		resetterm(io_std_device.in);
-#ifdef UNIX
 	dollar_zsystem = SYSTEM(cmd);
 	if (-1 == dollar_zsystem)
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_SYSCALL, 5, RTS_ERROR_LITERAL("system"), CALLFROM, errno);
@@ -116,14 +107,7 @@ void op_zsystem(mval *v)
 #endif
 	if (WIFEXITED(wait_stat))
 		dollar_zsystem = WEXITSTATUS(wait_stat);
-#elif defined VMS
-	status = spawn_and_bgwait(&d_cmd, 0, 0, &trust, 0, 0, &dollar_zsystem);
-#endif
 	if (io_std_device.in->type == tt)
 		setterm(io_std_device.in);
-#ifdef VMS
-	if (status != SS$_NORMAL)
-		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(1) status);
-#endif
 	return;
 }
diff --git a/sr_port/opcode_def.h b/sr_port/opcode_def.h
index 478b834..2520fd5 100755
--- a/sr_port/opcode_def.h
+++ b/sr_port/opcode_def.h
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -16,7 +16,6 @@
 
 
 
-
 /* start at line 20 to make arithmetic (add 20) easy for those debugging compilation */
 OPCODE_DEF(OC_NOOP, (OCT_CGSKIP))
 OPCODE_DEF(OC_PARAMETER, (OCT_CGSKIP))
diff --git a/sr_port/patcode.h b/sr_port/patcode.h
index 9789e27..50854c8 100755
--- a/sr_port/patcode.h
+++ b/sr_port/patcode.h
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -70,7 +71,8 @@
 #define PAT_YZMAXLEN	8	/* maximum number of characters in name of YxxxY pattern code */
 
 /* PATM_UTF8_ALPHABET and PATM_UTF8_NONBASIC are assigned an external name of 0 and 1 below as we have run out of alphabets */
-#define PATM_CODELIST	"NPLUCBDFGHIJKMOQRSTVWX01"
+#define PATM_CODELIST	"NPLUCBDFGHIJKMOQRSTVWX01"	/* "patmask_seq[]" in patmaskseq.c is defined based on this macro */
+#define CHAR_CLASSES	STR_LIT_LEN(PATM_CODELIST)
 #define PATM_DFA	254		/* Deterministic Finite Automaton */
 #define PATM_ACS	255
 #define PATM_SHORTFLAGS	0x7F		/* original 5 flags + the two recently introduced PATM_UTF8_* flags */
@@ -90,15 +92,14 @@
 #define MAX_PATTERN_LENGTH	(MAX_PATOBJ_LENGTH - MAX_PATTERN_OVERHEAD)
 #define PATENTS		256	/* Size of the builtin pattern/typemask table in M mode */
 #define PATENTS_UTF8	128	/* Size of the builtin pattern/typemask table in UTF-8 mode */
-#define CHAR_CLASSES 24
 #define	PAT_STRLIT_PADDING	3	/* # of int4s for storing bytelen, charlen, flags in PATM_STRLIT type */
 
-#define MAX_SYM	16
-#define FST	0
-#define LST	1
+#define	MAX_DFA_STATES	(2 * MAX_SYM)
+#define MAX_SYM		32
+#define FST		0
+#define LST		1
 
 #define MAX_DFA_STRLEN 64	/* needs to be > PAT_BASIC_CLASSES */
-#define MAX_DFA_REP    10
 
 /* The macro to perform 64-bit multiplication without losing precision due to overflow with 32-bit
  * multiplication. With the increase of PAT_MAX_REPEAT from 32K to 1MB, the values of result and
@@ -153,7 +154,7 @@ struct leaf
 struct node
 {
 	boolean_t	nullable[MAX_SYM];
-	boolean_t	last[MAX_SYM][MAX_SYM];
+	boolean_t	last[MAX_SYM][MAX_DFA_STATES];
 };
 
 struct e_table
@@ -164,9 +165,9 @@ struct e_table
 
 struct c_trns_tb
 {
-	int	c[2 * MAX_SYM];
-	int4	p_msk[2 * MAX_SYM][CHAR_CLASSES];
-	int	trns[2 * MAX_SYM][CHAR_CLASSES];
+	int	c[MAX_DFA_STATES];
+	int4	p_msk[MAX_DFA_STATES][CHAR_CLASSES];
+	int	trns[MAX_DFA_STATES][CHAR_CLASSES];
 };
 
 typedef struct ptstr_struct {
diff --git a/sr_port/patmaskseq.c b/sr_port/patmaskseq.c
index 19e956e..f4c3b0c 100755
--- a/sr_port/patmaskseq.c
+++ b/sr_port/patmaskseq.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2006 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -12,6 +13,11 @@
 #include "mdef.h"
 #include "patcode.h"
 
+/* The below array is initialized based on the character classes ordering in PATM_CODELIST.
+ * For example PATM_UTF8_ALPHABET = (1 << 5). So patmask_seq[5+1] = 22 because 0 (the external name assigned to
+ *	PATM_UTF8_ALPHABET) is the 22nd character (counting from 0) in PATM_CODELIST.
+ * For example PATM_L = (1 << 2). So patmask_seq[2+1] = 2 because L is the 2nd character (counting from 0) in PATM_CODELIST.
+ */
 static	int	patmask_seq[] =
 {
      -1, 0,  1,  2,  3,  4, 22, 23, -1,
diff --git a/sr_port/patstr.c b/sr_port/patstr.c
index bd674b1..318a5cc 100755
--- a/sr_port/patstr.c
+++ b/sr_port/patstr.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2014 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -42,6 +43,53 @@ typedef struct
 	ptstr		altpat;
 } alternation;
 
+#define	TERMINATE_DFA(PATMASKPTR, OUTCHAR, DFA_FIXED_LEN, LV_PTR, LEAF_NUM, EXP_PTR, FSTCHAR,			\
+			TOPCHAR, MIN, MAX, SIZE, TOTAL_MIN, TOTAL_MAX, COUNT, LASTPATPTR, LAST_INFINITE,	\
+			MIN_DFA, ALTMIN, ALTMAX, INSTR, INCHAR, DFA)						\
+{														\
+	gtm_uint64_t		bound;										\
+	int			cursize, i;									\
+														\
+	PATMASKPTR = OUTCHAR;											\
+	/* If this is a fixed pattern, generate code to invoke do_patfixed as that takes up less space in	\
+	 * the object code and has same runtime performance as the DFA. Else go through DFA.			\
+	 */													\
+	if (!DFA_FIXED_LEN)											\
+	{													\
+		assert(OUTCHAR <= TOPCHAR);									\
+		cursize = dfa_calc(LV_PTR, LEAF_NUM, EXP_PTR, &FSTCHAR, &OUTCHAR);				\
+	} else													\
+		cursize = -1;											\
+	if (cursize >= 0)											\
+	{													\
+		assert(OUTCHAR <= TOPCHAR);									\
+		MIN[COUNT] = MIN_DFA;										\
+		MAX[COUNT] = PAT_MAX_REPEAT;									\
+		SIZE[COUNT] = cursize;										\
+		TOTAL_MIN += BOUND_MULTIPLY(MIN[COUNT], SIZE[COUNT], bound);					\
+		if (TOTAL_MIN > PAT_MAX_REPEAT)									\
+			TOTAL_MIN = PAT_MAX_REPEAT;								\
+		TOTAL_MAX += BOUND_MULTIPLY(MAX[COUNT], SIZE[COUNT], bound);					\
+		if (TOTAL_MAX > PAT_MAX_REPEAT)									\
+			TOTAL_MAX = PAT_MAX_REPEAT;								\
+		LASTPATPTR = PATMASKPTR;									\
+		LAST_INFINITE = TRUE;										\
+		COUNT++;											\
+	} else													\
+	{													\
+		OUTCHAR = PATMASKPTR;										\
+		if (!pat_unwind(&COUNT, LV_PTR, LEAF_NUM, &TOTAL_MIN, &TOTAL_MAX,				\
+			&MIN[0], &MAX[0], &SIZE[0], ALTMIN, ALTMAX,						\
+			&LAST_INFINITE, &FSTCHAR, &OUTCHAR, &LASTPATPTR))					\
+		{												\
+			INSTR->addr = (char *)INCHAR;								\
+			return ERR_PATMAXLEN;									\
+		}												\
+		assert(OUTCHAR <= TOPCHAR);									\
+	}													\
+	DFA = FALSE;												\
+}
+
 /*  This procedure is part of the MUMPS compiler.  The function of this procedure is to parse a pattern specification
  *  and compile it into a data structure that will be used by the run-time engine to actually attempt to match the pattern.
  *
@@ -87,7 +135,8 @@ typedef struct
 int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 {
 	pat_strlit		strlit;
-	boolean_t		dfa, dfa_attempt_failed, done, fixed_len, infinite, prev_fixed_len, split_atom;
+	boolean_t		dfa, done, infinite;
+	boolean_t		dfa_fixed_len, fixed_len, prev_fixed_len, split_atom, start_dfa;
 	int4			lower_bound, upper_bound, alloclen;
 	gtm_uint64_t		bound;
 	unsigned char		curchar, symbol, *inchar, *in_top, *buffptr;
@@ -176,7 +225,11 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 		}
 		saw_delimiter = 0;
 		if (!altactive || altend)
-		{
+		{	/* Use DFA for patterns by default (fast at runtime even if time/space consuming at compile time).
+			 * If at the end of the parse we find that the input pattern is of fixed length we will decide
+			 * to compile it so (invoke do_patfixed instead of do_pattern which in turn invokes the DFA).
+			 */
+			start_dfa = TRUE;
 			instr->addr = (char*)inchar;
 			if (!topseen && (TK_PERIOD == ctypetab[curchar]))
 			{
@@ -203,33 +256,10 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 			} else
 			{
 				if (dfa)
-				{
-					assert(outchar <= topchar);
-					patmaskptr = outchar;
-					cursize = dfa_calc(lv_ptr, leaf_num, exp_ptr, &fstchar, &outchar);
-					if (cursize >= 0)
-					{
-						assert(outchar <= topchar);
-						min[count] = min_dfa;
-						max[count] = PAT_MAX_REPEAT;
-						size[count] = cursize;
-						total_min = MIN((total_min + (min[count] * size[count])), PAT_MAX_REPEAT);
-						total_max = MIN((total_max + (max[count] * size[count])), PAT_MAX_REPEAT);
-						lastpatptr = patmaskptr;
-						last_infinite = TRUE;
-						count++;
-					} else
-					{
-						outchar = patmaskptr;
-						if (!pat_unwind(&count, lv_ptr, leaf_num, &total_min, &total_max,
-							&min[0], &max[0], &size[0], altmin, altmax,
-							&last_infinite, &fstchar, &outchar, &lastpatptr))
-						{
-							instr->addr = (char *)inchar;
-							return ERR_PATMAXLEN;
-						}
-						assert(outchar <= topchar);
-					}
+				{	/* Note: Below macro can do a "return ERR_PATMAXLEN" if there is not enough space */
+					TERMINATE_DFA(patmaskptr, outchar, dfa_fixed_len, lv_ptr, leaf_num, exp_ptr, fstchar,
+						topchar, min, max, size, total_min, total_max, count, lastpatptr, last_infinite,
+						min_dfa, altmin, altmax, instr, inchar, dfa);
 				}
 				if (outchar == &obj->buff[PAT_MASK_BEGIN_OFFSET])
 				{
@@ -354,7 +384,7 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 					}
 					if (!gtm_utf8_mode)
 						bytelen = 1;
-					UNICODE_ONLY(
+#					ifdef UNICODE_SUPPORTED
 					else
 					{
 						if (!UTF8_VALID(inchar, in_top, bytelen))
@@ -364,7 +394,7 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 						}
 						assert(1 <= bytelen);
 					}
-					)
+#					endif
 					if (!IS_ASCII(curchar))
 						strlit.flags |= PATM_STRLIT_NONASCII;
 					strlit.bytelen += bytelen;
@@ -392,19 +422,13 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 			} else if (!topseen && ('(' == curchar))
 			{	/* start of 'alternation' */
 				if (dfa)
-				{
-					assert(outchar <= topchar);
-					if (!pat_unwind(&count, lv_ptr, leaf_num, &total_min, &total_max,
-						&min[0], &max[0], &size[0], altmin, altmax,
-						&last_infinite, &fstchar, &outchar, &lastpatptr))
-					{
-						instr->addr = (char *)inchar;
-						return ERR_PATMAXLEN;
-					}
-					assert(outchar <= topchar);
-					dfa_attempt_failed = TRUE;
-					dfa = FALSE;
+				{	/* Finish ongoing DFA and start compiling alternation afresh at a nested depth */
+					/* Note: Below macro can do a "return ERR_PATMAXLEN" if there is not enough space */
+					TERMINATE_DFA(patmaskptr, outchar, dfa_fixed_len, lv_ptr, leaf_num, exp_ptr, fstchar,
+						topchar, min, max, size, total_min, total_max, count, lastpatptr, last_infinite,
+						min_dfa, altmin, altmax, instr, inchar, dfa);
 				}
+				start_dfa = FALSE;	/* reset start_dfa for entire duration of alternation */
 				if (inchar >= in_top)
 				{
 					assert(inchar == in_top);
@@ -533,10 +557,6 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 			upper_bound = lower_bound;
 		}
 		done = FALSE;
-		/* If dfa_attempt_failed is set to TRUE, it means we tried DFA for the current pattern match string
-		 * and decided that was not possible. In this case, we should not retry the DFA for this pattern.
-		 */
-		dfa_attempt_failed = FALSE;
 		while (!done)
 		{
 			done = TRUE;
@@ -546,19 +566,23 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 			 * non-ASCII UTF-8 byte sequences are currently not processed through the DFA logic.
 			 */
 			assert(outchar <= topchar);
-			if (infinite && !any_alt && !dfa && !dfa_attempt_failed
+			if (start_dfa && !any_alt && !dfa
 				&& (!(pattern_mask & PATM_STRLIT) || (strlit.charlen && !(strlit.flags & PATM_STRLIT_NONASCII)))
-				&& ((outchar - &obj->buff[0]) <= (MAX_PATTERN_LENGTH / 2)))
+					&& ((outchar - &obj->buff[0]) <= (MAX_PATTERN_LENGTH / 2)))
 			{
 				dfa = TRUE;
 				last_leaf_mask = 0;
 				leaf_num = 0;
 				sym_num = 0;
 				min_dfa = 0;
+				/* Maintain this just like "fixed_len" but starting from current atom
+				 * whereas "fixed_len" starts from beginning of input pattern string.
+				 */
+				dfa_fixed_len = !infinite;
 				atom_map = count;
 				memset(expand.num_e, 0, SIZEOF(expand.num_e));
 			}
-			dfa_attempt_failed = FALSE;
+			start_dfa = FALSE;
 			if (!dfa)
 			{
 				assert(outchar <= topchar);
@@ -608,7 +632,8 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 					 *    			20 = 5 + 5 + 5 + 5
 					 */
 					altsimplify = ((1 == altcount) && cur_alt) ? TRUE : FALSE;
-					if (altsimplify && (cur_alt->altpat.buff[PAT_MASK_BEGIN_OFFSET] & (PATM_ALT | PATM_DFA)))
+					if (altsimplify && ((cur_alt->altpat.buff[PAT_MASK_BEGIN_OFFSET] & PATM_ALT)
+								|| (PATM_DFA == cur_alt->altpat.buff[PAT_MASK_BEGIN_OFFSET])))
 						altsimplify = FALSE;
 					if (altsimplify)
 					{
@@ -637,11 +662,9 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 						lower_bound = min[count - 1];
 						if (!cur_alt->altpat.buff[0])
 							fixed_len = FALSE;
+						max[count - 1] = BOUND_MULTIPLY(high_in, upper_bound, bound);
 						if (!fixed_len)
-						{
-							max[count - 1] = BOUND_MULTIPLY(high_in, upper_bound, bound);
 							upper_bound = max[count - 1];
-						}
 						outchar--;
 						if ((outchar + (jump - PAT_MASK_BEGIN_OFFSET + 1)) > topchar)
 						{
@@ -698,199 +721,145 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 					charpos *= strlit.bytelen;
 					leafcnt = MAX(charpos, leafcnt);
 				}
-				if ((lower_bound > MAX_DFA_REP)
-					|| ((pattern_mask & PATM_STRLIT) && (strlit.flags & PATM_STRLIT_NONASCII))
-					|| (!infinite && lower_bound != upper_bound)
+				if (((pattern_mask & PATM_STRLIT) && (strlit.flags & PATM_STRLIT_NONASCII))
+					|| (!infinite && ((lower_bound != upper_bound) || !lower_bound))
 					|| ((leaf_num + leafcnt) >= (MAX_SYM - 1))
 					|| (charpos > MAX_DFA_STRLEN))
 				{
-					patmaskptr = outchar;
-					assert(outchar <= topchar);
-					cursize = dfa_calc(lv_ptr, leaf_num, exp_ptr, &fstchar, &outchar);
-					if (cursize >= 0)
-					{
-						assert(outchar <= topchar);
-						min[count] = min_dfa;
-						max[count] = PAT_MAX_REPEAT;
-						size[count] = cursize;
-						total_min += BOUND_MULTIPLY(min[count], size[count], bound);
-						if (total_min > PAT_MAX_REPEAT)
-							total_min = PAT_MAX_REPEAT;
-						total_max += BOUND_MULTIPLY(max[count], size[count], bound);
-						if (total_max > PAT_MAX_REPEAT)
-							total_max = PAT_MAX_REPEAT;
-						lastpatptr = patmaskptr;
-						last_infinite = TRUE;
-						count++;
-					} else
-					{
-						outchar = patmaskptr;
-						if (!pat_unwind(&count, lv_ptr, leaf_num, &total_min, &total_max,
-							&min[0], &max[0], &size[0], altmin, altmax,
-							&last_infinite, &fstchar, &outchar, &lastpatptr))
-						{
-							instr->addr = (char *)inchar;
-							return ERR_PATMAXLEN;
-						}
-						assert(outchar <= topchar);
-						dfa_attempt_failed = TRUE;
-					}
-					dfa = FALSE;
+					/* Note: Below macro can do a "return ERR_PATMAXLEN" if there is not enough space */
+					TERMINATE_DFA(patmaskptr, outchar, dfa_fixed_len, lv_ptr, leaf_num, exp_ptr, fstchar,
+						topchar, min, max, size, total_min, total_max, count, lastpatptr, last_infinite,
+						min_dfa, altmin, altmax, instr, inchar, dfa);
+					start_dfa = ((MAX_DFA_STRLEN >= charpos) /* Try another DFA for remainder if possible */
+							&& (infinite || (lower_bound == upper_bound) && lower_bound) && leaf_num);
 					done = FALSE;
 					continue;
-				} else
+				}
+				curr_min_dfa = min_dfa;
+				curr_leaf_num = leaf_num;
+				if (pattern_mask & PATM_STRLIT)
 				{
-					curr_min_dfa = min_dfa;
-					curr_leaf_num = leaf_num;
-					if (pattern_mask & PATM_STRLIT)
+					memset(&exp_temp[0], 0, SIZEOF(exp_temp));
+					min[atom_map] = lower_bound;
+					max[atom_map] = upper_bound;
+					size[atom_map] = strlit.bytelen;
+					atom_map++;
+					min_dfa += lower_bound * strlit.bytelen;
+					cursize = MAX(lower_bound, 1);
+					for (seqcnt = 0; seqcnt < cursize; seqcnt++)
 					{
-						memset(&exp_temp[0], 0, SIZEOF(exp_temp));
-						min[atom_map] = lower_bound;
-						max[atom_map] = upper_bound;
-						size[atom_map] = strlit.bytelen;
-						atom_map++;
-						min_dfa += lower_bound * strlit.bytelen;
-						cursize = MAX(lower_bound, 1);
-						for (seqcnt = 0; seqcnt < cursize; seqcnt++)
+						for (charpos = 0; charpos < strlit.bytelen; charpos++)
 						{
-							for (charpos = 0; charpos < strlit.bytelen; charpos++)
-							{
-								symbol = strlit.buff[charpos];
-								/* It is ok to use typemask[] below because we are guaranteed
-								 * that "symbol" is a 1-byte valid ASCII character. Assert that.
-								 */
-								assert(!(strlit.flags & PATM_STRLIT_NONASCII) && IS_ASCII(symbol));
-								bitpos = patmaskseq(typemask[symbol]);
-								if (expand.num_e[bitpos] + exp_temp[bitpos] == 0)
-									exp_temp[bitpos]++;
-								for (leafcnt = 1;
-									leafcnt < expand.num_e[bitpos] + exp_temp[bitpos] &&
-										expand.meta_c[bitpos][leafcnt] != symbol;
-									leafcnt++)
-									;
-								if (leafcnt == expand.num_e[bitpos] + exp_temp[bitpos])
-									exp_temp[bitpos]++;
-								expand.meta_c[bitpos][leafcnt] = symbol;
-								if (!infinite)
-								{
-									leaves.letter[leaf_num][0] = symbol;
-									leaves.letter[leaf_num][1] = -1;
-									leaves.nullable[leaf_num++] = FALSE;
-								} else
-									leaves.letter[leaf_num][charpos] = symbol;
-							}
-							if (infinite)
+							symbol = strlit.buff[charpos];
+							/* It is ok to use typemask[] below because we are guaranteed
+							 * that "symbol" is a 1-byte valid ASCII character. Assert that.
+							 */
+							assert(!(strlit.flags & PATM_STRLIT_NONASCII) && IS_ASCII(symbol));
+							bitpos = patmaskseq(typemask[symbol]);
+							if (expand.num_e[bitpos] + exp_temp[bitpos] == 0)
+								exp_temp[bitpos]++;
+							for (leafcnt = 1;
+								(leafcnt < (expand.num_e[bitpos] + exp_temp[bitpos]))
+									&& (expand.meta_c[bitpos][leafcnt] != symbol);
+								leafcnt++)
+								;
+							if (leafcnt == expand.num_e[bitpos] + exp_temp[bitpos])
+								exp_temp[bitpos]++;
+							expand.meta_c[bitpos][leafcnt] = symbol;
+							if (!infinite)
 							{
-								leaves.letter[leaf_num][charpos] = -1;
-								leaves.nullable[leaf_num++] = infinite;
-							}
+								leaves.letter[leaf_num][0] = symbol;
+								leaves.letter[leaf_num][1] = -1;
+								leaves.nullable[leaf_num++] = FALSE;
+							} else
+								leaves.letter[leaf_num][charpos] = symbol;
 						}
-						last_leaf_mask = PATM_STRLIT;
-						last_infinite = infinite;
-						sym_num = 0;
-						for (leafcnt = 0; leafcnt < leaf_num; leafcnt++)
+						if (infinite)
 						{
-							for (charpos = 0; leaves.letter[leafcnt][charpos] >= 0; charpos++)
-							{
-								if (!(leaves.letter[leafcnt][charpos] & DFABIT))
-									sym_num++;
-								else
-								{
-									bitpos = patmaskseq(leaves.letter[leafcnt][charpos]);
-									sym_num += expand.num_e[bitpos] + exp_temp[bitpos];
-								}
-							}
+							leaves.letter[leaf_num][charpos] = -1;
+							leaves.nullable[leaf_num++] = infinite;
 						}
-					} else
+					}
+					last_leaf_mask = PATM_STRLIT;
+					last_infinite = infinite;
+					sym_num = 0;
+					for (leafcnt = 0; leafcnt < leaf_num; leafcnt++)
 					{
-						if (!(last_leaf_mask & PATM_STRLIT) && infinite && last_infinite)
+						for (charpos = 0; leaves.letter[leafcnt][charpos] >= 0; charpos++)
 						{
-							y_max = MAX(pattern_mask, last_leaf_mask);
-							if ((last_leaf_mask & pattern_mask) &&
-							   ((last_leaf_mask | pattern_mask) == y_max))
+							if (!(leaves.letter[leafcnt][charpos] & DFABIT))
+								sym_num++;
+							else
 							{
-								if (last_leaf_mask == y_max)
-									continue;
-								leaf_num--;
-								atom_map--;
+								bitpos = patmaskseq(leaves.letter[leafcnt][charpos]);
+								sym_num += expand.num_e[bitpos] + exp_temp[bitpos];
 							}
 						}
-						min[atom_map] = lower_bound;
-						max[atom_map] = upper_bound;
-						size[atom_map] = 1;
-						atom_map++;
-						min_dfa += lower_bound;
-						charpos = MAX(lower_bound, 1);
-						last_infinite = infinite;
-						last_leaf_mask = pattern_mask;
-						for (seqcnt = 0; seqcnt < charpos; seqcnt++)
+					}
+				} else
+				{
+					if (!(last_leaf_mask & PATM_STRLIT) && infinite && last_infinite)
+					{
+						y_max = MAX(pattern_mask, last_leaf_mask);
+						if ((last_leaf_mask & pattern_mask) &&
+						   ((last_leaf_mask | pattern_mask) == y_max))
 						{
-							bitpos = 0;
-							leaves.nullable[leaf_num] = infinite;
-							/* Check all PAT_MAX_BITS bits if there are flags for internationalization,
-							 * otherwise, check only the original PAT_BASIC_CLASSES bits
-							 * (C, L, N, P, U, 0, 1) where
-							 *	0 = PATM_UTF8_ALPHABET, 1 = PATM_UTF8_NONBASIC
-							 */
-							if (PATM_E != pattern_mask)
-							{
-								chidx = (pattern_mask & PATM_I18NFLAGS)
-									? PAT_MAX_BITS : PAT_BASIC_CLASSES;
-							} else
-								chidx = PAT_BASIC_CLASSES;
-							for (bit = 0; bit < chidx; bit++)
+							if (last_leaf_mask == y_max)
+								continue;
+							leaf_num--;
+							atom_map--;
+						}
+					}
+					min[atom_map] = lower_bound;
+					max[atom_map] = upper_bound;
+					size[atom_map] = 1;
+					atom_map++;
+					min_dfa += lower_bound;
+					charpos = MAX(lower_bound, 1);
+					last_infinite = infinite;
+					last_leaf_mask = pattern_mask;
+					for (seqcnt = 0; seqcnt < charpos; seqcnt++)
+					{
+						bitpos = 0;
+						leaves.nullable[leaf_num] = infinite;
+						/* Check all PAT_MAX_BITS bits if there are flags for internationalization,
+						 * otherwise, check only the original PAT_BASIC_CLASSES bits
+						 * (C, L, N, P, U, 0, 1) where
+						 *	0 = PATM_UTF8_ALPHABET, 1 = PATM_UTF8_NONBASIC
+						 */
+						if (PATM_E != pattern_mask)
+						{
+							chidx = (pattern_mask & PATM_I18NFLAGS)
+								? PAT_MAX_BITS : PAT_BASIC_CLASSES;
+						} else
+							chidx = PAT_BASIC_CLASSES;
+						for (bit = 0; bit < chidx; bit++)
+						{
+							mbit = 1 << bit;
+							if ((allmask & mbit) && (pattern_mask & mbit))
 							{
-								mbit = 1 << bit;
-								if ((allmask & mbit) && (pattern_mask & mbit))
-								{
-									seq = patmaskseq((uint4)mbit);
-									if (expand.num_e[seq] == 0)
-										expand.num_e[seq]++;
-									sym_num += expand.num_e[seq];
-									assert(MAX_DFA_STRLEN >= bitpos);
-									leaves.letter[leaf_num][bitpos++] = DFABIT | mbit;
-								}
+								seq = patmaskseq((uint4)mbit);
+								if (expand.num_e[seq] == 0)
+									expand.num_e[seq]++;
+								sym_num += expand.num_e[seq];
+								assert(MAX_DFA_STRLEN >= bitpos);
+								leaves.letter[leaf_num][bitpos++] = DFABIT | mbit;
 							}
-							assert(MAX_DFA_STRLEN >= bitpos);
-							leaves.letter[leaf_num][bitpos] = -1;
-							leaf_num++;
 						}
+						assert(MAX_DFA_STRLEN >= bitpos);
+						leaves.letter[leaf_num][bitpos] = -1;
+						leaf_num++;
 					}
 				}
 				if (sym_num >= MAX_SYM - 1)
 				{
-					patmaskptr = outchar;
-					assert(outchar <= topchar);
-					cursize = dfa_calc(lv_ptr, curr_leaf_num, exp_ptr, &fstchar, &outchar);
-					if (cursize >= 0)
-					{
-						assert(outchar <= topchar);
-						min[count] = curr_min_dfa;
-						max[count] = PAT_MAX_REPEAT;
-						size[count] = cursize;
-						total_min += BOUND_MULTIPLY(min[count], size[count], bound);
-						if (total_min > PAT_MAX_REPEAT)
-							total_min = PAT_MAX_REPEAT;
-						total_max += BOUND_MULTIPLY(max[count], size[count], bound);
-						if (total_max > PAT_MAX_REPEAT)
-							total_max = PAT_MAX_REPEAT;
-						lastpatptr = patmaskptr;
-						last_infinite = TRUE;
-						count++;
-					} else
-					{
-						outchar = patmaskptr;
-						if (!pat_unwind(&count, lv_ptr, curr_leaf_num, &total_min, &total_max,
-							&min[0], &max[0], &size[0], altmin, altmax,
-							&last_infinite, &fstchar, &outchar, &lastpatptr))
-						{
-							instr->addr = (char *)inchar;
-							return ERR_PATMAXLEN;
-						}
-						assert(outchar <= topchar);
-						dfa_attempt_failed = TRUE;
-					}
-					dfa = FALSE;
+					leaf_num = curr_leaf_num;
+					min_dfa = curr_min_dfa;
+					/* Note: Below macro can do a "return ERR_PATMAXLEN" if there is not enough space */
+					TERMINATE_DFA(patmaskptr, outchar, dfa_fixed_len, lv_ptr, leaf_num, exp_ptr, fstchar,
+						topchar, min, max, size, total_min, total_max, count, lastpatptr, last_infinite,
+						min_dfa, altmin, altmax, instr, inchar, dfa);
+					start_dfa = curr_leaf_num; /* Try another DFA for remainder if possible */
 					done = FALSE;
 					continue;
 				} else
@@ -907,8 +876,12 @@ int patstr(mstr *instr, ptstr *obj, unsigned char **relay)
 				infinite = TRUE;
 				split_atom = FALSE;
 				done = FALSE;
+				if (dfa)
+					dfa_fixed_len = FALSE;
 			}
 		}
+		if (dfa && infinite)
+			dfa_fixed_len = FALSE;
 		for (cur_alt = &init_alt; cur_alt; )
 		{
 			let_go = (cur_alt != (alternation *)&init_alt) ? (unsigned char *)cur_alt : NULL;
diff --git a/sr_port/put_lit.c b/sr_port/put_lit.c
index 210dbbd..d0c15ff 100755
--- a/sr_port/put_lit.c
+++ b/sr_port/put_lit.c
@@ -37,6 +37,8 @@ oprtype put_lit_s(mval *x, triple *dst_triple)
 
 	assert(MV_DEFINED(x));
 	MV_FORCE_STR(x);
+	if (MV_IS_CANONICAL(x))
+		MV_FORCE_NUM(x);
 	DEBUG_ONLY(litent = NULL);
 	if (dst_triple == NULL)
 		ref = newtriple(OC_LIT);
diff --git a/sr_port/put_str.c b/sr_port/put_str.c
index 9b090d4..28315a8 100755
--- a/sr_port/put_str.c
+++ b/sr_port/put_str.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2014 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -29,6 +30,7 @@ oprtype put_str(char *pt, mstr_len_t n)
 	p.str.len = n;
 	p.str.addr = (char *) stringpool.free;
 	stringpool.free += n;
+	/* The line below should be removed as part of GTM-8540; but I can't find a negative test case */
 	s2n(&p);
 	return put_lit(&p);
 }
diff --git a/sr_port/resolve_ref.c b/sr_port/resolve_ref.c
index ce97aad..40e64f3 100755
--- a/sr_port/resolve_ref.c
+++ b/sr_port/resolve_ref.c
@@ -270,6 +270,8 @@ int resolve_ref(int errknt)
 				case TRIP_REF:
 					resolve_tref(curtrip, opnd);
 					continue;
+				default:
+					break;
 				}
 			}
 			opnd = &curtrip->destination;
@@ -357,8 +359,23 @@ STATICFNDCL bool do_optimize(triple *curtrip)
 				{
 					if (label->operand[0].oprval.mlit->v.str.len > cur_line->str.len)
 						continue;
-					if (strncmp(label->operand[0].oprval.mlit->v.str.addr, cur_line->str.addr,
-						label->operand[0].oprval.mlit->v.str.len) == 0)
+					if (label->operand[0].oprval.mlit->v.str.len != cur_line->str.len)
+					{
+						switch (cur_line->str.addr[label->operand[0].oprval.mlit->v.str.len])
+						{
+							case ' ':
+							case ';':
+							case '(':
+							case ':':
+								break;
+							default:
+								/* If we get here, it means we have a superstring of the label; 
+								 * i.e. searching for "a" found "abc" */
+								continue;
+						}
+					}
+					if (!strncmp(label->operand[0].oprval.mlit->v.str.addr, cur_line->str.addr,
+						label->operand[0].oprval.mlit->v.str.len))
 						break;
 				}
 				if (&src_head == cur_line)
diff --git a/sr_port/set_gbuff_limit.c b/sr_port/set_gbuff_limit.c
new file mode 100644
index 0000000..1915c4e
--- /dev/null
+++ b/sr_port/set_gbuff_limit.c
@@ -0,0 +1,42 @@
+/****************************************************************
+ *								*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
+ *								*
+ *	This source code contains the intellectual property	*
+ *	of its copyright holder(s), and is made available	*
+ *	under a license.  If you do not know the terms of	*
+ *	the license, please stop and do not read further.	*
+ *								*
+ ****************************************************************/
+
+#include "mdef.h"
+#include "gdsroot.h"
+#include "gtm_facility.h"
+#include "fileinfo.h"
+#include "gdsbt.h"
+#include "gdsfhead.h"
+#include "mvalconv.h"
+#include "min_max.h"
+#include "set_gbuff_limit.h"
+
+/* sets the value of gbuff_limit (in struct sgmnt_addrs), depending on the value of the poollimit settings
+ * (which in turn is set using environment var "gtm_poollimit", and has a default value in case of MUPIP REORG.
+ */
+void set_gbuff_limit(sgmnt_addrs **csaptr, sgmnt_data_ptr_t *csdptr, mval *poollimit_arg)
+{
+	int4			nbuffs;
+	sgmnt_addrs		*csa;
+	sgmnt_data_ptr_t	csd;
+
+	csa = *csaptr;
+	csd = *csdptr;
+	nbuffs = ((dba_bg == csd->acc_meth) && (NULL != poollimit_arg)) ? MV_FORCE_INT(poollimit_arg) : 0;
+	if (nbuffs && (MV_STR & poollimit_arg->mvtype) && ('%' == poollimit_arg->str.addr[poollimit_arg->str.len - 1]))
+		nbuffs = (100 == nbuffs) ? 0 : (csd->n_bts * nbuffs) / 100;		/* Percentage */
+	csa->gbuff_limit = (0 == nbuffs) ? 0 : MAX(MIN(nbuffs, csd->n_bts * .5), MIN_GBUFF_LIMIT);
+	/* To pick the current "hand" as a pseudo-random spot for our area see dbg code in gvcst_init
+	 * but for the first release of this always pick the end of the buffer
+	 */
+	csa->our_midnite = csa->acc_meth.bg.cache_state->cache_array + csd->bt_buckets + csd->n_bts;
+}
diff --git a/sr_linux/release_name.h b/sr_port/set_gbuff_limit.h
similarity index 55%
copy from sr_linux/release_name.h
copy to sr_port/set_gbuff_limit.h
index 672c74d..bae3fe6 100644
--- a/sr_linux/release_name.h
+++ b/sr_port/set_gbuff_limit.h
@@ -10,16 +10,12 @@
  *								*
  ****************************************************************/
 
-#ifdef __CYGWIN__
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 CYGWIN x86"
-#elif defined(__ia64)
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux IA64"
-#elif defined(__x86_64__)
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux x86_64"
-#elif defined(__s390__)
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux S390X"
-#else
-#define GTM_RELEASE_NAME 	"GT.M V6.3-000 Linux x86"
+#ifndef SET_GBUFF_LIMIT_INCLUDED
+#define SET_GBUFF_LIMIT_INCLUDED
+
+#include "mdef.h"
+#include "gdsfhead.h"
+
+void set_gbuff_limit(sgmnt_addrs **csaptr, sgmnt_data_ptr_t *csdptr, mval *poollimit_arg);
+
 #endif
-#define GTM_PRODUCT 		"GT.M"
-#define GTM_VERSION		"V6.3"
diff --git a/sr_port/t_end.c b/sr_port/t_end.c
index 7f76125..51e836d 100644
--- a/sr_port/t_end.c
+++ b/sr_port/t_end.c
@@ -1179,59 +1179,6 @@ trans_num t_end(srch_hist *hist1, srch_hist *hist2, trans_num ctn)
 			|| (ERR_GVPUTFAIL == t_err) && gvdupsetnoop			/* exception case (a) */
 			|| (ERR_JRTNULLFAIL == t_err)					/* exception case (d) */
 			|| (ERR_GVKILLFAIL == t_err) && gv_play_duplicate_kills);	/* exception case (b) */
-	if (REPL_ALLOWED(csa) && (NULL != jnlpool_ctl))
-	{
-		repl_csa = &FILE_INFO(jnlpool.jnlpool_dummy_reg)->s_addrs;
-		if (!repl_csa->hold_onto_crit)
-			grab_lock(jnlpool.jnlpool_dummy_reg, TRUE, ASSERT_NO_ONLINE_ROLLBACK);
-		assert(repl_csa->now_crit);
-		jnlpool_crit_acquired = TRUE;
-#		ifdef UNIX
-		/* With jnlpool lock held, check instance freeze, and retry if set. */
-		if (jnlpool.jnlpool_ctl->freeze)
-		{
-			status = cdb_sc_instancefreeze;
-			goto failed;
-		}
-#		endif
-		if (is_replicator && (inctn_invalid_op == inctn_opcode))
-		{
-			jpl = jnlpool_ctl;
-			replication = TRUE;
-			jplctx.write = jpl->write;
-			jplctx.write_total = 0;
-			temp_jnl_seqno = jpl->jnl_seqno;
-#			ifdef UNIX
-			if (INVALID_SUPPL_STRM != strm_index)
-			{	/* Need to also update supplementary stream seqno */
-				supplementary = TRUE;
-				assert(0 <= strm_index);
-				strm_seqno = jpl->strm_seqno[strm_index];
-				ASSERT_INST_FILE_HDR_HAS_HISTREC_FOR_STRM(strm_index);
-			} else
-				supplementary = FALSE;
-#			endif
-			INT8_ONLY(assert(jplctx.write == jpl->write_addr % jpl->jnlpool_size));
-			assert(jgbl.cumul_jnl_rec_len);
-			tmp_cumul_jnl_rec_len = (uint4)(jgbl.cumul_jnl_rec_len + SIZEOF(jnldata_hdr_struct));
-			jplctx.write += SIZEOF(jnldata_hdr_struct);
-			jplctx.write_total += SIZEOF(jnldata_hdr_struct);
-			if (jplctx.write >= jpl->jnlpool_size)
-			{
-				assert(jplctx.write == jpl->jnlpool_size);
-				jplctx.write = 0;
-			}
-			assert(jpl->early_write_addr == jpl->write_addr);
-			jpl->early_write_addr = jpl->write_addr + tmp_cumul_jnl_rec_len;
-			/* Source server does not read in crit. It relies on early_write_addr, the transaction
-			 * data, lastwrite_len, write_addr being updated in that order. To ensure this order,
-			 * we have to force out early_write_addr to its coherency point now. If not, the source
-			 * server may read data that is overwritten (or stale). This is true only on
-			 * architectures and OSes that allow unordered memory access
-			 */
-			SHM_WRITE_MEMORY_BARRIER;
-		}
-	}
 	assert(cw_set_depth < CDB_CW_SET_SIZE);
 	ASSERT_CURR_TN_EQUALS_EARLY_TN(csa, dbtn);
 	CHECK_TN(csa, csd, dbtn);	/* can issue rts_error TNTOOLARGE */
@@ -1253,14 +1200,6 @@ trans_num t_end(srch_hist *hist1, srch_hist *hist2, trans_num ctn)
 		 * (if it decides to switch to a new journal file)
 		 */
 		ADJUST_GBL_JREC_TIME(jgbl, jbp);
-		if (replication)
-		{	/* Make sure timestamp of this seqno is >= timestamp of previous seqno. Note: The below macro
-			 * invocation should be done AFTER the ADJUST_GBL_JREC_TIME call as the below resets
-			 * jpl->prev_jnlseqno_time. Doing it the other way around would mean the reset will happen
-			 * with a potentially lower value than the final adjusted time written in the jnl record.
-			 */
-			ADJUST_GBL_JREC_TIME_JNLPOOL(jgbl, jpl);
-		}
 		/* Note that jnl_ensure_open can call cre_jnl_file which
 		 * in turn assumes jgbl.gbl_jrec_time is set. Also jnl_file_extend can call
 		 * jnl_write_epoch_rec which in turn assumes jgbl.gbl_jrec_time is set.
@@ -1338,7 +1277,67 @@ trans_num t_end(srch_hist *hist1, srch_hist *hist2, trans_num ctn)
 						DB_LEN_STR(gv_cur_region));
 		}
 	}
+	/* At this point, we are done with validation and so we need to assert that donot_commit is set to FALSE */
 	assert(!TREF(donot_commit));	/* We should never commit a transaction that was determined restartable */
+	if (REPL_ALLOWED(csa) && (NULL != jnlpool_ctl))
+	{
+		repl_csa = &FILE_INFO(jnlpool.jnlpool_dummy_reg)->s_addrs;
+		if (!repl_csa->hold_onto_crit)
+			grab_lock(jnlpool.jnlpool_dummy_reg, TRUE, ASSERT_NO_ONLINE_ROLLBACK);
+		assert(repl_csa->now_crit);
+		jnlpool_crit_acquired = TRUE;
+#		ifdef UNIX
+		/* With jnlpool lock held, check instance freeze, and retry if set. */
+		if (jnlpool.jnlpool_ctl->freeze)
+		{
+			status = cdb_sc_instancefreeze;
+			goto failed;
+		}
+#		endif
+		if (is_replicator && (inctn_invalid_op == inctn_opcode))
+		{
+			jpl = jnlpool_ctl;
+			replication = TRUE;
+			jplctx.write = jpl->write;
+			jplctx.write_total = 0;
+			temp_jnl_seqno = jpl->jnl_seqno;
+#			ifdef UNIX
+			if (INVALID_SUPPL_STRM != strm_index)
+			{	/* Need to also update supplementary stream seqno */
+				supplementary = TRUE;
+				assert(0 <= strm_index);
+				strm_seqno = jpl->strm_seqno[strm_index];
+				ASSERT_INST_FILE_HDR_HAS_HISTREC_FOR_STRM(strm_index);
+			} else
+				supplementary = FALSE;
+#			endif
+			INT8_ONLY(assert(jplctx.write == jpl->write_addr % jpl->jnlpool_size));
+			assert(jgbl.cumul_jnl_rec_len);
+			tmp_cumul_jnl_rec_len = (uint4)(jgbl.cumul_jnl_rec_len + SIZEOF(jnldata_hdr_struct));
+			jplctx.write += SIZEOF(jnldata_hdr_struct);
+			jplctx.write_total += SIZEOF(jnldata_hdr_struct);
+			if (jplctx.write >= jpl->jnlpool_size)
+			{
+				assert(jplctx.write == jpl->jnlpool_size);
+				jplctx.write = 0;
+			}
+			/* Make sure timestamp of this seqno is >= timestamp of previous seqno. Note: The below macro
+			 * invocation should be done AFTER the ADJUST_GBL_JREC_TIME call as the below resets
+			 * jpl->prev_jnlseqno_time. Doing it the other way around would mean the reset will happen
+			 * with a potentially lower value than the final adjusted time written in the jnl record.
+			 */
+			ADJUST_GBL_JREC_TIME_JNLPOOL(jgbl, jpl);
+			assert(jpl->early_write_addr == jpl->write_addr);
+			jpl->early_write_addr = jpl->write_addr + tmp_cumul_jnl_rec_len;
+			/* Source server does not read in crit. It relies on early_write_addr, the transaction
+			 * data, lastwrite_len, write_addr being updated in that order. To ensure this order,
+			 * we have to force out early_write_addr to its coherency point now. If not, the source
+			 * server may read data that is overwritten (or stale). This is true only on
+			 * architectures and OSes that allow unordered memory access
+			 */
+			SHM_WRITE_MEMORY_BARRIER;
+		}
+	}
 	assert(TN_NOT_SPECIFIED > MAX_TN_V6); /* Ensure TN_NOT_SPECIFIED isn't a valid TN number */
 	blktn = (TN_NOT_SPECIFIED == ctn) ? dbtn : ctn;
 	csa->ti->early_tn = dbtn + 1;
diff --git a/sr_port/t_retry.c b/sr_port/t_retry.c
index ab1c01d..06efa3d 100755
--- a/sr_port/t_retry.c
+++ b/sr_port/t_retry.c
@@ -539,6 +539,8 @@ void t_retry(enum cdb_sc failure)
 					gvcst_redo_root_search();
 				}
 				break;
+			default:
+				break;
 		}
 		assert(NULL == reorg_encrypt_restart_csa);
 	} else
diff --git a/sr_port/unw_mv_ent.c b/sr_port/unw_mv_ent.c
index bfd80b6..176fb60 100644
--- a/sr_port/unw_mv_ent.c
+++ b/sr_port/unw_mv_ent.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -152,10 +152,8 @@ void unw_mv_ent(mv_stent *mv_st_ent)
 					tptimeout_set(0);
 			} else if (mv_st_ent->mv_st_cont.mvs_msav.addr == &dollar_zgbldir)
 			{
-				if (0 != dollar_zgbldir.str.len)
-					gd_header = zgbldir(&dollar_zgbldir);
-				else
-					dpzgbini();	/* sets gd_header to NULL */
+				/* Restore GLD if a match is found, otherwise defer setting gd_header */
+				gd_header = zgbldir_name_lookup_only(&dollar_zgbldir);
 				if (gv_currkey)
 				{
 					gv_currkey->base[0] = 0;
diff --git a/sr_port/updproc.c b/sr_port/updproc.c
index 70e69c0..5306bf0 100644
--- a/sr_port/updproc.c
+++ b/sr_port/updproc.c
@@ -1438,6 +1438,9 @@ void updproc_actions(gld_dbname_list *gld_db_files)
 							(int4)(tmpcsa->region)->max_rec_size, REG_LEN_STR(tmpcsa->region),
 							ERR_GVIS, 2, end - buff, buff);
 						break;
+					default:
+						assert(FALSE && bad_trans_type);
+						break;					/* NOTREACHED */
 				}
 			} else
 			{
diff --git a/sr_port/wbox_test_init.h b/sr_port/wbox_test_init.h
index 7e724ad..c49fe76 100755
--- a/sr_port/wbox_test_init.h
+++ b/sr_port/wbox_test_init.h
@@ -92,7 +92,7 @@ typedef enum {
 	WBTEST_UTIL_OUT_BUFFER_PROTECTION,	/* 61 : Start a timer that would mess with util_out buffers by frequently
 						 *	printing long messages via util_out_print */
 	WBTEST_SET_WC_BLOCKED,			/* 62 : Set the wc_blocked when searching the tree to start wcs_recover process*/
-	WBTEST_REORG_DEBUG,			/* 63 : mupip reorg will print GTMPOOLLIMIT value */
+	WBTEST_REORG_DEBUG,			/* 63 : mupip reorg Will print GTMPOOLLIMIT value */
 	WBTEST_WCS_FLU_IOERR,			/* 64 : Force an I/O error (other than ENOSPC) when wcs_wtstart is invoked from
 						 *      wcs_flu */
 	WBTEST_WCS_WTSTART_IOERR,		/* 65 : Force an I/O error (other than ENOSPC) within wcs_wtstart */
@@ -158,9 +158,10 @@ typedef enum {
 	WBTEST_TEND_GBLJRECTIME_SLEEP,		/* 119 : Sleep in t_end after SET_GBL_JREC_TIME to induce GTM-8332 */
 	WBTEST_SIGTSTP_IN_T_QREAD,		/* 120 : Stop ourselves in t_qread to force secshr_db_clnup to clear read state */
 	WBTEST_SLAM_SECSHR_ADDRS,		/* 121 : SIGTERM in init_secshr_addrs - verify secshr_db_clnup does not assert */
-	WBTEST_UNUSED_122,			/* 122 : **************** UNUSED PLEASE REUSE **************** */
+	WBTEST_MM_CONCURRENT_FILE_EXTEND,	/* 122 : Extend database concurrently in MM */
 	WBTEST_SLEEP_IN_MUPIP_REORG_ENCRYPT,	/* 123 : Sleep in mupip_reorg_encrypt() upon releasing crit */
-	WBTEST_OPFNZCONVERT_FILE_ACCESS_ERROR   /* 124 : gtm_strToTitle() returning U_FILE_ACCESS_ERROR error */
+	WBTEST_OPFNZCONVERT_FILE_ACCESS_ERROR,	/* 124 : gtm_strToTitle() returning U_FILE_ACCESS_ERROR error */
+	WBTEST_MUEXTRACT_GVCST_RETURN_FALSE	/* 125 : check return value of gvcst_get in concurrent update. */
 	/* Note 1: when adding new white box test cases, please make use of WBTEST_ENABLED and WBTEST_ASSIGN_ONLY (defined below)
 	 * whenever applicable
 	 * Note 2: when adding a new white box test case, see if an existing WBTEST_UNUSED* slot can be leveraged.
diff --git a/sr_port_cm/gtcm_protocol.c b/sr_port_cm/gtcm_protocol.c
index f919db9..e939019 100755
--- a/sr_port_cm/gtcm_protocol.c
+++ b/sr_port_cm/gtcm_protocol.c
@@ -21,29 +21,29 @@ static char *encode_os(void);
 
 LITDEF	gtcm_proto_cpu_info_t	gtcm_proto_cpu_info[] =
 {
-	LIT_AND_LEN("IA64"),			"IA64",
-	LIT_AND_LEN("RS6000"),			"PPC",
-	LIT_AND_LEN("AXP"),			"AXP",
-	LIT_AND_LEN("HP-PA"),			"PAR",
-	LIT_AND_LEN("x86"),			"X86",
-	LIT_AND_LEN("x86_64"),			"X86_64",
-	LIT_AND_LEN("S390"),			"390",
-	LIT_AND_LEN("S390X"),			"390",
-	LIT_AND_LEN("SPARC"),			"SPA",
-	LIT_AND_LEN("VAX"),			"VAX",
-	LIT_AND_LEN(GTCM_PROTO_BAD_CPU),	GTCM_PROTO_BAD_CPU
+	{LIT_AND_LEN("IA64"),			"IA64"},
+	{LIT_AND_LEN("RS6000"),			"PPC"},
+	{LIT_AND_LEN("AXP"),			"AXP"},
+	{LIT_AND_LEN("HP-PA"),			"PAR"},
+	{LIT_AND_LEN("x86"),			"X86"},
+	{LIT_AND_LEN("x86_64"),			"X86_64"},
+	{LIT_AND_LEN("S390"),			"390"},
+	{LIT_AND_LEN("S390X"),			"390"},
+	{LIT_AND_LEN("SPARC"),			"SPA"},
+	{LIT_AND_LEN("VAX"),			"VAX"},
+	{LIT_AND_LEN(GTCM_PROTO_BAD_CPU),	GTCM_PROTO_BAD_CPU}
 };
 
 LITDEF	gtcm_proto_os_info_t	gtcm_proto_os_info[] =
 {
-	LIT_AND_LEN("AIX"),			"AIX",
-	LIT_AND_LEN("OSF1"),			"OSF",
-	LIT_AND_LEN("HP-UX"),			"HPX",
-	LIT_AND_LEN("Linux"),			"LNX",
-	LIT_AND_LEN("OS390"),			"zOS",
-	LIT_AND_LEN("Solaris"),			"SOL",
-	LIT_AND_LEN("VMS"),			"VMS",
-	LIT_AND_LEN(GTCM_PROTO_BAD_OS),		GTCM_PROTO_BAD_OS
+	{LIT_AND_LEN("AIX"),			"AIX"},
+	{LIT_AND_LEN("OSF1"),			"OSF"},
+	{LIT_AND_LEN("HP-UX"),			"HPX"},
+	{LIT_AND_LEN("Linux"),			"LNX"},
+	{LIT_AND_LEN("OS390"),			"zOS"},
+	{LIT_AND_LEN("Solaris"),		"SOL"},
+	{LIT_AND_LEN("VMS"),			"VMS"},
+	{LIT_AND_LEN(GTCM_PROTO_BAD_OS),	GTCM_PROTO_BAD_OS}
 };
 
 LITREF	char		gtm_release_name[];
@@ -124,7 +124,7 @@ static char *encode_cpu()
 				return gtcm_proto_cpu_info[cpuidx].proto_cpu;
 		}
 	}
-	GTMASSERT;
+	assertpro(FALSE && "cpu match");
 	return NULL; /* Added to make compiler happy and not throw warning */
 }
 
@@ -151,6 +151,6 @@ static char *encode_os()
 				return gtcm_proto_os_info[osidx].proto_os;
 		}
 	}
-	GTMASSERT;
+	assertpro(FALSE && "os match");
 	return NULL; /* Added to make compiler happy and not throw warning */
 }
diff --git a/sr_port_cm/gtcml_lklist.c b/sr_port_cm/gtcml_lklist.c
index 8a96cf7..f976c79 100755
--- a/sr_port_cm/gtcml_lklist.c
+++ b/sr_port_cm/gtcml_lklist.c
@@ -30,12 +30,13 @@
 #include "gtcml.h"
 #include "mlk_pvtblk_equ.h"
 #include "copy.h"
+#include "gtcm_find_region.h"
 
 GBLREF connection_struct *curr_entry;
 
 void gtcml_lklist(void)
 {
-	cm_region_list *reg_ref, *gtcm_find_region();
+	cm_region_list *reg_ref;
 	unsigned char *ptr, regnum, list_len, i, translev, subcnt;
 	unsigned short top,len;
 	mlk_pvtblk *new_entry;
diff --git a/sr_unix/Makefile.mk b/sr_unix/Makefile.mk
index 77bfb40..52c5b9b 100644
--- a/sr_unix/Makefile.mk
+++ b/sr_unix/Makefile.mk
@@ -205,10 +205,14 @@ libgtmtls.so: $(tls_srcfiles) $(tls_hdrfiles) libgtmcryptutil.so
 
 install: all
 	@echo ; echo "Installing shared libraries to $(PLUGINDIR) and maskpass to $(PLUGINDIR)/gtmcrypt..."
+	mkdir -p $(PLUGINDIR)/o/utf8 $(PLUGINDIR)/r
 	cp -f *.so $(PLUGINDIR)
 	echo "$(PLUGINDIR)/libgtmcryptutil.so"                                                      > $(PLUGINDIR)/gpgagent.tab
 	echo "unmaskpwd: gtm_status_t gc_mask_unmask_passwd(I:gtm_string_t*,O:gtm_string_t*[512])" >> $(PLUGINDIR)/gpgagent.tab
 	ln -fs ./$(install_targ) $(PLUGINDIR)/libgtmcrypt.so
+	cp -pf pinentry.m $(PLUGINDIR)/r
+	(cd $(PLUGINDIR)/o && ${gtm_dist}/mumps $(PLUGINDIR)/r/pinentry.m)
+	(cd $(PLUGINDIR)/o/utf8 && env gtm_chset=UTF-8 ${gtm_dist}/mumps $(PLUGINDIR)/r/pinentry.m)
 ifeq ($(NOT_IN_GTMCRYPTDIR),1)
 	cp -pf *.sh $(GTMCRYPTDIR)/
 	cp -f maskpass $(GTMCRYPTDIR)/
diff --git a/sr_unix/buildaux.csh b/sr_unix/buildaux.csh
index 5709398..e08cd50 100755
--- a/sr_unix/buildaux.csh
+++ b/sr_unix/buildaux.csh
@@ -1,7 +1,7 @@
 #!/usr/local/bin/tcsh -f
 #################################################################
 #								#
-# Copyright (c) 2001-2015 Fidelity National Information		#
+# Copyright (c) 2001-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
@@ -201,15 +201,16 @@ rm $outlist
 
 if ($stat) then
 	cat $cmdout
-	@ buildaux_status = 1
+	@ buildaux_status++
 else
 	rm $cmdfile.csh
 	rm $cmdout
 endif
 
 if (-e $cmdfile.err) then
-	rm $cmdfile.err
-	@ buildaux_status = 1
+	cat $cmdfile.err
+	rm -f $cmdfile.err
+	@ buildaux_status++
 endif
 
 exit $buildaux_status
diff --git a/sr_unix/buildaux_gde.csh b/sr_unix/buildaux_gde.csh
index c5d9e96..8e36415 100644
--- a/sr_unix/buildaux_gde.csh
+++ b/sr_unix/buildaux_gde.csh
@@ -1,7 +1,7 @@
 #!/usr/local/bin/tcsh -f
 #################################################################
 #								#
-# Copyright (c) 2001-2015 Fidelity National Information		#
+# Copyright (c) 2001-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
@@ -26,6 +26,7 @@ chmod 664 *.m *.o
 
 \rm -f *.m *.o	# use \rm to avoid rm from asking for confirmation (in case it has been aliased so)
 cp -p $gtm_pct/*.m .
+rm -f pinentry.m  # avoid problems with concurrent deletion
 switch ($gt_image)  # potentially all 3 versions could be in $gtm_pct .. we only need one, delete the others
     case "pro":
 	rm -f GTMDefinedTypesInitBta.m >& /dev/null
diff --git a/sr_unix/buildaux_gtmcrypt.csh b/sr_unix/buildaux_gtmcrypt.csh
index 4050f2c..574fe4f 100644
--- a/sr_unix/buildaux_gtmcrypt.csh
+++ b/sr_unix/buildaux_gtmcrypt.csh
@@ -1,7 +1,7 @@
 #!/usr/local/bin/tcsh -f
 #################################################################
 #								#
-# Copyright (c) 2001-2015 Fidelity National Information		#
+# Copyright (c) 2001-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
@@ -68,6 +68,7 @@ eval cp -pf '${incfile_list:gs||'$gtm_inc'/|} $gtm_dist_plugin/gtmcrypt'
 
 cp -pf $gtm_tools/{$helpers}.sh $gtm_dist_plugin/gtmcrypt
 cp -pf $gtm_pct/pinentry.m $gtm_dist_plugin/gtmcrypt
+rm -f $gtm_dist/{PINENTRY,pinentry}.[om]
 cp -pf $gtm_tools/Makefile.mk $gtm_dist_plugin/gtmcrypt/Makefile
 chmod +x $gtm_dist_plugin/gtmcrypt/*.sh
 #
@@ -77,10 +78,10 @@ if ("HP-UX" == "$HOSTOS") then
 else
 	set make = "make"
 endif
-# On tuatara, atlhxit1 and atlhxit2 Libgcrypt version is too low to support FIPS mode. Add necessary flags to
+# On atlhxit1 and atlhxit2 Libgcrypt version is too low to support FIPS mode. Add necessary flags to
 # Makefile to tell the plugin to build without FIPS support.
 set host=$HOST:r:r:r
-if ($host =~ {tuatara,atlhxit1,atlhxit2}) then
+if ($host =~ {atlhxit1,atlhxit2}) then
 	set fips_flag = "gcrypt_nofips=1"
 else
 	set fips_flag = ""
@@ -108,13 +109,17 @@ else
 		set algorithm = $algorithms[$rand]
 	endif
 endif
+
+source $gtm_tools/set_library_path.csh
+source $gtm_tools/check_unicode_support.csh
 # Build and install all encryption libraries and executables.
-$make install algo=$algorithm image=$plugin_build_type thirdparty=$encryption_lib $fips_flag
+env LC_ALL=$utflocale $make install algo=$algorithm image=$plugin_build_type thirdparty=$encryption_lib $fips_flag
 if ($status) then
 	@ buildaux_gtmcrypt_status++
 	echo "buildaux-E-libgtmcrypt, failed to install libgtmcrypt and/or helper scripts"	\
 				>> $gtm_log/error.${gtm_exe:t}.log
 endif
+
 # Remove temporary files.
 $make clean
 if ($status) then
diff --git a/sr_unix/cms_load.csh b/sr_unix/cms_load.csh
index 81a51f9..9a114f8 100755
--- a/sr_unix/cms_load.csh
+++ b/sr_unix/cms_load.csh
@@ -1,7 +1,8 @@
 #! /usr/local/bin/tcsh
 #################################################################
 #								#
-#	Copyright 2001, 2012 Fidelity Information Services, Inc	#
+# Copyright (c) 2001-2016 Fidelity National Information		#
+# Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
 #	of its copyright holder(s), and is made available	#
@@ -157,7 +158,7 @@ cp $preserve_time $cms_dir/*/gtmsrc.csh .
 # if you add a platform or a platform specific directory below you must modify
 # tools/cms_tools/cms_cshrc.csh
 # tools/work_tools/get_lib_dirs.csh
-# sr_unix/get_lib_dirs.mk
+# CMakeLists.txt / sr_*/platform.cmake
 #
 # platform ordering goes:
 # platform+OS arch arch_common OS {portable,nsb_portable}
diff --git a/sr_unix/configure.gtc b/sr_unix/configure.gtc
index 6b9b19a..c133ae7 100755
--- a/sr_unix/configure.gtc
+++ b/sr_unix/configure.gtc
@@ -1,7 +1,7 @@
 #!/bin/sh
 #################################################################
 #								#
-# Copyright (c) 2009-2015 Fidelity National Information 	#
+# Copyright (c) 2009-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
@@ -672,18 +672,14 @@ if [ "$doutf8" -ne 0 ]; then
 	chgrp $bingroup $gtmdist/utf8/*.txt
 fi
 
-gtm_dist=$gtmdist
-export gtm_dist
-
 if [ -f $gtm_dist/libgtmutil$ext ] ; then
-    gtmroutines=$gtm_dist/libgtmutil$ext
+    gtmroutines="$gtm_dist/libgtmutil$ext $gtmdist"
 else
-    gtmroutines=$gtmdist
+    gtmroutines="$gtmdist"
 fi
 export gtmroutines
 
-other_object_files="CHK2LEV.o CHKOP.o GENDASH.o GENOUT.o GETNEAR.o GTMDEFINEDTYPESTODB.o GTMHLPLD.o GTMTHREADGBLASM.o LOAD.o"
-other_object_files="$other_object_files LOADOP.o LOADVX.o MSG.o TTTGEN.o TTTSCAN.o UNLOAD.o GTMDefinedTypesInit.o"
+other_object_files=""
 csh_script_files=""
 
 # make database files read only
@@ -816,7 +812,7 @@ if [ "$resp" = "Y" -o "$resp" = "y" ] ; then
 	\rm -rf $binaries $pathmods $rscripts $nscripts $dirs configure \
 		*.gtc gtm* gde* GDE*.o _*.m _*.o mumps.dat mumps.gld geteuid $other_object_files $csh_script_files lowerc_cp\
 		*.hlp core *.h *.m *help.dat *help.gld COPYING README.txt
-	\rm -rf GETPASS.o plugin PINENTRY.o GTMHELP.o custom_errors_sample.txt
+	\rm -rf GETPASS.o plugin GTMHELP.o custom_errors_sample.txt
 	if [ -d utf8 ]; then
 		\rm -rf utf8
 	fi
diff --git a/sr_unix/db_ipcs_reset.c b/sr_unix/db_ipcs_reset.c
index f373363..a3c5f9b 100755
--- a/sr_unix/db_ipcs_reset.c
+++ b/sr_unix/db_ipcs_reset.c
@@ -68,7 +68,6 @@ boolean_t db_ipcs_reset(gd_region *reg)
 	gd_region		*temp_region;
 	char			sgmnthdr_unaligned[SGMNT_HDR_LEN + 8], *sgmnthdr_8byte_aligned;
 	sgmnt_addrs             *csa;
-	boolean_t		ftok_counter_halted;
 	DCL_THREADGBL_ACCESS;
 
 	SETUP_THREADGBL_ACCESS;
@@ -86,6 +85,15 @@ boolean_t db_ipcs_reset(gd_region *reg)
 	}
 	assert(udi->grabbed_access_sem);
 	csa = &udi->s_addrs;
+	/* Normal callers of this function ensure we have standalone access to the db. An exception is if "mu_rndwn_file"
+	 * call did not complete cleanly (e.g. REQROLLBACK error issued there and later mu_int_ch calls this function).
+	 * In that case, return right away as we cannot reset standalone access when it was not cleanly obtained.
+	 */
+	if (NULL != csa->nl)
+	{
+		gv_cur_region = temp_region;
+		return FALSE;
+	}
 	sgmnthdr_8byte_aligned = &sgmnthdr_unaligned[0];
 	sgmnthdr_8byte_aligned = (char *)ROUND_UP2((unsigned long)sgmnthdr_8byte_aligned, 8);
 	csd = (sgmnt_data_ptr_t)&sgmnthdr_8byte_aligned[0];
@@ -110,26 +118,23 @@ boolean_t db_ipcs_reset(gd_region *reg)
 	}
 	assert((udi->semid == csd->semid) || (INVALID_SEMID == csd->semid));
 	semval = semctl(udi->semid, DB_COUNTER_SEM, GETVAL);	/* Get the counter semaphore's value */
-	assert((DB_COUNTER_SEM_INCR <= semval) || csd->access_counter_halted);
-	/* If csd->access_counter_halted is TRUE, then the semaphore counter is unreliable. So treat it as if there is
-	 * more than one process attached to the database even if the counter is 1.
+	/* Since we have standalone access to the db (caller ensures this) we do not need to worry about whether the
+	 * ftok or access counter got halted or not.
 	 */
-	if ((DB_COUNTER_SEM_INCR < semval) || csd->access_counter_halted)
+	assert(DB_COUNTER_SEM_INCR <= semval);
+	if (DB_COUNTER_SEM_INCR < semval)
 	{
 		assert(jgbl.onlnrlbk); /* everyone else will have total standalone access and hence no one else can be attached */
 		assert(!reg->read_only); /* ONLINE ROLLBACK must be a read/write process */
 		if (!reg->read_only)
 		{
-			if (!csd->access_counter_halted)
+			if (0 != (save_errno = do_semop(udi->semid, DB_COUNTER_SEM, -DB_COUNTER_SEM_INCR, SEM_UNDO)))
 			{
-				if (0 != (save_errno = do_semop(udi->semid, DB_COUNTER_SEM, -DB_COUNTER_SEM_INCR, SEM_UNDO)))
-				{
-					gtm_putmsg_csa(CSA_ARG(csa) VARLSTCNT(8) ERR_CRITSEMFAIL, 2, DB_LEN_STR(reg), ERR_TEXT, 2,
-						       RTS_ERROR_TEXT("db_ipcs_reset - write semaphore release"), save_errno);
-					return FALSE;
-				}
-				assert(1 == (semval = semctl(udi->semid, DB_CONTROL_SEM, GETVAL)));
+				gtm_putmsg_csa(CSA_ARG(csa) VARLSTCNT(8) ERR_CRITSEMFAIL, 2, DB_LEN_STR(reg), ERR_TEXT, 2,
+					       RTS_ERROR_TEXT("db_ipcs_reset - write semaphore release"), save_errno);
+				return FALSE;
 			}
+			assert(1 == (semval = semctl(udi->semid, DB_CONTROL_SEM, GETVAL)));
 			if (0 != (save_errno = do_semop(udi->semid, DB_CONTROL_SEM, -1, SEM_UNDO)))
 			{
 				gtm_putmsg_csa(CSA_ARG(csa) VARLSTCNT(8) ERR_CRITSEMFAIL, 2, DB_LEN_STR(reg), ERR_TEXT, 2,
@@ -211,8 +216,7 @@ boolean_t db_ipcs_reset(gd_region *reg)
 	if (ftok_sem_lock(reg, TRUE)) /* immediate=TRUE because we don't want to wait while holding access semaphore */
 	{
 		assert(udi->counter_ftok_incremented || jgbl.onlnrlbk || INST_FREEZE_ON_ERROR_POLICY);
-		assert(jgbl.onlnrlbk || INST_FREEZE_ON_ERROR_POLICY || !csd->ftok_counter_halted);
-		ftok_sem_release(reg, !csd->ftok_counter_halted && udi->counter_ftok_incremented, TRUE);
+		ftok_sem_release(reg, udi->counter_ftok_incremented, TRUE);
 	}
 	udi->semid = INVALID_SEMID;
 	udi->shmid = INVALID_SHMID;
diff --git a/sr_unix/dbcertify_cmd.c b/sr_unix/dbcertify_cmd.c
index 7896343..9358764 100755
--- a/sr_unix/dbcertify_cmd.c
+++ b/sr_unix/dbcertify_cmd.c
@@ -38,7 +38,7 @@ static	CLI_ENTRY	dbscan_qual[] = {
 	{ "OUTFILE",       0, 0, 0,            0,                  0, 0, VAL_REQ,         1, NON_NEG, VAL_STR, 0       },
 	{ "REPORT_ONLY",   0, 0, 0,            0,                  0, 0, VAL_DISALLOWED,  1, NEG,     VAL_N_A, 0       },
 	{ "TEMPFILE_DIR",  0, 0, 0,            0,                  0, 0, VAL_REQ,         1, NON_NEG, VAL_STR, 0       },
-	{ 0 }
+	{ "" }
 };
 
 static readonly CLI_PARM dbcertify_parm[] = {
@@ -51,12 +51,12 @@ static	CLI_ENTRY	dbcertify_qual[] = {
 	{ "DEBUG",         0, 0, 0,            0,                  0, 0, VAL_DISALLOWED,  1, NEG,     VAL_N_A, 0       },
 	{ "KEEP_TEMPS",    0, 0, 0,            0,                  0, 0, VAL_DISALLOWED,  1, NEG,     VAL_N_A, 0       },
 	{ "TEMPFILE_DIR",  0, 0, 0,            0,                  0, 0, VAL_REQ,         1, NON_NEG, VAL_STR, 0       },
-	{ 0 }
+	{ "" }
 };
 
 
 GBLDEF	CLI_ENTRY	dbcertify_cmd_ary[] = {
 	{ "CERTIFY",   dbcertify_certify_phase, dbcertify_qual,   dbcertify_parm,   0, 0,    0, VAL_DISALLOWED, 1, 0, 0, 0 },
 	{ "SCAN",      dbcertify_scan_phase,	dbscan_qual,	  dbscan_parm,      0, 0,    0, VAL_DISALLOWED, 1, 0, 0, 0 },
-	{ 0 }
+	{ "" }
 };
diff --git a/sr_unix/dbcertify_deferred_signal_handler.c b/sr_unix/dbcertify_deferred_signal_handler.c
index b346056..22111b6 100755
--- a/sr_unix/dbcertify_deferred_signal_handler.c
+++ b/sr_unix/dbcertify_deferred_signal_handler.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2005-2015 Fidelity National Information	*
+ * Copyright (c) 2005-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -36,9 +36,9 @@
 #include "gdsblkops.h"
 #include "have_crit.h"
 #include "dbcertify.h"
+#include "forced_exit_err_display.h"
 
 GBLREF	int4			exi_condition;
-GBLREF	int			forced_exit_err;
 GBLREF	uint4			process_id;
 GBLREF	gtmsiginfo_t		signal_info;
 GBLREF	enum gtmImageTypes	image_type;
@@ -46,12 +46,6 @@ GBLREF	boolean_t		exit_handler_active;
 
 LITREF	gtmImageName		gtmImageNames[];
 
-error_def(ERR_KILLBYSIG);
-error_def(ERR_KILLBYSIGUINFO);
-error_def(ERR_KILLBYSIGSINFO1);
-error_def(ERR_KILLBYSIGSINFO2);
-error_def(ERR_KILLBYSIGSINFO3);
-
 void dbcertify_deferred_signal_handler(void)
 {
 	/* To avoid nested calls to this routine, we advance the status of forced_exit. */
@@ -66,42 +60,7 @@ void dbcertify_deferred_signal_handler(void)
 	 * This routine will output those delayed messages from the appropriate structures to both the
 	 * user and the system console.
 	 */
-	/* note can't use switch here because ERR_xxx are not defined as constants */
-	if (ERR_KILLBYSIG == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(6) ERR_KILLBYSIG, 4,
-			GTMIMAGENAMETXT(image_type), process_id, signal_info.signal);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(6) ERR_KILLBYSIG, 4,
-			GTMIMAGENAMETXT(image_type), process_id, signal_info.signal);
-	} else if (ERR_KILLBYSIGUINFO == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGUINFO, 6, GTMIMAGENAMETXT(image_type), process_id,
-			signal_info.signal, signal_info.send_pid, signal_info.send_uid);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGUINFO, 6, GTMIMAGENAMETXT(image_type), process_id,
-						signal_info.signal, signal_info.send_pid, signal_info.send_uid);
-	} else if (ERR_KILLBYSIGSINFO1 == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGSINFO1, 6, GTMIMAGENAMETXT(image_type),
-			 process_id, signal_info.signal, signal_info.int_iadr, signal_info.bad_vadr);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGSINFO1, 6, GTMIMAGENAMETXT(image_type),
-			   process_id, signal_info.signal, signal_info.int_iadr, signal_info.bad_vadr);
-	} else if (ERR_KILLBYSIGSINFO2 == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO2, 5, GTMIMAGENAMETXT(image_type),
-			 process_id, signal_info.signal, signal_info.int_iadr);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO2, 5, GTMIMAGENAMETXT(image_type),
-			   process_id, signal_info.signal, signal_info.int_iadr);
-	} else if (ERR_KILLBYSIGSINFO3 == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO3, 5, GTMIMAGENAMETXT(image_type),
-			 process_id, signal_info.signal, signal_info.bad_vadr);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO3, 5, GTMIMAGENAMETXT(image_type),
-			   process_id, signal_info.signal, signal_info.bad_vadr);
-	} else
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-	}
+	forced_exit_err_display();
 	/* Drive the exit handler to terminate */
 	EXIT(-exi_condition);
 }
diff --git a/sr_unix/dbcertify_signal_handler.c b/sr_unix/dbcertify_signal_handler.c
index 5a821bb..bb2ef1b 100755
--- a/sr_unix/dbcertify_signal_handler.c
+++ b/sr_unix/dbcertify_signal_handler.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2005-2015 Fidelity National Information	*
+ * Copyright (c) 2005-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -45,6 +45,7 @@
 #include "gtmio.h"
 #include "have_crit.h"
 #include "dbcertify.h"
+#include "forced_exit_err_display.h"
 
 /* These fields are defined as globals not because they are used globally but
  * so they will be easily retrievable even in 'pro' cores.
@@ -141,8 +142,7 @@ void dbcertify_signal_handler(int sig, siginfo_t *info, void *context)
 				return;
 			}
 			exit_state = EXIT_IMMED;
-			send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-			gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
+			forced_exit_err_display();
 			dont_want_core = TRUE;
 			break;
 		case SIGQUIT:	/* Handle SIGQUIT specially which we ALWAYS want to defer if possible as it is always sent */
@@ -224,8 +224,7 @@ void dbcertify_signal_handler(int sig, siginfo_t *info, void *context)
 				return;
 			}
 			exit_state = EXIT_IMMED;
-			send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-			gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
+			forced_exit_err_display();
 			dont_want_core = TRUE;
 			break;
 #endif
diff --git a/sr_unix/dbinit_ch.c b/sr_unix/dbinit_ch.c
index d27902d..e2b8ec8 100755
--- a/sr_unix/dbinit_ch.c
+++ b/sr_unix/dbinit_ch.c
@@ -39,6 +39,8 @@
 
 GBLREF gd_region		*db_init_region;
 
+error_def(ERR_VERMISMATCH);
+
 CONDITION_HANDLER(dbinit_ch)
 {
 	START_CH(TRUE);
@@ -52,7 +54,7 @@ void db_init_err_cleanup(boolean_t retry_dbinit)
 	gd_segment		*seg;
 	sgmnt_addrs		*csa;
 	int			rc, lcl_new_dbinit_ipc;
-	boolean_t		ftok_counter_halted = FALSE, access_counter_halted = FALSE;
+	boolean_t		ftok_counter_halted, access_counter_halted;
 
 	/* Here, we can not rely on the validity of csa->hdr because this function can be triggered anywhere in db_init().Because
 	 * we don't have access to file header, we can not know if counters are disabled so we go by our best guess, not disabled,
@@ -81,27 +83,32 @@ void db_init_err_cleanup(boolean_t retry_dbinit)
 			free(csa->jnl);
 			csa->jnl = NULL;
 		}
-		if (NULL != csa->hdr)
-		{
-			ftok_counter_halted = csa->hdr->ftok_counter_halted;
-			access_counter_halted = csa->hdr->access_counter_halted;
-		}
-		if (csa->nl)
+		/* If shared memory is not available or if this is a VERMISMATCH error situation (where we do not know the exact
+		 * position of csa->nl->ftok_counter_halted or if it even exists in the other version), we have to be pessimistic
+		 * and assume the counters are halted. This avoids prematurely removing the semaphores.
+		 */
+		if ((NULL != csa->nl) && ((int)ERR_VERMISMATCH != SIGNAL))
 		{
+			ftok_counter_halted = csa->nl->ftok_counter_halted;
+			access_counter_halted = csa->nl->access_counter_halted;
 			shmdt((caddr_t)csa->nl);
 			csa->nl = (node_local_ptr_t)NULL;
+		} else
+		{
+			ftok_counter_halted = TRUE;
+			access_counter_halted = TRUE;
 		}
-		if (udi->new_shm && (INVALID_SHMID != udi->shmid))
+		if (udi->shm_created && (INVALID_SHMID != udi->shmid))
 		{
 			shm_rmid(udi->shmid);
 			udi->shmid = INVALID_SHMID;
-			udi->new_shm = FALSE;
+			udi->shm_created = FALSE;
 		}
-		if (udi->new_sem && (INVALID_SEMID != udi->semid))
+		if (udi->sem_created && (INVALID_SEMID != udi->semid))
 		{
 			sem_rmid(udi->semid);
 			udi->semid = INVALID_SEMID;
-			udi->new_sem = FALSE;
+			udi->sem_created = FALSE;
 			udi->grabbed_access_sem = FALSE;
 			udi->counter_acc_incremented = FALSE;
 		}
diff --git a/sr_unix/deferred_signal_handler.c b/sr_unix/deferred_signal_handler.c
index 543bfce..3762ce0 100755
--- a/sr_unix/deferred_signal_handler.c
+++ b/sr_unix/deferred_signal_handler.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -24,6 +24,7 @@
 #include "have_crit.h"
 #include "deferred_signal_handler.h"
 #include "gtmmsg.h"
+#include "forced_exit_err_display.h"
 #ifdef DEBUG
 #include "wcs_sleep.h"
 #include "wbox_test_init.h"
@@ -72,42 +73,8 @@ void deferred_signal_handler(void)
 	 * This routine will output those delayed messages from the appropriate structures to both the
 	 * user and the system console.
 	 */
-	/* note can't use switch here because ERR_xxx are not defined as constants */
-	if (ERR_KILLBYSIG == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(6) ERR_KILLBYSIG, 4, GTMIMAGENAMETXT(image_type),
-			process_id, signal_info.signal);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(6) ERR_KILLBYSIG, 4, GTMIMAGENAMETXT(image_type),
-			process_id, signal_info.signal);
-	} else if (ERR_KILLBYSIGUINFO == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGUINFO, 6, GTMIMAGENAMETXT(image_type), process_id,
-						signal_info.signal, signal_info.send_pid, signal_info.send_uid);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGUINFO, 6, GTMIMAGENAMETXT(image_type), process_id,
-						signal_info.signal, signal_info.send_pid, signal_info.send_uid);
-	} else if (ERR_KILLBYSIGSINFO1 == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGSINFO1, 6, GTMIMAGENAMETXT(image_type),
-			 process_id, signal_info.signal, signal_info.int_iadr, signal_info.bad_vadr);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8) ERR_KILLBYSIGSINFO1, 6, GTMIMAGENAMETXT(image_type),
-			   process_id, signal_info.signal, signal_info.int_iadr, signal_info.bad_vadr);
-	} else if (ERR_KILLBYSIGSINFO2 == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO2, 5, GTMIMAGENAMETXT(image_type),
-			 process_id, signal_info.signal, signal_info.int_iadr);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO2, 5, GTMIMAGENAMETXT(image_type),
-			   process_id, signal_info.signal, signal_info.int_iadr);
-	} else if (ERR_KILLBYSIGSINFO3 == forced_exit_err)
-	{
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO3, 5, GTMIMAGENAMETXT(image_type),
-			 process_id, signal_info.signal, signal_info.bad_vadr);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_KILLBYSIGSINFO3, 5, GTMIMAGENAMETXT(image_type),
-			   process_id, signal_info.signal, signal_info.bad_vadr);
-	} else if (ERR_FORCEDHALT != forced_exit_err || !gtm_quiet_halt)
-	{	/* No HALT messages if quiet halt is requested */
-		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-	}
+	if (ERR_FORCEDHALT != forced_exit_err || !gtm_quiet_halt) /* No HALT messages if quiet halt is requested */
+		forced_exit_err_display();
 	assert(OK_TO_INTERRUPT);
 	/* Signal intent to exit BEFORE driving condition handlers. This avoids checks that will otherwise fail (for example
 	 * if mdb_condition_handler/preemptive_db_clnup gets called below, that could invoke the RESET_GV_TARGET macro which in turn
diff --git a/sr_unix/dm_read.c b/sr_unix/dm_read.c
index 1ffce44..2c2be37 100755
--- a/sr_unix/dm_read.c
+++ b/sr_unix/dm_read.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -654,12 +654,21 @@ void	dm_read (mval *v)
 			} else if (NATIVE_ESC == inchar)
 			{
 				escape_sequence[escape_length++] = (unsigned char)inchar;
+				assert(ESC_LEN > escape_length);
 				io_ptr->esc_state = START;
 				iott_escape(&escape_sequence[escape_length - 1], &escape_sequence[escape_length], io_ptr);
 			} else if (0 != escape_length)
 			{
 				if (utf8_active && (ASCII_MAX < inchar))
 					continue;		/* skip invalid char in escape sequence */
+				/* If the escape sequence happens to be more than ESC_LEN (allocated buffer length), truncate
+				 * the escape sequence but do call "iott_escape" to know when the sequence terminates and the
+				 * rest of the command line can be parsed. We do not expect the regular cursor key escape
+				 * sequences (UP/DOWN/LEFT/RIGHT/DELETE/INSERT) to be more than ESC_LEN (and hence not suffer
+				 * from truncation) and that is what we care about later in this code.
+				 */
+				if (ESC_LEN <= escape_length)
+					escape_length--;
 				escape_sequence[escape_length++] = (unsigned char)inchar;
 				iott_escape(&escape_sequence[escape_length - 1], &escape_sequence[escape_length], io_ptr);
 			} else
diff --git a/sr_unix/do_semop.h b/sr_unix/do_semop.h
index 975b3a4..3058a04 100755
--- a/sr_unix/do_semop.h
+++ b/sr_unix/do_semop.h
@@ -17,17 +17,6 @@ error_def(ERR_NOMORESEMCNT);
 
 int do_semop(int sems, int num, int op, int flg);
 
-/* Set the flag to ignore a counter semaphore */
-#define SEM_COUNTER_OFFLINE(STYPE, TSD, CSA, REG)										\
-{																\
-	if ((NULL != TSD) && (TSD)->mumps_can_bypass)										\
-	{															\
-		(TSD)->STYPE##_counter_halted = TRUE;										\
-		send_msg_csa(CSA_ARG(CSA) VARLSTCNT(7) ERR_NOMORESEMCNT, 5, LEN_AND_LIT(#STYPE), FILE_TYPE_DB, DB_LEN_STR(REG));\
-	}															\
-}
-
-
 /* Check whether a counter semaphore is ignored or not */
 #define IS_SEM_COUNTER_ONLINE(HDR, COUNTER_HALTED) (!((HDR)->mumps_can_bypass) || !(COUNTER_HALTED))
 
diff --git a/sr_unix/dse_cmd.c b/sr_unix/dse_cmd.c
index 6d72570..83fe644 100755
--- a/sr_unix/dse_cmd.c
+++ b/sr_unix/dse_cmd.c
@@ -51,7 +51,8 @@
  ************************************************************/
 
 static readonly CLI_PARM dse_ftime_parm_values[] = {
-	{ "FLUSH_TIME", 1, PARM_REQ}
+	{ "FLUSH_TIME", "Flush Time: ", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_ENTRY dse_add_qual[] = {
@@ -62,7 +63,7 @@ static readonly CLI_ENTRY dse_add_qual[] = {
 { "POINTER", 0,          0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "RECORD",  0,          0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "STAR",    dse_adstar, 0, 0, 0, 0, 0, VAL_N_A, 0, 0,       0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_cache_qual[] = {
@@ -75,7 +76,7 @@ static readonly CLI_ENTRY dse_cache_qual[] = {
 { "SIZE",    0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_DCM },
 { "VALUE",   0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "VERIFY",  0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_all_qual[] = {
@@ -91,14 +92,14 @@ static readonly CLI_ENTRY dse_all_qual[] = {
 { "RENEW",        0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0,   0, 0 },
 { "SEIZE",        0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0,   0, 0 },
 { "WCINIT",       0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0,   0, 0 },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY true_false_nochange[] = {
 	{ "FALSE",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	 0 },
 	{ "NOCHANGE",	0, 0, 0, 0, 0, DEFA_PRESENT, VAL_DISALLOWED,	0,	NEG,	VAL_N_A, 0 },
 	{ "TRUE",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	 0 },
-	{ 0, 0, 0 }
+	{ "", 0, 0 }
 };
 
 static readonly CLI_ENTRY never_always_allowexisting[] = {
@@ -107,12 +108,13 @@ static readonly CLI_ENTRY never_always_allowexisting[] = {
 	{ "FALSE",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_STR,	 0 },
 	{ "NEVER",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_STR,	 0 },
 	{ "TRUE",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_STR,	 0 },
-	{ 0, 0, 0 }
+	{ "", 0, 0 }
 };
 
 static readonly CLI_ENTRY db_vers[] = {
 	{ "V4",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	 0 },
 	{ "V6",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A, 	 0 },
+	{ "" }
 };
 
 static readonly CLI_ENTRY dse_cfhead_qual[] = {
@@ -190,7 +192,7 @@ static readonly CLI_ENTRY dse_cfhead_qual[] = {
 { "WRITES_PER_FLUSH",          0, 0, 0, 		    0,                   0, 0, VAL_REQ,     0, NON_NEG, VAL_NUM,  VAL_DCM },
 { "ZQGBLMOD_SEQNO",            0, 0, 0, 		    0,                   0, 0, VAL_REQ,     0, NON_NEG, VAL_NUM,  VAL_HEX },
 { "ZQGBLMOD_TN",               0, 0, 0, 		    0,                   0, 0, VAL_REQ,     0, NON_NEG, VAL_NUM,  VAL_HEX },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_change_qual[] = {
@@ -203,7 +205,7 @@ static readonly CLI_ENTRY dse_change_qual[] = {
 { "RECORD",     dse_chng_rhead, 0,               0, 0, 0,                           0, VAL_REQ,        0, NON_NEG, VAL_NUM, VAL_HEX },	/* BYPASSOK */
 { "RSIZ",       dse_chng_rhead, 0,               0, 0, 0,                           0, VAL_REQ,        0, NON_NEG, VAL_NUM, VAL_HEX },	/* BYPASSOK */
 { "TN",         0,              0,               0, 0, 0,                           0, VAL_REQ,        0, NON_NEG, VAL_NUM, VAL_HEX },	/* BYPASSOK */
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_crit_qual[] = {
@@ -216,7 +218,7 @@ static readonly CLI_ENTRY dse_crit_qual[] = {
 { "REMOVE",  0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0, 0, 0 },
 { "RESET",   0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0, 0, 0 },
 { "SEIZE",   0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0, 0, 0 },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_rdmp_qual[] = {
@@ -226,7 +228,7 @@ static readonly CLI_ENTRY dse_rdmp_qual[] = {
 { "OFFSET", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "RECORD", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "ZWR",    0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_fdmp_qual[] = {
@@ -245,7 +247,7 @@ static readonly CLI_ENTRY dse_fdmp_qual[] = {
 { "TPBLKMOD",      0, 0, 0, 0, 0, 0, VAL_N_A, 0, NEG, 0, 0 },
 { "TPRETRIES",     0, 0, 0, 0, 0, 0, VAL_N_A, 0, NEG, 0, 0 },
 { "UPDPROC",       0, 0, 0, 0, 0, 0, VAL_N_A, 0, NEG, 0, 0 },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_dump_qual[] = {
@@ -258,18 +260,19 @@ static readonly CLI_ENTRY dse_dump_qual[] = {
 { "OFFSET",     0,             0,             0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "RECORD",     0,             0,             0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "ZWR",        0,             0,             0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_eval_qual[] = {
 { "DECIMAL",     0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
 { "HEXADECIMAL", 0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
 { "NUMBER",      0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_PARM dse_freg_parm_values[] = {
-	{ "REGION", "*", PARM_REQ}
+	{ "REGION", "*", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_ENTRY dse_find_qual[] = {
@@ -282,13 +285,13 @@ static readonly CLI_ENTRY dse_find_qual[] = {
 { "KEY",        dse_f_key,  0, 0,                    0, 0, 0, VAL_REQ,     0, NON_NEG, VAL_STR, 0       },
 { "REGION",     dse_f_reg,  0, dse_freg_parm_values, 0, 0, 0, VAL_NOT_REQ, 0, NON_NEG, VAL_STR, 0       },
 { "SIBLINGS",   0,          0, 0,                    0, 0, 0, VAL_N_A,     0, NON_NEG, 0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_integrit_qual[] = {
 { "BLOCK",   0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "CRIT",    0, 0, 0, 0, 0, 0, VAL_N_A, 0, NEG,     0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_map_qual[] = {
@@ -297,13 +300,13 @@ static readonly CLI_ENTRY dse_map_qual[] = {
 { "FREE",        0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
 { "MASTER",      0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
 { "RESTORE_ALL", 0, 0, 0, 0, 0, 0, VAL_N_A, 0, NON_NEG, 0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_open_qual[] = {
 { "FILE", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_STR, 0   },
 { "OCHSET", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_STR, 0 },
-{ 0 }
+{ "" }
 };
 
 
@@ -312,7 +315,7 @@ static readonly CLI_ENTRY dse_over_qual[] = {
 { "DATA",   0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_STR, 0       },
 { "OFFSET", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "OCHSET", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, 0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_range_qual[] = {
@@ -325,7 +328,7 @@ static readonly CLI_ENTRY dse_range_qual[] = {
 { "STAR",  0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG,	VAL_N_A, 0	 },
 { "TO",	   0, 0, 0, 0, 0, 0, VAL_REQ,	    0, NON_NEG,	VAL_NUM, VAL_HEX },
 { "UPPER", 0, 0, 0, 0, 0, 0, VAL_REQ,	    0, NON_NEG,	VAL_STR, 0	 },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_remove_qual[] = {
@@ -334,7 +337,7 @@ static readonly CLI_ENTRY dse_remove_qual[] = {
 { "OFFSET",  dse_rmrec, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "RECORD",  dse_rmrec, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "VERSION", 0,         0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_DCM },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_restore_qual[] = {
@@ -342,7 +345,7 @@ static readonly CLI_ENTRY dse_restore_qual[] = {
 { "FROM",    0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "REGION",  0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_STR, 0       },
 { "VERSION", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_DCM },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_save_qual[] = {
@@ -350,7 +353,7 @@ static readonly CLI_ENTRY dse_save_qual[] = {
 { "COMMENT", 0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_STR, 0       },
 { "CRIT",    0, 0, 0, 0, 0, 0, VAL_N_A, 0, NEG,     0,       0       },
 { "LIST",    0, 0, 0, 0, 0, 0, VAL_N_A, 0, 0,       0,       0       },
-{ 0 }
+{ "" }
 };
 
 static readonly CLI_ENTRY dse_shift_qual[] = {
@@ -358,7 +361,7 @@ static readonly CLI_ENTRY dse_shift_qual[] = {
 { "BLOCK",    0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "FORWARD",  0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
 { "OFFSET",   0, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_NUM, VAL_HEX },
-{ 0 }
+{ "" }
 };
 
 GBLDEF CLI_ENTRY dse_cmd_ary[] = {
@@ -388,7 +391,7 @@ GBLDEF CLI_ENTRY dse_cmd_ary[] = {
 { "SPAWN",        util_spawn,     0,                 0, 0, 0,                       0, VAL_DISALLOWED, 1, 0, 0, 0 },
 { "VERSION",      dse_version,    0,                 0, 0, 0,                       0, VAL_DISALLOWED, 0, 0, 0, 0 },
 { "WCINIT",       dse_wcreinit,   0,                 0, 0, 0,                       0, VAL_DISALLOWED, 0, 0, 0, 0 },
-{ 0 }
+{ "" }
 };
 
 /* for SPAWN actually value is disallowed, but parameter is allowed. */
diff --git a/sr_unix/exttab_parse.c b/sr_unix/exttab_parse.c
index 19e1a4c..5a235e5 100644
--- a/sr_unix/exttab_parse.c
+++ b/sr_unix/exttab_parse.c
@@ -202,53 +202,53 @@ STATICFNDEF enum gtm_types scan_keyword(char **c)
 	{
 	/*	typename		type			type *			type **			*/
 
-		{"void",		gtm_void,		gtm_notfound,		gtm_notfound		},
-
-		{"gtm_int_t",		gtm_int,		gtm_int_star,		gtm_notfound		},
-		{"gtm_jboolean_t",	gtm_jboolean,		gtm_notfound,		gtm_notfound		},
-		{"gtm_jint_t",		gtm_jint,		gtm_notfound,		gtm_notfound		},
-		{"xc_int_t",		gtm_int,		gtm_int_star,		gtm_notfound		},
-		{"int",			gtm_int,		gtm_notfound,		gtm_notfound		},
-
-		{"gtm_uint_t",		gtm_uint,		gtm_uint_star,		gtm_notfound		},
-		{"xc_uint_t",		gtm_uint,		gtm_uint_star,		gtm_notfound		},
-		{"uint",		gtm_uint,		gtm_uint_star,		gtm_notfound		},
-
-		{"gtm_long_t",		gtm_long,		gtm_long_star,		gtm_notfound		},
-		{"gtm_jlong_t",		gtm_jlong,		gtm_notfound,		gtm_notfound		},
-		{"xc_long_t",		gtm_long,		gtm_long_star,		gtm_notfound		},
-		{"long",		gtm_long,		gtm_long_star,		gtm_notfound		},
-
-		{"gtm_ulong_t",		gtm_ulong,		gtm_ulong_star,		gtm_notfound		},
-		{"xc_ulong_t",		gtm_ulong,		gtm_ulong_star,		gtm_notfound		},
-		{"ulong",		gtm_ulong,		gtm_ulong_star,		gtm_notfound		},
-
-		{"gtm_status_t",	gtm_status,		gtm_notfound,		gtm_notfound		},
-		{"xc_status_t",		gtm_status,		gtm_notfound,		gtm_notfound		},
-
-		{"gtm_char_t",		gtm_notfound,		gtm_char_star,		gtm_char_starstar	},
-		{"gtm_jstring_t",	gtm_jstring,		gtm_notfound,		gtm_notfound		},
-		{"gtm_jbyte_array_t",	gtm_jbyte_array, 	gtm_notfound,		gtm_notfound		},
-		{"gtm_jbig_decimal_t",	gtm_jbig_decimal,	gtm_notfound,		gtm_notfound		},
-		{"xc_char_t",		gtm_notfound,		gtm_char_star,		gtm_char_starstar	},
-		{"char",		gtm_notfound,		gtm_char_star,		gtm_char_starstar	},
-
-		{"gtm_string_t",	gtm_notfound,		gtm_string_star,	gtm_notfound		},
-		{"xc_string_t",		gtm_notfound,		gtm_string_star,	gtm_notfound		},
-		{"string",		gtm_notfound,		gtm_string_star,	gtm_notfound		},
-
-		{"gtm_float_t",		gtm_float,		gtm_float_star,		gtm_notfound		},
-		{"gtm_jfloat_t",	gtm_jfloat,		gtm_notfound,		gtm_notfound		},
-		{"xc_float_t",		gtm_float,		gtm_float_star,		gtm_notfound		},
-		{"float",		gtm_float,		gtm_float_star,		gtm_notfound		},
-
-		{"gtm_double_t",	gtm_double,		gtm_double_star,	gtm_notfound		},
-		{"gtm_jdouble_t",	gtm_jdouble,		gtm_notfound,		gtm_notfound		},
-		{"xc_double_t",		gtm_double,		gtm_double_star,	gtm_notfound		},
-		{"double",		gtm_double,		gtm_double_star,	gtm_notfound		},
-
-		{"gtm_pointertofunc_t", gtm_pointertofunc, 	gtm_pointertofunc_star,	gtm_notfound		},
-		{"xc_pointertofunc_t", 	gtm_pointertofunc, 	gtm_pointertofunc_star,	gtm_notfound		}
+		{"void",		{gtm_void,		gtm_notfound,		gtm_notfound}		},
+
+		{"gtm_int_t",		{gtm_int,		gtm_int_star,		gtm_notfound}		},
+		{"gtm_jboolean_t",	{gtm_jboolean,		gtm_notfound,		gtm_notfound}		},
+		{"gtm_jint_t",		{gtm_jint,		gtm_notfound,		gtm_notfound}		},
+		{"xc_int_t",		{gtm_int,		gtm_int_star,		gtm_notfound}		},
+		{"int",			{gtm_int,		gtm_notfound,		gtm_notfound}		},
+
+		{"gtm_uint_t",		{gtm_uint,		gtm_uint_star,		gtm_notfound}		},
+		{"xc_uint_t",		{gtm_uint,		gtm_uint_star,		gtm_notfound}		},
+		{"uint",		{gtm_uint,		gtm_uint_star,		gtm_notfound}		},
+
+		{"gtm_long_t",		{gtm_long,		gtm_long_star,		gtm_notfound}		},
+		{"gtm_jlong_t",		{gtm_jlong,		gtm_notfound,		gtm_notfound}		},
+		{"xc_long_t",		{gtm_long,		gtm_long_star,		gtm_notfound}		},
+		{"long",		{gtm_long,		gtm_long_star,		gtm_notfound}		},
+
+		{"gtm_ulong_t",		{gtm_ulong,		gtm_ulong_star,		gtm_notfound}		},
+		{"xc_ulong_t",		{gtm_ulong,		gtm_ulong_star,		gtm_notfound}		},
+		{"ulong",		{gtm_ulong,		gtm_ulong_star,		gtm_notfound}		},
+
+		{"gtm_status_t",	{gtm_status,		gtm_notfound,		gtm_notfound}		},
+		{"xc_status_t",		{gtm_status,		gtm_notfound,		gtm_notfound}		},
+
+		{"gtm_char_t",		{gtm_notfound,		gtm_char_star,		gtm_char_starstar}	},
+		{"gtm_jstring_t",	{gtm_jstring,		gtm_notfound,		gtm_notfound}		},
+		{"gtm_jbyte_array_t",	{gtm_jbyte_array, 	gtm_notfound,		gtm_notfound}		},
+		{"gtm_jbig_decimal_t",	{gtm_jbig_decimal,	gtm_notfound,		gtm_notfound}		},
+		{"xc_char_t",		{gtm_notfound,		gtm_char_star,		gtm_char_starstar}	},
+		{"char",		{gtm_notfound,		gtm_char_star,		gtm_char_starstar}	},
+
+		{"gtm_string_t",	{gtm_notfound,		gtm_string_star,	gtm_notfound}		},
+		{"xc_string_t",		{gtm_notfound,		gtm_string_star,	gtm_notfound}		},
+		{"string",		{gtm_notfound,		gtm_string_star,	gtm_notfound}		},
+
+		{"gtm_float_t",		{gtm_float,		gtm_float_star,		gtm_notfound}		},
+		{"gtm_jfloat_t",	{gtm_jfloat,		gtm_notfound,		gtm_notfound}		},
+		{"xc_float_t",		{gtm_float,		gtm_float_star,		gtm_notfound}		},
+		{"float",		{gtm_float,		gtm_float_star,		gtm_notfound}		},
+
+		{"gtm_double_t",	{gtm_double,		gtm_double_star,	gtm_notfound}		},
+		{"gtm_jdouble_t",	{gtm_jdouble,		gtm_notfound,		gtm_notfound}		},
+		{"xc_double_t",		{gtm_double,		gtm_double_star,	gtm_notfound}		},
+		{"double",		{gtm_double,		gtm_double_star,	gtm_notfound}		},
+
+		{"gtm_pointertofunc_t", {gtm_pointertofunc, 	gtm_pointertofunc_star,	gtm_notfound}		},
+		{"xc_pointertofunc_t", 	{gtm_pointertofunc, 	gtm_pointertofunc_star,	gtm_notfound}		}
 	};
 	char	*b = *c;
 	char	*d;
diff --git a/sr_unix/f_char.c b/sr_unix/f_char.c
index e21190a..5af14ad 100755
--- a/sr_unix/f_char.c
+++ b/sr_unix/f_char.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2006-2015 Fidelity National Information 	*
+ * Copyright (c) 2006-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -85,7 +85,6 @@ int f_char(oprtype *a, opctype op)
 		v.str.char_len = char_len;
 		v.mvtype |= MV_UTF_LEN;
 		CLEAR_MVAL_BITS(&v);
-		s2n(&v);
 		*a = put_lit(&v);
 		return TRUE;
 	}
diff --git a/sr_unix/filestruct.h b/sr_unix/filestruct.h
index 55893c4..2d86e9f 100755
--- a/sr_unix/filestruct.h
+++ b/sr_unix/filestruct.h
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -29,14 +30,16 @@ typedef struct unix_db_info_struct
 	int		shmid;
 	time_t		gt_shm_ctime;
 	int		ftok_semid;
-	boolean_t	new_shm;
-	boolean_t	new_sem;
-	boolean_t	grabbed_ftok_sem;
-	boolean_t	grabbed_access_sem;
-	boolean_t	counter_acc_incremented;
-	boolean_t	counter_ftok_incremented;
+	unsigned int	shm_created : 1;
+	unsigned int	shm_deleted : 1;
+	unsigned int	sem_created : 1;
+	unsigned int	sem_deleted : 1;
+	unsigned int	grabbed_ftok_sem : 1;
+	unsigned int	grabbed_access_sem : 1;
+	unsigned int	counter_acc_incremented : 1;
+	unsigned int	counter_ftok_incremented : 1;
         key_t           key;
-	bool		raw;
+	boolean_t	raw;
 } unix_db_info;
 
 typedef struct unix_file_info_struct
diff --git a/sr_unix/dbcertify_deferred_signal_handler.c b/sr_unix/forced_exit_err_display.c
old mode 100755
new mode 100644
similarity index 67%
copy from sr_unix/dbcertify_deferred_signal_handler.c
copy to sr_unix/forced_exit_err_display.c
index b346056..0a6711c
--- a/sr_unix/dbcertify_deferred_signal_handler.c
+++ b/sr_unix/forced_exit_err_display.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2005-2015 Fidelity National Information	*
+ * Copyright (c) 2016 Fidelity National Information		*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -10,39 +10,20 @@
  *								*
  ****************************************************************/
 
-/* Perform necessary functions for signal handling that was deferred.
-   Based on deferred_signal_handler() but without references to have_crit()
-   that pull in half of the GT.M world.
-*/
 #include "mdef.h"
 
-#include "gtm_stdlib.h"		/* for EXIT() */
-#include "gtm_signal.h"
+#include "gtm_signal.h"	/* needed for gtmsiginfo.h */
 
-#include "error.h"
+#include "gtmmsg.h"
+#include "send_msg.h"
 #include "gtmsiginfo.h"
 #include "gtmimagename.h"
-#include "send_msg.h"
-#include "gtmmsg.h"
-#include "gdsroot.h"
-#include "v15_gdsroot.h"
-#include "gtm_facility.h"
-#include "fileinfo.h"
-#include "gdsbt.h"
-#include "v15_gdsbt.h"
-#include "gdsblk.h"
-#include "gdsfhead.h"
-#include "v15_gdsfhead.h"
-#include "gdsblkops.h"
-#include "have_crit.h"
-#include "dbcertify.h"
+#include "forced_exit_err_display.h"
 
-GBLREF	int4			exi_condition;
 GBLREF	int			forced_exit_err;
-GBLREF	uint4			process_id;
 GBLREF	gtmsiginfo_t		signal_info;
 GBLREF	enum gtmImageTypes	image_type;
-GBLREF	boolean_t		exit_handler_active;
+GBLREF	uint4			process_id;
 
 LITREF	gtmImageName		gtmImageNames[];
 
@@ -52,20 +33,9 @@ error_def(ERR_KILLBYSIGSINFO1);
 error_def(ERR_KILLBYSIGSINFO2);
 error_def(ERR_KILLBYSIGSINFO3);
 
-void dbcertify_deferred_signal_handler(void)
+void forced_exit_err_display(void)
 {
-	/* To avoid nested calls to this routine, we advance the status of forced_exit. */
-	SET_FORCED_EXIT_STATE_ALREADY_EXITING;
-
-	if (exit_handler_active)
-	{
-		assert(FALSE);	/* at this point in time (June 2003) there is no way we know of to get here, hence the assert */
-		return;	/* since anyway we are exiting currently, resume exit handling instead of reissuing another one */
-	}
-	/* For signals that get a delayed response so we can get out of crit, we also delay the messages.
-	 * This routine will output those delayed messages from the appropriate structures to both the
-	 * user and the system console.
-	 */
+	assert(forced_exit_err);
 	/* note can't use switch here because ERR_xxx are not defined as constants */
 	if (ERR_KILLBYSIG == forced_exit_err)
 	{
@@ -102,6 +72,4 @@ void dbcertify_deferred_signal_handler(void)
 		send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
 		gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
 	}
-	/* Drive the exit handler to terminate */
-	EXIT(-exi_condition);
 }
diff --git a/sr_unix/forced_exit_err_display.h b/sr_unix/forced_exit_err_display.h
new file mode 100644
index 0000000..41ff056
--- /dev/null
+++ b/sr_unix/forced_exit_err_display.h
@@ -0,0 +1,18 @@
+/****************************************************************
+ *								*
+ * Copyright (c) 2016 Fidelity National Information		*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
+ *								*
+ *	This source code contains the intellectual property	*
+ *	of its copyright holder(s), and is made available	*
+ *	under a license.  If you do not know the terms of	*
+ *	the license, please stop and do not read further.	*
+ *								*
+ ****************************************************************/
+
+#ifndef FORCED_EXIT_ERR_DISPLAY_INCLUDED
+#define FORCED_EXIT_ERR_DISPLAY_INCLUDED
+
+void forced_exit_err_display(void);
+
+#endif /* FORCED_EXIT_ERR_DISPLAY_INCLUDED */
diff --git a/sr_unix/ftok.c b/sr_unix/ftok.c
index 61baf07..1eeac6a 100755
--- a/sr_unix/ftok.c
+++ b/sr_unix/ftok.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -32,6 +32,9 @@
 
 GBLDEF   CLI_ENTRY       *cmd_ary = NULL; /* "ftok" utility does not have any command tables so initialize command array to NULL */
 
+#undef EXIT
+#define	EXIT	exit	/* Use system "exit" (not gtm_image_exit) directly since this is a standalone module */
+
 #define PrintUsage \
 	{ \
 		FPRINTF(stderr, "\nUsage:\n"); \
diff --git a/sr_unix/ftok_sem_incrcnt.c b/sr_unix/ftok_sem_incrcnt.c
index 882fac4..2ec4e1b 100644
--- a/sr_unix/ftok_sem_incrcnt.c
+++ b/sr_unix/ftok_sem_incrcnt.c
@@ -88,11 +88,8 @@ boolean_t ftok_sem_incrcnt(gd_region *reg, const char *file_type_str, boolean_t
 			if (repl_instance.qdbrundown)
 			{
 				issue_error = FALSE;
-				if (!repl_instance.ftok_counter_halted)
-				{
-					assert(NULL != jnlpool.repl_inst_filehdr);
-					repl_inst_ftok_counter_halted(udi, FILE_TYPE_REPLINST, &repl_instance);
-				}
+				if (!jnlpool.jnlpool_ctl->ftok_counter_halted)
+					repl_inst_ftok_counter_halted(udi);
 			}
 			DEBUG_ONLY(udi->grabbed_ftok_sem = FALSE;)
 		}
diff --git a/sr_unix/ftok_sems.c b/sr_unix/ftok_sems.c
index 79e4229..beac58c 100755
--- a/sr_unix/ftok_sems.c
+++ b/sr_unix/ftok_sems.c
@@ -109,7 +109,7 @@ error_def(ERR_TEXT);
 }
 
 boolean_t ftok_sem_get2(gd_region *reg, uint4 start_hrtbt_cntr, semwait_status_t *retstat, boolean_t *bypass,
-			boolean_t *ftok_counter_halted)
+			boolean_t *ftok_counter_halted, boolean_t incr_cnt)
 {
 	int			status = SS_NORMAL, save_errno;
 	int			ftok_sopcnt, sem_pid;
@@ -127,7 +127,7 @@ boolean_t ftok_sem_get2(gd_region *reg, uint4 start_hrtbt_cntr, semwait_status_t
 	if (-1 == (udi->key = FTOK(udi->fn, GTM_ID)))
 		RETURN_SEMWAIT_FAILURE(retstat, errno, op_ftok, 0, ERR_FTOKERR, 0);
 	/* First try is always IPC_NOWAIT */
-	SET_GTM_SOP_ARRAY(ftok_sop, ftok_sopcnt, TRUE, (SEM_UNDO | IPC_NOWAIT));
+	SET_GTM_SOP_ARRAY(ftok_sop, ftok_sopcnt, incr_cnt, (SEM_UNDO | IPC_NOWAIT));
 	/* The following loop deals with the possibility that the semaphores can be deleted by someone else AFTER a successful
 	 * semget but BEFORE semop locks it, in which case we should retry.
 	 */
@@ -165,7 +165,7 @@ boolean_t ftok_sem_get2(gd_region *reg, uint4 start_hrtbt_cntr, semwait_status_t
 					RETURN_SEMWAIT_FAILURE(retstat, 0, op_invalid_sem_syscall, ERR_SEMWT2LONG, 0, sem_pid);
 				save_errno = errno; /* fall-through */
 			} else if (do_blocking_semop(ftokid, gtm_ftok_sem, start_hrtbt_cntr, retstat, reg, bypass,
-						     ftok_counter_halted, NULL))
+						     ftok_counter_halted))
 			{
 				if (*ftok_counter_halted)	/* set by "do_blocking_semop" */
 					ftok_sopcnt = FTOK_SOPCNT_NO_INCR_COUNTER;
diff --git a/sr_unix/ftok_sems.h b/sr_unix/ftok_sems.h
index 4924d0d..c670647 100755
--- a/sr_unix/ftok_sems.h
+++ b/sr_unix/ftok_sems.h
@@ -16,7 +16,7 @@
 #include "gtm_semutils.h"
 
 boolean_t ftok_sem_get2(gd_region *reg, uint4 stacktrace_on_wait, semwait_status_t *retstat, boolean_t *bypass,
-			boolean_t *ftok_counter_halted);
+			boolean_t *ftok_counter_halted, boolean_t incr_cnt);
 boolean_t ftok_sem_get(gd_region *reg, boolean_t incr_cnt, int project_id, boolean_t immediate,
 		       boolean_t *ftok_counter_halted);
 boolean_t ftok_sem_lock(gd_region *reg, boolean_t immediate);
diff --git a/sr_unix/gds_rundown.c b/sr_unix/gds_rundown.c
index bbfa757..d074dbd 100755
--- a/sr_unix/gds_rundown.c
+++ b/sr_unix/gds_rundown.c
@@ -340,9 +340,9 @@ int4 gds_rundown(void)
 	 * But there could be other processes still having the database open so we cannot safely reset the halted fields.
 	 */
 	if (have_standalone_access && !jgbl.onlnrlbk)
-		csd->ftok_counter_halted = csd->access_counter_halted = FALSE;
-	ftok_counter_halted = csd->ftok_counter_halted;
-	access_counter_halted = csd->access_counter_halted;
+		cnl->ftok_counter_halted = cnl->access_counter_halted = FALSE;
+	ftok_counter_halted = cnl->ftok_counter_halted;
+	access_counter_halted = cnl->access_counter_halted;
 	/* If we bypassed any of the semaphores, activate safe mode.
 	 * Also, if the replication instance is frozen and this db has replication turned on (which means
 	 * no flushes of dirty buffers to this db can happen while the instance is frozen) activate safe mode.
@@ -699,8 +699,8 @@ int4 gds_rundown(void)
 			if (0 != shm_rmid(udi->shmid))
 				rts_error_csa(CSA_ARG(csa) VARLSTCNT(8) ERR_DBFILERR, 2, DB_LEN_STR(reg),
 					ERR_TEXT, 2, RTS_ERROR_TEXT("Unable to remove shared memory"));
-			/* Note that we no longer have a new shared memory. Currently only used/usable for standalone rollback. */
-			udi->new_shm = FALSE;
+			/* Note that this process deleted shared memory. Currently only used by rollback. */
+			udi->shm_deleted = TRUE;
 			/* mupip recover/rollback don't release the semaphore here, but do it later in db_ipcs_reset (invoked from
 			 * mur_close_files())
 			 */
@@ -709,7 +709,7 @@ int4 gds_rundown(void)
 				if (0 != sem_rmid(udi->semid))
 					rts_error_csa(CSA_ARG(csa) VARLSTCNT(8) ERR_DBFILERR, 2, DB_LEN_STR(reg),
 						      ERR_TEXT, 2, RTS_ERROR_TEXT("Unable to remove semaphore"));
-				udi->new_sem = FALSE;			/* Note that we no longer have a new semaphore */
+				udi->sem_deleted = TRUE;		/* Note that we deleted the semaphore */
 				udi->grabbed_access_sem = FALSE;
 				udi->counter_acc_incremented = FALSE;
 			}
diff --git a/sr_unix/gdsfilext.c b/sr_unix/gdsfilext.c
index 88391b1..1792f3e 100755
--- a/sr_unix/gdsfilext.c
+++ b/sr_unix/gdsfilext.c
@@ -232,6 +232,14 @@ uint4	 gdsfilext(uint4 blocks, uint4 filesize, boolean_t trans_in_prog)
 			}
 		}
 	}
+#	ifdef DEBUG
+	if (WBTEST_ENABLED(WBTEST_MM_CONCURRENT_FILE_EXTEND) && dollar_tlevel && !MEMCMP_LIT(gv_cur_region->rname, "DEFAULT"))
+	{
+		SYSTEM("$gtm_dist/mumps -run $gtm_wbox_mrtn");
+		assert(1 == cs_addrs->nl->wbox_test_seq_num);	/* should have been set by mubfilcpy */
+		cs_addrs->nl->wbox_test_seq_num = 2;	/* signal mupip backup to stop sleeping in mubfilcpy */
+	}
+#	endif
 	/* From here on, we need to use GDSFILEXT_CLNUP before returning to the caller */
 	was_crit = cs_addrs->now_crit;
 	assert(!cs_addrs->hold_onto_crit || was_crit);
diff --git a/sr_unix/gtm_env_init_sp.c b/sr_unix/gtm_env_init_sp.c
index 3531fa2..c3e7370 100755
--- a/sr_unix/gtm_env_init_sp.c
+++ b/sr_unix/gtm_env_init_sp.c
@@ -103,6 +103,7 @@ GBLREF	char			*gtm_core_file;
 GBLREF	char			*gtm_core_putenv;
 GBLREF	mval			dollar_etrap;
 GBLREF	mval			dollar_ztrap;
+GBLREF	mval			dollar_zstep;
 GBLREF	boolean_t		dmterm_default;
 GBLREF	boolean_t		ipv4_only;		/* If TRUE, only use AF_INET. */
 ZOS_ONLY(GBLREF	char		*gtm_utf8_locale_object;)
@@ -375,6 +376,20 @@ void	gtm_env_init_sp(void)
 		dollar_ztrap.str.len = SIZEOF(init_break);
 		dollar_ztrap.str.addr = (char *)init_break;
 	}
+	/* Initiaalize $ZSTEP fro $gtm_zstep enviroment variable. Default value is initailzed in gbldefs.c */
+	val.addr = GTM_ZSTEP;
+	val.len = SIZEOF(GTM_ZSTEP) - 1;
+	if (SS_NORMAL == (status = TRANS_LOG_NAME(&val, &trans, buf, SIZEOF(buf), do_sendmsg_on_log2long)))
+	{
+		if (MAX_SRCLINE >= trans.len)
+		{
+			dollar_zstep.str.addr = malloc(trans.len + 1); /* +1 for '\0'; This memory is never freed */
+			memcpy(dollar_zstep.str.addr, trans.addr, trans.len);
+			dollar_zstep.str.addr[trans.len] = '\0';
+			dollar_zstep.str.len = trans.len;
+			dollar_zstep.mvtype = MV_STR;
+		}
+	}
 	/* See if gtm_link is set */
 	val.addr = GTM_LINK;
 	val.len = SIZEOF(GTM_LINK) - 1;
diff --git a/sr_unix/gtm_exit_handler.c b/sr_unix/gtm_exit_handler.c
index 2bd8fb8..e2f9297 100755
--- a/sr_unix/gtm_exit_handler.c
+++ b/sr_unix/gtm_exit_handler.c
@@ -58,6 +58,15 @@ GBLREF	boolean_t		exit_handler_active;
 GBLREF	boolean_t		skip_exit_handler;
 GBLREF 	boolean_t		is_tracing_on;
 
+enum rundown_state
+{
+	rundown_state_mprof,
+	rundown_state_lock,
+	rundown_state_db,
+	rundown_state_io,
+	rundown_state_last
+};
+
 static	enum rundown_state	attempting;
 
 #ifdef DEBUG
@@ -142,15 +151,6 @@ error_def(ERR_GVRUNDOWN);
 error_def(ERR_LKRUNDOWN);
 error_def(ERR_MPROFRUNDOWN);
 
-enum rundown_state
-{
-	rundown_state_mprof,
-	rundown_state_lock,
-	rundown_state_db,
-	rundown_state_io,
-	rundown_state_last
-};
-
 /* Function that is invoked at process exit time to do cleanup.
  * The general flow here is to do various types of rundowns (e.g. db rundown, lock rundown, io rundown etc.).
  * If one type of rundown encounters an error midway, we want to just move on to the next type of rundown.
diff --git a/sr_unix/gtm_logicals.h b/sr_unix/gtm_logicals.h
index 276d0ef..d0b3a7f 100644
--- a/sr_unix/gtm_logicals.h
+++ b/sr_unix/gtm_logicals.h
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -85,6 +85,7 @@
 #define	ZTRAP_FORM			"$gtm_ztrap_form"
 #define	ZTRAP_NEW			"$gtm_ztrap_new"
 #define	ZYERROR				"$gtm_zyerror"
+#define	GTM_ZSTEP			"$gtm_zstep"
 
 /* -------------------------- UNIX only --------------------------  */
 
diff --git a/sr_unix/gtm_semutils.c b/sr_unix/gtm_semutils.c
index 3fabc94..c7ced6e 100644
--- a/sr_unix/gtm_semutils.c
+++ b/sr_unix/gtm_semutils.c
@@ -57,7 +57,7 @@ error_def(ERR_TEXT);
 
 
 boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrtbt_cntr, semwait_status_t *retstat, gd_region *reg,
-			    boolean_t *bypass, boolean_t *sem_halted, sgmnt_data_ptr_t tsd)
+			    boolean_t *bypass, boolean_t *sem_halted)
 {
 	boolean_t			need_stacktrace, indefinite_wait;
 	char				*msgstr;
@@ -72,10 +72,8 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 	SETUP_THREADGBL_ACCESS;
 	assert(IS_FTOK_SEM || IS_ACCESS_SEM);
 	*sem_halted = FALSE;
-	if (NULL != tsd)
-		*sem_halted = IS_ACCESS_SEM ? tsd->access_counter_halted : tsd->ftok_counter_halted;
 	/* Access control semaphore should not be increased when the process is readonly */
-	SET_GTM_SOP_ARRAY(sop, sopcnt, (IS_FTOK_SEM || !reg->read_only) && !(*sem_halted), (SEM_UNDO | IPC_NOWAIT));
+	SET_GTM_SOP_ARRAY(sop, sopcnt, (IS_FTOK_SEM || !reg->read_only), (SEM_UNDO | IPC_NOWAIT));
 	is_editor = (IS_DSE_IMAGE || IS_LKE_IMAGE);
 	max_hrtbt_delta = TREF(dbinit_max_hrtbt_delta);
 	assert(NO_SEMWAIT_ON_EAGAIN != max_hrtbt_delta);
@@ -85,17 +83,15 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 	if (!need_stacktrace)
 	{	/* Since the user specified wait time is less than the default wait, wait that time without any stack trace */
 		if (is_editor)
-		{	/* Editors are able to bypass after 3 seconds of wait. IPC_NOWAIT smeop every second.
+		{	/* Editors are able to bypass after 3 seconds of wait. IPC_NOWAIT semop every second.
 			 * The semaphore value must be at least 2 to make sure the shared memeory is already created.
 			 */
 			if (-1 == (semval = semctl(semid, DB_COUNTER_SEM, GETVAL))) /* semval = number of process attached */
 				RETURN_SEMWAIT_FAILURE(retstat, errno, op_semctl, ERR_CRITSEMFAIL, 0, 0);
-			if (semval > DB_COUNTER_SEM_INCR)
+			if (DB_COUNTER_SEM_INCR < semval)
 			{
 				if (-1 == (sem_pid = semctl(semid, 0, GETPID)))
 					RETURN_SEMWAIT_FAILURE(retstat, errno, op_semctl, ERR_CRITSEMFAIL, 0, 0);
-				gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(10) ERR_RESRCWAIT, 8, LEN_AND_STR(sem_names[semtype]),
-					       REG_LEN_STR(reg), DB_LEN_STR(reg), sem_pid, semid);
 				i = 0;
 				do
 				{
@@ -105,16 +101,18 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 					{
 						if (!(*sem_halted))
 						{
-							if (IS_ACCESS_SEM)
-								SEM_COUNTER_OFFLINE(access, tsd, NULL, reg)
-							else
-								SEM_COUNTER_OFFLINE(ftok, tsd, NULL, reg)
 							sopcnt = 2; /* ignore the increment operation */
 							*sem_halted = TRUE;
 							continue; /* Try again */
 						}
 					} else
 					{
+						if (0 == i)
+						{
+							send_msg_csa(CSA_ARG(NULL) VARLSTCNT(10) ERR_RESRCWAIT, 8,
+								LEN_AND_STR(sem_names[semtype]), REG_LEN_STR(reg),
+								DB_LEN_STR(reg), sem_pid, semid);
+						}
 						LONG_SLEEP(1);
 						i++;
 					}
@@ -142,10 +140,6 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 						else if (ERANGE == save_errno)
 						{
 							*sem_halted = TRUE;
-							if (IS_ACCESS_SEM)
-								SEM_COUNTER_OFFLINE(access, tsd, NULL, reg)
-							else if (IS_FTOK_SEM)
-								SEM_COUNTER_OFFLINE(ftok, tsd, NULL, reg)
 							return TRUE;
 						}
 						*bypass = FALSE; /* Semaphore removed when attempting to bypass. Abort bypass. */
@@ -166,10 +160,6 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 				{
 					if (!(*sem_halted))
 					{
-						if (IS_ACCESS_SEM)
-							SEM_COUNTER_OFFLINE(access, tsd, NULL ,reg)
-						else
-							SEM_COUNTER_OFFLINE(ftok, tsd, NULL, reg)
 						sopcnt = 2; /* ignore the increment operation */
 						*sem_halted = TRUE;
 						continue; /* Try again */
@@ -200,10 +190,6 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 			save_errno = errno;
 			if ((ERANGE == save_errno) && !(*sem_halted))
 			{
-				if (IS_ACCESS_SEM)
-					SEM_COUNTER_OFFLINE(access, tsd, NULL, reg)
-				else
-					SEM_COUNTER_OFFLINE(ftok, tsd, NULL, reg)
 				sopcnt = 2;	/* ignore the increment operation */
 				*sem_halted = TRUE;
 				loopcnt--;	/* do not count this attempt */
@@ -263,10 +249,6 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 			} else if ((!*sem_halted) && (ERANGE == save_errno))
 			{
 				*sem_halted = TRUE;
-				if (IS_ACCESS_SEM)
-					SEM_COUNTER_OFFLINE(access, tsd, NULL, reg)
-				else
-					SEM_COUNTER_OFFLINE(ftok, tsd, NULL, reg)
 				return TRUE;
 			}
 			/* else some other error occurred; fall-through */
diff --git a/sr_unix/gtm_semutils.h b/sr_unix/gtm_semutils.h
index 79228ef..2d08b76 100644
--- a/sr_unix/gtm_semutils.h
+++ b/sr_unix/gtm_semutils.h
@@ -69,7 +69,7 @@ typedef struct semwait_status_struct
 } semwait_status_t;
 
 boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrtbt_cntr, semwait_status_t *status, gd_region *reg,
-			    boolean_t *bypass, boolean_t *sem_halted, sgmnt_data_ptr_t tsd);
+			    boolean_t *bypass, boolean_t *sem_halted);
 
 #define SENDMSG_SEMOP_SUCCESS_IF_NEEDED(STACKTRACE_ISSUED, SEMTYPE)								 \
 {																 \
@@ -186,6 +186,16 @@ boolean_t do_blocking_semop(int semid, enum gtm_semtype semtype, uint4 start_hrt
 	SOP[0].sem_flg = SOP[1].sem_flg = SOP[2].sem_flg = SEMFLG;								\
 }
 
+#define SET_SOP_ARRAY_FOR_DECR_CNT(SOP, SOPCNT, SEMFLG)										\
+{																\
+	/* Typically, multiple statements are not specified in a single line. However, each of the 2 lines below represent	\
+	 * "one" semaphore operation and hence an acceptible exception to the coding guidelines.				\
+	 */															\
+	SOP[0].sem_num = DB_COUNTER_SEM; SOP[0].sem_op = -DB_COUNTER_SEM_INCR;	/* Decrement counter semaphore */		\
+	SOPCNT = 1;														\
+	SOP[0].sem_flg = SEMFLG;												\
+}
+
 #define SET_SEMWAIT_FAILURE_RETSTAT(RETSTAT, ERRNO, OP, STATUS1, STATUS2, SEMPID)					\
 {															\
 	(RETSTAT)->line_no = __LINE__;											\
diff --git a/sr_unix/gtmcrypt.h b/sr_unix/gtmcrypt.h
index 446e6bc..9a3fa96 100644
--- a/sr_unix/gtmcrypt.h
+++ b/sr_unix/gtmcrypt.h
@@ -478,12 +478,13 @@ error_def(ERR_CRYPTOPFAILED);
 #  define GTMCRYPT_ENCRYPT_DECRYPT_WITH_IV(CSA, KEY_HANDLE, INBUF, INBUF_LEN, OUTBUF, OPERATION, IV_MODE, IV, RC)		\
 {																\
 	intrpt_state_t	prev_intrpt_state;											\
+	char		*gcedwiv_inbuf = (char *)(INBUF);									\
 																\
-	assert(INBUF);														\
+	assert(gcedwiv_inbuf);													\
 	if (gtmcrypt_initialized && (GTMCRYPT_INVALID_KEY_HANDLE != KEY_HANDLE))						\
 	{															\
 		DEFER_INTERRUPTS(INTRPT_IN_CRYPT_SECTION, prev_intrpt_state);							\
-		if (0 == gtmcrypt_encrypt_decrypt(KEY_HANDLE, (char *)(INBUF), INBUF_LEN, (char *)(OUTBUF),			\
+		if (0 == gtmcrypt_encrypt_decrypt(KEY_HANDLE, gcedwiv_inbuf, INBUF_LEN, (char *)(OUTBUF),			\
 				OPERATION, IV_MODE, IV))									\
 			RC = 0;													\
 		else														\
diff --git a/sr_unix/gtmrecv_end.c b/sr_unix/gtmrecv_end.c
index d0d5601..cf7433d 100755
--- a/sr_unix/gtmrecv_end.c
+++ b/sr_unix/gtmrecv_end.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2006-2015 Fidelity National Information 	*
+ * Copyright (c) 2006-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -46,6 +46,7 @@
 #include "gtmio.h"
 #include "have_crit.h"
 #include "repl_comm.h"
+#include "anticipatory_freeze.h"
 #ifdef GTM_TLS
 #include "gtm_repl.h"
 #endif
@@ -125,7 +126,9 @@ int gtmrecv_end1(boolean_t auto_shutdown)
 	int		fclose_res, rc;
 	seq_num		log_seqno, log_seqno1, jnlpool_seqno, jnlpool_strm_seqno[MAX_SUPPL_STRMS];
 	uint4		savepid;
+	DCL_THREADGBL_ACCESS;
 
+	SETUP_THREADGBL_ACCESS;
 	exit_status = gtmrecv_end_helpers(TRUE);
 	exit_status = gtmrecv_endupd();
 	log_seqno = recvpool.recvpool_ctl->jnl_seqno;
@@ -154,8 +157,11 @@ int gtmrecv_end1(boolean_t auto_shutdown)
 		/* Also take this opportunity to detach from the journal pool except in the auto_shutdown case. This is because
 		 * the fields "jnlpool_ctl->repl_inst_filehdr->recvpool_semid" and "jnlpool_ctl->repl_inst_filehdr->recvpool_shmid"
 		 * need to be reset by "gtmrecv_jnlpool_reset" (called from "gtmrecv_shutdown") which is invoked a little later.
+		 * However, if IFOE is configured we need the journal pool attached so that we can check for instance freeze in
+		 * database rundown, so skip the detach.
+		 * In that case, the detach will happen automatically when the process terminates.
 		 */
-		if (!auto_shutdown)
+		if (!auto_shutdown && !INST_FREEZE_ON_ERROR_POLICY)
 		{
 			JNLPOOL_SHMDT(status, save_errno);
 			if (0 > status)
diff --git a/sr_unix/gtmrecv_shutdown.c b/sr_unix/gtmrecv_shutdown.c
index 9607617..4d52986 100755
--- a/sr_unix/gtmrecv_shutdown.c
+++ b/sr_unix/gtmrecv_shutdown.c
@@ -65,7 +65,7 @@ error_def(ERR_TEXT);
 int gtmrecv_shutdown(boolean_t auto_shutdown, int exit_status)
 {
 	uint4           savepid;
-	boolean_t       ftok_counter_halted, shut_upd_too = FALSE, was_crit;
+	boolean_t       shut_upd_too = FALSE, was_crit;
 	int             status, save_errno;
 	unix_db_info	*udi;
 
@@ -182,7 +182,6 @@ int gtmrecv_shutdown(boolean_t auto_shutdown, int exit_status)
 	/* gtmrecv_ipc_cleanup will not be successful unless receiver server has completely exited.
 	 * It relies on RECV_SERV_COUNT_SEM value.
 	 */
-	ftok_counter_halted = jnlpool.repl_inst_filehdr->ftok_counter_halted;	/* Note down before repl_inst_filehdr is NULLed */
 	if (FALSE == gtmrecv_ipc_cleanup(auto_shutdown, &exit_status))
 	{	/* Release all semaphores */
 		if (!auto_shutdown)
@@ -200,11 +199,13 @@ int gtmrecv_shutdown(boolean_t auto_shutdown, int exit_status)
 		*/
 		if ((NULL != jnlpool.jnlpool_ctl) && !was_crit)
 			grab_lock(jnlpool.jnlpool_dummy_reg, TRUE, ASSERT_NO_ONLINE_ROLLBACK);
-		repl_inst_recvpool_reset(CLEAR_FTOK_HALTED_FALSE);
+		repl_inst_recvpool_reset();
 		if ((NULL != jnlpool.jnlpool_ctl) && !was_crit)
 			rel_lock(jnlpool.jnlpool_dummy_reg);
 	}
-	if (!ftok_sem_release(recvpool.recvpool_dummy_reg, !ftok_counter_halted && udi->counter_ftok_incremented, FALSE))
+	assert(NULL != jnlpool.jnlpool_ctl);
+	if (!ftok_sem_release(recvpool.recvpool_dummy_reg,
+					!jnlpool.jnlpool_ctl->ftok_counter_halted && udi->counter_ftok_incremented, FALSE))
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(1) ERR_RECVPOOLSETUP);
 	return (exit_status);
 }
diff --git a/sr_unix/gtmsource.c b/sr_unix/gtmsource.c
index 017f92e..c0d77b7 100644
--- a/sr_unix/gtmsource.c
+++ b/sr_unix/gtmsource.c
@@ -254,11 +254,11 @@ int gtmsource()
 				rts_error_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_JNLPOOLSETUP, 0,
 					ERR_TEXT, 2, RTS_ERROR_LITERAL("Error in rel_sem"), save_errno);
 			/* If the child source server process got a ftok counter overflow, it would have recorded that in
-			 * jnlpool.repl_inst_filehdr->ftok_counter_halted. Decrement the ftok counter only if neither we nor the
+			 * jnlpool.jnlpool_ctl->ftok_counter_halted. Decrement the ftok counter only if neither we nor the
 			 * child process got a counter overflow.
 			 */
 			ftok_sem_release(jnlpool.jnlpool_dummy_reg, udi->counter_ftok_incremented
-									&& !jnlpool.repl_inst_filehdr->ftok_counter_halted, TRUE);
+									&& !jnlpool.jnlpool_ctl->ftok_counter_halted, TRUE);
 		} else
 		{	/* Child source server process errored out at startup and is no longer alive.
 			 * If we were the one who created the journal pool, let us clean it up.
diff --git a/sr_unix/gtmsource.h b/sr_unix/gtmsource.h
index d8875d9..fe019b4 100755
--- a/sr_unix/gtmsource.h
+++ b/sr_unix/gtmsource.h
@@ -185,10 +185,11 @@ typedef struct
 	boolean_t		instfreeze_environ_inited;
 	unsigned char		merrors_array[MERRORS_ARRAY_SZ];
 	boolean_t		outofsync_core_generated;
+	boolean_t		ftok_counter_halted;
 	/* Note: while adding fields to this structure, keep in mind that it needs to be 16-byte aligned so add filler bytes
 	 * as necessary
 	 */
-	char			filler_16bytealign[12];
+	char			filler_16bytealign[8];
 } jnlpool_ctl_struct;
 
 #if defined(__osf__) && defined(__alpha)
diff --git a/sr_unix/gtmsource_end.c b/sr_unix/gtmsource_end.c
index a9dc7e5..cde14e6 100755
--- a/sr_unix/gtmsource_end.c
+++ b/sr_unix/gtmsource_end.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2006, 2014 Fidelity Information Services, Inc	*
+ * Copyright (c) 2006-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -88,8 +89,12 @@ int gtmsource_end1(boolean_t auto_shutdown)
 		jnlpool_strm_seqno[idx] = jnlpool.jnlpool_ctl->strm_seqno[idx];
 	jnlpool.gtmsource_local->gtmsource_pid = 0;
 	jnlpool.gtmsource_local->gtmsource_state = GTMSOURCE_DUMMY_STATE;
-	if (!auto_shutdown && !CUSTOM_ERRORS_LOADED)
-	{	/* Detach from journal pool */
+	/* Detach from journal pool, except if IFOE is configured, in which case we need the journal pool attached
+	 * so that we can check for instance freeze in database rundown, or if auto_shutdown is set.
+	 * In those cases, the detach will happen automatically when the process terminates.
+	 */
+	if (!auto_shutdown && !INST_FREEZE_ON_ERROR_POLICY)
+	{
 		JNLPOOL_SHMDT(status, save_errno);
 		if (0 > status)
 			repl_log(gtmsource_log_fp, FALSE, TRUE, "Error detaching from journal pool : %s\n", STRERROR(save_errno));
diff --git a/sr_unix/gtmsource_readfiles.c b/sr_unix/gtmsource_readfiles.c
index d356cb0..5063d3d 100755
--- a/sr_unix/gtmsource_readfiles.c
+++ b/sr_unix/gtmsource_readfiles.c
@@ -1422,9 +1422,7 @@ static	int read_and_merge(unsigned char *buff, int maxbufflen, seq_num read_jnl_
 	sgmnt_addrs		*csa;
 	gtmsource_state_t	gtmsource_state_sav;
 	repl_rctl_elem_t	*repl_rctl;
-	DCL_THREADGBL_ACCESS;
 
-	SETUP_THREADGBL_ACCESS;
 	trans_read = FALSE;
 	num_tcom = -1;
 	tot_tcom_len = 0;
@@ -1485,8 +1483,6 @@ static	int read_and_merge(unsigned char *buff, int maxbufflen, seq_num read_jnl_
 								csa->jnl->jnl_buff->freeaddr, ctl->repl_rctl->read_complete);
 						}
 					}
-					if (TREF(gtm_environment_init) && !IS_REPL_INST_FROZEN)
-						gtm_fork_n_core();
 				}
 			}
 		}
diff --git a/sr_unix/gtmsource_shutdown.c b/sr_unix/gtmsource_shutdown.c
index 3f95e3e..347edfc 100755
--- a/sr_unix/gtmsource_shutdown.c
+++ b/sr_unix/gtmsource_shutdown.c
@@ -302,12 +302,12 @@ int gtmsource_shutdown(boolean_t auto_shutdown, int exit_status)
 	 * other error occurs in that function causing it to return ABNORMAL_SHUTDOWN, then we should return ABNORMAL_SHUTDOWN
 	 * from this function as well.
 	 */
-	ftok_counter_halted = jnlpool.repl_inst_filehdr->ftok_counter_halted;	/* Note down before repl_inst_filehdr is NULLed */
+	ftok_counter_halted = jnlpool.jnlpool_ctl->ftok_counter_halted;	/* Note down before jnlpool.jnlpool_ctl is NULLed */
 	if (FALSE == gtmsource_ipc_cleanup(auto_shutdown, &exit_status, &num_src_servers_running))
 		rel_sem_immediate(SOURCE, JNL_POOL_ACCESS_SEM);
 	else
 	{	/* Journal Pool and Access Control Semaphores removed. Invalidate corresponding fields in file header */
-		repl_inst_jnlpool_reset(CLEAR_FTOK_HALTED_FALSE);
+		repl_inst_jnlpool_reset();
 	}
 	if (!ftok_sem_release(jnlpool.jnlpool_dummy_reg, !ftok_counter_halted && udi->counter_ftok_incremented, FALSE))
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(1) ERR_JNLPOOLSETUP);
diff --git a/sr_unix/gtmsrc.csh b/sr_unix/gtmsrc.csh
index af170ec..abba4cb 100755
--- a/sr_unix/gtmsrc.csh
+++ b/sr_unix/gtmsrc.csh
@@ -1,6 +1,7 @@
 #################################################################
 #								#
-#	Copyright 2001, 2014 Fidelity Information Services, Inc	#
+# Copyright (c) 2001-2016 Fidelity National Information		#
+# Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
 #	of its copyright holder(s), and is made available	#
@@ -37,21 +38,7 @@
 #				  and sed programs, installation scripts, etc.) used in
 #				  building or maintaining GT.M
 #
-#		gtm_{inc,pct,src,tools}_list - directory pathname or list of incremental
-#				  directory pathnames
-#
-#			If this is a full release, each of these lists will contain only
-#			one entry.
-#
-#			If this is an incremental release, each list will consist of
-#			several directory pathnames:
-#				the first will be the directory corresponding to this
-#					version,
-#				the second will be the directory corresponding to the
-#					version on which this incremental version is based,
-#				the third will be the directory corresponding to the
-#					version on which the second version was based,
-#				etc.
+#		gtmroutines	- pathname for GT.M to lookup M sources and object files
 #
 #		gt_as_option_I	- assembler option(s) specifying the location(s) of the
 #				  assembly language header files (usually *.si)
@@ -62,70 +49,55 @@
 ###########################################################################################
 #
 
+# Define useful env vars
+setenv gtm_inc	"$gtm_vrt/inc"
+setenv gtm_pct	"$gtm_vrt/pct"
+setenv gtm_src	"$gtm_vrt/src"
+setenv gtm_tools	"$gtm_vrt/tools"
 
-setenv gtm_inc_list	"$gtm_vrt/inc"
-setenv gtm_pct_list	"$gtm_vrt/pct"
-setenv gtm_src_list	"$gtm_vrt/src"
-setenv gtm_tools_list	"$gtm_vrt/tools"
-
-# These shell variables are no longer used (they're now environment variables).  However, some older
-# versions of gtmsrc.csh define them as shell variables and when both a shell variables and an
-# environment variable of the same name exist, the shell variable value supersedes that of the
-# environment variable.  Therefore, until all V3.1 versions are removed from the system, we need the
-# following "unset" commands (remove after upgrading past V3.1.).
-unset gtm_inc_list
-unset gtm_pct_list
-unset gtm_src_list
-unset gtm_tools_list
-
-if ( $?gtmsrc_last_exe == "1" ) then
-	# Change path and gtmroutines to reflect new gtm_exe.
-	set	path =			`echo $path        | sed -e "s|$gtmsrc_last_exe|$gtm_exe|"`
-
-	# (Note: the use of an intermediate gtmroutines shell variable is necessary for csh; tcsh doesn't require it.)
-	set	gtmsrc_gtmroutines =	`echo "$gtmroutines" | sed -e "s|$gtmsrc_last_exe|$gtm_exe|"`
-	setenv	gtmroutines		"$gtmsrc_gtmroutines"
+if !($?gtmroutines) then
+	setenv gtmroutines ""
+endif
+# Check for utf8 mode two ways, 1) by gtm_chset and 2) by active routines
+set utf = ""
+if ($?gtm_chset) then
+	if ("UTF-8" == "$gtm_chset") set utf="/utf8"
+else if ("utf8" == "$gtm_exe:t") then
+	set utf="/utf8"
+endif
+# Rebuild gtmroutines while trying to preserve the old value.
+set rtns = ($gtmroutines:x)
+if (0 < $#rtns) then
+	@ rtncnt = $#rtns
+	# Strip off "$gtm_exe/plugin/o($gtm_exe/plugin/r)" if present; assumption, it's at the end
+	if ("$rtns[$rtncnt]" =~ "*/plugin/o*(*/plugin/r)") @ rtncnt--
+	# Strip off "$gtm_exe"; assumption, it's next to last or the last
+	if ("${rtns[$rtncnt]:s;/utf8;;}" == "${gtmsrc_last_exe:s;/utf8;;}") @ rtncnt--
+	setenv gtmroutines "$rtns[-$rtncnt]"
+	unset rtncnt
+else
+	setenv gtmroutines "."
+endif
+if (-d $gtm_exe/plugin/o && -d $gtm_exe/plugin/r) then
+	setenv gtmroutines "$gtmroutines $gtm_exe$utf $gtm_exe/plugin/o$utf($gtm_exe/plugin/r)"
+else
+	setenv gtmroutines "$gtmroutines $gtm_exe$utf"
 endif
 setenv gtmsrc_last_exe	$gtm_exe
-
-#	Copy to shell variables to make indexed selection possible.
-
-set gtmsrc_inc_list   = ($gtm_inc_list)
-set gtmsrc_pct_list   = ($gtm_pct_list)
-set gtmsrc_src_list   = ($gtm_src_list)
-set gtmsrc_tools_list = ($gtm_tools_list)
-
-#	Set environment variables for this release only (doesn't include any of the
-#	releases on which this is based -- even if this is an incremental release).
-setenv gtm_inc		$gtmsrc_inc_list[1]
-setenv gtm_pct		$gtmsrc_pct_list[1]
-setenv gtm_src		$gtmsrc_src_list[1]
-setenv gtm_tools	$gtmsrc_tools_list[1]
-
-unsetenv gt_as_option_I
-unsetenv gt_cc_option_I
+unset rtns
+unset utf8
 
 setenv	gtm_version_change	`date`
 source $gtm_tools/gtm_env.csh
 unsetenv gtm_version_change
 
-if (! $?gt_as_option_I) then
-	setenv	gt_as_option_I	""
+if !($?gt_as_option_I) then
+	setenv	gt_as_option_I	"-I$gtm_inc"
+else
+	setenv	gt_as_option_I	"$gt_as_option_I -I$gtm_inc"
 endif
-foreach i ($gtm_inc_list)
-	setenv	gt_as_option_I	"$gt_as_option_I -I$i"
-end
-
-if (! $?gt_cc_option_I) then
-	setenv	gt_cc_option_I	""
+if !($?gt_cc_option_I) then
+	setenv	gt_cc_option_I	"-I$gtm_inc"
+else
+	setenv	gt_cc_option_I	"$gt_cc_option_I -I$gtm_inc"
 endif
-foreach i ($gtm_inc_list)
-	setenv	gt_cc_option_I	"$gt_cc_option_I -I$i"
-end
-
-#	Clean up local shell variables.
-unset gtmsrc_gtmroutines
-unset gtmsrc_inc_list
-unset gtmsrc_pct_list
-unset gtmsrc_src_list
-unset gtmsrc_tools_list
diff --git a/sr_unix/gtmthreadgblasm.m b/sr_unix/gtmthreadgblasm.m
index 57041f1..803c50e 100644
--- a/sr_unix/gtmthreadgblasm.m
+++ b/sr_unix/gtmthreadgblasm.m
@@ -1,6 +1,6 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;								;
-; Copyright (c) 2014-2015 Fidelity National Information 	;
+; Copyright (c) 2014-2016 Fidelity National Information		;
 ;  Services, Inc. and/or its subsidiaries. All rights reserved.	;
 ;								;
 ;	This source code contains the intellectual property	;
@@ -132,7 +132,7 @@
 ; Routine to take a line of input from the gtm_threadgbl_asm_access.txt file and syntax check it. We allow the following:
 ;
 ;   - trailing white space
-;   - trailing comments preceeded by a '#' character potentially preceeded by white space
+;   - trailing comments preceded by a '#' character potentially preceded by white space
 ;
 ; In either of the above conditions, the input line (passed by reference) is stripped of its trailing junk so only the
 ; variable name itself is left when we return.
diff --git a/sr_unix/gvcst_init_sysops.c b/sr_unix/gvcst_init_sysops.c
index 36c8421..a51c2f2 100755
--- a/sr_unix/gvcst_init_sysops.c
+++ b/sr_unix/gvcst_init_sysops.c
@@ -469,7 +469,7 @@ void dbsecspc(gd_region *reg, sgmnt_data_ptr_t csd, gtm_uint64_t *sec_size)
 
 int db_init(gd_region *reg)
 {
-	boolean_t       	is_bg, read_only, sem_created = FALSE, need_stacktrace, have_standalone_access;
+	boolean_t       	is_bg, read_only, need_stacktrace, have_standalone_access;
 	boolean_t		shm_setup_ok = FALSE, vermismatch = FALSE, vermismatch_already_printed = FALSE;
 	boolean_t		new_shm_ipc, replinst_mismatch, need_shmctl, need_semctl;
 	boolean_t		gld_do_crypt_init, db_do_crypt_init;
@@ -492,8 +492,8 @@ int db_init(gd_region *reg)
 	int			init_status;
 	gtm_uint64_t 		sec_size, mmap_sz;
 	semwait_status_t	retstat;
-	boolean_t		bypassed_ftok = FALSE, bypassed_access = FALSE,
-				ftok_counter_halted, access_counter_halted, incr_cnt, flush_hdr = FALSE;
+	boolean_t		bypassed_ftok = FALSE, bypassed_access = FALSE, dummy_ftok_counter_halted,
+				ftok_counter_halted, access_counter_halted, incr_cnt;
 	int			jnl_buffer_size;
 	char			s[JNLBUFFUPDAPNDX_SIZE];	/* JNLBUFFUPDAPNDX_SIZE is defined in jnl.h */
 	char			*syscall;
@@ -536,6 +536,7 @@ int db_init(gd_region *reg)
 	have_standalone_access = udi->grabbed_access_sem;
 	init_status = 0;
 	crypt_warning = FALSE;
+	udi->shm_deleted = udi->sem_deleted = FALSE;
 	if (!have_standalone_access)
 	{
 		gld_do_crypt_init = (IS_ENCRYPTED(reg->dyn.addr->is_encrypted) && !IS_LKE_IMAGE);
@@ -545,7 +546,7 @@ int db_init(gd_region *reg)
 		/* If the header is uninitalized we assume that mumps_can_bypass is TRUE. After we read the header to confirm our
 		 * assumption. If we turn out to be wrong, we error out
 		 */
-		if (!ftok_sem_get2(reg, start_hrtbt_cntr, &retstat, &bypassed_ftok, &ftok_counter_halted))
+		if (!ftok_sem_get2(reg, start_hrtbt_cntr, &retstat, &bypassed_ftok, &ftok_counter_halted, TRUE))
 			ISSUE_SEMWAIT_ERROR((&retstat), reg, udi, "ftok");
 		assert(udi->grabbed_ftok_sem || bypassed_ftok);
 		if (bypassed_ftok)
@@ -566,14 +567,22 @@ int db_init(gd_region *reg)
 				 * as initialization is heavy-weight. Decrement counter so later increment is correct.
 				 */
 				assert(udi->counter_ftok_incremented == !ftok_counter_halted);
-				ftok_counter_halted = ftok_counter_halted || tsd->ftok_counter_halted;
-				if (!bypassed_ftok && !ftok_sem_release(reg, !ftok_counter_halted, FALSE))
+				/* If we are going to do a "ftok_sem_release", do not decrement the counter that was
+				 * potentially incremented in the previous call to "ftok_sem_get2". Hence the 2nd parameter FALSE.
+				 */
+				if (!bypassed_ftok && !ftok_sem_release(reg, FALSE, FALSE))
 					RTS_ERROR(VARLSTCNT(4) ERR_DBFILERR, 2, DB_LEN_STR(reg));
 				INIT_PROC_ENCRYPTION_IF_NEEDED(csa, db_do_crypt_init, init_status); /* redo initialization */
 				bypassed_ftok = FALSE;
 				start_hrtbt_cntr = heartbeat_counter; /* update to reflect time lost in encryption initialization */
-				if (!ftok_sem_get2(reg, start_hrtbt_cntr, &retstat, &bypassed_ftok, &ftok_counter_halted))
+				/* Since this is the second call to "ftok_sem_get2", do not increment counter.
+				 * Hence FALSE as last parameter.
+				 */
+				if (!ftok_sem_get2(reg, start_hrtbt_cntr, &retstat, &bypassed_ftok,
+									&dummy_ftok_counter_halted, FALSE))
 					ISSUE_SEMWAIT_ERROR((&retstat), reg, udi, "ftok");
+				assert(!udi->counter_ftok_incremented);
+				udi->counter_ftok_incremented = !ftok_counter_halted;	/* restore to first "ftok_sem_get2" call */
 				assert(udi->grabbed_ftok_sem || bypassed_ftok);
 				if (bypassed_ftok)
 					SEND_MSG(VARLSTCNT(4) ERR_TEXT, 2,
@@ -589,8 +598,6 @@ int db_init(gd_region *reg)
 			   * before is discarded
 			   */
 		}
-		ftok_counter_halted = ftok_counter_halted || tsd->ftok_counter_halted;
-		access_counter_halted = tsd->access_counter_halted;
 		INIT_DB_ENCRYPTION_IF_NEEDED(db_do_crypt_init, init_status, reg, csa, tsd, crypt_warning);
 		if (WBTEST_ENABLED(WBTEST_HOLD_ONTO_FTOKSEM_IN_DBINIT))
 		{
@@ -598,12 +605,12 @@ int db_init(gd_region *reg)
 			LONG_SLEEP(30);
 			DBGFPF((stderr, "30 second sleep exhausted.. continuing with rest of db_init..\n"));
 		}
+		access_counter_halted = FALSE;
 		for (loopcnt = 0; MAX_ACCESS_SEM_RETRIES > loopcnt; loopcnt++)
 		{
 			CSD2UDI(tsd, udi); /* sets udi->semid/shmid/sem_ctime/shm_ctime from file header */
 			/* we did not create a new ipc resource */
-			udi->new_sem = udi->new_shm = FALSE;
-			sem_created = FALSE;
+			udi->sem_created = udi->shm_created = FALSE;
 			if (INVALID_SEMID == udi->semid)
 			{	/* access control semaphore does not exist. Create one */
 				if (0 != udi->gt_sem_ctime || INVALID_SHMID != udi->shmid || 0 != udi->gt_shm_ctime)
@@ -619,8 +626,7 @@ int db_init(gd_region *reg)
 						ERR_TEXT, 2, LEN_AND_LIT("Error with database control semget"), errno);
 				}
 				udi->shmid = INVALID_SHMID; /* reset shmid so dbinit_ch does not get confused in case we go there */
-				udi->new_sem = udi->new_shm = TRUE;
-				sem_created = TRUE;
+				udi->sem_created = udi->shm_created = TRUE;
 				/* change group and permissions */
 				semarg.buf = &semstat;
 				if (-1 == semctl(udi->semid, FTOK_SEM_PER_ID - 1, IPC_STAT, semarg))
@@ -721,10 +727,10 @@ int db_init(gd_region *reg)
 					 * In either case, try grabbing the semaphore. If not, wait (depending on the user specified
 					 * wait time). Eventually, we will either get hold of the semaphore OR will error out.
 					 */
-					udi->new_shm = TRUE; /* Need to create shared memory */
+					udi->shm_created = TRUE; /* Need to create shared memory */
 				}
 			}
-			incr_cnt = (!read_only) && (!tsd->access_counter_halted);
+			incr_cnt = !read_only;
 			/* We already have ftok semaphore of this region, so all we need is the access control semaphore */
 			SET_GTM_SOP_ARRAY(sop, sopcnt, incr_cnt, (SEM_UNDO | IPC_NOWAIT));
 			SEMOP(udi->semid, sop, sopcnt, status, NO_WAIT);
@@ -733,7 +739,7 @@ int db_init(gd_region *reg)
 			else
 			{
 				save_errno = errno;
-				assert(!sem_created); /* If we created the semaphore, we should be able to do the semop */
+				assert(!udi->sem_created); /* If we created the semaphore, we should be able to do the semop */
 				if ((EAGAIN == save_errno) || (ERANGE == save_errno))
 				{
 					if ((EAGAIN == save_errno) && (NO_SEMWAIT_ON_EAGAIN == TREF(dbinit_max_hrtbt_delta)))
@@ -755,7 +761,7 @@ int db_init(gd_region *reg)
 							} /* else semaphore was removed. Fall-through */
 						}
 					} else if (!do_blocking_semop(udi->semid, gtm_access_sem, start_hrtbt_cntr,
-								      &retstat, reg, &bypassed_access, &access_counter_halted, tsd))
+								      &retstat, reg, &bypassed_access, &access_counter_halted))
 					{
 						if (!SEM_REMOVED(retstat.save_errno))
 							ISSUE_SEMWAIT_ERROR((&retstat), reg, udi, "access control");
@@ -819,7 +825,7 @@ int db_init(gd_region *reg)
 		assert((INVALID_SHMID == udi->shmid) && (0 == udi->gt_shm_ctime));
 		/* In pro, just clear it and proceed */
 		udi->shmid = INVALID_SHMID;	/* reset shmid so dbinit_ch does not get confused in case we go there */
-		udi->new_shm = udi->new_sem = TRUE;
+		udi->shm_created = udi->sem_created = TRUE;
 	}
 	assert(udi->grabbed_access_sem || bypassed_access);
 	DO_DB_HDR_CHECK(reg, tsd); /* Basic sanity check on the file header fields */
@@ -844,7 +850,7 @@ int db_init(gd_region *reg)
 	 * unconditionally
 	 */
 	reg->dyn.addr->acc_meth = tsd->acc_meth;
-	new_shm_ipc = udi->new_shm;
+	new_shm_ipc = udi->shm_created;
 	if (new_shm_ipc)
 	{	/* Bypassers are not allowed to create shared memory so we don't end up with conflicting shared memories */
 		if (bypassed_ftok || bypassed_access)
@@ -996,9 +1002,9 @@ int db_init(gd_region *reg)
 	 */
 	if (shm_setup_ok && !csa->nl->glob_sec_init && !(bypassed_ftok || bypassed_access))
 	{
+		assert(udi->shm_created);
 		assert(new_shm_ipc);
 		assert(!vermismatch);
-		csa->dbinit_shm_created = TRUE;
 		memcpy(csd, tsd, SIZEOF(sgmnt_data));
 		READ_DB_FILE_MASTERMAP(reg, csd);
 		if (csd->machine_name[0])                  /* crash occurred */
@@ -1180,7 +1186,7 @@ int db_init(gd_region *reg)
 			PRINT_CRASH_MESSAGE(2, csa->nl, ERR_NLMISMATCHCALC, 4, LEN_AND_LIT("lock address"),
 				  (uint4)((sm_uc_ptr_t)csa->lock_addrs[0] - (sm_uc_ptr_t)csa->nl), (uint4)csa->nl->lock_addrs);
 		}
-		csa->dbinit_shm_created = FALSE;
+		assert(!udi->shm_created);
 		if (is_bg)
 			db_csh_ini(csa);
 	}
@@ -1193,7 +1199,7 @@ int db_init(gd_region *reg)
 	 * would have lost the jnlpool initialization that the source server did. So do it on behalf of the source
 	 * server even though this is not a source server.
 	 */
-	if ((REPL_ALLOWED(csd) && is_src_server) || (pool_init && csa->dbinit_shm_created))
+	if ((REPL_ALLOWED(csd) && is_src_server) || (pool_init && udi->shm_created))
 	{
 		assert(NULL != jnlpool.repl_inst_filehdr);
 		/* Note: csa->nl->replinstfilename is changed under control of the init/rundown semaphore only. */
@@ -1203,7 +1209,7 @@ int db_init(gd_region *reg)
 			STRCPY(csa->nl->replinstfilename, jnlpool.jnlpool_ctl->jnlpool_id.instfilename);
 		else if (STRCMP(csa->nl->replinstfilename, jnlpool.jnlpool_ctl->jnlpool_id.instfilename))
 		{
-			assert(!(pool_init && csa->dbinit_shm_created));
+			assert(!(pool_init && udi->shm_created));
 			replinst_mismatch = TRUE;
 		}
 		/* Note: csa->nl->jnlpool_shmid is changed under control of the init/rundown semaphore only. */
@@ -1215,7 +1221,7 @@ int db_init(gd_region *reg)
 			 * Possible if the jnlpool has since been deleted. If so, note the new one down.
 			 * If not, then issue an error.
 			 */
-			assert(!(pool_init && csa->dbinit_shm_created));
+			assert(!(pool_init && udi->shm_created));
 			if (-1 == shmctl(csa->nl->jnlpool_shmid, IPC_STAT, &shmstat))
 			{
 				save_errno = errno;
@@ -1231,7 +1237,7 @@ int db_init(gd_region *reg)
 		/* Replication instance file or jnlpool id mismatch. Issue error. */
 		if (replinst_mismatch)
 		{
-			assert(!(pool_init && csa->dbinit_shm_created));
+			assert(!(pool_init && udi->shm_created));
 			if (INVALID_SHMID == csa->nl->jnlpool_shmid)
 				RTS_ERROR(VARLSTCNT(4) ERR_REPLINSTNOSHM, 2, DB_LEN_STR(reg));
 			else
@@ -1305,23 +1311,36 @@ int db_init(gd_region *reg)
 			SET_SEMWAIT_FAILURE_RETSTAT(&retstat, ERANGE, op_semctl_or_semop, 0, ERR_CRITSEMFAIL, 0);
 			ISSUE_SEMWAIT_ERROR((&retstat), reg, udi, (ftok_counter_halted ? "ftok" : "access control"));
 		}
-		if (ftok_counter_halted && !csd->ftok_counter_halted)
+		if (ftok_counter_halted && !csa->nl->ftok_counter_halted)
 		{
-			assert(!tsd->ftok_counter_halted);
-			SEM_COUNTER_OFFLINE(ftok, csd, csa, reg);
-			flush_hdr = TRUE;
+			csa->nl->ftok_counter_halted = TRUE;
+			send_msg_csa(CSA_ARG(csa) VARLSTCNT(7) ERR_NOMORESEMCNT, 5,
+								LEN_AND_LIT("ftok"), FILE_TYPE_DB, DB_LEN_STR(reg));
 		}
-		if (access_counter_halted && !csd->access_counter_halted)
-		{	/* We already issued the NOMORESEMCNT message for the access control semaphore in the
-			 * "do_blocking_semop" call a little earlier so no need to issue this again. We had
-			 * updated "tsd" (read from disk) then but later gotten attached to "csd" (shared memory)
-			 * so update "csd" accordingly. No more action needed other than flushing the file header to disk.
-			 */
-			csd->access_counter_halted = TRUE;
-			flush_hdr = TRUE;
+		if (access_counter_halted && !csa->nl->access_counter_halted)
+		{
+			csa->nl->access_counter_halted = TRUE;
+			send_msg_csa(CSA_ARG(csa) VARLSTCNT(7) ERR_NOMORESEMCNT, 5,
+								LEN_AND_LIT("access"), FILE_TYPE_DB, DB_LEN_STR(reg));
 		}
-		if (!read_only && flush_hdr)
-			DB_LSEEKWRITE(csa, udi->fn, udi->fd, (off_t)0, (sm_uc_ptr_t)csd, SIZEOF(sgmnt_data), save_errno)
+	}
+	if (udi->counter_acc_incremented && csa->nl->access_counter_halted)
+	{	/* Shared access counter had overflown a while back but is not right now. Undo the counter bump that we
+		 * did as otherwise we will later have problems (for example if this is a MUPIP SET -JOURNAL command that
+		 * needs standalone access and does a "gds_rundown" followed by a "mu_rndwn_file" later. The "mu_rndwn_file"
+		 * call will wait for the counter to become 0 which it never will as we would have bumped it here.
+		 */
+		SET_SOP_ARRAY_FOR_DECR_CNT(sop, sopcnt, (SEM_UNDO | IPC_NOWAIT));
+		SEMOP(udi->semid, sop, sopcnt, status, NO_WAIT);
+		udi->counter_acc_incremented = FALSE;
+		assert(-1 != status);	/* since we hold the access control lock, we do not expect any errors */
+	}
+	if (udi->counter_ftok_incremented && csa->nl->ftok_counter_halted)
+	{	/* Do similar cleanup for ftok like we did for access semaphore above */
+		SET_SOP_ARRAY_FOR_DECR_CNT(sop, sopcnt, (SEM_UNDO | IPC_NOWAIT));
+		SEMOP(udi->ftok_semid, sop, sopcnt, status, NO_WAIT);
+		udi->counter_ftok_incremented = FALSE;
+		assert(-1 != status);	/* since we hold the access control lock, we do not expect any errors */
 	}
 	if (gtm_fullblockwrites)
 	{	/* We have been asked to do FULL BLOCK WRITES for this database. On *NIX, attempt to get the filesystem
diff --git a/sr_unix/iormdef.h b/sr_unix/iormdef.h
index bfdab5f..000c953 100755
--- a/sr_unix/iormdef.h
+++ b/sr_unix/iormdef.h
@@ -48,6 +48,8 @@ int pid;
 	case CHSET_UTF16LE:			\
 		width_bytes = 2;		\
 		width_chset = iod->ichset;	\
+	default:				\
+		break;				\
 	}					\
 	switch (iod->ochset)			\
 	{					\
@@ -56,6 +58,8 @@ int pid;
 	case CHSET_UTF16LE:			\
 		width_bytes = 2;		\
 		width_chset = iod->ochset;	\
+	default:				\
+		break;				\
 	}
 #else
 #define SET_WIDTH_BYTES	width_bytes = 1;
diff --git a/sr_unix/jnl_output_sp.c b/sr_unix/jnl_output_sp.c
index 618160b..6021996 100644
--- a/sr_unix/jnl_output_sp.c
+++ b/sr_unix/jnl_output_sp.c
@@ -1,6 +1,6 @@
 /***************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information 	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -305,8 +305,8 @@ uint4 jnl_qio_start(jnl_private_control *jpc)
 	   * does the dirty job more efficiently
 	   */
 	spin_sleep_mask = csa->hdr->mutex_spin_parms.mutex_spin_sleep_mask;
-	for (yield_cnt = 0; yield_cnt < csa->hdr->yield_lmt; yield_cnt++)
-	{	/* wait until someone has finished your job or no one else is active on the jnl file */
+	for (yield_cnt = 0; !csa->now_crit && (yield_cnt < csa->hdr->yield_lmt); yield_cnt++)
+	{	/* If not in crit, wait until someone has finished your job or no one else is active on the jnl file */
 		old_freeaddr = jb->freeaddr;
 		GTM_REL_QUANT(spin_sleep_mask);
 		/* Purpose of this memory barrier is to get a current view of asyncrhonously changed fields
diff --git a/sr_unix/jnlpool_init.c b/sr_unix/jnlpool_init.c
index 2343c69..4239382 100755
--- a/sr_unix/jnlpool_init.c
+++ b/sr_unix/jnlpool_init.c
@@ -57,6 +57,7 @@
 #include "gtmsource_srv_latch.h"
 #include "util.h"			/* For OUT_BUFF_SIZE */
 #include "repl_inst_ftok_counter_halted.h"
+#include "eintr_wrapper_semop.h"
 
 GBLREF	jnlpool_addrs				jnlpool;
 GBLREF	recvpool_addrs				recvpool;
@@ -167,7 +168,7 @@ error_def(ERR_TEXT);
 void jnlpool_init(jnlpool_user pool_user, boolean_t gtmsource_startup, boolean_t *jnlpool_creator)
 {
 	boolean_t		hold_onto_ftok_sem, is_src_srvr, new_ipc, reset_gtmsrclcl_info, slot_needs_init, srv_alive;
-	boolean_t		cannot_activate, counter_halted_by_me, ftok_counter_halted = FALSE, skip_locks;
+	boolean_t		cannot_activate, ftok_counter_halted, skip_locks;
 	char			instfilename[MAX_FN_LEN + 1], machine_name[MAX_MCNAMELEN], scndry_msg[OUT_BUFF_SIZE];
 	gd_region		*r_save, *reg;
 	int			status, save_errno;
@@ -189,14 +190,15 @@ void jnlpool_init(jnlpool_user pool_user, boolean_t gtmsource_startup, boolean_t
 	seq_num			reuse_slot_seqnum, instfilehdr_seqno;
 	repl_histinfo		last_histinfo;
 	jnlpool_ctl_ptr_t	tmp_jnlpool_ctl;
+	struct sembuf   	sop[3];
+	uint4           	sopcnt;
 	DEBUG_ONLY(int4		semval;)
 	DEBUG_ONLY(boolean_t	sem_created = FALSE;)
 	DCL_THREADGBL_ACCESS;
 
 	SETUP_THREADGBL_ACCESS;
 	assert(gtmsource_startup == gtmsource_options.start);
-	skip_locks = (gtmsource_options.setfreeze && (gtmsource_options.freezeval == FALSE)) ||
-			gtmsource_options.showfreeze;
+	skip_locks = (gtmsource_options.setfreeze && (gtmsource_options.freezeval == FALSE)) || gtmsource_options.showfreeze;
 	memset(machine_name, 0, SIZEOF(machine_name));
 	if (GETHOSTNAME(machine_name, MAX_MCNAMELEN, status))
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(5) ERR_TEXT, 2, RTS_ERROR_TEXT("Unable to get the hostname"), errno);
@@ -242,8 +244,14 @@ void jnlpool_init(jnlpool_user pool_user, boolean_t gtmsource_startup, boolean_t
 			      RTS_ERROR_LITERAL("Error grabbing the ftok semaphore"), errno);
 	save_errno = errno;
 	repl_inst_read(udi->fn, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
-	CHECK_IF_REPL_INST_FTOK_COUNTER_HALTED(repl_instance, udi, ftok_counter_halted, counter_halted_by_me,
-							ERR_JNLPOOLSETUP, recvpool.recvpool_dummy_reg, save_errno);
+	/* At this point, we have not yet attached to the jnlpool so we do not know if the ftok counter got halted
+	 * previously or not. So be safe and assume it has halted in case the jnlpool_shmid indicates it is up and running.
+	 * We will set udi->counter_ftok_incremented back to an accurate value after we attach to the jnlpool.
+	 * This means we might not delete the ftok semaphore in some cases of error codepaths but it should be rare
+	 * and is better than incorrectly deleting it while live processes are concurrently using it.
+	 */
+	assert(udi->counter_ftok_incremented == !ftok_counter_halted);
+	udi->counter_ftok_incremented = udi->counter_ftok_incremented && (INVALID_SHMID == repl_instance.jnlpool_shmid);
 	is_src_srvr = (GTMSOURCE == pool_user);
 	/* If caller is source server and secondary instance name has been specified check if it is different from THIS instance */
 	if (is_src_srvr && gtmsource_options.instsecondary)
@@ -276,7 +284,7 @@ void jnlpool_init(jnlpool_user pool_user, boolean_t gtmsource_startup, boolean_t
 		}
 		DEBUG_ONLY(sem_created = TRUE);
 		new_ipc = TRUE;
-		assert(NUM_SRC_SEMS == NUM_RECV_SEMS);
+		assert((int)NUM_SRC_SEMS == (int)NUM_RECV_SEMS);
 		if (INVALID_SEMID == (udi->semid = init_sem_set_source(IPC_PRIVATE, NUM_SRC_SEMS, RWDALL | IPC_CREAT)))
 		{
 			ftok_sem_release(jnlpool.jnlpool_dummy_reg, udi->counter_ftok_incremented, TRUE);
@@ -444,6 +452,19 @@ void jnlpool_init(jnlpool_user pool_user, boolean_t gtmsource_startup, boolean_t
 			RTS_ERROR_LITERAL("Error with journal pool shmat"), save_errno);
 	}
 	jnlpool.jnlpool_ctl = tmp_jnlpool_ctl;
+	/* Now that we have attached to the journal pool, fix udi->counter_ftok_incremented back to an accurate value */
+	udi->counter_ftok_incremented = !ftok_counter_halted;
+	if (udi->counter_ftok_incremented && jnlpool.jnlpool_ctl->ftok_counter_halted)
+	{	/* If shared counter has overflown previously, undo the counter bump we did.
+		 * There is no specific reason but just in case a future caller invokes "jnlpool_init", followed by
+		 * "jnlpool_detach" followed by "mu_rndwn_repl_instance". (See comment in "db_init" where similar
+		 * cleanup is done.
+		 */
+		SET_SOP_ARRAY_FOR_DECR_CNT(sop, sopcnt, (SEM_UNDO | IPC_NOWAIT));
+		SEMOP(udi->ftok_semid, sop, sopcnt, status, NO_WAIT);
+		udi->counter_ftok_incremented = FALSE;
+		assert(-1 != status);	/* since we hold the access control lock, we do not expect any errors */
+	}
 	/* Set a flag to indicate the journal pool is uninitialized. Do this as soon as attaching to shared memory.
 	 * This flag will be reset by "gtmsource_seqno_init" when it is done with setting the jnl_seqno fields.
 	 */
@@ -557,8 +578,8 @@ void jnlpool_init(jnlpool_user pool_user, boolean_t gtmsource_startup, boolean_t
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(10) ERR_REPLREQRUNDOWN, 4, DB_LEN_STR(reg), LEN_AND_STR(machine_name),
 			ERR_TEXT, 2, RTS_ERROR_TEXT("Journal pool is incompletely initialized. Run MUPIP RUNDOWN first."));
 	}
-	if (counter_halted_by_me)
-		repl_inst_ftok_counter_halted(udi, FILE_TYPE_REPLINST, &repl_instance);
+	if (ftok_counter_halted && !jnlpool.jnlpool_ctl->ftok_counter_halted)
+		repl_inst_ftok_counter_halted(udi);
 	slot_needs_init = FALSE;
 	/* Do not release ftok semaphore in the following cases as each of them involve the callers writing to the instance file
 	 * which requires the ftok semaphore to be held. The callers will take care of releasing the semaphore.
diff --git a/sr_unix/joberr.h b/sr_unix/joberr.h
index 8cb5c8b..38f0ac0 100755
--- a/sr_unix/joberr.h
+++ b/sr_unix/joberr.h
@@ -18,36 +18,36 @@ int		len;
  * The follwoing array is index by values from the enum joberr_t from jobsp.h.
  */
 LITDEF joberr_msg joberrs[] = {
-	"", 0,
-	LIT_AND_LEN("Job error in child process"),
-	LIT_AND_LEN("Job error in opening STDIN"),
-	LIT_AND_LEN("Job error in directing input to STDIN"),
-	LIT_AND_LEN("Job error in creating STDOUT"),
-	LIT_AND_LEN("Job error in opening STDOUT"),
-	LIT_AND_LEN("Job error in directing output to STDOUT"),
-	LIT_AND_LEN("Job error in creating STDERR"),
-	LIT_AND_LEN("Job error in opening STDERR"),
-	LIT_AND_LEN("Job error in directing output to STDERR"),
-	LIT_AND_LEN("Job error in directory specification"),
-	LIT_AND_LEN("Job error - CHDIR error"),
-	LIT_AND_LEN("Job error in routine specification. Label and offset not found in created process"),
-	LIT_AND_LEN("Job error in setting independent session"),
-	LIT_AND_LEN("Job error in socketpair"),
-	LIT_AND_LEN("Job error in fork"),
-	LIT_AND_LEN("Job error in renaming standard output file"),
-	LIT_AND_LEN("Job error in renaming standard error file"),
-	LIT_AND_LEN("Job error in middle process to parent process pipe communication"),
-	LIT_AND_LEN("Job error in middle process to grandchild process pipe communication"),
-	LIT_AND_LEN("Job error - INPUT socket not found in socket pool"),
-	LIT_AND_LEN("Job error - OUTPUT socket not found in socket pool"),
-	LIT_AND_LEN("Job error - ERROR socket not found in socket pool"),
-	LIT_AND_LEN("Job error in copying INPUT socket descriptor"),
-	LIT_AND_LEN("Job error in copying OUTPUT socket descriptor"),
-	LIT_AND_LEN("Job error in copying ERROR socket descriptor"),
-	LIT_AND_LEN("Job error sending setup command"),
-	LIT_AND_LEN("Job error sending setup data"),
-	LIT_AND_LEN("Job child was stopped by signal"),
-	LIT_AND_LEN("Job child terminated due to signal"),
-	LIT_AND_LEN("") 	/* this is used internally to determine try-again situations */
+	{ "", 0 },
+	{ LIT_AND_LEN("Job error in child process") },
+	{ LIT_AND_LEN("Job error in opening STDIN") },
+	{ LIT_AND_LEN("Job error in directing input to STDIN") },
+	{ LIT_AND_LEN("Job error in creating STDOUT") },
+	{ LIT_AND_LEN("Job error in opening STDOUT") },
+	{ LIT_AND_LEN("Job error in directing output to STDOUT") },
+	{ LIT_AND_LEN("Job error in creating STDERR") },
+	{ LIT_AND_LEN("Job error in opening STDERR") },
+	{ LIT_AND_LEN("Job error in directing output to STDERR") },
+	{ LIT_AND_LEN("Job error in directory specification") },
+	{ LIT_AND_LEN("Job error - CHDIR error") },
+	{ LIT_AND_LEN("Job error in routine specification. Label and offset not found in created process") },
+	{ LIT_AND_LEN("Job error in setting independent session") },
+	{ LIT_AND_LEN("Job error in socketpair") },
+	{ LIT_AND_LEN("Job error in fork") },
+	{ LIT_AND_LEN("Job error in renaming standard output file") },
+	{ LIT_AND_LEN("Job error in renaming standard error file") },
+	{ LIT_AND_LEN("Job error in middle process to parent process pipe communication") },
+	{ LIT_AND_LEN("Job error in middle process to grandchild process pipe communication") },
+	{ LIT_AND_LEN("Job error - INPUT socket not found in socket pool") },
+	{ LIT_AND_LEN("Job error - OUTPUT socket not found in socket pool") },
+	{ LIT_AND_LEN("Job error - ERROR socket not found in socket pool") },
+	{ LIT_AND_LEN("Job error in copying INPUT socket descriptor") },
+	{ LIT_AND_LEN("Job error in copying OUTPUT socket descriptor") },
+	{ LIT_AND_LEN("Job error in copying ERROR socket descriptor") },
+	{ LIT_AND_LEN("Job error sending setup command") },
+	{ LIT_AND_LEN("Job error sending setup data") },
+	{ LIT_AND_LEN("Job child was stopped by signal") },
+	{ LIT_AND_LEN("Job child terminated due to signal") },
+	{ LIT_AND_LEN("") } 	/* this is used internally to determine try-again situations */
 };
 
diff --git a/sr_unix/kitstart.csh b/sr_unix/kitstart.csh
index 72f2bf7..09118e0 100755
--- a/sr_unix/kitstart.csh
+++ b/sr_unix/kitstart.csh
@@ -1,7 +1,8 @@
 #!/usr/local/bin/tcsh
 #################################################################
 #								#
-#	Copyright 2011, 2014 Fidelity Information Services, Inc       #
+# Copyright (c) 2011-2016 Fidelity National Information		#
+# Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
 #	of its copyright holder(s), and is made available	#
@@ -175,7 +176,7 @@ if (! $?logfile) then
 	echo "output will be in $fname"
 	$0 logfile $arguments >&! $fname
 	set save_status = $status
-	grep "Test of installation" $fname
+	grep -E "PASS|FAIL" $fname
 	exit $save_status
 endif
 ########################################################################################
@@ -205,7 +206,8 @@ set dist = "$gtm_ver/dist"
 set tmp_dist = "$gtm_ver/tmp_dist"
 set install = "$gtm_ver/install"
 set dist_prefix = "${product}_${version}_${osname}_${arch}"
-set notdistributed = '_*.o GDE*.m *.log map obj plugin/libgtm* plugin/gpgagent.tab plugin/gtmcrypt/maskpass'
+set mnotdistributed = '{CHK2LEV,CHKOP,GENDASH,GENOUT,GETNEAR,GTMDEFINEDTYPESTODB,GTMHLPLD,GTMTHREADGBLASM,LOAD,LOADOP,LOADVX,MSG,TTTGEN,TTTSCAN,UNLOAD}.[om]'
+set notdistributed = '_*.o GDE*.m *.log map obj plugin/libgtm* plugin/gpgagent.tab plugin/gtmcrypt/maskpass plugin/r plugin/o'
 set utf8_notdistributed = '_*.o *.m *.log map obj [a-z]*'
 
 if (-d $dist || -d $tmp_dist || -d $install) then
@@ -236,11 +238,11 @@ foreach image ($imagetype)
 	if ("solaris" == $osname) set cpflags="-rH"
 	cp ${cpflags} ${gtm_ver}/${image}/* . || exit 8
 	echo ""
-	echo "Removing files that are not distributed (${notdistributed})"
-	/bin/rm -rf ${notdistributed} || exit 9
+	echo "Removing files that are not distributed (${notdistributed} ${mnotdistributed})"
+	/bin/rm -rf ${notdistributed} ${mnotdistributed} || exit 9
 	if (-e utf8) then
 		cd utf8
-		/bin/rm -rf ${utf8_notdistributed} || exit 9
+		/bin/rm -rf ${utf8_notdistributed} ${mnotdistributed} || exit 9
 		cd ..
 	endif
 	# add the README.txt file
@@ -315,7 +317,7 @@ foreach image ($imagetype)
 		endif
 	else
 		echo ""
-		echo "No GTMDefinedTypesInit"
+		echo "FAIL:GTMDefinedTypesInit was not found"
 	endif
 	set dist_file = "${dist}/${dist_prefix}_${image}.${package_ext}"
 	# no files to be executable or writeable
diff --git a/sr_unix/list_file.c b/sr_unix/list_file.c
index 962b64d..e04bcbb 100755
--- a/sr_unix/list_file.c
+++ b/sr_unix/list_file.c
@@ -47,12 +47,12 @@ static readonly struct
 	(unsigned char)iop_newversion,	(unsigned char)iop_wrap,
 	(unsigned char)iop_recordsize,
 #	ifdef BIGENDIAN
-	(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)132,
+	{(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)132},
 #	else
-	(unsigned char)132, (unsigned char)0, (unsigned char)0, (unsigned char)0,
+	{(unsigned char)132, (unsigned char)0, (unsigned char)0, (unsigned char)0},
 #	endif
 #	ifdef __MVS__
-	(unsigned char)iop_chset, 6, 'E', 'B', 'C', 'D', 'I', 'C',
+	{(unsigned char)iop_chset, 6, 'E', 'B', 'C', 'D', 'I', 'C'},
 #	endif
 	(unsigned char)iop_eol
 	};
@@ -84,7 +84,7 @@ void open_list_file(void)
 	fstr.len = (MV_DEFINED(&cmd_qlf.list_file) ? cmd_qlf.list_file.str.len : 0);
 	fstr.addr = cmd_qlf.list_file.str.addr;
 	if (!(status = parse_file(&fstr, &pblk)) & 1)
-		rts_error(VARLSTCNT(1) status);
+		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(1) status);
 
 	file.mvtype = parms.mvtype = MV_STR;
 	file.str.len = pblk.b_esl;
diff --git a/sr_unix/lke_cmd.c b/sr_unix/lke_cmd.c
index 93d349e..49fad4a 100755
--- a/sr_unix/lke_cmd.c
+++ b/sr_unix/lke_cmd.c
@@ -37,7 +37,7 @@ static readonly CLI_ENTRY clear_qual[] = {
 	{ "OUTPUT", 	  0, 0, 0, 0, 0, 0, VAL_REQ, 	   1, NON_NEG, VAL_STR, 0 },
 	{ "PID", 	  0, 0, 0, 0, 0, 0, VAL_REQ, 	   1, NON_NEG, VAL_NUM, VAL_DCM },
 	{ "REGION", 	  0, 0, 0, 0, 0, 0, VAL_REQ, 	   0, NON_NEG, VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static readonly CLI_ENTRY show_qual[] = {
@@ -49,7 +49,7 @@ static readonly CLI_ENTRY show_qual[] = {
 	{ "PID",      0, 0, 0, 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM, VAL_DCM },
 	{ "REGION",   0, 0, 0, 0, 0, 0, VAL_REQ,        0, NON_NEG, VAL_STR, 0 },
 	{ "WAIT",     0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 /* Main command table (cmd_ary is defined to this array in lke.c)
@@ -63,5 +63,5 @@ GBLDEF CLI_ENTRY lke_cmd_ary[] = {
 	{ "SETGDR", lke_setgdr,	0,          0, 0, 0, 0, VAL_REQ,        1, 0, 0,       0},
 	{ "SHOW",   lke_show,   show_qual,  0, 0, 0, 0, VAL_NOT_REQ,    1, 0, VAL_STR, 0},
 	{ "SPAWN",  util_spawn,	0,          0, 0, 0, 0, VAL_DISALLOWED, 0, 0, 0,       0},
-	{ 0 }
+	{ "" }
 };
diff --git a/sr_unix/mu_rndwn_file.c b/sr_unix/mu_rndwn_file.c
index f1a1afb..f159a87 100755
--- a/sr_unix/mu_rndwn_file.c
+++ b/sr_unix/mu_rndwn_file.c
@@ -222,7 +222,7 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 	int			csd_size;
 	char                    now_running[MAX_REL_NAME];
 	boolean_t		rc_cpt_removed, is_gtm_shm;
-	boolean_t		glob_sec_init, db_shm_in_sync, remove_shmid, ftok_counter_halted = FALSE;
+	boolean_t		glob_sec_init, db_shm_in_sync, remove_shmid, ftok_counter_halted;
 	boolean_t		crypt_warning, do_crypt_init;
 	sgmnt_data_ptr_t	csd, tsd = NULL;
 	sgmnt_addrs		*csa;
@@ -305,21 +305,14 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 	}
 	csa->hdr = tsd;
 	csa->region = gv_cur_region;
-	/* If we were able to increment the ftok semaphore counter but the file header indicates the counter increment
-	 * has halted previously. So treat ourselves as not having made the increment (as otherwise when we go to
-	 * "ftok_sem_release" we would decrement the counter and if it is 1 we will incorrectly remove the semaphore
-	 * even though processes which did not bump the counter are still accessing the database). If we later determine
-	 * that there is no one else attached to the database (shm_nattch is 0) then we will remove the ftok semaphore.
+	/* At this point, we have not yet attached to the database shared memory so we do not know if the ftok counter got halted
+	 * previously or not. So be safe and assume it has halted in case the db shmid indicates it is up and running.
+	 * We will set udi->counter_ftok_incremented back to an accurate value after we attach to the db shm.
+	 * This means we might not delete the ftok semaphore in some cases of error codepaths but it should be rare
+	 * and is better than incorrectly deleting it while live processes are concurrently using it.
 	 */
-	if (tsd->ftok_counter_halted)
-	{	/* If counter is halted, we should never remove ftok semaphore as part of a later "ftok_sem_release" call.
-		 * So make sure "counter_ftok_incremented" is set to FALSE in case it was TRUE after the "ftok_sem_get" call.
-		 */
-		udi->counter_ftok_incremented = FALSE;
-	} else if (ftok_counter_halted)
-		assert(!udi->counter_ftok_incremented);
-	else
-		assert(udi->counter_ftok_incremented);
+	assert(udi->counter_ftok_incremented == !ftok_counter_halted);
+	udi->counter_ftok_incremented = udi->counter_ftok_incremented && (INVALID_SHMID == udi->shmid);
 	if (USES_ENCRYPTION(tsd->is_encrypted))
 	{
 		csa = &(udi->s_addrs);
@@ -459,7 +452,9 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 	}
 	/* Now rundown database if shared memory segment exists. We try this for both values of 'standalone'. */
 	if (no_shm_exists)
-	{
+	{	/* Since we know no shm exists, we can safely say the counter has not halted so restore counter_ftok_incremented */
+		udi->counter_ftok_incremented = !ftok_counter_halted;
+		assert(udi->counter_ftok_incremented);
 		if (prevent_mu_rndwn)
 		{
 			if (override_present)
@@ -515,34 +510,6 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 			tsd->gt_shm_ctime.ctime = udi->gt_shm_ctime = 0;
 			if (standalone)
 			{
-				if (tsd->ftok_counter_halted || tsd->access_counter_halted)
-				{
-					if (reg->read_only)
-					{	/* No current way to clear these flags through gtmsecshr. So disallow it */
-						gtm_putmsg_csa(CSA_ARG(csa) VARLSTCNT(4) ERR_DBRDONLY, 2, DB_LEN_STR(reg));
-						CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-					}
-					/* Access counter is already guaranteed to be 1 as otherwise we would have issued
-					 * a "File already open by another process" error after the SEMOP above. But ftok
-					 * counter is not guaranteed to be the same. So fix it that way a "ftok_sem_release"
-					 * done later WILL remove the ftok semaphore.
-					 */
-					semarg.val = 0;
-					if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-					{
-						RNDWN_ERR("!AD -> Error with semctl with SETVAL1", reg);
-						CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-					}
-					save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM, DB_COUNTER_SEM_INCR, SEM_UNDO);
-					if (save_errno)
-					{
-						RNDWN_ERR("!AD -> Error with do_semop with SETVAL1", reg);
-						CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-					}
-					tsd->ftok_counter_halted = FALSE;
-					tsd->access_counter_halted = FALSE;
-					udi->counter_ftok_incremented = TRUE;
-				}
 				if (!reg->read_only)
 				{
 					if (mupip_jnl_recover)
@@ -615,25 +582,6 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 			}
 		}
 		assert(!standalone);
-		/* Fix up ftok semaphore counter now that we know we are the only one accessing this database */
-		if (tsd->ftok_counter_halted || tsd->access_counter_halted)
-		{
-			semarg.val = 0;
-			if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-			{
-				RNDWN_ERR("!AD -> Error with semctl with SETVAL2", reg);
-				CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-			}
-			save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM, DB_COUNTER_SEM_INCR, SEM_UNDO);
-			if (save_errno)
-			{
-				RNDWN_ERR("!AD -> Error with do_semop with SETVAL2", reg);
-				CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-			}
-			tsd->ftok_counter_halted = FALSE;	/* clear this just in case it is TRUE */
-			tsd->access_counter_halted = FALSE;	/* clear this just in case it is TRUE */
-			udi->counter_ftok_incremented = TRUE;
-		}
 		DB_LSEEKWRITE(csa, udi->fn, udi->fd, (off_t)0, tsd, tsd_size, status);
 		if (0 != status)
 		{
@@ -644,7 +592,6 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 		free(tsd);
 		REVERT;
 		/* For mupip rundown (standalone = FALSE), we release/remove ftok semaphore here. */
-		assert(udi->counter_ftok_incremented);
 		if (!ftok_sem_release(reg, udi->counter_ftok_incremented, TRUE))
 		{
 			RNDWN_ERR("!AD -> Error from ftok_sem_release.", reg);
@@ -802,6 +749,13 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 			 */
 			if (db_shm_in_sync)
 			{
+				/* Now that we have attached to db shm and verified it is usable, fix udi->counter_ftok_incremented
+				 * to take into account the "ftok_counter_halted" flag. This will make sure we do not incorrectly
+				 * delete the ftok semaphore in any error codepaths from now on until the end. In the end when we
+				 * are sure it is safe to rundown this shm, we will fix udi->counter_ftok_incremented to what it
+				 * should be to correctly remove the ftok semaphore.
+				 */
+				udi->counter_ftok_incremented = udi->counter_ftok_incremented && !cs_addrs->nl->ftok_counter_halted;
 				if (!udi->counter_acc_incremented)
 				{	/* Now that we have ensured db & shm are in sync and will be doing the "actual"
 					 * rundown, we need to ensure that no one is attached to the database (counter
@@ -1041,25 +995,6 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 					 */
 					RESET_SEMID_CTIME(csd);
 				}
-				/* Fix up ftok semaphore counter now that we know we are the only one accessing this database */
-				if (csd->ftok_counter_halted || csd->access_counter_halted)
-				{
-					semarg.val = 0;
-					if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-					{
-						RNDWN_ERR("!AD -> Error with semctl with SETVAL3", reg);
-						CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-					}
-					save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM, DB_COUNTER_SEM_INCR, SEM_UNDO);
-					if (save_errno)
-					{
-						RNDWN_ERR("!AD -> Error with do_semop with SETVAL3", reg);
-						CLNUP_AND_RETURN(reg, udi, tsd, sem_created, udi->counter_acc_incremented);
-					}
-					csd->ftok_counter_halted = FALSE;	/* clear this just in case it is TRUE */
-					csd->access_counter_halted = FALSE;	/* clear this just in case it is TRUE */
-					udi->counter_ftok_incremented = TRUE;
-				}
 				DB_LSEEKWRITE(csa, udi->fn, udi->fd, (off_t)0, csd, csd_size, status);
 				if (0 != status)
 				{
@@ -1178,6 +1113,10 @@ boolean_t mu_rndwn_file(gd_region *reg, boolean_t standalone)
 	 * Otherwise, just release ftok semaphore lock. Counter will be one more for this process.
 	 * Exit handlers must take care of removing if necessary.
 	 */
+	/* We successfully ran down the database. So restore udi->counter_ftok_incremented before "ftok_sem_release"
+	 * that way the ftok semaphore gets deleted correctly as part of the counter decrement.
+	 */
+	udi->counter_ftok_incremented = !ftok_counter_halted;
 	assert(udi->counter_ftok_incremented || (!wcs_flu_success && override_present && !standalone));
 	if (!ftok_sem_release(reg, udi->counter_ftok_incremented && !standalone, !standalone))
 		return FALSE;
diff --git a/sr_unix/mu_rndwn_repl_instance.c b/sr_unix/mu_rndwn_repl_instance.c
index 269cfe2..f40837c 100755
--- a/sr_unix/mu_rndwn_repl_instance.c
+++ b/sr_unix/mu_rndwn_repl_instance.c
@@ -92,7 +92,6 @@ boolean_t mu_rndwn_repl_instance(replpool_identifier *replpool_id, boolean_t imm
 					boolean_t *jnlpool_sem_created)
 {
 	boolean_t		jnlpool_stat = SS_NORMAL, recvpool_stat = SS_NORMAL, decr_cnt, sem_created = FALSE, ipc_rmvd;
-	boolean_t		clear_ftok_halted;
 	char			*instfilename;
 	unsigned char		ipcs_buff[MAX_IPCS_ID_BUF], *ipcs_ptr;
 	gd_region		*r_save;
@@ -156,8 +155,13 @@ boolean_t mu_rndwn_repl_instance(replpool_identifier *replpool_id, boolean_t imm
 	ESTABLISH_RET(mu_rndwn_repl_instance_ch, FALSE);
 	repl_inst_read(instfilename, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
 	assert(rndwn_both_pools || JNLPOOL_SEGMENT == replpool_id->pool_type || RECVPOOL_SEGMENT == replpool_id->pool_type);
-	if (!ftok_counter_halted && repl_instance.ftok_counter_halted && udi->counter_ftok_incremented)
-		udi->counter_ftok_incremented = FALSE;	/* See comment in mu_rndwn_file.c WHY this is necessary */
+	/* At this point, we have not yet attached to the jnlpool so we do not know if the ftok counter got halted
+	 * previously or not. So be safe and assume it has halted in case the jnlpool_shmid indicates it is up and running.
+	 * We will set udi->counter_ftok_incremented back to an accurate value after we attach to the jnlpool.
+	 * This means we might not delete the ftok semaphore in some cases of error codepaths but it should be rare
+	 * and is better than incorrectly deleting it while live processes are concurrently using it.
+	 */
+	udi->counter_ftok_incremented = udi->counter_ftok_incremented && (INVALID_SHMID == repl_instance.jnlpool_shmid);
 	if (rndwn_both_pools || (JNLPOOL_SEGMENT == replpool_id->pool_type))
 	{	/* --------------------------
 		 * First rundown Journal pool
@@ -219,53 +223,7 @@ boolean_t mu_rndwn_repl_instance(replpool_identifier *replpool_id, boolean_t imm
 									LEN_AND_STR(ipcs_buff),
 									LEN_AND_STR(instfilename), ERR_SEMREMOVED, 1, sem_id);
 						}
-						/* If "ftok_counter_halted" is TRUE, and the recvpool shmid is already cleared in
-						 * the instance file, we can be sure there is no one interesting in this instance
-						 * file (because we just now run down the jnlpool shm as well). So clear the
-						 * halted flag.
-						 */
-						clear_ftok_halted = CLEAR_FTOK_HALTED_FALSE;
-						if (repl_instance.ftok_counter_halted
-							&& (INVALID_SHMID == repl_instance.recvpool_shmid))
-						{
-							/* ftok counter is not guaranteed to be at 1. So fix it that way a
-							 * "ftok_sem_release" done later WILL remove the ftok semaphore.
-							 */
-							semarg.val = 0;
-							if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-							{
-								save_errno = errno;
-								gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-									ERR_SYSCALL, 5, RTS_ERROR_LITERAL("semctl(SETVAL)"),
-									CALLFROM, save_errno);
-								/* In case not able to set counter to 1, proceed with rundown
-								 * without deleting the ftok semaphore (so keep
-								 * counter_ftok_incremented at FALSE)
-								 */
-							} else
-							{
-								save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM,
-												DB_COUNTER_SEM_INCR, SEM_UNDO);
-								if (save_errno)
-								{
-									gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-										ERR_SYSCALL, 5, RTS_ERROR_LITERAL("do_semop()"),
-										CALLFROM, save_errno);
-									/* In case not able to set counter to 1, proceed with
-									 * rundown without deleting the ftok semaphore (so keep
-									 * counter_ftok_incremented at FALSE)
-									 */
-								} else
-								{
-									udi->counter_ftok_incremented = TRUE;
-									/* repl_instance.ftok_counter_halted will be set to
-									 * FALSE by the below call to repl_inst_jnlpool_reset.
-									 */
-									clear_ftok_halted = CLEAR_FTOK_HALTED_TRUE;
-								}
-							}
-						}
-						repl_inst_jnlpool_reset(clear_ftok_halted);
+						repl_inst_jnlpool_reset();
 					}
 				} else
 				{	/* This is MUPIP RUNDOWN -REG "*" and anticipatory freeze scheme is turned ON.
@@ -371,50 +329,7 @@ boolean_t mu_rndwn_repl_instance(replpool_identifier *replpool_id, boolean_t imm
 						if (!was_crit)
 							grab_lock(jnlpool.jnlpool_dummy_reg, TRUE, GRAB_LOCK_ONLY);
 					}
-					/* If "ftok_counter_halted" is TRUE, and the jnlpool shmid is already cleared in
-					 * the instance file, we can be sure there is no one interesting in this instance file
-					 * (because we just now ran down the recvpool shm as well). So clear the halted flag.
-					 */
-					clear_ftok_halted = CLEAR_FTOK_HALTED_FALSE;
-					if (repl_instance.ftok_counter_halted && (INVALID_SHMID == repl_instance.jnlpool_shmid))
-					{
-						/* ftok counter is not guaranteed to be at 1. So fix it that way a
-						 * "ftok_sem_release" done later WILL remove the ftok semaphore.
-						 */
-						semarg.val = 0;
-						if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-						{
-							save_errno = errno;
-							gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-								ERR_SYSCALL, 5, RTS_ERROR_LITERAL("semctl(SETVAL)"),
-								CALLFROM, save_errno);
-							/* In case not able to set counter to 1, proceed with rundown without
-							 * deleting the ftok semaphore (so keep counter_ftok_incremented unchanged)
-							 */
-						} else
-						{
-							save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM,
-											DB_COUNTER_SEM_INCR, SEM_UNDO);
-							if (save_errno)
-							{
-								gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-									ERR_SYSCALL, 5, RTS_ERROR_LITERAL("do_semop()"),
-									CALLFROM, save_errno);
-								/* In case not able to set counter to 1, proceed with
-								 * rundown without deleting the ftok semaphore (so keep
-								 * counter_ftok_incremented at FALSE)
-								 */
-							} else
-							{
-								udi->counter_ftok_incremented = TRUE;
-								/* repl_instance.ftok_counter_halted will be set to FALSE by the
-								 * below call to repl_inst_recvpool_reset.
-								 */
-								clear_ftok_halted = CLEAR_FTOK_HALTED_TRUE;
-							}
-						}
-					}
-					repl_inst_recvpool_reset(clear_ftok_halted);
+					repl_inst_recvpool_reset();
 					if ((NULL != jnlpool_ctl) && !was_crit)
 						rel_lock(jnlpool.jnlpool_dummy_reg);
 				}
@@ -462,6 +377,7 @@ boolean_t mu_rndwn_repl_instance(replpool_identifier *replpool_id, boolean_t imm
 	} else /* for MUPIP RUNDOWN, semid fields in the file header are reset and is written in mu_replpool_release_sem() above */
 		decr_cnt = (NULL == jnlpool_ctl); /* for anticipatory freeze, "mupip_rundown" releases the ftok semaphore */
 	REVERT;
+	udi->counter_ftok_incremented = !ftok_counter_halted;	/* Restore counter_ftok_incremented before release */
 	/* Release replication instance ftok semaphore lock. Do not decrement the counter if ROLLBACK */
 	if (!ftok_sem_release(reg, decr_cnt && udi->counter_ftok_incremented, immediate))
 		return FALSE;
diff --git a/sr_unix/mu_rndwn_replpool.c b/sr_unix/mu_rndwn_replpool.c
index 17008d9..8f0cf6b 100755
--- a/sr_unix/mu_rndwn_replpool.c
+++ b/sr_unix/mu_rndwn_replpool.c
@@ -296,7 +296,14 @@ CONDITION_HANDLER(mu_rndwn_replpool_ch)
 	PRN_ERROR; /* flush the error string */
 	if (SEVERITY == SEVERE)
 		NEXTCH;
-	if (NULL != jnlpool.jnlpool_ctl)
+	/* If we have a journal pool, detach it to prevent leaking the shared memory.
+	 * However, if IFOE is configured, we may need the journal pool attached so that we can check for instance freeze
+	 * in database rundown.
+	 * In that case, the detach will happen automatically when the process terminates.
+	 * On the other hand, we don't respect IFOE in argumentless rundown, so go ahead and detach in that case, since otherwise
+	 * we could potentially leak the shared memory of multiple journal pools.
+	 */
+	if ((NULL != jnlpool.jnlpool_ctl) && (!INST_FREEZE_ON_ERROR_POLICY || argumentless_rundown))
 	{
 		JNLPOOL_SHMDT(status, save_errno);
 		if (0 > status)
diff --git a/sr_unix/mu_size_arsample.c b/sr_unix/mu_size_arsample.c
index a381bae..4470ba3 100644
--- a/sr_unix/mu_size_arsample.c
+++ b/sr_unix/mu_size_arsample.c
@@ -247,7 +247,7 @@ STATICFNDCL void accum_stats_ar(stat_t *stat, double *r, double *a)
 
 STATICFNDCL void finalize_stats_ar(stat_t *stat)
 {
-	int	j, k;
+	unsigned int	j, k;
 
 	for (j = 0; MAX_BT_DEPTH >= j; j++)
 		/* Variance of the mean (mean referes to avg number of records per block) is Var(R)/N where N is samples size */
diff --git a/sr_unix/mu_size_impsample.c b/sr_unix/mu_size_impsample.c
index 70541c1..d5dfdb4 100644
--- a/sr_unix/mu_size_impsample.c
+++ b/sr_unix/mu_size_impsample.c
@@ -229,7 +229,7 @@ STATICFNDEF void accum_stats_impsmpl(stat_t *stat, double *r, double *a)
 STATICFNDEF void finalize_stats_impsmpl(stat_t *stat)
 {
 	double		ess; /* effective sample size */
-	int		k, l;
+	unsigned int	k, l;
 
 	for (l = 1; MAX_BT_DEPTH >= l; l++)
 		if (stat->W[l] > 0)
diff --git a/sr_unix/mubfilcpy.c b/sr_unix/mubfilcpy.c
index 871846c..5745ae4 100755
--- a/sr_unix/mubfilcpy.c
+++ b/sr_unix/mubfilcpy.c
@@ -45,6 +45,7 @@
 #include "gds_blk_downgrade.h"
 #include "shmpool.h"
 #include "wcs_phase2_commit_wait.h"
+#include "wbox_test_init.h"
 
 #define TMPDIR_ACCESS_MODE	R_OK | W_OK | X_OK
 #define TMPDIR_CREATE_MODE	S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH
@@ -145,7 +146,16 @@ bool	mubfilcpy (backup_reg_list *list)
 	file->addr[file->len] = '\0';
 	header_cpy = list->backup_hdr;
 	hdrsize = (int4)ROUND_UP(SIZEOF_FILE_HDR(header_cpy), DISK_BLOCK_SIZE);
-
+#	ifdef DEBUG
+	if (WBTEST_ENABLED(WBTEST_MM_CONCURRENT_FILE_EXTEND)
+		&& !MEMCMP_LIT(gv_cur_region->rname, "DEFAULT") && !cs_addrs->nl->wbox_test_seq_num)
+	{
+		printf ("reached here\n");
+		cs_addrs->nl->wbox_test_seq_num = 1;
+		while (1 == cs_addrs->nl->wbox_test_seq_num)
+			SHORT_SLEEP(1);	/* wait for signal from gdsfilext that mupip backup can continue */
+	}
+#	endif
 	/* the temporary file should be located in the destination directory */
 	ptr = file->addr + file->len - 1;
 	while (('/' != *ptr) && (ptr > file->addr))
diff --git a/sr_unix/mumps_clitab.c b/sr_unix/mumps_clitab.c
index 21551f8..b71ce85 100755
--- a/sr_unix/mumps_clitab.c
+++ b/sr_unix/mumps_clitab.c
@@ -44,10 +44,10 @@ static readonly CLI_ENTRY mumps_qual[] = {
 { "RUN", 		0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, 	VAL_N_A, 0},
 { "SPACE", 		0, 0, 0, 0, 0, 0, VAL_REQ, 	  1, NON_NEG, 	VAL_NUM, 0},
 { "WARNINGS", 		0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG, 	VAL_N_A, 0},
-{ 0 }
+{ "" }
 };
 
 GBLDEF CLI_ENTRY mumps_cmd_ary[] = {
 { "MUMPS", 0, mumps_qual, mumps_parm, 0, 0, 0, VAL_DISALLOWED, 1, 0, VAL_LIST, 0},
-{ 0 }
+{ "" }
 };
diff --git a/sr_unix/mupip_cmd.c b/sr_unix/mupip_cmd.c
index 03ca0bb..3444e4f 100644
--- a/sr_unix/mupip_cmd.c
+++ b/sr_unix/mupip_cmd.c
@@ -81,7 +81,7 @@ static CLI_ENTRY mup_set_journal_qual[] = {
 	{ "ON",              0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{ "SYNC_IO",         0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG,     VAL_N_A, 0 },
 	{ "YIELD_LIMIT",     0, 0, 0, 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mub_since_qual[] = {
@@ -90,19 +90,19 @@ static CLI_ENTRY mub_since_qual[] = {
 	{ "DATABASE",		0, 0, 0, 0, 0, DEFA_PRESENT, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "INCREMENTAL",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "RECORD",		0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_set_acc_qual[] = {
 	{ "BG",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "MM",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_set_dbver_qual[] = {
 	{ "V4",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
 	{ "V6",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_crypt_type_qual[] = {
@@ -112,25 +112,25 @@ static CLI_ENTRY mup_crypt_type_qual[] = {
 	{ "JNL_NONLOG_IV",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "JNL_LOG_NO_IV",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "JNL_NONLOG_NO_IV",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_downgrade_dbver_qual[] = {
 	{ "V4",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
 	{ "V5",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_extract_format_qual[] = {
 	{ "BINARY",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "GO",		0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "ZWR",	0, 0, 0, 0, 0, DEFA_PRESENT, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_convert_format_qual[] = {
 	{ "RO",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_jnl_show_qual[] = {
@@ -140,34 +140,34 @@ static CLI_ENTRY mup_jnl_show_qual[] = {
 	{ "HEADER",		 0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "PROCESSES",		 0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "STATISTICS",		 0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_load_fmt_qual[] = {
 	{ "BINARY",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "GO",		0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "ZWR",	0, 0, 0, 0, 0, DEFA_PRESENT, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_load_onerror_qual[] = {
 	{ "INTERACTIVE", 0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "PROCEED",	 0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "STOP",	 0, 0, 0, 0, 0, DEFA_PRESENT, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_jnl_fences_qual[] = {
 	{ "ALWAYS",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
 	{ "NONE",	0, 0, 0, 0, 0, 0,            VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
 	{ "PROCESS",	0, 0, 0, 0, 0, DEFA_PRESENT, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_repl_qual[] = {
 	{ "OFF",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
 	{ "ON",		0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NON_NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_PARM	mup_backup_parm[] = {
@@ -179,17 +179,18 @@ static CLI_PARM	mup_backup_parm[] = {
 static CLI_ENTRY mub_njnl_val_qual[] = {
 	{ "PREVLINK",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
 	{ "SYNC_IO",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mub_dbjnl_val_qual[] = {
 	{ "DISABLE",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	1,	NEG,	VAL_N_A,	0 },
 	{ "OFF",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	1,	NEG,	VAL_N_A,	0 },
-	{ 0 }
+	{ "" }
 };
 
 static readonly CLI_PARM mub_njnl_parm[] = {
-	{ "NEWJNLFILES", "PREVLINK", PARM_REQ}
+	{ "NEWJNLFILES", "PREVLINK", PARM_REQ},
+	{ "", "" }
 };
 
 static	CLI_ENTRY	mup_backup_qual[] = {
@@ -209,7 +210,7 @@ static	CLI_ENTRY	mup_backup_qual[] = {
 	{ "REPLINSTANCE",  mupip_backup, 0, 0,             0,                  0, 0, VAL_REQ,        2, NON_NEG, VAL_STR, 0       },
 	{ "SINCE",         mupip_backup, 0, 0,             mub_since_qual,     0, 0, VAL_REQ,        2, NON_NEG, VAL_STR, 0       },
 	{ "TRANSACTION",   mupip_backup, 0, 0,             0,                  0, 0, VAL_REQ,        2, NON_NEG, VAL_NUM, VAL_HEX },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_convert_parm[] = {
@@ -219,12 +220,12 @@ static	CLI_PARM	mup_convert_parm[] = {
 
 static	CLI_ENTRY	mup_convert_qual[] = {
 	{ "FORMAT", mupip_cvtpgm, 0, 0, mup_convert_format_qual, 0, 0, VAL_REQ, 2, NON_NEG, VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_ENTRY	mup_create_qual[] = {
 	{ "REGION", mupip_create, 0, 0, 0, 0, 0, VAL_REQ, 0, NON_NEG, VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static readonly	CLI_PARM mup_endian_parm[] = {
@@ -235,7 +236,7 @@ static readonly	CLI_PARM mup_endian_parm[] = {
 static readonly	CLI_ENTRY mup_endian_qual[] = {
 	{ "OUTDB",    0, 0, 0, 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_STR, 0 },
 	{ "OVERRIDE", 0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_extend_parm[] = {
@@ -245,7 +246,7 @@ static	CLI_PARM	mup_extend_parm[] = {
 
 static	CLI_ENTRY	mup_extend_qual[] = {
 	{ "BLOCKS", mupip_extend, 0, 0, 0, 0, 0, VAL_REQ, 1, NON_NEG, VAL_NUM, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_extract_parm[] = {
@@ -255,7 +256,8 @@ static	CLI_PARM	mup_extract_parm[] = {
 };
 
 static readonly CLI_PARM mup_extr_label_parm[] = {
-	{ "LABEL", "GT.M MUPIP EXTRACT", PARM_REQ}
+	{ "LABEL", "GT.M MUPIP EXTRACT", PARM_REQ},
+	{ "", "" }
 };
 
 static	CLI_ENTRY	mup_extract_qual[] = {
@@ -269,7 +271,7 @@ static	CLI_ENTRY	mup_extract_qual[] = {
 	{ "REGION",   mu_extract, 0, 0,                   0,                       0, 0, VAL_NOT_REQ,    1, NON_NEG, VAL_N_A, 0 },
 	{ "SELECT",   mu_extract, 0, 0,                   0,                       0, 0, VAL_REQ,        1, NON_NEG, VAL_STR, 0 },
 	{ "STDOUT",   mu_extract, 0, 0,                   0,                       0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_freeze_parm[] = {
@@ -283,7 +285,7 @@ static	CLI_ENTRY	mup_freeze_qual[] = {
 	{ "ON",       mupip_freeze, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
 	{ "OVERRIDE", mupip_freeze, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
 	{ "RECORD",   mupip_freeze, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 static	CLI_PARM	mup_ftok_parm[] = {
 	{ "FILE", "File: ", PARM_REQ},
@@ -294,7 +296,7 @@ static	CLI_ENTRY	mup_ftok_qual[] = {
         { "DB",		mupip_ftok, 0, 0, 0, 0, 0, VAL_DISALLOWED,		1, NON_NEG, VAL_N_A, 0 },
         { "JNLPOOL",	mupip_ftok, 0, 0, 0, 0, 0, VAL_DISALLOWED,		1, NON_NEG, VAL_N_A, 0 },
         { "RECVPOOL",	mupip_ftok, 0, 0, 0, 0, 0, VAL_DISALLOWED,		1, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_integ_parm[] = {
@@ -303,7 +305,8 @@ static	CLI_PARM	mup_integ_parm[] = {
 };
 
 static readonly CLI_PARM mup_integ_map_parm[] = {
-	{ "MAP", "10", PARM_REQ}
+	{ "MAP", "10", PARM_REQ},
+	{ "", "" }
 };
 
 static	CLI_ENTRY	mup_integ_qual[] = {
@@ -324,7 +327,7 @@ static	CLI_ENTRY	mup_integ_qual[] = {
 	{ "SUBSCRIPT",   mupip_integ, 0, 0,                  0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_STR, 0       },
 	{ "TN_RESET",    mupip_integ, 0, 0,                  0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0       },
 	{ "TRANSACTION", mupip_integ, 0, mup_integ_map_parm, 0, 0, 0, VAL_NOT_REQ,    1, NEG,     VAL_NUM, 0       },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_intrpt_parm[] = {
@@ -338,35 +341,40 @@ static	CLI_PARM	mup_journal_parm[] = {
 };
 
 static readonly CLI_PARM mup_jnl_errlimit_parm[] = {
-	{ "ERROR_LIMIT", 0, PARM_REQ}
+	{ "ERROR_LIMIT", "", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_PARM mup_jnl_lost_fn[] = {
-	{ "LOSTTRANS", "losttrans.mlt", PARM_REQ}
+	{ "LOSTTRANS", "losttrans.mlt", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_PARM mup_jnl_lookback_parm[] = {
-	{ "LOOKBACK_LIMIT", "TIME=0 00:05", PARM_REQ}
+	{ "LOOKBACK_LIMIT", "TIME=0 00:05", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_PARM mup_jnl_fences_parm[] = {
-	{ "FENCES", "PROCESS", PARM_REQ}
+	{ "FENCES", "PROCESS", PARM_REQ},
+	{ "", "" }
 };
 
 static CLI_ENTRY mur_jnl_lookback_qual[] = {
 	{ "OPERATIONS",	0, 0, 0, 0, 0, 0,            VAL_REQ,	0,	NON_NEG, VAL_NUM, 0 },
 	{ "TIME",	0, 0, 0, 0, 0, DEFA_PRESENT, VAL_REQ,	0,	NON_NEG, VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY mup_trans_qual[] = {
 	{ "KILL",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG, VAL_N_A, 0 },
 	{ "SET",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static readonly CLI_PARM mup_jnl_show_parm[] = {
-	{ "SHOW", "ALL", PARM_REQ}
+	{ "SHOW", "ALL", PARM_REQ},
+	{ "", "" }
 };
 
 static	CLI_ENTRY	mup_journal_qual[] = {
@@ -402,7 +410,7 @@ static	CLI_ENTRY	mup_journal_qual[] = {
 { "USER",              mupip_recover, 0, 0,                     0,                     0, 0, VAL_REQ,        1, NON_NEG, VAL_STR, 0 },
 { "VERBOSE",           mupip_recover, 0, 0,                     0,                     0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
 { "VERIFY",            mupip_recover, 0, 0,                     0,                     0, 0, VAL_DISALLOWED, 1, NEG,     VAL_N_A, 0 },
-{ 0 }
+{ "" }
 };
 
 static	CLI_PARM	mup_load_parm[] = {
@@ -411,15 +419,18 @@ static	CLI_PARM	mup_load_parm[] = {
 };
 
 static readonly CLI_PARM mup_load_ff_parm[] = {
-	{ "FILL_FACTOR", "100", PARM_REQ}
+	{ "FILL_FACTOR", "100", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_PARM mup_load_fmt_parm[] = {
-	{ "FORMAT", "GO", PARM_REQ}
+	{ "FORMAT", "GO", PARM_REQ},
+	{ "", "" }
 };
 
 static readonly CLI_PARM mup_load_onerror_parm[] = {
-	{ "ONERROR", "PROCEED", PARM_REQ}
+	{ "ONERROR", "PROCEED", PARM_REQ},
+	{ "", "" }
 };
 
 static	CLI_ENTRY	mup_load_qual[] = {
@@ -430,11 +441,12 @@ static	CLI_ENTRY	mup_load_qual[] = {
 	{ "FORMAT",        mupip_cvtgbl, 0, mup_load_fmt_parm,     mup_load_fmt_qual,     0, 0, VAL_NOT_REQ,    1, NON_NEG, VAL_STR, 0 },
 	{ "ONERROR",       mupip_cvtgbl, 0, mup_load_onerror_parm, mup_load_onerror_qual, 0, 0, VAL_NOT_REQ,    1, NON_NEG, VAL_STR, 0 },
 	{ "STDIN",         mupip_cvtgbl, 0, 0,                     0,                     0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static readonly CLI_PARM mup_reorg_ff_parm[] = {
-	{ "FILL_FACTOR", "100", PARM_REQ}
+	{ "FILL_FACTOR", "100", PARM_REQ},
+	{ "", "" }
 };
 
 /* USER_DEFINED_REORG is currently undocumented */
@@ -453,7 +465,7 @@ static  CLI_ENTRY       mup_reorg_qual[] = {
 	{ "TRUNCATE",           mupip_reorg, 0, 0,                 0, 0, 0, VAL_NOT_REQ,    1, NON_NEG, VAL_NUM, 0       },
 	{ "UPGRADE",            mupip_reorg, 0, 0,                 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0       },
 	{ "USER_DEFINED_REORG", mupip_reorg, 0, 0,                 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_STR, 0       },
-	{ 0 }
+	{ "" }
 };
 
 /*
@@ -466,14 +478,14 @@ static CLI_ENTRY mup_size_heuristic_qual[] = {
 	{ "SAMPLES",	0, 0, 0, 0, 0, 0, VAL_REQ,		1, NON_NEG, VAL_NUM, VAL_DCM},
 	{ "SCAN",	0, 0, 0, 0, 0, 0, VAL_DISALLOWED,	0, NON_NEG, VAL_N_A, 0 	},
 	{ "SEED",	0, 0, 0, 0, 0, 0, VAL_REQ,		1, NON_NEG, VAL_NUM, VAL_DCM},
-	{ 0 }
+	{ "" }
 };
 static  CLI_ENTRY	mup_size_qual[] = {
 	{ "ADJACENCY",	0, 0, 0, 0,				0, 0, VAL_REQ,	1, NON_NEG, VAL_NUM, 0	},
 	{ "HEURISTIC",	0, 0, 0, mup_size_heuristic_qual,	0, 0, VAL_REQ,	1, NON_NEG, VAL_STR, 0	},
 	{ "REGION",	0, 0, 0, 0,				0, 0, VAL_REQ,	1, NON_NEG, VAL_STR, 0	},
 	{ "SELECT",	0, 0, 0, 0,				0, 0, VAL_REQ,	1, NON_NEG, VAL_STR, 0	},
-	{ 0 }
+	{ "" }
 };
 
 
@@ -496,12 +508,12 @@ static	CLI_ENTRY	inst_edit_qual[] = {
 	{"SHOW",       0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_STR, 0       },
 	{"SIZE",       0, 0, 0, 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM, VAL_HEX },
 	{"VALUE",      0, 0, 0, 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM, VAL_HEX },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY	inst_freeze_qual[] = {
 	{"COMMENT",          0, 0,                0,                      0, 0,                                  0, VAL_NOT_REQ,    0, NEG,     VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY	gtmsource_qual[] = {
@@ -538,7 +550,7 @@ static CLI_ENTRY	gtmsource_qual[] = {
 	{"UPDNOTOK",             0, 0,                0,                      0, 0,                                  0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{"UPDOK",                0, 0,                0,                      0, 0,                                  0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{"ZEROBACKLOG",          0, 0,                0,                      0, 0,                                  0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static readonly CLI_PARM gtmrecv_timeout_parm[] = {
@@ -548,7 +560,7 @@ static readonly CLI_PARM gtmrecv_timeout_parm[] = {
 
 static CLI_ENTRY gtmrecv_autorlbk_qual[] = {
 	{ "VERBOSE",         0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG,     VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY	gtmrecv_qual[] = {
@@ -576,11 +588,11 @@ static CLI_ENTRY	gtmrecv_qual[] = {
 	{"TLSID",            0, 0, 0,                      0,                     0, 0, VAL_REQ,        0, NON_NEG, VAL_STR, 0 },
 	{"UPDATEONLY",       0, 0, 0,                      0,                     0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{"UPDATERESYNC",     0, 0, 0,                      0,                     0, 0, VAL_NOT_REQ,    0, NON_NEG, VAL_STR, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static CLI_ENTRY	updproc_qual[] = {
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_ENTRY	inst_cre_qual[] = {
@@ -588,7 +600,7 @@ static	CLI_ENTRY	inst_cre_qual[] = {
         {"NOREPLACE",     0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{"QDBRUNDOWN",    0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG,     VAL_N_A, 0 },
         {"SUPPLEMENTARY", 0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_reorg_parm[] = {
@@ -599,7 +611,7 @@ static	CLI_PARM	mup_reorg_parm[] = {
 static	CLI_ENTRY	updhelp_qual[] = {
 	{ "READER", (void(*)(void))updhelper_reader, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{ "WRITER", (void(*)(void))updhelper_writer, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_replicate_parm[] = {
@@ -615,7 +627,7 @@ static	CLI_ENTRY	mup_replicate_qual[] = {
 { "SOURCE",          (void(*)(void))gtmsource, gtmsource_qual, 0, 0, cli_disallow_mupip_replic_source,    0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 { "UPDATEPROC",      (void(*)(void))updproc,   updproc_qual,   0, 0, 0,                                   0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 { "UPDHELPER",       0,                        updhelp_qual,   0, 0, cli_disallow_mupip_replic_updhelper, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
-{ 0 }
+{ "" }
 };
 
 static	CLI_PARM	mup_restore_parm[] = {
@@ -627,7 +639,7 @@ static	CLI_PARM	mup_restore_parm[] = {
 static	CLI_ENTRY	mup_restore_qual[] = {
 	{ "EXTEND",     mupip_restore, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
 	{ "NETTIMEOUT", mupip_restore, 0, 0, 0, 0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_rundown_parm[] = {
@@ -645,7 +657,7 @@ static	CLI_ENTRY	mup_rundown_qual[] = {
 	{ "R",		mupip_rundown,    0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
 	{ "REGION",	mupip_rundown,    0, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0 },
 	{ "RELINKCTL",	mu_rndwn_rlnkctl, 0, 0, 0, 0, 0, VAL_DISALLOWED, 1, 0,       0,       0 },
-	{ 0 }
+	{ "" }
 };
 
 static	CLI_PARM	mup_set_parm[] = {
@@ -654,7 +666,8 @@ static	CLI_PARM	mup_set_parm[] = {
 };
 
 static readonly CLI_PARM mup_set_ftime_parm[] = {
-	{ "FLUSH_TIME", "100", PARM_REQ}
+	{ "FLUSH_TIME", "100", PARM_REQ},
+	{ "", "" }
 };
 
 static	CLI_ENTRY	mup_set_qual[] = {
@@ -689,7 +702,7 @@ static	CLI_ENTRY	mup_set_qual[] = {
 { "STANDALONENOT",        mupip_set, 0, 0,                  0,                    0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A,  0 },
 { "VERSION",              mupip_set, 0, 0,                  mup_set_dbver_qual,   0, 0, VAL_REQ,        1, NON_NEG, VAL_STR,  0 },
 { "WAIT_DISK",            mupip_set, 0, 0,                  0,                    0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM,  0 },
-{ 0 }
+{ "" }
 };
 
 static 	CLI_ENTRY	mup_crypt_qual[] = {
@@ -698,7 +711,7 @@ static 	CLI_ENTRY	mup_crypt_qual[] = {
 { "LENGTH",               mupip_crypt, 0, 0,                  0,                    0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM,  0 },
 { "OFFSET",               mupip_crypt, 0, 0,                  0,                    0, 0, VAL_REQ,        1, NON_NEG, VAL_NUM,  0 },
 { "TYPE",                 mupip_crypt, 0, 0,                  mup_crypt_type_qual,  0, 0, VAL_REQ,        1, NON_NEG, VAL_STR,  0 },
-{ 0 }
+{ "" }
 };
 
 #ifdef GTM_TRIGGER
@@ -708,7 +721,8 @@ static	CLI_PARM	mup_trig_parm[] = {
 };
 
 static readonly CLI_PARM mup_trig_sel_parm[] = {
-	{ "SELECT", "*", PARM_REQ}
+	{ "SELECT", "*", PARM_REQ},
+	{ "", "" }
 };
 
 static 	CLI_ENTRY	mup_trigger_qual[] = {
@@ -716,7 +730,7 @@ static 	CLI_ENTRY	mup_trigger_qual[] = {
 { "SELECT",      mupip_trigger, 0, mup_trig_sel_parm, 0, 0, 0, VAL_NOT_REQ,     1, NON_NEG, VAL_STR,  0 },
 { "TRIGGERFILE", mupip_trigger, 0, 0,                 0, 0, 0, VAL_REQ,         0, NON_NEG, VAL_STR,  0 },
 { "UPGRADE",     mupip_trigger, 0, 0,                 0, 0, 0, VAL_DISALLOWED,  0, NON_NEG, VAL_N_A,  0 },
-{ 0 }
+{ "" }
 };
 #endif
 
@@ -737,7 +751,7 @@ static	CLI_PARM	mup_downgrade_parm[] = {
 
 static	CLI_ENTRY	mup_downgrade_qual[] = {
 { "VERSION",		  mupip_downgrade, 0, 0,	    mup_downgrade_dbver_qual,   0, 0, VAL_REQ,	1, NON_NEG, VAL_STR,  0 },
-{ 0 }
+{ "" }
 };
 
 static	CLI_PARM	mup_rctldump_parm[] = {
@@ -776,6 +790,6 @@ GBLDEF	CLI_ENTRY	mupip_cmd_ary[] = {
 { "TRIGGER",	mupip_trigger,	mup_trigger_qual,	mup_trig_parm,		0, cli_disallow_mupip_trigger,	0, VAL_DISALLOWED, 1, 0, 0, 0 },
 #endif
 { "UPGRADE",	mupip_upgrade, 0,			mup_upgrade_parm,	0, 0,				0, VAL_DISALLOWED, 1, 0, 0, 0 },
-{ 0 }
+{ "" }
 };
 
diff --git a/sr_unix/mupip_rundown.c b/sr_unix/mupip_rundown.c
index e57ca38..4e286af 100755
--- a/sr_unix/mupip_rundown.c
+++ b/sr_unix/mupip_rundown.c
@@ -146,12 +146,15 @@ void mupip_rundown(void)
 					 * were other processes still attached to it) but got an error while trying to grab the
 					 * access control semaphore for the receive pool (because a receiver server was still
 					 * running) and because anticipatory_freeze_available is TRUE, we did not detach from
-					 * the journal pool inside "mu_rndwn_repl_instance". We need to do the detach here.
+					 * the journal pool inside "mu_rndwn_repl_instance". We need to do the detach here,
+					 * except if IFOE is configured, in which case we need the journal pool attached
+					 * so that we can check for instance freeze in database rundown.
+					 * In that case, the detach will happen automatically when the process terminates.
 					 * No need to do any instance file cleanup since there is nothing to rundown there
 					 * from either the journal pool or receive pool.
 					 */
 					assert((NULL == jnlpool_ctl) || anticipatory_freeze_available);
-					if (NULL != jnlpool_ctl)
+					if ((NULL != jnlpool_ctl) && !anticipatory_freeze_available)
 					{
 						shmid = jnlpool.repl_inst_filehdr->jnlpool_shmid;
 						JNLPOOL_SHMDT(status, save_errno);
@@ -253,7 +256,7 @@ void mupip_rundown(void)
 				*ipcs_ptr = '\0';
 				if (0 == shm_buf.shm_nattch)
 				{	/* No one else attached and no new process can attach (as we hold the ftok and access
-					 * control semaphore on the journal pool)
+					 * control semaphore on the journal pool).
 					 */
 					if (SS_NORMAL != shm_rmid(shmid))
 					{
@@ -291,44 +294,6 @@ void mupip_rundown(void)
 								       ERR_SEMREMOVED, 1, semid);
 						}
 						repl_instance.crash = FALSE; /* No more semaphore IDs. Reset crash bit */
-						if (repl_instance.ftok_counter_halted)
-						{	/* recvpool has already been rundown in "mu_rndwn_repl_instance" above */
-							assert(INVALID_SEMID == repl_instance.recvpool_semid);
-							assert(INVALID_SHMID == repl_instance.recvpool_shmid);
-							/* ftok counter is not guaranteed to be at 1. So fix it that way the
-							 * "ftok_sem_release" done later WILL remove the ftok semaphore.
-							 */
-							semarg.val = 0;
-							if (-1 == semctl(udi->ftok_semid, DB_COUNTER_SEM, SETVAL, semarg))
-							{
-								save_errno = errno;
-								gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-									ERR_SYSCALL, 5, RTS_ERROR_LITERAL("semctl(SETVAL)"),
-									CALLFROM, save_errno);
-								/* In case not able to set counter to 1, proceed with rundown
-								 * without deleting the ftok semaphore (so keep
-								 * counter_ftok_incremented unchanged)
-								 */
-							} else
-							{
-								save_errno = do_semop(udi->ftok_semid, DB_COUNTER_SEM,
-												DB_COUNTER_SEM_INCR, SEM_UNDO);
-								if (save_errno)
-								{
-									gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(8)
-										ERR_SYSCALL, 5, RTS_ERROR_LITERAL("do_semop()"),
-										CALLFROM, save_errno);
-									/* In case not able to set counter to 1, proceed with
-									 * rundown without deleting the ftok semaphore (so keep
-									 * counter_ftok_incremented at FALSE)
-									 */
-								} else
-								{
-									udi->counter_ftok_incremented = TRUE;
-									repl_instance.ftok_counter_halted = FALSE;
-								}
-							}
-						}
 					}
 				} else
 				{	/* REPLACCESSSEM is issued from within mu_replpool_release_sem */
diff --git a/sr_unix/pinentry-gtm.sh b/sr_unix/pinentry-gtm.sh
index c4b2592..64a3064 100755
--- a/sr_unix/pinentry-gtm.sh
+++ b/sr_unix/pinentry-gtm.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 #################################################################
 #                                                               #
-# Copyright (c) 2010-2015 Fidelity National Information 	#
+# Copyright (c) 2010-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #                                                               #
 #       This source code contains the intellectual property     #
@@ -33,23 +33,30 @@ if [ -z "$gtm_dist" ] ; then
 fi
 
 if [ -n "$gtm_passwd" -a -x "$gtm_dist/mumps" ] ; then
+	pinentry=PINENTRY
 	# Password and MUMPS exists, perform some extended setup checks
 	if [ -z "$gtmroutines" ] ; then
-		# $gtmroutines is not set in the environment, attempt to pick it up from libgtmutil.so, $gtm_dist, $gtm_dist/plugin
+		utfodir=""
+		if [ "`echo $gtm_chset | tr utf UTF`" = "UTF-8" -a -x "$dir/../../utf8/mumps" ] ; then
+			utfodir="/utf8"
+		fi
+		# $gtmroutines is not set in the environment, attempt to pick it up from libgtmutil.so, $gtm_dist, $gtm_dist/plugin/o
 		if [ -e "$gtm_dist/libgtmutil.so" ] ; then
 			export gtmroutines="$gtm_dist/libgtmutil.so"
 		elif [ -e "$gtm_dist/PINENTRY.o" ] ; then
 			export gtmroutines="$gtm_dist"
+		elif [ -e "$gtm_dist/plugin/o${utfodir}/pinentry.o" ] ; then
+			pinentry=pinentry
+			export gtmroutines="$gtm_dist $gtm_dist/plugin/o${utfodir}"
 		fi
 	fi
 
 	# Validate gtmroutines. Redirect output or it will affect the password protocol
-	PINENTRY=PINENTRY
-	printf 'zhalt (0=$zlength($text(pinentry^PINENTRY)))' | $gtm_dist/mumps -direct >> /dev/null 2>&1
+	printf 'zhalt (0=$zlength($text(pinentry^'$pinentry')))' | gtm_local_collate= LD_PRELOAD= gtm_trace_gbl_name= gtmdbglvl= gtmcompile= $gtm_dist/mumps -direct >> /dev/null 2>&1
 	needsprivroutines=$?
 
 	if [ 0 -ne "${needsprivroutines}" ] ; then
-		PINENTRY=pinentry
+		pinentry=pinentry
 		# Need to create a temporary directory for object routines
 		if [ -x "`which mktemp 2>/dev/null`" ] ; then
 			tmpdir=`mktemp -d`
@@ -58,10 +65,10 @@ if [ -n "$gtm_passwd" -a -x "$gtm_dist/mumps" ] ; then
 		fi
 		trapstr="rm -rf $tmpdir"
 		trap "$trapstr" HUP INT QUIT TERM TRAP
-		export gtmroutines="$tmpdir($dir)"
+		export gtmroutines="$tmpdir($dir $gtm_dist/plugin/gtmcrypt)"
 	fi
 
-	gtm_local_collate= gtm_trace_gbl_name= gtmdbglvl= gtmcompile= $gtm_dist/mumps -run $PINENTRY
+	gtm_local_collate= LD_PRELOAD= gtm_trace_gbl_name= gtmdbglvl= gtmcompile= $gtm_dist/mumps -run $pinentry
 	punt=$?
 	if [ -d "$tmpdir" ] ; then rm -rf "$tmpdir" ; fi
 fi
diff --git a/sr_unix/recvpool_init.c b/sr_unix/recvpool_init.c
index f829e25..57a0b4e 100755
--- a/sr_unix/recvpool_init.c
+++ b/sr_unix/recvpool_init.c
@@ -48,7 +48,6 @@
 #include "gtmsource.h"
 #include "repl_instance.h"
 #include "util.h"		/* For OUT_BUFF_SIZE */
-#include "repl_inst_ftok_counter_halted.h"
 
 GBLREF	jnlpool_addrs		jnlpool;
 GBLREF	recvpool_addrs		recvpool;
@@ -79,7 +78,7 @@ error_def(ERR_SYSCALL);
 
 void recvpool_init(recvpool_user pool_user, boolean_t gtmrecv_startup)
 {
-	boolean_t	shm_created, new_ipc = FALSE, ftok_counter_halted = FALSE, counter_halted_by_me;
+	boolean_t	shm_created, new_ipc = FALSE, ftok_counter_halted;
 	char		instfilename[MAX_FN_LEN + 1];
         char           	machine_name[MAX_MCNAMELEN];
 	char		scndry_msg[OUT_BUFF_SIZE];
@@ -136,8 +135,13 @@ void recvpool_init(recvpool_user pool_user, boolean_t gtmrecv_startup)
 		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(1) ERR_RECVPOOLSETUP);
 	save_errno = errno;
 	repl_inst_read(instfilename, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
-	CHECK_IF_REPL_INST_FTOK_COUNTER_HALTED(repl_instance, udi, ftok_counter_halted, counter_halted_by_me,
-							ERR_RECVPOOLSETUP, recvpool.recvpool_dummy_reg, save_errno);
+	/* At this point, we might not have yet attached to the jnlpool so we do not know if the ftok counter got halted
+	 * previously or not. So be safe and assume it has halted in case the jnlpool_shmid indicates it is up and running.
+	 * This means we might not delete the ftok semaphore in some cases of error codepaths but it should be rare
+	 * and is better than incorrectly deleting it while live processes are concurrently using it.
+	 */
+	assert(udi->counter_ftok_incremented == !ftok_counter_halted);
+	udi->counter_ftok_incremented = udi->counter_ftok_incremented && (INVALID_SHMID == repl_instance.jnlpool_shmid);
 	if (INVALID_SEMID == repl_instance.recvpool_semid)
 	{
 		assertpro(INVALID_SHMID == repl_instance.recvpool_shmid);
@@ -147,7 +151,7 @@ void recvpool_init(recvpool_user pool_user, boolean_t gtmrecv_startup)
 			rts_error_csa(CSA_ARG(NULL) VARLSTCNT(4) ERR_NORECVPOOL, 2, full_len, udi->fn);
 		}
 		new_ipc = TRUE;
-		assert(NUM_SRC_SEMS == NUM_RECV_SEMS);
+		assert((int)NUM_SRC_SEMS == (int)NUM_RECV_SEMS);
 		if (INVALID_SEMID == (udi->semid = init_sem_set_recvr(IPC_PRIVATE, NUM_RECV_SEMS, RWDALL | IPC_CREAT)))
 		{
 			ftok_sem_release(recvpool.recvpool_dummy_reg, udi->counter_ftok_incremented, TRUE);
@@ -433,8 +437,6 @@ void recvpool_init(recvpool_user pool_user, boolean_t gtmrecv_startup)
 		repl_inst_flush_filehdr();
 		rel_lock(jnlpool.jnlpool_dummy_reg);
 	}
-	if (counter_halted_by_me)
-		repl_inst_ftok_counter_halted(udi, FILE_TYPE_REPLINST, &repl_instance);
 	/* Release control lockout and ftok semaphore now that the receive pool has been attached.
 	 * The only exception is receiver server shutdown command. In this case, all these locks will be released
 	 * once the receiver server shutdown is actually complete. Note that if -UPDATEONLY or -HELPERS is specified
diff --git a/sr_unix/repl_inst_dump.c b/sr_unix/repl_inst_dump.c
index d66ed60..4ee5d4d 100755
--- a/sr_unix/repl_inst_dump.c
+++ b/sr_unix/repl_inst_dump.c
@@ -697,6 +697,9 @@ void	repl_inst_dump_jnlpoolctl(jnlpool_ctl_ptr_t jnlpool_ctl)
 		else
 			util_out_print( PREFIX_JNLPOOLCTL "Freeze Comment: !AZ", TRUE, jnlpool_ctl->freeze_comment);
 	}
+	PRINT_OFFSET_PREFIX(offsetof(jnlpool_ctl_struct, ftok_counter_halted), SIZEOF(jnlpool_ctl->ftok_counter_halted));
+	PRINT_BOOLEAN( PREFIX_JNLPOOLCTL  "FTOK Counter Halted                         !R10AZ",
+									jnlpool_ctl->ftok_counter_halted, -1);
 
 }
 
diff --git a/sr_unix/repl_inst_ftok_counter_halted.c b/sr_unix/repl_inst_ftok_counter_halted.c
index a6c5359..3150fcf 100644
--- a/sr_unix/repl_inst_ftok_counter_halted.c
+++ b/sr_unix/repl_inst_ftok_counter_halted.c
@@ -12,6 +12,8 @@
 
 #include "mdef.h"
 
+#include <errno.h>
+
 #include "gdsroot.h"
 #include "gdsblk.h"
 #include "gtm_facility.h"
@@ -22,33 +24,37 @@
 #include "repl_instance.h"
 #include "repl_msg.h"
 #include "gtmsource.h"
+#include "repl_sem.h"
+#include "ftok_sems.h"
 #include "repl_inst_ftok_counter_halted.h"
 
 GBLREF	jnlpool_addrs		jnlpool;
 
+error_def(ERR_JNLPOOLSETUP);
 error_def(ERR_NOMORESEMCNT);
+error_def(ERR_TEXT);
 
-/* This function sets the "ftok_counter_halted" field to TRUE in the instance file header and flushes it to disk.
- * Caller could be attached to the journal pool or not. If not, update file header directly. If yes, go through locks.
+/* This function sets the "ftok_counter_halted" field to TRUE in the journal pool.
+ * Caller must be attached to the journal pool and have already gotten the ftok lock on the instance file.
  */
-void	repl_inst_ftok_counter_halted(unix_db_info *udi, char *file_type, repl_inst_hdr *repl_instance)
+void	repl_inst_ftok_counter_halted(unix_db_info *udi)
 {
 	assert(udi->grabbed_ftok_sem);	/* this ensures we have a lock before we modify the instance file header */
-	if (NULL != jnlpool.repl_inst_filehdr)
+	assert(NULL != jnlpool.jnlpool_ctl);
+	grab_lock(jnlpool.jnlpool_dummy_reg, TRUE, ASSERT_NO_ONLINE_ROLLBACK);
+	assert(!jnlpool.jnlpool_ctl->ftok_counter_halted);
+	if (!jnlpool.repl_inst_filehdr->qdbrundown)
 	{
-		assert(!jnlpool.repl_inst_filehdr->ftok_counter_halted);
-		jnlpool.repl_inst_filehdr->ftok_counter_halted = TRUE;
-		grab_lock(jnlpool.jnlpool_dummy_reg, TRUE, ASSERT_NO_ONLINE_ROLLBACK);
-		repl_inst_flush_filehdr();
 		rel_lock(jnlpool.jnlpool_dummy_reg);
-	} else
-	{
-		assert(!repl_instance->ftok_counter_halted);
-		repl_instance->ftok_counter_halted = TRUE;
-		repl_inst_write(udi->fn, (off_t)0, (sm_uc_ptr_t)repl_instance, SIZEOF(repl_inst_hdr));
+		if (udi->grabbed_access_sem)
+			rel_sem_immediate(SOURCE, JNL_POOL_ACCESS_SEM);
+		udi->grabbed_access_sem = FALSE;
+		udi->counter_acc_incremented = FALSE;
+		ftok_sem_release(jnlpool.jnlpool_dummy_reg, udi->counter_ftok_incremented, TRUE);
+		rts_error_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_JNLPOOLSETUP, 0,
+			ERR_TEXT, 2, RTS_ERROR_LITERAL("Error incrementing the ftok semaphore counter"), ERANGE);
 	}
-	/* Ignore any errors while flushing the "halted" value to the file header. The only consequence is other processes
-	 * will incur a performance overhead trying to unnecessarily bump the semaphore counter when it is already ERANGE.
-	 */
-	send_msg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_NOMORESEMCNT, 5, LEN_AND_LIT("ftok"), file_type, LEN_AND_STR(udi->fn));
+	jnlpool.jnlpool_ctl->ftok_counter_halted = TRUE;
+	rel_lock(jnlpool.jnlpool_dummy_reg);
+	send_msg_csa(CSA_ARG(NULL) VARLSTCNT(7) ERR_NOMORESEMCNT, 5, LEN_AND_LIT("ftok"), FILE_TYPE_REPLINST, LEN_AND_STR(udi->fn));
 }
diff --git a/sr_unix/repl_inst_ftok_counter_halted.h b/sr_unix/repl_inst_ftok_counter_halted.h
index cb7ac6d..87e5412 100644
--- a/sr_unix/repl_inst_ftok_counter_halted.h
+++ b/sr_unix/repl_inst_ftok_counter_halted.h
@@ -13,32 +13,6 @@
 #ifndef REPL_INST_FTOK_COUNTER_HALTED_INCLUDED
 #define REPL_INST_FTOK_COUNTER_HALTED_INCLUDED
 
-#define	CHECK_IF_REPL_INST_FTOK_COUNTER_HALTED(INST_HDR, UDI, COUNTER_HALTED, HALTED_BY_ME, SETUP_ERROR, POOLREG, SAVE_ERRNO)	\
-{																\
-	if (INST_HDR.ftok_counter_halted)											\
-	{	/* If counter is halted, we should never remove ftok semaphore as part of a later "ftok_sem_release" call.	\
-		 * So make sure "counter_ftok_incremented" is set to FALSE in case it was TRUE after the "ftok_sem_get" call.	\
-		 */														\
-		UDI->counter_ftok_incremented = FALSE;										\
-		HALTED_BY_ME = FALSE;												\
-	} else if (COUNTER_HALTED)												\
-	{															\
-		assert(!UDI->counter_ftok_incremented);										\
-		HALTED_BY_ME = TRUE;												\
-		if (!INST_HDR.qdbrundown)											\
-		{														\
-			assert(ERANGE == SAVE_ERRNO);										\
-			ftok_sem_release(POOLREG, FALSE, TRUE);									\
-			rts_error_csa(CSA_ARG(NULL) VARLSTCNT(7) SETUP_ERROR, 0, ERR_TEXT, 2,					\
-				RTS_ERROR_LITERAL("Error incrementing the ftok semaphore counter"), SAVE_ERRNO);		\
-		}														\
-	} else															\
-	{															\
-		HALTED_BY_ME = FALSE;												\
-		assert(UDI->counter_ftok_incremented);										\
-	}															\
-}
-
-void	repl_inst_ftok_counter_halted(unix_db_info *udi, char *file_type, repl_inst_hdr *repl_instance);
+void	repl_inst_ftok_counter_halted(unix_db_info *udi);
 
 #endif /* REPL_INST_FTOK_COUNTER_HALTED_INCLUDED */
diff --git a/sr_unix/repl_instance.c b/sr_unix/repl_instance.c
index 8408701..df68406 100755
--- a/sr_unix/repl_instance.c
+++ b/sr_unix/repl_instance.c
@@ -376,7 +376,7 @@ void	repl_inst_sync(char *fn)
  * Return Value:
  *	None
  */
-void repl_inst_jnlpool_reset(boolean_t clear_ftok_halted)
+void repl_inst_jnlpool_reset(void)
 {
 	repl_inst_hdr	repl_instance;
 	unix_db_info	*udi;
@@ -385,11 +385,6 @@ void repl_inst_jnlpool_reset(boolean_t clear_ftok_halted)
 	assert(udi->grabbed_ftok_sem);
 	if (NULL != jnlpool.repl_inst_filehdr)
 	{	/* If journal pool exists, reset sem/shm ids in the file header in the journal pool and flush changes to disk */
-		if (clear_ftok_halted)
-		{
-			assert(INVALID_SHMID == jnlpool.repl_inst_filehdr->recvpool_shmid);
-			jnlpool.repl_inst_filehdr->ftok_counter_halted = FALSE;
-		}
 		jnlpool.repl_inst_filehdr->jnlpool_semid = INVALID_SEMID;
 		jnlpool.repl_inst_filehdr->jnlpool_shmid = INVALID_SHMID;
 		jnlpool.repl_inst_filehdr->jnlpool_semid_ctime = 0;
@@ -398,11 +393,6 @@ void repl_inst_jnlpool_reset(boolean_t clear_ftok_halted)
 	} else
 	{	/* If journal pool does not exist, reset sem/shm ids directly in the replication instance file header on disk */
 		repl_inst_read((char *)udi->fn, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
-		if (clear_ftok_halted)
-		{
-			assert(INVALID_SHMID == repl_instance.recvpool_shmid);
-			repl_instance.ftok_counter_halted = FALSE;
-		}
 		repl_instance.jnlpool_semid = INVALID_SEMID;
 		repl_instance.jnlpool_shmid = INVALID_SHMID;
 		repl_instance.jnlpool_semid_ctime = 0;
@@ -418,7 +408,7 @@ void repl_inst_jnlpool_reset(boolean_t clear_ftok_halted)
  * Return Value:
  *	None
  */
-void repl_inst_recvpool_reset(boolean_t clear_ftok_halted)
+void repl_inst_recvpool_reset(void)
 {
 	repl_inst_hdr	repl_instance;
 	unix_db_info	*udi;
@@ -427,11 +417,6 @@ void repl_inst_recvpool_reset(boolean_t clear_ftok_halted)
 	assert(udi->grabbed_ftok_sem);
 	if (NULL != jnlpool.repl_inst_filehdr)
 	{	/* If journal pool exists, reset sem/shm ids in the file header in the journal pool and flush changes to disk */
-		if (clear_ftok_halted)
-		{
-			assert(INVALID_SHMID == jnlpool.repl_inst_filehdr->jnlpool_shmid);
-			jnlpool.repl_inst_filehdr->ftok_counter_halted = FALSE;
-		}
 		jnlpool.repl_inst_filehdr->recvpool_semid = INVALID_SEMID;
 		jnlpool.repl_inst_filehdr->recvpool_shmid = INVALID_SHMID;
 		jnlpool.repl_inst_filehdr->recvpool_semid_ctime = 0;
@@ -440,11 +425,6 @@ void repl_inst_recvpool_reset(boolean_t clear_ftok_halted)
 	} else
 	{	/* If journal pool does not exist, reset sem/shm ids directly in the replication instance file header on disk */
 		repl_inst_read((char *)udi->fn, (off_t)0, (sm_uc_ptr_t)&repl_instance, SIZEOF(repl_inst_hdr));
-		if (clear_ftok_halted)
-		{
-			assert(INVALID_SHMID == repl_instance.jnlpool_shmid);
-			repl_instance.ftok_counter_halted = FALSE;
-		}
 		repl_instance.recvpool_semid = INVALID_SEMID;
 		repl_instance.recvpool_shmid = INVALID_SHMID;
 		repl_instance.recvpool_semid_ctime = 0;
@@ -1047,7 +1027,6 @@ seq_num	repl_inst_histinfo_truncate(seq_num rollback_seqno)
 		inst_hdr->recvpool_shmid = INVALID_SHMID;	/* Just in case it is not already reset */
 		inst_hdr->recvpool_semid_ctime = 0;
 		inst_hdr->recvpool_shmid_ctime = 0;
-		inst_hdr->ftok_counter_halted = FALSE;
 	} /* else for rollback, we reset the IPC fields in mu_replpool_release_sem() and crash in mur_close_files */
 	/* Flush all file header changes in jnlpool.repl_inst_filehdr to disk */
 	repl_inst_flush_filehdr();
@@ -1173,7 +1152,6 @@ void	repl_inst_flush_jnlpool(boolean_t reset_replpool_fields, boolean_t reset_cr
 			jnlpool.repl_inst_filehdr->jnlpool_shmid = INVALID_SHMID;
 			jnlpool.repl_inst_filehdr->recvpool_semid = INVALID_SEMID;	/* Just in case it is not already reset */
 			jnlpool.repl_inst_filehdr->recvpool_shmid = INVALID_SHMID;	/* Just in case it is not already reset */
-			jnlpool.repl_inst_filehdr->ftok_counter_halted = FALSE;
 		}
 	}
 	/* If the source server that created the journal pool died before it was completely initialized in "gtmsource_seqno_init"
diff --git a/sr_unix/repl_instance.h b/sr_unix/repl_instance.h
index f32caec..6f909c7 100755
--- a/sr_unix/repl_instance.h
+++ b/sr_unix/repl_instance.h
@@ -123,7 +123,7 @@ typedef struct repl_inst_hdr_struct
 	boolean_t	file_corrupt;		/* Set to TRUE by online rollback at start up. Set to FALSE when online rollback
 						 * completes successfully.
 						 */
-	boolean_t	ftok_counter_halted;	/* Whether the ftok counter semaphore overflowed the 32Ki limit */
+	boolean_t	filler_ftok_counter_halted;/* Used only in V6.3-000. Kept as a filler to be safe */
 	boolean_t	qdbrundown;		/* TRUE if -QDBRUNDOWN was specified at time of instance file creation.
 						 * FALSE otherwise.
 						 */
@@ -208,17 +208,14 @@ typedef enum {
 	issue_gtm_putmsg
 } instname_act;
 
-#define	CLEAR_FTOK_HALTED_FALSE	FALSE
-#define	CLEAR_FTOK_HALTED_TRUE	TRUE
-
 boolean_t	repl_inst_get_name(char *, unsigned int *, unsigned int, instname_act error_action);
 void		repl_inst_create(void);
 void		repl_inst_edit(void);
 void		repl_inst_read(char *fn, off_t offset, sm_uc_ptr_t buff, size_t buflen);
 void		repl_inst_write(char *fn, off_t offset, sm_uc_ptr_t buff, size_t buflen);
 void		repl_inst_sync(char *fn);
-void		repl_inst_jnlpool_reset(boolean_t clear_ftok_halted);
-void		repl_inst_recvpool_reset(boolean_t clear_ftok_halted);
+void		repl_inst_jnlpool_reset(void);
+void		repl_inst_recvpool_reset(void);
 void		repl_inst_ftok_sem_lock(void);
 void		repl_inst_ftok_sem_release(void);
 int4		repl_inst_histinfo_get(int4 index, repl_histinfo *histinfo);
diff --git a/sr_unix/repl_ipc_cleanup.c b/sr_unix/repl_ipc_cleanup.c
index a9839cd..d3650bb 100755
--- a/sr_unix/repl_ipc_cleanup.c
+++ b/sr_unix/repl_ipc_cleanup.c
@@ -1,6 +1,7 @@
 /****************************************************************
  *								*
- *	Copyright 2001, 2013 Fidelity Information Services, Inc	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
+ * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
  *	of its copyright holder(s), and is made available	*
@@ -39,11 +40,11 @@
 #include "wbox_test_init.h"
 #include "have_crit.h"
 #include "gtm_ipc.h"
+#include "anticipatory_freeze.h"
 
 GBLREF	jnlpool_addrs		jnlpool;
 GBLREF	boolean_t		pool_init;
 GBLREF	jnlpool_ctl_ptr_t	jnlpool_ctl;
-GBLREF	int			gtmsource_srv_count;
 GBLREF	int			gtmrecv_srv_count;
 
 GBLREF	recvpool_addrs		recvpool;
@@ -55,7 +56,9 @@ int	gtmsource_ipc_cleanup(boolean_t auto_shutdown, int *exit_status, int4 *num_s
 	int		status, detach_status, remove_status, semval, save_errno;
 	unix_db_info	*udi;
 	struct shmid_ds	shm_buf;
+	DCL_THREADGBL_ACCESS;
 
+	SETUP_THREADGBL_ACCESS;
 	/* Attempt cleaning up the IPCs */
 	attempt_ipc_cleanup = TRUE;
 	*num_src_servers_running = 0;
@@ -79,6 +82,12 @@ int	gtmsource_ipc_cleanup(boolean_t auto_shutdown, int *exit_status, int4 *num_s
 			*exit_status = ABNORMAL_SHUTDOWN;
 		}
 	}
+	/* If the instance is frozen, there is no point checking if we are the last user, since we need to keep the journal pool
+	 * around, and we will need the journal pool attached so that we can check for instance freeze in database rundown.
+	 * In that case, the detach will happen automatically when the process terminates.
+	 */
+	if (IS_REPL_INST_FROZEN)
+		return FALSE;
 	udi = (unix_db_info *)FILE_INFO(jnlpool.jnlpool_dummy_reg);
 	assert(INVALID_SHMID != udi->shmid);
 	if (attempt_ipc_cleanup)
@@ -106,6 +115,12 @@ int	gtmsource_ipc_cleanup(boolean_t auto_shutdown, int *exit_status, int4 *num_s
 			repl_inst_flush_jnlpool(TRUE, TRUE);
 		}
 	}
+	/* We need to keep the journal pool attached when IFOE is configured so that we can check for instance freeze
+	 * in database rundown.
+	 * However, if we are about to cleanup ipcs, it doesn't matter, so we are better off cleaning up.
+	 */
+	if (INST_FREEZE_ON_ERROR_POLICY && !(attempt_ipc_cleanup && (INVALID_SHMID != udi->shmid)))
+		return FALSE;
 	/* detach from shared memory irrespective of whether we need to cleanup ipcs or not */
 	JNLPOOL_SHMDT(detach_status, save_errno);
 	if (0 == detach_status)
@@ -182,7 +197,7 @@ int	gtmrecv_ipc_cleanup(boolean_t auto_shutdown, int *exit_status)
 	if (!i_am_the_last_user)
 	{
 		if (status < 0)
-			repl_log(stderr, TRUE, TRUE, "Error in jnlpool shmctl : %s\n", STRERROR(errno));
+			repl_log(stderr, TRUE, TRUE, "Error in recvpool shmctl : %s\n", STRERROR(errno));
 		else
 			repl_log(stderr, TRUE, TRUE,
 				"Not deleting receive pool ipcs. %d processes still attached to receive pool\n",
diff --git a/sr_unix/repl_sem.c b/sr_unix/repl_sem.c
index 0b1ae79..efdb093 100755
--- a/sr_unix/repl_sem.c
+++ b/sr_unix/repl_sem.c
@@ -103,7 +103,7 @@ int grab_sem(int set_index, int sem_num)
 {
 	int rc;
 
-	assert(NUM_SRC_SEMS == NUM_RECV_SEMS);	/* holds_sem[][] relies on this as it uses NUM_SRC_SEMS in the array definition */
+	assert((int)NUM_SRC_SEMS == (int)NUM_RECV_SEMS); /* holds_sem[][] relies on this as it uses NUM_SRC_SEMS for array bounds */
 	assert(!holds_sem[set_index][sem_num]);
 	ASSERT_SET_INDEX;
 	sop[0].sem_op  = 0; /* Wait for 0 */
diff --git a/sr_unix/runall.csh b/sr_unix/runall.csh
index 72154d4..742add7 100755
--- a/sr_unix/runall.csh
+++ b/sr_unix/runall.csh
@@ -1,7 +1,7 @@
 #!/usr/local/bin/tcsh -f
 #################################################################
 #								#
-# Copyright (c) 2001-2015 Fidelity National Information 	#
+# Copyright (c) 2001-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
@@ -66,7 +66,7 @@ endif
 
 source $gtm_root/$gtm_verno/tools/gtm_cshrc.csh
 
-\unalias unalias
+\unalias unalias >& /dev/null  # TCSH does not let you alias unalias
 unalias cd chown rm touch echo grep sed awk sort cat mv ls
 
 if ($?RUNALL_VERSION == 0) then
diff --git a/sr_unix/setactive.csh b/sr_unix/setactive.csh
index 7045c16..cb339fb 100755
--- a/sr_unix/setactive.csh
+++ b/sr_unix/setactive.csh
@@ -1,6 +1,7 @@
 #################################################################
 #								#
-#	Copyright 2001, 2009 Fidelity Information Services, Inc	#
+# Copyright (c) 2001-2016 Fidelity National Information		#
+# Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
 #	of its copyright holder(s), and is made available	#
@@ -64,14 +65,6 @@ $shell -f $gtm_tools/setactive1.csh "$setactive_p1" "$setactive_p2" $setactive_i
 set setactive_status = $status
 if ($setactive_status) @ exit_status++
 
-# This is needed to ensure the current values of these environment variables don't persist past the
-# invocation of 'setactive_setenv' and 'gtmsrc.csh' in case the version to which we are changing
-# does not contain appropriate code to reset them (prior to V3.2).  This comment and the code following
-# it can (and probably should) be removed once we remove all V3.1 versions from the system.
-unsetenv	gtm_inc_list
-unsetenv	gtm_pct_list
-unsetenv	gtm_src_list
-unsetenv	gtm_tools_list
 unsetenv	gtm_log
 unsetenv	gtm_map
 unsetenv	gtm_obj
diff --git a/sr_unix/setactive1.csh b/sr_unix/setactive1.csh
index 0204206..85e82ad 100755
--- a/sr_unix/setactive1.csh
+++ b/sr_unix/setactive1.csh
@@ -1,6 +1,7 @@
 #################################################################
 #								#
-#	Copyright 2001, 2005 Fidelity Information Services, Inc	#
+# Copyright (c) 2001-2016 Fidelity National Information		#
+# Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
 #	of its copyright holder(s), and is made available	#
@@ -313,6 +314,20 @@ echo "setenv gtm_lint	$gtm_exe/lint"	>> $4
 echo "setenv gtm_map	$gtm_exe/map"	>> $4
 echo "setenv gtm_obj	$gtm_exe/obj"	>> $4
 
+# Strip off the trailing $gtm_dist/plugin/o($gtm_dist/plugin/r). This is necessary for prior version testing
+if ($?gtmroutines) then
+	set rtns = ($gtmroutines:x)
+	if (0 < $#rtns) then
+		@ rtncnt = $#rtns
+		if ("$rtns[$#rtns]" =~ "*/plugin/o*(*/plugin/r)") then
+			@ rtncnt--
+			echo "setenv gtmroutines '$rtns[-$rtncnt]' " >> $4
+		endif
+		unset rtncnt
+	endif
+	unset rtns
+endif
+
 FINI:
 
 exit $setactive_status
diff --git a/sr_unix/trigger_cmd.c b/sr_unix/trigger_cmd.c
index 95c9221..76b720f 100644
--- a/sr_unix/trigger_cmd.c
+++ b/sr_unix/trigger_cmd.c
@@ -20,14 +20,14 @@ static CLI_ENTRY mup_trig_cmd_qual[] = {
 	{ "ZTKILL",           0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{ "ZTRIGGER",         0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
 	{ "ZWITHDRAW",        0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 
 static CLI_ENTRY mup_trig_option_qual[] = {
 	{ "CONSISTENCYCHECK", 0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG,     VAL_N_A, 0 },
 	{ "ISOLATION",        0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NEG,     VAL_N_A, 0 },
-	{ 0 }
+	{ "" }
 };
 
 static 	CLI_ENTRY	triggerfile_ary[] = {
@@ -38,10 +38,10 @@ static 	CLI_ENTRY	triggerfile_ary[] = {
 { "PIECES",               0, 0, 0, 0,                    0,                    0, VAL_REQ,	  0, NON_NEG, VAL_STR,  0 },
 { "XECUTE",               0, 0, 0, 0,                    0,                    0, VAL_REQ,	  0, NON_NEG, VAL_STR,  0 },
 { "ZDELIM",               0, 0, 0, 0,                    0,                    0, VAL_REQ,	  0, NON_NEG, VAL_STR,  0 },
-{ 0 }
+{ "" }
 };
 
 GBLDEF 	CLI_ENTRY	trigger_cmd_ary[] = {
 { "TRIGGER",   0, 0,   0,      triggerfile_ary, 0,   0, VAL_DISALLOWED, 0, 0, 0, 0 },
-{ 0 }
+{ "" }
 };
diff --git a/sr_unix/versions.csh b/sr_unix/versions.csh
index 8b9fc8d..c75b8ac 100755
--- a/sr_unix/versions.csh
+++ b/sr_unix/versions.csh
@@ -1,6 +1,6 @@
 #################################################################
 #								#
-# Copyright (c) 2001-2015 Fidelity National Information		#
+# Copyright (c) 2001-2016 Fidelity National Information		#
 # Services, Inc. and/or its subsidiaries. All rights reserved.	#
 #								#
 #	This source code contains the intellectual property	#
@@ -20,6 +20,6 @@
 ############################################
 
 #	gtm_curpro is the current production version
-setenv	gtm_curpro	"V62002A"
+setenv	gtm_curpro	"V63000"
 #	gtm_verno is the current production version
 setenv	gtm_verno	$gtm_curpro
diff --git a/sr_unix/wait_for_disk_space.c b/sr_unix/wait_for_disk_space.c
index 93d9e6e..6cd59af 100644
--- a/sr_unix/wait_for_disk_space.c
+++ b/sr_unix/wait_for_disk_space.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2012-2015 Fidelity National Information	*
+ * Copyright (c) 2012-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -116,8 +116,7 @@ void wait_for_disk_space(sgmnt_addrs *csa, char *fn, int fd, off_t offset, char
 			send_msg_csa(CSA_ARG(csa) VARLSTCNT(4) ERR_DSKNOSPCAVAIL, 2, fn_len, fn);
 		} else if (exit_state != 0)
 		{
-			send_msg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
-			gtm_putmsg_csa(CSA_ARG(NULL) VARLSTCNT(1) forced_exit_err);
+			forced_exit_err_display();
 			EXIT(-exi_condition);
 		}
 		/* Sleep for a while before retrying the write. Do not use "hiber_start" as that
diff --git a/sr_unix/wcs_wtstart.c b/sr_unix/wcs_wtstart.c
index a729f7d..389fe2d 100755
--- a/sr_unix/wcs_wtstart.c
+++ b/sr_unix/wcs_wtstart.c
@@ -363,7 +363,7 @@ int4	wcs_wtstart(gd_region *region, int4 writes)
 									   should always be > 0 */
 				if (IS_GDS_BLK_DOWNGRADE_NEEDED(csr->ondsk_blkver))
 				{	/* Need to downgrade/reformat this block back to a previous format. */
-					assert(0 == reformat_buffer_in_use);
+					assert((0 == reformat_buffer_in_use) || process_exiting);
 					DEBUG_ONLY(reformat_buffer_in_use++;)
 					DEBUG_DYNGRD_ONLY(PRINTF("WCS_WTSTART: Block %d being dynamically downgraded on write\n", \
 								 csr->blk));
@@ -481,7 +481,7 @@ int4	wcs_wtstart(gd_region *region, int4 writes)
 				if ((blk_hdr_ptr_t)reformat_buffer == bp)
 				{
 					DEBUG_ONLY(reformat_buffer_in_use--;)
-					assert(0 == reformat_buffer_in_use);
+					assert((0 == reformat_buffer_in_use) || process_exiting);
 				}
 			}
 			/* Trigger I/O error if white box test case is turned on */
diff --git a/sr_unix_cm/gtcm_pkdisp.c b/sr_unix_cm/gtcm_pkdisp.c
index 713df93..600cff3 100644
--- a/sr_unix_cm/gtcm_pkdisp.c
+++ b/sr_unix_cm/gtcm_pkdisp.c
@@ -1,6 +1,6 @@
 /****************************************************************
  *								*
- * Copyright (c) 2001-2015 Fidelity National Information	*
+ * Copyright (c) 2001-2016 Fidelity National Information	*
  * Services, Inc. and/or its subsidiaries. All rights reserved.	*
  *								*
  *	This source code contains the intellectual property	*
@@ -38,13 +38,8 @@ static char rcsid[] = "$Header:$";
 
 GBLREF char	*omi_oprlist[];
 
-/* This executable does not have any command tables so initialize command array to NULL. The reason why cmd_ary is needed is
- * because EXIT (invoked by this module) in turn pulls in "gtm_image_exit" which in turn does asserts that in turn pull in
- * a lot of the database runtime logic which in turn (due to triggers) pulls in the compiler as well
- * (op_zcompile etc. require cmd_ary). And the reason this is needed in pro too is because pro gtm_malloc_src.h defines
- * the function "gtm_malloc_dbg" which needs "cmd_ary".
- */
-GBLDEF	CLI_ENTRY	*cmd_ary = NULL;
+#undef EXIT
+#define	EXIT	exit	/* Use system "exit" (not gtm_image_exit) directly since this is a standalone module */
 
 /* On OSF/1 (Digital Unix), pointers are 64 bits wide; the only exception to this is C programs for which one may
  * specify compiler and link editor options in order to use (and allocate) 32-bit pointers.  However, since C is
@@ -61,9 +56,7 @@ int main(int argc, char_ptr_t argv[])
 	omi_li		nx;
 	omi_si		hlen;
 	omi_req_hdr	rh;
-	DCL_THREADGBL_ACCESS;
 
-	GTM_THREADGBL_INIT;
 	bunches = 0;
 	if (argc == 3)
 	{
diff --git a/sr_unix_cm/gtcm_prsopt.c b/sr_unix_cm/gtcm_prsopt.c
index 7d8c749..6ddd634 100755
--- a/sr_unix_cm/gtcm_prsopt.c
+++ b/sr_unix_cm/gtcm_prsopt.c
@@ -64,23 +64,23 @@ static struct
   int args;
 } optlist[] =
 {
-	"-D",		opt_debug, 1,	/* debugging output */
-	"-log",		opt_debug, 1,
-	"-P",		opt_pktlog, 1,	/* packet log file template */
-	"-pktlog",	opt_pktlog, 1,
-	"-S",		opt_service, 1,	/* service name in /etc/services */
-	"-service",	opt_service, 1,
-	"-I",		opt_rc_id, 1,	/* RC server ID */
-	"-id",		opt_rc_id, 1,
-	"-A",		opt_pktlog_addr, 1, /* IP address of DT agent to log */
-	"-logaddr",	opt_pktlog_addr, 1,
-	"-auth",	opt_authenticate, 0, /* authenticate connections */
-	"-multiple",	opt_multipleconn,  0, /* allow multiple conn from same IP address */
-	"-ping",	opt_ping, 0,	/* ping connections to keepalive */
-	"-timeout",	opt_conn_timeout, 1,
-	"-servtime",	opt_servtime,	1, /* Used for setup the timer for servicing each connection, default 60 sec */
-	"-hist",	opt_history, 0, /* flag:  keep packet history in mem */
-	NULL,		opt_null, 0
+	{"-D",		opt_debug,		1}, /* debugging output */
+	{"-log",	opt_debug,		1},
+	{"-P",		opt_pktlog,		1}, /* packet log file template */
+	{"-pktlog",	opt_pktlog,		1},
+	{"-S",		opt_service,		1}, /* service name in /etc/services */
+	{"-service",	opt_service,		1},
+	{"-I",		opt_rc_id,		1}, /* RC server ID */
+	{"-id",		opt_rc_id,		1},
+	{"-A",		opt_pktlog_addr,	1}, /* IP address of DT agent to log */
+	{"-logaddr",	opt_pktlog_addr,	1},
+	{"-auth",	opt_authenticate,	0}, /* authenticate connections */
+	{"-multiple",	opt_multipleconn,	0}, /* allow multiple conn from same IP address */
+	{"-ping",	opt_ping,		0}, /* ping connections to keepalive */
+	{"-timeout",	opt_conn_timeout,	1},
+	{"-servtime",	opt_servtime,		1}, /* Used for setup the timer for servicing each connection, default 60 sec */
+	{"-hist",	opt_history,		0}, /* flag:  keep packet history in mem */
+	{NULL,		opt_null,		0}
 };
 
 /* On OSF/1 (Digital Unix), pointers are 64 bits wide; the only exception to this is C programs for which one may
diff --git a/sr_unix_gnp/gtcm_gnp_clitab.c b/sr_unix_gnp/gtcm_gnp_clitab.c
index 8b92541..361173f 100755
--- a/sr_unix_gnp/gtcm_gnp_clitab.c
+++ b/sr_unix_gnp/gtcm_gnp_clitab.c
@@ -26,10 +26,10 @@ static readonly CLI_ENTRY gtcm_gnp_qual[] = {
 { "SERVICE", 0, 0, 0, 0, 0, 0, VAL_REQ, 1, NON_NEG, VAL_STR, 0},
 { "TIMEOUT", 0, 0, 0, 0, 0, 0, VAL_REQ, 1, NON_NEG, VAL_NUM, 0},
 { "TRACE", 0, 0, 0, 0, 0, 0, VAL_DISALLOWED, 0, NON_NEG, VAL_N_A, 0},
-{ 0 }
+{ "" }
 };
 
 GBLDEF CLI_ENTRY gtcm_gnp_cmd_ary[] = {
 { "GTCM_GNP_SERVER", 0, gtcm_gnp_qual, 0, 0, 0, 0, VAL_DISALLOWED, 1, NON_NEG, VAL_N_A, 0},
-{ 0 }
+{ "" }
 };
diff --git a/sr_x86_64/GTMDefinedTypesInitDebug.m b/sr_x86_64/GTMDefinedTypesInitDebug.m
index 84dc81f..f4d30d6 100644
--- a/sr_x86_64/GTMDefinedTypesInitDebug.m
+++ b/sr_x86_64/GTMDefinedTypesInitDebug.m
@@ -11,14 +11,14 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;
-; Generated by scantypedefs.m at 15:38:37 on 2016-03-22
-; Build done with GT.M version: GT.M V6.2-002A Linux x86_64
+; Generated by scantypedefs.m at 17:38:52 on 2016-05-09
+; Build done with GT.M version: GT.M V6.3-000 Linux x86_64
 ;
 ; Environment variables during run:
-;   $gtm_dist: /usr/library/V62002A/dbg
-;   $gtm_exe: /usr/library/V63000/dbg
-;   $gtm_src: /usr/library/V63000/src
-;   $gtm_inc: /usr/library/V63000/inc
+;   $gtm_dist: /usr/library/V63000/dbg
+;   $gtm_exe: /usr/library/V63000A/dbg
+;   $gtm_src: /usr/library/V63000A/src
+;   $gtm_inc: /usr/library/V63000A/inc
 ;
 ; Note this file should not be manually invoked
 ;
@@ -11560,7 +11560,7 @@ Init
 	Set gtmtypfldindx("jnlpool_addrs","jnldata_base")=7
 	;
 	Set gtmtypes("jnlpool_ctl_struct")="struct"
-	Set gtmtypes("jnlpool_ctl_struct",0)=47
+	Set gtmtypes("jnlpool_ctl_struct",0)=48
 	Set gtmtypes("jnlpool_ctl_struct","len")=3728
 	Set gtmtypes("jnlpool_ctl_struct",1,"name")="jnlpool_ctl_struct.jnlpool_id"
 	Set gtmtypes("jnlpool_ctl_struct",1,"off")=0
@@ -11793,11 +11793,16 @@ Init
 	Set gtmtypes("jnlpool_ctl_struct",46,"len")=4
 	Set gtmtypes("jnlpool_ctl_struct",46,"type")="boolean_t"
 	Set gtmtypfldindx("jnlpool_ctl_struct","outofsync_core_generated")=46
-	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.ftok_counter_halted"
 	Set gtmtypes("jnlpool_ctl_struct",47,"off")=3716
-	Set gtmtypes("jnlpool_ctl_struct",47,"len")=12
-	Set gtmtypes("jnlpool_ctl_struct",47,"type")="char"
-	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=47
+	Set gtmtypes("jnlpool_ctl_struct",47,"len")=4
+	Set gtmtypes("jnlpool_ctl_struct",47,"type")="boolean_t"
+	Set gtmtypfldindx("jnlpool_ctl_struct","ftok_counter_halted")=47
+	Set gtmtypes("jnlpool_ctl_struct",48,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",48,"off")=3720
+	Set gtmtypes("jnlpool_ctl_struct",48,"len")=8
+	Set gtmtypes("jnlpool_ctl_struct",48,"type")="char"
+	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=48
 	;
 	Set gtmtypes("jnlpool_write_ctx_t")="struct"
 	Set gtmtypes("jnlpool_write_ctx_t",0)=2
@@ -16866,8 +16871,8 @@ Init
 	Set gtmtypfldindx("nametabent","name")=2
 	;
 	Set gtmtypes("node_local")="struct"
-	Set gtmtypes("node_local",0)=207
-	Set gtmtypes("node_local","len")=63784
+	Set gtmtypes("node_local",0)=209
+	Set gtmtypes("node_local","len")=63792
 	Set gtmtypes("node_local",1,"name")="node_local.label"
 	Set gtmtypes("node_local",1,"off")=0
 	Set gtmtypes("node_local",1,"len")=12
@@ -17908,11 +17913,21 @@ Init
 	Set gtmtypes("node_local",206,"len")=4
 	Set gtmtypes("node_local",206,"type")="boolean_t"
 	Set gtmtypfldindx("node_local","first_nonbypas_writer_seen")=206
-	Set gtmtypes("node_local",207,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",207,"name")="node_local.ftok_counter_halted"
 	Set gtmtypes("node_local",207,"off")=63780
 	Set gtmtypes("node_local",207,"len")=4
-	Set gtmtypes("node_local",207,"type")="unsigned-int"
-	Set gtmtypfldindx("node_local","filler_8byte_align1")=207
+	Set gtmtypes("node_local",207,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","ftok_counter_halted")=207
+	Set gtmtypes("node_local",208,"name")="node_local.access_counter_halted"
+	Set gtmtypes("node_local",208,"off")=63784
+	Set gtmtypes("node_local",208,"len")=4
+	Set gtmtypes("node_local",208,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","access_counter_halted")=208
+	Set gtmtypes("node_local",209,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",209,"off")=63788
+	Set gtmtypes("node_local",209,"len")=4
+	Set gtmtypes("node_local",209,"type")="unsigned-int"
+	Set gtmtypfldindx("node_local","filler_8byte_align1")=209
 	;
 	Set gtmtypes("noisolation_element")="struct"
 	Set gtmtypes("noisolation_element",0)=2
@@ -24353,11 +24368,11 @@ Init
 	Set gtmtypes("repl_inst_hdr",38,"len")=4
 	Set gtmtypes("repl_inst_hdr",38,"type")="boolean_t"
 	Set gtmtypfldindx("repl_inst_hdr","file_corrupt")=38
-	Set gtmtypes("repl_inst_hdr",39,"name")="repl_inst_hdr.ftok_counter_halted"
+	Set gtmtypes("repl_inst_hdr",39,"name")="repl_inst_hdr.filler_ftok_counter_halted"
 	Set gtmtypes("repl_inst_hdr",39,"off")=972
 	Set gtmtypes("repl_inst_hdr",39,"len")=4
 	Set gtmtypes("repl_inst_hdr",39,"type")="boolean_t"
-	Set gtmtypfldindx("repl_inst_hdr","ftok_counter_halted")=39
+	Set gtmtypfldindx("repl_inst_hdr","filler_ftok_counter_halted")=39
 	Set gtmtypes("repl_inst_hdr",40,"name")="repl_inst_hdr.qdbrundown"
 	Set gtmtypes("repl_inst_hdr",40,"off")=976
 	Set gtmtypes("repl_inst_hdr",40,"len")=4
@@ -25998,7 +26013,7 @@ Init
 	Set gtmtypfldindx("sgmm_addrs","filler")=1
 	;
 	Set gtmtypes("sgmnt_addrs")="struct"
-	Set gtmtypes("sgmnt_addrs",0)=142
+	Set gtmtypes("sgmnt_addrs",0)=141
 	Set gtmtypes("sgmnt_addrs","len")=936
 	Set gtmtypes("sgmnt_addrs",1,"name")="sgmnt_addrs.hdr"
 	Set gtmtypes("sgmnt_addrs",1,"off")=0
@@ -26657,61 +26672,56 @@ Init
 	Set gtmtypes("sgmnt_addrs",131,"len")=4
 	Set gtmtypes("sgmnt_addrs",131,"type")="unsigned-int"
 	Set gtmtypfldindx("sgmnt_addrs","db_onln_rlbkd_cycle")=131
-	Set gtmtypes("sgmnt_addrs",132,"name")="sgmnt_addrs.dbinit_shm_created"
+	Set gtmtypes("sgmnt_addrs",132,"name")="sgmnt_addrs.read_only_fs"
 	Set gtmtypes("sgmnt_addrs",132,"off")=868
 	Set gtmtypes("sgmnt_addrs",132,"len")=4
 	Set gtmtypes("sgmnt_addrs",132,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","dbinit_shm_created")=132
-	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.read_only_fs"
+	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=132
+	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.crit_probe"
 	Set gtmtypes("sgmnt_addrs",133,"off")=872
 	Set gtmtypes("sgmnt_addrs",133,"len")=4
 	Set gtmtypes("sgmnt_addrs",133,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=133
-	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.crit_probe"
-	Set gtmtypes("sgmnt_addrs",134,"off")=876
-	Set gtmtypes("sgmnt_addrs",134,"len")=4
-	Set gtmtypes("sgmnt_addrs",134,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=134
-	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.probecrit_rec"
+	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=133
+	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.probecrit_rec"
+	Set gtmtypes("sgmnt_addrs",134,"off")=880
+	Set gtmtypes("sgmnt_addrs",134,"len")=56
+	Set gtmtypes("sgmnt_addrs",134,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=134
+	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
 	Set gtmtypes("sgmnt_addrs",135,"off")=880
-	Set gtmtypes("sgmnt_addrs",135,"len")=56
-	Set gtmtypes("sgmnt_addrs",135,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=135
-	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("sgmnt_addrs",136,"off")=880
+	Set gtmtypes("sgmnt_addrs",135,"len")=8
+	Set gtmtypes("sgmnt_addrs",135,"type")="uint64_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=135
+	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("sgmnt_addrs",136,"off")=888
 	Set gtmtypes("sgmnt_addrs",136,"len")=8
 	Set gtmtypes("sgmnt_addrs",136,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=136
-	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("sgmnt_addrs",137,"off")=888
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=136
+	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("sgmnt_addrs",137,"off")=896
 	Set gtmtypes("sgmnt_addrs",137,"len")=8
 	Set gtmtypes("sgmnt_addrs",137,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=137
-	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("sgmnt_addrs",138,"off")=896
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=137
+	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("sgmnt_addrs",138,"off")=904
 	Set gtmtypes("sgmnt_addrs",138,"len")=8
 	Set gtmtypes("sgmnt_addrs",138,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=138
-	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("sgmnt_addrs",139,"off")=904
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=138
+	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("sgmnt_addrs",139,"off")=912
 	Set gtmtypes("sgmnt_addrs",139,"len")=8
 	Set gtmtypes("sgmnt_addrs",139,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=139
-	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("sgmnt_addrs",140,"off")=912
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=139
+	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("sgmnt_addrs",140,"off")=920
 	Set gtmtypes("sgmnt_addrs",140,"len")=8
 	Set gtmtypes("sgmnt_addrs",140,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=140
-	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("sgmnt_addrs",141,"off")=920
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=140
+	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("sgmnt_addrs",141,"off")=928
 	Set gtmtypes("sgmnt_addrs",141,"len")=8
 	Set gtmtypes("sgmnt_addrs",141,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=141
-	Set gtmtypes("sgmnt_addrs",142,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("sgmnt_addrs",142,"off")=928
-	Set gtmtypes("sgmnt_addrs",142,"len")=8
-	Set gtmtypes("sgmnt_addrs",142,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=142
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=141
 	;
 	Set gtmtypes("sgmnt_data")="struct"
 	Set gtmtypes("sgmnt_data",0)=565
@@ -29537,16 +29547,16 @@ Init
 	Set gtmtypes("sgmnt_data",561,"len")=4
 	Set gtmtypes("sgmnt_data",561,"type")="boolean_t"
 	Set gtmtypfldindx("sgmnt_data","defer_allocate")=561
-	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.ftok_counter_halted"
+	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.filler_ftok_counter_halted"
 	Set gtmtypes("sgmnt_data",562,"off")=6452
 	Set gtmtypes("sgmnt_data",562,"len")=4
 	Set gtmtypes("sgmnt_data",562,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","ftok_counter_halted")=562
-	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.access_counter_halted"
+	Set gtmtypfldindx("sgmnt_data","filler_ftok_counter_halted")=562
+	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.filler_access_counter_halted"
 	Set gtmtypes("sgmnt_data",563,"off")=6456
 	Set gtmtypes("sgmnt_data",563,"len")=4
 	Set gtmtypes("sgmnt_data",563,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","access_counter_halted")=563
+	Set gtmtypfldindx("sgmnt_data","filler_access_counter_halted")=563
 	Set gtmtypes("sgmnt_data",564,"name")="sgmnt_data.filler_7k"
 	Set gtmtypes("sgmnt_data",564,"off")=6460
 	Set gtmtypes("sgmnt_data",564,"len")=708
@@ -32666,16 +32676,16 @@ Init
 	Set gtmtypes("shm_snapshot_t",583,"len")=4
 	Set gtmtypes("shm_snapshot_t",583,"type")="boolean_t"
 	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.defer_allocate")=583
-	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shm_snapshot_t",584,"off")=10636
 	Set gtmtypes("shm_snapshot_t",584,"len")=4
 	Set gtmtypes("shm_snapshot_t",584,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.ftok_counter_halted")=584
-	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_ftok_counter_halted")=584
+	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shm_snapshot_t",585,"off")=10640
 	Set gtmtypes("shm_snapshot_t",585,"len")=4
 	Set gtmtypes("shm_snapshot_t",585,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.access_counter_halted")=585
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_access_counter_halted")=585
 	Set gtmtypes("shm_snapshot_t",586,"name")="shm_snapshot_t.shadow_file_header.filler_7k"
 	Set gtmtypes("shm_snapshot_t",586,"off")=10644
 	Set gtmtypes("shm_snapshot_t",586,"len")=708
@@ -35715,16 +35725,16 @@ Init
 	Set gtmtypes("shmpool_buff_hdr",590,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",590,"type")="boolean_t"
 	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.defer_allocate")=590
-	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",591,"off")=6820
 	Set gtmtypes("shmpool_buff_hdr",591,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",591,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.ftok_counter_halted")=591
-	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_ftok_counter_halted")=591
+	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",592,"off")=6824
 	Set gtmtypes("shmpool_buff_hdr",592,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",592,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.access_counter_halted")=592
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_access_counter_halted")=592
 	Set gtmtypes("shmpool_buff_hdr",593,"name")="shmpool_buff_hdr.shadow_file_header.filler_7k"
 	Set gtmtypes("shmpool_buff_hdr",593,"off")=6828
 	Set gtmtypes("shmpool_buff_hdr",593,"len")=708
@@ -39556,8 +39566,8 @@ Init
 	Set gtmtypfldindx("unique_file_id","file_id")=5
 	;
 	Set gtmtypes("unix_db_info")="struct"
-	Set gtmtypes("unix_db_info",0)=162
-	Set gtmtypes("unix_db_info","len")=1048
+	Set gtmtypes("unix_db_info",0)=155
+	Set gtmtypes("unix_db_info","len")=1024
 	Set gtmtypes("unix_db_info",1,"name")="unix_db_info.s_addrs"
 	Set gtmtypes("unix_db_info",1,"off")=0
 	Set gtmtypes("unix_db_info",1,"len")=936
@@ -40220,156 +40230,121 @@ Init
 	Set gtmtypes("unix_db_info",132,"len")=4
 	Set gtmtypes("unix_db_info",132,"type")="unsigned-int"
 	Set gtmtypfldindx("unix_db_info","s_addrs.db_onln_rlbkd_cycle")=132
-	Set gtmtypes("unix_db_info",133,"name")="unix_db_info.s_addrs.dbinit_shm_created"
+	Set gtmtypes("unix_db_info",133,"name")="unix_db_info.s_addrs.read_only_fs"
 	Set gtmtypes("unix_db_info",133,"off")=868
 	Set gtmtypes("unix_db_info",133,"len")=4
 	Set gtmtypes("unix_db_info",133,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.dbinit_shm_created")=133
-	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.read_only_fs"
+	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=133
+	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.crit_probe"
 	Set gtmtypes("unix_db_info",134,"off")=872
 	Set gtmtypes("unix_db_info",134,"len")=4
 	Set gtmtypes("unix_db_info",134,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=134
-	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.crit_probe"
-	Set gtmtypes("unix_db_info",135,"off")=876
-	Set gtmtypes("unix_db_info",135,"len")=4
-	Set gtmtypes("unix_db_info",135,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=135
-	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.probecrit_rec"
+	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=134
+	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.probecrit_rec"
+	Set gtmtypes("unix_db_info",135,"off")=880
+	Set gtmtypes("unix_db_info",135,"len")=56
+	Set gtmtypes("unix_db_info",135,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=135
+	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
 	Set gtmtypes("unix_db_info",136,"off")=880
-	Set gtmtypes("unix_db_info",136,"len")=56
-	Set gtmtypes("unix_db_info",136,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=136
-	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("unix_db_info",137,"off")=880
+	Set gtmtypes("unix_db_info",136,"len")=8
+	Set gtmtypes("unix_db_info",136,"type")="uint64_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=136
+	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("unix_db_info",137,"off")=888
 	Set gtmtypes("unix_db_info",137,"len")=8
 	Set gtmtypes("unix_db_info",137,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=137
-	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("unix_db_info",138,"off")=888
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=137
+	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("unix_db_info",138,"off")=896
 	Set gtmtypes("unix_db_info",138,"len")=8
 	Set gtmtypes("unix_db_info",138,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=138
-	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("unix_db_info",139,"off")=896
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=138
+	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("unix_db_info",139,"off")=904
 	Set gtmtypes("unix_db_info",139,"len")=8
 	Set gtmtypes("unix_db_info",139,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=139
-	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("unix_db_info",140,"off")=904
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=139
+	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("unix_db_info",140,"off")=912
 	Set gtmtypes("unix_db_info",140,"len")=8
 	Set gtmtypes("unix_db_info",140,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=140
-	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("unix_db_info",141,"off")=912
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=140
+	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("unix_db_info",141,"off")=920
 	Set gtmtypes("unix_db_info",141,"len")=8
 	Set gtmtypes("unix_db_info",141,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=141
-	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("unix_db_info",142,"off")=920
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=141
+	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("unix_db_info",142,"off")=928
 	Set gtmtypes("unix_db_info",142,"len")=8
 	Set gtmtypes("unix_db_info",142,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=142
-	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("unix_db_info",143,"off")=928
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=142
+	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.fn"
+	Set gtmtypes("unix_db_info",143,"off")=936
 	Set gtmtypes("unix_db_info",143,"len")=8
-	Set gtmtypes("unix_db_info",143,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=143
-	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.fn"
-	Set gtmtypes("unix_db_info",144,"off")=936
-	Set gtmtypes("unix_db_info",144,"len")=8
-	Set gtmtypes("unix_db_info",144,"type")="addr"
-	Set gtmtypfldindx("unix_db_info","fn")=144
-	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fd"
-	Set gtmtypes("unix_db_info",145,"off")=944
-	Set gtmtypes("unix_db_info",145,"len")=4
-	Set gtmtypes("unix_db_info",145,"type")="int"
-	Set gtmtypfldindx("unix_db_info","fd")=145
-	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fileid"
+	Set gtmtypes("unix_db_info",143,"type")="addr"
+	Set gtmtypfldindx("unix_db_info","fn")=143
+	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.fd"
+	Set gtmtypes("unix_db_info",144,"off")=944
+	Set gtmtypes("unix_db_info",144,"len")=4
+	Set gtmtypes("unix_db_info",144,"type")="int"
+	Set gtmtypfldindx("unix_db_info","fd")=144
+	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fileid"
+	Set gtmtypes("unix_db_info",145,"off")=952
+	Set gtmtypes("unix_db_info",145,"len")=24
+	Set gtmtypes("unix_db_info",145,"type")="unix_file_id"
+	Set gtmtypfldindx("unix_db_info","fileid")=145
+	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fileid.inode"
 	Set gtmtypes("unix_db_info",146,"off")=952
-	Set gtmtypes("unix_db_info",146,"len")=24
-	Set gtmtypes("unix_db_info",146,"type")="unix_file_id"
-	Set gtmtypfldindx("unix_db_info","fileid")=146
-	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid.inode"
-	Set gtmtypes("unix_db_info",147,"off")=952
+	Set gtmtypes("unix_db_info",146,"len")=8
+	Set gtmtypes("unix_db_info",146,"type")="ino_t"
+	Set gtmtypfldindx("unix_db_info","fileid.inode")=146
+	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid.device"
+	Set gtmtypes("unix_db_info",147,"off")=960
 	Set gtmtypes("unix_db_info",147,"len")=8
-	Set gtmtypes("unix_db_info",147,"type")="ino_t"
-	Set gtmtypfldindx("unix_db_info","fileid.inode")=147
-	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.device"
-	Set gtmtypes("unix_db_info",148,"off")=960
-	Set gtmtypes("unix_db_info",148,"len")=8
-	Set gtmtypes("unix_db_info",148,"type")="dev_t"
-	Set gtmtypfldindx("unix_db_info","fileid.device")=148
-	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.fileid.st_gen"
-	Set gtmtypes("unix_db_info",149,"off")=968
+	Set gtmtypes("unix_db_info",147,"type")="dev_t"
+	Set gtmtypfldindx("unix_db_info","fileid.device")=147
+	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.st_gen"
+	Set gtmtypes("unix_db_info",148,"off")=968
+	Set gtmtypes("unix_db_info",148,"len")=4
+	Set gtmtypes("unix_db_info",148,"type")="unsigned-int"
+	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=148
+	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.semid"
+	Set gtmtypes("unix_db_info",149,"off")=976
 	Set gtmtypes("unix_db_info",149,"len")=4
-	Set gtmtypes("unix_db_info",149,"type")="unsigned-int"
-	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=149
-	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.semid"
-	Set gtmtypes("unix_db_info",150,"off")=976
-	Set gtmtypes("unix_db_info",150,"len")=4
-	Set gtmtypes("unix_db_info",150,"type")="int"
-	Set gtmtypfldindx("unix_db_info","semid")=150
-	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.gt_sem_ctime"
-	Set gtmtypes("unix_db_info",151,"off")=984
-	Set gtmtypes("unix_db_info",151,"len")=8
-	Set gtmtypes("unix_db_info",151,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=151
-	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.shmid"
-	Set gtmtypes("unix_db_info",152,"off")=992
-	Set gtmtypes("unix_db_info",152,"len")=4
-	Set gtmtypes("unix_db_info",152,"type")="int"
-	Set gtmtypfldindx("unix_db_info","shmid")=152
-	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.gt_shm_ctime"
-	Set gtmtypes("unix_db_info",153,"off")=1000
-	Set gtmtypes("unix_db_info",153,"len")=8
-	Set gtmtypes("unix_db_info",153,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=153
-	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.ftok_semid"
-	Set gtmtypes("unix_db_info",154,"off")=1008
+	Set gtmtypes("unix_db_info",149,"type")="int"
+	Set gtmtypfldindx("unix_db_info","semid")=149
+	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.gt_sem_ctime"
+	Set gtmtypes("unix_db_info",150,"off")=984
+	Set gtmtypes("unix_db_info",150,"len")=8
+	Set gtmtypes("unix_db_info",150,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=150
+	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.shmid"
+	Set gtmtypes("unix_db_info",151,"off")=992
+	Set gtmtypes("unix_db_info",151,"len")=4
+	Set gtmtypes("unix_db_info",151,"type")="int"
+	Set gtmtypfldindx("unix_db_info","shmid")=151
+	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.gt_shm_ctime"
+	Set gtmtypes("unix_db_info",152,"off")=1000
+	Set gtmtypes("unix_db_info",152,"len")=8
+	Set gtmtypes("unix_db_info",152,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=152
+	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.ftok_semid"
+	Set gtmtypes("unix_db_info",153,"off")=1008
+	Set gtmtypes("unix_db_info",153,"len")=4
+	Set gtmtypes("unix_db_info",153,"type")="int"
+	Set gtmtypfldindx("unix_db_info","ftok_semid")=153
+	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.key"
+	Set gtmtypes("unix_db_info",154,"off")=1016
 	Set gtmtypes("unix_db_info",154,"len")=4
-	Set gtmtypes("unix_db_info",154,"type")="int"
-	Set gtmtypfldindx("unix_db_info","ftok_semid")=154
-	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.new_shm"
-	Set gtmtypes("unix_db_info",155,"off")=1012
+	Set gtmtypes("unix_db_info",154,"type")="key_t"
+	Set gtmtypfldindx("unix_db_info","key")=154
+	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.raw"
+	Set gtmtypes("unix_db_info",155,"off")=1020
 	Set gtmtypes("unix_db_info",155,"len")=4
 	Set gtmtypes("unix_db_info",155,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_shm")=155
-	Set gtmtypes("unix_db_info",156,"name")="unix_db_info.new_sem"
-	Set gtmtypes("unix_db_info",156,"off")=1016
-	Set gtmtypes("unix_db_info",156,"len")=4
-	Set gtmtypes("unix_db_info",156,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_sem")=156
-	Set gtmtypes("unix_db_info",157,"name")="unix_db_info.grabbed_ftok_sem"
-	Set gtmtypes("unix_db_info",157,"off")=1020
-	Set gtmtypes("unix_db_info",157,"len")=4
-	Set gtmtypes("unix_db_info",157,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_ftok_sem")=157
-	Set gtmtypes("unix_db_info",158,"name")="unix_db_info.grabbed_access_sem"
-	Set gtmtypes("unix_db_info",158,"off")=1024
-	Set gtmtypes("unix_db_info",158,"len")=4
-	Set gtmtypes("unix_db_info",158,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_access_sem")=158
-	Set gtmtypes("unix_db_info",159,"name")="unix_db_info.counter_acc_incremented"
-	Set gtmtypes("unix_db_info",159,"off")=1028
-	Set gtmtypes("unix_db_info",159,"len")=4
-	Set gtmtypes("unix_db_info",159,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_acc_incremented")=159
-	Set gtmtypes("unix_db_info",160,"name")="unix_db_info.counter_ftok_incremented"
-	Set gtmtypes("unix_db_info",160,"off")=1032
-	Set gtmtypes("unix_db_info",160,"len")=4
-	Set gtmtypes("unix_db_info",160,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_ftok_incremented")=160
-	Set gtmtypes("unix_db_info",161,"name")="unix_db_info.key"
-	Set gtmtypes("unix_db_info",161,"off")=1036
-	Set gtmtypes("unix_db_info",161,"len")=4
-	Set gtmtypes("unix_db_info",161,"type")="key_t"
-	Set gtmtypfldindx("unix_db_info","key")=161
-	Set gtmtypes("unix_db_info",162,"name")="unix_db_info.raw"
-	Set gtmtypes("unix_db_info",162,"off")=1040
-	Set gtmtypes("unix_db_info",162,"len")=1
-	Set gtmtypes("unix_db_info",162,"type")="char"
-	Set gtmtypfldindx("unix_db_info","raw")=162
+	Set gtmtypfldindx("unix_db_info","raw")=155
 	;
 	Set gtmtypes("unix_file_id")="struct"
 	Set gtmtypes("unix_file_id",0)=3
diff --git a/sr_x86_64/GTMDefinedTypesInitRelease.m b/sr_x86_64/GTMDefinedTypesInitRelease.m
index f2e8ccd..ad89c94 100644
--- a/sr_x86_64/GTMDefinedTypesInitRelease.m
+++ b/sr_x86_64/GTMDefinedTypesInitRelease.m
@@ -11,14 +11,14 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;
-; Generated by scantypedefs.m at 15:35:21 on 2016-03-22
-; Build done with GT.M version: GT.M V6.2-002A Linux x86_64
+; Generated by scantypedefs.m at 17:35:46 on 2016-05-09
+; Build done with GT.M version: GT.M V6.3-000 Linux x86_64
 ;
 ; Environment variables during run:
-;   $gtm_dist: /usr/library/V62002A/pro
-;   $gtm_exe: /usr/library/V63000/pro
-;   $gtm_src: /usr/library/V63000/src
-;   $gtm_inc: /usr/library/V63000/inc
+;   $gtm_dist: /usr/library/V63000/pro
+;   $gtm_exe: /usr/library/V63000A/pro
+;   $gtm_src: /usr/library/V63000A/src
+;   $gtm_inc: /usr/library/V63000A/inc
 ;
 ; Note this file should not be manually invoked
 ;
@@ -11515,7 +11515,7 @@ Init
 	Set gtmtypfldindx("jnlpool_addrs","jnldata_base")=7
 	;
 	Set gtmtypes("jnlpool_ctl_struct")="struct"
-	Set gtmtypes("jnlpool_ctl_struct",0)=47
+	Set gtmtypes("jnlpool_ctl_struct",0)=48
 	Set gtmtypes("jnlpool_ctl_struct","len")=3728
 	Set gtmtypes("jnlpool_ctl_struct",1,"name")="jnlpool_ctl_struct.jnlpool_id"
 	Set gtmtypes("jnlpool_ctl_struct",1,"off")=0
@@ -11748,11 +11748,16 @@ Init
 	Set gtmtypes("jnlpool_ctl_struct",46,"len")=4
 	Set gtmtypes("jnlpool_ctl_struct",46,"type")="boolean_t"
 	Set gtmtypfldindx("jnlpool_ctl_struct","outofsync_core_generated")=46
-	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",47,"name")="jnlpool_ctl_struct.ftok_counter_halted"
 	Set gtmtypes("jnlpool_ctl_struct",47,"off")=3716
-	Set gtmtypes("jnlpool_ctl_struct",47,"len")=12
-	Set gtmtypes("jnlpool_ctl_struct",47,"type")="char"
-	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=47
+	Set gtmtypes("jnlpool_ctl_struct",47,"len")=4
+	Set gtmtypes("jnlpool_ctl_struct",47,"type")="boolean_t"
+	Set gtmtypfldindx("jnlpool_ctl_struct","ftok_counter_halted")=47
+	Set gtmtypes("jnlpool_ctl_struct",48,"name")="jnlpool_ctl_struct.filler_16bytealign"
+	Set gtmtypes("jnlpool_ctl_struct",48,"off")=3720
+	Set gtmtypes("jnlpool_ctl_struct",48,"len")=8
+	Set gtmtypes("jnlpool_ctl_struct",48,"type")="char"
+	Set gtmtypfldindx("jnlpool_ctl_struct","filler_16bytealign")=48
 	;
 	Set gtmtypes("jnlpool_write_ctx_t")="struct"
 	Set gtmtypes("jnlpool_write_ctx_t",0)=2
@@ -16726,8 +16731,8 @@ Init
 	Set gtmtypfldindx("nametabent","name")=2
 	;
 	Set gtmtypes("node_local")="struct"
-	Set gtmtypes("node_local",0)=207
-	Set gtmtypes("node_local","len")=63784
+	Set gtmtypes("node_local",0)=209
+	Set gtmtypes("node_local","len")=63792
 	Set gtmtypes("node_local",1,"name")="node_local.label"
 	Set gtmtypes("node_local",1,"off")=0
 	Set gtmtypes("node_local",1,"len")=12
@@ -17768,11 +17773,21 @@ Init
 	Set gtmtypes("node_local",206,"len")=4
 	Set gtmtypes("node_local",206,"type")="boolean_t"
 	Set gtmtypfldindx("node_local","first_nonbypas_writer_seen")=206
-	Set gtmtypes("node_local",207,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",207,"name")="node_local.ftok_counter_halted"
 	Set gtmtypes("node_local",207,"off")=63780
 	Set gtmtypes("node_local",207,"len")=4
-	Set gtmtypes("node_local",207,"type")="unsigned-int"
-	Set gtmtypfldindx("node_local","filler_8byte_align1")=207
+	Set gtmtypes("node_local",207,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","ftok_counter_halted")=207
+	Set gtmtypes("node_local",208,"name")="node_local.access_counter_halted"
+	Set gtmtypes("node_local",208,"off")=63784
+	Set gtmtypes("node_local",208,"len")=4
+	Set gtmtypes("node_local",208,"type")="boolean_t"
+	Set gtmtypfldindx("node_local","access_counter_halted")=208
+	Set gtmtypes("node_local",209,"name")="node_local.filler_8byte_align1"
+	Set gtmtypes("node_local",209,"off")=63788
+	Set gtmtypes("node_local",209,"len")=4
+	Set gtmtypes("node_local",209,"type")="unsigned-int"
+	Set gtmtypfldindx("node_local","filler_8byte_align1")=209
 	;
 	Set gtmtypes("noisolation_element")="struct"
 	Set gtmtypes("noisolation_element",0)=2
@@ -24153,11 +24168,11 @@ Init
 	Set gtmtypes("repl_inst_hdr",38,"len")=4
 	Set gtmtypes("repl_inst_hdr",38,"type")="boolean_t"
 	Set gtmtypfldindx("repl_inst_hdr","file_corrupt")=38
-	Set gtmtypes("repl_inst_hdr",39,"name")="repl_inst_hdr.ftok_counter_halted"
+	Set gtmtypes("repl_inst_hdr",39,"name")="repl_inst_hdr.filler_ftok_counter_halted"
 	Set gtmtypes("repl_inst_hdr",39,"off")=972
 	Set gtmtypes("repl_inst_hdr",39,"len")=4
 	Set gtmtypes("repl_inst_hdr",39,"type")="boolean_t"
-	Set gtmtypfldindx("repl_inst_hdr","ftok_counter_halted")=39
+	Set gtmtypfldindx("repl_inst_hdr","filler_ftok_counter_halted")=39
 	Set gtmtypes("repl_inst_hdr",40,"name")="repl_inst_hdr.qdbrundown"
 	Set gtmtypes("repl_inst_hdr",40,"off")=976
 	Set gtmtypes("repl_inst_hdr",40,"len")=4
@@ -25798,7 +25813,7 @@ Init
 	Set gtmtypfldindx("sgmm_addrs","filler")=1
 	;
 	Set gtmtypes("sgmnt_addrs")="struct"
-	Set gtmtypes("sgmnt_addrs",0)=142
+	Set gtmtypes("sgmnt_addrs",0)=141
 	Set gtmtypes("sgmnt_addrs","len")=936
 	Set gtmtypes("sgmnt_addrs",1,"name")="sgmnt_addrs.hdr"
 	Set gtmtypes("sgmnt_addrs",1,"off")=0
@@ -26457,61 +26472,56 @@ Init
 	Set gtmtypes("sgmnt_addrs",131,"len")=4
 	Set gtmtypes("sgmnt_addrs",131,"type")="unsigned-int"
 	Set gtmtypfldindx("sgmnt_addrs","db_onln_rlbkd_cycle")=131
-	Set gtmtypes("sgmnt_addrs",132,"name")="sgmnt_addrs.dbinit_shm_created"
+	Set gtmtypes("sgmnt_addrs",132,"name")="sgmnt_addrs.read_only_fs"
 	Set gtmtypes("sgmnt_addrs",132,"off")=868
 	Set gtmtypes("sgmnt_addrs",132,"len")=4
 	Set gtmtypes("sgmnt_addrs",132,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","dbinit_shm_created")=132
-	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.read_only_fs"
+	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=132
+	Set gtmtypes("sgmnt_addrs",133,"name")="sgmnt_addrs.crit_probe"
 	Set gtmtypes("sgmnt_addrs",133,"off")=872
 	Set gtmtypes("sgmnt_addrs",133,"len")=4
 	Set gtmtypes("sgmnt_addrs",133,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","read_only_fs")=133
-	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.crit_probe"
-	Set gtmtypes("sgmnt_addrs",134,"off")=876
-	Set gtmtypes("sgmnt_addrs",134,"len")=4
-	Set gtmtypes("sgmnt_addrs",134,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=134
-	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.probecrit_rec"
+	Set gtmtypfldindx("sgmnt_addrs","crit_probe")=133
+	Set gtmtypes("sgmnt_addrs",134,"name")="sgmnt_addrs.probecrit_rec"
+	Set gtmtypes("sgmnt_addrs",134,"off")=880
+	Set gtmtypes("sgmnt_addrs",134,"len")=56
+	Set gtmtypes("sgmnt_addrs",134,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=134
+	Set gtmtypes("sgmnt_addrs",135,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
 	Set gtmtypes("sgmnt_addrs",135,"off")=880
-	Set gtmtypes("sgmnt_addrs",135,"len")=56
-	Set gtmtypes("sgmnt_addrs",135,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec")=135
-	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("sgmnt_addrs",136,"off")=880
+	Set gtmtypes("sgmnt_addrs",135,"len")=8
+	Set gtmtypes("sgmnt_addrs",135,"type")="uint64_t"
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=135
+	Set gtmtypes("sgmnt_addrs",136,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("sgmnt_addrs",136,"off")=888
 	Set gtmtypes("sgmnt_addrs",136,"len")=8
 	Set gtmtypes("sgmnt_addrs",136,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.t_get_crit")=136
-	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("sgmnt_addrs",137,"off")=888
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=136
+	Set gtmtypes("sgmnt_addrs",137,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("sgmnt_addrs",137,"off")=896
 	Set gtmtypes("sgmnt_addrs",137,"len")=8
 	Set gtmtypes("sgmnt_addrs",137,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_failed")=137
-	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("sgmnt_addrs",138,"off")=896
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=137
+	Set gtmtypes("sgmnt_addrs",138,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("sgmnt_addrs",138,"off")=904
 	Set gtmtypes("sgmnt_addrs",138,"len")=8
 	Set gtmtypes("sgmnt_addrs",138,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slps")=138
-	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("sgmnt_addrs",139,"off")=904
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=138
+	Set gtmtypes("sgmnt_addrs",139,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("sgmnt_addrs",139,"off")=912
 	Set gtmtypes("sgmnt_addrs",139,"len")=8
 	Set gtmtypes("sgmnt_addrs",139,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_yields")=139
-	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("sgmnt_addrs",140,"off")=912
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=139
+	Set gtmtypes("sgmnt_addrs",140,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("sgmnt_addrs",140,"off")=920
 	Set gtmtypes("sgmnt_addrs",140,"len")=8
 	Set gtmtypes("sgmnt_addrs",140,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_full")=140
-	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("sgmnt_addrs",141,"off")=920
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=140
+	Set gtmtypes("sgmnt_addrs",141,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("sgmnt_addrs",141,"off")=928
 	Set gtmtypes("sgmnt_addrs",141,"len")=8
 	Set gtmtypes("sgmnt_addrs",141,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_que_slots")=141
-	Set gtmtypes("sgmnt_addrs",142,"name")="sgmnt_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("sgmnt_addrs",142,"off")=928
-	Set gtmtypes("sgmnt_addrs",142,"len")=8
-	Set gtmtypes("sgmnt_addrs",142,"type")="uint64_t"
-	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=142
+	Set gtmtypfldindx("sgmnt_addrs","probecrit_rec.p_crit_success")=141
 	;
 	Set gtmtypes("sgmnt_data")="struct"
 	Set gtmtypes("sgmnt_data",0)=565
@@ -29337,16 +29347,16 @@ Init
 	Set gtmtypes("sgmnt_data",561,"len")=4
 	Set gtmtypes("sgmnt_data",561,"type")="boolean_t"
 	Set gtmtypfldindx("sgmnt_data","defer_allocate")=561
-	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.ftok_counter_halted"
+	Set gtmtypes("sgmnt_data",562,"name")="sgmnt_data.filler_ftok_counter_halted"
 	Set gtmtypes("sgmnt_data",562,"off")=6452
 	Set gtmtypes("sgmnt_data",562,"len")=4
 	Set gtmtypes("sgmnt_data",562,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","ftok_counter_halted")=562
-	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.access_counter_halted"
+	Set gtmtypfldindx("sgmnt_data","filler_ftok_counter_halted")=562
+	Set gtmtypes("sgmnt_data",563,"name")="sgmnt_data.filler_access_counter_halted"
 	Set gtmtypes("sgmnt_data",563,"off")=6456
 	Set gtmtypes("sgmnt_data",563,"len")=4
 	Set gtmtypes("sgmnt_data",563,"type")="boolean_t"
-	Set gtmtypfldindx("sgmnt_data","access_counter_halted")=563
+	Set gtmtypfldindx("sgmnt_data","filler_access_counter_halted")=563
 	Set gtmtypes("sgmnt_data",564,"name")="sgmnt_data.filler_7k"
 	Set gtmtypes("sgmnt_data",564,"off")=6460
 	Set gtmtypes("sgmnt_data",564,"len")=708
@@ -32466,16 +32476,16 @@ Init
 	Set gtmtypes("shm_snapshot_t",583,"len")=4
 	Set gtmtypes("shm_snapshot_t",583,"type")="boolean_t"
 	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.defer_allocate")=583
-	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shm_snapshot_t",584,"name")="shm_snapshot_t.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shm_snapshot_t",584,"off")=10636
 	Set gtmtypes("shm_snapshot_t",584,"len")=4
 	Set gtmtypes("shm_snapshot_t",584,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.ftok_counter_halted")=584
-	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_ftok_counter_halted")=584
+	Set gtmtypes("shm_snapshot_t",585,"name")="shm_snapshot_t.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shm_snapshot_t",585,"off")=10640
 	Set gtmtypes("shm_snapshot_t",585,"len")=4
 	Set gtmtypes("shm_snapshot_t",585,"type")="boolean_t"
-	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.access_counter_halted")=585
+	Set gtmtypfldindx("shm_snapshot_t","shadow_file_header.filler_access_counter_halted")=585
 	Set gtmtypes("shm_snapshot_t",586,"name")="shm_snapshot_t.shadow_file_header.filler_7k"
 	Set gtmtypes("shm_snapshot_t",586,"off")=10644
 	Set gtmtypes("shm_snapshot_t",586,"len")=708
@@ -35515,16 +35525,16 @@ Init
 	Set gtmtypes("shmpool_buff_hdr",590,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",590,"type")="boolean_t"
 	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.defer_allocate")=590
-	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.ftok_counter_halted"
+	Set gtmtypes("shmpool_buff_hdr",591,"name")="shmpool_buff_hdr.shadow_file_header.filler_ftok_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",591,"off")=6820
 	Set gtmtypes("shmpool_buff_hdr",591,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",591,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.ftok_counter_halted")=591
-	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.access_counter_halted"
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_ftok_counter_halted")=591
+	Set gtmtypes("shmpool_buff_hdr",592,"name")="shmpool_buff_hdr.shadow_file_header.filler_access_counter_halted"
 	Set gtmtypes("shmpool_buff_hdr",592,"off")=6824
 	Set gtmtypes("shmpool_buff_hdr",592,"len")=4
 	Set gtmtypes("shmpool_buff_hdr",592,"type")="boolean_t"
-	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.access_counter_halted")=592
+	Set gtmtypfldindx("shmpool_buff_hdr","shadow_file_header.filler_access_counter_halted")=592
 	Set gtmtypes("shmpool_buff_hdr",593,"name")="shmpool_buff_hdr.shadow_file_header.filler_7k"
 	Set gtmtypes("shmpool_buff_hdr",593,"off")=6828
 	Set gtmtypes("shmpool_buff_hdr",593,"len")=708
@@ -39297,8 +39307,8 @@ Init
 	Set gtmtypfldindx("unique_file_id","file_id")=5
 	;
 	Set gtmtypes("unix_db_info")="struct"
-	Set gtmtypes("unix_db_info",0)=162
-	Set gtmtypes("unix_db_info","len")=1048
+	Set gtmtypes("unix_db_info",0)=155
+	Set gtmtypes("unix_db_info","len")=1024
 	Set gtmtypes("unix_db_info",1,"name")="unix_db_info.s_addrs"
 	Set gtmtypes("unix_db_info",1,"off")=0
 	Set gtmtypes("unix_db_info",1,"len")=936
@@ -39961,156 +39971,121 @@ Init
 	Set gtmtypes("unix_db_info",132,"len")=4
 	Set gtmtypes("unix_db_info",132,"type")="unsigned-int"
 	Set gtmtypfldindx("unix_db_info","s_addrs.db_onln_rlbkd_cycle")=132
-	Set gtmtypes("unix_db_info",133,"name")="unix_db_info.s_addrs.dbinit_shm_created"
+	Set gtmtypes("unix_db_info",133,"name")="unix_db_info.s_addrs.read_only_fs"
 	Set gtmtypes("unix_db_info",133,"off")=868
 	Set gtmtypes("unix_db_info",133,"len")=4
 	Set gtmtypes("unix_db_info",133,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.dbinit_shm_created")=133
-	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.read_only_fs"
+	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=133
+	Set gtmtypes("unix_db_info",134,"name")="unix_db_info.s_addrs.crit_probe"
 	Set gtmtypes("unix_db_info",134,"off")=872
 	Set gtmtypes("unix_db_info",134,"len")=4
 	Set gtmtypes("unix_db_info",134,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.read_only_fs")=134
-	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.crit_probe"
-	Set gtmtypes("unix_db_info",135,"off")=876
-	Set gtmtypes("unix_db_info",135,"len")=4
-	Set gtmtypes("unix_db_info",135,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=135
-	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.probecrit_rec"
+	Set gtmtypfldindx("unix_db_info","s_addrs.crit_probe")=134
+	Set gtmtypes("unix_db_info",135,"name")="unix_db_info.s_addrs.probecrit_rec"
+	Set gtmtypes("unix_db_info",135,"off")=880
+	Set gtmtypes("unix_db_info",135,"len")=56
+	Set gtmtypes("unix_db_info",135,"type")="probecrit_rec_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=135
+	Set gtmtypes("unix_db_info",136,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
 	Set gtmtypes("unix_db_info",136,"off")=880
-	Set gtmtypes("unix_db_info",136,"len")=56
-	Set gtmtypes("unix_db_info",136,"type")="probecrit_rec_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec")=136
-	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec.t_get_crit"
-	Set gtmtypes("unix_db_info",137,"off")=880
+	Set gtmtypes("unix_db_info",136,"len")=8
+	Set gtmtypes("unix_db_info",136,"type")="uint64_t"
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=136
+	Set gtmtypes("unix_db_info",137,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
+	Set gtmtypes("unix_db_info",137,"off")=888
 	Set gtmtypes("unix_db_info",137,"len")=8
 	Set gtmtypes("unix_db_info",137,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.t_get_crit")=137
-	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_failed"
-	Set gtmtypes("unix_db_info",138,"off")=888
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=137
+	Set gtmtypes("unix_db_info",138,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
+	Set gtmtypes("unix_db_info",138,"off")=896
 	Set gtmtypes("unix_db_info",138,"len")=8
 	Set gtmtypes("unix_db_info",138,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_failed")=138
-	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slps"
-	Set gtmtypes("unix_db_info",139,"off")=896
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=138
+	Set gtmtypes("unix_db_info",139,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
+	Set gtmtypes("unix_db_info",139,"off")=904
 	Set gtmtypes("unix_db_info",139,"len")=8
 	Set gtmtypes("unix_db_info",139,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slps")=139
-	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_yields"
-	Set gtmtypes("unix_db_info",140,"off")=904
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=139
+	Set gtmtypes("unix_db_info",140,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
+	Set gtmtypes("unix_db_info",140,"off")=912
 	Set gtmtypes("unix_db_info",140,"len")=8
 	Set gtmtypes("unix_db_info",140,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_yields")=140
-	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_full"
-	Set gtmtypes("unix_db_info",141,"off")=912
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=140
+	Set gtmtypes("unix_db_info",141,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
+	Set gtmtypes("unix_db_info",141,"off")=920
 	Set gtmtypes("unix_db_info",141,"len")=8
 	Set gtmtypes("unix_db_info",141,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_full")=141
-	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_que_slots"
-	Set gtmtypes("unix_db_info",142,"off")=920
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=141
+	Set gtmtypes("unix_db_info",142,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
+	Set gtmtypes("unix_db_info",142,"off")=928
 	Set gtmtypes("unix_db_info",142,"len")=8
 	Set gtmtypes("unix_db_info",142,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_que_slots")=142
-	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.s_addrs.probecrit_rec.p_crit_success"
-	Set gtmtypes("unix_db_info",143,"off")=928
+	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=142
+	Set gtmtypes("unix_db_info",143,"name")="unix_db_info.fn"
+	Set gtmtypes("unix_db_info",143,"off")=936
 	Set gtmtypes("unix_db_info",143,"len")=8
-	Set gtmtypes("unix_db_info",143,"type")="uint64_t"
-	Set gtmtypfldindx("unix_db_info","s_addrs.probecrit_rec.p_crit_success")=143
-	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.fn"
-	Set gtmtypes("unix_db_info",144,"off")=936
-	Set gtmtypes("unix_db_info",144,"len")=8
-	Set gtmtypes("unix_db_info",144,"type")="addr"
-	Set gtmtypfldindx("unix_db_info","fn")=144
-	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fd"
-	Set gtmtypes("unix_db_info",145,"off")=944
-	Set gtmtypes("unix_db_info",145,"len")=4
-	Set gtmtypes("unix_db_info",145,"type")="int"
-	Set gtmtypfldindx("unix_db_info","fd")=145
-	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fileid"
+	Set gtmtypes("unix_db_info",143,"type")="addr"
+	Set gtmtypfldindx("unix_db_info","fn")=143
+	Set gtmtypes("unix_db_info",144,"name")="unix_db_info.fd"
+	Set gtmtypes("unix_db_info",144,"off")=944
+	Set gtmtypes("unix_db_info",144,"len")=4
+	Set gtmtypes("unix_db_info",144,"type")="int"
+	Set gtmtypfldindx("unix_db_info","fd")=144
+	Set gtmtypes("unix_db_info",145,"name")="unix_db_info.fileid"
+	Set gtmtypes("unix_db_info",145,"off")=952
+	Set gtmtypes("unix_db_info",145,"len")=24
+	Set gtmtypes("unix_db_info",145,"type")="unix_file_id"
+	Set gtmtypfldindx("unix_db_info","fileid")=145
+	Set gtmtypes("unix_db_info",146,"name")="unix_db_info.fileid.inode"
 	Set gtmtypes("unix_db_info",146,"off")=952
-	Set gtmtypes("unix_db_info",146,"len")=24
-	Set gtmtypes("unix_db_info",146,"type")="unix_file_id"
-	Set gtmtypfldindx("unix_db_info","fileid")=146
-	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid.inode"
-	Set gtmtypes("unix_db_info",147,"off")=952
+	Set gtmtypes("unix_db_info",146,"len")=8
+	Set gtmtypes("unix_db_info",146,"type")="ino_t"
+	Set gtmtypfldindx("unix_db_info","fileid.inode")=146
+	Set gtmtypes("unix_db_info",147,"name")="unix_db_info.fileid.device"
+	Set gtmtypes("unix_db_info",147,"off")=960
 	Set gtmtypes("unix_db_info",147,"len")=8
-	Set gtmtypes("unix_db_info",147,"type")="ino_t"
-	Set gtmtypfldindx("unix_db_info","fileid.inode")=147
-	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.device"
-	Set gtmtypes("unix_db_info",148,"off")=960
-	Set gtmtypes("unix_db_info",148,"len")=8
-	Set gtmtypes("unix_db_info",148,"type")="dev_t"
-	Set gtmtypfldindx("unix_db_info","fileid.device")=148
-	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.fileid.st_gen"
-	Set gtmtypes("unix_db_info",149,"off")=968
+	Set gtmtypes("unix_db_info",147,"type")="dev_t"
+	Set gtmtypfldindx("unix_db_info","fileid.device")=147
+	Set gtmtypes("unix_db_info",148,"name")="unix_db_info.fileid.st_gen"
+	Set gtmtypes("unix_db_info",148,"off")=968
+	Set gtmtypes("unix_db_info",148,"len")=4
+	Set gtmtypes("unix_db_info",148,"type")="unsigned-int"
+	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=148
+	Set gtmtypes("unix_db_info",149,"name")="unix_db_info.semid"
+	Set gtmtypes("unix_db_info",149,"off")=976
 	Set gtmtypes("unix_db_info",149,"len")=4
-	Set gtmtypes("unix_db_info",149,"type")="unsigned-int"
-	Set gtmtypfldindx("unix_db_info","fileid.st_gen")=149
-	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.semid"
-	Set gtmtypes("unix_db_info",150,"off")=976
-	Set gtmtypes("unix_db_info",150,"len")=4
-	Set gtmtypes("unix_db_info",150,"type")="int"
-	Set gtmtypfldindx("unix_db_info","semid")=150
-	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.gt_sem_ctime"
-	Set gtmtypes("unix_db_info",151,"off")=984
-	Set gtmtypes("unix_db_info",151,"len")=8
-	Set gtmtypes("unix_db_info",151,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=151
-	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.shmid"
-	Set gtmtypes("unix_db_info",152,"off")=992
-	Set gtmtypes("unix_db_info",152,"len")=4
-	Set gtmtypes("unix_db_info",152,"type")="int"
-	Set gtmtypfldindx("unix_db_info","shmid")=152
-	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.gt_shm_ctime"
-	Set gtmtypes("unix_db_info",153,"off")=1000
-	Set gtmtypes("unix_db_info",153,"len")=8
-	Set gtmtypes("unix_db_info",153,"type")="time_t"
-	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=153
-	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.ftok_semid"
-	Set gtmtypes("unix_db_info",154,"off")=1008
+	Set gtmtypes("unix_db_info",149,"type")="int"
+	Set gtmtypfldindx("unix_db_info","semid")=149
+	Set gtmtypes("unix_db_info",150,"name")="unix_db_info.gt_sem_ctime"
+	Set gtmtypes("unix_db_info",150,"off")=984
+	Set gtmtypes("unix_db_info",150,"len")=8
+	Set gtmtypes("unix_db_info",150,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_sem_ctime")=150
+	Set gtmtypes("unix_db_info",151,"name")="unix_db_info.shmid"
+	Set gtmtypes("unix_db_info",151,"off")=992
+	Set gtmtypes("unix_db_info",151,"len")=4
+	Set gtmtypes("unix_db_info",151,"type")="int"
+	Set gtmtypfldindx("unix_db_info","shmid")=151
+	Set gtmtypes("unix_db_info",152,"name")="unix_db_info.gt_shm_ctime"
+	Set gtmtypes("unix_db_info",152,"off")=1000
+	Set gtmtypes("unix_db_info",152,"len")=8
+	Set gtmtypes("unix_db_info",152,"type")="time_t"
+	Set gtmtypfldindx("unix_db_info","gt_shm_ctime")=152
+	Set gtmtypes("unix_db_info",153,"name")="unix_db_info.ftok_semid"
+	Set gtmtypes("unix_db_info",153,"off")=1008
+	Set gtmtypes("unix_db_info",153,"len")=4
+	Set gtmtypes("unix_db_info",153,"type")="int"
+	Set gtmtypfldindx("unix_db_info","ftok_semid")=153
+	Set gtmtypes("unix_db_info",154,"name")="unix_db_info.key"
+	Set gtmtypes("unix_db_info",154,"off")=1016
 	Set gtmtypes("unix_db_info",154,"len")=4
-	Set gtmtypes("unix_db_info",154,"type")="int"
-	Set gtmtypfldindx("unix_db_info","ftok_semid")=154
-	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.new_shm"
-	Set gtmtypes("unix_db_info",155,"off")=1012
+	Set gtmtypes("unix_db_info",154,"type")="key_t"
+	Set gtmtypfldindx("unix_db_info","key")=154
+	Set gtmtypes("unix_db_info",155,"name")="unix_db_info.raw"
+	Set gtmtypes("unix_db_info",155,"off")=1020
 	Set gtmtypes("unix_db_info",155,"len")=4
 	Set gtmtypes("unix_db_info",155,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_shm")=155
-	Set gtmtypes("unix_db_info",156,"name")="unix_db_info.new_sem"
-	Set gtmtypes("unix_db_info",156,"off")=1016
-	Set gtmtypes("unix_db_info",156,"len")=4
-	Set gtmtypes("unix_db_info",156,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","new_sem")=156
-	Set gtmtypes("unix_db_info",157,"name")="unix_db_info.grabbed_ftok_sem"
-	Set gtmtypes("unix_db_info",157,"off")=1020
-	Set gtmtypes("unix_db_info",157,"len")=4
-	Set gtmtypes("unix_db_info",157,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_ftok_sem")=157
-	Set gtmtypes("unix_db_info",158,"name")="unix_db_info.grabbed_access_sem"
-	Set gtmtypes("unix_db_info",158,"off")=1024
-	Set gtmtypes("unix_db_info",158,"len")=4
-	Set gtmtypes("unix_db_info",158,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","grabbed_access_sem")=158
-	Set gtmtypes("unix_db_info",159,"name")="unix_db_info.counter_acc_incremented"
-	Set gtmtypes("unix_db_info",159,"off")=1028
-	Set gtmtypes("unix_db_info",159,"len")=4
-	Set gtmtypes("unix_db_info",159,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_acc_incremented")=159
-	Set gtmtypes("unix_db_info",160,"name")="unix_db_info.counter_ftok_incremented"
-	Set gtmtypes("unix_db_info",160,"off")=1032
-	Set gtmtypes("unix_db_info",160,"len")=4
-	Set gtmtypes("unix_db_info",160,"type")="boolean_t"
-	Set gtmtypfldindx("unix_db_info","counter_ftok_incremented")=160
-	Set gtmtypes("unix_db_info",161,"name")="unix_db_info.key"
-	Set gtmtypes("unix_db_info",161,"off")=1036
-	Set gtmtypes("unix_db_info",161,"len")=4
-	Set gtmtypes("unix_db_info",161,"type")="key_t"
-	Set gtmtypfldindx("unix_db_info","key")=161
-	Set gtmtypes("unix_db_info",162,"name")="unix_db_info.raw"
-	Set gtmtypes("unix_db_info",162,"off")=1040
-	Set gtmtypes("unix_db_info",162,"len")=1
-	Set gtmtypes("unix_db_info",162,"type")="char"
-	Set gtmtypfldindx("unix_db_info","raw")=162
+	Set gtmtypfldindx("unix_db_info","raw")=155
 	;
 	Set gtmtypes("unix_file_id")="struct"
 	Set gtmtypes("unix_file_id",0)=3
diff --git a/sr_x86_64/cmerrors_ctl.c b/sr_x86_64/cmerrors_ctl.c
index c878c30..5e6fa3b 100644
--- a/sr_x86_64/cmerrors_ctl.c
+++ b/sr_x86_64/cmerrors_ctl.c
@@ -13,12 +13,12 @@
 #include "error.h"
 
 LITDEF	err_msg cmerrors[] = {
-	"INVPROT", "Invalid protocol specified by remote partner", 0,
-	"REGNTFND", "Region referenced not initialized", 0,
-	"CMINTQUE", "Interlock failure accessing GT.CM server queue", 0,
-	"INVINTMSG", "Invalid interrupt message received.", 0,
-	"CMEXCDASTLM", "Exceeded AST limit. Cannot open database.", 0,
-	"CMSYSSRV", "Error doing system service, status:", 0,
+	{ "INVPROT", "Invalid protocol specified by remote partner", 0 },
+	{ "REGNTFND", "Region referenced not initialized", 0 },
+	{ "CMINTQUE", "Interlock failure accessing GT.CM server queue", 0 },
+	{ "INVINTMSG", "Invalid interrupt message received.", 0 },
+	{ "CMEXCDASTLM", "Exceeded AST limit. Cannot open database.", 0 },
+	{ "CMSYSSRV", "Error doing system service, status:", 0 },
 };
 
 LITDEF	int CMERR_INVPROT = 150568970;
diff --git a/sr_x86_64/cmierrors_ctl.c b/sr_x86_64/cmierrors_ctl.c
index f76581d..43d69d2 100644
--- a/sr_x86_64/cmierrors_ctl.c
+++ b/sr_x86_64/cmierrors_ctl.c
@@ -13,31 +13,31 @@
 #include "error.h"
 
 LITDEF	err_msg cmierrors[] = {
-	"DCNINPROG", "Attempt to initiate operation while disconnect was in progress", 0,
-	"LNKNOTIDLE", "Attempt to initiate operation before previous operation completed", 0,
-	"ASSERT", "Assert failed !AD line !UL", 3,
-	"CMICHECK", "Internal CMI error. Report to your GT.M Support Channel.", 0,
-	"NETFAIL", "Failure of Net operation", 0,
-	"BADPORT", "Environment variable GTCM_TCP_PORT is not an integer", 0,
-	"NOTND", "tnd argument to cmi_init is NULL", 0,
-	"OVERRUN", "mbf argument in CLB is not large enough for packet", 0,
-	"NOSERVENT", "Sevices data lookup failure", 0,
-	"BADIPADDRPORT", "Bad specification of [ip address:port] in tnd", 0,
-	"REASON_CONNECT", "Incoming connection", 0,
-	"REASON_INTMSG", "Incoming urgent data", 0,
-	"REASON_DISCON", "Disconnect encountered", 0,
-	"REASON_ABORT", "Link aborted", 0,
-	"REASON_EXIT", "Exit", 0,
-	"REASON_PATHLOST", "Network path lost", 0,
-	"REASON_PROTOCOL", "Protocol error", 0,
-	"REASON_THIRDPARTY", "Thirdparty error", 0,
-	"REASON_TIMEOUT", "Network timeout", 0,
-	"REASON_NETSHUT", "Shutdown received", 0,
-	"REASON_REJECT", "Connection rejected", 0,
-	"REASON_IODONE", "I/O done", 0,
-	"REASON_OVERRUN", "Input overran buffer", 0,
-	"REASON_STATUS", "Status", 0,
-	"REASON_CONFIRM", "Confirm", 0,
+	{ "DCNINPROG", "Attempt to initiate operation while disconnect was in progress", 0 },
+	{ "LNKNOTIDLE", "Attempt to initiate operation before previous operation completed", 0 },
+	{ "ASSERT", "Assert failed !AD line !UL", 3 },
+	{ "CMICHECK", "Internal CMI error. Report to your GT.M Support Channel.", 0 },
+	{ "NETFAIL", "Failure of Net operation", 0 },
+	{ "BADPORT", "Environment variable GTCM_TCP_PORT is not an integer", 0 },
+	{ "NOTND", "tnd argument to cmi_init is NULL", 0 },
+	{ "OVERRUN", "mbf argument in CLB is not large enough for packet", 0 },
+	{ "NOSERVENT", "Sevices data lookup failure", 0 },
+	{ "BADIPADDRPORT", "Bad specification of [ip address:port] in tnd", 0 },
+	{ "REASON_CONNECT", "Incoming connection", 0 },
+	{ "REASON_INTMSG", "Incoming urgent data", 0 },
+	{ "REASON_DISCON", "Disconnect encountered", 0 },
+	{ "REASON_ABORT", "Link aborted", 0 },
+	{ "REASON_EXIT", "Exit", 0 },
+	{ "REASON_PATHLOST", "Network path lost", 0 },
+	{ "REASON_PROTOCOL", "Protocol error", 0 },
+	{ "REASON_THIRDPARTY", "Thirdparty error", 0 },
+	{ "REASON_TIMEOUT", "Network timeout", 0 },
+	{ "REASON_NETSHUT", "Shutdown received", 0 },
+	{ "REASON_REJECT", "Connection rejected", 0 },
+	{ "REASON_IODONE", "I/O done", 0 },
+	{ "REASON_OVERRUN", "Input overran buffer", 0 },
+	{ "REASON_STATUS", "Status", 0 },
+	{ "REASON_CONFIRM", "Confirm", 0 },
 };
 
 LITDEF	int CMI_DCNINPROG = 150634508;
diff --git a/sr_x86_64/gdeerrors_ctl.c b/sr_x86_64/gdeerrors_ctl.c
index 494654e..11a983b 100644
--- a/sr_x86_64/gdeerrors_ctl.c
+++ b/sr_x86_64/gdeerrors_ctl.c
@@ -13,90 +13,90 @@
 #include "error.h"
 
 LITDEF	err_msg gdeerrors[] = {
-	"BLKSIZ512", "Block size !AD rounds to !AD", 4,
-	"EXECOM", "Executing command file !AD", 2,
-	"FILENOTFND", "File !AD not found", 2,
-	"GDCREATE", "Creating Global Directory file !/	!AD", 2,
-	"GDECHECK", "Internal GDE consistency check", 0,
-	"GDUNKNFMT", "!AD !/	is not formatted as a Global Directory", 2,
-	"GDUPDATE", "Updating Global Directory file !/	!AD", 2,
-	"GDUSEDEFS", "Using defaults for Global Directory !/	!AD", 2,
-	"ILLCHAR", "!AD is not a legal character in this context", 2,
-	"INPINTEG", "Input integrity error -- aborting load", 0,
-	"KEYTOOBIG", "But record size !AD can only support key size !AD", 4,
-	"KEYSIZIS", "Key size is !AD", 2,
-	"KEYWRDAMB", "!AD is ambiguous for !AD", 4,
-	"KEYWRDBAD", "!AD is not a valid !AD in this context", 4,
-	"LOADGD", "Loading Global Directory file !/	!AD", 2,
-	"LOGOFF", "No longer logging to file !AD", 2,
-	"LOGON", "Logging to file !AD", 2,
-	"LVSTARALON", "The * name cannot be deleted or renamed", 0,
-	"MAPBAD", "!AD !AD for !AD !AD does not exist", 8,
-	"MAPDUP", "!AD !AD and !AD both map to !AD !AD", 10,
-	"NAMENDBAD", "Subscripted name !AD must end with right parenthesis", 2,
-	"NOACTION", "Not updating Global Directory !AD", 2,
-	"RPAREN", "List must end with right parenthesis or continue with comma", 0,
-	"NOEXIT", "Cannot exit because of verification failure", 0,
-	"NOLOG", "Logging is currently disabled!/ Log file is !AD.", 2,
-	"NOVALUE", "Qualifier !AD does not take a value", 2,
-	"NONEGATE", "Qualifier !AD cannot be negated", 2,
-	"OBJDUP", "!AD !AD already exists", 4,
-	"OBJNOTADD", "Not adding !AD !AD", 4,
-	"OBJNOTCHG", "Not changing !AD !AD", 4,
-	"OBJNOTFND", "!AD !AD does not exist", 4,
-	"OBJREQD", "!AD required", 2,
-	"PREFIXBAD", "!AD - !AD !AD must start with an alphabetic character", 6,
-	"QUALBAD", "!AD is not a valid qualifier", 2,
-	"QUALDUP", "!AD qualifier appears more than once in the list", 2,
-	"QUALREQD", "!AD required", 2,
-	"RECTOOBIG", "Block size !AD and !AD reserved bytes limit record size to !AD", 6,
-	"RECSIZIS", "Record size is !AD", 2,
-	"REGIS", "in region !AD", 2,
-	"SEGIS", "in !AD segment !AD", 4,
-	"VALTOOBIG", "!AD is larger than the maximum of !AD for a !AD", 6,
-	"VALTOOLONG", "!AD exceeds the maximum length of !AD for a !AD", 6,
-	"VALTOOSMALL", "!AD is less than the minimum of !AD for a !AD", 6,
-	"VALUEBAD", "!AD is not a valid !AD", 4,
-	"VALUEREQD", "Qualifier !AD requires a value", 2,
-	"VERIFY", "Verification !AD", 2,
-	"BUFSIZIS", "Journal Buffer size is !AD", 2,
-	"BUFTOOSMALL", "But block size !AD requires buffer size !AD", 4,
-	"MMNOBEFORIMG", "MM segments do not support before image jounaling", 0,
-	"NOJNL", "!AD segments do not support journaling", 2,
-	"GDREADERR", "Error reading Global Directory: !AD", 2,
-	"GDNOTSET", "Global Directory not changed because the current GD cannot be written", 0,
-	"INVGBLDIR", "Invalid Global Directory spec: !AD.!/Continuing with !AD", 4,
-	"WRITEERROR", "Cannot exit because of write failure.  Reason for failure: !AD", 2,
-	"NONASCII", "!AD is illegal for a !AD as it contains non-ASCII characters", 4,
-	"CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2,
-	"JNLALLOCGROW", "Increased Journal ALLOCATION from [!AD blocks] to [!AD blocks] to match AUTOSWITCHLIMIT for !AD !AD", 8,
-	"KEYFORBLK", "But block size !AD and reserved bytes !AD limit key size to !AD", 6,
-	"STRMISSQUOTE", "Missing double-quote at end of string specification !AD", 2,
-	"GBLNAMEIS", "in gblname !AD", 2,
-	"NAMSUBSEMPTY", "Subscript #!UL is empty in name specification", 3,
-	"NAMSUBSBAD", "Subscript #!UL with value !AD in name specification is an invalid number or string", 3,
-	"NAMNUMSUBSOFLOW", "Subscript #!UL with value !AD in name specification has a numeric overflow", 3,
-	"NAMNUMSUBNOTEXACT", "Subscript #!UL with value !AD in name specification is not an exact GT.M number", 3,
-	"MISSINGDELIM", "Delimiter !AD expected before !AD !AD", 6,
-	"NAMRANGELASTSUB", "Ranges in name specification !AD are allowed only in the last subscript", 2,
-	"NAMSTARSUBSMIX", "Name specification !AD cannot contain * and subscripts at the same time", 2,
-	"NAMLPARENNOTBEG", "Subscripted Name specification !AD needs to have a left parenthesis at the beginning of subscripts", 2,
-	"NAMRPARENNOTEND", "Subscripted Name specification !AD cannot have anything following the right parenthesis at the end of subscripts", 2,
-	"NAMONECOLON", "Subscripted Name specification !AD must have at most one colon (range) specification", 2,
-	"NAMRPARENMISSING", "Subscripted Name specification !AD is missing one or more right parentheses at the end of subscripts", 2,
-	"NAMGVSUBSMAX", "Subscripted Name specification !AD has more than the maximum # of subscripts (!UL)", 3,
-	"NAMNOTSTRSUBS", "Subscript #!UL with value !AD in name specification is not a properly formatted string subscript", 3,
-	"NAMSTRSUBSFUN", "Subscript #!UL with value !AD in name specification uses function other than $C/$CHAR/$ZCH/$ZCHAR", 3,
-	"NAMSTRSUBSLPAREN", "Subscript #!UL with value !AD in name specification does not have left parenthesis following $ specification", 3,
-	"NAMSTRSUBSCHINT", "Subscript #!UL with value !AD in name specification does not have a positive integer inside $C/$CHAR/$ZCH/$ZCHAR", 3,
-	"NAMSTRSUBSCHARG", "Subscript #!UL with value !AD in name specification specifies a $C/$ZCH with number !UL that is invalid in the current $zchset", 4,
-	"GBLNAMCOLLUNDEF", "Error opening shared library of collation sequence #!UL for GBLNAME !AD", 3,
-	"NAMRANGEORDER", "Range in name specification !AD specifies out-of-order subscripts using collation sequence #!UL", 3,
-	"NAMRANGEOVERLAP", "Range in name specifications !AD and !AD overlap using collation sequence #!UL", 5,
-	"NAMGVSUBOFLOW", "Subscripted name !AD...!AD is too long to represent in the database using collation value #!UL", 5,
-	"GBLNAMCOLLRANGE", "Collation sequence #!UL is out of range (0 thru 255)", 3,
-	"STDNULLCOLLREQ", "Region !AD needs Standard Null Collation enabled because global !AD spans through it", 4,
-	"GBLNAMCOLLVER", "Global directory indicates GBLNAME !AD has collation sequence #!UL with a version #!UL but shared library reports different version #!UL", 5,
+	{ "BLKSIZ512", "Block size !AD rounds to !AD", 4 },
+	{ "EXECOM", "Executing command file !AD", 2 },
+	{ "FILENOTFND", "File !AD not found", 2 },
+	{ "GDCREATE", "Creating Global Directory file !/	!AD", 2 },
+	{ "GDECHECK", "Internal GDE consistency check", 0 },
+	{ "GDUNKNFMT", "!AD !/	is not formatted as a Global Directory", 2 },
+	{ "GDUPDATE", "Updating Global Directory file !/	!AD", 2 },
+	{ "GDUSEDEFS", "Using defaults for Global Directory !/	!AD", 2 },
+	{ "ILLCHAR", "!AD is not a legal character in this context", 2 },
+	{ "INPINTEG", "Input integrity error -- aborting load", 0 },
+	{ "KEYTOOBIG", "But record size !AD can only support key size !AD", 4 },
+	{ "KEYSIZIS", "Key size is !AD", 2 },
+	{ "KEYWRDAMB", "!AD is ambiguous for !AD", 4 },
+	{ "KEYWRDBAD", "!AD is not a valid !AD in this context", 4 },
+	{ "LOADGD", "Loading Global Directory file !/	!AD", 2 },
+	{ "LOGOFF", "No longer logging to file !AD", 2 },
+	{ "LOGON", "Logging to file !AD", 2 },
+	{ "LVSTARALON", "The * name cannot be deleted or renamed", 0 },
+	{ "MAPBAD", "!AD !AD for !AD !AD does not exist", 8 },
+	{ "MAPDUP", "!AD !AD and !AD both map to !AD !AD", 10 },
+	{ "NAMENDBAD", "Subscripted name !AD must end with right parenthesis", 2 },
+	{ "NOACTION", "Not updating Global Directory !AD", 2 },
+	{ "RPAREN", "List must end with right parenthesis or continue with comma", 0 },
+	{ "NOEXIT", "Cannot exit because of verification failure", 0 },
+	{ "NOLOG", "Logging is currently disabled!/ Log file is !AD.", 2 },
+	{ "NOVALUE", "Qualifier !AD does not take a value", 2 },
+	{ "NONEGATE", "Qualifier !AD cannot be negated", 2 },
+	{ "OBJDUP", "!AD !AD already exists", 4 },
+	{ "OBJNOTADD", "Not adding !AD !AD", 4 },
+	{ "OBJNOTCHG", "Not changing !AD !AD", 4 },
+	{ "OBJNOTFND", "!AD !AD does not exist", 4 },
+	{ "OBJREQD", "!AD required", 2 },
+	{ "PREFIXBAD", "!AD - !AD !AD must start with an alphabetic character", 6 },
+	{ "QUALBAD", "!AD is not a valid qualifier", 2 },
+	{ "QUALDUP", "!AD qualifier appears more than once in the list", 2 },
+	{ "QUALREQD", "!AD required", 2 },
+	{ "RECTOOBIG", "Block size !AD and !AD reserved bytes limit record size to !AD", 6 },
+	{ "RECSIZIS", "Record size is !AD", 2 },
+	{ "REGIS", "in region !AD", 2 },
+	{ "SEGIS", "in !AD segment !AD", 4 },
+	{ "VALTOOBIG", "!AD is larger than the maximum of !AD for a !AD", 6 },
+	{ "VALTOOLONG", "!AD exceeds the maximum length of !AD for a !AD", 6 },
+	{ "VALTOOSMALL", "!AD is less than the minimum of !AD for a !AD", 6 },
+	{ "VALUEBAD", "!AD is not a valid !AD", 4 },
+	{ "VALUEREQD", "Qualifier !AD requires a value", 2 },
+	{ "VERIFY", "Verification !AD", 2 },
+	{ "BUFSIZIS", "Journal Buffer size is !AD", 2 },
+	{ "BUFTOOSMALL", "But block size !AD requires buffer size !AD", 4 },
+	{ "MMNOBEFORIMG", "MM segments do not support before image jounaling", 0 },
+	{ "NOJNL", "!AD segments do not support journaling", 2 },
+	{ "GDREADERR", "Error reading Global Directory: !AD", 2 },
+	{ "GDNOTSET", "Global Directory not changed because the current GD cannot be written", 0 },
+	{ "INVGBLDIR", "Invalid Global Directory spec: !AD.!/Continuing with !AD", 4 },
+	{ "WRITEERROR", "Cannot exit because of write failure.  Reason for failure: !AD", 2 },
+	{ "NONASCII", "!AD is illegal for a !AD as it contains non-ASCII characters", 4 },
+	{ "CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2 },
+	{ "JNLALLOCGROW", "Increased Journal ALLOCATION from [!AD blocks] to [!AD blocks] to match AUTOSWITCHLIMIT for !AD !AD", 8 },
+	{ "KEYFORBLK", "But block size !AD and reserved bytes !AD limit key size to !AD", 6 },
+	{ "STRMISSQUOTE", "Missing double-quote at end of string specification !AD", 2 },
+	{ "GBLNAMEIS", "in gblname !AD", 2 },
+	{ "NAMSUBSEMPTY", "Subscript #!UL is empty in name specification", 3 },
+	{ "NAMSUBSBAD", "Subscript #!UL with value !AD in name specification is an invalid number or string", 3 },
+	{ "NAMNUMSUBSOFLOW", "Subscript #!UL with value !AD in name specification has a numeric overflow", 3 },
+	{ "NAMNUMSUBNOTEXACT", "Subscript #!UL with value !AD in name specification is not an exact GT.M number", 3 },
+	{ "MISSINGDELIM", "Delimiter !AD expected before !AD !AD", 6 },
+	{ "NAMRANGELASTSUB", "Ranges in name specification !AD are allowed only in the last subscript", 2 },
+	{ "NAMSTARSUBSMIX", "Name specification !AD cannot contain * and subscripts at the same time", 2 },
+	{ "NAMLPARENNOTBEG", "Subscripted Name specification !AD needs to have a left parenthesis at the beginning of subscripts", 2 },
+	{ "NAMRPARENNOTEND", "Subscripted Name specification !AD cannot have anything following the right parenthesis at the end of subscripts", 2 },
+	{ "NAMONECOLON", "Subscripted Name specification !AD must have at most one colon (range) specification", 2 },
+	{ "NAMRPARENMISSING", "Subscripted Name specification !AD is missing one or more right parentheses at the end of subscripts", 2 },
+	{ "NAMGVSUBSMAX", "Subscripted Name specification !AD has more than the maximum # of subscripts (!UL)", 3 },
+	{ "NAMNOTSTRSUBS", "Subscript #!UL with value !AD in name specification is not a properly formatted string subscript", 3 },
+	{ "NAMSTRSUBSFUN", "Subscript #!UL with value !AD in name specification uses function other than $C/$CHAR/$ZCH/$ZCHAR", 3 },
+	{ "NAMSTRSUBSLPAREN", "Subscript #!UL with value !AD in name specification does not have left parenthesis following $ specification", 3 },
+	{ "NAMSTRSUBSCHINT", "Subscript #!UL with value !AD in name specification does not have a positive integer inside $C/$CHAR/$ZCH/$ZCHAR", 3 },
+	{ "NAMSTRSUBSCHARG", "Subscript #!UL with value !AD in name specification specifies a $C/$ZCH with number !UL that is invalid in the current $zchset", 4 },
+	{ "GBLNAMCOLLUNDEF", "Error opening shared library of collation sequence #!UL for GBLNAME !AD", 3 },
+	{ "NAMRANGEORDER", "Range in name specification !AD specifies out-of-order subscripts using collation sequence #!UL", 3 },
+	{ "NAMRANGEOVERLAP", "Range in name specifications !AD and !AD overlap using collation sequence #!UL", 5 },
+	{ "NAMGVSUBOFLOW", "Subscripted name !AD...!AD is too long to represent in the database using collation value #!UL", 5 },
+	{ "GBLNAMCOLLRANGE", "Collation sequence #!UL is out of range (0 thru 255)", 3 },
+	{ "STDNULLCOLLREQ", "Region !AD needs Standard Null Collation enabled because global !AD spans through it", 4 },
+	{ "GBLNAMCOLLVER", "Global directory indicates GBLNAME !AD has collation sequence #!UL with a version #!UL but shared library reports different version #!UL", 5 },
 };
 
 LITDEF	int GDE_BLKSIZ512 = 150503435;
diff --git a/sr_x86_64/merrors_ansi.h b/sr_x86_64/merrors_ansi.h
index 5fb54b5..9dee92b 100644
--- a/sr_x86_64/merrors_ansi.h
+++ b/sr_x86_64/merrors_ansi.h
@@ -1450,4 +1450,5 @@ const static readonly int error_ansi[] = {
 	   0,	/* MUREENCRYPTV4NOALLOW */
 	   0,	/* ENCRYPTCONFLT */
 	   0,	/* JNLPOOLRECOVERY */
+	   0,	/* LOCKTIMINGINTP */
 	};
diff --git a/sr_x86_64/merrors_ctl.c b/sr_x86_64/merrors_ctl.c
index 71fe788..2afc71f 100644
--- a/sr_x86_64/merrors_ctl.c
+++ b/sr_x86_64/merrors_ctl.c
@@ -13,1445 +13,1446 @@
 #include "error.h"
 
 LITDEF	err_msg merrors[] = {
-	"ACK", "", 0,
-	"BREAKZST", "Break instruction encountered during ZSTEP action", 0,
-	"BADACCMTHD", "Invalid access method was specified, file not created", 0,
-	"BADJPIPARAM", "!AD is not a legal parameter for $ZGETJPI()", 2,
-	"BADSYIPARAM", "!AD is not a legal parameter for $ZGETSYI()", 2,
-	"BITMAPSBAD", "Database bit maps are incorrect", 0,
-	"BREAK", "Break instruction encountered", 0,
-	"BREAKDEA", "Break instruction encountered during Device error action", 0,
-	"BREAKZBA", "Break instruction encountered during ZBREAK action", 0,
-	"STATCNT", "!AD:!_  Key cnt: !UL  max subsc len: !UL  max data len: !UL", 5,
-	"BTFAIL", "The database block table is corrupt; error type !UL", 1,
-	"MUPRECFLLCK", "Database file !AD is locked by MUPIP RECOVER.  Could not secure access.", 2,
-	"CMD", "Command expected but not found", 0,
-	"COLON", "Colon (:) expected in this context", 0,
-	"COMMA", "Comma expected in this context", 0,
-	"COMMAORRPAREXP", "Comma or right parenthesis expected but not found", 0,
-	"COMMENT", "Comment line.  Placed zbreak at next executable line.", 0,
-	"CTRAP", "Character trap $C(!UL) encountered", 1,
-	"CTRLC", "CTRL_C encountered", 0,
-	"CTRLY", "User interrupt encountered", 0,
-	"DBCCERR", "Interlock instruction failure in critical mechanism for region !AD", 2,
-	"DUPTOKEN", "Token 0x!16 at XQ is duplicate in the journal file !AD for database !AD", 5,
-	"DBJNLNOTMATCH", "Database !AD points to journal file name !AD but the journal file points to database file !AD", 6,
-	"DBFILERR", "Error with database file !AD", 2,
-	"DBNOTGDS", "!AD - Unrecognized database file format", 2,
-	"DBOPNERR", "Error opening database file !AD", 2,
-	"DBRDERR", "Cannot read database file !AD after opening", 2,
-	"CCEDUMPNOW", "", 0,
-	"DEVPARINAP", "Device parameter inappropriate to this command", 0,
-	"RECORDSTAT", "!AD:!_  Key cnt: !@ZQ  max subsc len: !UL  max rec len: !UL  max node len: !UL", 6,
-	"NOTGBL", "Expected a global variable name starting with an up-arrow (^): !AD", 2,
-	"DEVPARPROT", "The protection specification is invalid", 0,
-	"PREMATEOF", "Premature end of file detected", 0,
-	"GVINVALID", "!_!AD!/!_!_!_Invalid global name", 2,
-	"DEVPARTOOBIG", "String deviceparameter exceeds 255 character limit", 0,
-	"DEVPARUNK", "Deviceparameter unknown", 0,
-	"DEVPARVALREQ", "A value is required for this device parameter", 0,
-	"DEVPARMNEG", "Deviceparameter must be a positive value", 0,
-	"DSEBLKRDFAIL", "Failed attempt to read block", 0,
-	"DSEFAIL", "DSE failed.  Failure code: !AD.", 2,
-	"NOTALLREPLON", "Replication off for !AD regions", 2,
-	"BADLKIPARAM", "!AD is not a legal parameter for $ZGETLKI()", 2,
-	"JNLREADBOF", "Beginning of journal file encountered for !AD", 2,
-	"DVIKEYBAD", "$ZGETDVI(\"!AD\",\"!AD\") contains an illegal keyword", 4,
-	"ENQ", "", 0,
-	"EQUAL", "Equal sign expected but not found", 0,
-	"ERRORSUMMARY", "Errors occurred during compilation", 0,
-	"ERRWEXC", "Error while processing exception string", 0,
-	"ERRWIOEXC", "Error while processing I/O exception string", 0,
-	"ERRWZBRK", "Error while processing ZBREAK action string", 0,
-	"ERRWZTRAP", "Error while processing $ZTRAP", 0,
-	"NUMUNXEOR", "!_!AD!/!_!_!_unexpected end of record in numeric subscript", 2,
-	"EXPR", "Expression expected but not found", 0,
-	"STRUNXEOR", "!_!AD!/!_!_!_unexpected end of record in string subscript", 2,
-	"JNLEXTEND", "Journal file extension error for file !AD", 2,
-	"FCHARMAXARGS", "Argument count of $CHAR function exceeded the maximum of 255", 0,
-	"FCNSVNEXPECTED", "Function or special variable expected in this context", 0,
-	"FNARGINC", "Format specifiers to $FNUMBER are incompatible: \"!AD\"", 2,
-	"JNLACCESS", "Error accessing journal file !AD", 2,
-	"TRANSNOSTART", "ZTCOMMIT(s) issued without corresponding ZTSTART(s)", 0,
-	"FNUMARG", "$FNUMBER format specifier \"!AD\" contains an illegal character: \"!AD\"", 4,
-	"FOROFLOW", "FOR commands nested more than !UL deep on a line", 1,
-	"YDIRTSZ", "Size of YDIRT data too large", 0,
-	"JNLSUCCESS", "!AD successful", 2,
-	"GBLNAME", "Either an identifier or a left parenthesis is expected after a ^ in this context", 0,
-	"GBLOFLOW", "Database segment is full", 0,
-	"CORRUPT", "Corrupt input in Blk # !UL, Key #!UL; resuming with next global block", 2,
-	"GTMCHECK", "Internal GT.M error--Report to your GT.M Support Channel", 0,
-	"GVDATAFAIL", "Global variable $DATA function failed.  Failure code: !AD.", 2,
-	"EORNOTFND", "!_!AD!/!_!_!_End of record not found", 2,
-	"GVGETFAIL", "Global variable retrieval failed.  Failure code: !AD.", 2,
-	"GVIS", "!_!_Global variable: !AD", 2,
-	"GVKILLFAIL", "Global variable kill failed.  Failure code: !AD.", 2,
-	"GVNAKED", "Illegal naked global reference", 0,
-	"GVNEXTARG", "Argument to global variable $NEXT must be subscripted", 0,
-	"GVORDERFAIL", "Global variable $ORDER or $NEXT function failed.  Failure code: !AD.", 2,
-	"GVPUTFAIL", "Global variable put failed.  Failure code: !AD.", 2,
-	"PATTABSYNTAX", "Error in !AD at line !UL", 3,
-	"GVSUBOFLOW", "Maximum combined length of subscripts exceeded", 0,
-	"GVUNDEF", "Global variable undefined: !AD", 2,
-	"TRANSNEST", "Maximum transaction nesting levels exceeded", 0,
-	"INDEXTRACHARS", "Indirection string contains extra trailing characters", 0,
-	"CORRUPTNODE", "Corrupt input in Record # !UL, Key #!UL; resuming with next global node", 2,
-	"INDRMAXLEN", "Maximum length !UL of an indirection argument was exceeded", 1,
-	"INSFFBCNT", "Insufficient byte count quota left for requested operation", 0,
-	"INTEGERRS", "Database integrity errors", 0,
-	"INVCMD", "Invalid command keyword encountered", 0,
-	"INVFCN", "Invalid function name", 0,
-	"INVOBJ", "Cannot ZLINK object file due to unexpected format", 0,
-	"INVSVN", "Invalid special variable name", 0,
-	"IOEOF", "Attempt to read past an end-of-file", 0,
-	"IONOTOPEN", "Attempt to USE an I/O device which has not been opened", 0,
-	"MUPIPINFO", "!AD", 2,
-	"IVTIME", "Invalid time specification: !AD", 2,
-	"JOBFAIL", "JOB command failure", 0,
-	"JOBLABOFF", "Label and offset not found in created process", 0,
-	"JOBPARNOVAL", "This job parameter cannot take a value", 0,
-	"JOBPARNUM", "The value of this job parameter must be an integer", 0,
-	"JOBPARSTR", "The value of this job parameter must be a string", 0,
-	"JOBPARUNK", "Job parameter unknown", 0,
-	"JOBPARVALREQ", "A value is required for this job parameter", 0,
-	"JUSTFRACT", "Fraction specifier to $JUSTIFY cannot be negative", 0,
-	"KEY2BIG", "Key size (!UL) is greater than maximum (!UL) for region: !AD", 4,
-	"LABELEXPECTED", "Label expected in this context", 0,
-	"LABELMISSING", "Label referenced but not defined: !AD", 2,
-	"LABELUNKNOWN", "Label referenced but not defined", 0,
-	"DIVZERO", "Attempt to divide by zero", 0,
-	"LKNAMEXPECTED", "An identifier is expected after a ^ in this context", 0,
-	"JNLRDERR", "Error reading journal file !AD.  Unable to initialize.", 2,
-	"LOADRUNNING", "Cannot ZLINK an active routine !AD", 2,
-	"LPARENMISSING", "Left parenthesis expected", 0,
-	"LSEXPECTED", "A line separator is expected here", 0,
-	"LVORDERARG", "Argument to local variable $NEXT must be subscripted", 0,
-	"MAXFORARGS", "Maximum number of arguments to a single FOR command exceeded", 0,
-	"TRANSMINUS", "Negative numbers not allowed with ZTCOMMIT", 0,
-	"MAXNRSUBSCRIPTS", "Maximum number of subscripts exceeded", 0,
-	"MAXSTRLEN", "Maximum string length exceeded", 0,
-	"JNLDBERR", "Journal file !AD does not correspond to database file !AD", 4,
-	"JNLFILOPN", "Error opening journal file !AD for database file !AD", 4,
-	"MBXRDONLY", "Mailbox is read only, cannot write to it", 0,
-	"JNLINVALID", "!AD is not a valid journal file !/ for database file: !AD", 4,
-	"MBXWRTONLY", "Mailbox is write only, cannot read from it", 0,
-	"MEMORY", "Central memory exhausted during request for !UJ bytes from 0x!XJ", 2,
-	"MTBLKTOOBIG", "Magtape BLOCK_SIZE exceeds maximum size allowed", 0,
-	"MTBLKTOOSM", "Magtape BLOCK_SIZE is less than !UL bytes", 1,
-	"MTFIXRECSZ", "BLOCK_SIZE !UL must be multiple of fixed record size !UL", 2,
-	"MTIS", "Magnetic tape: !AD", 2,
-	"MTRDBADBLK", "Block read too small, contained only !UL bytes, block size = !UL", 2,
-	"MTRDONLY", "Cannot write to a READONLY magtape", 0,
-	"MTRDTHENWRT", "Attempt to read after a write to a magtape", 0,
-	"MTRECGTRBLK", "Magtape record size cannot exceed block size", 0,
-	"MTRECTOOBIG", "Magtape record size exceeds maximum allowed", 0,
-	"MTRECTOOSM", "Magtape record size is too small for record type", 0,
-	"JNLTMQUAL3", "Time qualifier BEFORE_TIME=\"!AZ\" is less than the journal file(s) minimum timestamp=\"!AZ\"", 2,
-	"MULTLAB", "This label has been previously defined", 0,
-	"BLKCNT", "Last LOAD Block/RMS Record number: !UL", 1,
-	"CCEDUMPOFF", "", 0,
-	"NOPLACE", "Line specified in a ZBREAK cannot be found", 0,
-	"JNLCLOSE", "Error closing journal file !AD", 2,
-	"NOTPRINCIO", "Output currently directed to device !AD", 2,
-	"NOTTOEOFONPUT", "Not positioned to EOF on write (sequential organization only)", 0,
-	"NOZBRK", "No zbreak at that location", 0,
-	"NULSUBSC", "Null subscripts are not allowed for region: !AD", 2,
-	"NUMOFLOW", "Numeric overflow", 0,
-	"PARFILSPC", "Parameter: !AD  file specification: !AD", 4,
-	"PATCLASS", "Illegal character class for pattern code", 0,
-	"PATCODE", "Illegal syntax for pattern", 0,
-	"PATLIT", "Illegal character or unbalanced quotes for pattern literal", 0,
-	"PATMAXLEN", "Pattern code exceeds maximum length", 0,
-	"LPARENREQD", "!_!AD!/!_!_!_Left parenthesis expected", 2,
-	"PATUPPERLIM", "Pattern code upper limit is less than lower limit", 0,
-	"PCONDEXPECTED", "Post-conditional expression expected but not found", 0,
-	"PRCNAMLEN", "Process name !AD length is greater than !SL", 3,
-	"RANDARGNEG", "Random number generator argument must be greater than or equal to one", 0,
-	"DBPRIVERR", "No privilege for attempted update operation for file: !AD", 2,
-	"REC2BIG", "Record size (!UL) is greater than maximum (!UL) for region: !AD", 4,
-	"RHMISSING", "Right-hand side of expression expected", 0,
-	"DEVICEREADONLY", "Cannot write to read-only device", 0,
-	"COLLDATAEXISTS", "Collation type cannot be changed while data exists", 0,
-	"ROUTINEUNKNOWN", "Routine could not be found", 0,
-	"RPARENMISSING", "Right parenthesis expected", 0,
-	"RTNNAME", "Routine name expected here", 0,
-	"VIEWGVN", "Invalid global key name used with VIEW/$VIEW(): !AD", 2,
-	"RTSLOC", "!_!_At M source location !AD", 2,
-	"RWARG", "This is not a legal argument for a READ command", 0,
-	"RWFORMAT", "A valid format expression (!!, #, or ?expr) expected here", 0,
-	"JNLWRTDEFER", "Journal write start deferred", 0,
-	"SELECTFALSE", "No argument to $SELECT was true", 0,
-	"SPOREOL", "Either a space or an end-of-line was expected but not found", 0,
-	"SRCLIN", "!_!AD!/!_!AD", 4,
-	"SRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4,
-	"SRCLOCUNKNOWN", "!_!_M source location unknown", 0,
-	"STACKCRIT", "Stack space critical", 0,
-	"STACKOFLOW", "Stack overflow", 0,
-	"STACKUNDERFLO", "Stack underflow", 0,
-	"STRINGOFLOW", "String pool overflow", 0,
-	"SVNOSET", "Cannot SET this special variable", 0,
-	"VIEWFN", "View parameter is not valid with $VIEW()", 0,
-	"TERMASTQUOTA", "Process AST quota exceeded, cannot open terminal", 0,
-	"TEXTARG", "Invalid argument to $TEXT function", 0,
-	"TMPSTOREMAX", "Maximum space for temporary values exceeded", 0,
-	"VIEWCMD", "View parameter is not valid with VIEW command", 0,
-	"JNI", "!AD", 2,
-	"TXTSRCFMT", "$TEXT encountered an invalid source program file format", 0,
-	"UIDMSG", "Unidentified message received", 0,
-	"UIDSND", "Unidentified sender PID", 0,
-	"UNDEF", "Undefined local variable: !AD", 2,
-	"UNIMPLOP", "Unimplemented construct encountered", 0,
-	"VAREXPECTED", "Variable expected in this context", 0,
-	"VARRECBLKSZ", "Blocksize must be at least record size + 4 bytes", 0,
-	"MAXARGCNT", "Maximum number of arguments !UL exceeded", 1,
-	"GTMSECSHRSEMGET", "semget error errno = !UL", 1,
-	"VIEWARGCNT", "View parameter !AD has inappropriate number of subparameters", 2,
-	"GTMSECSHRDMNSTARTED", "gtmsecshr daemon started (key: 0x!XL) for version !AD from !AD", 5,
-	"ZATTACHERR", "Error attaching to \"!AD\"", 2,
-	"ZDATEFMT", "$ZDATE format string contains invalid character", 0,
-	"ZEDFILSPEC", "Illegal ZEDIT file specification: !AD", 2,
-	"ZFILENMTOOLONG", "!AD is longer than 255 characters", 2,
-	"ZFILKEYBAD", "!AD is not a legal keyword for $ZFILE()", 2,
-	"ZFILNMBAD", "!AD is not a legal file name", 2,
-	"ZGOTOLTZERO", "Cannot ZGOTO a level less than zero", 0,
-	"ZGOTOTOOBIG", "Cannot ZGOTO a level greater than present level", 0,
-	"ZLINKFILE", "Error while zlinking \"!AD\"", 2,
-	"ZPARSETYPE", "Illegal TYPE argument to $ZPARSE(): !AD", 2,
-	"ZPARSFLDBAD", "Illegal $ZPARSE() field parameter: !AD", 2,
-	"ZPIDBADARG", "The tvexpr must be FALSE if last $ZPID() not found", 0,
-	"ZPRIVARGBAD", "!AD is not a legal privilege for $ZPRIV()", 2,
-	"ZPRIVSYNTAXERR", "Privilege string cannot end with a comma", 0,
-	"ZPRTLABNOTFND", "Label not found in routine", 0,
-	"VIEWAMBIG", "View parameter !AD is ambiguous", 2,
-	"VIEWNOTFOUND", "View parameter !AD not valid", 2,
-	"ZSETPRVARGBAD", "!AD is not a legal privilege for $ZSETPRIV()", 2,
-	"INVSPECREC", "Invalid global modifier record", 0,
-	"ZSETPRVSYNTAX", "$ZSETPRIV() privileges string cannot end with a comma", 0,
-	"ZSRCHSTRMCT", "Search stream identifier out of range", 0,
-	"VERSION", "Version mismatch - This program must be recompiled", 0,
-	"MUNOTALLSEC", "WARNING: not all global sections accessed were successfully rundown", 0,
-	"MUSECDEL", "Section !AD deleted", 2,
-	"MUSECNOTDEL", "Section !AD not deleted", 2,
-	"RPARENREQD", "!_!AD!/!_!_!_Right parenthesis expected", 2,
-	"ZGBLDIRACC", "Cannot access global directory !AD!AD!AD.", 6,
-	"GVNAKEDEXTNM", "Cannot reference different global directory in a naked reference", 0,
-	"EXTGBLDEL", "Invalid delimiter for extended global syntax", 0,
-	"DSEWCINITCON", "No action taken, enter YES at CONFIRMATION prompt to initialize global buffers", 0,
-	"LASTFILCMPLD", "The file currently being compiled is !AD", 2,
-	"NOEXCNOZTRAP", "Neither an exception nor a Ztrap is specified", 0,
-	"UNSDCLASS", "Unsupported descriptor class", 0,
-	"UNSDDTYPE", "Unsupported descriptor data type", 0,
-	"ZCUNKTYPE", "External call: Unknown argument type", 0,
-	"ZCUNKMECH", "External call: Unknown parameter-passing mechanism", 0,
-	"ZCUNKQUAL", "External call: Unknown input qualifier", 0,
-	"JNLDBTNNOMATCH", "Journal file !AD has !AD transaction number [0x!16 at XQ], but database !AD has current transaction number [0x!16 at XQ] and journal end transaction number [0x!16 at XQ]", 9,
-	"ZCALLTABLE", "External call Table format error", 0,
-	"ZCARGMSMTCH", "External call: Actual argument count, !UL, is greater than formal argument count, !UL", 2,
-	"ZCCONMSMTCH", "External call: Too many input arguments", 0,
-	"ZCOPT0", "External call: Qualifier OPTIONAL_0 can be used only with mechanisms REFERENCE or DESCRIPTOR", 0,
-	"ZCSTATUS", "External call: Unsuccessful return status", 0,
-	"ZCUSRRTN", "External call: Run-time error in user routine", 0,
-	"ZCPOSOVR", "External call: Invalid overlapping of arguments in table position !UL", 1,
-	"ZCINPUTREQ", "External call: Required input argument missing", 0,
-	"JNLTNOUTOFSEQ", "End transaction [0x!16 at XQ] of journal !AD different from Begin transaction [0x!16 at XQ] of next generation journal !AD", 6,
-	"ACTRANGE", "Alternate Collating Type !UL is out of range", 1,
-	"ZCCONVERT", "External call: error converting output argument", 0,
-	"ZCRTENOTF", "External call routine !AD not found", 2,
-	"GVRUNDOWN", "Error during global database rundown", 0,
-	"LKRUNDOWN", "Error during lock database rundown", 0,
-	"IORUNDOWN", "Error during image rundown", 0,
-	"FILENOTFND", "File !AD not found", 2,
-	"MUFILRNDWNFL", "File !AD rundown failed", 2,
-	"JNLTMQUAL1", "Time qualifier BEFORE_TIME=\"!AZ\" is less than SINCE_TIME=\"!AZ\"", 2,
-	"FORCEDHALT", "Image HALTed by MUPIP STOP", 0,
-	"LOADEOF", "Load error: EOF reached prior to BEGIN record !UL.  No records loaded.", 1,
-	"WILLEXPIRE", "This copy of GT.M will expire within one week", 0,
-	"LOADEDBG", "Load error: END smaller than BEGIN.  No records loaded.", 0,
-	"LABELONLY", "Routine !AD was compiled for label-only entry", 2,
-	"MUREORGFAIL", "MUPIP REORG failed.  Failure code: !AD.", 2,
-	"GVZPREVFAIL", "Global variable $ZPREVIOUS function failed.  Failure code: !AD.", 2,
-	"MULTFORMPARM", "This formal parameter is multiply defined", 0,
-	"QUITARGUSE", "Quit cannot take an argument in this context", 0,
-	"NAMEEXPECTED", "A local variable name is expected in this context", 0,
-	"FALLINTOFLST", "Fall-through to a label with formallist is not allowed", 0,
-	"NOTEXTRINSIC", "Quit does not return to an extrinsic function: argument not allowed", 0,
-	"GTMSECSHRREMSEMFAIL", "error removing semaphore errno = !UL", 1,
-	"FMLLSTMISSING", "The formal list is absent from a label called with an actual list: !AD", 2,
-	"ACTLSTTOOLONG", "More actual parameters than formal parameters: !AD", 2,
-	"ACTOFFSET", "Actuallist not allowed with offset", 0,
-	"MAXACTARG", "Maximum number of actual arguments exceeded", 0,
-	"GTMSECSHRREMSEM", "[client pid !UL] Semaphore (!UL) removed", 2,
-	"JNLTMQUAL2", "Time qualifier LOOKBACK_TIME=\"!AZ\" is later than SINCE_TIME=\"!AZ\"", 2,
-	"GDINVALID", "Unrecognized Global Directory file format: !AD, expected label: !AD, found: !AD", 6,
-	"ASSERT", "Assert failed in !AD line !UL for expression (!AD)", 5,
-	"MUFILRNDWNSUC", "File !AD successfully rundown", 2,
-	"LOADEDSZ", "Load error: END too small.  No records loaded.", 0,
-	"QUITARGLST", "Quit cannot take a list of arguments", 0,
-	"QUITARGREQD", "Quit from an extrinsic must have an argument", 0,
-	"CRITRESET", "The critical section crash count for region !AD has been incremented", 2,
-	"UNKNOWNFOREX", "Process halted by a forced exit from a source other than MUPIP", 0,
-	"FSEXP", "File specification expected but not found", 0,
-	"WILDCARD", "Wild cards are prohibited: !AD", 2,
-	"DIRONLY", "Directories only are allowed in file specs: !AD", 2,
-	"FILEPARSE", "Error parsing file specification: !AD", 2,
-	"QUALEXP", "Qualifier expected but not found", 0,
-	"BADQUAL", "Unrecognized qualifier: !AD", 2,
-	"QUALVAL", "Qualifier value required but not found", 0,
-	"ZROSYNTAX", "$ZROUTINES syntax error: !AD", 2,
-	"COMPILEQUALS", "Error in compiler qualifiers: !AD", 2,
-	"ZLNOOBJECT", "No object module was produced", 0,
-	"ZLMODULE", "Object file name does not match module name: !AD", 2,
-	"DBBLEVMX", "!AD Block level higher than maximum", 2,
-	"DBBLEVMN", "!AD Block level less than zero", 2,
-	"DBBSIZMN", "!AD Block too small", 2,
-	"DBBSIZMX", "!AD Block larger than file block size", 2,
-	"DBRSIZMN", "!AD Physical record too small", 2,
-	"DBRSIZMX", "!AD Physical record too large", 2,
-	"DBCMPNZRO", "!AD First record of block has nonzero compression count", 2,
-	"DBSTARSIZ", "!AD Star record has wrong size", 2,
-	"DBSTARCMP", "!AD Star record has nonzero compression count", 2,
-	"DBCMPMX", "!AD Record compression count is too large", 2,
-	"DBKEYMX", "!AD Key too long", 2,
-	"DBKEYMN", "!AD Key too short", 2,
-	"DBCMPBAD", "!AD Compression count not maximal", 2,
-	"DBKEYORD", "!AD Keys out of order", 2,
-	"DBPTRNOTPOS", "!AD Block pointer negative", 2,
-	"DBPTRMX", "!AD Block pointer larger than file maximum", 2,
-	"DBPTRMAP", "!AD Block pointer is a bit map block number", 2,
-	"IFBADPARM", "External Interface Bad Parameter", 0,
-	"IFNOTINIT", "External Interface must first call GTM$INIT or M routine", 0,
-	"GTMSECSHRSOCKET", "!AD - !UL : Error initializing gtmsecshr socket", 3,
-	"LOADBGSZ", "Load error: BEGIN too small.  No records loaded.", 0,
-	"LOADFMT", "Load error: invalid format type.  Must be ZWR, GO, BINARY, or GOQ.", 0,
-	"LOADFILERR", "Error with load file !AD", 2,
-	"NOREGION", "REGION not found: !AD", 2,
-	"PATLOAD", "Error loading pattern file !AD", 2,
-	"EXTRACTFILERR", "Error with extract file !AD", 2,
-	"FREEZE", "Region: !AD is already frozen", 2,
-	"NOSELECT", "None of the selected variables exist -- halting", 0,
-	"EXTRFAIL", "Extract failed for the global ^!AD. MUPIP INTEG should be run.", 2,
-	"LDBINFMT", "Unrecognized header for load file", 0,
-	"NOPREVLINK", "Journal file !AD has a null previous link", 2,
-	"CCEDUMPON", "", 0,
-	"CCEDMPQUALREQ", "A qualifier (DB,[NO]ON, or NOW) is required with the DUMP command", 0,
-	"CCEDBDUMP", "Section !AD dumped", 2,
-	"CCEDBNODUMP", "Section !AD not dumped; status = ", 2,
-	"CCPMBX", "Error accessing Cluster Control Program Mailbox", 0,
-	"REQRUNDOWN", "Error accessing database !AD.  Must be rundown on cluster node !AD.", 4,
-	"CCPINTQUE", "Interlock failure accessing Cluster Control Program queue", 0,
-	"CCPBADMSG", "Invalid message code received by Cluster Control Program", 0,
-	"CNOTONSYS", "Command is not supported by this operating system", 0,
-	"CCPNAME", "Error setting the Cluster Control Program process name", 0,
-	"CCPNOTFND", "The Cluster Control Program is not responding", 0,
-	"OPRCCPSTOP", "The Cluster Control Program has been halted by an operator stop request", 0,
-	"SELECTSYNTAX", "Argument to !AD clause is not valid", 2,
-	"LOADABORT", "Aborting load at record !UL", 1,
-	"FNOTONSYS", "Function or special variable is not supported by this operating system", 0,
-	"AMBISYIPARAM", "Parameter !AD is ambiguous to $ZGETSYI()", 2,
-	"PREVJNLNOEOF", "A previous generation journal file !AD does not have valid EOF", 2,
-	"LKSECINIT", "Error creating lock section for database !AD", 2,
-	"MTDOSLAB", "Tape label is not in valid DOS-11 format", 0,
-	"MTDOSFOR", "Use of DOS-11 labels requires stream format", 0,
-	"MTINVLAB", "Invalid label type specified in magtape OPEN", 0,
-	"TXTSRCMAT", "M object module and source file do not match", 0,
-	"CCENOGROUP", "CCE does not have GROUP privilege.  Information may be incomplete.", 0,
-	"BADDBVER", "Incorrect database version: !AD", 2,
-	"LINKVERSION", "This image must be relinked with the current version of GT.M", 0,
-	"TOTALBLKMAX", "Extension exceeds maximum total blocks.  Not extending.", 0,
-	"LOADCTRLY", "User interrupt encountered during load.  Load halting.", 0,
-	"CLSTCONFLICT", "Cluster conflict opening database file !AD; could not secure access.  Already open on node !AD.", 4,
-	"SRCNAM", "in source module !AD", 2,
-	"LCKGONE", "Lock removed: !AD", 2,
-	"SUB2LONG", "Subscript invalid, too long", 0,
-	"EXTRACTCTRLY", "User interrupt encountered during extract -- halting", 0,
-	"CCENOWORLD", "CCE does not have WORLD privilege.  Information may be incomplete.", 0,
-	"GVQUERYFAIL", "Global variable $QUERY function failed.  Failure code: !AD.", 2,
-	"LCKSCANCELLED", "Error on remote node holding locks or zallocates.  All locks and zallocates cancelled.", 0,
-	"INVNETFILNM", "Invalid file name following node designation in global directory", 0,
-	"NETDBOPNERR", "Error while attempting to open database across net", 0,
-	"BADSRVRNETMSG", "Invalid message received from GT.CM server", 0,
-	"BADGTMNETMSG", "Invalid message sent to GT.CM server, type: 0x!XL", 1,
-	"SERVERERR", "Severe error on server: !AD", 2,
-	"NETFAIL", "Failure of Net operation", 0,
-	"NETLCKFAIL", "Lock operation across Net failed", 0,
-	"TTINVFILTER", "Invalid FILTER argument", 0,
-	"MTANSILAB", "Tape label is not in valid ANSI format", 0,
-	"MTANSIFOR", "Use of ANSI labels does not allow stream format", 0,
-	"BADTRNPARAM", "!AD is not a legal parameter to $ZTRNLNM", 2,
-	"DSEONLYBGMM", "!AD is supported only for BG/MM access methods", 2,
-	"DSEINVLCLUSFN", "Specified function is invalid for clustered databases", 0,
-	"RDFLTOOSHORT", "Length specified for fixed length read less than or equal to zero", 0,
-	"TIMRBADVAL", "Bad value specified.  Timer not changed.", 0,
-	"CCENOSYSLCK", "CCE does not have SYSLCK privilege.  Information may be incomplete.", 0,
-	"CCPGRP", "Error with the Cluster Control Program's group number", 0,
-	"UNSOLCNTERR", "An unsolicited error message has been received from the network", 0,
-	"BACKUPCTRL", "Control Y or control C encountered during backup, aborting backup", 0,
-	"NOCCPPID", "Cannot find CCP process id", 0,
-	"CCPJNLOPNERR", "Error opening journal file.  Database not opened.", 0,
-	"LCKSGONE", "Locks selected for deletion removed", 0,
-	"ZLKIDBADARG", "The tvexpr must be FALSE if last ZLKID not found", 0,
-	"DBFILOPERR", "Error doing database I/O to region !AD", 2,
-	"CCERDERR", "Error reading from database file !AD", 2,
-	"CCEDBCL", "Database file !AD is clustered", 2,
-	"CCEDBNTCL", "Database file !AD is not clustered", 2,
-	"CCEWRTERR", "Error writing to database file !AD", 2,
-	"CCEBADFN", "Filename error", 0,
-	"CCERDTIMOUT", "Read timeout, CCP has not responded to request", 0,
-	"CCPSIGCONT", "CCP non fatal error at pc 0x!XJ.  Continuing operation.", 1,
-	"CCEBGONLY", "Only BG databases can be clustered", 0,
-	"CCENOCCP", "The cluster control program is not running on this node", 0,
-	"CCECCPPID", "The cluster control program has PID 0x!XL", 1,
-	"CCECLSTPRCS", "!UL processes are accessing clustered database files", 1,
-	"ZSHOWBADFUNC", "An illegal function was specified for ZSHOW", 0,
-	"NOTALLJNLEN", "Journaling disabled/off for !AD regions", 2,
-	"UNUSEDMSG570", "ZSHOWGLOSMALL last used in V6.2-002A", 0,
-	"NOLBRSRC", "Object libraries cannot have SRC paths associated", 0,
-	"INVZSTEP", "Invalid ZSTEP qualifier", 0,
-	"ZSTEPARG", "ZSTEP argument expected", 0,
-	"INVSTRLEN", "Invalid string length !UL: max !UL", 2,
-	"RECCNT", "Last LOAD record number: !UL", 1,
-	"TEXT", "!AD", 2,
-	"ZWRSPONE", "Subscript patterns in ZWRITE are atomic; Invalid delimiter", 0,
-	"FILEDEL", "File !AD successfully deleted", 2,
-	"JNLBADLABEL", "Journal file !AD has a bad GT.M Journal File Label. Expected !AD. Found !AD.", 6,
-	"JNLREADEOF", "End of journal file encountered for !AD", 2,
-	"JNLRECFMT", "Journal file record format error encountered", 0,
-	"BLKTOODEEP", "Block level too deep", 0,
-	"NESTFORMP", "Formal parameter list cannot be combined with nested line", 0,
-	"BINHDR", "!AD!/!/Date: !AD!/Time: !AD!/Extract Region Characteristics!/!_Blk Size: !AD!/!_Rec Size: !AD!/!_Key Size: !AD!/!_Std Null Coll: !AD!/!AD!/", 16,
-	"GOQPREC", "Numeric precision in key error:  Blk #!UL, Key #!UL.  Record not loaded.", 2,
-	"LDGOQFMT", "Corrupt GOQ format header information!/", 0,
-	"BEGINST", "Beginning LOAD at record number: !UL", 1,
-	"INVMVXSZ", "Invalid block size for GOQ load format", 0,
-	"JNLWRTNOWWRTR", "Journal writer attempting another write", 0,
-	"GTMSECSHRSHMCONCPROC", "More than one process attached to Shared memory segment (!UL) not removed (!UL)", 2,
-	"JNLINVALLOC", "Journal file allocation !UL is not within the valid range of !UL to !UL.  Journal file not created.", 3,
-	"JNLINVEXT", "Journal file extension !UL is greater than the maximum allowed size of !UL.  Journal file not created.", 2,
-	"MUPCLIERR", "Action not taken due to CLI errors", 0,
-	"JNLTMQUAL4", "Time qualifier BEFORE_TIME=\"!AZ\" is less than AFTER_TIME=\"!AZ\"", 2,
-	"GTMSECSHRREMSHM", "[client pid !UL] Shared memory segment (!UL) removed, nattch = !UL", 3,
-	"GTMSECSHRREMFILE", "[client pid !UL] File (!AD) removed", 3,
-	"MUNODBNAME", "A database name or the region qualifier must be specified", 0,
-	"FILECREATE", "!AD file !AD created", 4,
-	"FILENOTCREATE", "!AD file !AD not created", 4,
-	"JNLPROCSTUCK", "Journal file writes blocked by process !UL", 1,
-	"INVGLOBALQUAL", "Error in GLOBAL qualifier : Parse error at offset !UL in !AD", 3,
-	"COLLARGLONG", "Collation sequence !UL does not contain routines for long strings", 1,
-	"NOPINI", "PINI journal record expected but not found in journal file !AD at offset [0x!XL]", 3,
-	"DBNOCRE", "Not all specified database files, or their associated journal files were created", 0,
-	"JNLSPACELOW", "Journal file !AD nearing maximum size, !UL blocks to go", 3,
-	"DBCOMMITCLNUP", "Pid !UL [0x!XL] handled error (code = !UL) during commit of !AZ transaction in database file !AD", 6,
-	"BFRQUALREQ", "The [NO]BEFORE qualifier is required for this command", 0,
-	"REQDVIEWPARM", "Required View parameter is missing", 0,
-	"COLLFNMISSING", "Routine !AD is not found for collation sequence !UL", 3,
-	"JNLACTINCMPLT", "Mupip journal action might be incomplete", 0,
-	"NCTCOLLDIFF", "Source and destination for MERGE cannot have different numerical collation type", 0,
-	"DLRCUNXEOR", "!_!AD!/!_!_!_unexpected end of record in $CHAR()/$ZCHAR() subscript", 2,
-	"DLRCTOOBIG", "!_!AD!/!_!_!_!AD value cannot be greater than 255", 4,
-	"WCERRNOTCHG", "Not all specified database files were changed", 0,
-	"WCWRNNOTCHG", "Not all specified database files were changed", 0,
-	"ZCWRONGDESC", "A string longer than 65535 is passed via 32-bit descriptor", 0,
-	"MUTNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4,
-	"GTMSECSHRUPDDBHDR", "[client pid !UL] database fileheader (!AD) updated !AD", 5,
-	"LCKSTIMOUT", "DAL timed lock request expired", 0,
-	"CTLMNEMAXLEN", "The maximum length of a control mnemonic has been exceeded", 0,
-	"CTLMNEXPECTED", "Control mnemonic is expected in this context", 0,
-	"USRIOINIT", "User-defined device driver not successfully initialized", 0,
-	"CRITSEMFAIL", "Error with semaphores for region !AD", 2,
-	"TERMWRITE", "Error writing to terminal", 0,
-	"COLLTYPVERSION", "Collation type !UL, version !UL mismatch", 2,
-	"LVNULLSUBS", "Null subscripts not allowed in local variables", 0,
-	"GVREPLERR", "Error replicating global in region !AD", 2,
-	"MTIOERR", "I/O Error with magnetic tape device !AD", 2,
-	"RMWIDTHPOS", "File record size or width must be greater than zero", 0,
-	"OFFSETINV", "Entry point !AD+!SL not valid", 3,
-	"JOBPARTOOLONG", "Total parameter length is too long for job command", 0,
-	"JOBARGMISSING", "Missing job argument !UL - can't skip non-trailing arguments to a JOB command in OpenVMS editions", 1,
-	"RUNPARAMERR", "Error accessing parameter for run command", 0,
-	"FNNAMENEG", "Depth argument to $NAME cannot be negative", 0,
-	"ORDER2", "Invalid second argument to $ORDER.  Must be -1 or 1.", 0,
-	"MUNOUPGRD", "Database not upgraded because of preceding errors", 0,
-	"REORGCTRLY", "User interrupt encountered during database reorg -- halting", 0,
-	"TSTRTPARM", "Error parsing TSTART qualifier", 0,
-	"TRIGNAMENF", "Trigger name !AD not found with the current default global directory", 2,
-	"TRIGZBREAKREM", "ZBREAK in trigger !AD removed due to trigger being reloaded", 2,
-	"TLVLZERO", "Transaction is not in progress", 0,
-	"TRESTNOT", "Cannot TRESTART, transaction is not restartable", 0,
-	"TPLOCK", "Cannot release lock(s) held prior to current TSTART", 0,
-	"TPQUIT", "Cannot QUIT out of a routine with an active transaction", 0,
-	"TPFAIL", "Transaction COMMIT failed.  Failure code: !AD.", 2,
-	"TPRETRY", "Restart transaction from non-concurrency DB failure", 0,
-	"TPTOODEEP", "$TLEVEL cannot exceed 127", 0,
-	"ZDEFACTIVE", "ZDEFER already active", 0,
-	"ZDEFOFLOW", "ZDEFER Buffer overflow to node !AD", 2,
-	"MUPRESTERR", "MUPIP restore aborted due to preceding errors", 0,
-	"MUBCKNODIR", "MUPIP backup aborted due to error in output directory", 0,
-	"TRANS2BIG", "Transaction exceeded available buffer space for region !AD", 2,
-	"INVBITLEN", "Invalid size of the bit string", 0,
-	"INVBITSTR", "Invalid bit string", 0,
-	"INVBITPOS", "Invalid position in the bit string", 0,
-	"PARNORMAL", "Parse successful", 0,
-	"PARBUFSM", "Parse buffer too small", 0,
-	"RMWIDTHTOOBIG", "File record size or width too big", 0,
-	"PATTABNOTFND", "Pattern table !AD not found", 2,
-	"OBJFILERR", "Error with object file I/O on file !AD", 2,
-	"SRCFILERR", "Error with source file I/O on file !AD", 2,
-	"NEGFRACPWR", "Invalid operation: fractional power of negative number", 0,
-	"MTNOSKIP", "SKIP operation not supported on this device", 0,
-	"CETOOMANY", "Too many compiler escape substitutions in a single statement", 0,
-	"CEUSRERROR", "Compiler escape user routine returned error code !UL", 1,
-	"CEBIGSKIP", "Compiler escape user routine skip count is too large", 0,
-	"CETOOLONG", "Compiler escape substitution exceeds maximum line size", 0,
-	"CENOINDIR", "Indirection type information not available for compiler escape feature", 0,
-	"COLLATIONUNDEF", "Collation type !UL is not defined", 1,
-	"UNUSEDMSG670", "RBWRNNOTCHG last used in V6.2-002A", 0,
-	"GTMSECSHRSRVF", "!AD - !UL : Attempt to service request failed (retry = !UL)", 4,
-	"FREEZECTRL", "Control Y or control C encountered during attempt to freeze the database. Aborting freeze.", 0,
-	"JNLFLUSH", "Error flushing journal buffers to journal file !AD", 2,
-	"CCPSIGDMP", "CCP non fatal dump, continuing operation. Report to your GT.M Support Channel.", 0,
-	"NOPRINCIO", "Unable to write to principal device", 0,
-	"INVPORTSPEC", "Invalid port specification", 0,
-	"INVADDRSPEC", "Invalid IP address specification", 0,
-	"MUREENCRYPTEND", "Database !AD : MUPIP REORG ENCRYPT finished by pid !UL at transaction number [0x!16 at XQ]", 4,
-	"CRYPTJNLMISMATCH", "Encryption settings mismatch between journal file !AD and corresponding database file !AD", 4,
-	"SOCKWAIT", "Error waiting for socket connection", 0,
-	"SOCKACPT", "Error accepting socket connection", 0,
-	"SOCKINIT", "Error initializing socket: (errno == !UL) !AD", 3,
-	"OPENCONN", "Error opening socket connection", 0,
-	"DEVNOTIMP", "!AD device not implemented on in this environment", 2,
-	"JNLEXTR", "Error writing journal extract file: !AD", 2,
-	"DBREMOTE", "Database region !AD is remote; perform maintenance on the server node", 2,
-	"JNLREQUIRED", "Journaling is required for clustered operation with file !AD", 2,
-	"TPMIXUP", "!AZ transaction cannot be started within !AZ transaction", 2,
-	"HTOFLOW", "Hash table overflow: Failed to allocate !UL elements", 1,
-	"RMNOBIGRECORD", "File record size requires BIGRECORD parameter", 0,
-	"DBBMSIZE", "!AD Bit map has incorrect size", 2,
-	"DBBMBARE", "!AD Bit map does not protect itself", 2,
-	"DBBMINV", "!AD Bit map contains an invalid pattern", 2,
-	"DBBMMSTR", "!AD Bit map does not match master map", 2,
-	"DBROOTBURN", "!AD Root block has data level", 2,
-	"REPLSTATEERR", "Replication state cannot be changed to the specified value for database file !AD", 2,
-	"VMSMEMORY", "Central memory exhausted during request for !UL bytes from 0x!XJ - check page file quota and page file size", 2,
-	"DBDIRTSUBSC", "!AD Directory tree block contains non name-level entries", 2,
-	"TIMEROVFL", "Timer overflow; interval probably too large", 0,
-	"GTMASSERT", "!AD - Assert failed !AD line !UL", 5,
-	"DBFHEADERR4", "Database file !AD: control problem: !AD was 0x!XL expecting 0x!XL", 6,
-	"DBADDRANGE", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!XJ was outside !AD range 0x!XJ to 0x!XJ", 9,
-	"DBQUELINK", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control !AD queue problem: was 0x!XJ, expecting 0x!XJ", 8,
-	"DBCRERR", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!XL, expecting 0x!XL -- called from module !AD at line !UL", 11,
-	"MUSTANDALONE", "Could not get exclusive access to !AD", 2,
-	"MUNOACTION", "MUPIP unable to perform requested action", 0,
-	"RMBIGSHARE", "File with BIGRECORD specified may only be shared if READONLY", 0,
-	"TPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; pvtmods: !UL, blkmods: !UL, blklvl: !UL, type: !UL, readset: !UL, writeset: !UL, local_tn: 0x!16 at XQ, zpos: !AD", 16,
-	"SOCKWRITE", "Write to a socket failed", 0,
-	"DBCNTRLERR", "Database file !AD: control error suspected but not found", 2,
-	"NOTERMENV", "Environment variable TERM not set.  Assuming \"unknown.\"", 0,
-	"NOTERMENTRY", "TERM = \"!AD\" has no \"terminfo\" entry.  Possible terminal handling problems.", 2,
-	"NOTERMINFODB", "No \"terminfo\" database.  Terminal handling problems likely.", 0,
-	"INVACCMETHOD", "Invalid access method", 0,
-	"JNLOPNERR", "Error opening journal file !AD!/  for database !AD", 4,
-	"JNLRECTYPE", "Journal record type does not match expected type", 0,
-	"JNLTRANSGTR", "Transaction number in journal is greater than in database", 0,
-	"JNLTRANSLSS", "Transaction number in journal is less than in database", 0,
-	"JNLWRERR", "Error writing journal file !AD.  Unable to update header.", 2,
-	"FILEIDMATCH", "Saved File ID does not match the current ID - the file appears to have been moved", 0,
-	"EXTSRCLIN", "!_!AD!/!_!AD", 4,
-	"EXTSRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4,
-	"BIGNOACL", "Existing file found when BIGRECORD specified with UDF format but no GT.M ACE, perhaps lost during COPY", 0,
-	"ERRCALL", "Error called from !AD line !UL", 3,
-	"ZCCTENV", "Environmental variable for external package !AD not set", 2,
-	"ZCCTOPN", "Unable to open external call table: !AD", 2,
-	"ZCCTNULLF", "External call table contains no records: !AD", 2,
-	"ZCUNAVAIL", "Package, !AD unavailable", 2,
-	"ZCENTNAME", "No entry name found in external call table", 0,
-	"ZCCOLON", "Colon expected but not found", 0,
-	"ZCRTNTYP", "Unknown return type", 0,
-	"ZCRCALLNAME", "Routine name expected but not found", 0,
-	"ZCRPARMNAME", "Parameter name expected but not found", 0,
-	"ZCUNTYPE", "Unknown type encountered", 0,
-	"ZCMLTSTATUS", "Multiple entries of xc_status in a single entry in external call table", 0,
-	"ZCSTATUSRET", "External call returned error status", 0,
-	"ZCMAXPARAM", "Exceeded maximum number of external call parameters", 0,
-	"ZCCSQRBR", "Closing Square bracket expected", 0,
-	"ZCPREALLNUMEX", "Pre-allocation value should be a decimal number", 0,
-	"ZCPREALLVALPAR", "Pre-allocation allowed only for variables passed by reference", 0,
-	"VERMISMATCH", "Attempt to access !AD with version !AD, while already using !AD", 6,
-	"JNLCNTRL", "Journal control unsynchronized for !AD.", 2,
-	"TRIGNAMBAD", "Trigger initialization failed. Error while processing ^#t(\"!AD\",!AD)", 4,
-	"BUFRDTIMEOUT", "Pid [0x!XL] timed out waiting for buffered read of blk [0x!XL] into cr [0x!XL] by process [0x!XL] to complete in database file !AD", 6,
-	"INVALIDRIP", "Invalid read-in-progress field in Cache Record.  Resetting and continuing.  Region: !AD.", 2,
-	"BLKSIZ512", "Block size !UL rounds to !UL", 2,
-	"MUTEXERR", "Mutual Exclusion subsystem failure", 0,
-	"JNLVSIZE", "Journal File !AD has incorrect virtual_filesize !UL.  Allocation : !UL, Extension : !UL, Filesize : !UL, File system block size : !UL", 7,
-	"MUTEXLCKALERT", "Mutual Exclusion subsystem ALERT - lock attempt threshold crossed for region !AD.  Process !UL is in crit cycle !UL.", 4,
-	"MUTEXFRCDTERM", "Mutual Exclusion subsystem detected forced termination of process !UL.  Crit salvaged from region !AD.", 3,
-	"GTMSECSHR", "!UL : Error during gtmsecshr operation", 1,
-	"GTMSECSHRSRVFID", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL, mesg data: !UL", 6,
-	"GTMSECSHRSRVFIL", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL!/file: !AD", 7,
-	"FREEBLKSLOW", "Only !UL free blocks left out of !UL total blocks for !AD", 4,
-	"PROTNOTSUP", "Protocol !AD not supported", 2,
-	"DELIMSIZNA", "Delimiter size is not appropriate", 0,
-	"INVCTLMNE", "Invalid control mnemonics", 0,
-	"SOCKLISTEN", "Error listening on a socket", 0,
-	"LQLENGTHNA", "Listening queue length !UL not appropriate.  Must be between 1 and 5.", 1,
-	"ADDRTOOLONG", "Socket address !AD of length !UL is longer than the maximum permissible length !UL", 4,
-	"GTMSECSHRGETSEMFAIL", "error getting semaphore errno = !UL", 1,
-	"CPBEYALLOC", "Attempt to copy beyond the allocated buffer", 0,
-	"DBRDONLY", "Database file !AD read only", 2,
-	"DUPTN", "Duplicate transaction found [TN = 0x!16 at XQ] at offset 0x!XL in journal file !AD", 4,
-	"TRESTLOC", "Transaction start: !AD, Transaction failure: !AD", 4,
-	"REPLPOOLINST", "Error with replication pool (id = !UL) for instance file !AD", 3,
-	"ZCVECTORINDX", "Invalid Vector Index !UL", 1,
-	"REPLNOTON", "Replication is not on for journal file !AD, rollback will not continue", 2,
-	"JNLMOVED", "Journal file appears to have been moved.  Journaling activity will not be done.", 0,
-	"EXTRFMT", "Extract error: invalid format type.  Must be ZWR, GO, or BINARY.", 0,
-	"CALLERID", "Routine !AD called from 0x!XJ", 3,
-	"KRNLKILL", "Process was terminated by SIGDANGER signal from the system -- System swap space is too low -- Report to System Administrator", 0,
-	"MEMORYRECURSIVE", "Memory Subsystem called recursively", 0,
-	"FREEZEID", "Cache !AD on !AD by freeze id 0x!XL with match 0x!XL from 0x!XJ", 7,
-	"BLKWRITERR", "Unable to queue disk write for block 0x!XL.  Will keep trying.", 1,
-	"STOPTIMEOUT", "Waited too long for stopped process to release.  Region: !AD.", 2,
-	"UNUSEDMSG777", "TRIGMODINTP last used in V6.2-000", 0,
-	"BCKUPBUFLUSH", "Unable to flush buffer for online backup", 0,
-	"NOFORKCORE", "Unable to fork off process to create core.  Core creation postponed.", 0,
-	"JNLREAD", "Error reading from journal file !AD at offset [0x!XL]", 3,
-	"JNLMINALIGN", "Journal Record Alignment !UL is less than the minimum value of !UL", 2,
-	"JOBSTARTCMDFAIL", "JOB command STARTUP script invocation failed", 0,
-	"JNLPOOLSETUP", "Journal Pool setup error", 0,
-	"JNLSTATEOFF", "ROLLBACK or RECOVER BACKWARD cannot proceed as database file !AD does not have journaling ENABLED and ON", 2,
-	"RECVPOOLSETUP", "Receive Pool setup error", 0,
-	"REPLCOMM", "Replication subsystem communication failure", 0,
-	"NOREPLCTDREG", "Replication subsystem found no region replicated for !AD !AZ", 3,
-	"REPLINFO", "!AD", 2,
-	"REPLWARN", "!AD", 2,
-	"REPLERR", "!AD", 2,
-	"JNLNMBKNOTPRCD", "Journal file !AD does not match the current journal file !AD of database file !AD", 6,
-	"REPLFILIOERR", "Replication subsystem file I/O error !AD", 2,
-	"REPLBRKNTRANS", "Replication subsystem found seqno !16 at XQ broken or missing in the journal files", 1,
-	"TTWIDTHTOOBIG", "Terminal WIDTH exceeds the maximum allowed limit", 0,
-	"REPLLOGOPN", "Replication subsystem could not open log file !AD: !AD.  Logging done to !AD.", 6,
-	"REPLFILTER", "Replication filter subsystem failure", 0,
-	"GBLMODFAIL", "Global variable Conflict Test failed.  Failure code: !AD.", 2,
-	"TTLENGTHTOOBIG", "Terminal LENGTH exceeds the maximum allowed limit", 0,
-	"TPTIMEOUT", "Transaction timeout", 0,
-	"DEFEREVENT", "Transfer table reset for event type !UL when set for type !UL", 2,
-	"JNLFILNOTCHG", "Journal file not changed", 0,
-	"EVENTLOGERR", "Error in event logging subsystem", 0,
-	"UPDATEFILEOPEN", "Update file open error", 0,
-	"JNLBADRECFMT", "Journal File Record Format Error encountered for file !AD at disk address 0x!XL", 3,
-	"NULLCOLLDIFF", "Null collation order must be the same for all regions", 0,
-	"MUKILLIP", "Kill in progress indicator is set for file !AD - this !AD operation is likely to result in incorrectly marked busy errors", 4,
-	"JNLRDONLY", "Journal file !AD read only", 2,
-	"ANCOMPTINC", "Deviceparameter !AD is not compatible with any other deviceparameters in the !AD command", 4,
-	"ABNCOMPTINC", "Deviceparameter !AD and deviceparameter !AD are not compatible in the !AD command", 6,
-	"RECLOAD", "Error loading record number: !@UQ!/", 1,
-	"SOCKNOTFND", "Socket !AD not found", 2,
-	"CURRSOCKOFR", "Current socket of index !UL is out of range.  There are only !UL sockets.", 2,
-	"SOCKETEXIST", "Socket !AD already exists", 2,
-	"LISTENPASSBND", "Controlmnemonic LISTEN can be applied to PASSIVE socket in the state BOUND only", 0,
-	"DBCLNUPINFO", "Database file !AD !/!AD", 4,
-	"MUNODWNGRD", "Database not downgraded because of preceding errors", 0,
-	"REPLTRANS2BIG", "Transaction !16 at XQ of size !UL (pre-filter size !UL) too large to be accommodated in the !AD pool", 5,
-	"RDFLTOOLONG", "Length specified for fixed length read exceeds the maximum string size", 0,
-	"MUNOFINISH", "MUPIP unable to finish all requested actions", 0,
-	"DBFILEXT", "Database file !AD extended from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5,
-	"JNLFSYNCERR", "Error synchronizing journal file !AD to disk", 2,
-	"FSYNCTIMOUT", "Timed out on fsync for journal file !AD", 2,
-	"ZCPREALLVALINV", "The pre-allocation value exceeded the maximum string length", 0,
-	"NEWJNLFILECREAT", "Journal file !AD nearing maximum size.  New journal file created.", 2,
-	"DSKSPACEFLOW", "Disk Space for file !AD nearing maximum size.  !UL blocks available.", 3,
-	"GVINCRFAIL", "Global variable $INCR failed.  Failure code: !AD.", 2,
-	"ISOLATIONSTSCHN", "Error changing NOISOLATION status for global ^!AD within a TP transaction from !UL to !UL", 4,
-	"REPLGBL2LONG", "Global names longer than 8 characters cannot be handled at the secondary", 0,
-	"TRACEON", "Missing global name (with optional subscripts) for recording M-tracing information", 0,
-	"TOOMANYCLIENTS", "GT.CM is serving the maximum number of clients.  Try again later.", 0,
-	"NOEXCLUDE", "None of the excluded variables exist", 0,
-	"GVINCRISOLATION", "$INCREMENT cannot be performed on global ^!AD as it has NOISOLATION turned ON", 2,
-	"EXCLUDEREORG", "Global: !AD is present in the EXCLUDE option.  REORG will skip the global.", 2,
-	"REORGINC", "Reorg was incomplete.  Not all globals were reorged.", 0,
-	"ASC2EBCDICCONV", "ASCII/EBCDIC conversion failed when calling !AD", 2,
-	"GTMSECSHRSTART", "!AD - !UL : gtmsecshr failed to startup", 3,
-	"DBVERPERFWARN1", "Performance warning: Database !AD is running in compatibility mode which degrades performance. Run MUPIP REORG UPGRADE for best overall performance", 2,
-	"FILEIDGBLSEC", "File ID in global section does not match with the database file !AD", 2,
-	"GBLSECNOTGDS", "Global Section !AD is not a GT.M global section", 2,
-	"BADGBLSECVER", "Global Section !AD does not match the current database version", 2,
-	"RECSIZENOTEVEN", "RECORDSIZE [!UL] needs to be a multiple of 2 if ICHSET or OCHSET is UTF-16, UTF-16LE or UTF-16BE", 1,
-	"BUFFLUFAILED", "Error flushing buffers from !AD for database file !AD", 4,
-	"MUQUALINCOMP", "Incompatible qualifiers - FILE and REGION", 0,
-	"DISTPATHMAX", "$gtm_dist path is greater than maximum (!UL)", 1,
-	"FILEOPENFAIL", "Failed to open file !AD", 2,
-	"IMAGENAME", "The executing module name should be !AD instead of !AD", 4,
-	"GTMSECSHRPERM", "The gtmsecshr module in $gtm_dist does not have the correct permission and uid", 0,
-	"GTMDISTUNDEF", "Environment variable $gtm_dist is not defined", 0,
-	"SYSCALL", "Error received from system call !AD -- called from module !AD at line !UL", 5,
-	"MAXGTMPATH", "The executing module path is greater than the maximum !UL", 1,
-	"TROLLBK2DEEP", "Intended rollback(!SL) deeper than the current $tlevel(!UL)", 2,
-	"INVROLLBKLVL", "Rollback level (!UL) not less than current $TLEVEL(!UL).  Can't rollback.", 2,
-	"OLDBINEXTRACT", "Loading an older version(!UL) of binary extract. !/Database or global collation changes since the extract, if any, will result in database corruption.", 1,
-	"ACOMPTBINC", "Deviceparameter !AD is compatible with only !AD in the command !AD", 6,
-	"NOTREPLICATED", "Transaction number !16 at XQ generated by the !AD process (PID = !UL) is not replicated to the secondary", 4,
-	"DBPREMATEOF", "Premature end of file with database file !AD", 2,
-	"KILLBYSIG", "!AD process !UL has been killed by a signal !UL", 4,
-	"KILLBYSIGUINFO", "!AD process !UL has been killed by a signal !UL from process !UL with userid number !UL", 6,
-	"KILLBYSIGSINFO1", "!AD process !UL has been killed by a signal !UL at address 0x!XJ (vaddr 0x!XJ)", 6,
-	"KILLBYSIGSINFO2", "!AD process !UL has been killed by a signal !UL at address 0x!XJ", 5,
-	"SIGILLOPC", "Signal was caused by an illegal opcode", 0,
-	"SIGILLOPN", "Signal was caused by an illegal operand", 0,
-	"SIGILLADR", "Signal was caused by illegal addressing mode", 0,
-	"SIGILLTRP", "Signal was caused by an illegal trap", 0,
-	"SIGPRVOPC", "Signal was caused by a privileged opcode", 0,
-	"SIGPRVREG", "Signal was caused by a privileged register", 0,
-	"SIGCOPROC", "Signal was caused by a coprocessor error", 0,
-	"SIGBADSTK", "Signal was caused by an internal stack error", 0,
-	"SIGADRALN", "Signal was caused by invalid address alignment", 0,
-	"SIGADRERR", "Signal was caused by a non-existent physical address", 0,
-	"SIGOBJERR", "Signal was caused by an object specific hardware error", 0,
-	"SIGINTDIV", "Signal was caused by an integer divided by zero", 0,
-	"SIGINTOVF", "Signal was caused by an integer overflow", 0,
-	"SIGFLTDIV", "Signal was caused by a floating point divide by zero", 0,
-	"SIGFLTOVF", "Signal was caused by a floating point overflow", 0,
-	"SIGFLTUND", "Signal was caused by a floating point underflow", 0,
-	"SIGFLTRES", "Signal was caused by a floating point inexact result", 0,
-	"SIGFLTINV", "Signal was caused by an invalid floating point operation", 0,
-	"SIGMAPERR", "Signal was caused by an address not mapped to an object", 0,
-	"SIGACCERR", "Signal was caused by invalid permissions for mapped object", 0,
-	"TRNLOGFAIL", "Translation of (VMS) logical name or (UNIX) environment variable !AD failed", 2,
-	"INVDBGLVL", "Invalid non-numeric debug level specified !AD in (VMS) logical name or (UNIX) environment variable !AD", 4,
-	"DBMAXNRSUBS", "!AD Maximum number of subscripts exceeded", 2,
-	"GTMSECSHRSCKSEL", "gtmsecshr select on socket failed", 0,
-	"GTMSECSHRTMOUT", "gtmsecshr exiting due to idle timeout", 0,
-	"GTMSECSHRRECVF", "gtmsecshr receive on server socket failed", 0,
-	"GTMSECSHRSENDF", "gtmsecshr send on server socket failed", 0,
-	"SIZENOTVALID8", "Size (in bytes) must be either 1, 2, 4, or 8", 0,
-	"GTMSECSHROPCMP", "gtmsecshr operation may be compromised", 0,
-	"GTMSECSHRSUIDF", "gtmsecshr server setuid to root failed", 0,
-	"GTMSECSHRSGIDF", "gtmsecshr server setgid to root failed", 0,
-	"GTMSECSHRSSIDF", "gtmsecshr server setsid failed", 0,
-	"GTMSECSHRFORKF", "gtmsecshr server unable to fork off a child process", 0,
-	"DBFSYNCERR", "Error synchronizing database file !AD to disk", 2,
-	"SECONDAHEAD", "Secondary ahead of primary. !/ Secondary database possibly updated by process other than the update process.  First perform rollback.", 0,
-	"SCNDDBNOUPD", "Database Updates not allowed on the secondary", 0,
-	"MUINFOUINT4", "!AD : !UL [0x!XL]", 4,
-	"NLMISMATCHCALC", "Location of !AD expected at 0x!XL, but found at 0x!XL", 4,
-	"RELINKCTLFULL", "Relinkctl file for directory !AD is full (maximum entries !UL)", 3,
-	"MUPIPSET2BIG", "!UL too large, maximum !AD allowed is !UL", 4,
-	"DBBADNSUB", "!AD Bad numeric subscript", 2,
-	"DBBADKYNM", "!AD Bad key name", 2,
-	"DBBADPNTR", "!AD Bad pointer value in directory", 2,
-	"DBBNPNTR", "!AD Bit map block number as pointer", 2,
-	"DBINCLVL", "!AD Block at incorrect level", 2,
-	"DBBFSTAT", "!AD Block busy/free status unknown (local bitmap corrupted)", 2,
-	"DBBDBALLOC", "!AD Block doubly allocated", 2,
-	"DBMRKFREE", "!AD Block incorrectly marked free", 2,
-	"DBMRKBUSY", "!AD Block incorrectly marked busy", 2,
-	"DBBSIZZRO", "!AD Block size equals zero", 2,
-	"DBSZGT64K", "!AD Block size is greater than 64K", 2,
-	"DBNOTMLTP", "!AD Block size not a multiple of 512 bytes", 2,
-	"DBTNTOOLG", "!AD Block transaction number too large", 2,
-	"DBBPLMLT512", "!AD Blocks per local map is less than 512", 2,
-	"DBBPLMGT2K", "!AD Blocks per local map is greater than 2K", 2,
-	"MUINFOUINT8", "!AD : !@ZQ [0x!16 at XQ]", 4,
-	"DBBPLNOT512", "!AD Blocks per local map is not 512", 2,
-	"MUINFOSTR", "!AD : !AD", 4,
-	"DBUNDACCMT", "!AD Cannot determine access method; trying with BG", 2,
-	"DBTNNEQ", "!AD Current tn and early tn are not equal", 2,
-	"MUPGRDSUCC", "Database file !AD successfully !AD to !AD", 6,
-	"DBDSRDFMTCHNG", "Database file !AD, Desired DB Format set to !AD by !AD with pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 9,
-	"DBFGTBC", "!AD File size larger than block count would indicate", 2,
-	"DBFSTBC", "!AD File size smaller than block count would indicate", 2,
-	"DBFSTHEAD", "!AD File smaller than database header", 2,
-	"DBCREINCOMP", "!AD Header indicates database file creation was interrupted before completion", 2,
-	"DBFLCORRP", "!AD Header indicates database file is corrupt", 2,
-	"DBHEADINV", "!AD Header size not valid for database", 2,
-	"DBINCRVER", "!AD Incorrect version of GT.M database", 2,
-	"DBINVGBL", "!AD Invalid mixing of global names", 2,
-	"DBKEYGTIND", "!AD Key greater than index key", 2,
-	"DBGTDBMAX", "!AD Key larger than database maximum", 2,
-	"DBKGTALLW", "!AD Key larger than maximum allowed length", 2,
-	"DBLTSIBL", "!AD Keys less than sibling's index key", 2,
-	"DBLRCINVSZ", "!AD Last record of block has invalid size", 2,
-	"MUREUPDWNGRDEND", "Region !AD : MUPIP REORG UPGRADE/DOWNGRADE finished by pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 5,
-	"DBLOCMBINC", "!AD Local bit map incorrect", 2,
-	"DBLVLINC", "!AD Local bitmap block level incorrect", 2,
-	"DBMBSIZMX", "!AD Map block too large", 2,
-	"DBMBSIZMN", "!AD Map block too small", 2,
-	"DBMBTNSIZMX", "!AD Map block transaction number too large", 2,
-	"DBMBMINCFRE", "!AD Master bit map incorrectly asserts this local map has free space", 2,
-	"DBMBPINCFL", "!AD Master bit map incorrectly marks this local map full", 2,
-	"DBMBPFLDLBM", "!AD Master bit map shows this map full, agreeing with disk local map", 2,
-	"DBMBPFLINT", "!AD Master bit map shows this map full, agreeing with MUPIP INTEG", 2,
-	"DBMBPFLDIS", "!AD Master bit map shows this map full, in disagreement with both disk and INTEG result", 2,
-	"DBMBPFRDLBM", "!AD Master bit map shows this map has space, agreeing with disk local map", 2,
-	"DBMBPFRINT", "!AD Master bit map shows this map has space, agreeing with MUPIP INTEG", 2,
-	"DBMAXKEYEXC", "!AD Maximum key size for database exceeds design maximum", 2,
-	"DBMXRSEXCMIN", "!AD Maximum record size for database is less than the design minimum", 2,
-	"MUPIPSET2SML", "!UL too small, minimum !AD allowed is !UL", 4,
-	"DBREADBM", "!AD Read error on bitmap", 2,
-	"DBCOMPTOOLRG", "!AD Record has too large compression count", 2,
-	"DBVERPERFWARN2", "Peformance warning: Database !AD is not fully upgraded. Run MUPIP REORG UPGRADE for best overall performance", 2,
-	"DBRBNTOOLRG", "!AD Root block number greater than last block number in file", 2,
-	"DBRBNLBMN", "!AD Root block number is a local bit map number", 2,
-	"DBRBNNEG", "!AD Root block number negative", 2,
-	"DBRLEVTOOHI", "!AD Root level higher than maximum", 2,
-	"DBRLEVLTONE", "!AD Root level less than one", 2,
-	"DBSVBNMIN", "!AD Start VBN smaller than possible", 2,
-	"DBTTLBLK0", "!AD Total blocks equal zero", 2,
-	"DBNOTDB", "!AD File does not have a valid GDS file header", 2,
-	"DBTOTBLK", "Total blocks should be 0x!XL, is 0x!XL", 2,
-	"DBTN", "Block TN is 0x!16 at XQ", 1,
-	"DBNOREGION", "None of the database regions accessible", 0,
-	"DBTNRESETINC", "WARNING: tn_reset for database is incomplete due to integrity errors", 0,
-	"DBTNLTCTN", "Transaction numbers greater than the current transaction were found", 0,
-	"DBTNRESET", "Cannot reset transaction number for this region", 0,
-	"MUTEXRSRCCLNUP", "Mutex subsystem leftover resource !AD removed", 2,
-	"SEMWT2LONG", "Process !UL waited !UL second(s) for the !AD lock for region !AD, lock held by pid !UL", 7,
-	"REPLINSTOPEN", "Error opening replication instance file !AD", 2,
-	"REPLINSTCLOSE", "Error closing replication instance file !AD", 2,
-	"JOBSETUP", "Error receiving !AD from parent process", 2,
-	"DBCRERR8", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!16 at XQ, expecting 0x!16 at XQ -- called from module !AD at line !UL", 11,
-	"NUMPROCESSORS", "Could not determine number of processors", 0,
-	"DBADDRANGE8", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!16 at XQ was outside !AD range 0x!16 at XQ to 0x!16 at XQ", 9,
-	"RNDWNSEMFAIL", "Attempting to acquire gds_rundown semaphore when it is already owned", 0,
-	"GTMSECSHRSHUTDN", "gtmsecshr process has received a shutdown request -- shutting down", 0,
-	"NOSPACECRE", "Not enough space to create database file !AD.  !@ZQ blocks are needed, only !@ZQ available.", 4,
-	"LOWSPACECRE", "Disk space for database file !AD is not enough for !UL future extensions.  !@ZQ !UL-byte blocks are needed, only !@ZQ available.", 6,
-	"WAITDSKSPACE", "Process 0x!XL will wait !UL seconds for necessary disk space to become available for !AD ", 4,
-	"OUTOFSPACE", "Database file !AD ran out of disk space.  Detected by process !UL.  !/Exit without clearing shared memory due to the disk space constraints.  !/Make space and then perform mupip rundown to ensure database integrity.", 3,
-	"JNLPVTINFO", "Pid 0x!XL!/     cycle 0x!XL fd_mismatch 0x!XL     channel 0x!XL sync_io 0x!XL!/ pini_addr 0x!XL  qio_active 0x!XL old_channel 0x!XL", 8,
-	"NOSPACEEXT", "Not enough disk space for file !AD to extend.  !UL blocks needed.  !UL blocks available.", 4,
-	"WCBLOCKED", "Field !AD is set by process !UL at transaction number 0x!16 at XQ for database file !AD", 6,
-	"REPLJNLCLOSED", "Replication in jeopardy as journaling got closed for database file !AD. Current region seqno is !@ZQ [0x!16 at XQ] and system seqno is !@ZQ [0x!16 at XQ]", 6,
-	"RENAMEFAIL", "Rename of file !AD to !AD failed", 4,
-	"FILERENAME", "File !AD is renamed to !AD", 4,
-	"JNLBUFINFO", "Pid 0x!XL!/     dsk 0x!XL     free 0x!XL  bytcnt 0x!XL io_in_prog 0x!XL fsync_in_prog 0x!XL!/ dskaddr 0x!XL freeaddr 0x!XL  qiocnt 0x!XL now_writer 0x!XL     fsync_pid 0x!XL!/filesize 0x!XL    cycle 0x!XL  errcnt 0x!XL    wrtsize 0x!XL fsync_dskaddr 0x!XL", 16,
-	"SDSEEKERR", "Sequential device seek error - !AD", 2,
-	"LOCALSOCKREQ", "LOCAL socket required", 0,
-	"TPNOTACID", "!AD at !AD in a final TP retry violates ACID properties of a TRANSACTION; indefinite RESTARTs may occur !AD !AD", 8,
-	"JNLSETDATA2LONG", "SET journal record has data of length !UL.  Target system cannot handle data more than !UL bytes.", 2,
-	"JNLNEWREC", "Target system cannot recognize journal record of type !UL, last recognized type is !UL", 2,
-	"REPLFTOKSEM", "Error with replication semaphores for instance file !AD", 2,
-	"SOCKNOTPASSED", "Socket message contained no passed socket descriptors", 0,
-	"EXTRIOERR", "Error writing extract file !AD", 2,
-	"EXTRCLOSEERR", "Error closing extract file !AD", 2,
-	"CONNSOCKREQ", "Socket not connected", 0,
-	"REPLEXITERR", "Replication process encountered an error while exiting", 0,
-	"MUDESTROYSUC", "Global section (!AD) corresponding to file !AD successfully destroyed", 4,
-	"DBRNDWN", "Error during global database rundown for region !AD.!/Notify those responsible for proper database operation.", 2,
-	"MUDESTROYFAIL", "Global section (!AD) corresponding to file !AD failed to be destroyed", 4,
-	"NOTALLDBOPN", "Not all required database files were opened", 0,
-	"MUSELFBKUP", "Database file !AD can not be backed upon itself", 2,
-	"DBDANGER", "Process !UL [0x!XL] killed while committing update for database file !AD.  Possibility of damage to block 0x!XL.", 5,
-	"TRUNCATEFAIL", "Truncating !AD from 0x!XL VMS blocks to 0x!XL blocks failed", 4,
-	"TCGETATTR", "Error while getting terminal attributes on file descriptor !UL", 1,
-	"TCSETATTR", "Error while setting terminal attributes on file descriptor !UL", 1,
-	"IOWRITERR", "IO Write by pid 0x!XL to blk 0x!XL of database file !AD failed.  Pid 0x!XL retrying the IO.", 5,
-	"REPLINSTWRITE", "Error writing [0x!XL] bytes at offset [0x!16 at XQ] in replication instance file !AD", 4,
-	"DBBADFREEBLKCTR", "Database !AD free blocks counter in file header: 0x!XL appears incorrect, should be 0x!XL.  Auto-corrected.", 4,
-	"REQ2RESUME", "Request to resume suspended processing received from process !UL owned by userid !UL", 2,
-	"TIMERHANDLER", "Incorrect SIGALRM handler (0x!XJ) found by !AD", 3,
-	"FREEMEMORY", "Error occurred freeing memory from 0x!XJ", 1,
-	"MUREPLSECDEL", "Replication section !AD deleted", 2,
-	"MUREPLSECNOTDEL", "Replication section !AD not deleted", 2,
-	"MUJPOOLRNDWNSUC", "Jnlpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4,
-	"MURPOOLRNDWNSUC", "Recvpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4,
-	"MUJPOOLRNDWNFL", "Jnlpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4,
-	"MURPOOLRNDWNFL", "Recvpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4,
-	"MUREPLPOOL", "Error with replpool section !AD", 2,
-	"REPLACCSEM", "Error with replication access semaphore (id = !UL) for instance file !AD", 3,
-	"JNLFLUSHNOPROG", "No progress while attempting to flush journal file !AD", 2,
-	"REPLINSTCREATE", "Error creating replication instance file !AD", 2,
-	"SUSPENDING", "Process Received Signal !UL. Suspending processing on user request or attempt to do terminal I/O while running in the background", 1,
-	"SOCKBFNOTEMPTY", "Socket buffer size cannot be set to 0x!XL due to 0x!XL bytes of buffered data.  Read first.", 2,
-	"ILLESOCKBFSIZE", "The specified socket buffer size is 0x!XL, which is either 0 or too big", 1,
-	"NOSOCKETINDEV", "There is no socket in the current socket device", 0,
-	"SETSOCKOPTERR", "Setting the socket attribute !AD failed: (errno == !UL) !AD", 5,
-	"GETSOCKOPTERR", "Getting the socket attribute !AD failed: (errno == !UL) !AD", 5,
-	"NOSUCHPROC", "Process !UL does not exist - no need to !AD it", 3,
-	"DSENOFINISH", "DSE unable to finish all requested actions", 0,
-	"LKENOFINISH", "LKE unable to finish all requested actions", 0,
-	"NOCHLEFT", "Unhandled condition exception (all handlers exhausted) - process terminating", 0,
-	"MULOGNAMEDEF", "Logical name !AD, needed to start replication server is already defined for this job.  !/Check for an existing or improperly terminated server.", 2,
-	"BUFOWNERSTUCK", "Pid !UL waiting for Pid !UL to finish disk-read of block !UL [0x!XL].!/Been waiting for !UL minutes.  read_in_progress=!UL : rip_latch = !UL.", 7,
-	"ACTIVATEFAIL", "Cannot activate passive source server on instance !AD while a receiver server and/or update process is running", 2,
-	"DBRNDWNWRN", "Global section of database file !AD not rundown successfully by pid !UL [0x!XL].  Global section was not removed.", 4,
-	"DLLNOOPEN", "Failed to load external dynamic library !AD", 2,
-	"DLLNORTN", "Failed to look up the location of the symbol !AD", 2,
-	"DLLNOCLOSE", "Failed to unload external dynamic library", 0,
-	"FILTERNOTALIVE", "Replication server detected that the filter is not alive while attempting to send seqno !16 at XQ", 1,
-	"FILTERCOMM", "Error communicating seqno !16 at XQ with the filter", 1,
-	"FILTERBADCONV", "Bad conversion of seqno !16 at XQ by filter", 1,
-	"PRIMARYISROOT", "Attempted operation not valid on root primary instance !AD", 2,
-	"GVQUERYGETFAIL", "Global variable QUERY and GET failed.  Failure code: !AD.", 2,
-	"DBCREC2BIGINBLK", "A Record in block 0x!XL has a length greater than the maximum (!UL) in database !AD", 4,
-	"MERGEDESC", "Merge operation not possible.  !AD is descendent of !AD.", 4,
-	"MERGEINCOMPL", "Error encountered during MERGE; operation may be incomplete", 0,
-	"DBNAMEMISMATCH", "Database file !AD points to shared memory (id = !UL) which in turn points to an inaccessible database file !AZ", 4,
-	"DBIDMISMATCH", "Database file !AZ (region !AD) id does not match file id in shared memory (id = !UL).", 4,
-	"DEVOPENFAIL", "Error opening !AD", 2,
-	"IPCNOTDEL", "!AD : !AD did not delete IPC resources for region !AD", 6,
-	"XCVOIDRET", "Attempt to return a value from function !AD, which is declared void in external call table !AD", 4,
-	"MURAIMGFAIL", "Mupip recover or rollback failed while processing an after-image journal record.  Failure code: !AD.", 2,
-	"REPLINSTUNDEF", "Replication instance environment variable $gtm_repl_instance is undefined", 0,
-	"REPLINSTACC", "Error accessing replication instance file !AD", 2,
-	"NOJNLPOOL", "No journal pool info found in the replication instance of !AD", 2,
-	"NORECVPOOL", "No receiver pool info found in the replication instance of !AD", 2,
-	"FTOKERR", "Error getting ftok of the file !AD", 2,
-	"REPLREQRUNDOWN", "Error accessing replication instance !AD.  Must be rundown on cluster node !AD.", 4,
-	"BLKCNTEDITFAIL", "Mupip recover or rollback failed to correct the block count field in the file header for file !AD", 2,
-	"SEMREMOVED", "Semaphore id !UL removed from the system", 1,
-	"REPLINSTFMT", "Format error encountered while reading replication instance file !AD. Expected !AD. Found !AD.", 6,
-	"SEMKEYINUSE", "Semaphore key 0x!XL is already in use (possibly by an older version)", 1,
-	"XTRNTRANSERR", "Error attempting to generate an environment using an external algorithm", 0,
-	"XTRNTRANSDLL", "Error during extended reference environment translation.  Check the above message.", 0,
-	"XTRNRETVAL", "Length of return value (!SL) from extended reference translation algorithm is not in the range [0,!UL]", 2,
-	"XTRNRETSTR", "Return string from extended reference translation algorithm is NULL", 0,
-	"INVECODEVAL", "Invalid value for $ECODE (!AD)", 2,
-	"SETECODE", "Non-empty value assigned to $ECODE (user-defined error trap)", 0,
-	"INVSTACODE", "Invalid value for second parameter of $STACK (!AD)", 2,
-	"REPEATERROR", "Repeat previous error", 0,
-	"NOCANONICNAME", "Value is not a canonic name (!AD)", 2,
-	"NOSUBSCRIPT", "No such subscript found (!SL)", 1,
-	"SYSTEMVALUE", "Invalid value for $SYSTEM (!AD)", 2,
-	"SIZENOTVALID4", "Size (in bytes) must be either 1, 2, or 4", 0,
-	"STRNOTVALID", "Error: cannot convert !AD value to valid value", 2,
-	"CREDNOTPASSED", "Socket message contained no passed credentials", 0,
-	"ERRWETRAP", "Error while processing $ETRAP", 0,
-	"TRACINGON", "Tracing already turned on", 0,
-	"CITABENV", "Environment variable for call-in table !AD not set", 2,
-	"CITABOPN", "Unable to open call-in table: !AD", 2,
-	"CIENTNAME", "No label reference found for this entry in call-in table", 0,
-	"CIRTNTYP", "Invalid return type", 0,
-	"CIRCALLNAME", "Call-in routine name expected but not found", 0,
-	"CIRPARMNAME", "Invalid parameter specification for call-in table", 0,
-	"CIDIRECTIVE", "Invalid directive parameter passing.  Expected I, O or IO.", 0,
-	"CIPARTYPE", "Invalid type specification for O/IO directive - expected pointer type", 0,
-	"CIUNTYPE", "Unknown parameter type encountered", 0,
-	"CINOENTRY", "No entry specified for !AD in the call-in table", 2,
-	"JNLINVSWITCHLMT", "Journal AUTOSWITCHLIMIT [!UL] falls outside of allowed limits [!UL] and [!UL]", 3,
-	"SETZDIR", "Cannot change working directory to !AD", 2,
-	"JOBACTREF", "Actual parameter in job command passed by reference", 0,
-	"ECLOSTMID", "$ECODE overflow, the first and last ecodes are retained, but some intervening ecodes have been lost", 0,
-	"ZFF2MANY", "Number of characters specified for ZFF deviceparameter (!UL) is more than the maximum allowed (!UL)", 2,
-	"JNLFSYNCLSTCK", "Journaling fsync lock is stuck in journal file !AD", 2,
-	"DELIMWIDTH", "Delimiter length !UL exceeds device width !UL", 2,
-	"DBBMLCORRUPT", "Database !AD : Bitmap blk [0x!XL] is corrupt (size = [0x!XL], levl = [0x!XL], tn = [0x!16 at XQ]) : Dbtn = [0x!16 at XQ] : Database integrity errors likely", 7,
-	"DLCKAVOIDANCE", "Possible deadlock detected: Database !AD : Dbtn [0x!16 at XQ] : t_tries [0x!XL] : dollar_trestart [0x!XL] : now_crit [0x!XL] : TP transaction restarted", 6,
-	"WRITERSTUCK", "Buffer flush stuck waiting for [0x!XL] concurrent writers to finish writing to database file !AD", 3,
-	"PATNOTFOUND", "Current pattern table has no characters with pattern code !AD", 2,
-	"INVZDIRFORM", "Invalid value (!UL) specified for ZDIR_FORM", 1,
-	"ZDIROUTOFSYNC", "$ZDIRECTORY !AD is not the same as its cached value !AD", 4,
-	"GBLNOEXIST", "Global !AD no longer exists", 2,
-	"MAXBTLEVEL", "Global ^!AD in region !AD reached maximum level", 4,
-	"INVMNEMCSPC", "Unsupported mnemonicspace !AD", 2,
-	"JNLALIGNSZCHG", "Journal ALIGNSIZE is rounded up to !UL blocks (closest next higher power of two)", 1,
-	"SEFCTNEEDSFULLB", "Current side effect setting does not permit full Boolean to be turned off", 0,
-	"GVFAILCORE", "A core file is being created for later analysis if necessary", 0,
-	"DBCDBNOCERTIFY", "Database !AD HAS NOT been certified due to the preceding errors - rerun DBCERTIFY SCAN", 2,
-	"DBFRZRESETSUC", "Freeze released successfully on database file !AD", 2,
-	"JNLFILEXTERR", "Error during extension of journal file !AD", 2,
-	"JOBEXAMDONE", "GT.M process !UL completed job examine to !AD", 3,
-	"JOBEXAMFAIL", "GT.M process !UL executing $ZJOBEXAM function failed with the preceding error message", 1,
-	"JOBINTRRQST", "Job interrupt requested", 0,
-	"ERRWZINTR", "Error while processing $ZINTERRUPT", 0,
-	"CLIERR", "!AD", 2,
-	"REPLNOBEFORE", "NOBEFORE option cannot be used when the current replication state is ON for database file !AD", 2,
-	"REPLJNLCNFLCT", "Journaling cannot be turned !AD on database file !AD as the replication state is !AD and must also be turned !AD in the same command", 8,
-	"JNLDISABLE", "Specified journal option(s) cannot take effect as journaling is DISABLED on database file !AD", 2,
-	"FILEEXISTS", "File !AD already exists", 2,
-	"JNLSTATE", "Journaling state for !AD !AD is now !AD", 6,
-	"REPLSTATE", "Replication state for !AD !AD is now !AD", 6,
-	"JNLCREATE", "Journal file !AD created for !AD !AD with !AD", 8,
-	"JNLNOCREATE", "Journal file !AD not created", 2,
-	"JNLFNF", "Journal file !AD not found", 2,
-	"PREVJNLLINKCUT", "Previous journal file name link set to NULL in new journal file !AD created for database file !AD", 4,
-	"PREVJNLLINKSET", "Previous generation journal file name is changed from !AD to !AD", 4,
-	"FILENAMETOOLONG", "File name too long", 0,
-	"REQRECOV", "Error accessing database !AD.  Must be recovered on cluster node !AD.", 4,
-	"JNLTRANS2BIG", "Transaction needs an estimated [!UL blocks] in journal file !AD which exceeds the AUTOSWITCHLIMIT of !UL blocks", 4,
-	"JNLSWITCHTOOSM", "Journal AUTOSWITCHLIMIT [!UL blocks] is less than Journal ALLOCATION [!UL blocks] for database file !AD", 4,
-	"JNLSWITCHSZCHG", "Journal AUTOSWITCHLIMIT [!UL blocks] is rounded down to [!UL blocks] to equal the sum of Journal ALLOCATION [!UL blocks] and a multiple of Journal EXTENSION [!UL blocks] for database file !AD", 6,
-	"NOTRNDMACC", "Only random access files are supported as backup files for non-incremental backup", 0,
-	"TMPFILENOCRE", "Error in MUPIP BACKUP while trying to create temporary file !AD", 2,
-	"SHRMEMEXHAUSTED", "Attempt by process to use more shared memory than currently permitted by VMS", 0,
-	"JNLSENDOPER", "pid = 0x!XL : status = 0x!XL : jpc_status = 0x!XL : jpc_status2 = 0x!XL : iosb.cond = 0x!XW", 5,
-	"DDPSUBSNUL", "NUL characters in subscripts are not supported by DDP", 0,
-	"DDPNOCONNECT", "Named volume set, !AD, is not connected", 2,
-	"DDPCONGEST", "Agent congestion", 0,
-	"DDPSHUTDOWN", "Server has shut down", 0,
-	"DDPTOOMANYPROCS", "Maximum process limit of !UL exceeded", 1,
-	"DDPBADRESPONSE", "DDP invalid response code: !XB; message text follows", 1,
-	"DDPINVCKT", "Invalid format for CIRCUIT", 0,
-	"DDPVOLSETCONFIG", "Volume Set Configuration file error", 0,
-	"DDPCONFGOOD", "Volume Set Configuration entry accepted", 0,
-	"DDPCONFIGNORE", "Volume Set Configuration line ignored", 0,
-	"DDPCONFINCOMPL", "Volume Set Configuration entry incomplete", 0,
-	"DDPCONFBADVOL", "Volume Set Configuration entry : invalid volume", 0,
-	"DDPCONFBADUCI", "Volume Set Configuration entry : invalid uci", 0,
-	"DDPCONFBADGLD", "Volume Set Configuration entry : invalid global directory", 0,
-	"DDPRECSIZNOTNUM", "Maximum record size is not numeric", 0,
-	"DDPOUTMSG2BIG", "DDP message too big to be accommodated in outbound buffer", 0,
-	"DDPNOSERVER", "DDP Server not running on local node", 0,
-	"MUTEXRELEASED", "Process !UL [0x!XL] has released the critical section for database !AD to avoid deadlock. $TLEVEL: !UL  t_tries: !UL", 6,
-	"JNLCRESTATUS", "!AD at line !UL for journal file !AD, database file !AD encountered error", 7,
-	"ZBREAKFAIL", "Could not set breakpoint at !AD due to insufficient memory", 2,
-	"DLLVERSION", "Routine !AD in library !AD was compiled with an incompatible version of GT.M.  Recompile with the current version and re-link.", 4,
-	"INVZROENT", "!AD is neither a directory nor an object library(DLL)", 2,
-	"DDPLOGERR", "!AD: !AD", 4,
-	"GETSOCKNAMERR", "Getting the socket name failed from getsockname(): (errno==!UL) !AD", 3,
-	"INVGTMEXIT", "Inappropriate invocation of gtm_exit. gtm_exit cannot be invoked from external calls.", 0,
-	"CIMAXPARAM", "Exceeded maximum number of parameters in the call-in table entry. An M routine cannot accept more than 32 parameters.", 0,
-	"CITPNESTED", "Call-ins can not be used inside a TP transaction", 0,
-	"CIMAXLEVELS", "Too many nested Call-ins. Nested resources exhausted at level !UL.", 1,
-	"JOBINTRRETHROW", "Job interrupt redelivered", 0,
-	"STARFILE", "Star(*) argument cannot be specified with !AD", 2,
-	"NOSTARFILE", "Only star(*) argument can be specified with !AD", 2,
-	"MUJNLSTAT", "!AD at !AD", 4,
-	"JNLTPNEST", "Mupip journal command found nested TP transactions for journal file !AD at offset 0x!XL at transaction number 0x!16 at XQ", 4,
-	"REPLOFFJNLON", "Replication state for database file !AD is OFF but journaling state is enabled", 2,
-	"FILEDELFAIL", "Deletion of file !AD failed", 2,
-	"INVQUALTIME", "Invalid time qualifier value.  Specify as !AD=delta_or_absolute_time.", 2,
-	"NOTPOSITIVE", "!AD qualifier must be given a value greater than zero", 2,
-	"INVREDIRQUAL", "Invalid REDIRECT qualifier value.  !AD", 2,
-	"INVERRORLIM", "Invalid ERROR_LIMIT qualifier value.  Must be at least zero", 0,
-	"INVIDQUAL", "Invalid ID qualifier value !AD", 2,
-	"INVTRNSQUAL", "Invalid TRANSACTION qualifier.  Specify only one of TRANSACTION=[NO]SET or TRANSACTION=[NO]KILL.", 0,
-	"JNLNOBIJBACK", "MUPIP JOURNAL BACKWARD cannot continue as journal file !AD does not have before image journaling", 2,
-	"SETREG2RESYNC", "Setting resync sequence number 0x!16 at XQ to region sequence number 0x!16 at XQ for database !AD", 4,
-	"JNLALIGNTOOSM", "Alignsize !UL (bytes) is too small for a block size of !UL (bytes) for !AD !AD.  Using alignsize of !UL (bytes) instead.", 7,
-	"JNLFILEOPNERR", "Error opening journal file !AD", 2,
-	"JNLFILECLOSERR", "Error closing journal file !AD", 2,
-	"REPLSTATEOFF", "MUPIP JOURNAL -ROLLBACK -BACKWARD cannot proceed as database !AD does not have replication ON", 2,
-	"MUJNLPREVGEN", "Previous generation journal file !AD included for database file !AD", 4,
-	"MUPJNLINTERRUPT", "Database file !AD indicates interrupted MUPIP JOURNAL command.  Restore from backup for forward recover/rollback.", 2,
-	"ROLLBKINTERRUPT", "Database file !AD indicates interrupted ROLLBACK.  Reissue the MUPIP JOURNAL ROLLBACK command.", 2,
-	"RLBKJNSEQ", "Journal seqno of the instance after rollback is !@ZQ [0x!16 at XQ]", 2,
-	"REPLRECFMT", "Replication journal record format error encountered", 0,
-	"PRIMARYNOTROOT", "Attempted operation not valid on non-root primary instance !AD", 2,
-	"DBFRZRESETFL", "Freeze release failed on database file !AD", 2,
-	"JNLCYCLE", "Journal file !AD causes cycle in the journal file generations of database file !AD", 4,
-	"JNLPREVRECOV", "Journal file has nonzero value in prev_recov_end_of_data field", 0,
-	"RESOLVESEQNO", "Resolving until sequence number !@ZQ [0x!16 at XQ]", 2,
-	"BOVTNGTEOVTN", "Journal file !AD has beginning transaction [0x!16 at XQ] which is greater than end transaction [0x!16 at XQ]", 4,
-	"BOVTMGTEOVTM", "Journal file !AD has beginning timestamp [0x!16 at XQ] greater than end timestamp [0x!16 at XQ]", 4,
-	"BEGSEQGTENDSEQ", "Journal file !AD has beginning sequence number [0x!16 at XQ] greater than end sequence number [0x!16 at XQ]", 4,
-	"DBADDRALIGN", "Database file !AD, element location 0x!XJ: blk = 0x!XL: [!AD] control 0x!XJ was unaligned relative to base 0x!XJ and element size 0x!XL", 9,
-	"DBWCVERIFYSTART", "Database file !AD, write cache verification started by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5,
-	"DBWCVERIFYEND", "Database file !AD, write cache verification finished by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5,
-	"MUPIPSIG", "!AD (signal !UL) issued from process !UL [0x!XL] to process !UL [0x!XL]", 7,
-	"HTSHRINKFAIL", "Hash table compaction failed to allocate new smaller table due to lack of memory", 0,
-	"STPEXPFAIL", "Stringpool expansion failed. It could not expand to !UL bytes.", 1,
-	"DBBTUWRNG", "The blocks-to-upgrade file-header field is incorrect. Expected 0x!XL, found 0x!XL", 2,
-	"DBBTUFIXED", "The blocks-to-upgrade file-header field has been changed to the correct value", 0,
-	"DBMAXREC2BIG", "Maximum record size (!UL) is too large for this block size (!UL) - Maximum is !UL", 3,
-	"DBCSCNNOTCMPLT", "Specified DBCERTIFY SCAN output file is not complete - Rerun scan", 0,
-	"DBCBADFILE", "Source file !AD does not appear to have been generated by DBCERTIFY SCAN - rerun SCAN or specify correct file", 2,
-	"DBCNOEXTND", "Unable to extend database !AD", 2,
-	"DBCINTEGERR", "Encountered integrity error in database !AD", 2,
-	"DBMINRESBYTES", "Minimum RESERVED BYTES value required for certification/upgrade is !UL - Currently is !UL", 2,
-	"DBCNOTSAMEDB", "Database has been moved or restored since DBCERTIFY SCAN - Rerun scan", 0,
-	"DBCDBCERTIFIED", "Database !AD has been certified for use with !AD", 4,
-	"DBCMODBLK2BIG", "Block 0x!XL has been modified since DBCERTIFY SCAN but is still too large or now has an earlier TN than in the scan phase - Rerun scan phase", 1,
-	"DBCREC2BIG", "Record with key !AD is length !UL in block 0x!XL which is greater than the maximum length !UL in database !AD", 7,
-	"DBCCMDFAIL", "Executed command failed with return code !SL: !AD which executed !AD !AD", 7,
-	"DBCKILLIP", "Cannot proceed with kill in progress indicator set for database !AD -- Run MUPIP INTEG first", 2,
-	"DBCNOFINISH", "DBCERTIFY unable to finish all requested actions", 0,
-	"DYNUPGRDFAIL", "Unable to dynamically upgrade block 0x!XL in database !AD due to lack of free space in block", 3,
-	"MMNODYNDWNGRD", "Unable to use dynamic downgrade with MM access method for region !AD. Use BG access method for downgrade", 2,
-	"MMNODYNUPGRD", "Unable to use MM access method for region !AD until all database blocks are upgraded", 2,
-	"MUDWNGRDNRDY", "Database !AD is not ready to downgrade - still !UL database blocks to downgrade", 3,
-	"MUDWNGRDTN", "Transaction number 0x!16 at XQ in database !AD is too big for MUPIP [REORG] DOWNGRADE. Renew database with MUPIP INTEG TN_RESET", 3,
-	"MUDWNGRDNOTPOS", "Start VBN value is [!UL] while downgraded GT.M version can support only [!UL]. Downgrade not possible", 2,
-	"MUUPGRDNRDY", "Database !AD has not been certified as being ready to upgrade to !AD format", 4,
-	"TNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4,
-	"TNTOOLARGE", "Database file !AD has reached the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 3,
-	"SHMPLRECOV", "Shared memory pool block recovery invoked for region !AD", 2,
-	"MUNOSTRMBKUP", "Database !AD has a block size larger than !UL and thus cannot use stream (incremental) backup", 3,
-	"EPOCHTNHI", "At the EPOCH record at offset !UL of !AD transaction number [0x!16 at XQ] is higher than database transaction number [0x!16 at XQ]", 5,
-	"CHNGTPRSLVTM", "Mupip will change tp_resolve_time from !UL to !UL because expected EPOCH or EOF record was not found in Journal File !AD", 4,
-	"JNLUNXPCTERR", "Unexpected error encountered for Journal !AD at disk address 0x!XL", 3,
-	"OMISERVHANG", "GTCM OMI server is hung", 0,
-	"RSVDBYTE2HIGH", "Record size (!UL) is greater than the maximum allowed for region !AD with Block size (!UL) and Reserved bytes (!UL)", 5,
-	"BKUPTMPFILOPEN", "Open of backup temporary file !AD failed", 2,
-	"BKUPTMPFILWRITE", "Write to backup temporary file !AD failed", 2,
-	"VMSMEMORY2", "Central storage exhausted during allocation of dynamic file descriptor with !UL bytes - check page file quota and page file size", 1,
-	"LOADBGSZ2", "Load error: BEGIN too large.  No records loaded.", 0,
-	"LOADEDSZ2", "Load error: END too large.  No records loaded.", 0,
-	"REPLINSTMISMTCH", "Process has replication instance file !AD (jnlpool shmid = !UL) open but database !AD is bound to instance file !AD (jnlpool shmid = !UL)", 8,
-	"REPLINSTREAD", "Error reading [0x!XL] bytes at offset [0x!16 at XQ] from replication instance file !AD", 4,
-	"REPLINSTDBMATCH", "Replication instance file !AD has seqno [0x!16 at XQ] while database has a different seqno [0x!16 at XQ]", 4,
-	"REPLINSTNMSAME", "Primary and Secondary instances have the same replication instance name !AD", 2,
-	"REPLINSTNMUNDEF", "Replication instance name not defined", 0,
-	"REPLINSTNMLEN", "Replication instance name !AD should be 1 to 15 characters long", 2,
-	"REPLINSTNOHIST", "History information for !AD not found in replication instance file !AD", 4,
-	"REPLINSTSECLEN", "Secondary replication instance name !AD should be 1 to 15 characters long", 2,
-	"REPLINSTSECMTCH", "Secondary replication instance name !AD sent by receiver does not match !AD specified at source server startup", 4,
-	"REPLINSTSECNONE", "No information found for secondary instance !AD in instance file !AD", 4,
-	"REPLINSTSECUNDF", "Secondary replication instance name not defined", 0,
-	"REPLINSTSEQORD", "!AD has seqno [0x!16 at XQ] which is less than last record seqno [0x!16 at XQ] in replication instance file !AD", 6,
-	"REPLINSTSTNDALN", "Could not get exclusive access to replication instance file !AD", 2,
-	"REPLREQROLLBACK", "Replication instance file !AD indicates abnormal shutdown or an incomplete ROLLBACK. Run MUPIP JOURNAL ROLLBACK first", 2,
-	"REQROLLBACK", "Error accessing database !AD.  Run MUPIP JOURNAL ROLLBACK on cluster node !AD.", 4,
-	"INVOBJFILE", "Cannot ZLINK object file !AD due to unexpected format", 2,
-	"SRCSRVEXISTS", "Source server for secondary instance !AD is already running with pid !UL", 3,
-	"SRCSRVNOTEXIST", "Source server for secondary instance !AD is not alive", 2,
-	"SRCSRVTOOMANY", "Cannot start more than !UL source servers in replication instance !AD", 3,
-	"JNLPOOLBADSLOT", "Source server slot for secondary instance !AD is in an inconsistent state. Pid = [!UL], State = [!UL], SlotIndex = [!UL]", 5,
-	"NOENDIANCVT", "Unable to convert the endian format of file !AD due to !AD", 4,
-	"ENDIANCVT", "Converted database file !AD from !AZ endian to !AZ endian on a !AZ endian system", 5,
-	"DBENDIAN", "Database file !AD is !AZ endian on a !AZ endian system", 4,
-	"BADCHSET", "!AD is not a valid character mapping in this context", 2,
-	"BADCASECODE", "!AD is not a valid case conversion code", 2,
-	"BADCHAR", "$ZCHAR(!AD) is not a valid character in the !AD encoding form", 4,
-	"DLRCILLEGAL", "!_!AD!/!_!_!_Illegal $CHAR() value !UL", 3,
-	"NONUTF8LOCALE", "Locale has character encoding (!AD) which is not compatible with UTF-8 character set", 2,
-	"INVDLRCVAL", "Invalid $CHAR() value !UL", 1,
-	"DBMISALIGN", "Database file !AD has !UL blocks which does not match alignment rules. Reconstruct the database from a backup or extend it by at least !UL blocks.", 4,
-	"LOADINVCHSET", "Extract file CHSET (!AD) is incompatible with gtm_chset", 2,
-	"DLLCHSETM", "Routine !AD in library !AD was compiled with CHSET=M which is different from $ZCHSET. Recompile with CHSET=UTF-8 and re-link.", 4,
-	"DLLCHSETUTF8", "Routine !AD in library !AD was compiled with CHSET=UTF-8 which is different from $ZCHSET. Recompile with CHSET=M and re-link.", 4,
-	"BOMMISMATCH", "!AD Byte Order Marker found when !AD character set specified", 4,
-	"WIDTHTOOSMALL", "WIDTH should be at least 2 when device ICHSET or OCHSET is UTF-8 or UTF-16", 0,
-	"SOCKMAX", "Attempt to exceed maximum sockets (!UL) for the SOCKET device", 1,
-	"PADCHARINVALID", "PAD deviceparameter cannot be greater than 127", 0,
-	"ZCNOPREALLOUTPAR", "Parameter !UL in external call !AD.!AD is an output only parameter requiring pre-allocation", 5,
-	"SVNEXPECTED", "Special variable expected in this context", 0,
-	"SVNONEW", "Cannot NEW this special variable", 0,
-	"ZINTDIRECT", "Attempt to enter direct mode from $ZINTERRUPT", 0,
-	"ZINTRECURSEIO", "Attempt to do IO to the active device in $ZINTERRUPT", 0,
-	"MRTMAXEXCEEDED", "Maximum value of !UL for SOCKET device parameter MOREREADTIME exceeded", 1,
-	"JNLCLOSED", "Journaling closed for database file !AD at transaction number 0x!16 at XQ", 3,
-	"RLBKNOBIMG", "ROLLBACK cannot proceed as database !AD has NOBEFORE_IMAGE journaling", 2,
-	"RLBKJNLNOBIMG", "Journal file !AD has NOBEFORE_IMAGE journaling", 2,
-	"RLBKLOSTTNONLY", "ROLLBACK will only create a lost transaction file (database and journal files will not be modified)", 0,
-	"KILLBYSIGSINFO3", "!AD process !UL has been killed by a signal !UL accessing vaddress 0x!XJ", 5,
-	"GTMSECSHRTMPPATH", "gtmsecshr path is !AD", 2,
-	"GTMERREXIT", "GTM image has exited with errors", 0,
-	"INVMEMRESRV", "Could not allocate GT.M memory reserve (!AD)", 2,
-	"OPCOMMISSED", "!UL errors and !UL MBFULLs sending prior operator messages", 2,
-	"COMMITWAITSTUCK", "Pid !UL timed out after waiting !UL minute(s) for !UL concurrent GT.M process(es) to finish commits in database file !AD", 5,
-	"COMMITWAITPID", "Pid !UL waited !UL minute(s) for pid !UL to finish commits to block 0x!XL in database file !AD", 6,
-	"UPDREPLSTATEOFF", "Error replicating global ^!AD as it maps to database !AD which has replication turned OFF", 4,
-	"LITNONGRAPH", "M standard requires graphics in string literals; found non-printable: $ZCHAR(!AD)", 2,
-	"DBFHEADERR8", "Database file !AD: control problem: !AD was 0x!16 at XQ expecting 0x!16 at XQ", 6,
-	"MMBEFOREJNL", "BEFORE image journaling cannot be set with MM access method in database file !AD", 2,
-	"MMNOBFORRPL", "Replication cannot be used in database file !AD which uses MM access method and NOBEFORE image journaling", 2,
-	"KILLABANDONED", "Abandoned kills counter is greater than zero for file !AD, !AD", 4,
-	"BACKUPKILLIP", "Kill in progress indicator is set for file !AD, backup database could have incorrectly marked busy integrity errors", 2,
-	"LOGTOOLONG", "Environment variable !AD is too long. Maximum length allowed is !UL bytes.", 3,
-	"NOALIASLIST", "Parenthetical lists of multiple arguments cannot have a preceding alias introducer or include alias (*) forms", 0,
-	"ALIASEXPECTED", "Alias or alias container variable expected in this context", 0,
-	"VIEWLVN", "Invalid local variable name used with VIEW/$VIEW(): !AD", 2,
-	"DZWRNOPAREN", "$ZWRTACxxx is not allowed inside a parenthesized SET target", 0,
-	"DZWRNOALIAS", "$ZWRTAC cannot be aliased", 0,
-	"FREEZEERR", "Error while trying to !AD region !AD", 4,
-	"CLOSEFAIL", "Error while closing file descriptor !SL", 1,
-	"CRYPTINIT", "Could not initialize encryption library while opening encrypted file !AD. !AD", 4,
-	"CRYPTOPFAILED", "Encrypt/Decrypt operation failed for file !AD. !AD", 4,
-	"CRYPTDLNOOPEN", "Could not load encryption library while opening encrypted file !AD. !AD", 4,
-	"CRYPTNOV4", "!AD is an encrypted database. Cannot downgrade(to V4) with Encryption option enabled.", 2,
-	"CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2,
-	"UNUSEDMSG1316", "Last used in V6.2-002A", 0,
-	"CRYPTKEYFETCHFAILED", "Could not retrieve encryption key corresponding to file !AD. !AD", 4,
-	"CRYPTKEYFETCHFAILEDNF", "Could not retrieve encryption key during !AD operation key. !AD", 4,
-	"CRYPTHASHGENFAILED", "Could not generate cryptographic hash for symmetric key corresponding to file !AD. !AD", 4,
-	"CRYPTNOKEY", "No encryption key specified", 0,
-	"BADTAG", "Unable to use file !AD (CCSID !UL) with CCSID !UL", 4,
-	"ICUVERLT36", "!AD !UL.!UL. ICU version greater than or equal to 3.6 should be used", 4,
-	"ICUSYMNOTFOUND", "Symbol !AD not found in the ICU libraries. ICU needs to be built with symbol-renaming disabled or gtm_icu_version environment variable needs to be properly specified", 2,
-	"STUCKACT", "Process stuck script invoked: !AD : !AD", 4,
-	"CALLINAFTERXIT", "After a gtm_exit, a process can never create a valid GT.M context", 0,
-	"LOCKSPACEFULL", "No more room for LOCK slots on database file !AD", 2,
-	"IOERROR", "Error occured while doing !AD in !AD operation -- called from module !AD at line !UL", 7,
-	"MAXSSREACHED", "Maximum snapshots - !UL - for region !AD reached. Please wait for the existing snapshots to complete before starting a new one.", 3,
-	"SNAPSHOTNOV4", "Cannot downgrade (to V4) while snapshots are in progress. Currently !UL snapshots are in progress for region !AD.", 3,
-	"SSV4NOALLOW", "Database snapshots are supported only on fully upgraded V5 databases. !AD has V4 format blocks.", 2,
-	"SSTMPDIRSTAT", "Cannot access temporary directory !AD", 2,
-	"SSTMPCREATE", "Cannot create the temporary file in directory !AD for the requested snapshot", 2,
-	"JNLFILEDUP", "Journal files !AD and !AD are the same", 4,
-	"SSPREMATEOF", "Premature end of file while reading block !UL of size: !UL bytes at offset: !UL from !AD", 5,
-	"SSFILOPERR", "Error while doing !AD operation on file !AD", 4,
-	"REGSSFAIL", "Process !UL encountered error contributing to the snapshot for region !AD - the snapshot is no longer valid", 3,
-	"SSSHMCLNUPFAIL", "Error while doing snapshot shared memory cleanup. Operation -- !AD. Identifier -- !UL", 3,
-	"SSFILCLNUPFAIL", "Error while unlinking snapshot file -- !AD", 2,
-	"SETINTRIGONLY", "ISV !AD cannot be modified outside of the trigger environment", 2,
-	"MAXTRIGNEST", "Maximum trigger nesting level (!UL) exceeded", 1,
-	"TRIGCOMPFAIL", "Compilation of database trigger named !AD failed", 2,
-	"NOZTRAPINTRIG", "Use of $ZTRAP in a database trigger environment ($ZTLEVEL greater than 0) is not supported", 0,
-	"ZTWORMHOLE2BIG", "String length of !UL bytes exceeds maximum length of !UL bytes for $ZTWORMHOLE", 2,
-	"JNLENDIANLITTLE", "Journal file !AD is LITTLE endian on a BIG endian system", 2,
-	"JNLENDIANBIG", "Journal file !AD is BIG endian on a LITTLE endian system", 2,
-	"TRIGINVCHSET", "Trigger !AD for global ^!AD was created with CHSET=!AD which is different from the current $ZCHSET of this process", 6,
-	"TRIGREPLSTATE", "Trigger cannot update replicated database file !AD since triggering update was not replicated", 2,
-	"GVDATAGETFAIL", "Global variable DATAGET sub-operation (in KILL function) failed. Failure code: !AD.", 2,
-	"TRIG2NOTRIG", "Sending transaction sequence number 0x!16 at XQ which used triggers to a replicator that does not support triggers", 1,
-	"ZGOTOINVLVL", "ZGOTO in a trigger running in !AD cannot ZGOTO level !UL", 3,
-	"TRIGTCOMMIT", "TCOMMIT at $ZTLEVEL=!UL not allowed as corresponding TSTART was done at lower $ZTLEVEL=!UL", 2,
-	"TRIGTLVLCHNG", "Detected a net transaction level ($TLEVEL) change during trigger !AD. Transaction level must be the same at exit as when the trigger started", 2,
-	"TRIGNAMEUNIQ", "Unable to make trigger name !AD unique beyond !UL versions already loaded", 3,
-	"ZTRIGINVACT", "Missing or invalid parameter in position !UL given to $ZTRIGGER()", 1,
-	"INDRCOMPFAIL", "Compilation of indirection failed", 0,
-	"QUITALSINV", "QUIT * return when the extrinsic was not invoked with SET *", 0,
-	"PROCTERM", "!AD process termination due to !AD (return code !UL) from !AD", 7,
-	"SRCLNNTDSP", "Source lines exceeding !UL character width are not displayed", 1,
-	"ARROWNTDSP", "Unable to display ^----- due to length of source line", 0,
-	"TRIGDEFBAD", "Trigger initialization failed for global ^!AD. Error while processing ^#t(\"!AD\",!AD)", 6,
-	"TRIGSUBSCRANGE", "Trigger definition for global ^!AD has one or more invalid subscript range(s) : !AD", 4,
-	"TRIGDATAIGNORE", "Ignoring trigger data !AD. Use MUPIP TRIGGER to load trigger definitions", 2,
-	"TRIGIS", "!_!_Trigger name: !AD", 2,
-	"TCOMMITDISALLOW", "TROLLBACK required after an unhandled error in trigger context", 0,
-	"SSATTACHSHM", "Error while attaching to shared memory identifier !UL", 1,
-	"TRIGDEFNOSYNC", "Global ^!AD has triggers defined on the !AD instance but none on the !AD instance. Current journal sequence number is 0x!16 at XQ", 7,
-	"TRESTMAX", "TRESTART not allowed in a final TP retry more than once", 0,
-	"ZLINKBYPASS", "ZLINK of !AD bypassed - Identical routine already linked", 2,
-	"GBLEXPECTED", "Global variable reference expected in this context", 0,
-	"GVZTRIGFAIL", "ZTRIGGER of a global variable failed.  Failure code: !AD.", 2,
-	"MUUSERLBK", "Abnormal shutdown of replication-enabled database !AD detected", 2,
-	"SETINSETTRIGONLY", "ISV !AD can only be modified in a 'SET' type trigger", 2,
-	"DZTRIGINTRIG", "$ZTRIGGER() is not allowed inside trigger context. Trigger name: !AD", 2,
-	"UNUSEDMSG1374", "SECNODZTRIGINTP : Last used in V6.2-000", 0,
-	"BOOLSIDEFFECT", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in Boolean expression", 0,
-	"DBBADUPGRDSTATE", "Correcting conflicting values for fields describing database version upgrade state in the file header for region !AD (!AD) - make fresh backups with new journal files immediately.", 4,
-	"WRITEWAITPID", "PID !UL waited !UL minute(s) for PID !UL to finish writing block 0x!XL in database file !AD", 6,
-	"ZGOCALLOUTIN", "ZGOTO level 0 with entry ref not valid when using call-ins", 0,
-	"REPLNOXENDIAN", "!AD side is running on a GT.M version that does not support cross-endian replication. Upgrade the !AD side to at least V5.3-003 to support cross-endian replication. Cannot continue", 4,
-	"REPLXENDIANFAIL", "!AD side encountered error while doing endian conversion at journal sequence number 0x!16 at XQ", 3,
-	"ZGOTOINVLVL2", "ZGOTO 0:entryref is not valid on VMS (UNLINK is a UNIX only feature)", 0,
-	"GTMSECSHRCHDIRF", "gtmsecshr unable to chdir to its temporary directory (!AD)", 2,
-	"JNLORDBFLU", "Error flushing database blocks to !AD. See related messages in the operator log", 2,
-	"ZCCLNUPRTNMISNG", "External call: Cleanup routine name missing. Cannot continue", 0,
-	"ZCINVALIDKEYWORD", "External call: Invalid keyword found. Cannot continue", 0,
-	"UNUSEDMSG1386", "REPLNOMULTILINETRG : Last used in V6.2-000", 0,
-	"DBSHMNAMEDIFF", "Database file !AD points to shared memory (id = !UL) which points to a different database file !AZ", 4,
-	"SHMREMOVED", "Removed Shared Memory id !UL corresponding to file !AD", 3,
-	"DEVICEWRITEONLY", "Cannot read from a write-only device", 0,
-	"ICUERROR", "ICU returned status !UL which is either unrecognized or inconsistent with the operating context", 1,
-	"ZDATEBADDATE", "$ZDATE() date argument !AD is less than -365 (the $HOROLOG value for 01-JAN-1840) or greater than 364570088 (the $HOROLOG value for 31-DEC-999999)", 2,
-	"ZDATEBADTIME", "$ZDATE() time argument !AD is less than 0 or greater than 86399 (the $HOROLOG value for a second before midnight)", 2,
-	"COREINPROGRESS", "Previous core attempt failed; core generation bypassed", 0,
-	"MAXSEMGETRETRY", "Failed to get ftok semaphore after !UL tries because it is being continually deleted", 1,
-	"JNLNOREPL", "Replication not enabled for journal file !AD (database file !AD)", 4,
-	"JNLRECINCMPL", "Incomplete journal record at disk address 0x!XL for file !AD while attempting to read seqno 0x!16 at XQ", 4,
-	"JNLALLOCGROW", "Increased Journal ALLOCATION from [!UL blocks] to [!UL blocks] to match AUTOSWITCHLIMIT for !AZ !AD", 5,
-	"INVTRCGRP", "Invalid trace group specified in $gtm_trace_groups: !AD", 2,
-	"MUINFOUINT6", "!AD : !UL [0x!XL] ; $H=!UL,!UL", 6,
-	"NOLOCKMATCH", "No matching locks were found in !AD", 2,
-	"BADREGION", "Region is not BG, MM, or CM", 0,
-	"LOCKSPACEUSE", "Estimated free lock space: !UL% of !UL pages", 2,
-	"JIUNHNDINT", "An error during $ZINTERRUPT processing was not handled: !AD", 2,
-	"GTMASSERT2", "!AD - Assert failed !AD line !UL for expression (!AD)", 7,
-	"ZTRIGNOTRW", "ZTRIGGER cannot operate on read-only region !AD", 2,
-	"TRIGMODREGNOTRW", "Trigger(s) cannot be added/changed/deleted/upgraded because region !AD is read-only", 2,
-	"INSNOTJOINED", "Replicating Instance !AD is not a member of the same Group as Instance !AD", 4,
-	"INSROLECHANGE", "Supplementary Instance !AD and non-Supplementary Instance !AD belong to the same Group", 4,
-	"INSUNKNOWN", "Supplementary Instance !AD has no instance definition for non-Supplementary Instance !AD", 4,
-	"NORESYNCSUPPLONLY", "NORESYNC only supported for Supplementary Instances", 0,
-	"NORESYNCUPDATERONLY", "NORESYNC qualifier only allowed on a Supplementary Instance which allows local updates", 0,
-	"NOSUPPLSUPPL", "Instance !AD is configured to perform local updates so it cannot receive from Supplementary Instance !AD", 4,
-	"REPL2OLD", "Instance !AD uses a GT.M version that does not support connection with the current version on instance !AD", 4,
-	"EXTRFILEXISTS", "Error opening output file: !AD -- File exists", 2,
-	"MUUSERECOV", "Abnormal shutdown of journaled database !AD detected", 2,
-	"SECNOTSUPPLEMENTARY", "!AD is a Supplementary Instance and so cannot act as a source to non-Supplementary Instance !AD ", 4,
-	"SUPRCVRNEEDSSUPSRC", "Instance !AD is not configured to perform local updates so it cannot act as a receiver for non-Supplementary Instance !AD", 4,
-	"PEERPIDMISMATCH", "Local socket peer with PID=!UL does not match specified PID=!UL", 2,
-	"SETITIMERFAILED", "A setitimer() call returned an error status of !UL", 1,
-	"UPDSYNC2MTINS", "Can only UPDATERESYNC with an empty instance file", 0,
-	"UPDSYNCINSTFILE", "Error with instance file name specified in UPDATERESYNC qualifier", 0,
-	"REUSEINSTNAME", "Error with instance name specified in REUSE qualifier", 0,
-	"RCVRMANYSTRMS", "Receiver server now connecting to source stream [!2UL] but had previously connected to a different stream [!2UL]", 2,
-	"RSYNCSTRMVAL", "RSYNC_STRM qualifier can only take on a value from 0 to 15", 0,
-	"RLBKSTRMSEQ", "Stream journal seqno of the instance after rollback is Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3,
-	"RESOLVESEQSTRM", "Resolving until stream sequence number Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3,
-	"REPLINSTDBSTRM", "Replication instance file !AD has seqno [0x!16 at XQ] for Stream !2UL while database has a different seqno [0x!16 at XQ]", 5,
-	"RESUMESTRMNUM", "Error with stream number specified in RESUME qualifier", 0,
-	"ORLBKSTART", "ONLINE ROLLBACK started on instance !AD corresponding to !AD", 4,
-	"ORLBKTERMNTD", "ONLINE ROLLBACK terminated on instance !AD corresponding to !AD with the above errors", 4,
-	"ORLBKCMPLT", "ONLINE ROLLBACK completed successfully on instance !AD corresponding to !AD", 4,
-	"ORLBKNOSTP", "ONLINE ROLLBACK proceeding with database updates. MUPIP STOP will no longer be allowed", 0,
-	"ORLBKFRZPROG", "!AD : waiting for FREEZE on region !AD (!AD) to clear", 6,
-	"ORLBKFRZOVER", "!AD : FREEZE on region !AD (!AD) cleared", 6,
-	"ORLBKNOV4BLK", "Region !AD (!AD) has V4 format blocks. Database upgrade required. ONLINE ROLLBACK cannot continue", 4,
-	"DBROLLEDBACK", "Concurrent ONLINE ROLLBACK detected on one or more regions. The current operation is no longer valid", 0,
-	"DSEWCREINIT", "Database cache reinitialized by DSE for region !AD", 2,
-	"MURNDWNOVRD", "OVERRIDE qualifier used with MUPIP RUNDOWN on database file !AD", 2,
-	"REPLONLNRLBK", "ONLINE ROLLBACK detected. Starting afresh", 0,
-	"SRVLCKWT2LNG", "PID !UL is holding the source server lock. Waited for !UL minute(s). Now exiting", 2,
-	"IGNBMPMRKFREE", "Ignoring bitmap free-up operation for region !AD (!AD) due to concurrent ONLINE ROLLBACK", 4,
-	"PERMGENFAIL", "Failed to determine access permissions to use for creation of !AD for file !AD", 4,
-	"PERMGENDIAG", "Permissions: Proc(uid:!UL,gid:!UL), DB File(uid:!UL,gid:!UL,perm:!AD), Lib File(gid:!UL,perm:!AD), Group Mem(opener:!UL,owner:!UL)", 11,
-	"MUTRUNC1ATIME", "Process with PID !UL already performing truncate in region !AD", 3,
-	"MUTRUNCBACKINPROG", "Truncate detected concurrent backup in progress for region !AD", 2,
-	"MUTRUNCERROR", "Truncate of region !AD encountered service error !AD", 4,
-	"MUTRUNCFAIL", "Truncate failed after reorg", 0,
-	"MUTRUNCNOSPACE", "Region !AD has insufficient space to meet truncate target percentage of !UL", 3,
-	"MUTRUNCNOTBG", "Region !AD does not have access method BG ", 2,
-	"MUTRUNCNOV4", "Region !AD is not fully upgraded from V4 format.", 2,
-	"MUTRUNCPERCENT", "Truncate threshold percentage should be from 0 to 99", 0,
-	"MUTRUNCSSINPROG", "Truncate detected concurrent snapshot in progress for region !AD", 2,
-	"MUTRUNCSUCCESS", "Database file !AD truncated from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5,
-	"RSYNCSTRMSUPPLONLY", "RSYNC_STRM qualifier only supported for Supplementary Instances", 0,
-	"STRMNUMIS", "Stream # is !2UL", 1,
-	"STRMNUMMISMTCH1", "Stream !2UL exists on the receiver instance file but is unknown on the source instance", 1,
-	"STRMNUMMISMTCH2", "Stream !2UL exists on the source instance file but is unknown on the receiver instance", 1,
-	"STRMSEQMISMTCH", "Unable to play update on Stream !2UL with seqno [0x!16 at XQ] as receiving instance has a different stream seqno [0x!16 at XQ]", 3,
-	"LOCKSPACEINFO", "Region: !AD: processes on queue: !UL/!UL; LOCK slots in use: !UL/!UL; name space!ADfull", 8,
-	"JRTNULLFAIL", "Applying NULL journal record failed.  Failure code: !AD.", 2,
-	"LOCKSUB2LONG", "Following subscript is !UL bytes long which exceeds 255 byte limit.", 1,
-	"RESRCWAIT", "Waiting briefly for the !AD semaphore for region !AD (!AD) was held by PID !UL (Sem. ID: !UL).", 8,
-	"RESRCINTRLCKBYPAS", "!AD with PID !UL bypassing the !AD semaphore for region !AD (!AD) was held by PID !UL.", 10,
-	"DBFHEADERRANY", "Database file !AD: control problem: !AD was 0x!XJ expecting 0x!XJ", 6,
-	"REPLINSTFROZEN", "Instance !AZ is now Frozen", 1,
-	"REPLINSTFREEZECOMMENT", "Freeze Comment: !AZ", 1,
-	"REPLINSTUNFROZEN", "Instance !AZ is now Unfrozen", 1,
-	"DSKNOSPCAVAIL", "Attempted write to file !AD failed due to lack of disk space. Retrying indefinitely.", 2,
-	"DSKNOSPCBLOCKED", "Retry of write to file !AD suspended due to new instance freeze. Waiting for instance to be unfrozen.", 2,
-	"DSKSPCAVAILABLE", "Write to file !AD succeeded after out-of-space condition cleared", 2,
-	"ENOSPCQIODEFER", "Write to file !AD deferred due to lack of disk space", 2,
-	"CUSTOMFILOPERR", "Error while doing !AD operation on file !AD", 4,
-	"CUSTERRNOTFND", "Error mnemonic !AD specified in custom errors file is not valid for this version of GT.M", 2,
-	"CUSTERRSYNTAX", "Syntax error in file !AD at line number !UL", 3,
-	"ORLBKINPROG", "Online ROLLBACK in progress by PID !UL in region !AD", 3,
-	"DBSPANGLOINCMP", "!AD Spanning node is missing. Block no !UL of spanning node is missing", 3,
-	"DBSPANCHUNKORD", "!AD Chunk of !UL blocks is out of order", 3,
-	"DBDATAMX", "!AD Record too large", 2,
-	"DBIOERR", "Error while doing write operation on region !AD (!AD)", 4,
-	"INITORRESUME", "UPDATERESYNC on a Supplementary Instance must additionally specify INITIALIZE or RESUME", 0,
-	"GTMSECSHRNOARG0", "gtmsecshr cannot identify its origin - argv[0] is null", 0,
-	"GTMSECSHRISNOT", "gtmsecshr is not running as gtmsecshr but !AD - must be gtmsecshr", 2,
-	"GTMSECSHRBADDIR", "gtmsecshr is not running from $gtm_dist/gtmsecshrdir or $gtm_dist cannot be determined", 0,
-	"JNLBUFFREGUPD", "Journal file buffer size for region !AD has been adjusted from !UL to !UL.", 4,
-	"JNLBUFFDBUPD", "Journal file buffer size for database file !AD has been adjusted from !UL to !UL.", 4,
-	"LOCKINCR2HIGH", "Attempt to increment a LOCK more than !UL times", 1,
-	"LOCKIS", "!_!_Resource name: !AD", 2,
-	"LDSPANGLOINCMP", "Incomplete spanning node found during load!/!_!_at File offset : [0x!16 at XQ]", 1,
-	"MUFILRNDWNFL2", "Database section (id = !UL) belonging to database file !AD rundown failed", 3,
-	"MUINSTFROZEN", "!AD : Instance !AZ is frozen. Waiting for instance to be unfrozen before proceeding with writes to database file !AD", 5,
-	"MUINSTUNFROZEN", "!AD : Instance !AZ is now Unfrozen. Continuing with writes to database file !AD", 5,
-	"GTMEISDIR", "!AD : Is a directory", 2,
-	"SPCLZMSG", "The following error message cannot be driven through ZMESSAGE", 0,
-	"MUNOTALLINTEG", "At least one region skipped. See the earlier messages", 0,
-	"BKUPRUNNING", "Process !UL is currently backing up region !AD. Cannot start another backup.", 3,
-	"MUSIZEINVARG", "MUPIP SIZE : Invalid parameter value for: !AD", 2,
-	"MUSIZEFAIL", "MUPIP SIZE : failed.  Failure code: !AD.", 2,
-	"SIDEEFFECTEVAL", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in actuallist, function arguments, non-Boolean binary operands or subscripts", 0,
-	"CRYPTINIT2", "Could not initialize encryption library !AD. !AD", 4,
-	"CRYPTDLNOOPEN2", "Could not load encryption library !AD. !AD", 4,
-	"CRYPTBADCONFIG", "Could not retrieve data from encrypted file !AD due to bad encryption configuration. !AD", 4,
-	"DBCOLLREQ", "JOURNAL EXTRACT proceeding without collation information for globals in database. !AD !AD", 4,
-	"SETEXTRENV", "Database files are missing or Instance is frozen; supply the database files, wait for the freeze to lift or define gtm_extract_nocol to extract possibly incorrect collation", 0,
-	"NOTALLDBRNDWN", "Not all regions were successfully rundown", 0,
-	"TPRESTNESTERR", "TP restart signaled while handing error - treated as nested error - Use TROLLBACK in error handler to avoid this", 0,
-	"JNLFILRDOPN", "Error opening journal file !AD for read for database file !AD", 4,
-	"SEQNUMSEARCHTIMEOUT", "Timed out trying to find sequence number !@ZQ [0x!16 at XQ] in Journal File(s). See above messages for details. Source server exiting", 2,
-	"FTOKKEY", "FTOK key 0x!XL", 1,
-	"SEMID", "Semaphore id !UL", 1,
-	"JNLQIOSALVAGE", "Journal IO lock salvaged", 0,
-	"FAKENOSPCLEARED", "DEBUG: All fake ENOSPC flags were cleared !UL heartbeats ago", 1,
-	"MMFILETOOLARGE", "Size of !AD region (!AD) is larger than maximum size supported for memory mapped I/O on this platform", 4,
-	"BADZPEEKARG", "Missing, invalid or surplus !AD parameter for $ZPEEK()", 2,
-	"BADZPEEKRANGE", "Access exception raised in memory range given to $ZPEEK()", 0,
-	"BADZPEEKFMT", "$ZPEEK() value length inappropriate for selected format", 0,
-	"DBMBMINCFREFIXED", "Master bitmap incorrectly marks local bitmap 0x!XL as free. Auto-corrected", 1,
-	"NULLENTRYREF", "JOB command did not specify entryref", 0,
-	"ZPEEKNORPLINFO", "$ZPEEK() unable to access requested replication structure", 0,
-	"MMREGNOACCESS", "Region !AD (!AD) is no longer accessible. See prior error messages in the operator and application error logs", 4,
-	"MALLOCMAXUNIX", "Exceeded maximum allocation defined by $gtm_max_storalloc", 0,
-	"MALLOCMAXVMS", "Exceeded maximum allocation defined by GTM_MAX_STORALLOC", 0,
-	"HOSTCONFLICT", "Host !AD could not open database file !AD because it is marked as already open on node !AD", 6,
-	"GETADDRINFO", "Error in getting address info", 0,
-	"GETNAMEINFO", "Error in getting name info", 0,
-	"SOCKBIND", "Error in binding socket", 0,
-	"INSTFRZDEFER", "Instance Freeze initiated by !AD error on region !AD deferred due to critical resource conflict", 4,
-	"REGOPENRETRY", "Attempt to open region !AD (!AD) using startup shortcut failed due to conflicting database shutdown. Retrying...", 4,
-	"REGOPENFAIL", "Failed to open region !AD (!AD) due to conflicting database shutdown activity", 4,
-	"REPLINSTNOSHM", "Database !AD has no active connection to a replication journal pool", 2,
-	"DEVPARMTOOSMALL", "Deviceparameter must be greater than zero (0)", 0,
-	"REMOTEDBNOSPGBL", "Database region !AD contains portion of a spanning global and so cannot point to a remote file", 2,
-	"NCTCOLLSPGBL", "Database region !AD contains portion of spanning global ^!AD and so cannot support non-zero numeric collation type", 4,
-	"ACTCOLLMISMTCH", "Global ^!AD inherits alternative collation sequence #!UL from global directory but database file !AD contains different collation sequence #!UL for this global", 6,
-	"GBLNOMAPTOREG", "Global !AD does not map to region !AD in current global directory", 4,
-	"ISSPANGBL", "Operation cannot be performed on global ^!AD as it spans multiple regions in current global directory", 2,
-	"TPNOSUPPORT", "Operation cannot be performed while inside of a TP transaction", 0,
-	"GVSUBSERR", "Invalid subscripted global name specification in $VIEW() function", 0,
-	"UNUSEDMSG1540", "TRIGNOSPANBL : Last used in V6.2-000", 0,
-	"FILTERTIMEDOUT", "Replication server timed out attempting to read seqno !16 at XQ from external filter", 1,
-	"TLSDLLNOOPEN", "Failed to load GT.M TLS/SSL library for secure communication", 0,
-	"TLSINIT", "Failed to initialize GT.M TLS/SSL library for secure communication", 0,
-	"TLSCONVSOCK", "Failed to convert Unix TCP/IP socket to TLS/SSL aware socket", 0,
-	"TLSHANDSHAKE", "Connection to remote side using TLS/SSL protocol failed", 0,
-	"TLSCONNINFO", "Failed to obtain information on the TLS/SSL connection", 0,
-	"TLSIOERROR", "Error during TLS/SSL !AD operation", 2,
-	"TLSRENEGOTIATE", "Failed to renegotiate TLS/SSL connection", 0,
-	"REPLNOTLS", "!AD requested TLS/SSL communication but the !AD was either not started with TLSID qualifier or does not support TLS/SSL protocol", 4,
-	"COLTRANSSTR2LONG", "Output string after collation transformation is too long", 0,
-	"SOCKPASS", "Socket pass failed", 0,
-	"SOCKACCEPT", "Socket accept failed", 0,
-	"NOSOCKHANDLE", "No socket handle specified in WRITE /PASS", 0,
-	"TRIGLOADFAIL", "MUPIP TRIGGER or $ZTRIGGER operation failed. Failure code: !AD.", 2,
-	"SOCKPASSDATAMIX", "Attempt to use a LOCAL socket for both READ/WRITE and PASS/ACCEPT", 0,
-	"NOGTCMDB", "!AD does not support operation on GT.CM database region: !AD", 4,
-	"NOUSERDB", "!AD does not support operation on non-GDS format region: !AD", 4,
-	"DSENOTOPEN", "DSE could not open region !AD - see DSE startup error message for cause", 2,
-	"ZSOCKETATTR", "Attribute \"!AD\" invalid for $ZSOCKET function", 2,
-	"ZSOCKETNOTSOCK", "$ZSOCKET function called but device is not a socket", 0,
-	"CHSETALREADY", "CHSET !AD already specified for socket device", 2,
-	"DSEMAXBLKSAV", "DSE cannot SAVE another block as it already has the maximum of !UL", 1,
-	"BLKINVALID", "!XL is not a valid block as database file !AD has !XL total blocks", 4,
-	"CANTBITMAP", "Can't perform this operation on a bit map (block at a 200 hexadecimal boundary)", 0,
-	"AIMGBLKFAIL", "After image build for block !XL in region !AD failed in DSE or MUPIP", 3,
-	"GTMDISTUNVERIF", "Environment variable $gtm_dist (!AD) could not be verified against the executables path (!AD)", 4,
-	"CRYPTNOAPPEND", "APPEND disallowed on the encrypted file !AD", 2,
-	"CRYPTNOSEEK", "SEEK disallowed on the encrypted file !AD", 2,
-	"CRYPTNOTRUNC", "Not positioned at file start or EOF. TRUNCATE disallowed on the encrypted file !AD", 2,
-	"CRYPTNOKEYSPEC", "Key name needs to be specified with KEY, IKEY, or OKEY device parameter for encrypted I/O", 0,
-	"CRYPTNOOVERRIDE", "Cannot override IVEC and/or key without compromising integrity", 0,
-	"CRYPTKEYTOOBIG", "Specified key has length !UL, which is greater than the maximum allowed key length !UL", 2,
-	"CRYPTBADWRTPOS", "Encrypted WRITE disallowed from a position different than where the last WRITE completed", 0,
-	"LABELNOTFND", "GOTO referenced a label that does not exist", 0,
-	"RELINKCTLERR", "Error with relink control structure for $ZROUTINES directory !AD", 2,
-	"INVLINKTMPDIR", "Value for $gtm_linktmpdir is either not found or not a directory(!AD) - Reverting to default value", 2,
-	"NOEDITOR", "Can't find an executable editor: !AD", 2,
-	"UPDPROC", "Update Process error", 0,
-	"HLPPROC", "Helper Process error", 0,
-	"REPLNOHASHTREC", "Sequence number 0x!16 at XQ contains trigger definition updates. !AD side must be at least V6.2-000 for replication to continue", 3,
-	"REMOTEDBNOTRIG", "Trigger operations on global !AD not supported as it maps to database region !AD that points to a remote file", 4,
-	"NEEDTRIGUPGRD", "Cannot do trigger operation on database file !AD until it is upgraded; Run MUPIP TRIGGER -UPGRADE first", 2,
-	"REQRLNKCTLRNDWN", "Error accessing relinkctl file for $ZROUTINES directory !AD. Must be rundown", 2,
-	"RLNKCTLRNDWNSUC", "Relinkctl file for $ZROUTINES directory !AD successfully rundown", 2,
-	"RLNKCTLRNDWNFL", "Relinkctl file for $ZROUTINES directory !AD failed to rundown as it is open by !UL process(es)", 3,
-	"MPROFRUNDOWN", "Error during M-profiling rundown", 0,
-	"ZPEEKNOJNLINFO", "$ZPEEK() unable to access requested journal structure - region !AD is not currently journaled", 2,
-	"TLSPARAM", "TLS parameter !AD !AD", 4,
-	"RLNKRECLATCH", "Failed to get latch on relinkctl record for routine name !AZ in $ZROUTINES directory !AD", 3,
-	"RLNKSHMLATCH", "Failed to get latch on relinkctl shared memory for $ZROUTINES directory !AD", 2,
-	"JOBLVN2LONG", "The zwrite representation of a local variable transferred to a JOB'd process is too long. The zwrite representation cannot exceed !UL. Encountered size: !UL", 2,
-	"NLRESTORE", "DB file header field !AD: !UL does not match the value used in original mapping - restoring to: !UL", 4,
-	"PREALLOCATEFAIL", "Disk space reservation for !AD segment has failed", 2,
-	"NODFRALLOCSUPP", "The NODEFER_ALLOCATE qualifier is not allowed on this operating system. Not changing the defer allocation flag", 0,
-	"LASTWRITERBYPAS", "The last writer for database file !AD bypassed the rundown", 2,
-	"TRIGUPBADLABEL", "Trigger upgrade cannot upgrade label !UL to !UL on ^!AD in region !AD", 6,
-	"WEIRDSYSTIME", "Time reported by the system clock is outside the acceptable range.  Please check and correct the system clock", 0,
-	"REPLSRCEXITERR", "Source server for secondary instance !AZ exited abnormally. See log file !AZ for details.", 2,
-	"INVZBREAK", "Cannot set ZBREAK in direct mode routine (GTM$DMOD)", 0,
-	"INVTMPDIR", "Value or default for $gtm_tmp is either not found or not a directory (!AD) - Reverting to default value", 2,
-	"ARCTLMAXHIGH", "The environment variable !AD = !UL is too high. Assuming the maximum acceptable value of !UL", 4,
-	"ARCTLMAXLOW", "The environment variable !AD = !UL is too low. Assuming the minimum acceptable value of !UL", 4,
-	"NONTPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; blklvl: !UL, type: !UL, zpos: !AD", 11,
-	"PBNPARMREQ", "A first parameter value !AD requires a second parameter specified containing !AD", 4,
-	"PBNNOPARM", "First parameter !AD does not support a second parameter", 2,
-	"PBNUNSUPSTRUCT", "$ZPEEK() does not support structure !AD", 2,
-	"PBNINVALID", "!AD does not have a field named !AD", 4,
-	"PBNNOFIELD", "%ZPEEKBYNAME() requires a field.item as its first parameter", 0,
-	"JNLDBSEQNOMATCH", "Journal file !AD has beginning region sequence number [0x!16 at XQ], but database !AD has region sequence number [0x!16 at XQ]", 6,
-	"MULTIPROCLATCH", "Failed to get multi-process latch at !AD", 2,
-	"INVLOCALE", "Attempt to reset locale to supplied value of $gtm_locale (!AD) failed", 2,
-	"NOMORESEMCNT", "!AD counter semaphore has reached its maximum and stopped counting for !AZ !AD. Run MUPIP JOURNAL -ROLLBACK -BACKWARD, MUPIP JOURNAL -RECOVER -BACKWARD or MUPIP RUNDOWN to restore the database files and shared resources to a clean state", 5,
-	"SETQUALPROB", "Error getting !AD qualifier value", 2,
-	"EXTRINTEGRITY", "Database !AD potentially contains spanning nodes or data encrypted with two different keys", 2,
-	"CRYPTKEYRELEASEFAILED", "Could not safely release encryption key corresponding to file !AD. !AD", 4,
-	"MUREENCRYPTSTART", "Database !AD : MUPIP REORG ENCRYPT started by pid !UL at transaction number [0x!16 at XQ]", 4,
-	"MUREENCRYPTV4NOALLOW", "Database (re)encryption supported only on fully upgraded V5 databases. !AD has V4 format blocks", 2,
-	"ENCRYPTCONFLT", "MUPIP REORG -ENCRYPT and MUPIP EXTRACT -FORMAT=BIN cannot run concurrently - skipping !AD on region: !AD, file: !AD", 6,
-	"JNLPOOLRECOVERY", "The size of the data written to the journal pool (!UL) does not match the size of the data in the journal record (!UL) for the replication instance file !AZ. The journal pool has been recovered.", 3,
+	{ "ACK", "", 0 },
+	{ "BREAKZST", "Break instruction encountered during ZSTEP action", 0 },
+	{ "BADACCMTHD", "Invalid access method was specified, file not created", 0 },
+	{ "BADJPIPARAM", "!AD is not a legal parameter for $ZGETJPI()", 2 },
+	{ "BADSYIPARAM", "!AD is not a legal parameter for $ZGETSYI()", 2 },
+	{ "BITMAPSBAD", "Database bit maps are incorrect", 0 },
+	{ "BREAK", "Break instruction encountered", 0 },
+	{ "BREAKDEA", "Break instruction encountered during Device error action", 0 },
+	{ "BREAKZBA", "Break instruction encountered during ZBREAK action", 0 },
+	{ "STATCNT", "!AD:!_  Key cnt: !UL  max subsc len: !UL  max data len: !UL", 5 },
+	{ "BTFAIL", "The database block table is corrupt; error type !UL", 1 },
+	{ "MUPRECFLLCK", "Database file !AD is locked by MUPIP RECOVER.  Could not secure access.", 2 },
+	{ "CMD", "Command expected but not found", 0 },
+	{ "COLON", "Colon (:) expected in this context", 0 },
+	{ "COMMA", "Comma expected in this context", 0 },
+	{ "COMMAORRPAREXP", "Comma or right parenthesis expected but not found", 0 },
+	{ "COMMENT", "Comment line.  Placed zbreak at next executable line.", 0 },
+	{ "CTRAP", "Character trap $C(!UL) encountered", 1 },
+	{ "CTRLC", "CTRL_C encountered", 0 },
+	{ "CTRLY", "User interrupt encountered", 0 },
+	{ "DBCCERR", "Interlock instruction failure in critical mechanism for region !AD", 2 },
+	{ "DUPTOKEN", "Token 0x!16 at XQ is duplicate in the journal file !AD for database !AD", 5 },
+	{ "DBJNLNOTMATCH", "Database !AD points to journal file name !AD but the journal file points to database file !AD", 6 },
+	{ "DBFILERR", "Error with database file !AD", 2 },
+	{ "DBNOTGDS", "!AD - Unrecognized database file format", 2 },
+	{ "DBOPNERR", "Error opening database file !AD", 2 },
+	{ "DBRDERR", "Cannot read database file !AD after opening", 2 },
+	{ "CCEDUMPNOW", "", 0 },
+	{ "DEVPARINAP", "Device parameter inappropriate to this command", 0 },
+	{ "RECORDSTAT", "!AD:!_  Key cnt: !@ZQ  max subsc len: !UL  max rec len: !UL  max node len: !UL", 6 },
+	{ "NOTGBL", "Expected a global variable name starting with an up-arrow (^): !AD", 2 },
+	{ "DEVPARPROT", "The protection specification is invalid", 0 },
+	{ "PREMATEOF", "Premature end of file detected", 0 },
+	{ "GVINVALID", "!_!AD!/!_!_!_Invalid global name", 2 },
+	{ "DEVPARTOOBIG", "String deviceparameter exceeds 255 character limit", 0 },
+	{ "DEVPARUNK", "Deviceparameter unknown", 0 },
+	{ "DEVPARVALREQ", "A value is required for this device parameter", 0 },
+	{ "DEVPARMNEG", "Deviceparameter must be a positive value", 0 },
+	{ "DSEBLKRDFAIL", "Failed attempt to read block", 0 },
+	{ "DSEFAIL", "DSE failed.  Failure code: !AD.", 2 },
+	{ "NOTALLREPLON", "Replication off for !AD regions", 2 },
+	{ "BADLKIPARAM", "!AD is not a legal parameter for $ZGETLKI()", 2 },
+	{ "JNLREADBOF", "Beginning of journal file encountered for !AD", 2 },
+	{ "DVIKEYBAD", "$ZGETDVI(\"!AD\",\"!AD\") contains an illegal keyword", 4 },
+	{ "ENQ", "", 0 },
+	{ "EQUAL", "Equal sign expected but not found", 0 },
+	{ "ERRORSUMMARY", "Errors occurred during compilation", 0 },
+	{ "ERRWEXC", "Error while processing exception string", 0 },
+	{ "ERRWIOEXC", "Error while processing I/O exception string", 0 },
+	{ "ERRWZBRK", "Error while processing ZBREAK action string", 0 },
+	{ "ERRWZTRAP", "Error while processing $ZTRAP", 0 },
+	{ "NUMUNXEOR", "!_!AD!/!_!_!_unexpected end of record in numeric subscript", 2 },
+	{ "EXPR", "Expression expected but not found", 0 },
+	{ "STRUNXEOR", "!_!AD!/!_!_!_unexpected end of record in string subscript", 2 },
+	{ "JNLEXTEND", "Journal file extension error for file !AD", 2 },
+	{ "FCHARMAXARGS", "Argument count of $CHAR function exceeded the maximum of 255", 0 },
+	{ "FCNSVNEXPECTED", "Function or special variable expected in this context", 0 },
+	{ "FNARGINC", "Format specifiers to $FNUMBER are incompatible: \"!AD\"", 2 },
+	{ "JNLACCESS", "Error accessing journal file !AD", 2 },
+	{ "TRANSNOSTART", "ZTCOMMIT(s) issued without corresponding ZTSTART(s)", 0 },
+	{ "FNUMARG", "$FNUMBER format specifier \"!AD\" contains an illegal character: \"!AD\"", 4 },
+	{ "FOROFLOW", "FOR commands nested more than !UL deep on a line", 1 },
+	{ "YDIRTSZ", "Size of YDIRT data too large", 0 },
+	{ "JNLSUCCESS", "!AD successful", 2 },
+	{ "GBLNAME", "Either an identifier or a left parenthesis is expected after a ^ in this context", 0 },
+	{ "GBLOFLOW", "Database segment is full", 0 },
+	{ "CORRUPT", "Corrupt input in Blk # !UL, Key #!UL; resuming with next global block", 2 },
+	{ "GTMCHECK", "Internal GT.M error--Report to your GT.M Support Channel", 0 },
+	{ "GVDATAFAIL", "Global variable $DATA function failed.  Failure code: !AD.", 2 },
+	{ "EORNOTFND", "!_!AD!/!_!_!_End of record not found", 2 },
+	{ "GVGETFAIL", "Global variable retrieval failed.  Failure code: !AD.", 2 },
+	{ "GVIS", "!_!_Global variable: !AD", 2 },
+	{ "GVKILLFAIL", "Global variable kill failed.  Failure code: !AD.", 2 },
+	{ "GVNAKED", "Illegal naked global reference", 0 },
+	{ "GVNEXTARG", "Argument to global variable $NEXT must be subscripted", 0 },
+	{ "GVORDERFAIL", "Global variable $ORDER or $NEXT function failed.  Failure code: !AD.", 2 },
+	{ "GVPUTFAIL", "Global variable put failed.  Failure code: !AD.", 2 },
+	{ "PATTABSYNTAX", "Error in !AD at line !UL", 3 },
+	{ "GVSUBOFLOW", "Maximum combined length of subscripts exceeded", 0 },
+	{ "GVUNDEF", "Global variable undefined: !AD", 2 },
+	{ "TRANSNEST", "Maximum transaction nesting levels exceeded", 0 },
+	{ "INDEXTRACHARS", "Indirection string contains extra trailing characters", 0 },
+	{ "CORRUPTNODE", "Corrupt input in Record # !UL, Key #!UL; resuming with next global node", 2 },
+	{ "INDRMAXLEN", "Maximum length !UL of an indirection argument was exceeded", 1 },
+	{ "INSFFBCNT", "Insufficient byte count quota left for requested operation", 0 },
+	{ "INTEGERRS", "Database integrity errors", 0 },
+	{ "INVCMD", "Invalid command keyword encountered", 0 },
+	{ "INVFCN", "Invalid function name", 0 },
+	{ "INVOBJ", "Cannot ZLINK object file due to unexpected format", 0 },
+	{ "INVSVN", "Invalid special variable name", 0 },
+	{ "IOEOF", "Attempt to read past an end-of-file", 0 },
+	{ "IONOTOPEN", "Attempt to USE an I/O device which has not been opened", 0 },
+	{ "MUPIPINFO", "!AD", 2 },
+	{ "IVTIME", "Invalid time specification: !AD", 2 },
+	{ "JOBFAIL", "JOB command failure", 0 },
+	{ "JOBLABOFF", "Label and offset not found in created process", 0 },
+	{ "JOBPARNOVAL", "This job parameter cannot take a value", 0 },
+	{ "JOBPARNUM", "The value of this job parameter must be an integer", 0 },
+	{ "JOBPARSTR", "The value of this job parameter must be a string", 0 },
+	{ "JOBPARUNK", "Job parameter unknown", 0 },
+	{ "JOBPARVALREQ", "A value is required for this job parameter", 0 },
+	{ "JUSTFRACT", "Fraction specifier to $JUSTIFY cannot be negative", 0 },
+	{ "KEY2BIG", "Key size (!UL) is greater than maximum (!UL) for region: !AD", 4 },
+	{ "LABELEXPECTED", "Label expected in this context", 0 },
+	{ "LABELMISSING", "Label referenced but not defined: !AD", 2 },
+	{ "LABELUNKNOWN", "Label referenced but not defined", 0 },
+	{ "DIVZERO", "Attempt to divide by zero", 0 },
+	{ "LKNAMEXPECTED", "An identifier is expected after a ^ in this context", 0 },
+	{ "JNLRDERR", "Error reading journal file !AD.  Unable to initialize.", 2 },
+	{ "LOADRUNNING", "Cannot ZLINK an active routine !AD", 2 },
+	{ "LPARENMISSING", "Left parenthesis expected", 0 },
+	{ "LSEXPECTED", "A line separator is expected here", 0 },
+	{ "LVORDERARG", "Argument to local variable $NEXT must be subscripted", 0 },
+	{ "MAXFORARGS", "Maximum number of arguments to a single FOR command exceeded", 0 },
+	{ "TRANSMINUS", "Negative numbers not allowed with ZTCOMMIT", 0 },
+	{ "MAXNRSUBSCRIPTS", "Maximum number of subscripts exceeded", 0 },
+	{ "MAXSTRLEN", "Maximum string length exceeded", 0 },
+	{ "JNLDBERR", "Journal file !AD does not correspond to database file !AD", 4 },
+	{ "JNLFILOPN", "Error opening journal file !AD for database file !AD", 4 },
+	{ "MBXRDONLY", "Mailbox is read only, cannot write to it", 0 },
+	{ "JNLINVALID", "!AD is not a valid journal file !/ for database file: !AD", 4 },
+	{ "MBXWRTONLY", "Mailbox is write only, cannot read from it", 0 },
+	{ "MEMORY", "Central memory exhausted during request for !UJ bytes from 0x!XJ", 2 },
+	{ "MTBLKTOOBIG", "Magtape BLOCK_SIZE exceeds maximum size allowed", 0 },
+	{ "MTBLKTOOSM", "Magtape BLOCK_SIZE is less than !UL bytes", 1 },
+	{ "MTFIXRECSZ", "BLOCK_SIZE !UL must be multiple of fixed record size !UL", 2 },
+	{ "MTIS", "Magnetic tape: !AD", 2 },
+	{ "MTRDBADBLK", "Block read too small, contained only !UL bytes, block size = !UL", 2 },
+	{ "MTRDONLY", "Cannot write to a READONLY magtape", 0 },
+	{ "MTRDTHENWRT", "Attempt to read after a write to a magtape", 0 },
+	{ "MTRECGTRBLK", "Magtape record size cannot exceed block size", 0 },
+	{ "MTRECTOOBIG", "Magtape record size exceeds maximum allowed", 0 },
+	{ "MTRECTOOSM", "Magtape record size is too small for record type", 0 },
+	{ "JNLTMQUAL3", "Time qualifier BEFORE_TIME=\"!AZ\" is less than the journal file(s) minimum timestamp=\"!AZ\"", 2 },
+	{ "MULTLAB", "This label has been previously defined", 0 },
+	{ "BLKCNT", "Last LOAD Block/RMS Record number: !UL", 1 },
+	{ "CCEDUMPOFF", "", 0 },
+	{ "NOPLACE", "Line specified in a ZBREAK cannot be found", 0 },
+	{ "JNLCLOSE", "Error closing journal file !AD", 2 },
+	{ "NOTPRINCIO", "Output currently directed to device !AD", 2 },
+	{ "NOTTOEOFONPUT", "Not positioned to EOF on write (sequential organization only)", 0 },
+	{ "NOZBRK", "No zbreak at that location", 0 },
+	{ "NULSUBSC", "Null subscripts are not allowed for region: !AD", 2 },
+	{ "NUMOFLOW", "Numeric overflow", 0 },
+	{ "PARFILSPC", "Parameter: !AD  file specification: !AD", 4 },
+	{ "PATCLASS", "Illegal character class for pattern code", 0 },
+	{ "PATCODE", "Illegal syntax for pattern", 0 },
+	{ "PATLIT", "Illegal character or unbalanced quotes for pattern literal", 0 },
+	{ "PATMAXLEN", "Pattern code exceeds maximum length", 0 },
+	{ "LPARENREQD", "!_!AD!/!_!_!_Left parenthesis expected", 2 },
+	{ "PATUPPERLIM", "Pattern code upper limit is less than lower limit", 0 },
+	{ "PCONDEXPECTED", "Post-conditional expression expected but not found", 0 },
+	{ "PRCNAMLEN", "Process name !AD length is greater than !SL", 3 },
+	{ "RANDARGNEG", "Random number generator argument must be greater than or equal to one", 0 },
+	{ "DBPRIVERR", "No privilege for attempted update operation for file: !AD", 2 },
+	{ "REC2BIG", "Record size (!UL) is greater than maximum (!UL) for region: !AD", 4 },
+	{ "RHMISSING", "Right-hand side of expression expected", 0 },
+	{ "DEVICEREADONLY", "Cannot write to read-only device", 0 },
+	{ "COLLDATAEXISTS", "Collation type cannot be changed while data exists", 0 },
+	{ "ROUTINEUNKNOWN", "Routine could not be found", 0 },
+	{ "RPARENMISSING", "Right parenthesis expected", 0 },
+	{ "RTNNAME", "Routine name expected here", 0 },
+	{ "VIEWGVN", "Invalid global key name used with VIEW/$VIEW(): !AD", 2 },
+	{ "RTSLOC", "!_!_At M source location !AD", 2 },
+	{ "RWARG", "This is not a legal argument for a READ command", 0 },
+	{ "RWFORMAT", "A valid format expression (!!, #, or ?expr) expected here", 0 },
+	{ "JNLWRTDEFER", "Journal write start deferred", 0 },
+	{ "SELECTFALSE", "No argument to $SELECT was true", 0 },
+	{ "SPOREOL", "Either a space or an end-of-line was expected but not found", 0 },
+	{ "SRCLIN", "!_!AD!/!_!AD", 4 },
+	{ "SRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4 },
+	{ "SRCLOCUNKNOWN", "!_!_M source location unknown", 0 },
+	{ "STACKCRIT", "Stack space critical", 0 },
+	{ "STACKOFLOW", "Stack overflow", 0 },
+	{ "STACKUNDERFLO", "Stack underflow", 0 },
+	{ "STRINGOFLOW", "String pool overflow", 0 },
+	{ "SVNOSET", "Cannot SET this special variable", 0 },
+	{ "VIEWFN", "View parameter is not valid with $VIEW()", 0 },
+	{ "TERMASTQUOTA", "Process AST quota exceeded, cannot open terminal", 0 },
+	{ "TEXTARG", "Invalid argument to $TEXT function", 0 },
+	{ "TMPSTOREMAX", "Maximum space for temporary values exceeded", 0 },
+	{ "VIEWCMD", "View parameter is not valid with VIEW command", 0 },
+	{ "JNI", "!AD", 2 },
+	{ "TXTSRCFMT", "$TEXT encountered an invalid source program file format", 0 },
+	{ "UIDMSG", "Unidentified message received", 0 },
+	{ "UIDSND", "Unidentified sender PID", 0 },
+	{ "UNDEF", "Undefined local variable: !AD", 2 },
+	{ "UNIMPLOP", "Unimplemented construct encountered", 0 },
+	{ "VAREXPECTED", "Variable expected in this context", 0 },
+	{ "VARRECBLKSZ", "Blocksize must be at least record size + 4 bytes", 0 },
+	{ "MAXARGCNT", "Maximum number of arguments !UL exceeded", 1 },
+	{ "GTMSECSHRSEMGET", "semget error errno = !UL", 1 },
+	{ "VIEWARGCNT", "View parameter !AD has inappropriate number of subparameters", 2 },
+	{ "GTMSECSHRDMNSTARTED", "gtmsecshr daemon started (key: 0x!XL) for version !AD from !AD", 5 },
+	{ "ZATTACHERR", "Error attaching to \"!AD\"", 2 },
+	{ "ZDATEFMT", "$ZDATE format string contains invalid character", 0 },
+	{ "ZEDFILSPEC", "Illegal ZEDIT file specification: !AD", 2 },
+	{ "ZFILENMTOOLONG", "!AD is longer than 255 characters", 2 },
+	{ "ZFILKEYBAD", "!AD is not a legal keyword for $ZFILE()", 2 },
+	{ "ZFILNMBAD", "!AD is not a legal file name", 2 },
+	{ "ZGOTOLTZERO", "Cannot ZGOTO a level less than zero", 0 },
+	{ "ZGOTOTOOBIG", "Cannot ZGOTO a level greater than present level", 0 },
+	{ "ZLINKFILE", "Error while zlinking \"!AD\"", 2 },
+	{ "ZPARSETYPE", "Illegal TYPE argument to $ZPARSE(): !AD", 2 },
+	{ "ZPARSFLDBAD", "Illegal $ZPARSE() field parameter: !AD", 2 },
+	{ "ZPIDBADARG", "The tvexpr must be FALSE if last $ZPID() not found", 0 },
+	{ "ZPRIVARGBAD", "!AD is not a legal privilege for $ZPRIV()", 2 },
+	{ "ZPRIVSYNTAXERR", "Privilege string cannot end with a comma", 0 },
+	{ "ZPRTLABNOTFND", "Label not found in routine", 0 },
+	{ "VIEWAMBIG", "View parameter !AD is ambiguous", 2 },
+	{ "VIEWNOTFOUND", "View parameter !AD not valid", 2 },
+	{ "ZSETPRVARGBAD", "!AD is not a legal privilege for $ZSETPRIV()", 2 },
+	{ "INVSPECREC", "Invalid global modifier record", 0 },
+	{ "ZSETPRVSYNTAX", "$ZSETPRIV() privileges string cannot end with a comma", 0 },
+	{ "ZSRCHSTRMCT", "Search stream identifier out of range", 0 },
+	{ "VERSION", "Version mismatch - This program must be recompiled", 0 },
+	{ "MUNOTALLSEC", "WARNING: not all global sections accessed were successfully rundown", 0 },
+	{ "MUSECDEL", "Section !AD deleted", 2 },
+	{ "MUSECNOTDEL", "Section !AD not deleted", 2 },
+	{ "RPARENREQD", "!_!AD!/!_!_!_Right parenthesis expected", 2 },
+	{ "ZGBLDIRACC", "Cannot access global directory !AD!AD!AD.", 6 },
+	{ "GVNAKEDEXTNM", "Cannot reference different global directory in a naked reference", 0 },
+	{ "EXTGBLDEL", "Invalid delimiter for extended global syntax", 0 },
+	{ "DSEWCINITCON", "No action taken, enter YES at CONFIRMATION prompt to initialize global buffers", 0 },
+	{ "LASTFILCMPLD", "The file currently being compiled is !AD", 2 },
+	{ "NOEXCNOZTRAP", "Neither an exception nor a Ztrap is specified", 0 },
+	{ "UNSDCLASS", "Unsupported descriptor class", 0 },
+	{ "UNSDDTYPE", "Unsupported descriptor data type", 0 },
+	{ "ZCUNKTYPE", "External call: Unknown argument type", 0 },
+	{ "ZCUNKMECH", "External call: Unknown parameter-passing mechanism", 0 },
+	{ "ZCUNKQUAL", "External call: Unknown input qualifier", 0 },
+	{ "JNLDBTNNOMATCH", "Journal file !AD has !AD transaction number [0x!16 at XQ], but database !AD has current transaction number [0x!16 at XQ] and journal end transaction number [0x!16 at XQ]", 9 },
+	{ "ZCALLTABLE", "External call Table format error", 0 },
+	{ "ZCARGMSMTCH", "External call: Actual argument count, !UL, is greater than formal argument count, !UL", 2 },
+	{ "ZCCONMSMTCH", "External call: Too many input arguments", 0 },
+	{ "ZCOPT0", "External call: Qualifier OPTIONAL_0 can be used only with mechanisms REFERENCE or DESCRIPTOR", 0 },
+	{ "ZCSTATUS", "External call: Unsuccessful return status", 0 },
+	{ "ZCUSRRTN", "External call: Run-time error in user routine", 0 },
+	{ "ZCPOSOVR", "External call: Invalid overlapping of arguments in table position !UL", 1 },
+	{ "ZCINPUTREQ", "External call: Required input argument missing", 0 },
+	{ "JNLTNOUTOFSEQ", "End transaction [0x!16 at XQ] of journal !AD different from Begin transaction [0x!16 at XQ] of next generation journal !AD", 6 },
+	{ "ACTRANGE", "Alternate Collating Type !UL is out of range", 1 },
+	{ "ZCCONVERT", "External call: error converting output argument", 0 },
+	{ "ZCRTENOTF", "External call routine !AD not found", 2 },
+	{ "GVRUNDOWN", "Error during global database rundown", 0 },
+	{ "LKRUNDOWN", "Error during lock database rundown", 0 },
+	{ "IORUNDOWN", "Error during image rundown", 0 },
+	{ "FILENOTFND", "File !AD not found", 2 },
+	{ "MUFILRNDWNFL", "File !AD rundown failed", 2 },
+	{ "JNLTMQUAL1", "Time qualifier BEFORE_TIME=\"!AZ\" is less than SINCE_TIME=\"!AZ\"", 2 },
+	{ "FORCEDHALT", "Image HALTed by MUPIP STOP", 0 },
+	{ "LOADEOF", "Load error: EOF reached prior to BEGIN record !UL.  No records loaded.", 1 },
+	{ "WILLEXPIRE", "This copy of GT.M will expire within one week", 0 },
+	{ "LOADEDBG", "Load error: END smaller than BEGIN.  No records loaded.", 0 },
+	{ "LABELONLY", "Routine !AD was compiled for label-only entry", 2 },
+	{ "MUREORGFAIL", "MUPIP REORG failed.  Failure code: !AD.", 2 },
+	{ "GVZPREVFAIL", "Global variable $ZPREVIOUS function failed.  Failure code: !AD.", 2 },
+	{ "MULTFORMPARM", "This formal parameter is multiply defined", 0 },
+	{ "QUITARGUSE", "Quit cannot take an argument in this context", 0 },
+	{ "NAMEEXPECTED", "A local variable name is expected in this context", 0 },
+	{ "FALLINTOFLST", "Fall-through to a label with formallist is not allowed", 0 },
+	{ "NOTEXTRINSIC", "Quit does not return to an extrinsic function: argument not allowed", 0 },
+	{ "GTMSECSHRREMSEMFAIL", "error removing semaphore errno = !UL", 1 },
+	{ "FMLLSTMISSING", "The formal list is absent from a label called with an actual list: !AD", 2 },
+	{ "ACTLSTTOOLONG", "More actual parameters than formal parameters: !AD", 2 },
+	{ "ACTOFFSET", "Actuallist not allowed with offset", 0 },
+	{ "MAXACTARG", "Maximum number of actual arguments exceeded", 0 },
+	{ "GTMSECSHRREMSEM", "[client pid !UL] Semaphore (!UL) removed", 2 },
+	{ "JNLTMQUAL2", "Time qualifier LOOKBACK_TIME=\"!AZ\" is later than SINCE_TIME=\"!AZ\"", 2 },
+	{ "GDINVALID", "Unrecognized Global Directory file format: !AD, expected label: !AD, found: !AD", 6 },
+	{ "ASSERT", "Assert failed in !AD line !UL for expression (!AD)", 5 },
+	{ "MUFILRNDWNSUC", "File !AD successfully rundown", 2 },
+	{ "LOADEDSZ", "Load error: END too small.  No records loaded.", 0 },
+	{ "QUITARGLST", "Quit cannot take a list of arguments", 0 },
+	{ "QUITARGREQD", "Quit from an extrinsic must have an argument", 0 },
+	{ "CRITRESET", "The critical section crash count for region !AD has been incremented", 2 },
+	{ "UNKNOWNFOREX", "Process halted by a forced exit from a source other than MUPIP", 0 },
+	{ "FSEXP", "File specification expected but not found", 0 },
+	{ "WILDCARD", "Wild cards are prohibited: !AD", 2 },
+	{ "DIRONLY", "Directories only are allowed in file specs: !AD", 2 },
+	{ "FILEPARSE", "Error parsing file specification: !AD", 2 },
+	{ "QUALEXP", "Qualifier expected but not found", 0 },
+	{ "BADQUAL", "Unrecognized qualifier: !AD", 2 },
+	{ "QUALVAL", "Qualifier value required but not found", 0 },
+	{ "ZROSYNTAX", "$ZROUTINES syntax error: !AD", 2 },
+	{ "COMPILEQUALS", "Error in compiler qualifiers: !AD", 2 },
+	{ "ZLNOOBJECT", "No object module was produced", 0 },
+	{ "ZLMODULE", "Object file name does not match module name: !AD", 2 },
+	{ "DBBLEVMX", "!AD Block level higher than maximum", 2 },
+	{ "DBBLEVMN", "!AD Block level less than zero", 2 },
+	{ "DBBSIZMN", "!AD Block too small", 2 },
+	{ "DBBSIZMX", "!AD Block larger than file block size", 2 },
+	{ "DBRSIZMN", "!AD Physical record too small", 2 },
+	{ "DBRSIZMX", "!AD Physical record too large", 2 },
+	{ "DBCMPNZRO", "!AD First record of block has nonzero compression count", 2 },
+	{ "DBSTARSIZ", "!AD Star record has wrong size", 2 },
+	{ "DBSTARCMP", "!AD Star record has nonzero compression count", 2 },
+	{ "DBCMPMX", "!AD Record compression count is too large", 2 },
+	{ "DBKEYMX", "!AD Key too long", 2 },
+	{ "DBKEYMN", "!AD Key too short", 2 },
+	{ "DBCMPBAD", "!AD Compression count not maximal", 2 },
+	{ "DBKEYORD", "!AD Keys out of order", 2 },
+	{ "DBPTRNOTPOS", "!AD Block pointer negative", 2 },
+	{ "DBPTRMX", "!AD Block pointer larger than file maximum", 2 },
+	{ "DBPTRMAP", "!AD Block pointer is a bit map block number", 2 },
+	{ "IFBADPARM", "External Interface Bad Parameter", 0 },
+	{ "IFNOTINIT", "External Interface must first call GTM$INIT or M routine", 0 },
+	{ "GTMSECSHRSOCKET", "!AD - !UL : Error initializing gtmsecshr socket", 3 },
+	{ "LOADBGSZ", "Load error: BEGIN too small.  No records loaded.", 0 },
+	{ "LOADFMT", "Load error: invalid format type.  Must be ZWR, GO, BINARY, or GOQ.", 0 },
+	{ "LOADFILERR", "Error with load file !AD", 2 },
+	{ "NOREGION", "REGION not found: !AD", 2 },
+	{ "PATLOAD", "Error loading pattern file !AD", 2 },
+	{ "EXTRACTFILERR", "Error with extract file !AD", 2 },
+	{ "FREEZE", "Region: !AD is already frozen", 2 },
+	{ "NOSELECT", "None of the selected variables exist -- halting", 0 },
+	{ "EXTRFAIL", "Extract failed for the global ^!AD. MUPIP INTEG should be run.", 2 },
+	{ "LDBINFMT", "Unrecognized header for load file", 0 },
+	{ "NOPREVLINK", "Journal file !AD has a null previous link", 2 },
+	{ "CCEDUMPON", "", 0 },
+	{ "CCEDMPQUALREQ", "A qualifier (DB,[NO]ON, or NOW) is required with the DUMP command", 0 },
+	{ "CCEDBDUMP", "Section !AD dumped", 2 },
+	{ "CCEDBNODUMP", "Section !AD not dumped; status = ", 2 },
+	{ "CCPMBX", "Error accessing Cluster Control Program Mailbox", 0 },
+	{ "REQRUNDOWN", "Error accessing database !AD.  Must be rundown on cluster node !AD.", 4 },
+	{ "CCPINTQUE", "Interlock failure accessing Cluster Control Program queue", 0 },
+	{ "CCPBADMSG", "Invalid message code received by Cluster Control Program", 0 },
+	{ "CNOTONSYS", "Command is not supported by this operating system", 0 },
+	{ "CCPNAME", "Error setting the Cluster Control Program process name", 0 },
+	{ "CCPNOTFND", "The Cluster Control Program is not responding", 0 },
+	{ "OPRCCPSTOP", "The Cluster Control Program has been halted by an operator stop request", 0 },
+	{ "SELECTSYNTAX", "Argument to !AD clause is not valid", 2 },
+	{ "LOADABORT", "Aborting load at record !UL", 1 },
+	{ "FNOTONSYS", "Function or special variable is not supported by this operating system", 0 },
+	{ "AMBISYIPARAM", "Parameter !AD is ambiguous to $ZGETSYI()", 2 },
+	{ "PREVJNLNOEOF", "A previous generation journal file !AD does not have valid EOF", 2 },
+	{ "LKSECINIT", "Error creating lock section for database !AD", 2 },
+	{ "MTDOSLAB", "Tape label is not in valid DOS-11 format", 0 },
+	{ "MTDOSFOR", "Use of DOS-11 labels requires stream format", 0 },
+	{ "MTINVLAB", "Invalid label type specified in magtape OPEN", 0 },
+	{ "TXTSRCMAT", "M object module and source file do not match", 0 },
+	{ "CCENOGROUP", "CCE does not have GROUP privilege.  Information may be incomplete.", 0 },
+	{ "BADDBVER", "Incorrect database version: !AD", 2 },
+	{ "LINKVERSION", "This image must be relinked with the current version of GT.M", 0 },
+	{ "TOTALBLKMAX", "Extension exceeds maximum total blocks.  Not extending.", 0 },
+	{ "LOADCTRLY", "User interrupt encountered during load.  Load halting.", 0 },
+	{ "CLSTCONFLICT", "Cluster conflict opening database file !AD; could not secure access.  Already open on node !AD.", 4 },
+	{ "SRCNAM", "in source module !AD", 2 },
+	{ "LCKGONE", "Lock removed: !AD", 2 },
+	{ "SUB2LONG", "Subscript invalid, too long", 0 },
+	{ "EXTRACTCTRLY", "User interrupt encountered during extract -- halting", 0 },
+	{ "CCENOWORLD", "CCE does not have WORLD privilege.  Information may be incomplete.", 0 },
+	{ "GVQUERYFAIL", "Global variable $QUERY function failed.  Failure code: !AD.", 2 },
+	{ "LCKSCANCELLED", "Error on remote node holding locks or zallocates.  All locks and zallocates cancelled.", 0 },
+	{ "INVNETFILNM", "Invalid file name following node designation in global directory", 0 },
+	{ "NETDBOPNERR", "Error while attempting to open database across net", 0 },
+	{ "BADSRVRNETMSG", "Invalid message received from GT.CM server", 0 },
+	{ "BADGTMNETMSG", "Invalid message sent to GT.CM server, type: 0x!XL", 1 },
+	{ "SERVERERR", "Severe error on server: !AD", 2 },
+	{ "NETFAIL", "Failure of Net operation", 0 },
+	{ "NETLCKFAIL", "Lock operation across Net failed", 0 },
+	{ "TTINVFILTER", "Invalid FILTER argument", 0 },
+	{ "MTANSILAB", "Tape label is not in valid ANSI format", 0 },
+	{ "MTANSIFOR", "Use of ANSI labels does not allow stream format", 0 },
+	{ "BADTRNPARAM", "!AD is not a legal parameter to $ZTRNLNM", 2 },
+	{ "DSEONLYBGMM", "!AD is supported only for BG/MM access methods", 2 },
+	{ "DSEINVLCLUSFN", "Specified function is invalid for clustered databases", 0 },
+	{ "RDFLTOOSHORT", "Length specified for fixed length read less than or equal to zero", 0 },
+	{ "TIMRBADVAL", "Bad value specified.  Timer not changed.", 0 },
+	{ "CCENOSYSLCK", "CCE does not have SYSLCK privilege.  Information may be incomplete.", 0 },
+	{ "CCPGRP", "Error with the Cluster Control Program's group number", 0 },
+	{ "UNSOLCNTERR", "An unsolicited error message has been received from the network", 0 },
+	{ "BACKUPCTRL", "Control Y or control C encountered during backup, aborting backup", 0 },
+	{ "NOCCPPID", "Cannot find CCP process id", 0 },
+	{ "CCPJNLOPNERR", "Error opening journal file.  Database not opened.", 0 },
+	{ "LCKSGONE", "Locks selected for deletion removed", 0 },
+	{ "ZLKIDBADARG", "The tvexpr must be FALSE if last ZLKID not found", 0 },
+	{ "DBFILOPERR", "Error doing database I/O to region !AD", 2 },
+	{ "CCERDERR", "Error reading from database file !AD", 2 },
+	{ "CCEDBCL", "Database file !AD is clustered", 2 },
+	{ "CCEDBNTCL", "Database file !AD is not clustered", 2 },
+	{ "CCEWRTERR", "Error writing to database file !AD", 2 },
+	{ "CCEBADFN", "Filename error", 0 },
+	{ "CCERDTIMOUT", "Read timeout, CCP has not responded to request", 0 },
+	{ "CCPSIGCONT", "CCP non fatal error at pc 0x!XJ.  Continuing operation.", 1 },
+	{ "CCEBGONLY", "Only BG databases can be clustered", 0 },
+	{ "CCENOCCP", "The cluster control program is not running on this node", 0 },
+	{ "CCECCPPID", "The cluster control program has PID 0x!XL", 1 },
+	{ "CCECLSTPRCS", "!UL processes are accessing clustered database files", 1 },
+	{ "ZSHOWBADFUNC", "An illegal function was specified for ZSHOW", 0 },
+	{ "NOTALLJNLEN", "Journaling disabled/off for !AD regions", 2 },
+	{ "UNUSEDMSG570", "ZSHOWGLOSMALL last used in V6.2-002A", 0 },
+	{ "NOLBRSRC", "Object libraries cannot have SRC paths associated", 0 },
+	{ "INVZSTEP", "Invalid ZSTEP qualifier", 0 },
+	{ "ZSTEPARG", "ZSTEP argument expected", 0 },
+	{ "INVSTRLEN", "Invalid string length !UL: max !UL", 2 },
+	{ "RECCNT", "Last LOAD record number: !UL", 1 },
+	{ "TEXT", "!AD", 2 },
+	{ "ZWRSPONE", "Subscript patterns in ZWRITE are atomic; Invalid delimiter", 0 },
+	{ "FILEDEL", "File !AD successfully deleted", 2 },
+	{ "JNLBADLABEL", "Journal file !AD has a bad GT.M Journal File Label. Expected !AD. Found !AD.", 6 },
+	{ "JNLREADEOF", "End of journal file encountered for !AD", 2 },
+	{ "JNLRECFMT", "Journal file record format error encountered", 0 },
+	{ "BLKTOODEEP", "Block level too deep", 0 },
+	{ "NESTFORMP", "Formal parameter list cannot be combined with nested line", 0 },
+	{ "BINHDR", "!AD!/!/Date: !AD!/Time: !AD!/Extract Region Characteristics!/!_Blk Size: !AD!/!_Rec Size: !AD!/!_Key Size: !AD!/!_Std Null Coll: !AD!/!AD!/", 16 },
+	{ "GOQPREC", "Numeric precision in key error:  Blk #!UL, Key #!UL.  Record not loaded.", 2 },
+	{ "LDGOQFMT", "Corrupt GOQ format header information!/", 0 },
+	{ "BEGINST", "Beginning LOAD at record number: !UL", 1 },
+	{ "INVMVXSZ", "Invalid block size for GOQ load format", 0 },
+	{ "JNLWRTNOWWRTR", "Journal writer attempting another write", 0 },
+	{ "GTMSECSHRSHMCONCPROC", "More than one process attached to Shared memory segment (!UL) not removed (!UL)", 2 },
+	{ "JNLINVALLOC", "Journal file allocation !UL is not within the valid range of !UL to !UL.  Journal file not created.", 3 },
+	{ "JNLINVEXT", "Journal file extension !UL is greater than the maximum allowed size of !UL.  Journal file not created.", 2 },
+	{ "MUPCLIERR", "Action not taken due to CLI errors", 0 },
+	{ "JNLTMQUAL4", "Time qualifier BEFORE_TIME=\"!AZ\" is less than AFTER_TIME=\"!AZ\"", 2 },
+	{ "GTMSECSHRREMSHM", "[client pid !UL] Shared memory segment (!UL) removed, nattch = !UL", 3 },
+	{ "GTMSECSHRREMFILE", "[client pid !UL] File (!AD) removed", 3 },
+	{ "MUNODBNAME", "A database name or the region qualifier must be specified", 0 },
+	{ "FILECREATE", "!AD file !AD created", 4 },
+	{ "FILENOTCREATE", "!AD file !AD not created", 4 },
+	{ "JNLPROCSTUCK", "Journal file writes blocked by process !UL", 1 },
+	{ "INVGLOBALQUAL", "Error in GLOBAL qualifier : Parse error at offset !UL in !AD", 3 },
+	{ "COLLARGLONG", "Collation sequence !UL does not contain routines for long strings", 1 },
+	{ "NOPINI", "PINI journal record expected but not found in journal file !AD at offset [0x!XL]", 3 },
+	{ "DBNOCRE", "Not all specified database files, or their associated journal files were created", 0 },
+	{ "JNLSPACELOW", "Journal file !AD nearing maximum size, !UL blocks to go", 3 },
+	{ "DBCOMMITCLNUP", "Pid !UL [0x!XL] handled error (code = !UL) during commit of !AZ transaction in database file !AD", 6 },
+	{ "BFRQUALREQ", "The [NO]BEFORE qualifier is required for this command", 0 },
+	{ "REQDVIEWPARM", "Required View parameter is missing", 0 },
+	{ "COLLFNMISSING", "Routine !AD is not found for collation sequence !UL", 3 },
+	{ "JNLACTINCMPLT", "Mupip journal action might be incomplete", 0 },
+	{ "NCTCOLLDIFF", "Source and destination for MERGE cannot have different numerical collation type", 0 },
+	{ "DLRCUNXEOR", "!_!AD!/!_!_!_unexpected end of record in $CHAR()/$ZCHAR() subscript", 2 },
+	{ "DLRCTOOBIG", "!_!AD!/!_!_!_!AD value cannot be greater than 255", 4 },
+	{ "WCERRNOTCHG", "Not all specified database files were changed", 0 },
+	{ "WCWRNNOTCHG", "Not all specified database files were changed", 0 },
+	{ "ZCWRONGDESC", "A string longer than 65535 is passed via 32-bit descriptor", 0 },
+	{ "MUTNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4 },
+	{ "GTMSECSHRUPDDBHDR", "[client pid !UL] database fileheader (!AD) updated !AD", 5 },
+	{ "LCKSTIMOUT", "DAL timed lock request expired", 0 },
+	{ "CTLMNEMAXLEN", "The maximum length of a control mnemonic has been exceeded", 0 },
+	{ "CTLMNEXPECTED", "Control mnemonic is expected in this context", 0 },
+	{ "USRIOINIT", "User-defined device driver not successfully initialized", 0 },
+	{ "CRITSEMFAIL", "Error with semaphores for region !AD", 2 },
+	{ "TERMWRITE", "Error writing to terminal", 0 },
+	{ "COLLTYPVERSION", "Collation type !UL, version !UL mismatch", 2 },
+	{ "LVNULLSUBS", "Null subscripts not allowed in local variables", 0 },
+	{ "GVREPLERR", "Error replicating global in region !AD", 2 },
+	{ "MTIOERR", "I/O Error with magnetic tape device !AD", 2 },
+	{ "RMWIDTHPOS", "File record size or width must be greater than zero", 0 },
+	{ "OFFSETINV", "Entry point !AD+!SL not valid", 3 },
+	{ "JOBPARTOOLONG", "Total parameter length is too long for job command", 0 },
+	{ "JOBARGMISSING", "Missing job argument !UL - can't skip non-trailing arguments to a JOB command in OpenVMS editions", 1 },
+	{ "RUNPARAMERR", "Error accessing parameter for run command", 0 },
+	{ "FNNAMENEG", "Depth argument to $NAME cannot be negative", 0 },
+	{ "ORDER2", "Invalid second argument to $ORDER.  Must be -1 or 1.", 0 },
+	{ "MUNOUPGRD", "Database not upgraded because of preceding errors", 0 },
+	{ "REORGCTRLY", "User interrupt encountered during database reorg -- halting", 0 },
+	{ "TSTRTPARM", "Error parsing TSTART qualifier", 0 },
+	{ "TRIGNAMENF", "Trigger name !AD not found with the current default global directory", 2 },
+	{ "TRIGZBREAKREM", "ZBREAK in trigger !AD removed due to trigger being reloaded", 2 },
+	{ "TLVLZERO", "Transaction is not in progress", 0 },
+	{ "TRESTNOT", "Cannot TRESTART, transaction is not restartable", 0 },
+	{ "TPLOCK", "Cannot release lock(s) held prior to current TSTART", 0 },
+	{ "TPQUIT", "Cannot QUIT out of a routine with an active transaction", 0 },
+	{ "TPFAIL", "Transaction COMMIT failed.  Failure code: !AD.", 2 },
+	{ "TPRETRY", "Restart transaction from non-concurrency DB failure", 0 },
+	{ "TPTOODEEP", "$TLEVEL cannot exceed 127", 0 },
+	{ "ZDEFACTIVE", "ZDEFER already active", 0 },
+	{ "ZDEFOFLOW", "ZDEFER Buffer overflow to node !AD", 2 },
+	{ "MUPRESTERR", "MUPIP restore aborted due to preceding errors", 0 },
+	{ "MUBCKNODIR", "MUPIP backup aborted due to error in output directory", 0 },
+	{ "TRANS2BIG", "Transaction exceeded available buffer space for region !AD", 2 },
+	{ "INVBITLEN", "Invalid size of the bit string", 0 },
+	{ "INVBITSTR", "Invalid bit string", 0 },
+	{ "INVBITPOS", "Invalid position in the bit string", 0 },
+	{ "PARNORMAL", "Parse successful", 0 },
+	{ "PARBUFSM", "Parse buffer too small", 0 },
+	{ "RMWIDTHTOOBIG", "File record size or width too big", 0 },
+	{ "PATTABNOTFND", "Pattern table !AD not found", 2 },
+	{ "OBJFILERR", "Error with object file I/O on file !AD", 2 },
+	{ "SRCFILERR", "Error with source file I/O on file !AD", 2 },
+	{ "NEGFRACPWR", "Invalid operation: fractional power of negative number", 0 },
+	{ "MTNOSKIP", "SKIP operation not supported on this device", 0 },
+	{ "CETOOMANY", "Too many compiler escape substitutions in a single statement", 0 },
+	{ "CEUSRERROR", "Compiler escape user routine returned error code !UL", 1 },
+	{ "CEBIGSKIP", "Compiler escape user routine skip count is too large", 0 },
+	{ "CETOOLONG", "Compiler escape substitution exceeds maximum line size", 0 },
+	{ "CENOINDIR", "Indirection type information not available for compiler escape feature", 0 },
+	{ "COLLATIONUNDEF", "Collation type !UL is not defined", 1 },
+	{ "UNUSEDMSG670", "RBWRNNOTCHG last used in V6.2-002A", 0 },
+	{ "GTMSECSHRSRVF", "!AD - !UL : Attempt to service request failed (retry = !UL)", 4 },
+	{ "FREEZECTRL", "Control Y or control C encountered during attempt to freeze the database. Aborting freeze.", 0 },
+	{ "JNLFLUSH", "Error flushing journal buffers to journal file !AD", 2 },
+	{ "CCPSIGDMP", "CCP non fatal dump, continuing operation. Report to your GT.M Support Channel.", 0 },
+	{ "NOPRINCIO", "Unable to write to principal device", 0 },
+	{ "INVPORTSPEC", "Invalid port specification", 0 },
+	{ "INVADDRSPEC", "Invalid IP address specification", 0 },
+	{ "MUREENCRYPTEND", "Database !AD : MUPIP REORG ENCRYPT finished by pid !UL at transaction number [0x!16 at XQ]", 4 },
+	{ "CRYPTJNLMISMATCH", "Encryption settings mismatch between journal file !AD and corresponding database file !AD", 4 },
+	{ "SOCKWAIT", "Error waiting for socket connection", 0 },
+	{ "SOCKACPT", "Error accepting socket connection", 0 },
+	{ "SOCKINIT", "Error initializing socket: (errno == !UL) !AD", 3 },
+	{ "OPENCONN", "Error opening socket connection", 0 },
+	{ "DEVNOTIMP", "!AD device not implemented on in this environment", 2 },
+	{ "JNLEXTR", "Error writing journal extract file: !AD", 2 },
+	{ "DBREMOTE", "Database region !AD is remote; perform maintenance on the server node", 2 },
+	{ "JNLREQUIRED", "Journaling is required for clustered operation with file !AD", 2 },
+	{ "TPMIXUP", "!AZ transaction cannot be started within !AZ transaction", 2 },
+	{ "HTOFLOW", "Hash table overflow: Failed to allocate !UL elements", 1 },
+	{ "RMNOBIGRECORD", "File record size requires BIGRECORD parameter", 0 },
+	{ "DBBMSIZE", "!AD Bit map has incorrect size", 2 },
+	{ "DBBMBARE", "!AD Bit map does not protect itself", 2 },
+	{ "DBBMINV", "!AD Bit map contains an invalid pattern", 2 },
+	{ "DBBMMSTR", "!AD Bit map does not match master map", 2 },
+	{ "DBROOTBURN", "!AD Root block has data level", 2 },
+	{ "REPLSTATEERR", "Replication state cannot be changed to the specified value for database file !AD", 2 },
+	{ "VMSMEMORY", "Central memory exhausted during request for !UL bytes from 0x!XJ - check page file quota and page file size", 2 },
+	{ "DBDIRTSUBSC", "!AD Directory tree block contains non name-level entries", 2 },
+	{ "TIMEROVFL", "Timer overflow; interval probably too large", 0 },
+	{ "GTMASSERT", "!AD - Assert failed !AD line !UL", 5 },
+	{ "DBFHEADERR4", "Database file !AD: control problem: !AD was 0x!XL expecting 0x!XL", 6 },
+	{ "DBADDRANGE", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!XJ was outside !AD range 0x!XJ to 0x!XJ", 9 },
+	{ "DBQUELINK", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control !AD queue problem: was 0x!XJ, expecting 0x!XJ", 8 },
+	{ "DBCRERR", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!XL, expecting 0x!XL -- called from module !AD at line !UL", 11 },
+	{ "MUSTANDALONE", "Could not get exclusive access to !AD", 2 },
+	{ "MUNOACTION", "MUPIP unable to perform requested action", 0 },
+	{ "RMBIGSHARE", "File with BIGRECORD specified may only be shared if READONLY", 0 },
+	{ "TPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; pvtmods: !UL, blkmods: !UL, blklvl: !UL, type: !UL, readset: !UL, writeset: !UL, local_tn: 0x!16 at XQ, zpos: !AD", 16 },
+	{ "SOCKWRITE", "Write to a socket failed", 0 },
+	{ "DBCNTRLERR", "Database file !AD: control error suspected but not found", 2 },
+	{ "NOTERMENV", "Environment variable TERM not set.  Assuming \"unknown.\"", 0 },
+	{ "NOTERMENTRY", "TERM = \"!AD\" has no \"terminfo\" entry.  Possible terminal handling problems.", 2 },
+	{ "NOTERMINFODB", "No \"terminfo\" database.  Terminal handling problems likely.", 0 },
+	{ "INVACCMETHOD", "Invalid access method", 0 },
+	{ "JNLOPNERR", "Error opening journal file !AD!/  for database !AD", 4 },
+	{ "JNLRECTYPE", "Journal record type does not match expected type", 0 },
+	{ "JNLTRANSGTR", "Transaction number in journal is greater than in database", 0 },
+	{ "JNLTRANSLSS", "Transaction number in journal is less than in database", 0 },
+	{ "JNLWRERR", "Error writing journal file !AD.  Unable to update header.", 2 },
+	{ "FILEIDMATCH", "Saved File ID does not match the current ID - the file appears to have been moved", 0 },
+	{ "EXTSRCLIN", "!_!AD!/!_!AD", 4 },
+	{ "EXTSRCLOC", "!_!_At column !UL, line !UL, source module !AD", 4 },
+	{ "BIGNOACL", "Existing file found when BIGRECORD specified with UDF format but no GT.M ACE, perhaps lost during COPY", 0 },
+	{ "ERRCALL", "Error called from !AD line !UL", 3 },
+	{ "ZCCTENV", "Environmental variable for external package !AD not set", 2 },
+	{ "ZCCTOPN", "Unable to open external call table: !AD", 2 },
+	{ "ZCCTNULLF", "External call table contains no records: !AD", 2 },
+	{ "ZCUNAVAIL", "Package, !AD unavailable", 2 },
+	{ "ZCENTNAME", "No entry name found in external call table", 0 },
+	{ "ZCCOLON", "Colon expected but not found", 0 },
+	{ "ZCRTNTYP", "Unknown return type", 0 },
+	{ "ZCRCALLNAME", "Routine name expected but not found", 0 },
+	{ "ZCRPARMNAME", "Parameter name expected but not found", 0 },
+	{ "ZCUNTYPE", "Unknown type encountered", 0 },
+	{ "ZCMLTSTATUS", "Multiple entries of xc_status in a single entry in external call table", 0 },
+	{ "ZCSTATUSRET", "External call returned error status", 0 },
+	{ "ZCMAXPARAM", "Exceeded maximum number of external call parameters", 0 },
+	{ "ZCCSQRBR", "Closing Square bracket expected", 0 },
+	{ "ZCPREALLNUMEX", "Pre-allocation value should be a decimal number", 0 },
+	{ "ZCPREALLVALPAR", "Pre-allocation allowed only for variables passed by reference", 0 },
+	{ "VERMISMATCH", "Attempt to access !AD with version !AD, while already using !AD", 6 },
+	{ "JNLCNTRL", "Journal control unsynchronized for !AD.", 2 },
+	{ "TRIGNAMBAD", "Trigger initialization failed. Error while processing ^#t(\"!AD\",!AD)", 4 },
+	{ "BUFRDTIMEOUT", "Pid [0x!XL] timed out waiting for buffered read of blk [0x!XL] into cr [0x!XL] by process [0x!XL] to complete in database file !AD", 6 },
+	{ "INVALIDRIP", "Invalid read-in-progress field in Cache Record.  Resetting and continuing.  Region: !AD.", 2 },
+	{ "BLKSIZ512", "Block size !UL rounds to !UL", 2 },
+	{ "MUTEXERR", "Mutual Exclusion subsystem failure", 0 },
+	{ "JNLVSIZE", "Journal File !AD has incorrect virtual_filesize !UL.  Allocation : !UL, Extension : !UL, Filesize : !UL, File system block size : !UL", 7 },
+	{ "MUTEXLCKALERT", "Mutual Exclusion subsystem ALERT - lock attempt threshold crossed for region !AD.  Process !UL is in crit cycle !UL.", 4 },
+	{ "MUTEXFRCDTERM", "Mutual Exclusion subsystem detected forced termination of process !UL.  Crit salvaged from region !AD.", 3 },
+	{ "GTMSECSHR", "!UL : Error during gtmsecshr operation", 1 },
+	{ "GTMSECSHRSRVFID", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL, mesg data: !UL", 6 },
+	{ "GTMSECSHRSRVFIL", "!AD: !UL - Attempt to service request failed.!/ client id: !UL, mesg type: !UL!/file: !AD", 7 },
+	{ "FREEBLKSLOW", "Only !UL free blocks left out of !UL total blocks for !AD", 4 },
+	{ "PROTNOTSUP", "Protocol !AD not supported", 2 },
+	{ "DELIMSIZNA", "Delimiter size is not appropriate", 0 },
+	{ "INVCTLMNE", "Invalid control mnemonics", 0 },
+	{ "SOCKLISTEN", "Error listening on a socket", 0 },
+	{ "LQLENGTHNA", "Listening queue length !UL not appropriate.  Must be between 1 and 5.", 1 },
+	{ "ADDRTOOLONG", "Socket address !AD of length !UL is longer than the maximum permissible length !UL", 4 },
+	{ "GTMSECSHRGETSEMFAIL", "error getting semaphore errno = !UL", 1 },
+	{ "CPBEYALLOC", "Attempt to copy beyond the allocated buffer", 0 },
+	{ "DBRDONLY", "Database file !AD read only", 2 },
+	{ "DUPTN", "Duplicate transaction found [TN = 0x!16 at XQ] at offset 0x!XL in journal file !AD", 4 },
+	{ "TRESTLOC", "Transaction start: !AD, Transaction failure: !AD", 4 },
+	{ "REPLPOOLINST", "Error with replication pool (id = !UL) for instance file !AD", 3 },
+	{ "ZCVECTORINDX", "Invalid Vector Index !UL", 1 },
+	{ "REPLNOTON", "Replication is not on for journal file !AD, rollback will not continue", 2 },
+	{ "JNLMOVED", "Journal file appears to have been moved.  Journaling activity will not be done.", 0 },
+	{ "EXTRFMT", "Extract error: invalid format type.  Must be ZWR, GO, or BINARY.", 0 },
+	{ "CALLERID", "Routine !AD called from 0x!XJ", 3 },
+	{ "KRNLKILL", "Process was terminated by SIGDANGER signal from the system -- System swap space is too low -- Report to System Administrator", 0 },
+	{ "MEMORYRECURSIVE", "Memory Subsystem called recursively", 0 },
+	{ "FREEZEID", "Cache !AD on !AD by freeze id 0x!XL with match 0x!XL from 0x!XJ", 7 },
+	{ "BLKWRITERR", "Unable to queue disk write for block 0x!XL.  Will keep trying.", 1 },
+	{ "STOPTIMEOUT", "Waited too long for stopped process to release.  Region: !AD.", 2 },
+	{ "UNUSEDMSG777", "TRIGMODINTP last used in V6.2-000", 0 },
+	{ "BCKUPBUFLUSH", "Unable to flush buffer for online backup", 0 },
+	{ "NOFORKCORE", "Unable to fork off process to create core.  Core creation postponed.", 0 },
+	{ "JNLREAD", "Error reading from journal file !AD at offset [0x!XL]", 3 },
+	{ "JNLMINALIGN", "Journal Record Alignment !UL is less than the minimum value of !UL", 2 },
+	{ "JOBSTARTCMDFAIL", "JOB command STARTUP script invocation failed", 0 },
+	{ "JNLPOOLSETUP", "Journal Pool setup error", 0 },
+	{ "JNLSTATEOFF", "ROLLBACK or RECOVER BACKWARD cannot proceed as database file !AD does not have journaling ENABLED and ON", 2 },
+	{ "RECVPOOLSETUP", "Receive Pool setup error", 0 },
+	{ "REPLCOMM", "Replication subsystem communication failure", 0 },
+	{ "NOREPLCTDREG", "Replication subsystem found no region replicated for !AD !AZ", 3 },
+	{ "REPLINFO", "!AD", 2 },
+	{ "REPLWARN", "!AD", 2 },
+	{ "REPLERR", "!AD", 2 },
+	{ "JNLNMBKNOTPRCD", "Journal file !AD does not match the current journal file !AD of database file !AD", 6 },
+	{ "REPLFILIOERR", "Replication subsystem file I/O error !AD", 2 },
+	{ "REPLBRKNTRANS", "Replication subsystem found seqno !16 at XQ broken or missing in the journal files", 1 },
+	{ "TTWIDTHTOOBIG", "Terminal WIDTH exceeds the maximum allowed limit", 0 },
+	{ "REPLLOGOPN", "Replication subsystem could not open log file !AD: !AD.  Logging done to !AD.", 6 },
+	{ "REPLFILTER", "Replication filter subsystem failure", 0 },
+	{ "GBLMODFAIL", "Global variable Conflict Test failed.  Failure code: !AD.", 2 },
+	{ "TTLENGTHTOOBIG", "Terminal LENGTH exceeds the maximum allowed limit", 0 },
+	{ "TPTIMEOUT", "Transaction timeout", 0 },
+	{ "DEFEREVENT", "Transfer table reset for event type !UL when set for type !UL", 2 },
+	{ "JNLFILNOTCHG", "Journal file not changed", 0 },
+	{ "EVENTLOGERR", "Error in event logging subsystem", 0 },
+	{ "UPDATEFILEOPEN", "Update file open error", 0 },
+	{ "JNLBADRECFMT", "Journal File Record Format Error encountered for file !AD at disk address 0x!XL", 3 },
+	{ "NULLCOLLDIFF", "Null collation order must be the same for all regions", 0 },
+	{ "MUKILLIP", "Kill in progress indicator is set for file !AD - this !AD operation is likely to result in incorrectly marked busy errors", 4 },
+	{ "JNLRDONLY", "Journal file !AD read only", 2 },
+	{ "ANCOMPTINC", "Deviceparameter !AD is not compatible with any other deviceparameters in the !AD command", 4 },
+	{ "ABNCOMPTINC", "Deviceparameter !AD and deviceparameter !AD are not compatible in the !AD command", 6 },
+	{ "RECLOAD", "Error loading record number: !@UQ!/", 1 },
+	{ "SOCKNOTFND", "Socket !AD not found", 2 },
+	{ "CURRSOCKOFR", "Current socket of index !UL is out of range.  There are only !UL sockets.", 2 },
+	{ "SOCKETEXIST", "Socket !AD already exists", 2 },
+	{ "LISTENPASSBND", "Controlmnemonic LISTEN can be applied to PASSIVE socket in the state BOUND only", 0 },
+	{ "DBCLNUPINFO", "Database file !AD !/!AD", 4 },
+	{ "MUNODWNGRD", "Database not downgraded because of preceding errors", 0 },
+	{ "REPLTRANS2BIG", "Transaction !16 at XQ of size !UL (pre-filter size !UL) too large to be accommodated in the !AD pool", 5 },
+	{ "RDFLTOOLONG", "Length specified for fixed length read exceeds the maximum string size", 0 },
+	{ "MUNOFINISH", "MUPIP unable to finish all requested actions", 0 },
+	{ "DBFILEXT", "Database file !AD extended from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5 },
+	{ "JNLFSYNCERR", "Error synchronizing journal file !AD to disk", 2 },
+	{ "FSYNCTIMOUT", "Timed out on fsync for journal file !AD", 2 },
+	{ "ZCPREALLVALINV", "The pre-allocation value exceeded the maximum string length", 0 },
+	{ "NEWJNLFILECREAT", "Journal file !AD nearing maximum size.  New journal file created.", 2 },
+	{ "DSKSPACEFLOW", "Disk Space for file !AD nearing maximum size.  !UL blocks available.", 3 },
+	{ "GVINCRFAIL", "Global variable $INCR failed.  Failure code: !AD.", 2 },
+	{ "ISOLATIONSTSCHN", "Error changing NOISOLATION status for global ^!AD within a TP transaction from !UL to !UL", 4 },
+	{ "REPLGBL2LONG", "Global names longer than 8 characters cannot be handled at the secondary", 0 },
+	{ "TRACEON", "Missing global name (with optional subscripts) for recording M-tracing information", 0 },
+	{ "TOOMANYCLIENTS", "GT.CM is serving the maximum number of clients.  Try again later.", 0 },
+	{ "NOEXCLUDE", "None of the excluded variables exist", 0 },
+	{ "GVINCRISOLATION", "$INCREMENT cannot be performed on global ^!AD as it has NOISOLATION turned ON", 2 },
+	{ "EXCLUDEREORG", "Global: !AD is present in the EXCLUDE option.  REORG will skip the global.", 2 },
+	{ "REORGINC", "Reorg was incomplete.  Not all globals were reorged.", 0 },
+	{ "ASC2EBCDICCONV", "ASCII/EBCDIC conversion failed when calling !AD", 2 },
+	{ "GTMSECSHRSTART", "!AD - !UL : gtmsecshr failed to startup", 3 },
+	{ "DBVERPERFWARN1", "Performance warning: Database !AD is running in compatibility mode which degrades performance. Run MUPIP REORG UPGRADE for best overall performance", 2 },
+	{ "FILEIDGBLSEC", "File ID in global section does not match with the database file !AD", 2 },
+	{ "GBLSECNOTGDS", "Global Section !AD is not a GT.M global section", 2 },
+	{ "BADGBLSECVER", "Global Section !AD does not match the current database version", 2 },
+	{ "RECSIZENOTEVEN", "RECORDSIZE [!UL] needs to be a multiple of 2 if ICHSET or OCHSET is UTF-16, UTF-16LE or UTF-16BE", 1 },
+	{ "BUFFLUFAILED", "Error flushing buffers from !AD for database file !AD", 4 },
+	{ "MUQUALINCOMP", "Incompatible qualifiers - FILE and REGION", 0 },
+	{ "DISTPATHMAX", "$gtm_dist path is greater than maximum (!UL)", 1 },
+	{ "FILEOPENFAIL", "Failed to open file !AD", 2 },
+	{ "IMAGENAME", "The executing module name should be !AD instead of !AD", 4 },
+	{ "GTMSECSHRPERM", "The gtmsecshr module in $gtm_dist does not have the correct permission and uid", 0 },
+	{ "GTMDISTUNDEF", "Environment variable $gtm_dist is not defined", 0 },
+	{ "SYSCALL", "Error received from system call !AD -- called from module !AD at line !UL", 5 },
+	{ "MAXGTMPATH", "The executing module path is greater than the maximum !UL", 1 },
+	{ "TROLLBK2DEEP", "Intended rollback(!SL) deeper than the current $tlevel(!UL)", 2 },
+	{ "INVROLLBKLVL", "Rollback level (!UL) not less than current $TLEVEL(!UL).  Can't rollback.", 2 },
+	{ "OLDBINEXTRACT", "Loading an older version(!UL) of binary extract. !/Database or global collation changes since the extract, if any, will result in database corruption.", 1 },
+	{ "ACOMPTBINC", "Deviceparameter !AD is compatible with only !AD in the command !AD", 6 },
+	{ "NOTREPLICATED", "Transaction number !16 at XQ generated by the !AD process (PID = !UL) is not replicated to the secondary", 4 },
+	{ "DBPREMATEOF", "Premature end of file with database file !AD", 2 },
+	{ "KILLBYSIG", "!AD process !UL has been killed by a signal !UL", 4 },
+	{ "KILLBYSIGUINFO", "!AD process !UL has been killed by a signal !UL from process !UL with userid number !UL", 6 },
+	{ "KILLBYSIGSINFO1", "!AD process !UL has been killed by a signal !UL at address 0x!XJ (vaddr 0x!XJ)", 6 },
+	{ "KILLBYSIGSINFO2", "!AD process !UL has been killed by a signal !UL at address 0x!XJ", 5 },
+	{ "SIGILLOPC", "Signal was caused by an illegal opcode", 0 },
+	{ "SIGILLOPN", "Signal was caused by an illegal operand", 0 },
+	{ "SIGILLADR", "Signal was caused by illegal addressing mode", 0 },
+	{ "SIGILLTRP", "Signal was caused by an illegal trap", 0 },
+	{ "SIGPRVOPC", "Signal was caused by a privileged opcode", 0 },
+	{ "SIGPRVREG", "Signal was caused by a privileged register", 0 },
+	{ "SIGCOPROC", "Signal was caused by a coprocessor error", 0 },
+	{ "SIGBADSTK", "Signal was caused by an internal stack error", 0 },
+	{ "SIGADRALN", "Signal was caused by invalid address alignment", 0 },
+	{ "SIGADRERR", "Signal was caused by a non-existent physical address", 0 },
+	{ "SIGOBJERR", "Signal was caused by an object specific hardware error", 0 },
+	{ "SIGINTDIV", "Signal was caused by an integer divided by zero", 0 },
+	{ "SIGINTOVF", "Signal was caused by an integer overflow", 0 },
+	{ "SIGFLTDIV", "Signal was caused by a floating point divide by zero", 0 },
+	{ "SIGFLTOVF", "Signal was caused by a floating point overflow", 0 },
+	{ "SIGFLTUND", "Signal was caused by a floating point underflow", 0 },
+	{ "SIGFLTRES", "Signal was caused by a floating point inexact result", 0 },
+	{ "SIGFLTINV", "Signal was caused by an invalid floating point operation", 0 },
+	{ "SIGMAPERR", "Signal was caused by an address not mapped to an object", 0 },
+	{ "SIGACCERR", "Signal was caused by invalid permissions for mapped object", 0 },
+	{ "TRNLOGFAIL", "Translation of (VMS) logical name or (UNIX) environment variable !AD failed", 2 },
+	{ "INVDBGLVL", "Invalid non-numeric debug level specified !AD in (VMS) logical name or (UNIX) environment variable !AD", 4 },
+	{ "DBMAXNRSUBS", "!AD Maximum number of subscripts exceeded", 2 },
+	{ "GTMSECSHRSCKSEL", "gtmsecshr select on socket failed", 0 },
+	{ "GTMSECSHRTMOUT", "gtmsecshr exiting due to idle timeout", 0 },
+	{ "GTMSECSHRRECVF", "gtmsecshr receive on server socket failed", 0 },
+	{ "GTMSECSHRSENDF", "gtmsecshr send on server socket failed", 0 },
+	{ "SIZENOTVALID8", "Size (in bytes) must be either 1, 2, 4, or 8", 0 },
+	{ "GTMSECSHROPCMP", "gtmsecshr operation may be compromised", 0 },
+	{ "GTMSECSHRSUIDF", "gtmsecshr server setuid to root failed", 0 },
+	{ "GTMSECSHRSGIDF", "gtmsecshr server setgid to root failed", 0 },
+	{ "GTMSECSHRSSIDF", "gtmsecshr server setsid failed", 0 },
+	{ "GTMSECSHRFORKF", "gtmsecshr server unable to fork off a child process", 0 },
+	{ "DBFSYNCERR", "Error synchronizing database file !AD to disk", 2 },
+	{ "SECONDAHEAD", "Secondary ahead of primary. !/ Secondary database possibly updated by process other than the update process.  First perform rollback.", 0 },
+	{ "SCNDDBNOUPD", "Database Updates not allowed on the secondary", 0 },
+	{ "MUINFOUINT4", "!AD : !UL [0x!XL]", 4 },
+	{ "NLMISMATCHCALC", "Location of !AD expected at 0x!XL, but found at 0x!XL", 4 },
+	{ "RELINKCTLFULL", "Relinkctl file for directory !AD is full (maximum entries !UL)", 3 },
+	{ "MUPIPSET2BIG", "!UL too large, maximum !AD allowed is !UL", 4 },
+	{ "DBBADNSUB", "!AD Bad numeric subscript", 2 },
+	{ "DBBADKYNM", "!AD Bad key name", 2 },
+	{ "DBBADPNTR", "!AD Bad pointer value in directory", 2 },
+	{ "DBBNPNTR", "!AD Bit map block number as pointer", 2 },
+	{ "DBINCLVL", "!AD Block at incorrect level", 2 },
+	{ "DBBFSTAT", "!AD Block busy/free status unknown (local bitmap corrupted)", 2 },
+	{ "DBBDBALLOC", "!AD Block doubly allocated", 2 },
+	{ "DBMRKFREE", "!AD Block incorrectly marked free", 2 },
+	{ "DBMRKBUSY", "!AD Block incorrectly marked busy", 2 },
+	{ "DBBSIZZRO", "!AD Block size equals zero", 2 },
+	{ "DBSZGT64K", "!AD Block size is greater than 64K", 2 },
+	{ "DBNOTMLTP", "!AD Block size not a multiple of 512 bytes", 2 },
+	{ "DBTNTOOLG", "!AD Block transaction number too large", 2 },
+	{ "DBBPLMLT512", "!AD Blocks per local map is less than 512", 2 },
+	{ "DBBPLMGT2K", "!AD Blocks per local map is greater than 2K", 2 },
+	{ "MUINFOUINT8", "!AD : !@ZQ [0x!16 at XQ]", 4 },
+	{ "DBBPLNOT512", "!AD Blocks per local map is not 512", 2 },
+	{ "MUINFOSTR", "!AD : !AD", 4 },
+	{ "DBUNDACCMT", "!AD Cannot determine access method; trying with BG", 2 },
+	{ "DBTNNEQ", "!AD Current tn and early tn are not equal", 2 },
+	{ "MUPGRDSUCC", "Database file !AD successfully !AD to !AD", 6 },
+	{ "DBDSRDFMTCHNG", "Database file !AD, Desired DB Format set to !AD by !AD with pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 9 },
+	{ "DBFGTBC", "!AD File size larger than block count would indicate", 2 },
+	{ "DBFSTBC", "!AD File size smaller than block count would indicate", 2 },
+	{ "DBFSTHEAD", "!AD File smaller than database header", 2 },
+	{ "DBCREINCOMP", "!AD Header indicates database file creation was interrupted before completion", 2 },
+	{ "DBFLCORRP", "!AD Header indicates database file is corrupt", 2 },
+	{ "DBHEADINV", "!AD Header size not valid for database", 2 },
+	{ "DBINCRVER", "!AD Incorrect version of GT.M database", 2 },
+	{ "DBINVGBL", "!AD Invalid mixing of global names", 2 },
+	{ "DBKEYGTIND", "!AD Key greater than index key", 2 },
+	{ "DBGTDBMAX", "!AD Key larger than database maximum", 2 },
+	{ "DBKGTALLW", "!AD Key larger than maximum allowed length", 2 },
+	{ "DBLTSIBL", "!AD Keys less than sibling's index key", 2 },
+	{ "DBLRCINVSZ", "!AD Last record of block has invalid size", 2 },
+	{ "MUREUPDWNGRDEND", "Region !AD : MUPIP REORG UPGRADE/DOWNGRADE finished by pid !UL [0x!XL] at transaction number [0x!16 at XQ]", 5 },
+	{ "DBLOCMBINC", "!AD Local bit map incorrect", 2 },
+	{ "DBLVLINC", "!AD Local bitmap block level incorrect", 2 },
+	{ "DBMBSIZMX", "!AD Map block too large", 2 },
+	{ "DBMBSIZMN", "!AD Map block too small", 2 },
+	{ "DBMBTNSIZMX", "!AD Map block transaction number too large", 2 },
+	{ "DBMBMINCFRE", "!AD Master bit map incorrectly asserts this local map has free space", 2 },
+	{ "DBMBPINCFL", "!AD Master bit map incorrectly marks this local map full", 2 },
+	{ "DBMBPFLDLBM", "!AD Master bit map shows this map full, agreeing with disk local map", 2 },
+	{ "DBMBPFLINT", "!AD Master bit map shows this map full, agreeing with MUPIP INTEG", 2 },
+	{ "DBMBPFLDIS", "!AD Master bit map shows this map full, in disagreement with both disk and INTEG result", 2 },
+	{ "DBMBPFRDLBM", "!AD Master bit map shows this map has space, agreeing with disk local map", 2 },
+	{ "DBMBPFRINT", "!AD Master bit map shows this map has space, agreeing with MUPIP INTEG", 2 },
+	{ "DBMAXKEYEXC", "!AD Maximum key size for database exceeds design maximum", 2 },
+	{ "DBMXRSEXCMIN", "!AD Maximum record size for database is less than the design minimum", 2 },
+	{ "MUPIPSET2SML", "!UL too small, minimum !AD allowed is !UL", 4 },
+	{ "DBREADBM", "!AD Read error on bitmap", 2 },
+	{ "DBCOMPTOOLRG", "!AD Record has too large compression count", 2 },
+	{ "DBVERPERFWARN2", "Peformance warning: Database !AD is not fully upgraded. Run MUPIP REORG UPGRADE for best overall performance", 2 },
+	{ "DBRBNTOOLRG", "!AD Root block number greater than last block number in file", 2 },
+	{ "DBRBNLBMN", "!AD Root block number is a local bit map number", 2 },
+	{ "DBRBNNEG", "!AD Root block number negative", 2 },
+	{ "DBRLEVTOOHI", "!AD Root level higher than maximum", 2 },
+	{ "DBRLEVLTONE", "!AD Root level less than one", 2 },
+	{ "DBSVBNMIN", "!AD Start VBN smaller than possible", 2 },
+	{ "DBTTLBLK0", "!AD Total blocks equal zero", 2 },
+	{ "DBNOTDB", "!AD File does not have a valid GDS file header", 2 },
+	{ "DBTOTBLK", "Total blocks should be 0x!XL, is 0x!XL", 2 },
+	{ "DBTN", "Block TN is 0x!16 at XQ", 1 },
+	{ "DBNOREGION", "None of the database regions accessible", 0 },
+	{ "DBTNRESETINC", "WARNING: tn_reset for database is incomplete due to integrity errors", 0 },
+	{ "DBTNLTCTN", "Transaction numbers greater than the current transaction were found", 0 },
+	{ "DBTNRESET", "Cannot reset transaction number for this region", 0 },
+	{ "MUTEXRSRCCLNUP", "Mutex subsystem leftover resource !AD removed", 2 },
+	{ "SEMWT2LONG", "Process !UL waited !UL second(s) for the !AD lock for region !AD, lock held by pid !UL", 7 },
+	{ "REPLINSTOPEN", "Error opening replication instance file !AD", 2 },
+	{ "REPLINSTCLOSE", "Error closing replication instance file !AD", 2 },
+	{ "JOBSETUP", "Error receiving !AD from parent process", 2 },
+	{ "DBCRERR8", "Database file !AD, cr location 0x!XJ blk = 0x!XL error: !AD was 0x!16 at XQ, expecting 0x!16 at XQ -- called from module !AD at line !UL", 11 },
+	{ "NUMPROCESSORS", "Could not determine number of processors", 0 },
+	{ "DBADDRANGE8", "Database file !AD, element location 0x!XJ: blk = 0x!XL: control 0x!16 at XQ was outside !AD range 0x!16 at XQ to 0x!16 at XQ", 9 },
+	{ "RNDWNSEMFAIL", "Attempting to acquire gds_rundown semaphore when it is already owned", 0 },
+	{ "GTMSECSHRSHUTDN", "gtmsecshr process has received a shutdown request -- shutting down", 0 },
+	{ "NOSPACECRE", "Not enough space to create database file !AD.  !@ZQ blocks are needed, only !@ZQ available.", 4 },
+	{ "LOWSPACECRE", "Disk space for database file !AD is not enough for !UL future extensions.  !@ZQ !UL-byte blocks are needed, only !@ZQ available.", 6 },
+	{ "WAITDSKSPACE", "Process 0x!XL will wait !UL seconds for necessary disk space to become available for !AD ", 4 },
+	{ "OUTOFSPACE", "Database file !AD ran out of disk space.  Detected by process !UL.  !/Exit without clearing shared memory due to the disk space constraints.  !/Make space and then perform mupip rundown to ensure database integrity.", 3 },
+	{ "JNLPVTINFO", "Pid 0x!XL!/     cycle 0x!XL fd_mismatch 0x!XL     channel 0x!XL sync_io 0x!XL!/ pini_addr 0x!XL  qio_active 0x!XL old_channel 0x!XL", 8 },
+	{ "NOSPACEEXT", "Not enough disk space for file !AD to extend.  !UL blocks needed.  !UL blocks available.", 4 },
+	{ "WCBLOCKED", "Field !AD is set by process !UL at transaction number 0x!16 at XQ for database file !AD", 6 },
+	{ "REPLJNLCLOSED", "Replication in jeopardy as journaling got closed for database file !AD. Current region seqno is !@ZQ [0x!16 at XQ] and system seqno is !@ZQ [0x!16 at XQ]", 6 },
+	{ "RENAMEFAIL", "Rename of file !AD to !AD failed", 4 },
+	{ "FILERENAME", "File !AD is renamed to !AD", 4 },
+	{ "JNLBUFINFO", "Pid 0x!XL!/     dsk 0x!XL     free 0x!XL  bytcnt 0x!XL io_in_prog 0x!XL fsync_in_prog 0x!XL!/ dskaddr 0x!XL freeaddr 0x!XL  qiocnt 0x!XL now_writer 0x!XL     fsync_pid 0x!XL!/filesize 0x!XL    cycle 0x!XL  errcnt 0x!XL    wrtsize 0x!XL fsync_dskaddr 0x!XL", 16 },
+	{ "SDSEEKERR", "Sequential device seek error - !AD", 2 },
+	{ "LOCALSOCKREQ", "LOCAL socket required", 0 },
+	{ "TPNOTACID", "!AD at !AD in a final TP retry violates ACID properties of a TRANSACTION; indefinite RESTARTs may occur !AD !AD", 8 },
+	{ "JNLSETDATA2LONG", "SET journal record has data of length !UL.  Target system cannot handle data more than !UL bytes.", 2 },
+	{ "JNLNEWREC", "Target system cannot recognize journal record of type !UL, last recognized type is !UL", 2 },
+	{ "REPLFTOKSEM", "Error with replication semaphores for instance file !AD", 2 },
+	{ "SOCKNOTPASSED", "Socket message contained no passed socket descriptors", 0 },
+	{ "EXTRIOERR", "Error writing extract file !AD", 2 },
+	{ "EXTRCLOSEERR", "Error closing extract file !AD", 2 },
+	{ "CONNSOCKREQ", "Socket not connected", 0 },
+	{ "REPLEXITERR", "Replication process encountered an error while exiting", 0 },
+	{ "MUDESTROYSUC", "Global section (!AD) corresponding to file !AD successfully destroyed", 4 },
+	{ "DBRNDWN", "Error during global database rundown for region !AD.!/Notify those responsible for proper database operation.", 2 },
+	{ "MUDESTROYFAIL", "Global section (!AD) corresponding to file !AD failed to be destroyed", 4 },
+	{ "NOTALLDBOPN", "Not all required database files were opened", 0 },
+	{ "MUSELFBKUP", "Database file !AD can not be backed upon itself", 2 },
+	{ "DBDANGER", "Process !UL [0x!XL] killed while committing update for database file !AD.  Possibility of damage to block 0x!XL.", 5 },
+	{ "TRUNCATEFAIL", "Truncating !AD from 0x!XL VMS blocks to 0x!XL blocks failed", 4 },
+	{ "TCGETATTR", "Error while getting terminal attributes on file descriptor !UL", 1 },
+	{ "TCSETATTR", "Error while setting terminal attributes on file descriptor !UL", 1 },
+	{ "IOWRITERR", "IO Write by pid 0x!XL to blk 0x!XL of database file !AD failed.  Pid 0x!XL retrying the IO.", 5 },
+	{ "REPLINSTWRITE", "Error writing [0x!XL] bytes at offset [0x!16 at XQ] in replication instance file !AD", 4 },
+	{ "DBBADFREEBLKCTR", "Database !AD free blocks counter in file header: 0x!XL appears incorrect, should be 0x!XL.  Auto-corrected.", 4 },
+	{ "REQ2RESUME", "Request to resume suspended processing received from process !UL owned by userid !UL", 2 },
+	{ "TIMERHANDLER", "Incorrect SIGALRM handler (0x!XJ) found by !AD", 3 },
+	{ "FREEMEMORY", "Error occurred freeing memory from 0x!XJ", 1 },
+	{ "MUREPLSECDEL", "Replication section !AD deleted", 2 },
+	{ "MUREPLSECNOTDEL", "Replication section !AD not deleted", 2 },
+	{ "MUJPOOLRNDWNSUC", "Jnlpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4 },
+	{ "MURPOOLRNDWNSUC", "Recvpool section (id = !AD) belonging to the replication instance !AD successfully rundown", 4 },
+	{ "MUJPOOLRNDWNFL", "Jnlpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4 },
+	{ "MURPOOLRNDWNFL", "Recvpool section (id = !AD) belonging to the replication instance !AD rundown failed", 4 },
+	{ "MUREPLPOOL", "Error with replpool section !AD", 2 },
+	{ "REPLACCSEM", "Error with replication access semaphore (id = !UL) for instance file !AD", 3 },
+	{ "JNLFLUSHNOPROG", "No progress while attempting to flush journal file !AD", 2 },
+	{ "REPLINSTCREATE", "Error creating replication instance file !AD", 2 },
+	{ "SUSPENDING", "Process Received Signal !UL. Suspending processing on user request or attempt to do terminal I/O while running in the background", 1 },
+	{ "SOCKBFNOTEMPTY", "Socket buffer size cannot be set to 0x!XL due to 0x!XL bytes of buffered data.  Read first.", 2 },
+	{ "ILLESOCKBFSIZE", "The specified socket buffer size is 0x!XL, which is either 0 or too big", 1 },
+	{ "NOSOCKETINDEV", "There is no socket in the current socket device", 0 },
+	{ "SETSOCKOPTERR", "Setting the socket attribute !AD failed: (errno == !UL) !AD", 5 },
+	{ "GETSOCKOPTERR", "Getting the socket attribute !AD failed: (errno == !UL) !AD", 5 },
+	{ "NOSUCHPROC", "Process !UL does not exist - no need to !AD it", 3 },
+	{ "DSENOFINISH", "DSE unable to finish all requested actions", 0 },
+	{ "LKENOFINISH", "LKE unable to finish all requested actions", 0 },
+	{ "NOCHLEFT", "Unhandled condition exception (all handlers exhausted) - process terminating", 0 },
+	{ "MULOGNAMEDEF", "Logical name !AD, needed to start replication server is already defined for this job.  !/Check for an existing or improperly terminated server.", 2 },
+	{ "BUFOWNERSTUCK", "Pid !UL waiting for Pid !UL to finish disk-read of block !UL [0x!XL].!/Been waiting for !UL minutes.  read_in_progress=!UL : rip_latch = !UL.", 7 },
+	{ "ACTIVATEFAIL", "Cannot activate passive source server on instance !AD while a receiver server and/or update process is running", 2 },
+	{ "DBRNDWNWRN", "Global section of database file !AD not rundown successfully by pid !UL [0x!XL].  Global section was not removed.", 4 },
+	{ "DLLNOOPEN", "Failed to load external dynamic library !AD", 2 },
+	{ "DLLNORTN", "Failed to look up the location of the symbol !AD", 2 },
+	{ "DLLNOCLOSE", "Failed to unload external dynamic library", 0 },
+	{ "FILTERNOTALIVE", "Replication server detected that the filter is not alive while attempting to send seqno !16 at XQ", 1 },
+	{ "FILTERCOMM", "Error communicating seqno !16 at XQ with the filter", 1 },
+	{ "FILTERBADCONV", "Bad conversion of seqno !16 at XQ by filter", 1 },
+	{ "PRIMARYISROOT", "Attempted operation not valid on root primary instance !AD", 2 },
+	{ "GVQUERYGETFAIL", "Global variable QUERY and GET failed.  Failure code: !AD.", 2 },
+	{ "DBCREC2BIGINBLK", "A Record in block 0x!XL has a length greater than the maximum (!UL) in database !AD", 4 },
+	{ "MERGEDESC", "Merge operation not possible.  !AD is descendent of !AD.", 4 },
+	{ "MERGEINCOMPL", "Error encountered during MERGE; operation may be incomplete", 0 },
+	{ "DBNAMEMISMATCH", "Database file !AD points to shared memory (id = !UL) which in turn points to an inaccessible database file !AZ", 4 },
+	{ "DBIDMISMATCH", "Database file !AZ (region !AD) id does not match file id in shared memory (id = !UL).", 4 },
+	{ "DEVOPENFAIL", "Error opening !AD", 2 },
+	{ "IPCNOTDEL", "!AD : !AD did not delete IPC resources for region !AD", 6 },
+	{ "XCVOIDRET", "Attempt to return a value from function !AD, which is declared void in external call table !AD", 4 },
+	{ "MURAIMGFAIL", "Mupip recover or rollback failed while processing an after-image journal record.  Failure code: !AD.", 2 },
+	{ "REPLINSTUNDEF", "Replication instance environment variable $gtm_repl_instance is undefined", 0 },
+	{ "REPLINSTACC", "Error accessing replication instance file !AD", 2 },
+	{ "NOJNLPOOL", "No journal pool info found in the replication instance of !AD", 2 },
+	{ "NORECVPOOL", "No receiver pool info found in the replication instance of !AD", 2 },
+	{ "FTOKERR", "Error getting ftok of the file !AD", 2 },
+	{ "REPLREQRUNDOWN", "Error accessing replication instance !AD.  Must be rundown on cluster node !AD.", 4 },
+	{ "BLKCNTEDITFAIL", "Mupip recover or rollback failed to correct the block count field in the file header for file !AD", 2 },
+	{ "SEMREMOVED", "Semaphore id !UL removed from the system", 1 },
+	{ "REPLINSTFMT", "Format error encountered while reading replication instance file !AD. Expected !AD. Found !AD.", 6 },
+	{ "SEMKEYINUSE", "Semaphore key 0x!XL is already in use (possibly by an older version)", 1 },
+	{ "XTRNTRANSERR", "Error attempting to generate an environment using an external algorithm", 0 },
+	{ "XTRNTRANSDLL", "Error during extended reference environment translation.  Check the above message.", 0 },
+	{ "XTRNRETVAL", "Length of return value (!SL) from extended reference translation algorithm is not in the range [0,!UL]", 2 },
+	{ "XTRNRETSTR", "Return string from extended reference translation algorithm is NULL", 0 },
+	{ "INVECODEVAL", "Invalid value for $ECODE (!AD)", 2 },
+	{ "SETECODE", "Non-empty value assigned to $ECODE (user-defined error trap)", 0 },
+	{ "INVSTACODE", "Invalid value for second parameter of $STACK (!AD)", 2 },
+	{ "REPEATERROR", "Repeat previous error", 0 },
+	{ "NOCANONICNAME", "Value is not a canonic name (!AD)", 2 },
+	{ "NOSUBSCRIPT", "No such subscript found (!SL)", 1 },
+	{ "SYSTEMVALUE", "Invalid value for $SYSTEM (!AD)", 2 },
+	{ "SIZENOTVALID4", "Size (in bytes) must be either 1, 2, or 4", 0 },
+	{ "STRNOTVALID", "Error: cannot convert !AD value to valid value", 2 },
+	{ "CREDNOTPASSED", "Socket message contained no passed credentials", 0 },
+	{ "ERRWETRAP", "Error while processing $ETRAP", 0 },
+	{ "TRACINGON", "Tracing already turned on", 0 },
+	{ "CITABENV", "Environment variable for call-in table !AD not set", 2 },
+	{ "CITABOPN", "Unable to open call-in table: !AD", 2 },
+	{ "CIENTNAME", "No label reference found for this entry in call-in table", 0 },
+	{ "CIRTNTYP", "Invalid return type", 0 },
+	{ "CIRCALLNAME", "Call-in routine name expected but not found", 0 },
+	{ "CIRPARMNAME", "Invalid parameter specification for call-in table", 0 },
+	{ "CIDIRECTIVE", "Invalid directive parameter passing.  Expected I, O or IO.", 0 },
+	{ "CIPARTYPE", "Invalid type specification for O/IO directive - expected pointer type", 0 },
+	{ "CIUNTYPE", "Unknown parameter type encountered", 0 },
+	{ "CINOENTRY", "No entry specified for !AD in the call-in table", 2 },
+	{ "JNLINVSWITCHLMT", "Journal AUTOSWITCHLIMIT [!UL] falls outside of allowed limits [!UL] and [!UL]", 3 },
+	{ "SETZDIR", "Cannot change working directory to !AD", 2 },
+	{ "JOBACTREF", "Actual parameter in job command passed by reference", 0 },
+	{ "ECLOSTMID", "$ECODE overflow, the first and last ecodes are retained, but some intervening ecodes have been lost", 0 },
+	{ "ZFF2MANY", "Number of characters specified for ZFF deviceparameter (!UL) is more than the maximum allowed (!UL)", 2 },
+	{ "JNLFSYNCLSTCK", "Journaling fsync lock is stuck in journal file !AD", 2 },
+	{ "DELIMWIDTH", "Delimiter length !UL exceeds device width !UL", 2 },
+	{ "DBBMLCORRUPT", "Database !AD : Bitmap blk [0x!XL] is corrupt (size = [0x!XL], levl = [0x!XL], tn = [0x!16 at XQ]) : Dbtn = [0x!16 at XQ] : Database integrity errors likely", 7 },
+	{ "DLCKAVOIDANCE", "Possible deadlock detected: Database !AD : Dbtn [0x!16 at XQ] : t_tries [0x!XL] : dollar_trestart [0x!XL] : now_crit [0x!XL] : TP transaction restarted", 6 },
+	{ "WRITERSTUCK", "Buffer flush stuck waiting for [0x!XL] concurrent writers to finish writing to database file !AD", 3 },
+	{ "PATNOTFOUND", "Current pattern table has no characters with pattern code !AD", 2 },
+	{ "INVZDIRFORM", "Invalid value (!UL) specified for ZDIR_FORM", 1 },
+	{ "ZDIROUTOFSYNC", "$ZDIRECTORY !AD is not the same as its cached value !AD", 4 },
+	{ "GBLNOEXIST", "Global !AD no longer exists", 2 },
+	{ "MAXBTLEVEL", "Global ^!AD in region !AD reached maximum level", 4 },
+	{ "INVMNEMCSPC", "Unsupported mnemonicspace !AD", 2 },
+	{ "JNLALIGNSZCHG", "Journal ALIGNSIZE is rounded up to !UL blocks (closest next higher power of two)", 1 },
+	{ "SEFCTNEEDSFULLB", "Current side effect setting does not permit full Boolean to be turned off", 0 },
+	{ "GVFAILCORE", "A core file is being created for later analysis if necessary", 0 },
+	{ "DBCDBNOCERTIFY", "Database !AD HAS NOT been certified due to the preceding errors - rerun DBCERTIFY SCAN", 2 },
+	{ "DBFRZRESETSUC", "Freeze released successfully on database file !AD", 2 },
+	{ "JNLFILEXTERR", "Error during extension of journal file !AD", 2 },
+	{ "JOBEXAMDONE", "GT.M process !UL completed job examine to !AD", 3 },
+	{ "JOBEXAMFAIL", "GT.M process !UL executing $ZJOBEXAM function failed with the preceding error message", 1 },
+	{ "JOBINTRRQST", "Job interrupt requested", 0 },
+	{ "ERRWZINTR", "Error while processing $ZINTERRUPT", 0 },
+	{ "CLIERR", "!AD", 2 },
+	{ "REPLNOBEFORE", "NOBEFORE option cannot be used when the current replication state is ON for database file !AD", 2 },
+	{ "REPLJNLCNFLCT", "Journaling cannot be turned !AD on database file !AD as the replication state is !AD and must also be turned !AD in the same command", 8 },
+	{ "JNLDISABLE", "Specified journal option(s) cannot take effect as journaling is DISABLED on database file !AD", 2 },
+	{ "FILEEXISTS", "File !AD already exists", 2 },
+	{ "JNLSTATE", "Journaling state for !AD !AD is now !AD", 6 },
+	{ "REPLSTATE", "Replication state for !AD !AD is now !AD", 6 },
+	{ "JNLCREATE", "Journal file !AD created for !AD !AD with !AD", 8 },
+	{ "JNLNOCREATE", "Journal file !AD not created", 2 },
+	{ "JNLFNF", "Journal file !AD not found", 2 },
+	{ "PREVJNLLINKCUT", "Previous journal file name link set to NULL in new journal file !AD created for database file !AD", 4 },
+	{ "PREVJNLLINKSET", "Previous generation journal file name is changed from !AD to !AD", 4 },
+	{ "FILENAMETOOLONG", "File name too long", 0 },
+	{ "REQRECOV", "Error accessing database !AD.  Must be recovered on cluster node !AD.", 4 },
+	{ "JNLTRANS2BIG", "Transaction needs an estimated [!UL blocks] in journal file !AD which exceeds the AUTOSWITCHLIMIT of !UL blocks", 4 },
+	{ "JNLSWITCHTOOSM", "Journal AUTOSWITCHLIMIT [!UL blocks] is less than Journal ALLOCATION [!UL blocks] for database file !AD", 4 },
+	{ "JNLSWITCHSZCHG", "Journal AUTOSWITCHLIMIT [!UL blocks] is rounded down to [!UL blocks] to equal the sum of Journal ALLOCATION [!UL blocks] and a multiple of Journal EXTENSION [!UL blocks] for database file !AD", 6 },
+	{ "NOTRNDMACC", "Only random access files are supported as backup files for non-incremental backup", 0 },
+	{ "TMPFILENOCRE", "Error in MUPIP BACKUP while trying to create temporary file !AD", 2 },
+	{ "SHRMEMEXHAUSTED", "Attempt by process to use more shared memory than currently permitted by VMS", 0 },
+	{ "JNLSENDOPER", "pid = 0x!XL : status = 0x!XL : jpc_status = 0x!XL : jpc_status2 = 0x!XL : iosb.cond = 0x!XW", 5 },
+	{ "DDPSUBSNUL", "NUL characters in subscripts are not supported by DDP", 0 },
+	{ "DDPNOCONNECT", "Named volume set, !AD, is not connected", 2 },
+	{ "DDPCONGEST", "Agent congestion", 0 },
+	{ "DDPSHUTDOWN", "Server has shut down", 0 },
+	{ "DDPTOOMANYPROCS", "Maximum process limit of !UL exceeded", 1 },
+	{ "DDPBADRESPONSE", "DDP invalid response code: !XB; message text follows", 1 },
+	{ "DDPINVCKT", "Invalid format for CIRCUIT", 0 },
+	{ "DDPVOLSETCONFIG", "Volume Set Configuration file error", 0 },
+	{ "DDPCONFGOOD", "Volume Set Configuration entry accepted", 0 },
+	{ "DDPCONFIGNORE", "Volume Set Configuration line ignored", 0 },
+	{ "DDPCONFINCOMPL", "Volume Set Configuration entry incomplete", 0 },
+	{ "DDPCONFBADVOL", "Volume Set Configuration entry : invalid volume", 0 },
+	{ "DDPCONFBADUCI", "Volume Set Configuration entry : invalid uci", 0 },
+	{ "DDPCONFBADGLD", "Volume Set Configuration entry : invalid global directory", 0 },
+	{ "DDPRECSIZNOTNUM", "Maximum record size is not numeric", 0 },
+	{ "DDPOUTMSG2BIG", "DDP message too big to be accommodated in outbound buffer", 0 },
+	{ "DDPNOSERVER", "DDP Server not running on local node", 0 },
+	{ "MUTEXRELEASED", "Process !UL [0x!XL] has released the critical section for database !AD to avoid deadlock. $TLEVEL: !UL  t_tries: !UL", 6 },
+	{ "JNLCRESTATUS", "!AD at line !UL for journal file !AD, database file !AD encountered error", 7 },
+	{ "ZBREAKFAIL", "Could not set breakpoint at !AD due to insufficient memory", 2 },
+	{ "DLLVERSION", "Routine !AD in library !AD was compiled with an incompatible version of GT.M.  Recompile with the current version and re-link.", 4 },
+	{ "INVZROENT", "!AD is neither a directory nor an object library(DLL)", 2 },
+	{ "DDPLOGERR", "!AD: !AD", 4 },
+	{ "GETSOCKNAMERR", "Getting the socket name failed from getsockname(): (errno==!UL) !AD", 3 },
+	{ "INVGTMEXIT", "Inappropriate invocation of gtm_exit. gtm_exit cannot be invoked from external calls.", 0 },
+	{ "CIMAXPARAM", "Exceeded maximum number of parameters in the call-in table entry. An M routine cannot accept more than 32 parameters.", 0 },
+	{ "CITPNESTED", "Call-ins can not be used inside a TP transaction", 0 },
+	{ "CIMAXLEVELS", "Too many nested Call-ins. Nested resources exhausted at level !UL.", 1 },
+	{ "JOBINTRRETHROW", "Job interrupt redelivered", 0 },
+	{ "STARFILE", "Star(*) argument cannot be specified with !AD", 2 },
+	{ "NOSTARFILE", "Only star(*) argument can be specified with !AD", 2 },
+	{ "MUJNLSTAT", "!AD at !AD", 4 },
+	{ "JNLTPNEST", "Mupip journal command found nested TP transactions for journal file !AD at offset 0x!XL at transaction number 0x!16 at XQ", 4 },
+	{ "REPLOFFJNLON", "Replication state for database file !AD is OFF but journaling state is enabled", 2 },
+	{ "FILEDELFAIL", "Deletion of file !AD failed", 2 },
+	{ "INVQUALTIME", "Invalid time qualifier value.  Specify as !AD=delta_or_absolute_time.", 2 },
+	{ "NOTPOSITIVE", "!AD qualifier must be given a value greater than zero", 2 },
+	{ "INVREDIRQUAL", "Invalid REDIRECT qualifier value.  !AD", 2 },
+	{ "INVERRORLIM", "Invalid ERROR_LIMIT qualifier value.  Must be at least zero", 0 },
+	{ "INVIDQUAL", "Invalid ID qualifier value !AD", 2 },
+	{ "INVTRNSQUAL", "Invalid TRANSACTION qualifier.  Specify only one of TRANSACTION=[NO]SET or TRANSACTION=[NO]KILL.", 0 },
+	{ "JNLNOBIJBACK", "MUPIP JOURNAL BACKWARD cannot continue as journal file !AD does not have before image journaling", 2 },
+	{ "SETREG2RESYNC", "Setting resync sequence number 0x!16 at XQ to region sequence number 0x!16 at XQ for database !AD", 4 },
+	{ "JNLALIGNTOOSM", "Alignsize !UL (bytes) is too small for a block size of !UL (bytes) for !AD !AD.  Using alignsize of !UL (bytes) instead.", 7 },
+	{ "JNLFILEOPNERR", "Error opening journal file !AD", 2 },
+	{ "JNLFILECLOSERR", "Error closing journal file !AD", 2 },
+	{ "REPLSTATEOFF", "MUPIP JOURNAL -ROLLBACK -BACKWARD cannot proceed as database !AD does not have replication ON", 2 },
+	{ "MUJNLPREVGEN", "Previous generation journal file !AD included for database file !AD", 4 },
+	{ "MUPJNLINTERRUPT", "Database file !AD indicates interrupted MUPIP JOURNAL command.  Restore from backup for forward recover/rollback.", 2 },
+	{ "ROLLBKINTERRUPT", "Database file !AD indicates interrupted ROLLBACK.  Reissue the MUPIP JOURNAL ROLLBACK command.", 2 },
+	{ "RLBKJNSEQ", "Journal seqno of the instance after rollback is !@ZQ [0x!16 at XQ]", 2 },
+	{ "REPLRECFMT", "Replication journal record format error encountered", 0 },
+	{ "PRIMARYNOTROOT", "Attempted operation not valid on non-root primary instance !AD", 2 },
+	{ "DBFRZRESETFL", "Freeze release failed on database file !AD", 2 },
+	{ "JNLCYCLE", "Journal file !AD causes cycle in the journal file generations of database file !AD", 4 },
+	{ "JNLPREVRECOV", "Journal file has nonzero value in prev_recov_end_of_data field", 0 },
+	{ "RESOLVESEQNO", "Resolving until sequence number !@ZQ [0x!16 at XQ]", 2 },
+	{ "BOVTNGTEOVTN", "Journal file !AD has beginning transaction [0x!16 at XQ] which is greater than end transaction [0x!16 at XQ]", 4 },
+	{ "BOVTMGTEOVTM", "Journal file !AD has beginning timestamp [0x!16 at XQ] greater than end timestamp [0x!16 at XQ]", 4 },
+	{ "BEGSEQGTENDSEQ", "Journal file !AD has beginning sequence number [0x!16 at XQ] greater than end sequence number [0x!16 at XQ]", 4 },
+	{ "DBADDRALIGN", "Database file !AD, element location 0x!XJ: blk = 0x!XL: [!AD] control 0x!XJ was unaligned relative to base 0x!XJ and element size 0x!XL", 9 },
+	{ "DBWCVERIFYSTART", "Database file !AD, write cache verification started by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5 },
+	{ "DBWCVERIFYEND", "Database file !AD, write cache verification finished by pid !UL [0x!XL] at transaction number 0x!16 at XQ", 5 },
+	{ "MUPIPSIG", "!AD (signal !UL) issued from process !UL [0x!XL] to process !UL [0x!XL]", 7 },
+	{ "HTSHRINKFAIL", "Hash table compaction failed to allocate new smaller table due to lack of memory", 0 },
+	{ "STPEXPFAIL", "Stringpool expansion failed. It could not expand to !UL bytes.", 1 },
+	{ "DBBTUWRNG", "The blocks-to-upgrade file-header field is incorrect. Expected 0x!XL, found 0x!XL", 2 },
+	{ "DBBTUFIXED", "The blocks-to-upgrade file-header field has been changed to the correct value", 0 },
+	{ "DBMAXREC2BIG", "Maximum record size (!UL) is too large for this block size (!UL) - Maximum is !UL", 3 },
+	{ "DBCSCNNOTCMPLT", "Specified DBCERTIFY SCAN output file is not complete - Rerun scan", 0 },
+	{ "DBCBADFILE", "Source file !AD does not appear to have been generated by DBCERTIFY SCAN - rerun SCAN or specify correct file", 2 },
+	{ "DBCNOEXTND", "Unable to extend database !AD", 2 },
+	{ "DBCINTEGERR", "Encountered integrity error in database !AD", 2 },
+	{ "DBMINRESBYTES", "Minimum RESERVED BYTES value required for certification/upgrade is !UL - Currently is !UL", 2 },
+	{ "DBCNOTSAMEDB", "Database has been moved or restored since DBCERTIFY SCAN - Rerun scan", 0 },
+	{ "DBCDBCERTIFIED", "Database !AD has been certified for use with !AD", 4 },
+	{ "DBCMODBLK2BIG", "Block 0x!XL has been modified since DBCERTIFY SCAN but is still too large or now has an earlier TN than in the scan phase - Rerun scan phase", 1 },
+	{ "DBCREC2BIG", "Record with key !AD is length !UL in block 0x!XL which is greater than the maximum length !UL in database !AD", 7 },
+	{ "DBCCMDFAIL", "Executed command failed with return code !SL: !AD which executed !AD !AD", 7 },
+	{ "DBCKILLIP", "Cannot proceed with kill in progress indicator set for database !AD -- Run MUPIP INTEG first", 2 },
+	{ "DBCNOFINISH", "DBCERTIFY unable to finish all requested actions", 0 },
+	{ "DYNUPGRDFAIL", "Unable to dynamically upgrade block 0x!XL in database !AD due to lack of free space in block", 3 },
+	{ "MMNODYNDWNGRD", "Unable to use dynamic downgrade with MM access method for region !AD. Use BG access method for downgrade", 2 },
+	{ "MMNODYNUPGRD", "Unable to use MM access method for region !AD until all database blocks are upgraded", 2 },
+	{ "MUDWNGRDNRDY", "Database !AD is not ready to downgrade - still !UL database blocks to downgrade", 3 },
+	{ "MUDWNGRDTN", "Transaction number 0x!16 at XQ in database !AD is too big for MUPIP [REORG] DOWNGRADE. Renew database with MUPIP INTEG TN_RESET", 3 },
+	{ "MUDWNGRDNOTPOS", "Start VBN value is [!UL] while downgraded GT.M version can support only [!UL]. Downgrade not possible", 2 },
+	{ "MUUPGRDNRDY", "Database !AD has not been certified as being ready to upgrade to !AD format", 4 },
+	{ "TNWARN", "Database file !AD has 0x!16 at XQ more transactions to go before reaching the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 4 },
+	{ "TNTOOLARGE", "Database file !AD has reached the transaction number limit (0x!16 at XQ). Renew database with MUPIP INTEG TN_RESET", 3 },
+	{ "SHMPLRECOV", "Shared memory pool block recovery invoked for region !AD", 2 },
+	{ "MUNOSTRMBKUP", "Database !AD has a block size larger than !UL and thus cannot use stream (incremental) backup", 3 },
+	{ "EPOCHTNHI", "At the EPOCH record at offset !UL of !AD transaction number [0x!16 at XQ] is higher than database transaction number [0x!16 at XQ]", 5 },
+	{ "CHNGTPRSLVTM", "Mupip will change tp_resolve_time from !UL to !UL because expected EPOCH or EOF record was not found in Journal File !AD", 4 },
+	{ "JNLUNXPCTERR", "Unexpected error encountered for Journal !AD at disk address 0x!XL", 3 },
+	{ "OMISERVHANG", "GTCM OMI server is hung", 0 },
+	{ "RSVDBYTE2HIGH", "Record size (!UL) is greater than the maximum allowed for region !AD with Block size (!UL) and Reserved bytes (!UL)", 5 },
+	{ "BKUPTMPFILOPEN", "Open of backup temporary file !AD failed", 2 },
+	{ "BKUPTMPFILWRITE", "Write to backup temporary file !AD failed", 2 },
+	{ "VMSMEMORY2", "Central storage exhausted during allocation of dynamic file descriptor with !UL bytes - check page file quota and page file size", 1 },
+	{ "LOADBGSZ2", "Load error: BEGIN too large.  No records loaded.", 0 },
+	{ "LOADEDSZ2", "Load error: END too large.  No records loaded.", 0 },
+	{ "REPLINSTMISMTCH", "Process has replication instance file !AD (jnlpool shmid = !UL) open but database !AD is bound to instance file !AD (jnlpool shmid = !UL)", 8 },
+	{ "REPLINSTREAD", "Error reading [0x!XL] bytes at offset [0x!16 at XQ] from replication instance file !AD", 4 },
+	{ "REPLINSTDBMATCH", "Replication instance file !AD has seqno [0x!16 at XQ] while database has a different seqno [0x!16 at XQ]", 4 },
+	{ "REPLINSTNMSAME", "Primary and Secondary instances have the same replication instance name !AD", 2 },
+	{ "REPLINSTNMUNDEF", "Replication instance name not defined", 0 },
+	{ "REPLINSTNMLEN", "Replication instance name !AD should be 1 to 15 characters long", 2 },
+	{ "REPLINSTNOHIST", "History information for !AD not found in replication instance file !AD", 4 },
+	{ "REPLINSTSECLEN", "Secondary replication instance name !AD should be 1 to 15 characters long", 2 },
+	{ "REPLINSTSECMTCH", "Secondary replication instance name !AD sent by receiver does not match !AD specified at source server startup", 4 },
+	{ "REPLINSTSECNONE", "No information found for secondary instance !AD in instance file !AD", 4 },
+	{ "REPLINSTSECUNDF", "Secondary replication instance name not defined", 0 },
+	{ "REPLINSTSEQORD", "!AD has seqno [0x!16 at XQ] which is less than last record seqno [0x!16 at XQ] in replication instance file !AD", 6 },
+	{ "REPLINSTSTNDALN", "Could not get exclusive access to replication instance file !AD", 2 },
+	{ "REPLREQROLLBACK", "Replication instance file !AD indicates abnormal shutdown or an incomplete ROLLBACK. Run MUPIP JOURNAL ROLLBACK first", 2 },
+	{ "REQROLLBACK", "Error accessing database !AD.  Run MUPIP JOURNAL ROLLBACK on cluster node !AD.", 4 },
+	{ "INVOBJFILE", "Cannot ZLINK object file !AD due to unexpected format", 2 },
+	{ "SRCSRVEXISTS", "Source server for secondary instance !AD is already running with pid !UL", 3 },
+	{ "SRCSRVNOTEXIST", "Source server for secondary instance !AD is not alive", 2 },
+	{ "SRCSRVTOOMANY", "Cannot start more than !UL source servers in replication instance !AD", 3 },
+	{ "JNLPOOLBADSLOT", "Source server slot for secondary instance !AD is in an inconsistent state. Pid = [!UL], State = [!UL], SlotIndex = [!UL]", 5 },
+	{ "NOENDIANCVT", "Unable to convert the endian format of file !AD due to !AD", 4 },
+	{ "ENDIANCVT", "Converted database file !AD from !AZ endian to !AZ endian on a !AZ endian system", 5 },
+	{ "DBENDIAN", "Database file !AD is !AZ endian on a !AZ endian system", 4 },
+	{ "BADCHSET", "!AD is not a valid character mapping in this context", 2 },
+	{ "BADCASECODE", "!AD is not a valid case conversion code", 2 },
+	{ "BADCHAR", "$ZCHAR(!AD) is not a valid character in the !AD encoding form", 4 },
+	{ "DLRCILLEGAL", "!_!AD!/!_!_!_Illegal $CHAR() value !UL", 3 },
+	{ "NONUTF8LOCALE", "Locale has character encoding (!AD) which is not compatible with UTF-8 character set", 2 },
+	{ "INVDLRCVAL", "Invalid $CHAR() value !UL", 1 },
+	{ "DBMISALIGN", "Database file !AD has !UL blocks which does not match alignment rules. Reconstruct the database from a backup or extend it by at least !UL blocks.", 4 },
+	{ "LOADINVCHSET", "Extract file CHSET (!AD) is incompatible with gtm_chset", 2 },
+	{ "DLLCHSETM", "Routine !AD in library !AD was compiled with CHSET=M which is different from $ZCHSET. Recompile with CHSET=UTF-8 and re-link.", 4 },
+	{ "DLLCHSETUTF8", "Routine !AD in library !AD was compiled with CHSET=UTF-8 which is different from $ZCHSET. Recompile with CHSET=M and re-link.", 4 },
+	{ "BOMMISMATCH", "!AD Byte Order Marker found when !AD character set specified", 4 },
+	{ "WIDTHTOOSMALL", "WIDTH should be at least 2 when device ICHSET or OCHSET is UTF-8 or UTF-16", 0 },
+	{ "SOCKMAX", "Attempt to exceed maximum sockets (!UL) for the SOCKET device", 1 },
+	{ "PADCHARINVALID", "PAD deviceparameter cannot be greater than 127", 0 },
+	{ "ZCNOPREALLOUTPAR", "Parameter !UL in external call !AD.!AD is an output only parameter requiring pre-allocation", 5 },
+	{ "SVNEXPECTED", "Special variable expected in this context", 0 },
+	{ "SVNONEW", "Cannot NEW this special variable", 0 },
+	{ "ZINTDIRECT", "Attempt to enter direct mode from $ZINTERRUPT", 0 },
+	{ "ZINTRECURSEIO", "Attempt to do IO to the active device in $ZINTERRUPT", 0 },
+	{ "MRTMAXEXCEEDED", "Maximum value of !UL for SOCKET device parameter MOREREADTIME exceeded", 1 },
+	{ "JNLCLOSED", "Journaling closed for database file !AD at transaction number 0x!16 at XQ", 3 },
+	{ "RLBKNOBIMG", "ROLLBACK cannot proceed as database !AD has NOBEFORE_IMAGE journaling", 2 },
+	{ "RLBKJNLNOBIMG", "Journal file !AD has NOBEFORE_IMAGE journaling", 2 },
+	{ "RLBKLOSTTNONLY", "ROLLBACK will only create a lost transaction file (database and journal files will not be modified)", 0 },
+	{ "KILLBYSIGSINFO3", "!AD process !UL has been killed by a signal !UL accessing vaddress 0x!XJ", 5 },
+	{ "GTMSECSHRTMPPATH", "gtmsecshr path is !AD", 2 },
+	{ "GTMERREXIT", "GTM image has exited with errors", 0 },
+	{ "INVMEMRESRV", "Could not allocate GT.M memory reserve (!AD)", 2 },
+	{ "OPCOMMISSED", "!UL errors and !UL MBFULLs sending prior operator messages", 2 },
+	{ "COMMITWAITSTUCK", "Pid !UL timed out after waiting !UL minute(s) for !UL concurrent GT.M process(es) to finish commits in database file !AD", 5 },
+	{ "COMMITWAITPID", "Pid !UL waited !UL minute(s) for pid !UL to finish commits to block 0x!XL in database file !AD", 6 },
+	{ "UPDREPLSTATEOFF", "Error replicating global ^!AD as it maps to database !AD which has replication turned OFF", 4 },
+	{ "LITNONGRAPH", "M standard requires graphics in string literals; found non-printable: $ZCHAR(!AD)", 2 },
+	{ "DBFHEADERR8", "Database file !AD: control problem: !AD was 0x!16 at XQ expecting 0x!16 at XQ", 6 },
+	{ "MMBEFOREJNL", "BEFORE image journaling cannot be set with MM access method in database file !AD", 2 },
+	{ "MMNOBFORRPL", "Replication cannot be used in database file !AD which uses MM access method and NOBEFORE image journaling", 2 },
+	{ "KILLABANDONED", "Abandoned kills counter is greater than zero for file !AD, !AD", 4 },
+	{ "BACKUPKILLIP", "Kill in progress indicator is set for file !AD, backup database could have incorrectly marked busy integrity errors", 2 },
+	{ "LOGTOOLONG", "Environment variable !AD is too long. Maximum length allowed is !UL bytes.", 3 },
+	{ "NOALIASLIST", "Parenthetical lists of multiple arguments cannot have a preceding alias introducer or include alias (*) forms", 0 },
+	{ "ALIASEXPECTED", "Alias or alias container variable expected in this context", 0 },
+	{ "VIEWLVN", "Invalid local variable name used with VIEW/$VIEW(): !AD", 2 },
+	{ "DZWRNOPAREN", "$ZWRTACxxx is not allowed inside a parenthesized SET target", 0 },
+	{ "DZWRNOALIAS", "$ZWRTAC cannot be aliased", 0 },
+	{ "FREEZEERR", "Error while trying to !AD region !AD", 4 },
+	{ "CLOSEFAIL", "Error while closing file descriptor !SL", 1 },
+	{ "CRYPTINIT", "Could not initialize encryption library while opening encrypted file !AD. !AD", 4 },
+	{ "CRYPTOPFAILED", "Encrypt/Decrypt operation failed for file !AD. !AD", 4 },
+	{ "CRYPTDLNOOPEN", "Could not load encryption library while opening encrypted file !AD. !AD", 4 },
+	{ "CRYPTNOV4", "!AD is an encrypted database. Cannot downgrade(to V4) with Encryption option enabled.", 2 },
+	{ "CRYPTNOMM", "!AD is an encrypted database. Cannot support MM access method.", 2 },
+	{ "UNUSEDMSG1316", "Last used in V6.2-002A", 0 },
+	{ "CRYPTKEYFETCHFAILED", "Could not retrieve encryption key corresponding to file !AD. !AD", 4 },
+	{ "CRYPTKEYFETCHFAILEDNF", "Could not retrieve encryption key during !AD operation key. !AD", 4 },
+	{ "CRYPTHASHGENFAILED", "Could not generate cryptographic hash for symmetric key corresponding to file !AD. !AD", 4 },
+	{ "CRYPTNOKEY", "No encryption key specified", 0 },
+	{ "BADTAG", "Unable to use file !AD (CCSID !UL) with CCSID !UL", 4 },
+	{ "ICUVERLT36", "!AD !UL.!UL. ICU version greater than or equal to 3.6 should be used", 4 },
+	{ "ICUSYMNOTFOUND", "Symbol !AD not found in the ICU libraries. ICU needs to be built with symbol-renaming disabled or gtm_icu_version environment variable needs to be properly specified", 2 },
+	{ "STUCKACT", "Process stuck script invoked: !AD : !AD", 4 },
+	{ "CALLINAFTERXIT", "After a gtm_exit, a process can never create a valid GT.M context", 0 },
+	{ "LOCKSPACEFULL", "No more room for LOCK slots on database file !AD", 2 },
+	{ "IOERROR", "Error occured while doing !AD in !AD operation -- called from module !AD at line !UL", 7 },
+	{ "MAXSSREACHED", "Maximum snapshots - !UL - for region !AD reached. Please wait for the existing snapshots to complete before starting a new one.", 3 },
+	{ "SNAPSHOTNOV4", "Cannot downgrade (to V4) while snapshots are in progress. Currently !UL snapshots are in progress for region !AD.", 3 },
+	{ "SSV4NOALLOW", "Database snapshots are supported only on fully upgraded V5 databases. !AD has V4 format blocks.", 2 },
+	{ "SSTMPDIRSTAT", "Cannot access temporary directory !AD", 2 },
+	{ "SSTMPCREATE", "Cannot create the temporary file in directory !AD for the requested snapshot", 2 },
+	{ "JNLFILEDUP", "Journal files !AD and !AD are the same", 4 },
+	{ "SSPREMATEOF", "Premature end of file while reading block !UL of size: !UL bytes at offset: !UL from !AD", 5 },
+	{ "SSFILOPERR", "Error while doing !AD operation on file !AD", 4 },
+	{ "REGSSFAIL", "Process !UL encountered error contributing to the snapshot for region !AD - the snapshot is no longer valid", 3 },
+	{ "SSSHMCLNUPFAIL", "Error while doing snapshot shared memory cleanup. Operation -- !AD. Identifier -- !UL", 3 },
+	{ "SSFILCLNUPFAIL", "Error while unlinking snapshot file -- !AD", 2 },
+	{ "SETINTRIGONLY", "ISV !AD cannot be modified outside of the trigger environment", 2 },
+	{ "MAXTRIGNEST", "Maximum trigger nesting level (!UL) exceeded", 1 },
+	{ "TRIGCOMPFAIL", "Compilation of database trigger named !AD failed", 2 },
+	{ "NOZTRAPINTRIG", "Use of $ZTRAP in a database trigger environment ($ZTLEVEL greater than 0) is not supported", 0 },
+	{ "ZTWORMHOLE2BIG", "String length of !UL bytes exceeds maximum length of !UL bytes for $ZTWORMHOLE", 2 },
+	{ "JNLENDIANLITTLE", "Journal file !AD is LITTLE endian on a BIG endian system", 2 },
+	{ "JNLENDIANBIG", "Journal file !AD is BIG endian on a LITTLE endian system", 2 },
+	{ "TRIGINVCHSET", "Trigger !AD for global ^!AD was created with CHSET=!AD which is different from the current $ZCHSET of this process", 6 },
+	{ "TRIGREPLSTATE", "Trigger cannot update replicated database file !AD since triggering update was not replicated", 2 },
+	{ "GVDATAGETFAIL", "Global variable DATAGET sub-operation (in KILL function) failed. Failure code: !AD.", 2 },
+	{ "TRIG2NOTRIG", "Sending transaction sequence number 0x!16 at XQ which used triggers to a replicator that does not support triggers", 1 },
+	{ "ZGOTOINVLVL", "ZGOTO in a trigger running in !AD cannot ZGOTO level !UL", 3 },
+	{ "TRIGTCOMMIT", "TCOMMIT at $ZTLEVEL=!UL not allowed as corresponding TSTART was done at lower $ZTLEVEL=!UL", 2 },
+	{ "TRIGTLVLCHNG", "Detected a net transaction level ($TLEVEL) change during trigger !AD. Transaction level must be the same at exit as when the trigger started", 2 },
+	{ "TRIGNAMEUNIQ", "Unable to make trigger name !AD unique beyond !UL versions already loaded", 3 },
+	{ "ZTRIGINVACT", "Missing or invalid parameter in position !UL given to $ZTRIGGER()", 1 },
+	{ "INDRCOMPFAIL", "Compilation of indirection failed", 0 },
+	{ "QUITALSINV", "QUIT * return when the extrinsic was not invoked with SET *", 0 },
+	{ "PROCTERM", "!AD process termination due to !AD (return code !UL) from !AD", 7 },
+	{ "SRCLNNTDSP", "Source lines exceeding !UL character width are not displayed", 1 },
+	{ "ARROWNTDSP", "Unable to display ^----- due to length of source line", 0 },
+	{ "TRIGDEFBAD", "Trigger initialization failed for global ^!AD. Error while processing ^#t(\"!AD\",!AD)", 6 },
+	{ "TRIGSUBSCRANGE", "Trigger definition for global ^!AD has one or more invalid subscript range(s) : !AD", 4 },
+	{ "TRIGDATAIGNORE", "Ignoring trigger data !AD. Use MUPIP TRIGGER to load trigger definitions", 2 },
+	{ "TRIGIS", "!_!_Trigger name: !AD", 2 },
+	{ "TCOMMITDISALLOW", "TROLLBACK required after an unhandled error in trigger context", 0 },
+	{ "SSATTACHSHM", "Error while attaching to shared memory identifier !UL", 1 },
+	{ "TRIGDEFNOSYNC", "Global ^!AD has triggers defined on the !AD instance but none on the !AD instance. Current journal sequence number is 0x!16 at XQ", 7 },
+	{ "TRESTMAX", "TRESTART not allowed in a final TP retry more than once", 0 },
+	{ "ZLINKBYPASS", "ZLINK of !AD bypassed - Identical routine already linked", 2 },
+	{ "GBLEXPECTED", "Global variable reference expected in this context", 0 },
+	{ "GVZTRIGFAIL", "ZTRIGGER of a global variable failed.  Failure code: !AD.", 2 },
+	{ "MUUSERLBK", "Abnormal shutdown of replication-enabled database !AD detected", 2 },
+	{ "SETINSETTRIGONLY", "ISV !AD can only be modified in a 'SET' type trigger", 2 },
+	{ "DZTRIGINTRIG", "$ZTRIGGER() is not allowed inside trigger context. Trigger name: !AD", 2 },
+	{ "UNUSEDMSG1374", "SECNODZTRIGINTP : Last used in V6.2-000", 0 },
+	{ "BOOLSIDEFFECT", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in Boolean expression", 0 },
+	{ "DBBADUPGRDSTATE", "Correcting conflicting values for fields describing database version upgrade state in the file header for region !AD (!AD) - make fresh backups with new journal files immediately.", 4 },
+	{ "WRITEWAITPID", "PID !UL waited !UL minute(s) for PID !UL to finish writing block 0x!XL in database file !AD", 6 },
+	{ "ZGOCALLOUTIN", "ZGOTO level 0 with entry ref not valid when using call-ins", 0 },
+	{ "REPLNOXENDIAN", "!AD side is running on a GT.M version that does not support cross-endian replication. Upgrade the !AD side to at least V5.3-003 to support cross-endian replication. Cannot continue", 4 },
+	{ "REPLXENDIANFAIL", "!AD side encountered error while doing endian conversion at journal sequence number 0x!16 at XQ", 3 },
+	{ "ZGOTOINVLVL2", "ZGOTO 0:entryref is not valid on VMS (UNLINK is a UNIX only feature)", 0 },
+	{ "GTMSECSHRCHDIRF", "gtmsecshr unable to chdir to its temporary directory (!AD)", 2 },
+	{ "JNLORDBFLU", "Error flushing database blocks to !AD. See related messages in the operator log", 2 },
+	{ "ZCCLNUPRTNMISNG", "External call: Cleanup routine name missing. Cannot continue", 0 },
+	{ "ZCINVALIDKEYWORD", "External call: Invalid keyword found. Cannot continue", 0 },
+	{ "UNUSEDMSG1386", "REPLNOMULTILINETRG : Last used in V6.2-000", 0 },
+	{ "DBSHMNAMEDIFF", "Database file !AD points to shared memory (id = !UL) which points to a different database file !AZ", 4 },
+	{ "SHMREMOVED", "Removed Shared Memory id !UL corresponding to file !AD", 3 },
+	{ "DEVICEWRITEONLY", "Cannot read from a write-only device", 0 },
+	{ "ICUERROR", "ICU returned status !UL which is either unrecognized or inconsistent with the operating context", 1 },
+	{ "ZDATEBADDATE", "$ZDATE() date argument !AD is less than -365 (the $HOROLOG value for 01-JAN-1840) or greater than 364570088 (the $HOROLOG value for 31-DEC-999999)", 2 },
+	{ "ZDATEBADTIME", "$ZDATE() time argument !AD is less than 0 or greater than 86399 (the $HOROLOG value for a second before midnight)", 2 },
+	{ "COREINPROGRESS", "Previous core attempt failed; core generation bypassed", 0 },
+	{ "MAXSEMGETRETRY", "Failed to get ftok semaphore after !UL tries because it is being continually deleted", 1 },
+	{ "JNLNOREPL", "Replication not enabled for journal file !AD (database file !AD)", 4 },
+	{ "JNLRECINCMPL", "Incomplete journal record at disk address 0x!XL for file !AD while attempting to read seqno 0x!16 at XQ", 4 },
+	{ "JNLALLOCGROW", "Increased Journal ALLOCATION from [!UL blocks] to [!UL blocks] to match AUTOSWITCHLIMIT for !AZ !AD", 5 },
+	{ "INVTRCGRP", "Invalid trace group specified in $gtm_trace_groups: !AD", 2 },
+	{ "MUINFOUINT6", "!AD : !UL [0x!XL] ; $H=!UL,!UL", 6 },
+	{ "NOLOCKMATCH", "No matching locks were found in !AD", 2 },
+	{ "BADREGION", "Region is not BG, MM, or CM", 0 },
+	{ "LOCKSPACEUSE", "Estimated free lock space: !UL% of !UL pages", 2 },
+	{ "JIUNHNDINT", "An error during $ZINTERRUPT processing was not handled: !AD", 2 },
+	{ "GTMASSERT2", "!AD - Assert failed !AD line !UL for expression (!AD)", 7 },
+	{ "ZTRIGNOTRW", "ZTRIGGER cannot operate on read-only region !AD", 2 },
+	{ "TRIGMODREGNOTRW", "Trigger(s) cannot be added/changed/deleted/upgraded because region !AD is read-only", 2 },
+	{ "INSNOTJOINED", "Replicating Instance !AD is not a member of the same Group as Instance !AD", 4 },
+	{ "INSROLECHANGE", "Supplementary Instance !AD and non-Supplementary Instance !AD belong to the same Group", 4 },
+	{ "INSUNKNOWN", "Supplementary Instance !AD has no instance definition for non-Supplementary Instance !AD", 4 },
+	{ "NORESYNCSUPPLONLY", "NORESYNC only supported for Supplementary Instances", 0 },
+	{ "NORESYNCUPDATERONLY", "NORESYNC qualifier only allowed on a Supplementary Instance which allows local updates", 0 },
+	{ "NOSUPPLSUPPL", "Instance !AD is configured to perform local updates so it cannot receive from Supplementary Instance !AD", 4 },
+	{ "REPL2OLD", "Instance !AD uses a GT.M version that does not support connection with the current version on instance !AD", 4 },
+	{ "EXTRFILEXISTS", "Error opening output file: !AD -- File exists", 2 },
+	{ "MUUSERECOV", "Abnormal shutdown of journaled database !AD detected", 2 },
+	{ "SECNOTSUPPLEMENTARY", "!AD is a Supplementary Instance and so cannot act as a source to non-Supplementary Instance !AD ", 4 },
+	{ "SUPRCVRNEEDSSUPSRC", "Instance !AD is not configured to perform local updates so it cannot act as a receiver for non-Supplementary Instance !AD", 4 },
+	{ "PEERPIDMISMATCH", "Local socket peer with PID=!UL does not match specified PID=!UL", 2 },
+	{ "SETITIMERFAILED", "A setitimer() call returned an error status of !UL", 1 },
+	{ "UPDSYNC2MTINS", "Can only UPDATERESYNC with an empty instance file", 0 },
+	{ "UPDSYNCINSTFILE", "Error with instance file name specified in UPDATERESYNC qualifier", 0 },
+	{ "REUSEINSTNAME", "Error with instance name specified in REUSE qualifier", 0 },
+	{ "RCVRMANYSTRMS", "Receiver server now connecting to source stream [!2UL] but had previously connected to a different stream [!2UL]", 2 },
+	{ "RSYNCSTRMVAL", "RSYNC_STRM qualifier can only take on a value from 0 to 15", 0 },
+	{ "RLBKSTRMSEQ", "Stream journal seqno of the instance after rollback is Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3 },
+	{ "RESOLVESEQSTRM", "Resolving until stream sequence number Stream !2UL : Seqno !@ZQ [0x!16 at XQ]", 3 },
+	{ "REPLINSTDBSTRM", "Replication instance file !AD has seqno [0x!16 at XQ] for Stream !2UL while database has a different seqno [0x!16 at XQ]", 5 },
+	{ "RESUMESTRMNUM", "Error with stream number specified in RESUME qualifier", 0 },
+	{ "ORLBKSTART", "ONLINE ROLLBACK started on instance !AD corresponding to !AD", 4 },
+	{ "ORLBKTERMNTD", "ONLINE ROLLBACK terminated on instance !AD corresponding to !AD with the above errors", 4 },
+	{ "ORLBKCMPLT", "ONLINE ROLLBACK completed successfully on instance !AD corresponding to !AD", 4 },
+	{ "ORLBKNOSTP", "ONLINE ROLLBACK proceeding with database updates. MUPIP STOP will no longer be allowed", 0 },
+	{ "ORLBKFRZPROG", "!AD : waiting for FREEZE on region !AD (!AD) to clear", 6 },
+	{ "ORLBKFRZOVER", "!AD : FREEZE on region !AD (!AD) cleared", 6 },
+	{ "ORLBKNOV4BLK", "Region !AD (!AD) has V4 format blocks. Database upgrade required. ONLINE ROLLBACK cannot continue", 4 },
+	{ "DBROLLEDBACK", "Concurrent ONLINE ROLLBACK detected on one or more regions. The current operation is no longer valid", 0 },
+	{ "DSEWCREINIT", "Database cache reinitialized by DSE for region !AD", 2 },
+	{ "MURNDWNOVRD", "OVERRIDE qualifier used with MUPIP RUNDOWN on database file !AD", 2 },
+	{ "REPLONLNRLBK", "ONLINE ROLLBACK detected. Starting afresh", 0 },
+	{ "SRVLCKWT2LNG", "PID !UL is holding the source server lock. Waited for !UL minute(s). Now exiting", 2 },
+	{ "IGNBMPMRKFREE", "Ignoring bitmap free-up operation for region !AD (!AD) due to concurrent ONLINE ROLLBACK", 4 },
+	{ "PERMGENFAIL", "Failed to determine access permissions to use for creation of !AD for file !AD", 4 },
+	{ "PERMGENDIAG", "Permissions: Proc(uid:!UL,gid:!UL), DB File(uid:!UL,gid:!UL,perm:!AD), Lib File(gid:!UL,perm:!AD), Group Mem(opener:!UL,owner:!UL)", 11 },
+	{ "MUTRUNC1ATIME", "Process with PID !UL already performing truncate in region !AD", 3 },
+	{ "MUTRUNCBACKINPROG", "Truncate detected concurrent backup in progress for region !AD", 2 },
+	{ "MUTRUNCERROR", "Truncate of region !AD encountered service error !AD", 4 },
+	{ "MUTRUNCFAIL", "Truncate failed after reorg", 0 },
+	{ "MUTRUNCNOSPACE", "Region !AD has insufficient space to meet truncate target percentage of !UL", 3 },
+	{ "MUTRUNCNOTBG", "Region !AD does not have access method BG ", 2 },
+	{ "MUTRUNCNOV4", "Region !AD is not fully upgraded from V4 format.", 2 },
+	{ "MUTRUNCPERCENT", "Truncate threshold percentage should be from 0 to 99", 0 },
+	{ "MUTRUNCSSINPROG", "Truncate detected concurrent snapshot in progress for region !AD", 2 },
+	{ "MUTRUNCSUCCESS", "Database file !AD truncated from 0x!XL blocks to 0x!XL at transaction 0x!16 at XQ", 5 },
+	{ "RSYNCSTRMSUPPLONLY", "RSYNC_STRM qualifier only supported for Supplementary Instances", 0 },
+	{ "STRMNUMIS", "Stream # is !2UL", 1 },
+	{ "STRMNUMMISMTCH1", "Stream !2UL exists on the receiver instance file but is unknown on the source instance", 1 },
+	{ "STRMNUMMISMTCH2", "Stream !2UL exists on the source instance file but is unknown on the receiver instance", 1 },
+	{ "STRMSEQMISMTCH", "Unable to play update on Stream !2UL with seqno [0x!16 at XQ] as receiving instance has a different stream seqno [0x!16 at XQ]", 3 },
+	{ "LOCKSPACEINFO", "Region: !AD: processes on queue: !UL/!UL; LOCK slots in use: !UL/!UL; name space!ADfull", 8 },
+	{ "JRTNULLFAIL", "Applying NULL journal record failed.  Failure code: !AD.", 2 },
+	{ "LOCKSUB2LONG", "Following subscript is !UL bytes long which exceeds 255 byte limit.", 1 },
+	{ "RESRCWAIT", "Waiting briefly for the !AD semaphore for region !AD (!AD) was held by PID !UL (Sem. ID: !UL).", 8 },
+	{ "RESRCINTRLCKBYPAS", "!AD with PID !UL bypassing the !AD semaphore for region !AD (!AD) was held by PID !UL.", 10 },
+	{ "DBFHEADERRANY", "Database file !AD: control problem: !AD was 0x!XJ expecting 0x!XJ", 6 },
+	{ "REPLINSTFROZEN", "Instance !AZ is now Frozen", 1 },
+	{ "REPLINSTFREEZECOMMENT", "Freeze Comment: !AZ", 1 },
+	{ "REPLINSTUNFROZEN", "Instance !AZ is now Unfrozen", 1 },
+	{ "DSKNOSPCAVAIL", "Attempted write to file !AD failed due to lack of disk space. Retrying indefinitely.", 2 },
+	{ "DSKNOSPCBLOCKED", "Retry of write to file !AD suspended due to new instance freeze. Waiting for instance to be unfrozen.", 2 },
+	{ "DSKSPCAVAILABLE", "Write to file !AD succeeded after out-of-space condition cleared", 2 },
+	{ "ENOSPCQIODEFER", "Write to file !AD deferred due to lack of disk space", 2 },
+	{ "CUSTOMFILOPERR", "Error while doing !AD operation on file !AD", 4 },
+	{ "CUSTERRNOTFND", "Error mnemonic !AD specified in custom errors file is not valid for this version of GT.M", 2 },
+	{ "CUSTERRSYNTAX", "Syntax error in file !AD at line number !UL", 3 },
+	{ "ORLBKINPROG", "Online ROLLBACK in progress by PID !UL in region !AD", 3 },
+	{ "DBSPANGLOINCMP", "!AD Spanning node is missing. Block no !UL of spanning node is missing", 3 },
+	{ "DBSPANCHUNKORD", "!AD Chunk of !UL blocks is out of order", 3 },
+	{ "DBDATAMX", "!AD Record too large", 2 },
+	{ "DBIOERR", "Error while doing write operation on region !AD (!AD)", 4 },
+	{ "INITORRESUME", "UPDATERESYNC on a Supplementary Instance must additionally specify INITIALIZE or RESUME", 0 },
+	{ "GTMSECSHRNOARG0", "gtmsecshr cannot identify its origin - argv[0] is null", 0 },
+	{ "GTMSECSHRISNOT", "gtmsecshr is not running as gtmsecshr but !AD - must be gtmsecshr", 2 },
+	{ "GTMSECSHRBADDIR", "gtmsecshr is not running from $gtm_dist/gtmsecshrdir or $gtm_dist cannot be determined", 0 },
+	{ "JNLBUFFREGUPD", "Journal file buffer size for region !AD has been adjusted from !UL to !UL.", 4 },
+	{ "JNLBUFFDBUPD", "Journal file buffer size for database file !AD has been adjusted from !UL to !UL.", 4 },
+	{ "LOCKINCR2HIGH", "Attempt to increment a LOCK more than !UL times", 1 },
+	{ "LOCKIS", "!_!_Resource name: !AD", 2 },
+	{ "LDSPANGLOINCMP", "Incomplete spanning node found during load!/!_!_at File offset : [0x!16 at XQ]", 1 },
+	{ "MUFILRNDWNFL2", "Database section (id = !UL) belonging to database file !AD rundown failed", 3 },
+	{ "MUINSTFROZEN", "!AD : Instance !AZ is frozen. Waiting for instance to be unfrozen before proceeding with writes to database file !AD", 5 },
+	{ "MUINSTUNFROZEN", "!AD : Instance !AZ is now Unfrozen. Continuing with writes to database file !AD", 5 },
+	{ "GTMEISDIR", "!AD : Is a directory", 2 },
+	{ "SPCLZMSG", "The following error message cannot be driven through ZMESSAGE", 0 },
+	{ "MUNOTALLINTEG", "At least one region skipped. See the earlier messages", 0 },
+	{ "BKUPRUNNING", "Process !UL is currently backing up region !AD. Cannot start another backup.", 3 },
+	{ "MUSIZEINVARG", "MUPIP SIZE : Invalid parameter value for: !AD", 2 },
+	{ "MUSIZEFAIL", "MUPIP SIZE : failed.  Failure code: !AD.", 2 },
+	{ "SIDEEFFECTEVAL", "Extrinsic ($$), External call ($&) or $INCREMENT() with potential side effects in actuallist, function arguments, non-Boolean binary operands or subscripts", 0 },
+	{ "CRYPTINIT2", "Could not initialize encryption library !AD. !AD", 4 },
+	{ "CRYPTDLNOOPEN2", "Could not load encryption library !AD. !AD", 4 },
+	{ "CRYPTBADCONFIG", "Could not retrieve data from encrypted file !AD due to bad encryption configuration. !AD", 4 },
+	{ "DBCOLLREQ", "JOURNAL EXTRACT proceeding without collation information for globals in database. !AD !AD", 4 },
+	{ "SETEXTRENV", "Database files are missing or Instance is frozen; supply the database files, wait for the freeze to lift or define gtm_extract_nocol to extract possibly incorrect collation", 0 },
+	{ "NOTALLDBRNDWN", "Not all regions were successfully rundown", 0 },
+	{ "TPRESTNESTERR", "TP restart signaled while handing error - treated as nested error - Use TROLLBACK in error handler to avoid this", 0 },
+	{ "JNLFILRDOPN", "Error opening journal file !AD for read for database file !AD", 4 },
+	{ "SEQNUMSEARCHTIMEOUT", "Timed out trying to find sequence number !@ZQ [0x!16 at XQ] in Journal File(s). See above messages for details. Source server exiting", 2 },
+	{ "FTOKKEY", "FTOK key 0x!XL", 1 },
+	{ "SEMID", "Semaphore id !UL", 1 },
+	{ "JNLQIOSALVAGE", "Journal IO lock salvaged", 0 },
+	{ "FAKENOSPCLEARED", "DEBUG: All fake ENOSPC flags were cleared !UL heartbeats ago", 1 },
+	{ "MMFILETOOLARGE", "Size of !AD region (!AD) is larger than maximum size supported for memory mapped I/O on this platform", 4 },
+	{ "BADZPEEKARG", "Missing, invalid or surplus !AD parameter for $ZPEEK()", 2 },
+	{ "BADZPEEKRANGE", "Access exception raised in memory range given to $ZPEEK()", 0 },
+	{ "BADZPEEKFMT", "$ZPEEK() value length inappropriate for selected format", 0 },
+	{ "DBMBMINCFREFIXED", "Master bitmap incorrectly marks local bitmap 0x!XL as free. Auto-corrected", 1 },
+	{ "NULLENTRYREF", "JOB command did not specify entryref", 0 },
+	{ "ZPEEKNORPLINFO", "$ZPEEK() unable to access requested replication structure", 0 },
+	{ "MMREGNOACCESS", "Region !AD (!AD) is no longer accessible. See prior error messages in the operator and application error logs", 4 },
+	{ "MALLOCMAXUNIX", "Exceeded maximum allocation defined by $gtm_max_storalloc", 0 },
+	{ "MALLOCMAXVMS", "Exceeded maximum allocation defined by GTM_MAX_STORALLOC", 0 },
+	{ "HOSTCONFLICT", "Host !AD could not open database file !AD because it is marked as already open on node !AD", 6 },
+	{ "GETADDRINFO", "Error in getting address info", 0 },
+	{ "GETNAMEINFO", "Error in getting name info", 0 },
+	{ "SOCKBIND", "Error in binding socket", 0 },
+	{ "INSTFRZDEFER", "Instance Freeze initiated by !AD error on region !AD deferred due to critical resource conflict", 4 },
+	{ "REGOPENRETRY", "Attempt to open region !AD (!AD) using startup shortcut failed due to conflicting database shutdown. Retrying...", 4 },
+	{ "REGOPENFAIL", "Failed to open region !AD (!AD) due to conflicting database shutdown activity", 4 },
+	{ "REPLINSTNOSHM", "Database !AD has no active connection to a replication journal pool", 2 },
+	{ "DEVPARMTOOSMALL", "Deviceparameter must be greater than zero (0)", 0 },
+	{ "REMOTEDBNOSPGBL", "Database region !AD contains portion of a spanning global and so cannot point to a remote file", 2 },
+	{ "NCTCOLLSPGBL", "Database region !AD contains portion of spanning global ^!AD and so cannot support non-zero numeric collation type", 4 },
+	{ "ACTCOLLMISMTCH", "Global ^!AD inherits alternative collation sequence #!UL from global directory but database file !AD contains different collation sequence #!UL for this global", 6 },
+	{ "GBLNOMAPTOREG", "Global !AD does not map to region !AD in current global directory", 4 },
+	{ "ISSPANGBL", "Operation cannot be performed on global ^!AD as it spans multiple regions in current global directory", 2 },
+	{ "TPNOSUPPORT", "Operation cannot be performed while inside of a TP transaction", 0 },
+	{ "GVSUBSERR", "Invalid subscripted global name specification in $VIEW() function", 0 },
+	{ "UNUSEDMSG1540", "TRIGNOSPANBL : Last used in V6.2-000", 0 },
+	{ "FILTERTIMEDOUT", "Replication server timed out attempting to read seqno !16 at XQ from external filter", 1 },
+	{ "TLSDLLNOOPEN", "Failed to load GT.M TLS/SSL library for secure communication", 0 },
+	{ "TLSINIT", "Failed to initialize GT.M TLS/SSL library for secure communication", 0 },
+	{ "TLSCONVSOCK", "Failed to convert Unix TCP/IP socket to TLS/SSL aware socket", 0 },
+	{ "TLSHANDSHAKE", "Connection to remote side using TLS/SSL protocol failed", 0 },
+	{ "TLSCONNINFO", "Failed to obtain information on the TLS/SSL connection", 0 },
+	{ "TLSIOERROR", "Error during TLS/SSL !AD operation", 2 },
+	{ "TLSRENEGOTIATE", "Failed to renegotiate TLS/SSL connection", 0 },
+	{ "REPLNOTLS", "!AD requested TLS/SSL communication but the !AD was either not started with TLSID qualifier or does not support TLS/SSL protocol", 4 },
+	{ "COLTRANSSTR2LONG", "Output string after collation transformation is too long", 0 },
+	{ "SOCKPASS", "Socket pass failed", 0 },
+	{ "SOCKACCEPT", "Socket accept failed", 0 },
+	{ "NOSOCKHANDLE", "No socket handle specified in WRITE /PASS", 0 },
+	{ "TRIGLOADFAIL", "MUPIP TRIGGER or $ZTRIGGER operation failed. Failure code: !AD.", 2 },
+	{ "SOCKPASSDATAMIX", "Attempt to use a LOCAL socket for both READ/WRITE and PASS/ACCEPT", 0 },
+	{ "NOGTCMDB", "!AD does not support operation on GT.CM database region: !AD", 4 },
+	{ "NOUSERDB", "!AD does not support operation on non-GDS format region: !AD", 4 },
+	{ "DSENOTOPEN", "DSE could not open region !AD - see DSE startup error message for cause", 2 },
+	{ "ZSOCKETATTR", "Attribute \"!AD\" invalid for $ZSOCKET function", 2 },
+	{ "ZSOCKETNOTSOCK", "$ZSOCKET function called but device is not a socket", 0 },
+	{ "CHSETALREADY", "CHSET !AD already specified for socket device", 2 },
+	{ "DSEMAXBLKSAV", "DSE cannot SAVE another block as it already has the maximum of !UL", 1 },
+	{ "BLKINVALID", "!XL is not a valid block as database file !AD has !XL total blocks", 4 },
+	{ "CANTBITMAP", "Can't perform this operation on a bit map (block at a 200 hexadecimal boundary)", 0 },
+	{ "AIMGBLKFAIL", "After image build for block !XL in region !AD failed in DSE or MUPIP", 3 },
+	{ "GTMDISTUNVERIF", "Environment variable $gtm_dist (!AD) could not be verified against the executables path (!AD)", 4 },
+	{ "CRYPTNOAPPEND", "APPEND disallowed on the encrypted file !AD", 2 },
+	{ "CRYPTNOSEEK", "SEEK disallowed on the encrypted file !AD", 2 },
+	{ "CRYPTNOTRUNC", "Not positioned at file start or EOF. TRUNCATE disallowed on the encrypted file !AD", 2 },
+	{ "CRYPTNOKEYSPEC", "Key name needs to be specified with KEY, IKEY, or OKEY device parameter for encrypted I/O", 0 },
+	{ "CRYPTNOOVERRIDE", "Cannot override IVEC and/or key without compromising integrity", 0 },
+	{ "CRYPTKEYTOOBIG", "Specified key has length !UL, which is greater than the maximum allowed key length !UL", 2 },
+	{ "CRYPTBADWRTPOS", "Encrypted WRITE disallowed from a position different than where the last WRITE completed", 0 },
+	{ "LABELNOTFND", "GOTO referenced a label that does not exist", 0 },
+	{ "RELINKCTLERR", "Error with relink control structure for $ZROUTINES directory !AD", 2 },
+	{ "INVLINKTMPDIR", "Value for $gtm_linktmpdir is either not found or not a directory(!AD) - Reverting to default value", 2 },
+	{ "NOEDITOR", "Can't find an executable editor: !AD", 2 },
+	{ "UPDPROC", "Update Process error", 0 },
+	{ "HLPPROC", "Helper Process error", 0 },
+	{ "REPLNOHASHTREC", "Sequence number 0x!16 at XQ contains trigger definition updates. !AD side must be at least V6.2-000 for replication to continue", 3 },
+	{ "REMOTEDBNOTRIG", "Trigger operations on global !AD not supported as it maps to database region !AD that points to a remote file", 4 },
+	{ "NEEDTRIGUPGRD", "Cannot do trigger operation on database file !AD until it is upgraded; Run MUPIP TRIGGER -UPGRADE first", 2 },
+	{ "REQRLNKCTLRNDWN", "Error accessing relinkctl file for $ZROUTINES directory !AD. Must be rundown", 2 },
+	{ "RLNKCTLRNDWNSUC", "Relinkctl file for $ZROUTINES directory !AD successfully rundown", 2 },
+	{ "RLNKCTLRNDWNFL", "Relinkctl file for $ZROUTINES directory !AD failed to rundown as it is open by !UL process(es)", 3 },
+	{ "MPROFRUNDOWN", "Error during M-profiling rundown", 0 },
+	{ "ZPEEKNOJNLINFO", "$ZPEEK() unable to access requested journal structure - region !AD is not currently journaled", 2 },
+	{ "TLSPARAM", "TLS parameter !AD !AD", 4 },
+	{ "RLNKRECLATCH", "Failed to get latch on relinkctl record for routine name !AZ in $ZROUTINES directory !AD", 3 },
+	{ "RLNKSHMLATCH", "Failed to get latch on relinkctl shared memory for $ZROUTINES directory !AD", 2 },
+	{ "JOBLVN2LONG", "The zwrite representation of a local variable transferred to a JOB'd process is too long. The zwrite representation cannot exceed !UL. Encountered size: !UL", 2 },
+	{ "NLRESTORE", "DB file header field !AD: !UL does not match the value used in original mapping - restoring to: !UL", 4 },
+	{ "PREALLOCATEFAIL", "Disk space reservation for !AD segment has failed", 2 },
+	{ "NODFRALLOCSUPP", "The NODEFER_ALLOCATE qualifier is not allowed on this operating system. Not changing the defer allocation flag", 0 },
+	{ "LASTWRITERBYPAS", "The last writer for database file !AD bypassed the rundown", 2 },
+	{ "TRIGUPBADLABEL", "Trigger upgrade cannot upgrade label !UL to !UL on ^!AD in region !AD", 6 },
+	{ "WEIRDSYSTIME", "Time reported by the system clock is outside the acceptable range.  Please check and correct the system clock", 0 },
+	{ "REPLSRCEXITERR", "Source server for secondary instance !AZ exited abnormally. See log file !AZ for details.", 2 },
+	{ "INVZBREAK", "Cannot set ZBREAK in direct mode routine (GTM$DMOD)", 0 },
+	{ "INVTMPDIR", "Value or default for $gtm_tmp is either not found or not a directory (!AD) - Reverting to default value", 2 },
+	{ "ARCTLMAXHIGH", "The environment variable !AD = !UL is too high. Assuming the maximum acceptable value of !UL", 4 },
+	{ "ARCTLMAXLOW", "The environment variable !AD = !UL is too low. Assuming the minimum acceptable value of !UL", 4 },
+	{ "NONTPRESTART", "Database !AD; code: !AD; blk: 0x!XL in glbl: ^!AD; blklvl: !UL, type: !UL, zpos: !AD", 11 },
+	{ "PBNPARMREQ", "A first parameter value !AD requires a second parameter specified containing !AD", 4 },
+	{ "PBNNOPARM", "First parameter !AD does not support a second parameter", 2 },
+	{ "PBNUNSUPSTRUCT", "$ZPEEK() does not support structure !AD", 2 },
+	{ "PBNINVALID", "!AD does not have a field named !AD", 4 },
+	{ "PBNNOFIELD", "%ZPEEKBYNAME() requires a field.item as its first parameter", 0 },
+	{ "JNLDBSEQNOMATCH", "Journal file !AD has beginning region sequence number [0x!16 at XQ], but database !AD has region sequence number [0x!16 at XQ]", 6 },
+	{ "MULTIPROCLATCH", "Failed to get multi-process latch at !AD", 2 },
+	{ "INVLOCALE", "Attempt to reset locale to supplied value of $gtm_locale (!AD) failed", 2 },
+	{ "NOMORESEMCNT", "!AD counter semaphore has reached its maximum and stopped counting for !AZ !AD. Run MUPIP JOURNAL -ROLLBACK -BACKWARD, MUPIP JOURNAL -RECOVER -BACKWARD or MUPIP RUNDOWN to restore the database files and shared resources to a clean state", 5 },
+	{ "SETQUALPROB", "Error getting !AD qualifier value", 2 },
+	{ "EXTRINTEGRITY", "Database !AD potentially contains spanning nodes or data encrypted with two different keys", 2 },
+	{ "CRYPTKEYRELEASEFAILED", "Could not safely release encryption key corresponding to file !AD. !AD", 4 },
+	{ "MUREENCRYPTSTART", "Database !AD : MUPIP REORG ENCRYPT started by pid !UL at transaction number [0x!16 at XQ]", 4 },
+	{ "MUREENCRYPTV4NOALLOW", "Database (re)encryption supported only on fully upgraded V5 databases. !AD has V4 format blocks", 2 },
+	{ "ENCRYPTCONFLT", "MUPIP REORG -ENCRYPT and MUPIP EXTRACT -FORMAT=BIN cannot run concurrently - skipping !AD on region: !AD, file: !AD", 6 },
+	{ "JNLPOOLRECOVERY", "The size of the data written to the journal pool (!UL) does not match the size of the data in the journal record (!UL) for the replication instance file !AZ. The journal pool has been recovered.", 3 },
+	{ "LOCKTIMINGINTP", "A LOCK at !AD within a TP transaction is waiting in a final TP retry, which may lead to a general response gap", 2 },
 };
 
 LITDEF	int ERR_ACK = 150372361;
@@ -2893,9 +2894,10 @@ LITDEF	int ERR_MUREENCRYPTSTART = 150383843;
 LITDEF	int ERR_MUREENCRYPTV4NOALLOW = 150383850;
 LITDEF	int ERR_ENCRYPTCONFLT = 150383858;
 LITDEF	int ERR_JNLPOOLRECOVERY = 150383866;
+LITDEF	int ERR_LOCKTIMINGINTP = 150383872;
 
 GBLDEF	err_ctl merrors_ctl = {
 	246,
 	"GTM",
 	&merrors[0],
-	1439};
+	1440};

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/fis-gtm.git



More information about the debian-med-commit mailing list