(command.CommandList
  children: [
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEST_DIRECTORY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEST_DIRECTORY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_DIRECTORY='> name:TEST_DIRECTORY)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <pwd>
                            more_env: []
                            words: [{<pwd>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [55 65]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.AndOr
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEST_DIRECTORY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEST_DIRECTORY='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_DIRECTORY='> name:TEST_DIRECTORY)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.AndOr
                            children: [
                              (command.Simple
                                blame_tok: <cd>
                                more_env: []
                                words: [{<cd>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <pwd>
                                more_env: []
                                words: [{<pwd>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_DAmp _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          ops: [<Id.Op_DPipe _>]
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName TEST_OUTPUT_DIRECTORY))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEST_OUTPUT_DIRECTORY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEST_OUTPUT_DIRECTORY='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'TEST_OUTPUT_DIRECTORY='>
                      name: TEST_OUTPUT_DIRECTORY
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TEST_DIRECTORY)}
                )
              ]
              redirects: []
            )
          ]
          spids: [117 127]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_BUILD_DIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_BUILD_DIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_BUILD_DIR='> name:GIT_BUILD_DIR)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY)) <'/..'>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.Left_DoubleQuote '"'>
      more_env: []
      words: [{(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR) <'/git'>)}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<1>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'error: you do not seem to have built git yet.'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [164 175]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/GIT-BUILD-OPTIONS'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<PERL_PATH>} {<SHELL_PATH>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: {(DQ ($ Id.VSub_DollarName GIT_TEST_TEE_STARTED) <', '> ($ Id.VSub_Star '*') <' '>)}
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.KW_Done done>
          pattern: (pat.Words words:[{<Id.KW_Done done> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (SQ <' --tee '>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (SQ <' --va'>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (SQ <' --verbose-log '>) <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [
                {<mkdir>}
                {<-p>}
                {(DQ ($ Id.VSub_DollarName TEST_OUTPUT_DIRECTORY) <'/test-results'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'BASE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'BASE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BASE='> name:BASE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName TEST_OUTPUT_DIRECTORY) <'/test-results/'> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <basename>
                              more_env: []
                              words: [{<basename>} {(DQ ($ Id.VSub_Number 0))} {<.sh>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_TEST_TEE_OUTPUT_FILE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_TEST_TEE_OUTPUT_FILE='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_TEST_TEE_OUTPUT_FILE='>
                      name: GIT_TEST_TEE_OUTPUT_FILE
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName BASE) <.out>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<GIT_TEST_TEE_OUTPUT_FILE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Redir_Great '>'>
              more_env: []
              words: []
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName GIT_TEST_TEE_OUTPUT_FILE))}
                )
              ]
              do_fork: F
            )
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Left_DollarBrace '${'>
                              more_env: [
                                (EnvPair
                                  left: <Id.Lit_VarLike 'GIT_TEST_TEE_STARTED='>
                                  name: GIT_TEST_TEE_STARTED
                                  val: {<Id.KW_Done done>}
                                )
                              ]
                              words: [
                                {(${ Id.VSub_Name SHELL_PATH)}
                                {(DQ ($ Id.VSub_Number 0))}
                                {(DQ ($ Id.VSub_At '@'))}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {($ Id.VSub_QMark '?')}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {(DQ ($ Id.VSub_DollarName BASE) <.exit>)}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <tee>
                  more_env: []
                  words: [{<tee>} {<-a>} {(DQ ($ Id.VSub_DollarName GIT_TEST_TEE_OUTPUT_FILE))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [
                {<test>}
                {
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>} {(DQ ($ Id.VSub_DollarName BASE) <.exit>)}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
                {<Id.Lit_Equals '='>}
                {<0>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LANG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LANG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LANG='> name:LANG)
          op: assign_op.Equal
          rhs: {<C>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LC_ALL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LC_ALL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LC_ALL='> name:LC_ALL)
          op: assign_op.Equal
          rhs: {<C>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PAGER='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PAGER='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PAGER='> name:PAGER)
          op: assign_op.Equal
          rhs: {<cat>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TZ='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TZ='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TZ='> name:TZ)
          op: assign_op.Equal
          rhs: {<UTC>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<LANG>} {<LC_ALL>} {<PAGER>} {<TZ>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EDITOR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EDITOR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EDITOR='> name:EDITOR)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [
        {<unset>}
        {<VISUAL>}
        {<EMAIL>}
        {<LANGUAGE>}
        {<COLUMNS>}
        {
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <Id.Left_DoubleQuote '"'>
                more_env: []
                words: [
                  {(DQ ($ Id.VSub_DollarName PERL_PATH))}
                  {<-e>}
                  {
                    (SQ <'\n'> <'\tmy @env = keys %ENV;\n'> <'\tmy $ok = join("|", qw(\n'> 
                      <'\t\tTRACE\n'> <'\t\tDEBUG\n'> <'\t\tUSE_LOOKUP\n'> <'\t\tTEST\n'> <'\t\t.*_TEST\n'> <'\t\tPROVE\n'> <'\t\tVALGRIND\n'> 
                      <'\t\tUNZIP\n'> <'\t\tPERF_\n'> <'\t\tCURL_VERBOSE\n'> <'\t\tTRACE_CURL\n'> <'\t));\n'> 
                      <'\tmy @vars = grep(/^GIT_/ && !/^GIT_($ok)/o, @env);\n'> <'\tprint join("\\n", @vars);\n'>
                    )
                  }
                ]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<XDG_CONFIG_HOME>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<GITPERLLIB>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_AUTHOR_EMAIL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_AUTHOR_EMAIL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_AUTHOR_EMAIL='> name:GIT_AUTHOR_EMAIL)
          op: assign_op.Equal
          rhs: {<author> <Id.Lit_Splice '@example'> <.com>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_AUTHOR_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_AUTHOR_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_AUTHOR_NAME='> name:GIT_AUTHOR_NAME)
          op: assign_op.Equal
          rhs: {(SQ <'A U Thor'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_COMMITTER_EMAIL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_COMMITTER_EMAIL='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_COMMITTER_EMAIL='>
              name: GIT_COMMITTER_EMAIL
            )
          op: assign_op.Equal
          rhs: {<committer> <Id.Lit_Splice '@example'> <.com>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_COMMITTER_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_COMMITTER_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_COMMITTER_NAME='> name:GIT_COMMITTER_NAME)
          op: assign_op.Equal
          rhs: {(SQ <'C O Mitter'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_MERGE_VERBOSITY='>
              name: GIT_MERGE_VERBOSITY
            )
          op: assign_op.Equal
          rhs: {<5>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_MERGE_AUTOEDIT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_MERGE_AUTOEDIT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_MERGE_AUTOEDIT='> name:GIT_MERGE_AUTOEDIT)
          op: assign_op.Equal
          rhs: {<no>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_MERGE_VERBOSITY>} {<GIT_MERGE_AUTOEDIT>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_AUTHOR_EMAIL>} {<GIT_AUTHOR_NAME>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_COMMITTER_EMAIL>} {<GIT_COMMITTER_NAME>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<EDITOR>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_TRACE_BARE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_TRACE_BARE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_TRACE_BARE='> name:GIT_TRACE_BARE)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GIT_TRACE_BARE>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<-n>}
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name TEST_GIT_INDEX_VERSION>
                          var_name: TEST_GIT_INDEX_VERSION
                          suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<isset>})
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_INDEX_VERSION='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_INDEX_VERSION='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_INDEX_VERSION='>
                      name: GIT_INDEX_VERSION
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName TEST_GIT_INDEX_VERSION))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<GIT_INDEX_VERSION>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [537 551]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <expr>
                      more_env: []
                      words: [
                        {<expr>}
                        {(DQ <' '> ($ Id.VSub_DollarName GIT_TEST_OPTS) <' '>)}
                        {<Id.Lit_Colon ':'>}
                        {(DQ <'.* --valgrind '>)}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName TEST_NO_MALLOC_CHECK))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShFunction
              name_tok: <setup_malloc_check>
              name: setup_malloc_check
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>} {<nothing>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <teardown_malloc_check>
              name: teardown_malloc_check
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>} {<nothing>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [573 603]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <setup_malloc_check>
          name: setup_malloc_check
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'MALLOC_CHECK_='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'MALLOC_CHECK_='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'MALLOC_CHECK_='>
                          name: MALLOC_CHECK_
                        )
                      op: assign_op.Equal
                      rhs: {<3>}
                    )
                    (AssignPair
                      left: <Id.Lit_VarLike 'MALLOC_PERTURB_='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'MALLOC_PERTURB_='>
                          name: MALLOC_PERTURB_
                        )
                      op: assign_op.Equal
                      rhs: {<165>}
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <export>
                  more_env: []
                  words: [{<export>} {<MALLOC_CHECK_>} {<MALLOC_PERTURB_>}]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
        (command.ShFunction
          name_tok: <teardown_malloc_check>
          name: teardown_malloc_check
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <unset>
                  more_env: []
                  words: [{<unset>} {<MALLOC_CHECK_>} {<MALLOC_PERTURB_>}]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name ASAN_OPTIONS>
            var_name: ASAN_OPTIONS
            suffix_op: (suffix_op.Unary op:<Id.VTest_Equals _> arg_word:{<'detect_leaks=0'>})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<ASAN_OPTIONS>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<CDPATH>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<GREP_OPTIONS>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <unset>
      more_env: []
      words: [{<unset>} {<UNZIP>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        blame_tok: <echo>
                        more_env: []
                        words: [{<echo>} {($ Id.VSub_DollarName GIT_TRACE)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <tr>
                        more_env: []
                        words: [{<tr>} {(DQ <'[A-Z]'>)} {(DQ <'[a-z]'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_Pipe _>]
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <1>
          pattern: (pat.Words words:[{<1>} {<2>} {<true>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_TRACE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_TRACE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_TRACE='> name:GIT_TRACE)
                  op: assign_op.Equal
                  rhs: {<4>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_x05='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_x05='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_x05='> name:_x05)
          op: assign_op.Equal
          rhs: {(SQ <'[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_x40='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_x40='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_x40='> name:_x40)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName _x05) ($ Id.VSub_DollarName _x05) ($ Id.VSub_DollarName _x05) 
                ($ Id.VSub_DollarName _x05) ($ Id.VSub_DollarName _x05) ($ Id.VSub_DollarName _x05) ($ Id.VSub_DollarName _x05) 
                ($ Id.VSub_DollarName _x05)
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '_z40='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '_z40='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_z40='> name:_z40)
          op: assign_op.Equal
          rhs: {<0000000000000000000000000000000000000000>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EMPTY_TREE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EMPTY_TREE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMPTY_TREE='> name:EMPTY_TREE)
          op: assign_op.Equal
          rhs: {<4b825dc642cb6eb9a060e54bf8d69288fbee4904>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EMPTY_BLOB='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EMPTY_BLOB='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMPTY_BLOB='> name:EMPTY_BLOB)
          op: assign_op.Equal
          rhs: {<e69de29bb2d1d6434b8b29ae775ad8c2e48c5391>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LF='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LF='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LF='> name:LF)
          op: assign_op.Equal
          rhs: {(SQ <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'u200c='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'u200c='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u200c='> name:u200c)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <printf>
                    more_env: []
                    words: [{<printf>} {(SQ <'\\342\\200\\214'>)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<_x05>} {<_x40>} {<_z40>} {<LF>} {<u200c>} {<EMPTY_TREE>} {<EMPTY_BLOB>}]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [
            {<test>}
            {(DQ <x> ($ Id.VSub_DollarName TERM))}
            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
            {(DQ <xdumb>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-t>} {<1>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tput>
                  more_env: []
                  words: [{<tput>} {<bold>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tput>
                  more_env: []
                  words: [{<tput>} {<setaf>} {<1>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tput>
                  more_env: []
                  words: [{<tput>} {<sgr0>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'color='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'color='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'color='> name:color)
              op: assign_op.Equal
              rhs: {<t>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-ne>} {<0>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-d>
                  pattern: 
                    (pat.Words
                      words: [{<-d>} {<--d>} {<--de>} {<--deb>} {<--debu>} {<--debug>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'debug='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'debug='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug)
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-i>
                  pattern: 
                    (pat.Words
                      words: [
                        {<-i>}
                        {<--i>}
                        {<--im>}
                        {<--imm>}
                        {<--imme>}
                        {<--immed>}
                        {<--immedi>}
                        {<--immedia>}
                        {<--immediat>}
                        {<--immediate>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'immediate='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'immediate='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'immediate='>
                                  name: immediate
                                )
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-l>
                  pattern: 
                    (pat.Words
                      words: [
                        {<-l>}
                        {<--l>}
                        {<--lo>}
                        {<--lon>}
                        {<--long>}
                        {<--long->}
                        {<--long-t>}
                        {<--long-te>}
                        {<--long-tes>}
                        {<--long-test>}
                        {<--long-tests>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'GIT_TEST_LONG='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'GIT_TEST_LONG='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'GIT_TEST_LONG='>
                                  name: GIT_TEST_LONG
                                )
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <export>
                          more_env: []
                          words: [{<export>} {<GIT_TEST_LONG>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-r>
                  pattern: (pat.Words words:[{<-r>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {(DQ ($ Id.VSub_Pound '#'))} {<-ne>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {(SQ <'error: -r requires an argument'>)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'run_list='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'run_list='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'run_list='> name:run_list)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 1)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--run>
                  pattern: (pat.Words words:[{<--run> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'run_list='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'run_list='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'run_list='> name:run_list)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Number 1>
                                    var_name: 1
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VOp1_Pound '#'>
                                        arg_word: {<--> <Id.Lit_Other '*'> <'='>}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-h>
                  pattern: (pat.Words words:[{<-h>} {<--h>} {<--he>} {<--hel>} {<--help>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'help='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'help='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help)
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-v>
                  pattern: 
                    (pat.Words
                      words: [
                        {<-v>}
                        {<--v>}
                        {<--ve>}
                        {<--ver>}
                        {<--verb>}
                        {<--verbo>}
                        {<--verbos>}
                        {<--verbose>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'verbose='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'verbose='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--verbose-only>
                  pattern: 
                    (pat.Words
                      words: [{<--verbose-only> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'verbose_only='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'verbose_only='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'verbose_only='>
                              name: verbose_only
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Pound '#'>
                                    arg_word: {<--> <Id.Lit_Other '*'> <'='>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-q>
                  pattern: 
                    (pat.Words
                      words: [{<-q>} {<--q>} {<--qu>} {<--qui>} {<--quie>} {<--quiet>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName HARNESS_ACTIVE))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'quiet='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'quiet='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'quiet='> name:quiet)
                                  op: assign_op.Equal
                                  rhs: {<t>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--with-dashes>
                  pattern: (pat.Words words:[{<--with-dashes>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'with_dashes='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'with_dashes='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'with_dashes='>
                                  name: with_dashes
                                )
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--no-color>
                  pattern: (pat.Words words:[{<--no-color>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'color='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'color='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'color='> name:color)
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--va>
                  pattern: 
                    (pat.Words
                      words: [
                        {<--va>}
                        {<--val>}
                        {<--valg>}
                        {<--valgr>}
                        {<--valgri>}
                        {<--valgrin>}
                        {<--valgrind>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'valgrind='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'valgrind='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'valgrind='> name:valgrind)
                          op: assign_op.Equal
                          rhs: {<memcheck>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--valgrind>
                  pattern: (pat.Words words:[{<--valgrind> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'valgrind='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'valgrind='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'valgrind='> name:valgrind)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Pound '#'>
                                    arg_word: {<--> <Id.Lit_Other '*'> <'='>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--valgrind-only>
                  pattern: 
                    (pat.Words
                      words: [{<--valgrind-only> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'valgrind_only='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'valgrind_only='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'valgrind_only='>
                              name: valgrind_only
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Pound '#'>
                                    arg_word: {<--> <Id.Lit_Other '*'> <'='>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--tee>
                  pattern: (pat.Words words:[{<--tee>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--root>
                  pattern: (pat.Words words:[{<--root> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'root='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'root='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Pound '#'>
                                    arg_word: {<--> <Id.Lit_Other '*'> <'='>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--chain-lint>
                  pattern: (pat.Words words:[{<--chain-lint>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GIT_TEST_CHAIN_LINT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GIT_TEST_CHAIN_LINT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'GIT_TEST_CHAIN_LINT='>
                              name: GIT_TEST_CHAIN_LINT
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--no-chain-lint>
                  pattern: (pat.Words words:[{<--no-chain-lint>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GIT_TEST_CHAIN_LINT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GIT_TEST_CHAIN_LINT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'GIT_TEST_CHAIN_LINT='>
                              name: GIT_TEST_CHAIN_LINT
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-x>
                  pattern: (pat.Words words:[{<-x>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'trace='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'trace='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trace='> name:trace)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'verbose='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'verbose='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <--verbose-log>
                  pattern: (pat.Words words:[{<--verbose-log>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'verbose_log='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'verbose_log='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'verbose_log='>
                              name: verbose_log
                            )
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'error: unknown test option \''> ($ Id.VSub_Number 1) <'\''>)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName valgrind_only))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName valgrind))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'valgrind='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'valgrind='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'valgrind='> name:valgrind)
                      op: assign_op.Equal
                      rhs: {<memcheck>}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName verbose))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'verbose_only='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'verbose_only='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose_only='> name:verbose_only)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName valgrind_only))}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          spids: [1440 1450]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName valgrind))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'verbose='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'verbose='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
                  op: assign_op.Equal
                  rhs: {<t>}
                )
              ]
              redirects: []
            )
          ]
          spids: [1482 1492]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName color))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_error='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_error='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'say_color_error='>
                      name: say_color_error
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.CommandList
                            children: [
                              (command.Sentence
                                child: 
                                  (command.Simple
                                    blame_tok: <tput>
                                    more_env: []
                                    words: [{<tput>} {<bold>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                terminator: <Id.Op_Semi _>
                              )
                              (command.Simple
                                blame_tok: <tput>
                                more_env: []
                                words: [{<tput>} {<setaf>} {<1>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_skip='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_skip='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'say_color_skip='> name:say_color_skip)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <tput>
                            more_env: []
                            words: [{<tput>} {<setaf>} {<4>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_warn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_warn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'say_color_warn='> name:say_color_warn)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <tput>
                            more_env: []
                            words: [{<tput>} {<setaf>} {<3>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_pass='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_pass='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'say_color_pass='> name:say_color_pass)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <tput>
                            more_env: []
                            words: [{<tput>} {<setaf>} {<2>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_info='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_info='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'say_color_info='> name:say_color_info)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <tput>
                            more_env: []
                            words: [{<tput>} {<setaf>} {<6>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_reset='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_reset='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'say_color_reset='>
                      name: say_color_reset
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <tput>
                            more_env: []
                            words: [{<tput>} {<sgr0>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'say_color_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'say_color_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'say_color_='> name:say_color_)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShFunction
              name_tok: <say_color>
              name: say_color
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName quiet))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (DQ <'say_color_color='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <say_color_> ($ Id.VSub_Number 1)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {
                          (DQ <'%s'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) <n>
                          )
                        }
                        {
                          (DQ ($ Id.VSub_DollarName say_color_color) ($ Id.VSub_Star '*') 
                            ($ Id.VSub_DollarName say_color_reset)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
          ]
          spids: [1501 1511]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShFunction
          name_tok: <say_color>
          name: say_color
          body: 
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-z>} {(DQ ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName quiet))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                )
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)}
                    {(DQ ($ Id.VSub_Star '*'))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              redirects: []
              right: <Id.Lit_RBrace '}'>
            )
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TERM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TERM='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TERM='> name:TERM)
          op: assign_op.Equal
          rhs: {<dumb>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<TERM>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <error>
      name: error
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [{<say_color>} {<error>} {(DQ <'error: '> ($ Id.VSub_Star '*'))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXIT_OK='> name:GIT_EXIT_OK)
                  op: assign_op.Equal
                  rhs: {<t>}
                )
              ]
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <say>
      name: say
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [{<say_color>} {<info>} {(DQ ($ Id.VSub_Star '*'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName HARNESS_ACTIVE))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName verbose))}
                                {<Id.Lit_Equals '='>}
                                {<t>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName verbose_only))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {(SQ <'Bail out! %s\\n'>)}
                        {(SQ <'verbose mode forbidden under TAP harness; try --verbose-log'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1832 1855]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [1819 1829]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [
            {<test>}
            {(DQ (${ Id.VSub_Name test_description))}
            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
            {(DQ )}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <error>
          more_env: []
          words: [{<error>} {(DQ <'Test script did not set test_description.'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {(DQ ($ Id.VSub_DollarName help))} {<Id.Lit_Equals '='>} {(DQ <t>)}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [{<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName test_description))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [1904 1918]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <exec>
      more_env: []
      words: [{<exec>}]
      redirects: [(Redir op:<Id.Redir_GreatAnd '5>&'> loc:(redir_loc.Fd fd:5) arg:{<1>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <exec>
      more_env: []
      words: [{<exec>}]
      redirects: [(Redir op:<Id.Redir_LessAnd '6<&'> loc:(redir_loc.Fd fd:6) arg:{<0>})]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {(DQ ($ Id.VSub_DollarName verbose_log))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <t>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DGreat '3>>'>
                  loc: (redir_loc.Fd fd:3)
                  arg: {(DQ ($ Id.VSub_DollarName GIT_TEST_TEE_OUTPUT_FILE))}
                )
                (Redir op:<Id.Redir_GreatAnd '4>&'> loc:(redir_loc.Fd fd:4) arg:{<3>})
              ]
              do_fork: T
            )
          ]
          spids: [1949 1963]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {(DQ ($ Id.VSub_DollarName verbose))} {<Id.Lit_Equals '='>} {(DQ <t>)}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [
                (Redir op:<Id.Redir_GreatAnd '4>&'> loc:(redir_loc.Fd fd:4) arg:{<2>})
                (Redir op:<Id.Redir_GreatAnd '3>&'> loc:(redir_loc.Fd fd:3) arg:{<1>})
              ]
              do_fork: T
            )
          ]
          spids: [1976 1990]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <exec>
          more_env: []
          words: [{<exec>}]
          redirects: [
            (Redir op:<Id.Redir_Great '4>'> loc:(redir_loc.Fd fd:4) arg:{<'/dev/null'>})
            (Redir op:<Id.Redir_Great '3>'> loc:(redir_loc.Fd fd:3) arg:{<'/dev/null'>})
          ]
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BASH_XTRACEFD='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BASH_XTRACEFD='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BASH_XTRACEFD='> name:BASH_XTRACEFD)
          op: assign_op.Equal
          rhs: {<4>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_failure='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_failure='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_failure='> name:test_failure)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_count='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_count='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_count='> name:test_count)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_fixed='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_fixed='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_fixed='> name:test_fixed)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_broken='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_broken='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_broken='> name:test_broken)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_success='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_success='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_success='> name:test_success)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_external_has_tap='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_external_has_tap='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'test_external_has_tap='>
              name: test_external_has_tap
            )
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <die>
      name: die
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'code='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'code='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'code='> name:code)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_EXIT_OK))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName code)}
                    )
                  ]
                  spids: [2084 2095]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <'FATAL: Unexpected exit with code '> ($ Id.VSub_DollarName code))}
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<5>})]
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXIT_OK='> name:GIT_EXIT_OK)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <trap>
      more_env: []
      words: [{<trap>} {(SQ <die>)} {<EXIT>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <trap>
      more_env: []
      words: [{<trap>} {(SQ <'exit $?'>)} {<INT>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY) <'/test-lib-functions.sh'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <test_ok_>
      name: test_ok_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test_success='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test_success='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_success='> name:test_success)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName test_success)}
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [
                {<say_color>}
                {(DQ )}
                {(DQ <'ok '> ($ Id.VSub_DollarName test_count) <' - '> ($ Id.VSub_At '@'))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_failure_>
      name: test_failure_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test_failure='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test_failure='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_failure='> name:test_failure)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName test_failure)}
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [
                {<say_color>}
                {<error>}
                {(DQ <'not ok '> ($ Id.VSub_DollarName test_count) <' - '> ($ Id.VSub_Number 1))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [{<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_Star '*'))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-e>} {(SQ <'s/^/#\t/'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {(DQ ($ Id.VSub_DollarName immediate))} {<Id.Lit_Equals '='>} {(DQ )}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
                                  name: GIT_EXIT_OK
                                )
                              op: assign_op.Equal
                              rhs: {<t>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_known_broken_ok_>
      name: test_known_broken_ok_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test_fixed='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test_fixed='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_fixed='> name:test_fixed)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName test_fixed)}
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [
                {<say_color>}
                {<error>}
                {
                  (DQ <'ok '> ($ Id.VSub_DollarName test_count) <' - '> ($ Id.VSub_At '@') 
                    <' # TODO known breakage vanished'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_known_broken_failure_>
      name: test_known_broken_failure_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test_broken='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test_broken='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_broken='> name:test_broken)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName test_broken)}
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [
                {<say_color>}
                {<warn>}
                {
                  (DQ <'not ok '> ($ Id.VSub_DollarName test_count) <' - '> ($ Id.VSub_At '@') 
                    <' # TODO known breakage'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_debug>
      name: test_debug
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {(DQ ($ Id.VSub_DollarName debug))} {<Id.Lit_Equals '='>} {(DQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [{<eval>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <match_pattern_list>
      name: match_pattern_list
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arg='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arg='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_Star '*'))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [pattern_]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName arg))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$pattern_'>
                          pattern: (pat.Words words:[{($ Id.VSub_DollarName pattern_)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <match_test_selector_list>
      name: match_test_selector_list
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'title='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'title='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'title='> name:title)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arg='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arg='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arg='> name:arg)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow
                  keyword: <Id.ControlFlow_Return return>
                  arg_word: {<0>}
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OLDIFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OLDIFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLDIFS='> name:OLDIFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <' \t,'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<-->} {($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName OLDIFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'include='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'include='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'include='> name:include)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.KW_Bang '!'>
                  pattern: (pat.Words words:[{<Id.KW_Bang '!'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'include='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'include='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'include='> name:include)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [selector]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'orig_selector='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'orig_selector='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'orig_selector='>
                              name: orig_selector
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName selector)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'positive='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'positive='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'positive='> name:positive)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName selector))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.KW_Bang '!'>
                          pattern: (pat.Words words:[{<Id.KW_Bang '!'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'positive='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'positive='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'positive='>
                                      name: positive
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'selector='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'selector='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'selector='>
                                      name: selector
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name selector>
                                        var_name: selector
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_DPound '##'>
                                            arg_word: {<Id.Lit_Other '?'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName selector))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName selector))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <expr>
                                          more_env: []
                                          words: [
                                            {<expr>}
                                            {
                                              (DQ <z> 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name selector>
                                                  var_name: selector
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op: <Id.VOp1_DPercent '%%'>
                                                      arg_word: {<-> <Id.Lit_Other '*'>}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                            {<Id.Lit_Colon ':'>}
                                            {(DQ <'z[0-9]*[^0-9]'>)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'error: '> ($ Id.VSub_DollarName title) 
                                            <': invalid non-numeric in range'>
                                          )
                                        }
                                        {
                                          (DQ <'start: \''> ($ Id.VSub_DollarName orig_selector) <'\''>)
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2626 2650]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <expr>
                                          more_env: []
                                          words: [
                                            {<expr>}
                                            {
                                              (DQ <z> 
                                                (BracedVarSub
                                                  left: <Id.Left_DollarBrace '${'>
                                                  token: <Id.VSub_Name selector>
                                                  var_name: selector
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op: <Id.VOp1_Pound '#'>
                                                      arg_word: {<Id.Lit_Other '*'> <->}
                                                    )
                                                  right: <Id.Right_DollarBrace '}'>
                                                )
                                              )
                                            }
                                            {<Id.Lit_Colon ':'>}
                                            {(DQ <'z[0-9]*[^0-9]'>)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'error: '> ($ Id.VSub_DollarName title) 
                                            <': invalid non-numeric in range'>
                                          )
                                        }
                                        {(DQ <'end: \''> ($ Id.VSub_DollarName orig_selector) <'\''>)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2681 2705]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <expr>
                                          more_env: []
                                          words: [
                                            {<expr>}
                                            {(DQ <z> ($ Id.VSub_DollarName selector))}
                                            {<Id.Lit_Colon ':'>}
                                            {(DQ <'z[0-9]*[^0-9]'>)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'error: '> ($ Id.VSub_DollarName title) 
                                            <': invalid non-numeric in test'>
                                          )
                                        }
                                        {
                                          (DQ <'selector: \''> ($ Id.VSub_DollarName orig_selector) 
                                            <'\''>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2743 2762]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName include))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName positive))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName include))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName positive))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName selector))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {($ Id.VSub_DollarName arg)}
                                            {<-le>}
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name selector>
                                                var_name: selector
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {<->}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'include='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'include='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'include='>
                                              name: include
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName positive)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2862 2877]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {($ Id.VSub_DollarName arg)}
                                            {<-ge>}
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name selector>
                                                var_name: selector
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Percent '%'>
                                                    arg_word: {<->}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'include='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'include='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'include='>
                                              name: include
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName positive)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2895 2910]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name selector>
                                                    var_name: selector
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_DPercent '%%'>
                                                        arg_word: {<-> <Id.Lit_Other '*'>}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                                {<-le>}
                                                {($ Id.VSub_DollarName arg)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {($ Id.VSub_DollarName arg)}
                                                {<-le>}
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name selector>
                                                    var_name: selector
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_Pound '#'>
                                                        arg_word: {<Id.Lit_Other '*'> <->}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DAmp _>]
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'include='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'include='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'include='>
                                              name: include
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName positive)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2929 2962]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {($ Id.VSub_DollarName arg)}
                                            {<-eq>}
                                            {($ Id.VSub_DollarName selector)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'include='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'include='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'include='>
                                              name: include
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName positive)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2979 2990]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName include))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <maybe_teardown_verbose>
      name: maybe_teardown_verbose
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName verbose_only))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '4>'>
                  loc: (redir_loc.Fd fd:4)
                  arg: {<'/dev/null'>}
                )
                (Redir
                  op: <Id.Redir_Great '3>'>
                  loc: (redir_loc.Fd fd:3)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'verbose='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'verbose='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'last_verbose='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'last_verbose='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last_verbose='> name:last_verbose)
          op: assign_op.Equal
          rhs: {<t>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <maybe_setup_verbose>
      name: maybe_setup_verbose
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName verbose_only))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <match_pattern_list>
                          more_env: []
                          words: [
                            {<match_pattern_list>}
                            {($ Id.VSub_DollarName test_count)}
                            {($ Id.VSub_DollarName verbose_only)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '4>&'>
                          loc: (redir_loc.Fd fd:4)
                          arg: {<2>}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '3>&'>
                          loc: (redir_loc.Fd fd:3)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName last_verbose))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ )}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<3>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'verbose='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'verbose='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3080 3089]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <exec>
                  more_env: []
                  words: [{<exec>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '4>'>
                      loc: (redir_loc.Fd fd:4)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_Great '3>'>
                      loc: (redir_loc.Fd fd:3)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'verbose='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'verbose='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'last_verbose='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'last_verbose='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'last_verbose='> name:last_verbose)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName verbose)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <maybe_teardown_valgrind>
      name: maybe_teardown_valgrind
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_VALGRIND))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                      name: GIT_VALGRIND_ENABLED
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <maybe_setup_valgrind>
      name: maybe_setup_valgrind
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_VALGRIND))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName valgrind_only))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                              name: GIT_VALGRIND_ENABLED
                            )
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  spids: [3215 3226]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                      name: GIT_VALGRIND_ENABLED
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <match_pattern_list>
                          more_env: []
                          words: [
                            {<match_pattern_list>}
                            {($ Id.VSub_DollarName test_count)}
                            {($ Id.VSub_DollarName valgrind_only)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                              name: GIT_VALGRIND_ENABLED
                            )
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3242 3251]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <want_trace>
      name: want_trace
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {(DQ ($ Id.VSub_DollarName trace))} {<Id.Lit_Equals '='>} {<t>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {(DQ ($ Id.VSub_DollarName verbose))} {<Id.Lit_Equals '='>} {<t>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_eval_inner_>
      name: test_eval_inner_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {(DQ <'\n'> <'\t\twant_trace && set -x\n'> <'\t\t'> ($ Id.VSub_Star '*'))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_eval_>
      name: test_eval_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.Simple
                  blame_tok: <test_eval_inner_>
                  more_env: []
                  words: [{<test_eval_inner_>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '>&'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<3>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<4>}
                    )
                  ]
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'test_eval_ret_='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'test_eval_ret_='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'test_eval_ret_='>
                          name: test_eval_ret_
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '?')}
                    )
                  ]
                  redirects: []
                )
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <want_trace>
                              more_env: []
                              words: [{<want_trace>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [{<set>} {<Id.Lit_Other '+'> <x>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {(DQ ($ Id.VSub_DollarName test_eval_ret_))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<0>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <say_color>
                                  more_env: []
                                  words: [
                                    {<say_color>}
                                    {<error>}
                                    {
                                      (DQ <'error: last command exited with '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) <'?='> ($ Id.VSub_DollarName test_eval_ret_)
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<4>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              spids: [3409 3423]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      spids: [3395 3400]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
              ]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              right: <Id.Lit_RBrace '}'>
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName test_eval_ret_)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_run_>
      name: test_run_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test_cleanup='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test_cleanup='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_cleanup='> name:test_cleanup)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'expecting_failure='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'expecting_failure='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'expecting_failure='>
                      name: expecting_failure
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {
                                  (DQ 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name GIT_TEST_CHAIN_LINT>
                                      var_name: GIT_TEST_CHAIN_LINT
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op: <Id.VTest_ColonHyphen _>
                                          arg_word: {<1>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<0>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'trace_tmp='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'trace_tmp='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trace_tmp='> name:trace_tmp)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName trace)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'trace='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'trace='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trace='> name:trace)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <test_eval_>
                      more_env: []
                      words: [{<test_eval_>} {(DQ <'(exit 117) && '> ($ Id.VSub_Number 1))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {(DQ ($ Id.VSub_QMark '?'))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<117>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <error>
                              more_env: []
                              words: [
                                {<error>}
                                {
                                  (DQ <'bug in the test script: broken &&-chain: '> 
                                    ($ Id.VSub_Number 1)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [3529 3543]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'trace='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'trace='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trace='> name:trace)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName trace_tmp)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3477 3495]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <setup_malloc_check>
              more_env: []
              words: [{<setup_malloc_check>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_eval_>
              more_env: []
              words: [{<test_eval_>} {(DQ ($ Id.VSub_Number 1))}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'eval_ret='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'eval_ret='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eval_ret='> name:eval_ret)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <teardown_malloc_check>
              more_env: []
              words: [{<teardown_malloc_check>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName immediate))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {($ Id.VSub_DollarName eval_ret)}
                                {<Id.Lit_Equals '='>}
                                {<0>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName expecting_failure))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName test_cleanup))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ <':'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _> <Id.Op_DPipe _> <Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <setup_malloc_check>
                      more_env: []
                      words: [{<setup_malloc_check>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <test_eval_>
                      more_env: []
                      words: [{<test_eval_>} {(DQ ($ Id.VSub_DollarName test_cleanup))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <teardown_malloc_check>
                      more_env: []
                      words: [{<teardown_malloc_check>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3583 3630]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName verbose))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <t>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName HARNESS_ACTIVE))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [3649 3674]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {(DQ ($ Id.VSub_DollarName eval_ret))}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_start_>
      name: test_start_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test_count='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test_count='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_count='> name:test_count)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName test_count)}
                            right: {<Id.Lit_Digits 1>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <maybe_setup_verbose>
              more_env: []
              words: [{<maybe_setup_verbose>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <maybe_setup_valgrind>
              more_env: []
              words: [{<maybe_setup_valgrind>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_finish_>
      name: test_finish_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <maybe_teardown_valgrind>
              more_env: []
              words: [{<maybe_teardown_valgrind>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <maybe_teardown_verbose>
              more_env: []
              words: [{<maybe_teardown_verbose>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_skip>
      name: test_skip
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'to_skip='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'to_skip='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'to_skip='> name:to_skip)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'skipped_reason='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'skipped_reason='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skipped_reason='> name:skipped_reason)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <match_pattern_list>
                          more_env: []
                          words: [
                            {<match_pattern_list>}
                            {($ Id.VSub_DollarName this_test) <.> ($ Id.VSub_DollarName test_count)}
                            {($ Id.VSub_DollarName GIT_SKIP_TESTS)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'to_skip='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'to_skip='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'to_skip='> name:to_skip)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'skipped_reason='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'skipped_reason='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'skipped_reason='>
                              name: skipped_reason
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <GIT_SKIP_TESTS>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3759 3770]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName to_skip))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName test_prereq))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <test_have_prereq>
                                  more_env: []
                                  words: [{<test_have_prereq>} {(DQ ($ Id.VSub_DollarName test_prereq))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'to_skip='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'to_skip='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'to_skip='> name:to_skip)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'of_prereq='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'of_prereq='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'of_prereq='> name:of_prereq)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {(DQ ($ Id.VSub_DollarName missing_prereq))}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName test_prereq))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'of_prereq='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'of_prereq='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'of_prereq='>
                                      name: of_prereq
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <' of '> ($ Id.VSub_DollarName test_prereq))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3829 3845]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'skipped_reason='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'skipped_reason='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'skipped_reason='>
                              name: skipped_reason
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'missing '> ($ Id.VSub_DollarName missing_prereq) 
                                (${ Id.VSub_Name of_prereq)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3786 3818]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName to_skip))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName run_list))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.Simple
                                  blame_tok: <match_test_selector_list>
                                  more_env: []
                                  words: [
                                    {<match_test_selector_list>}
                                    {(SQ <--run>)}
                                    {($ Id.VSub_DollarName test_count)}
                                    {(DQ ($ Id.VSub_DollarName run_list))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'to_skip='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'to_skip='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'to_skip='> name:to_skip)
                          op: assign_op.Equal
                          rhs: {<t>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'skipped_reason='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'skipped_reason='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'skipped_reason='>
                              name: skipped_reason
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <--run>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3871 3909]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName to_skip))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <t>
                  pattern: (pat.Words words:[{<t>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <say_color>
                      more_env: []
                      words: [{<say_color>} {<skip>} {(DQ <'skipping test: '> ($ Id.VSub_At '@'))}]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <say_color>
                      more_env: []
                      words: [
                        {<say_color>}
                        {<skip>}
                        {
                          (DQ <'ok '> ($ Id.VSub_DollarName test_count) <' # skip '> 
                            ($ Id.VSub_Number 1) <' ('> ($ Id.VSub_DollarName skipped_reason) <')'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>} {<true>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <false>
                      more_env: []
                      words: [{<false>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_at_end_hook_>
      name: test_at_end_hook_
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_done>
      name: test_done
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXIT_OK='> name:GIT_EXIT_OK)
                  op: assign_op.Equal
                  rhs: {<t>}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName HARNESS_ACTIVE))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'test_results_dir='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'test_results_dir='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'test_results_dir='>
                              name: test_results_dir
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName TEST_OUTPUT_DIRECTORY) <'/test-results'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <mkdir>
                      more_env: []
                      words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName test_results_dir))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'base='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'base='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 0>
                                var_name: 0
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'test_results_path='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'test_results_path='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'test_results_path='>
                              name: test_results_path
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName test_results_dir) <'/'> 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name base>
                                  var_name: base
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VOp1_Percent '%'>
                                      arg_word: {<.sh>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) <.counts>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName test_results_path))}
                        )
                        (Redir
                          op: <Id.Redir_DLessDash '<<-'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOF>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'total '>
                                ($ Id.VSub_DollarName test_count)
                                <'\n'>
                                <'success '>
                                ($ Id.VSub_DollarName test_success)
                                <'\n'>
                                <'fixed '>
                                ($ Id.VSub_DollarName test_fixed)
                                <'\n'>
                                <'broken '>
                                ($ Id.VSub_DollarName test_broken)
                                <'\n'>
                                <'failed '>
                                ($ Id.VSub_DollarName test_failure)
                                <'\n'>
                                <'\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [4019 4030]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ ($ Id.VSub_DollarName test_fixed))}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {<0>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <say_color>
                      more_env: []
                      words: [
                        {<say_color>}
                        {<error>}
                        {
                          (DQ <'# '> ($ Id.VSub_DollarName test_fixed) 
                            <' known breakage(s) vanished; please update test(s)'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4105 4119]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ ($ Id.VSub_DollarName test_broken))}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {<0>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <say_color>
                      more_env: []
                      words: [
                        {<say_color>}
                        {<warn>}
                        {
                          (DQ <'# still have '> ($ Id.VSub_DollarName test_broken) 
                            <' known breakage(s)'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [4136 4150]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName test_broken))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<0>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName test_fixed))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<0>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'test_remaining='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'test_remaining='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'test_remaining='>
                              name: test_remaining
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: 
                                      (arith_expr.Binary
                                        op_id: Id.Arith_Minus
                                        left: {($ Id.VSub_DollarName test_count)}
                                        right: {($ Id.VSub_DollarName test_broken)}
                                      )
                                    right: {($ Id.VSub_DollarName test_fixed)}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'msg='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'msg='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                          op: assign_op.Equal
                          rhs: {(DQ <'remaining '> ($ Id.VSub_DollarName test_remaining) <' test(s)'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4167 4194]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'test_remaining='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'test_remaining='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'test_remaining='>
                          name: test_remaining
                        )
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName test_count)}
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'msg='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'msg='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName test_count) <' test(s)'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName test_failure))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName skip_all))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [{<test>} {($ Id.VSub_DollarName test_count)} {<-gt>} {<0>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <error>
                              more_env: []
                              words: [{<error>} {(DQ <'Can\'t use skip_all after running some tests'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [4256 4277]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName skip_all))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'skip_all='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'skip_all='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all)
                              op: assign_op.Equal
                              rhs: {(DQ <' # SKIP '> ($ Id.VSub_DollarName skip_all))}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {($ Id.VSub_DollarName test_external_has_tap)}
                                    {<-eq>}
                                    {<0>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {($ Id.VSub_DollarName test_remaining)}
                                            {<-gt>}
                                            {<0>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <say_color>
                                      more_env: []
                                      words: [
                                        {<say_color>}
                                        {<pass>}
                                        {(DQ <'# passed all '> ($ Id.VSub_DollarName msg))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [4322 4333]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <say>
                              more_env: []
                              words: [
                                {<say>}
                                {
                                  (DQ <1..> ($ Id.VSub_DollarName test_count) 
                                    ($ Id.VSub_DollarName skip_all)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [4308 4319]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName remove_trash))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [
                            {<cd>}
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <dirname>
                                      more_env: []
                                      words: [{<dirname>} {(DQ ($ Id.VSub_DollarName remove_trash))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [
                            {<rm>}
                            {<-rf>}
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <basename>
                                      more_env: []
                                      words: [{<basename>} {(DQ ($ Id.VSub_DollarName remove_trash))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                    )
                    (command.Simple
                      blame_tok: <test_at_end_hook_>
                      more_env: []
                      words: [{<test_at_end_hook_>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<0>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {($ Id.VSub_DollarName test_external_has_tap)}
                                    {<-eq>}
                                    {<0>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <say_color>
                              more_env: []
                              words: [
                                {<say_color>}
                                {<error>}
                                {
                                  (DQ <'# failed '> ($ Id.VSub_DollarName test_failure) <' among '> 
                                    ($ Id.VSub_DollarName msg)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <say>
                              more_env: []
                              words: [{<say>} {(DQ <1..> ($ Id.VSub_DollarName test_count))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [4420 4431]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName valgrind))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShFunction
              name_tok: <make_symlink>
              name: make_symlink
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-h>} {(DQ ($ Id.VSub_Number 2))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ ($ Id.VSub_Number 1))}
                            {<Id.Lit_Equals '='>}
                            {
                              (DQ 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      blame_tok: <readlink>
                                      more_env: []
                                      words: [{<readlink>} {(DQ ($ Id.VSub_Number 2))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <mkdir>
                                          more_env: []
                                          words: [{<mkdir>} {(DQ ($ Id.VSub_Number 2)) <.lock>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <rm>
                                          more_env: []
                                          words: [{<rm>} {<-f>} {(DQ ($ Id.VSub_Number 2))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <ln>
                                          more_env: []
                                          words: [
                                            {<ln>}
                                            {<-s>}
                                            {(DQ ($ Id.VSub_Number 1))}
                                            {(DQ ($ Id.VSub_Number 2))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <rm>
                                          more_env: []
                                          words: [{<rm>} {<-r>} {(DQ ($ Id.VSub_Number 2)) <.lock>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                    )
                                  ]
                                  spids: [4530 4540]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-d>} {(DQ ($ Id.VSub_Number 2)) <.lock>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.Simple
                                          blame_tok: <say>
                                          more_env: []
                                          words: [
                                            {<say>}
                                            {(DQ <'Waiting for lock on '> ($ Id.VSub_Number 2) <.>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sleep>
                                          more_env: []
                                          words: [{<sleep>} {<1>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <make_valgrind_symlink>
              name: make_valgrind_symlink
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-x>} {(DQ ($ Id.VSub_Number 1))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ <'# '>)}
                                {<Id.Lit_Equals '='>}
                                {
                                  (DQ 
                                    (CommandSub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: 
                                        (command.Simple
                                          blame_tok: <head>
                                          more_env: []
                                          words: [{<head>} {<-c>} {<2>}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {(DQ ($ Id.VSub_Number 1))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      right: <Id.Eof_RParen _>
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                            )
                          ]
                          ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'base='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'base='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <basename>
                                    more_env: []
                                    words: [{<basename>} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'symlink_target='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'symlink_target='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'symlink_target='>
                              name: symlink_target
                            )
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName GIT_BUILD_DIR) <'/'> ($ Id.VSub_DollarName base)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<-x>}
                                        {(DQ ($ Id.VSub_DollarName symlink_target))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {<Id.KW_Bang '!'>}
                                        {<-d>}
                                        {(DQ ($ Id.VSub_DollarName symlink_target))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {(DQ <'#!'>)}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {
                                          (DQ 
                                            (CommandSub
                                              left_token: <Id.Left_DollarParen '$('>
                                              child: 
                                                (command.Simple
                                                  blame_tok: <head>
                                                  more_env: []
                                                  words: [{<head>} {<-c>} {<2>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Less '<'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {(DQ ($ Id.VSub_DollarName symlink_target))}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              right: <Id.Eof_RParen _>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'symlink_target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'symlink_target='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'symlink_target='>
                                      name: symlink_target
                                    )
                                  op: assign_op.Equal
                                  rhs: {<'../valgrind.sh'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [4702 4754]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName base))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <.sh>} {<Id.Lit_Star '*'> <.perl>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'symlink_target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'symlink_target='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'symlink_target='>
                                      name: symlink_target
                                    )
                                  op: assign_op.Equal
                                  rhs: {<'../unprocessed-script'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <make_symlink>
                          more_env: []
                          words: [
                            {<make_symlink>}
                            {(DQ ($ Id.VSub_DollarName symlink_target))}
                            {
                              (DQ ($ Id.VSub_DollarName GIT_VALGRIND) <'/bin/'> 
                                ($ Id.VSub_DollarName base)
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_VALGRIND='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_VALGRIND='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_VALGRIND='> name:GIT_VALGRIND)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName TEST_DIRECTORY) <'/valgrind'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName GIT_VALGRIND)) <'/bin'>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: 
                (for_iter.Words
                  words: [
                    {($ Id.VSub_DollarName GIT_BUILD_DIR) <'/git'> <Id.Lit_Star '*'>}
                    {($ Id.VSub_DollarName GIT_BUILD_DIR) <'/t/helper/test-'> <Id.Lit_Star '*'>}
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <make_valgrind_symlink>
                      more_env: []
                      words: [{<make_valgrind_symlink>} {($ Id.VSub_DollarName file)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <make_symlink>
              more_env: []
              words: [
                {<make_symlink>}
                {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/mergetools'>}
                {(DQ ($ Id.VSub_DollarName GIT_VALGRIND) <'/bin/mergetools'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OLDIFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OLDIFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLDIFS='> name:OLDIFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [path]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName PATH)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <ls>
                          more_env: []
                          words: [{<ls>} {(DQ ($ Id.VSub_DollarName path)) <'/git-'> <Id.Lit_Star '*'>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '2>'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.WhileUntil
                          keyword: <Id.KW_While while>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <read>
                                  more_env: []
                                  words: [{<read>} {<file>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          body: 
                            (command.DoGroup
                              left: <Id.KW_Do do>
                              children: [
                                (command.Simple
                                  blame_tok: <make_valgrind_symlink>
                                  more_env: []
                                  words: [{<make_valgrind_symlink>} {(DQ ($ Id.VSub_DollarName file))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName OLDIFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName GIT_VALGRIND) <'/bin'> <Id.Lit_Colon ':'> 
                      ($ Id.VSub_DollarName PATH)
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXEC_PATH='> name:GIT_EXEC_PATH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName GIT_VALGRIND) <'/bin'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<GIT_VALGRIND>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_VALGRIND_MODE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_VALGRIND_MODE='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_MODE='>
                      name: GIT_VALGRIND_MODE
                    )
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName valgrind))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<GIT_VALGRIND_MODE>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                      name: GIT_VALGRIND_ENABLED
                    )
                  op: assign_op.Equal
                  rhs: {<t>}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName valgrind_only))}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'GIT_VALGRIND_ENABLED='>
                          name: GIT_VALGRIND_ENABLED
                        )
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<GIT_VALGRIND_ENABLED>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [4471 4481]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GIT_TEST_INSTALLED))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
                          name: GIT_EXEC_PATH
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$GIT_TEST_INSTALLED'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName GIT_TEST_INSTALLED) <'/git'>}
                                  {<--exec-path>}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <error>
                  more_env: []
                  words: [
                    {<error>}
                    {(DQ <'Cannot run git from '> ($ Id.VSub_DollarName GIT_TEST_INSTALLED) <.>)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName GIT_TEST_INSTALLED) <Id.Lit_Colon ':'> 
                      ($ Id.VSub_DollarName GIT_BUILD_DIR) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXEC_PATH='> name:GIT_EXEC_PATH)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name GIT_TEST_EXEC_PATH>
                        var_name: GIT_TEST_EXEC_PATH
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_ColonHyphen _>
                            arg_word: {($ Id.VSub_DollarName GIT_EXEC_PATH)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [4986 4996]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'git_bin_dir='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'git_bin_dir='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'git_bin_dir='> name:git_bin_dir)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR) <'/bin-wrappers'>)}
            )
          ]
          redirects: []
        )
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Pipeline
                      negated: <Id.KW_Bang '!'>
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-x>} {(DQ ($ Id.VSub_DollarName git_bin_dir) <'/git'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: []
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.If
                  if_kw: <Id.KW_If if>
                  arms: [
                    (IfArm
                      keyword: <Id.KW_If if>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName with_dashes))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      then_kw: <Id.KW_Then then>
                      action: [
                        (command.Simple
                          blame_tok: <say>
                          more_env: []
                          words: [
                            {<say>}
                            {
                              (DQ ($ Id.VSub_DollarName git_bin_dir) 
                                <'/git is not executable; using GIT_EXEC_PATH'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      spids: [5064 5075]
                    )
                  ]
                  else_action: []
                  fi_kw: <Id.KW_Fi fi>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'with_dashes='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'with_dashes='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'with_dashes='> name:with_dashes)
                      op: assign_op.Equal
                      rhs: {<t>}
                    )
                  ]
                  redirects: []
                )
              ]
              spids: [5047 5061]
            )
          ]
          else_action: []
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'PATH='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'PATH='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName git_bin_dir) <':'> ($ Id.VSub_DollarName PATH))}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'GIT_EXEC_PATH='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXEC_PATH='> name:GIT_EXEC_PATH)
              op: assign_op.Equal
              rhs: {($ Id.VSub_DollarName GIT_BUILD_DIR)}
            )
          ]
          redirects: []
        )
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName with_dashes))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'PATH='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'PATH='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                      op: assign_op.Equal
                      rhs: 
                        {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR) <':'> ($ Id.VSub_DollarName PATH))}
                    )
                  ]
                  redirects: []
                )
              ]
              spids: [5108 5119]
            )
          ]
          else_action: []
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_TEMPLATE_DIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_TEMPLATE_DIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_TEMPLATE_DIR='> name:GIT_TEMPLATE_DIR)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/templates/blt'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_CONFIG_NOSYSTEM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_CONFIG_NOSYSTEM='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GIT_CONFIG_NOSYSTEM='>
              name: GIT_CONFIG_NOSYSTEM
            )
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_ATTR_NOSYSTEM='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_ATTR_NOSYSTEM='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_ATTR_NOSYSTEM='> name:GIT_ATTR_NOSYSTEM)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [
        {<export>}
        {<PATH>}
        {<GIT_EXEC_PATH>}
        {<GIT_TEMPLATE_DIR>}
        {<GIT_CONFIG_NOSYSTEM>}
        {<GIT_ATTR_NOSYSTEM>}
      ]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName GIT_TEST_CMP))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-n>}
                            {(DQ ($ Id.VSub_DollarName GIT_TEST_CMP_USE_COPIED_CONTEXT))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
                              name: GIT_TEST_CMP
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName DIFF) <' -c'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5172 5183]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_TEST_CMP='> name:GIT_TEST_CMP)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName DIFF) <' -u'>)}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [5159 5169]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GITPERLLIB='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GITPERLLIB='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GITPERLLIB='> name:GITPERLLIB)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/perl/blib/lib'> <Id.Lit_Colon ':'> 
              (DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/perl/blib/arch/auto/Git'>
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<GITPERLLIB>}]
      redirects: []
      do_fork: T
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-d>} {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/templates/blt'>}]
          redirects: []
          do_fork: T
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <error>
              more_env: []
              words: [{<error>} {(DQ <'You haven\'t built things yet, have you?'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {<-x>}
                        {(DQ ($ Id.VSub_DollarName GIT_BUILD_DIR)) <'/t/helper/test-chmtime'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'You need to build test-chmtime:'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(SQ <'Run "make t/helper/test-chmtime" in the source (toplevel) directory'>)}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [5246 5259]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_DIRECTORY='> name:TRASH_DIRECTORY)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'trash directory.'> 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <basename>
                      more_env: []
                      words: [{<basename>} {(DQ ($ Id.VSub_Number 0))} {<.sh>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName root))}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TRASH_DIRECTORY='> name:TRASH_DIRECTORY)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName root) <'/'> ($ Id.VSub_DollarName TRASH_DIRECTORY))}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY))})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <'/'>
          pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'TRASH_DIRECTORY='>
                      name: TRASH_DIRECTORY
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName TEST_OUTPUT_DIRECTORY) <'/'> 
                        ($ Id.VSub_DollarName TRASH_DIRECTORY)
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName debug))}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'remove_trash='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'remove_trash='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remove_trash='> name:remove_trash)
              op: assign_op.Equal
              rhs: {($ Id.VSub_DollarName TRASH_DIRECTORY)}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <rm>
          more_env: []
          words: [{<rm>} {<-fr>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY))}]
          redirects: []
          do_fork: T
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_EXIT_OK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_EXIT_OK='> name:GIT_EXIT_OK)
                  op: assign_op.Equal
                  rhs: {<t>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'FATAL: Cannot prepare test area'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<5>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'HOME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'HOME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOME='> name:HOME)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY))}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GNUPGHOME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GNUPGHOME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GNUPGHOME='> name:GNUPGHOME)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName HOME) <'/gnupg-home-not-used'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<HOME>} {<GNUPGHOME>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName TEST_NO_CREATE_REPO))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <test_create_repo>
              more_env: []
              words: [{<test_create_repo>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY))}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [5422 5432]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY))}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <cd>
          more_env: []
          words: [{<cd>} {<-P>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY))}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'this_test='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'this_test='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'this_test='> name:this_test)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Number 0>
                var_name: 0
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_DPound '##'>
                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'this_test='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'this_test='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'this_test='> name:this_test)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name this_test>
                var_name: this_test
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_DPercent '%%'>
                    arg_word: {<-> <Id.Lit_Other '*'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <match_pattern_list>
                  more_env: []
                  words: [
                    {<match_pattern_list>}
                    {(DQ ($ Id.VSub_DollarName this_test))}
                    {($ Id.VSub_DollarName GIT_SKIP_TESTS)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <say_color>
              more_env: []
              words: [
                {<say_color>}
                {<info>}
                {(DQ <'skipping test '> ($ Id.VSub_DollarName this_test) <' altogether'>)}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'skip_all='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'skip_all='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all)
                  op: assign_op.Equal
                  rhs: {(DQ <'skip all tests in '> ($ Id.VSub_DollarName this_test))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_done>
              more_env: []
              words: [{<test_done>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [5491 5501]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <yes>
      name: yes
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<0>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'y='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'y='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                          op: assign_op.Equal
                          rhs: {<y>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [5541 5552]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'y='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'y='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Star '*'))}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {($ Id.VSub_DollarName i)} {<-lt>} {<99>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName y))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName i)}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <uname>
                    more_env: []
                    words: [{<uname>} {<-s>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <MINGW> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShFunction
              name_tok: <sort>
              name: sort
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <'/usr/bin/sort'>
                      more_env: []
                      words: [{<'/usr/bin/sort'>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <find>
              name: find
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <'/usr/bin/find'>
                      more_env: []
                      words: [{<'/usr/bin/find'>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <sum>
              name: sum
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <md5sum>
                      more_env: []
                      words: [{<md5sum>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.ShFunction
              name_tok: <pwd>
              name: pwd
              body: 
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Simple
                      blame_tok: <builtin>
                      more_env: []
                      words: [{<builtin>} {<pwd>} {<-W>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<MINGW>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<NATIVE_CRLF>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<SED_STRIPS_CR>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<GREP_STRIPS_CR>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_TEST_CMP='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_TEST_CMP='> name:GIT_TEST_CMP)
                  op: assign_op.Equal
                  rhs: {<mingw_test_cmp>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <CYGWIN> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<POSIXPERM>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<EXECKEEPSPID>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<CYGWIN>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<SED_STRIPS_CR>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<GREP_STRIPS_CR>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<POSIXPERM>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<BSLASHPSPEC>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<EXECKEEPSPID>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'COLUMNS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'COLUMNS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COLUMNS='> name:COLUMNS)
                      op: assign_op.Equal
                      rhs: {<1>}
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_DollarName COLUMNS)} {<Id.Lit_Equals '='>} {<1>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <test_set_prereq>
          more_env: []
          words: [{<test_set_prereq>} {<COLUMNS_CAN_BE_1>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName NO_PERL))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <test_set_prereq>
          more_env: []
          words: [{<test_set_prereq>} {<PERL>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName NO_PYTHON))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <test_set_prereq>
          more_env: []
          words: [{<test_set_prereq>} {<PYTHON>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName USE_LIBPCRE))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <test_set_prereq>
          more_env: []
          words: [{<test_set_prereq>} {<LIBPCRE>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <test>
          more_env: []
          words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName NO_GETTEXT))}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <test_set_prereq>
          more_env: []
          words: [{<test_set_prereq>} {<GETTEXT>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GETTEXT_POISON))}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'GIT_GETTEXT_POISON='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'GIT_GETTEXT_POISON='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'GIT_GETTEXT_POISON='>
                      name: GIT_GETTEXT_POISON
                    )
                  op: assign_op.Equal
                  rhs: {<YesPlease>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<GIT_GETTEXT_POISON>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_set_prereq>
              more_env: []
              words: [{<test_set_prereq>} {<GETTEXT_POISON>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [5888 5898]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <test_set_prereq>
          more_env: []
          words: [{<test_set_prereq>} {<C_LOCALE_OUTPUT>}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <test_i18ncmp>
      name: test_i18ncmp
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GETTEXT_POISON))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test_cmp>
                  more_env: []
                  words: [{<test_cmp>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_i18ngrep>
      name: test_i18ngrep
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName GETTEXT_POISON))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [5986 5997]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ <'x!'>)}
                            {<Id.Lit_Equals '='>}
                            {(DQ <x> ($ Id.VSub_Number 1))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      negated: <Id.KW_Bang '!'>
                      children: [
                        (command.Simple
                          blame_tok: <grep>
                          more_env: []
                          words: [{<grep>} {(DQ ($ Id.VSub_At '@'))}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: []
                    )
                  ]
                  spids: [6006 6022]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {(DQ ($ Id.VSub_At '@'))}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<PIPE>}
        {
          (SQ <'\n'> <'\t# test whether the filesystem supports FIFOs\n'> <'\tcase $(uname -s) in\n'> 
            <'\tCYGWIN*|MINGW*)\n'> <'\t\tfalse\n'> <'\t\t;;\n'> <'\t*)\n'> <'\t\trm -f testfifo && mkfifo testfifo\n'> <'\t\t;;\n'> 
            <'\tesac\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<SYMLINKS>}
        {
          (SQ <'\n'> <'\t# test whether the filesystem supports symbolic links\n'> 
            <'\tln -s x y && test -h y\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<FILEMODE>}
        {(SQ <'\n'> <'\ttest "$(git config --bool core.filemode)" = true\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<CASE_INSENSITIVE_FS>}
        {
          (SQ <'\n'> <'\techo good >CamelCase &&\n'> <'\techo bad >camelcase &&\n'> 
            <'\ttest "$(cat CamelCase)" != good\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<UTF8_NFD_TO_NFC>}
        {
          (SQ <'\n'> <'\t# check whether FS converts nfd unicode to nfc\n'> 
            <'\tauml=$(printf "\\303\\244")\n'> <'\taumlcdiar=$(printf "\\141\\314\\210")\n'> <'\t>"$auml" &&\n'> <'\tcase "$(echo *)" in\n'> 
            <'\t"$aumlcdiar")\n'> <'\t\ttrue ;;\n'> <'\t*)\n'> <'\t\tfalse ;;\n'> <'\tesac\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<AUTOIDENT>}
        {
          (SQ <'\n'> <'\tsane_unset GIT_AUTHOR_NAME &&\n'> <'\tsane_unset GIT_AUTHOR_EMAIL &&\n'> 
            <'\tgit var GIT_AUTHOR_IDENT\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [{<test_lazy_prereq>} {<EXPENSIVE>} {(SQ <'\n'> <'\ttest -n "$GIT_TEST_LONG"\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [{<test_lazy_prereq>} {<USR_BIN_TIME>} {(SQ <'\n'> <'\ttest -x /usr/bin/time\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<NOT_ROOT>}
        {(SQ <'\n'> <'\tuid=$(id -u) &&\n'> <'\ttest "$uid" != 0\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [{<test_lazy_prereq>} {<JGIT>} {(SQ <'\n'> <'\ttype jgit\n'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<SANITY>}
        {
          (SQ <'\n'> <'\tmkdir SANETESTD.1 SANETESTD.2 &&\n'> <'\n'> 
            <'\tchmod +w SANETESTD.1 SANETESTD.2 &&\n'> <'\t>SANETESTD.1/x 2>SANETESTD.2/x &&\n'> <'\tchmod -w SANETESTD.1 &&\n'> 
            <'\tchmod -r SANETESTD.1/x &&\n'> <'\tchmod -rx SANETESTD.2 ||\n'> <'\terror "bug in test sript: cannot prepare SANETESTD"\n'> <'\n'> 
            <'\t! test -r SANETESTD.1/x &&\n'> <'\t! rm SANETESTD.1/x && ! test -f SANETESTD.2/x\n'> <'\tstatus=$?\n'> <'\n'> 
            <'\tchmod +rwx SANETESTD.1 SANETESTD.2 &&\n'> <'\trm -rf SANETESTD.1 SANETESTD.2 ||\n'> <'\terror "bug in test sript: cannot clean SANETESTD"\n'> 
            <'\treturn $status\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GIT_UNZIP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GIT_UNZIP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_UNZIP='> name:GIT_UNZIP)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name GIT_UNZIP>
                var_name: GIT_UNZIP
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<unzip>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<UNZIP>}
        {(SQ <'\n'> <'\t"$GIT_UNZIP" -v\n'> <'\ttest $? -ne 127\n'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <run_with_limited_cmdline>
      name: run_with_limited_cmdline
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <ulimit>
                      more_env: []
                      words: [{<ulimit>} {<-s>} {<128>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [{(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [{<test_lazy_prereq>} {<CMDLINE_LIMIT>} {(SQ <'run_with_limited_cmdline true'>)}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <build_option>
      name: build_option
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<version>} {<--build-options>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {<-ne>} {(DQ <'s/^'> ($ Id.VSub_Number 1) <': //p'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_lazy_prereq>
      more_env: []
      words: [
        {<test_lazy_prereq>}
        {<LONG_IS_64BIT>}
        {(SQ <'\n'> <'\ttest 8 -le "$(build_option sizeof-long)"\n'>)}
      ]
      redirects: []
      do_fork: T
    )
  ]
)