(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:VERSION spids:[16])
          op: Equal
          rhs: {(SQ <'@VERSION@'>)}
          spids: [16]
        )
      ]
      spids: [16]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [(C {(unset)} {(TMP)} {(TEMP)} {(TMPDIR)}) (C {(true)})]
    )
    (C {(export)} {(PATH)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$DEBOOTSTRAP_DIR'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-x)} {(/debootstrap/debootstrap)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_DIR spids:[77])
                          op: Equal
                          rhs: {(/debootstrap)}
                          spids: [77]
                        )
                      ]
                      spids: [77]
                    )
                  ]
                  spids: [16777215 74]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_DIR spids:[84])
                      op: Equal
                      rhs: {(/usr/share/debootstrap)}
                      spids: [84]
                    )
                  ]
                  spids: [84]
                )
              ]
              spids: [81 88]
            )
          ]
          spids: [16777215 60]
        )
      ]
      spids: [16777215 90]
    )
    (C {(.)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/functions)})
    (command.SimpleCommand
      words: [{(exec)}]
      redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(1)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:LANG spids:[104])
          op: Equal
          rhs: {(C)}
          spids: [104]
        )
      ]
      spids: [104]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[107])
          op: Equal
          rhs: {(main)}
          spids: [107]
        )
      ]
      spids: [107]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:KEYRING spids:[110])
          op: Equal
          rhs: {(DQ )}
          spids: [110]
        )
      ]
      spids: [110]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DISABLE_KEYRING spids:[114])
          op: Equal
          rhs: {(DQ )}
          spids: [114]
        )
      ]
      spids: [114]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:FORCE_KEYRING spids:[118])
          op: Equal
          rhs: {(DQ )}
          spids: [118]
        )
      ]
      spids: [118]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:VARIANT spids:[122])
          op: Equal
          rhs: {(DQ )}
          spids: [122]
        )
      ]
      spids: [122]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MERGED_USR spids:[126])
          op: Equal
          rhs: {(DQ (no))}
          spids: [126]
        )
      ]
      spids: [126]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ARCH spids:[131])
          op: Equal
          rhs: {(DQ )}
          spids: [131]
        )
      ]
      spids: [131]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[135])
          op: Equal
          rhs: {(DQ )}
          spids: [135]
        )
      ]
      spids: [135]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HOST_OS spids:[139])
          op: Equal
          rhs: {(DQ )}
          spids: [139]
        )
      ]
      spids: [139]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:KEEP_DEBOOTSTRAP_DIR spids:[143])
          op: Equal
          rhs: {(DQ )}
          spids: [143]
        )
      ]
      spids: [143]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USE_DEBIANINSTALLER_INTERACTION spids:[147])
          op: Equal
          rhs: {(DQ )}
          spids: [147]
        )
      ]
      spids: [147]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SECOND_STAGE_ONLY spids:[151])
          op: Equal
          rhs: {(DQ )}
          spids: [151]
        )
      ]
      spids: [151]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PRINT_DEBS spids:[155])
          op: Equal
          rhs: {(DQ )}
          spids: [155]
        )
      ]
      spids: [155]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CHROOTDIR spids:[159])
          op: Equal
          rhs: {(DQ )}
          spids: [159]
        )
      ]
      spids: [159]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MAKE_TARBALL spids:[163])
          op: Equal
          rhs: {(DQ )}
          spids: [163]
        )
      ]
      spids: [163]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:EXTRACTOR_OVERRIDE spids:[167])
          op: Equal
          rhs: {(DQ )}
          spids: [167]
        )
      ]
      spids: [167]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:UNPACK_TARBALL spids:[171])
          op: Equal
          rhs: {(DQ )}
          spids: [171]
        )
      ]
      spids: [171]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[175])
          op: Equal
          rhs: {(DQ )}
          spids: [175]
        )
      ]
      spids: [175]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:EXCLUDE spids:[179])
          op: Equal
          rhs: {(DQ )}
          spids: [179]
        )
      ]
      spids: [179]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:VERBOSE spids:[183])
          op: Equal
          rhs: {(DQ )}
          spids: [183]
        )
      ]
      spids: [183]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CERTIFICATE spids:[187])
          op: Equal
          rhs: {(DQ )}
          spids: [187]
        )
      ]
      spids: [187]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CHECKCERTIF spids:[191])
          op: Equal
          rhs: {(DQ )}
          spids: [191]
        )
      ]
      spids: [191]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PRIVATEKEY spids:[195])
          op: Equal
          rhs: {(DQ )}
          spids: [195]
        )
      ]
      spids: [195]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DEF_MIRROR spids:[200])
          op: Equal
          rhs: {(DQ ('http://deb.debian.org/debian'))}
          spids: [200]
        )
      ]
      spids: [200]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DEF_HTTPS_MIRROR spids:[205])
          op: Equal
          rhs: {(DQ ('https://deb.debian.org/debian'))}
          spids: [205]
        )
      ]
      spids: [205]
    )
    (C {(export)} {(LANG)} {(USE_COMPONENTS)})
    (C {(umask)} {(022)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:RESOLVE_DEPS spids:[233])
          op: Equal
          rhs: {(true)}
          spids: [233]
        )
      ]
      spids: [233]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[237])
          op: Equal
          rhs: {(DQ ('finddebs dldebs first_stage second_stage'))}
          spids: [237]
        )
      ]
      spids: [237]
    )
    (command.FuncDef
      name: am_doing_phase
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: 
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:x spids:[256])
                      op: Equal
                      spids: [256]
                    )
                  ]
                  spids: [254]
                )
              terminator: <Op_Semi ';'>
            )
            (command.ForEach
              iter_name: x
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {(DQ (' ') ($ VSub_Name '$WHAT_TO_DO') (' '))})
                                    (C {(grep)} {(-q)} {(DQ (' ') ($ VSub_Name '$x') (' '))})
                                  ]
                                  negated: F
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Sentence
                              child: 
                                (command.ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 297]
                        )
                      ]
                      spids: [16777215 304]
                    )
                  ]
                  spids: [271 307]
                )
              spids: [265 269]
            )
            (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [247]
        )
      spids: [242 246]
    )
    (command.FuncDef
      name: usage_err
      body: 
        (command.BraceGroup
          children: [
            (C {(info)} {(USAGE1)} {(DQ ('usage: [OPTION]... <suite> <target> [<mirror> [<script>]]'))})
            (C {(info)} {(USAGE2)} 
              {
                (DQ ('Try ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) 
                  (word_part.BracedVarSub
                    token: <VSub_Number 0>
                    suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                    spids: [344 349]
                  ) (" --help' for more information.")
                )
              }
            )
            (C {(error)} {(DQ ($ VSub_At '$@'))})
          ]
          spids: [325]
        )
      spids: [321 324]
    )
    (command.FuncDef
      name: usage
      body: 
        (command.BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ ('Usage: ') 
                  (word_part.BracedVarSub
                    token: <VSub_Number 0>
                    suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                    spids: [374 379]
                  ) (' [OPTION]... <suite> <target> [<mirror> [<script>]]')
                )
              }
            )
            (C {(echo)} {(DQ ('Bootstrap a Debian base system into a target directory.'))})
            (C {(echo)})
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(EOF)}
                  here_end_span_id: 439
                  stdin_parts: [
                    ('      --help                 display this help and exit\n')
                    ('      --version              display version information and exit\n')
                    ("      --verbose              don't turn off the output of wget\n")
                    ('\n')
                    (
"      --download-only        download packages, but don't perform installation\n"
                    )
                    ('      --print-debs           print the packages to be installed, and exit\n')
                    ('\n')
                    (
'      --arch=A               set the architecture to install (use if no dpkg)\n'
                    )
                    ('                               [ --arch=powerpc ]\n')
                    ('\n')
                    (
'      --include=A,B,C        adds specified names to the list of base packages\n'
                    )
                    ('      --exclude=A,B,C        removes specified packages from the list\n')
                    (
'      --components=A,B,C     use packages from the listed components of the\n'
                    )
                    ('                             archive\n')
                    ('      --variant=X            use variant X of the bootstrap scripts\n')
                    (
'                             (currently supported variants: buildd, fakechroot,\n'
                    )
                    ('                              minbase)\n')
                    ('      --merged-usr           make /{bin,sbin,lib}/ symlinks to /usr/\n')
                    ('      --keyring=K            check Release files against keyring K\n')
                    ('      --no-check-gpg         avoid checking Release file signatures\n')
                    ('      --force-check-gpg      force checking Release file signatures\n')
                    (
'                             (also disables automatic fallback to HTTPS in case\n'
                    )
                    ('                             of a missing keyring), aborting otherwise\n')
                    (
"      --no-resolve-deps      don't try to resolve dependencies automatically\n"
                    )
                    ('\n')
                    ('      --unpack-tarball=T     acquire .debs from a tarball instead of http\n')
                    (
'      --make-tarball=T       download .debs and create a tarball (tgz format)\n'
                    )
                    ('      --second-stage-target=DIR\n')
                    (
'                             Run second stage in a subdirectory instead of root\n'
                    )
                    ('                               (can be used to create a foreign chroot)\n')
                    ('                               (requires --second-stage)\n')
                    ('      --extractor=TYPE       override automatic .deb extractor selection\n')
                    ('                               (supported: ')
                    ($ VSub_Name '$EXTRACTORS_SUPPORTED')
                    (')\n')
                    (
'      --debian-installer     used for internal purposes by debian-installer\n'
                    )
                    ('      --private-key=file     read the private key from file\n')
                    (
'      --certificate=file     use the client certificate stored in file (PEM)\n'
                    )
                    (
'      --no-check-certificate do not check certificate against certificate authorities\n'
                    )
                  ]
                )
              ]
            )
          ]
          spids: [367]
        )
      spids: [363 366]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$PKGDETAILS'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(error)} {(1)} {(NO_PKGDETAILS)} 
              {
                (DQ 
                  (
'No pkgdetails available; either install perl, or build pkgdetails.c from the base-installer source package'
                  )
                )
              }
            )
          ]
          spids: [16777215 460]
        )
      ]
      spids: [16777215 473]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.WhileUntil
              keyword: <KW_While while>
              cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ VSub_Number '$1'))}
                      arms: [
                        (case_arm
                          pat_list: [{(--help)}]
                          action: [
                            (C {(usage)})
                            (command.ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [516 517 528 16777215]
                        )
                        (case_arm
                          pat_list: [{(--version)}]
                          action: [
                            (C {(echo)} {(DQ ('debootstrap ') ($ VSub_Name '$VERSION'))})
                            (command.ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [531 532 548 16777215]
                        )
                        (case_arm
                          pat_list: [{(--debian-installer)}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.Subshell
                                              child: 
                                                (command.SimpleCommand
                                                  words: [{(echo)} {(-n)} {(DQ )}]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: <Redir_GreatAnd '>&'>
                                                      fd: 16777215
                                                      arg_word: {(3)}
                                                    )
                                                  ]
                                                )
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '2>'>
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                              spids: [559 569]
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(ARG_DIBYHAND)} 
                                      {
                                        (DQ 
                                          (
"If running debootstrap by hand, don't use --debian-installer"
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 575]
                                )
                              ]
                              spids: [16777215 589]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (lhs_expr.LhsName
                                      name: USE_DEBIANINSTALLER_INTERACTION
                                      spids: [592]
                                    )
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [592]
                                )
                              ]
                              spids: [592]
                            )
                            (C {(shift)})
                          ]
                          spids: [551 552 599 16777215]
                        )
                        (case_arm
                          pat_list: [{(--foreign)}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PRINT_DEBS'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[627])
                                          op: Equal
                                          rhs: {(DQ ('finddebs dldebs first_stage'))}
                                          spids: [627]
                                        )
                                      ]
                                      spids: [627]
                                    )
                                  ]
                                  spids: [16777215 624]
                                )
                              ]
                              spids: [16777215 633]
                            )
                            (C {(shift)})
                          ]
                          spids: [602 603 639 16777215]
                        )
                        (case_arm
                          pat_list: [{(--second-stage)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[646])
                                  op: Equal
                                  rhs: {(DQ (second_stage))}
                                  spids: [646]
                                )
                              ]
                              spids: [646]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:SECOND_STAGE_ONLY spids:[652])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [652]
                                )
                              ]
                              spids: [652]
                            )
                            (C {(shift)})
                          ]
                          spids: [642 643 659 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--second-stage-target)}
                            {(--second-stage-target) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SECOND_STAGE_ONLY'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(STAGE2ONLY)} 
                                      {(DQ ('option %s only applies in the second stage'))} {(DQ ($ VSub_Number '$1'))}
                                    )
                                  ]
                                  spids: [16777215 690]
                                )
                              ]
                              spids: [16777215 708]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--second-stage-target))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CHROOTDIR spids:[740])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [740]
                                        )
                                      ]
                                      spids: [740]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 737]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--second-stage-target=')}
                                                  )
                                                spids: [763 767]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CHROOTDIR spids:[776])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--second-stage-target=')}
                                                    )
                                                  spids: [778 782]
                                                )
                                              )
                                            }
                                          spids: [776]
                                        )
                                      ]
                                      spids: [776]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [751 773]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument: %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [789 807]
                            )
                          ]
                          spids: [662 668 810 16777215]
                        )
                        (case_arm
                          pat_list: [{(--print-debs)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[817])
                                  op: Equal
                                  rhs: {(DQ ('finddebs printdebs kill_target'))}
                                  spids: [817]
                                )
                              ]
                              spids: [817]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:PRINT_DEBS spids:[823])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [823]
                                )
                              ]
                              spids: [823]
                            )
                            (C {(shift)})
                          ]
                          spids: [813 814 830 16777215]
                        )
                        (case_arm
                          pat_list: [{(--download-only)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[837])
                                  op: Equal
                                  rhs: {(DQ ('finddebs dldebs'))}
                                  spids: [837]
                                )
                              ]
                              spids: [837]
                            )
                            (C {(shift)})
                          ]
                          spids: [833 834 846 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--make-tarball)}
                            {(--make-tarball) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[858])
                                  op: Equal
                                  rhs: {(DQ ('finddebs dldebs maketarball kill_target'))}
                                  spids: [858]
                                )
                              ]
                              spids: [858]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--make-tarball))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:MAKE_TARBALL spids:[893])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [893]
                                        )
                                      ]
                                      spids: [893]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 890]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--make-tarball=')}
                                                  )
                                                spids: [916 920]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:MAKE_TARBALL spids:[929])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--make-tarball=')}
                                                    )
                                                  spids: [931 935]
                                                )
                                              )
                                            }
                                          spids: [929]
                                        )
                                      ]
                                      spids: [929]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [904 926]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [942 960]
                            )
                          ]
                          spids: [849 855 963 16777215]
                        )
                        (case_arm
                          pat_list: [{(--resolve-deps)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:RESOLVE_DEPS spids:[974])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [974]
                                )
                              ]
                              spids: [974]
                            )
                            (C {(shift)})
                          ]
                          spids: [966 967 981 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-resolve-deps)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:RESOLVE_DEPS spids:[988])
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [988]
                                )
                              ]
                              spids: [988]
                            )
                            (C {(shift)})
                          ]
                          spids: [984 985 995 16777215]
                        )
                        (case_arm
                          pat_list: [{(--keep-debootstrap-dir)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:KEEP_DEBOOTSTRAP_DIR spids:[1002])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [1002]
                                )
                              ]
                              spids: [1002]
                            )
                            (C {(shift)})
                          ]
                          spids: [998 999 1009 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--arch)}
                            {(--arch) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--arch))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ARCH spids:[1050])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1050]
                                        )
                                      ]
                                      spids: [1050]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1047]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--arch=')}
                                                  )
                                                spids: [1073 1077]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ARCH spids:[1086])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--arch=')}
                                                    )
                                                  spids: [1088 1092]
                                                )
                                              )
                                            }
                                          spids: [1086]
                                        )
                                      ]
                                      spids: [1086]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1061 1083]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1099 1117]
                            )
                          ]
                          spids: [1012 1018 1120 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--extractor)}
                            {(--extractor) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--extractor))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (lhs_expr.LhsName
                                              name: EXTRACTOR_OVERRIDE
                                              spids: [1161]
                                            )
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1161]
                                        )
                                      ]
                                      spids: [1161]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1158]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--extractor=')}
                                                  )
                                                spids: [1184 1188]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (lhs_expr.LhsName
                                              name: EXTRACTOR_OVERRIDE
                                              spids: [1197]
                                            )
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--extractor=')}
                                                    )
                                                  spids: [1199 1203]
                                                )
                                              )
                                            }
                                          spids: [1197]
                                        )
                                      ]
                                      spids: [1197]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1172 1194]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1210 1228]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(valid_extractor)} 
                                          {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (command.SimpleCommand
                                                      words: [
                                                        {(type)}
                                                        {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))}
                                                      ]
                                                      redirects: [
                                                        (redir.Redir
                                                          op: <Redir_Great '>'>
                                                          fd: 16777215
                                                          arg_word: {(/dev/null)}
                                                        )
                                                        (redir.Redir
                                                          op: <Redir_GreatAnd '2>&'>
                                                          fd: 2
                                                          arg_word: {(1)}
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(error)} {(1)} {(MISSINGEXTRACTOR)} 
                                              {(DQ ('The selected extractor cannot be found: %s'))} {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))}
                                            )
                                          ]
                                          spids: [16777215 1260]
                                        )
                                      ]
                                      spids: [16777215 1278]
                                    )
                                  ]
                                  spids: [16777215 1240]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(BADEXTRACTOR)} {(DQ ('%s: unknown extractor'))} 
                                  {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))}
                                )
                              ]
                              spids: [1281 1299]
                            )
                          ]
                          spids: [1123 1129 1302 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--unpack-tarball)}
                            {(--unpack-tarball) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--unpack-tarball))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:UNPACK_TARBALL spids:[1343])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1343]
                                        )
                                      ]
                                      spids: [1343]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1340]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--unpack-tarball=')}
                                                  )
                                                spids: [1366 1370]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:UNPACK_TARBALL spids:[1379])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--unpack-tarball=')}
                                                    )
                                                  spids: [1381 1385]
                                                )
                                              )
                                            }
                                          spids: [1379]
                                        )
                                      ]
                                      spids: [1379]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1354 1376]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1392 1410]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                          {(DQ ($ VSub_Name '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(NOTARBALL)} 
                                      {(DQ ('%s: No such file or directory'))} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))}
                                    )
                                  ]
                                  spids: [16777215 1429]
                                )
                              ]
                              spids: [16777215 1447]
                            )
                          ]
                          spids: [1305 1311 1450 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--include)}
                            {(--include) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--include))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[1490])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1490]
                                        )
                                      ]
                                      spids: [1490]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1487]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--include=')}
                                                  )
                                                spids: [1513 1517]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[1526])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--include=')}
                                                    )
                                                  spids: [1528 1532]
                                                )
                                              )
                                            }
                                          spids: [1526]
                                        )
                                      ]
                                      spids: [1526]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1501 1523]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1541 1559]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[1562])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.CommandSubPart
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Pipeline
                                                  children: [
                                                    (C {(echo)} {(DQ ($ VSub_Name '$ADDITIONAL'))})
                                                    (C {(tr)} {(Lit_Comma ',')} {(DQ (' '))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1564 1580]
                                        )
                                      )
                                    }
                                  spids: [1562]
                                )
                              ]
                              spids: [1562]
                            )
                          ]
                          spids: [1453 1459 1584 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--exclude)}
                            {(--exclude) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--exclude))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:EXCLUDE spids:[1624])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1624]
                                        )
                                      ]
                                      spids: [1624]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1621]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--exclude=')}
                                                  )
                                                spids: [1647 1651]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:EXCLUDE spids:[1660])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--exclude=')}
                                                    )
                                                  spids: [1662 1666]
                                                )
                                              )
                                            }
                                          spids: [1660]
                                        )
                                      ]
                                      spids: [1660]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1635 1657]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1675 1693]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:EXCLUDE spids:[1696])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.CommandSubPart
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Pipeline
                                                  children: [
                                                    (C {(echo)} {(DQ ($ VSub_Name '$EXCLUDE'))})
                                                    (C {(tr)} {(Lit_Comma ',')} {(DQ (' '))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1698 1714]
                                        )
                                      )
                                    }
                                  spids: [1696]
                                )
                              ]
                              spids: [1696]
                            )
                          ]
                          spids: [1587 1593 1718 16777215]
                        )
                        (case_arm
                          pat_list: [{(--verbose)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:VERBOSE spids:[1725])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [1725]
                                )
                              ]
                              spids: [1725]
                            )
                            (C {(export)} {(VERBOSE)})
                            (C {(shift)} {(1)})
                          ]
                          spids: [1721 1722 1739 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--components)}
                            {(--components) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--components))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[1779])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1779]
                                        )
                                      ]
                                      spids: [1779]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1776]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--components=')}
                                                  )
                                                spids: [1802 1806]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[1815])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--components=')}
                                                    )
                                                  spids: [1817 1821]
                                                )
                                              )
                                            }
                                          spids: [1815]
                                        )
                                      ]
                                      spids: [1815]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1790 1812]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1830 1848]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[1851])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.CommandSubPart
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Pipeline
                                                  children: [
                                                    (C {(echo)} {(DQ ($ VSub_Name '$USE_COMPONENTS'))})
                                                    (C {(tr)} {(Lit_Comma ',')} {(DQ ('|'))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1853 1869]
                                        )
                                      )
                                    }
                                  spids: [1851]
                                )
                              ]
                              spids: [1851]
                            )
                          ]
                          spids: [1742 1748 1873 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--variant)}
                            {(--variant) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--variant))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:VARIANT spids:[1913])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1913]
                                        )
                                      ]
                                      spids: [1913]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1910]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--variant=')}
                                                  )
                                                spids: [1936 1940]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:VARIANT spids:[1949])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--variant=')}
                                                    )
                                                  spids: [1951 1955]
                                                )
                                              )
                                            }
                                          spids: [1949]
                                        )
                                      ]
                                      spids: [1949]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1924 1946]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1964 1982]
                            )
                          ]
                          spids: [1876 1882 1985 16777215]
                        )
                        (case_arm
                          pat_list: [{(--merged-usr)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:MERGED_USR spids:[1992])
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [1992]
                                )
                              ]
                              spids: [1992]
                            )
                            (C {(shift)})
                          ]
                          spids: [1988 1989 1999 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-merged-usr)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:MERGED_USR spids:[2006])
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [2006]
                                )
                              ]
                              spids: [2006]
                            )
                            (C {(shift)})
                          ]
                          spids: [2002 2003 2013 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--keyring)}
                            {(--keyring) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.SimpleCommand
                                              words: [{(gpgv)} {(--version)}]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '>'>
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                )
                                                (redir.Redir
                                                  op: <Redir_GreatAnd '2>&'>
                                                  fd: 2
                                                  arg_word: {(1)}
                                                )
                                              ]
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(NEEDGPGV)} 
                                      {
                                        (DQ 
                                          (
'gpgv not installed, but required for Release verification'
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 2040]
                                )
                              ]
                              spids: [16777215 2054]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--keyring))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:KEYRING spids:[2085])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [2085]
                                        )
                                      ]
                                      spids: [2085]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2082]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--keyring=')}
                                                  )
                                                spids: [2108 2112]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:KEYRING spids:[2121])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--keyring=')}
                                                    )
                                                  spids: [2123 2127]
                                                )
                                              )
                                            }
                                          spids: [2121]
                                        )
                                      ]
                                      spids: [2121]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [2096 2118]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [2136 2154]
                            )
                          ]
                          spids: [2016 2022 2157 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-check-gpg)}]
                          action: [
                            (C {(shift)} {(1)})
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:DISABLE_KEYRING spids:[2169])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2169]
                                )
                              ]
                              spids: [2169]
                            )
                          ]
                          spids: [2160 2161 2173 16777215]
                        )
                        (case_arm
                          pat_list: [{(--force-check-gpg)}]
                          action: [
                            (C {(shift)} {(1)})
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:FORCE_KEYRING spids:[2185])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2185]
                                )
                              ]
                              spids: [2185]
                            )
                          ]
                          spids: [2176 2177 2189 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--certificate)}
                            {(--certificate) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--certificate))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CERTIFICATE spids:[2229])
                                          op: Equal
                                          rhs: {(DQ ('--certificate=') ($ VSub_Number '$2'))}
                                          spids: [2229]
                                        )
                                      ]
                                      spids: [2229]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2226]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--certificate=')}
                                                  )
                                                spids: [2253 2257]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CERTIFICATE spids:[2266])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ('--certificate=') 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--certificate=')}
                                                    )
                                                  spids: [2269 2273]
                                                )
                                              )
                                            }
                                          spids: [2266]
                                        )
                                      ]
                                      spids: [2266]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [2241 2263]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [2283 2302]
                            )
                          ]
                          spids: [2192 2198 2305 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--private-key)}
                            {(--private-key) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--private-key))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:PRIVATEKEY spids:[2345])
                                          op: Equal
                                          rhs: {(DQ ('--private-key=') ($ VSub_Number '$2'))}
                                          spids: [2345]
                                        )
                                      ]
                                      spids: [2345]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2342]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--private-key=')}
                                                  )
                                                spids: [2369 2373]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:PRIVATEKEY spids:[2382])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ('--private-key=') 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--private-key=')}
                                                    )
                                                  spids: [2385 2389]
                                                )
                                              )
                                            }
                                          spids: [2382]
                                        )
                                      ]
                                      spids: [2382]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [2357 2379]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [2399 2418]
                            )
                          ]
                          spids: [2308 2314 2421 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-check-certificate)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:CHECKCERTIF spids:[2428])
                                  op: Equal
                                  rhs: {(DQ (--no-check-certificate))}
                                  spids: [2428]
                                )
                              ]
                              spids: [2428]
                            )
                            (C {(shift)})
                          ]
                          spids: [2424 2425 2437 16777215]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other '*')}]
                          action: [
                            (C {(error)} {(1)} {(BADARG)} {(DQ ('unrecognized or invalid option %s'))} 
                              {(DQ ($ VSub_Number '$1'))}
                            )
                          ]
                          spids: [2440 2442 2460 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(command.ControlFlow token:<ControlFlow_Break break>)]
                          spids: [2463 2464 2470 16777215]
                        )
                      ]
                      spids: [507 513 2473]
                    )
                  ]
                  spids: [504 2476]
                )
            )
          ]
          spids: [16777215 495]
        )
      ]
      spids: [16777215 2478]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$DISABLE_KEYRING'))} {(-a)} {(-n)} 
                  {(DQ ($ VSub_Name '$FORCE_KEYRING'))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(error)} {(1)} {(BADARG)} 
              {
                (DQ 
                  (
'Both --no-check-gpg and --force-check-gpg specified, please pick one (at most)'
                  )
                )
              }
            )
          ]
          spids: [16777215 2506]
        )
      ]
      spids: [16777215 2519]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SECOND_STAGE_ONLY'))} {(Lit_Other '=')} 
                  {(DQ (true))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SUITE spids:[2546])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(cat)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/suite)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2547 2552]
                      )
                    }
                  spids: [2546]
                )
              ]
              spids: [2546]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ARCH spids:[2555])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(cat)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/arch)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2556 2561]
                      )
                    }
                  spids: [2555]
                )
              ]
              spids: [2555]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/variant)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:VARIANT spids:[2579])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(cat)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/variant)})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2580 2585]
                              )
                            }
                          spids: [2579]
                        )
                      ]
                      spids: [2579]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:SUPPORTED_VARIANTS spids:[2588])
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$VARIANT'))}
                          spids: [2588]
                        )
                      ]
                      spids: [2588]
                    )
                  ]
                  spids: [16777215 2576]
                )
              ]
              spids: [16777215 2594]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$CHROOTDIR'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:TARGET spids:[2613])
                          op: Equal
                          rhs: {(/)}
                          spids: [2613]
                        )
                      ]
                      spids: [2613]
                    )
                  ]
                  spids: [16777215 2610]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:TARGET spids:[2620])
                      op: Equal
                      rhs: {($ VSub_Name '$CHROOTDIR')}
                      spids: [2620]
                    )
                  ]
                  spids: [2620]
                )
              ]
              spids: [2617 2624]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SCRIPT spids:[2627])
                  op: Equal
                  rhs: {($ VSub_Name '$DEBOOTSTRAP_DIR') (/suite-script)}
                  spids: [2627]
                )
              ]
              spids: [2627]
            )
          ]
          spids: [16777215 2543]
        )
      ]
      else_action: [
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')})
                      ]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (C {(usage_err)} {(1)} {(NEEDSUITETARGET)} 
                  {(DQ ('You must specify a suite and a target.'))}
                )
              ]
              spids: [16777215 2659]
            )
          ]
          spids: [16777215 2673]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:SUITE spids:[2676])
              op: Equal
              rhs: {(DQ ($ VSub_Number '$1'))}
              spids: [2676]
            )
          ]
          spids: [2676]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:TARGET spids:[2682])
              op: Equal
              rhs: {(DQ ($ VSub_Number '$2'))}
              spids: [2682]
            )
          ]
          spids: [2682]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:USER_MIRROR spids:[2688])
              op: Equal
              rhs: {(DQ ($ VSub_Number '$3'))}
              spids: [2688]
            )
          ]
          spids: [2688]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:TARGET spids:[2694])
              op: Equal
              rhs: 
                {
                  (DQ 
                    (word_part.BracedVarSub
                      token: <VSub_Name TARGET>
                      suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /)})
                      spids: [2696 2700]
                    )
                  )
                }
              spids: [2694]
            )
          ]
          spids: [2694]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} 
                      {
                        (DQ 
                          (word_part.BracedVarSub
                            token: <VSub_Name TARGET>
                            suffix_op: 
                              (suffix_op.StringUnary
                                op_id: VOp1_Pound
                                arg_word: {(Lit_Slash /)}
                              )
                            spids: [2709 2713]
                          )
                        )
                      } {(Lit_Other '=')} {(DQ (${ VSub_Name TARGET))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (word_part.BracedVarSub
                                    token: <VSub_Name TARGET>
                                    suffix_op: 
                                      (suffix_op.StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /) ('*')}
                                      )
                                    spids: [2735 2740]
                                  )
                                )
                              } {(Lit_Other '=')} {(DQ ($ VSub_Name '$TARGET'))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:TARGET spids:[2756])
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (word_part.CommandSubPart
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(echo)} 
                                              {
                                                (DQ 
                                                  (word_part.CommandSubPart
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [(C {(pwd)})]
                                                      )
                                                    left_token: <Left_Backtick '`'>
                                                    spids: [2762 2764]
                                                  ) (/) ($ VSub_Name '$TARGET')
                                                )
                                              }
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [2758 2768]
                                    )
                                  )
                                }
                              spids: [2756]
                            )
                          ]
                          spids: [2756]
                        )
                      ]
                      spids: [16777215 2753]
                    )
                  ]
                  else_action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:TARGET spids:[2775])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Sentence
                                          child: 
                                            (C {(cd)} 
                                              {
                                                (DQ 
                                                  (word_part.BracedVarSub
                                                    token: <VSub_Name TARGET>
                                                    suffix_op: 
                                                      (suffix_op.StringUnary
                                                        op_id: VOp1_Percent
                                                        arg_word: {(Lit_Slash /) ('*')}
                                                      )
                                                    spids: [2781 2786]
                                                  )
                                                )
                                              }
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                        (C {(echo)} 
                                          {
                                            (DQ 
                                              (word_part.CommandSubPart
                                                command_list: 
                                                  (command.CommandList
                                                    children: [(C {(pwd)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2793 2795]
                                              ) (/) 
                                              (word_part.BracedVarSub
                                                token: <VSub_Name TARGET>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [2797 2802]
                                              )
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2777 2804]
                                )
                              )
                            }
                          spids: [2775]
                        )
                      ]
                      spids: [2775]
                    )
                  ]
                  spids: [2772 2808]
                )
              ]
              spids: [16777215 2727]
            )
          ]
          spids: [16777215 2811]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:SCRIPT spids:[2815])
              op: Equal
              rhs: {(DQ ($ VSub_Name '$DEBOOTSTRAP_DIR') (/scripts/) ($ VSub_Number '$1'))}
              spids: [2815]
            )
          ]
          spids: [2815]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other ']')})
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ (${ VSub_Name SCRIPT) (.) (${ VSub_Name VARIANT))} {(Lit_Other ']')}
                        )
                      ]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:SCRIPT spids:[2857])
                      op: Equal
                      rhs: {(DQ (${ VSub_Name SCRIPT) (.) (${ VSub_Name VARIANT))}
                      spids: [2857]
                    )
                  ]
                  spids: [2857]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:SUPPORTED_VARIANTS spids:[2869])
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$VARIANT'))}
                      spids: [2869]
                    )
                  ]
                  spids: [2869]
                )
              ]
              spids: [16777215 2854]
            )
          ]
          spids: [16777215 2875]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$4'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:SCRIPT spids:[2898])
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$4'))}
                      spids: [2898]
                    )
                  ]
                  spids: [2898]
                )
              ]
              spids: [16777215 2895]
            )
          ]
          spids: [16777215 2904]
        )
      ]
      spids: [2631 2906]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(in_path)} {(dpkg)})
                    (command.SimpleCommand
                      words: [{(dpkg)} {(--print-architecture)}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: <Redir_GreatAnd '2>&'>
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[2937])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(/usr/bin/dpkg)} {(--print-architecture)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2938 2942]
                      )
                    }
                  spids: [2937]
                )
              ]
              spids: [2937]
            )
          ]
          spids: [16777215 2934]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(in_path)} {(udpkg)})
                    (command.SimpleCommand
                      words: [{(udpkg)} {(--print-architecture)}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: <Redir_GreatAnd '2>&'>
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[2968])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(/usr/bin/udpkg)} {(--print-architecture)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2969 2973]
                      )
                    }
                  spids: [2968]
                )
              ]
              spids: [2968]
            )
          ]
          spids: [2944 2965]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/arch)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[2990])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(cat)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/arch)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2991 2996]
                      )
                    }
                  spids: [2990]
                )
              ]
              spids: [2990]
            )
          ]
          spids: [2975 2987]
        )
      ]
      spids: [16777215 2998]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3000])
          op: Equal
          rhs: {(DQ ($ VSub_Name '$HOST_ARCH'))}
          spids: [3000]
        )
      ]
      spids: [3000]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$HOST_OS'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Case
              to_match: 
                {
                  (word_part.CommandSubPart
                    command_list: (command.CommandList children:[(C {(uname)})])
                    left_token: <Left_Backtick '`'>
                    spids: [3026 3028]
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{(Linux)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3037])
                          op: Equal
                          rhs: {(linux)}
                          spids: [3037]
                        )
                      ]
                      spids: [3037]
                    )
                  ]
                  spids: [3033 3034 3041 16777215]
                )
                (case_arm
                  pat_list: [{(GNU/kFreeBSD)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3048])
                          op: Equal
                          rhs: {(kfreebsd)}
                          spids: [3048]
                        )
                      ]
                      spids: [3048]
                    )
                  ]
                  spids: [3044 3045 3052 16777215]
                )
                (case_arm
                  pat_list: [{(GNU)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3059])
                          op: Equal
                          rhs: {(hurd)}
                          spids: [3059]
                        )
                      ]
                      spids: [3059]
                    )
                  ]
                  spids: [3055 3056 3063 16777215]
                )
                (case_arm
                  pat_list: [{(FreeBSD) (Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3071])
                          op: Equal
                          rhs: {(freebsd)}
                          spids: [3071]
                        )
                      ]
                      spids: [3071]
                    )
                  ]
                  spids: [3066 3068 3075 16777215]
                )
              ]
              spids: [3024 3030 3078]
            )
          ]
          spids: [16777215 3021]
        )
      ]
      spids: [16777215 3080]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$ARCH'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ARCH spids:[3099])
                  op: Equal
                  rhs: {($ VSub_Name '$HOST_ARCH')}
                  spids: [3099]
                )
              ]
              spids: [3099]
            )
          ]
          spids: [16777215 3096]
        )
      ]
      spids: [16777215 3102]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$ARCH'))} {(Lit_Other ']')})
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$HOST_OS'))} {(Lit_Other ']')})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(error)} {(1)} {(WHATARCH)} {(DQ ("Couldn't work out current architecture"))})]
          spids: [16777215 3130]
        )
      ]
      spids: [16777215 3144]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$HOST_OS'))} {(Lit_Other '=')} 
                      {(DQ (kfreebsd))} {(Lit_Other ']')}
                    )
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$HOST_OS'))} {(Lit_Other '=')} 
                      {(DQ (freebsd))} {(Lit_Other ']')}
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.ForEach
              iter_name: module
              iter_words: [{(linprocfs)} {(fdescfs)} {(tmpfs)} {(linsysfs)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (command.SimpleCommand
                          words: [{(kldstat)} {(-m)} {(DQ ($ VSub_Name '$module'))}]
                          redirects: [
                            (redir.Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: <Redir_GreatAnd '2>&'>
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                        (C {(warning)} {(SANITYCHECK)} 
                          {(DQ ('Probably required module %s is not loaded'))} {(DQ ($ VSub_Name '$module'))}
                        )
                      ]
                    )
                  ]
                  spids: [3198 3231]
                )
              spids: [3188 3196]
            )
          ]
          spids: [16777215 3180]
        )
      ]
      spids: [16777215 3233]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$TARGET'))} {(Lit_Other '=')} {(DQ (/))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:CHROOT_CMD spids:[3256])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3256]
                )
              ]
              spids: [3256]
            )
          ]
          spids: [16777215 3253]
        )
      ]
      else_action: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:CHROOT_CMD spids:[3263])
              op: Equal
              rhs: {(DQ ('chroot ') ($ VSub_Name '$TARGET'))}
              spids: [3263]
            )
          ]
          spids: [3263]
        )
      ]
      spids: [3260 3269]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$SHA_SIZE'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SHA_SIZE spids:[3288])
                  op: Equal
                  rhs: {(256)}
                  spids: [3288]
                )
              ]
              spids: [3288]
            )
          ]
          spids: [16777215 3285]
        )
      ]
      spids: [16777215 3291]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DAmp]
                  children: [
                    (command.Pipeline
                      children: [(C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE) (sum))})]
                      negated: T
                    )
                    (command.Pipeline
                      children: [(C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE))})]
                      negated: T
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SHA_SIZE spids:[3324])
                  op: Equal
                  rhs: {(1)}
                  spids: [3324]
                )
              ]
              spids: [3324]
            )
          ]
          spids: [16777215 3321]
        )
      ]
      spids: [16777215 3327]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_CHECKSUM_FIELD spids:[3329])
          op: Equal
          rhs: {(DQ (SHA) ($ VSub_Name '$SHA_SIZE'))}
          spids: [3329]
        )
      ]
      spids: [3329]
    )
    (C {(export)} {(ARCH)} {(SUITE)} {(TARGET)} {(CHROOT_CMD)} {(SHA_SIZE)} {(DEBOOTSTRAP_CHECKSUM_FIELD)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(first_stage)} {(second_stage)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(in_path)} {(id)})
                            (C {(Lit_Other '[')} 
                              {
                                (word_part.CommandSubPart
                                  command_list: (command.CommandList children:[(C {(id)} {(-u)})])
                                  left_token: <Left_Backtick '`'>
                                  spids: [3373 3377]
                                )
                              } {(-ne)} {(0)} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(error)} {(1)} {(NEEDROOT)} {(DQ ('debootstrap can only run as root'))})]
                  spids: [16777215 3386]
                )
              ]
              spids: [16777215 3400]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(check_sane_mount)} {(DQ ($ VSub_Name '$TARGET'))})]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(NOEXEC)} 
                      {
                        (DQ ("Cannot install into target '") ($ VSub_Name '$TARGET') 
                          ("' mounted with noexec or nodev")
                        )
                      }
                    )
                  ]
                  spids: [16777215 3418]
                )
              ]
              spids: [16777215 3434]
            )
          ]
          spids: [16777215 3360]
        )
      ]
      spids: [16777215 3436]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_Name '$SCRIPT'))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(error)} {(1)} {(NOSCRIPT)} {(DQ ('No such script: %s'))} {(DQ ($ VSub_Name '$SCRIPT'))})
          ]
          spids: [16777215 3454]
        )
      ]
      spids: [16777215 3471]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$TARGET'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/debootstrap))})]
          spids: [16777215 3495]
        )
      ]
      spids: [16777215 3507]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                  {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(exec)}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(3)})]
            )
          ]
          spids: [16777215 3548]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(printdebs)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(exec)}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(2)})]
            )
          ]
          spids: [3564 3571]
        )
      ]
      else_action: [
        (command.SimpleCommand
          words: [{(exec)}]
          redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(1)})]
        )
        (command.SimpleCommand
          words: [{(exec)}]
          redirects: [
            (redir.Redir
              op: <Redir_DGreat '>>'>
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))}
            )
          ]
        )
        (command.SimpleCommand
          words: [{(exec)}]
          redirects: [(redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})]
        )
      ]
      spids: [3587 3622]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name UNPACK_TARBALL>
                                suffix_op: 
                                  (suffix_op.StringUnary
                                    op_id: VOp1_Pound
                                    arg_word: {(Lit_Slash /)}
                                  )
                                spids: [3648 3652]
                              )
                            )
                          } {(Lit_Other '=')} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(TARPATH)} {(DQ ('Tarball must be given a complete path'))})
                  ]
                  spids: [16777215 3664]
                )
              ]
              spids: [16777215 3678]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name UNPACK_TARBALL>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(.tar)})
                                spids: [3686 3690]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Subshell
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(cd)} {(DQ ($ VSub_Name '$TARGET'))})
                            (C {(tar)} {(-xf)} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))})
                          ]
                        )
                      spids: [3706 3722]
                    )
                  ]
                  spids: [16777215 3703]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name UNPACK_TARBALL>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(.tgz)})
                                spids: [3730 3734]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Subshell
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(cd)} {(DQ ($ VSub_Name '$TARGET'))})
                            (command.Pipeline
                              children: [
                                (C {(zcat)} {(DQ ($ VSub_Name '$UNPACK_TARBALL'))})
                                (C {(tar)} {(-xf)} {(-)})
                              ]
                              negated: F
                            )
                          ]
                        )
                      spids: [3750 3772]
                    )
                  ]
                  spids: [3725 3747]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(NOTTAR)} {(DQ ('Unknown tarball: must be either .tar or .tgz'))})
              ]
              spids: [3775 3789]
            )
          ]
          spids: [16777215 3640]
        )
      ]
      spids: [16777215 3791]
    )
    (C {(.)} {(DQ ($ VSub_Name '$SCRIPT'))})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SECOND_STAGE_ONLY'))} {(Lit_Other '=')} 
                  {(DQ (true))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:MIRRORS spids:[3825])
                  op: Equal
                  rhs: {(null) (Lit_Other ':')}
                  spids: [3825]
                )
              ]
              spids: [3825]
            )
          ]
          spids: [16777215 3822]
        )
      ]
      else_action: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:MIRRORS spids:[3832])
              op: Equal
              rhs: {(DQ ($ VSub_Name '$DEF_MIRROR'))}
              spids: [3832]
            )
          ]
          spids: [3832]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USER_MIRROR'))} 
                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:MIRRORS spids:[3858])
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$USER_MIRROR'))}
                      spids: [3858]
                    )
                  ]
                  spids: [3858]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:MIRRORS spids:[3864])
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (word_part.BracedVarSub
                              token: <VSub_Name MIRRORS>
                              suffix_op: 
                                (suffix_op.StringUnary
                                  op_id: VOp1_Percent
                                  arg_word: {(Lit_Slash /)}
                                )
                              spids: [3866 3870]
                            )
                          )
                        }
                      spids: [3864]
                    )
                  ]
                  spids: [3864]
                )
              ]
              spids: [16777215 3855]
            )
          ]
          spids: [16777215 3874]
        )
      ]
      spids: [3829 3876]
    )
    (C {(export)} {(MIRRORS)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ok spids:[3884])
          op: Equal
          rhs: {(false)}
          spids: [3884]
        )
      ]
      spids: [3884]
    )
    (command.ForEach
      iter_name: v
      iter_words: [{($ VSub_Name '$SUPPORTED_VARIANTS')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {(doing_variant)} {($ VSub_Name '$v')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: 
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:ok spids:[3908])
                              op: Equal
                              rhs: {(true)}
                              spids: [3908]
                            )
                          ]
                          spids: [3908]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 3906]
                )
              ]
              spids: [16777215 3912]
            )
          ]
          spids: [3896 3914]
        )
      spids: [3892 3894]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (command.Pipeline children:[(C {($ VSub_Name '$ok')})] negated:T)
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(error)} {(1)} {(UNSUPPVARIANT)} {(DQ ('unsupported variant'))})]
          spids: [16777215 3923]
        )
      ]
      spids: [16777215 3936]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(am_doing_phase)} {(finddebs)}) terminator:<Op_Semi ';'>)]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FINDDEBS_NEEDS_INDICES'))} 
                              {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RESOLVE_DEPS'))} {(Lit_Other '=')} 
                              {(DQ (true))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(download_indices)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:GOT_INDICES spids:[3994])
                          op: Equal
                          rhs: {(true)}
                          spids: [3994]
                        )
                      ]
                      spids: [3994]
                    )
                  ]
                  spids: [16777215 3988]
                )
              ]
              spids: [16777215 3998]
            )
            (C {(work_out_debs)})
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:base spids:[4006])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(without)} 
                                {(DQ ($ VSub_Name '$base') (' ') ($ VSub_Name '$ADDITIONAL'))} {(DQ ($ VSub_Name '$EXCLUDE'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4007 4019]
                      )
                    }
                  spids: [4006]
                )
              ]
              spids: [4006]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RESOLVE_DEPS'))} {(Lit_Other '=')} 
                          {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:requiredX spids:[4041])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(echo)} 
                                        {
                                          (word_part.CommandSubPart
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ VSub_Name '$required')})
                                                      (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                                      (C {(sort)})
                                                      (C {(uniq)})
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [4045 4069]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4042 4070]
                              )
                            }
                          spids: [4041]
                        )
                      ]
                      spids: [4041]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseX spids:[4073])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(echo)} 
                                        {
                                          (word_part.CommandSubPart
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ VSub_Name '$base')})
                                                      (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                                      (C {(sort)})
                                                      (C {(uniq)})
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [4077 4101]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4074 4102]
                              )
                            }
                          spids: [4073]
                        )
                      ]
                      spids: [4073]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseN spids:[4106])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$baseX'))} 
                                        {(DQ ($ VSub_Name '$requiredX'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4107 4117]
                              )
                            }
                          spids: [4106]
                        )
                      ]
                      spids: [4106]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseU spids:[4120])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$baseX'))} 
                                        {(DQ ($ VSub_Name '$baseN'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4121 4131]
                              )
                            }
                          spids: [4120]
                        )
                      ]
                      spids: [4120]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$baseU'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(info)} {(REDUNDANTBASE)} 
                              {(DQ ('Found packages in base already in required: %s'))} {(DQ ($ VSub_Name '$baseU'))}
                            )
                          ]
                          spids: [16777215 4152]
                        )
                      ]
                      spids: [16777215 4168]
                    )
                    (C {(info)} {(RESOLVEREQ)} {(DQ ('Resolving dependencies of required packages...'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:required spids:[4181])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(resolve_deps)} {($ VSub_Name '$requiredX')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4182 4186]
                              )
                            }
                          spids: [4181]
                        )
                      ]
                      spids: [4181]
                    )
                    (C {(info)} {(RESOLVEBASE)} {(DQ ('Resolving dependencies of base packages...'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:base spids:[4198])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(resolve_deps)} {($ VSub_Name '$baseX')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4199 4203]
                              )
                            }
                          spids: [4198]
                        )
                      ]
                      spids: [4198]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:base spids:[4206])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$base'))} 
                                        {(DQ ($ VSub_Name '$required'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4207 4217]
                              )
                            }
                          spids: [4206]
                        )
                      ]
                      spids: [4206]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:requiredX spids:[4221])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$required'))} 
                                        {(DQ ($ VSub_Name '$requiredX'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4222 4232]
                              )
                            }
                          spids: [4221]
                        )
                      ]
                      spids: [4221]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseX spids:[4235])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$base'))} 
                                        {(DQ ($ VSub_Name '$baseX'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4236 4246]
                              )
                            }
                          spids: [4235]
                        )
                      ]
                      spids: [4235]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$requiredX'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(info)} {(NEWREQUIRED)} 
                              {(DQ ('Found additional required dependencies: %s'))} {(DQ ($ VSub_Name '$requiredX'))}
                            )
                          ]
                          spids: [16777215 4266]
                        )
                      ]
                      spids: [16777215 4282]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$baseX'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(info)} {(NEWBASE)} {(DQ ('Found additional base dependencies: %s'))} 
                              {(DQ ($ VSub_Name '$baseX'))}
                            )
                          ]
                          spids: [16777215 4302]
                        )
                      ]
                      spids: [16777215 4318]
                    )
                  ]
                  spids: [16777215 4038]
                )
              ]
              spids: [16777215 4321]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:all_debs spids:[4325])
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$required') (' ') ($ VSub_Name '$base'))}
                  spids: [4325]
                )
              ]
              spids: [4325]
            )
          ]
          spids: [16777215 3950]
        )
      ]
      spids: [16777215 4332]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(printdebs)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(echo)} {(DQ ($ VSub_Name '$all_debs'))})]
          spids: [16777215 4342]
        )
      ]
      spids: [16777215 4351]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(am_doing_phase)} {(dldebs)}) terminator:<Op_Semi ';'>)]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$GOT_INDICES'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(download_indices)})]
                  spids: [16777215 4382]
                )
              ]
              spids: [16777215 4388]
            )
            (C {(download)} {($ VSub_Name '$all_debs')})
          ]
          spids: [16777215 4361]
        )
      ]
      spids: [16777215 4395]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(maketarball)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: (C {(cd)} {($ VSub_Name '$TARGET')})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(tar)} {(czf)} {(-)} {(var/lib/apt)} {(var/cache/apt)})
                  ]
                )
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$MAKE_TARBALL')}
                )
              ]
              spids: [4408 4424]
            )
          ]
          spids: [16777215 4405]
        )
      ]
      spids: [16777215 4429]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(first_stage)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(choose_extractor)})
            (C {(first_stage_install)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(am_doing_phase)} {(second_stage)})]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(cp)} {(DQ ($ VSub_Number '$0'))} 
                      {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap))}
                    )
                    (C {(cp)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/functions)} 
                      {(DQ ($ VSub_Name '$TARGET') (/debootstrap/functions))}
                    )
                    (C {(cp)} {($ VSub_Name '$SCRIPT')} 
                      {(DQ ($ VSub_Name '$TARGET') (/debootstrap/suite-script))}
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$ARCH'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/arch))}
                        )
                      ]
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$SUITE'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/suite))}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ )} {(Lit_Other '=')} {(DQ ($ VSub_Name '$VARIANT'))} 
                          {(Lit_Other ']')}
                        )
                        (command.SimpleCommand
                          words: [{(echo)} {(DQ ($ VSub_Name '$VARIANT'))}]
                          redirects: [
                            (redir.Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/variant))}
                            )
                          ]
                        )
                      ]
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$required'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/required))}
                        )
                      ]
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$base'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/base))}
                        )
                      ]
                    )
                    (C {(chmod)} {(755)} {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap))})
                  ]
                  spids: [16777215 4471]
                )
              ]
              spids: [16777215 4599]
            )
          ]
          spids: [16777215 4439]
        )
      ]
      spids: [16777215 4601]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(second_stage)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SECOND_STAGE_ONLY'))} {(Lit_Other '=')} 
                          {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:required spids:[4632])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(cat)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/required)})
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4634 4639]
                                )
                              )
                            }
                          spids: [4632]
                        )
                      ]
                      spids: [4632]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:base spids:[4643])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [(C {(cat)} {($ VSub_Name '$DEBOOTSTRAP_DIR') (/base)})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4645 4650]
                                )
                              )
                            }
                          spids: [4643]
                        )
                      ]
                      spids: [4643]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:all_debs spids:[4654])
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$required') (' ') ($ VSub_Name '$base'))}
                          spids: [4654]
                        )
                      ]
                      spids: [4654]
                    )
                  ]
                  spids: [16777215 4629]
                )
              ]
              spids: [16777215 4662]
            )
            (C {(second_stage_install)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))})]
                  spids: [16777215 4705]
                )
              ]
              spids: [16777215 4718]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name MIRRORS>
                                suffix_op: 
                                  (suffix_op.StringUnary
                                    op_id: VOp1_Pound
                                    arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)}
                                  )
                                spids: [4726 4732]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$MIRRORS'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(setup_apt_sources)} 
                      {
                        (DQ 
                          (word_part.BracedVarSub
                            token: <VSub_Name MIRRORS>
                            suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                            spids: [4751 4755]
                          )
                        )
                      }
                    )
                    (C {(mv_invalid_to)} 
                      {
                        (DQ 
                          (word_part.BracedVarSub
                            token: <VSub_Name MIRRORS>
                            suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                            spids: [4762 4766]
                          )
                        )
                      }
                    )
                  ]
                  spids: [16777215 4745]
                )
              ]
              else_action: [
                (C {(setup_apt_sources)} {(DQ ($ VSub_Name '$DEF_MIRROR'))})
                (C {(mv_invalid_to)} {(DQ ($ VSub_Name '$DEF_MIRROR'))})
              ]
              spids: [4770 4787]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$KEEP_DEBOOTSTRAP_DIR'))} 
                                  {(Lit_Other '=')} {(true)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(cp)} {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))} 
                              {(DQ ($ VSub_Name '$TARGET') (/var/log/bootstrap.log))}
                            )
                          ]
                          spids: [16777215 4823]
                        )
                      ]
                      else_action: [
                        (C {(mv)} {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))} 
                          {(DQ ($ VSub_Name '$TARGET') (/var/log/bootstrap.log))}
                        )
                      ]
                      spids: [4839 4875]
                    )
                  ]
                  spids: [16777215 4805]
                )
              ]
              spids: [16777215 4878]
            )
            (C {(sync)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$KEEP_DEBOOTSTRAP_DIR'))} 
                          {(Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-x)} 
                                  {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(chmod)} {(644)} 
                              {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap))}
                            )
                          ]
                          spids: [16777215 4917]
                        )
                      ]
                      spids: [16777215 4930]
                    )
                  ]
                  spids: [16777215 4900]
                )
              ]
              else_action: [(C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$TARGET') (/debootstrap))})]
              spids: [4933 4946]
            )
          ]
          spids: [16777215 4611]
        )
      ]
      spids: [16777215 4948]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(kill_target)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$KEEP_DEBOOTSTRAP_DIR'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(info)} {(KILLTARGET)} {(DQ ('Deleting target directory'))})
                    (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$TARGET'))})
                  ]
                  spids: [16777215 4977]
                )
              ]
              spids: [16777215 4998]
            )
          ]
          spids: [16777215 4958]
        )
      ]
      spids: [16777215 5000]
    )
  ]
)