(CommandList
  children: [
    (AndOr children:[(C {(.)} {(./build.conf)}) (C {(exit)} {(1)})] op_id:Op_DPipe)
    (C {(.)} {(./funcs.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CWD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [29 31]
              )
            }
          spids: [28]
        )
      ]
      spids: [28]
    )
    (AndOr
      children: [
        (Pipeline
          children: [(C {(wget)} {(--help)}) (C {(grep)} {(-q)} {(SQ <'\\-\\-show\\-progress'>)})]
          negated: False
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:WGET_SHOW_PROGRESS)
              op: Equal
              rhs: {(SQ <'-q --show-progress'>)}
              spids: [49]
            )
          ]
          spids: [49]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WGET_OPT)
          op: Equal
          rhs: {(SQ <'--no-check-certificate '>) (${ VSub_Name WGET_SHOW_PROGRESS)}
          spids: [54]
        )
      ]
      spids: [54]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MWD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_CommandSub '$('>
                spids: [64 66]
              )
            }
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BUILD_LOG)
          op: Equal
          rhs: {(${ VSub_Name MWD) (/build.log)}
          spids: [68]
        )
      ]
      spids: [68]
    )
    (FuncDef
      name: log_msg
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(echo)} {(-e)} {(DQ ($ VSub_At '$@'))})
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(-e)} {(DQ ($ VSub_At '$@'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(${ VSub_Name BUILD_LOG)}
                      spids: [99]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [79]
        )
      spids: [75 78]
    )
    (FuncDef
      name: exit_error
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(log_msg)} {(DQ ($ VSub_At '$@'))})
              terminator: <Op_Semi ';'>
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
          ]
          spids: [113]
        )
      spids: [109 112]
    )
    (ForEach
      iter_name: i
      iter_words: [{($ VSub_At '$@')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$i')}
              arms: [
                (case_arm
                  pat_list: [{(clean)}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:DO_CLEAN)
                              op: Equal
                              rhs: {(1)}
                              spids: [155]
                            )
                          ]
                          spids: [155]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [152 153 162 16777215]
                )
                (case_arm
                  pat_list: [{(auto)}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:AUTO)
                              op: Equal
                              rhs: {(yes)}
                              spids: [168]
                            )
                          ]
                          spids: [168]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [165 166 175 16777215]
                )
                (case_arm
                  pat_list: [{(nopae)}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:x86_disable_pae)
                              op: Equal
                              rhs: {(yes)}
                              spids: [181]
                            )
                          ]
                          spids: [181]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [178 179 188 16777215]
                )
                (case_arm
                  pat_list: [{(pae)}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:x86_enable_pae)
                              op: Equal
                              rhs: {(yes)}
                              spids: [197]
                            )
                          ]
                          spids: [197]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [194 195 204 16777215]
                )
                (case_arm
                  pat_list: [{(i486)}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:x86_set_i486)
                              op: Equal
                              rhs: {(yes)}
                              spids: [213]
                            )
                          ]
                          spids: [213]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [210 211 220 16777215]
                )
                (case_arm
                  pat_list: [{(i686)}]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:x86_set_i686)
                              op: Equal
                              rhs: {(yes)}
                              spids: [229]
                            )
                          ]
                          spids: [229]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [226 227 236 16777215]
                )
              ]
              spids: [145 149 242]
            )
          ]
          spids: [142 244]
        )
      spids: [137 140]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$DO_CLEAN')} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Please wait...'))})
            (C {(rm)} {(-rf)} 
              (BracedWordTree
                parts: [
                  (./)
                  (BracedAltPart
                    words: [
                      {(aufs) (Lit_Other '*')}
                      {(kernel) (Lit_Other '*')}
                      {(build.log) (Lit_Other '*')}
                      {(linux-) (Lit_Other '*')}
                    ]
                  )
                ]
              )
            )
            (C {(echo)} {(DQ ('Cleaning complete'))})
            (C {(exit)} {(0)})
          ]
          spids: [16777215 257]
        )
      ]
      spids: [16777215 298]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-f)} {(build.log)} {(Lit_Other ']')})
        (C {(rm)} {(-f)} {(build.log)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-f)} {(build.log.tar.bz2)} {(Lit_Other ']')})
        (C {(mv)} {(-f)} {(build.log.) (${ VSub_Name today) (.tar.bz2)})
      ]
      op_id: Op_DAmp
    )
    (ForEach
      iter_name: app
      iter_words: [{(git)} {(gcc)} {(make)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Sentence
              child: (C {($ VSub_Name '$app')} {(--version)})
              terminator: <Op_Amp '&'>
            )
            (AndOr
              children: [
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [366]
                    )
                  ]
                )
                (C {(exit_error)} 
                  {(DQ (Lit_Other '\\') ('033[1;31m')) 
                    (DQ ($ VSub_Name '$app') (' is not installed')) (DQ (Lit_Other '\\') ('033[0m'))
                  }
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [358 386]
        )
      spids: [349 356]
    )
    (Sentence child:(C {(which)} {(mksquashfs)}) terminator:<Op_Amp '&'>)
    (AndOr
      children: [
        (SimpleCommand
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[393])]
        )
        (C {(exit_error)} 
          {(DQ (Lit_Other '\\') ('033[1;30m')) (DQ ('mksquashfs is not installed')) 
            (DQ (Lit_Other '\\') ('033[0m'))
          }
        )
      ]
      op_id: Op_DPipe
    )
    (C {(log_ver)})
    (Sentence child:(C {(which)} {(cc)}) terminator:<Op_Amp '&'>)
    (AndOr
      children: [
        (SimpleCommand
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[422])]
        )
        (C {(ln)} {(-sv)} 
          {
            (CommandSubPart
              command_list: (CommandList children:[(C {(which)} {(gcc)})])
              left_token: <Left_CommandSub '$('>
              spids: [431 435]
            )
          } {(/usr/bin/cc)}
        )
      ]
      op_id: Op_DPipe
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$AUTO'))} {(Lit_Other '=')} {(DQ (yes))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$DOTconfig_file'))} 
                  {(Lit_Other ']')}
                )
                (C {(exit_error)} {(DQ ('Must specify DOTconfig_file=<file> in build.conf'))})
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$FW_PKG_URL'))} {(Lit_Other ']')})
                (C {(exit_error)} {(DQ ('Must specify FW_PKG_URL=<url> in build.conf'))})
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [16777215 458]
        )
      ]
      spids: [16777215 498]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$JOBS'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:JOBS)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(DQ ('^processor'))} {(/proc/cpuinfo)})
                                  (C {(wc)} {(-l)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [522 536]
                      )
                    }
                  spids: [521]
                )
              ]
              spids: [521]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {($ VSub_Name '$JOBS')} {(-ge)} {(1)} {(Lit_Other ']')})
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:JOBS)
                          op: Equal
                          rhs: {(DQ (-j) (${ VSub_Name JOBS))}
                          spids: [551]
                        )
                      ]
                      spids: [551]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:JOBS) op:Equal rhs:{(DQ )} spids:[561])]
                      spids: [561]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [16777215 518]
        )
      ]
      spids: [16777215 565]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$JOBS'))} {(Lit_Other ']')})
        (AndOr
          children: [
            (C {(log_msg)} 
              {
                (DQ ('Jobs for make: ') 
                  (BracedVarSub
                    token: <VSub_Name JOBS>
                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(-j)})
                    spids: [581 585]
                  )
                )
              }
            )
            (C {(echo)})
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DOTconfig_file'))} {(-a)} {(KW_Bang '!')} {(-f)} 
                  {(DQ ($ VSub_Name '$DOTconfig_file'))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(exit_error)} 
              {
                (DQ ('File not found: ') ($ VSub_Name '$DOTconfig_file') 
                  (' (see build.conf - DOTconfig_file=)')
                )
              }
            )
          ]
          spids: [16777215 619]
        )
      ]
      spids: [16777215 630]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$DOTconfig_file'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CONFIGS_DIR)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name DOTconfig_file>
                        suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
                        spids: [651 656]
                      )
                    }
                  spids: [650]
                )
              ]
              spids: [650]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:Choice)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name DOTconfig_file>
                        suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                        spids: [663 668]
                      )
                    }
                  spids: [662]
                )
              ]
              spids: [662]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$CONFIGS_DIR'))} {(Lit_Other '=')} 
                  {(DQ ($ VSub_Name '$Choice'))} {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:CONFIGS_DIR) op:Equal rhs:{(.)} spids:[690])]
                  spids: [690]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [16777215 647]
        )
      ]
      else_action: [
        (AndOr
          children: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$AUTO'))} {(Lit_Other '=')} {(DQ (yes))} 
              {(Lit_Other ']')}
            )
            (C {(exit_error)} {(DQ ('Must specify DOTconfig_file=<file> in build.conf'))})
          ]
          op_id: Op_DAmp
        )
        (AndOr
          children: [
            (C {(Lit_Other '[')} {(-f)} {(/tmp/kernel_configs)} {(Lit_Other ']')})
            (C {(rm)} {(-f)} {(/tmp/kernel_configs)})
          ]
          op_id: Op_DAmp
        )
        (Case
          to_match: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(uname)} {(-m)})])
                left_token: <Left_CommandSub '$('>
                spids: [746 750]
              )
            }
          arms: [
            (case_arm
              pat_list: [{(i) (Lit_Other '?') (86)}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:HOST_ARCH) op:Equal rhs:{(x86)} spids:[760])]
                  spids: [760]
                )
              ]
              spids: [755 758 763 16777215]
            )
            (case_arm
              pat_list: [{(x86_64)}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:HOST_ARCH)
                      op: Equal
                      rhs: {(x86_64)}
                      spids: [769]
                    )
                  ]
                  spids: [769]
                )
              ]
              spids: [766 767 772 16777215]
            )
            (case_arm
              pat_list: [{(arm) (Lit_Other '*')}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:HOST_ARCH) op:Equal rhs:{(arm)} spids:[779])]
                  spids: [779]
                )
              ]
              spids: [775 777 782 16777215]
            )
            (case_arm
              pat_list: [{(Lit_Other '*')}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:HOST_ARCH)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(uname)} {(-m)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [789 793]
                          )
                        }
                      spids: [788]
                    )
                  ]
                  spids: [788]
                )
              ]
              spids: [785 786 795 16777215]
            )
          ]
          spids: [744 752 798]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:CONFIGS_DIR)
              op: Equal
              rhs: {(configs_) (${ VSub_Name HOST_ARCH)}
              spids: [802]
            )
          ]
          spids: [802]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:CONFIGS)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (SimpleCommand
                                words: [
                                  {(ls)}
                                  {(./) (${ VSub_Name CONFIGS_DIR) (/DOTconfig) (Lit_Other '*')}
                                ]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [820]
                                  )
                                ]
                              )
                              (C {(sed)} {(SQ <'s|.*/||'>)})
                              (C {(sort)} {(-n)})
                            ]
                            negated: False
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [810 836]
                  )
                }
              spids: [809]
            )
          ]
          spids: [809]
        )
        (C {(echo)})
        (C {(echo)} {(DQ ('Select the config file you want to use'))})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:NUM) op:Equal rhs:{(1)} spids:[853])]
          spids: [853]
        )
        (ForEach
          iter_name: C
          iter_words: [{($ VSub_Name '$CONFIGS')}]
          do_arg_iter: False
          body: 
            (DoGroup
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ (${ VSub_Name NUM) ('. ') ($ VSub_Name '$C'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(/tmp/kernel_configs)}
                      spids: [879]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:NUM)
                      op: Equal
                      rhs: 
                        {
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Plus
                                left: (ArithWord w:{($ VSub_Name '$NUM')})
                                right: (ArithWord w:{(Lit_Digits 1)})
                              )
                            spids: [885 892]
                          )
                        }
                      spids: [884]
                    )
                  ]
                  spids: [884]
                )
              ]
              spids: [866 895]
            )
          spids: [862 865]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {(-f)} {(DOTconfig)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ('d. Default - current DOTconfig (./DOTconfig)'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(/tmp/kernel_configs)}
                      spids: [919]
                    )
                  ]
                )
              ]
              spids: [16777215 910]
            )
          ]
          spids: [16777215 924]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ('n. New DOTconfig'))}]
          redirects: [
            (Redir
              op_id: Redir_DGreat
              fd: 16777215
              arg_word: {(/tmp/kernel_configs)}
              spids: [933]
            )
          ]
        )
        (C {(cat)} {(/tmp/kernel_configs)})
        (Sentence
          child: (C {(echo)} {(-n)} {(DQ ('Enter choice: '))})
          terminator: <Op_Semi ';'>
        )
        (C {(read)} {(Chosen)})
        (AndOr
          children: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$Chosen'))} {(-a)} {(KW_Bang '!')} 
              {(-f)} {(DOTconfig)} {(Lit_Other ']')}
            )
            (C {(exit_error)} 
              {(DQ (Lit_Other '\\') ('033[1;31m')) (DQ ('ERROR: invalid choice, start again!')) 
                (DQ (Lit_Other '\\') ('033[0m'))
              }
            )
          ]
          op_id: Op_DAmp
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$Chosen'))} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:Choice)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(grep)} 
                                        {(DQ ('^') ($ VSub_Name '$Chosen') (Lit_Other '\\') (.))} {(/tmp/kernel_configs)}
                                      )
                                      (C {(cut)} {(-d)} {(SQ <' '>)} {(-f2)})
                                    ]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1009 1032]
                          )
                        }
                      spids: [1008]
                    )
                  ]
                  spids: [1008]
                )
                (AndOr
                  children: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$Choice'))} {(Lit_Other ']')})
                    (C {(exit_error)} 
                      {(DQ (Lit_Other '\\') ('033[1;31m')) 
                        (DQ ('ERROR: your choice is not sane ..quiting')) (DQ (Lit_Other '\\') ('033[0m'))
                      }
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              spids: [16777215 1005]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:Choice) op:Equal rhs:{(Default)} spids:[1065])]
              spids: [1065]
            )
          ]
          spids: [1062 1069]
        )
        (C {(echo)} {(-en)} 
          {
            (DQ (Lit_Other '\\') ('nYou chose ') ($ VSub_Name '$Choice') ('. \n') 
              ('If this is ok hit ENTER, if not hit CTRL|C to quit: ')
            )
          }
        )
        (C {(read)} {(oknow)})
      ]
      spids: [693 1090]
    )
    (Case
      to_match: {($ VSub_Name '$Choice')}
      arms: [
        (case_arm
          pat_list: [{(Default)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kver)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(SQ <'kernel_version='>)} {(DOTconfig)})
                                  (C {(head)} {(-1)})
                                  (C {(tr)} {(-s)} {(SQ <' '>)})
                                  (C {(cut)} {(-d)} {(SQ <'='>)} {(-f2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1105 1141]
                      )
                    }
                  spids: [1104]
                )
              ]
              spids: [1104]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$kver'))} {(Lit_Other '=')} {(DQ )} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$kernel_ver'))} 
                                  {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} {(-n)} {(DQ ('Enter kernel version for DOTconfig: '))})
                            (C {(read)} {(kernel_version)})
                            (AndOr
                              children: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {($ VSub_Name '$kernel_version')} 
                                  {(Lit_Other ']')}
                                )
                                (AndOr
                                  children: [(C {(echo)} {(DQ (ERROR))}) (C {(exit)} {(1)})]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('kernel_version=') (${ VSub_Name kernel_version))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(DOTconfig)}
                                  spids: [1230]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 1181]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:kernel_version)
                              op: Equal
                              rhs: {(${ VSub_Name kernel_ver)}
                              spids: [1238]
                            )
                          ]
                          spids: [1238]
                        )
                      ]
                      spids: [1235 1247]
                    )
                  ]
                  spids: [16777215 1161]
                )
              ]
              spids: [16777215 1250]
            )
          ]
          spids: [1100 1101 1253 16777215]
        )
        (case_arm
          pat_list: [{(New)}]
          action: [
            (C {(rm)} {(-f)} {(DOTconfig)})
            (C {(echo)} {(-n)} {(DQ ('Enter kernel version (ex: 3.14.73) : '))})
            (C {(read)} {(kernel_version)})
          ]
          spids: [1256 1257 1281 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Case
              to_match: {(DQ ($ VSub_Name '$Choice'))}
              arms: [
                (case_arm
                  pat_list: [{(DOTconfig-) (Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [{(read)} {(dconf)} {(kernel_version)} {(kernel_version_info)}]
                      redirects: [
                        (Redir
                          op_id: Redir_TLess
                          fd: 16777215
                          arg_word: {(${ VSub_Name CONFIGS_DIR) (/) ($ VSub_Name '$Choice')}
                          spids: [1312]
                        )
                      ]
                      more_env: [(env_pair name:IFS val:{(-)} spids:[1301])]
                    )
                  ]
                  spids: [1296 1298 1320 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kernel_version)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [1326]
                        )
                      ]
                      spids: [1326]
                    )
                  ]
                  spids: [1323 1324 1330 16777215]
                )
              ]
              spids: [1288 1294 1333]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$kernel_version'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kver)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(grep)} {(SQ <'kernel_version='>)} 
                                            {(${ VSub_Name CONFIGS_DIR) (/) ($ VSub_Name '$Choice')}
                                          )
                                          (C {(head)} {(-1)})
                                          (C {(tr)} {(-s)} {(SQ <' '>)})
                                          (C {(cut)} {(-d)} {(SQ <'='>)} {(-f2)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1354 1394]
                              )
                            }
                          spids: [1353]
                        )
                      ]
                      spids: [1353]
                    )
                    (C {(sed)} {(-i)} {(SQ <'/^kernel_version/d'>)} 
                      {(${ VSub_Name CONFIGS_DIR) (/) ($ VSub_Name '$Choice')}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kernel_version)
                          op: Equal
                          rhs: {(${ VSub_Name kver)}
                          spids: [1412]
                        )
                      ]
                      spids: [1412]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$kernel_ver'))} {(Lit_Other ']')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:kernel_version)
                              op: Equal
                              rhs: {(${ VSub_Name kernel_ver)}
                              spids: [1428]
                            )
                          ]
                          spids: [1428]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$kernel_version'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('kernel_version=') (${ VSub_Name kernel_version))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(DOTconfig)}
                                  spids: [1461]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [
                                {(echo)}
                                {(DQ ('kernel_version_info=') (${ VSub_Name kernel_version_info))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(DOTconfig)}
                                  spids: [1475]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 1449]
                        )
                      ]
                      else_action: [
                        (AndOr
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$AUTO'))} {(Lit_Other '=')} 
                              {(DQ (yes))} {(Lit_Other ']')}
                            )
                            (C {(exit_error)} {(DQ ('Must specify kernel_ver=<version> in build.conf'))})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [1480 1506]
                    )
                  ]
                  spids: [16777215 1350]
                )
              ]
              spids: [16777215 1509]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {(DQ (${ VSub_Name CONFIGS_DIR) (/) ($ VSub_Name '$Choice'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (./DOTconfig))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(cp)} {(-afv)} {(${ VSub_Name CONFIGS_DIR) (/) ($ VSub_Name '$Choice')} 
                      {(DOTconfig)}
                    )
                  ]
                  spids: [16777215 1535]
                )
              ]
              spids: [16777215 1551]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$package_name_suffix'))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:package_name_suffix)
                      op: Equal
                      rhs: {(${ VSub_Name kinfo)}
                      spids: [1566]
                    )
                  ]
                  spids: [1566]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [1284 1285 1572 16777215]
        )
      ]
      spids: [1093 1097 1574]
    )
    (C {(log_msg)} {(DQ ('kernel_version=') (${ VSub_Name kernel_version))})
    (C {(log_msg)} {(DQ ('kernel_version_info=') (${ VSub_Name kernel_version_info))})
    (Case
      to_match: {(DQ ($ VSub_Name '$kernel_version'))}
      arms: [
        (case_arm
          pat_list: [{(3.) (Lit_Other '*')} {(4.) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ok) op:Equal rhs:{(1)} spids:[1611])]
              spids: [1611]
            )
          ]
          spids: [1604 1609 1614 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(C {(exit_error)} {(DQ ('ERROR: Unsupported kernel version'))})]
          spids: [1620 1621 1629 16777215]
        )
      ]
      spids: [1595 1601 1631]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$Choice'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ (New))} {(-a)} {(KW_Bang '!')} {(-f)} {(DOTconfig)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(exit_error)} 
              {(DQ (Lit_Other '\\') ('033[1;31m')) (DQ ('ERROR: No DOTconfig found ..quiting')) 
                (DQ (Lit_Other '\\') ('033[0m'))
              }
            )
          ]
          spids: [16777215 1661]
        )
      ]
      spids: [16777215 1678]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FW_URL)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name FW_URL>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: 
                      {('http:') (Lit_Slash /) (Lit_Slash /) (distro.ibiblio.org) (Lit_Slash /) 
                        (puppylinux) (Lit_Slash /) (firmware)
                      }
                  )
                spids: [1685 1696]
              )
            }
          spids: [1684]
        )
      ]
      spids: [1684]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:aufs_git_3)
          op: Equal
          rhs: {(DQ ('git://git.code.sf.net/p/aufs/aufs3-standalone.git'))}
          spids: [1701]
        )
      ]
      spids: [1701]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:aufs_git_4)
          op: Equal
          rhs: {(DQ ('git://github.com/sfjro/aufs4-standalone.git'))}
          spids: [1706]
        )
      ]
      spids: [1706]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$kernel_mirrors'))} {(Lit_Other ']')})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:kernel_mirrors)
              op: Equal
              rhs: {(DQ ('ftp://www.kernel.org/pub/linux/kernel'))}
              spids: [1723]
            )
          ]
          spids: [1723]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ksubdir_3) op:Equal rhs:{(v3.x)} spids:[1728])]
      spids: [1728]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ksubdir_4) op:Equal rhs:{(v4.x)} spids:[1734])]
      spids: [1734]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:rn)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Plus
                    left: 
                      (ArithBinary
                        op_id: Arith_Percent
                        left: (ArithVarRef name:RANDOM)
                        right: 
                          (ArithWord
                            w: 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name '$kernel_mirrors'))})
                                            (C {(wc)} {(-l)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [1749 1761]
                                )
                              }
                          )
                      )
                    right: (ArithWord w:{(Lit_Digits 1)})
                  )
                spids: [1741 1770]
              )
            }
          spids: [1740]
        )
      ]
      spids: [1740]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(0)} spids:[1772])]
      spids: [1772]
    )
    (ForEach
      iter_name: i
      iter_words: [{($ VSub_Name '$kernel_mirrors')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:x)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithVarRef name:x)
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                        spids: [1789 1794]
                      )
                    }
                  spids: [1788]
                )
              ]
              spids: [1788]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {($ VSub_Name '$x')} {(-eq)} {($ VSub_Name '$rn')} {(Lit_Other ']')})
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:first)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$i'))}
                          spids: [1809]
                        )
                      ]
                      spids: [1809]
                    )
                    (ControlFlow token:<ControlFlow_Continue continue>)
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:km)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$km') (' ') ($ VSub_Name '$i'))}
                  spids: [1819]
                )
              ]
              spids: [1819]
            )
          ]
          spids: [1785 1826]
        )
      spids: [1780 1783]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:kernel_mirrors)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$first') (' ') ($ VSub_Name '$km'))}
          spids: [1828]
        )
      ]
      spids: [1828]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-f)} {(/etc/DISTRO_SPECS)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(.)} {(/etc/DISTRO_SPECS)})
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$package_name_suffix'))} 
                  {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:package_name_suffix)
                      op: Equal
                      rhs: {(${ VSub_Name DISTRO_FILE_PREFIX)}
                      spids: [1871]
                    )
                  ]
                  spids: [1871]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [16777215 1851]
        )
      ]
      spids: [16777215 1876]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-f)} {(DOTconfig)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence child:(C {(echo)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(tail)} {(-n10)} {(README)}) terminator:<Op_Semi ';'>)
            (C {(echo)})
            (ForEach
              iter_name: i
              iter_words: [
                {(Lit_VarLike 'CONFIG_AUFS_FS=') (y)}
                {(Lit_VarLike 'CONFIG_NLS_CODEPAGE_850=') (y)}
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(grep)} {(-q)} {(DQ ($ VSub_Name '$i'))} {(DOTconfig)})
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(echo)} {(DQ ($ VSub_Name '$i') (' is ok'))})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Continue continue>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [1937]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (C {(echo)} {(-e)} 
                      {(DQ (Lit_Other '\\') ('033[1;31m')) 
                        (DQ (Lit_Other '\\') 
                          (
'n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   WARNING     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
                          ) (Lit_Other '\\') (n)
                        ) (DQ (Lit_Other '\\') ('033[0m'))
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$i'))} {(Lit_Other '=')} 
                                  {(DQ ('CONFIG_AUFS_FS=y'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(log_msg)} 
                              {(DQ ('For your kernel to boot AUFS as a built in is required:'))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fs_msg)
                                  op: Equal
                                  rhs: {(DQ ('File systems -> Miscellaneous filesystems -> AUFS'))}
                                  spids: [2003]
                                )
                              ]
                              spids: [2003]
                            )
                          ]
                          spids: [16777215 1993]
                        )
                      ]
                      else_action: [
                        (C {(log_msg)} {(DQ ('For NLS to work at boot some configs are required:'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fs_msg)
                              op: Equal
                              rhs: {(DQ ('NLS Support'))}
                              spids: [2019]
                            )
                          ]
                          spids: [2019]
                        )
                      ]
                      spids: [2009 2025]
                    )
                    (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                    (AndOr
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                            (C {(grep)} {(-q)} {(DQ ('CONFIG_NLS_CODEPAGE_850=y'))})
                          ]
                          negated: False
                        )
                        (C {(echo)} {(DQ ('CONFIG_NLS_CODEPAGE_852=y'))})
                      ]
                      op_id: Op_DAmp
                    )
                    (C {(log_msg)} 
                      {
                        (DQ ('Make sure you enable this when you are given the opportunity after\n') 
                          ('\tthe kernel has downloaded and been patched.\n') ("\tLook under ' ") ($ VSub_Name '$fs_msg') ("'\n") ('\t')
                        )
                      }
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$AUTO'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')}
                        )
                        (AndOr
                          children: [(C {(echo)} {(-n)} {(DQ ('PRESS ENTER'))}) (C {(read)} {(zzz)})]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [1922 2102]
                )
              spids: [1914 16777215]
            )
          ]
          spids: [16777215 1891]
        )
      ]
      spids: [16777215 2104]
    )
    (C {(echo)})
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$AUTO'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} 
          {(Lit_Other ']')}
        )
        (C {(read)} {(-p)} {(DQ ('Press ENTER to begin'))} {(dummy)})
      ]
      op_id: Op_DAmp
    )
    (SimpleCommand
      words: [
        {(read)}
        {(-r)}
        {(kernel_series)}
        {(kernel_major_version)}
        {(kernel_minor_version)}
        {(kernel_minor_revision)}
      ]
      redirects: [
        (Redir
          op_id: Redir_TLess
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name kernel_version))}
          spids: [2168]
        )
      ]
      more_env: [(env_pair name:IFS val:{(.)} spids:[2147])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:kernel_branch)
          op: Equal
          rhs: {(${ VSub_Name kernel_major_version)}
          spids: [2177]
        )
      ]
      spids: [2177]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:kernel_major_version)
          op: Equal
          rhs: {(${ VSub_Name kernel_series) (.) (${ VSub_Name kernel_major_version)}
          spids: [2185]
        )
      ]
      spids: [2185]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:aufs_version)
          op: Equal
          rhs: {(${ VSub_Name kernel_series)}
          spids: [2197]
        )
      ]
      spids: [2197]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$kernel_minor_version'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kmv)
                  op: Equal
                  rhs: {(.) (${ VSub_Name kernel_minor_version)}
                  spids: [2220]
                )
              ]
              spids: [2220]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kernel_tarball_version)
                  op: Equal
                  rhs: {(${ VSub_Name kernel_version)}
                  spids: [2227]
                )
              ]
              spids: [2227]
            )
          ]
          spids: [16777215 2217]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:kmv) op:Equal rhs:{(DQ (.0))} spids:[2239])]
          spids: [2239]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:kernel_version)
              op: Equal
              rhs: {(${ VSub_Name kernel_major_version) (${ VSub_Name kmv)}
              spids: [2245]
            )
          ]
          spids: [2245]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:kernel_tarball_version)
              op: Equal
              rhs: {(${ VSub_Name kernel_major_version)}
              spids: [2254]
            )
          ]
          spids: [2254]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:FIX_KERNEL_VER) op:Equal rhs:{(yes)} spids:[2260])]
          spids: [2260]
        )
      ]
      spids: [2232 2263]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$kernel_minor_revision'))} {(Lit_Other ']')})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:kmr)
              op: Equal
              rhs: {(.) (${ VSub_Name kernel_minor_revision)}
              spids: [2275]
            )
          ]
          spids: [2275]
        )
      ]
      op_id: Op_DAmp
    )
    (C {(log_msg)} 
      {(DQ ('Linux: ') (${ VSub_Name kernel_major_version) (${ VSub_Name kmv) (${ VSub_Name kmr))}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(KW_Bang '!')} {($ VSub_Name '$aufsv')} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:AUFS_BRANCHES)
                  op: Equal
                  rhs: 
                    {
                      (SQ 
                        <
'aufs3.0 aufs3.1 aufs3.11 aufs3.13 aufs3.15 aufs3.16 aufs3.17 aufs3.19 aufs3.3 aufs3.4 aufs3.5 aufs3.6 aufs3.7 aufs3.8 aufs3.9 aufs4.0 aufs4.2 aufs4.3 aufs4.4 aufs4.5 aufs4.6 aufs4.7 aufs4.8 aufs4.9 aufs4.10'
                        >
                      )
                    }
                  spids: [2316]
                )
              ]
              spids: [2316]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Subshell
                          child: 
                            (Pipeline
                              children: [
                                (C {(echo)} {(DQ ($ VSub_Name '$AUFS_BRANCHES'))})
                                (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                (C {(grep)} {(-q)} 
                                  {
                                    (DQ ('^aufs') (${ VSub_Name kernel_major_version) (Lit_Other '$'))
                                  }
                                )
                              ]
                              negated: False
                            )
                          spids: [2324 2358]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(${ VSub_Name kernel_major_version)}
                          spids: [2365]
                        )
                      ]
                      spids: [2365]
                    )
                  ]
                  spids: [16777215 2362]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name kernel_major_version))} 
                          {(Lit_Other '=')} {(DQ (3.2))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(SQ <3.2>)}
                          spids: [2398]
                        )
                      ]
                      spids: [2398]
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.2.30)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <3.2.x>)}
                              spids: [2419]
                            )
                          ]
                          spids: [2419]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [2375 2395]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name kernel_major_version))} 
                          {(Lit_Other '=')} {(DQ (3.10))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(SQ <3.10>)}
                          spids: [2448]
                        )
                      ]
                      spids: [2448]
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.10.26)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <3.10.x>)}
                              spids: [2466]
                            )
                          ]
                          spids: [2466]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [2425 2445]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name kernel_major_version))} 
                          {(Lit_Other '=')} {(DQ (3.12))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(SQ <3.12>)}
                          spids: [2495]
                        )
                      ]
                      spids: [2495]
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.12.7)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <3.12.x>)}
                              spids: [2513]
                            )
                          ]
                          spids: [2513]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.12.31)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <'3.12.31+'>)}
                              spids: [2531]
                            )
                          ]
                          spids: [2531]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [2472 2492]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name kernel_major_version))} 
                          {(Lit_Other '=')} {(DQ (3.14))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(SQ <3.14>)}
                          spids: [2560]
                        )
                      ]
                      spids: [2560]
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.14.21)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <'3.14.21+'>)}
                              spids: [2578]
                            )
                          ]
                          spids: [2578]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.14.40)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <'3.14.40+'>)}
                              spids: [2596]
                            )
                          ]
                          spids: [2596]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [2537 2557]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name kernel_major_version))} 
                          {(Lit_Other '=')} {(DQ (3.18))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(SQ <3.18>)}
                          spids: [2625]
                        )
                      ]
                      spids: [2625]
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.18.1)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <'3.18.1+'>)}
                              spids: [2643]
                            )
                          ]
                          spids: [2643]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(3.18.25)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <'3.18.25+'>)}
                              spids: [2661]
                            )
                          ]
                          spids: [2661]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [2602 2622]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name kernel_major_version))} 
                          {(Lit_Other '=')} {(DQ (4.1))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aufsv)
                          op: Equal
                          rhs: {(SQ <4.1>)}
                          spids: [2690]
                        )
                      ]
                      spids: [2690]
                    )
                    (AndOr
                      children: [
                        (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(4.1.13)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:aufsv)
                              op: Equal
                              rhs: {(SQ <'4.1.13+'>)}
                              spids: [2708]
                            )
                          ]
                          spids: [2708]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [2667 2687]
                )
              ]
              spids: [16777215 2714]
            )
          ]
          spids: [16777215 2313]
        )
      ]
      spids: [16777215 2716]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {($ VSub_Name '$aufsv')} {(Lit_Other ']')})
        (C {(exit_error)} {(DQ ("You must specify 'aufsv=version' in build.conf"))})
      ]
      op_id: Op_DPipe
    )
    (C {(log_msg)} {(DQ ('aufs=') ($ VSub_Name '$aufsv'))})
    (Case
      to_match: {($ VSub_Name '$kernel_series')}
      arms: [
        (case_arm
          pat_list: [{(3)}]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ksubdir)
                      op: Equal
                      rhs: {(${ VSub_Name ksubdir_3)}
                      spids: [2754]
                    )
                  ]
                  spids: [2754]
                )
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aufs_git)
                      op: Equal
                      rhs: {(${ VSub_Name aufs_git_3)}
                      spids: [2761]
                    )
                  ]
                  spids: [2761]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aufs_git_dir)
                  op: Equal
                  rhs: {(aufs3_sources_git)}
                  spids: [2768]
                )
              ]
              spids: [2768]
            )
          ]
          spids: [2751 2752 2771 16777215]
        )
        (case_arm
          pat_list: [{(4)}]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ksubdir)
                      op: Equal
                      rhs: {(${ VSub_Name ksubdir_4)}
                      spids: [2777]
                    )
                  ]
                  spids: [2777]
                )
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aufs_git)
                      op: Equal
                      rhs: {(${ VSub_Name aufs_git_4)}
                      spids: [2784]
                    )
                  ]
                  spids: [2784]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aufs_git_dir)
                  op: Equal
                  rhs: {(aufs4_sources_git)}
                  spids: [2791]
                )
              ]
              spids: [2791]
            )
          ]
          spids: [2774 2775 2794 16777215]
        )
      ]
      spids: [2744 2748 2796]
    )
    (C {(rm)} {(-rf)} {(output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH)})
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(sources/kernels)} {(Lit_Other ']')})
        (C {(mkdir)} {(-p)} {(sources/kernels)})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
          {(output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH)} {(Lit_Other ']')}
        )
        (C {(mkdir)} {(-p)} 
          {(output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH)}
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(output)} {(Lit_Other ']')})
        (C {(mkdir)} {(-p)} {(output)})
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:today)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(date)} 
                        {(Lit_Other '+') (Lit_Other '%') (d) (Lit_Other '%') (m) (Lit_Other '%') (y)}
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [2888 2898]
              )
            }
          spids: [2887]
        )
      ]
      spids: [2887]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:testing) op:Equal rhs:{(SQ )} spids:[2914])]
      spids: [2914]
    )
    (AndOr
      children: [
        (Pipeline
          children: [
            (C {(echo)} 
              {
                (BracedVarSub
                  token: <VSub_Name kernel_version>
                  suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*-')})
                  spids: [2918 2922]
                )
              }
            )
            (C {(grep)} {(-q)} {(DQ (rc))})
          ]
          negated: False
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:testing) op:Equal rhs:{(/testing)} spids:[2936])]
          spids: [2936]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DOWNLOAD_KERNEL) op:Equal rhs:{(1)} spids:[2940])]
      spids: [2940]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-f)} 
          {(sources/kernels/linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz)} {(Lit_Other ']')}
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:DOWNLOAD_KERNEL) op:Equal rhs:{(0)} spids:[2957])]
          spids: [2957]
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-f)} 
                  {(sources/kernels/linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz.md5.txt)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cd)} {(sources/kernels)})
            (C {(md5sum)} {(-c)} {(linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz.md5.txt)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(log_msg)} {(DQ ('md5sum FAILED: will resume kernel download...'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_KERNEL)
                          op: Equal
                          rhs: {(1)}
                          spids: [3019]
                        )
                      ]
                      spids: [3019]
                    )
                  ]
                  spids: [16777215 3009]
                )
              ]
              spids: [16777215 3023]
            )
            (C {(cd)} {($ VSub_Name '$MWD')})
          ]
          spids: [16777215 2976]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:DOWNLOAD_KERNEL) op:Equal rhs:{(1)} spids:[3033])]
          spids: [3033]
        )
      ]
      spids: [3030 3036]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Name '$DOWNLOAD_KERNEL')} {(-eq)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:KERROR) op:Equal rhs:{(1)} spids:[3056])]
              spids: [3056]
            )
            (ForEach
              iter_name: kernel_mirror
              iter_words: [{($ VSub_Name '$kernel_mirrors')}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kernel_mirror)
                          op: Equal
                          rhs: {(${ VSub_Name kernel_mirror) (/) (${ VSub_Name ksubdir)}
                          spids: [3073]
                        )
                      ]
                      spids: [3073]
                    )
                    (C {(log_msg)} 
                      {
                        (DQ ('Downloading: ') (${ VSub_Name kernel_mirror) (${ VSub_Name testing) 
                          (/linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz)
                        )
                      }
                    )
                    (SimpleCommand
                      words: [
                        {(wget)}
                        {(${ VSub_Name WGET_OPT)}
                        {(-c)}
                        {(-P)}
                        {(sources/kernels)}
                        {(${ VSub_Name kernel_mirror) (${ VSub_Name testing) (/linux-) 
                          (${ VSub_Name kernel_tarball_version) (.tar.xz)
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(${ VSub_Name BUILD_LOG)}
                          spids: [3125]
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(echo)} {(DQ (Error))})]
                          spids: [16777215 3146]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:KERROR)
                              op: Equal
                              rhs: {(SQ )}
                              spids: [3159]
                            )
                          ]
                          spids: [3159]
                        )
                        (ControlFlow token:<ControlFlow_Break break>)
                      ]
                      spids: [3156 3165]
                    )
                  ]
                  spids: [3070 3168]
                )
              spids: [3065 3068]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {($ VSub_Name '$KERROR')} {(Lit_Other ']')})
                (C {(exit)} {(1)})
              ]
              op_id: Op_DAmp
            )
            (C {(cd)} {(sources/kernels)})
            (SimpleCommand
              words: [{(md5sum)} {(linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz.md5.txt)}
                  spids: [3197]
                )
              ]
            )
            (SimpleCommand
              words: [{(sha256sum)} {(linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz.sha256.txt)}
                  spids: [3214]
                )
              ]
            )
            (C {(cd)} {($ VSub_Name '$MWD')})
          ]
          spids: [16777215 3053]
        )
      ]
      spids: [16777215 3227]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$LIBRE')} {(-eq)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:minor_version)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name kernel_version>
                        suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*.')})
                        spids: [3251 3255]
                      )
                    }
                  spids: [3250]
                )
              ]
              spids: [3250]
            )
            (ForEach
              iter_name: i
              iter_words: [{(deblob-) (${ VSub_Name kernel_major_version)} {(deblob-check)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                  {(sources/kernels/) ($ VSub_Name '$i')} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(wget)} {(${ VSub_Name WGET_OPT)} {(-O)} 
                              {(sources/kernels/) ($ VSub_Name '$i')} 
                              {(http) (Lit_Other ':') 
                                (//linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-) (${ VSub_Name kernel_major_version) (.N/) ($ VSub_Name '$i')
                              }
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                                (C {(exit_error)} 
                                  {(DQ ('Error: failed to download ') ($ VSub_Name '$i') (.))}
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [16777215 3290]
                        )
                      ]
                      spids: [16777215 3335]
                    )
                  ]
                  spids: [3272 3338]
                )
              spids: [3263 3270]
            )
          ]
          spids: [16777215 3247]
        )
      ]
      spids: [16777215 3340]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(/tmp/) (${ VSub_Name aufs_git_dir) (_done)} 
                  {(-o)} {(KW_Bang '!')} {(-d)} {(sources/) (${ VSub_Name aufs_git_dir) (/.git)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cd)} {(sources)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(${ VSub_Name aufs_git_dir) (/.git)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(git)} {(clone)} {(${ VSub_Name aufs_git)} {(${ VSub_Name aufs_git_dir)})
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                        (C {(exit_error)} {(DQ ('Error: failed to download the Aufs sources.'))})
                      ]
                      op_id: Op_DAmp
                    )
                    (C {(touch)} {(/tmp/) (${ VSub_Name aufs_git_dir) (_done)})
                  ]
                  spids: [16777215 3401]
                )
              ]
              else_action: [
                (C {(cd)} {(${ VSub_Name aufs_git_dir)})
                (C {(git)} {(pull)} {(--all)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (AndOr
                          children: [
                            (C {(log_msg)} {(DQ ("WARNING: 'git pull --all' command failed"))})
                            (C {(sleep)} {(5)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [16777215 3476]
                    )
                  ]
                  else_action: [(C {(touch)} {(/tmp/) (${ VSub_Name aufs_git_dir) (_done)})]
                  spids: [3492 3504]
                )
              ]
              spids: [3445 3507]
            )
            (C {(cd)} {($ VSub_Name '$MWD')})
          ]
          spids: [16777215 3376]
        )
      ]
      spids: [16777215 3514]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(/tmp/aufs-util_done)} {(-o)} {(KW_Bang '!')} 
                  {(-d)} {(sources/aufs-util_git/.git)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cd)} {(sources)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(aufs-util_git/.git)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(log_msg)} {(DQ ('Downloading aufs-utils for userspace'))})
                    (AndOr
                      children: [
                        (C {(git)} {(clone)} 
                          {(git) (Lit_Other ':') (//git.code.sf.net/p/aufs/aufs-util.git)} {(aufs-util_git)}
                        )
                        (SimpleCommand
                          words: [
                            {(git)}
                            {(clone)}
                            {(https) (Lit_Other ':') (//git.code.sf.net/p/aufs/aufs-util)}
                            {(aufs-util_git)}
                          ]
                          more_env: [(env_pair name:GIT_SSL_NO_VERIFY val:{(true)} spids:[3588])]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                        (C {(exit_error)} {(DQ ('Error: failed to download the Aufs utils...'))})
                      ]
                      op_id: Op_DAmp
                    )
                    (C {(touch)} {(/tmp/aufs-util_done)})
                  ]
                  spids: [16777215 3564]
                )
              ]
              else_action: [
                (C {(cd)} {(aufs-util_git)})
                (C {(git)} {(pull)} {(--all)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (AndOr
                          children: [
                            (C {(log_msg)} {(DQ ("WARNING: 'git pull --all' command failed"))})
                            (C {(sleep)} {(5)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      spids: [16777215 3655]
                    )
                  ]
                  else_action: [(C {(touch)} {(/tmp/aufs-util_done)})]
                  spids: [3671 3679]
                )
              ]
              spids: [3626 3682]
            )
            (C {(cd)} {($ VSub_Name '$MWD')})
          ]
          spids: [16777215 3542]
        )
      ]
      spids: [16777215 3689]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FW_PKG_URL'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fw_pkg)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name FW_PKG_URL>
                        suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                        spids: [3711 3716]
                      )
                    }
                  spids: [3710]
                )
              ]
              spids: [3710]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FDRV)
                  op: Equal
                  rhs: 
                    {(fdrv.sfs-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix)}
                  spids: [3722]
                )
              ]
              spids: [3722]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(sources/) (${ VSub_Name fw_pkg)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                  {(DQ ($ VSub_Name '$FW_PKG_URL'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(log_msg)} {(DQ ('Downloading ') ($ VSub_Name '$FW_PKG_URL'))})
                            (C {(wget)} {(${ VSub_Name WGET_OPT)} {(-c)} {(${ VSub_Name FW_PKG_URL)} 
                              {(-P)} {(sources)}
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                                (C {(exit_error)} {(DQ ('failed to download ') (${ VSub_Name fw_pkg))})
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [16777215 3769]
                        )
                      ]
                      spids: [16777215 3822]
                    )
                  ]
                  spids: [16777215 3750]
                )
              ]
              spids: [16777215 3825]
            )
          ]
          spids: [16777215 3707]
        )
      ]
      else_action: [
        (C {(echo)})
        (C {(log_msg)} {(DQ ('-- Pausing'))})
        (C {(log_msg)} {(DQ ('Extra firmware to be added after compiling the kernel'))})
        (C {(echo)} {(DQ ('Choose an option (generating list...):'))})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:tmpfw)
              op: Equal
              rhs: {(/tmp/fw) ($ VSub_Dollar '$$')}
              spids: [3862]
            )
          ]
          spids: [3862]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{(1)} spids:[3867])]
          spids: [3867]
        )
        (Pipeline
          children: [
            (C {(wget)} {(-q)} {(${ VSub_Name FW_URL)} {(-O)} {(-)})
            (C {(sed)} {(SQ <'/href/!d; /\\.tar\\./!d; /md5\\.txt/d; s/.*href="//; s/".*//'>)})
            (While
              cond: [(Sentence child:(C {(read)} {(f)}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$f'))} {(Lit_Other ']')})
                        (SimpleCommand
                          words: [{(echo)} {(DQ ($ VSub_Name '$x') (' ') ($ VSub_Name '$f'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(${ VSub_Name tmpfw)}
                              spids: [3924]
                            )
                          ]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:x)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Plus
                                    left: (ArithWord w:{($ VSub_Name '$x')})
                                    right: (ArithWord w:{(Lit_Digits 1)})
                                  )
                                spids: [3932 3940]
                              )
                            }
                          spids: [3931]
                        )
                      ]
                      spids: [3931]
                    )
                  ]
                  spids: [3903 3943]
                )
            )
          ]
          negated: False
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:y)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [(C {(cat)} {(${ VSub_Name tmpfw)}) (C {(wc)} {(-l)})]
                            negated: False
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [3947 3960]
                  )
                }
              spids: [3946]
            )
          ]
          spids: [3946]
        )
        (AndOr
          children: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$y'))} {(Lit_Other '=')} {(0)} {(Lit_Other ']')})
            (C {(echo)} {(DQ ('WARNING: no firmware at that URL'))})
          ]
          op_id: Op_DAmp
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:x)
              op: Equal
              rhs: 
                {
                  (ArithSubPart
                    anode: 
                      (ArithBinary
                        op_id: Arith_Plus
                        left: (ArithWord w:{($ VSub_Name '$x')})
                        right: (ArithWord w:{($ VSub_Name '$y')})
                      )
                    spids: [3988 3995]
                  )
                }
              spids: [3987]
            )
          ]
          spids: [3987]
        )
        (SimpleCommand
          words: [{(echo)} {(DQ ($ VSub_Name '$x') (" I'll copy in my own."))}]
          redirects: [
            (Redir
              op_id: Redir_DGreat
              fd: 16777215
              arg_word: {(${ VSub_Name tmpfw)}
              spids: [4005]
            )
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:x)
              op: Equal
              rhs: 
                {
                  (ArithSubPart
                    anode: 
                      (ArithBinary
                        op_id: Arith_Plus
                        left: (ArithWord w:{($ VSub_Name '$x')})
                        right: (ArithWord w:{(Lit_Digits 1)})
                      )
                    spids: [4013 4020]
                  )
                }
              spids: [4012]
            )
          ]
          spids: [4012]
        )
        (SimpleCommand
          words: [
            {(echo)}
            {(DQ ($ VSub_Name '$x') (" I'll grab the latest firmware from kernel.org. (slow)"))}
          ]
          redirects: [
            (Redir
              op_id: Redir_DGreat
              fd: 16777215
              arg_word: {(${ VSub_Name tmpfw)}
              spids: [4030]
            )
          ]
        )
        (C {(cat)} {(${ VSub_Name tmpfw)})
        (C {(echo)} {(-n)} {(DQ ('Enter a number, 1 to ') ($ VSub_Name '$x') (':  '))})
        (C {(read)} {(fw)})
        (Case
          to_match: {($ VSub_Name '$fw')}
          arms: [
            (case_arm
              pat_list: [{(Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')}]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:ok) op:Equal rhs:{(1)} spids:[4073])]
                  spids: [4073]
                )
              ]
              spids: [4067 4071 4076 16777215]
            )
            (case_arm
              pat_list: [{(Lit_Other '*')}]
              action: [
                (C {(log_msg)} 
                  {
                    (DQ ('invalid option... falling back to option ') 
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Minus
                            left: (ArithWord w:{($ VSub_Name '$x')})
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                        spids: [4086 4093]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:fw)
                      op: Equal
                      rhs: 
                        {
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Minus
                                left: (ArithWord w:{($ VSub_Name '$x')})
                                right: (ArithWord w:{(Lit_Digits 1)})
                              )
                            spids: [4098 4105]
                          )
                        }
                      spids: [4097]
                    )
                  ]
                  spids: [4097]
                )
              ]
              spids: [4079 4080 4108 16777215]
            )
          ]
          spids: [4060 4064 4111]
        )
        (C {(echo)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$fw'))} {(-gt)} {(DQ ($ VSub_Name '$x'))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(exit_error)} {(DQ ('error, wrong number'))})]
              spids: [16777215 4139]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$fw'))} {(Lit_Other '=')} 
                      {
                        (DQ 
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Minus
                                left: (ArithWord w:{($ VSub_Name '$x')})
                                right: (ArithWord w:{(Lit_Digits 1)})
                              )
                            spids: [4160 4167]
                          )
                        )
                      } {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:FIRMWARE_OPT)
                      op: Equal
                      rhs: {(manual)}
                      spids: [4177]
                    )
                  ]
                  spids: [4177]
                )
                (C {(log_msg)} {(DQ ('you will manually add firmware after the kernel is compiled'))})
                (C {(sleep)} {(6)})
              ]
              spids: [4149 4174]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$fw'))} {(Lit_Other '=')} 
                      {(DQ ($ VSub_Name '$x'))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:FIRMWARE_OPT)
                      op: Equal
                      rhs: {(git)}
                      spids: [4214]
                    )
                  ]
                  spids: [4214]
                )
                (C {(echo)} {(DQ ('You have chosen to get the latest firmware from kernel.org'))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(Lit_Other '[')} {(-e)} {(../linux-firmware)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-d)} {(../linux-firmware)} {(-a)} 
                                      {(KW_Bang '!')} {(-h)} {(../linux-firmware)} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-e)} {(../../local-repositories)} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(echo)} {(DQ ('  wait while we move the repository...'))})
                                        (C {(mv)} {(-f)} {(../linux-firmware)} 
                                          {(../../local-repositories)}
                                        )
                                        (Subshell
                                          child: 
                                            (CommandList
                                              children: [
                                                (Sentence
                                                  child: (C {(cd)} {(..)})
                                                  terminator: <Op_Semi ';'>
                                                )
                                                (C {(ln)} {(-snf)} 
                                                  {(../local-repositories/linux-firmware)} {(.)}
                                                )
                                              ]
                                            )
                                          spids: [4300 4316]
                                        )
                                        (C {(echo)} {(DQ ('  repo moved!'))})
                                      ]
                                      spids: [16777215 4281]
                                    )
                                  ]
                                  spids: [16777215 4326]
                                )
                              ]
                              spids: [16777215 4265]
                            )
                          ]
                          spids: [16777215 4329]
                        )
                        (C {(cd)} {(../linux-firmware)})
                        (C {(echo)} {(DQ ('Updating the git firmware repo'))})
                        (AndOr
                          children: [
                            (C {(git)} {(pull)})
                            (C {(log_msg)} {(DQ ("Warning: 'git pull' failed"))})
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      spids: [16777215 4241]
                    )
                  ]
                  else_action: [
                    (C {(log_msg)} 
                      {(DQ ('This may take a long time as the firmware repository is around 180MB'))}
                    )
                    (C {(cd)} {(..)})
                    (C {(git)} {(clone)} 
                      {(git) (Lit_Other ':') 
                        (//git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git)
                      }
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                        (C {(exit)})
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [4357 4396]
                )
                (C {(cd)} {($ VSub_Name '$CWD')})
              ]
              spids: [4193 4211]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FIRMWARE_OPT)
                  op: Equal
                  rhs: {(tarball)}
                  spids: [4407]
                )
              ]
              spids: [4407]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fw_pkg)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(grep)} {(Lit_Other '^') ($ VSub_Name '$fw')} {(${ VSub_Name tmpfw)})
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [4412 4421]
                      )
                    }
                  spids: [4411]
                )
              ]
              spids: [4411]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fw_pkg)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name fw_pkg>
                        suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('* ')})
                        spids: [4425 4429]
                      )
                    }
                  spids: [4424]
                )
              ]
              spids: [4424]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(sources/) (${ VSub_Name fw_pkg)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(log_msg)} {(DQ ('Verifying sources/') (${ VSub_Name fw_pkg))})
                    (Sentence
                      child: (C {(tar)} {(-taf)} {(sources/) (${ VSub_Name fw_pkg)})
                      terminator: <Op_Amp '&'>
                    )
                    (SimpleCommand
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [4470]
                        )
                      ]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                        (C {(exit_error)} 
                          {
                            (DQ ('failed verify ') 
                              (BracedVarSub
                                token: <VSub_Name fw_pkg>
                                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('* ')})
                                spids: [4490 4494]
                              )
                            )
                          }
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [16777215 4447]
                )
              ]
              else_action: [
                (C {(log_msg)} 
                  {
                    (DQ ('You chose ') (${ VSub_Name fw_pkg) 
                      (". If that isn't correct change it manually later.")
                    )
                  }
                )
                (C {(log_msg)} {(DQ ('downloading ') (${ VSub_Name FW_URL) (/) (${ VSub_Name fw_pkg))})
                (C {(wget)} {(${ VSub_Name WGET_OPT)} {(-c)} 
                  {(${ VSub_Name FW_URL) (/) (${ VSub_Name fw_pkg)} {(-P)} {(sources)}
                )
                (AndOr
                  children: [
                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                    (C {(exit_error)} 
                      {
                        (DQ ('failed to download ') 
                          (BracedVarSub
                            token: <VSub_Name fw_pkg>
                            suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('* ')})
                            spids: [4563 4567]
                          )
                        )
                      }
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              spids: [4498 4571]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FW_PKG_URL)
                  op: Equal
                  rhs: {(${ VSub_Name fw_pkg)}
                  spids: [4574]
                )
              ]
              spids: [4574]
            )
          ]
          spids: [4404 4580]
        )
      ]
      spids: [3827 4582]
    )
    (C {(log_msg)} {(DQ ('Extracting the Aufs-util sources'))})
    (C {(rm)} {(-rf)} {(aufs-util)})
    (C {(cp)} {(-a)} {(sources/aufs-util_git)} {(aufs-util)})
    (Subshell
      child: 
        (CommandList
          children: [
            (C {(cd)} {(aufs-util)})
            (Pipeline
              children: [
                (C {(git)} {(branch)} {(-a)})
                (C {(grep)} {(DQ (aufs) ($ VSub_Name '$kernel_series'))})
                (C {(grep)} {(-v)} {(-E)} {(SQ <'rcN|\\)'>)})
                (C {(cut)} {(-d)} {(SQ <.>)} {(-f2)})
                (SimpleCommand
                  words: [{(sort)} {(-n)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/tmp/aufs-util-version)}
                      spids: [4673]
                    )
                  ]
                )
              ]
              negated: False
            )
            (While
              cond: [(Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$line'))} {(-le)} 
                                  {(DQ ($ VSub_Name '$kernel_branch'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:branch)
                                  op: Equal
                                  rhs: {($ VSub_Name '$line')}
                                  spids: [4717]
                                )
                              ]
                              spids: [4717]
                            )
                          ]
                          spids: [16777215 4711]
                        )
                      ]
                      else_action: [(ControlFlow token:<ControlFlow_Break break>)]
                      spids: [4725 4731]
                    )
                  ]
                  spids: [4689 4734]
                )
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(/tmp/aufs-util-version)}
                  spids: [4736]
                )
              ]
            )
            (C {(git)} {(checkout)} {(aufs) (${ VSub_Name kernel_series) (.) (${ VSub_Name branch)})
            (C {(cp)} {(Makefile)} {(Makefile-orig)})
            (C {(sed)} {(-i)} {(-e)} {(SQ <'s/-static //'>)} {(-e)} {(SQ <'s|ver_test ||'>)} {(-e)} 
              {(SQ <'s|BuildFHSM = .*||'>)} {(Makefile)}
            )
            (SimpleCommand
              words: [{(diff)} {(-ru)} {(Makefile-orig)} {(Makefile)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: 
                    {(../output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH) 
                      (/aufs-util.patch)
                    }
                  spids: [4798]
                )
              ]
            )
          ]
        )
      spids: [4616 4810]
    )
    (C {(log_msg)} {(DQ ('Extracting the Aufs sources'))})
    (C {(rm)} {(-rf)} {(aufs_sources)})
    (C {(cp)} {(-a)} {(sources/) (${ VSub_Name aufs_git_dir)} {(aufs_sources)})
    (Subshell
      child: 
        (CommandList
          children: [
            (Sentence child:(C {(cd)} {(aufs_sources)}) terminator:<Op_Semi ';'>)
            (C {(git)} {(checkout)} {(aufs) (${ VSub_Name aufsv)})
            (C {(../patches/aufs_sources/apply)} {(${ VSub_Name kernel_version)})
          ]
        )
      spids: [4836 4861]
    )
    (C {(log_msg)} {(DQ ('Extracting the kernel sources'))})
    (SimpleCommand
      words: [
        {(tar)}
        {(-axf)}
        {(sources/kernels/linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz)}
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [4883]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[4889])
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(rm)} {(-f)} {(sources/kernels/linux-) (${ VSub_Name kernel_tarball_version) (.tar.xz)})
            (C {(exit_error)} {(DQ ('ERROR extracting kernel sources. file was deleted...'))})
          ]
          spids: [16777215 4906]
        )
      ]
      spids: [16777215 4926]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FIX_KERNEL_VER'))} {(Lit_Other '=')} {(DQ (yes))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(rm)} {(-rf)} {(linux-) (${ VSub_Name kernel_version)})
            (C {(mv)} {(-f)} {(linux-) (${ VSub_Name kernel_tarball_version)} 
              {(linux-) (${ VSub_Name kernel_version)}
            )
          ]
          spids: [16777215 4947]
        )
      ]
      spids: [16777215 4974]
    )
    (C {(cd)} {(linux-) (${ VSub_Name kernel_version)})
    (C {(log_msg)} {(DQ ('Adding Aufs to the kernel sources'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-f)} {(mm/prfile.c)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mmap)
                  op: Equal
                  rhs: {(../aufs_sources/aufs) (${ VSub_Name aufs_version) (-mmap.patch)}
                  spids: [5015]
                )
              ]
              spids: [5015]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(-f)} {($ VSub_Name '$mmap')} {(Lit_Other ']')})
                (AndOr
                  children: [
                    (C {(grep)} {(-q)} {(SQ <mm/prfile.c>)} {($ VSub_Name '$mmap')})
                    (C {(rm)} {(-f)} {(mm/prfile.c)})
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [16777215 5012]
        )
      ]
      spids: [16777215 5054]
    )
    (ForEach
      iter_name: i
      iter_words: [{(kbuild)} {(base)} {(standalone)} {(mmap)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:patchfile)
                  op: Equal
                  rhs: 
                    {(../aufs_sources/aufs) (${ VSub_Name aufs_version) (-) ($ VSub_Name '$i') (.patch)}
                  spids: [5077]
                )
              ]
              spids: [5077]
            )
            (Sentence
              child: 
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Sentence child:(C {(echo)}) terminator:<Op_Semi ';'>)
                        (C {(echo)} 
                          {
                            (DQ ('patch -N -p1 < ') 
                              (BracedVarSub
                                token: <VSub_Name patchfile>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_DPound
                                    arg_word: {('*') (Lit_Slash /)}
                                  )
                                spids: [5097 5102]
                              )
                            )
                          }
                        )
                      ]
                    )
                  spids: [5087 5105]
                )
              terminator: <Op_Amp '&'>
            )
            (SimpleCommand
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(${ VSub_Name BUILD_LOG)}
                  spids: [5108]
                )
              ]
            )
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(patch)} {(-N)} {(-p1)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name patchfile)}
                      spids: [5121]
                    )
                  ]
                )
              terminator: <Op_Amp '&'>
            )
            (SimpleCommand
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(${ VSub_Name BUILD_LOG)}
                  spids: [5128]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(log_msg)} 
                      {(DQ ('WARNING: failed to add some Aufs patches to the kernel sources.'))}
                    )
                    (C {(log_msg)} 
                      {(DQ ('Check it manually and either CRTL+C to bail or hit enter to go on'))}
                    )
                    (C {(read)} {(goon)})
                  ]
                  spids: [16777215 5149]
                )
              ]
              spids: [16777215 5171]
            )
          ]
          spids: [5071 5173]
        )
      spids: [5061 5069]
    )
    (C {(cp)} {(-r)} 
      (BracedWordTree
        parts: [(../aufs_sources/) (BracedAltPart words:[{(fs)} {(Documentation)}])]
      ) {(.)}
    )
    (SimpleCommand
      words: [{(cp)} {(../aufs_sources/include/linux/aufs_type.h)} {(include/linux)}]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[5194])]
    )
    (SimpleCommand
      words: [{(cp)} {(../aufs_sources/include/uapi/linux/aufs_type.h)} {(include/linux)}]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[5203])]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-d)} {(../aufs_sources/include/uapi)} {(Lit_Other ']')})
        (C {(cp)} {(-r)} {(../aufs_sources/include/uapi/linux/aufs_type.h)} {(include/uapi/linux)})
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$LIBRE')} {(-eq)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cd)} {(..)})
            (C {(cp)} {(-r)} {(linux-) (${ VSub_Name kernel_version)} 
              {(linux-) (${ VSub_Name kernel_version) (-orig)}
            )
            (C {(cd)} {(linux-) (${ VSub_Name kernel_version)})
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(sh)} {(../sources/kernels/deblob-) (${ VSub_Name kernel_major_version)}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5285])]
                )
                (C {(tee)} {(-a)} {(${ VSub_Name BUILD_LOG)})
              ]
              negated: False
            )
            (C {(cd)} {(..)})
            (SimpleCommand
              words: [
                {(diff)}
                {(-rupN)}
                {(linux-) (${ VSub_Name kernel_version) (-orig)}
                {(linux-) (${ VSub_Name kernel_version)}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: 
                    {(output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH) 
                      (/deblob.patch)
                    }
                  spids: [5319]
                )
              ]
            )
            (C {(rm)} {(-rf)} {(linux-) (${ VSub_Name kernel_version) (-orig)})
            (C {(cd)} {(linux-) (${ VSub_Name kernel_version)})
          ]
          spids: [16777215 5246]
        )
      ]
      spids: [16777215 5350]
    )
    (C {(cp)} {(Makefile)} {(Makefile-orig)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$remove_sublevel'))} {(Lit_Other '=')} 
                  {(DQ (yes))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(log_msg)} {(DQ ('Resetting the minor version number'))})
            (C {(sed)} {(-i)} {(DQ ('s/^SUBLEVEL =.*/SUBLEVEL = 0/'))} {(Makefile)})
          ]
          spids: [16777215 5380]
        )
      ]
      spids: [16777215 5403]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name custom_suffix))} {(Lit_Other ']')})
                    (C {(Lit_Other '[')} {($ VSub_Name '$LIBRE')} {(-eq)} {(1)} {(Lit_Other ']')})
                  ]
                  op_id: Op_DPipe
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(sed)} {(-i)} 
              {(DQ ('s/^EXTRAVERSION =.*/EXTRAVERSION = ') (${ VSub_Name custom_suffix) (/))} {(Makefile)}
            )
          ]
          spids: [16777215 5436]
        )
      ]
      spids: [16777215 5453]
    )
    (AndOr
      children: [
        (C {(diff)} {(-up)} {(Makefile-orig)} {(Makefile)})
        (SimpleCommand
          words: [{(diff)} {(-up)} {(Makefile-orig)} {(Makefile)}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: 
                {(../output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH) 
                  (/version.patch)
                }
              spids: [5473]
            )
          ]
        )
      ]
      op_id: Op_DPipe
    )
    (C {(rm)} {(Makefile-orig)})
    (C {(log_msg)} {(DQ ('Reducing the number of consoles and verbosity level'))})
    (ForEach
      iter_name: i
      iter_words: [{(include/linux/printk.h)} {(kernel/printk/printk.c)} {(kernel/printk.c)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$i'))} {(Lit_Other ']')})
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:z)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                                  (C {(sed)} {(SQ <'s|/|_|g'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [5529 5543]
                      )
                    }
                  spids: [5528]
                )
              ]
              spids: [5528]
            )
            (C {(cp)} {(${ VSub_Name i)} {(${ VSub_Name i) (.orig)})
            (C {(sed)} {(-i)} 
              {(SQ <'s|#define CONSOLE_LOGLEVEL_DEFAULT .*|#define CONSOLE_LOGLEVEL_DEFAULT 3|'>)} {($ VSub_Name '$i')}
            )
            (C {(sed)} {(-i)} 
              {(SQ <'s|#define DEFAULT_CONSOLE_LOGLEVEL .*|#define DEFAULT_CONSOLE_LOGLEVEL 3|'>)} {($ VSub_Name '$i')}
            )
            (C {(sed)} {(-i)} {(SQ <'s|#define MAX_CMDLINECONSOLES .*|#define MAX_CMDLINECONSOLES 5|'>)} 
              {($ VSub_Name '$i')}
            )
            (Sentence
              child: (C {(diff)} {(-q)} {(${ VSub_Name i) (.orig)} {(${ VSub_Name i)})
              terminator: <Op_Amp '&'>
            )
            (AndOr
              children: [
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [5605]
                    )
                  ]
                )
                (SimpleCommand
                  words: [{(diff)} {(-up)} {(${ VSub_Name i) (.orig)} {(${ VSub_Name i)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: 
                        {(../output/patches-) (${ VSub_Name kernel_version) (-) 
                          (${ VSub_Name HOST_ARCH) (/) (${ VSub_Name z) (.patch)
                        }
                      spids: [5623]
                    )
                  ]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [5508 5639]
        )
      spids: [5501 16777215]
    )
    (ForEach
      iter_name: patch
      iter_words: [
        {(../patches/) (Lit_Other '*') (.patch)}
        {(../patches/) (${ VSub_Name kernel_major_version) (/) (Lit_Other '*') (.patch)}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$patch'))} 
                  {(Lit_Other ']')}
                )
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(vercmp)} {(${ VSub_Name kernel_version)} {(ge)} {(4.14)})
                (AndOr
                  children: [
                    (C {(Lit_Other '[')} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(basename)} {(DQ ($ VSub_Name '$patch'))})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [5700 5706]
                          )
                        )
                      } {(Lit_Other '=')} {(DQ (commoncap-symbol.patch))} {(Lit_Other ']')}
                    )
                    (ControlFlow token:<ControlFlow_Continue continue>)
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (C {(log_msg)} {(DQ ('Applying ') ($ VSub_Name '$patch'))})
            (SimpleCommand
              words: [{(patch)} {(-p1)}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {($ VSub_Name '$patch')}
                  spids: [5734]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(${ VSub_Name BUILD_LOG)}
                  spids: [5738]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[5744])
              ]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                (C {(exit_error)} 
                  {
                    (DQ ('Error: failed to apply ') ($ VSub_Name '$patch') (' on the kernel sources.'))
                  }
                )
              ]
              op_id: Op_DAmp
            )
            (C {(cp)} {($ VSub_Name '$patch')} 
              {(../output/patches-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH)}
            )
          ]
          spids: [5662 5782]
        )
      spids: [5647 5660]
    )
    (C {(log_msg)} {(DQ ('Cleaning the kernel sources'))})
    (C {(make)} {(clean)})
    (C {(make)} {(mrproper)})
    (C {(find)} {(.)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\('>)} {(-name)} {(SQ <'*.orig'>)} 
      {(-o)} {(-name)} {(SQ <'*.rej'>)} {(-o)} {(-name)} {(SQ <'*~'>)} 
      {(EscapedLiteralPart token:<Lit_EscapedChar '\\)'>)} {(-delete)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-f)} {(../DOTconfig)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(cp)} {(../DOTconfig)} {(.config)})
            (C {(sed)} {(-i)} {(SQ <'/^kernel_version/d'>)} {(.config)})
          ]
          spids: [16777215 5844]
        )
      ]
      spids: [16777215 5864]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-f)} {(fs/aufs/Kconfig)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(sed)} {(-i)} {(SQ <'s%support"$%support"\\n\\tdefault y%'>)} {(fs/aufs/Kconfig)})
            (C {(sed)} {(-i)} {(SQ <'s%aufs branch"%aufs branch"\\n\\tdefault n%'>)} {(fs/aufs/Kconfig)})
          ]
          spids: [16777215 5882]
        )
      ]
      spids: [16777215 5906]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [(C {(grep)} {(-q)} {(DQ ('CONFIG_AUFS_FS=y'))} {(.config)})]
                  negated: True
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') ('033[1;31m'))})
            (C {(log_msg)} {(DQ ('For your kernel to boot AUFS as a built in is required:'))})
            (C {(log_msg)} {(DQ ('File systems -> Miscellaneous filesystems -> AUFS'))})
            (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') ('033[0m'))})
          ]
          spids: [16777215 5924]
        )
      ]
      spids: [16777215 5964]
    )
    (C {(i386_specific_stuff)})
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-f)} {(.config)} {(-a)} {(KW_Bang '!')} {(-f)} {(../DOTconfig)} 
          {(Lit_Other ']')}
        )
        (C {(cp)} {(.config)} {(../DOTconfig)})
      ]
      op_id: Op_DAmp
    )
    (FuncDef
      name: do_kernel_config
      body: 
        (BraceGroup
          children: [
            (C {(log_msg)} {(DQ ('make ') ($ VSub_Number '$1'))})
            (C {(make)} {($ VSub_Number '$1')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} {(.config)} {(-a)} {(DQ ($ VSub_Name '$AUTO'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(log_msg)} 
                              {
                                (DQ (Lit_Other '\\') 
                                  (
'nOk, kernel is configured. hit ENTER to continue, CTRL+C to quit'
                                  )
                                )
                              }
                            )
                            (C {(read)} {(goon)})
                          ]
                          spids: [16777215 6077]
                        )
                      ]
                      spids: [16777215 6093]
                    )
                  ]
                  spids: [16777215 6049]
                )
              ]
              else_action: [(C {(exit)} {(1)})]
              spids: [6096 6104]
            )
          ]
          spids: [6016]
        )
      spids: [6010 6015]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$AUTO'))} {(Lit_Other '=')} {(DQ (yes))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(do_kernel_config)} {(oldconfig)})]
          spids: [16777215 6127]
        )
      ]
      else_action: [
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {(-f)} {(.config)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (C {(echo)} {(-en)} 
                  {
                    (DQ ('\n') ('You now should configure your kernel. The supplied .config\n') 
                      ('should be already configured but you may want to make changes, plus\n') ('the date should be updated.')
                    )
                  }
                )
              ]
              spids: [16777215 6149]
            )
          ]
          else_action: [
            (C {(echo)} {(-en)} {(DQ (Lit_Other '\\') ('nYou must now configure the kernel'))})
          ]
          spids: [6164 6177]
        )
        (Sentence
          child: 
            (C {(echo)} {(-en)} 
              {
                (DQ ('\n') ('Hit a number or s to skip:\n') 
                  ('1. make menuconfig [default] (ncurses based)\n') ('2. make gconfig (gtk based gui)\n') ('3. make xconfig (qt based gui)\n') ('4. make oldconfig\n') 
                  ('s. skip\n') ('\n') ('Enter option: ')
                )
              }
            )
          terminator: <Op_Semi ';'>
        )
        (C {(read)} {(kernelconfig)})
        (Case
          to_match: {($ VSub_Name '$kernelconfig')}
          arms: [
            (case_arm
              pat_list: [{(1)}]
              action: [(C {(do_kernel_config)} {(menuconfig)})]
              spids: [6211 6212 6218 16777215]
            )
            (case_arm
              pat_list: [{(2)}]
              action: [(C {(do_kernel_config)} {(gconfig)})]
              spids: [6221 6222 6228 16777215]
            )
            (case_arm
              pat_list: [{(3)}]
              action: [(C {(do_kernel_config)} {(xconfig)})]
              spids: [6231 6232 6238 16777215]
            )
            (case_arm
              pat_list: [{(4)}]
              action: [(C {(do_kernel_config)} {(oldconfig)})]
              spids: [6241 6242 6248 16777215]
            )
            (case_arm
              pat_list: [{(s)}]
              action: [
                (C {(log_msg)} {(DQ ('skipping configuration of kernel'))})
                (C {(echo)} {(DQ ('hit ENTER to continue, CTRL+C to quit'))})
                (C {(read)} {(goon)})
              ]
              spids: [6251 6252 6274 16777215]
            )
            (case_arm
              pat_list: [{(Lit_Other '*')}]
              action: [(C {(do_kernel_config)} {(menuconfig)})]
              spids: [6277 6278 6284 16777215]
            )
          ]
          spids: [6204 6208 6287]
        )
      ]
      spids: [6134 6289]
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(.config)} {(Lit_Other ']')})
        (C {(exit_error)} {(DQ (Lit_Other '\\') ('nNo config file, exiting...'))})
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <'CONFIG_X86_64=y'>)} {(.config)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(x86_64)} spids:[6336])]
              spids: [6336]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:karch) op:Equal rhs:{(x86)} spids:[6340])]
              spids: [6340]
            )
          ]
          spids: [16777215 6333]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <'CONFIG_X86_32=y'>)} {(.config)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:karch) op:Equal rhs:{(x86)} spids:[6360])]
              spids: [6360]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(grep)} {(-q)} {(SQ <'CONFIG_X86_32_SMP=y'>)} {(.config)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arch)
                          op: Equal
                          rhs: {(i686)}
                          spids: [6381]
                        )
                      ]
                      spids: [6381]
                    )
                  ]
                  spids: [16777215 6378]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(i486)} spids:[6388])]
                  spids: [6388]
                )
              ]
              spids: [6385 6395]
            )
          ]
          spids: [6343 6357]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <'CONFIG_ARM=y'>)} {(.config)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(arm)} spids:[6414])]
              spids: [6414]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:karch) op:Equal rhs:{(arm)} spids:[6418])]
              spids: [6418]
            )
          ]
          spids: [6397 6411]
        )
      ]
      else_action: [
        (C {(log_msg)} {(DQ ('Your arch is unsupported.'))})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(unknown)} spids:[6431])]
          spids: [6431]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:karch) op:Equal rhs:{(arm)} spids:[6438])]
          spids: [6438]
        )
      ]
      spids: [6421 6441]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:linux_kernel_dir)
          op: Equal
          rhs: {(linux_kernel-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix)}
          spids: [6447]
        )
      ]
      spids: [6447]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:kheaders_dir)
          op: Equal
          rhs: 
            {
              (DQ (kernel_headers-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
                (-) ($ VSub_Name '$arch')
              )
            }
          spids: [6464]
        )
      ]
      spids: [6464]
    )
    (C {(rm)} {(-rf)} {(../output/) (${ VSub_Name kheaders_dir)})
    (C {(log_msg)} {(DQ ('Creating the kernel headers package'))})
    (SimpleCommand
      words: [{(make)} {(headers_check)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [6497]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[6503])
      ]
    )
    (SimpleCommand
      words: [
        {(make)}
        {(Lit_VarLike 'INSTALL_HDR_PATH=') (${ VSub_Name kheaders_dir) (/usr)}
        {(headers_install)}
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [6516]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[6522])
      ]
    )
    (C {(find)} {(${ VSub_Name kheaders_dir) (/usr/include)} 
      {(EscapedLiteralPart token:<Lit_EscapedChar '\\('>)} {(-name)} {(.install)} {(-o)} {(-name)} {(..install.cmd)} 
      {(EscapedLiteralPart token:<Lit_EscapedChar '\\)'>)} {(-delete)}
    )
    (C {(mv)} {(${ VSub_Name kheaders_dir)} {(../output)})
    (C {(log_msg)} {(DQ ('Building aufs-utils - userspace modules'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(grep)} {(-q)} {(SQ <'CONFIG_AUFS_FHSM=y'>)} {(.config)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(export)} {(Lit_VarLike 'MAKE=') (DQ ('make BuildFHSM=yes'))})]
          spids: [16777215 6592]
        )
      ]
      else_action: [(C {(export)} {(Lit_VarLike 'MAKE=') (DQ ('make BuildFHSM=no'))})]
      spids: [6603 6614]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LinuxSrc)
          op: Equal
          rhs: {(${ VSub_Name CWD) (/output/) (${ VSub_Name kheaders_dir)}
          spids: [6617]
        )
      ]
      spids: [6617]
    )
    (C {(cd)} {(../aufs-util)})
    (C {(export)} {(Lit_VarLike 'CPPFLAGS=') (DQ ('-I ') ($ VSub_Name '$LinuxSrc') (/usr/include))})
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('export CPPFLAGS=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('-I ') 
            ($ VSub_Name '$LinuxSrc') (/usr/include) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('make clean\n') 
            ($ VSub_Name '$MAKE') ('\n') ('make DESTDIR=') ($ VSub_Name '$CWD') (/output/aufs-util-) (${ VSub_Name kernel_version) (-) 
            (${ VSub_Name arch) (' install\n')
          )
        }
      ]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(compile)} spids:[6675])]
    )
    (Sentence child:(C {(make)} {(clean)}) terminator:<Op_Amp '&'>)
    (SimpleCommand
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[6688])]
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$MAKE')}]
          redirects: [
            (Redir
              op_id: Redir_DGreat
              fd: 16777215
              arg_word: {(${ VSub_Name BUILD_LOG)}
              spids: [6694]
            )
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[6700])
          ]
        )
        (C {(exit_error)} {(DQ ('Failed to compile aufs-util'))})
      ]
      op_id: Op_DPipe
    )
    (SimpleCommand
      words: [
        {(make)}
        {(Lit_VarLike 'DESTDIR=') ($ VSub_Name '$CWD') (/output/aufs-util-) 
          (${ VSub_Name kernel_version) (-) (${ VSub_Name arch)
        }
        {(install)}
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [6727]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[6733])
      ]
    )
    (SimpleCommand
      words: [{(make)} {(clean)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [6744]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[6750])
      ]
    )
    (C {(mkdir)} {(-p)} 
      {($ VSub_Name '$CWD') (/output/aufs-util-) (${ VSub_Name kernel_version) (-) (${ VSub_Name arch) 
        (/usr/lib)
      }
    )
    (SimpleCommand
      words: [
        {(mv)}
        {(-fv)}
        {($ VSub_Name '$CWD') (/output/aufs-util-) (${ VSub_Name kernel_version) (-) 
          (${ VSub_Name arch) (/libau.so) (Lit_Other '*')
        }
        {($ VSub_Name '$CWD') (/output/aufs-util-) (${ VSub_Name kernel_version) (-) 
          (${ VSub_Name arch) (/usr/lib)
        }
      ]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[6803])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$arch'))} {(Lit_Other '=')} {(DQ (x86_64))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(mv)} 
              {($ VSub_Name '$CWD') (/output/aufs-util-) (${ VSub_Name kernel_version) (-) 
                (${ VSub_Name arch) (/usr/lib)
              } 
              {($ VSub_Name '$CWD') (/output/aufs-util-) (${ VSub_Name kernel_version) (-) 
                (${ VSub_Name arch) (/usr/lib64)
              }
            )
          ]
          spids: [16777215 6825]
        )
      ]
      spids: [16777215 6855]
    )
    (C {(log_msg)} {(DQ (aufs-util-) (${ VSub_Name kernel_version) (' is in output'))})
    (C {(cd)} {(..)})
    (C {(cd)} {(linux-) (${ VSub_Name kernel_version)})
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('make ') (${ VSub_Name JOBS) (' bzImage modules\n') ('make INSTALL_MOD_PATH=') 
            (${ VSub_Name linux_kernel_dir) (' modules_install')
          )
        }
      ]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(compile)} spids:[6903])]
    )
    (Pipeline
      children: [
        (C {(log_msg)} {(DQ ('Compiling the kernel'))})
        (C {(tee)} {(-a)} {(${ VSub_Name BUILD_LOG)})
      ]
      negated: False
    )
    (SimpleCommand
      words: [{(make)} {(${ VSub_Name JOBS)} {(bzImage)} {(modules)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [6937]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[6943])
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KCONFIG)
          op: Equal
          rhs: 
            {
              (DQ (output/DOTconfig-) (${ VSub_Name kernel_version) (-) (${ VSub_Name HOST_ARCH) (-) 
                (${ VSub_Name today)
              )
            }
          spids: [6946]
        )
      ]
      spids: [6946]
    )
    (C {(cp)} {(.config)} {(../) (${ VSub_Name KCONFIG)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$karch'))} {(Lit_Other '=')} {(DQ (x86))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(arch/x86/boot/bzImage)} {(-o)} 
                          {(KW_Bang '!')} {(-f)} {(System.map)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(exit_error)} {(DQ ('Error: failed to compile the kernel sources.'))})]
                  spids: [16777215 7015]
                )
              ]
              spids: [16777215 7025]
            )
          ]
          spids: [16777215 6990]
        )
      ]
      else_action: [
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(arch/arm/boot/zImage)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(exit_error)} {(DQ ('Error: failed to compile the kernel sources.'))})]
              spids: [16777215 7044]
            )
          ]
          spids: [16777215 7057]
        )
      ]
      spids: [7027 7059]
    )
    (C {(log_msg)} {(DQ ('Creating the kernel package'))})
    (SimpleCommand
      words: [
        {(make)}
        {(Lit_VarLike 'INSTALL_MOD_PATH=') (${ VSub_Name linux_kernel_dir)}
        {(modules_install)}
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [7081]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[7087])
      ]
    )
    (C {(rm)} {(-f)} 
      (BracedWordTree
        parts: [
          (${ VSub_Name linux_kernel_dir)
          (/lib/modules/)
          (${ VSub_Name kernel_version)
          (${ VSub_Name custom_suffix)
          (/)
          (BracedAltPart words:[{(build)} {(source)}])
        ]
      )
    )
    (C {(mkdir)} {(-p)} {(${ VSub_Name linux_kernel_dir) (/boot)})
    (C {(mkdir)} {(-p)} {(${ VSub_Name linux_kernel_dir) (/etc/modules)})
    (C {(cp)} {(.config)} 
      {(${ VSub_Name linux_kernel_dir) (/boot/config-) (${ VSub_Name kernel_version) 
        (${ VSub_Name custom_suffix)
      }
    )
    (C {(cp)} {(System.map)} 
      {(${ VSub_Name linux_kernel_dir) (/boot/System.map-) (${ VSub_Name kernel_version) 
        (${ VSub_Name custom_suffix)
      }
    )
    (C {(cp)} {(.config)} 
      {(${ VSub_Name linux_kernel_dir) (/etc/modules/DOTconfig-) (${ VSub_Name kernel_version) (-) 
        (${ VSub_Name today)
      }
    )
    (C {(cp)} 
      {(${ VSub_Name linux_kernel_dir) (/lib/modules/) (${ VSub_Name kernel_version) 
        (${ VSub_Name custom_suffix) (/modules.builtin)
      } 
      {(${ VSub_Name linux_kernel_dir) (/etc/modules/modules.builtin-) (${ VSub_Name kernel_version) 
        (${ VSub_Name custom_suffix)
      }
    )
    (C {(cp)} 
      {(${ VSub_Name linux_kernel_dir) (/lib/modules/) (${ VSub_Name kernel_version) 
        (${ VSub_Name custom_suffix) (/modules.order)
      } 
      {(${ VSub_Name linux_kernel_dir) (/etc/modules/modules.order-) (${ VSub_Name kernel_version) 
        (${ VSub_Name custom_suffix)
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BZIMAGE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(find)} {(.)} {(-type)} {(f)} {(-name)} {(bzImage)})
                          (C {(head)} {(-1)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [7243 7261]
              )
            }
          spids: [7242]
        )
      ]
      spids: [7242]
    )
    (C {(cp)} {(${ VSub_Name BZIMAGE)} {(${ VSub_Name linux_kernel_dir) (/boot)})
    (C {(cp)} {(${ VSub_Name BZIMAGE)} {(${ VSub_Name linux_kernel_dir) (/boot/vmlinuz)})
    (C {(mv)} {(${ VSub_Name linux_kernel_dir)} {(../output)})
    (C {(mv)} {(../output/) (${ VSub_Name linux_kernel_dir) (/boot/vmlinuz)} 
      {(../output/vmlinuz-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix)}
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-f)} {(../output/) (${ VSub_Name linux_kernel_dir) (/boot/bzImage)} 
          {(Lit_Other ']')}
        )
        (C {(rm)} {(-f)} {(../output/) (${ VSub_Name linux_kernel_dir) (/boot/bzImage)})
      ]
      op_id: Op_DAmp
    )
    (C {(log_msg)} 
      {
        (DQ ('Huge kernel ') (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
          (' is ready in dist')
        )
      }
    )
    (C {(log_msg)} {(DQ ('Cleaning the kernel sources'))})
    (SimpleCommand
      words: [{(make)} {(clean)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [7371]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[7377])
      ]
    )
    (SimpleCommand
      words: [{(make)} {(prepare)}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(${ VSub_Name BUILD_LOG)}
          spids: [7384]
        )
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[7390])
      ]
    )
    (C {(cd)} {(..)})
    (C {(log_msg)} {(DQ ('Installing aufs-utils into kernel package'))})
    (C {(cp)} {(-a)} {(--remove-destination)} 
      {(output/aufs-util-) (${ VSub_Name kernel_version) (-) (${ VSub_Name arch) (/) (Lit_Other '*')} {(output/) (${ VSub_Name linux_kernel_dir)}
    )
    (C {(log_msg)} {(DQ ('Creating a kernel sources SFS'))})
    (C {(mkdir)} {(-p)} 
      {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
        (/usr/src)
      }
    )
    (C {(mv)} {(linux-) (${ VSub_Name kernel_version)} 
      {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
        (/usr/src/linux)
      }
    )
    (C {(mkdir)} {(-p)} 
      {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
        (/lib/modules/) (${ VSub_Name kernel_version) (${ VSub_Name custom_suffix)
      }
    )
    (C {(ln)} {(-s)} {(/usr/src/linux)} 
      {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
        (/lib/modules/) (${ VSub_Name kernel_version) (${ VSub_Name custom_suffix) (/build)
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                  {(kernel_sources-) (${ VSub_Name kernel_version) (-) 
                    (${ VSub_Name package_name_suffix) (/usr/src/linux/include/linux/version.h)
                  } {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(ln)} {(-s)} {(/usr/src/linux/include/generated/uapi/linux/version.h)} 
              {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
                (/usr/src/linux/include/linux/version.h)
              }
            )
          ]
          spids: [16777215 7538]
        )
      ]
      spids: [16777215 7559]
    )
    (C {(ln)} {(-s)} {(/usr/src/linux)} 
      {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
        (/lib/modules/) (${ VSub_Name kernel_version) (${ VSub_Name custom_suffix) (/source)
      }
    )
    (C {(mksquashfs)} 
      {(kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix)} {(output/kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) (.sfs)} 
      {($ VSub_Name '$COMP')}
    )
    (SimpleCommand
      words: [
        {(md5sum)}
        {(output/kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
          (.sfs)
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: 
            {(output/kernel_sources-) (${ VSub_Name kernel_version) (-) 
              (${ VSub_Name package_name_suffix) (.sfs.md5.txt)
            }
          spids: [7619]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(sha256sum)}
        {(output/kernel_sources-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
          (.sfs)
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: 
            {(output/kernel_sources-) (${ VSub_Name kernel_version) (-) 
              (${ VSub_Name package_name_suffix) (.sfs.sha256.txt)
            }
          spids: [7643]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Name '$LIBRE')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FW_PKG_URL'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fw_pkg)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name FW_PKG_URL>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_DPound
                                    arg_word: {('*') (Lit_Slash /)}
                                  )
                                spids: [7697 7702]
                              )
                            }
                          spids: [7696]
                        )
                      ]
                      spids: [7696]
                    )
                    (Case
                      to_match: {($ VSub_Name '$fw_pkg')}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.sfs)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:FDRV)
                                  op: Equal
                                  rhs: 
                                    {(fdrv.sfs-) (${ VSub_Name kernel_version) (-) 
                                      (${ VSub_Name package_name_suffix)
                                    }
                                  spids: [7720]
                                )
                              ]
                              spids: [7720]
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FW_PKG_URL'))} 
                                  {(Lit_Other ']')}
                                )
                                (C {(cp)} {(DQ ($ VSub_Name '$FW_PKG_URL'))} 
                                  {(output/) (${ VSub_Name FDRV)}
                                )
                              ]
                              op_id: Op_DAmp
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other '[')} {(-f)} {(sources/) (${ VSub_Name fw_pkg)} 
                                  {(Lit_Other ']')}
                                )
                                (C {(cp)} {(sources/) (${ VSub_Name fw_pkg)} 
                                  {(output/) (${ VSub_Name FDRV)}
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [7715 7717 7784 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.tar.) (Lit_Other '*')}]
                          action: [
                            (C {(mkdir)} {(-p)} {(output/) (${ VSub_Name linux_kernel_dir) (/lib)})
                            (C {(tar)} {(-xaf)} {(sources/) (${ VSub_Name fw_pkg)} {(-C)} 
                              {(output/) (${ VSub_Name linux_kernel_dir) (/lib/)}
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                                (C {(exit_error)} {(DQ ('failed to unpack ') (${ VSub_Name fw_pkg))})
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [7787 7790 7844 16777215]
                        )
                      ]
                      spids: [7708 7712 7847]
                    )
                  ]
                  spids: [16777215 7693]
                )
              ]
              else_action: [
                (C {(log_msg)} {(DQ ('Pausing here to add extra firmware.'))})
                (Case
                  to_match: {(${ VSub_Name FIRMWARE_OPT)}
                  arms: [
                    (case_arm
                      pat_list: [{(manual)}]
                      action: [
                        (C {(log_msg)} {(DQ ('once you have manually added firmware to '))})
                        (C {(log_msg)} {(DQ (output/) (${ VSub_Name linux_kernel_dir) (/lib/firmware))})
                        (C {(echo)} {(DQ ('hit ENTER to continue'))})
                        (C {(read)} {(firm)})
                      ]
                      spids: [7869 7870 7903 16777215]
                    )
                    (case_arm
                      pat_list: [{(git)}]
                      action: [
                        (C {(export)} {(Lit_VarLike 'GIT_ALREADY_DOWNLOADED=') (yes)})
                        (C {(./fw.sh)} {(${ VSub_Name fw_flag)})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(log_msg)} 
                                  {
                                    (DQ 
                                      (
'Extracting firmware from the kernel.org git repo has succeeded.'
                                      )
                                    )
                                  }
                                )
                              ]
                              spids: [16777215 7944]
                            )
                          ]
                          else_action: [
                            (C {(log_msg)} 
                              {
                                (DQ 
                                  (
'WARNING: Extracting firmware from the kernel.org git repo has failed.'
                                  )
                                )
                              }
                            )
                            (C {(log_msg)} 
                              {(DQ ('While your kernel is built, your firmware is incomplete.'))}
                            )
                          ]
                          spids: [7954 7971]
                        )
                      ]
                      spids: [7906 7907 7974 16777215]
                    )
                  ]
                  spids: [7860 7866 7977]
                )
              ]
              spids: [7850 7980]
            )
          ]
          spids: [16777215 7674]
        )
      ]
      spids: [16777215 7982]
    )
    (C {(mksquashfs)} {(output/) (${ VSub_Name linux_kernel_dir)} 
      {(output/kernel-modules.sfs-) (${ VSub_Name kernel_version) (-) 
        (${ VSub_Name package_name_suffix)
      } {($ VSub_Name '$COMP')}
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(Lit_Other '=')} {(0)} {(Lit_Other ']')})
        (C {(exit)} {(1)})
      ]
      op_id: Op_DPipe
    )
    (C {(log_msg)} {(DQ ('Huge compatible kernel packages are ready to package./'))})
    (C {(log_msg)} 
      {
        (DQ ('Packaging huge-') (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
          (' kernel')
        )
      }
    )
    (C {(cd)} {(output/)})
    (AndOr
      children: [
        (C {(tar)} {(-cjvf)} 
          {(huge-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) (.tar.bz2)} {(vmlinuz-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix)} {(${ VSub_Name FDRV)} 
          {(kernel-modules.sfs-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix)}
        )
        (C {(exit)} {(1)})
      ]
      op_id: Op_DPipe
    )
    (C {(echo)} 
      {
        (DQ (huge-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
          ('.tar.bz2 is in output')
        )
      }
    )
    (SimpleCommand
      words: [
        {(md5sum)}
        {(huge-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) (.tar.bz2)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: 
            {(huge-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
              (.tar.bz2.md5.txt)
            }
          spids: [8116]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(sha256sum)}
        {(huge-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) (.tar.bz2)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: 
            {(huge-) (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) 
              (.tar.bz2.sha256.txt)
            }
          spids: [8140]
        )
      ]
    )
    (C {(echo)})
    (C {(cd)} {(-)})
    (C {(log_msg)} {(DQ ('Compressing the log'))})
    (C {(bzip2)} {(-9)} {(build.log)})
    (C {(cp)} {(build.log.bz2)} {(output)})
    (C {(log_msg)} 
      {
        (DQ ('------------------\n') ('Output files:\n') ('- output/huge-') 
          (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) ('.tar.bz2\n') 
          ('  (kernel tarball: vmlinuz, modules.sfs - used in the woof process)\n') ('  you can use this to replace vmlinuz and zdrv.sfs from the current wce puppy install..\n') ('\n') 
          ('- output/kernel_sources-') (${ VSub_Name kernel_version) (-) (${ VSub_Name package_name_suffix) ('.sfs\n') 
          ('  (you can use this to compile new kernel modules - load or install first..)\n') (------------------)
        )
      }
    )
    (C {(echo)} {(DQ ('Done!'))})
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(-f)} {(/usr/share/sounds/2barks.au)} {(Lit_Other ']')})
        (C {(aplay)} {(/usr/share/sounds/2barks.au)})
      ]
      op_id: Op_DAmp
    )
  ]
)