(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CONFFILE spids:[20])
          op: Equal
          rhs: {(word_part.TildeSubPart token:<Lit_TildeLike '~'>) (/.appprc)}
          spids: [20]
        )
      ]
      spids: [20]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SEP spids:[25])
          op: Equal
          rhs: {(DQ ("-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"))}
          spids: [25]
        )
      ]
      spids: [25]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_DollarName '$CONFFILE'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:LAST_DIR spids:[47])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(grep)} {(-m)} {(1)} {(DQ ('^LAST_DIR='))} 
                                    {(DQ (${ VSub_Name CONFFILE))}
                                  )
                                  (C {(sed)} {(-e)} {(SQ <'s/^LAST_DIR=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [48 72]
                      )
                    }
                  spids: [47]
                )
              ]
              spids: [47]
            )
            (C {(cd)} {(DQ (${ VSub_Name LAST_DIR))})
          ]
          spids: [16777215 44]
        )
      ]
      else_action: [
        (command.SimpleCommand
          words: [{(cd)}]
          redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
        )
      ]
      spids: [83 92]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PATCH spids:[95])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: (command.CommandList children:[(C {(zenity)} {(--file-selection)})])
                left_token: <Left_CommandSub '$('>
                spids: [96 100]
              )
            }
          spids: [95]
        )
      ]
      spids: [95]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_QMark '$?'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (0))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})]
          spids: [16777215 122]
        )
      ]
      spids: [16777215 133]
    )
    (command.SimpleCommand
      words: [{(cd)} {(-)}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SUBJECT spids:[145])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(sed)} {(-n)} {(-e)} {(SQ <'/^Subject: /p'>)} {(DQ (${ VSub_Name PATCH))})
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [146 162]
              )
            }
          spids: [145]
        )
      ]
      spids: [145]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HEADERS spids:[164])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(sed)} {(-e)} {(SQ <'/^'>) (DQ (${ VSub_Name SEP)) (SQ <'$/,$d'>)} 
                        {($ VSub_Number '$1')}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [165 183]
              )
            }
          spids: [164]
        )
      ]
      spids: [164]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:BODY spids:[185])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(sed)} {(-e)} {(DQ ('1,/') (${ VSub_Name SEP) (/d))} {($ VSub_Number '$1')})
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [186 200]
              )
            }
          spids: [185]
        )
      ]
      spids: [185]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CMT_MSG spids:[202])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(sed)} {(-e)} {(SQ <'1,/^$/d'>)} {(-e)} {(SQ <'/^---$/,$d'>)} 
                        {(DQ (${ VSub_Name PATCH))}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [203 223]
              )
            }
          spids: [202]
        )
      ]
      spids: [202]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DIFF spids:[225])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [(C {(sed)} {(-e)} {(SQ <'1,/^---$/d'>)} {(DQ (${ VSub_Name PATCH))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [226 240]
              )
            }
          spids: [225]
        )
      ]
      spids: [225]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CCS spids:[243])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {(echo)} {(-e)} 
                            {
                              (DQ ($ VSub_DollarName '$CMT_MSG') (Lit_Other '\\') (n) 
                                ($ VSub_DollarName '$HEADERS')
                              )
                            }
                          )
                          (C {(sed)} {(-n)} {(-e)} {(SQ <'s/^Cc: \\(.*\\)$/\\1,/gp'>)} {(-e)} 
                            {(SQ <'s/^Signed-off-by: \\(.*\\)/\\1,/gp'>)}
                          )
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [244 275]
              )
            }
          spids: [243]
        )
      ]
      spids: [243]
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ ($ VSub_DollarName '$SUBJECT'))}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ ('Cc: ') ($ VSub_DollarName '$CCS'))}]
      redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
    )
    (command.Pipeline
      children: [
        (C {(echo)} {(DQ ($ VSub_DollarName '$HEADERS'))})
        (command.SimpleCommand
          words: [{(sed)} {(-e)} {(SQ <'/^Subject: /d'>)} {(-e)} {(SQ <'/^Cc: /d'>)}]
          redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
        )
      ]
      negated: F
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ ($ VSub_DollarName '$SEP'))}]
      redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ ($ VSub_DollarName '$CMT_MSG'))}]
      redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ (---))}]
      redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name BODY) (x))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ (xx))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(echo)}]
              redirects: [
                (redir.Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {($ VSub_Number '$1')}
                )
              ]
            )
            (command.SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_DollarName '$BODY'))}]
              redirects: [
                (redir.Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {($ VSub_Number '$1')}
                )
              ]
            )
            (command.SimpleCommand
              words: [{(echo)}]
              redirects: [
                (redir.Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {($ VSub_Number '$1')}
                )
              ]
            )
          ]
          spids: [16777215 379]
        )
      ]
      spids: [16777215 406]
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ ($ VSub_DollarName '$DIFF'))}]
      redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Number '$1')})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:LAST_DIR spids:[419])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name PATCH))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [420 428]
              )
            }
          spids: [419]
        )
      ]
      spids: [419]
    )
    (command.SimpleCommand
      words: [{(grep)} {(-v)} {(DQ ('^LAST_DIR='))} {(DQ (${ VSub_Name CONFFILE))}]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name CONFFILE) (_))}
        )
      ]
    )
    (command.SimpleCommand
      words: [{(echo)} {(DQ ('LAST_DIR=') (${ VSub_Name LAST_DIR))}]
      redirects: [
        (redir.Redir
          op: <Redir_DGreat '>>'>
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name CONFFILE) (_))}
        )
      ]
    )
    (C {(mv)} {(DQ (${ VSub_Name CONFFILE) (_))} {(DQ (${ VSub_Name CONFFILE))})
  ]
)