(CommandList
  children: [
    (FuncDef
      name: smallyes
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:YES)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(y)})
                          spids: [13 17]
                        )
                      )
                    }
                  spids: [11]
                )
              ]
              spids: [11]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$YES'))}]
                      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[29])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
                  spids: [34 40]
                )
            )
          ]
          spids: [8]
        )
      spids: [4 7]
    )
    (FuncDef
      name: in_path
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OLD_IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$IFS'))}
                  spids: [55]
                )
              ]
              spids: [53]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(DQ (':'))} spids:[61])]
              spids: [61]
            )
            (ForEach
              iter_name: dir
              iter_words: [{($ VSub_Name '$PATH')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-x)} 
                                  {(DQ ($ VSub_Name '$dir') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:IFS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OLD_IFS'))}
                                  spids: [97]
                                )
                              ]
                              spids: [97]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [-1 94]
                        )
                      ]
                      spids: [-1 108]
                    )
                  ]
                  spids: [76 111]
                )
              spids: [72 74]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$OLD_IFS'))}
                  spids: [114]
                )
              ]
              spids: [114]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [50]
        )
      spids: [45 49]
    )
    (FuncDef
      name: error
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:err)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [145]
                )
              ]
              spids: [143]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [153]
                )
              ]
              spids: [151]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [161]
                )
              ]
              spids: [159]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} {(DQ ('E: ') ($ VSub_Name '$name'))})
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('EA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [210 220]
                                )
                              spids: [204 208]
                            )
                            (C {(echo)} {(DQ ('EF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[231])]
                      spids: [190 229]
                    )
                  ]
                  spids: [-1 187]
                )
              ]
              else_action: [
                (Subshell
                  child: 
                    (C {(printf)} 
                      {
                        (DQ ('E: ') ($ VSub_Name '$fmt') 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>)
                        )
                      } {(DQ ($ VSub_At '$@'))}
                    )
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[252])]
                  spids: [238 250]
                )
              ]
              spids: [235 256]
            )
            (C {(exit)} {($ VSub_Name '$err')})
          ]
          spids: [136]
        )
      spids: [131 135]
    )
    (FuncDef
      name: warning
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [280]
                )
              ]
              spids: [278]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [288]
                )
              ]
              spids: [286]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} {(DQ ('W: ') ($ VSub_Name '$name'))})
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('WA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [334 344]
                                )
                              spids: [328 332]
                            )
                            (C {(echo)} {(DQ ('WF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[355])]
                      spids: [314 353]
                    )
                  ]
                  spids: [-1 311]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(printf)}
                    {
                      (DQ ('W: ') ($ VSub_Name '$fmt') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>)
                      )
                    }
                    {(DQ ($ VSub_At '$@'))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[374])]
                )
              ]
              spids: [359 378]
            )
          ]
          spids: [271]
        )
      spids: [266 270]
    )
    (FuncDef
      name: info
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [397]
                )
              ]
              spids: [395]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [405]
                )
              ]
              spids: [403]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} {(DQ ('I: ') ($ VSub_Name '$name'))})
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('IA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [451 461]
                                )
                              spids: [445 449]
                            )
                            (C {(echo)} {(DQ ('IF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[472])]
                      spids: [431 470]
                    )
                  ]
                  spids: [-1 428]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(printf)}
                    {
                      (DQ ('I: ') ($ VSub_Name '$fmt') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>)
                      )
                    }
                    {(DQ ($ VSub_At '$@'))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[491])]
                )
              ]
              spids: [476 495]
            )
          ]
          spids: [388]
        )
      spids: [383 387]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_NOW) op:Equal rhs:{(0)} spids:[500])]
      spids: [500]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_END) op:Equal rhs:{(0)} spids:[503])]
      spids: [503]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_NEXT) op:Equal rhs:{(DQ )} spids:[506])]
      spids: [506]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_WHAT) op:Equal rhs:{(DQ )} spids:[510])]
      spids: [510]
    )
    (FuncDef
      name: progress_next
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROGRESS_NEXT)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [523]
                )
              ]
              spids: [523]
            )
          ]
          spids: [520]
        )
      spids: [515 519]
    )
    (FuncDef
      name: wgetprogress
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:QSWITCH)
                      op: Equal
                      rhs: {(DQ (-q))}
                      spids: [551]
                    )
                  ]
                  spids: [551]
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[559])]
              spids: [557]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PROGRESS_NEXT'))} {(Lit_Other ']')})
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [{(wget)} {(DQ ($ VSub_At '$@'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [593]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [596]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [
                            {($ VSub_Name '$PKGDETAILS')}
                            {(DQ ('WGET%'))}
                            {($ VSub_Name '$PROGRESS_NOW')}
                            {($ VSub_Name '$PROGRESS_NEXT')}
                            {($ VSub_Name '$PROGRESS_END')}
                          ]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(3)} spids:[613])]
                        )
                      ]
                      negated: False
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ret)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [617]
                        )
                      ]
                      spids: [617]
                    )
                  ]
                  spids: [-1 584]
                )
              ]
              else_action: [
                (C {(wget)} {($ VSub_Name '$QSWITCH')} {(DQ ($ VSub_At '$@'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [634]
                    )
                  ]
                  spids: [634]
                )
              ]
              spids: [621 638]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name '$ret')})
          ]
          spids: [536]
        )
      spids: [531 535]
    )
    (FuncDef
      name: progress
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:now)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [662]
                )
              ]
              spids: [660]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:end)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [670]
                )
              ]
              spids: [668]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [678]
                )
              ]
              spids: [676]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [686]
                )
              ]
              spids: [684]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROGRESS_NOW)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$now'))}
                          spids: [718]
                        )
                      ]
                      spids: [718]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROGRESS_END)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$end'))}
                          spids: [724]
                        )
                      ]
                      spids: [724]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROGRESS_NEXT)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [730]
                        )
                      ]
                      spids: [730]
                    )
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} 
                              {
                                (DQ ('P: ') ($ VSub_Name '$now') (' ') ($ VSub_Name '$end') (' ') 
                                  ($ VSub_Name '$name')
                                )
                              }
                            )
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('PA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [759 769]
                                )
                              spids: [753 757]
                            )
                            (C {(echo)} {(DQ ('PF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(3)} spids:[780])]
                      spids: [735 778]
                    )
                  ]
                  spids: [-1 715]
                )
              ]
              spids: [-1 784]
            )
          ]
          spids: [653]
        )
      spids: [648 652]
    )
    (FuncDef
      name: dpkg_progress
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:now)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [803]
                )
              ]
              spids: [801]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:end)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [811]
                )
              ]
              spids: [809]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [819]
                )
              ]
              spids: [817]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:desc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [827]
                )
              ]
              spids: [825]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:action)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$5'))}
                  spids: [835]
                )
              ]
              spids: [833]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:expect) op:Equal rhs:{(SQ )} spids:[843])]
              spids: [841]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$action'))} {(Lit_Other '=')} 
                          {(UNPACKING)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expect)
                          op: Equal
                          rhs: {(half-installed)}
                          spids: [865]
                        )
                      ]
                      spids: [865]
                    )
                  ]
                  spids: [-1 862]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$action'))} {(Lit_Other '=')} 
                          {(CONFIGURING)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expect)
                          op: Equal
                          rhs: {(half-configured)}
                          spids: [887]
                        )
                      ]
                      spids: [887]
                    )
                  ]
                  spids: [869 884]
                )
              ]
              spids: [-1 891]
            )
            (FuncDef
              name: dp
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:now)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$now')})
                                      right: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VTest_ColonHyphen
                                                    arg_word: {(1)}
                                                  )
                                                spids: [910 914]
                                              )
                                            }
                                        )
                                    )
                                  spids: [905 916]
                                )
                              )
                            }
                          spids: [903]
                        )
                      ]
                      spids: [903]
                    )
                  ]
                  spids: [900]
                )
              spids: [895 899]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:exitcode) op:Equal rhs:{(0)} spids:[924])]
              spids: [924]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(read)} {(status)} {(pkg)} {(qstate)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$status'))} {(Lit_Other '=')} 
                                  {(DQ (EXITCODE))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:exitcode)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$pkg'))}
                                  spids: [962]
                                )
                              ]
                              spids: [962]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [-1 959]
                        )
                      ]
                      spids: [-1 971]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$qstate'))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$expect'))} {(Lit_Other ']')}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                    (Case
                      to_match: {($ VSub_Name '$qstate')}
                      arms: [
                        (case_arm
                          pat_list: [{(half-installed)}]
                          action: [
                            (Sentence
                              child: (C {(dp)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(progress)} {(DQ ($ VSub_Name '$now'))} {(DQ ($ VSub_Name '$end'))} 
                              {(DQ ($ VSub_Name '$name'))} {(DQ ($ VSub_Name '$desc'))}
                            )
                            (C {(info)} {(DQ ($ VSub_Name '$action'))} {(DQ ('Unpacking %s...'))} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name pkg>
                                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':')})
                                    spids: [1037 1041]
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(unpacked)}
                                  spids: [1045]
                                )
                              ]
                              spids: [1045]
                            )
                          ]
                          spids: [1000 1001 1049 -1]
                        )
                        (case_arm
                          pat_list: [{(unpacked)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(half-installed)}
                                  spids: [1056]
                                )
                              ]
                              spids: [1056]
                            )
                          ]
                          spids: [1052 1053 1060 -1]
                        )
                        (case_arm
                          pat_list: [{(half-configured)}]
                          action: [
                            (Sentence
                              child: (C {(dp)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(progress)} {(DQ ($ VSub_Name '$now'))} {(DQ ($ VSub_Name '$end'))} 
                              {(DQ ($ VSub_Name '$name'))} {(DQ ($ VSub_Name '$desc'))}
                            )
                            (C {(info)} {(DQ ($ VSub_Name '$action'))} {(DQ ('Configuring %s...'))} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name pkg>
                                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':')})
                                    spids: [1100 1104]
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(installed)}
                                  spids: [1108]
                                )
                              ]
                              spids: [1108]
                            )
                          ]
                          spids: [1063 1064 1112 -1]
                        )
                        (case_arm
                          pat_list: [{(installed)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(half-configured)}
                                  spids: [1119]
                                )
                              ]
                              spids: [1119]
                            )
                          ]
                          spids: [1115 1116 1123 -1]
                        )
                      ]
                      spids: [993 997 1126]
                    )
                  ]
                  spids: [939 1129]
                )
            )
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_Name '$exitcode')}
            )
          ]
          spids: [794]
        )
      spids: [789 793]
    )
    (FuncDef
      name: default_mirror
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DEF_MIRROR)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1151]
                )
              ]
              spids: [1151]
            )
          ]
          spids: [1148]
        )
      spids: [1143 1147]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FINDDEBS_NEEDS_INDICES)
          op: Equal
          rhs: {(false)}
          spids: [1159]
        )
      ]
      spids: [1159]
    )
    (FuncDef
      name: finddebs_style
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm pat_list:[{(hardcoded)}] spids:[117911801183-1])
                (case_arm
                  pat_list: [{(from-indices)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FINDDEBS_NEEDS_INDICES)
                          op: Equal
                          rhs: {(true)}
                          spids: [1190]
                        )
                      ]
                      spids: [1190]
                    )
                  ]
                  spids: [1186 1187 1194 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(BADFINDDEBS)} {(DQ ('unknown finddebs style'))})]
                  spids: [1197 1198 1212 -1]
                )
              ]
              spids: [1170 1176 1215]
            )
          ]
          spids: [1167]
        )
      spids: [1162 1166]
    )
    (FuncDef
      name: mk_download_dirs
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$DLDEST')} {(Lit_Other '=')} {(DQ (apt_dest))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(mkdir)} {(-p)} 
                      {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$APTSTATE') (/lists/partial))}
                    )
                    (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/var/cache/apt/archives/partial))})
                  ]
                  spids: [-1 1243]
                )
              ]
              spids: [-1 1268]
            )
          ]
          spids: [1225]
        )
      spids: [1220 1224]
    )
    (FuncDef
      name: download_style
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(apt)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} 
                                  {(DQ (var-state))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:APTSTATE)
                                  op: Equal
                                  rhs: {(var/state/apt)}
                                  spids: [1314]
                                )
                              ]
                              spids: [1314]
                            )
                          ]
                          spids: [-1 1311]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:APTSTATE)
                              op: Equal
                              rhs: {(var/lib/apt)}
                              spids: [1321]
                            )
                          ]
                          spids: [1321]
                        )
                      ]
                      spids: [1318 1325]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DLDEST)
                          op: Equal
                          rhs: {(apt_dest)}
                          spids: [1328]
                        )
                      ]
                      spids: [1328]
                    )
                    (C {(export)} {(APTSTATE)} {(DLDEST)} {(DEBFOR)})
                  ]
                  spids: [1290 1291 1341 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(BADDLOAD)} {(DQ ('unknown download style'))})]
                  spids: [1344 1345 1359 -1]
                )
              ]
              spids: [1281 1287 1362]
            )
          ]
          spids: [1278]
        )
      spids: [1273 1277]
    )
    (FuncDef
      name: keyring
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$KEYRING'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:KEYRING)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$1'))}
                                  spids: [1407]
                                )
                              ]
                              spids: [1407]
                            )
                          ]
                          spids: [-1 1404]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$DISABLE_KEYRING'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(Lit_Other '[')} {(-n)} 
                                              {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))} {(Lit_Other ']')}
                                            )
                                            (AndOr
                                              children: [
                                                (C {(Lit_Other '[')} {(-z)} 
                                                  {(DQ ($ VSub_Name '$USER_MIRROR'))} {(Lit_Other ']')}
                                                )
                                                (C {(Lit_Other '[')} {(-z)} 
                                                  {(DQ ($ VSub_Name '$FORCE_KEYRING'))} {(Lit_Other ']')}
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(info)} {(KEYRING)} 
                                      {
                                        (DQ 
                                          (
'Keyring file not available at %s; switching to https mirror %s'
                                          )
                                        )
                                      } {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:USER_MIRROR)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))}
                                          spids: [1486]
                                        )
                                      ]
                                      spids: [1486]
                                    )
                                  ]
                                  spids: [-1 1466]
                                )
                              ]
                              else_action: [
                                (C {(warning)} {(KEYRING)} 
                                  {
                                    (DQ 
                                      (
'Cannot check Release signature; keyring file not available %s'
                                      )
                                    )
                                  } {(DQ ($ VSub_Number '$1'))}
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-n)} 
                                              {(DQ ($ VSub_Name '$FORCE_KEYRING'))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(error)} {(1)} {(KEYRING)} 
                                          {
                                            (DQ 
                                              (
'Keyring-based check was requested; aborting accordingly'
                                              )
                                            )
                                          }
                                        )
                                      ]
                                      spids: [-1 1521]
                                    )
                                  ]
                                  spids: [-1 1535]
                                )
                              ]
                              spids: [1492 1538]
                            )
                          ]
                          spids: [1413 1426]
                        )
                      ]
                      spids: [-1 1541]
                    )
                  ]
                  spids: [-1 1388]
                )
              ]
              spids: [-1 1544]
            )
          ]
          spids: [1372]
        )
      spids: [1367 1371]
    )
    (FuncDef
      name: doing_variant
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [-1 1578]
                )
              ]
              spids: [-1 1585]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other '=')} {(DQ )} 
                              {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [-1 1620]
                )
              ]
              spids: [-1 1627]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1558]
        )
      spids: [1553 1557]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SUPPORTED_VARIANTS)
          op: Equal
          rhs: {(DQ (-))}
          spids: [1637]
        )
      ]
      spids: [1637]
    )
    (FuncDef
      name: variants
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SUPPORTED_VARIANTS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [1650]
                )
              ]
              spids: [1650]
            )
            (ForEach
              iter_name: v
              iter_words: [{($ VSub_Star '$*')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(doing_variant)} {(DQ ($ VSub_Name '$v'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [-1 1677]
                        )
                      ]
                      spids: [-1 1684]
                    )
                  ]
                  spids: [1665 1687]
                )
              spids: [1661 1663]
            )
            (C {(error)} {(1)} {(UNSUPPVARIANT)} {(DQ ('unsupported variant'))})
          ]
          spids: [1647]
        )
      spids: [1642 1646]
    )
    (FuncDef
      name: mirror_style
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(release)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_INDICES)
                          op: Equal
                          rhs: {(download_release_indices)}
                          spids: [1728]
                        )
                      ]
                      spids: [1728]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_DEBS)
                          op: Equal
                          rhs: {(download_release)}
                          spids: [1732]
                        )
                      ]
                      spids: [1732]
                    )
                  ]
                  spids: [1724 1725 1736 -1]
                )
                (case_arm
                  pat_list: [{(main)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_INDICES)
                          op: Equal
                          rhs: {(download_main_indices)}
                          spids: [1743]
                        )
                      ]
                      spids: [1743]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_DEBS)
                          op: Equal
                          rhs: {(download_main)}
                          spids: [1747]
                        )
                      ]
                      spids: [1747]
                    )
                  ]
                  spids: [1739 1740 1751 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(BADMIRROR)} {(DQ ('unknown mirror style'))})]
                  spids: [1754 1755 1769 -1]
                )
              ]
              spids: [1715 1721 1772]
            )
            (C {(export)} {(DOWNLOAD_INDICES)})
            (C {(export)} {(DOWNLOAD_DEBS)})
          ]
          spids: [1712]
        )
      spids: [1707 1711]
    )
    (FuncDef
      name: force_md5
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DEBOOTSTRAP_CHECKSUM_FIELD)
                  op: Equal
                  rhs: {(MD5SUM)}
                  spids: [1795]
                )
              ]
              spids: [1795]
            )
            (C {(export)} {(DEBOOTSTRAP_CHECKSUM_FIELD)})
          ]
          spids: [1792]
        )
      spids: [1787 1791]
    )
    (FuncDef
      name: verify_checksum
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expchecksum)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [1820]
                )
              ]
              spids: [1818]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expsize)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [1828]
                )
              ]
              spids: [1826]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DEBOOTSTRAP_CHECKSUM_FIELD'))} 
                          {(Lit_Other '=')} {(DQ (MD5SUM))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(Sentence child:(C {(in_path)} {(md5sum)}) terminator:<Op_Semi ';'>)]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:relchecksum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(md5sum)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Less
                                                        fd: -1
                                                        arg_word: {(DQ ($ VSub_Number '$1'))}
                                                        spids: [1868]
                                                      )
                                                    ]
                                                  )
                                                  (C {(sed)} {(SQ <'s/ .*$//'>)})
                                                ]
                                                negated: False
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1865 1881]
                                      )
                                    }
                                  spids: [1864]
                                )
                              ]
                              spids: [1864]
                            )
                          ]
                          spids: [-1 1861]
                        )
                        (if_arm
                          cond: [(Sentence child:(C {(in_path)} {(md5)}) terminator:<Op_Semi ';'>)]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:relchecksum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (SimpleCommand
                                                words: [{(md5)}]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Less
                                                    fd: -1
                                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                                    spids: [1898]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1895 1903]
                                      )
                                    }
                                  spids: [1894]
                                )
                              ]
                              spids: [1894]
                            )
                          ]
                          spids: [1884 1891]
                        )
                      ]
                      else_action: [(C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Cannot check md5sum'))})]
                      spids: [1906 1920]
                    )
                  ]
                  spids: [-1 1851]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE) (sum))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:relchecksum)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (SimpleCommand
                                                words: [{(sha) (${ VSub_Name SHA_SIZE) (sum)}]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Less
                                                    fd: -1
                                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                                    spids: [1950]
                                                  )
                                                ]
                                              )
                                              (C {(sed)} {(SQ <'s/ .*$//'>)})
                                            ]
                                            negated: False
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [1943 1963]
                                  )
                                }
                              spids: [1942]
                            )
                          ]
                          spids: [1942]
                        )
                      ]
                      spids: [-1 1939]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:relchecksum)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(sha) (${ VSub_Name SHA_SIZE)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Less
                                                fd: -1
                                                arg_word: {(DQ ($ VSub_Number '$1'))}
                                                spids: [1988]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [1982 1993]
                                  )
                                }
                              spids: [1981]
                            )
                          ]
                          spids: [1981]
                        )
                      ]
                      spids: [1966 1978]
                    )
                  ]
                  else_action: [
                    (C {(error)} {(1)} {(SIGCHECK)} 
                      {(DQ ('Cannot check sha') (${ VSub_Name SHA_SIZE) (sum))}
                    )
                  ]
                  spids: [1996 2014]
                )
              ]
              spids: [1923 2017]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsize)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(wc)} {(-c)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Less
                                    fd: -1
                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                    spids: [2026]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2021 2031]
                      )
                    }
                  spids: [2020]
                )
              ]
              spids: [2020]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$expsize'))} {(-ne)} 
                              {(DQ ($ VSub_Name '$relsize'))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$expchecksum'))} 
                              {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$relchecksum'))} {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [-1 2068]
                )
              ]
              spids: [-1 2076]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1811]
        )
      spids: [1806 1810]
    )
    (FuncDef
      name: get
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:displayname) op:Equal spids:[2104])]
              spids: [2102]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:versionname) op:Equal spids:[2109])]
              spids: [2107]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Number 2>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.deb)})
                                spids: [2117 2121]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:displayname)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Number '$2'))})
                                            (C {(sed)} {(SQ <'s,^.*/,,;s,_.*$,,'>)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2139 2153]
                                )
                              )
                            }
                          spids: [2137]
                        )
                      ]
                      spids: [2137]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:versionname)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Number '$2'))})
                                            (C {(sed)} {(SQ <'s,^.*/,,'>)})
                                            (C {(cut)} {(-d_)} {(-f2)})
                                            (C {(sed)} {(SQ <'s/%3a/:/'>)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2159 2189]
                                )
                              )
                            }
                          spids: [2157]
                        )
                      ]
                      spids: [2157]
                    )
                  ]
                  spids: [-1 2134]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:displayname)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                                        (C {(sed)} {(SQ <'s,^.*/,,'>)})
                                      ]
                                      negated: False
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [2198 2212]
                            )
                          )
                        }
                      spids: [2196]
                    )
                  ]
                  spids: [2196]
                )
              ]
              spids: [2193 2216]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [-1 2249]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other '=')} 
                                  {(nocache)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})]
                          spids: [2257 2272]
                        )
                      ]
                      else_action: [
                        (C {(info)} {(VALIDATING)} {(DQ ('Validating %s %s'))} 
                          {(DQ ($ VSub_Name '$displayname'))} {(DQ ($ VSub_Name '$versionname'))}
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(verify_checksum)} {(DQ ($ VSub_Number '$2'))} 
                                      {(DQ ($ VSub_Number '$3'))} {(DQ ($ VSub_Number '$4'))}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                              spids: [-1 2321]
                            )
                          ]
                          else_action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})]
                          spids: [2329 2341]
                        )
                      ]
                      spids: [2284 2344]
                    )
                  ]
                  spids: [-1 2233]
                )
              ]
              spids: [-1 2347]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other '=')} {(nocache)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(set)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))})]
                  spids: [-1 2369]
                )
              ]
              spids: [-1 2383]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(-gt)} {(5)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:st) op:Equal rhs:{(3)} spids:[2407])]
                      spids: [2405]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$5'))} {(Lit_Other '=')} 
                                  {(DQ (-))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:st)
                                      op: Equal
                                      rhs: {(6)}
                                      spids: [2430]
                                    )
                                  ]
                                  spids: [2430]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [-1 2428]
                        )
                      ]
                      spids: [-1 2434]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:order)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Sentence
                                          child: 
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:a)
                                                  op: Equal
                                                  rhs: {($ VSub_Name '$st')}
                                                  spids: [2442]
                                                )
                                              ]
                                              spids: [2442]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                        (Pipeline
                                          children: [
                                            (While
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$a'))} 
                                                      {(-le)} {($ VSub_Pound '$#')} {(Lit_Other ']')}
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (Sentence
                                                      child: 
                                                        (C {(eval)} {(echo)} 
                                                          {
                                                            (EscapedLiteralPart
                                                              token: <Lit_EscapedChar '\\"'>
                                                            ) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (Lit_LBrace '{') 
                                                            (ArithSubPart
                                                              anode: 
                                                                (ArithBinary
                                                                  op_id: Arith_Plus
                                                                  left: 
                                                                    (ArithWord
                                                                      w: {($ VSub_Name '$a')}
                                                                    )
                                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                                )
                                                              spids: [2470 2475]
                                                            ) (Lit_RBrace '}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                                          } {($ VSub_Name '$a')}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                    (Sentence
                                                      child: 
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:a)
                                                              op: Equal
                                                              rhs: 
                                                                {
                                                                  (ArithSubPart
                                                                    anode: 
                                                                      (ArithBinary
                                                                        op_id: Arith_Plus
                                                                        left: 
                                                                          (ArithWord
                                                                            w: {($ VSub_Name '$a')}
                                                                          )
                                                                        right: 
                                                                          (ArithWord
                                                                            w: {(Lit_Digits 3)}
                                                                          )
                                                                      )
                                                                    spids: [2484 2491]
                                                                  )
                                                                }
                                                              spids: [2483]
                                                            )
                                                          ]
                                                          spids: [2483]
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [2461 2494]
                                                )
                                            )
                                            (C {(sort)} {(-n)})
                                            (C {(sed)} {(SQ <'s/.* //'>)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2441 2509]
                                )
                              )
                            }
                          spids: [2439]
                        )
                      ]
                      spids: [2437]
                    )
                  ]
                  spids: [-1 2402]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:order) op:Equal rhs:{(3)} spids:[2518])]
                  spids: [2516]
                )
              ]
              spids: [2513 2522]
            )
            (ForEach
              iter_name: a
              iter_words: [{($ VSub_Name '$order')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:checksum)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(eval)} {(echo)} 
                                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (Lit_LBrace '{') ($ VSub_Name '$a') (Lit_RBrace '}')
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2541 2550]
                                )
                              )
                            }
                          spids: [2539]
                        )
                      ]
                      spids: [2537]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:siz)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(eval)} {(echo)} 
                                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (Lit_LBrace '{') 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$a')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [2565 2572]
                                            ) (Lit_RBrace '}')
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2558 2574]
                                )
                              )
                            }
                          spids: [2556]
                        )
                      ]
                      spids: [2554]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:typ)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(eval)} {(echo)} 
                                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (Lit_LBrace '{') 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$a')})
                                                  right: (ArithWord w:{(Lit_Digits 2)})
                                                )
                                              spids: [2589 2596]
                                            ) (Lit_RBrace '}')
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2582 2598]
                                )
                              )
                            }
                          spids: [2580]
                        )
                      ]
                      spids: [2578]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:from) op:Equal spids:[2604])]
                      spids: [2602]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:dest) op:Equal spids:[2609])]
                      spids: [2607]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:iters) op:Equal rhs:{(0)} spids:[2614])]
                      spids: [2612]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$typ'))}
                      arms: [
                        (case_arm
                          pat_list: [{(xz)}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1') (.xz))}
                                      spids: [2631]
                                    )
                                  ]
                                  spids: [2631]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2') (.xz))}
                                  spids: [2638]
                                )
                              ]
                              spids: [2638]
                            )
                          ]
                          spids: [2628 2629 2644 -1]
                        )
                        (case_arm
                          pat_list: [{(bz2)}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1') (.bz2))}
                                      spids: [2650]
                                    )
                                  ]
                                  spids: [2650]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2') (.bz2))}
                                  spids: [2657]
                                )
                              ]
                              spids: [2657]
                            )
                          ]
                          spids: [2647 2648 2663 -1]
                        )
                        (case_arm
                          pat_list: [{(gz)}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1') (.gz))}
                                      spids: [2669]
                                    )
                                  ]
                                  spids: [2669]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2') (.gz))}
                                  spids: [2676]
                                )
                              ]
                              spids: [2676]
                            )
                          ]
                          spids: [2666 2667 2682 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1'))}
                                      spids: [2688]
                                    )
                                  ]
                                  spids: [2688]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2'))}
                                  spids: [2694]
                                )
                              ]
                              spids: [2694]
                            )
                          ]
                          spids: [2685 2686 2699 -1]
                        )
                      ]
                      spids: [2619 2625 2702]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name dest>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Pound
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [2711 2715]
                                      )
                                    )
                                  } {(Lit_Other '=')} {(DQ ($ VSub_Name '$dest'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ (./) ($ VSub_Name '$dest'))}
                                  spids: [2730]
                                )
                              ]
                              spids: [2730]
                            )
                          ]
                          spids: [-1 2727]
                        )
                      ]
                      spids: [-1 2737]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dest2)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$dest'))}
                          spids: [2742]
                        )
                      ]
                      spids: [2740]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-d)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name dest2>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /) ('*')}
                                          )
                                        spids: [2755 2760]
                                      ) (/partial)
                                    )
                                  } {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest2)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name dest2>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Percent
                                              arg_word: {(Lit_Slash /) ('*')}
                                            )
                                          spids: [2772 2777]
                                        ) (/partial/) 
                                        (BracedVarSub
                                          token: <VSub_Name dest2>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPound
                                              arg_word: {('*') (Lit_Slash /)}
                                            )
                                          spids: [2779 2784]
                                        )
                                      )
                                    }
                                  spids: [2770]
                                )
                              ]
                              spids: [2770]
                            )
                          ]
                          spids: [-1 2767]
                        )
                      ]
                      spids: [-1 2788]
                    )
                    (While
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$iters'))} {(-lt)} {(10)} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (C {(info)} {(RETRIEVING)} {(DQ ('Retrieving %s %s'))} 
                              {(DQ ($ VSub_Name '$displayname'))} {(DQ ($ VSub_Name '$versionname'))}
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(just_get)} {(DQ ($ VSub_Name '$from'))} 
                                              {(DQ ($ VSub_Name '$dest2'))}
                                            )
                                          ]
                                          negated: True
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                          arg_word: {(2)}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [-1 2842]
                                )
                              ]
                              spids: [-1 2849]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$checksum'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(info)} {(VALIDATING)} {(DQ ('Validating %s %s'))} 
                                      {(DQ ($ VSub_Name '$displayname'))} {(DQ ($ VSub_Name '$versionname'))}
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(verify_checksum)} {(DQ ($ VSub_Name '$dest2'))} 
                                                  {(DQ ($ VSub_Name '$checksum'))} {(DQ ($ VSub_Name '$siz'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:checksum)
                                                  op: Equal
                                                  rhs: {(DQ )}
                                                  spids: [2909]
                                                )
                                              ]
                                              spids: [2909]
                                            )
                                          ]
                                          spids: [-1 2906]
                                        )
                                      ]
                                      spids: [-1 2914]
                                    )
                                  ]
                                  spids: [-1 2869]
                                )
                              ]
                              spids: [-1 2917]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$checksum'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$dest2'))} 
                                          {(Lit_Other '=')} {(DQ ($ VSub_Name '$dest'))} {(Lit_Other ']')}
                                        )
                                        (C {(mv)} {(DQ ($ VSub_Name '$dest2'))} 
                                          {(DQ ($ VSub_Name '$dest'))}
                                        )
                                      ]
                                      op_id: Op_DPipe
                                    )
                                    (Case
                                      to_match: {(DQ ($ VSub_Name '$typ'))}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(gz)}]
                                          action: [(C {(gunzip)} {(DQ ($ VSub_Name '$dest'))})]
                                          spids: [2972 2973 2981 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(bz2)}]
                                          action: [(C {(bunzip2)} {(DQ ($ VSub_Name '$dest'))})]
                                          spids: [2984 2985 2993 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(xz)}]
                                          action: [(C {(unxz)} {(DQ ($ VSub_Name '$dest'))})]
                                          spids: [2996 2997 3005 -1]
                                        )
                                      ]
                                      spids: [2963 2969 3008]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(0)}
                                    )
                                  ]
                                  spids: [-1 2933]
                                )
                              ]
                              else_action: [
                                (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest2'))})
                                (C {(warning)} {(RETRYING)} {(DQ ('Retrying failed download of %s'))} 
                                  {(DQ ($ VSub_Name '$from'))}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:iters)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$iters')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [3043 3050]
                                            )
                                          )
                                        }
                                      spids: [3041]
                                    )
                                  ]
                                  spids: [3041]
                                )
                              ]
                              spids: [3016 3054]
                            )
                          ]
                          spids: [2807 3057]
                        )
                    )
                    (C {(warning)} {(CORRUPTFILE)} {(DQ ('%s was corrupt'))} {(DQ ($ VSub_Name '$from'))})
                  ]
                  spids: [2534 3073]
                )
              spids: [2530 2532]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [2091]
        )
      spids: [2086 2090]
    )
    (FuncDef
      name: just_get
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:from)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [3097]
                )
              ]
              spids: [3095]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [3105]
                )
              ]
              spids: [3103]
            )
            (C {(mkdir)} {(-p)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name dest>
                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
                    spids: [3116 3121]
                  )
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('null:')})
                                spids: [3130 3134]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(NOTPREDL)} {(DQ ('%s was not pre-downloaded'))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name from>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('null:')})
                            spids: [3161 3165]
                          )
                        )
                      }
                    )
                  ]
                  spids: [-1 3147]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name from>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Pound
                                        arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)}
                                      )
                                    spids: [3174 3180]
                                  )
                                )
                              } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name from>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Pound
                                        arg_word: {('ftp:') (Lit_Slash /) (Lit_Slash /)}
                                      )
                                    spids: [3197 3203]
                                  )
                                )
                              } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(wgetprogress)} {(-O)} {(DQ ($ VSub_Name '$dest'))} 
                                  {(DQ ($ VSub_Name '$from'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [-1 3238]
                        )
                      ]
                      else_action: [
                        (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [3246 3263]
                    )
                  ]
                  spids: [3169 3216]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_Pound
                                    arg_word: {('https:') (Lit_Slash /) (Lit_Slash /)}
                                  )
                                spids: [3271 3277]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(wgetprogress)} {($ VSub_Name '$CHECKCERTIF')} 
                                  {($ VSub_Name '$CERTIFICATE')} {($ VSub_Name '$PRIVATEKEY')} {(-O)} {(DQ ($ VSub_Name '$dest'))} {(DQ ($ VSub_Name '$from'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [-1 3319]
                        )
                      ]
                      else_action: [
                        (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [3327 3344]
                    )
                  ]
                  spids: [3266 3291]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('file:')})
                                spids: [3352 3356]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:base)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name from>
                                  suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('file:')})
                                  spids: [3376 3380]
                                )
                              )
                            }
                          spids: [3374]
                        )
                      ]
                      spids: [3372]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name base>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Pound
                                            arg_word: {(Lit_Slash /) (Lit_Slash /)}
                                          )
                                        spids: [3389 3394]
                                      )
                                    )
                                  } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$base'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:base)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (/) 
                                        (BracedVarSub
                                          token: <VSub_Name from>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Pound
                                              arg_word: 
                                                {('file:') (Lit_Slash /) (Lit_Slash /) ('*') 
                                                  (Lit_Slash /)
                                                }
                                            )
                                          spids: [3413 3421]
                                        )
                                      )
                                    }
                                  spids: [3410]
                                )
                              ]
                              spids: [3410]
                            )
                          ]
                          spids: [-1 3407]
                        )
                      ]
                      spids: [-1 3425]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$base'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(cp)} {(DQ ($ VSub_Name '$base'))} {(DQ ($ VSub_Name '$dest'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [-1 3441]
                        )
                      ]
                      else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                      spids: [3460 3468]
                    )
                  ]
                  spids: [3347 3369]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('ssh:')})
                                spids: [3476 3480]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ssh_dest)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {($ VSub_Name '$from')})
                                            (C {(sed)} {(-e)} {(SQ <'s#ssh://##'>)} {(-e)} 
                                              {(SQ <'s#/#:/#'>)}
                                            )
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [3500 3520]
                                )
                              )
                            }
                          spids: [3498]
                        )
                      ]
                      spids: [3496]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$ssh_dest'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(scp)} {(DQ ($ VSub_Name '$ssh_dest'))} {(DQ ($ VSub_Name '$dest'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [-1 3537]
                        )
                      ]
                      else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                      spids: [3556 3564]
                    )
                  ]
                  spids: [3471 3493]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(UNKNOWNLOC)} {(DQ ('unknown location %s'))} 
                  {(DQ ($ VSub_Name '$from'))}
                )
              ]
              spids: [3567 3585]
            )
          ]
          spids: [3088]
        )
      spids: [3083 3087]
    )
    (FuncDef
      name: download
      body: 
        (BraceGroup
          children: [
            (C {(mk_download_dirs)})
            (C {(DQ ($ VSub_Name '$DOWNLOAD_DEBS'))} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_At '$@'))})
                            (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                            (C {(sort)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [3605 3627]
                )
              }
            )
          ]
          spids: [3595]
        )
      spids: [3590 3594]
    )
    (FuncDef
      name: download_indices
      body: 
        (BraceGroup
          children: [
            (C {(mk_download_dirs)})
            (C {(DQ ($ VSub_Name '$DOWNLOAD_INDICES'))} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_At '$@'))})
                            (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                            (C {(sort)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [3647 3669]
                )
              }
            )
          ]
          spids: [3637]
        )
      spids: [3632 3636]
    )
    (FuncDef
      name: debfor
      body: 
        (BraceGroup
          children: [
            (Subshell
              child: 
                (While
                  cond: [(Sentence child:(C {(read)} {(pkg)} {(path)}) terminator:<Op_Semi ';'>)]
                  body: 
                    (DoGroup
                      children: [
                        (ForEach
                          iter_name: p
                          iter_words: [{(DQ ($ VSub_At '$@'))}]
                          do_arg_iter: False
                          body: 
                            (DoGroup
                              children: [
                                (Sentence
                                  child: 
                                    (AndOr
                                      children: [
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$p'))} {(Lit_Other '=')} 
                                          {(DQ ($ VSub_Name '$pkg'))} {(Lit_Other ']')}
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                        )
                                      ]
                                      op_id: Op_DPipe
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                                (C {(echo)} {(DQ ($ VSub_Name '$path'))})
                              ]
                              spids: [3706 3736]
                            )
                          spids: [3700 3704]
                        )
                      ]
                      spids: [3692 3739]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: -1
                      arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debpaths))}
                      spids: [3741]
                    )
                  ]
                )
              spids: [3682 3748]
            )
          ]
          spids: [3679]
        )
      spids: [3674 3678]
    )
    (FuncDef
      name: apt_dest
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(deb)}]
                  action: [
                    (Pipeline
                      children: [
                        (C {(echo)} 
                          {
                            (DQ (/var/cache/apt/archives/) (${ VSub_Number 2) (_) (${ VSub_Number 3) (_) 
                              (${ VSub_Number 4) (.deb)
                            )
                          }
                        )
                        (C {(sed)} {(SQ <'s/:/%3a/'>)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [3786 3787 3817 -1]
                )
                (case_arm
                  pat_list: [{(pkg)}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$5'))}
                          spids: [3826]
                        )
                      ]
                      spids: [3824]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ (debootstrap.invalid))}
                          spids: [3832]
                        )
                      ]
                      spids: [3832]
                    )
                    (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_Name '$APTSTATE') (/lists/))})
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name m) (_) ($ VSub_Number '$6'))})
                        (C {(sed)} {(SQ <'s/\\//_/g'>)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [3820 3821 3898 -1]
                )
                (case_arm
                  pat_list: [{(rel)}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$3'))}
                          spids: [3907]
                        )
                      ]
                      spids: [3905]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ (debootstrap.invalid))}
                          spids: [3913]
                        )
                      ]
                      spids: [3913]
                    )
                    (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_Name '$APTSTATE') (/lists/))})
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name m) (_) ($ VSub_Number '$4'))})
                        (C {(sed)} {(SQ <'s/\\//_/g'>)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [3901 3902 3978 -1]
                )
              ]
              spids: [3777 3783 3981]
            )
          ]
          spids: [3758]
        )
      spids: [3753 3757]
    )
    (FuncDef
      name: get_release_checksum
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4000]
                )
              ]
              spids: [3998]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:path)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [4008]
                )
              ]
              spids: [4006]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DEBOOTSTRAP_CHECKSUM_FIELD'))} 
                          {(Lit_Other '=')} {(MD5SUM)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:match)
                          op: Equal
                          rhs: {(DQ ('^[Mm][Dd]5[Ss][Uu][Mm]'))}
                          spids: [4034]
                        )
                      ]
                      spids: [4032]
                    )
                  ]
                  spids: [-1 4029]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:match)
                      op: Equal
                      rhs: {(DQ ('^[Ss][Hh][Aa]') ($ VSub_Name '$SHA_SIZE') (':'))}
                      spids: [4045]
                    )
                  ]
                  spids: [4043]
                )
              ]
              spids: [4040 4053]
            )
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(sed)} {(-n)} {(DQ (/) ($ VSub_Name '$match') ('/,/^[^ ]/p'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: -1
                      arg_word: {(DQ ($ VSub_Name '$reldest'))}
                      spids: [4066]
                    )
                  ]
                )
                (While
                  cond: [(Sentence child:(C {(read)} {(a)} {(b)} {(c)}) terminator:<Op_Semi ';'>)]
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$c'))} {(Lit_Other '=')} 
                                      {(DQ ($ VSub_Name '$path'))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Sentence
                                  child: (C {(echo)} {(DQ ($ VSub_Name '$a') (' ') ($ VSub_Name '$b'))})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              spids: [-1 4107]
                            )
                          ]
                          spids: [-1 4118]
                        )
                      ]
                      spids: [4087 4121]
                    )
                )
                (C {(head)} {(-n)} {(1)})
              ]
              negated: False
            )
          ]
          spids: [3995]
        )
      spids: [3990 3994]
    )
    (FuncDef
      name: extract_release_components
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:reldest)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [4144]
                    )
                  ]
                  spids: [4142]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TMPCOMPONENTS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(sed)} {(-n)} {(SQ <'s/Components: *//p'>)} 
                                  {(DQ ($ VSub_Name '$reldest'))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [4155 4167]
                        )
                      )
                    }
                  spids: [4153]
                )
              ]
              spids: [4153]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$TMPCOMPONENTS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(eval)} 
                      {
                        (DQ ('\n') ('\t\tcase ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (c) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' in\n') ('\t\t    ') 
                          ($ VSub_Name '$USE_COMPONENTS') (')\n') ('\t\t\tCOMPONENTS=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('COMPONENTS ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (c) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\t\t;;\n') ('\t\tesac\n') ('\t\t')
                        )
                      }
                    )
                  ]
                  spids: [4181 4211]
                )
              spids: [4176 4179]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPONENTS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(echo)} {($ VSub_Name '$COMPONENTS')})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [4216 4220]
                        )
                      )
                    }
                  spids: [4214]
                )
              ]
              spids: [4214]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$COMPONENTS'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(mv)} {(DQ ($ VSub_Name '$reldest'))} 
                      {(DQ ($ VSub_Name '$reldest') (.malformed))}
                    )
                    (C {(error)} {(1)} {(INVALIDREL)} {(DQ ('Invalid Release file, no valid components'))})
                  ]
                  spids: [-1 4237]
                )
              ]
              spids: [-1 4263]
            )
          ]
          spids: [4139]
        )
      spids: [4134 4138]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CODENAME) op:Equal rhs:{(DQ )} spids:[4268])]
      spids: [4268]
    )
    (FuncDef
      name: validate_suite
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4282]
                )
              ]
              spids: [4280]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CODENAME)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(sed)} {(-n)} {(DQ ('s/^Codename: *//p'))} 
                                {(DQ ($ VSub_Name '$reldest'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4290 4302]
                      )
                    }
                  spids: [4289]
                )
              ]
              spids: [4289]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:suite)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(sed)} {(-n)} {(DQ ('s/^Suite: *//p'))} {(DQ ($ VSub_Name '$reldest'))})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4308 4320]
                      )
                    }
                  spids: [4307]
                )
              ]
              spids: [4305]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SUITE'))} 
                              {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$suite'))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SUITE'))} 
                              {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$CODENAME'))} {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(WRONGSUITE)} 
                      {(DQ ('Asked to install suite %s, but got %s (codename: %s) from mirror'))} {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$suite'))} {(DQ ($ VSub_Name '$CODENAME'))}
                    )
                  ]
                  spids: [-1 4359]
                )
              ]
              spids: [-1 4385]
            )
          ]
          spids: [4277]
        )
      spids: [4272 4276]
    )
    (FuncDef
      name: split_inline_sig
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:inreldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4400]
                )
              ]
              spids: [4398]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [4408]
                )
              ]
              spids: [4406]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsigdest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [4416]
                )
              ]
              spids: [4414]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$reldest'))} {(DQ ($ VSub_Name '$relsigdest'))})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:nl) op:Equal rhs:{(DQ )} spids:[4456])]
              spids: [4456]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:state) op:Equal rhs:{(pre-begin)} spids:[4461])]
              spids: [4461]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(read)} {(-r)} {(line)}]
                      more_env: [(env_pair name:IFS val:{(SQ )} spids:[4467])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (${ VSub_Name state))}
                      arms: [
                        (case_arm
                          pat_list: [{(pre-begin)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ ('x-----BEGIN PGP SIGNED MESSAGE-----'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:state)
                                          op: Equal
                                          rhs: {(begin)}
                                          spids: [4517]
                                        )
                                      ]
                                      spids: [4517]
                                    )
                                  ]
                                  spids: [-1 4514]
                                )
                              ]
                              spids: [-1 4521]
                            )
                          ]
                          spids: [4490 4491 4524 -1]
                        )
                        (case_arm
                          pat_list: [{(begin)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ (x))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:state)
                                          op: Equal
                                          rhs: {(data)}
                                          spids: [4554]
                                        )
                                      ]
                                      spids: [4554]
                                    )
                                  ]
                                  spids: [-1 4551]
                                )
                              ]
                              spids: [-1 4558]
                            )
                          ]
                          spids: [4527 4528 4561 -1]
                        )
                        (case_arm
                          pat_list: [{(data)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ ('x-----BEGIN PGP SIGNATURE-----'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(printf)}
                                        {
                                          (DQ ('%s') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))
                                        }
                                        {(DQ (${ VSub_Name line))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(DQ ($ VSub_Name '$relsigdest'))}
                                          spids: [4604]
                                        )
                                      ]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:state)
                                          op: Equal
                                          rhs: {(signature)}
                                          spids: [4611]
                                        )
                                      ]
                                      spids: [4611]
                                    )
                                  ]
                                  spids: [-1 4588]
                                )
                              ]
                              else_action: [
                                (SimpleCommand
                                  words: [
                                    {(printf)}
                                    {(DQ (${ VSub_Name nl) ('%s'))}
                                    {(DQ (${ VSub_Name line))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: -1
                                      arg_word: {(DQ ($ VSub_Name '$reldest'))}
                                      spids: [4633]
                                    )
                                  ]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:nl)
                                      op: Equal
                                      rhs: {(DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}
                                      spids: [4640]
                                    )
                                  ]
                                  spids: [4640]
                                )
                              ]
                              spids: [4615 4646]
                            )
                          ]
                          spids: [4564 4565 4649 -1]
                        )
                        (case_arm
                          pat_list: [{(signature)}]
                          action: [
                            (SimpleCommand
                              words: [
                                {(printf)}
                                {(DQ ('%s') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}
                                {(DQ (${ VSub_Name line))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(DQ ($ VSub_Name '$relsigdest'))}
                                  spids: [4669]
                                )
                              ]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ ('x-----END PGP SIGNATURE-----'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                                  spids: [-1 4696]
                                )
                              ]
                              spids: [-1 4702]
                            )
                          ]
                          spids: [4652 4653 -1 4705]
                        )
                      ]
                      spids: [4479 4487 4705]
                    )
                  ]
                  spids: [4476 4708]
                )
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$inreldest'))}
                  spids: [4710]
                )
              ]
            )
          ]
          spids: [4395]
        )
      spids: [4390 4394]
    )
    (FuncDef
      name: download_release_sig
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4729]
                )
              ]
              spids: [4727]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:inreldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [4737]
                )
              ]
              spids: [4735]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [4745]
                )
              ]
              spids: [4743]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsigdest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [4753]
                )
              ]
              spids: [4751]
            )
            (C {(progress)} {(0)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))})
            (C {(progress_next)} {(100)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(get)} 
                          {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/InRelease))} {(DQ ($ VSub_Name '$inreldest'))} {(nocache)}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(split_inline_sig)} {(DQ ($ VSub_Name '$inreldest'))} 
                      {(DQ ($ VSub_Name '$reldest'))} {(DQ ($ VSub_Name '$relsigdest'))}
                    )
                    (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))})
                  ]
                  spids: [-1 4796]
                )
              ]
              else_action: [
                (AndOr
                  children: [
                    (C {(get)} {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/Release))} 
                      {(DQ ($ VSub_Name '$reldest'))} {(nocache)}
                    )
                    (C {(error)} {(1)} {(NOGETREL)} {(DQ ('Failed getting release file %s'))} 
                      {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/Release))}
                    )
                  ]
                  op_id: Op_DPipe
                )
                (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))})
              ]
              spids: [4827 4879]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$KEYRING'))} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$DISABLE_KEYRING'))} 
                              {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(progress)} {(0)} {(100)} {(DOWNRELSIG)} 
                      {(DQ ('Downloading Release file signature'))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$relsigdest'))} 
                                      {(Lit_Other ']')}
                                    )
                                  ]
                                  negated: True
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(progress_next)} {(50)})
                            (AndOr
                              children: [
                                (C {(get)} 
                                  {
                                    (DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') 
                                      (/Release.gpg)
                                    )
                                  } {(DQ ($ VSub_Name '$relsigdest'))} {(nocache)}
                                )
                                (C {(error)} {(1)} {(NOGETRELSIG)} 
                                  {(DQ ('Failed getting release signature file %s'))} {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/Release.gpg))}
                                )
                              ]
                              op_id: Op_DPipe
                            )
                            (C {(progress)} {(50)} {(100)} {(DOWNRELSIG)} 
                              {(DQ ('Downloading Release file signature'))}
                            )
                          ]
                          spids: [-1 4938]
                        )
                      ]
                      spids: [-1 4997]
                    )
                    (C {(info)} {(RELEASESIG)} {(DQ ('Checking Release signature'))})
                    (Pipeline
                      children: [
                        (Subshell
                          child: 
                            (AndOr
                              children: [
                                (C {(gpgv)} {(--status-fd)} {(1)} {(--keyring)} 
                                  {(DQ ($ VSub_Name '$KEYRING'))} {(--ignore-time-conflict)} {(DQ ($ VSub_Name '$relsigdest'))} {(DQ ($ VSub_Name '$reldest'))}
                                )
                                (C {(true)})
                              ]
                              op_id: Op_DPipe
                            )
                          spids: [5018 5046]
                        )
                        (C {(read_gpg_status)})
                      ]
                      negated: False
                    )
                    (C {(progress)} {(100)} {(100)} {(DOWNRELSIG)} 
                      {(DQ ('Downloading Release file signature'))}
                    )
                  ]
                  spids: [-1 4907]
                )
              ]
              spids: [-1 5066]
            )
          ]
          spids: [4724]
        )
      spids: [4719 4723]
    )
    (FuncDef
      name: download_release_indices
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [5083 5087]
                        )
                      )
                    }
                  spids: [5081]
                )
              ]
              spids: [5079]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:inreldest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$TARGET') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {($ VSub_Name '$DLDEST')} {(rel)} {(DQ ($ VSub_Name '$SUITE'))} 
                                  {(DQ ($ VSub_Name '$m1'))} {(DQ (dists/) ($ VSub_Name '$SUITE') (/InRelease))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5097 5115]
                        )
                      )
                    }
                  spids: [5093]
                )
              ]
              spids: [5091]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$TARGET') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {($ VSub_Name '$DLDEST')} {(rel)} {(DQ ($ VSub_Name '$SUITE'))} 
                                  {(DQ ($ VSub_Name '$m1'))} {(DQ (dists/) ($ VSub_Name '$SUITE') (/Release))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5125 5143]
                        )
                      )
                    }
                  spids: [5121]
                )
              ]
              spids: [5119]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsigdest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$TARGET') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {($ VSub_Name '$DLDEST')} {(rel)} {(DQ ($ VSub_Name '$SUITE'))} 
                                  {(DQ ($ VSub_Name '$m1'))} {(DQ (dists/) ($ VSub_Name '$SUITE') (/Release.gpg))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5153 5171]
                        )
                      )
                    }
                  spids: [5149]
                )
              ]
              spids: [5147]
            )
            (C {(download_release_sig)} {(DQ ($ VSub_Name '$m1'))} {(DQ ($ VSub_Name '$inreldest'))} 
              {(DQ ($ VSub_Name '$reldest'))} {(DQ ($ VSub_Name '$relsigdest'))}
            )
            (C {(validate_suite)} {(DQ ($ VSub_Name '$reldest'))})
            (C {(extract_release_components)} {($ VSub_Name '$reldest')})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:totalpkgs) op:Equal rhs:{(0)} spids:[5212])]
              spids: [5210]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:subpath)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$c') (/binary-) ($ VSub_Name '$ARCH') (/Packages))}
                          spids: [5230]
                        )
                      ]
                      spids: [5228]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:xzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.xz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5243 5254]
                                )
                              )
                            }
                          spids: [5241]
                        )
                      ]
                      spids: [5239]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:bz2i)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.bz2))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5262 5273]
                                )
                              )
                            }
                          spids: [5260]
                        )
                      ]
                      spids: [5258]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.gz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5281 5292]
                                )
                              )
                            }
                          spids: [5279]
                        )
                      ]
                      spids: [5277]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:normi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5300 5310]
                                )
                              )
                            }
                          spids: [5298]
                        )
                      ]
                      spids: [5296]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(SQ )} spids:[5316])]
                      spids: [5314]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$normi'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$normi'))}
                                  spids: [5339]
                                )
                              ]
                              spids: [5339]
                            )
                          ]
                          spids: [-1 5336]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(in_path)} {(bunzip2)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$bz2i'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$bz2i'))}
                                  spids: [5371]
                                )
                              ]
                              spids: [5371]
                            )
                          ]
                          spids: [5345 5368]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(in_path)} {(unxz)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$xzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$xzi'))}
                                  spids: [5403]
                                )
                              ]
                              spids: [5403]
                            )
                          ]
                          spids: [5377 5400]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(in_path)} {(gunzip)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$gzi'))}
                                  spids: [5435]
                                )
                              ]
                              spids: [5435]
                            )
                          ]
                          spids: [5409 5432]
                        )
                      ]
                      spids: [-1 5441]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$i'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:totalpkgs)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (ArithSubPart
                                          anode: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithWord w:{($ VSub_Name '$totalpkgs')})
                                              right: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name i>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Pound
                                                            arg_word: {('* ')}
                                                          )
                                                        spids: [5472 5476]
                                                      )
                                                    }
                                                )
                                            )
                                          spids: [5466 5479]
                                        )
                                      )
                                    }
                                  spids: [5464]
                                )
                              ]
                              spids: [5464]
                            )
                          ]
                          spids: [-1 5461]
                        )
                      ]
                      else_action: [
                        (C {(mv)} {(DQ ($ VSub_Name '$reldest'))} 
                          {(DQ ($ VSub_Name '$reldest') (.malformed))}
                        )
                        (C {(error)} {(1)} {(MISSINGRELENTRY)} 
                          {(DQ ('Invalid Release file, no entry for %s'))} {(DQ ($ VSub_Name '$subpath'))}
                        )
                      ]
                      spids: [5483 5513]
                    )
                  ]
                  spids: [5225 5516]
                )
              spids: [5221 5223]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:donepkgs) op:Equal rhs:{(0)} spids:[5522])]
              spids: [5520]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:pkgdest) op:Equal spids:[5528])]
              spids: [5526]
            )
            (C {(progress)} {(0)} {($ VSub_Name '$totalpkgs')} {(DOWNPKGS)} 
              {(DQ ('Downloading Packages files'))}
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:subpath)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$c') (/binary-) ($ VSub_Name '$ARCH') (/Packages))}
                          spids: [5558]
                        )
                      ]
                      spids: [5556]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: {(DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$subpath'))}
                          spids: [5569]
                        )
                      ]
                      spids: [5567]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:xzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.xz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5582 5593]
                                )
                              )
                            }
                          spids: [5580]
                        )
                      ]
                      spids: [5578]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:bz2i)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.bz2))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5601 5612]
                                )
                              )
                            }
                          spids: [5599]
                        )
                      ]
                      spids: [5597]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.gz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5620 5631]
                                )
                              )
                            }
                          spids: [5618]
                        )
                      ]
                      spids: [5616]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:normi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5639 5649]
                                )
                              )
                            }
                          spids: [5637]
                        )
                      ]
                      spids: [5635]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:ext) op:Equal rhs:{(SQ )} spids:[5655])]
                      spids: [5653]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(SQ )} spids:[5660])]
                      spids: [5658]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$normi'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$normi') (' .'))}
                                  spids: [5683]
                                )
                              ]
                              spids: [5683]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$normi'))}
                                  spids: [5692]
                                )
                              ]
                              spids: [5692]
                            )
                          ]
                          spids: [-1 5680]
                        )
                      ]
                      spids: [-1 5698]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(in_path)} {(unxz)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$xzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$xzi') (' xz'))}
                                  spids: [5727]
                                )
                              ]
                              spids: [5727]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_ColonHyphen
                                              arg_word: {($ VSub_Name '$xzi')}
                                            )
                                          spids: [5738 5742]
                                        )
                                      )
                                    }
                                  spids: [5736]
                                )
                              ]
                              spids: [5736]
                            )
                          ]
                          spids: [-1 5724]
                        )
                      ]
                      spids: [-1 5746]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(in_path)} {(bunzip2)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$bz2i'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$bz2i') (' bz2'))}
                                  spids: [5775]
                                )
                              ]
                              spids: [5775]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_ColonHyphen
                                              arg_word: {($ VSub_Name '$bz2i')}
                                            )
                                          spids: [5786 5790]
                                        )
                                      )
                                    }
                                  spids: [5784]
                                )
                              ]
                              spids: [5784]
                            )
                          ]
                          spids: [-1 5772]
                        )
                      ]
                      spids: [-1 5794]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(in_path)} {(gunzip)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$gzi') (' gz'))}
                                  spids: [5823]
                                )
                              ]
                              spids: [5823]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_ColonHyphen
                                              arg_word: {($ VSub_Name '$gzi')}
                                            )
                                          spids: [5834 5838]
                                        )
                                      )
                                    }
                                  spids: [5832]
                                )
                              ]
                              spids: [5832]
                            )
                          ]
                          spids: [-1 5820]
                        )
                      ]
                      spids: [-1 5842]
                    )
                    (C {(progress_next)} 
                      {
                        (DQ 
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Plus
                                left: (ArithWord w:{($ VSub_Name '$donepkgs')})
                                right: 
                                  (ArithWord
                                    w: 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('* ')})
                                          spids: [5853 5857]
                                        )
                                      }
                                  )
                              )
                            spids: [5848 5859]
                          )
                        )
                      }
                    )
                    (ForEach
                      iter_name: m
                      iter_words: [{($ VSub_Name '$MIRRORS')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [5879 5903]
                                        )
                                      )
                                    }
                                  spids: [5875]
                                )
                              ]
                              spids: [5875]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(get)} {(DQ ($ VSub_Name '$m') (/) ($ VSub_Name '$path'))} 
                                          {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$ext')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Break break>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [-1 5924]
                                )
                              ]
                              spids: [-1 5929]
                            )
                          ]
                          spids: [5872 5932]
                        )
                      spids: [5868 5870]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                  {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(error)} {(1)} {(COULDNTDL)} {(DQ ("Couldn't download %s"))} 
                              {(DQ ($ VSub_Name '$path'))}
                            )
                          ]
                          spids: [-1 5950]
                        )
                      ]
                      spids: [-1 5968]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:donepkgs)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$donepkgs')})
                                      right: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name i>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('* ')}
                                                  )
                                                spids: [5978 5982]
                                              )
                                            }
                                        )
                                    )
                                  spids: [5973 5984]
                                )
                              )
                            }
                          spids: [5971]
                        )
                      ]
                      spids: [5971]
                    )
                    (C {(progress)} {($ VSub_Name '$donepkgs')} {($ VSub_Name '$totalpkgs')} {(DOWNPKGS)} 
                      {(DQ ('Downloading Packages files'))}
                    )
                  ]
                  spids: [5553 6001]
                )
              spids: [5549 5551]
            )
          ]
          spids: [5076]
        )
      spids: [5071 5075]
    )
    (FuncDef
      name: get_package_sizes
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:m)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [6020]
                    )
                  ]
                  spids: [6018]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pkgdest)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [6031]
                    )
                  ]
                  spids: [6029]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Pipeline
              children: [
                (C {($ VSub_Name '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_Name '$m'))} 
                  {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))}
                )
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:newleft)
                              op: Equal
                              rhs: {(DQ )}
                              spids: [6061]
                            )
                          ]
                          spids: [6061]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:totaldebs)
                              op: Equal
                              rhs: {(0)}
                              spids: [6066]
                            )
                          ]
                          spids: [6066]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:countdebs)
                              op: Equal
                              rhs: {(0)}
                              spids: [6070]
                            )
                          ]
                          spids: [6070]
                        )
                        (While
                          cond: [
                            (Sentence
                              child: (C {(read)} {(p)} {(details)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                              {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:newleft)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name '$newleft') (' ') ($ VSub_Name '$p'))
                                                }
                                              spids: [6106]
                                            )
                                          ]
                                          spids: [6106]
                                        )
                                      ]
                                      spids: [-1 6103]
                                    )
                                  ]
                                  else_action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:size)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name details>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('* ')}
                                                        )
                                                      spids: [6119 6123]
                                                    )
                                                  )
                                                }
                                              spids: [6117]
                                            )
                                          ]
                                          spids: [6117]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:totaldebs)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (ArithSubPart
                                                  anode: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: (ArithWord w:{($ VSub_Name '$totaldebs')})
                                                      right: (ArithWord w:{($ VSub_Name '$size')})
                                                    )
                                                  spids: [6130 6137]
                                                )
                                              )
                                            }
                                          spids: [6128]
                                        )
                                      ]
                                      spids: [6128]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:countdebs)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (ArithSubPart
                                                  anode: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: (ArithWord w:{($ VSub_Name '$countdebs')})
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [6143 6150]
                                                )
                                              )
                                            }
                                          spids: [6141]
                                        )
                                      ]
                                      spids: [6141]
                                    )
                                  ]
                                  spids: [6114 6154]
                                )
                              ]
                              spids: [6083 6157]
                            )
                        )
                        (C {(echo)} 
                          {
                            (DQ ($ VSub_Name '$countdebs') (' ') ($ VSub_Name '$totaldebs') 
                              ($ VSub_Name '$newleft')
                            )
                          }
                        )
                      ]
                    )
                  spids: [6058 6170]
                )
              ]
              negated: False
            )
          ]
          spids: [6011]
        )
      spids: [6006 6010]
    )
    (FuncDef
      name: download_debs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [6188]
                )
              ]
              spids: [6186]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [6196]
                )
              ]
              spids: [6194]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (Pipeline
              children: [
                (C {($ VSub_Name '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_Name '$m'))} 
                  {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))}
                )
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:leftover)
                              op: Equal
                              rhs: {(DQ )}
                              spids: [6230]
                            )
                          ]
                          spids: [6230]
                        )
                        (While
                          cond: [
                            (Sentence
                              child: 
                                (C {(read)} {(p)} {(ver)} {(arc)} {(mdup)} {(fil)} {(checksum)} {(size)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ver'))} 
                                              {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:leftover)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name '$leftover') (' ') 
                                                    ($ VSub_Name '$p')
                                                  )
                                                }
                                              spids: [6277]
                                            )
                                          ]
                                          spids: [6277]
                                        )
                                      ]
                                      spids: [-1 6274]
                                    )
                                  ]
                                  else_action: [
                                    (C {(progress_next)} 
                                      {
                                        (DQ 
                                          (ArithSubPart
                                            anode: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: (ArithWord w:{($ VSub_Name '$dloaddebs')})
                                                right: (ArithWord w:{($ VSub_Name '$size')})
                                              )
                                            spids: [6291 6298]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:debdest)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$DLDEST')} {(deb)} 
                                                          {(DQ ($ VSub_Name '$p'))} {(DQ ($ VSub_Name '$ver'))} {(DQ ($ VSub_Name '$arc'))} {(DQ ($ VSub_Name '$m'))} 
                                                          {(DQ ($ VSub_Name '$fil'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [6306 6330]
                                                )
                                              )
                                            }
                                          spids: [6304]
                                        )
                                      ]
                                      spids: [6302]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(get)} 
                                                  {(DQ ($ VSub_Name '$m') (/) ($ VSub_Name '$fil'))} {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$debdest'))} {(DQ ($ VSub_Name '$checksum'))} 
                                                  {(DQ ($ VSub_Name '$size'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:dloaddebs)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (ArithSubPart
                                                          anode: 
                                                            (ArithBinary
                                                              op_id: Arith_Plus
                                                              left: 
                                                                (ArithWord
                                                                  w: {($ VSub_Name '$dloaddebs')}
                                                                )
                                                              right: 
                                                                (ArithWord
                                                                  w: {($ VSub_Name '$size')}
                                                                )
                                                            )
                                                          spids: [6364 6371]
                                                        )
                                                      )
                                                    }
                                                  spids: [6362]
                                                )
                                              ]
                                              spids: [6362]
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {
                                                  (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$ver') 
                                                    (' ') ($ VSub_Name '$m') (/) ($ VSub_Name '$fil')
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: -1
                                                  arg_word: 
                                                    {($ VSub_Name '$TARGET') (/debootstrap/deburis)}
                                                  spids: [6377]
                                                )
                                              ]
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {
                                                  (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$debdest'))
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: -1
                                                  arg_word: 
                                                    {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                                                  spids: [6394]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [-1 6359]
                                        )
                                      ]
                                      else_action: [
                                        (C {(warning)} {(COULDNTDL)} 
                                          {(DQ ("Couldn't download package %s (ver %s arch %s)"))} {(DQ ($ VSub_Name '$p'))} {(DQ ($ VSub_Name '$ver'))} {(DQ ($ VSub_Name '$arc'))}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:leftover)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name '$leftover') (' ') 
                                                    ($ VSub_Name '$p')
                                                  )
                                                }
                                              spids: [6429]
                                            )
                                          ]
                                          spids: [6429]
                                        )
                                      ]
                                      spids: [6405 6437]
                                    )
                                  ]
                                  spids: [6285 6440]
                                )
                              ]
                              spids: [6254 6443]
                            )
                        )
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {
                              (BracedVarSub
                                token: <VSub_Name leftover>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(' ')})
                                spids: [6451 6455]
                              )
                            }
                          ]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(5)} spids:[6448])]
                        )
                      ]
                    )
                  spids: [6227 6458]
                )
              ]
              negated: False
            )
          ]
          spids: [6183]
        )
      spids: [6178 6182]
    )
    (FuncDef
      name: download_release
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [6475 6479]
                        )
                      )
                    }
                  spids: [6473]
                )
              ]
              spids: [6471]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:numdebs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Pound '$#'))}
                  spids: [6486]
                )
              ]
              spids: [6484]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:countdebs) op:Equal rhs:{(0)} spids:[6495])]
              spids: [6493]
            )
            (C {(progress)} {($ VSub_Name '$countdebs')} {($ VSub_Name '$numdebs')} {(SIZEDEBS)} 
              {(DQ ('Finding package sizes'))}
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:totaldebs) op:Equal rhs:{(0)} spids:[6515])]
              spids: [6513]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:leftoverdebs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [6521]
                )
              ]
              spids: [6519]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:leftoverdebs)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(printf)} {(DQ ($ VSub_Name '$leftoverdebs'))})
                                  (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                  (C {(sort)} {(-u)})
                                  (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [6533 6563]
                      )
                    }
                  spids: [6532]
                )
              ]
              spids: [6532]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:numdebs)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(printf)} {(DQ ($ VSub_Name '$leftoverdebs'))})
                                  (C {(wc)} {(-w)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [6567 6577]
                      )
                    }
                  spids: [6566]
                )
              ]
              spids: [6566]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$countdebs'))} {(-ge)} 
                                  {(DQ ($ VSub_Name '$numdebs'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Break break>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [-1 6610]
                        )
                      ]
                      spids: [-1 6615]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: 
                            {
                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') (/binary-) 
                                ($ VSub_Name '$ARCH') (/Packages)
                              )
                            }
                          spids: [6621]
                        )
                      ]
                      spids: [6619]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pkgdest)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$TARGET') (/) 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                          {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                          {(DQ ($ VSub_Name '$path'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [6639 6663]
                                )
                              )
                            }
                          spids: [6635]
                        )
                      ]
                      spids: [6633]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                  {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Continue continue>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [-1 6682]
                        )
                      ]
                      spids: [-1 6687]
                    )
                    (C {(info)} {(CHECKINGSIZES)} {(DQ ('Checking component %s on %s...'))} 
                      {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$m1'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:leftoverdebs)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_package_sizes)} {(DQ ($ VSub_Name '$m1'))} 
                                          {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$leftoverdebs')}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [6711 6723]
                                )
                              )
                            }
                          spids: [6709]
                        )
                      ]
                      spids: [6709]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:countdebs)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Plus
                                    left: (ArithWord w:{($ VSub_Name '$countdebs')})
                                    right: 
                                      (ArithWord
                                        w: 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name leftoverdebs>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VOp1_DPercent
                                                  arg_word: {(' *')}
                                                )
                                              spids: [6734 6738]
                                            )
                                          }
                                      )
                                  )
                                spids: [6729 6740]
                              )
                            }
                          spids: [6728]
                        )
                      ]
                      spids: [6728]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:leftoverdebs)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name leftoverdebs>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('* ')})
                                spids: [6744 6748]
                              )
                            }
                          spids: [6743]
                        )
                      ]
                      spids: [6743]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:totaldebs)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name leftoverdebs>
                                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                                spids: [6753 6757]
                              )
                            }
                          spids: [6752]
                        )
                      ]
                      spids: [6752]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:leftoverdebs)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name leftoverdebs>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('* ')})
                                spids: [6761 6765]
                              )
                            }
                          spids: [6760]
                        )
                      ]
                      spids: [6760]
                    )
                    (C {(progress)} {($ VSub_Name '$countdebs')} {($ VSub_Name '$numdebs')} {(SIZEDEBS)} 
                      {(DQ ('Finding package sizes'))}
                    )
                  ]
                  spids: [6590 6782]
                )
              spids: [6586 6588]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$countdebs'))} {(-ne)} 
                          {(DQ ($ VSub_Name '$numdebs'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(LEFTOVERDEBS)} {(DQ ("Couldn't find these debs: %s"))} 
                      {(DQ ($ VSub_Name '$leftoverdebs'))}
                    )
                  ]
                  spids: [-1 6803]
                )
              ]
              spids: [-1 6821]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:dloaddebs) op:Equal rhs:{(0)} spids:[6827])]
              spids: [6825]
            )
            (C {(progress)} {($ VSub_Name '$dloaddebs')} {($ VSub_Name '$totaldebs')} {(DOWNDEBS)} 
              {(DQ ('Downloading packages'))}
            )
            (SimpleCommand
              words: [{(Lit_Other ':')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                  spids: [6846]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgs_to_get)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [6852]
                )
              ]
              spids: [6852]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: 
                            {
                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') (/binary-) 
                                ($ VSub_Name '$ARCH') (/Packages)
                              )
                            }
                          spids: [6872]
                        )
                      ]
                      spids: [6870]
                    )
                    (ForEach
                      iter_name: m
                      iter_words: [{($ VSub_Name '$MIRRORS')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [6902 6926]
                                        )
                                      )
                                    }
                                  spids: [6898]
                                )
                              ]
                              spids: [6896]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                          {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [-1 6945]
                                )
                              ]
                              spids: [-1 6950]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgs_to_get)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(download_debs)}
                                                    {(DQ ($ VSub_Name '$m'))}
                                                    {(DQ ($ VSub_Name '$pkgdest'))}
                                                    {($ VSub_Name '$pkgs_to_get')}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_GreatAnd
                                                      fd: 5
                                                      arg_word: {(1)}
                                                      spids: [6968]
                                                    )
                                                    (Redir
                                                      op_id: Redir_GreatAnd
                                                      fd: 1
                                                      arg_word: {(6)}
                                                      spids: [6971]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [6955 6973]
                                        )
                                      )
                                    }
                                  spids: [6953]
                                )
                              ]
                              spids: [6953]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$pkgs_to_get'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Break break>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [-1 6990]
                                )
                              ]
                              spids: [-1 6995]
                            )
                          ]
                          spids: [6893 6998]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:6 arg_word:{(1)} spids:[7000])]
                      spids: [6889 6891]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$pkgs_to_get'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Break break>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [-1 7017]
                        )
                      ]
                      spids: [-1 7022]
                    )
                  ]
                  spids: [6867 7025]
                )
              spids: [6863 6865]
            )
            (C {(progress)} {($ VSub_Name '$dloaddebs')} {($ VSub_Name '$totaldebs')} {(DOWNDEBS)} 
              {(DQ ('Downloading packages'))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$pkgs_to_get'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(COULDNTDLPKGS)} {(DQ ("Couldn't download packages: %s"))} 
                      {(DQ ($ VSub_Name '$pkgs_to_get'))}
                    )
                  ]
                  spids: [-1 7058]
                )
              ]
              spids: [-1 7076]
            )
          ]
          spids: [6468]
        )
      spids: [6463 6467]
    )
    (FuncDef
      name: download_main_indices
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [7093 7097]
                        )
                      )
                    }
                  spids: [7091]
                )
              ]
              spids: [7089]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:comp)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name USE_COMPONENTS))}
                  spids: [7103]
                )
              ]
              spids: [7101]
            )
            (C {(progress)} {(0)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))})
            (C {(progress_next)} {(100)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$comp'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:comp)
                              op: Equal
                              rhs: {(main)}
                              spids: [7145]
                            )
                          ]
                          spids: [7145]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [-1 7143]
                )
              ]
              spids: [-1 7149]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPONENTS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {($ VSub_Name '$comp')})
                                    (C {(tr)} {(SQ <'|'>)} {(SQ <' '>)})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [7154 7170]
                        )
                      )
                    }
                  spids: [7152]
                )
              ]
              spids: [7152]
            )
            (C {(export)} {(COMPONENTS)})
            (ForEach
              iter_name: m
              iter_words: [{($ VSub_Name '$MIRRORS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: c
                      iter_words: [{($ VSub_Name '$COMPONENTS')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [7206]
                                )
                              ]
                              spids: [7204]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [7224 7248]
                                        )
                                      )
                                    }
                                  spids: [7220]
                                )
                              ]
                              spids: [7218]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (C {(in_path)} {(gunzip)})
                                            (C {(get)} 
                                              {(DQ ($ VSub_Name '$m') (/) (${ VSub_Name path) (.gz))} {(DQ (${ VSub_Name pkgdest) (.gz))}
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$pkgdest'))})
                                    (C {(gunzip)} {(DQ ($ VSub_Name '$pkgdest') (.gz))})
                                  ]
                                  spids: [-1 7279]
                                )
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(get)} {(DQ ($ VSub_Name '$m') (/) ($ VSub_Name '$path'))} 
                                          {(DQ ($ VSub_Name '$pkgdest'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(true)})]
                                  spids: [7299 7314]
                                )
                              ]
                              spids: [-1 7320]
                            )
                          ]
                          spids: [7201 7323]
                        )
                      spids: [7197 7199]
                    )
                  ]
                  spids: [7189 7326]
                )
              spids: [7185 7187]
            )
            (C {(progress)} {(100)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))})
          ]
          spids: [7086]
        )
      spids: [7081 7085]
    )
    (FuncDef
      name: download_main
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [7356 7360]
                        )
                      )
                    }
                  spids: [7354]
                )
              ]
              spids: [7352]
            )
            (SimpleCommand
              words: [{(Lit_Other ':')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                  spids: [7366]
                )
              ]
            )
            (ForEach
              iter_name: p
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: c
                      iter_words: [{($ VSub_Name '$COMPONENTS')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:details)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [7399]
                                )
                              ]
                              spids: [7397]
                            )
                            (ForEach
                              iter_name: m
                              iter_words: [{($ VSub_Name '$MIRRORS')}]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:path)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                                (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                              )
                                            }
                                          spids: [7418]
                                        )
                                      ]
                                      spids: [7416]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pkgdest)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$TARGET') (/) 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                          {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                          {(DQ ($ VSub_Name '$path'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [7436 7460]
                                                )
                                              )
                                            }
                                          spids: [7432]
                                        )
                                      ]
                                      spids: [7430]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                                  {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [-1 7479]
                                        )
                                      ]
                                      spids: [-1 7484]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:details)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$PKGDETAILS')} {(PKGS)} 
                                                          {(DQ ($ VSub_Name '$m'))} {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_Name '$p'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [7489 7505]
                                                )
                                              )
                                            }
                                          spids: [7487]
                                        )
                                      ]
                                      spids: [7487]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                                  {(Lit_Other '=')} {(DQ ($ VSub_Name '$p') (' -'))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:details)
                                                  op: Equal
                                                  rhs: {(DQ )}
                                                  spids: [7530]
                                                )
                                              ]
                                              spids: [7530]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [-1 7527]
                                        )
                                      ]
                                      spids: [-1 7538]
                                    )
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:size)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name details>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('* ')}
                                                        )
                                                      spids: [7543 7547]
                                                    )
                                                  )
                                                }
                                              spids: [7541]
                                            )
                                          ]
                                          spids: [7541]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:details)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name details>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_Percent
                                                      arg_word: {(' *')}
                                                    )
                                                  spids: [7553 7557]
                                                )
                                              )
                                            }
                                          spids: [7551]
                                        )
                                      ]
                                      spids: [7551]
                                    )
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:checksum)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name details>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('* ')}
                                                        )
                                                      spids: [7563 7567]
                                                    )
                                                  )
                                                }
                                              spids: [7561]
                                            )
                                          ]
                                          spids: [7561]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:details)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name details>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_Percent
                                                      arg_word: {(' *')}
                                                    )
                                                  spids: [7573 7577]
                                                )
                                              )
                                            }
                                          spids: [7571]
                                        )
                                      ]
                                      spids: [7571]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:debdest)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$DLDEST')} {(deb)} 
                                                          {($ VSub_Name '$details')}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [7585 7591]
                                                )
                                              )
                                            }
                                          spids: [7583]
                                        )
                                      ]
                                      spids: [7581]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(get)} 
                                                  {
                                                    (DQ ($ VSub_Name '$m') (/) 
                                                      (BracedVarSub
                                                        token: <VSub_Name details>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_DPound
                                                            arg_word: {('* ')}
                                                          )
                                                        spids: [7602 7606]
                                                      )
                                                    )
                                                  } {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$debdest'))} {(DQ ($ VSub_Name '$checksum'))} 
                                                  {(DQ ($ VSub_Name '$size'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {
                                                  (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$debdest'))
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: -1
                                                  arg_word: 
                                                    {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                                                  spids: [7629]
                                                )
                                              ]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:details)
                                                  op: Equal
                                                  rhs: {(DQ (done))}
                                                  spids: [7640]
                                                )
                                              ]
                                              spids: [7640]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [-1 7624]
                                        )
                                      ]
                                      spids: [-1 7649]
                                    )
                                  ]
                                  spids: [7413 7652]
                                )
                              spids: [7409 7411]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                                  spids: [-1 7672]
                                )
                              ]
                              spids: [-1 7678]
                            )
                          ]
                          spids: [7394 7681]
                        )
                      spids: [7390 7392]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ (done))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(error)} {(1)} {(COULDNTDL)} {(DQ ("Couldn't download %s"))} 
                              {(DQ ($ VSub_Name '$p'))}
                            )
                          ]
                          spids: [-1 7702]
                        )
                      ]
                      spids: [-1 7720]
                    )
                  ]
                  spids: [7382 7723]
                )
              spids: [7376 7380]
            )
          ]
          spids: [7349]
        )
      spids: [7344 7348]
    )
    (FuncDef
      name: get_debs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:field)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7742]
                )
              ]
              spids: [7740]
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:m1) op:Equal spids:[7753])
                (assign_pair lhs:(LhsName name:c) op:Equal spids:[7755])
              ]
              spids: [7751]
            )
            (ForEach
              iter_name: m1
              iter_words: [{($ VSub_Name '$MIRRORS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: c
                      iter_words: [{($ VSub_Name '$COMPONENTS')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [7784]
                                )
                              ]
                              spids: [7782]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [7802 7826]
                                        )
                                      )
                                    }
                                  spids: [7798]
                                )
                              ]
                              spids: [7796]
                            )
                            (C {(echo)} 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(FIELD)} 
                                              {(DQ ($ VSub_Name '$field'))} {(DQ ($ VSub_Name '$m1'))} {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))}
                                            )
                                            (C {(sed)} {(SQ <'s/ .*//'>)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [7832 7862]
                                )
                              }
                            )
                          ]
                          spids: [7779 7865]
                        )
                      spids: [7775 7777]
                    )
                  ]
                  spids: [7767 7868]
                )
              spids: [7763 7765]
            )
          ]
          spids: [7737]
        )
      spids: [7732 7736]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:EXTRACTORS_SUPPORTED)
          op: Equal
          rhs: {(DQ ('dpkg-deb ar'))}
          spids: [7877]
        )
      ]
      spids: [7877]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:EXTRACT_DEB_TAR_OPTIONS)
          op: Equal
          rhs: {(SQ )}
          spids: [7882]
        )
      ]
      spids: [7882]
    )
    (FuncDef
      name: extract_dpkg_deb_field
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7898]
                )
              ]
              spids: [7896]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:field)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [7906]
                )
              ]
              spids: [7904]
            )
            (C {(dpkg-deb)} {(-f)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$field'))})
          ]
          spids: [7893]
        )
      spids: [7888 7892]
    )
    (FuncDef
      name: extract_dpkg_deb_data
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7938]
                )
              ]
              spids: [7936]
            )
            (Pipeline
              children: [
                (C {(dpkg-deb)} {(--fsys-tarfile)} {(DQ ($ VSub_Name '$pkg'))})
                (C {(tar)} {($ VSub_Name '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)})
              ]
              negated: False
            )
          ]
          spids: [7933]
        )
      spids: [7928 7932]
    )
    (FuncDef
      name: extract_ar_deb_field
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7979]
                )
              ]
              spids: [7977]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:field)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [7987]
                )
              ]
              spids: [7985]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tarball)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(ar)} {(-t)} {(DQ ($ VSub_Name '$pkg'))})
                                  (C {(grep)} 
                                    {
                                      (DQ ('^control') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\.'>
                                        ) (tar)
                                      )
                                    }
                                  )
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [7996 8014]
                      )
                    }
                  spids: [7995]
                )
              ]
              spids: [7993]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$tarball'))}
              arms: [
                (case_arm
                  pat_list: [{(control.tar.gz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(zcat)}
                          spids: [8030]
                        )
                      ]
                      spids: [8030]
                    )
                  ]
                  spids: [8027 8028 8033 -1]
                )
                (case_arm
                  pat_list: [{(control.tar.xz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(xzcat)}
                          spids: [8039]
                        )
                      ]
                      spids: [8039]
                    )
                  ]
                  spids: [8036 8037 8042 -1]
                )
                (case_arm
                  pat_list: [{(control.tar)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(cat)}
                          spids: [8048]
                        )
                      ]
                      spids: [8048]
                    )
                  ]
                  spids: [8045 8046 8051 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(error)} {(1)} {(UNKNOWNCONTROLCOMP)} 
                      {(DQ ('Unknown compression type for %s in %s'))} {(DQ ($ VSub_Name '$tarball'))} {(DQ ($ VSub_Name '$pkg'))}
                    )
                  ]
                  spids: [8054 8055 8075 -1]
                )
              ]
              spids: [8018 8024 8078]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(type)} {($ VSub_Name '$cat_cmd')}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [8088]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [8091]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(ar)} {(-p)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$tarball'))})
                        (C {($ VSub_Name '$cat_cmd')})
                        (SimpleCommand
                          words: [{(tar)} {(-O)} {(-xf)} {(-)} {(control)} {(./control)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [8129]
                            )
                          ]
                        )
                        (C {(grep)} {(-i)} {(DQ ('^') ($ VSub_Name '$field') (':'))})
                        (C {(sed)} {(-e)} {(SQ <'s/[^:]*: *//'>)})
                        (C {(head)} {(-n)} {(1)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 8095]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(UNPACKCMDUNVL)} 
                  {(DQ ('Extracting %s requires the %s command, which is not available'))} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$cat_cmd'))}
                )
              ]
              spids: [8164 8186]
            )
          ]
          spids: [7974]
        )
      spids: [7969 7973]
    )
    (FuncDef
      name: extract_ar_deb_data
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [8201]
                )
              ]
              spids: [8199]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tarball)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(ar)} {(-t)} {(DQ ($ VSub_Name '$pkg'))})
                                  (C {(grep)} {(DQ ('^data.tar'))})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [8210 8226]
                      )
                    }
                  spids: [8209]
                )
              ]
              spids: [8207]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$tarball'))}
              arms: [
                (case_arm
                  pat_list: [{(data.tar.gz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(zcat)}
                          spids: [8242]
                        )
                      ]
                      spids: [8242]
                    )
                  ]
                  spids: [8239 8240 8245 -1]
                )
                (case_arm
                  pat_list: [{(data.tar.bz2)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(bzcat)}
                          spids: [8251]
                        )
                      ]
                      spids: [8251]
                    )
                  ]
                  spids: [8248 8249 8254 -1]
                )
                (case_arm
                  pat_list: [{(data.tar.xz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(xzcat)}
                          spids: [8260]
                        )
                      ]
                      spids: [8260]
                    )
                  ]
                  spids: [8257 8258 8263 -1]
                )
                (case_arm
                  pat_list: [{(data.tar)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(cat)}
                          spids: [8269]
                        )
                      ]
                      spids: [8269]
                    )
                  ]
                  spids: [8266 8267 8272 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(error)} {(1)} {(UNKNOWNDATACOMP)} 
                      {(DQ ('Unknown compression type for %s in %s'))} {(DQ ($ VSub_Name '$tarball'))} {(DQ ($ VSub_Name '$pkg'))}
                    )
                  ]
                  spids: [8275 8276 8296 -1]
                )
              ]
              spids: [8230 8236 8299]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(type)} {($ VSub_Name '$cat_cmd')}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [8309]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [8312]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(ar)} {(-p)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$tarball'))})
                        (C {($ VSub_Name '$cat_cmd')})
                        (C {(tar)} {($ VSub_Name '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 8316]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(UNPACKCMDUNVL)} 
                  {(DQ ('Extracting %s requires the %s command, which is not available'))} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$cat_cmd'))}
                )
              ]
              spids: [8346 8368]
            )
          ]
          spids: [8196]
        )
      spids: [8191 8195]
    )
    (FuncDef
      name: valid_extractor
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:extractor)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [8383]
                )
              ]
              spids: [8381]
            )
            (ForEach
              iter_name: E
              iter_words: [{($ VSub_Name '$EXTRACTORS_SUPPORTED')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$extractor'))} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$E'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [-1 8419]
                        )
                      ]
                      spids: [-1 8427]
                    )
                  ]
                  spids: [8399 8430]
                )
              spids: [8395 8397]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [8378]
        )
      spids: [8373 8377]
    )
    (FuncDef
      name: choose_extractor
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:extractor) op:Equal spids:[8451])]
              spids: [8449]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:extractor)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))}
                          spids: [8471]
                        )
                      ]
                      spids: [8471]
                    )
                  ]
                  spids: [-1 8468]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(type)} {(dpkg-deb)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [8483]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [8486]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:extractor)
                          op: Equal
                          rhs: {(DQ (dpkg-deb))}
                          spids: [8493]
                        )
                      ]
                      spids: [8493]
                    )
                  ]
                  spids: [8477 8490]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:extractor)
                      op: Equal
                      rhs: {(DQ (ar))}
                      spids: [8502]
                    )
                  ]
                  spids: [8502]
                )
              ]
              spids: [8499 8508]
            )
            (C {(info)} {(CHOSENEXTRACTOR)} {(DQ ('Chosen extractor for .deb packages: %s'))} 
              {(DQ ($ VSub_Name '$extractor'))}
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$extractor'))}
              arms: [
                (case_arm
                  pat_list: [{(dpkg-deb)}]
                  action: [
                    (FuncDef
                      name: extract_deb_field
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_dpkg_deb_field)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8543]
                        )
                      spids: [8538 8542]
                    )
                    (FuncDef
                      name: extract_deb_data
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_dpkg_deb_data)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8560]
                        )
                      spids: [8555 8559]
                    )
                  ]
                  spids: [8534 8535 8572 -1]
                )
                (case_arm
                  pat_list: [{(ar)}]
                  action: [
                    (FuncDef
                      name: extract_deb_field
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_ar_deb_field)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8584]
                        )
                      spids: [8579 8583]
                    )
                    (FuncDef
                      name: extract_deb_data
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_ar_deb_data)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8601]
                        )
                      spids: [8596 8600]
                    )
                  ]
                  spids: [8575 8576 8613 -1]
                )
              ]
              spids: [8525 8531 8616]
            )
          ]
          spids: [8446]
        )
      spids: [8441 8445]
    )
    (FuncDef
      name: extract
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (C {(cd)} {(DQ ($ VSub_Name '$TARGET'))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:p)
                              op: Equal
                              rhs: {(0)}
                              spids: [8640]
                            )
                            (assign_pair
                              lhs: (LhsName name:cat_cmd)
                              op: Equal
                              spids: [8643]
                            )
                          ]
                          spids: [8638]
                        )
                        (ForEach
                          iter_name: pkg
                          iter_words: [
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(debfor)} {(DQ ($ VSub_At '$@'))})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [8652 8658]
                              )
                            }
                          ]
                          do_arg_iter: False
                          body: 
                            (DoGroup
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:p)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$p')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [8666 8673]
                                            )
                                          )
                                        }
                                      spids: [8664]
                                    )
                                  ]
                                  spids: [8664]
                                )
                                (C {(progress)} {(DQ ($ VSub_Name '$p'))} {(DQ ($ VSub_Pound '$#'))} 
                                  {(EXTRACTPKGS)} {(DQ ('Extracting packages'))}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:packagename)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(DQ ($ VSub_Name '$pkg'))})
                                                        (C {(sed)} {(SQ <'s,^.*/,,;s,_.*$,,'>)})
                                                      ]
                                                      negated: False
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [8696 8710]
                                            )
                                          )
                                        }
                                      spids: [8694]
                                    )
                                  ]
                                  spids: [8694]
                                )
                                (C {(info)} {(EXTRACTING)} {(DQ ('Extracting %s...'))} 
                                  {(DQ ($ VSub_Name '$packagename'))}
                                )
                                (C {(extract_deb_data)} {(DQ (./) ($ VSub_Name '$pkg'))})
                              ]
                              spids: [8661 8735]
                            )
                          spids: [8651 8659]
                        )
                      ]
                    )
                  spids: [8628 8737]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [8626]
        )
      spids: [8621 8625]
    )
    (FuncDef
      name: in_target_nofail
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{($ VSub_Name '$CHROOT_CMD')} {(DQ ($ VSub_At '$@'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [8761]
                                )
                              ]
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(true)})]
                  spids: [-1 8765]
                )
              ]
              spids: [-1 8771]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [8748]
        )
      spids: [8743 8747]
    )
    (FuncDef
      name: in_target_failmsg
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:code)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [8791]
                )
              ]
              spids: [8789]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:msg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [8799]
                )
              ]
              spids: [8797]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:arg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [8807]
                )
              ]
              spids: [8805]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {($ VSub_Name '$CHROOT_CMD')} {(DQ ($ VSub_At '$@'))})]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(warning)} {(DQ ($ VSub_Name '$code'))} {(DQ ($ VSub_Name '$msg'))} 
                      {(DQ ($ VSub_Name '$arg'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:msg)
                          op: Equal
                          rhs: {(DQ ('See %s for details'))}
                          spids: [8855]
                        )
                      ]
                      spids: [8855]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} 
                                  {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))}
                                  spids: [8878]
                                )
                              ]
                              spids: [8878]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkg)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (C {(grep)} {(SQ <'^dpkg: error processing '>)} 
                                                      {
                                                        (DQ ($ VSub_Name '$TARGET') 
                                                          (/debootstrap/debootstrap.log)
                                                        )
                                                      }
                                                    )
                                                    (C {(head)} {(-n)} {(1)})
                                                    (C {(sed)} 
                                                      {
                                                        (SQ 
                                                          <
's/\\(error processing \\)\\(package \\|archive \\)/\\1/'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)})
                                                  ]
                                                  negated: False
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [8889 8930]
                                        )
                                      )
                                    }
                                  spids: [8887]
                                )
                              ]
                              spids: [8885]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$pkg'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:msg)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$msg') (' (possibly the package ') 
                                                ($ VSub_Name '$pkg') (' is at fault)')
                                              )
                                            }
                                          spids: [8950]
                                        )
                                      ]
                                      spids: [8950]
                                    )
                                  ]
                                  spids: [-1 8947]
                                )
                              ]
                              spids: [-1 8959]
                            )
                          ]
                          spids: [-1 8875]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:arg)
                              op: Equal
                              rhs: {(DQ ('the log'))}
                              spids: [8965]
                            )
                          ]
                          spids: [8965]
                        )
                      ]
                      spids: [8962 8971]
                    )
                    (C {(warning)} {(DQ ($ VSub_Name '$code'))} {(DQ ($ VSub_Name '$msg'))} 
                      {(DQ ($ VSub_Name '$arg'))}
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 8833]
                )
              ]
              spids: [-1 8994]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [8786]
        )
      spids: [8781 8785]
    )
    (FuncDef
      name: in_target
      body: 
        (BraceGroup
          children: [
            (C {(in_target_failmsg)} {(IN_TARGET_FAIL)} {(DQ ('Failure trying to run: %s'))} 
              {(DQ ($ VSub_Name '$CHROOT_CMD') (' ') ($ VSub_Star '$*'))} {(DQ ($ VSub_At '$@'))}
            )
          ]
          spids: [9009]
        )
      spids: [9004 9008]
    )
    (FuncDef
      name: conditional_cp
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                          {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(Lit_Other '[')} {(-L)} {(DQ ($ VSub_Number '$1'))} 
                                      {(Lit_Other ']')}
                                    )
                                    (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} 
                                      {(Lit_Other ']')}
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(cat)} {(DQ ($ VSub_Number '$1'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))}
                                  spids: [9099]
                                )
                              ]
                            )
                          ]
                          spids: [-1 9090]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(cp)} {(-a)} {(DQ ($ VSub_Number '$1'))} 
                              {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))}
                            )
                          ]
                          spids: [9107 9120]
                        )
                      ]
                      spids: [-1 9138]
                    )
                  ]
                  spids: [-1 9062]
                )
              ]
              spids: [-1 9141]
            )
          ]
          spids: [9042]
        )
      spids: [9037 9041]
    )
    (FuncDef
      name: mv_invalid_to
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [9156]
                )
              ]
              spids: [9154]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name m>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_Pound
                                                arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)}
                                              )
                                            spids: [9168 9174]
                                          )
                                        )
                                      }
                                    )
                                    (C {(tr)} {(SQ </>)} {(SQ <_>)})
                                    (C {(sed)} {(SQ <'s/_*//'>)})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [9164 9196]
                        )
                      )
                    }
                  spids: [9162]
                )
              ]
              spids: [9162]
            )
            (Subshell
              child: 
                (CommandList
                  children: [
                    (C {(cd)} {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$APTSTATE') (/lists))})
                    (ForEach
                      iter_name: a
                      iter_words: [{(debootstrap.invalid_) (Lit_Other '*')}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (C {(mv)} {(DQ ($ VSub_Name '$a'))} 
                              {
                                (DQ (${ VSub_Name m) (_) 
                                  (BracedVarSub
                                    token: <VSub_Name a>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*_')})
                                    spids: [9235 9239]
                                  )
                                )
                              }
                            )
                          ]
                          spids: [9221 9243]
                        )
                      spids: [9216 9219]
                    )
                  ]
                )
              spids: [9200 9246]
            )
          ]
          spids: [9151]
        )
      spids: [9146 9150]
    )
    (FuncDef
      name: setup_apt_sources
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/etc/apt))})
            (ForEach
              iter_name: m
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:cs) op:Equal rhs:{(DQ )} spids:[9285])]
                      spids: [9283]
                    )
                    (ForEach
                      iter_name: c
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name COMPONENTS>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                              )
                            spids: [9296 9300]
                          )
                        }
                      ]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [9308]
                                )
                              ]
                              spids: [9306]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [9326 9350]
                                        )
                                      )
                                    }
                                  spids: [9322]
                                )
                              ]
                              spids: [9320]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$pkgdest'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:cs)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Name '$cs') (' ') ($ VSub_Name '$c'))}
                                              spids: [9369]
                                            )
                                          ]
                                          spids: [9369]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [-1 9367]
                                )
                              ]
                              spids: [-1 9377]
                            )
                          ]
                          spids: [9303 9380]
                        )
                      spids: [9295 9301]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$cs'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (C {(echo)} 
                                  {
                                    (DQ ('deb ') ($ VSub_Name '$m') (' ') ($ VSub_Name '$SUITE') 
                                      ($ VSub_Name '$cs')
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [-1 9400]
                        )
                      ]
                      spids: [-1 9413]
                    )
                  ]
                  spids: [9280 9416]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))}
                  spids: [9418]
                )
              ]
              spids: [9274 9278]
            )
          ]
          spids: [9256]
        )
      spids: [9251 9255]
    )
    (FuncDef
      name: setup_etc
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/etc))})
            (C {(conditional_cp)} {(/etc/resolv.conf)} {(DQ ($ VSub_Name '$TARGET'))})
            (C {(conditional_cp)} {(/etc/hostname)} {(DQ ($ VSub_Name '$TARGET'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DLDEST'))} {(Lit_Other '=')} 
                              {(apt_dest)} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                              {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))} {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(setup_apt_sources)} {(DQ ('http://debootstrap.invalid/'))})]
                  spids: [-1 9496]
                )
              ]
              spids: [-1 9506]
            )
          ]
          spids: [9433]
        )
      spids: [9428 9432]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:UMOUNT_DIRS) op:Equal rhs:{(SQ )} spids:[9511])]
      spids: [9511]
    )
    (FuncDef
      name: umount_exit_function
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:realdir) op:Equal spids:[9524])]
              spids: [9522]
            )
            (ForEach
              iter_name: dir
              iter_words: [{($ VSub_Name '$UMOUNT_DIRS')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:realdir)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(in_target_nofail)} {(readlink)} {(-f)} 
                                          {(DQ ($ VSub_Name '$dir'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [9541 9551]
                                )
                              )
                            }
                          spids: [9539]
                        )
                      ]
                      spids: [9539]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$realdir'))} {(Lit_Other ']')})
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                    (AndOr
                      children: [
                        (Subshell
                          child: 
                            (CommandList
                              children: [
                                (Sentence
                                  child: (C {(cd)} {(/)})
                                  terminator: <Op_Semi ';'>
                                )
                                (C {(umount)} 
                                  {
                                    (DQ ($ VSub_Name '$TARGET') (/) 
                                      (BracedVarSub
                                        token: <VSub_Name realdir>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Pound
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [9581 9585]
                                      )
                                    )
                                  }
                                )
                              ]
                            )
                          spids: [9568 9588]
                        )
                        (C {(true)})
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [9536 9595]
                )
              spids: [9532 9534]
            )
          ]
          spids: [9519]
        )
      spids: [9514 9518]
    )
    (FuncDef
      name: umount_on_exit
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$UMOUNT_DIRS'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UMOUNT_DIRS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$UMOUNT_DIRS') (' ') ($ VSub_Number '$1'))}
                          spids: [9622]
                        )
                      ]
                      spids: [9622]
                    )
                  ]
                  spids: [-1 9619]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:UMOUNT_DIRS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [9633]
                    )
                  ]
                  spids: [9633]
                )
                (C {(on_exit)} {(umount_exit_function)})
              ]
              spids: [9630 9644]
            )
          ]
          spids: [9605]
        )
      spids: [9600 9604]
    )
    (FuncDef
      name: clear_mtab
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-h)} 
                              {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))} {(Lit_Other ']')}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))})]
                  spids: [-1 9686]
                )
              ]
              spids: [-1 9699]
            )
          ]
          spids: [9654]
        )
      spids: [9649 9653]
    )
    (FuncDef
      name: setup_proc
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (freebsd) (Lit_Other '*')}]
                  action: [
                    (C {(umount_on_exit)} {(/dev)})
                    (C {(umount_on_exit)} {(/proc)})
                    (AndOr
                      children: [
                        (SimpleCommand
                          words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/proc))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [9744]
                            )
                          ]
                        )
                        (C {(true)})
                      ]
                      op_id: Op_DPipe
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$HOST_OS'))} {(Lit_Other '=')} 
                                  {(kfreebsd)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(in_target)} {(mount)} {(-t)} {(linprocfs)} {(proc)} {(/proc)})]
                          spids: [-1 9767]
                        )
                      ]
                      else_action: [
                        (C {(mount)} {(-t)} {(linprocfs)} {(proc)} {($ VSub_Name '$TARGET') (/proc)})
                      ]
                      spids: [9783 9798]
                    )
                  ]
                  spids: [9721 9724 9801 -1]
                )
                (case_arm
                  pat_list: [{(hurd) (Lit_Other '*')}]
                  action: [
                    (C {(settrans)} {(-a)} {(DQ ($ VSub_Name '$TARGET') (/dev))} {(/hurd/firmlink)} 
                      {(/dev)}
                    )
                    (C {(settrans)} {(-a)} {(DQ ($ VSub_Name '$TARGET') (/servers))} {(/hurd/firmlink)} 
                      {(/servers)}
                    )
                    (C {(settrans)} {(-a)} {(DQ ($ VSub_Name '$TARGET') (/proc))} {(/hurd/firmlink)} 
                      {(/proc)}
                    )
                  ]
                  spids: [9804 9806 9855 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(umount_on_exit)} {(/dev/pts)})
                    (C {(umount_on_exit)} {(/dev/shm)})
                    (C {(umount_on_exit)} {(/proc/bus/usb)})
                    (C {(umount_on_exit)} {(/proc)})
                    (AndOr
                      children: [
                        (SimpleCommand
                          words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/proc))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [9889]
                            )
                          ]
                        )
                        (C {(true)})
                      ]
                      op_id: Op_DPipe
                    )
                    (C {(in_target)} {(mount)} {(-t)} {(proc)} {(proc)} {(/proc)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$TARGET') (/sys))} 
                                      {(Lit_Other ']')}
                                    )
                                    (SimpleCommand
                                      words: [
                                        {(grep)}
                                        {(-q)}
                                        {(SQ <'[[:space:]]sysfs'>)}
                                        {(/proc/filesystems)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [9937]
                                        )
                                      ]
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(umount_on_exit)} {(/sys)})
                            (AndOr
                              children: [
                                (SimpleCommand
                                  words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/sys))}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [9956]
                                    )
                                  ]
                                )
                                (C {(true)})
                              ]
                              op_id: Op_DPipe
                            )
                            (C {(in_target)} {(mount)} {(-t)} {(sysfs)} {(sysfs)} {(/sys)})
                          ]
                          spids: [-1 9941]
                        )
                      ]
                      spids: [-1 9977]
                    )
                    (C {(on_exit)} {(clear_mtab)})
                  ]
                  spids: [9858 9859 9985 -1]
                )
              ]
              spids: [9712 9718 9988]
            )
            (C {(umount_on_exit)} {(/lib/init/rw)})
          ]
          spids: [9709]
        )
      spids: [9704 9708]
    )
    (FuncDef
      name: setup_proc_fakechroot
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$TARGET') (/proc))})
            (C {(ln)} {(-s)} {(/proc)} {(DQ ($ VSub_Name '$TARGET'))})
          ]
          spids: [10003]
        )
      spids: [9998 10002]
    )
    (FuncDef
      name: setup_devices
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(doing_variant)} {(fakechroot)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(setup_devices_fakechroot)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [-1 10047]
                )
              ]
              spids: [-1 10058]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(kfreebsd) (Lit_Other '*')}]
                  spids: [10071 10073 10076 -1]
                )
                (case_arm pat_list:[{(freebsd)}] spids:[100791008010083-1])
                (case_arm
                  pat_list: [{(hurd) (Lit_Other '*')}]
                  spids: [10086 10088 10091 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(setup_devices_simple)})]
                  spids: [10094 10095 10101 -1]
                )
              ]
              spids: [10062 10068 10104]
            )
          ]
          spids: [10037]
        )
      spids: [10032 10036]
    )
    (FuncDef
      name: setup_dynamic_devices
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(doing_variant)} {(fakechroot)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [-1 10127]
                )
              ]
              spids: [-1 10135]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(kfreebsd) (Lit_Other '*')}]
                  action: [(C {(in_target)} {(mount)} {(-t)} {(devfs)} {(devfs)} {(/dev)})]
                  spids: [10148 10150 10165 -1]
                )
                (case_arm
                  pat_list: [{(freebsd)}]
                  action: [(C {(mount)} {(-t)} {(devfs)} {(devfs)} {($ VSub_Name '$TARGET') (/dev)})]
                  spids: [10168 10169 10183 -1]
                )
                (case_arm
                  pat_list: [{(hurd) (Lit_Other '*')}]
                  action: [(C {(in_target)} {(/usr/lib/hurd/setup-translators)} {(-k)})]
                  spids: [10186 10188 10201 -1]
                )
              ]
              spids: [10139 10145 10204]
            )
          ]
          spids: [10117]
        )
      spids: [10112 10116]
    )
    (FuncDef
      name: setup_devices_simple
      body: 
        (BraceGroup
          children: [
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/null)} {(c)} {(1)} {(3)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/zero)} {(c)} {(1)} {(5)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/full)} {(c)} {(1)} {(7)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/random)} {(c)} {(1)} {(8)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/urandom)} {(c)} {(1)} {(9)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/tty)} {(c)} {(5)} {(0)})
            (C {(mkdir)} {($ VSub_Name '$TARGET') (/dev/pts/)} {($ VSub_Name '$TARGET') (/dev/shm/)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/ptmx)} {(c)} {(5)} 
                              {(2)}
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(warning)} {(MKNOD)} 
                      {
                        (DQ 
                          (
'Could not create /dev/ptmx, falling back to symlink. This chroot will require /dev/pts mounted with ptmxmode=666'
                          )
                        )
                      }
                    )
                    (C {(ln)} {(-s)} {(pts/ptmx)} {($ VSub_Name '$TARGET') (/dev/ptmx)})
                  ]
                  spids: [-1 10358]
                )
              ]
              spids: [-1 10380]
            )
            (C {(ln)} {(-s)} {(/proc/self/fd)} {($ VSub_Name '$TARGET') (/dev/fd)})
            (C {(ln)} {(-s)} {(/proc/self/fd/0)} {($ VSub_Name '$TARGET') (/dev/stdin)})
            (C {(ln)} {(-s)} {(/proc/self/fd/1)} {($ VSub_Name '$TARGET') (/dev/stdout)})
            (C {(ln)} {(-s)} {(/proc/self/fd/2)} {($ VSub_Name '$TARGET') (/dev/stderr)})
          ]
          spids: [10214]
        )
      spids: [10209 10213]
    )
    (FuncDef
      name: setup_devices_fakechroot
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$TARGET') (/dev))})
            (C {(ln)} {(-s)} {(/dev)} {(DQ ($ VSub_Name '$TARGET'))})
          ]
          spids: [10430]
        )
      spids: [10425 10429]
    )
    (FuncDef
      name: setup_dselect_method
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(apt)}]
                  action: [
                    (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg))})
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('apt apt'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/cmethopt))}
                          spids: [10493]
                        )
                      ]
                    )
                    (C {(chmod)} {(644)} {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/cmethopt))})
                  ]
                  spids: [10473 10474 10511 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(UNKNOWNDSELECT)} {(DQ ('unknown dselect method'))})]
                  spids: [10514 10515 10529 -1]
                )
              ]
              spids: [10464 10470 10532]
            )
          ]
          spids: [10461]
        )
      spids: [10456 10460]
    )
    (FuncDef
      name: setup_merged_usr
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$MERGED_USR'))} {(Lit_Other '=')} 
                          {(DQ (no))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [-1 10585]
                )
              ]
              spids: [-1 10592]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:link_dir) op:Equal spids:[10598])]
              spids: [10596]
            )
            (Case
              to_match: {($ VSub_Name '$ARCH')}
              arms: [
                (case_arm
                  pat_list: [{(hurd-) (Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [10608 10610 10616 -1]
                )
                (case_arm
                  pat_list: [{(amd64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64 libx32'))}
                          spids: [10622]
                        )
                      ]
                      spids: [10622]
                    )
                  ]
                  spids: [10619 10620 10627 -1]
                )
                (case_arm
                  pat_list: [{(i386)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib64 libx32'))}
                          spids: [10633]
                        )
                      ]
                      spids: [10633]
                    )
                  ]
                  spids: [10630 10631 10638 -1]
                )
                (case_arm
                  pat_list: [{(mips)} {(mipsel)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64'))}
                          spids: [10647]
                        )
                      ]
                      spids: [10647]
                    )
                  ]
                  spids: [10641 10644 10652 -1]
                )
                (case_arm
                  pat_list: [{(mips64) (Lit_Other '*')} {(mipsn32) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64 libo32'))}
                          spids: [10663]
                        )
                      ]
                      spids: [10663]
                    )
                  ]
                  spids: [10655 10660 10668 -1]
                )
                (case_arm
                  pat_list: [{(powerpc)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib64))}
                          spids: [10674]
                        )
                      ]
                      spids: [10674]
                    )
                  ]
                  spids: [10671 10672 10679 -1]
                )
                (case_arm
                  pat_list: [{(ppc64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64'))}
                          spids: [10685]
                        )
                      ]
                      spids: [10685]
                    )
                  ]
                  spids: [10682 10683 10690 -1]
                )
                (case_arm
                  pat_list: [{(ppc64el)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib64))}
                          spids: [10696]
                        )
                      ]
                      spids: [10696]
                    )
                  ]
                  spids: [10693 10694 10701 -1]
                )
                (case_arm
                  pat_list: [{(s390x)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib32))}
                          spids: [10707]
                        )
                      ]
                      spids: [10707]
                    )
                  ]
                  spids: [10704 10705 10712 -1]
                )
                (case_arm
                  pat_list: [{(sparc)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib64))}
                          spids: [10718]
                        )
                      ]
                      spids: [10718]
                    )
                  ]
                  spids: [10715 10716 10723 -1]
                )
                (case_arm
                  pat_list: [{(sparc64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64'))}
                          spids: [10729]
                        )
                      ]
                      spids: [10729]
                    )
                  ]
                  spids: [10726 10727 10734 -1]
                )
                (case_arm
                  pat_list: [{(x32)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64 libx32'))}
                          spids: [10740]
                        )
                      ]
                      spids: [10740]
                    )
                  ]
                  spids: [10737 10738 10745 -1]
                )
              ]
              spids: [10601 10605 10748]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:link_dir)
                  op: Equal
                  rhs: {(DQ ('bin sbin lib ') ($ VSub_Name '$link_dir'))}
                  spids: [10751]
                )
              ]
              spids: [10751]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:dir) op:Equal spids:[10761])]
              spids: [10759]
            )
            (ForEach
              iter_name: dir
              iter_words: [{($ VSub_Name '$link_dir')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(ln)} {(-s)} {(usr/) ($ VSub_Name '$dir')} 
                      {($ VSub_Name '$TARGET') (/) ($ VSub_Name '$dir')}
                    )
                    (C {(mkdir)} {(-p)} {($ VSub_Name '$TARGET') (/usr/) ($ VSub_Name '$dir')})
                  ]
                  spids: [10773 10797]
                )
              spids: [10769 10771]
            )
          ]
          spids: [10565]
        )
      spids: [10561 10564]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(in_path)} {(perl)}) terminator:<Op_Semi ';'>)]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGDETAILS)
                  op: Equal
                  rhs: {(pkgdetails_perl)}
                  spids: [10826]
                )
              ]
              spids: [10826]
            )
            (FuncDef
              name: pkgdetails_field
              body: 
                (BraceGroup
                  children: [
                    (C {(perl)} {(-le)} 
                      {
                        (SQ <'\n'> 
                          <
'$unique = shift @ARGV; $field = lc(shift @ARGV); $mirror = shift @ARGV;\n'
                          > <'%fields = map { $_, 0 } @ARGV;\n'> <'$prevpkg = "";\n'> <'while (<STDIN>) {\n'> <'\tchomp;\n'> 
                          <'\tnext if (/^ /);\n'> <'\tif (/^([^:]*:)\\s*(.*)$/) {\n'> <'\t\t$f = lc($1); $v = $2;\n'> <'\t\tif ($f eq "package:") {\n'> 
                          <'\t\t\t$last = 0;\n'> <'\t\t\t$pkg = $v;\n'> <'\t\t\tif ($pkg ne $prevpkg) {\n'> 
                          <'\t\t\t\tprint $output if defined $output;\n'> <'\t\t\t\tif ($unique && defined $output_val) {\n'> <'\t\t\t\t\tdelete $fields{$output_val};\n'> 
                          <'\t\t\t\t\t$last = 1 unless keys %fields;\n'> <'\t\t\t\t}\n'> <'\t\t\t\t$prevpkg = $pkg;\n'> <'\t\t\t}\n'> <'\t\t\tundef $output;\n'> 
                          <'\t\t\tundef $output_val;\n'> <'\t\t\tlast if $last;\n'> <'\t\t}\n'> <'\t\t$ver = $v if ($f eq "version:");\n'> 
                          <'\t\t$arc = $v if ($f eq "architecture:");\n'> <'\t\t$fil = $v if ($f eq "filename:");\n'> 
                          <
'\t\t$chk = $v if (lc $f eq lc($ENV{DEBOOTSTRAP_CHECKSUM_FIELD}).":");\n'
                          > <'\t\t$siz = $v if ($f eq "size:");\n'> <'\t\t$val = $v if ($f eq $field);\n'> <'\t} elsif (/^$/) {\n'> 
                          <'\t\tif (defined $val && defined $fields{$val}) {\n'> <'\t\t\t$output = sprintf "%s %s %s %s %s %s %s",\n'> 
                          <'\t\t\t $pkg, $ver, $arc, $mirror, $fil, $chk, $siz;\n'> <'\t\t\t$output_val = $val;\n'> <'\t\t}\n'> <'\t\tundef $val;\n'> <'\t}\n'> <'}\n'> 
                          <'print $output if defined $output;\n'> <'delete $fields{$output_val} if $unique && defined $output_val;\n'> <'for $v (keys %fields) {\n'> 
                          <'\tprintf ("%s -\\n", $v) if ($unique);\n'> <'}\n'>
                        )
                      } {(DQ ($ VSub_At '$@'))}
                    )
                  ]
                  spids: [10836]
                )
              spids: [10831 10835]
            )
            (FuncDef
              name: pkgdetails_perl
              body: 
                (BraceGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ ('WGET%'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(perl)} {(-e)} 
                              {
                                (SQ <'\n'> <'$v = 0;\n'> <'$allow_percentage = 0;\n'> 
                                  <'while (read STDIN, $x, 1) {\n'> <'\tif ($x =~ m/\\s/) {\n'> <'\t\t$allow_percentage = 1;\n'> 
                                  <'\t} elsif ($allow_percentage and $x =~ m/\\d/) {\n'> <'\t\t$v *= 10;\n'> <'\t\t$v += $x;\n'> <'\t} elsif ($allow_percentage and $x eq "%") {\n'> 
                                  <
'\t\tprintf "P: %d %d%s\\n", int($v / 100.0 * ($ARGV[1] - $ARGV[0]) + $ARGV[0]), $ARGV[2], ($#ARGV == 3 ? " $ARGV[3]" : "");\n'
                                  > <'\t\t$v = 0;\n'> <'\t} else {\n'> <'\t\t$v = 0;\n'> <'\t\t$allow_percentage = 0;\n'> <'\t}\n'> <'}'>
                                )
                              } {(DQ ($ VSub_At '$@'))}
                            )
                          ]
                          spids: [-1 10928]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (GETDEPS))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:pkgdest)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$2'))}
                                      spids: [10986]
                                    )
                                  ]
                                  spids: [10984]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (Pipeline
                              children: [
                                (SimpleCommand
                                  words: [
                                    {(perl)}
                                    {(-e)}
                                    {
                                      (SQ <'\n'> <'$prevpkg = "";\n'> <'@d = ();\n'> 
                                        <'while (<STDIN>) {\n'> <'\tchomp;\n'> <'\tif (/^Package: (.*)$/) {\n'> <'\t\t$pkg = $1;\n'> <'\t\tif ($pkg ne $prevpkg) {\n'> 
                                        <'\t\t\tfor my $d (@d) {\n'> <'\t\t\t\tprint "$d\\n";\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\t$prevpkg = $1;\n'> <'\t\t@d = ();\n'> 
                                        <'\t}\n'> <'\t$in = 1 if (grep {$_ eq $pkg} @ARGV);\n'> <'\t$in = 0 if (/^$/);\n'> 
                                        <
'\tif ($in and (/^Depends: (.*)$/ or /^Pre-Depends: (.*)$/)) {\n'
                                        > <'\t\tfor $d (split /\\s*,\\s*/, $1) {\n'> <'\t\t\t$d =~ s/\\s*[|].*$//;\n'> 
                                        <'\t\t\t$d =~ s/\\s*[(].*[)]\\s*//;\n'> <'\t\t\t$d =~ s/:.*//;\n'> <'\t\t\tpush @d, $d;\n'> <'\t\t}\n'> <'\t}\n'> <'}\n'> <'for my $d (@d) {\n'> 
                                        <'\tprint "$d\\n";\n'> <'}'>
                                      )
                                    }
                                    {(DQ ($ VSub_At '$@'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Less
                                      fd: -1
                                      arg_word: {(DQ ($ VSub_Name '$pkgdest'))}
                                      spids: [11034]
                                    )
                                  ]
                                )
                                (C {(sort)})
                                (C {(uniq)})
                              ]
                              negated: False
                            )
                          ]
                          spids: [10964 10981]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (PKGS))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:m)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2'))}
                                  spids: [11074]
                                )
                              ]
                              spids: [11072]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:p)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$3'))}
                                  spids: [11082]
                                )
                              ]
                              spids: [11080]
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (SimpleCommand
                              words: [
                                {(pkgdetails_field)}
                                {(1)}
                                {(Package) (Lit_Other ':')}
                                {(DQ ($ VSub_Name '$m'))}
                                {(DQ ($ VSub_At '$@'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: -1
                                  arg_word: {(DQ ($ VSub_Name '$p'))}
                                  spids: [11112]
                                )
                              ]
                            )
                          ]
                          spids: [11052 11069]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (FIELD))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2'))}
                                  spids: [11141]
                                )
                              ]
                              spids: [11139]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:m)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$3'))}
                                  spids: [11149]
                                )
                              ]
                              spids: [11147]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:p)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$4'))}
                                  spids: [11157]
                                )
                              ]
                              spids: [11155]
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (SimpleCommand
                              words: [
                                {(pkgdetails_field)}
                                {(0)}
                                {(DQ ($ VSub_Name '$f'))}
                                {(DQ ($ VSub_Name '$m'))}
                                {(DQ ($ VSub_At '$@'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: -1
                                  arg_word: {(DQ ($ VSub_Name '$p'))}
                                  spids: [11191]
                                )
                              ]
                            )
                          ]
                          spids: [11119 11136]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (STANZAS))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:pkgdest)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$2'))}
                                      spids: [11220]
                                    )
                                  ]
                                  spids: [11218]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (SimpleCommand
                              words: [
                                {(perl)}
                                {(-e)}
                                {
                                  (SQ <'\n'> <'my $accum = "";\n'> <'while (<STDIN>) {\n'> 
                                    <'\t$accum .= $_;\n'> <'\t$in = 1 if (/^Package: (.*)$/ && grep {$_ eq $1} @ARGV);\n'> <'\tif ($in and /^$/) {\n'> 
                                    <'\t\tprint $accum;\n'> <'\t\tif (substr($accum, -1) != "\\n") {\n'> <'\t\t\tprint "\\n\\n";\n'> 
                                    <'\t\t} elsif (substr($accum, -2, 1) != "\\n") {\n'> <'\t\t\tprint "\\n";\n'> <'\t\t}\n'> <'\t\t$in = 0;\n'> <'\t}\n'> <'\t$accum = "" if /^$/;\n'> <'}'>
                                  )
                                }
                                {(DQ ($ VSub_At '$@'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: -1
                                  arg_word: {(DQ ($ VSub_Name '$pkgdest'))}
                                  spids: [11255]
                                )
                              ]
                            )
                          ]
                          spids: [11198 11215]
                        )
                      ]
                      spids: [-1 11265]
                    )
                  ]
                  spids: [10908]
                )
              spids: [10903 10907]
            )
          ]
          spids: [-1 10823]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ (/usr/lib/debootstrap/pkgdetails))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGDETAILS)
                  op: Equal
                  rhs: {(DQ (/usr/lib/debootstrap/pkgdetails))}
                  spids: [11286]
                )
              ]
              spids: [11286]
            )
          ]
          spids: [11270 11283]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$DEBOOTSTRAP_DIR') (/pkgdetails))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGDETAILS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$DEBOOTSTRAP_DIR') (/pkgdetails))}
                  spids: [11308]
                )
              ]
              spids: [11308]
            )
          ]
          spids: [11291 11305]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:PKGDETAILS) op:Equal rhs:{(DQ )} spids:[11317])]
          spids: [11317]
        )
      ]
      spids: [11314 11321]
    )
    (FuncDef
      name: resolve_deps
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [11340 11344]
                        )
                      )
                    }
                  spids: [11338]
                )
              ]
              spids: [11336]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [11351]
                )
              ]
              spids: [11349]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ALLPKGS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$PKGS'))}
                      spids: [11359]
                    )
                  ]
                  spids: [11357]
                )
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ALLPKGS2)
                      op: Equal
                      rhs: {(DQ )}
                      spids: [11368]
                    )
                  ]
                  spids: [11366]
                )
              terminator: <Op_Semi ';'>
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PKGS'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NEWPKGS)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [11396]
                        )
                      ]
                      spids: [11394]
                    )
                    (ForEach
                      iter_name: c
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name COMPONENTS>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                              )
                            spids: [11407 11411]
                          )
                        }
                      ]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [11419]
                                )
                              ]
                              spids: [11417]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11437 11461]
                                        )
                                      )
                                    }
                                  spids: [11433]
                                )
                              ]
                              spids: [11431]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NEWPKGS)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$NEWPKGS') (' ') 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(GETDEPS)} 
                                                  {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$PKGS')}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11469 11481]
                                        )
                                      )
                                    }
                                  spids: [11465]
                                )
                              ]
                              spids: [11465]
                            )
                          ]
                          spids: [11414 11485]
                        )
                      spids: [11406 11412]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PKGS)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} 
                                            {
                                              (DQ ($ VSub_Name '$PKGS') (' ') ($ VSub_Name '$NEWPKGS'))
                                            }
                                          )
                                          (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                          (C {(sort)})
                                          (C {(uniq)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [11489 11517]
                              )
                            }
                          spids: [11488]
                        )
                      ]
                      spids: [11488]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:REALPKGS)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [11522]
                        )
                      ]
                      spids: [11520]
                    )
                    (ForEach
                      iter_name: c
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name COMPONENTS>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                              )
                            spids: [11533 11537]
                          )
                        }
                      ]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [11545]
                                )
                              ]
                              spids: [11543]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11563 11587]
                                        )
                                      )
                                    }
                                  spids: [11559]
                                )
                              ]
                              spids: [11557]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:REALPKGS)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$REALPKGS') (' ') 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(PKGS)} 
                                                      {(REAL)} {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$PKGS')}
                                                    )
                                                    (C {(sed)} {(-n)} {(SQ <'s/ .*REAL.*$//p'>)})
                                                  ]
                                                  negated: False
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11595 11619]
                                        )
                                      )
                                    }
                                  spids: [11591]
                                )
                              ]
                              spids: [11591]
                            )
                          ]
                          spids: [11540 11623]
                        )
                      spids: [11532 11538]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PKGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$REALPKGS'))}
                          spids: [11626]
                        )
                      ]
                      spids: [11626]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ALLPKGS2)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} 
                                            {
                                              (DQ ($ VSub_Name '$PKGS') (' ') ($ VSub_Name '$ALLPKGS'))
                                            }
                                          )
                                          (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                          (C {(sort)})
                                          (C {(uniq)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [11633 11661]
                              )
                            }
                          spids: [11632]
                        )
                      ]
                      spids: [11632]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PKGS)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$ALLPKGS2'))} 
                                        {(DQ ($ VSub_Name '$ALLPKGS'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [11665 11675]
                              )
                            }
                          spids: [11664]
                        )
                      ]
                      spids: [11664]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ALLPKGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$ALLPKGS2'))}
                          spids: [11678]
                        )
                      ]
                      spids: [11678]
                    )
                  ]
                  spids: [11391 11684]
                )
            )
            (C {(echo)} {($ VSub_Name '$ALLPKGS')})
          ]
          spids: [11333]
        )
      spids: [11328 11332]
    )
    (FuncDef
      name: setup_available
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [11706 11710]
                        )
                      )
                    }
                  spids: [11704]
                )
              ]
              spids: [11702]
            )
            (ForEach
              iter_name: c
              iter_words: [
                {
                  (BracedVarSub
                    token: <VSub_Name COMPONENTS>
                    suffix_op: 
                      (StringUnary
                        op_id: VTest_ColonHyphen
                        arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                      )
                    spids: [11721 11725]
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: 
                            {
                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') (/binary-) 
                                ($ VSub_Name '$ARCH') (/Packages)
                              )
                            }
                          spids: [11733]
                        )
                      ]
                      spids: [11731]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pkgdest)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$TARGET') (/) 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                          {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                          {(DQ ($ VSub_Name '$path'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [11751 11775]
                                )
                              )
                            }
                          spids: [11747]
                        )
                      ]
                      spids: [11745]
                    )
                    (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(STANZAS)} {(DQ ($ VSub_Name '$pkgdest'))} 
                      {(DQ ($ VSub_At '$@'))}
                    )
                  ]
                  spids: [11728 11802]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/available))}
                  spids: [11804]
                )
              ]
              spids: [11720 11726]
            )
            (Pipeline
              children: [
                (ForEach
                  iter_name: pkg
                  do_arg_iter: True
                  body: 
                    (DoGroup
                      children: [(C {(echo)} {(DQ ($ VSub_Name '$pkg') (' install'))})]
                      spids: [11817 11828]
                    )
                  spids: [-1 -1]
                )
                (C {(in_target)} {(dpkg)} {(--set-selections)})
              ]
              negated: False
            )
          ]
          spids: [11699]
        )
      spids: [11694 11698]
    )
    (FuncDef
      name: get_next_predep
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:stanza)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(in_target_nofail)} {(dpkg)} {(--predep-package)})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [11853 11859]
                        )
                      )
                    }
                  spids: [11851]
                )
              ]
              spids: [11849]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$stanza'))} {(Lit_Other ']')})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Name '$stanza'))})
                (C {(grep)} {(SQ <'^Package:'>)})
                (C {(sed)} {(SQ <'s/^Package://; s/^ *//'>)})
              ]
              negated: False
            )
          ]
          spids: [11846]
        )
      spids: [11841 11845]
    )
    (FuncDef
      name: check_sane_mount
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Number '$1'))})
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (freebsd) (Lit_Other '*')} {(hurd) (Lit_Other '*')}]
                  spids: [11943 11949 11952 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (AndOr
                      children: [
                        (C {(mknod)} {(DQ ($ VSub_Number '$1') (/test-dev-null))} {(c)} {(1)} {(3)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (SimpleCommand
                                      words: [{(echo)} {(test)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(DQ ($ VSub_Number '$1') (/test-dev-null))}
                                          spids: [11987]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: True
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [-1 11995]
                        )
                      ]
                      spids: [-1 12013]
                    )
                    (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))})
                  ]
                  spids: [11955 11956 12026 -1]
                )
              ]
              spids: [11934 11940 12029]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:SH) op:Equal rhs:{(/bin/sh)} spids:[12033])]
              spids: [12033]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(-x)} {($ VSub_Name '$SH')} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SH)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(which)} {(sh)})])
                            left_token: <Left_Backtick '`'>
                            spids: [12048 12052]
                          )
                        }
                      spids: [12047]
                    )
                  ]
                  spids: [12047]
                )
              ]
              op_id: Op_DPipe
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Number '$1') (/test-exec))}
                  spids: [12058]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: {(DQ ('#! ') ($ VSub_Name '$SH') ('\n') (':\n'))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [12065]
                )
              ]
            )
            (C {(chmod)} {(Lit_Other '+') (x)} {(DQ ($ VSub_Number '$1') (/test-exec))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(DQ ($ VSub_Number '$1') (/test-exec))})]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 12095]
                )
              ]
              spids: [-1 12113]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [11921]
        )
      spids: [11916 11920]
    )
    (FuncDef
      name: read_gpg_status
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:badsig) op:Equal rhs:{(SQ )} spids:[12142])]
              spids: [12142]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:unkkey) op:Equal rhs:{(SQ )} spids:[12145])]
              spids: [12145]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:validsig) op:Equal rhs:{(SQ )} spids:[12148])]
              spids: [12148]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(read)} {(prefix)} {(keyword)} {(keyid)} {(rest)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$prefix'))} {(Lit_Other '=')} 
                          {(SQ <'[GNUPG:]'>)} {(Lit_Other ']')}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                    (Case
                      to_match: {($ VSub_Name '$keyword')}
                      arms: [
                        (case_arm
                          pat_list: [{(BADSIG)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:badsig)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$keyid'))}
                                  spids: [12196]
                                )
                              ]
                              spids: [12196]
                            )
                          ]
                          spids: [12193 12194 12201 -1]
                        )
                        (case_arm
                          pat_list: [{(NO_PUBKEY)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:unkkey)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$keyid'))}
                                  spids: [12207]
                                )
                              ]
                              spids: [12207]
                            )
                          ]
                          spids: [12204 12205 12212 -1]
                        )
                        (case_arm
                          pat_list: [{(VALIDSIG)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:validsig)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$keyid'))}
                                  spids: [12218]
                                )
                              ]
                              spids: [12218]
                            )
                          ]
                          spids: [12215 12216 12223 -1]
                        )
                      ]
                      spids: [12186 12190 12226]
                    )
                  ]
                  spids: [12164 12229]
                )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$validsig'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(info)} {(VALIDRELSIG)} {(DQ ('Valid Release signature (key id %s)'))} 
                      {(DQ ($ VSub_Name '$validsig'))}
                    )
                  ]
                  spids: [-1 12243]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$badsig'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(BADRELSIG)} {(DQ ('Invalid Release signature (key id %s)'))} 
                      {(DQ ($ VSub_Name '$badsig'))}
                    )
                  ]
                  spids: [12259 12270]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$unkkey'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(UNKNOWNRELSIG)} 
                      {(DQ ('Release signed by unknown key (key id %s)'))} {(DQ ($ VSub_Name '$unkkey'))}
                    )
                  ]
                  spids: [12288 12299]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Error executing gpgv to check Release signature'))})
              ]
              spids: [12317 12331]
            )
          ]
          spids: [12139]
        )
      spids: [12134 12138]
    )
    (FuncDef
      name: without
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Sentence
                          child: 
                            (Pipeline
                              children: [
                                (C {(echo)} {($ VSub_Number '$1')})
                                (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                (C {(sort)})
                                (C {(uniq)})
                              ]
                              negated: False
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Number '$2')} {($ VSub_Number '$2')})
                            (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  spids: [12348 12392]
                )
                (C {(sort)})
                (C {(uniq)} {(-u)})
                (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
              ]
              negated: False
            )
            (C {(echo)})
          ]
          spids: [12341]
        )
      spids: [12336 12340]
    )
    (FuncDef
      name: repeatn
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:n)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [12435]
                )
              ]
              spids: [12433]
            )
            (C {(shift)})
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$n'))} {(-gt)} {(0)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(Sentence child:(C {(DQ ($ VSub_At '$@'))}) terminator:<Op_Semi ';'>)]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [-1 12469]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:n)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (ArithSubPart
                                      anode: 
                                        (ArithBinary
                                          op_id: Arith_Minus
                                          left: (ArithWord w:{($ VSub_Name '$n')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                      spids: [12480 12489]
                                    )
                                  )
                                }
                              spids: [12478]
                            )
                          ]
                          spids: [12478]
                        )
                        (C {(sleep)} {(1)})
                      ]
                      spids: [12475 12498]
                    )
                  ]
                  spids: [12459 12501]
                )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$n'))} {(-eq)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [-1 12519]
                )
              ]
              spids: [-1 12526]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [12430]
        )
      spids: [12425 12429]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:N_EXIT_THINGS) op:Equal rhs:{(0)} spids:[12536])]
      spids: [12536]
    )
    (FuncDef
      name: exit_function
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:n) op:Equal rhs:{(0)} spids:[12549])]
              spids: [12547]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$n'))} {(-lt)} 
                      {(DQ ($ VSub_Name '$N_EXIT_THINGS'))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Subshell
                      child: 
                        (AndOr
                          children: [
                            (SimpleCommand
                              words: [
                                {(eval)}
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(eval)} {(echo)} 
                                            {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                              (Lit_LBrace '{') (EXIT_THING_) ($ VSub_Name '$n') (Lit_RBrace '}')
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [12576 12586]
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [12588]
                                )
                              ]
                            )
                            (C {(true)})
                          ]
                          op_id: Op_DPipe
                        )
                      spids: [12573 12594]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:n)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$n')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [12599 12608]
                                )
                              )
                            }
                          spids: [12597]
                        )
                      ]
                      spids: [12597]
                    )
                  ]
                  spids: [12570 12612]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:N_EXIT_THINGS) op:Equal rhs:{(0)} spids:[12615])]
              spids: [12615]
            )
          ]
          spids: [12544]
        )
      spids: [12539 12543]
    )
    (C {(trap)} {(DQ (exit_function))} {(0)})
    (C {(trap)} {(DQ ('exit 129'))} {(1)})
    (C {(trap)} 
      {
        (DQ ('error 130 INTERRUPTED ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
          ('Interrupt caught ... exiting') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
        )
      } {(2)}
    )
    (C {(trap)} {(DQ ('exit 131'))} {(3)})
    (C {(trap)} {(DQ ('exit 143'))} {(15)})
    (FuncDef
      name: on_exit
      body: 
        (BraceGroup
          children: [
            (C {(eval)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(echo)} 
                          {(EXIT_THING_) (${ VSub_Name N_EXIT_THINGS) (Lit_Other '=') 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar '\\"'>
                            ) ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                          }
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [12675 12686]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:N_EXIT_THINGS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (ArithSubPart
                          anode: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithWord w:{($ VSub_Name '$N_EXIT_THINGS')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [12691 12700]
                        )
                      )
                    }
                  spids: [12689]
                )
              ]
              spids: [12689]
            )
          ]
          spids: [12670]
        )
      spids: [12665 12669]
    )
    (FuncDef
      name: install_fakechroot_tools
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other '=')} 
                          {(DQ (fakechroot))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(export)} 
                      {(Lit_VarLike 'PATH=') (/usr/sbin) (Lit_Other ':') (/sbin) (Lit_Other ':') 
                        ($ VSub_Name '$PATH')
                      }
                    )
                  ]
                  spids: [-1 12735]
                )
              ]
              spids: [-1 12748]
            )
            (C {(mv)} {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))} 
              {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig.REAL))}
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('#!/bin/sh\n') ('echo\n') ('echo ') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('Warning: Fake ldconfig called, doing nothing') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))}
                  spids: [12777]
                )
              ]
            )
            (C {(chmod)} {(755)} {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))})
            (SimpleCommand
              words: [{(echo)} {(DQ ('/sbin/ldconfig\n') ('/sbin/ldconfig.REAL\n') (fakechroot))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/diversions))}
                  spids: [12805]
                )
              ]
            )
            (C {(mv)} {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))} 
              {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd.REAL))}
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {('#!/usr/bin/perl\n') ('\n') ('# fakeldd\n') ('#\n') 
                      ('# Replacement for ldd with usage of objdump\n') ('#\n') ('# (c) 2003-2005 Piotr Roszatycki <dexter@debian.org>, BSD\n') ('\n') ('\n') 
                      ('my %libs = ();\n') ('\n') ('my $status = 0;\n') ('my $dynamic = 0;\n') ('my $biarch = 0;\n') ('\n') 
                      ('my $ldlinuxsodir = "/lib";\n') ('my @ld_library_path = qw(/usr/lib /lib);\n') ('\n') ('\n') ('sub ldso($) {\n') ('\tmy ($lib) = @_;\n') 
                      ('\tmy @files = ();\n') ('\n') ('\tif ($lib =~ /^\\//) {\n') ('\t    $libs{$lib} = $lib;\n') ('\t    push @files, $lib;\n') 
                      ('\t} else {\n') ('\t    foreach my $ld_path (@ld_library_path) {\n') ('\t\tnext unless -f "$ld_path/$lib";\n') 
                      ('\t\tmy $badformat = 0;\n') ('\t\topen OBJDUMP, "objdump -p $ld_path/$lib 2>/dev/null |";\n') 
                      ('\t \twhile (my $line = <OBJDUMP>) {\n') ('\t\t    if ($line =~ /file format (\\S*)$/) {\n') ('\t\t\t\t$badformat = 1 unless $format eq $1;\n') 
                      ('\t\t\t\tlast;\n') ('\t\t    }\n') ('\t\t}\n') ('\t\tclose OBJDUMP;\n') ('\t\tnext if $badformat;\n') 
                      ('\t\t$libs{$lib} = "$ld_path/$lib";\n') ('\t\tpush @files, "$ld_path/$lib";\n') ('\t    }\n') ('\t    objdump(@files);\n') ('\t}\n') ('}\n') 
                      ('\n') ('\n') ('sub objdump(@) {\n') ('\tmy (@files) = @_;\n') ('\tmy @libs = ();\n') ('\n') 
                      ('\tforeach my $file (@files) {\n') ('\t    open OBJDUMP, "objdump -p $file 2>/dev/null |";\n') ('\t    while (my $line = <OBJDUMP>) {\n') 
                      ('\t\t$line =~ s/^\\s+//;\n') ('\t\tmy @f = split (/\\s+/, $line);\n') ('\t\tif ($line =~ /file format (\\S*)$/) {\n') 
                      ('\t\t    if (not $format) {\n') ('\t\t\t$format = $1;\n') ('\t\t\tif ($unamearch eq "x86_64" and $format eq "elf32-i386") {\n') 
                      ('\t\t\t    my $link = readlink "/lib/ld-linux.so.2";\n') ('\t\t\t    if ($link =~ /^\\/emul\\/ia32-linux\\//) {\n') 
                      ('\t\t\t\t$ld_library_path[-2] = "/emul/ia32-linux/usr/lib";\n') ('\t\t\t\t$ld_library_path[-1] = "/emul/ia32-linux/lib";\n') ('\t\t\t    }\n') 
                      (
'\t\t\t} elsif ($unamearch =~ /^(sparc|sparc64)$/ and $format eq "elf64-sparc") {\n'
                      ) ('\t\t\t    $ldlinuxsodir = "/lib64";\n') ('\t\t\t    $ld_library_path[-2] = "/usr/lib64";\n') 
                      ('\t\t\t    $ld_library_path[-1] = "/lib64";\n') ('\t\t\t}\n') ('\t\t    } else {\n') ('\t\t\tnext unless $format eq $1;\n') ('\t\t    }\n') ('\t\t}\n') 
                      ('\t\tif (not $dynamic and $f[0] eq "Dynamic") {\n') ('\t\t    $dynamic = 1;\n') ('\t\t}\n') ('\t\tnext unless $f[0] eq "NEEDED";\n') 
                      ('\t\tif ($f[1] =~ /^ld-linux(\\.|-)/) {\n') ('\t\t    $f[1] = "$ldlinuxsodir/" . $f[1];\n') ('\t\t}\n') ('\t\tif (not defined $libs{$f[1]}) {\n') 
                      ('\t\t    $libs{$f[1]} = undef;\n') ('\t\t    push @libs, $f[1];\n') ('\t\t}\n') ('\t    }\n') ('\t    close OBJDUMP;\n') ('\t}\n') ('\n') 
                      ('\tforeach my $lib (@libs) {\n') ('\t    ldso($lib);\n') ('\t}\n') ('}\n') ('\n') ('\n') ('if ($#ARGV < 0) {\n') 
                      ('\tprint STDERR "fakeldd: missing file arguments\\n";\n') ('\texit 1;\n') ('}\n') ('\n') ('while ($ARGV[0] =~ /^-/) {\n') ('\tmy $arg = $ARGV[0];\n') 
                      ('\tshift @ARGV;\n') ('\tlast if $arg eq "--";\n') ('}\n') ('\n') ('open LD_SO_CONF, "/etc/ld.so.conf";\n') 
                      ('while ($line = <LD_SO_CONF>) {\n') ('\tchomp $line;\n') ('\tunshift @ld_library_path, $line;\n') ('}\n') ('close LD_SO_CONF;\n') ('\n') 
                      ('unshift @ld_library_path, split(/:/, $ENV{LD_LIBRARY_PATH});\n') ('\n') ('$unamearch = `/bin/uname -m`;\n') ('chomp $unamearch;\n') ('\n') 
                      ('foreach my $file (@ARGV) {\n') ('\tmy $address;\n') ('\t%libs = ();\n') ('\t$dynamic = 0;\n') ('\n') ('\tif ($#ARGV > 0) {\n') 
                      ('\t\tprint "$file:\\n";\n') ('\t}\n') ('\n') ('\tif (not -f $file) {\n') 
                      ('\t\tprint STDERR "ldd: $file: No such file or directory\\n";\n') ('\t\t$status = 1;\n') ('\t\tnext;\n') ('\t}\n') ('\n') ('\tobjdump($file);\n') ('\n') 
                      ('\tif ($dynamic == 0) {\n') ('\t\tprint "\\tnot a dynamic executable\\n";\n') ('\t\t$status = 1;\n') 
                      ('\t} elsif (scalar %libs eq "0") {\n') ('\t\tprint "\\tstatically linked\\n";\n') ('\t}\n') ('\n') ('\tif ($format =~ /^elf64-/) {\n') 
                      ('\t\t$address = "0x0000000000000000";\n') ('\t} else {\n') ('\t\t$address = "0x00000000";\n') ('\t}\n') ('\n') ('\tforeach $lib (keys %libs) {\n') 
                      ('\t\tif ($libs{$lib}) {\n') ('\t\t\tprintf "\\t%s => %s (%s)\\n", $lib, $libs{$lib}, $address;\n') ('\t\t} else {\n') 
                      ('\t\t\tprintf "\\t%s => not found\\n", $lib;\n') ('\t\t}\n') ('\t}\n') ('}\n') ('\n') ('exit $status;\n')
                    }
                  do_expansion: False
                  here_end: END
                  was_filled: True
                  spids: [12829]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))}
                  spids: [12835]
                )
              ]
            )
            (C {(chmod)} {(755)} {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))})
            (SimpleCommand
              words: [{(echo)} {(DQ ('/usr/bin/ldd\n') ('/usr/bin/ldd.REAL\n') (fakechroot))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/diversions))}
                  spids: [12863]
                )
              ]
            )
          ]
          spids: [12715]
        )
      spids: [12710 12714]
    )
  ]
)