(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:outfile)
          op: Equal
          rhs: {(DQ (/tmp/rb.) ($ VSub_Dollar '$$') (.tgz))}
          spids: [22]
        )
      ]
      spids: [22]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:outfname)
          op: Equal
          rhs: 
            {
              (DQ (backup.) 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(date)} 
                          {(Lit_Other '+') (Lit_Other '%') (y) (Lit_Other '%') (m) (Lit_Other '%') (d)}
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [32 42]
                ) (.tgz)
              )
            }
          spids: [29]
        )
      ]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:infile)
          op: Equal
          rhs: {(DQ (/tmp/rb.) ($ VSub_Dollar '$$') (.in))}
          spids: [46]
        )
      ]
      spids: [46]
    )
    (C {(trap)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(which)} {(rm)})])
            left_token: <Left_Backtick '`'>
            spids: [57 61]
          ) (' -f ') ($ VSub_Name '$outfile') (' ') ($ VSub_Name '$infile')
        )
      } {(0)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(2)} {(-a)} {($ VSub_Pound '$#')} 
                  {(-ne)} {(3)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                      left_token: <Left_CommandSub '$('>
                      spids: [100 104]
                    ) (' backup-file-list remoteaddr {targetdir}')
                  )
                }
              ]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 93]
        )
      ]
      spids: [16777215 116]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-s)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ('Error: backup list ') ($ VSub_Number '$1') (' is empty or missing'))}
              ]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 135]
        )
      ]
      spids: [16777215 154]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [(Sentence child:(C {(read)} {(entry)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Name '$entry'))})
                (SimpleCommand
                  words: [{(sed)} {(-e)} {(SQ <'s/ /\\\\ /g'>)}]
                  redirects: [
                    (Redir
                      op: <Redir_DGreat '>>'>
                      fd: 16777215
                      arg_word: {($ VSub_Name '$infile')}
                    )
                  ]
                )
              ]
              negated: F
            )
          ]
          spids: [174 197]
        )
      redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(DQ ($ VSub_Number '$1'))})]
    )
    (Pipeline
      children: [
        (C {(tar)} {(czf)} {(-)} 
          {
            (CommandSubPart
              command_list: (CommandList children:[(C {(cat)} {($ VSub_Name '$infile')})])
              left_token: <Left_CommandSub '$('>
              spids: [216 220]
            )
          }
        )
        (C {(uuencode)} {($ VSub_Name '$outfname')})
        (C {(mail)} {(-s)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Number 3>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: 
                      {('Backup archive for ') 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(date)})])
                          left_token: <Left_CommandSub '$('>
                          spids: [243 245]
                        )
                      }
                  )
                spids: [239 246]
              )
            )
          } {(DQ ($ VSub_Number '$2'))}
        )
      ]
      negated: F
    )
    (C {(echo)} 
      {
        (DQ ('Done. ') 
          (CommandSubPart
            command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
            left_token: <Left_CommandSub '$('>
            spids: [259 263]
          ) (' backed up the following files:')
        )
      }
    )
    (C {(sed)} {(SQ <'s/^/   /'>)} {($ VSub_Name '$infile')})
    (C {(echo)} {(-n)} {(DQ ('and mailed them to ') ($ VSub_Number '$2') (' '))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(echo)} {(DQ ('with requested target directory ') ($ VSub_Number '$3'))})]
          spids: [16777215 301]
        )
      ]
      else_action: [(C {(echo)} {(DQ )})]
      spids: [311 319]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)