% password-protected names for the used primitives, internal regeisters and quantities
\let\TRIOhHJqsSbegingroup\begingroup
\let\TRIOhHJqsSendgroup\endgroup
\let\TRIOhHJqsSexpandafter\expandafter
\let\TRIOhHJqsSnoexpand\noexpand
\let\TRIOhHJqsSdef\def
\let\TRIOhHJqsSedef\edef
\let\TRIOhHJqsSgdef\gdef
\let\TRIOhHJqsSxdef\xdef
\let\TRIOhHJqsSlet\let
\let\TRIOhHJqsSfuturelet\futurelet
\let\TRIOhHJqsSglobal\global
\let\TRIOhHJqsSglobaldefs\globaldefs
\let\TRIOhHJqsSifcase\ifcase
\let\TRIOhHJqsSifcat\ifcat
\let\TRIOhHJqsSifnum\ifnum
\let\TRIOhHJqsSifx\ifx
\let\TRIOhHJqsSor\or
\let\TRIOhHJqsSelse\else
\let\TRIOhHJqsSfi\fi
\let\TRIOhHJqsSafterassignment\TRIOafterassignment % must use the \TRIO... name here
\let\TRIOhHJqsSimmediate\TRIOimmediate
\let\TRIOhHJqsSinput\TRIOinput
\let\TRIOhHJqsSread\read
\let\TRIOhHJqsSwrite\write
\let\TRIOhHJqsSthe\the
\let\TRIOhHJqsSnumber\number
\let\TRIOhHJqsSadvance\advance
\let\TRIOhHJqsScatcode\catcode
\let\TRIOhHJqsSfont\font
\let\TRIOhHJqsSinputlineno\inputlineno
\let\TRIOhHJqsSrelax\relax
\let\TRIOhHJqsSundefined\undefined
\let\TrIOhHJqsSspace\space
%
% password-protected macro names for allmost all defined macros
\let\TrIOhHJqsSwlog\TrIOwlog
\let\TrIOhHJqsSmessage\TrIOmessage
\let\TrIOhHJqsSglobaldefs\TrIOglobaldefs
\let\TrIOhHJqsSafter\TrIOafterassignment
\let\TrIOhHJqsSsuspend\TrIOsuspendafterassignment
\let\TrIOhHJqsSresume\TrIOresumeafterassignment
\let\TrIOhHJqsSinit\TrIOinitafterassignment
\let\TrIOhHJqsScheck\TrIOchecktoken
\let\TrIOhHJqsSstore\TrIOstoresavedtoken
\let\TrIOhHJqsSremove\TrIOremovesavedtoken
\let\TrIOhHJqsSAFTER\TrIOAFTERASSIGNMENT
\let\TrIOhHJqsSoutput\TrIOoutputtoken
\let\TrIOhHJqsScountiocmd\TrIOcountiocmd
\let\TrIOhHJqsShandleglobaldefs\TrIOhandleglobaldefs
\let\TrIOhHJqsSsetcatcodes\TrIOsetcatcodes
% nothing to do for \TRIOhHJqsSspecial
\let\TrIOhHJqsSempty\TrIOempty
\let\TrIOhHJqsSfixedef\TrIOfixedef
\let\TrIOhHJqsSnosubdir\TrIOnosubdir
\let\TrIOhHJqsSinputmessage\TrIOinputmessage
% nothing to do for \TrIOcCkPxXmove
% nothing to do for \TrIOcCkPxXinputmessage
% nothing to do for \TrIOcCkPxXinput
\let\TrIOhHJqsSopenin\TrIOopenin
\let\TrIOhHJqsSOpenIn\TrIOOpenIn
\let\TrIOhHJqsSOPENIN\TrIOOPENIN
% nothing to do for \TrIOaAmNzZopenin
\let\TrIOhHJqsSImmediate\TrIOImmediate
\let\TrIOhHJqsSIMMEDIATE\TrIOIMMEDIATE
\let\TrIOhHJqsSopenout\TrIOopenout
\let\TrIOhHJqsSOpenOut\TrIOOpenOut
\let\TrIOhHJqsSOPENOUT\TrIOOPENOUT
% nothing to do for \TrIObBlOyYopenout
\let\TrIOhHJqsSenvinput\TrIOenvinput
\let\TrIOhHJqsSenvopen\TrIOenvopen
% nothing to do for \TrIOfFLouUexecute
% nothing to do for \TrIOfFLouUdoiocmd
\let\TRIOhHJqsSerrmessage\errmessage
\let\TRIOhHJqsSiftrue\iftrue
\let\TRIOhHJqsSiffalse\iffalse
% nothing to do for \TrIOhHJqsSstop
% nothing to do for \TrIOdDjQwWcheck
\let\TRIOgGKptTpausing\pausing
% nothing to do for \TrIOeEMnvVfilenames
%
% password-protected names for token registers
\edef\TrIOhHJqsStrafter{\the\TrIOtrafterassignment}
\edef\TrIOhHJqsStropenin{\the\TrIOtropenin}
\edef\TrIOhHJqsStrimmediate{\the\TrIOtrimmediate}
\edef\TrIOhHJqsStropenout{\the\TrIOtropenout}
%
% test macro
% the next three macros need password-protected names
\def\TrIOhHJqsSstop#1{\TRIOhHJqsSerrmessage{TrIO ALERT !!!
   Don't trust the source (#1)}}
