(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HOME)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:9)
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [{(cd)} {($ Id.VSub_Number '$0')}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_Great val:'>' span_id:16)
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                )
                                (redir.Redir
                                  op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:19)
                                  fd: 2
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:21)
                        )
                        (C {(pwd)})
                      ]
                    )
                )
              )
            }
          spids: [7]
        )
      ]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:27)
          fd: -1
          arg_word: {(/dev/null)}
        )
        (redir.Redir op:(Token id:Id.Redir_GreatAnd val:'2>&' span_id:30) fd:2 arg_word:{(1)})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} 
                  {(../prebuilt/libQt5_OpenGLES2.tar.xz)} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:48)
            )
          ]
          action: [(C {(cp)} {(qt5_build/libQt5_OpenGLES2.tar.xz)} {(../prebuilt)})]
          spids: [37 50]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} 
                  {(../rootfs/usr/local/lib/libaasdk.so)} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:76)
            )
          ]
          action: [(C {(cp)} {(aasdk/lib/libaasdk.so)} {(../crankshaft/rootfs/usr/local/lib)})]
          spids: [65 78]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} 
                  {(../rootfs/usr/local/lib/libaasdk_proto.so)} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:101)
            )
          ]
          action: [(C {(cp)} {(aasdk/lib/libaasdk_proto.so)} {(../crankshaft/rootfs/usr/local/lib)})]
          spids: [90 103]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} {(../rootfs/usr/local/bin/autoapp)} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:129)
            )
          ]
          action: [(C {(cp)} {(openauto/bin/autoapp)} {(../crankshaft/rootfs/usr/local/bin)})]
          spids: [118 131]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} 
                  {(../rootfs/usr/local/bin/btservice)} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:154)
            )
          ]
          action: [(C {(cp)} {(openauto/bin/btservice)} {(../crankshaft/rootfs/usr/local/bin)})]
          spids: [143 156]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} 
                  {(../rootfs/opt/crankshaft/dumb_suid)} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:182)
            )
          ]
          action: [(C {(cp)} {(../src/dumb_suid/dumb_suid)} {(../crankshaft/rootfs/opt/crankshaft)})]
          spids: [171 184]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} 
                  {(../rootfs/opt/crankshaft/gpio2kbd)} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:210)
            )
          ]
          action: [(C {(cp)} {(gpio2kbd/gpio2kbd)} {(../crankshaft/rootfs/opt/crankshaft)})]
          spids: [199 212]
        )
      ]
    )
    (C {(cd)} {($ Id.VSub_DollarName '$HOME')})
  ]
)