(CommandList
  children: [
    (C {(set)} {(-o)} {(pipefail)})
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-lt)} {(4)} {(Lit_Other "]")})]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("usage: bisectinate ARCH PACKAGE REPO[@BAD] GOOD [TEST...]"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[43])]
            )
            (SimpleCommand
              words: [{(echo)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[49])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("Bisect PACKAGE for ARCH, from START to BAD within REPO"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[59])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 34]
        )
      ]
      spids: [-1 67]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ARCH)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$1"))}
          spids: [74]
        )
      ]
      spids: [74]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PKG)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$2"))}
          spids: [79]
        )
      ]
      spids: [79]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:REPO)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Number 3>
                  suffix_op: 
                    (PatSub
                      pat: {("@*")}
                      replace: {(SQ )}
                      do_all: False
                      do_prefix: False
                      do_suffix: False
                    )
                  spids: [86 91]
                )
              )
            }
          spids: [84]
        )
      ]
      spids: [84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BRANCH)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Number 3>
                  suffix_op: 
                    (PatSub
                      pat: {("*@")}
                      replace: {(SQ )}
                      do_all: False
                      do_prefix: False
                      do_suffix: False
                    )
                  spids: [96 101]
                )
              )
            }
          spids: [94]
        )
      ]
      spids: [94]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$BRANCH"))} {(Lit_Other "=") (Lit_Other "=")} 
          {(DQ ($ VSub_Number "$3"))} {(Lit_Other "]")}
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:BRANCH) op:Equal rhs:{(master)} spids:[121])]
          spids: [121]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:START)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$4"))}
          spids: [124]
        )
      ]
      spids: [124]
    )
    (C {(shift)} {(4)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TEST)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$1"))}
          spids: [133]
        )
      ]
      spids: [133]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TOP)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(pwd)})])
                  left_token: <Left_CommandSub "$(">
                  spids: [141 143]
                )
              )
            }
          spids: [139]
        )
      ]
      spids: [139]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$SRCDIR"))} {(Lit_Other "]")})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:SRCDIR)
              op: Equal
              rhs: {(DQ ($ VSub_Name "$TOP") (/packages))}
              spids: [158]
            )
          ]
          spids: [158]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$BUILD"))} {(Lit_Other "]")})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:BUILD)
              op: Equal
              rhs: {(DQ ($ VSub_Name "$TOP") (/build))}
              spids: [176]
            )
          ]
          spids: [176]
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$REPO") (/.git))} 
              {(Lit_Other "]")}
            )
          ]
          action: [(C {(echo)} {(DQ ("No git repo at ") ($ VSub_Name "$REPO"))}) (C {(exit)} {(1)})]
          spids: [-1 198]
        )
      ]
      spids: [-1 213]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$TEST"))} {(Lit_Other "]")})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:TEST) op:Equal rhs:{(true)} spids:[228])]
          spids: [228]
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$PKG"))} {(Lit_Other "=") (Lit_Other "=")} 
                  {(linux)} {(Lit_Other "]")}
                )
                (C {(Lit_Other "[")} {(-e)} 
                  {(DQ ($ VSub_Name "$BUILD") (/root-filesystem-) ($ VSub_Name "$ARCH")) (.tar.bz2)} {(Lit_Other "]")}
                )
              ]
              op_id: Op_DAmp
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ZAPJUST)
                  op: Equal
                  rhs: {(linux-kernel)}
                  spids: [269]
                )
              ]
              spids: [269]
            )
          ]
          spids: [-1 266]
        )
        (if_arm
          cond: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$PKG"))} {(Lit_Other "=") (Lit_Other "=")} 
                  {(busybox)} {(Lit_Other "]")}
                )
                (C {(Lit_Other "[")} {(-e)} 
                  {
                    (DQ ($ VSub_Name "$BUILD") (/simple-cross-compiler-) ($ VSub_Name "$ARCH") 
                      (.tar.bz2)
                    )
                  } {(Lit_Other "]")}
                )
              ]
              op_id: Op_DAmp
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ZAPJUST)
                  op: Equal
                  rhs: {(root-filesystem)}
                  spids: [306]
                )
              ]
              spids: [306]
            )
          ]
          spids: [272 303]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:ZAPJUST) op:Equal rhs:{(SQ )} spids:[312])]
          spids: [312]
        )
      ]
      spids: [309 314]
    )
    (AndOr
      children: [
        (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$BUILD") (/packages/alt-) ($ VSub_Name "$PKG"))} 
          {(DQ ($ VSub_Name "$SRCDIR") (/alt-) ($ VSub_Name "$PKG") (-0.tar.bz2))}
        )
        (AndOr
          children: [
            (C {(mkdir)} {(-p)} 
              (BracedWordTree
                parts: [(DQ ($ VSub_Name "$BUILD")) (/) (BracedAltPart words:[{(logs)}{(packages)}])]
              )
            )
            (AndOr
              children: [
                (C {(cd)} {(DQ ($ VSub_Name "$BUILD") (/packages))})
                (AndOr
                  children: [
                    (C {(git)} {(clone)} {(DQ ($ VSub_Name "$REPO"))} {(DQ (alt-) ($ VSub_Name "$PKG"))})
                    (AndOr
                      children: [
                        (C {(cd)} {(DQ (alt-) ($ VSub_Name "$PKG"))})
                        (AndOr
                          children: [
                            (C {(git)} {(bisect)} {(start)})
                            (AndOr
                              children: [
                                (C {(git)} {(bisect)} {(good)} {(DQ ($ VSub_Name "$START"))})
                                (C {(exit)} {(1)})
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:RESULT)
          op: Equal
          rhs: {(DQ ("bad ") ($ VSub_Name "$BRANCH"))}
          spids: [414]
        )
      ]
      spids: [414]
    )
    (While
      cond: [(C {(true)})]
      body: 
        (DoGroup
          children: [
            (AndOr
              children: [
                (C {(cd)} {(DQ ($ VSub_Name "$BUILD") (/packages/alt-) ($ VSub_Name "$PKG"))})
                (AndOr
                  children: [
                    (C {(git)} {(clean)} {(-fdx)})
                    (AndOr
                      children: [(C {(git)} {(checkout)} {(-f)}) (C {(exit)} {(1)})]
                      op_id: Op_DPipe
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(git)} {(bisect)} {($ VSub_Name "$RESULT")})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [473 479]
                        )
                      )
                    }
                  spids: [471]
                )
              ]
              spids: [471]
            )
            (C {(echo)} {(DQ ($ VSub_Name "$RESULT"))})
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(KW_Bang "!")} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name "$RESULT"))})
                                  (C {(head)} {(-n)} {(1)})
                                  (C {(grep)} {(DQ ("^Bisecting:"))})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [495 517]
                      )
                    )
                  } {(Lit_Other "]")}
                )
                (C {(exit)})
              ]
              op_id: Op_DAmp
            )
            (SimpleCommand
              words: [{(git)} {(show)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: 
                    {(DQ ($ VSub_Name "$BUILD") (/logs/bisectinate-) (${ VSub_Name ARCH) (.txt))}
                  spids: [537]
                )
              ]
            )
            (SimpleCommand
              words: [{(git)} {(bisect)} {(log)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: 
                    {(DQ ($ VSub_Name "$BUILD") (/logs/bisectinate-) (${ VSub_Name ARCH) (.log))}
                  spids: [555]
                )
              ]
            )
            (Pipeline
              children: [(C {(git)} {(log)} {(HEAD)} {(-1)}) (C {(cat)})]
              negated: False
            )
            (C {(echo)} {(DQ (Testing...))})
            (AndOr
              children: [(C {(cd)} {(DQ ($ VSub_Name "$TOP"))}) (C {(exit)} {(1)})]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$ZAPJUST"))} 
                  {(Lit_Other "]")}
                )
                (AndOr
                  children: [
                    (C {(rm)} {(-rf)} 
                      (BracedWordTree
                        parts: [
                          (DQ ($ VSub_Name "$BUILD") (/) (${ VSub_Name ZAPJUST) (-) ($ VSub_Name "$ARCH"))
                          (BracedAltPart words:[{}{(.tar.bz2)}])
                        ]
                      )
                    )
                    (C {(rm)} {(-rf)} 
                      (BracedWordTree
                        parts: [
                          (DQ ($ VSub_Name "$BUILD"))
                          (/)
                          (Lit_Other "*")
                          (-)
                          (DQ ($ VSub_Name "$ARCH"))
                          (BracedAltPart words:[{}{(.tar.bz2)}])
                        ]
                      )
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(./build.sh)} {(DQ ($ VSub_Name "$ARCH"))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[691])]
                  more_env: [
                    (env_pair name:EXTRACT_ALL val:{(1)} spids:[672])
                    (env_pair name:ALLOW_PATCH_FAILURE val:{(1)} spids:[675])
                    (env_pair
                      name: USE_ALT
                      val: {(DQ ($ VSub_Name "$PKG"))}
                      spids: [678]
                    )
                  ]
                )
                (C {(tee)} {(-a)} 
                  {(DQ ($ VSub_Name "$BUILD")) (/logs/bisectinate-) (DQ ($ VSub_Name "$ARCH")) (.txt)}
                )
              ]
              negated: False
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:RESULT) op:Equal rhs:{(bad)} spids:[716])]
              spids: [716]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other "[")} {(-e)} 
                      {(DQ ($ VSub_Name "$BUILD")) (/system-image-) (DQ ($ VSub_Name "$ARCH")) 
                        (.tar.bz2)
                      } {(Lit_Other "]")}
                    )
                  ]
                  action: [
                    (C {(set)} {(-o)} {(pipefail)})
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [{(more/timeout.sh)} {(60)} {(DQ ($ VSub_Name "$TEST"))}]
                          redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[761])]
                          more_env: [
                            (env_pair
                              name: ARCH
                              val: {(DQ ($ VSub_Name "$ARCH"))}
                              spids: [748]
                            )
                          ]
                        )
                        (C {(tee)} {(-a)} 
                          {(DQ ($ VSub_Name "$BUILD") (/logs/bisectinate-) ($ VSub_Name "$ARCH")) 
                            (.txt)
                          }
                        )
                      ]
                      negated: False
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(-eq)} {(0)} {(Lit_Other "]")})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:RESULT)
                              op: Equal
                              rhs: {(good)}
                              spids: [792]
                            )
                          ]
                          spids: [792]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [-1 738]
                )
              ]
              spids: [-1 796]
            )
            (C {(mv)} 
              (BracedWordTree
                parts: [
                  (DQ ($ VSub_Name "$BUILD"))
                  (/logs/bisectinate)
                  (BracedAltPart words:[{}{(-) ($ VSub_Name "$RESULT")}])
                  (-)
                  (DQ ($ VSub_Name "$ARCH"))
                  (.txt)
                ]
              )
            )
          ]
          spids: [429 822]
        )
    )
  ]
)