\let\TrIOstop\TrIOhHJqsSstop
\def\TrIOdDjQwWcheck{% check that important macros aren't redefined
   % general: \ifx, \else, \fi, and \TrIOstop
   \TRIOhHJqsSifx\TRIOhHJqsSifx\TRIOifx
      \TRIOhHJqsSelse\TrIOhHJqsSstop{TRIOifx}\TRIOhHJqsSfi
   \TRIOifx\TRIOhHJqsSelse\TRIOelse
      \TRIOhHJqsSelse\TrIOhHJqsSstop{TRIOelse}\TRIOhHJqsSfi
   \TRIOifx\TRIOhHJqsSfi\TRIOfi
      \TRIOelse\TrIOhHJqsSstop{TRIOfi}\TRIOhHJqsSfi
   \TRIOifx\TrIOhHJqsSstop\TrIOstop
      \TRIOelse\TrIOhHJqsSstop{TrIOstop}\TRIOfi
   %
   \TRIOifx\TRIOhHJqsSbegingroup\TRIObegingroup
      \TRIOelse\TrIOstop{TRIObegingroup}\TRIOfi
   \TRIOifx\TRIOhHJqsSendgroup\TRIOendgroup
      \TRIOelse\TrIOstop{TRIOendgroup}\TRIOfi
   \TRIOifx\TRIOhHJqsSexpandafter\TRIOexpandafter
      \TRIOelse\TrIOstop{TRIOexpandafter}\TRIOfi
   \TRIOifx\TRIOhHJqsSnoexpand\TRIOnoexpand
      \TRIOelse\TrIOstop{TRIOnoexpand}\TRIOfi
   \TRIOifx\TRIOhHJqsSdef\TRIOdef
      \TRIOelse\TrIOstop{TRIOdef}\TRIOfi
   \TRIOifx\TRIOhHJqsSedef\TRIOedef
      \TRIOelse\TrIOstop{TRIOedef}\TRIOfi
   \TRIOifx\TRIOhHJqsSgdef\TRIOgdef
      \TRIOelse\TrIOstop{TRIOgdef}\TRIOfi
   \TRIOifx\TRIOhHJqsSxdef\TRIOxdef
      \TRIOelse\TrIOstop{TRIOxdef}\TRIOfi
   \TRIOifx\TRIOhHJqsSlet\TRIOlet
      \TRIOelse\TrIOstop{TRIOlet}\TRIOfi
   \TRIOifx\TRIOhHJqsSfuturelet\TRIOfuturelet
      \TRIOelse\TrIOstop{TRIOfuturelet}\TRIOfi
   \TRIOifx\TRIOhHJqsSglobal\TRIOglobal
      \TRIOelse\TrIOstop{TRIOglobal}\TRIOfi
   \TRIOifx\TRIOhHJqsSglobaldefs\TRIOglobaldefs
      \TRIOelse\TrIOstop{TRIOglobaldefs}\TRIOfi
   \TRIOifx\TRIOhHJqsSifcase\TRIOifcase
      \TRIOelse\TrIOstop{TRIOifcase}\TRIOfi
   \TRIOifx\TRIOhHJqsSifcat\TRIOifcat
      \TRIOelse\TrIOstop{TRIOifcat}\TRIOfi
   \TRIOifx\TRIOhHJqsSifnum\TRIOifnum
      \TRIOelse\TrIOstop{TRIOifnum}\TRIOfi
   \TRIOifx\TRIOhHJqsSor\TRIOor
      \TRIOelse\TrIOstop{TRIOor}\TRIOfi
   \TRIOifx\TRIOhHJqsSafterassignment\TRIOafterassignment
      \TRIOelse\TrIOstop{TRIOafterassignment}\TRIOfi
   \TRIOifx\TRIOhHJqsSimmediate\TRIOimmediate
      \TRIOelse\TrIOstop{TRIOimmediate}\TRIOfi
   \TRIOifx\TRIOhHJqsSinput\TRIOinput
      \TRIOelse\TrIOstop{TRIOinput}\TRIOfi
   \TRIOifx\TRIOhHJqsSread\TRIOread
      \TRIOelse\TrIOstop{TRIOread}\TRIOfi
   \TRIOifx\TRIOhHJqsSwrite\TRIOwrite
      \TRIOelse\TrIOstop{TRIOwrite}\TRIOfi
   \TRIOifx\TRIOhHJqsSthe\TRIOthe
      \TRIOelse\TrIOstop{TRIOthe}\TRIOfi
   \TRIOifx\TRIOhHJqsSnumber\TRIOnumber
      \TRIOelse\TrIOstop{TRIOnumber}\TRIOfi
   \TRIOifx\TRIOhHJqsSadvance\TRIOadvance
      \TRIOelse\TrIOstop{TRIOadvance}\TRIOfi
   \TRIOifx\TRIOhHJqsScatcode\TRIOcatcode
      \TRIOelse\TrIOstop{TRIOcatcode}\TRIOfi
   \TRIOifx\TRIOhHJqsSfont\TRIOfont
      \TRIOelse\TrIOstop{TRIOfont}\TRIOfi
   \TRIOifx\TRIOhHJqsSinputlineno\TRIOinputlineno
      \TRIOelse\TrIOstop{TRIOinputlineno}\TRIOfi
   \TRIOifx\TRIOhHJqsSrelax\TRIOrelax
      \TRIOelse\TrIOstop{TRIOrelax}\TRIOfi
   \TRIOifx\TRIOhHJqsSundefined\TRIOundefined
      \TRIOelse\TrIOstop{TRIOundefined}\TRIOfi
   \TRIOifx\TrIOhHJqsSspace\TrIOspace
      \TRIOelse\TrIOstop{TrIOspace}\TRIOfi
   \TRIOifx\TrIOhHJqsSwlog\TrIOwlog
      \TRIOelse\TrIOstop{TrIOwlog}\TRIOfi
   \TRIOifx\TrIOhHJqsSmessage\TrIOmessage
      \TRIOelse\TrIOstop{TrIOmessage}\TRIOfi
   \TRIOifx\TrIOhHJqsSglobaldefs\TrIOglobaldefs
      \TRIOelse\TrIOstop{TrIOglobaldefs}\TRIOfi
   \TRIOifx\TrIOhHJqsSafter\TrIOafterassignment
      \TRIOelse\TrIOstop{TrIOafterassignment}\TRIOfi
   \TRIOifx\TrIOhHJqsSsuspend\TrIOsuspendafterassignment
      \TRIOelse\TrIOstop{TrIOsuspendafterassignment}\TRIOfi
   \TRIOifx\TrIOhHJqsSresume\TrIOresumeafterassignment
      \TRIOelse\TrIOstop{TrIOresumeafterassignment}\TRIOfi
   \TRIOifx\TrIOhHJqsSinit\TrIOinitafterassignment
      \TRIOelse\TrIOstop{TrIOinitafterassignment}\TRIOfi
   \TRIOifx\TrIOhHJqsScheck\TrIOchecktoken
      \TRIOelse\TrIOstop{TrIOchecktoken}\TRIOfi
   \TRIOifx\TrIOhHJqsSstore\TrIOstoresavedtoken
      \TRIOelse\TrIOstop{TrIOstoresavedtoken}\TRIOfi
   \TRIOifx\TrIOhHJqsSremove\TrIOremovesavedtoken
      \TRIOelse\TrIOstop{TrIOremovesavedtoken}\TRIOfi
   \TRIOifx\TrIOhHJqsSAFTER\TrIOAFTERASSIGNMENT
      \TRIOelse\TrIOstop{TrIOAFTERASSIGNMENT}\TRIOfi
   \TRIOifx\TrIOhHJqsSoutput\TrIOoutputtoken
      \TRIOelse\TrIOstop{TrIOoutputtoken}\TRIOfi
   \TRIOifx\TrIOhHJqsScountiocmd\TrIOcountiocmd
      \TRIOelse\TrIOstop{TrIOcountiocmd}\TRIOfi
   \TRIOifx\TrIOhHJqsShandleglobaldefs\TrIOhandleglobaldefs
      \TRIOelse\TrIOstop{TrIOhandleglobaldefs}\TRIOfi
   \TRIOifx\TrIOhHJqsSsetcatcodes\TrIOsetcatcodes
      \TRIOelse\TrIOstop{TrIOsetcatcodes}\TRIOfi
   \TRIOifx\TrIOhHJqsSempty\TrIOempty
      \TRIOelse\TrIOstop{TrIOempty}\TRIOfi
   \TRIOifx\TrIOhHJqsSfixedef\TrIOfixedef
      \TRIOelse\TrIOstop{TrIOfixedef}\TRIOfi
   \TRIOifx\TrIOhHJqsSnosubdir\TrIOnosubdir
      \TRIOelse\TrIOstop{TrIOnosubdir}\TRIOfi
   \TRIOifx\TrIOhHJqsSinputmessage\TrIOinputmessage
      \TRIOelse\TrIOstop{TrIOinputmessage}\TRIOfi
   \TRIOifx\TrIOhHJqsSopenin\TrIOopenin
      \TRIOelse\TrIOstop{TrIOopenin}\TRIOfi
   \TRIOifx\TrIOhHJqsSOpenIn\TrIOOpenIn
      \TRIOelse\TrIOstop{TrIOOpenIn}\TRIOfi
   \TRIOifx\TrIOhHJqsSOPENIN\TrIOOPENIN
      \TRIOelse\TrIOstop{TrIOOPENIN}\TRIOfi
   \TRIOifx\TrIOhHJqsSImmediate\TrIOImmediate
      \TRIOelse\TrIOstop{TrIOImmediate}\TRIOfi
   \TRIOifx\TrIOhHJqsSIMMEDIATE\TrIOIMMEDIATE
      \TRIOelse\TrIOstop{TrIOIMMEDIATE}\TRIOfi
   \TRIOifx\TrIOhHJqsSopenout\TrIOopenout
      \TRIOelse\TrIOstop{TrIOopenout}\TRIOfi
   \TRIOifx\TrIOhHJqsSOpenOut\TrIOOpenOut
      \TRIOelse\TrIOstop{TrIOOpenOut}\TRIOfi
   \TRIOifx\TrIOhHJqsSOPENOUT\TrIOOPENOUT
      \TRIOelse\TrIOstop{TrIOOPENOUT}\TRIOfi
   \TRIOifx\TrIOhHJqsSenvinput\TrIOenvinput
      \TRIOelse\TrIOstop{TrIOenvinput}\TRIOfi
   \TRIOifx\TrIOhHJqsSenvopen\TrIOenvopen
      \TRIOelse\TrIOstop{TrIOenvopen}\TRIOfi
   % registers and flags
   \TRIObegingroup \TrIOsuspendafterassignment
   \TRIOedef\TRIOnext{\the\TrIOtrafterassignment}%
   \TRIOifx\TRIOnext\TrIOhHJqsStrafter
      \TRIOelse\TrIOstop{TRIOtrafterassignment}\TRIOfi
   \TRIOedef\TRIOnext{\the\TrIOtropenin}%
   \TRIOifx\TRIOnext\TrIOhHJqsStropenin
      \TRIOelse\TrIOstop{TRIOtropenin}\TRIOfi
   \TRIOedef\TRIOnext{\the\TrIOtrimmediate}%
   \TRIOifx\TRIOnext\TrIOhHJqsStrimmediate
      \TRIOelse\TrIOstop{TRIOtrimmediate}\TRIOfi
   \TRIOedef\TRIOnext{\the\TrIOtropenout}%
   \TRIOifx\TRIOnext\TrIOhHJqsStropenout
      \TRIOelse\TrIOstop{TRIOtropenout}\TRIOfi
   \TRIOcatcode`\1=12 \TRIOcatcode`\f=11
   \TRIOifcat
      \TRIOifx\ifTrIOimoo\TRIOhHJqsSiftrue 1\TRIOelse f\TRIOfi
      \TRIOifx\ifTrIOimoo\TRIOhHJqsSiffalse f\TRIOelse 1\TRIOfi
   \TRIOelse\TrIOstop{ifTrIOimoo}\TRIOfi
   \TRIOendgroup
   % \special
   \TRIOifx\TRIOhHJqsSspecial\TRIOhHJqsSundefined
      \TRIOelse\TRIOifx\TRIOhHJqsSspecial\special
         \TRIOelse\TrIOstop{special}\TRIOfi\TRIOfi}
