(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ATJOBDIR)
          op: assign_op.Equal
          rhs: {(DQ <'/var/at/jobs'>)}
          spids: [85]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CRONJOBDIR)
          op: assign_op.Equal
          rhs: {(DQ <'/var/cron/tabs'>)}
          spids: [90]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAILSPOOL)
          op: assign_op.Equal
          rhs: {(DQ <'/var/mail'>)}
          spids: [95]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SIGKILL)
          op: assign_op.Equal
          rhs: {(DQ <-KILL>)}
          spids: [100]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPDIRS)
          op: assign_op.Equal
          rhs: {(DQ <'/tmp /var/tmp'>)}
          spids: [105]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:THISCMD)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<'/usr/bin/basename'>} {($ Id.VSub_Number '$0')})
              )
            }
          spids: [110]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PWCMD)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (braced_var_sub
                  token: <Id.VSub_Name PWCMD>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_ColonHyphen ':-'>
                      arg_word: 
                        {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <sbin> <Id.Lit_Slash '/'> <pw>}
                    )
                )
              )
            }
          spids: [119]
        )
      ]
    )
    (command.ShFunction
      name: err
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<echo>} {(${ Id.VSub_Name THISCMD) <Id.Lit_Colon ':'>} {($ Id.VSub_Star '$*')}]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: verbose
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vflag'))} 
                  {<Id.Lit_RBracket ']'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<0>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: rm_files
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:login)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [239]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:totalcount)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [248]
                )
              ]
            )
            (command.ForEach
              iter_name: _dir
              iter_words: [{(${ Id.VSub_Name TEMPDIRS)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:filecount)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [267]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                      {($ Id.VSub_DollarName '$_dir')} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<err>} 
                              {(DQ ($ Id.VSub_DollarName '$_dir') <' is not a valid directory.'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [271 284]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<verbose>})
                        (C {<echo>} {<-n>} 
                          {
                            (DQ <'Removing files owned by ('> ($ Id.VSub_DollarName '$login') <') in '> 
                              ($ Id.VSub_DollarName '$_dir') <':'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:filecount)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        words: [
                                          {<find>}
                                          {(DQ ($ Id.VSub_DollarName '$_dir'))}
                                          {<-user>}
                                          {(DQ ($ Id.VSub_DollarName '$login'))}
                                          {<-delete>}
                                          {<-print>}
                                        ]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                      (C {<wc>} {<-l>})
                                      (C {<sed>} {(SQ <'s/ *//'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [318]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<verbose>})
                        (C {<echo>} {(DQ <' '> ($ Id.VSub_DollarName '$filecount') <' removed.'>)})
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:totalcount)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName '$totalcount')}
                                    right: {($ Id.VSub_DollarName '$filecount')}
                                  )
                              )
                            }
                          spids: [372]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Pipeline children:[(C {<verbose>})] negated:T)
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$totalcount')} {<-ne>} {<0>} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {<-n>} {(DQ <' files('> ($ Id.VSub_DollarName '$totalcount') <')'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: rm_mail
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:login)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [450]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} {<-n>} 
                  {(DQ <'Removing mail spool(s) for ('> ($ Id.VSub_DollarName '$login') <'):'>)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(${ Id.VSub_Name MAILSPOOL) <'/'> ($ Id.VSub_DollarName '$login')} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<verbose>})
                        (C {<echo>} {<-n>} 
                          {
                            (DQ <' '> (${ Id.VSub_Name MAILSPOOL) <'/'> ($ Id.VSub_DollarName '$login'))
                          }
                        )
                        (C {<echo>} {<-n>} {(DQ <' mailspool'>)})
                      ]
                    )
                    (C {<rm>} {(${ Id.VSub_Name MAILSPOOL) <'/'> ($ Id.VSub_DollarName '$login')})
                  ]
                  spids: [474 489]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(${ Id.VSub_Name MAILSPOOL) <'/.'> (${ Id.VSub_Name login) <.pop>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<verbose>})
                        (C {<echo>} {<-n>} 
                          {
                            (DQ <' '> (${ Id.VSub_Name MAILSPOOL) <'/.'> (${ Id.VSub_Name login) <.pop>)
                          }
                        )
                        (C {<echo>} {<-n>} {(DQ <' pop3'>)})
                      ]
                    )
                    (C {<rm>} {(${ Id.VSub_Name MAILSPOOL) <'/.'> (${ Id.VSub_Name login) <.pop>})
                  ]
                  spids: [533 551]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<verbose>}) (C {<echo>} {(SQ <.>)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: kill_procs
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:login)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [644]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} {<-n>} 
                  {
                    (DQ <'Terminating all processes owned by ('> ($ Id.VSub_DollarName '$login') <'):'>)
                  }
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:killcount)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [668]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:proclist)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                words: [{<ps>} {<-U>} {($ Id.VSub_DollarName '$login')}]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (C {<grep>} {<-v>} {(SQ <'^\\ *PID'>)})
                              (C {<awk>} {(SQ <'{print $1}'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [672]
                )
              ]
            )
            (command.ForEach
              iter_name: _pid
              iter_words: [{($ Id.VSub_DollarName '$proclist')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [{<kill>} {(${ Id.VSub_Name SIGKILL)} {($ Id.VSub_DollarName '$_pid')}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:killcount)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName '$killcount')}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                              )
                            }
                          spids: [732]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} 
                  {
                    (DQ <' '> (${ Id.VSub_Name SIGKILL) <' signal sent to '> 
                      ($ Id.VSub_DollarName '$killcount') <' processes.'>
                    )
                  }
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Pipeline children:[(C {<verbose>})] negated:T)
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$killcount')} {<-ne>} {<0>} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {<-n>} {(DQ <' processes('> (${ Id.VSub_Name killcount) <')'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: rm_at_jobs
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:login)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [826]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:atjoblist)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [
                              {<find>}
                              {(${ Id.VSub_Name ATJOBDIR)}
                              {<-maxdepth>}
                              {<1>}
                              {<-user>}
                              {($ Id.VSub_DollarName '$login')}
                              {<-print>}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [835]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:jobcount)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [860]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} {<-n>} 
                  {(DQ <'Removing at(1) jobs owned by ('> ($ Id.VSub_DollarName '$login') <'):'>)}
                )
              ]
            )
            (command.ForEach
              iter_name: _atjob
              iter_words: [{($ Id.VSub_DollarName '$atjoblist')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$_atjob')})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:jobcount)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName '$jobcount')}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                              )
                            }
                          spids: [899]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} {(DQ <' '> ($ Id.VSub_DollarName '$jobcount') <' removed.'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (command.Pipeline children:[(C {<verbose>})] negated:T)
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$jobcount')} {<-ne>} {<0>} 
                  {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {<-n>} {(DQ <' at('> ($ Id.VSub_DollarName '$jobcount') <')'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: rm_crontab
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:login)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [987]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} {<-n>} 
                  {(DQ <'Removing crontab for ('> ($ Id.VSub_DollarName '$login') <'):'>)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(${ Id.VSub_Name CRONJOBDIR) <'/'> ($ Id.VSub_DollarName '$login')} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<verbose>})
                        (C {<echo>} {<-n>} 
                          {
                            (DQ <' '> (${ Id.VSub_Name CRONJOBDIR) <'/'> ($ Id.VSub_DollarName '$login'))
                          }
                        )
                        (C {<echo>} {<-n>} {(DQ <' crontab'>)})
                      ]
                    )
                    (C {<rm>} {<-f>} 
                      {(${ Id.VSub_Name CRONJOBDIR) <'/'> ($ Id.VSub_DollarName '$login')}
                    )
                  ]
                  spids: [1011 1026]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<verbose>}) (C {<echo>} {(SQ <.>)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: rm_ipc
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<verbose>}) (C {<echo>} {<-n>} {(DQ <'Removing IPC mechanisms'>)})]
            )
            (command.ForEach
              iter_name: i
              iter_words: [{<s>} {<m>} {<q>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (C {<ipcs>} {<-> ($ Id.VSub_DollarName '$i')})
                        (C {<awk>} {<-v>} {<Id.Lit_VarLike 'i='> ($ Id.VSub_DollarName '$i')} {<-v>} 
                          {<Id.Lit_VarLike 'login='> ($ Id.VSub_Number '$1')} {(SQ <'$1 == i && $5 == login { print $2 }'>)}
                        )
                        (C {<xargs>} {<-n>} {<1>} {<ipcrm>} {<-> ($ Id.VSub_DollarName '$i')})
                      ]
                      negated: F
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<verbose>}) (C {<echo>} {(SQ <.>)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: rm_user
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:login)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [1232]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<verbose>})
                (C {<echo>} {<-n>} {(DQ <'Removing user ('> ($ Id.VSub_DollarName '$login') <')'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$pw_rswitch'))} 
                  {<Id.Lit_RBracket ']'>}
                )
                (BraceGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<verbose>})
                        (C {<echo>} {<-n>} {(DQ <' (including home directory)'>)})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Pipeline
                          children: [(C {<verbose>})]
                          negated: T
                        )
                        (C {<echo>} {<-n>} {(DQ <' home'>)})
                      ]
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.Pipeline children:[(C {<verbose>})] negated:T)
                (C {<echo>} {<-n>} {(DQ <' passwd'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<verbose>}) (C {<echo>} {<-n>} {(DQ <' from the system:'>)})]
            )
            (C {(${ Id.VSub_Name PWCMD)} {<userdel>} {<-n>} {($ Id.VSub_DollarName '$login')} 
              {($ Id.VSub_DollarName '$pw_rswitch')}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<verbose>}) (C {<echo>} {(SQ <' Done.'>)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: prompt_yesno
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:msg)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number '$1'))}
                      spids: [1394]
                    )
                  ]
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: (C {<Id.Lit_Colon ':'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (C {<echo>} {<-n>} {(DQ ($ Id.VSub_DollarName '$msg'))})
                    (C {<read>} {<_ans>})
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$_ans')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Oo> 
                              <Id.Lit_RBracket ']'>
                            }
                            {<Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [1435 1445 1453 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> 
                              <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ss> <Id.Lit_RBracket ']'>
                            }
                            {<Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> 
                              <Id.Lit_RBracket ']'>
                            }
                            {<Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [1456 1476 1484 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          spids: [1487 1488 1491 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: show_usage
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {(DQ <'usage: '> (${ Id.VSub_Name THISCMD) <' [-yv] [-f file] [user ...]'>)})
            (C {<echo>} {(DQ <'       if the -y switch is used, either the -f switch or'>)})
            (C {<echo>} {(DQ <'       one or more user names must be given'>)})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ffile)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1552]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:fflag)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1554]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:procowner)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1556]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pw_rswitch)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1558]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:userlist)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1560]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:yflag)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1562]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:vflag)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [1564]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:procowner)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<'/usr/bin/id'>} {<-u>}))}
          spids: [1567]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$procowner'))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<err>} {(SQ <'you must be root (0) to use this utility.'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [1576 1594]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:args)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    words: [{<getopt>} {<yvf> <Id.Lit_Colon ':'>} {($ Id.VSub_Star '$*')}]
                    redirects: [
                      (redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                    do_fork: T
                  )
              )
            }
          spids: [1611]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_QMark '$?'))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<show_usage>})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [1626 1644]
        )
      ]
    )
    (C {<set>} {<-->} {($ Id.VSub_DollarName '$args')})
    (command.ForEach
      iter_name: _switch
      do_arg_iter: T
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName '$_switch')}
              arms: [
                (case_arm
                  pat_list: [{<-y>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:yflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [1682]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [1678 1679 1689 -1]
                )
                (case_arm
                  pat_list: [{<-v>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:vflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [1696]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [1692 1693 1703 -1]
                )
                (case_arm
                  pat_list: [{<-f>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fflag)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [1710]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ffile)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$2'))}
                          spids: [1714]
                        )
                      ]
                    )
                    (command.Sentence
                      child: (C {<shift>})
                      terminator: <Id.Op_Semi _>
                    )
                    (C {<shift>})
                  ]
                  spids: [1706 1707 1726 -1]
                )
                (case_arm
                  pat_list: [{<-->}]
                  action: [(C {<shift>}) (command.ControlFlow token:<Id.ControlFlow_Break break>)]
                  spids: [1729 1730 1739 -1]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$fflag')} {<Id.Lit_RBracket ']'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_insecure)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (C {<find>} {($ Id.VSub_DollarName '$ffile')} {<Id.KW_Bang '!'>} {<-user>} {<0>} 
                            {<-or>} {<-perm>} {<Id.Lit_Other '+'> <0022>}
                          )
                      )
                    }
                  spids: [1771]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$_insecure'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<err>} 
                      {
                        (DQ <'file ('> ($ Id.VSub_DollarName '$ffile') 
                          <') must be owned by and writeable only by root.'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1794 1807]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-r>} {(DQ ($ Id.VSub_DollarName '$ffile'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:userlist)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<cat>} {($ Id.VSub_DollarName '$ffile')})
                                      (command.WhileUntil
                                        keyword: <Id.KW_While while>
                                        cond: 
                                          (condition.Shell
                                            commands: [
                                              (command.Sentence
                                                child: (C {<read>} {<_user>} {<_junk>})
                                                terminator: <Id.Op_Semi _>
                                              )
                                            ]
                                          )
                                        body: 
                                          (command.DoGroup
                                            children: [
                                              (command.Case
                                                to_match: {($ Id.VSub_DollarName '$_user')}
                                                arms: [
                                                  (case_arm
                                                    pat_list: [
                                                      {
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\#'>
                                                        ) <Id.Lit_Star '*'>
                                                      }
                                                      {(SQ )}
                                                    ]
                                                    spids: [1883 1888 1891 -1]
                                                  )
                                                  (case_arm
                                                    pat_list: [{<Id.Lit_Star '*'>}]
                                                    action: [
                                                      (C {<echo>} {<-n>} 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$userlist') <' '> 
                                                            ($ Id.VSub_DollarName '$_user')
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    spids: [1894 1895 1909 -1]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [1843]
                        )
                      ]
                    )
                  ]
                  spids: [1827 1840]
                )
              ]
            )
          ]
          spids: [1759 1768]
        )
      ]
      else_action: [
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Number '$1')} {<Id.Lit_RBracket ']'>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          body: 
            (command.DoGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:userlist)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$userlist') <' '> ($ Id.VSub_Number '$1'))}
                      spids: [1937]
                    )
                  ]
                )
                (C {<shift>})
              ]
            )
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} 
                      {(DQ ($ Id.VSub_DollarName '$userlist'))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$fflag')} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<err>} 
                      {
                        (DQ <'('> ($ Id.VSub_DollarName '$ffile') 
                          <') does not exist or does not contain any user names.'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1981 1990]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$yflag')} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<show_usage>})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [2007 2016]
                )
              ]
              else_action: [
                (C {<echo>} {<-n>} {(DQ <'Please enter one or more usernames: '>)})
                (C {<read>} {<userlist>})
              ]
            )
          ]
          spids: [1965 1978]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_user)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [2049]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_uid)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [2051]
        )
      ]
    )
    (command.ForEach
      iter_name: _user
      iter_words: [{($ Id.VSub_DollarName '$userlist')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:userrec)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{<pw>} {<usershow>} {<-n>} {($ Id.VSub_DollarName '$_user')}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [2078]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_QMark '$?'))} 
                              {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<err>} 
                      {
                        (DQ <'user ('> ($ Id.VSub_DollarName '$_user') 
                          <') does not exist in the password database.'>
                        )
                      }
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                  ]
                  spids: [2095 2113]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_uid)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {($ Id.VSub_DollarName '$userrec')})
                              (C {<awk>} {<-F> <Id.Lit_Colon ':'>} {(SQ <'{print $3}'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [2131]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$_uid'))} 
                              {<Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<err>} 
                      {
                        (DQ <'user ('> ($ Id.VSub_DollarName '$_user') 
                          <') has uid 0. You may not remove this user.'>
                        )
                      }
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
                  ]
                  spids: [2152 2169]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$yflag'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <'Matching password entry:'>)})
                    (C {<echo>})
                    (C {<echo>} {($ Id.VSub_DollarName '$userrec')})
                    (C {<echo>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<prompt_yesno>} 
                                          {(DQ <'Is this the entry you wish to remove? '>)}
                                        )
                                      ]
                                      negated: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [2234 2246]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:_homedir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {($ Id.VSub_DollarName '$userrec')})
                                      (C {<awk>} {<-F> <Id.Lit_Colon ':'>} {(SQ <'{print $9}'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [2255]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<prompt_yesno>} 
                                      {
                                        (DQ <'Remove user\'s home directory ('> 
                                          ($ Id.VSub_DollarName '$_homedir') <')? '>
                                        )
                                      }
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pw_rswitch)
                                  op: assign_op.Equal
                                  rhs: {(DQ <-r>)}
                                  spids: [2290]
                                )
                              ]
                            )
                          ]
                          spids: [2276 2287]
                        )
                      ]
                    )
                  ]
                  spids: [2200 2213]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:pw_rswitch)
                      op: assign_op.Equal
                      rhs: {(DQ <-r>)}
                      spids: [2302]
                    )
                  ]
                )
              ]
            )
            (command.Simple
              words: [{(${ Id.VSub_Name PWCMD)} {<lock>} {($ Id.VSub_DollarName '$_user')}]
              redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.Pipeline children:[(C {<verbose>})] negated:T)
                (C {<echo>} {<-n>} {(DQ <'Removing user ('> ($ Id.VSub_DollarName '$_user') <'):'>)})
              ]
            )
            (C {<rm_crontab>} {($ Id.VSub_DollarName '$_user')})
            (C {<rm_at_jobs>} {($ Id.VSub_DollarName '$_user')})
            (C {<rm_ipc>} {($ Id.VSub_DollarName '$_user')})
            (C {<kill_procs>} {($ Id.VSub_DollarName '$_user')})
            (C {<rm_files>} {($ Id.VSub_DollarName '$_user')})
            (C {<rm_mail>} {($ Id.VSub_DollarName '$_user')})
            (C {<rm_user>} {($ Id.VSub_DollarName '$_user')})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(command.Pipeline children:[(C {<verbose>})] negated:T) (C {<echo>} {(DQ <.>)})]
            )
          ]
        )
    )
  ]
)