anchor.diff:  set "ECHO.X=call :Echo.NoExec"
   set "ECHO.XVD=call :Echo.XVD"
   if not .%NOEXEC%.==.1. set "NOEXEC=0"
  -if not .%NOREDIR%.==.1. set "NOREDIR=0"
   :# Check if there's a tee.exe program available
   set "Exec.HaveTee=0"
   tee.exe --help >NUL 2>NUL
  
positive.code: :#   2011-12-12 JFL Finalized change and fixed bugs.			      #
  :#   2016-10-21 JFL Updated the debugging framework to the latest version.    #
  :#                  Added commands del and rd.      			      #
  :#                                                                            #
  :#          Copyright 2016 Hewlett Packard Enterprise Development LP         #
  :# Licensed under the Apache 2.0 license  www.apache.org/licenses/LICENSE-2.0 #
  :##############################################################################
  
  setlocal EnableExtensions EnableDelayedExpansion
  set "VERSION=2016-10-20"
  set "SCRIPT=%~nx0"
  set "SPATH=%~dp0" & set "SPATH=!SPATH:~0,-1!"
  set "ARG0=%~f0"
  
negative.code:     set BEFORE=
      if %VERBOSE%==1 set "BEFORE=%KEY%\!NAME! = "
      echo.!BEFORE!!VALUE!
      set "ERROR=0"
    )
  )
  %RETURN% %ERROR%
  
  :#----------------------------------------------------------------------------#
  
  :# Non-recursive show. %1=Parent key pathname.
  :show
  :showdir
  %FUNCTION% enableextensions enabledelayedexpansion
  set "KEY=%~1" & shift
  %ECHOVARS.D% KEY
  :# Then call subroutines to get subkeys, then values.
  call :dirs "%KEY%" %1 %2 %3 %4 %5 %6 %7 %8 %9 SUBKEYS
  if errorlevel 1 %RETURN%
  for %%K in (!SUBKEYS!) do (
    set "SUBKEY=%%~K\"
    call :CondQuote SUBKEY
    %ECHO% !SUBKEY! {}
  )
  set "ATTRS= "
  call :files -/ "%KEY%" %1 %2 %3 %4 %5 %6 %7 %8 %9 VALUES
  if errorlevel 1 %RETURN%
  set NAMES=
  set "VALUES=!VALUES:%%=%%debug.percnt%%!"	&:# Encode percent characters
  set "VALUES=!VALUES:?=%%debug.quest%%!" 	&:# Encode question marks (else the for loop below ignores them)
  for %%V in (!VALUES!) do (
    set "VALUE=%%~V"
    :# Gotcha: The name can be empty. So prefix the line with 1 extra character, then remove it from the name.
    for /f "tokens=1,2* delims=/" %%i in ("-!VALUE!") do (
      setlocal DisableDelayedExpansion
      endlocal & set "NAME=%%i" & set "TYPE=%%j" & set "VALUE=%%k"
      set "NAME=!NAME:~1!"
      :# %ECHOVARS.D% NAME TYPE VALUE
      set "NAMES=!NAMES! "!NAME!""
      set "TYPE[!NAME!]=!TYPE!"
      call set "VALUE[!NAME!]=!VALUE!"
    )
  )
  if defined NAMES set "NAMES=!NAMES:~1!"
  call :lsort NAMES
  for %%n in (!NAMES!) do (
    set "NAME=%%~n"
    set "TYPE=!TYPE[%%~n]!"
    set "VALUE=!VALUE[%%~n]!"
    :# %ECHOVARS.D% NAME TYPE VALUE
    call :CondQuote NAME
    call :CondQuote VALUE
    if %VERBOSE%==1 SET "ATTRS=%ATTRS%type=!TYPE! "
    %ECHO% !NAME!!ATTRS!!VALUE:%%=%%%%!
  )
  %RETURN% 0
  
  :#----------------------------------------------------------------------------#
  
  :# Recursive show. %1=Parent key pathname.
  :tree
  :showtree
  %FUNCTION% enableextensions enabledelayedexpansion
  set "KEY=%~1" & shift
  %ECHOVARS.D% KEY
  :# Then call subroutines to get subkeys, then values.
  call :dirs "%KEY%" %1 %2 %3 %4 %5 %6 %7 %8 %9 SUBKEYS
  if errorlevel 1 %RETURN%
  for %%K in (!SUBKEYS!) do (
    set "SUBKEY=%%~K\"
    call :CondQuote SUBKEY
    %ECHO% !SUBKEY! {
  